Habr.com

Syndicate content Хабр
Все публикации подряд на Хабре
Updated: 1 hour 22 min ago

Как я поучаствовал в разработке Camunda 8 или пример типичной ошибки в многопоточном коде

2 hours 13 min ago

Зимой 2024 года мне довелось поучаствовать в разработке проекта на Camunda 8. Сразу оговорюсь: проект в итоге реализовали на другом движке. Тем не менее, команда успела сделать стенд, прогнать тесты и замерить производительность.

В этой статье я расскажу об одном эпизоде, когда мне пришлось исправить библиотеку spring-zeebe из Camunda 8, отвечающую за обвязку Job Worker на Spring.

Одной из моих задач было отладить процесс, используя локальные интеграционные тесты с Docker и библиотекой Testcontainers. Мы создали простой процесс, вызывающий наш Job Worker, подлежавший отладке. Сразу столкнулись с плавающей ошибкой: иногда тест проходил успешно, иногда — нет. Несколько тасков работали корректно, однако первый периодически игнорировался без видимых ошибок. Изначально подозревали проблему в собственном коде, проверяли конфигурацию Job Worker, благодаря чему узнали много нового о Camunda 8.

Читать далее

Гортанный праиндоевропейский, или как звучали ларингалы

2 hours 45 min ago

Ларингалы – самые загадочные звуки праиндоевропейского языка, не сохранившиеся ни в одном из живых индоевропейских языков. Звуки-призраки, которых никто из ныне живущих не слышал. И звуки-атланты, на которых держатся все реконструкции праиндоевропейского. Почему учёные так уверены в их существовании? Можем ли мы хотя бы представить себе их звучание? И как их можно записать, кроме нижних индексов? Обо всём по порядку – в этой особой статье по заявкам читателей.

Читать далее

AI based IoT на esp32 для элементов Headless неумного дома

Fri, 01/09/2026 - 23:49

Сейчас нейронки — это не хайп, а мейнстрим. На сколько сильно бы мы не обожглись на них в прошлых годах, к концу 2025го топовые модели типа Gemini, GPT, Opus показывают достойные результаты при условии правильного формирования контекста. Используя любую прослойку между облаком и пользователем, можно голосом в вольном стиле отдавать нейронке даже нетривиальные задачи, которые она автономно решит и пошлет сигнал к действию тому или иному девайсу. Без сервера, полагаясь на облака, тратя пару долларов в месяц на API.

Если ещё недавно ESP32 ассоциировался в лучшем случае с реле, светодиодами и датчиками, то сегодня этот пятидолларовый микроконтроллер вполне может превратиться в такую прослойку.

Рассмотрим пример — ESP32 обвешена цифровым микрофоном, внешней SD картой памяти и RGB светодиодами . Человек говорит в повествовательном стиле, девайс реагирует исполнением его команды ( в предустановленных рамках) включая нужный свет.
Под капотом ESP32 записывает голос пользователя через I2S‑микрофон и сохраняет его во флеш‑память или на SD‑карту. Это принципиальный момент: аудио очень быстро съедает оперативную память, и попытка держать его в RAM с большой вероятностью обрекает на хождение по минному полю. Поэтому пишем голос на флешку, что хоть и даст небольшую задержку, но обеспечивает надежный workflow. Дальше сохранённый аудиофайл отправляется по HTTPS в LLM — чаще всего это Gemini или OpenAI. За подробностями имплементации можно заглянуть в гайд от Google.

Как это работает.
Современные модели умеют не просто распознавать речь, а возвращать структурированный результат. Вместо обычного текста мы описываем набор доступных действий устройства, а нейросеть сама выбирает, что именно нужно вызвать, и возвращает JSON с параметрами. Этот механизм называется Function Calling и именно он превращает голосовое управление из игрушки в инженерно аккуратное решение.

Чё там, чё там..

«Как натянуть сову на глобус, не привлекая внимания санитаров?» или по следам «мёртвого льва которого пнули»

Fri, 01/09/2026 - 23:20

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

Читать далее

Как готовиться к cобеседованию с лайв-кодингом QA

Fri, 01/09/2026 - 23:16

Сейчас на позициях любых грейдов, включая лидовские, у QA всё чаще работодатели требуют навыки разработки. Иногда это нужно, потому что позиция full-stack. Иногда это просто требование, чтобы отобрать технически подкованных ребят.

Я — Женя, QA-лид. У меня 6 лет опыта в профессии, в том числе 3 года я нанимаю и обучаю команду. Решил составить свой список того, что нужно делать QA, чтобы подготовиться к этапу технического собеседования с лайв-кодингом.

Читать далее

Multi-Curve Framework: Теория и практика оценки кросс-валютных свопов (CIRS)

Fri, 01/09/2026 - 23:14

О том как участники финансового рынка оценивают справедливую стоимость сложных деривативов на примере сделки валютно-процентный своп.

Лучше не читать далее...

Мандала: сакральный алгоритм бытия в магических квадратах

Fri, 01/09/2026 - 23:14

Как то раз, школьница племянница спросила меня: а как собираются магические квадраты в математике?
Я конечно вспомнил и показал как собирается обычный квадрат Сатурна 3 на 3.

Но потом задал себе вопрос, а как собрать 4 на 4? И тут меня понесло... Нашел в интернете множество вариантов, формул.

Затем посмотрел на квадрат с другой точки зрения, в силу своей фантазии:

Мы, люди разных национальностей и вероисповеданий по разному воспринимаем порядок вещей и явлений.
К примеру западной формы мышления - размещаем информацию слева направо, сверху вниз.
А в арабском мире (я как то изучал арабскую письменность в детстве) пишут справа налево, но при этом, также сверху вниз.
Так вот, если в таблице 3 на 3 заполнять по порядку 1,2,3... 9 и сравнить с порядком расположения чисел в магическом квадрате возникает ощущение, что заполняемость магического порядка, это некий иной порядок размещения чисел, скажем условно "инопланетянский".

Тогда я решил научится мыслить образно как "инопланетяне" и научится легко заполнять магические квадраты на пустых ячейках. Тем самым научившись логике и порядку - применять эти же знания в повседневной жизни и при разработках скриптов
Вариантов 4 на 4 квадратов было много, и один из самых известных это квадрат Юпитера, размещенный в гравюре Альбрехта Дюрера "Меланхолия".

Читать далее

Взгляд разметчика данных

Fri, 01/09/2026 - 22:36

Дисклеймер: ниже будет описан личный опыт и точка зрения человека-исполнителя. Устройство всей процедуры разметки в статье не раскрывается. Все совпадения сущностей случайны. Названия компаний не упоминаются в целях соблюдения NDA. В статье не будут подниматься вопросы оплаты труда и разбираются только основные рабочие моменты.

 Всем добрый день!

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

Разметка данных используется для обучения различных алгоритмов, чаще всего на основе нейросетей. Она применяется разных отраслях, включая такие сложные, как медицина. Без разметки невозможно обучение моделей, так как нет явной целевой переменной и от качества разметки напрямую зависит качество модели. Я имею опыт работы Data Scientist-ом и даже диплом получил, поэтому понимаю, насколько важна разметка. Более того, сейчас, работая с медицинскими датасетами, я всё чаще задумываюсь: а насколько вообще можно доверять той или иной разметке, даже если её ставит врач?

Итак, приступим к теме нашего разговора.

 

Читать далее

Работа с аудио в Android: опыт реализации DAF — техники терапии заикания

Fri, 01/09/2026 - 22:16

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

Возможно для кого-то это окажется полезным.

Читать далее

Metalama: праовца, аспекты приносящая

Fri, 01/09/2026 - 22:14

Метод программирования, именуемый аспектно-ориентированным, впервые явился миру в конце девяностых годов прошлого века, когда группа исследователей из Xerox PARC под руководством Грегора Кичалеса решила, что объектно-ориентированного подхода человечеству недостаточно. Они создали AspectJ — расширение для Java, призванное разрешить проблему, которую окрестили «сквозной функциональностью». Суть проблемы проста до безобразия: код логирования, обработки ошибок, проверки прав доступа и прочих служебных радостей размазывается по всему приложению, как масло по по́лу, превращая элегантную бизнес-логику в свалку повторяющихся конструкций.

Аспектно-ориентированное программирование предлагает выделить эти сквозные concerns в отдельные сущности — аспекты, которые можно применять к коду декларативно, не засоряя основную логику техническими деталями. В теории звучит как серебряная пуля. На практике AspectJ оказался инструментом, требующим от программиста понимания магических pointcut expressions и готовности смириться с тем, что код компилируется через специальный компилятор, производящий байткод, который отладить можно только с поллитрой, бубном или молитвенником.

Встречайте Metalama →

[Перевод] Реляционные шарады: превращаем фильмы в таблицы

Fri, 01/09/2026 - 21:52

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

Перейти к материалу

Эксперимент по подстройке Gemma 3 для вызова процедур

Fri, 01/09/2026 - 21:51

Практический опыт тонкой настройки текстовой генерации для модели Gemma 3 с использованием QLoRA на видеокарте RTX 4090 (24 GB).

Читать далее

[Перевод] Гексагональная архитектура в Rust: отвязываем бизнес-логику от Solana

Fri, 01/09/2026 - 21:47

Представьте: вы строите сервис выдачи дипломов на Solana. Всё отлично, пока дело не доходит до тестов.

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

В этой статье я покажу, как мы решили проблему, используя async-trait и dyn Trait. Мы превратили интеграционные тесты длиной в минуты в юнит-тесты, которые проходят за миллисекунды.

Узнать решение

Как обрабатывать 5 млн изменяющихся форм в минуту с SLI 99.99%

Fri, 01/09/2026 - 21:19

Всем привет! Меня зовут Кирилл Грищук, я Tech Lead в команде Инфомодели в Авито. Мы занимаемся тем, что обрабатываем формы от пользователей: от 5 млн до 15 млн форм в минуту, а это более 150 тысяч в секунду. 

В этой статье на примере Авито я рассказываю, зачем мы стремимся к SLI 99.99%. Внутри — обзор и сравнение решений по доставке неизменных данных, учитывая специфику нашего сервиса. Показываю на примере форм, какие интересные доработки мы придумали, чтобы достичь этих четырёх девяток, и какие ошибки совершали по пути.

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

Читать далее

Создание интернет магазина на основе Evershop

Fri, 01/09/2026 - 21:16

Evershop https://evershop.io — опенсорсная платформа для создания интернет-магазинов на Node.js. Платформа включает необходимый функционал: интеграции с платежными системами (Stripe, PayPal), админ-панель для управления заказами и контентом, систему промокодов и аналитику продаж.

Официальная документация Evershop не покрывает многие практические аспекты разработки. Данная статья — практическое руководство по созданию интернет-магазина на основе Evershop, включающее:

Пошаговую настройку проекта

Создание тем и расширений

Решение типичных проблем и необходимые патчи

Описание внутренней архитектуры для разработки кастомных решений

Для корректной работы некоторых функций (например, PayPal) и избежания ошибок при оформлении заказов необходимо применить патчи, описанные в статье. Рекомендуется прочитать материал полностью перед началом разработки, это сильно облегчит вам жизнь, если вы решите создавать Evershop приложение.

Читать далее

Они тоже заслуживают вашего внимания! Крутые, но малозаметные игры 2025 года, в которые нужно сыграть каждому

Fri, 01/09/2026 - 21:05

Итак, 2025 год подошел к концу и сказать что он был переполнен (снова, ага) крутыми играми это ничего не сказать.

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

Сегодня мы вспомним эти игры и попытаемся убедить вас в них поиграть.

Читать далее

Зима — время беспрецедентно увеличить мохнатость: электрофлокирование

Fri, 01/09/2026 - 21:04

Пигмалион

Человек — существо во многом беззащитное и открытое всем неблагоприятным факторам окружающей среды.  

И даже то малое, что было ему бережно дано самой природой — надёжный и тёплый шерстяной покров — было безжалостно уничтожено беспощадной эволюцией. :-D 

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

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

Выход есть и его возможности, бесспорно, весьма широки: электрофлокирование!

Читать далее

Какой Может быть UART-CLI в Микроконтроллере (или Курс Молодого Бойца)

Fri, 01/09/2026 - 20:49

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

Прежде всего CLI - это первичный лог загрузки прошивки. Инициализация микроконтроллера - это многостадийный процесс, в котором многое может пойти не по плану. Поэтому первое, что вы должны увидеть в консоли - это зеленый лог загрузки программы.

Читать далее

DeepSeek в Intellij Idea через плагин Continue

Fri, 01/09/2026 - 20:18

Может кому пригодится, на просторах интернета не нашел, как запустить модель deepseek в idea, потому сам вместе с deepseek допиливал конфиг и обучал модель работе через инструменты плагина. Ну и попутно решил проблему с зависаниями, плагин очень любил зависнуть, приходилось ide перезапускать.

Сразу оговорюсь, решение не элегантно, я не убирал лишний код, строки и текст, я просто добился рабочего состояния и более ничего не тестировал и не трогал. Годами работы приучен "работает - не трож". Потому решение as is выкладываю. Можете сами эксперименты проводить и допиливать, мне был просто нужен рабочий инструмент, на тюнинг не осталось желания, накрыла лень и я продолжил заниматься изначальным своим проектом =)

Читать далее

Как улучшить свой маркетинг с помощью теории Эдварда Фримена

Fri, 01/09/2026 - 20:18

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

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

Читать далее

Who's online

There are currently 0 users and 2 guests online.