Pull to refresh

Technotext

Оживляем диаграммы последовательности: PlantUML и немного кода

Level of difficultyMedium
Reading time18 min
Reach and readers8.9K

Привет!

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

Если хочет — может раскрыть больше деталей, если нужно наоборот — может скрыть избыточные.

А также, помимо самого способа создания, хочу рассказать, как получилось прийти именно к такому варианту динамических диаграмм последовательности.

Будет PlantUML, JavaScript, HTML и немного разочарования в ИИ :-)

P.S. Не смотрите на то, что читать статью якобы много-много минут. Текста там не много, все код виноват :-)

Читать далее

Эволюционная архитектура ПО: уроки теории Дарвина

Level of difficultyEasy
Reading time7 min
Reach and readers5.5K

Концепция эволюционной архитектуры (Evolutionary Architecture) — очень популярный в наши дни подход к проектированию программного обеспечения, при котором система способна адаптироваться и развиваться без потери функциональности. Этот подход подробно описан в книге «Эволюционная архитектура. Автоматизированное управление программным обеспечением» Нила Форда и др. 

На связи Кирилл Маканков, iOS-разработчик в ПСБ. В этой статье я хочу проанализировать эволюционную архитектуру сквозь призму теории Дарвина и определить, действительно ли этот подход позволяет ПО эволюционировать. 

Читать далее

Не все RPS одинаково полезны: уроки нагрузочного тестирования core-системы

Level of difficultyMedium
Reading time9 min
Reach and readers8.7K

Когда мне пришла идея написать эту статью, я предполагала, что это будет хроника ошибок, от которых мы бы хотели предостеречь техническое сообщество: как мы наивно полагались на «синтетику», а «видовое многообразие» сервисов раскрыло нам глаза.

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

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

Читать далее

От «Долгого Джонта» Кинга до pip install: пишем HAL для атомного манипулятора

Level of difficultyMedium
Reading time6 min
Reach and readers6.7K

Начал с фантазий про телепортацию из рассказа Кинга, закончил Python-пакетом для управления атомным микроскопом. Симулятор вместо оборудования за $500K, замена LabVIEW на asyncio, drop-in для RL-агента.

Читать далее

At-least-once. Это не баг провайдера. Это ваша архитектурная проблема

Level of difficultyHard
Reading time37 min
Reach and readers7.5K

Думал, зайду в крипту и буду просто дёргать API блокчейна. Не вышло.

Захожу в проект. Стек: FastAPI, PostgreSQL, Redis как Celery broker, Celery workers, Docker, Web3. Стартап на хайпе, деньги реальные, архитектура собрана на коленке. Смотрю на архитектуру платёжного процессинга и первая мысль: ребята, вы серьёзно? Финансовые операции с реальными деньгами, без idempotency вообще, Redis как брокер без persistence, Web3.py синхронные вызовы внутри Celery тасков.

Разговор был короткий: задача такая, чини что есть. Сроки горели.

Читать далее

Вот как сегодня устроено российское производство

Level of difficultyEasy
Reading time9 min
Reach and readers12K

Что общего между крышечкой от колы, трубой в ванной, медицинской маской и подгузником Huggies? Полипропилен — один из самых популярных пластиков в мире.

Привет! Меня зовут Игорь, недавно я побывал на одном из заводов — «Томскнефтехим».

Читать далее

Путешествие одного промпта: Что на самом деле происходит под капотом у LLM?

Level of difficultyEasy
Reading time15 min
Reach and readers12K

Загадка работы LLM: что происходит, когда вы нажимаете Enter? Разбираем пошагово путь вашего промпта от токенизации до генерации ответа. Узнайте, как устроены большие языковые модели, как ими управлять и какие мифы они развеивают.

Читать далее

Pattern matching в .NET

Level of difficultyEasy
Reading time15 min
Reach and readers10K

Привет, Хабр! Меня зовут Митя, я инженер-программист в Контуре. Во время написания кода анализаторы иногда предлагают заменить привычные конструкции на pattern matching. Однако то, что призвано повысить читаемость, нередко делает код более трудным для восприятия, особенно, если не понимать, во что именно разворачиваются те или иные конструкции. И в один из дней я задался вопросом: а есть ли какие-нибудь подводные камни при использовании pattern matching и во что именно его преобразует компилятор? В этой статье — мои мысли и заметки.

Читать далее

LLM как декодер в ASR: опыт адаптации SOTA архитектуры для спонтанной русскоязычной речи

Level of difficultyMedium
Reading time11 min
Reach and readers6.3K

Привет, Хабр! Меня зовут Коля, я разработчик машинного обучения в команде речевых технологий Контура. Мы разрабатываем собственную систему распознавания речи (ASR), которая ежедневно переваривает миллионы звонков и записей видеоконференций, чтобы потом использовать их для речевой аналитики качества коммуникаций с клиентами и для создания протоколов и резюме встреч в Контур.Толке.

Мы постоянно работаем над тем, чтобы дать пользователям лучшее качество и опыт взаимодействия с нашими продуктами: борьба уже давно идет за десятые доли процента WER (Word Error Rate) – особенно сложные и трудные для распознавания случаи.

В конце прошлого года Nvidia изрядно встряхнула Open Source комьюнити, выкатив серию новеньких моделей распознавания речи. Одна из них нам особенно приглянулась: Canary-Qwen-2.5B на архитектуре SALM (Speech Augmented Language Model), установившая новый рекорд по качеству в HuggingFace OpenASR, благодаря использованию гибридного подхода, совмещающего речевой энкодер и LLM в своей работе.

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

Читать далее

Собеседования 2026: почему мы до сих пор нанимаем «ходячие Википедии», а не инженеров?

Level of difficultyEasy
Reading time4 min
Reach and readers43K

Привет! На связи Дима — Senior Frontend разработчик в Doubletapp. В этой статье я расскажу, как эффективно собесить фронтендеров. Мой стек — Vue, Nuxt, поэтому примеры будут на основе моего опыта, но текст подойдет для всех разработчиков и нанимающих менеджеров.

В этой статье 

- Что я понял спустя 80+ собеседований? 
- Как собесят на рынке?
- Почему это все не работает
- Фактор ИИ и «подготовленных» кандидатов
- Как проводить инженерное интервью: 4 принципа

Читать далее

12 когнитивных искажений пользователя: как они влияют на вас, ваш продукт, и что с этим делать?

Level of difficultyEasy
Reading time14 min
Reach and readers7.7K

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

В итоге именно такие эффекты нередко определяют поведение пользователя и влияют на ключевые метрики продукта: от конверсии и CTR до CSAT и удержания.

В этой статье мы рассмотрели travel-tech через призму поведенческой психологии и собрали распространённые когнитивные эффекты, которые встречаются на пути пользователя — от поиска направления до посадки в самолёт. Рассказали:

- как эти эффекты проявляются в реальных сценариях; 

- как их диагностировать с помощью данных и исследований; 

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

Будет полезно всем, кто работает с продуктовыми метриками, интерфейсами, исследованиями, или в целом стремится узнать больше о психологии пользователя онлайн-сервисов. 

Читать далее

Как выбрать лучшего AI-ассистента для разработки: тестируем Codex, Claude и Cursor

Level of difficultyMedium
Reading time14 min
Reach and readers12K

В 2026 году кодовые ассистенты окончательно перестали быть просто автокомплитом и превратились в полноценный инструмент разработки: они читают кодовую базу целиком, понимают зависимости, дебажат по логам и могут довести задачу до рабочего состояния почти без участия разработчика. Но на практике всё не так однозначно — один агент хорошо чинит баги, но ломает архитектуру, другой уверенно пишет на Python, но теряется в TypeScript. Чтобы разобраться, кто из них реально помогает в разработке, а кто только выглядит убедительно, мы прогнали популярные решения через собственный приватный бенчмарк с задачами на 15+ языках.

Меня зовут Ильнур Файзиев, я руковожу юнитом Data LLM в Doubletapp и расскажу, как и почему мы тестировали агентов, какие задачи давали и какие выводы из этого можно сделать для команды и бизнеса.

Содержание

Какой бенчмарк выбрать для теста кодовой модели?
Почему многие выбирают именно Codex/Claude Code и Cursor как компаньонов по разработке
Claude Code
Codex
Cursor
Какие задачи брали для прогона
Результат
Сравнение с публичными бенчмарками
Сравнение с приватным Python-репозиторием
Итоговый рейтинг
Итоговый рейтинг на разных языках
Разбивка по языкам
Заключение

Читать далее

Как Red Teaming и человеческий креатив позволяют оценить риски внедрения LLM в бизнес-процессы

Level of difficultyEasy
Reading time14 min
Reach and readers5.2K

В кибербезопасности существует подход под названием Red Teaming — когда одна команда имитирует атакующего, а другая защищает систему. С появлением больших языковых моделей тот же принцип стал применяться к ИИ. Только теперь атакуют не серверы и базы данных, а сами LLM-агенты — системы, которые умеют рассуждать, выполнять команды и взаимодействовать с внешними инструментами. Red Team здесь ищет способы выявить уязвимости и подсветить риски модели, а Blue Team — защитить её. Именно на стыке этих подходов возникла новая область — Red Teaming LLM-агентов, где тестирование превращается в исследование границ самого искусственного интеллекта.

В Doubletapp мы с 2018 года занимаемся интеграцией AI- и ML-решений, когда ещё основное внимание было приковано к компьютерному зрению. Сегодня центр притяжения — языковые модели, и мы одни из первых в России начали системно работать с LLM. Среди наших клиентов — крупные российские бигтех-компании и международные партнёры.

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

Содержание:

- Что такое LLM и как они используются
- Риски при использовании LLM
- Red Teaming LLM: реальные кейсы
- Основные типы уязвимостей LLM
- Как тестируют LLM: ручное и автоматическое тестирование, шаблоны и KPI
- Фаззинг, мутации и роль человека
- Кейсы: как мы ломали и чинили LLM в продакшене
- Зачем компании нужны сторонние Red Team-партнёры
- Внутренние инструменты: как мы сами используем LLM
- Что дальше: спад или новая волна?

Читать далее

Линейная алгебра для нейросетей: векторы на практике

Level of difficultyEasy
Reading time12 min
Reach and readers8.6K

Данная статья посвящена основе основ нейронауки — линейной алгебре. Если вы когда-либо планируйте изучать искусственные нейронные сети (и не только), то вам необходимо начать именно с этого. Причем не важно, собираетесь ли вы заниматься фундаментальными исследованиями (Data Science) или просто лепить модели в продакшн на конвейере (ML Engineering), вы обязаны знать их математику хотя бы поверхностно. Любые настройки, дообучение и применение даже готовой модели, требуют понимания основ. А по сему данное знание, как минимум, не будет избыточным.

Материал рассчитан на новичка. Если вы знаете школьную математику, то сможете освоить и мой курс. В будущем я напишу статью о линейном представлении нейросетей, где мы адаптируем полученное знание под прикладные задачи, напишем некоторые слои на Python и построим настоящую модель!

В этой статье:
* Понятие вектора;
* Векторизация данных;
* Умножение на скаляр;
* Сложение векторов;
* Норма вектора;
* Скалярное умножение;
* Векторное умножение;
* Практика с кодом;
* Домашняя работа.

Все будет объяснено на красочных примерах в игровой форме. Ничего сложного. А в конце вас ждет самостоятельная практика с кодом.

Приятного чтения!

Читать далее

Типичные проблемы молодого руководителя

Level of difficultyEasy
Reading time14 min
Reach and readers28K

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

Добро пожаловать!

Как мы научили AI-агента пользоваться IDE: дебаг, рефакторинг и run-конфигурации. Что нового в Veai 5.8

Reading time4 min
Reach and readers14K

Дебаг, запуск проекта и рефакторинг. Все мы хорошо знакомы с этими фичами IDE и пользуемся ими практически каждый день. Но передовые ИИ-агенты для кодинга почему-то абсолютно ничего не знали про эту “базу” до релиза Veai 5.8 🙂 (ИИ-агент к JetBrains IDEs для написания кода, тестирования и отладки с доступом к топовым LLM и всем внутренним инструментам IDE).

Помимо глубокой интеграции агента с вашей любимой IDE, мы завезли ещё парочку улучшений и изменили подход к тарификации. Но обо всём по порядку.

Читать далее

Kafka: ребалансировка изнутри

Level of difficultyMedium
Reading time9 min
Reach and readers20K

Привет! Меня зовут Геннадий, я руковожу командой разработки системы учета товаров в Ozon. Мы активно используем Kafka как основной инструмент для асинхронного взаимодействия между нашими сервисами. Для нас Kafka — это не просто очередь сообщений, а один из ключевых компонентов всей архитектуры. Поэтому мы постоянно погружаемся в его тонкости и нюансы, чтобы грамотно настраивать и использовать его возможности. Думаю, многие из вас сталкиваются с тем же — когда Kafka становится критически важной частью вашего решения.

Хотя информации о ребалансировке Kafka достаточно, она часто либо слишком разрозненная и техническая, либо наоборот — поверхностная и без акцента на важные детали. Я собрал для вас самое важное и объясню это простым и понятным языком.

Читать далее

Как с помощью A/B-платформы найти лучшее решение, если вариантов слишком много, чтобы тестировать все?

Level of difficultyMedium
Reading time12 min
Reach and readers6.9K

Привет, Habr! Меня зовут Костя Козлов, я работаю в команде анализа и валидации экспериментов A/B-платформы Ozon. В предыдущей статье коллеги рассказали, как создать высокопроизводительную платформу сплитования пользователей на группы и стенд метрик. В этой статье расскажу, как построить поверх этого инструмент, который автоматически оптимизирует бизнес-метрики продукта за счёт "умного" перебора возможных вариантов его параметров.

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

Читать далее

AI-агент с долгосрочной памятью: строю личного аналитика с Claude Code

Level of difficultyEasy
Reading time13 min
Reach and readers10K

Разрабатываю AI-агента персональной аналитики для себя вместе с Claude Code. Любопытной инженерной задачей оказалась архитектура памяти. Как сделать, чтобы агент помнил не только последний разговор, но и паттерны, накопленные за месяцы? В этой статье описана архитектура, рабочие решения и грабли, на которые я наступила.

Doodling... Flowing... Analai... Manalai..

Разработка RC-машинки с BLDC. Подход с нуля

Reading time12 min
Reach and readers17K

Добрый день, уважаемый читатель. Как и в других моих статьях, я решил что-то собрать полностью с нуля, а именно – машинку на радиоуправлении.

Будет описан мой пройденный путь: от печати готового проекта до разработки и печати новой платформы; от разработки первой версии печатной платы для использования коллекторного DC мотора до реализации управления бесколлекторным BLDC мотором с датчиками холла; от локального управления до реализации полудуплексного обмена данными на расстояние в сотни метров с передачей телеметрии.

Вновь потратил на разработку пару лет, но никуда не спешил. Это лишь мое хобби.

«Long story short…»
1
23 ...