В мае 2026 года департамент Threat Intelligence экспертного центра безопасности Positive Technologies обнаружил очередную кампанию APT-группировки CloudAtlas, в рамках которой использовались характерные документы Microsoft Office с техникой внедрения вредоносных шаблонов и многоступенчатая цепочка доставки вредоносных HTA- и VBS-компонентов.
Однако кампания отличалась использованием цепочек из oEmbed-запросов и скомпрометированных легитимных веб-ресурсов как транспортного слоя для загрузки полезной нагрузки, что усложняло выявление и атрибуцию канала доставки вредоносного ПО.
Дополнительный интерес представляет нетипичный таргетинг: наряду с кибератаками на российские объекты энергетической, оборонно-промышленной и транспортной инфраструктуры с акцентом на предприятия на территории Крымского полуострова ряд обнаруженных вредоносных документов предназначался для пользователей из Ирака.
Читать далееАсимптотика на практике: Сравнение алгоритма сортировки вставками и выбором
Автор: Шуравин Александр, к. т. н., доцент, в IT более 20 лет.
Введение
В теории алгоритмов мы привыкли оперировать абстракциями: O(n²), O(n log n), O(1). Но что скрывается за этими обозначениями в реальном продакшене? Насколько критичен выбор алгоритма для вашей системы?
В этой статье я исследую два классических алгоритма сортировки — сортировку выбором (Selection Sort) и сортировку вставками (Insertion Sort) — на трёх типах входных данных:
1. Случайный массив.
2. Уже отсортированный массив (best case).
3. Массив, отсортированный в обратном порядке (worst case).
Эксперимент проведён на Python с замером времени выполнения для размеров массива от 100 до 1000 с шагом 100.
Теоретическая справка
Сортировка выбором (Selection Sort)
Идея: На каждой итерации находим минимальный элемент в неотсортированной части массива и меняем его с первым элементом этой части.
Читать далееУ обычной ноды Kubernetes жёсткий потолок в 110 подов (формально настраиваемый kubelet-флаг --max-pods, но поднимать его руками не рекомендуется даже апстримом: упирается в размер Pod CIDR на ноду, и выше 110 Kubernetes просто не валидируют, так что на практике это потолок дефакто), плюс налог на каждый контейнер: containerd или CRI-O (справедливости ради, у CRI-O ~20 МБ, но на хост, и около 1 МБ на под), ~20 МБ containerd-shim на каждый контейнер, а сам CRI добавляет заметный delay в операциях. На мощном железе это заставляет выбирать между недоутилизацией и гипервизорным слоем (KubeVirt, Kata) с его собственным налогом на microVM. На слабых VPS стандартный стек тяжёл ещё даже до первого workload: kubelet + containerd + kube-proxy + CNI — это уже 300-600+ МБ RSS прежде, чем в кластере появится хоть один рабочий под.
У меня была мечта: Kubernetes + systemd. Я начал свой путь не зная куда это приведет, проект за время разработки сменил 7 разных направлений, думаю я нашел главную цель: освобождение Kubernetes.
Результат на двух моих машинах (Xeon E5-2690 v4 + Intel N150): 1772 пода, 33 ноды, 2.5 миллиона запросов под нагрузкой с нулём ошибок и медианой 257 мкс. RSS демона — 365 МБ (замер от 04.04.26, сейчас уже ниже) на 1660 подов (~225 КБ на под).
Дальше расскажу, что такое Periapsis, как у меня появилась эта идея и что уже работает.
Читать далееПривет, Хабр! Меня зовут Илья Кербатов, я старший консультант в компании «ДАР» (ГК «КОРУС Консалтинг»). В прошлой статье я разобрал, как с помощью ИИ ускорил KPI-панель Qlik Sense. В этот раз кейс другой: странный баг с переменными, который сам по себе оказался редким, но привел к созданию небольшого набора инструментов для аудита приложений. Собрать его получилось за несколько промптов, и это сильно сэкономило время.
Странный баг
Все началось с необычного поведения в одном из приложений. После частичной перезагрузки (partial reload) часть переменных переставала отдавать вычисленное значение. В скрипте при перезагрузке переменные не переопределялись, их определение наследовалось с прошлой полной перезагрузки (full reload). На листах вместо результата было пусто.
Читать далееСоздаю собственный DSL на C#: рассказываю о том, как я добавляю семантическую модель. Рассказываю архитектуру семантической модели.
Читать далееЕсть одно предложение, которое за последние месяцы перепечатали, кажется, все. Вот оно, в переводе с блога TypeScript:
История о том, как сервис логирования Discord-серверов прошёл путь от сложной связки MySQL + PHP + Python до простого решения на Python + SQLite в одном Docker-контейнере — и почему упрощение стека того стоило.
Читать далееНа узле моей AI‑платформы крутятся 34 контейнера: Dify, RAGFlow, векторные базы, мониторинг и SSO. Большой языковой модели среди них нет: основную генерацию стек получает по LAN с DGX Spark. На втором таком же мини‑ПК я отдельно поднял локальную Qwen3.6–35B‑A3B и прогнал серию замеров от 1K до 64K при контекстном окне 256K.
Обе машины — Beelink GTR9 Pro на Ryzen AI Max+ 395 (Strix Halo). Ниже — что эти коробки реально умеют: 117,4 ГиБ GTT после настройки ttm.pages_limit, p50/p95 локальных эмбеддингов и реранка, около 70 tok/s генерации через Vulkan/RADV и три грабли gfx1151.
Читать далееВсем привет! Я Марго, QA-инженер команды МС в Банки.ру.
Этой весной мы с командой автоматизировали подготовку Acceptance Criteria (это по сути такой чек-лист, по которому команда проверяет, готова ли задача) с помощью ИИ. Это сократило рутинную работу и ускорило тестирование. Ниже расскажу, как мы это сделали.
Читать далееЕсть большая и сложная система сборки Gradle и андроид-плагин AGP для установки большей части компонентов Android SDK, необходимых для вашего приложения. Но что, если вам не хочется руками устанавливать Android Studio, Android SDK, cmake, scrcpy и прочие нужные вещи? Здесь на помощь приходит mise — при кажущейся простоте он умеет все, что нам нужно.
Читать далееГод назад я уже делал обзор на девайс TerraMaster F8 Pro, если интересно то эта статья есть в моем профиле. Это довольно необычный NAS, полностью построенный вокруг NVMe-накопителей. Устройство получилось действительно быстрым, но после публикации обзора многие читатели задали вполне закономерный вопрос:
Читать далееПользователи допускают опечатки при регистрации, и база данных постепенно превращается в хаос. Мы столкнулись с этим в одном из наших проектов в компании, где система поддерживала артистов и помогала координировать выступления.
Меня зовут Илья Новиков, я технический директор компании «Исходный код».
Ранее карточки артистов создавались автоматически на основе заявок на выступления. Поначалу это казалось вполне приемлемым: артист подает заявку, система создает карточку, администраторы могут с ней работать.
На практике мы получили кучу дубликатов. В некоторых записях был один и тот же адрес электронной почты. В некоторых — один и тот же номер телефона. Некоторые были связаны и тем, и другим, но не всегда напрямую.
Для команды, которой приходилось администрировать эту базу данных и координировать выступления, это стало настоящей проблемой. Стало непонятно, какая карточка артиста является подлинной, где хранится история бронирований и какую запись следует использовать для дальнейшей работы.
Правильное решение — предотвращать появление дубликатов до того, как они попадут в систему. Я с этим согласен. Регистрация должна проверять данные, нормализовать контакты и проверять, существует ли человек уже в системе.
Нам этого было недостаточно. У нас уже были производственные данные, производственные пользователи и производственный беспорядок. Нам нужно было перестраивать систему в процессе работы.
Читать далееПривет, Хабр!
Недавно у меня было собеседование, на котором мы довольно много времени обсуждали одну из фундаментальных концепций SwiftUI — View.
Узнать большеDocker Gitlab + Gitlab runners на Fedora 44. Как настраивал у себя и немного каких приколов может быть.
Что посмотреть«СХД для ИИ» - маркетинг. На деле у склада три потребителя с конфликтующими требованиями: обучение (полоса и p99 потока), инференс/RAG (хвосты латентности) и чекпоинты (burst-запись). На примере реальной HA-пары NVMe-oF/TCP и арифметики тракта данных ответим на главный вопрос.
Почему RDMA и Gen5 часто не дают эффекта?
Где микросекунды протокола реально съедают SLA?
В каком порядке апгрейдить: сначала ворота фронта, потом плазму, и только потом реликвии бэкенда?
Узнать, кому плазма, а кому лазганНа Финансовом конгрессе Банка России в начале июля Герман Греф и Эльвира Набиуллина поспорили о переохлаждении экономики, а когда глава Сбербанка попросил слушателей высказать свое мнение, большинство воздержалось. Это не случайно: в силу ряда недостатков экономического образования, финансисты не в состоянии разобраться в проблемах, связанных с выбором правильной денежно-кредитной политики, и фактически это сейчас под силу только искусственному интеллекту.
Спор на конгрессе инициировала модератор встречи Набиуллиной и Грефа – Элина Тихонова, телеведущая на канале РБК. Она отметила, что в ЦБ не видят признаков переохлаждения экономики, так как безработица не растет, производительность отстает от роста зарплат, однако глава Сбербанка Герман Греф утверждает, что переохлаждение есть. «Где тут Банк России ошибается?» – спросила она его.
Почему никто не хочет спорить с Набиуллиной и Грефом?
Глава Сбербанка сказал, что Банк России говорит, будто экономика охлаждается, но не переохладилась, и риски инфляции и переохлаждения находятся в равновесии, но, по его мнению, асимметрия здесь очевидна, и точку равновесия уже прошли. В качестве обоснования своих слов он сослался на падение инвестиций в течение последних четырех кварталов.
Эльвира Набиуллина согласилась с тем, что инвестиции сокращаются, но отметила, что «Всем нравится переохлаждением пугать. Но когда мы говорим перегрев – никто не спорит, что перегрев – это когда спрос повышает предложение. А когда говорим переохлаждение – это значит, что у вас спроса недостаточно должно быть для тех возможностей, которые есть у предложения. Значит должны быть незадействованные ресурсы, прежде всего трудовые. Мы это видим? Нет.»
После обмена мнениями Греф провел опросИстория про то, как я сделал себе виртуального аватара для коротких видео — без генерации видео через ИИ.
Задача была простая: превратить свои текстовые заметки в вертикальные ролики, не садиться перед камерой и не тратить день на монтаж каждого выпуска.
В итоге получилась самодельная полуавтоматическая DIY‑система:
— универсальные графические ассеты персонажа
— ручная озвучка моим голосом
— разметка фраз в аудио через Audacity
— текстовый сценарий с управляющими тегами для событий в ролике
— кастомный JSX‑плагин для After Effects
Система берёт сценарий с управляющими тегами, аудиодорожку с голосом и файл разметки, после чего собирает заготовку ролика: аватар, липсинк, мимику, субтитры и слайды.
В статье показываю, как всё устроено, немного логики кода, почему первая версия попала в зловещую долину, что удалось автоматизировать, а что всё ещё приходится доводить руками.
В конце — немного статистики по первым трём роликам, запущенным с нулевых аккаунтов: YouTube, Instagram, TikTok и ВК.
Читать далееВсем привет! Меня зовут Катерина Цаплина, я AI Architect и программный эксперт курса «MLOps для разработки и мониторинга моделей». Работаю на стыке ML, инфраструктуры и корпоративной архитектуры в крупной промышленной компании и на практике вижу, насколько непросто выстраивать такие процессы в реальной организации.
Это четвёртая и финальная статья цикла о том, как компании реализуют MLOps. В предыдущих частях мы разобрали, как компании могут строить MLOps в целом, рассмотрели пример внутренней ML-платформы Uber Michelangelo и на примере Netflix Metaflow разобрались, как workflow-фреймворки помогают навести порядок в ML-разработке.
Сегодня разберём ещё одну альтернативу собственной платформе: managed-сервисы облачных провайдеров. На примерах Google Vertex AI, Yandex DataSphere и Yandex AI Studio рассмотрим, как они устроены и чем будут полезны команде и бизнесу. И, наконец, подведём итог всей серии статей.
Читать далееВ мире разработки программного обеспечения редко можно увидеть, как зрелый, динамический язык добавляет мощную, статическую систему типов без ущерба для своей философии и существующего кода. 3 июня 2026 года команда Elixir сделала именно это, выпустив версию 1.20. Главное нововведение — постепенная типизация (gradual typing), которая обещает найти в вашем коде «верифицированные баги» (verified bugs — ошибки, гарантированно ведущие к падению в рантайме) без необходимости писать аннотации типов.
Но почему это должно волновать вас, если вы пишете на Python, Java или Go? Команда Elixir поставила перед собой цель, которую многие считают «святым граалем». На практике сочетание всех трёх свойств почти не встречается.
И я считаю, что это отличный повод присмотреться к Elixir, даже если вы никогда не писали на нём ни строчки. Зрелый и интересный язык, работающий на виртуальной машине Erlang (BEAM) и исповедующий функциональную парадигму. Он известен своей отказоустойчивостью и конкурентностью, но, увы, остается малоизвестным языком, и я надеюсь что эта статья заставит вас заинтересоваться Elixir.
Читать далееС развитием больших языковых моделей качество автоматически сгенерированного текста достигло уровня, при котором он становится практически неотличимым от написанного человеком. Это создаёт как новые возможности, так и значительные вызовы, связанные с фальсификацией информации, мошенничеством, генерацией дезинформации и другими рисками.
В связи с этим встает вопрос по обнаружению и защите от созданного искусственным интеллектом контента. Особенно в академической среде. Кроме того, одной из немаловажных проблем также является возможность обеспечения универсального обнаружения сгенерированных искусственным интеллектом текстов и противодействие обходу методов классификации созданного контента. На Хабре уже неоднократно освещали эту тему.
Мы решили разобраться, что происходит с патентами в данной сфере.
Читать далее