Mediawiki, закрываемся от ботов

В последнее время на фоне ИИ-бума прямо нашествие ботов на всех сайтах. Robots.txt стал не особо актуален; отсеивание по User Agent’у — тоже. Паразитный трафик вырос в десятки, а то и сотни раз. Буквально вчера добавлял правила у fail2ban для находящегося на публике RSS Bridge — через него повадились сканировать самые разные ТГ-каналы.

Так что достаточно вовремя я сделал кэширование и отдачу статики на своих вики-проектах, однако на сейчас уже и этого мало. Боты залазят на такие URL, куда живой человек вряд ли догадался бы зайти. Например, за 18 лет JabberWorld’а я практически никогда не пользовался разделом «Информация о странице», сейчас же в логах — тонны запросов с «action=info«. В итоге — да, для «живых людей» отдача статики, конечно, помогает, страничка будет отдаваться моментально, однако из-за хождения ботов по «особым» страницам все равно будет постоянно дергаться PHP, база и все, что с этим связано. Лишние затраты оперативной памяти, которую можно было выделить на что-то более полезное.

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

Читать далее Mediawiki, закрываемся от ботов

Обновил ESP Home, новые имена сенсоров

«Не было печали — апдейтов накачали» (с).

В последние дни занимался апдейтами ESP Home, Home Assistant и того, что с этим связано. В целом, увлекся docker’ом, поэтому в последнее время вышло пообновлять ряд домашнего софта — и развернуть новый. Если раньше версия Home Assistant у меня «замерла» на 2024-какой-то-там, которую последнюю можно было установить на pyhon-3.11 из Debian 12 (а обновлять систему я немного опасался даже после выхода Debian 13 — как оказалось, зря), а ESP Home из-за него — на 2025.9.3, то сейчас могу свободно переключаться между версиями без привязки к системе. Попутно, кстати, на какой-то комбинации версий получил в логах девайса (впервые!) сообщение «‘Home Assistant 2025.12.5′ using outdated API 1.13, update to 1.14+» (хотя при этом и все работало) — тут хотя бы ясно было, что / с чем / из-за чего не стыкуется, а не молчаливое пропадание сенсоров, как это было в прошлый раз.

Так или иначе, на сейчас у меня последние версии как ESP Home, так и Home Assistant. На части девайсов пообновлял прошивки — и в итоге поотваливались скрипты, которые забирали с них данные через REST API. Как оказалось, сменилось именование сенсоров — если раньше все приводилось в нижний регистр и пробелы заменялись на подчеркивание, то сейчас обращаться надо именно по тому имени, которое указано. Если раньше был URL вида ip/sensor/l2_voltage, то сейчас — ip/sensor/L2%20Voltage. Альтернативно — можно не кодировать пробел, но взять URL в кавычки — "ip/sensor/L2 Voltage".

Веб-интерфейс к архиву «Флибусты»

Короткая заметка по теме локальной библиотеки. Как уже писал в прошлой заметке, сделал интерфейс для работы с ZIM-файлами с архивами Википедии. С архивом «Флибусты» в Linux обычно работал через Myrulib, которая уже больше десятка лет не развивается — уже не помню, вроде были какие-то проблемы со сборкой, но где-то нашел то ли готовую сборку под современные системы, то ли переделанную, которую получилось собрать — в общем, тем и пользовался.

Сейчас захотелось большего. Что было найдено:

Читать далее Веб-интерфейс к архиву «Флибусты»

Открыл для себя проект Kiwix: оффлайн-копия Wikipedia

Собственно, сабж. Архив с fb2-книгами с «Флибусты» я давно у себя на NAS держу, а тут на глаза попался проект Kiwix. Оказалось, держать у себя на диске оффлайн-копии Википедии, Викисловаря и некоторых других сайтов не просто, а очень просто. Есть читалки для самых разных устройств и систем (в том числе в репозитории Debian). Все, что надо — скачать ZIM-файл (к слову, если добавить к нужному файлу расширение .torrent — можно качать через торрент) нужного проекта (либо воспользоваться встроенной библиотекой в некоторых читалках) и под нужный язык и открыть его в этой читалке. И есть kiwix-server, который можно развернуть, например, на NAS и с помощью которого можно через веб-браузер работать с этими оффлайн-копиями:

docker run -d -v /storage/info/zim/:/data -p 8080:8080 --restart unless-stopped --name kiwix-server jamescherti/kiwix-serve *.zim

В этой копии «Википедии» не будет истории правок и всякого такого. Это просто слепок проекта на определенную дату, позволяющий читать его без доступа в Интернет. Поэтому maxi-версия (да, там есть разные варианты, с полным и сокращенным набором статей, с картинками и без) английской «Википедии» весит всего 116 ГБ, еще 39 и 27 займут русская и украинская. В общем, на копеечной флешке сейчас на планшете легко и просто держать огромную базу знаний.

И это круто.

Update: конкретно от Wikimedia можно загрузить ZIM-файлы по этой ссылке.

Rock’n’Roll Racing и апгрейд Air Blade

Про игры я тут еще вроде не писал 🙂

Спустя более, чем 2 десятка лет, как я активно играл в RRR на Sega Mega Drive 2 — открыл для себя, что при апгрейде бампера в Air Blade (машинка, которую стоит сразу же покупать на замену дефолтным, как только появятся 70к) снижается мощность ракет.

Играл на эмуляторе (купил даже на Али джойстик под что-то этакое), прошел целиком все на Warrior и с Air Blade, у которого из апгрейдов были только ракеты/мины/ускорители: сначала держал деньги ради покупки Havac в нужный момент (кстати, после 1 млн. $ счетчик переполняется, но «внутри» значение остается верным), потом был спортивный интерес уже доиграть так.

Потом решил ради фана поиграть с последнего сохранения (Slash, division A), но уже проапгрейдившись. Начинаю — а противники-то выносятся не так активно. Проверил — да, без апгрейдов было лучше: 2 ракеты и готово; выпустил полный запас — и на время вокруг тихо. Перебрал по очереди обновленные компоненты — таки бампер. С апгрейдом пропорционально слабеют ракеты, на максимальном уровне уходит (вроде) 4 штуки на противника.

Неожиданно 🙂

Update: проверил изменения при апгрейде бампера (защиты, если быть точным) — меньше потери на минах. Без апгрейда выходит 35% потерь на статичной мине (наезд на 3 мины — и все), с полным апгрейдом — 15-20%.

Мораль — не наезжаем на мины и не пользуемся защитой 🙂

Приручаем кормушку для собаки

А вот, собственно, и то, с чего началось мое близкое знакомство с внутренностями tuya-based-устройств — упомянутая ранее автоматическая кормушка для собаки. По случаю взял в ноябре 2025-го — решил, что может быть полезна в некоторых ситуациях. Выбор пал на такое:

Обошлась со скидками чуть менее 22$ (базовая цена была 25$); старая ссылка нерабочая, но на момент написания подобные варианты попадаются по ценам около 50$.

Проверил — работает. И… сразу разобрал. Как же без переделки под Home Assistant? 🙂

Читать далее Приручаем кормушку для собаки

Multips в Munin

Решил тут сделать стату в Munin для каждого PHP-FPM-пула в отдельности, на глаза попался (ок, гуглоИИ подсказал) плагин multips. Плагин в итоге не подошел (толку мне с простого числа процессов, я хочу подробную стату, как в proc), но суть не в том. В процессе разбора того, как заставить эту хрень работать — дошел до основного кода за неизвестным авторством:

for name in $names; do
***
PGREP=$(command -v pgrep)
if [ -n "$PGREP" ] && [ -x "$PGREP" ]; then
"$PGREP" -f -l "$name" | grep "$REGEX" | wc -l
***
else
ps auxwww | grep "$REGEX" | grep -v grep | wc -l
fi
done

Т.е., если у нас в системе есть pgrep — значит, имя в конфиге должно строго соответствовать процессу, который ищешь. А если нет — ты волен называть сущность в конфиге как хочешь.

В итоге конфиг вида:

[multips]
env.names jw_wiki
env.jw_wiki php-fpm.*jabberworld.info

не работал прежде всего из-за наличия pgrep.

А всего-то надо было сделать что-то в стиле "$PGREP" -a -c -f -l "$REGEX"

Исследуем TOMZN TOMPD-63SW

С этого модуля и начиналось мое знакомство с компонентом tuya в ESP Home, но что-то пошло не так, поэтому для более разностороннего опыта и начал переделывать DGC-63T. Основные моменты по работе с компонентом уже расписал в той статье, так что в этой — только описание datapoint’ов и результатов переделки.

Читать далее Исследуем TOMZN TOMPD-63SW

Переделываем DiyGo DGC-63T. Исследуем Tuya.

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

Читать далее Переделываем DiyGo DGC-63T. Исследуем Tuya.

Заметки обо всем