ВсячинаБесконечный проект, блог о блоге

Вчера хотел здесь в админке добавить счётчик статей в категориях, а попутно проверить почему не генерируются картинки в формате avif и обнаружил, что вылезли фатальные ошибки после обновления симфони (5.4 на данный момент времени), хотя в TODO пометил их на исправление из-за предупреждений об устаревании. Но не исправлял 🙂

Вот и сейчас не могу сохранить пост с картинкой. 500-я... Ладно, запушу исправление и добавлю позже. Вообще, выход из этой ситуации только один - это автотесты. И они были в моём бложике. Не помню, почему я перестал их поддерживать, скорее всего сменилась версия API CircleCI, вручную же я их не запускал, а прогон автотестов после пуша в репозиторий был удобновй штукой. Надо будет это всё восстановить, главным сдерживающим фактором по автотестам была устаревшая версия симфони, но это уже было ликвидировано.

Из-за ошибки этой при сохранении записей и забыл уже, что собирался писать 😅 Планы анонсировать не хотел, они висят перманентно и никуда не деваются обычно, могут откладываться. Захотелось перенести сюда некоторые записи из жеже, но потребуется разработка, хотя бы потому, что нужно перенос автоматизировать, а не копировать текст руками (хотя вручную это сделать невообразимо быстрее), но цель уже не в самом переносе из жежешки, а в том, чтобы этот перенос запрограммировать.

Grafana dashboard

NewsCDN минус, 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Готово, вроде...

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

ФотографияДля истории

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

NewsНазад дороги нет

Всё. Даже куплена новая тема на themeforest.net. Периодически происходят набеги к новому движку этого блога, который пишется на Golang (с марта 😅).

А вообще, в разные периоды времени, я переделывал свой блог на Python (Django), Phalcon Framework, Clojure (Luminus), Java (Ninja Framework и Spark),Common Lisp (Hunchentoot), Elixir (Phoenix). Но так ни разу и не довёл дело до конца, максимум добирался до пажинатора страниц. Да и на Golang это уже не первая попытка. Но будет последняя. Или сейчас, или уже никогда 💩 Всё равно не веду эти страницы, только за VPS плачу.

NewsПереехал в контейнер :)

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

Пришлось немного подумать кроне. Варианта виделось три:

  1. Залепить крон в тот же контейнер, где крутится веб-приложение. А вебсервер и процесс крона запускать через supervisord, как делают некоторые (раз и два). Но это как-то не docker way, поэтому не захотелось :)
  2. Отдельный контейнер, где бы жил и крутился крон. Этот вариант делать не стал из-за перерасхода ресурсов, пусть и минимального.
  3. И третий вариант, который прижился. Просто запускаю docker run из хост-системы её же кроном. Прекрасно работает :)

Вроде такого:

1
/usr/local/bin/docker-compose -f /path/to/docker-compose.yml run --rm myweb /path/to/cronscript
Zfort Group

РаботаZfort Group

Три месяца уже работаю работником на новой работе, в Zfort Group. В общем и целом всё норм. Есть плюсы и минусы, конечно.

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

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

Вот, собственно, и всё.