Pull to refresh
4
0
Send message

Дерево отрезков

Reading time21 min
Views6.4K

Всем привет. В этой статье я расскажу про дерево отрезков. Очень мощной структуры данных, которая позволяет делать много разных операций над массивом чисел. Я постараюсь по полочкам разложить эту тему и объяснить возможности дерева отрезков. Также я разберу несколько нетривиальных задач на дерево отрезков. Помимо самого дерева отрезков я расскажу и про связанные темы: дерево Фенвика и разреженные таблицы.

Читать далее
Total votes 22: ↑26 and ↓-4+30
Comments10

Поднимаем кластер PostgreSQL в Docker и Testcontainers

Level of difficultyMedium
Reading time8 min
Views20K

Ранее я рассказывал о том, как запустить PostgreSQL в Docker. Тогда речь шла об использовании «ванильных» образов Postgres и поднятии одного хоста. В большинстве случаев этого достаточно как для тестов, так и для экспериментов, но нужно понимать, что в промышленной эксплуатации чаще всего используются высокодоступные (отказоустойчивые, кластеризованные) конфигурации PostgreSQL.

Сегодня я покажу, как запустить уже целый кластер PostgreSQL в Docker, а также в тестах через Testcontainers, и как вручную инициировать смену мастер-хоста.

Читать далее
Total votes 17: ↑17 and ↓0+17
Comments1

Jackett + Synology Download Station

Level of difficultyEasy
Reading time2 min
Views5.2K

Есть желание добавить в Synology Download Station возможность искать по 613 торрент трекерам? Хочется видеть, какие именно торренты будут загружены? Хочется чтобы оно работало и в мобильном приложении?

Тогда прошу под кат!
Total votes 7: ↑6 and ↓1+5
Comments14

Обозреваем и практикуем популярные OSINT инструменты

Reading time4 min
Views13K

Введение

Рад вновь приветствовать читателей в своей любимой рубрике "ШХ" что является сокращением от "Шерлок Холмс" и разумеется серия таких статей напрямую относится к OSINT. Сегодня на практике попробуем некоторые инструменты и попробуем узнать больше о человеке исходя из его никнейма. В качестве цели я возьму одно из своих имён "VI.......TE".

Дисклеймер: Все данные, предоставленные в данной статье, взяты из открытых источников, не призывают к действию и являются только лишь данными для ознакомления, и изучения механизмов используемых технологий.

Читать далее
Total votes 20: ↑18.5 and ↓1.5+17
Comments1

Где открыть магазин? Путешествие в геопространственный анализ и обратно

Level of difficultyEasy
Reading time21 min
Views2.9K

В статье расскажу поподробнее про оценку локаций для бизнеса.

Проблема классическая: ищем место для открытия нового магазина/ресторана/пиццерии.

Сразу скажу, что при помощи гео я решал очень узкий набор задач:

Оценить существующие локации с т.з. плотности населения, конкуренции, объема рынка. Найти новые точки для открытия или переезда бизнеса;

Использовать признаки близости покупателя к бизнесу/конкурентам в клиентской аналитике для предсказаний оттока и откликов на рассылки/оффлайн рекламу;

Сегодня расскажу поподробнее про оценку локаций. Все работы я производил на языке R.

Читать далее
Total votes 12: ↑12 and ↓0+12
Comments6

Модальный метод синтеза в MATLAB

Level of difficultyEasy
Reading time2 min
Views1.2K

Частым заданием в различных курсах по теории автоматического управления является нахождение матрицы K для модального управления системой вида dx/dt = Ax+Bu y = Cx.

Такой тип задач легко решается в среде MATLAB.

Сперва наперво требуется задать нашу систему. Для примера возьмем типовую модель электродвигателя:

Читать далее
Total votes 6: ↑5 and ↓1+4
Comments3

Как найти все корни системы 2x2?

Level of difficultyMedium
Reading time3 min
Views2.4K

Рассмотрим систему из двух уравнений F_1(x,y) =0,\;F_2(x,y)=0, обладающую свойством покоординатной монотонности: с ростом x функции F_1,F_2 также растут. Задача состоит в нахождении всех корней системы.

Читать далее
Total votes 5: ↑4 and ↓1+3
Comments0

Почему нельзя пить горячий тосол из чайника?

Level of difficultyEasy
Reading time9 min
Views61K

Чтобы на Хабр не писали чушь, его надо продезинфицировать. Чтобы быстрее продезинфицировать — пожертвовать свободным вечером и написать статью по горячим как вода следам.

Как вы уже догадались, речь пойдет о статье «Можно ли пить горячую воду из крана и брать ее, чтобы вскипятить.». Хорошо, что утром, когда я прочел эту статью, я сидел на специальном разработанном Илоном Маском стартовом столе из жаропрочной керамики, снабженным просторной газоотводной камерой и затопленным водой каналом, эффективно нейтрализующим открытое пламя. Потому что правда в этой статье по сути только одна — в одном из вариантов системы горячего водоснабжения теплоноситель содержит антикоррозионные присадки, которые не очень хорошо пить в случае их попадания в домовую магистраль.

UPD: по результатам обсуждения в комментариях выявлен кейс, когда автор той статьи прав: если в многоквартирном доме существует собственная система подогрева на техническом этаже, и УК не следит добросовестно за ее состоянием. Что касается центрального отопления от ТЭЦ, я настаиваю на своем видении событий.

Читать далее
Total votes 311: ↑297 and ↓14+283
Comments231

Kafka Connect на примере Debezium PostgresConnector

Level of difficultyMedium
Reading time19 min
Views9.1K

В предыдущей статье про микросервисную архитектуру на основе событий с использованием Kafka Streams достаточно поверхностно был упомянут io.confluent.connect.jdbc.JdbcSourceConnector, который использовался для вычитания данных из SQLite и отправки их в топик Kafka. Сейчас я бы хотел более подробно разобрать технологию Kafka Connect на примере io.debezium.connector.postgresql.PostgresConnector. Как и в прошлый раз, я реализовал небольшой демо проект, код которого доступен на GitHub. В проекте кода совсем немного, однако чтобы понять все настройки, примененные в коннекторе, придется достаточно подробно пройтись по теоретической части. Итак, приступим.

Читать далее
Total votes 4: ↑4 and ↓0+4
Comments2

Делаем дашборд для логов используя Promtail Loki Grafana

Reading time8 min
Views15K

Как используя связку Promtail + Loki + Grafana настроить сбор логов из текстового файла и сделать простой, но функциональный дашборд.

Читать далее
Total votes 4: ↑4 and ↓0+4
Comments10

Это мы пишем и обслуживаем банковский процессинг, нам надо серьёзно поговорить

Reading time11 min
Views21K
В марте-22 внезапно отключились Visa и MasterCard. Это посредники передачи информации между разными банками. По сути, системы обеспечивают маршрутизацию сообщений между банками и позволяют вам использовать карту любого банка с банкоматом или платёжным терминалом другого, а заодно проверяют операции на фрод и делают ещё много чего.

Потом было 2–3 дня, когда мы не спали. Мы — это разработчики компании Мультикарты (входит в Холдинг T1) — одного из самых крупных процессингов в России, да и в мире, пожалуй.

Потом система восстановилась (не сама собой, конечно), и конечные пользователи (вы) практически не почувствовали проблем с сервисом.

Всё потому, что в России с точки зрения банкинга всё очень хорошо, и было бы странно оказаться без сапог в этой ситуации.

Мы с коллегами очень хотим начать рассказывать про практические случаи вроде того самого момента переключения систем, но боимся, что сначала нужно вообще рассказать, что такое процессинг и как он внутри устроен.

Поэтому ниже — общий рассказ про принципы процессинга. Пойдёмте ковыряться под капотом.

image
Читать дальше →
Total votes 88: ↑81 and ↓7+74
Comments37

Алгебра совокупностей Брусенцова и не только

Level of difficultyMedium
Reading time39 min
Views5.8K

Все, кто когда-либо интересовались трёхзначной логикой, троичной системой счисления или архитектурой троичных компьютеров, рано или поздно натыкались на труды Брусенцова Николая Петровича, в особенности 3 его самые известные книги:

1) Брусенцов Н.П. Начала информатики, 1994.

2) Брусенцов Н.П. Искусство достоверного рассуждения. Неформальная реконструкция аристотелевой силогистики и булевой математики мысли, 1998.

3) Брусенцов Н.П. Блуждание в трёх соснах (Приключения диалектики в информатике), 2000.

Для тех, кто не в курсе, Брусенцов Николай Петрович - главный конструктор первой в мире и Советском Союзе троичной ЭВМ "Сетунь". Об этом хорошем человеке можно найти достаточно много информации в открытых источниках. Но сейчас речь не о нём, а о разработанной им алгебре совокупностей (алгебре дизъюнктов), которая фигурирует в качестве фундамента во всех 3-х упомянутых выше книгах. К слову сказать, сами книги не являются учебниками по чистой математике или информатике. Они освещают проблемы злоупотребления формализмом в современной математической логике, а также содержат пути к возрождению и развитию аристотелевой силогистики. Мотивацией к написанию данной статьи послужило то, что каждую книгу пришлось прочитать раза по три, прежде чем в голове сложилась более или менее цельная картина. Этому также поспособствовало обилие терминологии, более присущей философским трактатам, нежели учебникам по математике. Поэтому цель данной статьи - получить представление об этой алгебре и облегчить чтение вышеуказанных книг. Статья носит обзорный характер, знакомит читателя с некоторыми понятиями (акценты расставлены жирным шрифтом) и пытается ответить на вопросы, неосвещённые в книгах явно.

Читать далее
Total votes 24: ↑23 and ↓1+22
Comments31

Безопасный Zookeeper: SASL with Digest-MD5

Level of difficultyMedium
Reading time20 min
Views1.7K

Привет! Столкнулся с тем, что быстро не нашел простой инструкции, как с использованием SSL и SASL настроить безопасный кластер из нескольких Linux узлов Zookeeper, и решил это исправить.

В этой статье поговорим о том, как:

Настроить Zookeeper в кластере из трех узлов без шифрования (Plain);

Добавить шифрование во внутрикластерное взаимодействие (Quorum TLS);

Создать сертификаты для подключения к узлам Zookeeper клиентов (Server TLS);

Создать сертификаты для подключения клиентов к узлам (Client TLS);

Добавить авторизацию в шифрованный кластер (SASL with MD5);

Показать на примере, как работают ACL, посмотреть, чем отличается суперпользователь super от всех остальных (как работает ACL в действии).

Читать далее
Total votes 11: ↑10 and ↓1+9
Comments0

Введение в модулярную арифметику

Reading time6 min
Views73K
В обычной жизни мы обычно пользуемся позиционной системой счисления. В позиционной системе счисления значение каждого числового знака (цифры) в записи числа зависит от его позиции (разряда) [1]. Однако существуют и так называемые «непозиционные системы счисления», к одной из которых относится «система остаточных классов» (СОК) (или в оригинале Residue Number System (RNS)), являющаяся основой модулярной арифметики. Модулярная арифметика базируется на «Китайской теореме об остатках» [2], которая для нашего случая звучит следующим образом:
Для любой системы взаимно простых чисел p1, … pn, любое число X из диапазона [0; M), где M = p1*p2*…*pn взаимооднозначно представимо в виде вектора (a1, a2, …, an), где ai = X%pi (здесь и далее «%» — операция взятия остатка от целочисленного деления X на pi).
p1, … pn – модули системы
a1, a2, …, an – остатки (вычеты) числа по заданной системе модулей

Читать дальше →
Total votes 85: ↑80 and ↓5+75
Comments39

Синхронизация времени в HFT (High-frequency trading) мире

Level of difficultyMedium
Reading time6 min
Views28K

Точное определение времени и его синхронизация чрезвычайно важна в мире высокочастотной торговли.

Конечно же, синхронизация времени важна в общей инфраструктуре компании, думаю многие из вас встречались хотя бы раз с проблемами, вызванными некорректным временем на сервере, выполняющим ту или иную роль. Например, возможно некорректное формирование бэкапов, задержка в обработке запросов, некорректная интерпретация валидности сертификатов, ошибки аутентификации и авторизации и т. д. Тут на помощь придет NTP (Network Time Protocol) протокол, который широко распространен повсеместно, а далеко не только в HFT отрасли. Наилучшая точность синхронизации времени с помощью NTP будет порядка 1мс и то, в случае если NTP сервер находится в локальной сети с вашим сервером, а также оптимально настроен, например, дает опрашивать себя достаточно часто. Для среднего случая, когда NTP сервер будет использоваться из интернета, вы сможете добиться 10-100 мс точности, а если сетевой путь до источника времени будет совсем не идеален (зачастую колокация биржи может предоставлять только IPSec туннель в качестве доступа до вашей биржевой инфраструктуры), то и сотен миллисекунд.

Решение же торгового алгоритма об отправке заявки на биржу может и не опираться на абсолютное время.

Читать далее
Total votes 7: ↑7 and ↓0+7
Comments4

Использование Spring Cloud Gateway в качестве OAuth2 клиента  и KeyCloak для защиты служб

Reading time12 min
Views9.9K

Привет, Хабр!

Я, начинающий Java-разработчик, студент 3 курса, и это - моя первая статья здесь. Я не буду заострять внимание на теории, так как в интернете достаточно статей на эту тему, а сосредоточусь на практике и предложу свое решение. В процессе мы создадим несколько служб, а именно...

Читать далее
Total votes 9: ↑7 and ↓2+5
Comments4

KeyCloak и микро-сервисы. Как облегчить жизнь программисту

Level of difficultyMedium
Reading time12 min
Views18K

Привет! Если ты так же как и я решил использовать keycloak для аутентификации и авторизации в своей микро‑сервисной архитектуре, то я расскажу вам как правильно настроить сам keycloak, его рабочую среду а в конце мы подключим Active Directory к нашему приложению.

Читать далее
Total votes 6: ↑5 and ↓1+4
Comments12

Пишем плагин для IntelliJ IDEA. Ускоряем написание тестов на DTO

Reading time19 min
Views7.2K

Когда пишешь тесты на обширную модель (DTO), ловишь себя на мысли, что сосредоточен не на тестовых данных, а на том, как ловчее избавить себя от написания boilerplate-кода.

Как это сделать? Поискать готовое решение (плагин).

А если его нет? Тогда – написать плагин.

А если не умеешь? Стоит хотя бы начать :)

Читать далее
Total votes 14: ↑14 and ↓0+14
Comments14

Что будет, если от разработчиков не отстать: умирающая команда

Reading time11 min
Views60K
Мне досталась команда, которая болела. Все понимали, что происходит, никому не нравилось, что творится в команде, и традиционно менеджеры такие команды сильно режут. Но здесь были шансы вылечить и без ампутаций.


Источник

15 человек, из них — один руководитель проекта, три фронта, два бэка, три аналитика, девопс. Симптомы обычные: процессы всем не нравятся, соседи — козлы, потому что не то и не так делают, а как нужно — не знают, ответственности ни на ком толком нет ни за что.

Вроде бы когда-то это был настроенный конвейер, но теперь его куски — как будто в разных зданиях. Особо не заботятся о том, что было «до» и что будет «после». А если всё падает, то люди поднимают руки: «Я не виноват. Я не знаю, как поднять».

Проект — внутренний банка, он нужен для улучшения работы внутри компании. Традиционных решений в кровавом энерпрайзе — два: нанять новую команду (но вгружать мидла на проект такой сложности — три-четыре месяца) или же оставить проект на поддержке, через два года найти ему замену, а команду тихо похоронить в подвале. Точнее, не так: те, кто плывет по течению и не заботится о карьере, остаются тихо сидеть «на пенсии», то есть в бесконечной поддержке проекта. А самые проактивные тут же перейдут в другие команды или другие компании.

Почему процессы разваливались? На первый взгляд, потому, что была куча ненужных совещаний и встреч с теми, кого разработчики вообще не должны были видеть. Плюс местами странноватые KPI. Как это ни странно, но если психологически давить на разработчика пару лет, то ничем хорошим это не закончится. Руководство подразделения дало мне карт-бланш на исправления, и я начал разбираться, что же случилось.
Читать дальше →
Total votes 213: ↑209 and ↓4+205
Comments74

Где скачать научную статью легко и доступно?

Reading time1 min
Views75K

Некоторые издательства журналов предлагают доступ к научным статьям сразу после публикации, а некоторые через какое-то время.

Однако стоимость одной статьи от платных издателей может составлять 150 долларов, что не так уж и мало по сравнению с размером стипендии студента.

Здесь собраны совершенно бесплатные ресурсы, где вы можете найти интересующую Вас научную статью.

Читать далее
Total votes 90: ↑90 and ↓0+90
Comments26

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity