Я построил автономную систему с ИИ-продактом и командой агентов-исполнителей, которая круглосуточно в несколько потоков закрывает задачи продуктового бэклога. Делюсь опытом, как я пришёл к такой схеме, что из этого получилось и при чём тут "Весёлая ферма".
Читать далееMerck и Moderna объявили об успехе третьей фазы испытаний интисмерана аутогена — персонализированной мРНК-вакцины от рака, известной ранее как mRNA-4157. В исследовании INTerpath-001 участвовали 1137 пациентов с полностью удаленной меланомой стадий IIB–IV: одна группа получала стандартную терапию, пембролизумаб (он же "Китруда"), другая — то же самое плюс вакцину. При заранее запланированном промежуточном анализе комбинация обошла стандарт и по первичной конечной точке (время до возврата болезни), и по ключевой вторичной (время до появления отдаленных метастазов). Это первый в истории положительный результат третьей фазы для мРНК-вакцины против рака — направления, от которого прорыва ждали больше десяти лет, но которое ни разу не доходило до победы в решающем испытании.
Читать далееВ прошлую среду мы пришли на работу как обычно. Ожидали самый обычный рабочий день. Статистика сетевых отказов тоже выглядела совершенно обычно, и никаких причин ждать чего-то особенного не было.
А потом дверь распахнулась, и на пороге появился Директор. С глазами навыкате.
— Ребята! Что это?
— ???
— У меня почтовый ящик забит жалобами. Ни у кого ничего не работает. Ни у кого! Ничего!
Тут он, конечно, слегка погорячился. Не то чтобы совсем ничего и не то чтобы у всех.
Децентрализованная сущность Кошачьих Туннелей сыграла свою роль — полностью заблокировать Котика не удалось. Но для нормальной работы системе нужны трекеры — опорные узлы. На тот момент их у нас было несколько десятков: в разных странах, у разных провайдеров, в разных датацентрах.
И все они, без исключения, оказались заблокированы в России.
До единого.
Без них Котик не мог нормально подключать новых пользователей, да и у старых всё начинало работать заметно медленнее.
Поскольку за опорную сеть отвечаю я, круче всего досталось, естественно, мне.
Начался сизифов труд.
Я ввожу новые узлы, запускаю новые серверы — бац, они тоже заблокированы.
Я запускаю ещё — бац.
Ещё — бац.
В общем, долго так продолжаться, конечно, не могло. Пришлось сесть и соорудить Котатор-ротатор.
Котатор-ротатор следит за доступностью опорных серверов, автоматически останавливает те, которые по статистике чаще всего недоступны клиентам, и запускает взамен новые. Причём чем хуже ситуация, тем активнее он это делает.
А степень этой самой «хуже ситуации» с лёгкой руки Марианны Николаевны называется у нас в офисе Грохотатором.
Читать далееВремя, когда антивирусное ПО основывалось лишь на статическом, или сигнатурном, анализе, уже далеко в прошлом. Хотя в 2026 году оба вида анализа по-прежнему используются, они применяются не так активно, как раньше. В далёком прошлом антивирусное ПО могло делать выводы, основываясь лишь на анализе таблицы импорта, что, соответственно, вызывало множество ложных срабатываний. В результате этого появился термин "поведенческий анализ". Его основная идея заключается в том, что антивирусное ПО оценивает не только содержимое конкретного файла, но и действия, которые выполняет запущенный процесс. Система собирает телеметрию: отслеживает создание дочерних процессов, работу с файлами и реестром, загрузку библиотек, сетевую активность, попытки получить доступ к другим процессам и другие события. Каждому наблюдаемому действию или их комбинации может соответствовать определённое правило. Если процесс выполняет операцию, характерную для вредоносного ПО, ему увеличивается условный уровень подозрительности.
Собственно, рассмотрим примитивный пример в контексте поведенческого анализа. В системе появляется новый процесс с именем winloggon.exe - уже здесь внимательный наблюдатель заметит проблему, легитимный процесс называется winlogon.exe, а одна лишняя буква в имени для вируса вполне может оказаться попыткой замаскироваться под системный процесс под невнимательность пользователя. После инициализации наш герой совершает первую ошибку: обращается к реестру и прописывает себя в Run.
Ошибка первая. Самый примитивный способ записать себя в автозагрузку. CmRegisterCallbackEx позволяет зарегистрировать обратный вызов для операций с реестром. Процесс изменил нужный ключ - телеметрия уже собрана. Но, наш вирус как вы поняли, останавливаться не собирается. Следующим шагом он загружает прямиком с диска чистую библиотеку.
Ошибка вторая. Антивирусный мини-фильтр файловой системы получает возможность наблюдать операции с файлами в виде IRP. Создание, открытие, запись, переименование - всё это уже находится в поле зрения системы защиты. Если файл появился в подозрительном месте, был создан неизвестным процессом, а затем сразу загружен этим же процессом, у нас появляется ещё одно событие. Но допустим, наш вирус достаточно глуп, чтобы пойти дальше. Он устанавливает соединение с удалённым сервером.
Ошибка третья. После чего в игру вступает антивирусный WFP драйвер - Windows Filtering Platform. Сетевой стек Windows позволяет системе защиты получать информацию о сетевых операциях и принимать решение, разрешать соединение или нет. В результате winloggon.exe, который только что прописал себя в автозагрузку, создал подозрительный файл и теперь пытается установить соединение наружу, оставляет ещё один вполне заметный след.
В результате чего основываясь на сборе телеметрии, начислении баллов, мы получаем не одно определенное событие, а полноценную законченную картину:
Две недели назад в комментариях к моей статье про скриптовый язык для Wiremock со мной связался автор языка «Эллочка» — Эрих Генрихович Гаузер, создавший этот интерпретатор ещё в 1999 году для DOS. Мне стало дико интересно, что это за зверь: никаких исходников, только описание синтаксиса на сайте автора. За час с помощью ИИ я реализовал базовый интерпретатор на Zig под Windows, а за 9 часов — все 62 оператора языка. В статье рассказываю, как воссоздать язык программирования по одному лишь описанию, почему пришлось «укрощать» Claude через промежуточные вопросы в других нейросетях, и как запустить оригинальные DOS-игры «Змейка» и «Питон», написанные автором четверть века назад.
Читать далееКак курс английского, построенный на повторении, оказался самым полезным, что я изучал, — и почему любой разработчик за пределами англоязычного мира рано или поздно сталкивается с тем же выбором.
Фото: little Gabriel, Unsplash
Мне было четырнадцать, когда я решил, что школа не научит меня английскому.
Шёл 2009 год. Я учил немецкий и не любил его — не сам язык, а тот факт, что его выбрали за меня. К тому времени я уже писал первые строки кода и заметил вещь, которая казалась мне очевидной и, судя по всему, никому вокруг: любой язык программирования, который я хотел выучить, был документирован на английском. Любой ответ на форуме. Любое сообщение об ошибке. Любая книга, которую стоило читать.
Так что я попросил записать меня куда-нибудь всерьёз. Так я оказался в Британский Центр в Тбилиси, в двухэтажном здании на улице Пекини, в комнате с одиннадцатью другими людьми и преподавателем, который говорил быстрее, чем я успевал думать.
Читать далееМеня зовут Ричард Кэмпбелл. Я из Ванкувера из канадской провинции Британская Колумбия. В Копенгагене я не впервые и, как уже говорил, выступал на множестве конференций NDC1.
Этот доклад сложился сам собой, потому что в последнее время вокруг происходящего с искусственным интеллектом возникла неразбериха. Начать надо с этого ужасного названия. Термин старый, ещё из 1950-х. Придумала его группа учёных, пытавшихся выбить финансирование у американских военных, что, кстати, у них получилось.
Читать далееЕсли вы начинающий программист и у Вас нет машины, то лучшее решение - машина Тьюринга (МТ)! Я в этом вам помогу, а еще Макконнел. Но и не только он один.
Первая моя статья на Хабре о машинах Тьюринга это про тяжелый грузовик [1]. А оно такое надо? Начинать лучше с чего-то полегче. Этим и займемся. Хотя основа или, так сказать, базис по большому счету будет один. Но, ведь, между карьерным самосвалом и самой простой «инвалидкой» тоже есть много общего? И то и другое явно не самолет.
В монографиях Макконнела [2], Карпова [3] и еще много где устройство МТ расписано по винтикам, которых не так уж и много. Я, например, когда-то начинал с книги А.Трахтенброта [4]. Также можно, не мудрствуя лукаво, запустить эмулятор МТ. Их в Инете найти не сложно. И сразу погонять, не вникая в «винтики». Но это для самых отвязных, т.е. тех, кто не боится снести крышу.
Я предпочитаю среднее. Глубины теории для любителей. По мне гораздо лучше через «ручки». Для этого нужно иметь «конструктор», на котором можно не только тренироваться, но и реализовать любые фантазии.
Подобие конструктора можно найти у Карпова Ю.Г. Но это пара набросков на псевдокоде. Мы же возьмем конкретный язык и конкретную реализацию. А для совсем уж ленивых будет доступен код по ссылке на Git-репозитарий.
Подобно Макконнелу я за «активный обучающий подход». Т.е. следую его заветам. Хотя следовал я им задолго до знакомства с его идеями. И это даже хорошо, т.к. не отвлекало. В результате я пошел даже немного дальше. Для анализа алгоритмов использовал не псевдокод, а другой вариант – формальную вычислительную модель и ее реализацию. Такой «математический псевдокод» позволяет делать анализ проще, глубже и точнее. По результатам написал статью во времена, когда журналы еще издавались [5].
Читать далееЧитатель принёс мне в комментарии документ ФСТЭК как аргумент: длина пароля должна быть не менее 15 символов. Документ оказался настоящим, цифра в нём есть, но работает она не так, как её процитировали.
Заодно выяснилось, что «Рекомендации по защите сетевого периметра информационных (автоматизированных) систем» лежат на сайте регулятора с 10 марта, в них 35 пунктов, и разбора этого документа нигде нет.
Разбираю все 35: что запрещено прямым текстом, какие три пункта не выполнены почти нигде и сколько из них требуют денег. Спойлер: покупки требуют четыре пункта, ещё пять зависят от того, что уже стоит, а оставшиеся 26 закрываются регламентом и настройками.
Читать далееГотовое решение в статье — как реализовать вход в Telegram через РФ сервисы: VK ID, Яндекс ID и MAX.
Мы в своём проекте оставили Telegram как удобную точку входа и канал доставки, а саму идентификацию вынесли в отдельные ID-сервисы. Разделили понятия: «кто пользователь» — это identity, «куда ему слать уведомления» — channel identity. Человек входит через VK ID, Яндекс ID или MAX, а его telegram_id потом просто привязывается к аккаунту для отправки ленты. Не для входа.
Читать далееМедленный запрос в PostgreSQL часто начинается с ошибки в оценках: планировщик ждёт сотню строк, получает тысячи и выбирает план, который разваливается под реальной нагрузкой.
Разберём, откуда PostgreSQL берёт статистику, как ANALYZE её собирает и по каким признакам понять, что проблема действительно в оценках планировщика.
Ускорить запросыHugging Face опубликовал свежий обзор состояния экосистемы открытых моделей, и одна деталь в нём выглядит интереснее очередного сравнения результатов моделей. Платформа уже отдельно отслеживает запросы, которые создаются не человеком напрямую, а агентами для программирования, такими как Claude Code, Codex и другие системы, самостоятельно работающие с репозиториями, моделями и вычислительной инфраструктурой. Получается, что у Hugging Face постепенно появляется новый тип пользователя — программный ИИ-агент, который сам ищет данные, получает файлы и взаимодействует с сервисами платформы.
Распределение такого трафика меняется достаточно быстро. Среди идентифицированных запросов от ИИ-агентов доля Claude Code снизилась с 67,8 % в апреле до 44,4 % в июле, тогда как доля Codex за тот же период выросла с 10,4 % до 20,8 %. При этом почти четверть июльских запросов была создана агентными системами, которые Hugging Face пока не смог однозначно классифицировать, а за несколько месяцев появилось более десятка новых идентификаторов программных клиентов.
Читать далееПривет!
С недавних пор я занимаюсь разработкой онлайн-редактора карт mapus.ai и делаю это с большим интересом. Цель: дать возможность любому желающему создавать интерактивные географические карты за минуты, имея одну лишь идею или задачу, сформулированную текстом. Знаний и установки специализированных приложений не требуется, приносить «материал с собой» не обязательно.
Цель этой публикации — показать одну из возможностей продукта. Назовём это навыком Шерлока Холмса: визуализация статистических исследований для поиска закономерностей, подтверждения или опровержения гипотез.
Читать далееИстория Леопольда Ашенбреннера ещё недавно выглядела как почти идеальная иллюстрация того, как можно заработать на революции искусственного интеллекта.
После ухода из OpenAI в 2024 году он написал статью под названием «Ситуационная осведомленность», посвящённую будущему искусственного интеллекта, в которой подробно изложил свои взгляды на будущее искусственного интеллекта. Статья была полна сенсационных заявлений и получила широкое распространение в интернете.
Читать далееЗадача:
Есть "коробка" с работающей 24/7 OmniOS. Со временем в "коробке" накопилось столько всего важного, что стоимость этой информации превысила стоимость самой "коробки". Наиболее вероятная угроза информации - это фатальный сбой файловой системы при сбоях электропитания. Нужно научить OmniOS "слушать" сообщения от ИБП и самостоятельно выключаться пока ИБП выдает напряжение.
Читать далееСравнений WordPress и Tilda в интернете уже достаточно. Обычно они сводятся примерно к одному и тому же набору критериев: стоимость, простота освоения, скорость создания сайта, SEO, количество шаблонов и необходимость заниматься техническим обслуживанием.
В результате вывод тоже часто получается предсказуемым: Tilda проще и быстрее, а WordPress сложнее, зато гибче.
Но если посмотреть на эти платформы глазами веб-разработчика, разница находится немного в другом месте.
Она становится особенно заметной, когда сайт перестаёт быть набором из пяти-десяти страниц и на нём появляются повторяющиеся данные: услуги, проекты, сотрудники, объекты, товары, характеристики, отзывы. А затем эти данные начинают зависеть друг от друга.
Поэтому в этой статье я хочу сравнить WordPress и Tilda не столько по внешним возможностям, сколько по их внутренней логике:
Читать далееЯ разработчик, и за годы работы несколько раз пытался подобрать систему планирования, которая не превращалась бы в ещё один проект по обслуживанию самой себя.
Первая попытка была ещё в университете. Я купил большую тетрадь, расчерчивал её по дням и записывал, что хочу сделать. Закончил дело — отметил. Не закончил — перенёс дальше.
Какое-то время система работала.
Было приятно открыть неделю и увидеть, чем я вообще занимался. День не растворялся где-то между учёбой, интернетом и бытовыми делами.
Но довольно быстро появилась другая проблема.
Каждое утро я снова писал примерно одно и то же. Зарядка, английский, тренировка, какие-то обычные дела. Потом часть не успевал сделать, переносил на следующий день и постепенно начинал чувствовать, что уже обслуживаю собственный ежедневник.
В какой-то момент я его просто забросил.
Через много лет попробовал снова. Тогда у меня был тяжёлый период на работе, и хотелось хотя бы следить за тем, чтобы вне работы оставалась жизнь.
Я записывал прогулки, отдых, фильмы, английский, звонки близким.
На обложке блокнота ещё нарисовал календарь и отмечал каждый день смайликом. Что-то вроде
Go 1.27 (на момент написания rc3, финал обещают в августе) приносит generic-методы: метод наконец может объявить собственный тип-параметр. Взял golang:1.27rc3 в Docker и проверил, где у фичи границы. reflect новый метод не видит вообще, хотя go/types на том же типе показывает его в method set — метод доступен компилятору и недоступен через рефлексию, поэтому ни один интерфейс им не удовлетворить, а валидаторы и ORM его не заметят. Померил цену: на 200 инстанцирований с запретом инлайна бинарь с методом больше на 2264 байта, из которых 2000 приходятся на длину имён символов, а не на код; по времени разницы нет — это generic-функция с ресивером и тот же gcshape-стенсилинг. А вот что реально заметит прод на апгрейде: GODEBUG=asynctimerchan=1 теперь роняет процесс до main, encoding/json v1 на движке v2 меняет байты вывода на битом UTF-8, json.RawMessage обзавёлся String() и поменял ваши логи. Плюс замеры нового аллокатора: минус четверть времени на new(16 B) и ноль на 128 байтах.
Читать дальше →Есть такая старая программистская байка, что нельзя платить программистам за строки кода, так как тогда они будут писать длинный бестолковый код и любить метод copy-paste. Будущее наступило. Только теперь этими “программистами” является генеративный ИИ (GenAI), которому как раз платят за строки кода. Иронично.
Один из моих интересов — изучение сгенерированного С++ кода, чтобы понимать, как развивается индустрия создания ПО, какие проблемы уходят, а какие наоборот возникают. После заметки “Дайте посмотреть на нормальный С++ проект, созданный вайб-кодингом” мне предложили заглянуть в проект VibeTensor, что я и сделал.
Читать далее1000 сайтов в час вместо нескольких часов на каждый — так работает ЮScan, сервис автоматизированного аудита от ЮMoney. Его основная задача — помочь банкам и платёжным организациям не допустить подключения сайтов, которые маскируют запрещённую или рискованную деятельность под легальный бизнес. Сервис автоматически проверяет ресурс и выявляет подобные случаи ещё до начала сотрудничества.
С 2020 года через ЮScan проверено более 550 тысяч заявок. За это время ЮKassa не получила штрафов за обслуживание запрещённых видов деятельности.
Кому это нужно? Если вы обрабатываете более 10 000 страниц в сутки, работаете с эквайрингом, маркетплейсами, KYC/AML-проверками или выполняете требования 152-ФЗ, ручные процессы неизбежно становятся узким местом. Меня зовут Ирина, я руковожу антифродом в ЮMoney. Расскажу, как устроен ЮScan: как обходить тысячи страниц, находить рискованный контент и превращать данные в понятный скоринг.
Читать далее