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

Да нормально жил, но утомлялся точно больше. Не скажу даже вот так сразу, какой из них полезней. Остановлюсь на каждом чуть подробней.
Читать далее Перекладываешь жысоны? Пссст, друг, смотри сюда!Не знаю, как я раньше жил без этих плагинов…
Да нормально жил, но утомлялся точно больше. Не скажу даже вот так сразу, какой из них полезней. Остановлюсь на каждом чуть подробней.
Читать далее Перекладываешь жысоны? Пссст, друг, смотри сюда!Есть у меня такой pre-push
хук – автоматом прогоняет тесты локально, через maven
. Подключается по необходимости через отдельные git конфиги для проектов.
Очень легко и удобно оказалось в Докере (compose) связывать сети. Раньше сервисы обычно пихал в один compose-файл (или, точнее, лень было разделять специально – как шли “из коробки” – так и запускались).
Но стало неудобно. Совсем неудобно стало, что каждый норовит себе отдельную БД поднять соседним контейнером. И всё равно приходится лезть, и монтирование данных для БД на хостовой ФС прописывать. Ближе к делу:
Читать далее Как связать контейнеры Docker в одну сетьДовелось недавно, оказавшись на задворках Москвы, сходить в любопытный театр (Этнотеатр) на не менее любопытный спектакль – Комедия о Фроле Скобееве.
Современная постановка сделана по пьесе конца XIX века, а та, в свою очередь, написана по произведению века XVII (или начала XVIII, тут мнения расходятся).
Читать далее Преданье старины глубокойЧастенько в коде встречаются перечисления, дополнительно хранящие некие значения (в виде private final
поля обычно).
Чтобы в дальнейшем можно было, например, при сериализации в json это значение подставлять автоматом (@JsonValue
у Jackson). Тогда возникает обычно и обратная задача – десериализовать (распарсить) значение обратно в Enum (@JsonCreator
у Jackson).
Вот мне и надоело копипастить туда-сюда все эти методы (сериализации/десериализации) между классами Enum. Решил сделать один раз утилитный метод и в проекте им пользоваться. Благо, время позволило.
Читать далее Получение класса “Enum с параметром” по значению параметраНакопилось ещё некоторое количество “приёмчиков” работы с Open/Libre Office. Если предыдущая заметка на эту тему была посвящена LO Writer, то на сей раз – “подопытным” выступает пакет Calc (электронные таблицы).
Для затравки – простое, но часто нужное действие – перемещение строк и столбцов таблицы.
Читать далее LibreOffice Calc – трюки работы с таблицейВ силу определённых обстоятельств – периодически стал возникать вопрос, в каких временных рамках я занимался тем или иным проектом. И готового ответа на него у меня не было – как-то не приходило в голову фиксировать подобную информацию.
Но есть же git
– ведь он поможет? Ведь поможет, да?
Решил слегка “причесать” и обобщить свой опыт по этому вопросу. Чтобы удобней было пользоваться, как этакой краткой инструкцией, а не искать разрозненные ответы на SO и т.п.
Задача проста – сделать удобно 🙂
Возникла потребность настраивать по-разному конфиги гита для разных проектов (email контактный поменять, хотя бы, или хук на прогон тестов повесить).
Ну и понятно, что как-то эти конфиги подкладывать туда-сюда – не слишком увлекательно. К счастью, в свежих версиях гита – есть инклюды. В том числе – по условию – includeIf
. Вот ими и стоит воспользоваться.
По аналогии с настройкой доступа к Cloudflare WARP через WireGuard в Linux – решил, заодно уж, поднять VPN и на роутере.
В наличии – Keenetic Omni KN-1410 с KeeneticOS версии 3.7.4 (WireGuard есть и в более ранних версиях). Насколько я понимаю, политика Keenetic такова, что функциональность прошивок у них идентична для разных моделей роутеров (не зависит от “класса” устройства). Так что – должно работать не только на Omni.
Читать далее CloudFlare WARP + WireGuard на роутере Keenetic