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

Всячина → Подготовка к автотестам
Очередная запись из серии "блог о блоге" 😄 На этот раз идут работы в связи с тем, что хочу снова покрыть блог и его админку автотестами. Раньше они существовали когда-то, но были заброшены. А тут ещё решил актуализировать код и вендорские библиотеки. Естественно в процессе происходили внезапные поломки, которые не были сразу замечены, в общем, автотесты сам доктор прописал.
Что был проделано, речь про админку блога:
- Обновился до Symfony 6.4 LTS, актуальной на данный момент ✅ А начиналось с версии 2.1 в 2013-м году
- Исправил больше 500 замечаний от статического анализатора PHPStan ✅ Думал этот процесс не закончится, но нужно чтобы всё было зелёненькое.
- Удалил пару вендорских пакетов composer-а, отмеченных как abandoned ✅ Вроде doctrine/annotations, с последующим переходом на атрибуты PHP
- Исправил замечания из deprecations логов ✅ Заготавливается основа на будущие обновления
- Восстановил фикстуры данных ✅
Всячина → Утилита для юникода
Обычно для поиска эмоджей использовал сайт Emojipedia, но недавно подвернулась консольная утилита uni, инструмент для поиска по базе символов Unicode. Код размещён на гитхабе, там же и инструкция для установки.
И ниже пара примеров использования:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | > uni emoji way Name CLDR 🤯 exploding head [blown, explode, mind, mindblown, no, shocked, way] 😲 astonished face [cost, no, omg, shocked, totally, way] 💨 dashing away [cloud, comic, fart, fast, go, gone, gotta, running, smoke] 🚃 railway car [electric, train, tram, travel, trolleybus] 🚞 mountain railway [car, trip] 🛣️ motorway [highway, road] 🛤️ railway track [train] 🚟 suspension railway 🚠 mountain cableway [gondola, lift, ski] 🚡 aerial tramway [cable, car, gondola, ropeway] 🌌 milky way [space] 🇳🇴 flag: Norway |
Второй:
1 2 3 4 5 6 | > uni search globe
Dec UTF8 HTML Name
'🌍' U+1F30D 127757 f0 9f 8c 8d 🌍 EARTH GLOBE EUROPE-AFRICA
'🌎' U+1F30E 127758 f0 9f 8c 8e 🌎 EARTH GLOBE AMERICAS
'🌏' U+1F30F 127759 f0 9f 8c 8f 🌏 EARTH GLOBE ASIA-AUSTRALIA
'🌐' U+1F310 127760 f0 9f 8c 90 🌐 GLOBE WITH MERIDIANS
|

Всячина → Бесконечный проект, блог о блоге
Вчера хотел здесь в админке добавить счётчик статей в категориях, а попутно проверить почему не генерируются картинки в формате avif и обнаружил, что вылезли фатальные ошибки после обновления симфони (5.4 на данный момент времени), хотя в TODO пометил их на исправление из-за предупреждений об устаревании. Но не исправлял 🙂
Вот и сейчас не могу сохранить пост с картинкой. 500-я... Ладно, запушу исправление и добавлю позже. Вообще, выход из этой ситуации только один — это автотесты. И они были в моём бложике. Не помню, почему я перестал их поддерживать, скорее всего сменилась версия API CircleCI, вручную же я их не запускал, а прогон автотестов после пуша в репозиторий был удобновй штукой. Надо будет это всё восстановить, главным сдерживающим фактором по автотестам была устаревшая версия симфони, но это уже было ликвидировано.
Из-за ошибки этой при сохранении записей и забыл уже, что собирался писать 😅 Планы анонсировать не хотел, они висят перманентно и никуда не деваются обычно, могут откладываться. Захотелось перенести сюда некоторые записи из жеже, но потребуется разработка, хотя бы потому, что нужно перенос автоматизировать, а не копировать текст руками (хотя вручную это сделать невообразимо быстрее), но цель уже не в самом переносе из жежешки, а в том, чтобы этот перенос запрограммировать.
Жеже → Без темы
Оставлю и здесь ссылку на свой канал в телеге, вдруг кто-то любопытный клюнет https://t.me/xelbotcom
Сам пребываю в состоянии "на паузе" и раздумываю куда двигать дальше по огромной российской территории. Но определяться это будет совместно с поиском программистской работы, а значит, разрешиться само собой.
Всё-таки сложно печатать с непривычки много букв, разжижило инстаграмом и прочим :)
Всячина → Максимальная длина URL-адреса в Internet Explorer и другие ограничения
Совершенно внезапно наткнулся на такое ограничение, как максимальная длина URL в Internet Explorer. Составляет она 2083 символа. Вот пруфлинк, если кто усомнится. С одной стороны, это много, но с другой - мало. По современным-то меркам, когда винты уже давно в несколько терабайт. На проекте, где вскрылся сей факт, длина некоторых ссылок переваливает за три тысячи. Тучища GET-параметров :)
Добавлю сюда ещё один параметр, про который не узнаешь, пока не наступишь на грабли. Уже не про эксплорер, а про PHP. Это max_input_vars, который по умолчанию равен 1000 и означает максимальное количество переменных, которое может быть передано в запросе, т.е. в $_GET, $_POST и $_COOKIE (по отдельности).
Жеже → Год прошёл
Не писал тут чуть меньше года и сейчас тоже писать особо не буду. Ссылку просто оставлю на запись из чуть-чуть более живого своего блога.
В целом - жив, здоров, погряз в программировании :)

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

Жеже → Статистика
Прикрутил вчера к своему сайту страницу со статистикой :) Информацию для неё собирал заблаговременно, сейчас только руки дошли написать код для отображения.
Интересна была и информация по комментариям. Их и самих по себе очень даже не густо, а лидирующие позиции занимают товарищи из жеже. spring625, dru4 и aterentiev. Спасибо вам за то, что не оставляете меня наедине с одними ботами :)

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