О разном

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

Всё вожусь с языком «МК-Про», всё глубже погружаясь в дебри «Электроники МК-61». Познакомился с увлечёнными программистами из старой гвардии, которые пилят проект «МК-61s» — программно-аппаратный эмулятор программируемого калькулятора с расширенными возможностями. Свой проект на Си++ я переписал в том числе с их подачи. Сообщество небольшое, но увлечённое, я сам не заметил, как тоже увлёкся.

Теперь ко мне едет уже собранный «MK-61s», должен через неделю приехать. Купить я пока не решился, этот мне выслали для тестов, возможно я смогу тоже привнести что-то своё в проект.

Говорят нам на днях должны вернуть нейросеть «Фейбл 5», на которую американское правительство наложило запрет. Сам я её погонять успел мало, но те, кто успел, говорят, что она программирует уже на уровне синьора. Ну проверим, у меня задача для неё есть — довести в «МК-Про» оптимизатор до такого уровня, чтобы повторить или превзойти по компактности вариант Сергея Анварова игры «Пещера сокровищ».

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

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

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

Книги: «Толкователи» Урсулы Ле Гуин

Недавно открыл для себя писательницу Урсулу Ле Гуин. До сих пор недоумеваю, каким образом она прошла мимо меня: обычно такие крупные имена я не пропускаю. Её книги мне очень понравились: прочитал уже десяток, читались легко и быстро. Но на одиннадцатой — «Толкователях» — почему-то буксую.

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

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

ИИ: что в имени тебе моём?

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

Начнём с открытых моделей, там есть о чём рассказать.

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

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

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

Например: Qwen3.6-35B-A3B.

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

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

35B — это общий размер модели: примерно 35 миллиардов параметров. Упрощённо параметры можно сравнить с «объёмом мозга», в которых хранится опыт модели. Чем параметров больше, тем потенциально больше знаний и способностей может поместиться в модель, но размер — не единственный показатель ума. Иногда более новая и лучше обученная модель меньшего размера работает лучше, чем старая модель большего размера.

A3B означает, что модель относится к типу MoE — «mixture of experts», «смесь экспертов». У неё всего около 35 миллиардов параметров, но при ответе на каждый отдельный токен активируется только примерно 3 миллиарда. Если говорить совсем грубо, модель не задействует весь «мозг» сразу, а выбирает нужные участки под конкретный шаг ответа. Поэтому такие модели часто быстрее и дешевле в работе, чем плотные модели похожего общего размера.

Плотные модели — те, у которых задействуется сразу весь «мозг».

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

Если в названии дальше есть приписки вроде FP4, FP8, Q4_K_M, GPTQ, AWQ и похожие, это обычно говорит о формате хранения весов или о квантовании. Модель сжали или перевели в более экономный числовой формат, чтобы она занимала меньше памяти и быстрее запускалась на доступном железе.

Это означает, что «знания» модели обо всём менее точные. Хорошее квантирование мало сказывается на модели, но бесследно не проходит.

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

Название указывает на размер, а версия — на «версию методики обучения». Самая умная и большая на сегодняшний момент — «Фейбл 5», менее умная — «Опус 4.8» и самая простая — «Соннет 5».

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

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

Завтраки в кафе

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

Давно всё никак не мог дойти до кафе, глянуть, как там дела. Сегодня наконец добрался, а там уже и весь персонал успел смениться. Заехал пообедать — повезло застать завтраки. Ребята недавно ввели их в меню: они там до 14⁰⁰, давно хотел попробовать. Вкуснотища!

Ещё появились новые десерты с лесной земляникой. Жаль, поздно увидел: переедать не хотелось. Попробую завтра съездить, может, ещё застану.

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

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

Кирпич «XW»? «MX»?

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

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

Потёртая красная плитка с белым крестом, лежащая в земле среди камней и мусора.
Обломок кирпича то ли с клеймом «XW», то ли с «MX»

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

Ретроконсоль «МК-61s»

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

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

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

Дополнено: немножко разобрался, но вопросов стало только больше. Для работы с прошивкой предназначен разъём слева, устройство надо перевести в режим DFU через меню. Но, самое главное, — дата прошивки 10 мая 2026 года, а репозиторий устройства не обновлялся уже восемь месяцев. Вопрос — где же идёт работа?

Да и размеры не совпадают. Я слил прошивку с устройства, она там занимает около 80КБ, тогда как, если собрать прошивку из репозитория, она займёт около 60. Ничего не понимаю.

Калькулятор ЭЛЕКТРОНИКА МК-61s-Mini на фоне зелени. На корпусе URL: https://github.com/un7fg0/mk61s_mini

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

Доработка «МК-61s»

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

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

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

В «МК-61s» я сделал то же самое — на клавиатуре есть буквы от «a» до «e» для ввода имён регистров и некоторые другие буквы, на них я завязал ввод операторов, по пути переименовав некоторые из них — ASK, BRANCH, COMMENT, DO и так далее. А остальные буквы вводятся на цифровой клавиатуре, как это раньше делали с СМС — нажимаем K («клавиша»), а потом нужную цифровую кнопку на каждой из которой сидят по три или четыре цифры, как на старых кнопочных телефонах.

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

Электроника МК-61s-Mini с экраном «ГРОМКОСТЬ 0, СКОРОСТЬ ТУРБО» и клавиатурой, подключена кабелем к USB; ссылка на GitHub: https://github.com/un7fg0/mk61s_mini

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

«МК-61s»: русские буквы

Вчера я писал, что сделал ретроконсоли «МК-61s» русификацию. Звучит несложно, если не знать, что дисплей того устройства, которое у меня на руках, не выводит графику. У него алфавитно-цифровой принцип, причём у меня стоит японская версия, в которой русских букв нет. Вот вся его таблица:

Таблица символов кодовой страницы CP437: десятичные коды от 32 до 255, соответствующие ASCII-символы, латиница, кириллица, японские катакана и специальные графические символы.

Как же делается русификация? Секрет в том, что в позициях от нуля до семи стоят символы, которые можно определять самостоятельно. Пришлось написать упаковщик, который, выводя на экран русские символы, на самом деле заменяет их латиницей, а те буквы, которые есть только в русском, распихивает по восьми символам, которые можно рисовать самостоятельно. Если позиций не хватает, пытается минимально изуродовать вывод, заменяя «Ч» на «4» и «У» на «Y».

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

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

Документалка об «Электронике МК-61»

Мужчина в клетчатой рубашке говорит в микрофон. Слева иллюстрация Евгения Степанищева и текст «ништяки для МК 61, ссылка в описании». Фон: неон JS, постер Oasis.

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

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

За этот опыт я очень благодарен Ивану.

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

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

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

Статья в газете о папе

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

Недавно бывший руководитель этой службы разгребал дома архивы и нашёл заметку в газете «Нефтяник Татарстана» №79 (825) за 1998 год, про большой проект по автоматизации, в котором принимал участие и мой папа. Я решил статью вырезать и положить себе на сайт, чтобы она сохранилась.

Статья «Первые лауреаты Фирменной премии АО «Татнефть» о комплексной автоматизации НГДУ «Иркенефть» с фото четырёх авторов и схемой сети.

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

«МК61s»: распробовал «Фейбл 5»

Скриншот Finder macOS: папка /Volumes/MK61S FS с тремя файлами .M61 — Bumblebee Fly, Fox Hunting, Infinity Story — с иконками вопроса.

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

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

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

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

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

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

Что я хотел сказать этой историей — человек так не сможет.

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

ИИ: локальное ревью кода

reviewbot запросил изменения в ревизии: дифф добавляет функционал коротких тем для вопросов ОГ, включая таблицы, миграции, контроллеры, валидаторы и интеграцию в карточку…

Подключил локальный DeepSeek-V4-Flash, который работает у нас в офисе на четырёх H200, к ревью кода. Прошла неделя, выводы такие: моя оценка колеблется от 3+ до 4, снижаю из-за многословности и промахов по ревью. Первое в процессе исправления, второе правится документацией, в которой надо описать особенности, которые он иногда из контекста и кода не выводит.

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

Считаю, что польза уже есть, но надо продолжать его улучшать.

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

Нанял тренера

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

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

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

Моего тренера мы с женой зовём Буськой. Как его на самом деле зовут, я и не знаю. Буськой — потому что в конце почти каждого своего ролика он говорит: «Понял? Ай, молодец, держи буську».

Вот вам моя свежая фотография, в сложные моменты своей жизни я весил и на 15 килограмм больше, чем сейчас.

Мужчина в зелёной футболке и белой кепке с очками на козырьке стоит за деревянной трибуной и говорит в микрофон на фоне светлой шторы и чёрного экрана.
Я на трибуне актового зала Академии наук Республики Татарстан

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

«МК-Про»: далеко ли до «отлично»?

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

Поэтому высвободившееся внимание я направил на проект «МК-Про» — интерпретатор придуманного мной языка высокого уровня с мощным оптимизатором. Он должен уметь умещать программы разумного объёма в безумные 105 байт, доступных на программируемом калькуляторе «Электроника МК-61».

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

Со временем, у меня сложится такой критерий того насколько нейросеть хорошо решила эту задачу — насколько близко мы приблизились к оптимизированной версии игры «Пещера сокровищ» в варианте Сергея Анварова «Крестики-нолики 4×4» программиста Hs On — монстра оптимизации под эту ретроплатформу.

На настоящий момент разница составляет 34 байта или 25%, я попросил нейросеть нарисовать для наглядности график. Планирую сегодня запустить свежевышедшую на днях сеть «ГПТ-5.6 Сол» в режиме «ультра», посмотрим, продвинется ли она дальше. В режиме «очень высокого» усилия (это уровень, предшествующий режиму «ультра»), она продвинулась на два байта, это много.

График изменения размера в клетках с 28 мая по 11 июля: рост до 386 (полная игра), затем резкое снижение до 134 (UI fix), стабилизация около лимита 105.
Там где значения плюсовые — это исправления каких-то багов оптимизатора

Добавлено позднее: в итоге сеть мне сначала довела почти до 105 байт, а потом откатила часть прогресса, сделанного другими сетями и теперь программа у нас занимает 154 байта. Причина — оптимизации слишком заточены под конкретную программу, что противоречит задаче.

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

«МК-61»: размер программ

Много где говорится, что программы для «Электроники МК-61» занимают не более 105 ячеек памяти. На самом деле, смотря как считать.

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

Например, на приведённом тетрадном развороте справа видно значения, которые надо ввести до ввода программы.

Рукописная программа «Звёздный бой» для ЭВМ: таблица команд с адресами, кодами и комментариями по вводу координат, вычислению энергии, выводу символов победы и управлению кораблём.
Разворот тетради Александра Долгушина, автора кучи программ для «Электроники МК-61»

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

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

И в «МК-Про», и в «MK-61s» это тоже приходится учитывать. И в первом и во втором проекте пришлось конструировать средства для предвыполнения кода перед основной программой.

В «МК-Про» я сделал особый блок state, где записываются такие конструкции, а в «MK-61s» я просто загружаю в память сначала первый блок и выполняю его, потом, в те же ячейки гружу саму программу.

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

Что-то там-тьюб

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

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

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

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

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

«0W-Tube»: подтянул дизайн

У моего нового плеера за утро появилось имя: «0W-Tube» (то есть «телик с нулевым ожиданием»), поддержка платформы «Яндекс.Дзен», автообновление и проект на «Гитхабе». Ещё я сильно подтянул дизайн и стало почти идеально с функциональной точки зрения. Дальше буду сам пользовать и, возможно, что-то править для удобства.

Поисковая выдача по запросу «через тернии к звёздам фильм» с результатами от Rutube и VK Video, включая фильм 2026 года и версию 1980 года.
Хотел посмотреть светскую классику, узнал, что и ремейк какой-то есть. Смотреть его я, конечно же, не буду

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

Сетевое хранилище и «Мак»

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

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

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

Интерфейс «Диспетчер хранения»: статус «Исправно», использование тома 1 — 2,9 ТБ из 9 ТБ (32%), диск ТАЗик с 4 слотами.
Свободное место после очистки хранилища

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

«0W-Tube»: и под смартфон тоже

Поскольку у приложения «0W-Tube» быстро появились пользователи, часть из которых поставила его себе на смартфон, я подрихтовал немного приложение, чтобы оно и там смотрелось лучше и добавил поддержку портретного положения экрана.

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

Скриншот интерфейса поиска на Rutube: запрос «Бастер Китон», найдено 26 видео, включая «Бастер Китон-Шерлок Младший 1924» и «Шаронавт _ The Balloonatic (1923)».

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

Старостин, но не Фёдор

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

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

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

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

Список фамилий на мемориальной доске, где имя «СТАРОСТИН П.Н.» выделено жёлтым маркером.

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

Что же я о тебе помню?..

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

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

«МК-61» и случайные числа

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

На дисплее калькулятора «ЭЛЕКТРОНИКА МК 61» отображается число 4.04067 -01, видны переключатели «Вкл», «ГРД» и кнопки с обозначениями функций.
На старте генератор случайных чисел на реальном калькуляторе всегда выводит одно и то же число

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

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

Распределение сильно лучше: на десяти тысячах запусков старый генератор дал 179 случайных значений, а новый — 9957.

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

«Тайм-капсула» и современные «Маки»

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

Там же посоветовали способ оживить «Тайм-капсулу» — зловреды из «Эпла» убрали поддержку протокола, который она поддерживает, но там же, в комментариях, подсказали ссылку на приложение, которое добавляет в старенькую «капсулу» поддержку протокола SMB, который сейчас требует «МакОС».

Диалоговое окно Time Machine: диск «Диск AirPort» можно использовать только при наличии резервных копий для этого Mac; поддержка Time Capsule прекратится в следующей macOS.
Капсулу пришлось подключить к точке через «Езернет»: почему-то через вайфай она не смогла работать в моей сети, но «МакОС» всё равно отказалась бакапить на неё

Хорошо, что у нас есть нейросети — я рассказал, что хочу, дал ссылку на репозиторий и только попросил проанализировать выложенный там запускаемый файл. И не зря! Внутри оказался код, отсутствующий в исходниках, который скачивает что-то бинарное с домена timecapsulesmb.jamesyc.com.

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

Интерфейс UTM с запущенной виртуальной машиной NetBSD TimeCapsule Build: статус «Запущено», архитектура ARM64, 8 ГБ памяти, 1,06 ГБ размер, Serial TTY /dev/ttys006.
Виртуалка с операционной системой NetBSD внутри. Там собирается софт для «Тайм-капсулы»

Нейросетка довольно долго мне всё настраивала и компилировала, но в итоге собрала требуемую версию, активировала внутри «Тайм-капсулы» ssh и успешно всё установила.

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

Она посмотрела загрузку процессора (там внутри одноядерный Cortex‑A9) и предположила, что он не справляется с шифрованием канала. После того как мы отключили шифрование — сеть-то всё равно локальная, — скорость сильно возросла: теперь бакап должен сделаться примерно за девять часов.

Завтра посмотрю всё ли успешно и посмотрим нельзя ли ещё ускорить, всё-таки это тоже довольно медленно.

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

«Тайм-капсула»: что получилось

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

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

Настройка Time Machine в macOS: резервное копирование на диск AirPort Time Capsule.local, доступно 743,87 ГБ из 1 ТБ, скопировано 102,54 ГБ, готово 29,3%, остаётся ~1 день.

Поскольку платформа уже довольно старая, самый свежий компилятор мы брать не стали, взяли двенадцатую версию. По уверению нейросети «ГПТ-5.6 Сол», это последняя официальная версия для NetBSD, на которой собирается софт для «Тайм-капсулы».

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

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

Во-первых, по умолчанию в «капсуле» очень маленькие сетевые буферы — около 32 КБ, мы их увеличили до мегабайта. Во-вторых, мы отключили проблемный для старого NetBSD mmap. В-третьих, исправили проблему совместимости при удалении служебных атрибутов.

В итоге скорость выросла с 7—8 мегабит до 12—14.

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

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

Пропавший без вести прадед

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

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

Страница книги колхоза с записями о членах семьи Старостина Федора Николаевича, включая данные о земле, посевах картофеля и скоте за 1940–1942 гг.

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

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

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

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

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

Прадед и загадка зачёркнутой надписи

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

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

Таблица с данными о военнослужащих: фамилии, даты рождения, призыва, выбытия, причины. Выделены Старостин и Рогов, много пометок «пропал без вести».

Разгадка, между тем, была у меня под носом, просто я её прочитать не мог. Лист ниже мне прислал в 2014 году Лениногорский военкомат, правоприемник того военкомата, откуда забирали служить прадеда.

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

Список с фамилиями и пометками: уточнить отчество, «тоже», «расстрелян 15 июня 43 г.»; подпись генерал-майора Шавельского, полковника Кошкина; дата 27 февраля 47 г.

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

Оказалось, это «Дурасово» — деревня рядом, относящаяся к тому же военкомату.

Откуда же она там? От другого Старостина, которого перепутали с моим прадедом — он как раз из Дурасова и именно он считался пропавшим почти что в тот же месяц в 1941 году. Этому Старостину повезло больше — он попал в плен, был освобождён и дожил по меньшей мере до 1945-го.

Именной список безвозвратных потерь личного состава за 1944 г., форма №2/БП, с рукописными данными о погибших, включая выделенные строки с именами и датами.

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

«МК-61s»: часы на экране

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

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

Пока ехал с работы домой, пришла мысль попробовать выделить под них два программируемых знакоместа, каким-то образом уместив в каждом по два числа. Там довольно тесно — каждое знакоместо имеет размер всего 5×7 пикселей.

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

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

Как шрифт выглядит на реальном устройстве с сомнительной «восьмёркой» можно увидеть на фотографии ниже:

Электроника МК-61s-Mini: зелёный дисплей с «0. P 21:35», надписи «ЭЛЕКТРОНИКА МК-61s-Mini» и ссылка на GitHub; кнопки MENU, ESC, OK, стрелки, [USER], Р, ГРД, Г.

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

«МК-61s»: графика на текстовом экране

У меня давно вертится в голове идея попробовать вывести графику на алфавитно-цифровом экране «МК-61s». Он хоть и алфавитно-цифровой, но у него, как я уже неоднократно писал, есть восемь программируемых символов. В теории можно было бы разбить графику на эти восемь символов, но это будет куцо смотреться — экран-то рассчитан на 32 символа.

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

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

Зелёный LCD-дисплей показывает: верхняя строка — «4G» и «12:00», нижняя — «6» и «PM».
Это — «Пакман», гоняющийся за привидением.

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

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

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

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

Не уверен что мне с этим всем делать, но пока оставил реализацию в экспериментальном режиме.

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

PHP: что ты такое?

Мне сегодня показали вот такой код и спросили, знал ли я, что так можно. Речь идёт о вызове $this::w00t(). То есть мы используем $this как бы в статическом контексте. Мне бы такое в голову не пришло.

Код ниже, понятное дело, чисто демонстрационный.

Нет, я не знал, но, как ни удивительно, эта конструкция работает! Причём работает уже очень давно — это не свежее веяние: она появилась ещё в версии 5.4!

(new class() {
    public function w00t():void {
        echo "WHAT THE HELL ARE YOU?\n";
    }

    public function test():void {
        $this::w00t();
    }
})->test();

Дополнено: работает как эквивалент static, что ожидаемо, конечно.

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

Троеточие и многоточие

Многие люди путают троеточие и многоточие. Запомнить разницу легко.

Смотрите: это — точка «.». Добавляем ещё одну точку — получаем двоеточие «:», оно всем знакомо. Добавляем ещё одну — получаем троеточие «⋮». Ещё одну — получаем четвероточие «⁞». Ну и так далее.

А «…» — это многоточие.

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

«МК-61s»: виртуальный экран

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

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

У «MK-61s» есть текстовый терминал, через который устройством можно ограниченно управлять. Я его давно расширяю под разные нужды: теперь через него можно получать экран устройства и отправлять нажатия на клавиатуру.

Через терминал такое делать неудобно, поэтому мы с нейросеткой написали клиентское приложение на «Флаттере» с виртуальным экраном и клавиатурой.

Экран MK61 USB: пиксельная игра Pac-Man на виртуальном дисплее 192x64, зелёный режим, клавиатура с функциями калькулятора и ПК-клавишами, статус подключения.
Та самая картинка, фрагмент которой я пытался вывести на «MK61s-mini» в прошлой заметке

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

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

Скриншот файлового менеджера MK61s: в левой панели выделен файл Bumblebee Fly.m61, в правой — Wumpus.m61; внизу сообщение «Скопировано на компьютер: 1» и меню команд.
Во внутреннем хранилище видно несколько игр в формате ретроконсоли

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

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

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

«МК-61s»: бинарные приложения

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

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

Туда же я вынес просмотрщик картинок в формате WBMP, который прикрутил недавно. Не самая нужная в этой ретроконсоли штука, но у меня есть задумка, которая может сделать её полезной.

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

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

Основные требования — хорошо сжимает бинарные файлы, а распаковщик быстрый и маленький.

Таблица сравнения алгоритмов сжатия: ZX0 optimal — победитель (28 835 байт, 74,5% от raw), NRV2B UPX/UCL — лучший декодер (376 Б), raw DEFLATE — лучший WBMP (2 154 ★).
Таблица с тестами по сжатию разных модулей

Я покидал в нейросетку всё найденное, добавил то, что помнил сам, и мы провели эксперимент — сжали все три получившихся модуля и выбрали победителя. Победил алгоритм ZX0, разработанный для восьмибитных компьютеров (прежде всего — «Спектрума») программистом Эйнаром Саукасом.

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

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

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

Ева и новая школа

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

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

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

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

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

Дальше всё произошло очень быстро.

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

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

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

Вчера мы уже получили договор, сейчас соберём все бумаги и будем подписывать в ближайшие дни.

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

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

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

Черёмуха

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

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

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

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

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

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

Ветка черемухи с черными ягодами и зелеными листьями на фоне размытого зеленого поля и старого здания.

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

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

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

Поиск прадеда: как продвигается

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

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

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

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

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

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

Спасская церковь в Салманах

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

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

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

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

По данным Татарской энциклопедии, церковь построили в 1795 году на средства помещика Сергея Фёдоровича Желтухина. В карточке храма перечислены три престола: главный — Спаса Нерукотворного Образа, приделы — Донской иконы Божией Матери и Николая Чудотворца.

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

До 1939 года само село называлось Церковными Салманами, а в дореволюционных источниках — Новоспасским.

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

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

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

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

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

Поиск прадеда: логика

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

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

Интересно, у него действительно получилось или он так творчески переосмыслил наш с ним разговор?

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

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

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

На скриншоте: июльская строка в списке по Ленингорскому району, появившемся 18 августа 1955 г. Дата 29.VII.41 — поздняя перепись, ошибка месяца.

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

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

«Флог»: блог в одном файле

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

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

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

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

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

Ниже — два примера скинов:

Запись блога «Поиск прадеда: логика» от 28 июля 2026 г. о том, как нейросеть нашла предка по соседям по призыву — способ, который автор ранее предлагал поисковику.
Флог в стиле «консоль» с зелёным фоном
Скриншот поста блога «Мой персональный флог» от 28 июля 2026 г. с заголовком «Поиск прадеда: логика» и текстом о поиске предка через нейросеть и форум.
Флог в стиле «сердечки» с розовым фоном

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

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

На экране — окно с надписью «Мой персональный флог» и иконкой замка; подзаголовок: «Нажмите на замок, чтобы открыть». В правом нижнем углу — уведомление: «Блог закрыт».
Флог, закрытый паролем, в стиле «нормкор»

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

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

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

Проект вместе с инструкцией выложен в моём репозитории.

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

«МК-61s»: инструкция к играм

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

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

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

Скриншот игры «Погоня» Сергея Шинкевича (1991): пиксельный город, машина мафии, инструкция «Вы — полицейский. Погоняйте машину мафии...
Тут я склеил три экрана для наглядности

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

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

«МК-61s»: инструкция к играм (подробности)

Хочу чуть подробнее рассказать о том, как сделана инструкция к играм для «MK-61s».

Как я уже говорил, если при входе в папку Проводник ретроконсоль обнаруживает внутри файл autoexec.m61, она запускает его. Файл содержит инструкции для терминала. Это существовавший ещё до моего прихода в проект простой язык, который я довольно сильно расширил под свои нужды. Сейчас в нём есть даже условные конструкции и подпрограммы. То есть это аналог BAT-файла из мира «Виндоуса» или шелл-скрипта из мира «Линукса» и «Мака».

В данном случае autoexec.m61 первым делом командой open открывает для просмотра маркдаун-файл manual.md. Маркдаун — хорошо документированный и широко используемый формат. В ретроконсоли реализовано лишь его подмножество, так как полная поддержка не имела смысла.

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

Скриншот manual.md: инструкция к игре «Погоня». Управление, цель — врезаться в машину мафиози. Сообщения: «ВСЕ» — победа, «ЕГГОГ» — авария.

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

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

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

«0W-Tube»: зеркалирование

Скриншот видеоплеера с фильмом «Через тернии к звездам»: два мужчины в профиль на тёмном фоне, прогресс-бар на 1:26:05 из 2:20:09, кнопки перемотки ±15/+30 сек и пауза.

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

Добавил поддержку новых способов получения видео, которые подсмотрел в ещё не принятых коммитах утилиты yt-dlp, а также реализовал функцию, которую давно хотел сделать, — отзеркаливание видео.

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

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

Видеонаблюдение

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

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

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

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

Экран видеодомофона с заголовком «Домофоны» и сеткой из шести камер: «Домофон у входа 2», «Вход 2», «Основной вход», «Общая калитка 1», «Общая калитка 2», «Общая калитка 3».
Изображение нарисовано сетью «Нанабанана 2» по мотивам реального фото интерфейса

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

Видеонаблюдение: что вышло

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

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

Оказалось, что приложение уже работало, просто очень медленно — пришлось бы торчать у камеры примерно полминуты, прежде чем опрос камер дошёл бы до меня и распознал лицо.

На экране планшета отображается результат диагностики: «Готово», кадров 46, лиц найдено 43, совпадений ≥0.42: 23, Consensus: 21, путь к файлу report.json.
Тестовая обработка заснятых кадров нейросетью бывшего платёжного терминала

То есть проблема была в том, что приложение очень медленно обходит камеры.

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

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

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

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

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

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

← сюда туда →