Mithgol the Webmaster – Telegram
Mithgol the Webmaster
1.4K subscribers
158 photos
196 videos
219 files
914 links
Мицгол-вебмастер ведёт на сём канале свой малоблог в Telegram.

Основные темы (в алфавитном порядке): аниме, виртуальная реальность, Геленджик, криптоконспирология, русский антиутопизм, сайтостроение, урбанизм, 猫 etc.

💸Донат: https://news.1rj.ru/str/ReadMithgol/923
Download Telegram
screenshot.png
20.6 KB
Каждый, кто когда-либо устанавливал себе криптовалютный кошелёк Bitcoin Core, уж конечно видел в нём, что не только существует интерфейс, позволяющий в одном кошельке создать нѣсколько различных адресов для получения криптовалютных средств, но и ясно (чёрным по бѣлому) излагается призыв именно так и дѣлать, то есть непремѣнно создавать по возможности новый адрес для каждого перевода средств. В этом призыве нѣтъ, впрочем, ни единого слóва о том, зачѣмъ его создавать; но мы можем догадываться, и не вполне безосновательно, что чѣмъ больше адресов, тѣмъ болѣе анонимен каждый из них, поскольку изобилие кошельков усложняет идентификацию их владельцев даже при наличии возможности догадываться о предназначении нѣкоторыхъ криптовалютных транзакций. Другой полезный подход к учёту криптовалютных финансовых потоков состоит в том, чтобы присваивать отдѣльный адрес если не каждому переводу, то каждому источнику средств — это позволяет, по-видимому, получать прямо из блокчейна сумму поступлений для каждого такого источника.
👍1
screenshot.png
29.6 KB
Вот почему каждый, кто вполне осознал вышеозначенные достоинства обладания нѣсколькими криптовалютными адресами, съ неизбѣжностью обрѣчёнъ испытать тягостное недоумѣніе (а не то и скорбь от предвидѣнія пагубных послѣдствій) в ту же минуту, когда скачает и установит Gram Wallet дуровской сѣти TON себѣ на Windows. В этом кошельке интерфейс для приёма грамов устроен таким образом, что позволяет подѣлиться (въ формѣ QR-кода или въ формѣ гиперссылки) единственным адресом — тѣмъ одним, который, по-видимому, раз навсегда создаётся при создании этого криптовалютного кошелька, и никакой GUI не предлагает возможности перемѣнить его, или создать ещё один адрес, или ещё как-то отойти от принципа «один кошелёк — один адрес».

И это не единственное отличие к худшему от Bitcoin Core: ещё можно подмѣтить, что Bitcoin Core предоставляет интерфейс командной строки (CLI) для вызова процедур (RPC), открывающего софту третьих лиц (учётному, напримѣръ) доступ к кошельку и блокчейну, а Gram Wallet не предоставляет ничего подобного.
Сравнение вышеозначенной возможности Bitcoin Core с отсутствием возможности в Gram Wallet, по правде сказать, сильнѣе всего беспокоит меня не тѣмъ, что оно как бы подкрепляет собою ѳезисъ «не факт, что TON, как утверждают разработчики, готов» обнажённою видимостью того, чего в кошельке у TON нѣтъ, хотя это есть много лѣтъ в кошельке у болѣе ранней криптовалюты Bitcoin, так что получается, что пока что Gram Wallet не совершенно превзошёл Bitcoin Core собою, не одолел ≈десятилетней форы и оттого как бы не может считаться готовым превзойти Bitcoin Core собою. Меня беспокоит совсем другое.

Я смотрю на тысячи и десятки тысяч каналов, существующих в Telegram (точное их число мало кому извѣстно, но вон тот сайт насчитывает 23 000) и думаю: каким способом всѣ они предпочтут монетизироваться после того, как всѣ пользователи Телеграма (число которых в материалах судебного противостояния Telegram и SEC названо трёхсотмиллионным) обретут простой и нехитрый способ совершения микроплатежей, не требующий уплаты значительных комиссионных?

Существует выбор между двумя возможными способами.

Первый способ продолжает многовѣковую традицию копирайтового ограничения доступа к информации той аудиториею, которая способна уплатить за такой доступ. Технический прогресс за десятилетия интернетовской эпохи дѣлаетъ всё менѣе нужными отдѣльныхъ посредников в этом процессе (правоторговцев и издателей), но даже автор, сдѣлавшійся самъ себѣ издателем, может сам же использовать современное средство торговли правом доступа к тексту — так называемый paywall, реализующий принцип pay-to-readсперва уплати́, затѣмъ читай») либо жёстко, либо съ нѣкоторымъ смягчением, напоминающим наркоторговый принцип «первая доза — бесплатно» — ну, напримѣръ, читателю могут раз в мѣсяцъ показать двѣ или три статьи бесплатно в надежде на то, что он втянется и оплатит подписку на мѣсяцъ или на год вперёд.

Важным достоинством этого способа является то, что он даёт автору (ну или издателю журнала, сотрудничающего съ нѣсколькими авторами) извѣстную определённость: в начале каждого месяца подписки он знает, сколько получит за подписку, и притом заранее получает эти средства и может располагать ими. Кроме того, предполагается, что этот способ (болѣе или менѣе жёсткое принуждение к оплате за чтение) принуждает платить нѣкоторыхъ таких читателей, которые в противоположном случае (о котором ниже) либо платили бы меньше, либо вовсе отказались от оплаты.

Недостатки этого способа также сдѣлались хорошо извѣстными за вѣка его существования. Во-первых, неплатёжеспособная аудитория отсекается с досадою, и для части отсечённых граждан эта досада сдѣлается побуждением к так называемому «пиратству» (к поиску и распространению нелицензионных копий). Во-вторых, страдает поисковая находимость текста, если только не заключать с поисковыми системами договор о том, что текст к ним попадёт (для индексирования, способствующего поисковой находимости), но в кэше поисковой системы (доступном для просмотра широкому кругу её пользователей) текст не останется; а ведь такие договоры не с каждой поисковой системою можно заключить (не всѣ онѣ извѣстны правоторговцу, и не всѣ изъ извѣстныхъ предложат приемлемые условия такого договора, не пожадничав). В-третьих, на платный текст с меньшею охотою будут ссылаться другие авторы, так как тѣмъ самым как бы будут вводить ужé своих читателей в расходы и притом работать торговыми агентами бесплатно в интересах правоторговца. В-четвёртых, неизбѣженъ тяжёлый выбор цѣны доступа, а результат такого выбора всегда малооптимален и всегда противоречит желаниям публики: всѣ тѣ, кто желал бы уплатить меньше установленной цѣны, не заплатят ни гроша (и будут отсечены от чтения), а всѣ тѣ, кто желал бы уплатить больше установленной цѣны, не заплатят больше её (а заплатят лишь столько, сколько было указано).

Второй способ (альтернативный первому) тоже извѣстенъ много вѣковъ, но примѣнялся чаще не книготорговцами, а уличными исполнителями. Это донат, это принцип добровольных пожертвований, поощряющих автора: «плати́те после просмотра; плати́те столько, сколько самим не жалко».
В современном российском Интернете узок круг авторов, существующих на донаты; чаще всего такими авторами оказываются стримеры, которые публикуют в Интернете нѣкоторый видеопоток и получают донаты от своих зрителей в реальном времени, поощряя тѣхъ упоминанием, а подчас и зачитыванием комментариев, поступивших вмѣсте с денежными средствами. Получается интернетовский аналог любительского телевѣщанія. Слѣдуетъ отмѣтить, что типичный стрим длится довольно долго (нѣсколько часов), а типичный донат стóит немало (нѣсколько долларов), что объясняется меньшей рентабельностью меньших донатов (а значит, в конечном счёте, условиями работы платёжной системы), так что появление дешёвых микроплатежей может сильно поправить дѣло.

Но могут ли стримеры появиться в Telegram? — если и могут, то до этого очень, очень далеко ещё. Технология передачи голоса (примѣняемая в Telegram для голосовых звонков) не привела к появлению голосового вѣщанія в реальном времени (аналога радиопередачи), а технология передачи видеопотока в реальном времени вообще не примѣняется в Telegram (не то она привела бы к появлению видеозвонков, которых в Telegram до сих пор нѣтъ, хотя они есть в WhatsApp, в Skype и у других конкурентов), так что о появлении каких-либо стримеров в Telegram рановато и мечтать — даже самó понятие streaming сейчас означает в Telegram всего-навсего передачу заранее записанного видеофайла (то есть возможность начать смотрѣть видеофайл, не дожидаясь окончания его скачивания), не болѣе того.

Вот почему читатели моего предшествующего сообщения (особенно если они знакомы с донатами только на опыте знакомства со стримерами) вправе сейчас недоумевать: как же возможны в Telegram донаты? — а я считаю, что они не только возможны, но и готовы (при нѣкоторыхъ условіяхъ) вскоре появиться в Telegram, но не как перенос существующих стримерских донатов на телеграмную почву, а скорѣе как эволюция лайков.

Болѣе десяти лѣтъ мы знакомы с кнопками Like (и с их аналогами: «+1», «Класс!», «Мне нравится», etc.), а в послѣдніе годы — и другими формами реакцій (выражающими смѣхъ, досаду, грусть и проч.). За это время мы узнали и их основное достоинство (лайк — это самый удобный, самый быстрый, самый простой из возможных способов отреагировать на увиденное), и их основной недостаток, который состоит в том, что один человѣкъ может поставить лайк только один раз (по крайней мѣрѣ, именно так задумано). Порождением этого недостатка сдѣлались сперва распространённые возгласы, выражающие многократно бóльшую степень одобрения: «+100!», «+1000!», «+100500!» и такъ далѣе — а затѣмъ и такое уродливое явление, как накрутка лайков.

Кстати, если степень распространённости этих возгласов вам вздумается оцѣнить погугливанием, то сильно помѣшаетъ тот факт, что «+100» упоминается ещё и как температура кипения воды, а возглас «+100500» вообще сдѣлали названием интернетовского и телевизионного шоу. (Разве что словечко «плюстыща» нагугливается, но настолько упрощённым правописанием пользовалися далеко не всѣ.)

Ну а коль скоро люди словесно протестуют против единственности лайков, а нѣкоторые готовы и приплатить за накрутку лайков, то разумный слѣдующій шагъ состоит в том, чтобы осознать потребность в появлении нѣкоторой формы платных лайков, а затѣмъ и удовлетворить эту потребность, для чего достаточно замѣнить кнопку лайков кнопкою донатов (или поставить их рядом, как в Твиттере соседствуют лайк и ретвит). Нетрудно догадываться, что в этом случае возглас «+100!» перестанет быть пустословием и обратится в возможность реально задонатить в сотню раз больше своей же обычной суммы доната, а побуждение уплатить кому-то другому деньги за накрутку донатов обратится в безумие перед лицом возможности просто-напросто задонатить эти деньги.

Серия кнопок «Дай рубль», «Дай три», «Дай пять», частично реализующая идею платных лайков (реализующая, по-видимому, впервые в России) появилась у Яндекс.Денег в 2006 г., то есть раньше, чѣмъ лайки в Facebook; может быть, поэтому этим кнопкам и недоставало кое-чего из того, что есть у лайков — недоставало счётчика, показывающего сумму задоначенных средств.
Бристольский профессор кафедры психологии общества утверждает, что каждый лайк вызывает чувство удовлетворения и соотвѣтствующий выброс эндорфинов, причём в Википедии в настоящее время (с марта 2016 года) это интерпретируется так, что удовлетворение приносит не только получение лайков, но и, наоборот, нажатие на кнопку «Like». Если это так и есть, то тогда, я полагаю, большое значение для этого чувства имѣетъ именно счётчик количества лайков: первый из лайкающих, должно быть, необычайно рад быть первым, а сотый или тысячный (или четыреста восемьдесят второй; круглое число нисколько не обязательно) может ощутить другое (но не менѣе радостное) чувство сопричастности к этакой-то ораве единомышленников. Если бы нажатие кнопки «Like» не сопровождалось увеличением счётчика, то оно пренепременно воспринималось бы как бесплодное, совершённое в пустоту, даже если сопровождалось бы анимацией не менѣе красочною, чѣмъ сейчас в Твиттере, и репостом не менѣе дѣйственнымъ, чѣмъ сейчас в Facebook.

В ещё большей степени счётчик необходим на кнопке для донатов, так как донат по умолчанию требует больше усилий, чѣмъ простое нажатие на кнопку (нужно же, по меньшей мѣрѣ, указать размѣръ передаваемой суммы), и оттого ещё сильнѣе должно быть разочарование в том случае, если окончание таковых усилий не приводит к ясно видному результату. Вот почему упомянутое въ послѣднемъ абзацѣ предшествующаго сообщенія отсутствие таких счётчиков на кнопках у Яндекс.Денег представляется мнѣ фатальным недостатком (ничуть не менѣе пагубнымъ, чѣмъ «монетный» дизайн, зафиксировавший размѣръ суммы пожертвований не очень задолго до кризиса, сопровождавшегося падением стоимости рублей).

И лайки, и другие формы кнопок с реакциями и со счётчиками, подсчитывающими количество нажатий, в нынешнем Telegram реализованы посредством бота @like (с мая 2016 года) и других аналогичных ему ботов. Поговаривали о том, что в дальнейшем подобные возможности появятся не в одних только ботах, но также и в клиентских программах (наподобие того, как в Discord существует механизм реакций под репликами, способный использовать эмоджи или их настраиваемые аналоги), и не просто поговаривали: в одной из клиентских программ (а именно в Telegram для iOS) нѣкоторые части реализации реакций были обнаружены в сентябре 2019 года — но пока это ни к чему в итоге не привело.

По аналогии мы можем догадываться (я-то уж точно догадываюсь), что и кнопки для донатов («платные лайки») появятся в Telegram (если вообще появятся) сперва посредством ботов, и только много лѣтъ спустя можно ждать интеграции их в клиентские программы — допустим, в форме счётчика донатов (обозначенного значком монеты) возле счётчика просмотров (обозначенного значком глаза), существующего сейчас на каналах. Но пока что такой интеграции ещё рано ждать, и даже нѣтъ никаких оснований ждать её. Напротив, разработчики Telegram достаточно ясно пообещали не заниматься интеграцией в него каких-либо платежей после запуска TON: «ожидается, что официальное приложение TON Wallet будет конкурировать с любыми другими приложениями, разработанными и предложенными третьими лицами», то есть ожидается, что после запуска TON во множестве явятся различные кошельки для хранения грамов TON.

Для гипотетической системы сбора донатов этакое отсутствие интеграции означает вот какую простую вещь: во-первых, сбор донатов будет совершаться только ботом, а во-вторых, если бот @like мог опираться (с 2016 года) на API Telegram для получения нажатий на кнопку, то бот для донатов не может и не должен ждать в Telegram никакого такого API, от которого поступало бы сообщение о факте доната. Вмѣсто него создатели таких ботов обрѣчены будут полагаться на механизмы прямого доступа к блокчейну TON и именно из блокчейна извлекать необходимую боту сумму поступивших донатов для её послѣдующаго отображения. И если для такого обращения к блокчейну пока что нѣтъ (и об этом я сожалел нѣсколько выше) никакого интерфейса командной строки (CLI), локально работающего с кошельком, то всё же есть ужé другой, облачный интерфейс — web-интерфейс на сайте TON.sh, работающий поверх HTTP.
👍1
Всякий такой автор сообщений на канале в Telegram, который пользовался ботом @like для снабжения их кнопками реакций (как и я выше), уж конечно обратил при этом внимание на то, с какою приятною простотою совершается желаемое. Достаточно скинуть текст (или файл с необязательною подписью) боту, а затѣмъ (слѣдующею репликою) скинуть ряд эмоджи, которые хочется увидеть на кнопках под текстом (или под файлом) — и бот тотчас же формирует из того и другого единое цѣлое, которое остаётся только опубликовать у себя на канале, для чего даже предназначается специальная кнопка, которую остаётся только нажать. Дальнейший подсчёт реакций ведёт сам бот, так как API Телеграма снабжает его (всякий раз при нажатии на кнопку реакции) достаточными для такого подсчёта уникальными идентификаторами сообщения и нажатой кнопки и нажавшего её пользователя.

Может ли подсчёт донатов вестись с той же простотою, что и подсчёт лайков, несмотря на то, что в предшествующем сообщении я упомянул о том, что API Телеграма не будет его поддерживать? — нѣтъ, не может: этот процесс принуждён будет слегка усложниться, и рѣчь может идти только о том, как бы не усложнить его чрезмѣрно.

Проще всего, по-видимому, было бы самомý автору вручную создать новый адрес для приёма криптовалютных средств, а затѣмъ указать его боту вслѣдъ за сообщеніемъ. Этот вариант имѣетъ то достоинство, что сам процесс пересылки криптовалюты полностью остаётся частнымъ дѣломъ между отправителем и получателем, а на долю бота остаётся только слежение за транзакциями, поступающими на указанный ему адрес, и подсчёт суммы входящих (но с игнорированием исходящих, которые произойдут, когда автор сообщения начнёт тратить донат). Никаких чрезмѣрныхъ сложностей для автора сообщений или для автора бота.

И вот этот-то самый простой вариант и оказывается погублен из-за того, что кошелёк Gram Wallet не обеспéчивает возможность создания нѣсколькихъ адресов в одном кошельке. Авторы просто не смогут создавать в кошельке новый адрес для приёма донатов, чтобы указывать этот новый адрес боту для каждого своего нового сообщения. Я даже сообщил, что впору начинать испытывать «скорбь от предвидѣнія пагубных послѣдствій», а догадываетесь ли, отчего эти послѣдствія будут наступать? — оттого, что упомянутый недостаток кошелька придётся как-то обходить, а обходить его будут кривыми и пренеприятными способами, послѣдствія же этих способов окажутся ещё того непріятнѣе.

Первый неприятный обходной путь, который приходит на ум — это возложение на бота обязанности закрыть собою тот недостаток, который имѣется в Gram Wallet. Если Gram Wallet не в состоянии создать новый адрес всякий раз, когда понадобится начать приём донатов под новым сообщением, то тогда ну и ладно! — пускай такой адрес всякий раз создаётся самим ботом. А знаете, что будет неприятным в этом случае? — не только то одно, что преизрядно усложнится исходный код такого бота (ведь ему тогда придётся не просто вести подсчёты, но и создавать криптовалютные адреса — а это ужé, можно сказать, половина пути к реализации кошелька TON пройдена!), но и то ещё (и даже прежде всего!), что тогда адрес будет создан на стороне бота, так что и отправитель доната станет посылать свою криптовалюту не автору сообщения (которому тот донат причитается), а опять же боту, то есть бот будет не только считать, но и принимать донат, и сколько от того доната в итоге передано будет автору сообщения, а сколько останется хозяину бота — это будет в полной воле того хозяина; появится, напримѣръ, возможность удерживать какой-то фиксированный процент или фиксированную сумму «на содержание бота»; болѣе того, не только появится, но даже и не сможет не появиться: если бот будет сперва принимать донат на свой адрес, а затѣмъ пересылать его на кошелёк автору сообщения, то кто ж уплатит комиссию сѣти TON за перевод? — хозяин бота; понятно же, что он пожелает удержать её с автора в полной мѣрѣ, а не то и с лихвою. Автору придётся мириться с этим или ужé самомý ставить и настраивать такого бота у себя (это ещё если появится аналог такого бота, отличающийся открытым кодом и простотою установки).
Другой обходной путь, приходящий на ум вслѣдъ предшествующему — не менѣе неприятен: он состоит в том, чтобы всё же сохранить за ботом одну только функцию подсчёта донатов, а бремя проблемы «один кошелёк — один адрес» возложить на всѣхъ тѣхъ, кто посылает донат автору сообщения. Этот обходной путь состоит в том, чтобы бот сопоставлял каждому сообщению нѣкоторый уникальный идентификатор, а при нажатии кнопки «Донатить» не только сообщал бы адрес кошелька автора сообщения (всё время один и тот же), но и рекомендовал бы снабдить перевод криптовалютных средств нѣкоторою уникальною припискою (скажем, «{W0456}» непремѣнно в фигурных скобках), чтобы донат был учтён ботом как посланный вот за это конкретное сообщение (и именно за него поощряющий этого автора криптовалютою).

Неприятная сторона этого подхода заключается в его ненадёжности. Если в предшествующих случаях всё выглядело очень просто: человѣкъ, посылающий криптовалюту, видит пред собою адрес кошелька и посылает её на этот адрес (потому что ну а куда ж ещё) — то теперь этому человѣку предписывается сдѣлать ещё и приписку, которую он может вѣдь и не сдѣлать. И на то есть у него причины. Он может счесть, что приписка — это излишний труд (тѣмъ болѣе зная, что криптовалюта и без того всё равно дойдёт ведь к автору на его кошелёк), а ещё он может сознательно избѣжать учёта этого доната ботом (учёта в качестве вознаграждения за сообщение от читателя), рассуждая внутри себя, что вознаграждает этого автора не за вот это конкретное сообщение на канале в Telegram (или не на канале, а в чате, если эта практика и до чатов дойдёт), а вознаграждает автора вообще, «как человѣка», «как личность», etc.

Такой донат является криптовалютным аналогом ужé не для лайков (оцѣнивающихъ конкретную блогозапись, фотографию, видеоролик и проч.), а для кармы — для оцѣнки всей личности пользователя, известной на нѣкоторыхъ социальных сайтах (прежде всего это Reddit за рубежом и Хабр в России) и влияющей на возможности пользователя на сайте в зависимости от отношения сообщества к пользователю. Его недостаток заключается в том, что автор принуждается принимать близко к сердцу и лично к себѣ отношение читателей: не «моё сообщение читателям понравилось», а «сам я сильнѣе сталъ нравится читателям», не «за новое сообщение моё донатят меньше, чѣмъ за прежнее», а «самогó меня невзлюбили». С одной стороны, «это и теперь конечно такъ въ строгомъ смыслѣ, но всё-таки не объявлено» (и уязвляет, когда объявлено); с другой стороны, всё-таки неудобный (слишком суммарный и слишком отложенный) показатель: чѣмъ чаще новые сообщения на канале, тѣмъ труднѣе по кармическим показателям (по сравнению с лайками) рассудить о том, какое именно из новых сообщений было принято читателями лучше или хуже прежних, и тѣмъ проще ошибиться, приняв падение или рост кармы, вызванный знакомством аудитории с одним или с несколькими прежними сообщениями, за эффект от отношения читателей к новейшим публикациям — и то же самое можно сказать об ошибках при восприятии эффекта от массового прихода новых читателей по призыву от одного из прежних, или при восприятии эффекта от оттока, совершающегося силою внешней конкуренции, а не внутреннего разочарования, и такъ далѣе. Получается, что повадно публиковать свои сообщения порѣже, чтобы эффект от каждого был отдѣльно позамѣтнѣе — а какое же это поощрение, если оно говорит автору не «пиши чаще!», а «пиши рѣже!»?

Нетрудно сопоставить и увидать, что недостатки «кармических» донатов — въ извѣстной мѣрѣ тѣ же, что и недостатки традиционной системы подписки на периодические издания, отношение к статьям в которых выражает лишь небольшая доля подписчиков (причём ругательное выражает с куда бóльшим рвением, чѣмъ хвалебное), а ориентироваться приходится на показатель слишком суммарный и слишком отложенный — на волны подписок и отписок от издания. А сопоставив, как не задаться вопросом о том, не присоединить ли к недостаткам и достоинства от подписки? — но от того присоединения, сами понимаете, получится опять же никакой не донат, а тот или иной paywall (устроенный по принципу «сперва плати, затѣмъ читай»).
👍1
Ясно видное мысленному взору фиаско, ожидающее в конце и первого, и второго обходного пути при попытке двинуться в обход того обстоятельства, что Gram Wallet не содержит средств создания нѣсколькихъ адресов в одном и том же кошельке, может означать только одно: два различных способа монетизации каналов в Telegram, дѣлающихся возможными от появления блокчейна TON и криптовалюты GRAM, окажутся возможными в разной степени. Появлению пэйўолловъ ничего особенного не препятствует, тогда как появление донатов затруднено с сáмого начала, и притом пока нѣтъ никаких оснований надеяться даже на то, что оно сдѣлается менѣе затруднённым въ дальнѣйшемъ.

Из истории XX вѣка нам извѣстно, что попытки конкуренции на неравноправных условиях непродуктивны: всѣ онѣ приходят в конце концов к заранее предрешённому результату. Хорошим историческим примѣромъ этого может служить судьба североамериканского трамвая: если сто лѣтъ назадъ (если вѣровать тому, что Снелл пишет) «практически в каждом городе Америки с населением больше 2500 человек была своя собственная система электрических дорог», то сейчас положение его многократно болѣе плачевно, и если одни винят в том обширный заговор во главе с General Motors (цѣль которого — нажиться на продаже и эксплуатации автобусов вмѣсто трамваев), то другие указывают, что этот заговор — лишь краешек краешка ещё болѣе обширной картины того, как трамвай был принесён в жертву мечте об автомобилизации правительствами городов через посредство контрактов, принуждавших к отказу от индексации платы за проѣздъ (и это на фоне инфляции), к мощению межрельсового пространства (и оттого к стоянию в общей пробке) и такъ далѣе; множество, множество факторов.

Если пристально вглядеться в нынешнее положение дѣлъ в Telegram, то также может сложиться своего рода #криптоконспирология о том, что многое (и даже неожиданно многое) устроено таким образом, чтобы после появления TONовской криптовалюты каналы монетизировалися именно через paywall, а не через донат, и что отсутствие многоадресности в кошельке Gram Wallet — это только послѣднее звено зловѣщей цѣпи.

Почему в Facebook количество реакций может достигать шести, тогда как попытка скормить шесть эмоджи боту @like приводит к появлению таких кнопок, реакции и текст на которых вообще не видны в Telegram Desktop, причём подобная проблема извѣстна с середины 2017 года, но до сих пор не нашла решения? — а это для того, чтобы приучить публику к тому, что число кнопок не должно быть больше двух или трёх, чтобы избѣгали самóй мысли о добавлении ещё одной кнопки для донатов, а вмѣсто того восторжествовал бы paywall.

Почему в Telegram предѣльная длина сообщения раньше равна была 35000 сѵмволовъ (и извѣстно сообщение 30000 сѵмволовъ длиною), но к нынешнему времени предѣлъ уменьшили в 8½ раз, так что приходится либо напрячься, разбивая продолжительную мысль на нѣсколько сообщений не болѣе чѣмъ 4096 сѵмволовъ в каждом (как я сейчас), либо (как дѣлают почти всѣ, кроме меня) записывать в Telegram только первые нѣсколько тысяч знаков, а затѣмъ приглашение «дальше читайте там-то» с гиперссылкою, ведущею на сайт Telegraph, или на Teletype, или вообще на Medium? — а это как раз для того, чтобы читатели заранее подготавливалися к тому моменту, когда «дальше читайте там-то» замѣнится на «дальше читайте за деньги», когда придёт paywall, а заодно на примѣре сайта Medium поглядели, как оно бывает (потому что на Medium свой paywall ужé есть).

Ну и такъ далѣе.

Может быть, эти истолкования этих обстоятельств и не очень справедливы, но сама угроза того, что скоро (ужé в 2020 г.) мы войдём в Telegram и увидим часть каналов доступною для чтения только за грамы — это реальность. На примѣрѣ китайского мессенджера WeChat (который кое в чём опережает Telegram: быстрее набрал миллиард пользователей, быстрее запустил видеозвонки и массовые мобильные платежи, притом выгодные оттого, что комиссией облагается только вывод средств) мы ужé видим именно такое будущее: в WeChat с середины января монетизация блогов ужé появилась — и именно в форме paywall по принципу «pay-to-read» («сперва заплати, затѣмъ читай»).
Когда я перечислял выше три фактора, прямо сейчас дѣйствующихъ в пользу грядущего появления пэйўолловъ и (или) сдерживающих появление донатов в нынешней системе обратной связи между читателями и авторами текстов в Телеграме: это и принцип «один кошелёк — один адрес» (мѣшающій создать отдѣльный адрес для каждого такого сообщения, под которым собирается донат, именно это сообщение поощряющий), это и баг десктопной невидимости текста на кнопках бота @like в случае полудюжинного количества их, это и принуждение переносить длинные тексты на внѣшніе серверы (подготавливающий массовое сознание к тому, что в 2020 году за такой переход на внѣшній сервер могут начать взимать плату хозяева сервера) — то тогда же я упомянул, что вообще-то таких факторов много.

Вот же покамест ещё один, важный: появление донатов (в форме «платных лайков») нуждается в том, чтобы наперёд появилась инфраструктура микроплатежей (и притом инфраструктура массовая, какую и обѣщаетъ нам, напримѣръ, сценарий «каждому пользователя Telegram — по кошельку Gram Wallet»), а вот paywall не слишком-то в ней нуждается.

Почему микроплатежи необходимы для поддержания «платных лайков»? — а вообразите-ка: как выглядит типичный сценарий их получения? Блоггер-мегаинфлюэнсер сочинил текст, воспламенивший сердцá сотни тысяч читателей, получил от каждого возглас «плюстыщща!!» с приложением тысячи рублей и без промедления сдѣлался от этого рублёвым мультимиллионером? — ну нѣтъ, это никакой не типичный сценарий, «требуетъ условій огромныхъ, обстоятельствъ не часто бывающихъ». А типичный сценарий скорее выглядит как-нибудь вот как: обыкновенный блоггер, читаемый не очень значительным (но и не очень незначительным) количеством читателей, сочинил за день пару-тройку сообщений cáмой обыкновенной цѣнности, так что и донаты послѣдовали без каких-либо особенных восторгов читателей и находилися в диапазоне от «плюс один!» (с приложением одного рубля) до «плюс десять!» (с приложением десяти рублей), в среднем рубля по четыре, а число донатов оказалось равным двум сотням с половиною, так что криптовалюты поднабралось на тысячу рублей — вот и день прошёл не зря (если такой умѣренный успѣхъ в среднем повторялся бы каждый божий день, то такой блоггер всё же за мѣсяцъ нажил бы порядочно — что-то около прошлогодней медианной зарплаты в России; если же не каждый и даже далеко не каждый — ну, тогда просто прибавка такая получится к обычному доходу его).

То-то и видно, что если инфраструктура не будет массовою, то неоткуда будет взяться сотням донатов.

То-то и видно ещё, что если платежи не будут именно микроплатежами (позволяющими успѣшно задонатить и десяток рублей, и рубль, и даже двадцать копеек), то обыкновенный блоггер (не мегаинфлюэнсер) устанет, пожалуй, дожидаться сторублёвых-то донатов или ещё бóльших: ничѣмъ не заслужил.

Telegram-то в мае 2017 года запустил бота @TelegramDonate для приёма донатов на своей платформе Bot Payments, которую не назовёшь микроплатёжною: размѣръ оплаты начинается от одного доллара, а комиссия (в зависимости от оператора) может и от 33 центов начинаться. Но это, во-первых, было демонстрациею возможностей платформы, а во-вторых, популярность Telegram болѣе чѣмъ на порядок превосходит популярность какого бы то ни было блоггера-мегаинфлюэнсера.

А что же paywall? — а paywall означает сбор платы за подписку на цѣлый мѣсяцъ или даже на год вперёд, так что в микроплатежах не нуждается, обычных платежей достаточно: даже сейчас (до появления криптовалюты TON) мы ужé видим гиперссылки, ведущие из Telegram куда-то туда, где «для дальнейшего чтения сперва заплати́те»: такие гиперссылки ставят поставщики платной информации (ну, напримѣръ, @bloomberg), и такие гиперссылки ставят публицисты, сотрудничающие с платными сайтами (ну, напримѣръ, @kashinguru), и такие гиперссылки всё чаще ставят блоггеры ещё болѣе обыкновенные, просто уткнувшиеся в нынешний 4096-сѵмвольный предѣлъ в Телеграме и решившие утащить остаток текста не на бесплатные Telegraph или Teletype, а на Medium, у которого paywall реально есть прямо сейчас. Число таких блоггеров растёт и будет дальше расти.
🐦 Опубликован очередной сборник моих твиттеровских микроблогозаписей.
🐦 Опубликован очередной сборник моих твиттеровских микроблогозаписей.

Изрядная их часть — ретвиты тѣхъ микроблогозаписей, которыми Дарья Беседина рассказывала про велоконгресс, в Финляндии происходящий.
Позавчера (10 февраля) я возвратился к рассмотрению эффекта Кена Бёрнса, то есть зрелищного плавного движения видеокадра по болѣе крупному изображению, заранее созданному художником или фотографом — движения, обеспечивающего болѣе пристальное вглядывание зрителя в изображение, а также способного преодолеть неравенство пропорций видеокадра и изображения (напримѣръ, вертикального портрета) или сглаживать то обстоятельство, что исходный материал — статическая картинка, а не видео (напримѣръ, в документальных фильмах об исторических периодах, предшествующих появлению кинематографа, или в анимационных фильмах, бюджетом которых не предусматривается непрестанная сакуга).

Прежде (в апреле 2019 года) я упоминал в Твиттере об этом эффекте в связи с тем, как он широко употребляется в современном #аниме и как работа программы Overmix, противоположная этому эффекту, позволяет по отрывку из аниме реконструировать крупное (многопиксельное) изображение, послужившее основою для того отрывка.

Результат такой реконструкции позволяет, во-первых, сполна полюбоваться им (окидывая взглядом всё изображение цѣликомъ — и притом не только в том направлении и не только с той скоростью, которые предусматривалися перемещением рамки кадра аниме по изображению), и это радует. Кроме этого он позволяет с не меньшей лёгкостью также и огорчиться, когда сполна подѣлиться с читателями своею многопиксельною радостью не получится, а придётся вмѣсто того натолкнуться на предельный размѣръ иллюстраций в Твиттере (где они уменьшаются до 2048 пикселов по большей стороне) и в Телеграме (где они уменьшаются до 1280 пикселов по большей стороне, не считая передачи «как файл») и заодно столкнуться с накоплением ошибок сжатия.

Позавчера до меня начало доходить, что если результатам работы Overmix (противоположной эффекту Кена Бёрнса) поневоле приходится натыкаться на ограничения в Твиттере и в Телеграме, то тогда сам эффект Кена Бёрнса я могу использовать как средство для преодоления тѣхъ же ограничений.

Именно так оно и получилось.

Напримѣръ, Twitter не очень подходит для пространного цитирования обширных страниц других сайтов. Привести такую цитату текстом сложно оттого, что текст одной микроблогозаписи ограничивается 280 символами, и даже текст составного твитшторма (который ещё надо составить повозиться) ограничивается двадцатью пятью такими репликами за один раз, это 7000 сѵмволовъ. Привести такую цитату скриншотом сложно оттого, что длинный скриншот (≈10 тысяч пикселов в высоту) будет чрезмѣрно ужат, даже если его нарѣзать на четыре ≈равныя части. Привести такую цитату голосом помѣшаетъ то, что Twitter (в отличие, напримѣръ, от Telegram) не поддерживает публикацию голосовых сообщений, а ограничивается только текстовыми с возможностью прикладывать к ним изображения или видеозаписи.

И тут-то и спешит нам на помощь эффект Кена Бёрнса: всё-таки можно сдѣлать изрядно длинный скриншот сайта и затѣмъ выложить в Twitter, если создать такую видеозапись, на которой тот скриншот будет плавно прокручиваться — и это можно будет даже сопроводить собственным устным комментарием (хотя и не долѣе 140 секунд, потому что это предѣлъ длины твиттеровских видеозаписей). Именно это я и сдѣлалъ в своей микроблогозаписи об откровениях Ивашова.

Ещё примѣръ: 410чан (как и многие, многие имиджборды) также не допускает публикации голосовых сообщений, а ограничивается только текстовыми с возможностью прикладывать к ним изображения или видеозаписи. Что ж дѣлать, если захочется о нѣкоторомъ ранобэ сказать голосом? — опять же получается, что поможет эффект Кена Бёрнса: можно на плавное прокручивание обложки такого ранобэ наложить свой голос, то-то и выйдет видеозапись, готовая к публикации. И опубликовал.

Telegram занижает (до нечитаемого) размѣръ скриншота страницы сайта болѣе чѣмъ двухтысячепиксельной высоты, опубликованного «как картинка» (а под Android — и «как файл» тоже)? — опять же можно прибегнуть к эффекту Кена Бёрнса, выложить в чате видеоролик с прокручивающеюся страницею, который не подвергнется пережатию, да ещё можно будет голосовой комментарий наложить на него. И я выложил.
Можно видеть (и вижу), что в двух из трёх приведённых выше примѣровъ: и в Twitter, и на 410чане — дѣлается второй шаг по тому же пути («если запрещены звукозаписи, но разрешены видеозаписи, то надо дѣлать видеозаписи из звукозаписей»), по которому первым шагом было наложение звука на видеоряд, состоящий из повторений одной и той же иллюстрации (напримѣръ, наложение песни на обложку её альбома). Готовые рецепты для такого наложения, совершаемого посредством вызова FFmpeg с соотвѣтствующею командною строкою, давал на Гитхабе разработчик, действовавший под псевдонимом «Питуз», ещё в 2016 году; а в апреле 2018 года и сам я выложил на 410чане болѣе современный аналог его рецепта.

И раз уж для первого шага (для создания видео наложением звука на неподвижную картинку) с 2016 года есть готовые рецепты, то тогда и для второго шага (а именно для создания видео наложением звука на картинку, плавно движущуюся для эффекта Кена Бёрнса) хочется имѣть готовые рецепты.

Но по дороге к обретению таких рецептов ожидает нѣкоторая драма. Суть её в том, что в Википедии констатируется, что эффект Кена Бёрнса иначе зовётся попросту «pan and zoom» — и сейчас (возможно, именно под влиянием такого синонимического названия) результаты погугливания по словам «FFmpeg Ken Burns effect» изобилуют примѣрами примѣненія того фильтра FFmpeg, который примѣрно так и называется: zoompan. И попадающаяся первою в результатах погугливания блогозапись «Ken Burns Effect Slideshows with FFMPeg», и дальнейшие результаты с сайтов «Stack Overflow» и «Super User» настойчиво рекомендуют именно zoompan. Между тѣмъ zoompan подходит для этого эффекта очень худо, так как начинает своё дѣло с того, что автоматически (и притом, по-видимому, неотключаемо) приводит пропорции исходного изображения к пропорциям конечного кадра; автор блогозаписи «Ken Burns Effect Slideshows with FFMPeg» даже вынужден был упоминание именно этого факта помѣстить в начало второго раздѣла её («Handling different aspect ratios»), гдѣ и предлагать наперёд либо обрѣзать исходное изображение по пропорциям конечного кадра, либо дополнять чёрными полями до прямоугольника, имеющего пропорции конечного кадра — то и другое, конечно же, выглядит как нелѣпый «костыль», который должен был тотчас же наводить на мысль об отбрасывании zoompan и о поиске вмѣсто того болѣе годных средств для достижения желаемого. (У такого отбрасывания есть и другой повод — извѣстный баг в zoompan, приводящий к недостаточной плавности движения кадра видео по исходному изображению.)

Отбросив всѣ такие (сильно подпёртые костылями) рецепты употребления zoompan, мнѣ для достижения эффекта Кена Бёрнса в каждом из трёх приведённых выше примѣровъ (в которых кадр видео плавно движется вертикально вниз вдоль болѣе высокого изображения) достаточно было применить только два других фильтра FFmpeg: фильтр scale (которым достигалась zoom-часть эффекта zoompan) и фильтр crop (которым достигалась pan-часть).

Вот так в итоге выглядит у меня команда (для командной строки), вызывающая FFmpeg для создания видеоролика для Твиттера:

ffmpeg -hide_banner -loop 1 -r 60 -i %1 -i %2 -to %3 -vf "scale=1280:-1:flags=lanczos,crop=h=720:y=(in_h-out_h)*n/(60*%3)" -c:v libx264 -crf 5 -b:v 0 -b:a 256k -preset veryslow -tune animation -pix_fmt yuv420p -profile:v baseline -level 3.0 -movflags +faststart -shortest kbdtwi.%3.mp4

А вот команда, создающая видео для Telegram:

ffmpeg -hide_banner -loop 1 -r 60 -i %1 -i %2 -to %3 -vf "scale=1280:-1:flags=lanczos,crop=h=720:y=(in_h-out_h)*n/(60*%3)" -c:v libx264 -crf %4 -b:v 0 -b:a 256k -preset veryslow -tune animation -pix_fmt yuv420p -profile:v baseline -level 3.0 -movflags +faststart -shortest kbdtg.%4.mp4

А вот команда, создающая видео для имиджбордовой публикации:

ffmpeg -hide_banner -loop 1 -r 60 -i %1 -i %2 -to %3 -vf "scale=1280:-1:flags=lanczos,crop=h=720:y=(in_h-out_h)*n/(60*%3)" -crf %4 -b:v 0 -c:a copy -pix_fmt yuv420p -tile-columns 2 -threads 8 -shortest kbd.%4.webm

Смысл параметров:

%1 — имя файла иллюстрации

%2 — имя файла звукозаписи

%3 — длина звукозаписи в секундах

%4 — CRF (constant rate factor)
Всѣ три приведённые выше команды составлены мною таким образом, чтобы создавалась видеозапись, насчитывающая 60 кадров в секунду при размѣрахъ кадров, равных 1280×720 пикселов. Эта частота кадров необходима для того, чтобы эффект Кена Бёрнса выглядел по-настоящему плавным, то есть чтобы отдѣльные межкадровые движения были малопиксельными (желательно — вообще однопиксельными), а промежутки между такими движениями выглядели достаточно равными: то и другое вполне достигается именно при 60 кадрах в секунду, так как и промежутки выглядят достаточно равными (с прибавлением не болѣе шестидесятой доли секунды, что почти не замѣтно), и движения могут быть однопиксельными (скажем, 140 секунд по 60 кадров в секунду способны вмѣстить до 8400 однопиксельных движений, а этого с избытком достаточно для изображений среднего размѣра и даже болѣе чѣмъ среднего). А такой размѣръ кадра является необходимостью только для Твиттера (Twitter не принимает видеозаписи больше 1280×1024, что и означает для кадра с пропорциями 16:9 необходимость вписываться в 1280×720), но я решил использовать именно его также и в Telegram, и на имиджбордах, потому что есть печальная вѣроятность того, что кадры большего размѣра (напримѣръ, FullHD 1920×1080) при этой частоте кадров будут у нѣкоторыхъ зрителей подтормаживать: всё же 60 кадров в секунду — это не 25 и не 30. (А у нѣкоторыхъ зрителей устройства управятся с 60 кадрами FullHD в секунду, но адски нагреются и потратят много энергии.)

Первая из моих команд (которая для Twitter) не содержит параметр «%4», а вмѣсто того использует фиксированное и притом достаточно малое значение CRF (равное 5), что означает высокое качество и высокий битрейт (и объём) создаваемой видеозаписи. Это объясняется тѣмъ, что Twitter достаточно ясно рекомендует загружать видеозаписи достаточно большого объёма (минимум пять мегабитов в секунду), которые затѣмъ ужé сам Twitter переужмёт и сохранит у себя в разном качестве для зрителей с разными каналами связи. А вот в Telegram и на имиджбордах видеозаписи, загруженные пользователями, используются «как есть», поэтому в командах для создания видеозаписей, предназначаемых для Telegram и для имиджборд, я предусмотрел указание CRF в явном виде. На имиджбордах наиболѣе значимым ограничением, способным принудить к высокому CRF и небольшому битрейту, является объём файла (ограниченный чаще всего нѣсколькими мегабайтами или десятками мегабайтов); Telegram же ограничивает объём файла полутора гигабайтами (так что этим ограничением чаще всего можно пренебречь), однако же видеофайлы с крупными битрейтами всё равно менѣе удобны, так как они оказываются недоступными для просмотра, совершаемого зрителями без промедления (по мѣрѣ скачивания видеофайла), потому что скорость скачивания, понятное дѣло, должна для такого просмотра быть больше, чѣмъ битрейт. (И каналы сотовой связи, и скорости телеграмных серверов ограничены примѣрно мегабайтом в секунду. Очень, очень примѣрно.)

Параметр «-c:a copy» в третьей команде предполагает для звукозаписи возможность быть записанною в видеоконтейнер WebM простым копированием (без какого-либо декодирования и послѣдующаго кодирования другим аудиокодеком). Всякий, кто когда-либо взглядывал в гугловскую документацию по контейнеру WebM, уж знает, что такая возможность существует только для двух аудиокодеков: для Vorbis и для Opus — к счастью, мнѣ вполне достаточно Telegram Desktop для того, чтобы имѣть возможность сперва записать голосовое сообщение (напримѣръ, в папке «Saved Messages» в Telegram), а затѣмъ сохранить его в файл в формате Opus, который подходит именно для такого употребления в WebM.

Длина звукозаписи в секундах (параметр «%3» в каждой из команд) может быть указана на одну или двѣ секунды меньше действительной, чтобы отрѣзать звук движения, совершённого для выключения микрофона. Если я захочу что-либо прибавить к своему голосовому сообщению, а затѣмъ сочту это прибавление ненужным (или просто не помещающимся в 140-секундный предѣлъ длины видеозаписей в Twitter), то хвост звукозаписи опять же можно будет отрѣзать уменьшением именно этого параметра команды.