В предыдущих статьях цикла мы разобрали, как сканируем код и блокируем релизы через Security Quality Gate. Теперь движемся дальше по пайплайну: к артефакту. В этой статье — как устроен полный цикл контроля Docker-образов в ecom.tech: от манифеста разрешённых базовых образов до Kyverno, который не пускает в прод ничего без подписи и аттестации с результатами проверок.
Читать далееТри часа в эфире на Физтехе: как мы в GPTunneL проверяли голосовой GROM
На хакатоне «Новые города» в «Большом Физтехе» эксперты, школьники и студенты с нуля придумывали посёлок будущего. За три часа обсуждения нужно было превратить в минутный ролик. Все команды работали на GPTunneL: генерировали сцены, собирали видео, а наша команда параллельно делала сайт посёлка. Всё это — в прямом эфире, где мы впервые проверили и голосового ассистента на базе GROM.
GROM отвечал участникам и подводил итоги обсуждения. Но после спора о внешности персонажа стал возвращаться к его бороде даже в ответах на другие вопросы. Расскажу, как устроили память ассистента, почему из обработки выпали пятнадцать минут разговора и что удалось собрать к концу эфира.
Читать, как всё прошлоПод капотом Spring WebFlux: Event Loop, block() и почему ThreadLocal вас подведет
У нас в «Синимекс» периодически вспыхивал внутренний холивар: кто-то из команды регулярно приходил с идеей «давайте переведем все на WebFlux, это же современно», а кто-то не менее регулярно отвечал «зачем, MVC справляется». Спор ходил по кругу, пока мы не решили заменить ощущения цифрами: провели внутренний бенчмарк, собрали результаты в методичку, а заодно складывали в копилку ловушки, в которые попадали джуны (и не только) при переезде на реактивщину.
В этой, 2-й части, разбираю четыре фактора, которые чаще всего превращают реактивное приложение в блокирующий кошмар — block() внутри пайплайна; молча теряющийся ThreadLocal; контекст, который нужно правильно пробросить, и легаси-код, который нельзя просто выбросить.
Читать далееВ современном мире с его бесконечными лентами социальных сетей, звучащими из каждого утюга плохими новостями о происходящих бедствиях и катастрофах, лезущей отовсюду рекламой продуктивности и “успешного успеха” все мы испытываем колоссальное давление на нашу психику и всеми силами пытаемся не сойти с ума. Мы безостановочно страдаем от отсутствия минимальной стабильности и постоянной турбулентности, когда всё, что раньше казалось надёжным, рушится на наших глазах: искусственный интеллект ухудшает условия на рынке труда, вокруг бушует экономический кризис, тут и там вспыхивают боевые действия, государства накладывают друг на друга санкции, семьи рушатся, люди разводятся, впереди одна сплошная неопределённость. Просто изолироваться от входного потока информации не получится, нужно научиться работать с ним и перестать страдать от плохих новостей и негативных событий в собственной жизни. Но как это сделать?
Самое известное учение об освобождении от страдания было создано около двух с половиной тысяч лет назад древнеиндийским философом, известным нам как Будда. Его учение можно назвать древней кибернетикой ума, рассматривавшей работу нашего мышления с инженерной точки зрения. По сути, Будда был древним, как метко выразился советский писатель Юрий Олеша, инженером человеческих душ (хотя буддийское учение и отрицает их существование), рассматривающим ум как машину, в работу которой можно вносить изменения. Философско-психологическое учение Будды впоследствии выросло в целую мировую религию — буддизм, а его идеи о работе ума были позаимствованы многими течениями психологии и психотерапии — в особенности много из буддизма взяла школа когнитивно-поведенческой терапии. Основной вопрос, который рассматривает Будда, — как перестать страдать в постоянно меняющемся мире. Этот вопрос актуален во все времена, а сейчас — как никогда до этого.
Читать далееВеб-клиент 1С удобен тем, что для работы достаточно браузера. Но когда публикация становится доступной из внешних сетей, возникает вопрос: как добавить второй фактор, не меняя аутентификацию самой 1С и не нарушая работу существующих интеграций?
В статье рассказываем, как мы вынесли проверку MFA во внешний контур на Nginx и Keycloak, сохранили Active Directory как источник учётных записей и оставили интеграциям привычные точки входа.
Читать далееАгент пишет: “Готово, все тесты проходят”. Дальше у меня два пути: поверить или показать тому, кто разбирается. Показать некому. Разработчика в проекте нет, а сам я код не читаю.
Я продакт. С января я так делаю расширение для Chrome. Весь код написали два ИИ-агента, Claude Code и Codex: 593 коммита и 78 478 строк кода в самом продукте.
Дальше расскажу, как устроил проверки и работу с агентом:
Обвязка. Правила, проверки, запреты и скиллы вокруг агента. Девять уроков с датами из истории проекта.
Как я с ней работаю. Шесть шагов от идеи до приемки и промпты, которые я вставляю агенту на каждом шаге.
Что я изменю в следующем проекте. Пять улучшений. В каждом есть довод против.
Статья для двух читателей: для менеджера или продакта, который хочет строить сам, не вставая в очередь к разработчикам, и для разработчика, который хочет отдать агенту задачу на несколько часов, доверяя результату.
Читать далееЛюбой команде нужен человек, который вовремя испортит всем удовольствие. Идея почти согласована, а он спрашивает: «А откуда эти цифры?», «А это точно разрешено?», «А у похожего бренда ведь не получилось...»
Просить его помолчать не стоит, особенно перед запуском большого и дорогого проекта.
В СИБУРе мы поняли ценность такого коллеги, когда делали систему для оценки идей замены материалов: модели нужен оппонент, который проверит, на чём держится её убедительный ответ.
Так среди агентов появился критик.
Читать далееЯ делаю планировщик задач Clarify. Один, в свободное время, для себя. Разработчик из меня любительский, так что профессионалы в комментариях наверняка найдут, что мне сказать. Десктоп на Flutter под Windows, на телефоне та же сборка как PWA. База и авторизация в Supabase, а для того, что нельзя делать на клиенте, был маленький FastAPI на бесплатном Render.
Про блокировки хостингов на Хабре писали много. Я хочу рассказать не про сам переезд, он как раз скучный. Хочу про то, сколько всего продолжало стучаться на старый адрес после того, как я решил, что всё перенёс. И как я этого не замечал.
Читать далееПентестерам посвящается. Вы запустили готовый модуль, получили доступ к системе — и на этом все остановилось. Как понять, что вообще дает этот доступ? Через неделю выясняется, что ваш пэйлоад ловит антивирус заказчика, и вы не понимаете почему. А когда проект наконец доходит до облака, выясняется, что про побег из контейнера и атаки в AD вы знаете только обрывками из случайных статей или ответов нейросети. Узнаете свою работу?
Читать далееПрактически каждая современная система мониторинга безопасности умеет работать с Threat Intelligence. Производители SIEM, EDR, XDR, NGFW постоянно говорят про IOC, фиды, репутацию IP-адресов и автоматическое обогащение событий.
На практике все выглядит немного иначе.
После подключения десятка бесплатных TI-источников SOC внезапно начинает видеть тысячи «индикаторов компрометации». Половина IP-адресов оказывается давно неактивной, часть доменов уже не существует, а количество ложных срабатываний начинает раздражать аналитиков сильнее, чем реальные атаки.
Возникает закономерный вопрос: насколько вообще полезен Open Source Threat Intelligence, и где заканчивается польза, а начинается информационный шум? Попробуем разобраться.
Читать далееПрошлую статью я закончил на том, что Google в 2023 году выпустил фрейморк для модульных приложений Service Weaver. Можно писать и запускать приложение как монолитное, а потом в конфиге указать какие компоненты на каких машинах запускать и приложение становилось распределенным.
Вы удивитесь, но в ASP.NET встроена модульность начиная с версии Core 2.0 (2017 год). Вы можете сделать сделать приложение которое загружает сервисы, контроллеры, страницы и даже EF модели из разных сборок в один хост. Все это собирается в один исполняемый образ. Переменная окружения при запуске задает какие модули загружать.
Загрузили все модули — получили монолит, в котором заказы и клиенты джойнятся одним SQL-запросом. Оставили в одном контейнере модуль заказов, а в другом модуль клиентов — получили два сервиса, которые ходят друг к другу по HTTP. Пересобирать ничего не нужно, в Program.cs нет ни слова о модулях, а всё целиком запускается и отлаживается по F5. Решение «резать или не резать» становится обратимым.
Все это без единого стороннего NuGet-пакета — только ASP.NET Core и EF Core. В конце разберём, почему у Google то же самое не взлетело, и какую цену за «из коробки» придётся заплатить.
Читать далееДля маркетолога наблюдение за конкурентами — важный источник полезных данных. По чужим кампаниям видно, какие идеи, решения и приемы работают. Часть из них потом пригодится в продвижении своего бизнеса. Поэтому конкурентов полезнее считать коллегами, у которых есть чему поучиться, а не соперниками. В статье Павел Баракаев, Head of Digital click.ru, объяснил:
Читать далееНекоторое время назад к нам обратился клиент, у которого после миграции с MS SQL на PostgreSQL закрытие месяца в 1С:ERP стало вместо 12 минут проходить за 8 часов. В статье рассказываем, как мы выявили причину в оценке Hash Join, которую планировщик завышал в миллионы раз, и как исправили её так, что проблемный запрос теперь выполняется за 18 секунд вместо целого часа.
Читать далееЗаголовок обрывается на полуслове, и тем не менее вы всё отлично поняли. И ведь хватило нескольких букв и контекста, чтобы восстановить недостающее слово. Похожий принцип работает и с зашифрованным трафиком: чтобы делать выводы о происходящем внутри соединения, не всегда нужно видеть содержимое.
Поэтому защищенный шифрованием трафик можно анализировать, не расшифровывая. И начать такой анализ стоит с самой простой характеристики — размера сообщений.
Под катом вы узнаете:
- как определить способ аутентификации в SSH без расшифровки данных;
- что может рассказать о сетевом трафике размер его пакетов;
- почему исправление уязвимости, раскрывающей длину пароля, создает точный индикатор способа аутентификации.
Итак, поехали!
Читать далее«Внедрим ИИ, и через полгода половина команды не понадобится». Такую установку я встречаю у руководителей чаще, чем хотелось бы. Картинка у них простая: агент получает задачу одним промптом, пишет код, сам его тестирует и выкатывает, а людям остаётся нажать Merge.
На практике ИИ — не волшебная палочка, а ещё один инструмент, быстрый и мощный. Его нужно настроить под проект, дать ему контекст и проверять каждый результат. Без этого команда с каждым багом на проде переписывает куски системы, плодит новые баги, и так по кругу.
В прошлой статье «ИИ раздали — пользоваться не научили» я разбирал, почему ИИ не окупается, если раздать его командам и ничего больше не менять. В этой покажу, как работаю по спецификациям (SDD) с OpenSpec, какой контекст и какие скиллы нужны агенту и почему без людей с компетенциями всё это не взлетает. Пишу для разработчиков и лидов, которые настраивают процесс, и для руководителей, которые решают, как внедрять ИИ.
Читать далееПривет, я Панда, он же Panda Koder. Сегодня хочу рассказать о своей программе. Lang Switcher — переключатель раскладки клавиатуры для тех, кто печатает на двух языках и регулярно об этом забывает. Работает в Windows 10 и 11, так что владельцев Mac предупреждаю сразу, чтобы не тратили время.
Пример на одном слове: на экране вышло ghbdtn, одно нажатие Pause/Break, и там уже «привет», а раскладка окна переключилась следом.
Программа бесплатная, исходный код открыт. Код и установщик лежат на GitHub, скачать можно ещё со страницы программы на моём сайте, там же подробная документация и инструкции. Обе ссылки будут в конце статьи.
Проект некоммерческий, и вот что это значит на деле: рекламы нет, платной версии нет, код открыт, лицензия на выбор MIT или Apache-2.0. Пришёл я сюда показать программу и собрать обратную связь. Да, я написал продукт и, кажется, даже довёл его до полноценной программы, но без вашей помощи и ваших замечаний он мало чего стоит.
Читать далееФронтирные модели, в которых компании ежедневно сжигают миллиарды токенов, становятся все более монструозными и дорогими. Экономика и законы о ПДн подталкивают бизнес к идее локального инференса. Но запуск большой открытой модели требует сложной инфраструктуры и дорогих GPU (которые еще попробуй найди!). Хорошая новость в том, что для многих бизнес-задач – разобрать обращения, достать контакты из письма, оценить отзыв – фронтирные модели избыточны. Это все равно что забивать гвозди микроскопом. А легкие модели размером 1–4B работают и на обычных процессорах.
Я проверил, насколько это рабочий вариант: взял VPS с шаблоном Ollama примерно за 1,5 тыс. ₽ в месяц (4 vCPU, 4 ГБ RAM, без видеокарты) и прогнал девять легких моделей на семи бизнес-задачах плюс нагрузочный тест.
Читать далееСтатью можно было бы снабдить подзаголовком «Заметки постороннего». Реально заглянуть во внутреннюю кухню корпорации можно, не выходя с сайта Хабра – тут есть главы замечательной книги «Made at Intel» бывшего директора по разработкам российского офиса Intel Валерия Черепенникова.
У меня есть такая бумажная с автографом автора.
Но есть одно но. Автор в течение 30 лет (1993-2022) работал в фирмах, которые всегда были связаны с Intel партнерскими отношениями разного уровня, вплоть до статуса Titanium Partner. Разве что не было OEM-соглашения – но его давали действительно крупным производителям уровня Kraftway. И все колебания рыночного пути корпорации мы чувствовали на себе, поскольку именно на своих партнерах Intel обкатывал всякие новинки и попытки открыть новые направления бизнеса.
История эта местами очень личная.
В 1992 году в харьковский офис компании Wescom пришел недавно назначенный генеральным менеджером Intel по России и СНГ Игорь Ложкин. С предложением дружить. Wescom достаточно успешно возил из Сингапура все, что имело отношение к компьютерной технике. Времена были настолько тучные, что даже отправлять авиапочтой огроменные CRT-мониторы было рентабельно (на отправку морскими контейнерами перешли позже), и для чего компании понадобился этот контракт с Intel, было непонятно. Но Генеральный решил подписаться. Это был второй контракт во всем бывшем СССР, после киевского завода «Квазар-Микро» - многие помнят, что филиал этой конторы долгое время работал и в Москве. Совсем скоро Игоря Ложкина заменил на посту легендарный Стив Чейз, и началась настоящая история Intel в России и СНГ.
Окунуться в историюМы делаем Lumio — бесплатное приложение, которое живёт в чёлке MacBook и показывает, кто из твоих ИИ-агентов работает, а кто ждёт тебя. Разрешить команду можно одним кликом прямо из чёлки, а в пиксельном офисе каждая сессия — человечек за своим столом: пьёт кофе, включает лампу вечером. В 1.4 к Claude Code, Codex, Cursor и другим добавились Qwen Code и Cline.
Читать далееПредставим небольшое кафе. На стойке рядом с кассой установлен небольшой экран, который показывает рекламные предложения: скидки дня, дополнительные услуги, рекламу от партнеров. И это кажется отличным решением: можно показывать актуальные предложения и увеличить чек, сделать кросспродажи, увеличить лояльность, заработать на рекламе соседей…
Но в реальной жизни всё становится гораздо сложнее.
В первый день на экране – красивая реклама. На следующий день – она же. Через неделю – ничего (скорее всего) не изменилось, а ещё через неделю выясняется, что реклама уже не актуальна, блюдо убрали из меню, а акция закончилась.
Проблема в том, что поставить медиапанель для показа картинок и видео – несложно. Гораздо труднее регулярно обновлять контент в каждодневном режиме. Для каждой картинки нужен дизайн, фотографии, как-то это всё скомпоновать, расположить надписи, подобрать шрифты и сохранить единый стиль, чтоб это нормально смотрелось.
Работать с дизайнером в режиме каждодневных обновлений – практически невозможно (во-первых, сроки – скорее всего дизайнеру нужен минимум день, во-вторых – стоимость: лишних денег в малом бизнесе нет, их нужно зарабатывать, а не тратить).
В результате – экран превращается в статичный электронный плакат, который показывает что-то нейтрально-бесполезное, в лучшем случае, одинаковое на протяжении месяцев.
Так было до недавнего времени. С появлением нейросетей всё сильно изменилось – сейчас для подготовки рекламного объявления не нужен дизайнер. Если совсем упрощать – то по одному запросу в нейросеть получается неплохой результат, который можно показывать клиенту.
Читать далее