Коммунистический массив
Я тут в мемах, которые кинули бывшие коллеги, увидел «коммунистическую сортировку» — она каждому присваивает среднее значение, и не смог пройти мимо. Написал «коммунистический массив»:
class CommunistArray extends \ArrayObject
{
public function __construct(array $array = [])
{
parent::__construct(self::createCommunistArray($array));
}
public function offsetSet(mixed $key, mixed $value): void
{
parent::offsetSet($key, $value);
$this->redistribute();
}
public function offsetUnset(mixed $key): void
{
$first = $this->getIterator()->key();
if ($first !== null) {
$this[$first] += $this[$key];
parent::offsetUnset($key);
$this->redistribute();
}
}
private static function createCommunistArray(array $array): array
{
if ($array) {
$avg = array_sum($array) / sizeof($array);
return array_fill_keys(array_keys($array), $avg);
}
return [];
}
private function redistribute(): void
{
(void) $this->exchangeArray(self::createCommunistArray((array) $this));
}
}Он делает всех равными и перераспределяет блага автоматически:
$comrades = new CommunistArray([0b1, 0o0, 3e1, 0x45]);
print_r($comrades); # 25, 25, 25, 25
$comrades[2] = 4;
print_r($comrades); # 19.75, 19.75, 19.75, 19.75
unset($comrades[0]);
print_r($comrades); # 24.6875, 24.6875, 24.6875Семидесятипятилетнее вино
Папе в марте исполнилось 75 лет — юбилей и довольно значительная дата. Поэтому хотелось поздравить его
С идеей выручила жена — папа хорошо относится к качественному вину, вот она и предложила найти ему бутылочку вина семидесятипятилетней выдержки. Мне сразу показалось, что это шикарный подарок, но найти его в Казани оказалось нереально.
Хорошо, что у нас есть интернет! Искомое нашлось на одном из сайтов, правда там ничего не было сказано про доставку, но после звонка и почти двухчасового обсуждения всех деталей по «Телеграму» вино было упаковано и в тот же день поехало в Казань.
Я сильно переживал как оно доедет — консультант в магазине сказал, что не все бутылки могут пережить транспортировку, поскольку в некоторых бывают трещины. Он выбрал без видимых трещин и тщательно упаковал, но я всё равно волновался.
Доехало всё шикарно, в целостности и сохранности. Сегодня подарок вручили, надеюсь и до Лениногорска он доберётся без эксцессов.
ИИ: Brainfuck
Три года назад я в шутку предлагал программистам переходить на «Брейнфак» — эзотерический язык программирования из восьми конструкций, который плохо давался нейросеткам.
Я пропустил момент, когда модели научились на нём писать. Буквально вчера догадался снова попробовать, оказалось — могут! Программу на скриншоте мне «Курсор» написал в режиме «Авто», где выбираются, в основном, слабые модели. Топовые справляются даже с такими заданиями как написать несложный эмулятор командной строки с несколькими основными командами и небольшой файловой системой!
Для человека это уже
Две вещи, с которыми модели ещё не справляются — это написание «квайна» (программы, которая выводит сама себя) и оптимизация программ на «Брейнфаке» по размеру. Даже топовые модели наотрез у меня отказываются такое писать. Даже после прямого приказа.
Интересно будет помучить этой задачкой новую модель «Антропика», которая должна появиться летом — я считаю их модели лучшими, хотя их последний «Опус» несколько разочаровал.
Добавлено позднее: справедливости ради насколько простую программу, как на картинке выше, нейросети и сейчас могут написать оптимальнее:
«Тетрис» на Brainfuck ★
Ну разумеется я вчера не смог уснуть без того, чтобы не посмотреть что ещё мог бы написать ИИ на «Брейнфаке»! Попробовал написать «Тетрис», тем более что у меня были готовые идеи как это сделать. Правда для этого пришлось модифицировать интерпретатор. Свой собственным, разумеется, который я начал писать ещё
Дело в том, что у «Брейнфака» нет рандомизации и ввод устроен очень просто — есть инструкцию чтения символа и всё. Правда сам язык не определяет подробности чтения символа, поэтому реализации отличаются. В основном авторы интерпретаторов делают буферизированный ввод, дожидаясь нажатия кнопки «Ввод». Правда тут тоже есть нюансы —
Чтобы приступить к «Тетрису» пришлось сделать две модификации.
Все расширения я сделал включаемыми и отключаемыми при помощи ключей интерпретатора, тем более у меня их уже и так было немало — некоторые существующие программы отличаются в своих ожиданиях относительно деталей реализации.
Чтобы каждый раз не вспоминать какие ключи нужны программе, я придумал способ как их указывать — если в начале программы на «Брейнфаке» стоит обычный шебанг, я беру параметры интерпретатора оттуда.
Как легко догадаться по скриншотам, нейросеть (я использовал
Я даже сделал в своём интерпретаторе поддержку сжатия исходников. Наверное никому раньше не приходило в голову этим заниматься — как правило программы на «Брейнфаке» пишут люди и до таких размеров они их не доводят.
Трансляция такого огромного файла и применение оптимизаций занималось около 15—20 секунд на моём ноутбуке, так что пришлось применить ряд оптимизаций — немного переписать парсер интерпрератора, сделать кеширование и поработать над уменьшением размера кода «Тетриса».
«Тетрис» работает в консоли и, надеюсь, никому не надо объяснять, что для раскрашивания блоков и позиционирования тут широко применяются
Единственное о чём надо рассказать — как регулируется скорость игры. В «Брейнфаке» нет ничего, чтобы создавать паузы заданной длительности, но некоторые программы работают ощутимо долго. Хотя у меня и оптимизирующий интерпретатор, всё оптимизировать он не может. Поэтому мы с нейросетью просто «на глазок» подобрали код, который достаточно плохо оптимизируется и тормозит на моём ноутбуке ровно насколько, чтобы играть было комфортно.
Левши и ручки
В первом классе я был левшой, как и папа. Не помню в точности, когда меня начали переучивать, помню только, что переучивали в школе, в начальных классах. Кажется именно тогда у меня испортился почерк. Я начал снова красиво писать к концу школы, потом позже в техникуме перешёл на чертёжный шрифт — очень любил черчение, но позже снова вернулся к своему более врачебному варианту.
Никогда не понимал почему меня переучили, думаю и родителям особо не объясняли — надо и всё, время было такое. Сегодня утром наткнулся на одно место в книге, которую сейчас читаю:
Когда пишешь ручкой задом наперед, это погибель для перьев — у левшей та же проблема, все время перья ломаются.
— из книги «Среди других» Джо Уолтон.
Возможно
Я начинал учиться в 1984 году, перьевые ручки пропали в школах примерно к середине
«Космонавт — мотоциклетный мастер»
Я много раз писал о том, что есть ряд фильмов и книг, застрявших в моей памяти, которые я едва помню,
Сегодня благодаря одному из читателей почти закрылся ещё один мой гештальт. «Почти» — потому что книгу я ещё не заказал, но зато теперь знаю её название и даже смог прочесть из неё несколько рассказов в интернете.
Это детская книжка Витаутаса Казевича Петкявичюса «Космонавт — мотоциклетный мастер», которая была издана в 1983 году в переводе с литовского.
Несмотря на то, что я помнил из неё несколько дословных фраз, никак не мог её найти, видимо нигде в интернете нет её текста. Я давно планировал обратиться к читателям в отдельном посте, вдруг
Эффект Шерлока Холмса
Есть такой поразительный эффект; думаю, у него наверняка есть
Все мы, наверное, читали тот рассказ Конана Дойла про Шерлока Холмса, где великий сыщик попытался совершить преступление, но оказалось, что он в этом плох. Думаю, тот рассказ, как и меня, ничему не научил никого из читающих эти строки.
Например, я довольно давно понял, что у меня неплохо получается вставать на место неподготовленного пользователя и находить огрехи в интерфейсах. Это умение помогало мне на прошлой работе в «Яндексе», помогает и сейчас: я вхожу в группу развития нашего продукта и чувствую себя там полезным.
Я несколько раз в жизни настолько преисполнялся уверенности, что, раз я вижу, чем дизайн плох, значит, смогу создать хороший. Все мои три — или около того — попытки довольно жёстко ставили меня на место: критикую я хорошо, а самостоятельно делаю дизайн плохо.
Мокко
Я тут на днях читал архивы журнала «Огонёк», пытался понять, когда названия месяцев стали писать с маленькой буквы. Я был убеждён, что до революции названия месяцев всегда писались с большой, на манер английского языка. Оказалось, это не так: во всём архиве месяцы написаны с маленькой, начиная с XIX века.
Но речь не об этом. В выпуске № 6 за 1941 год в одной из заметок попалось слово «мокко», которое выглядит чистым анахронизмом.
Мокко сейчас — синоним моккачино, то есть смеси эспрессо, горячего молока и шоколада, сложно представить, что о его существовании знали в СССР
Забавные часы
Купил себе на «Авито» бывший платёжный терминал — на борту «Андроид», так что мысль была запрограммировать себе (при помощи нейросетей, разумеется)
Пока у меня
В итоге, когда я в очередной раз засиделся
Скачал с «Гуглфонтса» 1500 случайных шрифтов, выдрал из них цифры и сварганил приложение на «Флаттере», которое выводит цифры случайным шрифтом и в случайном контрастном цвете. В приложении два фона — светлый и тёмный, выбираются автоматически в зависимости от освещённости, которая измеряется камерой.
Проект выложен у меня на «Гитхабе».
Brainfuck: оптимизирующий интепретатор
Удивительно, как некоторые бесполезные идеи иногда накрепко захватывают наш ум. Я тут в качестве примера хотел привести игру «Жизнь» Конвея, но при всей своей кажущейся бесполезности она в своё время сильно продвинула математику.
Меня в своё время захватила идея языка программирования «Брейнфак». Оглядываясь назад, думаю, её тоже нельзя объявить полностью бесполезной: в своё время я немало поломал голову над созданием оптимизирующего интерпретатора для этого языка.
Для начала — про сам язык. Я узнал о нём примерно в 2000 году, когда была мода на так называемые «эзотерические языки» — языки, разработанные в качестве шутки или для исследования
«Брейнфак» оперирует ячейкой в массиве, индекс которой можно сдвигать при помощи конструкций < и >. Кроме того, ячейку можно декрементировать (-), инкрементировать (+), вывести на экран символ, код которой записан в ячейке (.), либо записать код введённого с клавиатуры символа (,).
Кроме того, в «Брейнфаке» можно организовывать циклы при помощи парных инструкций [ и ] неограниченной вложенности. [ проверяет значение текущей ячейки, если там не ноль, выполняет тело цикла. Например, [-] записывает в текущую ячейку ноль, декрементируя значение в цикле.
Так как это единственная управляющая конструкция, циклов в обычной программе на «Брейнфаке» — огромное количество. Например, вот так выглядит минимальный «квайн», программа, которая при запуске выведет саму себя:
->++>+++>+>+>++>>+>+>+++>>+>+>++>+++>+++>+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>+>+>+
+>>>+++>>>>>+++>+>>>>>>>>>>>>>>>>>>>>>>+++>>>>>>>++>+++>+++>+>>+++>>>+++>+>+++>+
>++>+++>>>+>+>+>+>++>+++>+>+>>+++>>>>>>>+>+>>>+>+>++>+++>+++>+>>+++>+++>+>+++>+>
++>+++>++>>+>+>++>+++>+>+>>+++>>>+++>+>>>++>+++>+++>+>>+++>>>+++>+>+++>+>>+++>>+
++>>+[[>>+[>]+>+[<]<-]>>[>]<+<+++[<]<<+]>>+[>]+++[++++++++++>++[-<++++++++++++++
++>]<.<-<]Я задумался об оптимизации программ на «Брейнфаке» ещё в начале
Первые мысли были вполне очевидными — объединять одинаковые конструкции. Вместо того чтобы последовательно инкрементировать ячейку десять раз, на этапе предпроцессинга можно сразу подсчитать количество «плюсов» и прибавить сколько требуется.
Потом я начал транслировать идиомы Brainfuck напрямую в ДжаваСкрипт, что тоже заметно повысило производительность. Например, конструкцию [-] можно заменить простой записью нуля в текущую ячейку — без выполнения цикла.
Настоящий прорыв случился, когда я понял: так можно оптимизировать не только отдельные идиомы, а вообще все циклы
В дальнейшем я сильно развил эту идею. И если простейшие оптимизации встречаются и в реализациях других авторов, то настолько глубоко, насколько мне известно, не копал никто.
В середине
Проект лежит у меня на «ГитХабе».
Мурчащий котик: результат
Одно меня расстраивает — в проекте дочки мало участвовала сама дочка. Выбрала модель для печати, глаза и нос, по сути — всё.
Ева говорит
Обсуждаем нового тьютора в школе, которую взяли на место уволившейся прежней:
— Дочка, как тебе новый тьютор?
— Мне она не очень нравится…
— А что такое?..
— Ну понимаешь, она
февраль 2026
⁂
В школе заболела учительница, её заменяет другая, спрашиваю Еву нравится ли ей новая учительница:
— Нет, папочка, не очень!..
— Почему?
— Ну знаешь, она слишком строгая, всё контролирует, как будто каждый наш шаг — решающий шаг в будущее!
21.02.2026
⁂
Мы в тот день летали в Стамбул, прилетели очень поздно, пока ехали в отель, Ева уснула. Стараемся её растормошить, так как через несколько минут нам выходить:
— Ева, ну смотри какая красота! Какое красивое здание!
— Угу, — нехотя открывая один глаз и щурясь, — тут самое время появиться кроватке,
21.02.2026
⁂
Выходит из детской с целой кучей лошадок, вырезанных из бумаги и раскрашенных:
— Уф, папочка, я так устала их вырезать!
Я, знаю, что она опять это скорее всего делала не за столом, а на полу, поэтому и чувствует себя уставшей:
— Может тебе это надо было не на полу делать, давай, может, я тебе стул отрегулирую, если неудобно?
— Нет, я сейчас ничего этого не хочу, хочу чтобы ты посмотрел и восхитился!
28.03.2026
⁂
Выходные, я у себя в кабинете, наблюдаю за экспериментом на дашборде, дочка выходит из комнаты, видит меня:
— Пап, а есть
— Да, там яблоки есть и мандарины…
Поворачивается в сторону кухонного стола, видит её любимые булочки с маком:
—
12.04.2026
⁂
У Евы выскочил очередной прыщ на носу, жена:
— Опять в тебя
Дочка смеётся:
— В меня уже столько мальчиков втюрилось, сколько у нас в классе нет!
29.04.2026
⁂
Ева сегодня плохо себя чувствует, легла в моём кабинете и пробует уснуть:
— Пап, включи
Через несколько минут:
— Надо было записать голос моего учителя по философии, у него очень спокойный голос, даже чрезмерно, я всегда на его уроках отлично спала!
11.05.2026
Забавные часы: утечка памяти
Обратил внимание, что мои «Забавные часы» иногда как будто вылетают: дважды по утрам я приходил, а на терминале — «Андроид», без часов. Я сразу заподозрил, что моё приложение «течёт»: накапливает ресурсы и не освобождает их, пока система его не прибивает
Нейросеть мне на слово не поверила — я использовал
Только после этого она начала разбираться в проблеме. Неожиданно оказалось, что причина — в компоненте работы с камерой фреймворка «Флаттер», на котором построено это приложение. Камера используется для мониторинга освещённости: в моём устройстве нет соответствующего датчика, поэтому приложение переключает фон, определяя уровень света с помощью камеры.
Как мы ни крутили этот модуль, за два дня работы с камерой ресурсы всё равно выедались подчистую. Пришлось заменить компонент на нативный для «Андроида».
Браузер «Арахна»
Вряд ли на свете много людей, которые в 2026 году добровольно пытаются выйти в интернет из ДОСа. Но меня эта идея
Не то чтобы меня прямо сильно тянуло «пользоваться интернетом из ДОСа». Понятно, что практического смысла в этом почти никакого нет. Но как эксперимент — очень интересно. Я давно знал, что для ДОСа существуют браузеры. Наверное, даже не один. Значит, теоретически это всё можно собрать: поставить ДОС, настроить сеть, добыть TCP/IP-стек, запустить
Сложностей,
Я наскоро состряпал виртуалку в 86Box, накатил туда
Дальше понадобились две вещи: пакетный драйвер для NE2000 и mTCP. Пакетный драйвер — это такая прослойка, которая даёт
Софт пришлось собирать из разных мест. Почти всё нашлось на
Отдельный маленький квест — освободить побольше базовой памяти. Может показаться, что 640 КБ — это просто анекдот про Билла Гейтса, но в мире ДОСа это очень важная штука. Поэтому HIMEM.SYS, EMM386 и прочее снова становятся не музейными словами, тут придётся всё настроить как надо.
Я вынес наверх всё, что получилось: драйвер сидирома, MSCDEX, клавиатуру, мышь, сетевой драйвер. В CONFIG.SYS у меня в итоге появились HIMEM.SYS, EMM386, DOS=HIGH,UMB и DEVICEHIGH для части драйверов. В AUTOEXEC.BAT — загрузка SMARTDRV, путь к mTCP, русская кодовая страница, драйвер NE2000, DHCP и CuteMouse. Всё что можно загружается командой LH.
После всех этих манипуляций mem стал показывать уже вполне приличную картину: около 609 КБ свободной базовой памяти и ДОС, живущий в HMA. Раньше с этим так много возились не потому что это было интересно, а потому что иначе программы могли просто не запуститься.
Сеть завелась неожиданно буднично. NE2000 загрузился почти сразу (в первой попытке я указал не совсем верные параметры), mTCP через DHCP получил настройки, после чего стало понятно, что
Самый странный момент — набирать ping в чистом ДОСе. Оно не просто запускается, а реально пингует. Мозг немного сопротивляется.
После этого я поставил браузер «Арахна». И вот тут эксперимент стал совсем прекрасным. Потому что это уже не просто «я настроил сеть». Это настоящий интернет.
Конечно, пользоваться этим всерьёз невозможно — браузер по современным меркам совсем примитивный, поддержки HTTPS нет, но посмотреть было интересно.
Программирование на одной GPU
Интересная штука встречается очень часто. Мне сложно её принять, хотя я понимаю, почему так произошло. Для людей нейросети слились в одно большое атомарное явление. Ну, знаете, как «учёные»: «Учёные заявили…». Какие учёные? Может, там биолог про математику говорит? Многим неважно, есть ли консенсус среди учёных по этому вопросу и насколько проверены данные, на основании которых «учёные заявили».
Так же и тут. Как будто бы многие считают, что нейросети одинаковые: видел одну — видел все. Разумеется, это не так. Они разные по размеру, а значит, и по способностям. У большинства есть специализация, они обучались на разных данных и обладают разным «опытом». И то, что вы можете развернуть у себя на ноутбуке, в подмётки не годится большинству из того, что есть в «облаках».
Мы недавно провели эксперимент среди нейросетей для программирования, которые можно развернуть на одной Nvidia H100. У неё 96 ГБ видеопамяти, и это сейчас один из самых главных критериев — размер памяти, а не мощность самой карты.
Даже в этом сегменте результаты сильно различаются. Мы попробовали следующие сети:
openai/gpt-oss-120b — четыре бита на параметрQwen/Qwen3-Coder-Next-FP8 zai-org/GLM-4.7-Flash Qwen/Qwen3-Coder-30B-A3B-Instruct gemma-4-31B-it
Среди этих почти одинаковых по параметрам сетей — выбивается только OSS со своими 120 миллиардами параметров, но в сильно урезанном виде — есть явный и безусловный лидер:
Я веду к тому, что если вы попробовали
Компьютерная шея
Преподносится это как «вред от этих ваших компьютеров».
Я тут случайно наткнулся на фильм «Бравый солдат Швейк» 1957 года, так там у кучи народу такое положение шеи. Где же они в пятидесятых годах компьютеры взяли?
Память во сне
Интересная штука — серийные сны, если задуматься. Не знаю, как они официально называются, это я их так называю, но мне, как, наверное, и многим, иногда снятся сны с продолжением. Причём продолжение может присниться через несколько лет после первых серий.
Сегодня мне снился
После пробуждения я мало что помню: сон выветрился
Вот у меня и возник вопрос — а где, собственно, хранится память о всех этих событиях между моими снами? Для моей «дневной личности» она недостижима — просыпаясь, я почти сразу забываю о том, что произошло. Получается, что во все я действую от лица личности
Клим С.
Иногда я жалею, что время ЖЖ прошло.
Жалею
Именно там я познакомился со многими, с кем потом годами приятельствовал. Позже жизнь нас пораскидала,
ЖЖ, умерев, не породил себе наследников — разве что зеркальные лабиринты площадок для микроформатов, бесконечно переотражающие одни и те же тренды в разных лицах.
Одного из таких приятелей, назовём его Клим С., я вижу почти каждый день. Иногда встречаю на улице, иногда вижу из окна кабинета — он работает со мной в одном здании.
А недавно он отпустил длинные волосы и стал мне очень сильно
Меня игра особо не цепляла, но мой друг, приходя в гости, частенько за неё садился. Походка того персонажа и его развивающиеся волосы, как мне кажется, здорово напоминают моего приятеля Клима С.
Пользуясь доступностью нейросетей, я, пока ехал домой, накидал небольшой виджет, в котором вы можете наблюдать персонажа этой игры, так похожего на моего приятеля Клима С., большого оригинала в душе, который теперь отлично маскируется под обычного офисного работника.
Manchester Baby
Мне кажется, нейросети потенциально могут породить такое явление: зачем искать и скачивать программу, если проще её написать?
Я уже начал лениться. Я тут недавно писал про «компьютерную шею» в фильме про Швейка 1957 года, а сегодня прочитал про эмулятор компьютера 1948 года — Манчестерской малой экспериментальной машины. Я о ней никогда не слышал и не то, чтобы это
Я знаю только о компьютерах Конрада Цузе того же времени, на этом мои познания заканчиваются, но о его работе никто и не знал — война помешала, а тут
Эмулятор из прочитанной мной статьи идёт в наборе с целой кучей других и обещает качаться больше недели, поэтому я нашёл другой. Я сильно не утруждался, первым мне попался экземпляр для ДОСа, но поскольку я недавно как раз запускал у себя ДОС, то решил, что он меня вполне устроит.
Оказалось, что устройство ввода компьютера того времени не вполне совместимо с моим терпением, тыкаться в эмуляторе ДОСа быстро наскучило. И вот тут проявилась та лень, о которой я пишу: вместо того, чтобы поискать новый эмулятор, я просто попросил нейросеть адаптировать мне то что есть для моей операционной системы.
Нейросетка справилась одной левой — я сел позаниматься своими вещами, а когда переключился обратно, у меня уже запускался готовый эмулятор.
Manchester Baby: что за компьютер
Вчера я писал про Манчестерскую малую экспериментальную машину по прозвищу «Малышка», но не написал, что этот компьютер из себя представлял.
Если бы вы встретили его
Машина была разработана в качестве исследовательского прототипа для проверки концепции цифровой памяти с использованием
Машина запустила первую в мире сохранённую программу примерно в 11:00 утра в понедельник, 21 июня 1948 года. Программа вычисляла наибольший собственный делитель числа 218, перебирая все числа от 218 в обратном порядке.
Программа состояла из семнадцати инструкций и выполнялась около 52 минут, пока не выдала правильный ответ — 131 072. За это время компьютер выполнил около 3,5 миллиона операций.
Машина использовала четыре
Назначение почти всех трубок самоочевидно, а «аккумулятор» должен быть знаком каждому, кто знает слово «ассемблер».
Ввод был устроен тоже просто: 32 кнопки, позволяющие выставить 32 бита в текущем слове, кнопки прохода по памяти, «запуск», переключение режима дисплея и так далее.
Таким образом оператор последовательно передвигался по всем необходимым ячейкам памяти, вводя переключателями 32 бита в нужную ячейку, — так осуществлялся ввод программы.
Программирование на двух GPU
На этой неделе мы наконец получили NVLink, чтобы связать наши два видеоускорителя собственной шиной. Это нужно, чтобы запускать модели большего размера, занимающие обе карты: на шине общего назначения скорости не те, и модели еле ворочаются.
Развернуть и потрогать пока успели только две модели:
deepseek-ai/DeepSeek-V4-Flash QuantTrio/MiniMax-M2.7-AWQ
Обе модели урезанные, разумеется, но даже так они еле умещаются на картах, параллельность никакая. Эти модели должны быть мощнее, чем те, которые удалось запустить на одной карте; по крайней мере, синтетика даёт ожидаемые результаты, но на практике не всё так однозначно.
Ребятам больше всех пока понравился
Надо понимать, что серьёзным облачным моделям эти модели в подмётки не годятся: они мощнее примерно на порядок, и оборудование, которое позволяет их запустить, стоит совершенно других денег.
Для серьёзного программирования такие локальные модели непригодны,
Дочка и соревнования
У дочки на этой неделе расстройство — в первый раз пришла на соревнованиях по плаванию первой, но медаль не дали. Плыла два раза, двумя стилями — на спине и кролем. На спине заняла второе место, а кролем пришла первой, но оказалось, что заплыв был разбит на два, и она в тройку не вошла.
Зато проплыла на разряд, но и тут фиаско — в этот раз не было
Горько поплакала, даже поход в любимый ресторан не до конца скрасил день. На следующий день обиды уже забылись, но я
Но были на этой неделе и радостные события.
Учёба кончится, улетим в отпуск. Я уже живу только этой идеей. Голова нескончаемо болит каждый день уже которую неделю. Надеюсь, от стресса,
Книги: «Космонавт — мотоциклетный мастер»
У меня есть немного странная особенность: есть ряд книг и фильмов, которые я смотрел в детстве и которые мне страсть как хочется разыскать. Как правило, я помню там
А вот книги поддаются нейросетям хуже: кажется, я так и не смог найти ни одной книжки с их помощью. Но тут спасибо читателям: один из них помог расколоть один из самых крепких орешков — книгу «Космонавт — мотоциклетный мастер».
Книжку я купил, получил и с удовольствием прочитал дочке. Я
Удивительно, что я помню куда больше, чем ожидал: вспомнились почти все иллюстрации и довольно большая часть рассказов. Надо же, столько времени прошло, а это всё ещё
После полного прочтения выяснилась немного печальная штука: я думал, что один из рассказов, которые я помню, должен оказаться в этой книге, но, как оказалось, я искал не одну книгу, а две.
Книжка детская, а рассказ был о том, что не всегда нужно говорить правду. Я помню, что папа объясняет это ребёнку на следующем примере. Когда мама была беременная, она не всегда была красивая. Но когда она спрашивала папу красивая ли она, папа иногда говорил ей неправду.
В общем, теперь ищу эту книгу. Может быть
ИИ и системное администрирование
Вокруг программирования с помощью нейросетей так много шума, что кажется, будто остальные айтишные профессии остаются в стороне: будто в их жизни ничего не меняется и не поменяется.
Разумеется, это не так. Я уже
Тогда я обошёлся без автоматизации — просто потому, что нейросеть выполняла мои хотелки с такой скоростью, что автоматизация оказалась мне не нужна. Тем более что в нестандартных ситуациях я не ограничен интерфейсом выбранного решения: в моём распоряжении голая командная строка, пиши что хочешь.
Выглядит это не очень промышленно, но не надо думать, что никто не исследует тему того, каким образом можно было бы хотя бы частично заменить системного администратора искусственным интеллектом.
На скриншоте — одна из первых ласточек: Линукс от «Селектела» со встроенным «системным администратором»; в его качестве выступает нейросеть «Квен 3.5» с весьма скромными по нынешним временам характеристиками. Она превращает задачу пользователя в команды в консоли сервера.
Интерфейс пока аскетичный, но и задачи полностью заменить администратора пока нет: каждая команда требует анализа специалистом и подтверждения. В таком режиме от администратора не требуется знать хитрые ключи командной строки или нетривиальную последовательность действий — всё это за него уже может делать машина.
У нас один из сотрудников, занимающихся системным администрированием, в настоящий момент гоняет это решение на изолированной виртуалке. Не для рабочих задач, разумеется, а чтобы понять, куда ветер дует.
Отпуск начался
Ну всё, дожил до отпуска. Осталось его пережить.
Вылетали из России вечером, прилетели во Вьетнам утром, но вьетнамским утром, по России мы прибыли в два часа ночи. Сидели мы на местах с увеличенным пространством для ног, что в моём случае оказалось минусом — я очень плохо сплю в самолётах, как правило упираюсь лбом в следующее сиденье и дремлю, а тут этого сиденья впереди просто не было.
Во Вьетнаме пасмурно и дождь. Такое мы видели и на родине. Правда, тепло — около 30°, в Казани сейчас, наверное, вдвое холоднее.
Очень хочется спать, но негде — номер ещё не готов.
Язык высокого уровня для «МК-61»
Я тут довольно большой проект начал — язык высокого уровня для программируемого калькулятора «Электроника
Программирую вайбкодингом, разумеется, лучшими нейросетями из доступных — «Опусом 4.8» и «ГПТ 5.5». Вручную это проект на годы, без сеток я бы его даже не начинал.
Основная сложность — скромные возможности. На программу выделено всего 105 байт и несколько регистров, которыми можно оперировать, поэтому все лучшие программы написаны просто с нереальным количеством хаков, использующих как универсальные вещи (вроде
Ядро языка уже давно написано и даже пережило несколько рефакторингов, но до конца ещё далеко. Я перевёл на него несколько существующих кодовых бриллиантов, чтобы разобраться с применёнными там приёмами оптимизации и моему транслятору до таких вершин ещё далеко.
Сейчас я, например, разбираюсь с упаковкой нескольких переменных в один регистр. Идея простая, но позволяет иногда экономить очень много: если у нас есть три переменные и каждая принимает значение от нуля до десяти, то можно хранить их в одном регистре поразрядно от «00.0» до «99.9».
Так, например, переписывается в текущем синтаксисе игра «Охота на лис» из блога Дениса Монатко:
program FoxHuntMK61 {
field: board(0..9, 0..9)
state {
cell: coord(field)
foxes: coord_list(field, 9) = random_unique()
bearing: counter 0..9 = 0
}
loop {
cell = read()
if cell in foxes {
found_fox()
}
scan_from_cell()
show("--", cell:02, "--", bearing)
}
fn found_fox() {
show(-20)
}
fn scan_from_cell() {
bearing = line_count(foxes, cell)
}
}Это один из более чем двадцати примеров, где оптимизатор справляется лучше или на уровне опытного программиста на этом калькуляторе.
Людно во Вьетнаме
Мы во Вьетнаме в третий раз. Тут всегда было людно, но сейчас особенно. Гиды говорят, что
В связи с этим наш огромный отель битком. Некоторых даже не поселили в их номера
Погода в этот сезон сошла с ума: вдруг начались дожди, хотя для этой местности это необычно в конце мая. Одно радует — всегда тепло и иногда выходит солнышко. Говорят, прогнозу тут верить не надо. И это радует, потому что в прогнозе ничего хорошего.
Развлекаюсь написанием транслятора. Сложная задача, мне очень нравится придумывать всякие оптимизации, а нейросетка быстро их пробует — ничем не ограниченный полёт фантазии, очень здо́рово!
Записались на пару экскурсий. Тут всё самое интересное далеко, так что выбрали то, что поближе: обезьяны, аквапарк, аттракционы, плавание в маске — достаточно традиционно. Ну и конечно, несмотря на дождь, всё же тут тепло, беззаботно, рядом море, бассейны и очень вкусно кормят.
Надеюсь прийти в норму.