04.09 в 09:06:45 UTC ночной опрос Fleet нашёл одного «нового» курьера. Дальше автоматика отработала без единой ошибки: new_ids: 1, dispatch_alerted: 1, sms_sent: 1. В Google Sheet появилась строка 1248, в служебную группу пришёл алерт, человеку ушла SMS с просьбой подтвердить налоговый статус.
Читать далееПредставь простую задачу: ты просишь агента пересказать содержимое сайта.
Не установить пакет.
Не запустить скачанный скрипт.
Не открыть подозрительное вложение.
Просто прочитать страницу и сделать краткое резюме. Через несколько шагов на твоей машине выполняется код атакующего, устанавливается соединение с управляющим сервером и для наглядности открывается калькулятор.
И самое интересное: агент не нарушал прямой запрет. Наоборот, в ключевой момент он поступил "безопасно" — отказался запускать неизвестный бинарный файл и написал собственный декодер на Python. Именно это решение и стало частью атаки.
Такую цепочку продемонстрировал исследователь безопасности Иоганн Ребергер на Claude Code с моделью Opus 5 в Auto Mode. В его небольших сериях тестов атака срабатывала в трёх или четырёх запусках из пяти. Это не означает, что "Claude взламывается с вероятностью 80%", но хорошо показывает более важную проблему: безопасный на вид отдельный шаг ничего не гарантирует, если вся цепочка строится в среде, которую контролирует атакующий.
И чего он там наломал?Привет, Хабр! Меня зовут Екатерина Юдина, я отвечаю за контент-направление в Авито Рекламе. В этой статье расскажу, как мы перестроили обучение работе с рекламным кабинетом по принципу микросервисной архитектуры и почему решили подойти к образовательному продукту так же, как к ИТ-системе.
Рекламный кабинет постоянно развивается: появляются новые инструменты, меняется интерфейс и логика настройки кампаний. Именно поэтому нам было важно создать не просто обновленный курс, а систему обучения, которую можно развивать вместе с продуктом.
Имея бэкграунд в ИТ, я предложила использовать принцип микросервисного подхода. Мы взяли готовую LMS-платформу, но выстроили обучение поверх нее как систему независимых, связанных между собой сущностей: базовый и продвинутый курсы, интерактивный тренажер, центр обновлений и практика настройки кампаний по отраслям.
Посмотреть базовый обучающий курс
Читать далееПод моей статьёй с разбором реестра российского ПО в комментариях спросили: интересно, а как регистрируют программы за рубежом.
Под статьей с разбором, как регистрируют программы в США, спросили: интересно, как регистрируют программы в Европе.
Сюжетная арка закрутилась и я пошла искать европейский аналог российского Роспатента или американского Copyright Office, но не нашла.
Читать далееАналитик может создать логичную систему, которая окажется неудобной для тех, кто ей пользуется каждый день. Разбираем, почему возникает разрыв между ожиданиями специалиста и реальной работой пользователей, и как избежать проектирования «фантомных пользователей».
Разобрать ошибкиКак завести свой Git на небольшом VPS и не превратить его обслуживание в отдельный проект? Показываю свой путь с Gitea: настройку пользователей и SSH, перенос репозиториев из GitHub и подключение CI через Gitea Actions. А затем проверяю бэкап делом - восстанавливаю из внешней копии. С командами, ошибками и оговорками по безопасности - для личных проектов и небольших команд.
Читать далееВ финале прошлой статьи я обещал разбор контура генерации ответов с гибридным извлечением данных (LLM‑tools + regex). Но пока немного переиграем планы и переключимся в другую тему — причина практический инженерный эксперимент. Постараюсь вкратце и по существу.:‑)
Читать далееФирменный стиль может отлично работать в брендбуке и на рекламных носителях, а в интерфейсе довольно быстро начать мешать. Шрифт оказывается неудобным для таблиц, фирменному цвету не хватает контраста, выразительная графика превращается в шум после десятого повторения, а между макетом в Figma и браузером появляются состояния и ограничения, которых раньше вообще не было. В этой статье разберу, что происходит с айдентикой при переносе в цифровой продукт и почему интерфейс почти всегда заставляет пересобирать часть исходных решений.
Читать далееПривет, Хабр!
Некоторое время назад у меня образовалось немного (вернее много) свободного времени, и я между моментами серфинга на известном сайте HH решил посмотреть в сторону освоения Rust. Кроме всего прочего мне очень интересует тема библиотек графических интерфейсов.
В Rust есть несколько подобных библиотек, я решил остановиться на Iced — текущая версия Iced 0.14. Прежде всего понадобилось понять принципы построения библиотеки и архитектурную философию паттерна ELM, которая реализована в библиотеке.
В процессе изучения родился описываемый ниже PET‑проект Iced Forms Pack. Проект представляет собой конструктор форм из базовых элементов Iced.
Читать далееПервый компонент мы собирали два дня, пятнадцатый занял у нас пятнадцать минут. Всё, что появилось между ними, это файл DESIGN.md, набор правил и понимание, в каких местах нейросеть сочиняет алиасы, которых в системе никогда не было.
Привет, Хабр! Меня зовут Екатерина, я продуктовый дизайнер и развиваю дизайн-систему Сова в экосистеме «Лукоморье».
Нам нужно было связать дизайн, токены и код на уровне компонентов. Для этого пришлось описать каждый компонент до мелочей: размеры, варианты, состояния, отступы, цвета. Руками такое делать можно долго, поэтому механическую часть мы отдали нейросети. Всё получилось не с первого раза.
Ниже весь процесс целиком: как мы выгружали компоненты из Pixso, что писали в markdown-файлах с правилами и шаблонами, и как потом проверяли, что нейросеть не насочиняла лишнего.
Читать далееФарма - индустрия с долгими циклами, сложными процессами и высокой ценой ошибки. Это особенно видно на пути разработки препарата: от поиска перспективной молекулы и доклинических исследований до нескольких фаз клинических испытаний, регистрации и вывода на рынок. В среднем разработка одного препарата занимает 10-15 лет и стоит порядка 1-2 млрд долларов, а из кандидатов, дошедших до клинических исследований, девять из десяти не доходят до регистрации1.
Мы не будем писать текст в жанре «внедрили AI → стало лучше». Таких материалов на Хабре уже много, и ввиду распространённости и повального культа AI они могут не вызывать доверия. Нам интереснее показать, что меняется в самой логике работы фармы - на конкретных примерах.
Читать далееПрошлый герой доказал, что универсальная вычислительная машина в принципе возможна. Сегодняшний - просто взял и начертил её, между делом, работая в это же время над атомной бомбой.
Это третья статья цикла “Код как борьба: Кратчайшая история IT”. И после довольно тяжёлого прошлого выпуска про Тьюринга тон сегодня будет совсем другим - не личная трагедия, а история человека, который, кажется, физически не мог заниматься одной вещью за раз.
ПогналиЕсть проверенный закон вселенной: если у чего-то есть экран и хоть немного памяти, рано или поздно на этом запустят DOOM. Запускали на осциллографах, на тесте на беременность, на кофемашине и на тракторе. Мы в Sheet-Native Computing Foundation тоже решили побыть в этом уже достаточно запылившемся тренде и запустить DOOM в контейнере, упакованном в ячейки электронной таблицы. То есть образ контейнера с игрой физически лежит в ячейках, оттуда собирается обратно в Docker-образ, проверяется по sha256 и запускается.
В первой статье я рассказывал про Sheeternetes — оркестратор контейнеров, у которого весь control plane (Deployments, Nodes, Pods, Events) живёт внутри Google Таблицы или Excel, а на другом конце крутятся настоящие Docker-контейнеры. Там же мельком был упомянут наш формат образов — SICF (Sheet-Native Image Container Format). Эта статья как раз про него: как он устроен, как всё это воспроизвести у себя, как оно работает на bare metal (то есть в эксельке, а не гугл-таблице) без интернета и какие неожиданно интересные находки вылезли, когда мы начали пихать всё это дело в ячейки Google Sheets.
Спойлер: DOOM — настоящий (Chocolate Doom плюс свободный Freedoom, всё в Linux-контейнере, играется в браузере с клавиатуры).
Читать далееРазвитие ИИ движется вперёд, но практически весь видимый прогресс происходит в сфере работы со знаниями, то есть действий, происходящих внутри компьютера.
В среде разработчиков ИИ Сан‑Франциско широко распространено мнение о том, что к этой сфере скоро присоединятся и роботы. Параллельно с гонкой разработки ИИ широкого спектра применений идёт столь же агрессивная гонка разработки роботов широкого спектра применений — гуманоидных машин с физическим интеллектом. Искусственных работников, способных готовить пищу и убираться, быть грузчиками... и делать всё остальное, в том числе и производить себе подобных, приводя (по многим прогнозам) к экономическому росту, который носящему характеристику «взрывного».
Иными словами, распространено мнение, что ИИ в дата-центрах вскоре заместит весь интеллектуальный труд, а ИИ в человекоподобных телах скоро заменит весь физический труд. Однако здесь есть важная разница: мы уже видим прогресс в сфере интеллектуального труда, но физический ИИ пока в основном остаётся ограниченным испытательными полигонами и демонстрационными видео. Пока не существует робота, эквивалентного ChatGPT, которого бы могли приобрести мы с вами.
Поэтому приходится ограничиваться видеодемонстрациями. К сожалению, этот инструмент плохо подходит для оценки прогресса. Возможно, мы видим в них одну успешную попытку на сотню неудачных. Сценарий демонстрации может быть тщательно выстроен так, чтобы избегать сложностей, к которым робот пока не готов. Видео может быть смонтировано так, как будто робот действует быстрее и чётче, чем на самом деле. Есть пример очень впечатляющей демонстрации… с подозрительно большим количеством смены ракурсов.
(Пока я ещё не видел практически ни одного видео с последних World Humanoid Robot Games. Они ценны тем, что на публичной платформе меньше возможностей для выборочного представления фактов. В паре просмотренных мной видео можно заметить впечатляющие возможности, но они не затрагивают многие сложности, которые я перечислил ниже... К тому же в этих видео есть множество громких провалов.)
Демонстрации привлекают внимание к тем действиям, которые роботы уже умеют делать. Возникает вопрос: а чего они не могут? В этом посте я составлю список технических сложностей, которые нам предстоит преодолеть на пути к реализации искусственных работников с широкой функциональностью. Когда в следующий раз вы увидите робота, делающего нечто впечатляющее, задайтесь вопросом: какие из перечисленных в статье возможностей продемонстрировал робот и какие сложности попытался обойти сценарий видео?
(Стоит отметить, что некоторые задачи становятся проще, если использовать роботов на колёсах, а не строго гуманоидных. Колёсный робот может перевозить больший вес, поэтому сила, выносливость и мощность электроники для него не так критичны. Ниже для него и вероятность упасть. Однако такие роботы не могут взбираться по лестницам1, перешагивать через завалы или наклоняться, чтобы взять что‑то из шкафа.)
Читать далееКакие обычно бывают анимации в вебе? Появление, исчезновение, небольшой сдвиг, масштабирование. Они не обязательно плохие: чаще всего интерфейсу действительно не нужно ничего сложнее. Иногда лучшее решение — вообще не добавлять анимацию. Так интерфейс остаётся быстрым, понятным и не отвлекает от основной задачи. Но иногда хочется сделать один небольшой момент запоминающимся. Не длинную заставку и не тяжёлый спецэффект на весь экран, а короткую реакцию на действие пользователя. Меньше секунды — и удаление карточки, появление элемента или отмена действия уже ощущаются совсем иначе.
Читать далееВ этом дайджесте делимся подборкой бесплатных уроков сентября для инженеров инфраструктуры, DevOps и специалистов смежных направлений. В подборке — практические разборы Linux-серверов, PostgreSQL 18, отказоустойчивых кластеров, CI/CD, eBPF, безопасности и применения ИИ в инженерных задачах.
Занятия проводят наши преподаватели — практикующие специалисты, которые разбирают технологии на реальных примерах и опираются на свой опыт. Это возможность обсудить рабочие подходы с экспертами, разобраться в новых инструментах и оценить формат обучения.
Смотреть подборкуCMF новый формат для нейросетей, чем CMF отличается от GGUF и SafeTensors, как несколько способностей можно накладывать на общую структуру без хранения отдельных полных моделей.
Это первая подробная открытая публикация формата CMF, уже можно использовать в собственных проектах. Буду рад разработчикам, готовым расширять его возможности и проверять результаты на своих задачах. CMF GitHub
Читать далееПривет! Я Незар, фронтенд-разработчик в Т-Банке. Наш Angular-проект достаточно крупный, и со временем в нем накопился неиспользуемый код. Это замедляет разработку, усложняет рефакторинг и вводит в заблуждение новых членов команды. А ручная очистка такого «мертвого» кода требует огромных трудозатрат и быстро перестает быть эффективной.
Поэтому мы решили автоматизировать этот процесс с помощью Knip — статического анализатора для TypeScript. В статье я расскажу, как мы его настроили, интегрировали в pre‑commit и CI/CD и какие результаты получили.
Читать далееКазалось бы, что может пойти не так с легковесными векторными анимациями? Вектор в Lottie, JSON весит копейки. Но тестирование на реальном телефоне закончилось фиаско: через пару минут скролла чип раскалился до 42 °C, а интерфейс ушёл в троттлинг.
Оказалось, что покадровый пересчёт кривых Безье в JS на мобильных экранах быстро превращает телефон в печку.
В кейсе разбор того, как мы перешли на аппаратно декодируемые видео‑спрайты, почему IntersectionObserver втихую крутил видео под непрозрачными модалками и как в итоге удалось сбить температуру обратно до стабильных 30 °C.
Читать кейсМаркетинг попросил вернуть старую промо-страницу - ту, что делали к акции три года назад. Открываю страницу по её адресу, чтобы посмотреть, что от неё осталось, и вижу чужой сайт. Домен наш, имя в адресной строке наше, замочек на месте, содержимое - не имеет к нам никакого отношения.
Страницу тогда выключили, а запись в DNS осталась. За три года она пережила и акцию, и сам сервис, на который указывала, - и в какой-то момент начала отправлять посетителей на чужой сайт. Такие записи называют висячими, и в зоне любой компании, которая живёт дольше пары лет, их обычно несколько десятков.
Читать далее