Обновить

Все потоки

Сначала показывать
Порог рейтинга
Уровень сложности

Я собрал 33 ИИ-агента на одном движке. Показываю, как устроены пять из них

Уровень сложностиСредний
Время на прочтение28 мин
Охват и читатели360

За последний год я собрал 33 ИИ-агента. Шахматный тренер для ребёнка, помощник по учёбе, ассистент для жены, тьюторы образовательных программ, боты для металлургического холдинга и энергетической компании, внутренние агенты отдела продаж и CRM.

Все они работают на одном движке. Один и тот же Docker-образ, одна и та же кодовая база. Форков ядра — ноль.

Различаются они ровно одним: где у каждого проходит граница между тем, что считает код, и тем, что говорит модель. Это и есть содержание всей работы. Не промпт-инжиниринг, не выбор модели, не RAG. Граница.

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

TL;DR

Читать далее

Новости

proxy_pass и fastcgi_pass — одна машина

Уровень сложностиСложный
Время на прочтение11 мин
Охват и читатели1.2K

У директив 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 и root shell на свитче Huawei S6330 с прошивкой V200R021

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели856

В прошлой статье было рассказано как “в три промпта” был получен shell для свитча SNR-2990X-24FQ (OEM DCN), в этой статье будет рассказано о более сложном реверс-инжиниринге свитча одного из топ-вендоров в мире сетевого оборудования.

Читать далее

Печеньки стали дороже. Стимул, мотив, потребность: разбираемся, чего мы ждём от работы

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели1.7K

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

Читать далее

Бенчмаркая Enumerable.Chunk: почему батчей меньше, а проход до ×2,7 дольше

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели1.9K

Chunk делит коллекцию на массивы — одна строка кода. Но есть размер чанка, после которого он замедляется в разы при тех же данных и той же памяти. А на массиве и на List<int> внутри разный код, и в самой строке этого не видно.

Читать далее

Как я починил энергосбережение OnePlus 3T на mainline ядре

Уровень сложностиСложный
Время на прочтение33 мин
Охват и читатели3.5K

Первая часть закончилась тем, что телефон заработал, и какое-то время этим всё и ограничивалось. postmarketOS на mainline-ядре, сверху Docker, Tailscale и один небольшой сервис, которому от меня ничего не требовалось. Я убрал телефон на полку и перестал о нём думать — ровно этого я от него и хотел.

Сервис работал. Заодно выяснилось, что процессор всё это время держался на 70 °C. Не под нагрузкой, а в покое, днём и ночью, на устройстве без вентилятора и без радиатора, где тепло уходит только через собственный алюминиевый корпус.

Вопрос, который стоило задать сразу: чем он занят, что даёт такую температуру. Дальше — ответ на него.

Читать далее

Детектор не приступов, а тряски. Приложение для часов Garmin

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели4.5K

Приложение называлось SeizureDetector — «детектор приступа». Под таким именем Connect IQ Store публиковать его отказался. Слишком много ответственности. И правильно сделал. Так что теперь это ShakeDetector, детектор тряски. Никогда не думал, что столкнусь с этой темой.

Читать далее

3. Bonsai-27B на рекурсивном форке llama.cpp: полный запуск и реальный бенчмарк на RTX 3050

Уровень сложностиСложный
Время на прочтение4 мин
Охват и читатели4.5K

В этой статье я расскажу, как запустить Bonsai-27B на обычной видеокарте и как мой форк llama.cpp делает модель умнее прямо на инференсе. Показываю реальный тест: на одной и той же задаче базовая модель зависла и не смогла решить, а рекуррентная довела до ответа. Объясняю, что происходит внутри, сколько это стоит по скорости, и даю команды, чтобы повторить всё у себя на железе.

Ну давай посомтрим

AudioToText: управление требованиями через записи встреч

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели6K

Как превратить записи встреч в рабочий материал для согласования требований: текущая версия проекта AudioToText. В статье показываю, как собрать сервис транскрибации на базе MLX Whisper и Django, чтобы автоматически получать структурированные протоколы созвонов, а не просто длинные текстовые файлы. Разбираю сценарий работы, ключевые элементы веб‑интерфейса, review‑контур и планы развития проекта в сторону NER и поиска противоречий по summary.

Как запись встречи становится рабочим арте

Конвейер по созданию презентаций на базе заметок obsidian и локального ИИ

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели5.1K

Идея: понедельник, 10:00. Что если из заметок в obsidian собирать (пересобирать) готовые презентации образовательных курсов?

Читать далее

Как рассказ на литконкурс превратил меня в исследователя копирования сознания

Уровень сложностиПростой
Время на прочтение13 мин
Охват и читатели5.7K

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

Что я знала про антиутопию? Ну, читала «1984» когда-то давно, ещё в той жизни, где у меня было время читать что-то кроме логов. Помнила, что это когда мир вокруг тебя хреновый, но старательно притворяется хорошим, а главный герой, сколько бы ни бился, всё равно проигрывает. Плюс бонусы: кодовые имена и лозунги на плакатах. Негусто, короче.

И тут мне в голову пришла идея, (старая как мир): злой мир, где людей вместо казни или после смерти просто копируют. Не убивают, а «продолжают». Загружают весь твой цифровой след, обучают модель, а потом навешивают на тебя датчики, и ты неделю ходишь, живёшь, а система за эту неделю учится думать за тебя. Ты мёртв, твоё копия машет с экрана, все счастливы. Красиво же? Жутко. По-антиутопически. Я довольная села писать.

Приз я не получила, зато получила вопрос, который потом не отпускал меня всю неделю: а что я, собственно, написала? Антиутопию aka выдумку? Или научную фантастику aka научпоп, а может вообще прогноз будущего?

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

Читать далее

От object detection к классическому CV: разрабатываем сканер для слабых смартфонов

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели5.8K

Привет хабр!

Мы разрабатываем приложение для управления линейным персоналом.

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

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

На практике путь от первого прототипа до стабильной работы оказался гораздо сложнее. Мы успели обучить модель для object detection, столкнуться с ограничениями мобильного железа, отказаться от нейросети и почти без опыта в компьютерном зрении построить собственный real-time-пайплайн обработки кадров.

Читать далее

ИИ за полтора часа взял задачу, над которой статистики бились 20 лет

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели5.5K

Эдгар Добрибан, статистик из Уортонской школы Пенсильванского университета, сел за разговор с GPT-5.6 Pro. Модели он дал только математическое определение процедуры Бенджамини-Хохберга и вопрос: доказать или опровергнуть. Примерно через полтора часа рассуждений она выдала доказательство, конкретный контрпример и код численного сертификата к нему.

Читать далее

Ближайшие события

Как NASA измеряла дальность до Apollo с метровым разрешением — на технике 1960-х

Уровень сложностиСредний
Время на прочтение20 мин
Охват и читатели6.4K

Чтобы измерять дальность до Apollo у Луны с метровым разрешением, NASA использовала псевдослучайные коды, корреляцию слабого сигнала и сложную радиосистему S-диапазона. Разбор от Ken Shirriff, как всё это работало на транзисторной логике 1960-х годов.

Заглянуть внутрь

Как я воевал с Яндексом и решил проблему «мертвых душ» на диске

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели6.1K

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

Читать далее

Как понять, что tg-канал накручен и лучше на него не заливать?

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели7.4K

Шапка канала и его биография это два разных документа.

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

В Telegram Ads такая площадка покупает вам воздух: объявление показывается людям, которых нет.

Рассказываю, по каким признакам я отличают накрутку за час разглядывания графиков, и почему один признак ещё ничего не доказывает.

Читать далее

Сшивка кадров с микроскопа: как собрать большое изображение из видео

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели7.4K

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

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

Читать далее

Похоже, мы проспали рубеж в 3 ТВт солнечной энергетики

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели7.5K

Тут такая забавная ситуация получается. Похоже, мировая солнечная энергетика уже перешагнула отметку в 3 ТВт установленной мощности, но при этом до сих пор никто не может точно сказать, в какой именно день это произошло ¯\_(ツ)_/¯

Читать далее

Я написал мессенджер в одиночку … Разбор 149-ФЗ

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели7.8K

Омаж на статью https://habr.com/ru/articles/1066668/ от @BorisXQ

Я тоже написал "мессенджер" на любимом $mol ( благодаря которому я могу добавить этот мессенджер в любое своё $mol приложение за 1 строчку кода ) и GiperBaza, без слежки, логина, пароля, и вообще без сбора каких либо данных

И даже почти без сервера)

P.S Только для домашнего использования

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

Вступайте в очередной реестр всех айтишников!) https://b-on-g.github.io/gram/#!users=xa77SU2P_FSMnTiSP

Или написать мне напрямую https://b-on-g.github.io/gram/#!invite=J2kVT1UX_fmQm09dd

Читать далее

Пробирка как процессор или как молекулы ДНК научились решать задачи

Время на прочтение6 мин
Охват и читатели7.9K

Есть белок — рестриктаза ЭкоРИ. Она плавает в клетке, натыкается на двойную спираль ДНК и ищет конкретную последовательность из шести нуклеотидов (ГААТТЦ). Нашла — разрезает цепь ровно между первой и второй буквой. В стандартных лабораторных условиях никакой другой последовательности она не трогает. 

Прим. автора: при высоком содержании глицерина или нестандартном pH у ЭкоРИ проявляется так называемая звёздная активность — фермент начинает резать похожие, но не идентичные последовательности. Это известный артефакт, с которым борются в любом молекулярном протоколе.

Форма активного центра белка оптимизирована именно под эти шесть нуклеотидов — точное структурное соответствие обеспечивает во много раз большее сродство, чем к любой другой комбинации. Биохимики называют это специфичностью.

Леонард Эдлман — тот самый, чья буква «А» стоит в конце аббревиатуры RSA. Профессор Университета Южной Калифорнии, в 2002 году получил премию Тьюринга — высшую награду в информатике. В 1993 году, читая учебник Уотсона по молекулярной биологии, он задумался — а если фермент узнаёт последовательность и выполняет действие, это ведь и есть вычисление. Спустя год опубликовал эксперимент.

Читать далее
1
23 ...