AV1 и аппаратное ускорение

Есть такой относительно новый хороший формат графики для веба — AVIF (появился всего семь лет назад). Формат правда хороший, но есть недостаток — очень уж алгоритмически сложный. Из-за этого кодировать в него получается довольно медленно. Декодировать, кстати, тоже не сахар — на медленных компьютера сотня картинок может сильно нагружать процессор.

И декодеры и кодеры стараются программно ускорить, но всё равно получается довольно медленно. Я давно предсказывал появление аппаратных ускорителей, но пропустил момент, когда они появились. Мой «Макбук» на чипе «М3 Макс», значит у меня есть по меньшей мере декодер.

На картинке он обозначен как «AV1 decode», AV1 — это название кодека, которым сжата графика в формате AVIF.

График: производительность чипов Apple по видеоускорению. M3 Ultra — 1404%, M2 Ultra — 1202%, M1 Ultra — 1026%, M4 Max — 834%. Поддержка AV1, H.264, HEVC, ProRes.

У «Интела» аппаратный декодер тоже есть, думаю у других производителей тоже, я не смотрел. А это, по сути, значит, что формат уже победил всех конкурентов и постепенно начнёт выходить на первые позиции. Разве что появится что-то легковесное, но при этом обладающее лучшим коэффициентом сжатия, но в это верится с трудом.

Оставить комментарий

Знак рубля

У меня почему-то знак рубля (₽) очень прочно ассоциировался с Артемием Лебедевым. Я полагал, что его придумал он или кто-то из его студии. Видимо, дело в том, что Лебедев когда-то активно выступал за его принятие, и тот поднятый информационный шум связал в моей голове знак рубля и Лебедева.

Я даже нашёл старый параграф лебедевского «Ководства» за 2009 год, где была агитация за принятие этого знака, чтобы посмотреть, не утверждалось ли там, что знак рубля придумал Лебедев или кто-то из его студии. Оказывается, нет — там говорится следующее:

Особенно необходимо отметить, что у нового знака нет автора, на его копирование и модификации не накладывается никаких ограничений. Знак создан и выбран в соответствии с объективными требованиями. Закон об авторском праве не охраняет этот знак.

Странное утверждение, так как в брошюре «Знак рубля», изданной по результатам конкурса, проведённого в 1999 году издательским домом «Коммерсантъ» и Профессиональным клубом дизайнеров-графиков «Портфелио», у знака «₽» есть автор — дизайнер Александр Владимирович Тарбеев.

Разворот книги «Знак рубля»: слева — варианты символа рубля (₽, ₪, Ru), справа — список участников акции с номерами страниц и городами, заголовок «Народная акция».
Склейка двух листов брошюры — знака рубля и его автора

Этот знак, к слову, в том конкурсе не победил — набрал только 11,14% при 23,99 у победителя.

Известно так же, что это был не первый подобный конкурс, первый проводил журнал «Финансист» в 1997-м году. И уже там предлагалось перечеркнуть букву «Р»:

Наиболее часто предлагающиеся варианты основаны на использовании кириллической буквы «Р» или латинской буквы «R», которые перечеркиваются вдоль, поперек или по диагонали, оставаясь при этом теми же буквами «Р» и «R».

В общем, Лебедев к этому знаку отношения не имеет. Кстати, у него в том же параграфе «Ководства» так же написано:

Раньше не было необходимости в отдельном знаке рубля.

«Раньше» — это, собственно, когда? В брошюре «Знак рубля» есть письмо от Центробанка от 17 февраля 2000 года, где сообщается следующее:

Для Вашего сведения сообщаем, что, начиная с 1995 года, на всех банкнотах Банка России проставляется знак «РР», т. е. «российский рубль», и Банк России в настоящий момент не видит необходимости в его замене.

То есть необходимость в знаке рубля существовала и ранее, раз знак был. Думаю, что-то можно найти в более раннем периоде, я, например, помню прочерк («—»), которым обозначали цену в рублях на советских ценниках.

Я не погружался в предмет особенно глубоко, но один из знаков удалось легко разыскать и в дореволюционном источнике.

Разворот старинной книги с текстом на церковнославянском языке и математическими вычислениями, включая столбцы чисел и примеры деления.
«Арифметика» Леонтия Филипповича Магницкого, издание 1703 года

Например, в известнейшей «Арифметике» русского математика Магницкого 1703 года, рубль обозначается лигатурой «руб», написанной наискосок. При этом в «Википедии» есть и другие знаки.

18 комментариев

Мултипликацио и дивизио

Пока листал «Арифметику» Магницкого, нашёл два забавных слова — «мултипликацио» и «дивизио». Видимо, тогда наряду с русскими «умножение» и «деление» использовались и их латинские аналоги.

Заголовок «Предѣленіе шестое» красными буквами, подзаголовок «мультипликацію, или умноженіе въ долгахъ» и строка «что въ семъ предѣленіи достоитъ видѣти» на фоне орнамента.
Заголовок «Предъѣленіе ведомое» и подзаголовок «Дивизіо, или дѣленіе въ долгахъ. Что есть дѣленіе въ долгахъ, и коінка емъ посвѣщяютъ;» на странице старинного печатного издания.

4 комментария

Удалённая работа и начало нулевых

Пока я шарахался по старому интернету «Виолой», заглянул через «Веб-архив» и на сайт к Дмитрию Завалишину. Его сайт dz.ru был в своё время очень известным, я его тогда тоже читал взахлёб. А там как-то совершенно случайно вышел на статью «Ближайшее будущее удаленной работы» 2002-года. Статью не назвать пророческой, напротив, её автор сильно ошибается в большинстве своих предсказаний:

Даже такая работа как программирование, которой казалось бы изначально все равно где именно человек работает, тоже часто не может быть проводиться удаленно. Потому что, кроме программирования необходимо так же общаться с клиентом, отчитываться перед начальством, работать в команде и т. п.

Там и про искусственный интеллект есть:

Задачи искуственного интеллекта. Мое мнение, что НТР надорвется на создании искусственного интеллекта. По крайней мере не будет никакого прорыва и развитие будет происходить очень медленно с нарастанием в основном за счет базы знаний. В основном будут срабатывать частные решения в специальных задачах. Например распознавать дорогу машина будет по спец маркировке.

Про магазины:

Вот люди сначала думали что с приходом интернета, отомрут магазины и покупатели перестанут ходить, а мне кажется что будет наоборот, в магазин перестанут ходить продавцы.

16 комментариев

«Мышастик»: казанские новости

По-прежнему считаю пока «Мешпокет» лучшим устройством для общения через меш-сеть «мышастик». Положил в рюкзак или карман куртки, подключил к смартфону через блютуз и забыл о нём, пока не село.

Тут какие-то ребята ещё и альтернативную прошивку сделали с поддержкой русских букв — красота! Шрифт, правда, крупноват, но лучше слишком крупно, чем слишком мелко.

У меня сейчас в качестве второго устройства есть «Т-Дек», но я его буду менять, видимо. Устройство хорошее, но мне не очень подходит — быстро садится, да и русской клавиатуры нет, что очень неудобно.

Устройство HELTEC Automation с экраном, на котором отображается текст: «13:09: RP1W (Repa 1W) Да отсюда Легион хорошо открывает» и надпись «Powered» внизу.

Ещё, пока был в отпуске, в казанской сети ребята, которые развивают сеть, включили одноваттники — точки, у которых мощность вещания выше разрешённой для вещания без лицензии. Так как у нас в сообществе есть радиолюбители с лицензией, им такое можно.

Результат трассировки маршрута: от bolknote.ru до LEGION и обратно, с указанием задержек в дБ для каждого узла и общей длительности 28.9 с.

Из-за этих точек стало как будто бы и лучше и хуже одновременно. Думаю удалённые ноды стали хоть что-то слышать, а с другой стороны я, например, вообще перестал со своего «Мешпокета» хоть куда-то дотягиваться из квартиры — слышать-то слышу, но меня не слышно. Видимо антенна маловата.

В итоге я переключил «Т-Дек» в режим роутинга (там-то антенна куда больше) и поставил на окно. Через него мой «Мешпокет» куда-то дотянулся и меня стало видно в общем чате.

Оставить комментарий

Жёлтое

Период, когда все считали, что мой любимый цвет — оранжевый, подошёл к концу, теперь, я думаю, будут спрашивать то же самое про жёлтый. Книжка по Фокалу для кучи лежит — недавно нашлась у родителей, я её покупал, когда ещё в школе учился.

Как и с оранжевым, подбор цветов тут — случайность. Шапка куплена несколько лет назад, куртка этой осенью, но жёлтый цвет был выбран, потому что альтернатива мне не нравилась, а сумка-рюкзак так и вообще был только этого цвета.

Жёлтая куртка с капюшоном и белой подкладкой, жёлтая шапка с якорем, книга «Микрофон» и чёрно-жёлтый мешок для снаряжения на деревянном полу.

Оставить комментарий

Знание английского в айти

Английский — язык, который я за свою жизнь успел забыть два раза. Наверное впереди ещё как минимум один раз.

Очень много общался на нём в конце 90-х — я тогда работал в компании, которая работала с заграничными заказчиками из самых разных стран, поэтому мы много переписывались на английском; про видео и голос тогда не думали — каналы были не те. Когда ушёл оттуда, уровень стал падать.

Скриншот страницы компании Diginavis: заголовок «executive summary», описание IT-услуг, контактов, отзыва Бена Пратера и меню слева.
Сайт компании, где я когда-то работал, скриншот из «Веб-архива»

Примерно за пару лет до рождения дочки я решил подтянуть разговорный английский. Занимался с репетитором, дошёл до «косячу, но это не моя проблема» — мог достаточно бегло общаться на любые темы. Когда появилась дочка, перестал заниматься и съехал на прежние позиции.

В целом он сам собой держится на уровне «читаю технические тексты, могу что-то коряво сказать и понять, если медленно говорят». Это, по-честному, тот уровень английского, который мне пригождается в жизни. Именно поэтому он у меня остаётся, когда я перестаю заниматься.

В будущем, когда я заброшу «Дуолинго», я, думаю, провалюсь на ещё более базовый уровень, даром, что работаю в айти. Сейчас расскажу почему.

Мне кажется, что мантра «в айти без английского делать нечего» начинает устаревать, а в некоторых случаях уже устарела. Лет 15—25 назад без английского было действительно трудновато — документация существовала, в основном, на английском, переводы были редки. Я и сам кое-что переводил для своих знакомых, но такого было мало, а автоматические переводчики давали, в основном, буквальный перевод отдельных слов.

Сейчас же — раздолье, особенно с появлением нейросетей. Хочешь тебе перевод текста — суй в любую нейросеть, она тебе ещё и разжуёт подробнее, если есть такая надобность. Хочешь перевод видео — «Яндекс.Браузер» тебе бесплатно ещё и разными голосами озвучит.

Когда мы ездили в Китай, в большинстве случаев с нами общались не на английском, а печатая иероглифы в какой-то переводчик, который нам выдавал вполне понятный русский. Осталось только распознавание и синтез речи туда добавить и больше ничего не надо. Такие сервисы уже есть и немало, просто они ещё не массовые.

В качестве эксперимента их добавляют во всякие системы видеосвязи, но пока это неудобно. Станет удобно, все удалёнщики расслабятся и станут говорить на своём родном, всё равно это всегда привычнее, если вы не билингв. Ситуацию с эмиграцией в другую страну я не рассматриваю, тут ничего специфичного для айти нет.

В итоге. Английский до сих пор универсальный язык для общения, знать его полезно, но если вы не живёте в стране, где он нужен для общения, именно в айти он необходим всё меньше и меньше.

1 комментарий

Орбакайте

Смотрел тут лекцию про литовский язык и узнал, что у литовцев различаются девичьи фамилии и доставшиеся от мужа.

Получается, дочь Миколаса Эдмундаса Орбакаса — Кристина Орбакайте — носит девичий вариант фамилии, а его нынешняя жена, Марина Орбакиене, — фамилию мужа.

Кстати, в 2003 году приняли закон, который позволяет добавлять к женской фамилии «нейтральное» окончание, если не хочется раскрывать семейный статус. Как интересно устроено!

На зелёном фоне показаны три варианта фамилии: Gimbutas, Gimbutaitė (не замужем), Gimbutienė (замужем).

Оставить комментарий

Хорошо, что я без нянек

Вчера в походе (закрывали сезон) снимал с себя вейдерсы (или болотники — кто как называет). Нагнулся, чтобы надеть обувь, и наступил на резинку подтяжек. Когда распрямлялся, посмотрел, что тянет, и убрал ногу. Из-за этого натянутая резинка выстрелила мне прямо в правый глаз пластиковой застёжкой.

Заорал так, что ребята подумали, будто я умираю, — прибежали смотреть, что случилось. А я думал, что у меня уже нет глаза. Но обошлось: веко немного опухло, и на границе зрения слева внизу появилась какая-то серповидная, едва видимая помеха. В темноте я её вижу отчётливее — будто на этом месте палочки повредились, а с колбочками всё нормально.

Сегодня утром обследовался у офтальмолога — сказали, что с самим глазом всё в порядке, никаких повреждений нет, надеюсь и помеха со временем пропадёт.

Надо же как всё по-дурацки совпало.

Оставить комментарий

«Имя розы»

Смотрел сегодня первую серию второго сезона «Кибердеревни», сериал средненький, но мне нравится. Там в одном из кадров показали бинарный код, а меня всегда такое тянет расшифровать.

На экране отображается схема механизма с надписью «//имя_розы//» вверху и строками двоичного кода внизу.

Небольшая программа на Си даёт ответ:

#include <stdio.h>

int main() {
    printf("%s\n", (char[]){
    0b1010011, 0b1110100, 0b1100001, 0b1110100, 0b0100000, 0b1100010, 0b1100101,
    0b1110010, 0b1111001, 0b1101111, 0b1110011, 0b1100001, 0b0100000, 0b1110000,
    0b1110010, 0b1101001, 0b1110011, 0b1110100, 0b1101001, 0b1101110, 0b1100001,
    0b0100000, 0b1101110, 0b1101111, 0b1101101, 0b1101001, 0b1101110, 0b1100101,
    0b0101100, 0b0100000, 0b1101110, 0b1101111, 0b1101101, 0b1101001, 0b1101110,
    0b1100001, 0b0100000, 0b1101110, 0b1110101, 0b1100100, 0b1100001, 0b0100000,
    0b1110100, 0b1100101, 0b1101110, 0b1100101, 0b1101101, 0b1110101, 0b1110011,
    0});
}

Там написано: «Stat beryosa pristina nomine, nomina nuda tenemus» — переделанная фраза из гекзаметров монаха Клюни Бернарда Морланского, написанных около 1140 года. Только вместо исходного «rosa» указано «beryosa», у нас же сериал про российскую «Кибердеревню».

В переводе русского поэта и переводчика Дмитрия Владимировича Сильвестрова исходная фраза читается следующим образом: «Роза — не прежняя: имя порожнее нам лишь осталось», в том смысле, что всё проходит, остаются лишь названия, слова, память.

Фразу популяризовал Умберто Эко, упомянув её в своём романе «Имя розы», поэтому его название в кадре в левом верхнем углу экрана.

Оставить комментарий

Моему сайту — 25 лет

Сегодня интересная дата, которую я чуть не пропустил — моему сайту исполнилось 25 лет.

Четверть века назад у меня появилось собственное место, где я начал что-то публично писать. Поскольку с регистрацией доменного имени тогда всё было довольно сложно — за этим нужно было ехать в Москву, да и денег было жалко, — сайт пришлось завести на бесплатном хостинге по адресу bolk.chat.ru.

Он мог появиться и раньше — было о чём писать. Например, в 1999 году я начал публиковать материалы на сайте «Цитфорум» — «Хабре» тех времён. Успел написать три статьи, а потом, посмотрев на известного тогда блогера Спектатора, решил завести что-нибудь своё.

Тот первый сайт не сохранился, даже на «Веб-архиве» ничего нет. Помню только, что у него был фон какого-то тёмного зелёно-синего оттенка.


Несколько ссылок по теме:

16 комментариев

Расширение кафе: новое помещение

Как я уже писал, мы расширяем кафе. На плане я обозначил вход в текущее помещение. Комната, где указано «20,7», — это та площадь, которая у нас была до этого. Теперь же мы арендуем куда больше — всё, кроме помещения справа.

Вчера ездил посмотреть, как всё идёт. Новые помещения, разумеется, требуют ремонта. На днях ободрали стены и потолок от гипсокартона и фальшпотолка, оставшихся от прежних арендаторов. Оказалось, что штукатурка на стенах сделана больше из песка, чем из раствора — проведи пальцем, и она осыпается. Придётся снимать и её тоже.

Из плюсов — под гипсокартоном нашлась приточная вентиляция. Паутина в ней колеблется, значит, воздух идёт. Но очень не нравятся листья, которые там валяются. Надо бы посмотреть, не будет ли через неё заливать в дождь — возможно, у трубы на крыше дома нет колпака.

Рукописный план этажа с размерами комнат, площадями (например, 20.7, 24.9) и отметкой высоты h=2.70; логотип BAD HAUS внизу.

Тем временем на улице темень, грязь и дождь, поток людей в кафе уменьшился. Учитывая нашу невеликую площадь, ноябрь, скорее всего, закончим в убыток. Думаю, решение расширяться, пока есть возможность — правильное. Жаль только, что до Нового года не успеем, было здорово, самое время, но вряд ли — идёт пока трудно.

10 комментариев

Моё казанское дерево

В последний день отпуска гулял по Казани с другом, — нужно было кое-что обсудить. Зашёл заодно в сквер Казанских наличников, навестить дерево, в посадке которого я принимал участие в прошлом году — вот эта берёзка на переднем плане фотографии.

Сажали мы целой командой, так как дерево хоть и выглядит тонким и лёгким, вместе с корнями оно тяжёлое и неповоротливое. Здорово, что прижилось, мы очень старались всё сделать правильно — посадить на нужную глубину, как следует засыпать грунтом, было бы обидно, если бы завяло.

Сразу вспомнилась и рябина, которую я посадил в аллее около Белоярская атомной станции. Меня туда с другими блогерами пятнадцать лет назад приглашал «Росатом». Интересно как она поживает — выросла или погибла? Теперь уже и узнать — если бы и приехал, не нашёл бы её среди всех других деревьев.

Мокрая деревянная терраса с лавками, рядом — кирпичное здание с крупным муралом на стене, на заднем плане — улица с автомобилями и старинные здания под пасмурным небом.

Оставить комментарий

«99 бутылок» и «Постгрес»

Недавно моему сайту исполнилось 25 лет и я вспоминал свою первую заметку, с которой всё началось. Она положила начало традиции, которая длится столько, сколько существует этот сайт — писать «песню о пиве», это такая американская считалочка, на различных языках программирования.

Когда я пересматривал ту заметку, обратил внимание насколько сложно написана была «песня о пиве» на языке СУБД «Постгрес». Это был 2000-й год, седьмая версия, не исключено что тогда проще было и нельзя. Но прошедшие десятилетия «Постгрес» сильно изменился, хочу показать насколько проще можно сейчас написать то же самое:

(
    WITH phrase(ph) AS (
        SELECT COALESCE(NULLIF(beer, 0)::text, 'no') || ' bottle' ||
            CASE beer WHEN 1 THEN '' ELSE 's' END || ' of beer'
        FROM generate_series(99, 0, -1) AS c(beer)
    )
    SELECT ph || ' on the wall, ' || ph || '.' || e'\n' ||
        'Take one down and pass it around, ' ||
        LEAD(ph) OVER() || e' on the wall.\n' AS " "
    FROM phrase LIMIT 99
)
UNION ALL SELECT
'No more bottles of beer on the wall, no more bottles of beer.
Go to the store and buy some more, 99 bottles of beer on the wall.';

7 комментариев

Мышастик: два «Мешпокета»

Всё, теперь у нас в семье два «Мешпокета». Что-то я долго откладывал установку приложения на «АйОС», заранее переживая, что там всё сложно — надо делать через американский аккаунт. Но оказалось, что это дело десяти минут, ничего особенного. Я ноду под казанские настройки дольше настраивал.

Теперь думаю над тем, чтобы поставить себе ретранслятор. Устройство у меня есть, но оно временно трудится на общее благо где-то в одном из высотных зданий Университета. Когда отдадут, прикуплю себе ещё нормальную антенну и попробую наклеить этот набор на окно, только ещё не решил на какое — у меня окна квартиры выходят на обе стороны дома.

Можно, конечно, поставить в обе стороны, но я пока хочу посмотреть как это вообще делается и какие там есть особенности.

Два белых устройства HELTEC Automation с жёлтыми корпусами на оранжевом фоне: на дисплеях время 11:50, дата 2025-11-16, заряд 94% и 44%, надпись «Powered».

6 комментариев

Мышастик: немного статистики

Отрисовал небольшую иллюстрацию на тему казанского мышастика. Делал из списка известных нод, всего там на настоящий момент 174 устройства. Вот как выглядит распределение самых популярных в сообществе устройств:

Список популярных устройств Mesh: Heltec V3 (50), V4 (16), Seeed Card Tracker T1000-E (14), NRF52 Pro-micro DIY (11), Heltec Mesh Node T114 (10), LILYGO T-LoRa V2.1-1.6 (9)…

10 комментариев

«Виола»: математический модуль

Наверное, можно подумать, что я забросил заниматься браузером «Виола» — первым графическим браузером с потрясающими для своего времени возможностями. На самом деле — ничего подобного: почти каждый день, с редкими пропусками, я что-то в нём правлю.

Тот исходный код, который мне достался, был в статусе беты, но даже для беты тут очень много вполне очевидных багов, которые нужно исправить. А ещё — много впечатляющих вещей, которые автор, по всей видимости, не успел доделать. Часть из них я нашёл чисто случайно, как, например, модуль для отображения математических формул.

Нашёлся он совершенно случайно, когда я чинил баг с отображением символьных сущностей HTML — плёвая ошибка: дело было в том, что char у меня в компиляторе — тип со знаком, а в компиляторе автора, видимо, был без него. Из-за этого часть функций, работающих с символами, работала неверно.

Скриншот веб-страницы «Complex Mathematical Formulas Test» с формулами: e^(iπ)+1=0, x=(-b±c)/2a, интеграл e^(-x), сумма квадратов и e^x².

В общем, обнаружив модуль для отображения математических функций, я занялся им. Основное поправил, но кое-что до сих пор работает неправильно, буду позже править, думаю на это уйдёт ещё много сил.

Вот как выглядят формулы:

<math>&integral;<sup>&infin;</sup><sub>0</sub> e<sup>-x</sup> = <box>&sigma;<over>2</box></math>

Это третья формула на моём скриншоте, можно посмотреть чему соответствуют отдельные элементы. Как можно убедиться, реализованное в «Виоле» почти в точности совпадает со стандартом HTML Math, разрабатываемым когда-то Консорциумом Всемирной паутины, который так и остался в стадии черновика. Правда в браузере реализована только малая часть.

Синтаксис довольно простой, но, в принципе, несложные формулы записать можно. Вся математика отображается красным, я думал это какой-то баг, но нет, это такая особенность.

4 комментария

«Виола», математика и скобки

Два дня занимался математическим модулем в «Виоле».

Поручил нейросети посмотреть, есть ли что-то, что автор начинал делать, но не доделал. Оказалось — есть! В коде есть недоделанная реализация пропорциональных скобок: сделаны токены и логика, но код не соединён с парсером, и некоторые сложные случаи не обрабатываются.

С наскоку задачу решить не удалось — она оказалась сложной. Сначала мы сделали отдельные теги для разных видов скобок, дописали обработку и поправили все баги, а на следующий день убрали теги и научили парсер генерировать нужные токены на скобки.

Звучит, вроде, несложно, но на деле коммит оказался очень объёмным. Зато сейчас всё работает очень хорошо.

Ещё в комментариях к коду есть указание на то, что ширина скобки должна, по задумке автора, меняться динамически в зависимости от её высоты. Но я попробовал — смотрится плохо, фиксированная выглядит намного лучше, поэтому реализовывать это не стал.

Скриншот веб-страницы с примерами вложенных скобок и формул: a+(b+c), [x]+y, дробь с вложенными скобками, сумма и интеграл с круглыми и квадратными скобками.

5 комментариев

Какой у вас GPU

Я тут случайно узнал, что через WebGL, оказывается, можно определить какой графический ускоритель используется на машине, где запущен браузер. Окно я стилизовал просто потому что просто так выводить было скучно. Посмотрите что у вас там написано.

Технически берётся параметр UNMASKED_RENDERER_WEBGL у контекста объекта WebGL.

GPU checker

_

×

У меня тут сейчас написано следующее:
ANGLE (Apple, ANGLE Metal Renderer: Apple M3 Max, Unspecified Version)

У братишки на рабочем компьютере (там «Виндоуз»):
ANGLE (Intel, Intel(R) UHD Graphics 770 (0x0000A780) Direct3D11 vs_5_0 ps_5_0, D3D11)

На моём смартфоне «Сяоми 14 Ультра»:
Adreno (TM) 750

Добавлено: как справедливо заметили в комментариях в телеграмном канале, это странно, что браузер позволяет так точно определить эту информацию, посколько производители браузеров часто борются с идентификацией браузера, а тут информация, которая позволяет производить идентификацию точнее.

6 комментариев

«Виола»: ИИ и отображение PostScript

Когда я в очередной раз думаю, что понял какие задачи может, а какие не может решить нейросеть быстро и с минимальным моим участием, нейросети подкладывают мне свинью.

Случайно, изучая заголовки, которые отправляет «Виола», я обнаружил, что этот браузер каким-то образом работать с «ПостСкриптом» — это язык описания страниц, который используется, например, принтерами. Для этого, как оказалось, нужно использовать отдельный тег FIGURE.

Непонятно для этого понадобился отдельный тег, ну вот так сделано. Для наглядности вот пример его использования:

<FIGURE TYPE="application/postscript" SRC="test_figure_ps.ps"
WIDTH="100" HEIGHT="100" MAYDELAY="2000" ISMAP></FIGURE>

У него больше атрибутов, чем я использовал в примере, в минимуме ему нужен только TYPE и SRC, а остальные атрибуты у меня тут используются как ненужные подробности в моём рассказе, но так уж мне захотелось.

Когда я сделал тестовую страничку с этим тегом, оказалось, что ISMAP и MAYDELAY с «ПостСкриптом» не работали, как и, собственно, само отображение «ПостСкрипта».

С отображением я справился быстро. Секрет в том, что «Виола» на самом деле этот язык сама по себе не понимала, до моего вмешательства она использовала довольно неряшливый код, который использовал кучу временных файлов и две утилиты, — gs и ppmtogif, при помощи которых она получала GIF, который на самом деле и отображался.

Я весь этот код просто выкинул и заменил на вызов утилиты magick, которая умеет конвертировать «ПостСкрипт» в GIF напрямую безо всяких посредников. Пришлось только учесть, что по-умолчанию она создаёт GIF с прозрачностью, тогда как предыдущий набор использовал белый фон.

Довольно быстро я починил и реализацию атрибута ISMAP — просто скопировал его из обработчика формата XBM, где он работал, а починку MAYDELAY отдал нейросети.

Вроде ничего сложного, опять же — этот атрибут работал у XBM, я предполагал, что сеть быстро разберётся в чём там дело, передрав рабочий код и наложив его на особенность — XBM отображается напрямую внутренней библиотекой браузера, а «ПостСкрипт» конвертируется.

Примерно спустя час я сдался. Ни ChatGPT 5.1 Codex, ни Gemini 3 Pro, ни моя любимая Sonnet 4.5 с задачей не справились — каждая из них писала мне огромную простыню кода, которая задачу не решала.

Кусок кода, который надо было поправить, выглядел следующим образом. Если атрибут MAYDELAY не указывался, то вызывалась конвертация «ПостСкрипта» в GIF и он показывался, в противном случае запускался таймер, который вызывал loadData — другой… э… метод, назовём это так, программы на внутреннем языке «Виолы», в котором конвертации не было.

Модели это видели и просто копировали конвертацию в этот метод, но к моменту срабатывания таймера файл, с которым нужно было работать, уже пропадал. Думаю, его удалял сборщик временных файлов, встроенный в «Виолу». В итоге ничего толком не работало: модели ходили по кругу и, пытаясь исправить ситуацию, писали всё больше кода.

Исправление, которое сделал я, работает очень просто: я сначала делаю конвертацию, потом смотрю, есть ли параметр MAYDELAY, если нет, отдаю сконвертированную в GIF картинку в отрисовку, если есть, откладываю отрисовку, передавая в метод loadData уже сконвертированную картинку.

По сути, я передвинул несколько строк кода чуть ниже, это всё моё исправление. Я как-то очень разочарован, что умнейшие из нейросетей до этого не додумались. Можно посмотреть в моём коммите, но там сразу несколько вещей исправляются.

Скриншот браузера Viola WWW с заголовком «PostScript FIGURE Test» и графиком: три надписи «text» (красный с зелёной обводкой, сплошной красный, красный контур).
Пример изображения PostScript взят из чужого репозитория

Оставить комментарий

HTML 3.0 и VR

Пока искал в интернете информацию по тегу FIGURE, набрёл на какую-то недоделанную, но очень интересную презентацию «A Quick Review of HTML 3.0». Судя по версии HTML, это должно быть в районе 1995 года.

Под подзаголовком «Figures with local event processing» скрывается видение того как в будущем будет выглядеть веб в виртуальной реальности. Причём автор считал, что это будет ближайшее будущее:

К концу этого десятилетия дальнейший рост соотношения цена/производительность позволит доступным настольным системам запускать высокореалистичные модели виртуальной реальности. […] сейчас самое подходящее время для разработки механизмов, позволяющих людям делиться VR-моделями в глобальном масштабе.

Я и не знал, что первый коммерческий наголовный дисплей был выпущен в 1994-м году, думал в 90-е такое только в фантастических фильмах встречалось:

Джойстики и устройства типа «SpaceBall» улучшают управление, но не могут конкурировать с полной «погружённостью», которую обеспечивают наголовные дисплеи. Системы премиум-класса используют магнитное отслеживание положения головы и конечностей пользователя, а также устройства вроде трёхмерных мышей и киберперчаток, ещё больше усиливающие иллюзию.

Автор соврешенно справедливо полагал, что звук тоже важен, не только изображение:

Звук может быть не менее важен для иллюзии, чем визуальная симуляция: звук тикающих часов усиливается по мере того, как вы к ним приближаетесь. Самолёт с рёвом пролетает над головой, перемещаясь от одного горизонта к другому.

Можно подумать что тут написано про какие-то приспособления, которые позволяют почувствовать виртуальную гравитацию:

Виртуальная среда может накладывать те же ограничения, что и реальный мир, например силу тяжести или ограничение движения ходьбой, подъёмом/спуском по лестнице, поднятием и опусканием предметов. Либо, наоборот, пользователи могут «обзавестись суперсилами» и с лёгкостью летать по воздуху или даже проходить сквозь стены!

…но на деле речь просто реализацию физики на экране:

При использовании простого интерфейса, например мыши, обучаться бывает легче, если набор возможных действий в каждый момент ограничен небольшой совокупностью вариантов. Например, движение вперёд по направлению к лестнице приводит к тому, что вы автоматически поднимаетесь по ступеням.

А тут технически интересная, но сейчас уже неактуальная идея, которая в теории могла бы помочь сэкономить вычислительные ресурсы — идея строить виртуальную среду из готовых предметов, используя для этого специальный язык разметки:

Возможно, мы сможем опереться на опыт конвертации документов и SGML и задавать VR-среды на логическом уровне, предоставив браузерам заполнять детали в соответствии с возможностями каждой платформы.

Базовая идея заключается в том, чтобы составлять VR-среды из ограниченного набора логических элементов, например стул, дверь, пол. Размеры некоторых элементов можно брать по умолчанию. Для других, например размеров комнаты, требуются списки точек — скажем, для описания многоугольника, задающего план пола. Дополнительные параметры задают цвет и текстуру поверхностей. Рамка картины, висящей на стене, может быть описана с помощью растрового изображения.

Я немного сократил статью, она чуть больше, но, к сожалению, не дописана, кончается в неожиданном месте:

Хранение таких подробностей в отдельных файлах даёт несколько преимуществ:

10 комментариев

Как мы видим старый веб

Я часто пишу, что считаю проект «Веб-архива» самым важным в интернете. Пользуюсь им постоянно и большинство ссылок за четверть века ведения своего сайта во временем стали вести туда. Особенно интересно на «Веб-архиве» смотреть на то, как начинался веб, времени прошло немного, но изменилось всё самым радикальным образом.

И вот интересная штука, я ведь начал заниматься вебом в 90-е, свой первый в жизни сайт сделал в начале 1998-го, отлично помню, что браузеры того времени имели много нестандартных тегов, которые сейчас не отображаются — тот же мегапопулярный в те времена «Нетскейп» имел теги LAYER и ILAYER, вместо современных DIV и IFRAME.

Но только когда я начал заниматься реставрацией старого браузера, понял что ранний веб-то я в современном браузере иногда вижу совсем не так, как его задумывали авторы.

Мало беды, если не видно какого-то оформления, типа мигания (BLINK) или бегущей строки (MARQUEE), неприятно, если поедет оформление из-за отсутствия поддержки старого тега многоколоночности (MULTICOL) или тех же тегов-контейнеров (LAYER), но по-настоящему плохо, если не видна часть важного контента.

В максимальной степени это видно на страницах сайта браузера «Виолы», там в современных браузера вообще мало что показывается — поддержка слишком многого канула в Лету, а заметку я решил написать, потому что обнаружил, что презентация, которую я смотрел вчера, должна быть оформлена иначе.

Часть картинок, которые там использованы в оформлении, в ничем сейчас не поддерживаемом формате XPM, а другая часть вставлена при помощи тега FIG, поддержки которого сейчас тоже нигде нет.

На скриншоте — слайд про виртуальную среду, про который я писал вчера вечером, со всеми картинками, которые должны там отображаться. Тут, конечно, можно и без них обойтись, в этом смысле более показательный пример, как я уже упоминал выше, — сайт «Виолы».

Две бурые медведицы стоят на каменистом берегу у воды, одна смотрит в камеру, другая — в сторону; на заднем плане видна водная гладь и прибрежная растительность.

Оставить комментарий

Внешний вид браузера «Виола»

Если вы приглядывались к браузеру «Виола» на моих многочисленных скриншотах, могли заметить, что он выглядит каким-то недоделанным — адресная строка и заголовок страницы небрежно брошены в интерфейс.

На деле всё обстояло даже хуже — в нулевом состоянии в этих местах были прописаны заглушки, по которым сразу становилось понятно, что это не интерфейс, а нечто временное.

Мне от этого делалось грустно — я люблю красивый дизайн, а тут такое уродство. Но оказалось, что внутри кода браузера есть закомментированные недописанные куски, в которых можно подглядеть, как на самом деле должен был выглядеть браузер!

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

Скриншот веб-страницы проекта World Wide Web (W3) в браузере Viola, содержащий описание инициативы, ссылки на разделы и информацию о проекте.

Кстати, пока мы с нейросетью занимались интерфейсом, я решил заняться некрасивым уголком справа внизу. Снял скриншот, чтобы меньше объяснять — многие нейросети довольно неплохо по ним всё понимают и написал в промпте:

Посмотри на out.png, справа внизу светлый угол, за который тянуть надо, не совпадающий по цвету с остальным окном. надо бы поправить цвет, сделать в цвет остального окна.

Вот иллюстрация того как это ещё недавно выглядело:

Кнопки интерфейса: Back Up, Previous, Next, Show Source, Clone Page; надпись «Click to visit the previous document.
Неприятный уголок и технические кнопки, которые я потом убрал

Нейронка, так сказать «взяла под козырек» и начала что-то бодро писать на «Пайтоне». Что странно, кстати, — программа-то на Си. Через какое-то время я вернулся посмотреть что получилось.

Оказалось, она написала мне программу, которая покрасила краешек моего скриншота в правильный цвет!

В итоге я вообще убрал этот уголок: масштабирование всё равно нормально не работает, остаются артефакты, да и в оригинальной программе окно было фиксированного размера.

Оставить комментарий

«Нана-банана»

Что-то я уже давно не смотрел какие годные нейросети появились для редактирования изображений. Пользуюсь только встроенной в «ЧатГПТ» и всё. Для большинства моих задач этого хватает, но, признаться, я всё чаще стал упираться в ограничения, когда приходится признавать, что сколько не промпть, а выше головы не прыгнешь.

Особенно у «ЧатаГПТ» плохо с деталями, добиться стабильности которых между задачами, — какая-то невероятно сложная задача. Особенно это заметно на лицах. Если дать одну фотографию с человеком и три разных задания, получишь три разных лица.

Решил посмотреть расхваливаемую многими «Нана-банану» и, похоже, теперь я буду пользовать ей гораздо чаще, чем «ЧатомГПТ». Сеть явно поумнее, пропмтам следует чётче и рисует на голову лучше. Например, я попробовал несколько вариантов колоризации фотографии бабушки жены. Кое-где нейросеть немного меняла детали, что для меня очень критично в этой задаче, но всего несколькими словами удавалось исправить ситуацию.

Например, в одном из вариантов губы получились чуть шире, я попросил нарисовать их более поджатыми, как на исходном фото и всё исправилось лучшим образом.

Три портрета одной женщины в чёрном пиджаке и белой блузке с брошью: слева — чёрно-белый, в центре — сепия, справа — цветной с голубыми глазами.
Попытка колоризации фото бабушки жены в среднем возрасте — Марии Ивановны Андриановой (1933—2024)

4 комментария

«Нана-банана» и Мурзик

Продолжаю смотреть на что годится «Нана-банана». Я вчера оплатил там аккаунт на 250 генераций, так что надо тратить.

В качестве следующего теста я попросил нейросеть нарисовать Мурзика — кота, который был у меня в детстве. Набор опорных изображений я сформировал из нарезки мутноватого видео сорокалетия папы, где Мурзика видно пару секунд и своего детского рисунка.

Долго я не экспериментировал, сделал две генерации, да и промпт написал довольно простенький:

На этом рисунке и кадрах из видео есть кот. Надо посмотреть его особенности и сделать фоторелистичного кота. В точности повтори окрас кота, позу на рисунке и все особенности, которые можно рассмотреть.

Но что я могу сказать.

Во-первых, если бы мне сказали, что это фото Мурзика, я бы мог поверить. То как я его помню вполне совпадает с тем, что я вижу. Разве что квартира не наша — обои и ковёр похожи, но такого ракурса у нас дома быть не могло.

Во-вторых, все детали на мой взгляд выглядят очень естественно — анатомия, интерьер советской квартиры, всякие мелочи — даже есть ворсинки по краю пледа.

Минусы — поза немного другая, не как на рисунке, но самое главное — немного отличается окрас. На моём рисунке пятно на спинке соединено с хвостом, а у «Наны-бананы» видение другое — пятна разделены.

При этом, учитывая с какой лёгкостью «Нана-банана» нарисовала изображение, которое меня почти устроило, я уверен, если потратить полчаса, чтобы описать всё то, что мне не понравилось, можно нарисовать что-то близкое к идеалу. У меня просто нет такой цели, я-то знаю, что это не подлинное фото Мурзика и ничего этого факта не изменит.

И хоть впереди ещё более сложный тест, уже можно сказать, что «Нана-банана» гораздо лучше сетей, которыми я пользовался до этого.

Рисунок карандашом на клетчатой бумаге: свернувшаяся в кольцо кошка с полосатым хвостом, держащая в лапах кусочек сыра с красными пятнами.
Белый кот с серыми пятнами и полосатым хвостом свернулся калачиком на сером пледе, прикрыв глаза и положив голову на лапы.

15 комментариев

Пластик «НИТ»

Надо взять себе на заметку никогда не покупать пластик «НИТ». Рейтинг на «Озоне» — 4,8, куча довольных клиентов, а я не доволен.

За всю историю владения трёхмерным принтером мне пришлось единственный раз его разбирать — после печати синим пластиком PLA этой компании. На днях попробовали печатать голубым пластиком, тестовая полоса (на фото) неравной толщины, рваная. Модель в двух местах расплылась. В общем, плохой пластик, не рекомендую.

Я у соседа по дому PETG покупаю, у него собственное производство, он его продаёт на бумажных втулках, выглядит неприглядно, но я потратил уже не один килограмм, никаких нареканий.

Чёрная 3D-печатная деталь с голубой схемой и надписью «PLA», а также текстом «GLUE STICK CAN HELP» и китайскими иероглифами о помощи клеящего стика при печати и снятии с платформы.

13 комментариев

Искусство рисования графиков

Лет двадцать назад широко известный в Казани дизайнер С. Н. показывал мне буклет, который он делал для некой нефтяной компании. Его задачей было по возможности так нарисовать графики, чтобы продемонстрировать значительные успехи по всем показателям. Тем буклетом можно было гордиться: умело используя различные известные оптические иллюзии, С. Н. нарисовал графики так, что рост мерещился даже там, где ситуация была прямо противоположной.

К чему я это вспомнил? Компания «Антропик» выпустила релиз новой пишущей код модели «Опус 4.5». На графике, по которому я утром за завтраком мазнул глазами, мне померещился очень заметный рост точности, отчего я провёл в предвкушении весь день: планировал засесть вместе с нейросетью за задачку посложнее и посмотреть, как она справится.

Когда я ближе к вечеру рассмотрел график внимательнее, обнаружил, что точность повысилась менее чем на 4%. Всякий рост — это хорошо, но 4% — это, конечно, не вау.

Диаграмма точности моделей SWE-bench (n=500): Opus 4.5 — 80,9%, Sonnet 4.5 — 77,2%, Opus 4.1 — 74,5%, Gemini 3 Pro — 76,2%, GPT-5.1-Codex-Max — 77,9%, GPT-5

5 комментариев

Противные словосочетания

Бывает ли у вас такое, что какие-то сочетания слов вызывают отвращение? Настолько сильное, что в речи сложно поставить эти слова рядом?

У меня так, например, с сочетаниями «писать картину» и «слышать парфюм». Не знаю, есть ли тут что-то от синестезии, но мне становится неприятно, когда приходится произносить какую-либо из этих двух пар, например, при чтении книги. Наверное, есть ещё какие-то, но я их не помню — видимо, реже с ними сталкиваюсь.

Чтобы их сказать, мне надо сделать внутреннее усилие. При этом написать я их могу вполне свободно, но обычно не пишу, — поскольку в моей устной речи их нет, то нет и в письменной.

Я почему это вспомнил, мне сейчас кабинет оформляет художница, которая когда-то работала в Эрмитаже и мы с ней решили перерисовать маслянными красками фотографию усадьбы Шулешкиных в сельце Новое Исаково Бугульминского района.

На одной из стен будут висеть фотографии моих предков, и среди них — эта картина. Она будет напоминать мне о тех, кто там жил — не в усадьбе, а в этом сельце, — раз уж ни их фотографий, ни их портретов у меня нет.

Соответственно, мы всё это очень активно обсуждаем. И каждый раз, когда я потом перечитываю наш с этой художницей последний диалог (есть у меня такая привычка), спотыкаюсь об своё «нарисовать картину». Спросить как-то не решаюсь, но всё время думаю — не обижаю ли я её тем, что вместо «написать» пишу «нарисовать»? Всё-таки профессиональный художник.

Говорят капитаны дальнего плавания очень обижаются, если об их судне не сказать «ходит». Я был знаком с одним, но как-то не догадался спросить насколько это для него важно.

В общем, надо бы всё-таки у неё спросить и больше не переживать! Когда-нибудь…

24 комментария

Походы и кофе

Полгода назад я купил походную кофеварку и с тех пор в каждый наш с друзьями поход беру её с собой. Приятно выпить чашечку хорошего кофе посреди какой-нибудь гузки мира, где холодно, грязно и идёт дождь.

Почему-то именно это сочетание всех минусов похода с хорошим кофе даёт такой эффект, что я иногда эту чашку кофе жду гораздо больше основных целей похода — желанных находок, посещения интересных мест, общения с друзьями и ощущения, что ты жив.

Кстати, мой глаз, который я чуть себе не выбил, закрывая походный сезон, пришёл в норму чуть больше чем через неделю. Последствий как будто бы не осталось — по крайней мере, ничего необычного я больше не замечаю.

Но рассказ про кофеварку.

Единственный её минус — коробка, в которой я её таскал. При покупке я сделал глупость — взял комплект попроще, без бокса. Оказалось, что это очень неудобно — таскать в поход что-либо в картонной коробке, которая может размокнуть.

В общем, после очередного «надо бы как-нибудь докупить к ней чемоданчик», я не стал откладывать это на потом и теперь, спустя почти месяц, могу выкинуть изрядно размякшую коробку и таскать кофемашинку с бо́льшим комфортом.

Открытый чёрный чехол на деревянном полу: внутри термос с логотипом «OUTIN», крышка и четыре круглых металлических элемента.

4 комментария

Цвет и трёхмерная печать

Меня тут спросили, почему на сайтах, где публикуют модели для трёхмерной печати, всё такое разноцветное, а все модели, которые я показываю, напечатаны одним цветом.

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

Но вообще это отчасти правда — в основном то, что печатается у нас дома, печатается в одном цвете. Почему? Причины две.

Во-первых, если печатать одну монолитную модель двумя или больше цветами, то много пластика уходит в отвал — принтер всё время очищает головку от остатков предыдущего пластика и за принтером скапливается огромная гора зря потраченного пластика. Смотреть на это больно. Интересный вариант — многоцветный пластик, он делает фигурки немного интереснее, но это немного не то.

Во-вторых, печатать несколькими цветами немного лень — это занимает больше времени и требует больше усилий. Одноцветные детали часто помещаются на столе принтера сразу все, можно напечатать их одним проходом. Если печатать отдельно, то чаще всего катушки с пластиком приходится менять вручную — у нас многие катушки не лезут в автоматическую систему управления материалами (AMS), потому что такой пластик сильно дешевле, а место для нестандартных катушек только одно.

Честно сказать, платить за «стандартный» пластик в три раза дороже меня немного душит жаба, но недавно я с ней договорился и купил две катушки фирменного пластика от того же производителя, что и принтер. На фотографии жёлтый пластик — как раз из этой катушки. Может в будущем буду печатать с большим количеством цветов чаще.

Жёлтые пластиковые деревья и крытая конструкция с синей крышей на сером ковре.
Многоцветная конюшня для дочки (и «деревья» поддержки, которые позволяют печатать горизонтальные части на весу)

7 комментариев

Как ломается спагетти

Если вам кажется, что эта пачка спагетти нарисована ИИ, то вам кажется. На самом деле это реальный снимок, который я пропустил через нейросеть, чтобы стереть все признаки бренда. По пути он потерял детализацию фона, поэтому смотрится настолько искусственно.

Сегодня я узнал, что могу купить пачку спагетти ради науки сломать сухую спагеттину на две части, держась за её концы и медленно их сближая, нельзя, если не применить одну хитрость. Эффект даже изучали учёные.

Оказывается, когда спагеттина ломается, по ней распространяются механические волны, которые заставляют ломаться её ещё по меньшей мере один раз. Чтобы этого избежать надо её скрутить. Для этого я купил пачку спагетти (дома их не оказалось) и попробовал.

Получается примерно один раз из десяти — я либо скручиваю слишком сильно и спагеттина ломается даже раньше, чем я начинаю её изгибать, либо слишком слабо и она разлетается на несколько кусков. Но иногда удаётся поймать нужное натяжение и спаггети ломается как надо — на две части.

Пойду собирать с пола улетевшие куски.

Пачка спагетти в жёлтой упаковке с надписью «спагетти», частично открытая, с рассыпанными макаронами на фиолетовом фоне.

Оставить комментарий

← сюда туда →