xaker
Реверс EVM-кода. Учимся вскрывать байт-код виртуальной машины Ethereum

Для подписчиков8 января 2026 года злоумышленник вывел примерно 8535 ETH (на тот момент около 26,4 миллиона долларов) из смарт-контракта проекта Truebit. Ошибка в функции расчета цены позволила атакующему минтить новые токены почти бесплатно. После атаки цена токена TRU обрушилась более чем на 99% за несколько часов.

  • вторник, 22 сентября 2026 г. в 00:00:15
xaker
ФБР изъяло домены DDoS-сервиса NightmareStresser

ФБР изъяло два домена NightmareStresser — сервиса, предназначенного для DDoS-атак по найму. По данным американских властей, NightmareStresser был одним из старейших действующих DDoS-сервисов, и с 2022 года его использовали для сотен тысяч атак по всему миру.

  • вторник, 22 сентября 2026 г. в 00:00:14
golang
PVS-Studio для Go: краткий обзор новых диагностических правил

Вышел PVS-Studio 8.0! Мы добавили поддержку анализа Go проектов и многое другое. В этой статье мы разберем интересные диагностические правила для Go, которые мы подготовили с выходом новой версии нашего анализатора.ВведениеВ PVS-Studio 8.0 официально появилась поддержка анализа Go проектов, а также возможность работы из IDE GoLand и Visual Studio Code (если вы используете Go).А ещё плагин для Visual Studio Code был значительно переработан и получил поддержку не только анализа Go проектов, но и …

  • вторник, 22 сентября 2026 г. в 00:00:13
golang
Почему LLMProvider недостаточно: проектируем AI Gateway для SaaS на Go

Когда начинаешь делать AI-фичу в backend-приложении, первая архитектурная идея обычно выглядит очень здраво: спрятать конкретного провайдера за интерфейсом.Что-то вроде:type LLMProvider interface { Generate(ctx context.Context, req Request) (Response, error) }Сегодня за ним OpenAI-compatible API, завтра другой провайдер, послезавтра локальная модель. Код бизнес-логики от конкретного SDK не зависит, значит архитектурная задача вроде бы решена.Я тоже начинал примерно с этого. Но по мере того …

  • вторник, 22 сентября 2026 г. в 00:00:11
golang
Как я переписал каталог из 500 000 SVG‑иконок с Laravel на Go и уменьшил сервер с 4/6 ГБ до 2/2 ГБ

SVG4 — каталог векторных иконокБольше года назад я запустил SVG4 — каталог векторных иконок. Сейчас в нём больше 500 000 SVG‑файлов. Первая версия была написана на Laravel, и на тот момент выбор был вполне логичным: Laravel я хорошо знал, на нём можно было быстро собрать рабочий проект и проверить, нужен ли он вообще кому‑нибудь. Проект оказался нужен, начал расти, а вместе с ним росли база, количество страниц, поисковый трафик и нагрузка. Старая версия в итоге работала на сервере с 4 ядрами и …

  • вторник, 22 сентября 2026 г. в 00:00:10
javascript
Про то, как я научил своего аватара снимать ролики по сценарию без ИИ-генерации видео (часть 2)

NB. Это дневник почти двух месяцев разработки. Здесь будет много кода, неудачных экспериментов, технических решений и анимированных примеров. Одно изменение постоянно тянуло за собой другое, поэтому получилось длинно. Для удобства разбил историю на главы — можно переходить сразу к интересующим задачам.Приятного чтения!ОглавлениеВступление Мельтешение рта или как я переделал артикуляцию Ручной фон слишком долго делать или зачем мне понадобились генераторы Правка сценария затирала весь проект или…

  • вторник, 22 сентября 2026 г. в 00:00:08
javascript
React 19.3

Эта статья — перевод оригинальной статьи «React 19.3».Также я веду телеграм канал «Frontend по‑флотски», где рассказываю про интересные вещи из мира разработки интерфейсов и AI.Новые возможности ReactView TransitionsНовый компонент <ViewTransition> позволяет анимировать элементы интерфейса при их появлении, исчезновении, перемещении или изменении размера с помощью браузерного View Transition API.В прошлом году мы представили его как экспериментальный API, а в React 19.3 он получил стабиль…

  • вторник, 22 сентября 2026 г. в 00:00:07
javascript
История npm‑библиотеки morphing‑scroll

Хочу рассказать о своей npm‑библиотеке — это мой второй и самый сложный npm‑проект на момент написания статьи. Глубоко в код погружаться не буду — поделюсь историей создания и мотивацией.ВступлениеПримерно в 2015 году я получил свою первую работу UI/UX‑дизайнером. Рисовал интерфейсы мобильных и десктопных приложений в популярном тогда Sketch, на выделенном мне Mac, и был этому искренне рад. Шло всё неплохо: я соблюдал гайдлайны iOS и Android, а когда идея приложения во мне откликалась, старался…

  • вторник, 22 сентября 2026 г. в 00:00:06
javascript
Субтитры с переводом в расширении Chrome: звук вкладки в MV3, один поток вместо двух сервисов

Я один пишу расширение Chrome, которое показывает субтитры с переводом поверх созвона в Meet, Zoom или Teams, открытых во вкладке браузера. В звонок при этом никто не заходит, звук берётся из вкладки. Ниже три вещи, на которых ушло больше всего времени. Цифры на 17 сентября 2026.Звук вкладки в Manifest V3В MV3 фон расширения это service worker, а в нём нет ни Web Audio, ни getUserMedia. Поэтому service worker получает не поток, а только идентификатор, и создаёт offscreen-документ (reasons: [&#3…

  • вторник, 22 сентября 2026 г. в 00:00:05