Обработка казахский букв в PostgreSQL

С хранением казахских символов в PostgreSQL нет проблем, но могут возникнуть проблемы с сортировкой данных и некоторыми строковыми функциями, например, lower и upper, которые не смогут преобразовать символы в нужный регистр. Для решения проблемы можно поменять для колонки правила сортировки и чувствительности к регистру. Если таблица не создана, можно сразу задать нужную настройку для столбца:

Факторизация числа на Java

Факторизация — это разложение числа на произведение простых чисел. Например: число 100 разлагается на 2 * 2 * 5 * 5. Ниже приведена реализация на Java с алгоритмической сложностью sqrt(N). Мы перебираем делители он 2 до квадратного корня из факторизируемого числа, и делим число на делитель, пока это возможно. В конце остается либо 1, либо
Читать далее…

Коллекция утилитарных классов Anar

Описание коллекции на GitHub: https://github.com/Nyquest/anar

Структура данных PackedPerms

Мотивация При создании информационных систем с микросервисной архитектурой, желательно, чтобы аутентификация и авторизация пользователей была без сессии (без хранения состояния). Использование JWT-токенов — неплохое решение. Токен может содержать имя пользователя, различные сведения о нем, в т.ч. числе его права и полномочия. Но есть один неприятный момент. Если в нашей системе очень много прав, например, несколько
Читать далее…

Эффективность фильтра Блума в памяти

В предыдущей статье был рассмотрен расчет оптимальных параметров фильтра Блума и его реализация. Со статьей можно ознакомиться здесь: Фильтр Блума Для оценки эффективности будем рассматривать сколько оперативной памяти потребляют различные структуры данных в Java 11. Для примера будем размещать в памяти информацию о 20 миллионах ИИН и делать наблюдения через VisualVM. ИИН представляет собой строку
Читать далее…

Фильтр Блума на Java

Давно хотелось попробовать реализовать фильтр Блума (хотя я его называют фильтром Блюма). Фильтр Блума — это вероятностная структура данных, позволяющая проверить принадлежность элемента к множеству. Данная структура может точно ответить на запрос об отсутствии элемента в множестве, но может ошибаться с заданной нами вероятностью о наличии элемента во множестве. В некоторых задачах фильтр Блума очень
Читать далее…

Теги: , ,

Установка программ на MacBook Pro 16» (Apple M1)

1-го марта решил купил себе Apple MacBook Pro 16 MK1E3, пока курс доллара сильно не поднялся. Знаю, что есть трудности с установкой приграмм из-за M1 В этом блоге буду перечислять все, что устанавливал и какие проблемы были. Приложения устанавливал в описанной ниже последовательности. Установка Firefox с официального сайта без проблем. Установка Google Chrome с официального
Читать далее…

Маршрутизация Logstash

Предположим, что мы используем для сбора логов стек ELK (Elasticsearch-Logstash-Kibana). Логи приложений можно собирать как в один индекс, так и отдельные индексы для каждого из приложений. В этом блоге рассмотрим маршрутизацию записей логов в разные индексы. Для доставки файлов в Logstash будем использовать Filebeat Рассмотрим пример маркирования логов системной утилитой auditd маркером «auditd: true» и
Читать далее…

Аудит PostgreSQL

Несколько лет назад по требованию технического задания необходимо было сделать аудит базы данных. База данных была на PostgreSQL, и особого выбора, кроме как pgAudit, не было. Приступим к установке и настройке pgAudit. Расширение pgAudit инсталируется из исходных кодов. Установка Склонируйте официальный репозиторий: git clone https://github.com/pgaudit/pgaudit.git Открываем созданную директорию pgaudit: cd pgaudit Переключите ветку на необходимый
Читать далее…

Доступ к Kafka из/вне Docker контейнеров

При локальной разработке с Kafka могут возникнуть проблемы с доступом, если она запущена в Docker контейнере, и требуется обращение как изнутри Docker так и снаружи. В Kafka запись и чтение осуществляется в ноду лидера для заданной партиции. Клиент может обратиться к любому узлу Kafka, чтобы узнать по какому адресу нужно делать операцию записи/чтения, даже если
Читать далее…