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

Свои инструменты: от прототипов к релизам
В начале месяца я анонсировал несколько проектов. За октябрь часть этих анонсов превратилась в отдельные страницы, записи и новые выпуски. Понемногу собирается понятная история: зачем делаю инструмент, что уже работает и что ещё нужно довести.
Lekalo: дошёл до 1.0 и продолжил дальше
25 октября выпустил Lekalo 1.0.0, а 27 октября — уже 1.1.0. Для проекта это важный рубеж: от рабочего прототипа к версии, которую можно отдавать другим и проверять на настоящих задачах.
Идея Lekalo — связать модель приложения, исходный код и проверки. Чтобы описание проекта помогало ориентироваться в реализации, а результат работы подтверждался запуском проверок. Особенно интересно пробовать эту связку с AI-помощниками: им тоже нужно понимать, что именно меняется и на что это повлияет.
После релиза продолжил разбираться с анализом существующих проектов, контекстом и сохранением результатов. Были и эксперименты с расходом токенов. Простая идея «дадим помощнику меньше текста — он потратит меньше» в проведённых сравнениях не подтвердилась. Полезно получать и такие результаты: иначе легко принять красивую гипотезу за работающую оптимизацию.
Подробнее написал в записи о Lekalo 1.0.0, а следующий выпуск есть в релизах проекта.
Laramago и Laratesto
Laramago помогает статическому анализатору Mago понимать особенности Laravel: модели, связи, запросы и прочую привычную для фреймворка магию. В октябре наконец сделал подробные замеры на реальном приложении и сравнил результаты с PHPStan и Larastan.
Получилось полезнее рекламного сравнения. В измеренной серии Laramago оказался заметно медленнее. Отдельно сопоставлял глубину проверок: одного общего «уровня PHPStan» для него тоже не получилось. Наборы проверок отличаются, и одинаковое число сообщений ещё не означает одинаковый результат.
Продолжил искать, где тратится время: повторный разбор исходников, работа кеша, обработка аргументов. В отдельной оптимизационной ветке удалось улучшить время полного запуска, но это ещё нужно отличать от возможностей опубликованного пакета. В статье о Laramago есть методика и ограничения сравнения.
У Laratesto вышла версия 0.9.0. Это связка Laravel и Testo: хочется удобно писать тесты и быстрее понимать причины их падения. Появились отдельный HTTP-клиент, включаемый сбор SQL-запросов и журналов приложения, более понятное указание на место ошибки в пользовательском тесте. Продолжал работать и над устойчивостью окружения между запусками.
Правила переноса старых тестов вынесены в отдельный Laratesto-Rector. Запуск тестов и их преобразование теперь можно развивать независимо. О выпуске — отдельная запись.
Tablo и AIFHub Extension
Про Tablo рассказал 6 октября. Это панель, в которой можно собрать свои сайты и связанные репозитории: видеть доступность, время ответа, версии, релизы и открытые задачи.
После первой версии продолжал работать над периодическими проверками, историей, уведомлениями и API. В конце месяца в основную ветку добавилась поддержка MySQL и MariaDB наряду с SQLite. При этом новые изменения в коде и обновление работающего экземпляра — отдельные шаги. Важно постепенно проверять весь путь, а не считать задачу законченной после появления нужной кнопки.
У AIFHub Extension вышли версии 1.8.0 и 1.8.1. Расширение помогает организовать работу AI-помощника с задачей: сохранить требования и контекст, пройти планирование, реализацию, ревью и проверки. В октябре много внимания ушло на состояние репозитория, локальные изменения и достоверность результатов.
Сам AIFHub остаётся более широким замыслом, а расширением уже можно пользоваться отдельно. Собрал рассказ о нём в блоге.
WordPress снова занял заметную часть месяца
Вернулся к своему старому плагину translit it!. Он нужен для транслитерации адресов записей и других объектов WordPress. Переработал настройки, локальную транслитерацию, обработку внешнего перевода и совместимость со старыми настройками. В версии 1.9.1 добавился встроенный русский перевод обновлённого интерфейса.
Здесь особенно хотелось сохранить прежние адреса и поведение уже работающих сайтов. Обновление плагина не должно неожиданно превращаться в переезд всех публикаций. Страница плагина появилась в проектах.
Параллельно работал над ThreadTandem — связкой WordPress и Telegram. Анонсы статей, обновления сообщений, обсуждения, очередь и защита от повторной отправки. У таких задач быстро заканчивается стадия «просто отправить сообщение»: дальше начинаются обрывы связи, правки публикаций и необходимость понять, что уже произошло на другой стороне.
Много занимался скоростью WordPress: кешированием, тяжёлыми плагинами, внешними запросами, изображениями и шрифтами. Часть результатов пошла в SEO Recipes. Некоторые ожидаемые улучшения в замерах оказались скромными или вовсе не подтвердились. Зато стало понятнее, что действительно тормозит конкретный сайт.
Работа, которая не помещается в анонсы
В рабочих сервисах продолжал заниматься генерацией видео и аудио, доставкой сообщений, интеграциями с CRM и личным кабинетом телефонии. Значительная часть времени ушла на надёжность: таймауты, очереди, восстановление соединений и понятные сообщения об ошибках.
У таких доработок часто нет эффектного скриншота. Зато есть вполне конкретные вопросы: что делать, если ответ потерялся, можно ли повторить действие, как не отправить сообщение дважды и где увидеть причину сбоя. За месяц было много именно такой работы.
Обновил сам блог
К концу октября на Ичи Блоге заработала собственная тема. Знакомую картинку с указателями оставил, а главную, страницы записей и каталог проектов переделал. Появились карточки материалов, более явные переходы по темам и содержание длинных статей.
В «Моих проектах» теперь проще собрать описание инструмента и ссылки на записи о его развитии в одном месте. Этот раздел ещё буду дополнять по мере появления новостей.
За октябрь в блоге вышло 16 публикаций, включая итоги сентября. Были технические записи, личные заметки и несколько праздничных поводов — от кофе в начале месяца до Хэллоуина. Про обновление темы тоже рассказал отдельно.
Игры и мультфильм
В октябре много занимался ещё одной игрой — про человека, который начинает работать с компьютерами в 1998 году. Сборка ПК, старые комплектующие, программы, ремонт, барахолка и деньги той эпохи. Появлялись рабочие версии для браузера и Android, развивались рынок и знакомства. Полноценный рассказ о ней ещё впереди.
С Anthill всё по-прежнему сложнее. Прототип муравьиной колонии продолжает меняться: поверхность и подземная часть, ресурсы, маршруты, поведение муравьёв. Я уже несколько раз переписывал игру, но вариант, которым был бы доволен, пока не сложился. В конце месяца это даже превратилось в хэллоуинскую заметку о страшных багах.
Начал работать и над мультфильмом «Женя и муравьиный парк». Со сценарием, персонажами, голосами и сценами оказалось немало отдельных задач. Генерация красивого кадра — только часть работы: дальше хочется управлять движением, репликами и монтажом, чтобы конкретную деталь можно было поправить. До готового фильма ещё есть что делать.
Участок, дождь и планы на дом
Сентябрьскую разборку старой беседки продолжить строительством сразу не получилось. В начале октября начались дожди. Нужно разобраться с сырыми лагами и усилить просевший черновой пол в бытовке. Для работы нужно вынести материалы, а складывать их под дождём совсем не хочется.
Поэтому значительная часть движения по дому в этом месяце была на бумаге. Сравнивал небольшие каркасные дома, планировки, расположение двух детских и родительской зоны. Постепенно дошёл до своего варианта «Каскад» на сетке 9 × 9 метров.
Одновременно менялся замысел детского домика: сравнивал основания 3 × 3 и 4 × 4 метра, высоту и возможность сделать два уровня. Хочется и детям место для игр, и самому попробовать решения на небольшой постройке. Пока это варианты и расчёты, до строительства ещё нужно довести проект.
Ещё заметил странную красноватую воду и налёт: сначала на плёнке над материалами, потом у городской ливнёвки. Причину не выяснил. Осень подбрасывает вопросы даже тогда, когда просто пытаешься сохранить доски сухими.
Семья и обычные дни
4 октября сходили семьёй в мини-зоопарк «Станция юных натуралистов» ко Дню защиты животных. Хороший повод выбраться вместе и посмотреть на животных. В записи остались фотографии прогулки.
Ко Дню отца написал про маленького помощника, совместные дела и будущий домик для детей. Хочется чаще включать детей в свои занятия и оставлять время просто побыть рядом. На фоне длинного списка проектов это легко упустить, хотя потом именно такие обычные дни и вспоминаются.
Тима и Мила
26 сентября не стало Тимы. А 28 октября пришлось проститься и с Милой. Она прожила без него около месяца.
Мила появилась у нас летом 2008 года, а Тима — в конце 2009-го. Они были с нами много лет и стали частью нашей семейной жизни.
Тиму взяли совсем маленьким котёнком. Аня давно просила завести кота, я сначала отказывался. Потом в соседнем доме появились котята, и один из них переехал к нам. Помню, что это было зимой, ещё когда жили на Уральской.
Он был серьёзным, аккуратным котом: ходил в лоток, не портил вещи, любил быть рядом. Только котёнком пытался грызть провода. Тогда мы купили «антигрызин», обработали их, а Тима попробовал снова и очень смешно ходил потом «плевался». Из таких мелочей и складываются воспоминания о нём.


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


У Милы состояние тоже ухудшалось. В конце она перестала нормально ходить и есть, появились серьёзные проблемы со здоровьем. Решение далось тяжело и в этот раз. 28 октября её тоже усыпили.
За столько лет привыкаешь, что они просто есть: спят рядом, ходят по дому, встречаются в самых обычных семейных воспоминаниях. Теперь хочется сохранить здесь не только последние тяжёлые дни, но и их обычную жизнь с нами.
Что осталось на ноябрь
После такого месяца хочется немного меньше распыляться и чаще доводить уже начатое до результата. У инструментов — проверять новые версии в работе, у игр — искать интересный игровой процесс, у мультфильма — собирать сцены, у дома — превращать варианты в понятный проект.
И находить время на семью. Октябрь ещё раз напомнил, что список задач можно продолжать бесконечно, а обычное время рядом с близкими отложить про запас не получится.

