Secure networking. Deep Dive
Глибоке занурення в протоколи TLS/SSL та інфраструктуру відкритих ключів (PKI). Основні поняття, процес встановлення захищеного з'єднання, роль сертифікатів та ланцюжка довіри
Глибоке занурення в протоколи TLS/SSL та інфраструктуру відкритих ключів (PKI). Основні поняття, процес встановлення захищеного з'єднання, роль сертифікатів та ланцюжка довіри
У довгочиті розглядаються поширені помилки при проектуванні REST API та способи їх уникнення: версіонування, використання DTO, підхід CQRS, робота з мікросервісами, та інші практики для підвищення продуктивності, безпеки й зручності API
У перших версіях Java багатопоточність реалізовувалася за допомогою класу Thread, який дозволяв створювати нові потоки. Проте ця модель мала багато недоліків:
Коли ми працюємо з рядками в Java, часто виникає потреба перетворити великі літери на малі. Для цього зазвичай використовують вбудовану функцію Character.toLowerCase(). Але чи знаєте ви, як можна реалізувати це самостійно?
Довгочит висвітлює 10 маловідомих концепцій тестування продуктивності. Описано їхнє значення, причини виникнення, методи вирішення та моніторингу, що допомагає оптимізувати роботу систем.
У сучасних Java-додатках важливо забезпечити не лише високу продуктивність, але й коректне завершення роботи. Тому розглянемо основні потоки JVM, процес graceful shutdown, використання класу Runtime та механізму shutdown hooks для ефективного завершення роботи програм.
Як налаштувати та інтегрувати ELK стек зі Spring Boot застосунком щоб забезпечити централізоване зберігання, аналіз і візуалізацію логів для покращення моніторингу та діагностики.
Доволі детальний огляд аномалій у БД, рівнів ізоляції, які дозволяються уникнути аномалії, та імплементації цих рівнів. Багато використовую джерела та свої коментарі, в кінці декілька чит-шитів.
Хешування паролів - це важливий елемент захисту інформації в сучасних системах. Використання солі в хешуванні додає додатковий рівень безпеки, а алгоритм BCrypt дозволяє забезпечити високу стійкість до атак грубою силою та інших видів атак.
Пост про функціональну залежність в реляційних множинах. Визначення. Повторення значень в атрибуті. Приклад з п'ятьма атрибутами. Тривіальна залежність. Замикання. залежностей та атрибутів. Незвідні множини. Використання
Пост про те, як сервіс надає своєму користувачу гарантії і те, як ці гарантії необхідно формувати.
Стаття про черги в Rabbit. Кворум черги. Raft консенсус алгоритм. Типи конфірмів і ановледжментів. Типи черг. V1 vs V2. Фічі черг. Використання, недоліки та переваги.
Хоча сокет - це один файловий дескриптор, він є двонаправленим каналом комунікації, який використовується для одночасного відправлення і отримання даних. Операційна система та мережеві протоколи забезпечують управління потоками даних, що дозволяє коректно розрізняти дані
Пост про порівняння протоколів у Rabbit. Різні версії Advanced Message Queuing Protocol. Недоліки та переваги, способи використання.
Пост про Spring Statemachine. Глосарій. Моніторинг. Безпека. Детальний розбір прикладу комплексної машини станів.
Сервер в свою чергу повертає відповідь із 101 статус кодом — що так, давай змінимо протокол між тобою і мною. Тепер будемо використовувати вебсокети. Потім, після з’єднання, я розсилаю всім клієнтам інфомацію про нового користуча (і собі також, не робив додаткових перевірок).
Продовження розробки телеграм бота з попередніх частин. Там ми мінімально налаштовували середовище, а зараз детальніше про саму ідею.
В попередній частині я купив сервер, створив телеграм бота та успішно задеплоїв його на віддаленій машині. Але, кому потрібен бот, який не вміє працювати з даними? Тому, поділюсь як я розширив бота та конфігурацію, додавши PostgreSQL.
Ми часто з другом пишемо телеграм ботів для своїх потреб та інколи брейнштормимо різні ідеї для класного проєкту. Декілька днів тому, я задумався про те, щоб взяти хостинг, оскільки Free Tier на AWS закінчився, а платні тарифи там трохи кусаються.
Пост про всі класи, які надає Spring Security для кодування пароля, короткий опис сучасних та застарілих.
Algorithm & system design
Java Software Engineer
Java Software Engineer