В какой-то момент почти в каждом проекте возникает ощущение, что самое сложное уже позади. Форма найдена. Концепт выглядит убедительно, логично, спокойно. Он не кричит, не пытается понравиться любой ценой, в нём есть характер и цельность. Его можно показывать — и он «держится».
На этом этапе кажется, что дальше всё пойдёт по накатанной: инженерия уточнит детали, производство подстроится под геометрию, а финальный продукт сохранит тот образ, ради которого всё начиналось.
На практике этого почти никогда не происходит.
Проходит время — и концепт начинает меняться. Сначала незначительно, потом всё заметнее. Что-то упрощается, что-то исчезает, где-то форма становится грубее, где-то — нейтральнее. В итоге продукт либо выходит уже другим, либо не выходит вовсе, оставшись «правильной версией» в презентации.
Важно подчеркнуть: речь не о плохих концептах. Речь именно о хороших — тех, за которые обидно.
Читать далее«Память — это современный диск, диск — это современная лента», — Джим Грей
Проблема ста тактов
В Главе 1 мы говорили о том, что промахи кэша стоят 100-200 тактов, а попадания в кэш — всего 1-4 такта. И это не какая-то мелкая деталь, а самый важный фактор современной производительности.
Ниже я расскажу, почему это так.
Однажды я оптимизировал драйвер устройства для встраиваемой системы на RISC-V. Драйвер должен был обрабатывать пакеты от сетевого интерфейса, но при большой нагрузке мы теряли пакеты. CPU работал с частотой 1 ГГц, а для обработки каждого пакета требовалось около 500 команд. Простая математика:
500 команд ÷ 1 ГГц = 500 наносекунд на пакет
При скорости 500 нс на пакет мы могли бы обрабатывать 2 миллиона пакетов в секунду. Однако мы справлялись всего с 200 тысячами пакетов в секунду, то есть в десять раз меньше, чем ожидалось.
Профилировщик показан следующее:
$ perf stat -e cycles,instructions,cache-misses ./driver_test Performance counter stats:
5,000,000 cycles
500,000 instructions
45,000 cache-misses
Постойте-ка: 500000 команд должны занимать 500000 тактов (при 1 IPC). Но мы видим 5 миллионов тактов. Куда подевались лишние 4,5 миллиона тактов?
Читать далееНестабильные (flaky) тесты создают постоянные трудности для тестировщиков. Такие тесты не отражают состояния тестируемой системы и подрывают доверие к тестовому набору.
Вооружившись лучшими практиками, нестабильность можно свести к минимуму, но полностью избавиться от неё крайне трудно. Чтобы лучше её контролировать, нужны инструменты, позволяющие выявлять нестабильные тесты — например, Allure Report. В этом руководстве мы посмотрим, как Allure работает с нестабильными тестами.
Заодно мы познакомимся с Allure 3. Многие из вас наверняка пользуются Allure 2 — в третьей версии (помимо прочих изменений) работа с нестабильными тестами стала гораздо удобнее, в особенности настройка истории тестов.
Читать далееЯ давно увлекаюсь и изучаю технологии WebRTC. Устанавливал для клиентов множество WebRTC медиа серверов и кастомизировал их. Но постоянно не хватало гибкости. В итоге обнаружил чистую реализацию WebRTC на Golang, которая умеет и MESH, и SFU. Сейчас буду рассказывать, что удалось разработать и в чем польза.
Читать далееПереключаешься между Linux и Windows в dual-boot? Тогда ты точно знаком с этой проблемой: каждый раз нужно переподключать все Bluetooth-устройства. Наушники, мышь, клавиатуру, геймпад — всё заново.
Даже подумать страшно:
3 устройства × 90 секунд × 3 переключения в день × 250 дней = 56 часов в год впустую.
Я потратил месяц на решение этой проблемы и написал BlueVein — утилиту для автоматической синхронизации Bluetooth-ключей между ОС.
Читать далееMirte — это недорогая полностью open-source платформа учебного мобильного робота, где ученик проходит путь «от телеуправления и Blockly до Python, SSH и полноценного ROS», задуманная как единый «трек» обучения от начальной школы до университета, оставаясь на одном и том же роботе и в одной и той же среде. Идея Mirte в образовании — не прятать «настоящую» робототехнику за игрушечными абстракциями, а сделать к ней удобный, поэтапный вход.
Читать далееК началу 2026 года стало заметно: формат "чат с LLM" перестал закрывать реальные инженерные задачи.
Да, модель может подсказать решение. Но дальше начинается привычная цепочка: открыть терминал, написать код, проверить, подправить, запустить, отследить результат.
Появляется закономерный вопрос: если модель знает, какие шаги нужны, почему она не может их выполнить сама?
Отсюда и растущий интерес к автономным агентам - системам, где LLM используется не как чат, а как управляющий слой поверх реальной среды исполнения.
Clawdbot - один из таких проектов.
Мы уже рассказали, как заставить таблицы работать, а теперь предлагаем сосредоточиться на мелочах. Разберем три варианта UI на реальном примере: почему цифровой индикатор и раскрывающийся список оказались эффективнее показа вложений прямо в строке.
В корпоративных системах проблемы часто создают именно детали. Казалось бы, что может пойти не так от простой функции «прикрепить файл к строке таблицы»? Но именно такие «мелочи» ломают удобство использования, превращая отлаженный отчет в визуальный хаос, где невозможно быстро работать.
В этом дизайн-тренажере разберем реальную задачу: как отобразить прикрепленные документы в отчетной таблице, чтобы пользователь мог мгновенно оценить их наличие, понять контекст и при необходимости открыть — без ущерба для главной функции таблицы: быстрого сравнения и анализа данных.
Таблицы в отчетах — это обычно строгие строки, столбцы, цифры, статусы. Их сила в структуре и предсказуемости. Но как только появляются вложения (PDF, сканы, договоры), возникает дилемма:
Читать далееPython за одну статью? Да, если выкинуть оттуда ООП.
Новичков часто пугают сложной теорией, хотя для старта нужно всего 9 блоков знаний. Разбираем только то, что реально нужно для написания скриптов: синтаксис, структуры данных, функции и работу с файлами. В конце — пишем полноценную консольную игру. Лучший старт для новичка и шпаргалка для забывчивых.
Читать далееВ статье рассматриваются текущие возможности горизонтального масштабирования СУБД для 1С, а также какое решение предлагает Tantor Postgres.
Читать далееПривет, Хабр!
Недавно случайно в мои руки попали два дешевых IoT-модуля от одного китайского производителя, которые были куплены в сети DNS. Раз попали в руки, нужно их использовать. Вот только есть одна проблема: все подобные устройства работают через облачные сервисы. В своей домашней автоматизации я придерживаюсь жёсткого правила — никаких облачных сервисов в моём умном доме! Поэтому достаём из ящика программатор с паяльником и за дело! А что из этого вышло, читайте далее.
Читать далееПривет, Хабр! На связи Владимир Туров, разработчик в Selectel. Ошибки — неизбежная часть сложных процессов, особенно когда речь идет о таких многослойных проектах, как компьютерные игры. Даже самые опытные команды не застрахованы от технических сбоев, связанных с работой игровых движков. Воспроизведение законов физики, загрузка данных, одновременное взаимодействие множества подсистем — нетривиальная задача даже для признанных мастеров индустрии.
Однако помимо очевидных технических ошибок существуют и логические неточности. Появляются они не потому, что разработчики что-то «недоделали» или «недодумали», а из-за сознательных упрощений. Игровой мир редко подчиняется законам реальности полностью — персонажи могут носить десятки предметов в карманах, раны заживают за несколько секунд, а сложнейшие устройства управляются нажатием единственной кнопки.
Все — ради темпа, удобства и удовольствия игрока. Иногда такие упрощения выглядят странно или смешно, и именно в этот момент у разработчиков появляется выбор — игнорировать нелогичность или превратить ее в шутку.
Читать далее →Привет, меня зовут Владимир Верхотуров, я занимаюсь DevRel в Битрикс24, а именно обеспечиваю связь внешних разработчиков (партнёры/клиенты) и внутренних команд, чтобы интеграции и решения на базе REST и других инструментов запускались быстро, стабильно и предсказуемо. И в этой статье я хочу рассказать о стартер-ките AI-ассистированной разработки, который мы создали, чтобы ускорить и немного упростить вывод новых продуктов на Маркетплейс приложений Битрикс24.
Читать далееВ первой статье я описал эксперимент с автономным ИИ-агентом и предложил модель слоёв исполнения:
агент должен понимать, на каком уровне системы он сейчас работает и где именно возникла проблема.
Если в предыдущем эксперименте слои выглядели так:
Читать далееМы строим карьеру на умении решать сложные задачи, но часто пасуем перед задачами, на первый взгляд, простыми, но такими важными — теми, что затрагивают не техническую область, а область человеческих отношений. Наш логический ум способен разобрать любую систему на компоненты. Почему же он отключается, когда речь заходит о трудном диалоге с руководителем, коллегой и даже близким человеком.
Задумывались ли вы, что аналитика до того, как вы открыли рот и начали диалог, может быть, столь же важна, как код-ревью до запуска программы в продакшен?
Эта статья о том, как использовать главный профессиональный навык проведения анализа — аналитическое мышление — для подготовки к самым важным диалогам на работе и в личной жизни. Мы разберём, что происходит, если этого не делать. Вы узнаете, как, используя аналитические инструменты, распутать сложный клубок проблем и определить последовательность их разрешения в самых важных для вас диалогах.
Читать далееВсе началось с комментария для СМИ про атаки на умные гирлянды. Мне стало, во первых интересно разобраться глубже, а во вторых, показалось, что мне есть, что сказать по теме. Зря я что-ли два года продвигал решения по защите промышленных сетей и АСУ ТП. Умные гирлянды - это подвид IoT, умного дома или умного офиса. А умный дом – это частный случай промышленной сети. Но это не точно! Отсюда вывод - проблемы безопасности промышленных сетей наследуются умным офисом, домом и умными гирляндами, в частности. Вообще любым умным девайсом. Поэтому я буду писать умный дом(не буду брать его в кавычки) и при этом буду иметь ввиду умный дом, умный офис, умные гирлянды и IoT, в принципе. На промышленные сети тоже можно натянуть.
Узнать насколько глубока кроличья нораХабр, привет!
Мы с коллегами в отделе аналитических исследований регулярно подводим киберитоги года: рассказываем, кто кого атаковал и как это было: цифры, факты, реальные истории атак. В этой статье речь пойдет о том, как выглядел мировой ландшафт киберугроз в 2025 году: какие отрасли подвергались кибератакам, кто приложил к этому руку, какими техниками пользовались киберпреступники — о тех сложившихся ИБ-трендах, которые найдут отклик в ближайшем будущем.
Читать далееКоманда AI for Devs подготовила перевод подробного гайда по Claude Code — от skills и хуков до MCP, субагентов и плагинов. Автор делится реальным сетапом после месяцев ежедневной работы и показывает, как выжать максимум из Claude Code, не убив контекст и производительность.
Читать далееНаверняка многие из вас ловили этот момент. На часах 02:00, вы наконец-то захлопываете крышку макбука. Глаза песочит, поясница ноет. Вы ложитесь в кровать и... тишина. Физическое тело истощено в ноль, но в голове на максимальных оборотах продолжает крутиться бесконечный цикл while(true). Вы рендерите архитектуру, прокручиваете недавний напряженный синк с продактом, дебажите код без монитора и пытаетесь оптимизировать SQL-запрос, который уперся в потолок по I/O.
Утром вы просыпаетесь с ощущением, что по вам проехал каток. Первая мысль: дожить до кофемашины. Вторая: дожить до выходных.
По-моему, наша IT-индустрия совершила фатальную ошибку, когда романтизировала депривацию сна. Мы привыкли относиться ко сну как к досадной необходимости. Как к выключению из розетки (sudo shutdown -h now), во время которого система просто простаивает и не приносит пользы бизнесу. Но если копнуть в современную нейробиологию, выяснится неприятная вещь. Сон является самым ресурсоемким и активным процессом обслуживания нашей системы. Если мы не спим, мы не «работаем больше». Мы просто копим критические ошибки в ядре.
Давайте разберем эту проблему так, как мы привыкли: через архитектуру, дебаггинг и системные протоколы. И начнем, пожалуй, с главного бага в нашей прошивке.
Читать далееНесмотря на использование биологических аналогий, предлагаемый метод не относится к quorum sensing clustering в классическом смысле.
В работах, вдохновлённых quorum sensing, сигнал напрямую связан с локальной плотностью и используется как механизм адаптивного выбора радиуса влияния или порога плотности. Фактически такие методы остаются плотностными моделями кластеризации с биологической мотивацией (см., например, arXiv:1303.3934).
В предлагаемом подходе сигнал имеет иную природу.
Он не отражает количество соседей и не служит индикатором принадлежности к кластеру, а представляет собой внутреннее бинарное состояние агента, определяющее режим его локального взаимодействия с окружением.
Кластеризация в этой модели не является результатом разбиения пространства по геометрическим признакам. Она возникает как побочный эффект динамики, в которой устойчивые коллективные режимы поведения формируются, стабилизируются и защищаются через локальные правила взаимодействия.
Читать далее