Музыка в стиле «Короля и Шута»

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

Как видно на скриншотах, у меня «волна» по исполнителю «Король и Шут». Ожидание — проникновенные истории с законченным сюжетом, с уклоном в фэнтези с капелькой жести. То есть: «Спектакль Джо», КняZz», ранний «Северный флот» и прочее, реальность — на скриншоте. Там два примера, но остальные ничем не лучше, буквально ни одного попадания, кроме «Кукрыниксов».

Скриншоты: трек Mad Show Boys «Я не ходил на каратэ» и «Последний герой» КИНО в разделе «Моя волна по исполнителю Король и Шут».

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

Микропроветривание

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

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

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

У меня ещё и резинки к притворной планке неплотно прилегают, так оттуда тоже поддувало, пока я не «починил» пластилином. А сам думаю — может у меня просто дешёвая планка и плохо смонтирована? А если заменить на модель подороже и установить нормально, то станет получше?

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

Научная фантастика у Куприна

У Куприна в «Молохе» есть превосходный, пророческий отрывок. Я выделил одну фразу, но он хорош целиком, особенно про всё растущую стоимость времени.

— Забыли? А кто здѣсь же, на этомь самомъ диванѣ, съ пѣной у рта кричалъ, что мы, инженеры и изобрѣтатели, своими открытіями ускоряемъ пульсъ общественной жизни до горячечной скорости? Кто сравнивалъ эту жизнь съ состояніем животнаго, заключеннаго въ банку съ кислородомъ? О, я отлично помню, какой страшный перечень дѣтей двадцатаго вѣка, неврастениковъ, сумасшедшихъ, переутомленныхъ, самоубійцъ, кидали вы въ глаза этимъ самымъ благодателямъ рода человвческаго. Телеграфъ, телефонъ, стодвадцативерстные поѣзда, говорили вы, сократили разстояніе до minimum’а, — уничтожили его… Время вздорожало до того, что скоро начнутъ ночь превращать въ день, ибо уже чувствуется потребность въ такой удвоенной жизни. Сдѣлка, требовавшая раньше цѣлых месяцевъ, теперь оканчивается въ пять минутъ. Но ужъ и эта чертовская скорость не удовлетворяетъ нашему нетерпѣнію… Скоро мы будемъ видѣтъ другъ друга по проволокѣ на разстояніи сотенъ и тысячъ верстъ!.. А между тѣмъ всего пятьдесятъ лѣтъ тому назадъ наши предки, собираясь изъ деревни въ губернію, не спѣша, служили молебенъ и пускались въ путь съ запасомъ, достаточнымъ для полярной экспедиціи… И мы несемся, слома голову, впередъ и впередъ, оглушенные грохотомъ и трескомъ чудовищныхъ машинъ, одурѣвшіе отъ этой бѣшеной скачки, съ раздраженными нервами, извращенными вкусами и тысячами новыхъ болезней… Помните, докторъ? Все это ваши собственныя слова, поборникъ благодѣтельнаго прогресса!

— Куприн А. С., второй вариант повести «Молох», 1903 год

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

Евы

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

Теперь же у нас дома иногда собирается Клуб Ев — наша дочка, её подруга из класса и соседская девочка, тоже Ева.

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

Таблица «Топ-20 популярных женских имён в Москве»: позиции имён София, Анна, Мария, Ева по десятилетиям (1980–2023), где 1 — топ-1, 169 — топ-30 и ниже.
Популярные имена по версии журнала «Тинькофф»

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

Чем лечишься?

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

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

На деревянном столе стоят две упаковки лекарств: белые таблетки «Стрепсилс Интенсив» от боли в горле и красный пакетик «Максиколд Рино» малина от симптомов простуды и гриппа.
В последний раз лечился вот этим, смотрите

Что значит «чем»? Ответить «таблетками и порошками»? Похоже на пассивную агрессию. Перечислить названия? Так я их не помню. Сфотографировать названия заранее и показывать? Ну это я уже от отчаяния фантазирую.

Какой правильный ответ, кто знает?

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

«Дар агачы»

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

Вчера из Института прикладной семиотики АН РТ прислали словарь татарских существительных. Я убрал из него все русские слова (в татарском немало заимствований из русского) и попробовал поиграть.

К сожалению, возникла проблема. В игре я использую два шрифта — 6×12 с нормальным начертанием и 6×13 с жирным. Шрифты готовые, взяты из фреймворка U∞g², я их только переупаковываю, чтобы в них оказались только те буквы, которые я использую в игре.

Оказалось в шрифте 6×13 нет татарских букв! Я этот момент проморгал, думал разница только в размерах. Клавиатуру я печатаю 6×12, поэтому проблему увидел только когда стал выводить татарские слова из словаря (там единственное место, где используется 6×13).

Таблица символов шрифта с латиницей, кириллицей, греческими буквами, цифрами, знаками препинания и диакритическими знаками на чёрном фоне; некоторые символы выделены жёлтым кругом.
Шрифт 6x13B.bdf полностью, выделены буквы, похожие на недостающие татарские

Попробовал посмотреть какие буквы есть в шрифте, чтобы подобрать похожие. Это несложно сделать в командной строке:

awk '/^ENCODING/{print $2}' 6x13B.bdf | xargs -n1 printf '%x\n' |
while read -r line; do printf "\\u$line "; done

Из того что есть нашлись замены для Ә, Ө и Ү, а вот для Җ, Ң и Һ похожих букв не обнаружилось.

Мысли у меня пока две: либо нарисовать недостающие буквы и научиться их добавлять в шрифт, либо обнаруживать ситуацию, когда нужных букв нет в шрифте 6×13 и переключаться на 6×12. Возможно в виде быстрого исправления я выберу второй вариант, а потом попробую реализовать первый.

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

Капча и архивы

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

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

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

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

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

Сообщение Яндекса о временной блокировке доступа из-за подозрительных запросов с IP-адреса и просьба ввести символы с картинки для продолжения поиска
Как бы могла выглядеть капча для распознавания архивов

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

Татарские символы в «Виселице»

Вчера вечером ковырял формат BDF — это формат шрифтов для «Флиппера Зеро». Как я писал была идея добавить в шрифт 6×13 татарские символы, которые там отсутствуют. BDF это текстовый формат, так что это было не слишком сложно.

Символы Ә, Ө и Ү, как и планировал, наскрёб в других шрифтах — поставил «шва», русскую «фиту» и латинскую «уай», просто скопировав пискельные данные букв и изменив метаинформацию. А вот Җ, Ң и Һ пришлось рисовать.

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

Интерфейс FontEdit с пиксельным редактором шрифта Monaco 9pt: сетка для рисования, панель символов (включая выделенный символ '/'), информация о размере и количестве глифов.
Я рисую букву Һ (она не на своём месте по кодам, мне это не принципиально)

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

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

Видимо я ещё немного упрощу это место, — после внимательного чтения описания формата в голову пришли кое-какие идеи.

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

BaSiX

Волею судеб попалась на глаза старая заметка, где я писал, что где-то в интернете увидел упоминание «Бейсика», написанного на языке TeX. Сам интерпретатор у меня тогда найти не получилось.

То был 2001-й, поисковые машины работали плохо, поэтому я решил посмотреть не найдётся ли тот «Бейсик» сейчас.

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

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

Попробовал реализовать на BaSiXе вычисление значения числа «Пи» рядом Лейбница, получилось приближенное значение с небольшой ошибкой в четвёртом знаке после запятой.

00 print "Leibniz formula for PI. 2023. https://bolknote.ru"
10 let num=4000000
20 let den=1
30 let sum=0
40 let sign=1
50 if sign then let sum=sum+num/den
60 let sign=1-sign
70 if sign then let sum=sum-num/den
80 let den=den+2
90 if den<18663 then goto 50
100 print sum
run

Дробных чисел интерпретатор не поддерживает (и отрицательные числа, кстати, тоже), поэтому число «Пи» у меня выводится как целое: 3141699, но если поставить запятую на требуемую позицию, то будет довольно близко к 3,141592….

Скриншот терминала: запуск TeX с файлом basix.tex, вывод версии TeX Live 2023, формула Лейбница для π (3.141699) и сообщение «Emergency stop».
Результат запуска программы — число 3141699

Ничего сложнее этого (например, «песню о пиве») написать не получится — в языке нет почти ничего для работы со строками, например у оператора print только один аргумент и тот выводится исключительно с переводом строки в конце.

Я пытался вчера вечером допилить интерпретатор при помощи ЧатаГПТ 3.5, но для кованого мешка такое слишком сложно.

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

−25°C

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

Ева сегодня не пошла в школу, — младшеклассники при такой температуре не учатся. Расстроилась — школу она любит.

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

В конце следующей недели опять обещают около −10. Неслабо температура туда-сюда скачет.

Добавлено: МЧС обещает до минус 40 в некоторых областях республики.

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

AᗺƎ

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

Майлз Моралес в красном капюшоне в центре, окружён другими пауками на фоне граффити «Spider-Verse».
Отзеркаленный постер фильма «Человек-паук: Через вселенные», 2018

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

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

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

CP1251 во «Флиппере Зеро»

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

Фильм «Узник замка Иф», 1988

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

К сожалению, всё АПИ так устроено, что на вход можно подавать только char, то есть только те символы, коды которых помещаются в байт, в данном случае.

Когда я научился манипулировать шрифтами, которые использует «Флиппер», мне пришло в голову, что если всё, что у нас есть должно поместиться в байт, то почему бы не сделать шрифт в однобайтной кодировке?

Я, конечно, не сомневался, что это заработает, но попробовать не помешало. Много времени не заняло. Взял русский пиксельный шрифт, преобразовал его в формат BDF утилитой otf2bdf, сдвинул русские буквы на их места в кодировке CP1251 и проверил работает ли это на самом деле.

Основной код выглядит следующим образом:

canvas_clear(canvas);
canvas_set_color(canvas, ColorBlack);
canvas_set_custom_u8g2_font(canvas, silkscr_rus);

char* str = recode_to_cp1251("ВЫВОД РУССКОГО ЯЗЫКА В КОМПОНЕНТ");
elements_multiline_text_aligned(canvas, 0, 0, AlignLeft, AlignTop, str);
free(str);

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

Стилизованный оранжевый гаджет Flipper Zero с экраном, на котором написано: «вывод русского языка в компонент».
Вывод русских букв шрифтом в однобайтной кодировке CP1251

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

Brainfuck и Новый год

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

Иллюстрация с надписью «практика» и цифрой «20», изображающая человека у двери sd-praktika.ru, телевизор с кодом, подарки и часы — символизирует 20-летие практики.
Программа на языке «Браинфак», выводящая число 42 — ответ на главный вопрос жизни, вселенной и всего такого

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

Галлюцинации нейросетей

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

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

Из-за этой особенности к тому, что порождают языковые модели надо относиться крайне критически, тренируя в себе навык проверки фактов (который важен и сам по себе).

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

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

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

Вот один из встреченных мной примеров, пока довольно безобидный:

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

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

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

То ли ещё будет, когда эти галлюцинации просочатся в инструкции, договоры и учебники.

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

Для чего обычному человеку Flipper Zero?

Меня просили рассказать немного про «Флиппер Зеро», а именно раскрыть вопрос — для чего это устройство может пригодиться обычному человеку?

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

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

Оранжевое портативное устройство с экраном, на котором видны имена Oleg, Tiki_viki, Xenija, стоит на столе перед чёрным рация Baofeng у окна.
«Флиппер Зеро» и снятые дампы ключей, работающих по протоколу 125 кГц RFID

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

Если хранить свои собственные ключи малополезно («Флиппер» толстенький и занимает больше места, чем любые ключи), то сохранённые чужие иногда выручают.

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

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

Сдампить удаётся не всё. Недавно я в отеле около Свияжска наткнулся на карточку, которую «Флиппер» успешно записал себе, но при её эмуляции замок не открывался. Не знаю с чем это связано, разбираться не стал.

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

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

Про предсказание Куприна в «Молохе»

После того как я процитировал «Молоха» Куприна, отрывок, где он пророчески пишет о появлении видеосвязи, один из читателей заинтересовался тем когда Куприн сделал это своё предсказание.

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

Текст на русском языке с дореволюционной орфографией: монолог о быстроте современной жизни, прогрессе, усталости и болезнях XX века, обращённый к «доктору» — поборнику прогресса.
Отрывок из повести «Молох», журнал «Русское богатство», №12, 1896 год

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

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

Как и ожидалось, искомая строчка нашлась в версии 1903 года. Было бы эпично, если бы её и тут не оказалось!

Страница книги с текстом о быстром темпе жизни и технологиях; выделено: «Скоро мы будем видеть друг друга по проволокам на расстоянии сотен и тысяч верст!
Отрывок из повести «Молох», сборник «Рассказы», книгоиздательское товарищество «Знание», 1903 год

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

Болевой порог

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

Боль — вода, чем выше порог, там больше надо воды, чтобы она начала переливаться через него.

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

Вышла прошивка с моим изменением…

Недавно в прошивку «Флиппера Зеро» приняли мой коммит немного исправляющий ситуацию с поддержкой Юникода. Это был пробный камень, я не особо надеялся на успех, скорее ожидал, что завяжется какая-то дискуссия с разработчиками.

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

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

Список изменений и новых участников проекта: обновления NFC, Mifare Classic, HID-приложения, SubGhz; новые контрибьюторы @bolknote, @pborsutzki, @magicnat.
Скриншот списка изменений с моим исправлением АПИ «Флиппера Зеро»

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

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

Ева — синестет?

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

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

Я подумал, что у неё какая-то разновидность синестезии, то есть смешение чувств, но кажется нет. У меня было несколько опытов синестезии (в том числе визуальной реакции на звук), у дочки же немного всё иначе — цвета она в момент произнесения слова не видит, просто каждое слово рождает цветовую ассоциацию.

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

Работа над Юникодом во «Флиппере Зеро»

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

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

Комментарий пользователя skotopes: большинство методов библиотеки элементов не готовы к юникоду; PR будет слит, но потребуется дополнительная работа над элементами.
«Most of the methods in elements library are not ready for unicode…»

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

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

< targets/f7/api_symbols.csv awk -F, '$3~/^elements_/&&/char|String/{print$3}'
elements_bubble_str
elements_button_center
elements_button_left
elements_button_right
elements_multiline_text
elements_multiline_text_aligned
elements_multiline_text_framed
elements_progress_bar_with_text
elements_scrollable_text_line
elements_string_fit_width
elements_text_box

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

Не везде, кстати, побайтовый перебор является проблемой. В первой же функции по списку всё будет работать нормально и без правок:

uint8_t lines = 1;
const char* t = text;
while(*t != '\0') {
    if(*t == '\n') {
        lines++;
        uint16_t temp_width = canvas_string_width(canvas, t + 1);
        str_width = temp_width > str_width ? temp_width : str_width;
    }
    t++;
}

Тут идёт подсчёт количества строк и вычисление их максимальной ширины. Для этого функция разбивает последовательность байтов по символу перевода строки — \n. Это работает, так как кодировка UTF-8, используемая тут, устроена так, что символ \n однобайтовый и не может встретиться внутри многобайтовой последовательности.

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

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

Чаты соседей: от квартирного беспорядка к духовному покою

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

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

Например, «что с лифтом?» в чате дома. В каком подъезде? Я на работе, мне начать создавать заявку в управляющую компанию для массовости или это соседний подъезд? Бывает ещё хлеще — как-то видел в чате ЖК «когда заменят плафон?». К чёрту подробности, скажите хотя бы из какого вы дома!

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

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

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

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

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

UTF-8 в elements_scrollable_text_line и elements_string_fit_width

Решил ковать железо, пока горячо — раз дали шанс, постараюсь довести поддержку UTF-8 во «Флиппере Зеро» до ума. Я уже пытался прикинуть объём работ, но при внимательном рассмотрении оказалось, что получившаяся оценка сильно сверху — доработки требуют только три функции, а не одиннадцать.

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

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

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

Работу я разбил на два этапа — пока закоммитил только функции elements_scrollable_text_line и elements_string_fit_width. Функцию elements_text_box перепишу попозже, она объёмная, если найдутся замечания по ревью текущего коммита, добью сначала их, так проще.

Скриншот терминала с выводом тестов функции canvas_glyph_width для латинских и кириллических символов, а также вызовами canvas_draw_str и canvas_draw_str_aligned с примерами строк.
Вывод информации стендом для тестирования изменений в функциях АПИ «Флиппера Зеро»

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

Сериал «Слово пацана»

Глупо отрицать, что кино на нас очень влияет. Будь это не так, мы бы не приравнивали актёров к ролям, которые они сыграли (попробуйте в голове описать нескольких актёров и подумайте откуда взялось это описание), да и рекламные ролики не работали бы.

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

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

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

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

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

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

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

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

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

В общем, Казань уже и так «прославилась» глаголом «набутыливать», а теперь к этом несчастью прибавилось ещё и «Слово пацана».

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

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

Как им не холодно?

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

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

Может в Японии зимы просто теплее — другая влажность, нет ветра?

Анимационная сцена: в заснеженном бамбуковом лесу воин в широкой шляпе и тёмной одежде направляет меч на удивлённого мужчину в сером кимоно с деревянной рамой на голове.
Кадр из первой серии первого сезона сериала «Голубоглазый самурай»

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

Звезда китайского мультфильма

Около десяти лет назад была популярна серия мультфильмов «Ninja action», где неубиваемый главный герой довольно бессмысленно, но изощрённо раскидывал врагов приёмами из боевых искусств.

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

Это был, кажется, 2015-й год.

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

В начале ноября в сообществе появилось какое-то шевеление, а с ним и анонс. Сначала серию обещали выпустить 23 ноября, потом срок перенесли на месяц. И вот, сегодня, 23 декабря серия наконец-то вышла!

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

Вооружённый солдат в форме угрожает клиентам кафе, подняв оружие; люди с поднятыми руками выражают страх, на переднем плане надпись «ЗАКОНЧИЛИ ЕСТЬ!
Кадр мультфильма с моей эпизодической ролью (стою у бара), так я выглядел в 2015-м году

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

У меня есть шутка про UDP, но боюсь она до вас не дойдёт…

Сегодня день, чтобы шутить мою любимую профессиональную шутку:

Q. Why do programmers confuse Halloween and Christmas?
A. Because 31 Oct = 25 Dec

В этом году, кстати, в моём личном рейтинге её перебила другая шутка, которая к дате не привязана:

> isNaN("grandma")
> true

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

Дракон с браком

Можно подумать, что дочка наконец забросила 3д-принтер, поскольку я долго о нём ничего не писал. Это не так. Просто писать было не о чем.

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

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

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

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

3D-модель дракона с розовым телом и зелёными лапами на чёрной платформе Bambu Cool Plate, рядом — остатки поддержек и нити.
Дракон с браком — видны «спагетти», которые напечатались из-за отрыва части модели от подложки

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

Подарок себе к Новому году

Купил себе новый «Макбук». Старый-то у меня ещё на Интеле, очень хотелось прочувствовать всю мощь собственных процессоров Эпла.

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

Поскольку ноут я брал в Эмиратах, поздно понял, что русской клавиатуры не будет. Правда в момент, когда покупка ко мне ехала, я не был уверен на 100% — проблема это или нет. Хоть и печатаю вслепую, всё равно с привычными рисунками как-то спокойнее.

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

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

Серый ноутбук на деревянном столе с открытым окном «Установка обновления» на экране, рядом — белый блок питания и синяя тетрадь с надписью «практика» и логотипом.
Купил себе подарок к Новому году — Макбук с процессором М3 Макс

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

«Трубо Паскакаль»

В конце 90-х у меня был выбор какой язык сделать своим основным, — Паскаль или Си. Не помню почему, но я выбрал Паскаль.

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

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

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

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

Скриншот меню со списком: Станок ТС-122-089 (ГОСТ 77843-64), Станок ФРС 556-ЗА (ГОСТ 10023-76), Пресс РД 86-12 (ГОСТ 23446-32), Винт HD-286/287.
Пародийная программа «Трубо Паскакаль», штука одноразовая, но забавная

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

← сюда туда →