движок Регистр
Движок сайта: боты

В «Регистре» (так называется мой новый движок для сайта), меня, помимо редактора, постоянно донимают боты поисковых систем, нейросетей и так далее. Я даже не подозревал сколько их развелось и с какой страшной силой они молотят весь интернет. К сожалению, некоторые из них игнорируют robots.txt и заходят даже туда, куда просишь их не ходить.
Так как у меня на сайте сменилась часть адресов
Поэтому я регулярно захожу в панель администратора, чтобы посмотреть что у меня с нагрузкой и, если замечаю, что она в красной зоне, выгружаю логи и смотрю куда
Кеш у меня, кстати, сейчас устроен довольно сложно — если доступен модуль APC, либо есть /dev/shm, то горячие пути кешируются туда, если недоступно, используется общий кеш на файловой системе. Кеш без необходимости не сбрасывается, за этим я слежу отдельно. Инвалидация делается довольно топорно, надо — сносим, примерно как было в «Эгее», но, с другой стороны, я не делаю высоконагруженный проект, чтобы с этим отдельно заморачиваться.
Движок сайта: редактор
Самым сложным в собственном движке блога оказался, как ни странно, редактор. Я сразу нацелился на визуальное редактирование, но с нужными мне особенностями — например, изображения автоматически сжимаются до оптимального формата и описываются через нейросеть, чтобы потом легче было искать.
Каждый день я дорабатываю движок, и большинство коммитов касается именно редактора. Почти каждый день я пишу свои заметки на сайт и почти каждый раз
Интересно, что похожие баги встречаются и в телеграмном редакторе, которым я недавно начал пользоваться для публикаций в своём канале. Может они имманентно возникают при написании своего редактора с нуля?
Как бы то ни было, движок приобретает свои очертания. Только теперь они вырисовываются из опыта использования. Я был прав, когда решил начать им пользоваться на сайте, без этого ещё долго пришлось бы вылавливать все ошибки и неудобства.
Эмодзи в MySQL
Вчера при импорте на сайт реакций из «Телеграма» заметил

Пошёл разбираться, выяснилось, что в базе всё лежит отдельно, как положено. Нейросеть «Сол» обнаружила странное — несмотря на то, что эмодзи «глаз» и «палец» имеют разные коды, «МайЭсКьюЭль» считает их одним значением и объединяет при группировке.
Вот тут «Сол» меня сильно расстроил. Сначала он предложил группировать через функцию HEX() . Решение само по себе плохое, но проблема ещё и в том, что движок сайта поддерживает три СУБД, и в «Постгресе» такой функции нет, а генерировать разные запросы под базы не очень хочется.
Тогда он решил считать хеш через PHP, чтобы группировать по нему. К сожалению, в этот момент я не следил за окном, где он копался, и он успел это реализовать и даже задеплоить.
Меня такая реализация категорически не устроила. Мне в целом понятно, что проблема связана с тем, что называется «collate» — в СУБД это набор правил, по которым сравниваются строки. У «МайЭсКьюЭля» много особенностей при работе с Юникодом, с которыми я уже сталкивался, поэтому был уверен, что дело именно в одной из них.
Готовый рецепт нашёлся безо всяких проблем. Чтобы эмодзи сравнивались правильно, нужно установить «collate» для этого столбца как utf8mb4_bin, что мы и сделали. Не думаю, что это необходимо, тем не менее для остальных баз мы выставили в этом месте бинарный «collate» — С для «Постгреса» и BINARY для «ЭскуэльЛайта».
Как идёт разработка движка блога
Ожидания у меня, конечно, были примерно такие: за
Реальность оказалась совсем другой. Каждый элемент на экране приходится многократно передвигать
Очень сильно помогает, что я его себе поставил — так гораздо проще понять что нужно доделывать сразу, а на что можно обратить внимание когда основное будет сделано. Например, оказалось, что вопросы кеширования и производительности надо решать не откладывая.
Решил, что торопиться не буду, пусть идёт в своём темпе, так что когда будет выпуск первой версии, пока не скажу. Думаю, через 2—4 недели, примерно так.
Начинаю выздоравливать
Начинаю выздоравливать — с каждым днём потихоньку чувствую себя чуть лучше. Сегодня первый день, когда под вечер не свалился от усталости. Не скажу, разумеется, что идеально себя чувствую, но достаточно пришёл в себя, чтобы заменить у себя движок сайта с «Эгеи» на «Регистр», так теперь называется мой движок, написанный поверх
Давно руки чешутся попробовать то, что получается в реальной жизни. Я вижу вещи, которые получились не очень, но сложно сделать лучше, не тестируя разные варианты. Буду тестировать сам на себе, мне кажется, это лучший способ.