Хороший учебник/справочник по базе баз с примерами на актуальных системах. И, сверх того, ещё и с указанием конкретных вендорских названий для реализаций тех или иных аспектов СУБД.
Есть отличный предметный указатель, с которого можно и начать — по нему хорошо прослеживаются релевантные темы и термины, т.е. можно прям «укрупнённо» быстро охватить некую предметную область.
Увлёкся азартной игрой с государством корпорацией.
Успел выиграть каплю знания — 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 в комплекте — для максимального удовольствия.
Частенько в коде встречаются перечисления, дополнительно хранящие некие значения (в виде private final поля обычно).
Чтобы в дальнейшем можно было, например, при сериализации в json это значение подставлять автоматом (@JsonValue у Jackson). Тогда возникает обычно и обратная задача — десериализовать (распарсить) значение обратно в Enum (@JsonCreator у Jackson).
Вот мне и надоело копипастить туда-сюда все эти методы (сериализации/десериализации) между классами Enum. Решил сделать один раз утилитный метод и в проекте им пользоваться. Благо, время позволило.
Накопилось ещё некоторое количество «приёмчиков» работы с Open/Libre Office. Если предыдущая заметка на эту тему была посвящена LO Writer, то на сей раз — «подопытным» выступает пакет Calc (электронные таблицы).
Для затравки — простое, но часто нужное действие — перемещение строк и столбцов таблицы.
Возникла потребность настраивать по-разному конфиги гита для разных проектов (email контактный поменять, хотя бы, или хук на прогон тестов повесить).
Ну и понятно, что как-то эти конфиги подкладывать туда-сюда — не слишком увлекательно. К счастью, в свежих версиях гита — есть инклюды. В том числе — по условию — includeIf. Вот ими и стоит воспользоваться.
В наличии — Keenetic Omni KN-1410 с KeeneticOS версии 3.7.4 (WireGuard есть и в более ранних версиях). Насколько я понимаю, политика Keenetic такова, что функциональность прошивок у них идентична для разных моделей роутеров (не зависит от «класса» устройства). Так что — должно работать не только на Omni.
Понадобилось мне получать с Хабра ленту комментариев пользователя в каком-то удобном виде, чтобы не заходить периодически на сайт для проверки её обновления. Очевидное решение — RSS.
В базе Хабр позволяет подписаться на профиль пользователя, или, по RSS, на ленту его публикаций. А вот для комментариев подобной возможности не предусмотрено (сама лента комментариев имеет вид https://habr.com/ru/users/user-name/comments/).
Первая мысль — воспользоваться Yahoo Pipes, ведь когда-то уже использовал его для решения подобных задач. Увы — оказалось, что сервис давно закрыт. Помолчим минуту (он был хорош!) и рассмотрим доступные альтернативы.