
Всячина → День, когда отпал телеграм
Заметил, что мой телеграм-бот с сегодняшнего дня не отправляет уведомлений. Это было ожидаемо, в связи с блокировками, и ладно бы уведомления, я их предварительно переключил параллельно и на почту, но боты интересны именно взаимодействием с ними, умеют выполнять запрограммированные команды 🤖 Так же и другой мой pet-project, автоблокнот, лишился функционирующего бота, посредством которого предполагалось осуществлять записи по автомобильным делам.
Вообще новости о подавлении телеграма были печальные, пусть им всё равно продолжают пользоваться, но теперь это сопровождается гемором, скажем так, добавился небольшой дискомфорт 💩 Ещё в двадцатых числах марта решил, что настало время смотреть документацию по нашему суверенному мессенджеру MAX, но этот вариант отвалился сразу, поскольку в Максе создание ботов доступно лишь для юр.лиц и ИП-шников. Как отреагировал на это один человек: Ох и говно, прости-господи. И да, с такой политикой у Макса ни популярности, ни развития не добавляется, учитывая сколько интеграций туда хотят затащить. Очень надеюсь, что со временем создание ботов будет доступно всем, как тот же VK ID, например. Ну а пока имеем то, что имеем...
Ну и картинка, чтобы немного разбавить буквы на странице.

Всячина → Автотестам быть!
Собственно, тема в заголовке, к проекту (этому блогу) снова прикручиваются автотесты. Как и 13 лет назад, применён Behat (behat.org), BDD-тестовый фреймворк для PHP, умеющий в Gerkin, которым описываются человеко-понятные тестовые сценарии.

Всячина → Подготовка к автотестам
Очередная запись из серии "блог о блоге" 😄 На этот раз идут работы в связи с тем, что хочу снова покрыть блог и его админку автотестами. Раньше они существовали когда-то, но были заброшены. А тут ещё решил актуализировать код и вендорские библиотеки. Естественно в процессе происходили внезапные поломки, которые не были сразу замечены, в общем, автотесты сам доктор прописал.
Что был проделано, речь про админку блога:
- Обновился до Symfony 6.4 LTS, актуальной на данный момент ✅ А начиналось с версии 2.1 в 2013-м году
- Исправил больше 500 замечаний от статического анализатора PHPStan ✅ Думал этот процесс не закончится, но нужно чтобы всё было зелёненькое.
- Удалил пару вендорских пакетов composer-а, отмеченных как abandoned ✅ Вроде doctrine/annotations, с последующим переходом на атрибуты PHP
- Исправил замечания из deprecations логов ✅ Заготавливается основа на будущие обновления
- Восстановил фикстуры данных ✅

Всячина → Бесконечный проект, блог о блоге
Вчера хотел здесь в админке добавить счётчик статей в категориях, а попутно проверить почему не генерируются картинки в формате avif и обнаружил, что вылезли фатальные ошибки после обновления симфони (5.4 на данный момент времени), хотя в TODO пометил их на исправление из-за предупреждений об устаревании. Но не исправлял 🙂
Вот и сейчас не могу сохранить пост с картинкой. 500-я... Ладно, запушу исправление и добавлю позже. Вообще, выход из этой ситуации только один — это автотесты. И они были в моём бложике. Не помню, почему я перестал их поддерживать, скорее всего сменилась версия API CircleCI, вручную же я их не запускал, а прогон автотестов после пуша в репозиторий был удобновй штукой. Надо будет это всё восстановить, главным сдерживающим фактором по автотестам была устаревшая версия симфони, но это уже было ликвидировано.
Из-за ошибки этой при сохранении записей и забыл уже, что собирался писать 😅 Планы анонсировать не хотел, они висят перманентно и никуда не деваются обычно, могут откладываться. Захотелось перенести сюда некоторые записи из жеже, но потребуется разработка, хотя бы потому, что нужно перенос автоматизировать, а не копировать текст руками (хотя вручную это сделать невообразимо быстрее), но цель уже не в самом переносе из жежешки, а в том, чтобы этот перенос запрограммировать.

News → CDN минус, Prometheus плюс
Отключил тут CDN, вернее перевёл раздачу статических файлов на свой же nginx на сервере. Не такая уж и большая потеря для сайта с 2-10 посетителями в день, не считая роботов 😁 Санкции лишили возможности оплачивать услуги и оставили прекрасный сервис BunnyCDN без моего доллара в месяц. Ну да ладно, поигрался с content delivery и хватит.
А из нового прикрутил метрики Prometheus и Grafana, не ради самих метрик и графиков, а скорее в рамках изучения нового инструментария. Нужно же где-то тренироваться (на кошках), помимо рабочих проектов, где чаще делаешь не то, что хочется, а то, что нужно

Работа → Внедрился в VK
Неожиданно для самого себя попал на новую работу с первой же попытки, хотя думал, что искать её буду и 3, и 4 месяца. Ужасно не люблю собеседования, так что повезло, что их было существенно меньше, чем могло бы быть 😊
Была у меня теория, что работа всегда найдёт меня сама и раньше так и выходило. Но не в этот раз, пришлось предпринимать какие-то шаги со своей стороны, потому что после смены своей локации в LinkedIn поток сообщений/предложений пропал.
News → Ребрендинг
Был morontt.info, стал xelbot.com 😁 Разницы особой нет, потому что и нет тут никого, кроме меня. Произвожу оптимизацию, чтобы не платить просто так за разные домены. А xelbot получился много лет назад, как напечатал "чудище" в английской раскладке.
News → Новая старая админка
Решил, раз уж активно работаю и с админкой этого блога, освежить и её. Внешне не должно ничего поменяться, а вот под капотом изменения предстоят. Как уже писал тут в 2016-м, сделана она на Ember.js с Symfony. Вот с JS-частью и затеял обновление. Изначально и довольно давно задумал удалить SPA (single page application), переделать на обычный серверный рендеринг и избавиться от геморроя, связанного с быстрым устареванием фронтендовой инфраструктуры.
Но прошло уже 7 лет, а админка продолжает работать, bower не исчез, а всё так же скачивает пакеты, хоть и предупреждает уже несколько лет, что пора мигрировать на Yarn и Vite (что это, кстати?), крутится в докере 8-я версия Node.js, а выше не поднимешь, так как собираться код уже не будет...
News → Готово, вроде...

Фотография → Для истории
Оставлю это тут на память. Когда интерес немного перевешивает лень или, скорее, безразличие.