Latest

Бесплатный программист от Atlassian

Вчера попробовал acli rovodev https://developer.atlassian.com/cloud/acli/guides/install-linux/. Плюсы: 1. Бесплатный пока бета 2. Суточный лимит 20 миллионов токенов и много запросов 3. Прилежный 4. За час он создал реактивный гейтвей https://github.com/batsura-sa/reactive-gateway-project Минусы: 1. Требует VPN

By Sergei Batsura

Распределенные блокировки в PostgreSQL

Мне известны следующие варианты: 1. Advisory lock - придумываем константу и используем pg_advisory_lock и pg_try_advisory_lock 2. Создаем таблицу блокировок и в этой таблице создаем запись. Если запись создана, то блокировка успешна. Для удаления блокировки удаляем запись. 3. Можно переиспользовать shedlock и соорудить что-то типа https:

By Sergei Batsura

Помним про оверхед, при использовании JSON вместо PROTOBUF

В 2024 году Андрей Комягин в докладе "Глубокое погружение в архитектуру Kafka" привел такие цифры для 100 атрибутов в сообщении: 1. PROTOBUF в среднем компактнее в 2.5 раза 2. Скорость сериализация PROTOBUF выше в 2 раза 3. Скорость десериализации PROTOBUF выше в 6 раз! 4. Производительность сериализации/

By Sergei Batsura

Можно ли использовать ThreadLocal контейнер с VirtualThreads? Да, можно!

Для ответа на этот вопрос решил написать тесты https://github.com/batsura-sa/java-samples/tree/main/thread-local-in-threads/src/test/java/org/example Кратко резюме такое в Java 21 ThreadLocal с VirtualThread работают, что в общем-то и указано в https://openjdk.org/jeps/444 , однако, поскольку виртуальных потоков может быть очень много,

By Sergei Batsura

Как массово поменять местами аргументы методов в Idea

Заметил, что в одном из сервисов перепутаны местами аргументы, например, в коде прописано Assertions.assertEquals(order.getAwaitingActivation(), true), хотя по сигнатуре метода должно быть наоборот assertEquals(Object expected, Object actual), то есть должно быть Assertions.assertEquals(true, order.getAwaitingActivation()). Так как мест, где нужно сделать замену больше 100, решил сделать

By Sergei Batsura