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

Позднее Ctrl + ↑

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Капсулу пришлось подключить к точке через «Езернет»: почему-то через вайфай она не смогла работать в моей сети, но «МакОС» всё равно отказалась бакапить на неё

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

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

Виртуалка с операционной системой NetBSD внутри. Там собирается софт для «Тайм-капсулы»

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

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

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

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

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

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

На старте генератор случайных чисел на реальном калькуляторе всегда выводит одно и то же число

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Свободное место после очистки хранилища

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

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

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

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

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

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

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

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

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

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

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

Разворот тетради Александра Долгушина, автора кучи программ для «Электроники МК-61»

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

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

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

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

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

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

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

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

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

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

Там где значения плюсовые — это исправления каких-то багов оптимизатора

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

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

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

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

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

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

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

Я на трибуне актового зала Академии наук Республики Татарстан
Ранее Ctrl + ↓