Черёмуха
Тем не менее, иногда, проезжая мимо
Сегодня мы с другом ездили в поход и проехали мимо церкви Спаса Нерукотворного Образа в селе Салманы. Я сфотографировал её со всех сторон, а когда мы уже уходили, заметил черёмуху со спелыми костянками.
Честно сказать, я очень удивился. Мне кажется, я не слышал слово «черёмуха» как название дерева или его плодов с детства, да и самого дерева, наверное, не видел с тех же пор. У бабушки Тани, маминой мамы, в деревне на огороде росла черёмуха, но её пришлось спилить — она сохла и грозилась упасть на баню. Я запомнил это, потому что сам же её и спилил.
Я набрал нам с женой полпакета, подумал, что возможно она тоже её давно не ела, а оказалось, что она не ела её никогда. Вообще, закономерно — если подумать, оно у нас
Дочка, кстати, тоже черёмуху не ела, я вполне в этом уверен, надо будет
Ева и новая школа
В этом году, к сожалению, опять меняем дочке школу. Прекрасная по началу школа
Атмосфера кардинально изменилась, коллектив начал разбегаться, ушли все, вплоть до завуча, а учительница, которая дочке так понравилась, совершенно потускнела, растеряла весь свой оптимизм и ударилась в нервы.
Учитывая, что эта школа — весьма недешёвая, оплачивать разборки внутри преподавательского состава нам быстро надоело. Была надежда, что всё
В итоге решили поискать
Два варианта быстро превратились в один после звонка в каждую из школ. Просто на контрасте. В одной из школ мне столько всего рассказали, что я исписал конспектом весь лист, чтобы вечером пересказать жене, а в другой неохотно выдавили три предложения.
Дальше всё произошло очень быстро.
Позавчера я съездил в новую школу, пересказал жене увиденное, и, хотя у меня было ощущение, что мы соглашаемся на первый попавшийся вариант,
Вчера дочка, очень волнуясь, прошла тестирование по трём предметам, после чего директор на созвоне сказала мне, что они готовы её зачислить. Я сразу позвонил дочке и прямо почувствовал, как она искренне этому обрадовалась — ей понравились и директор, и мой рассказ об условиях в школе.
Вчера мы уже получили договор, сейчас соберём все бумаги и будем подписывать в ближайшие дни.
Очень хочется надеяться, что школу больше менять не придётся. Каждый раз мы делаем это со скрипом, понимая, что это стресс для дочки. Но годами надеяться на изменение ситуации, если видно, что школа для этого ничего не делает, — тоже глупо.
Дочка сейчас у дедушки и бабушки в другом городе, через неделю мы поедем её забирать — она уже очень соскучилась. После этого я планирую
«МК-61s»: бинарные приложения
Сейчас прошивка ретроконсоли устроена таким образом, что часть блоков при компиляции можно отключить, если они не требуются, или в том случае, если используется более скромное оборудование, для которого она не помещается.
Уже сейчас такое оборудование существует — у тех, кто собирает эту ретроконсоль на контроллере STM32F401CC, полная прошивка не собирается: не хватает памяти. Мне давно хотелось сделать для этого случая подгружаемые модули, и вчера, просидев с нейросетью до двух ночи, удалось запустить первую версию, в которой заработали два тяжёлых модуля — языки программирования «Фокал» и «TinyBASIC».
Туда же я вынес просмотрщик картинок в формате WBMP, который прикрутил недавно. Не самая нужная в этой ретроконсоли штука, но у меня есть задумка, которая может сделать её полезной.
В итоге
Внутри уже есть реализации RLE для сжатия шрифтов (я хочу подобрать
Основные требования — хорошо сжимает бинарные файлы, а распаковщик быстрый и маленький.
Я покидал в нейросетку всё найденное, добавил то, что помнил сам, и мы провели эксперимент — сжали все три получившихся модуля и выбрали победителя. Победил алгоритм ZX0, разработанный для восьмибитных компьютеров (прежде всего — «Спектрума») программистом Эйнаром Саукасом.
Утром мы ещё поработали над большей универсальностью этого подхода — хотелось устранить шероховатости и сделать его более универсальным, чтобы писать такие программные модули было проще.
На целевом оборудовании я решение не испытывал — у меня его нет, но на своей ретроконсоли всё проверил: работает. Дальше займусь специализированными инструментами, чтобы упростить создание модулей, а потом перейду к другим пунктам своего уже довольно сильно поредевшего плана развития прошивки.
«МК-61s»: виртуальный экран
Как можно было понять из моих прошлых текстов, у ретроконсоли «
Но когда у тебя в руках молоток, всё вокруг превращается в гвозди нейросеть, все такие проблемы превращаются в токены, которые надо забить в код.
У «
Через терминал такое делать неудобно, поэтому мы с нейросеткой написали клиентское приложение на «Флаттере» с виртуальным экраном и клавиатурой.
По пути пришлось решить множество проблем, самой серьёзной из которых было научить устройство нормально переключаться со своего
Как я уже упоминал выше, в этом режиме также можно передавать нажатия клавиш прямо с клавиатуры компьютера или ноутбука — набирать программы в «Фокале» и «TinyBASIC», которые я
Ну и «на сдачу» написал также аналог «Нортона Коммандера» на шелле. В принципе уже есть возможность примонтировать ретроконсоль как диск, но тут принцип другой — всё делается командами терминала. Вышло забавно, пусть будет.
Поддерживаются все горячие клавиши, видимые на скриншоте, удалённый запуск программ в терминале и просмотр изображений WBMP, который моими стараниями теперь понимает ретроконсоль. В консоль моего «Макбука» такие картинки выводятся через протокол iTerm2 или азбукой Брайля.
Троеточие и многоточие
Многие люди путают троеточие и многоточие. Запомнить разницу легко.
Смотрите: это — точка «.». Добавляем ещё одну точку — получаем двоеточие «:», оно всем знакомо. Добавляем ещё одну — получаем троеточие «⋮». Ещё одну — получаем четвероточие «⁞». Ну и так далее.
А «…» — это многоточие.
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, что ожидаемо, конечно.
«МК-61s»: графика на текстовом экране
У меня давно вертится в голове идея попробовать вывести графику
Сначала я подумал, что можно было бы воспользоваться инерцией дисплея
Потом я попробовал показывать по восемь символов за раз, быстро чередуя их и отображая полное изображение за четыре кадра. Изображение стало узнаваемым, но очень низкоконтрастным. Чтобы наглядно показать, что получилось, мне пришлось сильно скорректировать уровни изображения в редакторе:
Следующая идея была сложнее: первым проходом показывать максимум общих точек, а последующими — «добивать» оставшиеся, также перепрограммируя символы «на лету». Идея могла бы сработать, тем более, что на фрагменте эталонного изображения Лены Сёдерберг вместо четырёх кадров, по нашим с нейросетью расчётам, потребовалось бы всего три.
В реальности изображение стало чётче, но отображалось полосами. Я попросил нейросеть сделать подстройку частоты кадров и попытался подобрать её, как в старом телевизоре, но всё сильно зависело от того, какой кусочек Лены был на экране. Впрочем, контрастность явно выросла. Пакман тоже стал виден лучше.
Под конец я решил разделить экран на четыре блока по восемь символов по горизонтали и отрисовывать их один за другим. Этот вариант мне понравился меньше остальных, хотя контрастность была самой высокой — блоки слишком сильно мигали.
На добивку я попробовал совместить два последних метода, но ситуацию это, пожалуй, не улучшило, просто экран стал мигать разнообразнее.
Не уверен что мне с этим всем делать, но пока оставил реализацию в экспериментальном режиме.
«МК-61s»: часы на экране
Выяснилось, что на борту ретроконсоли «
Вывел в интерфейс их настройку, приспособил их к энтропии генератора случайных чисел и задумался, куда бы их поместить на экране моего экземпляра
Пока ехал с работы домой, пришла мысль попробовать выделить под них два программируемых знакоместа,
Нашёл очень маленький шрифт, но две цифры помещались в каждую позицию только наискосок, и выглядело это плохо. В итоге взял редактор и нарисовал шрифт размером 2×5, в котором неплохо уместились все цифры. Восьмёрка получилась немного сомнительной, но главное — вполне читаемой. В итоге, правда, пришлось выделить три места, так как без двоеточия смотрелось так себе, а с ним в две позиции уже никак не умещалось.
Как шрифт выглядит на реальном устройстве с сомнительной «восьмёркой» можно увидеть на фотографии ниже:
Прадед и загадка зачёркнутой надписи
Работа над проектом поиска могилы без вести пропавшего прадеда внезапно пролила свет на загадку, которая не давала мне покоя с тех самых пор, как я много лет предпринял свою первую попытку узнать
Речь идёт про лист на скриншоте, где строка, относящаяся к моему прадеду перечёркнута. Встаёт вопрос — почему её перечеркнули? Прадед нашёлся? Но я смотрел другие записи, где человек пропадал, а потом появлялся, там зачёркиваний не было.
Разгадка, между тем, была у меня под носом, просто я её прочитать не мог. Лист ниже мне прислал в 2014 году Лениногорский военкомат, правоприемник того военкомата, откуда забирали служить прадеда.
Почти все бумаги сгорели
Но что это за надпись справа от фамилии? Слово «деревня», написанное с ошибкой, или «дирижёр»? Я не смог прочитать. По смыслу понятно, что уточняли
Оказалось, это «Дурасово» — деревня рядом, относящаяся к тому же военкомату.
Откуда же она там? От другого Старостина, которого перепутали с моим прадедом — он как раз из Дурасова и именно он считался пропавшим почти что в тот же месяц в 1941 году. Этому Старостину повезло больше — он попал в плен, был освобождён и дожил по меньшей мере
Пропавший без вести прадед
Как я уже писал, я решил попробовать оформить в виде проекта поиск с привлечением нейросетей моего прадеда по отцовской линии, пропавшего без вести во время Великой Отечественной войны.
Его дочь, Клавдия Фёдоровна Старостина на фотографии из хозяйственной книги — моя бабушка, папина мама.
За несколько дней мы вдоль и поперёк перерыли интернет и архивы, обнюхивая каждую зацепку, и смогли исключить одиннадцать потенциальных могил из пятнадцати. Не факт, что он лежит в одной из оставшихся: пропал он в самое горячее время, бойцов находят до сих пор, спустя 80 лет, и часть из них так и не удаётся идентифицировать.
ИИ мне, конечно, здорово помог: я не могу просматривать архивы насколько быстро, а он работал со скоростью, с которой сайты отдавали информацию, да ещё и в нескольких браузерах одновременно.
Сейчас — этап написания писем. К счастью, и тут ИИ здорово помогает: сам ищет, куда писать и как выглядят анкеты, а там, где обращения приходится подавать через
Делаю я всё сеткой
«Тайм-капсула»: что получилось
После вчерашних манипуляций
Меня это не особо устроило, я подумал, что наверняка есть способ ускориться — например, серверную часть для поддержки протокола SMB мы собирали довольно древним компилятором — gcc седьмой версии, если мне не изменяет память. Я подумал, что более свежий компилятор может помочь — в них всё время добавляют
Поскольку платформа уже довольно старая, самый свежий компилятор мы брать не стали, взяли двенадцатую версию. По уверению нейросети
В итоге довольно много времени было потрачено на то, чтобы подобрать подходящие ключи компиляции — процессор
По итогу наибольшее ускорение дал не компилятор, а настройка сети, но кроме мы этого сделал ещё несколько вещей.
В итоге скорость выросла с 7—8 мегабит до 12—14.
Для ноутбука жены резервная копия уже создалась, сейчас создаётся для моего ноутбука. Сколько это займёт, сказать трудно — на скриншоте расчёт скорости только завершился, обычно в самом начале он очень сильно врёт.
«Тайм-капсула» и современные «Маки»
В комментариях в телеграмном канале к заметке о проблемах создания резервной копии на сетевом хранилище один из читателей рассказал, что это известный баг взаимодействия моего сетевого накопителя и «Мака» — резервные копии пишутся, пока не забьют всё место.
Там же посоветовали способ оживить
Хорошо, что у нас есть нейросети — я рассказал, что хочу, дал ссылку на репозиторий и только попросил проанализировать выложенный там запускаемый файл. И не зря! Внутри оказался код, отсутствующий в исходниках, который скачивает
Выяснять, что там такое и какие ещё закладки есть в этом файле, я не стал, а решил поручить нейросети поискать закладки в исходном коде и, если их там нет, собрать запускаемый файл самостоятельно.
Нейросетка довольно долго мне всё настраивала и компилировала, но в итоге собрала требуемую версию, активировала внутри
К сожалению, скорость оказалась отвратительной — четыре дня на бакап моего ноутбука. Я попросил нейросетку
Она посмотрела загрузку процессора (там внутри одноядерный Cortex‑A9) и предположила, что он не справляется с шифрованием канала. После того как мы отключили шифрование —
Завтра посмотрю всё ли успешно и посмотрим нельзя ли ещё ускорить,
«МК-61» и случайные числа
Один из досадных инженерных промахов «Электроники
Меня, если честно, это давно расстраивает, но я
В итоге мы решили брать шум с нескольких пинов, плюс замерять задержки между нажатиями и коды нажатых пользователем клавиш. В настройках появилось управление генератором случайных чисел — режим совместимости и новый режим, перехватывающий команду К СЧ калькулятора и подсовывающий ему значение из нового генератора.
Распределение сильно лучше: на десяти тысячах запусков старый генератор дал 179 случайных значений, а новый — 9957.
Что же я о тебе помню?..
В истории со случайным удалением аккаунта в «Телеграме» было только одно светлое пятно — вопросы, которые задавали мне друзья и знакомые, чтобы убедиться, что новый аккаунт действительно принадлежит мне. Приводить их я по очевидным причинам не буду, но среди них попадались очень забавные, а порой и совсем неожиданные.
Старостин, но не Фёдор
Время от времени просматриваю сайт «Память Народа», в надежде что однажды там появятся
Военкомат, откуда он призывался, сгорел
Сегодня вечером, снова систематизировал все материалы и решил поискать в интернете информацию об одном из захоронений, где потенциально, судя по информации сайта «Память Народа», может быть похоронен мой прадед. Оно находится в небольшом сельском поселении в Ростовской области.
Каково же было моё удивление, когда оказалось, что это захоронение
«0W-Tube»: и под смартфон тоже
Поскольку у приложения «
По идее приложение сейчас должно нормально работать везде —
Сетевое хранилище и «Мак»
Вчера по случаю зашёл в админку домашнего сетевого хранилища — давно хотел заглянуть, а тут время образовалось. Оказалось, не зря зашёл, как чувствовал: в углу горит индикатор сообщения, а в нём написано, что несколько дней назад все девять терабайт были забиты под завязку.
Это меня очень удивило, потому что в конце прошлого года места оставалось никак не меньше половины. Пошёл искать виновника. Им оказался мой «Макбук». Не знаю, что в нём дало сбой,
Удалил всё это безобразие не глядя. Надо будет вечером не забыть сделать принудительный бэкап. У меня вся информация на ноутбуке продублирована в разных уголках интернета и интранета, но собирать её при сбое будет очень неудобно, лучше уж локальная копия.
«0W-Tube»: подтянул дизайн
У моего нового плеера за утро появилось имя: «
Что-то там-тьюб
Надоело, что «ВК Видео» и «Рутуб» сильно тормозят на проекторе: дизайнеры рисуют всё более навороченные приложения, а железо остаётся прежним.
Запустил на проекторе «Аиду» (там «Андроид») — приложение для просмотра характеристик оборудования, сфотографировал параметры процессора, видеосистемы, доступные аппаратные кодеки, загрузил снимки в нейросеть и попросил написать мне небольшой клиент, который умеет искать ролики на этих площадках и проигрывать.
Пришлось сделать два пробных запуска, приложение заработало только с третьей попытки, зато с невиданной до сих пор производительностью. Надо будет немного дописать, но в целом плеер получился офигенным. Буду пользоваться.
«МК-61»: размер программ
Много где говорится, что программы для «Электроники
Например, на приведённом тетрадном развороте справа видно значения, которые надо ввести до ввода программы.
Это как если бы браузер (или что вы там запускаете каждый день) состоял из двух программ, которые надо было запускать каждый одну за другой, всегда в определённой последовательности, потому что вместе они не влезают в память.
Это очень хорошее изобретение позволяет впихивать в ограниченную память калькулятора очень много логики, так как на значениях предзагруженных констант иногда строятся такие алгоритмы, что закачаешься!