Habr.com

Syndicate content Хабр
Все публикации подряд на Хабре
Updated: 4 min 41 sec ago

Как мы разработали свой сервис бронирования и победили гонки за слоты

Tue, 08/25/2026 - 12:00

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

Меня зовут Михаил Емельянов, я ведущий разработчик в НЛМК ИТ. Команда, в которой я состою, занимается разработкой и поддержкой различных корпоративных информационных систем на базе Битрикс24.

Сегодня я хочу поговорить о разработке сервисов бронирования. Они используются повсеместно - от медицинских центров и отелей, до внутренних активностей в компаниях. На старте мы, как и многие, пользовались готовыми решениями. Это позволяло быстро закрыть потребность, но при этом нам осложняли жизнь некоторые системные недостатки:

- Юридические нюансы: обработка персональных данных по требованиям 152‑ФЗ и внутренних политик безопасности. Стороннему сервису не всегда можно передать всё, что нужно, а иногда это прямо запрещено.

- Стоимость: даже одно недельное мероприятие обходилось достаточно дорого.

- Процессные ограничения: неудобно быстро менять расписание «на лету» во время мероприятия, неидеальная логика резервирования времени приводила к редким, но болезненным коллизиям.

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

Читать далее

Анатомия HurriCache: архитектура, lock-free шардирование и сравнение с Redis

Tue, 08/25/2026 - 11:59

Разбор архитектуры HurriCache — распределенного in-memory кэша без персистентности, созданного для ultra-high-load систем с критичными требованиями к p99 latency. В статье разбираем архитектуру узла, работу lock-free Partitioned HashMap, «умный» роутинг на стороне SmartClient и сценарии, где многопоточный C++ движок справляется лучше классического Redis.

Читать далее

Как мы переводили платёжную инфраструктуру банка на российские HSM

Tue, 08/25/2026 - 11:40

Привет, Хабр! Меня зовут Дмитрий Орехов, я руковожу управлением криптографии и обеспечения защиты информации региональной сети ПСБ. В 2022 году компания Thales, производитель платёжных HSM, официально ушла с российского рынка, и наш банк столкнулся с необходимостью импортозамещения этой части критической информационной инфраструктуры. Платёжные HSM (Hardware Security Module) — это такие железки, которые обеспечивают функционирование процессингового центра и криптографическую защиту данных держателя карты и банковских транзакций. 

Нам нужно было перевести платёжную инфраструктуру банка на отечественные HSM, не останавливая сервисы. Расскажу, как мы это сделали и с какими задачами столкнулись по ходу.

Читать далее

Сайты, домены, реклама. Все сроки скоро пройдут, придет пора штрафов и отсутствия клиентов

Tue, 08/25/2026 - 11:36

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

Август для меня традиционно пора проведения аудитов сайтов и кабинетов контекстной рекламы Яндекс.Директ. Поток писем и звонков с вопросами идет волнами.

Что интересно, до сих пор довольно большая часть корпоративных сайтов все еще не соответствуют требованиям Федерального закона от 27.07.2006 № 152-ФЗ «О персональных данных». А подавляющая доля тех, кто работает с контекстной рекламой, не знает о том, что Яндекс включает новые опции и инструменты автоматически, и сильно удивляются, почему проседает поток лидов.

Давайте обсудим, на что нужно обратить внимание.

Читать далее

Как мы настраивали обвязку (harness) под модель: профиль GigaChat для Deep Agents

Tue, 08/25/2026 - 11:00

Привет, Хабр! На связи команда GigaChain. В этой статье мы расскажем, как итеративно настраивали обвязку (harness) Deep Agents под особенности GigaChat: правили промпты и описания инструментов, а часть правил зашивали прямо в код, и как сделали для этого открытый бенчмарк harness-bench-fast, чтобы измерять прогресс. На зафиксированном сете из 391 задачи подключение профиля подняло долю решённых задач с 77,2% до 87,0%, а расход токенов сократило практически вдвое.

Читать далее

NORA: лёгкий artifact registry для Kubernetes с карантином свежих пакетов и блокировкой CVE

Tue, 08/25/2026 - 10:52

Каждый разработчик сталкивался с проблемой хранения артефактов: Docker-образы, npm-пакеты, Maven-артефакты, Python wheels. Вариантов обычно два — использовать публичные реестры (Docker Hub, npmjs.org, PyPI) или поднимать Nexus / Artifactory / Harbor. Публичные реестры ненадёжны из-за rate limit и блокировок. А Nexus и Artifactory — это тяжёлая Java-платформа: JVM, отдельная СУБД (OrientDB/PostgreSQL), 2–4 ГБ RAM уже в простое и десятки минут на старт.

NORA — open-source реестр артефактов на Rust, созданный как прямая альтернатива этим гигантам. Вместо Java-стека — один бинарник < 27 МБ. Вместо 2–4 ГБ RAM — < 50 МБ в простое, т.е. на порядок меньше. Вместо десятков минут на старт — 3 секунды. Внешних зависимостей нет вообще: ни Java 11+, ни отдельной СУБД — метаданные хранятся на файловой системе, а артефакты сразу можно отправлять в S3, чего бесплатные версии Nexus и Artifactory не умеют. При этом поддерживается 15 форматов: Docker, Maven, npm, PyPI, Cargo, Go, Raw, RubyGems, Terraform, Ansible Galaxy, NuGet, Pub (Dart/Flutter), Conan (C/C++), RPM (yum/dnf), Debian/APT. Плюс Helm-чарты через OCI, карантин свежих пакетов (Min Release Age), блокировка уязвимых версий (CVE Blocking) и лицензия MIT.

В этой статье мы развернём NORA в Kubernetes на Yandex Managed Kubernetes, а затем попробуем все основные сценарии использования.

Читать далее

Подключили LLM к базе на 253 таблицы тремя способами. Больше всех ошибались не модели

Tue, 08/25/2026 - 10:50

Мы в отделе поспорили, как подключать LLM к базе на 253 таблицы: MCP-инструменты или схема в промте. Собрали бенчмарк на 29 реальных вопросах аналитиков и померили три подхода по execution accuracy, деньгам и латентности. Победил вариант, за который не топил никто, а больше всех ошибался составитель бенчмарка: трижды, и один раз его поправила испытуемая модель. Внутри: таблицы с цифрами, четыре дефекта харнесса, которые выдавали правдоподобные числа вместо падений, и почему семантика, живущая в коде, — потолок любого подхода.

Читать далее

TikTok для выбора отеля, платформа для роста конверсии сайта – и ещё 8 российских стартапов

Tue, 08/25/2026 - 10:45

10 новых российских продуктов для изучения языков, поиска интересных меропиятий, анализа закупок и поиска поставщиков, анализа MAX-каналов, корпоративного обучения сотрудников и многого другого. Битва за «Продукт недели» началась!

Product Radar — здесь каждую неделю публикуются лучшие онлайн-сервисы и железки от русскоязычных команд.

Читать далее

Двойная точность: в основном «найти и заменить», плюс два настоящих сюрприза

Tue, 08/25/2026 - 10:08

В этой части мы используем sgemm как шаблон и проверим, что действительно меняется при переходе к dgemm: сначала пройдём скучную часть с удвоенными ширинами, затем разберём прямоугольный тайл 16×32, после этого — отдельный бит возможностей FEAT_SME_F64F64 и динамическую регистрацию ядра. Следующая часть будет устроена иначе: там меняется не только ширина элемента, но и сама форма данных.

Читать далее

Проблему репетиторства сформулировали в 1984 году. Ответа до сих пор нет

Tue, 08/25/2026 - 10:07

В 1984 году Бенджамин Блум доказал: ученик, занимающийся с репетитором один на один, обходит 98% обычного класса. Казалось бы, вывод очевиден. Но сам Блум написал, что это слишком дорого для общества, и поставил вопрос — чем заменить. Рассказываю, как мы отказались от занятий один на один, посадили 12 человек на одного преподавателя и почему это дало результат лучше, чем мини-группы.

Читать далее

ML на данных Мосбиржи: как я собирал историю стакана, сделок и фьючерсов

Tue, 08/25/2026 - 06:32

Лето подходит к концу и я хочу рассказать о своём увлечении последних месяцев — машинном обучении (Machine Learning) на данных Московской биржи. Эта тема уже давно не даёт мне покоя и в этот раз я решил подойти более основательно — активно использовал новейшие языковые модели, типа Claude Sonnet 5, Gemeni 3.7 Flash не только для написания кода, но и для работы с результатами этих скриптов. При этом не использовал полностью автономных агентов — все языковые модели работали как консультанты в чате — все решения принимал я, в том числе какую исходную информацию давать конкретной модели на каждом из этапов.

Предвидя будущие вопросы я сразу отвечу что это мой эксперимент и он не только не зарабатывает, но и пока даже непонятно чем закончится — сейчас это всё в процессе. Эту статью решил написать не чтобы «засветить трейдерским граалем» — которых я кстати считаю что не существует, потому что вся информация общедоступна. Эта статья написана чтобы рассказать как есть об этой ML теме без прикрас и познакомиться с комментариями — среди негатива (обычно так) проскакивают интересные мысли. Я сам не работаю в финансах и моя позиция больше исследовательская, так что раскрыть какие‑то корпоративные секреты я не могу — просто прощупываю путь перед собой. 

ML на Мосбирже

Моё представление об идеальном системном языке программирования

Tue, 08/25/2026 - 02:00

На пороге 2027 год, и с момента появления языка Си прошло уже более 50 лет… Но, что удивительно, за все эти годы так и не появилось идеальной альтернативы этому языку. Поэтому, ради интереса, я попробовал разработать дизайн своего "идеального" языка. И теперь я хочу рассказать о том, что у меня получилось.

Читать далее

Мой первый KitRover: попытка сделать машинку с управлением по сети (часть 2)

Tue, 08/25/2026 - 01:08

Разработка такого рода для меня совершенно новый опыт, поэтому, периодически, ловлю откровенный "тупняк" от решений, которые нужно применять в этой области.

Продолжаю рассказывать о том, как делаю ровер с управлением по сети.

Читать далее

Jabbit — фоновые задачи в KMP с API как у WorkManager (почти)

Tue, 08/25/2026 - 00:53

Привет!

Представьте, что вы с удовольствием пишите один код на все платформы на Kotlin Multiplatform, и вдруг приходит задача «синкать данные раз в час, только по вайфаю и когда телефон на зарядке».

Под Android вы берёте WorkManager и за пятнадцать минут закрываете тикет. Потом яблочный смежник открывает документацию по BGTaskScheduler и обнаруживает, что модель там вообще другая и работает всё по-другому: нет очереди задач, есть окна, которые система выдаёт по своему усмотрению и т. д.

В итоге в проекте появляется expect fun scheduleSync() с разными реализациями, которые ведут себя по-разному, и никто в команде через год не сможет сказать, что именно произойдёт на iOS, если приложение свернули посреди загрузки.

Так как я андроидер с альтернативным мышлением, мне нравится API WorkManager'а. Я захотел его скопировать под KMP, породив так называемый Kotlin Multiplatform Work Manager или же Jabbit (job + rabbit, да, я знаю) — планировщик фоновых задач для KMP.

Таргеты: Android, iOS, js и wasmJs. Как будет время и желание, появится ещё и декстоп.

Читать далее

Половину работы, ради которой я стала программистом, теперь делает агент. Что дальше?

Tue, 08/25/2026 - 00:31

Профессия меняется на глазах: часть работы, ради которой мы когда-то пришли в код и которая была удовольствием, переезжает под ответственность LLM. Мы всё ещё инженеры — читаем код, держим архитектуру, — но, давайте честно, это уже другая профессия.

Вопрос, который меня не отпускает: как нам, у кого за плечами годы опыта, расти дальше в этом новом мире — где учиться новым способам работы с AI и куда девать собственные находки? Пришла спорить и собирать ваши мнения.

Читать далее

[Перевод] Как сравнивать венчурные фонды: на что смотреть кроме бренда

Tue, 08/25/2026 - 00:17

Наконец-то кто-то нормально посчитал, как сравнивать венчурные фонды! 

Спойлер: не просто по количеству единорогов в портфеле.


На днях вышло большое исследование Ильи Стребулаева, профессора Стэнфордской высшей школы бизнеса: вместе с коллегами он собрал альтернативу Forbes Midas List (один из самых известных рейтингов венчурных инвесторов).


В публичном пространстве о фондах часто судят по бренду, известным компаниям в портфеле, количеству единорогов - но эти признаки могут ничего не значить.

Читать далее

Человек между агентом и кнопкой: почему слой подтверждения — это такая сложная инженерия

Mon, 08/24/2026 - 23:20

Мой агент дошёл до состояния, когда я перестал читать письма перед отправкой. Между «агент решил» и «письмо ушло» не было ничего — ни паузы, ни человека, ни записи о произошедшем.

Слой подтверждений выглядит как день работы: таблица, кнопка «одобрить», кнопка «отклонить». Я вёл каталог отказов, пока его делал. К релизу в нём было 66 пунктов. Разбираю пять, которые почти всегда переживают первую версию, и показываю, почему 100% покрытия по ветвям ничего не гарантируют.

Читать далее

[Перевод] Структуры данных на практике. Глава 19: Управление памятью в прошивках

Mon, 08/24/2026 - 22:17

«Управление сложностью — сама суть программирования компьютеров.» — Брайан Керниган

Стадия финального тестирования

Мы находились на этапе финального тестирования проекта IoT‑датчика — устройства для умного дома с 128 КБ ОЗУ, которое отслеживает температуру, влажность и качество воздуха. Прошивка прошла все функциональные тесты. Юнит‑тесты: зелёные. Интеграционные тесты: зелёные. Энергопотребление: в пределах спецификации.

Последним требованием был тест непрерывной эксплуатации в течение 72 часов. Мы подготовили в лаборатории двенадцать устройств, настроив их на отправку данных датчиков каждую секунду, и оставили их работать.

Спустя три дня я пришёл в лабораторию, ожидая собрать логи тестирования и завершить проект.

Но вместо этого выяснилось, что все двенадцать устройств аварийно выключились.

В консоли последовательного порта на каждом устройстве была одна и та же ошибка:

[72:14:23] malloc failed: out of memory
[72:14:23] Fragmentation: 45%
[72:14:23] System halted

У меня cкрутило желудок. Проект планировалось выпустить через две недели. Я в точности знал, что произошло, и понимал, что решать проблему будет очень трудоёмко.

Читать далее

GFM: децентрализованная альтернатива Patroni и etcd для PostgreSQL на базе P2P-меша с In-Memory управлением

Mon, 08/24/2026 - 22:06

Если вы когда-нибудь настраивали Patroni, то знаете это чувство: чтобы просто следить за одной базой, вам нужно построить вокруг неё целый город. Тут у нас etcd, там Consul, здесь зоопарк зависимостей, а вон там отдельный бюджет на железо под систему управления. Это напоминает попытку установить охранную систему, которая потребляет больше электричества, чем защищаемый объект.

Классика HA строится на «централизованном консенсусе». Это когда три сервера управления спорят между собой, кто из двух серверов базы данных сейчас главный. Я решил, что пора перестать плодить сущности.

Познакомьтесь с GFM (Gorgona Failover Manager). Это менеджер отказоустойчивости, который работает на принципах P2P-меша.

Читать далее

Как перестать начинать утро с думскроллинга

Mon, 08/24/2026 - 21:57

Утро часто начинается с простого движения: рука тянется к телефону.

Telegram. YouTube. Новости. Рабочие чаты. За несколько минут можно узнать, что произошло ночью, о чём спорят люди, что нового появилось на работе и что предлагают посмотреть следующим.

При этом на один вопрос вы ещё не ответили: что сегодня важно лично мне?

В этом для меня и есть главная проблема утреннего думскроллинга. Дело даже не в том, сколько времени прошло с телефоном в руке.

Ещё до того, как вы успели подумать о собственном дне, в голове уже появились чужие темы.

Кто-то написал сообщение. В одном из каналов обсуждают новую историю. В рабочем чате появился вопрос, который мог бы подождать, но теперь вы уже о нём знаете.

День ещё толком не начался, а внимание уже чем-то занято.

Читать далее

Who's online

There are currently 1 user and 13 guests online.