Habr.com

Ленты новостей Хабр
Все публикации подряд на Хабре
Обновлено: 10 мин. 47 сек. назад

Почему красивые концепты не доходят до производства

3 часа 51 мин. назад

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

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

На практике этого почти никогда не происходит.

Проходит время — и концепт начинает меняться. Сначала незначительно, потом всё заметнее. Что-то упрощается, что-то исчезает, где-то форма становится грубее, где-то — нейтральнее. В итоге продукт либо выходит уже другим, либо не выходит вовсе, оставшись «правильной версией» в презентации.

Важно подчеркнуть: речь не о плохих концептах. Речь именно о хороших — тех, за которые обидно.

Читать далее

[Перевод] Структуры данных на практике. Глава 2: Иерархия памяти

3 часа 53 мин. назад

«Память — это современный диск, диск — это современная лента», — Джим Грей

Проблема ста тактов

В Главе 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 миллиона тактов?

Читать далее

Работа с нестабильными тестами в Allure 3

4 часа 2 мин. назад

Нестабильные (flaky) тесты создают постоянные трудности для тестировщиков. Такие тесты не отражают состояния тестируемой системы и подрывают доверие к тестовому набору.

Вооружившись лучшими практиками, нестабильность можно свести к минимуму, но полностью избавиться от неё крайне трудно. Чтобы лучше её контролировать, нужны инструменты, позволяющие выявлять нестабильные тесты — например, Allure Report. В этом руководстве мы посмотрим, как Allure работает с нестабильными тестами.

Заодно мы познакомимся с Allure 3. Многие из вас наверняка пользуются Allure 2 — в третьей версии (помимо прочих изменений) работа с нестабильными тестами стала гораздо удобнее, в особенности настройка истории тестов.

Читать далее

Как я сделал виджет видеозвонков для сайтов с транскрипцией речи в реальном времени

4 часа 19 мин. назад

Я давно увлекаюсь и изучаю технологии WebRTC. Устанавливал для клиентов множество WebRTC медиа серверов и кастомизировал их. Но постоянно не хватало гибкости. В итоге обнаружил чистую реализацию WebRTC на Golang, которая умеет и MESH, и SFU. Сейчас буду рассказывать, что удалось разработать и в чем польза.

Читать далее

BlueVein: как я потратил месяц, чтобы не тратить 56 часов в год на переподключение Bluetooth устройств в dual-boot

4 часа 23 мин. назад

Переключаешься между Linux и Windows в dual-boot? Тогда ты точно знаком с этой проблемой: каждый раз нужно переподключать все Bluetooth-устройства. Наушники, мышь, клавиатуру, геймпад — всё заново.

Даже подумать страшно:
3 устройства × 90 секунд × 3 переключения в день × 250 дней = 56 часов в год впустую.

Я потратил месяц на решение этой проблемы и написал BlueVein — утилиту для автоматической синхронизации Bluetooth-ключей между ОС.

Читать далее

Революционный подход в школьной образовательной робототехнике

4 часа 23 мин. назад

Mirte — это недорогая полностью open-source платформа учебного мобильного робота, где ученик проходит путь «от телеуправления и Blockly до Python, SSH и полноценного ROS», задуманная как единый «трек» обучения от начальной школы до университета, оставаясь на одном и том же роботе и в одной и той же среде. Идея Mirte в образовании — не прятать «настоящую» робототехнику за игрушечными абстракциями, а сделать к ней удобный, поэтапный вход.

Читать далее

Clawdbot — автономный агент с инициативой

4 часа 24 мин. назад

К началу 2026 года стало заметно: формат "чат с LLM" перестал закрывать реальные инженерные задачи.
Да, модель может подсказать решение. Но дальше начинается привычная цепочка: открыть терминал, написать код, проверить, подправить, запустить, отследить результат.

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

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

Clawdbot - один из таких проектов.

Читать далее

Дизайн-тренажер: как встроить документы в отчетную таблицу, не перегрузив интерфейс

4 часа 26 мин. назад

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

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

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

Таблицы в отчетах — это обычно строгие строки, столбцы, цифры, статусы. Их сила в структуре и предсказуемости. Но как только появляются вложения (PDF, сканы, договоры), возникает дилемма:

Читать далее

Основы Python за 1 статью: от Hello World до рабочего скрипта

4 часа 28 мин. назад

Python за одну статью? Да, если выкинуть оттуда ООП.

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

Читать далее

Горизонтальное масштабирование 1С: переносим отчеты на реплику без потери производительности

4 часа 31 мин. назад

В статье рассматриваются текущие возможности горизонтального масштабирования СУБД для 1С, а также какое решение предлагает Tantor Postgres.

Читать далее

Сперва убираем облака, а потом используем: или как я подключал дешевые китайские модули к умному дому

4 часа 35 мин. назад

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

Недавно случайно в мои руки попали два дешевых IoT-модуля от одного китайского производителя, которые были куплены в сети DNS. Раз попали в руки, нужно их использовать. Вот только есть одна проблема: все подобные устройства работают через облачные сервисы. В своей домашней автоматизации я придерживаюсь жёсткого правила — никаких облачных сервисов в моём умном доме! Поэтому достаём из ящика программатор с паяльником и за дело! А что из этого вышло, читайте далее.

Читать далее

«Мы убираем только критические ошибки», или как разработчики игр высмеивают собственные баги

4 часа 40 мин. назад

Привет, Хабр! На связи Владимир Туров, разработчик в Selectel. Ошибки — неизбежная часть сложных процессов, особенно когда речь идет о таких многослойных проектах, как компьютерные игры. Даже самые опытные команды не застрахованы от технических сбоев, связанных с работой игровых движков. Воспроизведение законов физики, загрузка данных, одновременное взаимодействие множества подсистем — нетривиальная задача даже для признанных мастеров индустрии.

Однако помимо очевидных технических ошибок существуют и логические неточности. Появляются они не потому, что разработчики что-то «недоделали» или «недодумали», а из-за сознательных упрощений. Игровой мир редко подчиняется законам реальности полностью — персонажи могут носить десятки предметов в карманах, раны заживают за несколько секунд, а сложнейшие устройства управляются нажатием единственной кнопки. 

Все — ради темпа, удобства и удовольствия игрока. Иногда такие упрощения выглядят странно или смешно, и именно в этот момент у разработчиков появляется выбор — игнорировать нелогичность или превратить ее в шутку.

Читать далее →

Как мы собрали среду для AI-ассистированной разработки приложений Битрикс24

4 часа 40 мин. назад

Привет, меня зовут Владимир Верхотуров, я занимаюсь DevRel в Битрикс24, а именно обеспечиваю связь внешних разработчиков (партнёры/клиенты) и внутренних команд, чтобы интеграции и решения на базе REST и других инструментов запускались быстро, стабильно и предсказуемо. И в этой статье я хочу рассказать о стартер-ките AI-ассистированной разработки, который мы создали, чтобы ускорить и немного упростить вывод новых продуктов на Маркетплейс приложений Битрикс24.

Читать далее

Продолжение эксперимента: где автономный агент теряет слой в Kubernetes

4 часа 41 мин. назад

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

Если в предыдущем эксперименте слои выглядели так:

Читать далее

Не только код: как использовать аналитическое мышление для трудных диалогов

4 часа 44 мин. назад

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

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

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

Читать далее

Ломаем умный дом соседа и защищаем свой

4 часа 52 мин. назад

Все началось с комментария для СМИ про атаки на умные гирлянды. Мне стало, во первых интересно разобраться глубже, а во вторых, показалось, что мне есть, что сказать по теме. Зря я что-ли два года продвигал решения по защите промышленных сетей и АСУ ТП. Умные гирлянды - это подвид IoT, умного дома или умного офиса. А умный дом – это частный случай промышленной сети. Но это не точно! Отсюда вывод - проблемы безопасности промышленных сетей наследуются умным офисом, домом и умными гирляндами, в частности. Вообще любым умным девайсом. Поэтому я буду писать умный дом(не буду брать его в кавычки) и при этом буду иметь ввиду умный дом, умный офис, умные гирлянды и IoT, в принципе. На промышленные сети тоже можно натянуть.

Узнать насколько глубока кроличья нора

Ландшафт киберугроз в 2025-м в России и мире

5 часов 2 мин. назад

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

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

Читать далее

[Перевод] Claude Code: практический гайд по настройке, автоматизации и работе с контекстом

5 часов 9 мин. назад

Команда AI for Devs подготовила перевод подробного гайда по Claude Code — от skills и хуков до MCP, субагентов и плагинов. Автор делится реальным сетапом после месяцев ежедневной работы и показывает, как выжать максимум из Claude Code, не убив контекст и производительность.

Читать далее

Kernel Panic к 30 годам: почему выгорание — это не психология, а переполненный кэш и отказ ночного бэкапа

5 часов 10 мин. назад

Наверняка многие из вас ловили этот момент. На часах 02:00, вы наконец-то захлопываете крышку макбука. Глаза песочит, поясница ноет. Вы ложитесь в кровать и... тишина. Физическое тело истощено в ноль, но в голове на максимальных оборотах продолжает крутиться бесконечный цикл while(true). Вы рендерите архитектуру, прокручиваете недавний напряженный синк с продактом, дебажите код без монитора и пытаетесь оптимизировать SQL-запрос, который уперся в потолок по I/O.

Утром вы просыпаетесь с ощущением, что по вам проехал каток. Первая мысль: дожить до кофемашины. Вторая: дожить до выходных.

По-моему, наша IT-индустрия совершила фатальную ошибку, когда романтизировала депривацию сна. Мы привыкли относиться ко сну как к досадной необходимости. Как к выключению из розетки (sudo shutdown -h now), во время которого система просто простаивает и не приносит пользы бизнесу. Но если копнуть в современную нейробиологию, выяснится неприятная вещь. Сон является самым ресурсоемким и активным процессом обслуживания нашей системы. Если мы не спим, мы не «работаем больше». Мы просто копим критические ошибки в ядре.

Давайте разберем эту проблему так, как мы привыкли: через архитектуру, дебаггинг и системные протоколы. И начнем, пожалуй, с главного бага в нашей прошивке.

Читать далее

Устойчивые режимы поведения вместо плотности: динамический взгляд на кластеризацию

5 часов 12 мин. назад

Несмотря на использование биологических аналогий, предлагаемый метод не относится к quorum sensing clustering в классическом смысле.
В работах, вдохновлённых quorum sensing, сигнал напрямую связан с локальной плотностью и используется как механизм адаптивного выбора радиуса влияния или порога плотности. Фактически такие методы остаются плотностными моделями кластеризации с биологической мотивацией (см., например, arXiv:1303.3934).

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

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

Читать далее

Сейчас на сайте

Сейчас на сайте 0 пользователей и 0 гостей.