Если вы думаете, что навигационная система в современном автомобиле — это просто красивое приложение, которое рисует синюю линию на карте и говорит «через 200 метров поверните направо», вы застряли в 2010 году.
В Android Automotive OS (AAOS) навигация часто становится одним из самых жирных и критически важных системных компонентов. Это «пространственный мозг» машины. Десятки других модулей постоянно дергают её за рукав с вопросами: «Где мы?», «Какое ограничение скорости?», «Сколько полос на дороге?», «В какой полосе мы сейчас едем?».
В этой статье я поделюсь опытом из своей практики разработки навигационной системы для крупного немецкого автопроизводителя. Мы разберем, как построить надежное межпроцессное взаимодействие (IPC) внутри автомобиля на примере передачи ADAS-атрибутов для японского модуля ETC 2.0.
Читать далееСегодня расскажу о модели, которую мы построили для оценки реального эффекта промокодов. Главные вопросы: кому, какой, и зачем мы выдаем промокод. Спойлер: ответ нас удивил. И именно этот ответ стал главной причиной, по которой эту модель вообще стоило строить.
Представьте стандартный отчёт по промокампании: «Пользователи, применившие промокод, потратили на 800 рублей больше среднего». Бизнес доволен, маркетинг рапортует об успехе. Но подождите, а сколько из них потратили бы эти деньги и без промокода?
Это не риторический вопрос. Это принципиальная проблема, которая называется selection bias — систематическая ошибка отбора.
Читать далееКазалось бы, сейчас мы наблюдаем всё, но факт в том, что не управляем ИТ-ландшафтом в целом. Упор на автономию команд и разрозненные инструменты приводит к «разрывам» в управлении: нет единой картины при инцидентах, SLA считаются в табличках, корреляция событий происходит «в головах людей», интеграции держатся на 1–2 специалистах, а построение CMDB и моделей ИТ ландшафта часто игнорируется. В этой статье мы постараемся переосмыслить роль зонтичного мониторинга, и докажем, что это не еще один мониторинг, а важный архитектурный слой.
Читать далее«str для людей, а repr для машин» — эту фразу слышали многие, но на практике путаница всё равно остается. Почему функция print() иногда игнорирует ваши настройки? Что такое односторонний фолбэк? И зачем вообще писать оба метода?
Читать далееАвстралийская писательница, технологический аналитик, автор колонок в Wired и Time Джоан Вестенберг описала в своём блоге проблему понедельников, поделилась способами пересобрать рутину и сделать её более осознанной.
Читать далееВ мире Android-разработки существуют различные архитектурные паттерны.
Многие из вас хорошо знакомы с MVVM, и возможно сталкивались с MVP. В последнее время всё чаще звучит аббревиатура MVI (Model-View-Intent). Однако наряду с MVI существует похожий на неё подход – KoTEA (Kotlin The Elm Architecture).
Давайте сравним их и разберём их различия.
Читать далее«Простота — требование, необходимое для обеспечения надёжности», — Эдсгер Дейкстра
Невидимая структура данных
В каждой программе используется стек — стек вызовов. Каждый вызов функции записывает в стек кадр, каждый возврат извлекает его. Он настолько фундаментален, что мы редко о нём задумываемся.
Но когда нам нужен собственный стек или очередь, крайне важно правильно выбрать реализацию.
Однажды я отлаживал вылет прошивки во встраиваемой системе RISC-V. У системы был планировщик задач, использующий очередь для управления ожидающими задачами. При большой нагрузке система вылетала с переполнением стека.
Переполнение стека? Очередь должна была находиться в куче, а не в стеке.
Проблема заключалась не в самой очереди, а в том, как она была реализована. Для очереди использовался связанный список, и каждый вызов malloc() выполнял распределение из пула памяти, делившего пространство со стеком. Под нагрузкой очередь разрасталась, пул фрагментировался и рано или поздно стеку не оставалось места для роста.
Как же мы устранили проблему? Заменили очередь на основе связанного списка кольцевым буфером — очередью на основе массива фиксированного размера, получив при этом отсутствие динамического распределения, предсказуемое использование памяти и десятикратный рост скорости.
Читать далееРазбираем возможности новой ChatGPT 5.3. Сравнение с Claude 4.6 и Gemini 3.1, бенчмарки Codex. Подробная инструкция как использовать нейросеть в РФ без VPN.
Читать далееПисать быстрые GPU‑ядра вручную долго и требует узкой экспертизы: нужно понимать модель памяти, эффективные паттерны доступа к памяти, ограничения конкретного бэкенда и уметь быстро разбираться в compile и runtime ошибках. При этом выигрыш от кастомного kernel'а может быть очень заметным. Поэтому автоматизация и упрощение процесса разработки ядер — практически важная задача.
В этой статье расскажу о KernelEvo — новом фреймворке от команды «Вычислительный интеллект» Института AIRI, позволяющем по исходному коду автоматически искать эффективные cuda и triton реализации. Ключевая идея простая: вместо ручного цикла «написал → проверил → увидел ошибку → переписал» мы строим автоматический search loop. В типовом сценарии на одну задачу уходит до ~1 млн токенов, что делает такой поиск достаточно выгодным для регулярных запусков.
Подробности далее.
Читать далееУ многих компаний уже есть практически всё, чтобы внедрить полноценное обучение сотрудников после приема на работу (онбординг) или освоения нового продукта: база знаний с рабочими статьями на внутренней платформе для совместной работы и АИС по клиентам. Они могут быть интегрированы между собой или существовать отдельно — на конечный результат это влияет мало. Для полного счастья остается только сделать семейство обучающих курсов — а до этого руки доходят хорошо если через один год.
Читать далееМы привыкли, что запустить проект можно за вечер, просто собрав его из готовых кирпичиков. Но что, если бы каждый import стоил денег?
Бесплатные фреймворки, открытые базы данных и возможность заглянуть в исходники стали для нас абсолютной нормой, которую мы воспринимаем как само собой разумеющееся. А если бы весь код был закрыт по умолчанию?
Попробуем представить, как в такой реальности выглядел бы технологический прогресс, безопасность, стартапы и образование.
Читать далееВсем привет! Я Елена Шустерман, ведущий технический писатель в РТЛабс.
Это вторая часть статьи «Давайте сократим сокращения». Расскажу ещё немного про редактор MS Word и поиске с подстановочными знаками — об использовании фильтра с подстановочными знаками для усложненной задачи.
Читать далееМаркировка уже стала новой нормой для самых разных товарных групп. Ошибка с одним кодом Data Matrix сегодня это не просто «исправим в накладной», а риск штрафа, зависшего УПД и зависшей отгрузки.
Сегодня разберем, как настроить приемку и отгрузку маркированного товара на ТСД с помощью «Склад 15 Минимум».
Читать далееCursor теперь доступен в IntelliJ IDEA, PyCharm, WebStorm и других IDE JetBrains через протокол Agent Client Protocol (ACP).
Разработчики, которые полагаются на IntelliJ IDEA и другие IDE JetBrains за их мощную поддержку Java и нескольких языков, теперь могут использовать любую передовую модель вместе с Cursor для агентно-ориентированной разработки. Подробнее - в новом переводе от команды Spring АйО.
Читать далееМеханизм работы с файловой системой в Podman очень схож с Docker. Но есть несколько нюансов. Так как Podman разрабатывался с упором на безопасность и rootless, порой возникают неочевидные ошибки при монтировании volumes. Сегодня рассмотрим эти нюансы и поглубже заглянем в кроличью нору.
Читать далееAI-агент каждую сессию начинает с нуля — не помнит, что вчера разбирали архитектуру, какие баги нашли и почему выбрали именно это решение. Знакомо?
Я сделал open-source MCP-сервер на Go, который даёт агентам persistent memory с semantic search. Один memory-layer для Cursor, Claude Code и Codex — чтобы контекст не терялся между инструментами.
В статье — не обзор, а инженерный разбор: схема БД, embedding pipeline с fallback между провайдерами (и почему я в итоге от этого отказался), in-memory cosine similarity вместо vector DB, RAG-индексирование с инкрементальным обновлением, и реальные промпты для агентов.
Отдельно разобрал грабли: почему fallback между разными embedding-моделями — это не отказоустойчивость, а источник тихих багов, и как я это починил.
Привет, Хабр! Меня зовут Антон Осетров, я разрабатываю СнК в компании YADRO. Раньше я проектировал отказоустойчивые бортовые вычислители, а также испытывал в лаборатории микросхемы. В этой статье я расскажу, что такое DFT, зачем это нужно, а также сравню популярные архитектуры, с помощью которых DFT реализуют на FPGA.
Читать далееOpen Academy — это Telegram mini app для обучения финансам (в будущем и другим направлениям) прямо внутри Telegram и в удобном формате слайдов. В этой статье я разбираю доступность интерфейса Open Academy с точки зрения незрячего пользователя и показываю, какие элементы можно улучшить.
Читать далееВ этой статье я разберу внутреннюю кухню рынка SERM (управления репутацией). Мы поговорим о том, как устроена экономика микрозадач, почему одни отзывы «живут» годами, а другие улетают в бан через 5 минут, и как на этом построить системный доход.
Читать далееGoogle опубликовал в открытом доступе Google Workspace CLI — инструмент для системных администраторов, DevOps‑инженеров и разработчиков, которые управляют корпоративной инфраструктурой. Это интерфейс командной строки для администрирования и автоматизации работы с сервисами Google Workspace. Проект размещён на GitHub.
Фактически, это удобная прослойка между API Google Workspace и вашей консолью. Вместо того, чтобы напрямую работать с REST‑запросами, настраивать OAuth и обрабатывать авторизацию, разработчики получают готовый CLI‑инструмент. В нём уже есть описанные скиллы (команды) для типовых операций — управления пользователями, группами, файлами Drive, Gmail и другими сервисами. Это особенно удобно при создании AI‑агентов и автоматизированных сценариев. LLM может вызывать конкретные команды CLI, не дергая API напрямую и не усложняя логику авторизации.
Читать далее