animeloops.7z
44.1 MB
Моя непреходящая досада от упомянутой выше драмы закрытия сайта animeloop сводится к тягостному переживанию двух обстоятельств:
① Раздобывание готовой сборки animeloop для Windows буквально «висѣло на волоске»: таких сборок существовало всего двѣ штуки (в каждой по два архива), и если бы сборщик счёл своё дѣло сдѣланнымъ (и стёр свои форки) опосля того, как его код был принят в основной репозиторий, то тогда я не скачал бы нифигушеньки.
② Результаты работы автора animeloop (то есть цитаты из аниме, подходящие для зацикливания) располагались на его сайте и сгинули вмѣстѣ с сайтом, поэтому с ними всё ещё хуже (скачать их никоим образом нельзя ниоткудова).
Сознавая то и другое обстоятельство, я использую Telegram в качестве архива страховочных копий, выложив на мой канал каждый из четырёх архивов сборок.
К ним я прилагаю архив из почти полутора сотен видеоцитат из аниме, подходящих для зацикливания, лично мною скачанных с сайта Animeloop во время моего первоначального знакомства с этим сайтом в 2018 и в 2019 году. Так как на сайте эти цитаты были безымянными (их сопровождало указание только аниме-первоисточника и тѣхъ ѿмѣтокъ начального и конечного времени, по которым онѣ были ѿрѣзаны), то в прилагаемом архиве я переименовал их по собственному усмотрению для удобства поиска.
(Этот архив — «капля в море»: на сайте Animeloop были сотни зацикленных цитат почти для каждого проанализированного аниме.
Но пусть хоть что-то сохранится.)
① Раздобывание готовой сборки animeloop для Windows буквально «висѣло на волоске»: таких сборок существовало всего двѣ штуки (в каждой по два архива), и если бы сборщик счёл своё дѣло сдѣланнымъ (и стёр свои форки) опосля того, как его код был принят в основной репозиторий, то тогда я не скачал бы нифигушеньки.
② Результаты работы автора animeloop (то есть цитаты из аниме, подходящие для зацикливания) располагались на его сайте и сгинули вмѣстѣ с сайтом, поэтому с ними всё ещё хуже (скачать их никоим образом нельзя ниоткудова).
Сознавая то и другое обстоятельство, я использую Telegram в качестве архива страховочных копий, выложив на мой канал каждый из четырёх архивов сборок.
К ним я прилагаю архив из почти полутора сотен видеоцитат из аниме, подходящих для зацикливания, лично мною скачанных с сайта Animeloop во время моего первоначального знакомства с этим сайтом в 2018 и в 2019 году. Так как на сайте эти цитаты были безымянными (их сопровождало указание только аниме-первоисточника и тѣхъ ѿмѣтокъ начального и конечного времени, по которым онѣ были ѿрѣзаны), то в прилагаемом архиве я переименовал их по собственному усмотрению для удобства поиска.
(Этот архив — «капля в море»: на сайте Animeloop были сотни зацикленных цитат почти для каждого проанализированного аниме.
Но пусть хоть что-то сохранится.)
😢5🔥4
Ретвитнул, в частности, два обстоятельства:
① «Умные остановки» в Перми называют по ночам свой IP-адрес вслух.
② Многие сайтостроители 20 лѣтъ назад избѣгали употребления картинок PNG, руководясь мрачными багами, порождавшими различия гамма-коррекции во браузере и в операционной системе, вслѣдствіе которых изображение получалось ярче или темнѣе желаемого.
Я также ретвитнул очередную порцию Twitter Files, которая рассказывает про дѣятельное стремление властей Сѣверо-Американскихъ Соединённых Штатов подавить распространение в социальных сѣтяхъ свѣдѣній о побочных эффектах и о иных неудачах вакцинации. Ясно видно, что это была борьба ужé не с фейковыми, а просто с политически неудобными новостями.
Please open Telegram to view this post
VIEW IN TELEGRAM
ipfs.io
Twitter: @FidonetRunes
No Context Chick Tracts (@No_Context_JTC) 2023-03-10 15:10:23 (UTC) https://twitter.com/No_Context_JTC/status/1634210093091766274 Matt Taibbi (@mtaibbi) 2023-03-17 14:00:16 (UTC) https://twitter.com/➡
Ретвитнул, в частности, вот какие обстоятельства:
① Сайт GitHub перемѣнилъ ключ RSA своего хоста SSH.
② Если свѣтить на садовую соню ультрафиолетовою лампою, то соня начинает испускать розовое флуоресцентное свѣченіе.
③ Маск объявил, что опосля субботы на этой недѣлѣ (15 апрѣля) только сообщения верифицированных пользователей будут показываться на вкладке рекомендаций («For You»). Ну и ещё сообщения пользователей, подписка на которых ужé оформлена. Меня это не побеспокоит, поскольку читаю хронологическую ленту (вкладку «Following»).
④ Юдковский присовѣтовалъ властям Сѣверо-Американскихъ Соединённых Штатов истреблять сколько-нибудь мощные вычислительные кластеры других стран авианалётами, причём с готовностью дойти до обмѣна ракетно-термоядерными ударами (под предлогом борьбы против «сильного AI», но мы должны понимать, что предлог этот выглядит натянутым и что человѣкъ этот — еврей). Тамошнія власти, тем временем, хотят протащить законопроект, сулящий четвертьмиллионные штрафы и десятилѣтія тюряги за попытку использования средств VPN для обхода блокировок в Интернете. То есть путинистические блокировки начинают рѣзко выглядѣть мяконькими по сравнению с байденовскими. В среднесрочной перспективе (то есть если байденовские Штаты сдѣлаются сперва байденистскими, а затѣмъ и байденистическими) тамошним гражданам ещё Сѣверная Корея недосягаемым раем свободы и счастья покажется. И помощь с воздуха никто, никто не окажет.
⑤ Популярная картинка про сокрытую под водою часть айсберга позволяет предполагать, что нѣчто ещё болѣе тайное (и притом тяжёлое) было сокрыто (посредством вмораживания) в подводной части этого айсберга.
⑥ В шестидесятые годы около 3% создаваемых кинофильмов оказывалися неспособными обойтись без того, чтобы показать кого-нибудь из персонажей тонущим в зыбучем песке (или хотя бы в глубокой грязи), но затѣмъ этот творческий приём нѣсколько пріѣлся и вышел из моды.
⑦ Создаются самокаты высокоскоростные или четырёхколёсные. Вѣроятно, со временем даже сочетание этих двух достоинств сдѣлается возможным.
⑧ Рабочий оборонного предприятия потратил сотню тыщщ рублей на костюм, сшитый для него по моде девятнадцатого столѣтія, и расхаживает в том костюме по улицам и на работу.
⑨ Из переизданий извѣстнаго пособия «Player’s Handbook» по настольным ролевым играм системы «Dungeons & Dragons» будет исключено упоминание полукровок (напримѣръ, полуэльфов), признанное расистским.
⑩ От космического телескопа «Джеймс Уэбб» пришло подтверждённое открытие нѣсколькихъ ѿдалённыхъ галактик, возраст которых менѣе чѣмъ на полмиллиарда лѣтъ уступает возрасту Вселенной.
⑪ Компания AMD объявила о создании специализированной видеокарты для таких сёрверов, которые предназначены для обслуживания видеопотока от стримеров к их зрителям (на таких сайтах, как Twitch) или же для поддержки «облачных» компьютерных игр (которые игрок запускает не у себя на компьютере, так что видеопоток приходит извне). Эта новая видеокарта способна кодировать «на лету» до тридцати двух видеопотоков одновременно, для каждого из них обрабатывая каждую секунду до шестидесяти кадров fullHD (по 1920×1080 пикселов в кадре) и преобразуя их в видеоформат AV1, обеспечивающий наилучшее соѿношеніе качества и объёма данных.
⑫ Заснят моноколёсный ѣздокъ, который вёз на плече бессознательного пассажира.
⑬ Кисловодск обзаведётся сразу двѣнадцатью памятниками Чебурашке.
⑭ Орки в джексоновской экранизации «Властелина Колец» создавались по образу и подобию Харви Вайнштейна.
⑮ Миклухо-Маклай пользовался лампою, лично им изготовленною из черепа его возлюбленной.
⑯ Фраза Джокера «всё, что нас не убивает, дѣлаетъ нас страннѣе» имѣетъ мрачное мультивёрсное обоснование, опирающееся на гипотезу о квантовом безсмертіи.
⑰ Ряд бѣлыхъ пляжных тентов, в закрытом виде приобретающих коническую форму, по ночам способен напоминать собою тайное собрание ку-клукс-клана.
Также я ретвитнул вот какую эпиграмму:
Там, где народ заставляют глотать насекомых,
Меньше заметна рептильность властей предержащих.Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1
Устремив свой мысленный взор в прошлое к тому историческому моменту, когда технология видеозаписи перестала быть принадлежностью «внутренней кухни» телевизионщиков и вмѣсто того наводнила міръ видеопроигрывателями, я с удивлением вижу, что во всѣ первыя десятилѣтія технологии таких видеозаписей руководились представлением о том, что перед записью каждый кадр видеозаписи можно сильно сплюснуть по горизонтали, а при просмотре растянуть его обратно.
Правда, довольно сложно в точности узнать, какими были ограничения кадра первого из популярных стандартов видеозаписи, а именно видеокассет VHS (стандарт 1976 года): число строк кадра этой системы опредѣлялося используемым телевизором (480 строк для американских телевизоров NTSC, 576 строк для европейских телевизоров PAL) и имѣло конкретный физический смысл (это буквально строки, проходимые электронным лучом в трубке тогдашних телевизоров), но вот понятие «число пикселов в строке» не имѣло конкретного значения для тогдашних аналоговых сигналов, поэтому его значение спорно. Какъ извѣстно, Википедию время от времени редактируют; и доредактировалися до того, что сегодня про строки VHS в ней приведены сразу двѣ оцѣнки. Первая из них сообщает, что горизонтальная чёткость равнялася 240 твл (а значит, 240×4×⅓=320 пикселов в каждой строке на тогдашних экранах 4:3). Вторая оцѣнка, ссылаясь на пособие «DVD Demystified», сообщает, что записываемый на магнитную ленту видеосигнал содержал по 333 пикселов в строчках кадров NTSC или по 335 пикселов в строчках кадров PAL. (По-видимому, автор этой оцѣнки счёл горизонтальную чёткость равною ≈250 твл.) Если же вмѣсто Википедии читать сайт Digital FAQ, то тамошняя оцѣнка числа пикселов на каждой строке VHS окажется оцѣночною («250—300») и меньшею каждой из предшествующих.
Для каждой из этих оцѣнокъ мы обнаруживаем кадр VHS сплюснутым по горизонтали ≈двукратно или ещё болѣе (для 480 строк несплюснутым был бы кадр 640×480 пикселов, как в VGA). Википедия прибавляет к этому упоминание того, что цвѣтностная горизонтальная чёткость была всего-навсего сорокапиксельною. Если считать линию содержащею 320 пикселов, то можно представить, что каждые 8 пикселов оказывались одного цвѣта (что напоминает конфликт атрибутов в графических режимах тогдашних домашних компьютеров); реальная ситуация была, разумѣется, сложнѣе, поскольку цвѣта размазывалися несовершенствами аналогового тракта.
Слѣдующимъ весьма популярным стандартом видеозаписей слѣдуетъ считать видео DVD (стандарт 1996 года). О нём в Википедии пишут (но ужé в точности, поскольку видеосигнал цифровой), что DVD допускает (для экономии) ≈половинное горизонтальное разрѣшеніе: 352×480 пикселов для NTSC, 352×576 пикселов для PAL или для SÉCAM. (На вышеупомянутой странице Digital FAQ именно такое число пикселов рекомендуют использовать при оцифровке VHS.) Причём в Википедии эта возможность надписана словами «China Video Disc resolution, 4:3».
Если оттудова перейти по гиперссылке, разъясняющей понятие «China Video Disc», то тогда становится видно, что при создании стандарта Super Video CD (он же SVCD) в 1998 году в него были включены китайские наработки формата Chinese Video Disc (он же CVD), оперативно созданного к 1997 году съ намѣреніемъ откликнуться на появление DVD в предшествующем (1996) году и обеспечить возможность записи на CD видеофайлов в экономном DVD-совмѣстимомъ разрѣшеніи (352 пиксела в строке) в DVD-совмѣстимомъ видеоформате (H.262) с почти совмѣстимымъ звуком (MP2, но с частотою дискретизации 44,1 кГц вмѣсто DVDшных 48 кГц). За счёт этого, с одной стороны, вертикальное разрѣшеніе удвоили по сравнению с прежними CD (в Википедии пишут, что на прежних Video CD было 352×240 пикселов для NTSC, 352×288 пикселов для PAL или для SÉCAM) и перешли к формату H.262 (вмѣсто MPEG-1 на обычных Video CD). С другой стороны, путём дичайшего видеосжатия продолжили запихивать видео на CD, оттянули неизбѣжность перехода на DVD.
В Архиве Интернета сохранилось упоминание и о том, что ещё в 2009 году сплюснутыми по горизонтали (до 544×576 пикселов) были кадры нѣсколькихъ каналов британского цифрового телевѣщанія.
Правда, довольно сложно в точности узнать, какими были ограничения кадра первого из популярных стандартов видеозаписи, а именно видеокассет VHS (стандарт 1976 года): число строк кадра этой системы опредѣлялося используемым телевизором (480 строк для американских телевизоров NTSC, 576 строк для европейских телевизоров PAL) и имѣло конкретный физический смысл (это буквально строки, проходимые электронным лучом в трубке тогдашних телевизоров), но вот понятие «число пикселов в строке» не имѣло конкретного значения для тогдашних аналоговых сигналов, поэтому его значение спорно. Какъ извѣстно, Википедию время от времени редактируют; и доредактировалися до того, что сегодня про строки VHS в ней приведены сразу двѣ оцѣнки. Первая из них сообщает, что горизонтальная чёткость равнялася 240 твл (а значит, 240×4×⅓=320 пикселов в каждой строке на тогдашних экранах 4:3). Вторая оцѣнка, ссылаясь на пособие «DVD Demystified», сообщает, что записываемый на магнитную ленту видеосигнал содержал по 333 пикселов в строчках кадров NTSC или по 335 пикселов в строчках кадров PAL. (По-видимому, автор этой оцѣнки счёл горизонтальную чёткость равною ≈250 твл.) Если же вмѣсто Википедии читать сайт Digital FAQ, то тамошняя оцѣнка числа пикселов на каждой строке VHS окажется оцѣночною («250—300») и меньшею каждой из предшествующих.
Для каждой из этих оцѣнокъ мы обнаруживаем кадр VHS сплюснутым по горизонтали ≈двукратно или ещё болѣе (для 480 строк несплюснутым был бы кадр 640×480 пикселов, как в VGA). Википедия прибавляет к этому упоминание того, что цвѣтностная горизонтальная чёткость была всего-навсего сорокапиксельною. Если считать линию содержащею 320 пикселов, то можно представить, что каждые 8 пикселов оказывались одного цвѣта (что напоминает конфликт атрибутов в графических режимах тогдашних домашних компьютеров); реальная ситуация была, разумѣется, сложнѣе, поскольку цвѣта размазывалися несовершенствами аналогового тракта.
Слѣдующимъ весьма популярным стандартом видеозаписей слѣдуетъ считать видео DVD (стандарт 1996 года). О нём в Википедии пишут (но ужé в точности, поскольку видеосигнал цифровой), что DVD допускает (для экономии) ≈половинное горизонтальное разрѣшеніе: 352×480 пикселов для NTSC, 352×576 пикселов для PAL или для SÉCAM. (На вышеупомянутой странице Digital FAQ именно такое число пикселов рекомендуют использовать при оцифровке VHS.) Причём в Википедии эта возможность надписана словами «China Video Disc resolution, 4:3».
Если оттудова перейти по гиперссылке, разъясняющей понятие «China Video Disc», то тогда становится видно, что при создании стандарта Super Video CD (он же SVCD) в 1998 году в него были включены китайские наработки формата Chinese Video Disc (он же CVD), оперативно созданного к 1997 году съ намѣреніемъ откликнуться на появление DVD в предшествующем (1996) году и обеспечить возможность записи на CD видеофайлов в экономном DVD-совмѣстимомъ разрѣшеніи (352 пиксела в строке) в DVD-совмѣстимомъ видеоформате (H.262) с почти совмѣстимымъ звуком (MP2, но с частотою дискретизации 44,1 кГц вмѣсто DVDшных 48 кГц). За счёт этого, с одной стороны, вертикальное разрѣшеніе удвоили по сравнению с прежними CD (в Википедии пишут, что на прежних Video CD было 352×240 пикселов для NTSC, 352×288 пикселов для PAL или для SÉCAM) и перешли к формату H.262 (вмѣсто MPEG-1 на обычных Video CD). С другой стороны, путём дичайшего видеосжатия продолжили запихивать видео на CD, оттянули неизбѣжность перехода на DVD.
В Архиве Интернета сохранилось упоминание и о том, что ещё в 2009 году сплюснутыми по горизонтали (до 544×576 пикселов) были кадры нѣсколькихъ каналов британского цифрового телевѣщанія.
👍5
Два дня назад со мною случилась ситуация досады и ярости, отчасти подобная той, которую изображает мем про ненагугливаемую проблему.
14 апрѣля Twitter обрадовал покупателей своей платной услуги (Twitter Blue) новою возможностью публикации таких микроблогозаписей, которыя вообще-то отнюдь уж не «микро», потому что способны будут вмѣщать до десяти тыщщ сѵмволовъ. Частью этой услуги притом сдѣлается возможность выдѣлять текст курсивом или повышенною жирностию в Твиттере.
Постоянные читатели моего канала могут помнить, что наращивание длины твиттеровских сообщений в прошлом было для меня источником нѣкотораго беспокойства: когда оно было ещё только кратким сообщением о том, что Маск доведёт эту длину до 4000 сѵмволовъ, тогда въ послѣднемъ абзаце моего сообщения 13 декабря прошлого (2022) года я размышлял, не распухнут ли вязáнки твиттеровских сообщений, которые я выкладываю в IPFS и затѣмъ гиперссылкою на канал. Позже (в начале моего сообщения 20 февраля) я убедился наглядно, что ничего для меня не измѣнилось с приходом 4000-сѵмвольности, поскольку Twitter начал отдавать усечённые тексты сообщений через тот API (программный интерфейс), которым я их забираю оттудова.
Опираясь на это знание, позавчера я ужé не очень беспокоился о том, сможет ли Twitter нормально обрѣзать десятитысячесѵмвольное сообщение (если смог обрѣзать 4000 сѵмволов, то тогда и с десятком тыщщ должен управиться невозбранно), однако оставалась нѣкоторая неясность насчёт жирного или курсивного текста: какую форму обретёт размѣтка такого текста (будет ли это нѣкоторое подобие языка HTML, или Markdown, или BBCode?), сможет ли мой обработчик переварить её?
Я запустил своё средство копирования твиттеровских сообщений в отладочном режиме (который много лѣтъ назад предусмотрѣлъ как средство, позволяющее поглядѣть на JSON-отклик, порождаемый твиттеровским сёрвером, в «сыром» виде) и приготовился анализировать результат.
Результат оказался крайне обескураживающим: Twitter не допустил моё средство читать сообщения, кратко сообщив о невозможности авторизации и приложив номер ошибки (32).
Поискав (в самóм же Твиттере) по словосочетанию «error 32», я увидал только одно подходящее сообщение. Его автор обращался 6 апрѣля к своим читателям с вопросом о том, не знает ли кто-нибудь способ исправить твиттеровскую ошибку 32, но ужé въ слѣдующемъ сообщении собрался просто ждать с мыслью о том, что и у других ботов аналогичная проблема.
Так как это сообщение отправлено было от имени бота (учётная запись которого имѣла помѣтку «Automated»), притом в среднем создающего по два новых сообщения ежечасно, то я сразу принуждён был остановиться в первоначальном намѣреніи перелопачивать каждое из его сообщений в поисках того, долго ли автору бота пришлось тогда дожидаться и только ли ожиданием рѣшилася проблема.
Я поневоле принялся также ждать (или, вѣрнѣе, отложил проблему до другого дня и занялся другими дѣлами), хорошо сознавая, что если откладывание не поможет, то тогда, может быть, придётся запускать мой обработчик по новым правилам Твиттера, требующим того, чтобы автор-человѣкъ создавал своему боту новую ѿдѣльную учётную запись: пока что это касалось только таких средств, которые чего-нибудь автоматически пишут в Twitter (а не просто читают, как мой обработчик), однако казалось вѣроятнымъ, что одному нововведению в Твиттере (дальнѣйшему росту длины сообщений) может в тот же день сопутствовать другое (дальнѣйшее ужесточение автоматизации), если их накатили совмѣстно.
К счастью, всё обошлось: ошибка 32 пропала сама собою, мой обработчик вдругорядь заработал, а Twitter оказался отдающим через API не просто усечённые сообщения, но и избавленные от размѣтки (так что обычным выглядит в них и курсив, и жирный текст). Слѣдовательно, я могу опять (как было и в феврале) ничего не мѣнять в исходном коде обработчика.
Для кого-то этот рассказ — просто «единичный случай» и даже, может быть, «ошибка выжившего»; но кому-нибудь другому удастся извлечь из моей истории тот же совѣтъ, которым Александр Дюма-отец завершил роман про Монте-Кристо:
— Ждать и надѣяться!
☦️ ХРИСТОСЪ ВОСКРЕСЕ! ☦️
14 апрѣля Twitter обрадовал покупателей своей платной услуги (Twitter Blue) новою возможностью публикации таких микроблогозаписей, которыя вообще-то отнюдь уж не «микро», потому что способны будут вмѣщать до десяти тыщщ сѵмволовъ. Частью этой услуги притом сдѣлается возможность выдѣлять текст курсивом или повышенною жирностию в Твиттере.
Постоянные читатели моего канала могут помнить, что наращивание длины твиттеровских сообщений в прошлом было для меня источником нѣкотораго беспокойства: когда оно было ещё только кратким сообщением о том, что Маск доведёт эту длину до 4000 сѵмволовъ, тогда въ послѣднемъ абзаце моего сообщения 13 декабря прошлого (2022) года я размышлял, не распухнут ли вязáнки твиттеровских сообщений, которые я выкладываю в IPFS и затѣмъ гиперссылкою на канал. Позже (в начале моего сообщения 20 февраля) я убедился наглядно, что ничего для меня не измѣнилось с приходом 4000-сѵмвольности, поскольку Twitter начал отдавать усечённые тексты сообщений через тот API (программный интерфейс), которым я их забираю оттудова.
Опираясь на это знание, позавчера я ужé не очень беспокоился о том, сможет ли Twitter нормально обрѣзать десятитысячесѵмвольное сообщение (если смог обрѣзать 4000 сѵмволов, то тогда и с десятком тыщщ должен управиться невозбранно), однако оставалась нѣкоторая неясность насчёт жирного или курсивного текста: какую форму обретёт размѣтка такого текста (будет ли это нѣкоторое подобие языка HTML, или Markdown, или BBCode?), сможет ли мой обработчик переварить её?
Я запустил своё средство копирования твиттеровских сообщений в отладочном режиме (который много лѣтъ назад предусмотрѣлъ как средство, позволяющее поглядѣть на JSON-отклик, порождаемый твиттеровским сёрвером, в «сыром» виде) и приготовился анализировать результат.
Результат оказался крайне обескураживающим: Twitter не допустил моё средство читать сообщения, кратко сообщив о невозможности авторизации и приложив номер ошибки (32).
Поискав (в самóм же Твиттере) по словосочетанию «error 32», я увидал только одно подходящее сообщение. Его автор обращался 6 апрѣля к своим читателям с вопросом о том, не знает ли кто-нибудь способ исправить твиттеровскую ошибку 32, но ужé въ слѣдующемъ сообщении собрался просто ждать с мыслью о том, что и у других ботов аналогичная проблема.
Так как это сообщение отправлено было от имени бота (учётная запись которого имѣла помѣтку «Automated»), притом в среднем создающего по два новых сообщения ежечасно, то я сразу принуждён был остановиться в первоначальном намѣреніи перелопачивать каждое из его сообщений в поисках того, долго ли автору бота пришлось тогда дожидаться и только ли ожиданием рѣшилася проблема.
Я поневоле принялся также ждать (или, вѣрнѣе, отложил проблему до другого дня и занялся другими дѣлами), хорошо сознавая, что если откладывание не поможет, то тогда, может быть, придётся запускать мой обработчик по новым правилам Твиттера, требующим того, чтобы автор-человѣкъ создавал своему боту новую ѿдѣльную учётную запись: пока что это касалось только таких средств, которые чего-нибудь автоматически пишут в Twitter (а не просто читают, как мой обработчик), однако казалось вѣроятнымъ, что одному нововведению в Твиттере (дальнѣйшему росту длины сообщений) может в тот же день сопутствовать другое (дальнѣйшее ужесточение автоматизации), если их накатили совмѣстно.
К счастью, всё обошлось: ошибка 32 пропала сама собою, мой обработчик вдругорядь заработал, а Twitter оказался отдающим через API не просто усечённые сообщения, но и избавленные от размѣтки (так что обычным выглядит в них и курсив, и жирный текст). Слѣдовательно, я могу опять (как было и в феврале) ничего не мѣнять в исходном коде обработчика.
Для кого-то этот рассказ — просто «единичный случай» и даже, может быть, «ошибка выжившего»; но кому-нибудь другому удастся извлечь из моей истории тот же совѣтъ, которым Александр Дюма-отец завершил роман про Монте-Кристо:
— Ждать и надѣяться!
☦️ ХРИСТОСЪ ВОСКРЕСЕ! ☦️
👍9❤6🎉2
≈Полвѣка существует афоризм о том, что один человѣкъ зовёт террористом того, кого другой зовёт борцом за свободу. (Первоисточником считают книгу «Harry's Game» Сеймура, это 1975 год.) В качестве нагляднаго примѣра можно посмотрѣть на первое десятилѣтіе нынѣшняго (XXI) вѣка и увидать там мрачную историю о том, как мощнѣйшая сверхдержава наносила военные удары далеко от собственной столицы: за океаном, на другой стороне планеты — и породила неприятное противодѣйствіе в формате самоубийственной воздушной атаки: бойцы парамилитарной группировки, руководясь радикальным учением харизматического лидера (к которому относилися с изрядным почтением и готовы были жизнь за него отдать), на гражданском (не боевом) воздушном судне невозбранно проникли в воздушное пространство крупного города своих противников и атаковали не какой-либо военный объект, а один из крупнейших небоскрёбов. Дѣло кончилось взрывом воздушного судна и затѣмъ быстрым обрушением верхушки небоскрёба (оно навряд ли было бы таким быстрым, если бы металлический каркас здания не был взорван изнутри), которая падением нанесла дополнительный ущерб.
Я имѣю в виду апрѣль 2008 года (15 лѣтъ назад), когда на японские телеэкраны вышло аниме «Code Geass R2», и я пересказываю сюжет сáмого начала первой серии (видного в первой из прилагаемых видеоцитат) и нѣкоторыя события второй серии (видныя во второй из прилагаемых видеоцитат).
Однако нетрудно догадываться, что въ Сѣверо-Американскихъ Соединённых Штатах это зрѣлище национально-освободительной борьбы, показываемой сочувственно и с опорою на высокодуховные традиции камикадзе, должно было тягостно отозваться узнаванием нѣкотораго подобія канве нью-йоркских событий 11 сентября 2001 года (и, может быть, содержащаго глумливый намёк на дыры официальной версии, отрицающей контролируемое обрушение башен-близнецов и WTC-7), должно было отозваться досадою и желанием отложить в сторону (и далѣе не смотрѣть) аниме с таким сюжетом, подобие которого можно без всякого аниме увидать в архиве новостей так называемого реальнаго міра.
Я имѣю в виду апрѣль 2008 года (15 лѣтъ назад), когда на японские телеэкраны вышло аниме «Code Geass R2», и я пересказываю сюжет сáмого начала первой серии (видного в первой из прилагаемых видеоцитат) и нѣкоторыя события второй серии (видныя во второй из прилагаемых видеоцитат).
Однако нетрудно догадываться, что въ Сѣверо-Американскихъ Соединённых Штатах это зрѣлище национально-освободительной борьбы, показываемой сочувственно и с опорою на высокодуховные традиции камикадзе, должно было тягостно отозваться узнаванием нѣкотораго подобія канве нью-йоркских событий 11 сентября 2001 года (и, может быть, содержащаго глумливый намёк на дыры официальной версии, отрицающей контролируемое обрушение башен-близнецов и WTC-7), должно было отозваться досадою и желанием отложить в сторону (и далѣе не смотрѣть) аниме с таким сюжетом, подобие которого можно без всякого аниме увидать в архиве новостей так называемого реальнаго міра.
👍8🤣1
Примѣрно такія же чувства, которыя въ послѣднемъ абзаце предшествующего сообщения я приписываю сѣвероамериканцамъ, раза два и сам я также испытывал, но только на других примѣрахъ.
В качестве первого примѣра возьмите многие части сюжета и многие черты центрального персонажа только что упомянутого #аниме «Code Geass»: юноша-принц оказывается гением стратегии, мало кому равным во всём мірѣ, а зрители наблюдают, как он ведёт своё войско через ряд остросюжетных ситуаций, каждую превращая въ побѣду, и как сам он (без помощи войск) одерживает личные побѣды межгосударственной дипломатии, и как этот принц братски любит родную сестру, и как небратски в него влюбляются аристократки (а принц им не слишком-то отвѣчаетъ взаимностью), и как дѣвушка с волосами страннаго цвѣта оказывается этому принцу подругою и спутницею, их объединяет контракт и общая цѣль, но контракт этот не брачный и любовь между ними невозможна по их положению. Теперь уберите из сюжета мощные (и трагически возрастающие) сверхспособности (собственно geass), уберите из сюжета научную фантастику (возможность извлекать энергию из сакурадайта, питающую огромных боевых человѣкоподобныхъ роботов и ещё болѣе огромные самолёты), уберите современность с её компьютерами и телевидением, с её взрывчаткою и огнестрельным оружием, с её автомашинами и поѣздами, уберите претензии параллельного міра на землеподобность, отличающуюся только альтернативным ходом истории. Получится средневѣковый міръ с неземною географиею, с феодальною разобщённостью, со всеобщею религиозностью, ѣздящій на лошадях верхом или в каретах, вооружающий своих воинов стрѣлами и копьями и мечами (а отряды, быть может, ещё баллистами да катапультами). И на жизненный путь такого принца в таком-то мірѣ зрителям будет, пожалуй, ещё интереснѣе смотрѣть: во всяком случае, достижения его покажутся заслуженнѣе, чѣмъ у Лелуша в «Code Geass», которому магия geass и суперсовременная техника изрядно помогает приближать почти всё, всё желаемое.
Именно такой сюжет и именно такой міръ предложило своим зрителям аниме «Tensai Ouji no Akaji Kokka Saisei Jutsu» в начале 2022 года.
И что же? — я читал любительский перевод его первоисточника, я начал смотрѣть само аниме, я сшил кадры первых трёх его серий, но затѣмъ в так называемом реальномъ мірѣ начала возрастать реальная международная напряжённость и наконец разразилася настоящими боестолкновениями армий. Интерес к художественному произведению быстро исчез под водопадом документальных произведений окружающей дѣйствительности. Это аниме я дропнул (то есть прекратил смотрѣть его навсегда или, по меньшей мѣрѣ, очень надолго).
Вторым примѣромъ предлагаю считать аниме «Mahou Shoujo Magical Destroyers» нынѣшняго сезона, которое я дропнул на середине девятой минуты первой серии: если я захочу увидать сюжет о том, как государство дѣятельно поддерживает поборников многовѣковой восточной традиции в их борьбе против анимешной культуры и в стремлении лишать анимешную молодёжь нѣкоторыхъ свобод ея или хотя бы здоровья, то достаточно в так называемом реальномъ мірѣ открыть хронику петербургских судов над аниме (раз за разом накалывающих всё новые произведения на ту вилку Мортона, о которой я упоминал ещё в декабре 2020 года, или на функционально аналогичные ей юридические конструкции) или пролистнуть ту ленту новостей «Коммерсанта» или то подытоживающее сообщение на канале @mnogonazi, гдѣ собраны свѣдѣнія о борьбе против так называемой ЧВК «Рёдан»🕷
Если какой-либо зритель считает, что сюжет «Tensai Ouji no Akaji Kokka Saisei Jutsu» выглядит поинтереснѣе сюжета «Code Geass» в силу той реалистичности, ввиду которой в сюжете отсутствует как geass, так и огромные боевые человѣкоподобные пилотируемые роботы, то тот зритель, уж конечно, с ещё бóльшим интересом приникнет к новостному экрану, за которым не видно ни сверхчеловѣческихъ мастеров стратегии, ни махосёдзё, ни других примѣтъ романтизма, а авторы сюжета не нуждаются в поддержании эффекта присутствия или suspension of disbelief, а вмѣсто того переложили то и другое поддержание на объективный факт реальной дѣйствительности происходящаго.
В качестве первого примѣра возьмите многие части сюжета и многие черты центрального персонажа только что упомянутого #аниме «Code Geass»: юноша-принц оказывается гением стратегии, мало кому равным во всём мірѣ, а зрители наблюдают, как он ведёт своё войско через ряд остросюжетных ситуаций, каждую превращая въ побѣду, и как сам он (без помощи войск) одерживает личные побѣды межгосударственной дипломатии, и как этот принц братски любит родную сестру, и как небратски в него влюбляются аристократки (а принц им не слишком-то отвѣчаетъ взаимностью), и как дѣвушка с волосами страннаго цвѣта оказывается этому принцу подругою и спутницею, их объединяет контракт и общая цѣль, но контракт этот не брачный и любовь между ними невозможна по их положению. Теперь уберите из сюжета мощные (и трагически возрастающие) сверхспособности (собственно geass), уберите из сюжета научную фантастику (возможность извлекать энергию из сакурадайта, питающую огромных боевых человѣкоподобныхъ роботов и ещё болѣе огромные самолёты), уберите современность с её компьютерами и телевидением, с её взрывчаткою и огнестрельным оружием, с её автомашинами и поѣздами, уберите претензии параллельного міра на землеподобность, отличающуюся только альтернативным ходом истории. Получится средневѣковый міръ с неземною географиею, с феодальною разобщённостью, со всеобщею религиозностью, ѣздящій на лошадях верхом или в каретах, вооружающий своих воинов стрѣлами и копьями и мечами (а отряды, быть может, ещё баллистами да катапультами). И на жизненный путь такого принца в таком-то мірѣ зрителям будет, пожалуй, ещё интереснѣе смотрѣть: во всяком случае, достижения его покажутся заслуженнѣе, чѣмъ у Лелуша в «Code Geass», которому магия geass и суперсовременная техника изрядно помогает приближать почти всё, всё желаемое.
Именно такой сюжет и именно такой міръ предложило своим зрителям аниме «Tensai Ouji no Akaji Kokka Saisei Jutsu» в начале 2022 года.
И что же? — я читал любительский перевод его первоисточника, я начал смотрѣть само аниме, я сшил кадры первых трёх его серий, но затѣмъ в так называемом реальномъ мірѣ начала возрастать реальная международная напряжённость и наконец разразилася настоящими боестолкновениями армий. Интерес к художественному произведению быстро исчез под водопадом документальных произведений окружающей дѣйствительности. Это аниме я дропнул (то есть прекратил смотрѣть его навсегда или, по меньшей мѣрѣ, очень надолго).
Вторым примѣромъ предлагаю считать аниме «Mahou Shoujo Magical Destroyers» нынѣшняго сезона, которое я дропнул на середине девятой минуты первой серии: если я захочу увидать сюжет о том, как государство дѣятельно поддерживает поборников многовѣковой восточной традиции в их борьбе против анимешной культуры и в стремлении лишать анимешную молодёжь нѣкоторыхъ свобод ея или хотя бы здоровья, то достаточно в так называемом реальномъ мірѣ открыть хронику петербургских судов над аниме (раз за разом накалывающих всё новые произведения на ту вилку Мортона, о которой я упоминал ещё в декабре 2020 года, или на функционально аналогичные ей юридические конструкции) или пролистнуть ту ленту новостей «Коммерсанта» или то подытоживающее сообщение на канале @mnogonazi, гдѣ собраны свѣдѣнія о борьбе против так называемой ЧВК «Рёдан»
Если какой-либо зритель считает, что сюжет «Tensai Ouji no Akaji Kokka Saisei Jutsu» выглядит поинтереснѣе сюжета «Code Geass» в силу той реалистичности, ввиду которой в сюжете отсутствует как geass, так и огромные боевые человѣкоподобные пилотируемые роботы, то тот зритель, уж конечно, с ещё бóльшим интересом приникнет к новостному экрану, за которым не видно ни сверхчеловѣческихъ мастеров стратегии, ни махосёдзё, ни других примѣтъ романтизма, а авторы сюжета не нуждаются в поддержании эффекта присутствия или suspension of disbelief, а вмѣсто того переложили то и другое поддержание на объективный факт реальной дѣйствительности происходящаго.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2💯2🔥1
21 апрѣля (вчера) разработчики выкатили очередное обновление приложений и возможностей Телеграма.
Когда пользователи приложения Telegram Desktop, руководимые этой новостью, начнут обновлять Telegram Desktop до свѣжайшей версии 4.8, тогда увидят, что тексты сообщений на моём канале выглядят теперь в Telegram Desktop немного не так, как прежде. Чуть лучше.
Между тѣмъ это конкретное улучшение вы не отыщете упоминаемым в официальной новости об обновлении Телеграма, но я вам о нём сейчас расскажу.
Объяснение происходящего — в том, что много лѣтъ я стараюсь по возможности ставить (и на канале, и вообще) вмѣсто обычнаго пробѣла неразрывный пробѣлъ (который по-прежнему раздѣляетъ собою словá, однако, в отличие от обычных пробѣловъ, он не воспринимается системою как разрѣшеніе переносить текст на новую строку въ этомъ мѣстѣ, поэтому окружающие его словá могут быть перенесены только совмѣстно) во всѣхъ извѣстныхъ случаях полезности неразрывных пробѣловъ:
① между инициалами и фамилией («К. А. Крылов»),
② между сокращением и послѣдующимъ именем собственным («проф. Преображенскій», «г. Анапа»),
③ внутри сокращений («и т. п.»),
④ между числом и словом, к числу относящимся («XXI вѣкъ», «часть V», «128 байтов»),
⑤ перед тире в середине предложений («Россія — наше отечество»),
⑥ между группами цифр («524 288 байтов»),
⑦ перед названиями и номерами версий софтá («Windows XP», «Firefox 113»),
⑧ опосля предлогов («в Телеграме», «на сайте»),
⑨ опосля союзов («и правильно»),
⑩ опосля частицы «не» или перед частицею «бы», «ли», «же»,
⑪ между словами любого такого краткого словосочетания, которое хочется в тексте видѣть цѣлымъ («как прежде», «чуть лучше», «в тот же день», etc.).
Когда я ещё только начинал свой канал, тогда первому десятку читателей повѣдалъ 11 августа 2019 года о том, что Telegram Desktop ещё тогда игнорировал неразрывные пробѣлы (переносил текст таким образом, как если бы пробѣлы были обычными). А в Твиттере в тот же день я подмѣтилъ, что это касалося не одного только отображения и отправки, но и обработки черновиков сообщений, созданных другими клиентскими приложениями Телеграма.
В октябре того же года я получил подсказку о возможности групповой замѣны в тексте под Android одного сѵмвола другим, так что начал сперва употреблять в черновиках сообщений другой сѵмволъ («·») для обозначения неразрывных пробѣловъ, а затѣмъ замѣнять его в приложении Telegram под Android (не имѣвшемъ этой проблемы съ пробѣлами) и всѣ такія сообщенія отправлять оттудова. Но при таком подходе къ дѣлу во время замѣны гибла размѣтка текста, приходилось её восстанавливать перед отправкою.
Так продолжалось не год и не два, но теперь эти мрачные дни остаются позади: в Telegram Desktop версии 4.8 наконец появилася нормальная человѣческая поддержка неразрывных пробѣловъ.
Теперь и пользователи Telegram Desktop увидят мои сообщения в таком виде, в каком я их задумал.
Для меня же теперь настают дни усилия, совершаемого над собою, дни осознанной необходимости преодолѣть накопившийся груз выученной беспомощности (и, прежде всего — преодолѣть привычку строить предложения таким образом, чтобы избѣгать в Телеграме употребления тире в длинных предложениях и вообще посередь абзацев, порождённую знанием о том, что такое тире кое у кого уродливо повисало в начале новой строки всѣ эти годы).
Кто никогда не пользовался Telegram Desktop на компé (а я знаю о таких пользователях, которые поставили Telegram под Android на смартфон или планшет, да на том и успокоились), тот никогда не досадовал от особенностей обработки неразрывных пробѣловъ в Telegram Desktop и оттого не был затронут этим вчерашним улучшением. Но для меня набирать сообщения на компьютерной клавиатуре всегда чуть проще, чѣмъ диктовать распознавателю рѣчи в смартфоне или настукивать на сенсорном экране, так что Telegram Desktop был и остаётся для меня важным подспорьем, а теперича — ещё и гораздо, гораздо болѣе удобным.
Теперь предпочесть ему приложение текстового редактора я могу только ради счётчика сѵмволовъ, остающихся до достижения 4096-сѵмвольнаго предѣла и неотправляемости сообщения.
Когда пользователи приложения Telegram Desktop, руководимые этой новостью, начнут обновлять Telegram Desktop до свѣжайшей версии 4.8, тогда увидят, что тексты сообщений на моём канале выглядят теперь в Telegram Desktop немного не так, как прежде. Чуть лучше.
Между тѣмъ это конкретное улучшение вы не отыщете упоминаемым в официальной новости об обновлении Телеграма, но я вам о нём сейчас расскажу.
Объяснение происходящего — в том, что много лѣтъ я стараюсь по возможности ставить (и на канале, и вообще) вмѣсто обычнаго пробѣла неразрывный пробѣлъ (который по-прежнему раздѣляетъ собою словá, однако, в отличие от обычных пробѣловъ, он не воспринимается системою как разрѣшеніе переносить текст на новую строку въ этомъ мѣстѣ, поэтому окружающие его словá могут быть перенесены только совмѣстно) во всѣхъ извѣстныхъ случаях полезности неразрывных пробѣловъ:
① между инициалами и фамилией («К. А. Крылов»),
② между сокращением и послѣдующимъ именем собственным («проф. Преображенскій», «г. Анапа»),
③ внутри сокращений («и т. п.»),
④ между числом и словом, к числу относящимся («XXI вѣкъ», «часть V», «128 байтов»),
⑤ перед тире в середине предложений («Россія — наше отечество»),
⑥ между группами цифр («524 288 байтов»),
⑦ перед названиями и номерами версий софтá («Windows XP», «Firefox 113»),
⑧ опосля предлогов («в Телеграме», «на сайте»),
⑨ опосля союзов («и правильно»),
⑩ опосля частицы «не» или перед частицею «бы», «ли», «же»,
⑪ между словами любого такого краткого словосочетания, которое хочется в тексте видѣть цѣлымъ («как прежде», «чуть лучше», «в тот же день», etc.).
Когда я ещё только начинал свой канал, тогда первому десятку читателей повѣдалъ 11 августа 2019 года о том, что Telegram Desktop ещё тогда игнорировал неразрывные пробѣлы (переносил текст таким образом, как если бы пробѣлы были обычными). А в Твиттере в тот же день я подмѣтилъ, что это касалося не одного только отображения и отправки, но и обработки черновиков сообщений, созданных другими клиентскими приложениями Телеграма.
В октябре того же года я получил подсказку о возможности групповой замѣны в тексте под Android одного сѵмвола другим, так что начал сперва употреблять в черновиках сообщений другой сѵмволъ («·») для обозначения неразрывных пробѣловъ, а затѣмъ замѣнять его в приложении Telegram под Android (не имѣвшемъ этой проблемы съ пробѣлами) и всѣ такія сообщенія отправлять оттудова. Но при таком подходе къ дѣлу во время замѣны гибла размѣтка текста, приходилось её восстанавливать перед отправкою.
Так продолжалось не год и не два, но теперь эти мрачные дни остаются позади: в Telegram Desktop версии 4.8 наконец появилася нормальная человѣческая поддержка неразрывных пробѣловъ.
Теперь и пользователи Telegram Desktop увидят мои сообщения в таком виде, в каком я их задумал.
Для меня же теперь настают дни усилия, совершаемого над собою, дни осознанной необходимости преодолѣть накопившийся груз выученной беспомощности (и, прежде всего — преодолѣть привычку строить предложения таким образом, чтобы избѣгать в Телеграме употребления тире в длинных предложениях и вообще посередь абзацев, порождённую знанием о том, что такое тире кое у кого уродливо повисало в начале новой строки всѣ эти годы).
Кто никогда не пользовался Telegram Desktop на компé (а я знаю о таких пользователях, которые поставили Telegram под Android на смартфон или планшет, да на том и успокоились), тот никогда не досадовал от особенностей обработки неразрывных пробѣловъ в Telegram Desktop и оттого не был затронут этим вчерашним улучшением. Но для меня набирать сообщения на компьютерной клавиатуре всегда чуть проще, чѣмъ диктовать распознавателю рѣчи в смартфоне или настукивать на сенсорном экране, так что Telegram Desktop был и остаётся для меня важным подспорьем, а теперича — ещё и гораздо, гораздо болѣе удобным.
Теперь предпочесть ему приложение текстового редактора я могу только ради счётчика сѵмволовъ, остающихся до достижения 4096-сѵмвольнаго предѣла и неотправляемости сообщения.
Telegram
Shareable Chat Folders, Custom Wallpapers and More
This update lets users share entire chat folders with one link, create custom wallpapers for individual chats, use web apps in any chat and more.
❤9👍7❤🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
В качестве иллюстрации к истории «войн браузеров» (они же «браузерные войны» — рѣчь идёт о многодесятилѣтней борьбе браузеров за популярность среди пользователей Интернета) посмотрѣлъ визуализацию «Web browsers over the last 28 years» в сабрэддите dataisbeautiful.
Для наглядности прилагаю это видео и тут, слегка замедлив его (а не то в первоисточнике мельтешило) и притом ещё наложив его на музыку «Radio Rock», которую любезно предоставляет ея автор (Jason Shaw) на условиях лицензии Creative Commons Attribution 4.0 International.
Обратил внимание, в частности, на четыре самых значимых успѣха, достигнутых в этой «войне»:
① В сáмом начале этой истории — в январе 1994 года — мы ужé видим нѣкій успѣхъ, а именно пик популярности браузера Mosaic, доля пользователей которого достигла 97,0%. По-видимому, это восторжествование браузера Mosaic над остальными тогдашними браузерами было совершенно заслуженным благодаря большей наглядности, им достигнутой: как вспоминает сам Berners-Lee, только с появлением Mosaic дѣло дошло до показа картинок непосредственно на web-страницах (а до него принято было открывать скачанные картинки въ сосѣднемъ окнѣ — посредством того просмотрщика картинок, какой был в операционной системе).
② В марте 1996 года доля пользователей браузера Netscape достигла 89,0%. Это отражает, как я понимаю, осознание тогдашними пользователями цѣнности новинок, появившихся в Netscape Navigator версии 2, среди которых и JavaScript, и плагины, и куки, и атрибут color тега font, и зацикленные GIF-анимации.
③ В ноябре 2002 года доля пользователей браузера Internet Explorer достигла 92,8%. Его вознесла неготовность пользователей перемѣнять браузер, установленный в операционной системе. Она же вознесла слѣдующаго лидера, когда большинство систем сдѣлалися смартфоновыми.
④ В январе 2020 года доля пользователей браузера Google Chrome достигла 82,0%. Справедливо подозрѣніе FSF насчёт того, что в вердикте Google «экосистема недостаточно заинтересована в поддержке формата JPEG XL» Google зовёт «экосистемою» самих себя.
Для наглядности прилагаю это видео и тут, слегка замедлив его (а не то в первоисточнике мельтешило) и притом ещё наложив его на музыку «Radio Rock», которую любезно предоставляет ея автор (Jason Shaw) на условиях лицензии Creative Commons Attribution 4.0 International.
Обратил внимание, в частности, на четыре самых значимых успѣха, достигнутых в этой «войне»:
① В сáмом начале этой истории — в январе 1994 года — мы ужé видим нѣкій успѣхъ, а именно пик популярности браузера Mosaic, доля пользователей которого достигла 97,0%. По-видимому, это восторжествование браузера Mosaic над остальными тогдашними браузерами было совершенно заслуженным благодаря большей наглядности, им достигнутой: как вспоминает сам Berners-Lee, только с появлением Mosaic дѣло дошло до показа картинок непосредственно на web-страницах (а до него принято было открывать скачанные картинки въ сосѣднемъ окнѣ — посредством того просмотрщика картинок, какой был в операционной системе).
② В марте 1996 года доля пользователей браузера Netscape достигла 89,0%. Это отражает, как я понимаю, осознание тогдашними пользователями цѣнности новинок, появившихся в Netscape Navigator версии 2, среди которых и JavaScript, и плагины, и куки, и атрибут color тега font, и зацикленные GIF-анимации.
③ В ноябре 2002 года доля пользователей браузера Internet Explorer достигла 92,8%. Его вознесла неготовность пользователей перемѣнять браузер, установленный в операционной системе. Она же вознесла слѣдующаго лидера, когда большинство систем сдѣлалися смартфоновыми.
④ В январе 2020 года доля пользователей браузера Google Chrome достигла 82,0%. Справедливо подозрѣніе FSF насчёт того, что в вердикте Google «экосистема недостаточно заинтересована в поддержке формата JPEG XL» Google зовёт «экосистемою» самих себя.
👍11🔥2❤🔥1
Компы или мобильные устройства (смартфоны и планшеты) болѣе популярны? — если считать по посещениям сайтов, то мобильные устройства окажутся болѣе популярными, хотя и компы не сильно отстают.
Под управлением какóй операционной системы работают мобильные устройства? — в подавляющем большинстве случаев это будет система Android.
Въ нынѣшнемъ (2023) году к выходу готовится четырнадцатая версия системы Android, но пока что до ея появленія остаётся ещё много времени, и даже первый предпросмотровый варіантъ ея появился всего-навсего три мѣсяца назад (8 февраля).
Так что сейчас послѣднею версиею среди вышедших должна считаться система Android 13, вышедшая в августе прошлого (2022) года.
А предпослѣдняя версия Android — это Android 12 (это 2021 год, если не считать болѣе позднюю модификацию Android 12L для устройств с раскладными экранами).
А ей предшествовала версия Android 11 (2020 г.) и Android 10 (2019 г.).
Выход каждой новой версии системы Android обыкновенно сопровождается общими словами про всё хорошее. Если докладчик торопится или намѣренъ быть кратким, то скажет два слóва: «система оптимизирована». Он знает, что чуть болѣе длинная фраза «многие пользовательские и программные возможности операционной системы теперь работают быстрѣе» всё равно не содержит полного перечисления улучшений, которое заняло бы нѣсколько листов и рисковало бы утомить читателя или слушателя, даже если ни словом не сказать о том, каким способом улучшения достигнуты и, главное, какой цѣною. А между тѣмъ раз въ нѣсколько лѣтъ нѣтъ-нѣтъ, да и приходится увидать, что цѣна эта втайне оказывается неприемлемлемо высокою и страшною — и от неё, быть может, волосы должны дыбом стать на голове и волнообразно зашевелиться!
Напримѣръ, так как реализация файловых систем всецѣло отдана на уровень операционных систем, то ни одна программа, в сущности, никогда не пишет ни в какóй файл напрямую, а только сообщает операционной системе: «я желаю открыть такой-то файл на запись», «я желаю записать в такой-то открытый файл такие-то данные», «а теперь ранѣе открытый файл можно закрыть» — а система дѣлаетъ всё остальное. Это система рѣшаетъ, как файл будет располагаться на диске или твердотѣльномъ хранилище. Это система рѣшаетъ, какие данные и когда записывать в файл по мѣрѣ поступления, а какие придерживать в памяти в особом буфере (чтобы не слишком изнурять хранилище лишнею операціею записи) в надежде на то, что попозже поступит ещё кусок данных, так что можно будет одной операцией записать всё накопившееся сразу. Зачастую такие буферы опустошаются только при закрытии файла, которое оказывается поэтому не таким уж и простым или быстрым дѣломъ, как его аналог из нецифрового міра. То есть закрыть файл, ранѣе открывавшийся на запись, можно не так быстро и не так просто, как закрывают, напримѣръ, дверь — если только рѣчь не идёт про дверь в овчарню, да притом ещё, может быть, такую, в которую прямо сейчас живым потоком движется цѣлое стадо, принуждая дожидаться того, когда наконец промелькнёт и скроется волосатый хвост послѣдней овцы.
Но как ни долго ждать, пока «на диск» отправляется содержимое буфера записи, а всё же во всѣхъ версиях Android, предшествующих упомянутым выше (то есть в Android 9 и ещё раньше) закрытие файла было ещё болѣе трудоёмким. Операционная система также ещё провѣряла, был ли открыт на запись файл, до того открытия ужé существовавший — и если да, то тогда система по умолчанию предполагала намѣреніе перезаписать файл цѣликомъ, так что при закрытии укорачивала этот файл, если данные записывалися от начала файла (а не дописывалися к хвосту) и если притом общий объём записанных данных оказывался меньше, чѣмъ объём файла, существовавшего до открытия.
То есть в Android 9 (и ранѣе) любой перезаписанный файл автоматически укорачивался по мѣрѣ нужды (если о нежелательности этого не сообщала системе программа), а в Android 10 (и позже) не укорачивается (если программа не пожелает того в явном виде), так что операция закрытия файла стала работать (по умолчанию) замѣтно быстрѣе.
Быстрота работы — это же главное, правда?
Неправда!… но об этом — дальше.
Под управлением какóй операционной системы работают мобильные устройства? — в подавляющем большинстве случаев это будет система Android.
Въ нынѣшнемъ (2023) году к выходу готовится четырнадцатая версия системы Android, но пока что до ея появленія остаётся ещё много времени, и даже первый предпросмотровый варіантъ ея появился всего-навсего три мѣсяца назад (8 февраля).
Так что сейчас послѣднею версиею среди вышедших должна считаться система Android 13, вышедшая в августе прошлого (2022) года.
А предпослѣдняя версия Android — это Android 12 (это 2021 год, если не считать болѣе позднюю модификацию Android 12L для устройств с раскладными экранами).
А ей предшествовала версия Android 11 (2020 г.) и Android 10 (2019 г.).
Выход каждой новой версии системы Android обыкновенно сопровождается общими словами про всё хорошее. Если докладчик торопится или намѣренъ быть кратким, то скажет два слóва: «система оптимизирована». Он знает, что чуть болѣе длинная фраза «многие пользовательские и программные возможности операционной системы теперь работают быстрѣе» всё равно не содержит полного перечисления улучшений, которое заняло бы нѣсколько листов и рисковало бы утомить читателя или слушателя, даже если ни словом не сказать о том, каким способом улучшения достигнуты и, главное, какой цѣною. А между тѣмъ раз въ нѣсколько лѣтъ нѣтъ-нѣтъ, да и приходится увидать, что цѣна эта втайне оказывается неприемлемлемо высокою и страшною — и от неё, быть может, волосы должны дыбом стать на голове и волнообразно зашевелиться!
Напримѣръ, так как реализация файловых систем всецѣло отдана на уровень операционных систем, то ни одна программа, в сущности, никогда не пишет ни в какóй файл напрямую, а только сообщает операционной системе: «я желаю открыть такой-то файл на запись», «я желаю записать в такой-то открытый файл такие-то данные», «а теперь ранѣе открытый файл можно закрыть» — а система дѣлаетъ всё остальное. Это система рѣшаетъ, как файл будет располагаться на диске или твердотѣльномъ хранилище. Это система рѣшаетъ, какие данные и когда записывать в файл по мѣрѣ поступления, а какие придерживать в памяти в особом буфере (чтобы не слишком изнурять хранилище лишнею операціею записи) в надежде на то, что попозже поступит ещё кусок данных, так что можно будет одной операцией записать всё накопившееся сразу. Зачастую такие буферы опустошаются только при закрытии файла, которое оказывается поэтому не таким уж и простым или быстрым дѣломъ, как его аналог из нецифрового міра. То есть закрыть файл, ранѣе открывавшийся на запись, можно не так быстро и не так просто, как закрывают, напримѣръ, дверь — если только рѣчь не идёт про дверь в овчарню, да притом ещё, может быть, такую, в которую прямо сейчас живым потоком движется цѣлое стадо, принуждая дожидаться того, когда наконец промелькнёт и скроется волосатый хвост послѣдней овцы.
Но как ни долго ждать, пока «на диск» отправляется содержимое буфера записи, а всё же во всѣхъ версиях Android, предшествующих упомянутым выше (то есть в Android 9 и ещё раньше) закрытие файла было ещё болѣе трудоёмким. Операционная система также ещё провѣряла, был ли открыт на запись файл, до того открытия ужé существовавший — и если да, то тогда система по умолчанию предполагала намѣреніе перезаписать файл цѣликомъ, так что при закрытии укорачивала этот файл, если данные записывалися от начала файла (а не дописывалися к хвосту) и если притом общий объём записанных данных оказывался меньше, чѣмъ объём файла, существовавшего до открытия.
То есть в Android 9 (и ранѣе) любой перезаписанный файл автоматически укорачивался по мѣрѣ нужды (если о нежелательности этого не сообщала системе программа), а в Android 10 (и позже) не укорачивается (если программа не пожелает того в явном виде), так что операция закрытия файла стала работать (по умолчанию) замѣтно быстрѣе.
Быстрота работы — это же главное, правда?
Неправда!… но об этом — дальше.
❤2🤯2👍1
Оптимизацию из Android 10 (версии 2019 г.), о которой я упоминал во второй половине предшествующего сообщения, в 2021 году осудил отправитель вон того отклика, доводы в котором сводились вот к чему:
① Новинка получилась недостаточно объявленною в новостях для разработчиков (в частности, на странице основных измѣненій в Android 10) и в документации.
② Измѣнилось поведение достаточно низкоуровневого программного интерфейса (буквально имѣющаго дѣло с файлами), а перемѣнилось ли (заново подстраиваясь под него) поведение болѣе высоких интерфейсов (напримѣръ, обёртывающих работу с файлами в интерфейс так называемого потокового вывода)? — как оказалось, не очень (автор отклика нашёл опечатку в одном из тестов, а затѣмъ и возможность одного из высокоуровневых интерфейсов буквально обрушиться в новом режиме явно указанной необходимости укорачивания файла в том частном случае, когда файл лежит на Google Drive).
Получатели благодарили отправителя отклика, сообщили о невозможности чего-либо перемѣнить в Android 10 и даже в Android 11 (поздно, «поѣздъ ушёл»), пообѣщали пополнить документацию подробностями, порекомендовали обходной путь вокруг обозначенной проблемы.
Никто не задумался о том, что если между выходом Android 10 (в 2019 г.) и указанием на недодокументированность измѣненій (в 2021 г.) прошло ≈два года, то оптимизация закрытия файлов оставалась недодокументированною всё это время. Кто ещё остался «не в курсе» насчёт произошедших измѣненій и особенно насчёт необходимости новых практик программирования? Какие ещё проблемы смогут обнаружить, если пройдёт ещё два года?
И прошло ещё два года!
Настал нынѣшній (2023) год, и 13 марта разразился скандал, получивший звучное название:
АКРОПАЛИПСИС
Это название — слово «апокалипсис», первые буквы которого нарочно переправлены таким образом, чтобы получалось английское слово «crop» в значении «обрѣзка». Чтобы понять игру слов, намѣченную таким переправлением, достаточно обратить внимание на основное значение слóва «апокалипсис» («конец свѣта») и на его буквальное значение («отдёргивание завѣсы, раскрытие тайны, откровение»), а также на использование греческой приставки «а-» в качестве отрицательной (как и в словах «алогичность», «амнезия», «аморальность», «аномия», «анорексия», «апатия», etc.), ввиду чего корень «акроп» начинает означать отсутствие обрѣзки.
Как объясняет David Buchanan у себя во блоге, суть акропáлипсиса (которую обнаружил Simon Aarons и затѣмъ огласил в Твиттере) сводится вот к чему: измѣненія, внесённые гугловскими разработчиками в систему Android 10, не дошли до свѣдѣнія даже других гугловских разработчиков — а именно той команды, которая создавала программное обеспéчение для смартфонов серии Pixel. Вышеозначенный милый нюанс ускоренного закрытия файлов не был учтён в одном из таких приложений, которое является системным и оттого установлено на каждом смартфоне серии Pixel, работающих под управлением системы Android 10 или болѣе новой. (Больше того: если смартфон с завода вышел работающим под Android 9, а затѣмъ «по воздуху» был обновлён на Android 10, то также получил эту оплошность в подарок. Таковы всѣ «Пикселы» третьей серии: Pixel 3, Pixel 3 XL, Pixel 3a, Pixel 3a XL.)
И что это было за приложение? Какую системную функцию оно выполняло?
Это было средство Markup, предназначенное для обрѣзанія скриншотов.
Каждый такой пользователь, который сперва дѣлалъ скриншот (автоматически записывая его в файл), а затѣмъ желал вырѣзать только нужную часть скриншота (и отбросить всё ненужное), в результате помѣщалъ обрѣзокъ в начало файла первоначального скриншота, но хвост файла не отбрасывался в Android 10 (или въ болѣе новых): приложение Markup полагалося на поведение операционной системы, привычное по Android 9 и болѣе ранних версий. Этот хвост (содержащий нижнюю часть первоначального скриншота, записанного сверху вниз в первоначальный файл) ещё можно было декодировать и извлечь — David Buchanan и Simon Aarons сочинили такой декодировщик и помѣстили его на созданном нарочно для такого случая сайте acropalypse.app.
Далѣе я опишу ужасы послѣдствій этого открытия.
① Новинка получилась недостаточно объявленною в новостях для разработчиков (в частности, на странице основных измѣненій в Android 10) и в документации.
② Измѣнилось поведение достаточно низкоуровневого программного интерфейса (буквально имѣющаго дѣло с файлами), а перемѣнилось ли (заново подстраиваясь под него) поведение болѣе высоких интерфейсов (напримѣръ, обёртывающих работу с файлами в интерфейс так называемого потокового вывода)? — как оказалось, не очень (автор отклика нашёл опечатку в одном из тестов, а затѣмъ и возможность одного из высокоуровневых интерфейсов буквально обрушиться в новом режиме явно указанной необходимости укорачивания файла в том частном случае, когда файл лежит на Google Drive).
Получатели благодарили отправителя отклика, сообщили о невозможности чего-либо перемѣнить в Android 10 и даже в Android 11 (поздно, «поѣздъ ушёл»), пообѣщали пополнить документацию подробностями, порекомендовали обходной путь вокруг обозначенной проблемы.
Никто не задумался о том, что если между выходом Android 10 (в 2019 г.) и указанием на недодокументированность измѣненій (в 2021 г.) прошло ≈два года, то оптимизация закрытия файлов оставалась недодокументированною всё это время. Кто ещё остался «не в курсе» насчёт произошедших измѣненій и особенно насчёт необходимости новых практик программирования? Какие ещё проблемы смогут обнаружить, если пройдёт ещё два года?
И прошло ещё два года!
Настал нынѣшній (2023) год, и 13 марта разразился скандал, получивший звучное название:
АКРОПАЛИПСИС
Это название — слово «апокалипсис», первые буквы которого нарочно переправлены таким образом, чтобы получалось английское слово «crop» в значении «обрѣзка». Чтобы понять игру слов, намѣченную таким переправлением, достаточно обратить внимание на основное значение слóва «апокалипсис» («конец свѣта») и на его буквальное значение («отдёргивание завѣсы, раскрытие тайны, откровение»), а также на использование греческой приставки «а-» в качестве отрицательной (как и в словах «алогичность», «амнезия», «аморальность», «аномия», «анорексия», «апатия», etc.), ввиду чего корень «акроп» начинает означать отсутствие обрѣзки.
Как объясняет David Buchanan у себя во блоге, суть акропáлипсиса (которую обнаружил Simon Aarons и затѣмъ огласил в Твиттере) сводится вот к чему: измѣненія, внесённые гугловскими разработчиками в систему Android 10, не дошли до свѣдѣнія даже других гугловских разработчиков — а именно той команды, которая создавала программное обеспéчение для смартфонов серии Pixel. Вышеозначенный милый нюанс ускоренного закрытия файлов не был учтён в одном из таких приложений, которое является системным и оттого установлено на каждом смартфоне серии Pixel, работающих под управлением системы Android 10 или болѣе новой. (Больше того: если смартфон с завода вышел работающим под Android 9, а затѣмъ «по воздуху» был обновлён на Android 10, то также получил эту оплошность в подарок. Таковы всѣ «Пикселы» третьей серии: Pixel 3, Pixel 3 XL, Pixel 3a, Pixel 3a XL.)
И что это было за приложение? Какую системную функцию оно выполняло?
Это было средство Markup, предназначенное для обрѣзанія скриншотов.
Каждый такой пользователь, который сперва дѣлалъ скриншот (автоматически записывая его в файл), а затѣмъ желал вырѣзать только нужную часть скриншота (и отбросить всё ненужное), в результате помѣщалъ обрѣзокъ в начало файла первоначального скриншота, но хвост файла не отбрасывался в Android 10 (или въ болѣе новых): приложение Markup полагалося на поведение операционной системы, привычное по Android 9 и болѣе ранних версий. Этот хвост (содержащий нижнюю часть первоначального скриншота, записанного сверху вниз в первоначальный файл) ещё можно было декодировать и извлечь — David Buchanan и Simon Aarons сочинили такой декодировщик и помѣстили его на созданном нарочно для такого случая сайте acropalypse.app.
Далѣе я опишу ужасы послѣдствій этого открытия.
👍3❤1
Часть неприятных послѣдствій акропáлипсиса (техническую суть которого я только что пересказал в предшествующем сообщении) сводится к тому, что отсутствие настоящей (а не кажущейся) обрѣзки скриншота (собственно «акроп») приводит к настоящему «открытию тайн» и кое для кого может устроить личный «конец свѣта» (собственно «апокалипсис»), поскольку обычаи наши устроены так, что именно конец файла (низ скриншота) всего вѣроятнѣе содержит наиболѣе тайную часть его, и это вѣрно насчёт почти любого вида тайны:
① Банковская тайна. Вообразите блоггера, который задумал получать донаты от читателей и для того завёл новую банковскую карту. Банк прислал ему документ с изображением лицевой и затѣмъ оборотной стороны карты (логичен именно такой порядок их), блоггер заскриншотил, а затѣмъ вырѣзалъ номер карты и выложил во блог. Через четыре года, когда этот обрѣзокъ ужé попал в каждый архив и кэш блогосферы (напоминаю, что технические основы акропалипсиса завершены были к 2019 году!), из него стало возможно извлечь секретный код для снятия денег.
② Коммерческая тайна. Вообразите договор, начинающийся с общих слов и заканчивающийся всё болѣе тайными пунктами и приложениями к договору (логичен именно такой порядок их), который один из договорщиков заскриншотил, а затѣмъ вырѣзалъ наиболѣе невинное начало его и передал пресс-службе (и далѣе в прессу). Теперь из этого обрѣзка можно достать и хвост скриншота с гораздо болѣе лáкомыми данными.
③ Политическая тайна. Вообразите журналиста из «Викиликс» или другого публикатора конфиденциальной информации, в руки которого попал цѣнный скриншот секретного документа. Он предаёт огласке обрѣзокъ скриншота, но силою акропáлипсиса можно будет извлечь оттудова неотрѣзавшіяся подписи или стеганограммы, раскрыв имя конфиденциального информатора или его источник.
④ Тайна мѣстоположенія. Вообразите фотографа, который дѣлаетъ цифровой фотоснимок живописно выглядящих облаков в небесах над городом. Конечно, фотоснимок — это ужé не скриншот, но вообще-то приложение Google Markup можно использовать для обрѣзки не одних только скриншотов (и на сайте XDA Developers, и на сайте 4PDA говорится: «Its primary use is to edit screenshots, but it can be used on any image»). И если именно им отсечь небо от того, что под небом, то тогда акропалипсис обеспечит зрителям фото возможность восстановить мнимо отсечённое фотографическое изображение крыш и домов, а затѣмъ по ним опредѣлить мѣсто да и прийти к такому фотографу прямо домой, если фото сдѣлано им из собственного окошка (как происходит в первой главе манги «Asuperu Kanojo»), или на важную для него крышу дóма, если фото сдѣлано на крыше (как происходит в середине четвёртой серии второго сезона телесериала «Person of Interest»). Если наш воображаемый фотограф — военный корреспондент или боец, то тогда отсечённая часть фотографии может содержать военную тайну.
⑤ Интимная тайна. Вообразите дѣвушку, пожелавшую похвастаться перед подружками цифровым фото обнажённого торса своего приятеля, но ввиду акропáлипсиса случайно отправившую им заодно и дикпик. (Да-да, тѣлесный низъ также располагается в нижней части большинства фотоснимков.) В зависимости от юрисдикции и от возраста дѣйствующихъ лиц это не просто «посмѣются и позабудут»: кое-кому выпадет шанс на много-много десятилѣтій угодить в общегосударственный список секс-преступников, содержащий адреса проживания и даже номера автомашин — в тёплую компанию насильников и растлителей, с запретом на общение даже с родными дѣтьми и внуками, с запрещением селиться в большинстве хороших районов, с обязательным оповѣщеніемъ десятков сосѣдей и со снисходительным отношением к проявлениям их праведного гнѣва в плохих районах, etc.
Любой обладатель живого воображения прибавит, может быть, ещё двѣ-три мрачные идеи к этому списку. Однако под первым слоем наносимого вреда (под собственно раскрытием тайн) скрывается и второй слой — им станет тот вред, который нанесут такие сайты и сервисы в Интернете, которые станут реагировать на акропалипсис преувеличенно и невѣрно, ослѣплённые рѣшимостью уменьшить ущерб приватности своих пользователей.
① Банковская тайна. Вообразите блоггера, который задумал получать донаты от читателей и для того завёл новую банковскую карту. Банк прислал ему документ с изображением лицевой и затѣмъ оборотной стороны карты (логичен именно такой порядок их), блоггер заскриншотил, а затѣмъ вырѣзалъ номер карты и выложил во блог. Через четыре года, когда этот обрѣзокъ ужé попал в каждый архив и кэш блогосферы (напоминаю, что технические основы акропалипсиса завершены были к 2019 году!), из него стало возможно извлечь секретный код для снятия денег.
② Коммерческая тайна. Вообразите договор, начинающийся с общих слов и заканчивающийся всё болѣе тайными пунктами и приложениями к договору (логичен именно такой порядок их), который один из договорщиков заскриншотил, а затѣмъ вырѣзалъ наиболѣе невинное начало его и передал пресс-службе (и далѣе в прессу). Теперь из этого обрѣзка можно достать и хвост скриншота с гораздо болѣе лáкомыми данными.
③ Политическая тайна. Вообразите журналиста из «Викиликс» или другого публикатора конфиденциальной информации, в руки которого попал цѣнный скриншот секретного документа. Он предаёт огласке обрѣзокъ скриншота, но силою акропáлипсиса можно будет извлечь оттудова неотрѣзавшіяся подписи или стеганограммы, раскрыв имя конфиденциального информатора или его источник.
④ Тайна мѣстоположенія. Вообразите фотографа, который дѣлаетъ цифровой фотоснимок живописно выглядящих облаков в небесах над городом. Конечно, фотоснимок — это ужé не скриншот, но вообще-то приложение Google Markup можно использовать для обрѣзки не одних только скриншотов (и на сайте XDA Developers, и на сайте 4PDA говорится: «Its primary use is to edit screenshots, but it can be used on any image»). И если именно им отсечь небо от того, что под небом, то тогда акропалипсис обеспечит зрителям фото возможность восстановить мнимо отсечённое фотографическое изображение крыш и домов, а затѣмъ по ним опредѣлить мѣсто да и прийти к такому фотографу прямо домой, если фото сдѣлано им из собственного окошка (как происходит в первой главе манги «Asuperu Kanojo»), или на важную для него крышу дóма, если фото сдѣлано на крыше (как происходит в середине четвёртой серии второго сезона телесериала «Person of Interest»). Если наш воображаемый фотограф — военный корреспондент или боец, то тогда отсечённая часть фотографии может содержать военную тайну.
⑤ Интимная тайна. Вообразите дѣвушку, пожелавшую похвастаться перед подружками цифровым фото обнажённого торса своего приятеля, но ввиду акропáлипсиса случайно отправившую им заодно и дикпик. (Да-да, тѣлесный низъ также располагается в нижней части большинства фотоснимков.) В зависимости от юрисдикции и от возраста дѣйствующихъ лиц это не просто «посмѣются и позабудут»: кое-кому выпадет шанс на много-много десятилѣтій угодить в общегосударственный список секс-преступников, содержащий адреса проживания и даже номера автомашин — в тёплую компанию насильников и растлителей, с запретом на общение даже с родными дѣтьми и внуками, с запрещением селиться в большинстве хороших районов, с обязательным оповѣщеніемъ десятков сосѣдей и со снисходительным отношением к проявлениям их праведного гнѣва в плохих районах, etc.
Любой обладатель живого воображения прибавит, может быть, ещё двѣ-три мрачные идеи к этому списку. Однако под первым слоем наносимого вреда (под собственно раскрытием тайн) скрывается и второй слой — им станет тот вред, который нанесут такие сайты и сервисы в Интернете, которые станут реагировать на акропалипсис преувеличенно и невѣрно, ослѣплённые рѣшимостью уменьшить ущерб приватности своих пользователей.
❤1🤣1
Скольких людей затронут тѣ бѣды акропáлипсиса, которые я попытался представить и перечислить в предшествующем сообщении?
Во-первых, по-видимому, это коснётся каждого из пользователей линейки гугловских смартфонов Pixel послѣднихъ лѣтъ. Их жаль: это тѣ люди, которые надѣялися избѣгнуть проблем, покупая гугловский смартфон с гугловскою операционною системою (что обѣщало им хорошую совмѣстимость и долгую жизнь со своевременными обновлениями программного обеспéчения), но были грубо обмануты в своих ожиданиях.
Во-вторых, по аналогии, могут напрячься обладатели других смартфоновых приложений-обрѣзчиковъ, побѣжать на acropalypse.app в холодном поту (и, может быть, подтвердить там самыя мрачныя из своих подозрѣній).
Но ещё больше будет пострадавших опосредованно. Вред для них я предвижу въ чрезмѣрной реакции различных сайтов и сервисов в Интернете, которые станут реагировать на акропалипсис преувеличенно и невѣрно, ослѣплённые рѣшимостью уменьшить ущерб приватности своих пользователей.
Такие сайты и сервисы, которые не использовали файлы своих пользователей въ неизмѣнномъ виде, а непремѣнно переужимали каждое изображение из JPEG в JPEG с потерей качества (а к числу таких сервисов относится и Telegram — и хорошо бы Telegram перестал так дѣлать), теперь будут мысленно оправдывать такой ущерб качеству: зато, дескать, этим мы спасли всѣхъ пользователей от акропáлипсиса!
Такие сайты и сервисы, которые при опредѣлённыхъ условиях позволяли пользователям выкладывать файлы изображений въ неизмѣнномъ (или почти неизмѣнномъ) виде (а к числу таких сайтов относится, напримѣръ, Twitter — почитайте его алгоритм обработки изображений), теперь встрепенутся: акропалипсис на дворе, надо что-нибудь дѣлать! — и ужо они понадѣлаютъ.
Я тут пишу «я предвижу», но это просто фигура рѣчи. Тут не надо быть слишком прозорливым, достаточно заглянуть в Twitter да почитать, как Jon Sneyers осуждает Discord за предпринятое Дискордом (в начале апрѣля, насколько я понял) массовое переужатие в JPEG всѣхъ изображений, загруженных пользователями в прошлом. Это просто ужас, каким рукожопым получилось переужатие:
① Само выражение «переужатие в JPEG» как бы подразумевает, что новый файл получается хотя бы поменьше старого, однако Jon Sneyers сообщает, что Discord не во всѣхъ случаях достиг этого. (Увы, этим страдает и Telegram! — я вот ужé больше двух лѣтъ назад сообщал, что отправляемый файл от переужатия в JPEG может тут распухнуть!)
② Переужатие совершилося агрессивно и привело к значительным потерям качества: Jon Sneyers прикидывает, что работал кодировщик libjpeg-turbo, ориентированный на 75 баллов качества из ста. (Так как по максимуму их сто, то можно условно сказать «на 75% качества». Но это будет не болѣе чѣмъ метафорою. Важно не забывать, что в строгом смысле «стопроцентным», то есть идеально соѿвѣтствующимъ первоисточнику, качество не будет никогда: кодировщик JPEG занимается переужатием и похѣриваетъ часть качества исходного изображения, даже когда работает «на всѣ сто». Между прочим, качество JPEG и в Телеграме не лучше, чѣмъ достигнутое в Дискорде, но об этом напишу как-нибудь в другой раз.)
③ При переужатии всѣмъ изображениям была навязана цвѣтовая субдискретизация 4:2:0, дополнительно похѣрившая качество тѣхъ изображений, которые изначально были отправлены без субдискретизации.
④ Из старых файлов в новые не были скопированы (а вмѣсто того оказались стёртыми) цвѣтовые профили ICC, так что новые файлы будут восприниматься как расположенные въ цвѣтовомъ пространстве sRGB. И если исходный файл был создан въ болѣе широком цвѣтовомъ пространстве Display P3 (как вон та дѣвочка в затопленном городе) или в Adobe RGB 1998 года (как вон та дѣвочка перед грозою), то цвѣтовой охват сузился с искажением цвѣта ≈каждого пиксела (окромя нецвѣтныхъ: бѣлыхъ, сѣрыхъ, чёрных).
А надо было всего только оптимизировать JPEG без переужатия (автор jpegoptim выпустил 25 марта новую версию и даже приложил к ней готовые сборки для Windows, для macOS и для Linux) или откусить часть файла, слѣдующую за концом структур данных JPEG (как это дѣлаютъ во избавление от RARJPEG).
Во-первых, по-видимому, это коснётся каждого из пользователей линейки гугловских смартфонов Pixel послѣднихъ лѣтъ. Их жаль: это тѣ люди, которые надѣялися избѣгнуть проблем, покупая гугловский смартфон с гугловскою операционною системою (что обѣщало им хорошую совмѣстимость и долгую жизнь со своевременными обновлениями программного обеспéчения), но были грубо обмануты в своих ожиданиях.
Во-вторых, по аналогии, могут напрячься обладатели других смартфоновых приложений-обрѣзчиковъ, побѣжать на acropalypse.app в холодном поту (и, может быть, подтвердить там самыя мрачныя из своих подозрѣній).
Но ещё больше будет пострадавших опосредованно. Вред для них я предвижу въ чрезмѣрной реакции различных сайтов и сервисов в Интернете, которые станут реагировать на акропалипсис преувеличенно и невѣрно, ослѣплённые рѣшимостью уменьшить ущерб приватности своих пользователей.
Такие сайты и сервисы, которые не использовали файлы своих пользователей въ неизмѣнномъ виде, а непремѣнно переужимали каждое изображение из JPEG в JPEG с потерей качества (а к числу таких сервисов относится и Telegram — и хорошо бы Telegram перестал так дѣлать), теперь будут мысленно оправдывать такой ущерб качеству: зато, дескать, этим мы спасли всѣхъ пользователей от акропáлипсиса!
Такие сайты и сервисы, которые при опредѣлённыхъ условиях позволяли пользователям выкладывать файлы изображений въ неизмѣнномъ (или почти неизмѣнномъ) виде (а к числу таких сайтов относится, напримѣръ, Twitter — почитайте его алгоритм обработки изображений), теперь встрепенутся: акропалипсис на дворе, надо что-нибудь дѣлать! — и ужо они понадѣлаютъ.
Я тут пишу «я предвижу», но это просто фигура рѣчи. Тут не надо быть слишком прозорливым, достаточно заглянуть в Twitter да почитать, как Jon Sneyers осуждает Discord за предпринятое Дискордом (в начале апрѣля, насколько я понял) массовое переужатие в JPEG всѣхъ изображений, загруженных пользователями в прошлом. Это просто ужас, каким рукожопым получилось переужатие:
① Само выражение «переужатие в JPEG» как бы подразумевает, что новый файл получается хотя бы поменьше старого, однако Jon Sneyers сообщает, что Discord не во всѣхъ случаях достиг этого. (Увы, этим страдает и Telegram! — я вот ужé больше двух лѣтъ назад сообщал, что отправляемый файл от переужатия в JPEG может тут распухнуть!)
② Переужатие совершилося агрессивно и привело к значительным потерям качества: Jon Sneyers прикидывает, что работал кодировщик libjpeg-turbo, ориентированный на 75 баллов качества из ста. (Так как по максимуму их сто, то можно условно сказать «на 75% качества». Но это будет не болѣе чѣмъ метафорою. Важно не забывать, что в строгом смысле «стопроцентным», то есть идеально соѿвѣтствующимъ первоисточнику, качество не будет никогда: кодировщик JPEG занимается переужатием и похѣриваетъ часть качества исходного изображения, даже когда работает «на всѣ сто». Между прочим, качество JPEG и в Телеграме не лучше, чѣмъ достигнутое в Дискорде, но об этом напишу как-нибудь в другой раз.)
③ При переужатии всѣмъ изображениям была навязана цвѣтовая субдискретизация 4:2:0, дополнительно похѣрившая качество тѣхъ изображений, которые изначально были отправлены без субдискретизации.
④ Из старых файлов в новые не были скопированы (а вмѣсто того оказались стёртыми) цвѣтовые профили ICC, так что новые файлы будут восприниматься как расположенные въ цвѣтовомъ пространстве sRGB. И если исходный файл был создан въ болѣе широком цвѣтовомъ пространстве Display P3 (как вон та дѣвочка в затопленном городе) или в Adobe RGB 1998 года (как вон та дѣвочка перед грозою), то цвѣтовой охват сузился с искажением цвѣта ≈каждого пиксела (окромя нецвѣтныхъ: бѣлыхъ, сѣрыхъ, чёрных).
А надо было всего только оптимизировать JPEG без переужатия (автор jpegoptim выпустил 25 марта новую версию и даже приложил к ней готовые сборки для Windows, для macOS и для Linux) или откусить часть файла, слѣдующую за концом структур данных JPEG (как это дѣлаютъ во избавление от RARJPEG).
❤3👍2
Ретвитнул, в частности, вот какие обстоятельства:
① Ситник (один из авторов того цвѣтоподборщика OKLCH, о пользе которого я рассуждал в ноябре 2022 года) повѣдалъ о практическом смысле оранжевой окраски шкуры тигра, прячущегося в зелёной листве или траве — и смысл этот также имѣетъ прямое отношение къ цвѣтовоспріятію: типичные жертвы тигра (в отличие от людей) не обладают трихроматическим зрѣніемъ и оттого не способны отличать оранжевый цвѣтъ от зелёного.
② Екатерина Мизулина высказалася в поддержку идеи о разблокировании Твиттера в РФ.
③ Цвѣтовое пространство sRGB приобретает неожиданную геометрическую форму, если его охват представить в полярных координатах Oklch. Результат сечения этой формы полуплоскостью синих цвѣтовыхъ тонов оказывается не простеньким треугольником (или почти треугольником), расположенным между синею и чёрною и бѣлою вершиною: над чёрно-синей стороной этого треугольника обнаружен узкий «шип», уходящий в область ещё болѣе синих цвѣтовъ. (Насколько я понял, соѿвѣтствующее коду
#0000ff мѣсто этого цвѣтового пространства также обнаруживается именно на этом «шипе». Но пока что я ничего не понял насчёт того, как этот нюанс сечения продолжается вокруг него в объёмном пространстве: является ли «синее лезвие» зазубренным или полым, изгибается ли зигзагом, или чего-нибудь ещё другое происходит?)④ Составлен список типов хранилищ старой информации, нуждающихся въ болѣе или менѣе неотложном страховочном копировании, пока не поздно. Напримѣръ, на четвёртом мѣстѣ — видеокассеты VHS и дискеты.
⑤ Рекламный набор крикливых заголовков других страниц, непремѣнно сопровождаемых ≈квадратными иллюстрациями возле каждого заголовка, по-английски называется словом «chumbox» или «chumbucket».
⑥ В 2019 году на сѣверѣ Россіи случилося нашествие бѣлыхъ медвѣдей.
⑦ По новому закону в штате Вашингтон будут лишаться родительских прав граждане, не давшие согласия на трансгендерирование своего ребёнка.
⑧ Столичные газетчики въ Сѣверо-Американскихъ Соединённых Штатах в 1901 году огорчалися тому, что к 2001 году электроавтомобили будут считаться замшелою стариною.
⑨ Бурые медвѣди бѣгаютъ съ изрядною рѣзвостью.
⑩ Новый искин Корпорации Microsoft способен имитировать голос конкретного человѣка на основе всего трёх секунд его звукозаписи.
⑪ Скоро будет 10 лѣтъ откровению Сноудена, а мало что перемѣнилося: спецслужбы Сѣверо-Американскихъ Соединённых Штатов читали частную переписку пользователей Твиттера (об этом сообщил Маск, нынѣшній владелец Твиттера).
⑫ Филиппины нѣсколько лѣтъ назад угрожали Канаде объявлением войны за присылку на утилизацию калосодержащего мусора, состоявшуюся вопреки договорённостям.
⑬ Анимешный термин «махосёдзё» в 1986 году нѣкоторые авторы воспринимали как охватывающий меньшее количество типов персонажиц, чѣмъ теперь.
Я также ретвитнул сообщения, которыми Jon Sneyers осуждает Discord за массовое переужатие изображений, загруженных пользователями в прошлом. (Контекст этого подробно изложен в моём предшествующем сообщении на канале.) Здѣсь умѣстно сказать ещё и о том, что Discord поднял предѣльный объём файла до 25 мегабайтов (прежде он равнялся 8 мегабайтам), но у нас тут в Телеграме всё равно гораздо больше.
Я также сообщил, что многодесятилѣтняя практика горизонтальной сплюснутости видеокадров (о которой я рассказывал в Телеграме 12 апрѣля) получила своё продолжение в технических возможностях видеокодировщика SVT-AV1 — и что она реально позволяет усилить сжатие видео (жертвуя качеством видеокадров) при записи в файл в формате AV1.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥3👍2❤1
Ретвитнул, в частности, вот какие обстоятельства:
① Нижегородский мещанин испытал с 1780 по 1787 год цѣлый ряд мрачных приключений в трёх частях свѣта: в Америке, в Азии и в Европе.
② Когда сообщение содержит альбом видеоцитат, сокрытых под спойлерами, тогда Telegram не показывает его (причём не только видео, но и текст!) через web-интерфейс для незалогиненных пользователей.
③ С переднего края информатики к нам вернулись упоротые животные из средневековых книг.
④ Больше десятка неприятных фактов выяснилося про пфайзеровскую антиковидную вакцину, их видеоперечисление занимает болѣе получаса.
⑤ Крестный ход въ Бѣлоруссіи сопровождал пѣшій аист, прошагавший съ вѣрующими ≈12 километров.
⑥ Любопытен результат встраивания ChatGPT в «Скайрим», позволяющий бесѣдовать с персонажами и персонажицами (которые, однако же, на каждую реплику сперва откликаются словосочетанием «дай подумать…» и секунды на три или на пять молчаливо задумываются перед полноцѣннымъ словесным откликом).
⑦ Видеоролик Hyundai показывает, что автомобили с колёсами, угол поворота которых доходит до 90°, позволили бы без труда совершать и разворот на одном мѣстѣ, и параллельную парковку в узком пространстве между другими припарковавшимися, и диагональную ѣзду. (Но это концепт, то есть серийного производства таких машин Hyundai не ведёт.)
⑧ Нейросѣтевой аудиокодек Encodec перелицензирован под свободною лицензіею (MIT). Теоретически этого достаточно для того, чтобы «убить» (недосягаемо превзойти) цѣлый ряд других кодеков, сейчас примѣняющихся для информационного сжатия звукозаписей, потому что Encodec опережает их по качеству звука при сильном сжатии. Фактически же сообщество любителей свободного исходного кода, по-видимому, либо ещё не распробовало эту возможность, либо съ недовѣріемъ и опаскою относится к разработкам компании Meta (в конце концов, даже открытый исходный код может, напримѣръ, оказаться запатентованным в непроницаемой тайне, а затѣмъ патент «всплывёт» в нужный момент).
⑨ Нанкинские велодорожки достойны зависти, а ещё в Китае неплохие поѣзда и гаджеты.
⑩ Эпштейн завѣщалъ заморозить свою голову и половой член.
⑪ Маск в очередной раз удивил міръ: порекомендовал загружать в Twitter видеоролики изрядно небольшого размѣра кадров (480p), когда они превосходят 10 минут по длине. Также Маск изгнал из Твиттера автора педофилического знамени — но в этом, наоборот, ничего нѣтъ удивительнаго.
⑫ Теперь в РФ будут принудительно забирать генетический материал у всѣхъ осуждённых — и не только у осуждённых, но и у подозрѣваемыхъ и даже у подвергнутых административному аресту. (Прежде так поступали только с насильниками, растлителями, убийцами и проч.) Любой русский антиутопист, сколько-нибудь надѣлённый воображением, может в эти дни заподозрить (и даже не вполне безосновательно), что такой генетический материал будет отправляться на длительное хранение не только как средство биометрии, но и в ожидании принятия какого-либо закона о недобровольном клонировании ряда категорий граждан, отобранных либо по соображениям воспроизводства населения (напримѣръ, бездѣтныхъ — для начала из числа не состоящих в браке, а там уж как пойдёт), либо съ цѣлью свирѣпыхъ и необычных репрессий (ну, напримѣръ, для создания сотен клонов какого-нибудь такого оппозиционера, которого затѣмъ хочется удобно судить почти безпрерывно под предлогом того, что биологические слѣды преступлений каждого клона могут служить вѣскою уликою против клонированного — особенно если клонирование совершалось в непроницаемой тайне, так что количество и даже существование клонов отрицается).
⑬ В морозные дни на спутниковую тарелку Starlink может помѣститься до полудесятка котов и кошек, даже если для них устроен подогреваемый «кошкин дом» съ ѣдою и водою. (Такова сила стремления их находиться на свѣжемъ воздухе, может быть?)
Я также сообщил, что впредь буду предпочитать новый нулевой пресет новой версии (1.5.0) видеокодировщика SVT-AV1, и объяснил почему. (Как этот пресет, так и вообще новая версия работает быстрѣе.)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍4
Оба анонса про развитие цвѣтовыхъ возможностей браузера Mozilla Firefox, мною 4 февраля пересказанные, оказались в строгом смысле преждевременными.
Обѣщанныя новинки: и поддержка указания в CSS таких цвѣтовъ, которые находятся за предѣлами цвѣтового охвата sRGB, и поддержка анимированных AVIF — дѣйствительно появилися в марте в Firefox 111, однако не для широкого круга пользователей, а для узкого круга экспериментаторов. Та и другая поддержка спрятана была за своею скрытою настройкою, то есть посмотрѣть на её работу можно было только тому, кто зайдёт на страницу «about:config» и найдёт (и включит, так как исходно она отключена) нужную настройку, заранѣе откуда-нибудь зная имя ея.
Имя настройки
А имя настройки, необходимой для поддержки анимированных AVIF, не сообщили даже там. Пользователям, на страницу «about:config» зашедшим, осталася одна только возможность самостоятельно забить в поиск слово «AVIF» и затѣмъ догадаться по смыслу, что настройка
Включение той и другой настройки наконец совершилося по умолчанию (и тѣмъ обеспечило поддержку той и другой возможности во браузере для широкого круга его пользователей) двумя мѣсяцами позднѣе — не в Firefox 111, а в Firefox 113 — не в марте, а в мае нынѣшняго года.
Упоминание поддержки анимированных AVIF (правда, сформулированное нѣсколько тяжёлым языком) и упоминание новых цвѣтовыхъ возможностей CSS даже появилось в сообщении 9 мая о выходе новой версии (Firefox 113) на сайте Фонда Мозиллы.
Однако, вопреки обыкновению, выход этой новой версии состоялся настолько поспѣшно, что ужé всего-навсего через три дня (12 мая) Фонд Мозиллы принуждён был выпустить слѣдующую (поправочную) версию — Firefox 113.0.1 — и новость о её выходе содержала упоминание сразу трёх обнаруженных и исправленных ошибок (то есть, если раздѣлить одно на другое, то в среднем получится ровно по одному исправлению в сутки), среди которых была ошибка цвѣтопередачи, проявившая себя именно на тѣхъ экранахъ (съ цвѣтовымъ охватомъ болѣе широким, чѣмъ у sRGB), на которые рассчитана была поддержка новѣйшихъ цвѣтовыхъ возможностей языка CSS.
Иными словами, нормальное человѣческое налаживание расширенной цвѣтопередачи оказалось отложенным ещё на три дня (с 9 по 12 мая) опосля того, как прежде его пришлось дожидаться три мѣсяца (то есть с начала февраля, если считать от появления первых новостей о грядущих новых возможностях).
Но могло быть и хуже.
В частности, обсуждение другой из исправленных ошибок (которая портила внѣшній видъ краёв экрана при полноэкранной работе браузера в версиях Windows, предшествующих десятой) содержало комментарий о том, что спервоначалу выпуск поправочной версии намѣчали на 23 мая. Было бы досадно сегодня видѣть эти ошибки по-прежнему неисправленными и ждать ещё десяток дней.
А так со вчерашнего дня Firefox встал в ряды тѣхъ браузеров, которые поддерживают современныя цвѣтовыя возможности в CSS и в AVIF.
Теперь единственным сколько-нибудь популярным браузером, всё ещё не поддерживающим во Всемирной Паутине просмотр никаких AVIF: ни анимаций, ни неподвижных картинок — остаётся Microsoft Edge. Но надолго ли он останется таковым? — есть вѣскіе признаки того, что не надолго. В отладочной версии этого браузера (в Edge Canary) поддержка AVIF замѣчена была в середине прошлаго мѣсяца (15 апрѣля), причём в скрытой форме (требуется запуск браузера командною строкою, параметр
Хорошо бы грядущая поддержка анимированных AVIF в Edge не отстала надолго от поддержки неанимированных, а не то синтаксис тега <picture> в языке HTML5 приуготовит и для Edge такие грабли, по которым прогулялися Firefox и Safari — и о которых я рассказывал ровно ⅔ года назад (13 сентября 2022 г.).
Обѣщанныя новинки: и поддержка указания в CSS таких цвѣтовъ, которые находятся за предѣлами цвѣтового охвата sRGB, и поддержка анимированных AVIF — дѣйствительно появилися в марте в Firefox 111, однако не для широкого круга пользователей, а для узкого круга экспериментаторов. Та и другая поддержка спрятана была за своею скрытою настройкою, то есть посмотрѣть на её работу можно было только тому, кто зайдёт на страницу «about:config» и найдёт (и включит, так как исходно она отключена) нужную настройку, заранѣе откуда-нибудь зная имя ея.
Имя настройки
layout.css.more_color_4.enabled, необходимой для поддержки новых способов задания цвѣта, сообщили веборазработчикам на странице «Firefox 111 for developers».А имя настройки, необходимой для поддержки анимированных AVIF, не сообщили даже там. Пользователям, на страницу «about:config» зашедшим, осталася одна только возможность самостоятельно забить в поиск слово «AVIF» и затѣмъ догадаться по смыслу, что настройка
image.avif.sequence.enabled позволит невозбранно достигнуть желаемого.Включение той и другой настройки наконец совершилося по умолчанию (и тѣмъ обеспечило поддержку той и другой возможности во браузере для широкого круга его пользователей) двумя мѣсяцами позднѣе — не в Firefox 111, а в Firefox 113 — не в марте, а в мае нынѣшняго года.
Упоминание поддержки анимированных AVIF (правда, сформулированное нѣсколько тяжёлым языком) и упоминание новых цвѣтовыхъ возможностей CSS даже появилось в сообщении 9 мая о выходе новой версии (Firefox 113) на сайте Фонда Мозиллы.
Однако, вопреки обыкновению, выход этой новой версии состоялся настолько поспѣшно, что ужé всего-навсего через три дня (12 мая) Фонд Мозиллы принуждён был выпустить слѣдующую (поправочную) версию — Firefox 113.0.1 — и новость о её выходе содержала упоминание сразу трёх обнаруженных и исправленных ошибок (то есть, если раздѣлить одно на другое, то в среднем получится ровно по одному исправлению в сутки), среди которых была ошибка цвѣтопередачи, проявившая себя именно на тѣхъ экранахъ (съ цвѣтовымъ охватомъ болѣе широким, чѣмъ у sRGB), на которые рассчитана была поддержка новѣйшихъ цвѣтовыхъ возможностей языка CSS.
Иными словами, нормальное человѣческое налаживание расширенной цвѣтопередачи оказалось отложенным ещё на три дня (с 9 по 12 мая) опосля того, как прежде его пришлось дожидаться три мѣсяца (то есть с начала февраля, если считать от появления первых новостей о грядущих новых возможностях).
Но могло быть и хуже.
В частности, обсуждение другой из исправленных ошибок (которая портила внѣшній видъ краёв экрана при полноэкранной работе браузера в версиях Windows, предшествующих десятой) содержало комментарий о том, что спервоначалу выпуск поправочной версии намѣчали на 23 мая. Было бы досадно сегодня видѣть эти ошибки по-прежнему неисправленными и ждать ещё десяток дней.
А так со вчерашнего дня Firefox встал в ряды тѣхъ браузеров, которые поддерживают современныя цвѣтовыя возможности в CSS и в AVIF.
Теперь единственным сколько-нибудь популярным браузером, всё ещё не поддерживающим во Всемирной Паутине просмотр никаких AVIF: ни анимаций, ни неподвижных картинок — остаётся Microsoft Edge. Но надолго ли он останется таковым? — есть вѣскіе признаки того, что не надолго. В отладочной версии этого браузера (в Edge Canary) поддержка AVIF замѣчена была в середине прошлаго мѣсяца (15 апрѣля), причём в скрытой форме (требуется запуск браузера командною строкою, параметр
--enable-features=msEdgeAVIF содержащею). Отладка и эксперименты потребуют нѣсколькихъ мѣсяцевъ, но со временем и Edge начнёт поддерживать формат AVIF по умолчанию и притом в официальной версии браузера.Хорошо бы грядущая поддержка анимированных AVIF в Edge не отстала надолго от поддержки неанимированных, а не то синтаксис тега <picture> в языке HTML5 приуготовит и для Edge такие грабли, по которым прогулялися Firefox и Safari — и о которых я рассказывал ровно ⅔ года назад (13 сентября 2022 г.).
Telegram
Mithgol the Webmaster
В эти дни небывало кучно идут новости про дальнѣйшее развитие цвѣтовыхъ возможностей браузера Firefox.
Каждая новость упоминает одну и ту же (сто одиннадцатую) версию Файерфокса, которую собираются выпустить в марте.
Во-первых, по наводке из выпуска №354…
Каждая новость упоминает одну и ту же (сто одиннадцатую) версию Файерфокса, которую собираются выпустить в марте.
Во-первых, по наводке из выпуска №354…
👍3🤝2
Стыдно за людей всякий раз, когда приходится видѣть разворачивающуюся в Web 2.0 борьбу за качество иллюстраций: хостинг блогов вступает в такую борьбу против блоггеров, форум или имиджборд вступает в такую борьбу против пользователей, а длится эта борьба до тѣхъ пор, пока обе стороны не оказываются в проигрыше. (А вѣдь иногда не только видѣть, но и участвовать приходится — это ещё болѣе досадно и тягостно бывает. Поэтому я принимаю такую борьбу близко к сердцу — и поэтому тяжело на сердце, когда рассказываю о ней.)
На первый взгляд всё просто: одна сторона (для краткости буду звать её английским словом «сайт») хочет поменьше оплачивать хранение файлов и их отправку по Интернету, поэтому устанавливает ограничения, а другая сторона (для краткости буду звать её английским словом «юзеры») стремится к тому, чтобы качество иллюстраций было как можно болѣе высоким в рамках навязанных им ограничений — для этой цѣли юзеры начинают дѣятельно щупать (и нащупывают) границы допустимого и даже «лазейки в правилах».
И так просто всё было бы, если бы каждый такой сайт устанавливал очень простые и ясные правила: каким является допустимый размѣръ каждой картинки (ширина и высота, выраженные в пикселах)? — каким является допустимый объёмъ ея (в байтах)? — а есть ли ещё установленные на всякий случай ограничения удѣльнаго объёма (количества битов, приходящихся на один пиксел в среднем)? — и одним этим ограничился бы. В таких-то простых правилах трудно было бы найти и лазейки (да и зачѣмъ). Но неизбѣжно начинается своего рода «скатывание по наклонной плоскости»:
① Если иллюстрация используется не только в готовом виде, то есть если на сайте гдѣ-нибудь предусматривается такая миниатюра (thumbnail), которую надобно жмякнуть мышóю для открытия полноразмѣрнаго изображения, то тогда сайту нужен миниатюризатор. Но движок миниатюризатора воспринимает ограниченное количество форматов графических файлов (потому что их поддержку реализует не сам, а полагается на возможности операционной системы, или языка программирования, или какого-нибудь графического пакета), поэтому наиболѣе новые форматы будут запрещены. (Напримѣръ, пакет imagemagick в системе Debian в настоящее время доставляет шестую версию ImageMagick и оттого не понимает формат AVIF. Ещё примѣръ: функция getimagesize в языке PHP получила поддержку AVIF только тогда, когда версия 8.2.0 этого языка была выпущена в декабре 2022 года. Но это современные примѣры — а если миниатюризатор сочиняли в прошлом десятилѣтіи, то тогда и поддержку формата WebP могли не обеспечить, а не только формата AVIF.)
② Располагая необходимыми миниатюризатору средствами уменьшения размѣра и объёма изображений, сайт начинает примѣнять их не только к миниатюрам, но и к полноразмѣрнымъ изображениям — не отвергать присланные юзерами иллюстрации неподходящего размѣра и объёма, а принудительно уменьшать их (если размѣръ оказался чрезмѣрнымъ) или принудительно переужимать с потерей качества изображения для экономии объёма файла (если объёмъ оказался чрезмѣрнымъ).
③ Большинство юзеров радуется тому, что можно кидать на сайт иллюстрации, не глядя на то, каков их размѣръ и качество — сайт сам ужмёт, если ему надо. Удѣломъ узкого круга (увлечённых фотографов, цифровых художников, etc.) становится само знание о том, как самостоятельно подогнать картинку под объём, не слишком похѣривая качество.
④ Сайт сталкивается съ тѣмъ, что обратною стороною сокращения расходов на объём (траффик, хранение) изображений становятся расходы на переужатие изображений. Поневоле сайт должен сократить затраты процессорного времени (которые не бесплатны), поэтому он приходит к использованию таких кодировщиков изображений, которые силе сжатия предпочитают скорость работы (напримѣръ, libjpeg-turbo может работать в 34—59 раз быстрѣе, но при этом сжимать JPEG в среднем на 20% хуже, чѣмъ MozJPEG). Но если файлы получаются больше при равном качестве, то тогда их качество сильнѣе страдает при том (большем) сжатии, которое требуется для того, чтобы уложиться в прежнее (малое) ограничение объёма.
Такое падение качества ужé печально, но «дальше — больше».
На первый взгляд всё просто: одна сторона (для краткости буду звать её английским словом «сайт») хочет поменьше оплачивать хранение файлов и их отправку по Интернету, поэтому устанавливает ограничения, а другая сторона (для краткости буду звать её английским словом «юзеры») стремится к тому, чтобы качество иллюстраций было как можно болѣе высоким в рамках навязанных им ограничений — для этой цѣли юзеры начинают дѣятельно щупать (и нащупывают) границы допустимого и даже «лазейки в правилах».
И так просто всё было бы, если бы каждый такой сайт устанавливал очень простые и ясные правила: каким является допустимый размѣръ каждой картинки (ширина и высота, выраженные в пикселах)? — каким является допустимый объёмъ ея (в байтах)? — а есть ли ещё установленные на всякий случай ограничения удѣльнаго объёма (количества битов, приходящихся на один пиксел в среднем)? — и одним этим ограничился бы. В таких-то простых правилах трудно было бы найти и лазейки (да и зачѣмъ). Но неизбѣжно начинается своего рода «скатывание по наклонной плоскости»:
① Если иллюстрация используется не только в готовом виде, то есть если на сайте гдѣ-нибудь предусматривается такая миниатюра (thumbnail), которую надобно жмякнуть мышóю для открытия полноразмѣрнаго изображения, то тогда сайту нужен миниатюризатор. Но движок миниатюризатора воспринимает ограниченное количество форматов графических файлов (потому что их поддержку реализует не сам, а полагается на возможности операционной системы, или языка программирования, или какого-нибудь графического пакета), поэтому наиболѣе новые форматы будут запрещены. (Напримѣръ, пакет imagemagick в системе Debian в настоящее время доставляет шестую версию ImageMagick и оттого не понимает формат AVIF. Ещё примѣръ: функция getimagesize в языке PHP получила поддержку AVIF только тогда, когда версия 8.2.0 этого языка была выпущена в декабре 2022 года. Но это современные примѣры — а если миниатюризатор сочиняли в прошлом десятилѣтіи, то тогда и поддержку формата WebP могли не обеспечить, а не только формата AVIF.)
② Располагая необходимыми миниатюризатору средствами уменьшения размѣра и объёма изображений, сайт начинает примѣнять их не только к миниатюрам, но и к полноразмѣрнымъ изображениям — не отвергать присланные юзерами иллюстрации неподходящего размѣра и объёма, а принудительно уменьшать их (если размѣръ оказался чрезмѣрнымъ) или принудительно переужимать с потерей качества изображения для экономии объёма файла (если объёмъ оказался чрезмѣрнымъ).
③ Большинство юзеров радуется тому, что можно кидать на сайт иллюстрации, не глядя на то, каков их размѣръ и качество — сайт сам ужмёт, если ему надо. Удѣломъ узкого круга (увлечённых фотографов, цифровых художников, etc.) становится само знание о том, как самостоятельно подогнать картинку под объём, не слишком похѣривая качество.
④ Сайт сталкивается съ тѣмъ, что обратною стороною сокращения расходов на объём (траффик, хранение) изображений становятся расходы на переужатие изображений. Поневоле сайт должен сократить затраты процессорного времени (которые не бесплатны), поэтому он приходит к использованию таких кодировщиков изображений, которые силе сжатия предпочитают скорость работы (напримѣръ, libjpeg-turbo может работать в 34—59 раз быстрѣе, но при этом сжимать JPEG в среднем на 20% хуже, чѣмъ MozJPEG). Но если файлы получаются больше при равном качестве, то тогда их качество сильнѣе страдает при том (большем) сжатии, которое требуется для того, чтобы уложиться в прежнее (малое) ограничение объёма.
Такое падение качества ужé печально, но «дальше — больше».
👍4👏1
Первые четыре шага «скатывания по наклонной плоскости», мною перечисленные в предшествующем сообщении, «почти обязательны» в том смысле, что с суровою неизбѣжностью происходят очень во многих сколько-нибудь популярных проектах и умаляют среднее качество изображений. Правда, этой цѣною покупается беззаботность большей части юзеров, избавление от хлопот по самостоятельному поддержанию иллюстраций въ разрѣшённыхъ рамках размѣра и объёма. Но положение дѣлъ может быть дополнительно ухудшено одной или нѣсколькими изъ слѣдующихъ мѣръ:
➊ Так как на нѣкоторые наиболѣе новые графические форматы (AVIF и нерѣдко WebP) накладывается либо жёсткий запрет, либо автоматическое преобразование въ болѣе ранній формат (чаще всего — в JPEG), то инерция сознания подталкивает хозяев сайта к тому, чтобы сократить употребление и ещё одного формата (а именно PNG) в пользу JPEG. Так как сохранение в формате PNG происходит без внесения потерь (а в формате JPEG — с внесением потерь), то отказ от PNG в пользу JPEG воспринимается как способ дальнѣйшей экономии объёма файла. Однако же ещё 15 лѣтъ назад (в 2008 году) Louis Brandy в своей работе «My First and Last Webcomic» совершенно вѣрно перечислил такие сорта картинок: скриншоты с текстом, графики, логотипы, чертежи, иллюстрации с надписями — со сжатием которых JPEG справляется довольно скверно или вносит в них искажения, хорошо замѣтныя на нефотографических фонах (и «расходящиеся волны» вокруг линий, и «вьющуюся мошкару» вокруг мелких деталей, и «размытие по квадратику» у острых углов и у диагоналей). Поэтому отказ от PNG в пользу JPEG в лучшем случае приводит къ дальнѣйшему падению качества изображений, в худшем случае порождает ещё и JPEG большего объёма, чѣмъ исходный PNG — но если сайт проектируется с расчётом на полный и безусловный отказ от PNG, то тогда даже такие распухшие файлы (худшие и по качеству, и по объёму) приходится использовать вмѣсто исходных.
➋ Стремление ещё усилить экономию может понуждать сайт къ замѣнѣ нѣкоторыхъ чётких ограничений объёма нечёткими, имѣющими чисто техническое происхождение — и тогда, напримѣръ, вмѣсто формулировки «файл переужимается из PNG в JPEG, если превосходит такой-то удѣльный объём» (или не удѣльный) появляется формулировка «…если занимает в JPEG меньше мѣста опосля переужатия нашим кодировщиком». Очевидная польза — дальнѣйшая экономия мѣста и траффика. Очевидный недостаток — неспособность юзеров заранее угадать, окажется ли тот или иной файл переужатым, особенно если сайт пользуется своим собственным кодировщиком (а не каким-нибудь общеизвѣстнымъ) и никому его не предоставляет.
➌ Дно бездны стремления к экономии — это полный отказ от строгой формулировки ограничений объёма файла в пользу обязательного переужатия каждого файла в формат JPEG на стороне сайта (тѣмъ кодировщиком и съ тѣми настройками, которые неизвѣстны юзерам — и которые, даже однажды угаданные хотя бы примѣрно, могут впредь перемѣняться без какого-либо увѣдомленія). В сущности, «слишком хорошо — тоже нехорошо», и на этом днище экономия въ извѣстной мѣрѣ обращается в свою противоположность, порождая безысходность всеобщих потерь:
⓵ Сайт теряет деньги на перекодирование таких иллюстраций, нѣкоторыя из которых (если судить по их объёму) можно было бы оставить без перекодирования, поскольку достигаемая экономия на их хранении и передаче не покрывает даже затраты на перекодирование.
⓶ Сайт теряет деньги на хранении и передаче файлов, если использует итог перекодировки в любом случае (то есть даже когда получающийся JPEG превосходит исходный файл по объёму). Вы полагаете, может быть, что таких идиотских сайтов не бывает? — увы, 4channel поступает именно так!
⓷ Цифровые иллюстрации парадоксально теряют качество, над ними горько посмѣивается Рэндалл Манро.
⓸ Ещё менѣе распространённым и болѣе трудоёмким становится стремление юзеров к самостоятельному сжатию изображений. Рѣчь идёт ужé не просто о том, чтоб найти кодировщик JPEG, превосходящий собою кодировщик на сайте: приходится подыскивать каждому JPEG тот порог качества его, выше которого сайт решит использовать свой итог перекодировки.
➊ Так как на нѣкоторые наиболѣе новые графические форматы (AVIF и нерѣдко WebP) накладывается либо жёсткий запрет, либо автоматическое преобразование въ болѣе ранній формат (чаще всего — в JPEG), то инерция сознания подталкивает хозяев сайта к тому, чтобы сократить употребление и ещё одного формата (а именно PNG) в пользу JPEG. Так как сохранение в формате PNG происходит без внесения потерь (а в формате JPEG — с внесением потерь), то отказ от PNG в пользу JPEG воспринимается как способ дальнѣйшей экономии объёма файла. Однако же ещё 15 лѣтъ назад (в 2008 году) Louis Brandy в своей работе «My First and Last Webcomic» совершенно вѣрно перечислил такие сорта картинок: скриншоты с текстом, графики, логотипы, чертежи, иллюстрации с надписями — со сжатием которых JPEG справляется довольно скверно или вносит в них искажения, хорошо замѣтныя на нефотографических фонах (и «расходящиеся волны» вокруг линий, и «вьющуюся мошкару» вокруг мелких деталей, и «размытие по квадратику» у острых углов и у диагоналей). Поэтому отказ от PNG в пользу JPEG в лучшем случае приводит къ дальнѣйшему падению качества изображений, в худшем случае порождает ещё и JPEG большего объёма, чѣмъ исходный PNG — но если сайт проектируется с расчётом на полный и безусловный отказ от PNG, то тогда даже такие распухшие файлы (худшие и по качеству, и по объёму) приходится использовать вмѣсто исходных.
➋ Стремление ещё усилить экономию может понуждать сайт къ замѣнѣ нѣкоторыхъ чётких ограничений объёма нечёткими, имѣющими чисто техническое происхождение — и тогда, напримѣръ, вмѣсто формулировки «файл переужимается из PNG в JPEG, если превосходит такой-то удѣльный объём» (или не удѣльный) появляется формулировка «…если занимает в JPEG меньше мѣста опосля переужатия нашим кодировщиком». Очевидная польза — дальнѣйшая экономия мѣста и траффика. Очевидный недостаток — неспособность юзеров заранее угадать, окажется ли тот или иной файл переужатым, особенно если сайт пользуется своим собственным кодировщиком (а не каким-нибудь общеизвѣстнымъ) и никому его не предоставляет.
➌ Дно бездны стремления к экономии — это полный отказ от строгой формулировки ограничений объёма файла в пользу обязательного переужатия каждого файла в формат JPEG на стороне сайта (тѣмъ кодировщиком и съ тѣми настройками, которые неизвѣстны юзерам — и которые, даже однажды угаданные хотя бы примѣрно, могут впредь перемѣняться без какого-либо увѣдомленія). В сущности, «слишком хорошо — тоже нехорошо», и на этом днище экономия въ извѣстной мѣрѣ обращается в свою противоположность, порождая безысходность всеобщих потерь:
⓵ Сайт теряет деньги на перекодирование таких иллюстраций, нѣкоторыя из которых (если судить по их объёму) можно было бы оставить без перекодирования, поскольку достигаемая экономия на их хранении и передаче не покрывает даже затраты на перекодирование.
⓶ Сайт теряет деньги на хранении и передаче файлов, если использует итог перекодировки в любом случае (то есть даже когда получающийся JPEG превосходит исходный файл по объёму). Вы полагаете, может быть, что таких идиотских сайтов не бывает? — увы, 4channel поступает именно так!
⓷ Цифровые иллюстрации парадоксально теряют качество, над ними горько посмѣивается Рэндалл Манро.
⓸ Ещё менѣе распространённым и болѣе трудоёмким становится стремление юзеров к самостоятельному сжатию изображений. Рѣчь идёт ужé не просто о том, чтоб найти кодировщик JPEG, превосходящий собою кодировщик на сайте: приходится подыскивать каждому JPEG тот порог качества его, выше которого сайт решит использовать свой итог перекодировки.
👍2👏1
На какой стадии того пути, который очерчен двумя предшествующими сообщениями, располагается Twitter?
Наступил ли Twitter на грабли отказа от поддержки новых форматов и необходимости быстрого сжатия в ущерб качеству? — да, наступил: публикуемые файлы WebP автоматически перекодируются в JPEG (85 баллов качества из ста), и притом Нолан О'Брайен сообщил в январе 2019 года, что тогдашний твиттеровский кодировщик JPEG и в другом случае (при кодировании не WebP, а PNG в JPEG) напоминал собою libjpeg-turbo, работающий с этим же числом баллов качества (85 из 100) в режиме цвѣтовой субдискретизации 4:2:0 и постепенного «наведения на рѣзкость» (progressive encoding).
Наступил ли Twitter на грабли ограничения PNG и нечёткости правил? — увы, и в этом также замѣченъ.
Ещё в 2016 году мы видим в Твиттере обязательное перекодирование из PNG в JPEG для всѣхъ изображений, окромя прозрачных (потому что прозрачность в JPEG не поддерживается), и видим сообщество микроблоггеров наносящим ѿвѣтный удар: въ апрѣлѣ 2016 года создаётся translucent — средство для придания одному пикселу (в верхнем лѣвомъ углу изображения) небольшой прозрачности (0,4%), чтобы этим способом обдурить тогдашний движок Твиттера и отключить JPEGование обработанного этим способом изображения, сохранённого в формате PNG.
Я не слѣдилъ за происходящим, но вроде бы нѣкоторое время Twitter ужесточал требования, а поклонники PNG наращивали искусственную прозрачность. Это закончилось в феврале и марте 2019 года переходом на новый набор правил (дѣйствующій до сих пор), ориентирующийся на малый размѣръ или малый удѣльный объём файла PNG и совершенно игнорирующий количество прозрачных пикселов и степень их прозрачности. Обширные категории файлов PNG: малоразмѣрные PNG (900×900 пикселов и меньше), PNG с фиксированною палитрою, сѣрые PNG с небольшим числом оттѣнковъ сѣраго (однобитные, двухбитные, четырёхбитные) — объявлены были не подлежащими JPEGованию. (Узнав об этом в том же году, я порадовался.) Но для всѣхъ прочих файлов PNG обязательно происходило кодирование в JPEG, итог которого затѣмъ сравнивался с исходным PNG по объёму и публиковался вмѣсто него, если оказывался меньшим. Вы сознаёте, я надѣюсь, что это правило — нечёткое, опирающееся единственно на способности твиттеровского кодировщика JPEG, не доступного для скачивания пользователями, так что за предѣлами неJPEGуемых сортов PNG лишь экспериментально можно провѣрить, будет ли конкретный PNG оставлен «как есть» при публикации в Твиттере.
В 2020 год Twitter вступил с не менѣе ясными правилами и для JPEG, также заботящимися об исключении (въ нѣкоторыхъ разумных рамках) преобразования JPEG-в-JPEG с потерею качества. Теперь JPEG стали публиковаться «как есть», если одновременно выполняли четыре условия: не превосходили 4096 пикселов по большей стороне, не превосходили 5 мегабайтов, не тратили больше 8 битов на пиксел в среднем и не содержали в заголовке инструкцию о необходимости довернуть изображение (на 90° в ту или иную сторону или на 180°). Нетрудно видѣть, что эти правила чётко излагают желаемые ограничения и объёма, и размѣра, и частного ѿ дѣленія одного на другое. Сами по себе эти правила хороши, как и правила PNG — но контраст чёткости правил JPEG и нечёткости правил PNG создаёт обстоятельства взаимного проигрыша.
Микроблоггер, который желал опубликовать свой PNG, но нарвался на автоматическое перекодирование в JPEG, с 2020 года получил возможность стерѣть полученный JPEG (и всю свою микроблогозапись), а затѣмъ опубликовать заново, создав JPEG из PNG самостоятельно. Никто не мѣшаетъ ему выключить субдискретизацию и вообще придать этому JPEG максимум качества въ предѣлахъ 5 мегабайтов и 8 битов на пиксел. Но микроблоггер теряет время на попытку выложить PNG, а PNG теряет качество при любом преобразовании в JPEG (даже совершаемом на 100 баллах качества из 100 возможных и притом посредством кодировщика, ориентированного на качество — а не на скорость работы, как кодировщик самогó Твиттера), а Twitter принуждается хранить файл JPEG большего объёма, чѣмъ был PNG. Это и есть обѣщанная выше ситуация взаимного проигрыша.
Наступил ли Twitter на грабли отказа от поддержки новых форматов и необходимости быстрого сжатия в ущерб качеству? — да, наступил: публикуемые файлы WebP автоматически перекодируются в JPEG (85 баллов качества из ста), и притом Нолан О'Брайен сообщил в январе 2019 года, что тогдашний твиттеровский кодировщик JPEG и в другом случае (при кодировании не WebP, а PNG в JPEG) напоминал собою libjpeg-turbo, работающий с этим же числом баллов качества (85 из 100) в режиме цвѣтовой субдискретизации 4:2:0 и постепенного «наведения на рѣзкость» (progressive encoding).
Наступил ли Twitter на грабли ограничения PNG и нечёткости правил? — увы, и в этом также замѣченъ.
Ещё в 2016 году мы видим в Твиттере обязательное перекодирование из PNG в JPEG для всѣхъ изображений, окромя прозрачных (потому что прозрачность в JPEG не поддерживается), и видим сообщество микроблоггеров наносящим ѿвѣтный удар: въ апрѣлѣ 2016 года создаётся translucent — средство для придания одному пикселу (в верхнем лѣвомъ углу изображения) небольшой прозрачности (0,4%), чтобы этим способом обдурить тогдашний движок Твиттера и отключить JPEGование обработанного этим способом изображения, сохранённого в формате PNG.
Я не слѣдилъ за происходящим, но вроде бы нѣкоторое время Twitter ужесточал требования, а поклонники PNG наращивали искусственную прозрачность. Это закончилось в феврале и марте 2019 года переходом на новый набор правил (дѣйствующій до сих пор), ориентирующийся на малый размѣръ или малый удѣльный объём файла PNG и совершенно игнорирующий количество прозрачных пикселов и степень их прозрачности. Обширные категории файлов PNG: малоразмѣрные PNG (900×900 пикселов и меньше), PNG с фиксированною палитрою, сѣрые PNG с небольшим числом оттѣнковъ сѣраго (однобитные, двухбитные, четырёхбитные) — объявлены были не подлежащими JPEGованию. (Узнав об этом в том же году, я порадовался.) Но для всѣхъ прочих файлов PNG обязательно происходило кодирование в JPEG, итог которого затѣмъ сравнивался с исходным PNG по объёму и публиковался вмѣсто него, если оказывался меньшим. Вы сознаёте, я надѣюсь, что это правило — нечёткое, опирающееся единственно на способности твиттеровского кодировщика JPEG, не доступного для скачивания пользователями, так что за предѣлами неJPEGуемых сортов PNG лишь экспериментально можно провѣрить, будет ли конкретный PNG оставлен «как есть» при публикации в Твиттере.
В 2020 год Twitter вступил с не менѣе ясными правилами и для JPEG, также заботящимися об исключении (въ нѣкоторыхъ разумных рамках) преобразования JPEG-в-JPEG с потерею качества. Теперь JPEG стали публиковаться «как есть», если одновременно выполняли четыре условия: не превосходили 4096 пикселов по большей стороне, не превосходили 5 мегабайтов, не тратили больше 8 битов на пиксел в среднем и не содержали в заголовке инструкцию о необходимости довернуть изображение (на 90° в ту или иную сторону или на 180°). Нетрудно видѣть, что эти правила чётко излагают желаемые ограничения и объёма, и размѣра, и частного ѿ дѣленія одного на другое. Сами по себе эти правила хороши, как и правила PNG — но контраст чёткости правил JPEG и нечёткости правил PNG создаёт обстоятельства взаимного проигрыша.
Микроблоггер, который желал опубликовать свой PNG, но нарвался на автоматическое перекодирование в JPEG, с 2020 года получил возможность стерѣть полученный JPEG (и всю свою микроблогозапись), а затѣмъ опубликовать заново, создав JPEG из PNG самостоятельно. Никто не мѣшаетъ ему выключить субдискретизацию и вообще придать этому JPEG максимум качества въ предѣлахъ 5 мегабайтов и 8 битов на пиксел. Но микроблоггер теряет время на попытку выложить PNG, а PNG теряет качество при любом преобразовании в JPEG (даже совершаемом на 100 баллах качества из 100 возможных и притом посредством кодировщика, ориентированного на качество — а не на скорость работы, как кодировщик самогó Твиттера), а Twitter принуждается хранить файл JPEG большего объёма, чѣмъ был PNG. Это и есть обѣщанная выше ситуация взаимного проигрыша.
👍3👏1
В смысле взаимного проигрыша положение Телеграма и его пользователей выглядит ещё хуже, чѣмъ обозначенное в предшествующем сообщении положение Твиттера.
Наступил ли Telegram на грабли отказа от поддержки новых форматов и необходимости быстрого сжатия в ущерб качеству? — да, наступил: вам не удастся обойтись без перекодирования в JPEG при отправке WebP или при отправке AVIF, и хотя (в отличие от твиттеровского О'Брайена) работники Телеграма никогда не сознавалися даже примѣрно, какой кодировщик JPEG употребляется на сёрвере, а всё-таки можно пристально вглядываться в его результаты и убедиться, что они хуже по качеству картинки, чѣмъ достигаемые в MozJPEG или в jpegli при равном объёме файла.
Наступил ли Telegram на грабли ограничения PNG и отказа от чётких ограничений на объём картинок в пользу болѣе частой перекодировки в JPEG? — ещё как наступил! Telegram зашёл по этому пути так далеко, как это вообще возможно: не только перекодирование PNG в JPEG происходит обязательно (даже тогда, когда при этом не только ухудшается качество картинки, но и возрастает объём ея), но и перекодирование из JPEG в JPEG обязательно и многократно. Переужатие JPEG-в-JPEG происходит перед отправкою (насколько я знаю, отключено оно только в Telegram Desktop и только для файлов JPEG, тратящих не больше полубайта на пиксел в среднем). Переужатие JPEG-в-JPEG происходило перед сохранением принятых файлов в Telegram Desktop до 9 марта 2022 г., а затѣмъ было выключено. Но важнѣе всего, что переужатие JPEG-в-JPEG (с внесением потерь в изображение) происходит на сёрверной стороне, а почему важнѣе? — потому, что сёрвер вносит наибольший вклад в сжатие изображений в Телеграме. Хорошо ещё, что (в отличие от переужатия PNG) результат сёрверного переужатия JPEG используется Телеграмом (отправляется собѣседникамъ, публикуется на канале, etc.) только тогда, когда он меньше отправленного JPEG по объёму.
Формально всё это позволяет пользователю Телеграма, располагая мощным кодировщиком (MozJPEG, jpegli и проч.), отправлять болѣе качественные файлы JPEG до тѣхъ поръ, пока он сжимает их ещё и сильнѣе (по объёму файла), а не просто качественнѣе, чѣмъ сам Telegram. Практически же ему приходится соревноваться с кодировщиком, модель и параметры работы которого не извѣстны, а также учитывать и влияние декодировщика (полученный на сёрвере файл JPEG сперва декодируется в пикселы, которые-то затѣмъ поступают кодировщику), модель и параметры работы которого также не извѣстны (но качество, во всяком случае, хуже knusperli).
Как может быть устроено такое соревнование?
Ну, напримѣръ, пользователь может постепенно наращивать степень сжатия JPEG до тѣхъ поръ, пока не найдёт пороговое значение, по достижению которого Telegram прекратит использование результата сёрверного сжатия.
А будет ли такой пользователь всякий раз опосля отправки очередного результата сжатия выходить из Saved Messages (или из отложенных, или куда он там отправил результат), затѣмъ чистить кэш (в Telegram Desktop для того надо зайти в меню Settings и жмякнуть подпункт Advanced → Manage local storage → Clear all), перезапускать клиент Телеграма, перезаходить и скачивать ужé обработанный на сёрвере (а не кэшированный на клиенте) файл JPEG, чтоб сравнить и увидать, перемѣнился ли объём его?
Вряд ли. Такія бѣшеныя затраты усилій трудно вообразить. Разумнѣе перебрать цѣлый диапазон параметров кодировщика (напримѣръ, запустить jpegli командою «cjpegli --distance=1.1» и затѣмъ перебирать до «cjpegli --distance=1.6» через одну десятую), составить альбом получившихся картинок, сразу весь отправить — тогда чистить кэш придётся только один раз перед скачиванием этого альбома. Найдя пороговое значение десятых долей, можно составить второй альбом (ужé из девяти картинок) для перебора сотых долей значения параметра (от 1.51 до 1.59, напримѣръ), затѣмъ третий альбом для перебора тысячных долей.
Такой пользователь зря тратит время, но и Telegram зря тратит хранилище, раз уж хранит даже стёртые картинки и даже в секретных чатах. Обязательность сжатия JPEG, задуманная для экономии, ≈удвадцатеряет эти взаимные потери.
Наступил ли Telegram на грабли отказа от поддержки новых форматов и необходимости быстрого сжатия в ущерб качеству? — да, наступил: вам не удастся обойтись без перекодирования в JPEG при отправке WebP или при отправке AVIF, и хотя (в отличие от твиттеровского О'Брайена) работники Телеграма никогда не сознавалися даже примѣрно, какой кодировщик JPEG употребляется на сёрвере, а всё-таки можно пристально вглядываться в его результаты и убедиться, что они хуже по качеству картинки, чѣмъ достигаемые в MozJPEG или в jpegli при равном объёме файла.
Наступил ли Telegram на грабли ограничения PNG и отказа от чётких ограничений на объём картинок в пользу болѣе частой перекодировки в JPEG? — ещё как наступил! Telegram зашёл по этому пути так далеко, как это вообще возможно: не только перекодирование PNG в JPEG происходит обязательно (даже тогда, когда при этом не только ухудшается качество картинки, но и возрастает объём ея), но и перекодирование из JPEG в JPEG обязательно и многократно. Переужатие JPEG-в-JPEG происходит перед отправкою (насколько я знаю, отключено оно только в Telegram Desktop и только для файлов JPEG, тратящих не больше полубайта на пиксел в среднем). Переужатие JPEG-в-JPEG происходило перед сохранением принятых файлов в Telegram Desktop до 9 марта 2022 г., а затѣмъ было выключено. Но важнѣе всего, что переужатие JPEG-в-JPEG (с внесением потерь в изображение) происходит на сёрверной стороне, а почему важнѣе? — потому, что сёрвер вносит наибольший вклад в сжатие изображений в Телеграме. Хорошо ещё, что (в отличие от переужатия PNG) результат сёрверного переужатия JPEG используется Телеграмом (отправляется собѣседникамъ, публикуется на канале, etc.) только тогда, когда он меньше отправленного JPEG по объёму.
Формально всё это позволяет пользователю Телеграма, располагая мощным кодировщиком (MozJPEG, jpegli и проч.), отправлять болѣе качественные файлы JPEG до тѣхъ поръ, пока он сжимает их ещё и сильнѣе (по объёму файла), а не просто качественнѣе, чѣмъ сам Telegram. Практически же ему приходится соревноваться с кодировщиком, модель и параметры работы которого не извѣстны, а также учитывать и влияние декодировщика (полученный на сёрвере файл JPEG сперва декодируется в пикселы, которые-то затѣмъ поступают кодировщику), модель и параметры работы которого также не извѣстны (но качество, во всяком случае, хуже knusperli).
Как может быть устроено такое соревнование?
Ну, напримѣръ, пользователь может постепенно наращивать степень сжатия JPEG до тѣхъ поръ, пока не найдёт пороговое значение, по достижению которого Telegram прекратит использование результата сёрверного сжатия.
А будет ли такой пользователь всякий раз опосля отправки очередного результата сжатия выходить из Saved Messages (или из отложенных, или куда он там отправил результат), затѣмъ чистить кэш (в Telegram Desktop для того надо зайти в меню Settings и жмякнуть подпункт Advanced → Manage local storage → Clear all), перезапускать клиент Телеграма, перезаходить и скачивать ужé обработанный на сёрвере (а не кэшированный на клиенте) файл JPEG, чтоб сравнить и увидать, перемѣнился ли объём его?
Вряд ли. Такія бѣшеныя затраты усилій трудно вообразить. Разумнѣе перебрать цѣлый диапазон параметров кодировщика (напримѣръ, запустить jpegli командою «cjpegli --distance=1.1» и затѣмъ перебирать до «cjpegli --distance=1.6» через одну десятую), составить альбом получившихся картинок, сразу весь отправить — тогда чистить кэш придётся только один раз перед скачиванием этого альбома. Найдя пороговое значение десятых долей, можно составить второй альбом (ужé из девяти картинок) для перебора сотых долей значения параметра (от 1.51 до 1.59, напримѣръ), затѣмъ третий альбом для перебора тысячных долей.
Такой пользователь зря тратит время, но и Telegram зря тратит хранилище, раз уж хранит даже стёртые картинки и даже в секретных чатах. Обязательность сжатия JPEG, задуманная для экономии, ≈удвадцатеряет эти взаимные потери.
👏1🤯1