❌

Normal view

[Перевод] Купил морскую спутниковую антенну примерно за €200 и убедил её, что она на яхте

Морская спутниковая антенна Intellian i4 новой стоит около 4000 евро, а на нидерландской барахолке Marktplaats её продавали примерно за 200. Чтобы она навелась на спутник, стоя на крыше, а не на палубе, автор подключил RP2040 с модулем RS-422 и стал слать антенне NMEA-строку с курсом «яхты». Потом снифал обмен фирменной программы с блоком управления, декомпилировал её код на C# и разобрал текстовый протокол с необычной контрольной суммой и целочисленными углами. В итоге тарелка наводится одной командой, работает как поворотный механизм для Gpredict и ловит телевидение с Astra 19.2°E.

Читать далее

[Перевод] Эмулятор Game Boy Color на MicroPython: Pokémon Crystal на конференц-бейдже с RP2350

Стив Франсиа, автор Hugo и Cobra, после эмулятора NES запустил на конференц-бейдже GitHub Universe с RP2350 эмулятор Game Boy Color — на MicroPython с генератором кода Viper. Процессор SM83 с его восемью регистрами и 512 опкодами не влез в четыре быстрые локальные переменные Viper, и декодер пришлось строить на восьмеричной раскладке опкода. Ветвления по адресу заменила таблица из 16 страниц по 4 КБ, двухмегабайтные картриджи подгружаются по банку при первом обращении, а разгон до 300 МГц вешал общую шину QSPI. Плюс три бага из реальных игр: окно диалога в Oracle of Ages, «вывернутый» Линк в режиме двойной скорости и указатель стека, который Pokémon Crystal направляет прямо в ROM.

Читать далее

[Перевод] Компьютерное зрение на микроконтроллере за $2: SIMD на ESP32-S3 ускорил FAST в 2,2 раза

У ESP32-S3 есть 128-битные SIMD-инструкции, но примеров кода под них почти нет: автор нашёл всего три источника. Он написал на них детектор углов FAST и упёрся в два ограничения набора инструкций. Невыровненные блоки пикселей напрямую не читаются, а сравнивать можно только знаковые байты, причём вся арифметика с насыщением, так что вычесть 128 из беззнакового пикселя обычным вычитанием нельзя. Первое обошла инструкция, которая вырезает кусок из двух склеенных регистров, второе — XOR с 0x80. Итог в тестах автора — 11,2 мегапикселя в секунду вместо 5,1: этого хватает на поток VGA при 30 кадрах в секунду.

Читать далее

[Перевод] Фаззер против ИИ-агента на V8: 37 и 45 уязвимостей за полгода, общих — четверть

В Project Zero сравнили два конвейера, которые постоянно ищут уязвимости в V8, JavaScript-движке Chrome: фаззер Fuzzilli работает непрерывно, LLM-агент BigSleep раз в сутки просматривает новые коммиты. За апрель–сентябрь 2026 года после очистки от дубликатов и «нерабочих» репортов у BigSleep 45 исправленных уязвимостей, у Fuzzilli 37. Пересечение считали отдельно, с дополнительным поиском дубликатов через коммиты-исправления и базу Clusterfuzz: общими оказались 20 из 81 репорта, около четверти. В отдельном эксперименте агент на модели Gemini 3.6 flash получил коммиты, которые, вероятно, внесли 112 старых багов Fuzzilli, и за 25 попыток на каждый коммит заново нашёл около 62% из них. Баги, на которые фаззер тратил больше времени, агенту тоже давались хуже, а в JIT-компиляторах пересечение меньше. В переводе статьи Самуэля Гросса — методика подсчёта, проверка на запоминание обучающих данных и три разобранных бага: какие нашёл только агент и какой — только фаззер.

Читать далее
❌