Степени двойки

Список степени двойки. Степени двойки позволяют оценить алгоритмы, работающие за логарифмическое время. Степень двойки (2x) Значение 01 12 24 38 416 532 664 7128 8256 9512 101 024 112 048 124 096 138 192 1416 384 1532 768 1665 536 17131 072 18262 144 19524 288 201 048 576 212 097 152 224 194 304
Читать далее…

Резервное копирование в Vertica

В Vertica мы храним аналитические данные, которые в принципе можно не бэкапировать, т.к. объем данных — не велик, и можно перезалить в любой момент. Но это касается лишь новых данных, есть часть данных из старых источников: Oracle, Excel и текстовых документов, которые не желательно перезаливать. Лучше восстановить данные из бэкапа, чем собирать данные из старых
Читать далее…

Теги: , , ,

Профилирование CPU с помощью Flame Graph

Flame Graph позволяет визуально увидеть чем были заняты процессоры в течении определенного периода. Снять Flame Graph можно по классической инструкции: https://github.com/BrendanGregg/FlameGraph, что требует некоторых манипуляций. Но можно пойти более легким путем, используя async-profiler: Скачиваем стабильный релиз в виде архива Распаковываем архив Выполняем команду: ./profiler.sh -d 30 -f /tmp/flamegraph.svg Где <PID> — это идентификатор Java-процесса. -d
Читать далее…

Алгоритм Ахо-Корасик на Java

Пример реализации алгоритма Ахо-Корасика на Java. При реализации использовался следующий материал: https://e-maxx.ru/algo/aho_corasick https://neerc.ifmo.ru/wiki/index.php?title=%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%90%D1%85%D0%BE-%D0%9A%D0%BE%D1%80%D0%B0%D1%81%D0%B8%D0%BA Данный алгоритм был опробован на задаче: https://www.hackerrank.com/challenges/determining-dna-health/problem Пример использования: List entryList = new ArrayList(); List list = Arrays.asList(«b», «c», «aa», «d», «b»); for (String s : list) { AhoCorasick.Entry entry = new AhoCorasick.Entry(); entry.setValue(s); entryList.add(entry); } AhoCorasick ahoCorasick = new AhoCorasick(entryList, 26);
Читать далее…

Sublime gcc docker

При разработке на C++ может возникнуть ситуация, когда ваша ОС не подходит. Например, в моем случае у меня MacBook, но нужно использовать epoll, который не подджерживается в Mac OS. Можно выйти из ситуации следующим путем, если вы пишите и билдите код в редакторе Sublime. В Sublime выберите Tools > Build System > New Build System…
Читать далее…

Понимание OpenID Connect (OIDC)

Превосходная статья по пониманию OpenID Connect: https://habr.com/ru/post/422765/ В данной статье в пункте 6 указано, что хранение токенов (access_token и refresh_token) в браузере не очень секьюрно, лучше это делать на уровне бэкенда. Но это требует сессию, к которой будут крепится токены. Сессия хранится в Cookie, Cookie передаются во всех запросах к одному хосту, даже с других
Читать далее…

Понимание Kerberos

Отличное видео-объяснение протокола Kerberos https://www.youtube.com/watch?v=_44CHD3Vx-0 (Продолжительность: 6 минут) Цербер (Кербер) — трехголовый пес. Примечательно, что протокол построен на симметричной криптографии с использованием трех различных закрытых ключей.

Теги:

Отличный курс по Active Directory

Всегда казалось, что Active Directory — это что-то супер сложное для понимания. Но найдя понятный и простой курс по AD, уже так не думаю 🙂 Курс состоит всего из 4 модулей общей продолжительностью чуть больше часа. Название модуля Ссылка на youtube Продолжительность Введение в Active Directory https://www.youtube.com/watch?v=fojHlsyGQqA 20 мин. Создание первого домена https://www.youtube.com/watch?v=rJJKYe5VECk 10 мин.
Читать далее…

Исследование Keycloak

Если у вас уже установлен keycloak и настроен realm, то запросить open-id конфигурацию данного realm можно командой: curl http://{KEYCLOAK_HOST}:{KEYCLOAK_PORT}/auth/realms/{YOUR_REALM}/.well-known/openid-configuration | jq ‘.’ Результат будет представлен в виде JSON. Чтобы удобочитаемо отформатировать JSON, можно воспользоваться утилитой jq (https://stedolan.github.io/jq/), которую нужно будет дополнительно установить. Небольшое описание полученных данных issuer — базовый адрес realm’а; authorization_endpoint — конечная точка
Читать далее…

Теги: ,

Highload табличка

Часто возникает необходимость оценки скорости работы системы или какой-нибудь утилитки. Приходится брать калькулятор делить/умножать на секунды, минуты, часы и дни. Расчеты получаются, конечно же, приблизительные. Поэтому хотелось бы иметь примерную табличку, чтобы реже пользоваться калькулятором. Кол-во операций, транзакций и т.д. За 24 часа (86 400 секунд) За 10 часов (36 000 секунд) За 10 часов
Читать далее…