На периферии двух гигантов инженеры Weichai vs инженеры Yuchai. Интересно кто умней? Ответ на этот вопрос я не знаю. Но когда разбираешь логи j1939 ты понимаешь, перед тобой две школы инженерии.
Читать далееВ детстве одним из моих любимых боевиков был "Хищник" с Арнольдом Шварцнеггером, в котором больше всего мне нравилась маска пришельца, позволявшая ему переключаться между спектрами и видеть тепло, самому оставаясь невидимкой. На невидимость пока не замахиваюсь, а вот сделать подобие маски Хищника – почему бы и да?
Читать далееВсем привет!
У вас было такое, когда заканчиваются недельные или часовые лимиты в Codex или Claude Code, а потом вы внезапно обнаруживаете, что лимиты уже сбросили?
Приятно, да? Особенно Codex этим часто радует :)
Так вот, я хотел получать уведомления о таких сбросах. Но при этом не хотел самостоятельно мониторить X — бывший Twitter — или постоянно проверять другие источники.
Читать далееВ июле появились признаки улучшения ситуации по Automation QA и Senior QA - число нанимающих компаний по этим ролям за месяц уменьшилось всего на 0.2%. Это минимальное падение за последние три месяца, и оно в рамках погрешности измерений.
Совершенно другая ситуация с ролью Manual QA - здесь уверенное падение продолжается. Процент нанимающих компаний в очередной раз снизился и достиг 21.6%. Для сравнения: в феврале нанимающих компаний было 40.7%. То есть меньше чем за полгода произошло двукратное падение!
Что интересно, с приходом AI это никак не связано - на американском рынке, где масштабное внедрение AI идет уже давно, в июле число вакансий Manual QA выросло.
По ролям AI QA / ML Evaluation ситуация продолжает оставаться непонятной - некоторый рост есть, но на фоне изначально низкого числа вакансий он очень незначителен.
Читать далееПриветсвую всех читателей Хабра. В этой статье я хочу рассказать о том, как я пытаюсь сделать современный ИИ свободнее, через свою copyleft Лицензию. Она носит имя FMLL (Free Machine Learning License). Ее цель — сделать copyleft не только код LLM, датасеты, RAG и другие инструменты. Лицензия первой версии уже доступна на GitHub.
Читать далееЯ Анастасия, ведущий SRE-инженер РСХБ.Цифра. В этой статье я расскажу о том, как мы в App.Farm, PaaS-платформе Россельхозбанка, перешли от одной «большой» Kafka до реализации услуги «Kafka as a Service» c индивидуальными кластерами под ключ. Звучит просто, но за этим кроется сложный путь проб и ошибок.
Читать далееВ предыдущем посте я писал о микрокоде и слое скриптинга. На этом этапе калькулятор почти полностью существовал только в ПО: в виде десктопного Qt-приложения, выполняющего симуляцию, или в виде страницы с WebAssembly в браузере. Это удобная среда для разработки и демонстрации, но это не калькулятор. Калькулятор должен лежать на столе, его можно взять и постучать по кнопкам.
Сегодня мы поговорим об этом этапе (за исключением издевательств над кнопками).
Читать далееВсе привыкли считать, что SI/PI-моделирование — это импеданс, S-параметры дорожек и IBIS-модель. Но что, если именно здесь большинство инженеров и допускает главную ошибку? Печатная плата — лишь небольшая часть реального канала передачи сигнала.
В этой статье разберём, почему без моделей корпуса микросхемы, разъёмов, кабелей, пассивных компонентов, температуры и измерений даже самое красивое моделирование может не иметь ничего общего с тем, что происходит в готовом устройстве. Поговорим о том, где заканчивается теория и начинается реальная инженерия.
Читать далееНе обязательно поднимать все своими руками. Разбираем три сервисные модели - пентест как сервис, VM как сервис и багбаунти, - когда какая выгоднее и где подводные камни. Заодно про взрывной рост российского багбаунти: почти 14 тысяч отчетов об уязвимостях и около 260 млн рублей выплат за 2025 год.
Читать далееВсем привет!
Почти все ИИ-ассистенты хорошо справляются с отдельными запросами, но почти каждый новый диалог начинают с чистого листа. Можно, конечно, снова объяснить структуру проекта, напомнить принятые решения и перечислить уже найденные вами ошибки, но через несколько раз это начинает раздражать.
Hermes Agent от Nous Research - это уже другой случай. Он сохраняет важные факты, ищет информацию в предыдущих диалогах, превращает удачные способы решения задач в навыки и использует их в дальнейшем. При этом, что довольно удобно, агент может работать и принимать сообщения из Telegram!
В этой статье разберем, что именно в Hermes называется самообучением, чем он отличается от обычного чат-бота, какие задачи ему можно поручить и как запустить собственного агента на удаленном сервере.
Читать далееКак хранить зашифрованный файл в репозитории Git или другой системы контроля версий? Если изменение одной строчки содержимого будет (из-за шифрования) менять весь файл целиком или значительную его часть - это портит весь подход системы контроля версий - хранение изменений "фрагментами". Значит хорошо бы шифровать "куски" - например, строки - по-отдельности, независимо.
Здесь описывается простенький рецепт для этого подхода - в духе "соль + пароль и от них взять хэш в качестве ключа". Большая же часть текста имеет несколько "дидактический" характер - обсуждение мотивации для такой задачи, границ применимости - а также напоминания и пояснения базовых соображений по криптографии - поэтому заранее приносим извинения тем читателям для кого эта информация тривиальна.
Читать далееЧто делать, если статический анализ crackme выдает 187 064 инструкции мусорного кода? Идти в динамику! В этой статье разбираем таск Callfuscated с HTB: пишем свой ptrace-трассировщик, создаем валидируемый x86-64 эмулятор на Python, снимаем дампы памяти и сводим сложную VM-обфускацию к арифметике первого курса.
Прочитать решение1. История
Корпоративная модель ИИ за $10 млн. дала негативный отзыв на недавно опубликованную статью:
[1] Vladimirov, V.V. (2026). An additional degree of freedom in the processes of self-organized criticality with violation of causality. Chaos, Solitons & Fractals, 208, 118186.
Ключевая проблема не в том, что ИИ «глупый». Проблема в том, что он обучен на другой парадигме. Вот три фундаментальные причины, почему корпоративный ИИ дал негативный отзыв — и почему это не ошибка, а закономерность.
· ИИ не видит структуру там, где она не выражена в данных
Современные LLM обучены на текстах, которые описывают уже известные паттерны. Статья — о том, как обнаружить новую структуру (гиперболическое пространство, солитон, дополнительную степень свободы), а ИИ не может «увидеть» структуру, которой нет в его обучающей выборке. Он может только распознавать известные паттерны. Это называется иллюзией компетенции — ИИ создаёт впечатление понимания, но на самом деле он просто перекомбинирует известное.
· ИИ не понимает невыпуклость и обусловленность
Градиентный спуск в невыпуклых ландшафтах страдает от плохой обусловленности матриц весов. Число обусловленности (v) — это прямой индикатор этой проблемы. Корпоративный ИИ, обученный на «best practices», не видит ценности в том, чтобы отслеживать v, потому что в стандартных подходах (Adam, BatchNorm) эту проблему пытаются маскировать, а не решать фундаментально.
Ирония в том, что исследования подтверждают наличие самоорганизованной критичности в обучении нейросетей. Нейросети действительно эволюционируют к критическому состоянию. Статья [1] предлагает способ диагностировать это состояние через (u, v). А корпоративный ИИ просто не знает, что такая диагностика возможна.
Читать далееВот именно такой вопрос был задан в первом же комментарии к статье "DI-контейнер на чистом JavaScript без TypeScript и reflect-metadata" уважаемого @alexander_kubarski. Я когда-то и сам на Хабре отвечал на этот вопрос ("Зачем нужно внедрение зависимостей в JS"), и уважаемый @Wroud тоже ("Dependency Injection в JavaScript: зачем он вам нужен"), но непонимание места и значения DI у JS-разработчиков всё равно присутствует. Попробую ответить на этот вопрос ещё раз:
Внедрение зависимостей помогает снизить стоимость верификации сложного приложения. Оно отделяет компонент от выбора конкретного окружения и позволяет проверять его относительно явных ожиданий, не поднимая каждый раз весь граф реальных зависимостей.
Именно для этого используют Inversion of Control в целом и Dependency Injection в частности - во всех языках программирования, а не только в JavaScript.
Чуть подробнее...На днях наш агент собрался дежурно отчитаться об успехе. Прежде чем нажать «готово», он сверился с собственной памятью — и нашёл там запись из прошлой сессии: эту идею он уже проверял на реальных данных, и она провалилась. Он остановил сам себя, до ложного отчёта.
Это не рекламная зарисовка, это лог из жизни. Ниже — два таких лога подряд, и во втором память заставила нас выбросить фичу, которой мы гордились.
Хватай за цифровой хвостМировой ИИ-ландшафт окончательно разделился на две параллельные экосистемы. Прошедшая в Шанхае конференция World Artificial Intelligence Conference (WAIC) 2026 зафиксировала фундаментальный сдвиг: индустрия завершила экстенсивную гонку параметров языковых моделей и перешла к этапу жесткой инженерной прагматики.
Пока западные корпорации выстраивают закрытые монополии вокруг проприетарных API, Китай делает ставку на агрессивный open source, агентные операционные системы и суверенные вычислительные кластеры, способные масштабироваться до сотен тысяч ускорителей в условиях санкционных ограничений. В этом материале мы детально разбираем аппаратные и программные итоги выставки — от альтернативных интерконнектов Huawei до VLA-моделей в промышленной робототехнике — и объясняем, почему главным продуктом WAIC 2026 стала не очередная нейросеть, а полностью независимый национальный технологический стек.
Читать далееМне просто стало скучно, и я решил посмотреть на разработку MCP , используя только Go.
Никаких “революционных продуктовых инсайтов”. Просто захотелось сделать агенту в Windsurf память по моим локальным проектам и браузерные руки без тащащегося за хвостом Node.js. Получилось два инструмента: GnostisMCP (семантический поиск кода) и KlyxarMCP (браузерная автоматизация в одном бинарнике).
Похихикать...На днях мы ознакомились с публикацией на сайте Всемирного экономического форума (https://www.weforum.org/stories/artificial-intelligence/how-ai-is-reshaping-strategic-foresight-and-global-power/), которая навела нашу редакцию на размышления об эволюции процесса долгосрочного прогнозирования. Искусственный интеллект (далее – ИИ) окончательно перестал быть просто модным веянием, превратившись в мощнейший инструмент геополитического влияния. Главной ценностью прочитанной мной статьи является четкий прикладной фокус без излишней абстрактной философии. Разработчики теперь определяют завтрашнее мироустройство не хуже, чем государственные ведомства. В данном обзоре мы структурировали ключевые тезисы, дополнив идеи статьи свежими статистическими отчетами первого полугодия 2026 года.
Читать далееКак получить три точки доступа с каскадным проводным бесшовным роумингом WiFi7 и общей LAN задёшево? Готовые Mesh-комплекты с Wi‑Fi 7 и диапазоном 6 ГГц начинаются примерно от 100 тысяч рублей, поэтому я собрал сеть из трёх самых дешёвых устройств в своём классе: Xiaomi Redmi AX6S на OpenWrt в роли маршрутизатора и Mesh-контроллера, Mercusys MR60X для покрытия Wi‑Fi 6 и Mercusys MR47BE ради Wi‑Fi 7, 6 ГГц, WPA3-SAE и канала 320 МГц.
Что получилось:
один SSID на трёх устройствах, обе точки Mercusys подключены по Ethernet EasyMesh-контроллером;
контроллер — собранный мной пакет prplmesh для OpenWrt 25.12 (APK и патчи опубликованы);
около 900 Мбит/с на проводном участке и столько же по воздуху;
после перезагрузок сеть восстанавливается сама.
возможность реализации горячего резерва двух провайдеров, SPLIT VPN и прочие прелести открытого кода
Как это собрано и сколько стоит →MAP-Elites: лучший в каждой нише
Классическая оптимизация ищет один максимум. Но в робототехнике, генерации уровней и инженерии нужен набор разнообразных хороших решений — библиотека походок под разные поломки, уровни любой сложности, фронт компромиссов.
Это Quality-Diversity. MAP-Elites (2015, arXiv:1504.04909) — простейший алгоритм.
Идея: делим пространство поведений на сетку ниш. В каждой нише храним одно лучшее решение. Генотип мутируем, поведенческий дескриптор (высота шага, энергия) — для адресации ячейки.
Алгоритм:
Пустой архив.
Случайная популяция → оценить fitness и дескриптор → в ячейку (если лучше).
Цикл: выбрать родителя → мутировать → оценить → в ячейку, если пусто или лучше.
Никакого отбора между нишами — только внутри. Это даёт карту всего пространства, а не одну точку.
Код:
```
import numpy as np
# Задача: найти x, y в [-5, 5], максимизируя fitness, ниши определяются по (x, y)
BOUNDS = (-5.0, 5.0)
GRID_SIZE = 20 # число ячеек по каждой оси behavior space
N_ITERATIONS = 5000
MUTATION_SIGMA = 0.2
def fitness(genome):
x, y = genome
# произвольная многомодальная функция для иллюстрации
return -(x**2 + y**2) + 5 np.sin(3 * x) np.cos(3 * y)
def behavior_descriptor(genome):
# в этой игрушечной задаче поведенческий дескриптoр совпадает с генотипом,
# в реальных задачах это обычно совсем другое пространство признаков
return genome
def to_cell(bd):
lo, hi = BOUNDS
idx = ((bd - lo) / (hi - lo) * GRID_SIZE).astype(int)
return tuple(np.clip(idx, 0, GRID_SIZE - 1))
def random_genome():
return np.random.uniform(*BOUNDS, size=2)
def mutate(genome):
child = genome + np.random.normal(0, MUTATION_SIGMA, size=genome.shape)
return np.clip(child, *BOUNDS)
# 1) инициализация случайными решениями
for _ in range(200):
g = random_genome()
f = fitness(g)
cell = to_cell(behavior_descriptor(g))
if cell not in archive or f > archive[cell][1]:
archive[cell] = (g, f)
Вывод: 379 / 400, лучшее (0.527, 0.005), fitness 4.72.
Почему не 400? Три причины:
200 случайных точек не покрывают все ячейки (эффект корзин).
Мутация локальна (σ=0.2). До пустой ячейки без занятых соседей не допрыгнуть — изоляция ниш.
В реальности часть пространства физически недостижима (напр, походка с нулевой энергией и высоким шагом).
Сложность
M — число ячеек в архиве (произведение числа делений по каждому измерению множества поведений), T — число итераций (эволюционных поколений/оценок), D — размерность генотипа, E — стоимость одной оценки решения (симуляция/вычисление приспособленности).
По времени: каждая итерация - это выбор случайного родителя за O(1) (при хранении в виде массива/словаря), мутация за O(D), вычисление дексриптора и приспособленности — доминирующая часть, O(E), и вставка/сравнение в ячейке за O(1). Итого на все итерации - O(T·(D + E))
Вывод: MAP-Elites даёт не "оптимум", а карту компромиссов. Ценятся не проценты заполнения, а покрытие достижимых ниш и разнообразие поведений.
Итог: простой, линейный по числу оценок, даёт инженеру не одну точку, а весь фронт возможностей.
Читать далее