Архив рубрики: Полезности

«С рождения Бобби пай-мальчиком был»

Увлёкся азартной игрой с государством корпорацией.

Успел выиграть каплю знания — PostgreSQL умеет нативно оперировать множествами, в т.ч. — символов. И получается очень удобно, когда словарный запас иссяк:

select word
from public.nouns
where
char_length(word) = 5
and string_to_array(word, null) @> '{с,о}'
and not string_to_array(word, null) && '{а,к,ц,и,я}'
and word like '__ь'
Читать далее «С рождения Бобби пай-мальчиком был»

План — закон!

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

И, в том числе:

  • Поддержки работы со множеством узлов в кластере;
  • Поддержки персистентности заданий;
  • Простоты использования;
  • Простоты развертывания.

Конечно — open source с подходящей лицензией. И spring-boot-starter в комплекте — для максимального удовольствия.

Читать далее План — закон!

Перекладываешь жысоны? Пссст, друг, смотри сюда!

Не знаю, как я раньше жил без этих плагинов…

Да нормально жил, но утомлялся точно больше. Не скажу даже вот так сразу, какой из них полезней. Остановлюсь на каждом чуть подробней.

Читать далее Перекладываешь жысоны? Пссст, друг, смотри сюда!

Получение класса «Enum с параметром» по значению параметра

Частенько в коде встречаются перечисления, дополнительно хранящие некие значения (в виде private final поля обычно).

Чтобы в дальнейшем можно было, например, при сериализации в json это значение подставлять автоматом (@JsonValue у Jackson). Тогда возникает обычно и обратная задача — десериализовать (распарсить) значение обратно в Enum (@JsonCreator у Jackson).

Вот мне и надоело копипастить туда-сюда все эти методы (сериализации/десериализации) между классами Enum. Решил сделать один раз утилитный метод и в проекте им пользоваться. Благо, время позволило.

Читать далее Получение класса «Enum с параметром» по значению параметра

LibreOffice Calc — трюки работы с таблицей

Накопилось ещё некоторое количество «приёмчиков» работы с Open/Libre Office. Если предыдущая заметка на эту тему была посвящена LO Writer, то на сей раз — «подопытным» выступает пакет Calc (электронные таблицы).

Для затравки — простое, но часто нужное действие — перемещение строк и столбцов таблицы.

Читать далее LibreOffice Calc — трюки работы с таблицей

Git config с разделением по проектам

Возникла потребность настраивать по-разному конфиги гита для разных проектов (email контактный поменять, хотя бы, или хук на прогон тестов повесить).

Ну и понятно, что как-то эти конфиги подкладывать туда-сюда — не слишком увлекательно. К счастью, в свежих версиях гита — есть инклюды. В том числе — по условию — includeIf. Вот ими и стоит воспользоваться.

Читать далее Git config с разделением по проектам

CloudFlare WARP + WireGuard на роутере Keenetic

По аналогии с настройкой доступа к Cloudflare WARP через WireGuard в Linux — решил, заодно уж, поднять VPN и на роутере.

В наличии — Keenetic Omni KN-1410 с KeeneticOS версии 3.7.4 (WireGuard есть и в более ранних версиях). Насколько я понимаю, политика Keenetic такова, что функциональность прошивок у них идентична для разных моделей роутеров (не зависит от «класса» устройства). Так что — должно работать не только на Omni.

Читать далее CloudFlare WARP + WireGuard на роутере Keenetic

Huginn, Yahoo Pipes, Habr и фид ленты комментариев

Huginn Agent event flow

Понадобилось мне получать с Хабра ленту комментариев пользователя в каком-то удобном виде, чтобы не заходить периодически на сайт для проверки её обновления. Очевидное решение — RSS.

В базе Хабр позволяет подписаться на профиль пользователя, или, по RSS, на ленту его публикаций. А вот для комментариев подобной возможности не предусмотрено (сама лента комментариев имеет вид https://habr.com/ru/users/user-name/comments/).

Первая мысль — воспользоваться Yahoo Pipes, ведь когда-то уже использовал его для решения подобных задач. Увы — оказалось, что сервис давно закрыт. Помолчим минуту (он был хорош!) и рассмотрим доступные альтернативы.

Читать далее Huginn, Yahoo Pipes, Habr и фид ленты комментариев

Bshellz shell autorenew — IRC-perl-скрипт для обновления аккаунта в Bshellz

Как-то я писал про бесплатный linux shell от провайдера Bshellz в заметке Бесплатный Linux-shell с Tmux на борту. Там же был приведён способ автоматического продления аккаунта — путём отправки (по расписанию) служебного сообщения боту Beschbot с помощью имеющегося на самом хостинге IRC-клиента irssi. Время показало, что способ, как и следовало ожидать, не лишён недостатков. А именно — периодически сервер Bshellz перезагружается, после чего настройка расписания в irssi слетает. Также — несколько раз наблюдались проблемы с подключением клиента к сети Freenode IRC. В результате возникло решение зарезервировать автообновление аккаунта в Bshellz путём использования дополнительного внешнего скрипта, также запускающегося по расписанию (раз в день в произвольное время, на домашней машине).
Читать далее Bshellz shell autorenew — IRC-perl-скрипт для обновления аккаунта в Bshellz