News → Готово, вроде...

Фотография → Для истории
Оставлю это тут на память. Когда интерес немного перевешивает лень или, скорее, безразличие.
News → Назад дороги нет
Всё. Даже куплена новая тема на themeforest.net. Периодически происходят набеги к новому движку этого блога, который пишется на Golang (с марта 😅).
А вообще, в разные периоды времени, я переделывал свой блог на Python (Django), Phalcon Framework, Clojure (Luminus), Java (Ninja Framework и Spark),Common Lisp (Hunchentoot), Elixir (Phoenix). Но так ни разу и не довёл дело до конца, максимум добирался до пажинатора страниц. Да и на Golang это уже не первая попытка. Но будет последняя. Или сейчас, или уже никогда 💩 Всё равно не веду эти страницы, только за VPS плачу.
News → Переехал в контейнер :)
Спустя почти год моей моральной подготовки контейнерная революция докатилась и до этого бложика. Хотя в разработке docker использую как раз таки этот самый год, крайне удобная штука, теперь вообще любой новый проект делаю только с ним.
Пришлось немного подумать кроне. Варианта виделось три:
- Залепить крон в тот же контейнер, где крутится веб-приложение. А вебсервер и процесс крона запускать через supervisord, как делают некоторые (раз и два). Но это как-то не docker way, поэтому не захотелось :)
- Отдельный контейнер, где бы жил и крутился крон. Этот вариант делать не стал из-за перерасхода ресурсов, пусть и минимального.
- И третий вариант, который прижился. Просто запускаю docker run из хост-системы её же кроном. Прекрасно работает :)
Вроде такого:
1 | /usr/local/bin/docker-compose -f /path/to/docker-compose.yml run --rm myweb /path/to/cronscript
|

Работа → Zfort Group
Три месяца уже работаю работником на новой работе, в Zfort Group. В общем и целом всё норм. Есть плюсы и минусы, конечно.
Из плюсов - процессы более организованные, за различные аспекты рабочего процесса отвечают разные люди, но так оно и должно быть, потому что людей в сумме уже не десяток, а пару сотен. Основная цель, которую я преследовал при смене работы - это лучшие бытовые условия и, собственно, условия труда, и цель эта была достигнута. Правда, не обошлось и без ложки дёгтя, а возможно, и не ложки, а целого ведра. И таким ведром оказался мой проект :)
Проект ужасен, просто горы говнокода промышленных масштабов. Но я знал на что шёл, при собеседовании меня предупреждали. И теперь эту кучу говна и палок надо разгрести и привести в человеческий вид, такая уж задача.
Вот, собственно, и всё.
News → Новая админка
Спустя кучу лет привёл до работоспособного состояния и запустил третью версию движка этого бложика. Вернее, это только его часть, админка. Предыдущая торжественная заливка была почти 4 года назад :) Собственно, эту запись из неё первую и пишу.
Технически залитая часть сайта представляет из себя SPA (single page application) на Ember.js и REST API на PHP фреймворке Symfony2. Исходники доступны на гитхабе, так что можете изучать и ломать это приложение полностью.
Реализованы, конечно, не все задумки, но новая версия уже умеет больше, чем предыдущая. И можно будет уже начинать потихоньку писать новый фронтенд на чём-нибудь интересном.

News → Прикрутил DISQUS
Что-то довольно часто стала попадаться на глаза эта система комментариев, т.е. DISQUS. Любопытство взяло вверх, решил посмотреть, как оно всё выглядит изнутри, а этот блог как раз подходит на роль площадки для всяческих испытаний :)
Оказалось даже проще, чем я себе это изначально представлял, думал, что может приключиться что-то со стилями CSS и прочим, но ничего не произошло. Короче говоря, установить его сможет и домохозяйка, для которой html и javascript не пустой звук. Хотя если учитывать существование плагинов под WordPress, Blogger или Tumblr, то и эти условия становятся необязательными.
Комментарии, конечно, не посыпятся сюда, как из ведра, но надеюсь, что потратил своё драгоценнейшее время не зря :) А запись пусть висит тут для истории.

Всячина → Атака роботов, часть 2-я
Живу себе спокойно, никого не трогаю, а мой блог этот, как оказалось, регулярно проверяют на вшивость. Часть вторая, так как первая находится → тут, но там дело касалось спама.
Помогал на днях знакомым знакомых с сайтом - вредоносное содержимое, блокировка адреса в браузерах и тому подобное. А заодно решил и к себе в логи заглянуть, т.к. сто лет там не был.

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

News → Торжественная заливка
Произошла она не сегодня, а в ночь с 29-го на 30-е октября. Имеется в виду перемещение на хостинг нового движка и новой базы этого блога.
Как это обычно и бывает, всё прошло не без сучка и с задоринкой. Очень уж хотелось вывесить своё творение во внешний мир, пусть тут ещё и половина не готова из задуманного. Например, раздел бекенда для создания и редактирования записей написал только сегодня, потому и пост запоздавший получается.
Что-то я отвлекаюсь... Короче говоря, где-то в полночь жахнул БД и файлы старого блога на хостинге, закачал новые, обновил страницу - и белый лист в окошке браузера. Никаких ошибок не видно, логи тоже пустые. Блог локально работает на винде дома и на маке на работе. Пришлось ковыряться. Только к половине третьего сайт заработал, а к трём были пофиксены ошибки, которые проявились только на линуксовом сервере.
Основная проблема, которую не сразу смог обнаружить, заключалась в том, что залились не все файлы библиотеки Zend Framework. Заметил случайно, когда дебаги вставлял в библиотечные файлы. На хостинг заливал всё архивом по FTP, а потом распаковывал их в панели (поштучно заливать тысячи файлов выходит во много раз дольше), а при распаковке извлеклись не все файлы, пишет о неудачах. Тут хоть глюк и не с моей стороны, зато узнал о таком полезном инструменте в Total Commander, как синхронизация папок. Теперь им и пользуюсь при обновлении этого движка на хостинге. Даже скриншотик вывешу по этому поводу, а то скучно без картинок.
Ну и пару моих ошибок всплыло, с кастомными хелперами для Zend_Form_Element в форме для комментариев, связанный с большими и маленькими буквами в именовании файлов, причём непонятно, почему на маке сайт нормально функционировал (а не должен был), ведь тоже, вроде, система, которой регистр букв не безразличен. Ну да ладно, исправил и зарубку на будущее оставил в голове, следить внимательнее за буквами.