За последний год я собрал 33 ИИ-агента. Шахматный тренер для ребёнка, помощник по учёбе, ассистент для жены, тьюторы образовательных программ, боты для металлургического холдинга и энергетической компании, внутренние агенты отдела продаж и CRM.
Все они работают на одном движке. Один и тот же Docker-образ, одна и та же кодовая база. Форков ядра — ноль.
Различаются они ровно одним: где у каждого проходит граница между тем, что считает код, и тем, что говорит модель. Это и есть содержание всей работы. Не промпт-инжиниринг, не выбор модели, не RAG. Граница.
Ниже — разбор шести агентов с двух полюсов этой границы, реальный код, замеры и грабли, включая те, где я сам эту границу провёл неправильно.
TL;DR
Читать далееУ директив proxy_* и fastcgi_* совпадает 46 опций из 53 — буферизация, таймауты, кеш, next_upstream, с точностью до префикса и вплоть до значений по умолчанию. Два независимо написанных модуля так не сходятся.
Они и не независимы. Всё, чем proxy_pass отличается от fastcgi_pass, — девять указателей на функции в ngx_http_upstream_t. Соединение, таймауты, повторы, буферизация и отдача клиенту лежат в общих 7352 строках ngx_http_upstream.c, и восемь модулей — от proxy до свежего tunnel — дёргают один и тот же код.
Только контракт из этих девяти указателей врёт в обе стороны. Один из них, abort_request, ставят все восемь модулей — а машинерия не вызывает его ни разу: ноль вызовов во всём дереве и ни одного коммита с вызовом за всю публичную историю, с импорта 0.1.14 в январе 2005-го. Другой, pipe->input_filter, в контракте не объявлен вовсе — но обязателен, как только включена буферизация, и вызывается без проверки на NULL.
Разбираем по тегу release-1.31.3 со ссылками файл:строка: все места вызова каждого колбэка, включая тот, который разбирает заголовок не из сокета, а из файла кеша; матрица «кто какие указатели ставит» по всем восьми модулям; два сценария падения с разными стек-трейсами. Плюс свой рабочий upstream-модуль на 335 строк, собранный и проверенный curl'ом, и tunnel — самый маленький из восьми, приехавший в open source в апреле.
Читать далееВ прошлой статье было рассказано как “в три промпта” был получен shell для свитча SNR-2990X-24FQ (OEM DCN), в этой статье будет рассказано о более сложном реверс-инжиниринге свитча одного из топ-вендоров в мире сетевого оборудования.
Читать далееКогда работа, к которой вы долго стремились, перестаёт радовать, легко решить, что вы обленились, выгорели или выбрали не ту профессию. Но иногда прежние стимулы просто больше не совпадают с тем, что человеку сейчас нужно. Попробуем разделить стимул, мотив и потребность и разобраться, почему одинаковая зарплата, сложная задача или сильная команда для разных разработчиков означают совершенно разные вещи.
Читать далееChunk делит коллекцию на массивы — одна строка кода. Но есть размер чанка, после которого он замедляется в разы при тех же данных и той же памяти. А на массиве и на List<int> внутри разный код, и в самой строке этого не видно.
Читать далееПервая часть закончилась тем, что телефон заработал, и какое-то время этим всё и ограничивалось. postmarketOS на mainline-ядре, сверху Docker, Tailscale и один небольшой сервис, которому от меня ничего не требовалось. Я убрал телефон на полку и перестал о нём думать — ровно этого я от него и хотел.
Сервис работал. Заодно выяснилось, что процессор всё это время держался на 70 °C. Не под нагрузкой, а в покое, днём и ночью, на устройстве без вентилятора и без радиатора, где тепло уходит только через собственный алюминиевый корпус.
Вопрос, который стоило задать сразу: чем он занят, что даёт такую температуру. Дальше — ответ на него.
Читать далееПриложение называлось SeizureDetector — «детектор приступа». Под таким именем Connect IQ Store публиковать его отказался. Слишком много ответственности. И правильно сделал. Так что теперь это ShakeDetector, детектор тряски. Никогда не думал, что столкнусь с этой темой.
Читать далееВ этой статье я расскажу, как запустить Bonsai-27B на обычной видеокарте и как мой форк llama.cpp делает модель умнее прямо на инференсе. Показываю реальный тест: на одной и той же задаче базовая модель зависла и не смогла решить, а рекуррентная довела до ответа. Объясняю, что происходит внутри, сколько это стоит по скорости, и даю команды, чтобы повторить всё у себя на железе.
Ну давай посомтримКак превратить записи встреч в рабочий материал для согласования требований: текущая версия проекта AudioToText. В статье показываю, как собрать сервис транскрибации на базе MLX Whisper и Django, чтобы автоматически получать структурированные протоколы созвонов, а не просто длинные текстовые файлы. Разбираю сценарий работы, ключевые элементы веб‑интерфейса, review‑контур и планы развития проекта в сторону NER и поиска противоречий по summary.
Как запись встречи становится рабочим артеИдея: понедельник, 10:00. Что если из заметок в obsidian собирать (пересобирать) готовые презентации образовательных курсов?
Читать далееВышла новая версия браузера Northstar.
Ранее на ЛОРе появлялись новости о браузере Nordstjernen того же автора. Проекты развиваются параллельно. Northstar – простой веб-браузер с открытым исходным кодом, распространяемый по лицензии GPL. Nordstjernen — более сложный браузер, исходный код которого доступен, но лицензия ограничивает создание конкурирующего браузера на основе этого исходного кода.
Northstar ориентируется на поддержку современных стандартов HTML и CSS.
Началось всё беззаботно. Я участвовала в локальном писательском конкурсе, где рассказ надо писать по выпавшему жанру, и мне выпала антиутопия, а я выпала в осадочек.
Что я знала про антиутопию? Ну, читала «1984» когда-то давно, ещё в той жизни, где у меня было время читать что-то кроме логов. Помнила, что это когда мир вокруг тебя хреновый, но старательно притворяется хорошим, а главный герой, сколько бы ни бился, всё равно проигрывает. Плюс бонусы: кодовые имена и лозунги на плакатах. Негусто, короче.
И тут мне в голову пришла идея, (старая как мир): злой мир, где людей вместо казни или после смерти просто копируют. Не убивают, а «продолжают». Загружают весь твой цифровой след, обучают модель, а потом навешивают на тебя датчики, и ты неделю ходишь, живёшь, а система за эту неделю учится думать за тебя. Ты мёртв, твоё копия машет с экрана, все счастливы. Красиво же? Жутко. По-антиутопически. Я довольная села писать.
Приз я не получила, зато получила вопрос, который потом не отпускал меня всю неделю: а что я, собственно, написала? Антиутопию aka выдумку? Или научную фантастику aka научпоп, а может вообще прогноз будущего?
Сразу дисклеймер, чтобы вы не пришли меня бить: я не эксперт в LLM-архитектуре и вообще не нейробиолог. Я пришла сюда не с ноги «смотрите какая я умная», а с ноги «мне стало интересно, я пошла гуглить и офигела, насколько случайно попала и не попала». Это разбор моей наивной идеи, сначала написанной на вдохновении как просто писака, а потом уже отрефлексированной после публикации. Погнали по кускам: ровно в том порядке, в каком я сама во всё это проваливалась.
Читать далееРазработчик Эмануэле Бонура, также известный под именами Manny и izzy88izzy, показал работающий перенос Half-Life на оригинальную PlayStation. Проект HL-PSX запускается непосредственно на консоли, а не внутри эмулятора. Рендерер и игровая среда исполнения написаны на Rust поверх открытого набора средств разработки PSoXide.
В опубликованной видеозаписи разработчик прошёл все семь карт обучающего раздела Hazard Course на консоли SCPH-9002. Средняя частота кадров составляет около 17 кадров в секунду. Большую часть времени игра выдаёт примерно 20 кадров, но в крупных помещениях производительность снижается до 10–16 кадров. Работают сохранения, загрузка, оружие, противники, интерфейс и сценарные последовательности, хотя проблемы остаются в обработке звука, столкновений и некоторых элементов графики.
( читать дальше... )
4 августа состоялся выпуск Bottles 65 — свободного приложения для создания и управления изолированными Wine-окружениями, предназначенными для запуска Windows-программ и игр в Linux. Разработчики насчитали в новой версии более ста изменений и включили в поставку Soda 11.0-4, который они назвали «лучшим раннером за всю историю Bottles».
( читать дальше... )
Привет хабр!
Мы разрабатываем приложение для управления линейным персоналом.
Хочу рассказать об одной из самых сложных наших разработок — динамического визуального кода, который должен считываться камерой обычного смартфона в реальном времени.
Внутри продукта эта технология называется MotionCode. Внешне всё выглядит довольно просто: панель воспроизводит последовательность визуальных элементов, камера телефона считывает их, а приложение восстанавливает код.
На практике путь от первого прототипа до стабильной работы оказался гораздо сложнее. Мы успели обучить модель для object detection, столкнуться с ограничениями мобильного железа, отказаться от нейросети и почти без опыта в компьютерном зрении построить собственный real-time-пайплайн обработки кадров.
Читать далееЭдгар Добрибан, статистик из Уортонской школы Пенсильванского университета, сел за разговор с GPT-5.6 Pro. Модели он дал только математическое определение процедуры Бенджамини-Хохберга и вопрос: доказать или опровергнуть. Примерно через полтора часа рассуждений она выдала доказательство, конкретный контрпример и код численного сертификата к нему.
Читать далееЧтобы измерять дальность до Apollo у Луны с метровым разрешением, NASA использовала псевдослучайные коды, корреляцию слабого сигнала и сложную радиосистему S-диапазона. Разбор от Ken Shirriff, как всё это работало на транзисторной логике 1960-х годов.
Заглянуть внутрьСтатья посвящается недавнему сомнительному решению Яндекса уменьшить объём своего диска и жестоко покарать всех, кто посмел: впихнуть невпихуемое, не удалить старые файлы или просто не суметь разобраться в их «гениальном» интерфейсе и удалить снимки, которые не подчиняются абстракции файлов вообще. Ваш покорный слуга создаёт расширение, которое позволяет решить проблему. На превью то, кем он себя видит: грозным защитником угнетённых бабуль из бухгалтерии, в клетчатой рубашке инженера и с волшебным мечом.
Читать далееШапка канала и его биография это два разных документа.
В шапке может быть красивая цифра, а в биографии столб из трёх тысяч подписчиков, пришедших во вторник ночью без причины.
В Telegram Ads такая площадка покупает вам воздух: объявление показывается людям, которых нет.
Рассказываю, по каким признакам я отличают накрутку за час разглядывания графиков, и почему один признак ещё ничего не доказывает.
Читать далее4 августа состоялся выпуск Wild 0.10 — свободного компоновщика, написанного на Rust и предназначенного прежде всего для быстрой сборки программ в Linux. Компоновщик выполняет заключительный этап сборки: объединяет объектные файлы и библиотеки в готовый исполняемый файл или разделяемую библиотеку. Wild может использоваться как замена GNU ld, LLD и Mold, хотя заявленная разработчиками конечная цель — инкрементальная компоновка — пока не реализована.
Одним из главных новшеств стала поддержка параметров --gdb-index и --no-gdb-index. При включении этой возможности Wild создаёт в выходном файле секцию .gdb_index с индексом отладочной информации. Благодаря этому GDB может быстрее находить необходимые символы в крупных программах, не формируя индекс отдельно после сборки. Реализация поддерживает девятую версию формата GDB Index; операции сканирования, объединения и записи индекса были распараллелены.
Значительно расширена работа со сценариями компоновщика. Добавлена поддержка:
( читать дальше... )