Где-то прямо сейчас один программист не спит и патчит баг в библиотеке, от которой зависит половина интернета. Он делает это бесплатно. Его никто не знает. Если он уйдёт — никто не придёт.
Это история про структурную уязвимость, которую мы все создали вместе и продолжаем игнорировать.
Статья-продолжение к четвертой теме: там обсудили, как подстелить соломки, если еще только маячит "оптимизация в компании". Но у кого-то кадровые пертурбации уже начались.
Анонимный вопрос участника: страх сокращения понятен, а что делать, если правда сократили? Как на это посмотрят новые потенциальные работодатели?
Читать далееЧасть I: Первопричина - атака Mini Shai-Hulud на экосистему TanStack
Цепочка поставок как вектор атаки
11 мая 2026 года, в промежутке с 19:20 до 19:26 UTC, произошло одно из наиболее технически изощрённых событий в истории атак на цепочку поставок npm. Группировка TeamPCP опубликовала 84 вредоносные версии пакетов в рамках 42 пакетов из пространства имён @tanstack/* - и всё это за шесть минут.
Кампания получила название Mini Shai-Hulud - отсылка к гигантским песчаным червям из вселенной «Дюны» Фрэнка Герберта. Это не первая волна активности TeamPCP: до этого они скомпрометировали сканер Trivy от Aqua Security в марте 2026-го и npm-пакет Bitwarden CLI в апреле 2026-го. Каждая следующая волна технически сложнее предыдущей.
Как работала атака: три уязвимости в одной цепочке
Атака объединила три уязвимости, каждая из которых по отдельности была бы недостаточна. Злоумышленник создал форк репозитория TanStack/router, открыл pull request, который запустил workflow с триггером pull_request_target, и отравил кэш GitHub Actions через границу доверия fork↔base. Когда легитимный workflow сработал, отравленный кэш был восстановлен, а вредоносный код извлёк OIDC-токен прямо из памяти процесса runner'а.
Ключевой момент: злоумышленники не крали статические npm-токены. Вместо этого они извлекали runtime OIDC-токены напрямую из памяти процесса runner'а, что позволило им аутентифицироваться легитимным образом через trusted publisher bindings и публиковать скомпрометированные обновления в npm-реестр.
Масштаб заражения
Читать далееУже более 10 лет английский является моим основным каналом для получения информации. Все эти годы я очень много читал, включая художественную литературу и техническую документацию, но ещё больше слушал — аудиокниги и YouTube. Я уверен, что в сумме это не менее 5 000 часов.
Как это повлияло на мою способность говорить? В сухом остатке — никак. Если бы мне пришлось начинать сейчас сначала, то я бы безусловно выбрал другой путь. Под катом рассказываю о реальных плюсах и минусах метода Comprehensible Input, почему толерантность к неопределенности мешает говорить правильно, и как перевести язык из пассивного знания в процедурный навык.
Узнать, почему понимание не ведет к говореОднажды у нас появилась задача, которая (на первый взгляд) выглядела очень простой: сделать опросник в приложении. На макетах всего лишь пара экранов, несколько вопросов, кнопка «Далее». Всё красиво, не сухо, с картинками у вариантов ответа и нормальной подачей, а не в формате «Заполните обязательные поля»
Судя по макету всё просто: сверстать флоу и отправить все ответы одним POST в конце. Самый короткий путь — зашить вопросы, переходы и тексты на клиенте. Делов на пару дней — сделал и забыл.
Но если опросник перестаёт быть одноразовой анкетой, а становится частью живого продукта, начинается веселье: сегодня нужно поменять текст, завтра - картинку, потом - порядок вопросов, потом - ветвление, потом - похожий сценарий для другой группы пользователей.
Каждая правка текста, картинки, порядка вопросов или маршрута снова уезжает в релизный цикл web, iOS и Android. А синхронизировать такие изменения между тремя платформами намного сложнее, чем кажется на старте.
По некоторым косвенным признакам мы понимали, что с этой анкетой всё будет именно так, поэтому в качестве альтернативы мы выбрали путь backend-driven UI, когда клиент показывает поддерживаемые типы экранов, а backend управляет сценарием: текстами, изображениями, порядком шагов, переходами и состоянием прохождения.
Ниже расскажу почему мы пошли в backend-driven подход, где он действительно помог, а где показал явные ограничения и мог выбить нас из сроков.
Читать далее8–10 октября 2026 года в Санкт-Петербурге пройдет INFOSTART TECH EVENT — техническая конференция для 1С-сообщества.
В этом году конференция пройдет в стилистике темного фэнтези. Но главное останется прежним: сильная техническая программа, практические доклады и живое общение с коллегами.
Прием заявок на доклады уже открыт....
Читать далееФизика, будучи точной наукой, с огромной неохотой позволяет манипулировать собственными законами. К примеру, изоляторы — это вещества или материалы, которые не проводят (или практически не проводят) электрический ток, что делает их антиподами проводников. Однако данное утверждение не высечено в камне, если подойти к нему креативно. Ученые из Кембриджского университета (Великобритания) создали новый способ питания изоляторов. Что позволило ученым нарушить порядок вещей в физике, какими свойствами обладают новый проводящие изоляторы, и где они могут быть использованы? Ответы на эти вопросы мы найдем в докладе ученых.
Читать далееКогда мы начали встраивать AI-агента в BPM-платформу, перед нами встала знакомая enterprise-задача: десятки клиентов, у каждого своя онтология, словарь, роли и ограничения безопасности. В одной компании «заявка на покупку» — это «реестр заявок», в другой — «карточкой закупки». Один клиент работает на изолированном контуре с локальной моделью, другой не даёт ассистенту доступ к почте и репозиториям.
Традиционный ответ — форк репозитория под каждого клиента — при масштабировании превращается в ад поддержки: багфиксы не попадают автоматически, стоимость растёт экспоненциально, качество падает. Мы решили эту проблему иначе: per-tenant overlay позволяет кастомизировать поведение агента без изменения кода.
Читать далееПривет, Хабр!
На связи команда Alpina Digital — мы развиваем корпоративную библиотеку для бизнеса, через которую компании обучают сотрудников и управляют внутренним knowledge-sharing . Через наши системы проходят сотни тысяч сессий чтения от сотрудников крупных компаний: разработчики, менеджеры, продакты, дизайнеры.
В какой-то момент мы поняли, что сидим на интересных данных. Решили покопаться и посмотреть, что реально читают люди из IT — не что рекомендуют списки «10 must-read книг», а что открывают, когда никто не смотрит.
Статья будет интересна тем, кто отвечает за обучение и развитие сотрудников в IT-компаниях, HR- и T&D-специалистам, тимлидам и руководителям инженерных команд, а также самим разработчикам, которым любопытно сравнить свои читательские привычки с коллегами по индустрии и понять, какие книги помогают расти в профессии.
Дисклеймер: данные анонимизированные, мы видим только агрегированную статистику по категориям пользователей без привязки к конкретным людям. Выборка — компании, у которых есть подписка на корпоративную библиотеку, так что это не репрезентативный срез всего рынка, а скорее те, кому работодатель дал доступ к книгам.
Читать далееИдея этого проекта пришла ко мне в феврале 2021 года, когда в Остине (штат Техас) произошёл сбой энергосистемы. К сожалению, нам надолго запомнилось то, как правительство справлялось с ситуацией. Когда единственным источником тепла и света остался только газовый камин, а единственным окном в мир — слабое телефонное Интернет-соединение, у меня было много времени поразмыслить о том, что бы новое и интересное мне хотелось разработать. Я взял калькулятор HP-41CV и начал нажимать на кнопки. Как обычно, ощущения от этого были самыми приятными. И мне захотелось самому создать нечто подобное!
В начальной школе мне представилась возможность поиграть с HP-41CV. Я наблюдал, как калькулятор загружает программу с магнитной ленты и запускает её. Жужжание считывателя карт и тонкая магнитная лента, втягиваемая в устройство с одной стороны и выходящая с другой, внезапно изменяли поведение калькулятора, что произвело на меня очень сильное впечатление. Я и не подозревал, что оно повлияет на всю мою жизнь. Спустя несколько лет у меня появился Sinclair ZX81, потом ZX Spectrum, на котором я при помощи дизассемблера HiSoft Devpac MONS взламывал разные игры. Эти два устройства (калькулятор HP и микрокомпьютеры Sinclair) подтолкнули меня к разработке, программному обеспечению и исследованию внутренностей разных машин. Во многом я стал разработчиком именно благодаря этому.
Когда-то я изучал сам чип Z80, воссоздав его в виде A-Z80 и написав визуальный инструмент Z80 Explorer, отображающий его список связей. В каком-то смысле это ощущалось как закрытие темы одержимости Sinclair. Проект калькулятора ощущался как закрытие темы HP. Это не клон, не эмуляция, а реализация с нуля на основе тех же принципов. Мне хотелось изнутри разобраться в том, почему эти машины работали именно так.
Как работает научный калькулятор? Не в общих чертах, а в подробностях. Как он хранит числа? Какой алгоритм вычисляет sin(x)? Как функционирует его очень простой CPU?
В серии моих статей мы получим ответы на эти вопросы: в конечном итоге мы получим полностью работающий научный калькулятор, спроектированный и изготовленный с нуля, на собственном CPU, созданном на FPGA, с написанным вручную микрокодом, эталонными реализациями на C++ и физическим «железом», которое лежит у меня на столе и может вычислять точные ответы. И всё это в опенсорсе: вы можете увидеть это и попробовать самостоятельно.
Насколько я понимаю, этот проект уникален: мне неизвестен ни один другой научный калькулятор (с тем же уровнем функциональности), реализованный на FPGA с собственным CPU и оригинальным рукописным ПО для его работы.
Читать далееРаботать с сырым аудио в машинном обучении вычислительно тяжело и сложно. Но что, если свести музыку к тексту и применить к ней классические NLP-подходы?
В этой статье мы с нуля напишем рекуррентную нейросеть (LSTM) на PyTorch, которая научится улавливать музыкальные паттерны и генерировать собственные мелодии. Мы не будем использовать готовые сложные фреймворки вроде MusicGen. Вместо этого разберем весь процесс под капотом: возьмем очищенный датасет Lakh MIDI, напишем парсер нот с помощью music21, соберем датасет через скользящее окно и добавим модели «креативности» с помощью температуры сэмплинга.
Читать далееУ крупного ритейла есть такой парадокс: чем больше данных компания собирает, тем хуже видит, что происходит на полке прямо сейчас. Управляющий магазина живет в одном мире цифр, категорийный менеджер — в другом, логист — в третьем, и все эти миры синхронизируются раз в сутки. И хорошо, если так, а то бывает, что и раз в неделю.
Читать далееПродолжим совершенствование нашего I2C‑контроллера и расширение спектра применимости. В этот раз сделаем возможность burst‑транзакций и выведем картинку SSD1306. Для этого необходимо детально разобрать механизм функционирования OLED‑дисплея SSD1306 и сделать аппаратный контроллер с burst‑передачей по I2C, и в качестве примера сделать генерацию визуализацию 3D‑куба и текста. Получился ОЧЕНЬ объемный материал с объяснением всех механик примененных для решения данной задачи. И вся логика — сугубо в железе, без процессора, без микрокода и чисто в ПЛИС.
Всем кто интересуется кодингом под Verilog — добро пожаловать под кат!
Читать далееС 2024 года в российской промышленности менялся подход к инвестициям в ИИ. Если еще недавно компании были готовы экспериментировать с цифровыми инициативами «на вырост», то теперь инвест‑бюджеты сокращены (а кое‑где просто порезаны), при этом требования к проектам стали кардинально жестче. Деньги выделяются на то, что дает измеримый эффект «здесь и сейчас» — на проекты с горизонтом более года года советы директоров финансирование просто не дают. При этом направлений, где ИИ окупается за 6–12 месяцев, немного, но они есть. И эта статья — про обобщение проектного опыта команды SSP SOFT в промышленности.
Читать далееЭто вторая часть цикла про mTLS. В первой разобрали теорию: как работает рукопожатие, от каких атак защищает и где принципиально бессилен. Здесь — практика. Разберём реальный сценарий: homelab на одном сервере с Traefik и Dokploy. Пройдём путь от модели угроз до конкретных попыток атаковать собственный сервер — с командами и объяснениями, что происходит.
Если первую часть не читали — не страшно. Ниже есть краткий раздел с основными понятиями, достаточный, чтобы двигаться дальше.
Читать далееПривет, Хабр! В этом материале я расскажу о старой школе Уолл-стрит: инвесторах, управляющих фондами и миллиардерах, которые десятилетиями переживали кризисы, пузыри, обвалы и рыночные эйфории. Они привыкли быть выше хайпа, смотреть на цену, маржу, риски и сроки окупаемости. Для них прорывная технология сама по себе еще не означает хорошую инвестицию, а ИИ-бум стал проверкой на совместимость с новой реальностью.
Пока молодой рынок дерется за чипы, продавливает дата-центры, сравнивает новые модели и грезит будущей автоматизацией, старая школа задает скучный вопрос: сколько маржи уже заложено в котировки? Поэтому одни уходят в кеш, другие ставят против перегретых бумаг, третьи просто минимизируют число ИИ-фаворитов в своих портфелях — и иногда проигрывают рынку именно из-за осторожности.
Предлагаем посмотреть, как олды относятся к новым технологиям типа ИИ и к доллару в принципе.
Читать далееЗаключительная часть серии статей про Laravel + Centrifugo и как его готовить.
Сравниваем альтернативы Centrifugo для Laravel: Reverb, Pusher, Ably, Socket.IO, SSE и polling. Разбираем плюсы, минусы и сценарии выбора real-time решения.
Читать далееНаконец мы добрались до поистине сложной темы. Если вы думаете, что раньше были сложные, вы глубоко заблуждаетесь!
Двусвязный список на Rust. Это вообще возможно? Ну… да. С некоторыми оговорками. Что за оговорки, узнаем из четвёртой главы.
Читать далееМеня зовут Дима Кирпа, я разработчик из команды ML Laboratory в Yandex Infrastructure. Четыре года я делаю внутренний поиск по корпоративному интранету Яндекса. Сегодня предлагаю ненадолго отложить судорожный тюнинг промптов и температуры LLM и окинуть внутренние корпоративные знания более широким взглядом. На примере опыта Яндекса я разберу процесс LLM‑изации интранета компании с самых азов. На время мы вернёмся в ламповый мир старого доброго фича‑инжиниринга, неспешно пройдёмся от настроек ранжирования к настройкам поискового контекста для LLM и увидим, как фичи поиска плавно перетекают в фичи генеративки. Напоследок убедимся, что всё не зря и наши разработки реально приносят пользу компании.
Я расскажу, как устроен бэкенд и ранжирование внутреннего поиска Яндекса, как на базе внутреннего поиска мы построили генеративную Q&A‑систему AI Chat. Покажу обоснования разных внедрений в виде чисел из реальных A/B‑экспериментов. Никакого хайпа, только факты. Цель статьи — доказать, что поиск — это база для корпоративных процессов обмена знаниями, а модель роста от поиска к агенту — самая эффективная.
Читать далееПривет! Меня зовут Андрей Терёхин, я руковожу отделом маркетинга в Projecto и за свой 15-летний опыт работы заметил такой паттерн: компании, где менеджеры говорят про низкую вовлеченность, обычно имеют проблемы с рабочими процессами, а компании, где процессы прозрачны, вообще не используют слово «вовлеченность» — у них и так все работает. Эта статья про то, почему вам не нужны горящие глаза, вовлеченные сотрудники и корпоратив на байдарках, а обычные скучные и понятные процессы.
Читать далее