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. В общем и целом всё норм. Есть плюсы и минусы, конечно.

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

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

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

NewsНовая админка

Спустя кучу лет привёл до работоспособного состояния и запустил третью версию движка этого бложика. Вернее, это только его часть, админка. Предыдущая торжественная заливка была почти 4 года назад :) Собственно, эту запись из неё первую и пишу.

Технически залитая часть сайта представляет из себя SPA (single page application) на Ember.js и REST API на PHP фреймворке Symfony2. Исходники доступны на гитхабе, так что можете изучать и ломать это приложение полностью.

Реализованы, конечно, не все задумки, но новая версия уже умеет больше, чем предыдущая. И можно будет уже начинать потихоньку писать новый фронтенд на чём-нибудь интересном.

DISQUS

NewsПрикрутил DISQUS

Что-то довольно часто стала попадаться на глаза эта система комментариев, т.е. DISQUS. Любопытство взяло вверх, решил посмотреть, как оно всё выглядит изнутри, а этот блог как раз подходит на роль площадки для всяческих испытаний :)

Оказалось даже проще, чем я себе это изначально представлял, думал, что может приключиться что-то со стилями CSS и прочим, но ничего не произошло. Короче говоря, установить его сможет и домохозяйка, для которой html и javascript не пустой звук. Хотя если учитывать существование плагинов под WordPress, Blogger или Tumblr, то и эти условия становятся необязательными.

Комментарии, конечно, не посыпятся сюда, как из ведра, но надеюсь, что потратил своё драгоценнейшее время не зря :) А запись пусть висит тут для истории.

web block

ВсячинаАтака роботов, часть 2-я

Живу себе спокойно, никого не трогаю, а мой блог этот, как оказалось, регулярно проверяют на вшивость. Часть вторая, так как первая находится → тут, но там дело касалось спама.

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

робот спам

ВсячинаАтака роботов

Началось... На неделе просматривал логи сервера и заметил, что мне в блог роботы пишут комментарии. Однако данные приходили от них невалидные, а по моему недосмотру это приводило к 500-й ошибке, так как перенаправление со страницы обработчика формы на страницу записи происходило только для валидных данных.

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

NewsТоржественная заливка

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

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

Что-то я отвлекаюсь... Короче говоря, где-то в полночь жахнул БД и файлы старого блога на хостинге, закачал новые, обновил страницу - и белый лист в окошке браузера. Никаких ошибок не видно, логи тоже пустые. Блог локально работает на винде дома и на маке на работе. Пришлось ковыряться. Только к половине третьего сайт заработал, а к трём были пофиксены ошибки, которые проявились только на линуксовом сервере.

Основная проблема, которую не сразу смог обнаружить, заключалась в том, что залились не все файлы библиотеки Zend Framework. Заметил случайно, когда дебаги вставлял в библиотечные файлы. На хостинг заливал всё архивом по FTP, а потом распаковывал их в панели (поштучно заливать тысячи файлов выходит во много раз дольше), а при распаковке извлеклись не все файлы, пишет о неудачах. Тут хоть глюк и не с моей стороны, зато узнал о таком полезном инструменте в Total Commander, как синхронизация папок. Теперь им и пользуюсь при обновлении этого движка на хостинге. Даже скриншотик вывешу по этому поводу, а то скучно без картинок.

Ну и пару моих ошибок всплыло, с кастомными хелперами для Zend_Form_Element в форме для комментариев, связанный с большими и маленькими буквами в именовании файлов, причём непонятно, почему на маке сайт нормально функционировал (а не должен был), ведь тоже, вроде, система, которой регистр букв не безразличен. Ну да ладно, исправил и зарубку на будущее оставил в голове, следить внимательнее за буквами.