Технологический Болт Генона
8.26K subscribers
3.04K photos
368 videos
214 files
3.91K links
До Декарта никогда не существовало рационализма.

Музыкальный Болт Генона: @mus_b0lt_Genona
Мемный Болт Генона: @mem_b0lt_Genona
Кадровый Болт Генона @kadr_b0lt_Genona

Обратная связь: @rusdacent
Download Telegram
Есть такая библиотека json-joy

json-joy is a library that implements cutting-edge real-time and collaborative editing algorithms and utilities for JSON data models, with a focus on developing the JSON CRDT (Conflict-free Replicated Data Type) specification and implementation

https://github.com/streamich/json-joy

И у них в блоге я нашёл пост из 2023 года о том, как с помощью фаззинга они проверяют качество реализации алгоритмов совместного редактирования

Fuzz Testing RGA CRDT
https://jsonjoy.com/blog/fuzz-testing-rga-crdt

Fuzz testing has found dozens of bugs in json-joy RGA CRDT implementation. Some of them were so tricky that I’m not sure if we would have ever found them in reasonable amount of time without fuzz testing. Those bugs would be just sitting there, waiting to be triggered by some edge case, and then they would cause data corruption.

В посте рассмотрено три ситуации

- Fuzzer 1: Simulating two users
- Fuzzer 2: Simulating multiple users
- Fuzzer 3: Simulating multiple users generating all JSON operations, encoding, and decoding

Примеры реалиазации доступны в репозитории

https://github.com/streamich/json-joy/blob/master/src/json-crdt/nodes/bin/__tests__/BinNode.fuzzing.spec.ts#L82

https://github.com/streamich/json-joy/blob/master/src/json-crdt/nodes/str/__tests__/StrNodeFuzzer.ts#L104

Fuzz Testing of JSON CRDT Model
https://github.com/streamich/json-joy/tree/master/src/json-crdt/__tests__/fuzzer
👍184
Есть такой стартап Antithesis, который сделан выходцами из Apple, которые пилили FoundationDB (https://github.com/apple/foundationdb/) и занимается он созданием платформы для тестирования ПО - https://antithesis.com/product/what_is_antithesis/

Автоматическое тестирование ускорило разработку в 50 раз. Сказка от создателей FoundationDB
https://habr.com/ru/companies/ruvds/articles/800009/

И у них есть серия постов про их ИИ, который создан с одной целью - проходить игры с NES.

> The Antithesis autonomous testing platform can beat dozens of games, including some very complex ones that as far as we know have never before been completed by an autonomous system

Antithesis announces Artificial General 8-bit Intelligence (AG8I)
https://antithesis.com/blog/ag8bi/

How Antithesis finds bugs (with help from the Super Mario Bros.)
https://antithesis.com/blog/sdtalk/

Solving Zelda with the Antithesis SDK
https://antithesis.com/blog/zelda/

Crushing Castlevania with Antithesis
https://antithesis.com/blog/castlevania/

Depth is all you need: how Antithesis crushes Gradius
https://antithesis.com/blog/2025/gradius/

Optimizing our way through Metroid
https://antithesis.com/blog/2025/metroid/

Планируются ещё Contra, Kirby’s Adventure, Arkanoid, Tetris, Ice Climber

В посте про Metroid они поясняют зачем они это делают

> The honest truth, the underlying reality beneath the hype, is that this is actually how we figured this stuff out. None of us were fuzzing or PBT experts coming into this business, and if we were that wouldn’t have helped anyway, because our ambitions quickly went way beyond the state of the art in those fields. So we started asking questions like: “why can’t you beat The Legend of Zelda with a fuzzer,” and pixel by grueling pixel we learned enough to build the Antithesis platform.

В целом это правда похоже на специфичный fuzzing

> But our system doesn’t have to act like a linear agent. The rest of the platform around it is a mechanism for giving an arbitrary program save slots that can be written to and reloaded at arbitrary points. This translates a one-shot problem into a problem on which incremental progress is possible. We’re not sure if there’s a term for such an agent, but internally, we refer to this as “tree fuzzing,” and it enables our system to effectively test complex programs with a comparatively minimal understanding of their internal workings.

https://antithesis.com/blog/2025/gradius/#seeing-like-a-fuzzer

Запускают всё в специальном окружении, которое позволяет ловить и воспроизводить ошибки

So you think you want to write a deterministic hypervisor?
https://antithesis.com/blog/deterministic_hypervisor/

Я прикрепил к посту их трейлер и пару докладов, которые позволяют погрузиться в тему.

В общем с удовольствием прочитал всю серию и жду новые посты, тем кто интересуется рекомендую.
👍14🔥7
Forwarded from Some Security Notes
#firejail #bubblewrap #sandbox #osa

Хороший обзор по актуальным песочницам для изоляции приложений и записи логов. Bubblewrap активно использую в настоящее время. Рекомендую.

https://hkubota.wordpress.com/2020/12/31/comparing-sandboxing-tools/
👍6🔥4
Русский след в истории логотипа PostgreSQL
https://habr.com/ru/companies/postgrespro/articles/905612/

Готовый эскиз сайта с логотипом Дмитрий выложил на своём персональном сайте devnull.wplus.net (что подчеркивало неформальность) и отправил ссылку в нашу рассылку. И это не просто воспоминания: сохранилось его письмо в список рассылки pgsql-hackers от 12 апреля 1999 года. В нем, отвечая в рамках дискуссии "RE: [HACKERS] PostgreSQL Webpage", Дмитрий писал: "I was commited to show how postgres webpage should looks by my opinion. See http://devnull.wplus.net/pub/postgres/" («Я решил показать, как, по моему мнению, должна выглядеть веб-страница postgres. Смотрите...»). Так что факт задокументирован: именно тогда, в апреле 1999-го, эскиз был представлен сообществу.
. . .
Юридически авторство и права на использование «русского слоника» оставались в «серой зоне». Я решил исправить эту ситуацию и обратился к Дмитрию Самерсову с просьбой формально передать права на оригинальный дизайн сообществу. Поскольку разработка логотипа была частной инициативой Дмитрия и его студии, а не какой-то организации, процедура передачи прав была простой.

Дмитрий, не имевший никаких претензий на логотип, согласился. С присущим ему юмором он вспоминает: «Если просят сделать какую-то странную фигню, то эту странную фигню надо сделать со всей тщательностью и вниманием». В марте 2025 года Дмитрий Самерсов официально передал права на дизайн «слоника» под лицензией Creative Commons всему сообществу PostgreSQL.

Сегодня на официальной вики PostgreSQL закреплено: «The PostgreSQL elephant logo “Slonik” is a copyrighted design...» История приобрела логическое завершение.

Что чувствует Дмитрий Самерсов, стоя у истоков символа, известного миллионам? «С одной стороны, приятно, что есть что-то, что останется после меня, кроме детей. С другой стороны, немножко забавно, что из всего сделанного в этой жизни наиболее ярким ощущением остался такой случайный логотип slonik.gif».

Пост об этом же от Олега Бартунова из 2016 года
О логотипе PostgreSQL
https://obartunov.livejournal.com/186860.html

Небольшой доклад Олега (прикрепил тоже к посту)
История логотипа Slonik
https://www.youtube.com/watch?v=nqeyAs0YOHQ

Слайды положу в комментарии

Я с Дмитрием знаком лично. Он замечательный человек и собеседник.

Персональный сайт - https://www.samersoff.net/mz/
Канал - @softrainbbs
👍2314🔥13😁5🥱2😇2🤗2
Ребяты из Vulners запилили плагин для Chrome, который подсвечивает сами CVE на странице, показывает дополнительную информацию в попапе и по клику кидает на страницу с описанием уязвимости на https://vulners.com/

Оригинальное сообщение тут
https://xn--r1a.website/VulnersChat/15840

Архив есть в оригинальном сообщении + положу его в комментарии

Установка

1. Распакуйте ZIP
2. Откройте chrome://extensions/ → включите Developer mode
3. Нажмите Load unpacked и выберите папку с расширением


Я работаю с БДУ ФСТЭК в отдельном браузере и удобно, когда есть подсветка на странице по CVE с дополнительной информацией 🌝

Так же мне понравилось смотреть с такой "подсветкой" минимальную информацию сразу, когда уязвимости идут списком, что бы не разворачивать каждый пункт. Я добавил скрин с DockerHub для демонстрации того, что я имею ввиду.
🔥13🤡83👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Четверг, а значит время проектов от подписчиков! 🌝

Тем, кто пропустил, что такое четверговые проекты от подписчиков, можно прочитать тут - https://xn--r1a.website/tech_b0lt_Genona/4983

Слово автору @heaveneleven

---

Добрый вечер папищики, представляю на Ваш суд свою студенческую поделку - реализация протокола STAMP на eBPF и Go. STAMP - это протокол, позволяющий замерять сетевую задержку в обе стороны(а не общую туда-обратно, как это делает ping), а eBPF здесь требуется для того, чтобы манипулировать пакетами напрямую в сетевом стеке(на этапе Traffic Control), минимизируя таким образом задержки на процессинг - те метрики, которые вы получите, будут очень близки к реальным.

К Вашим услугам предлагаются:
- Два бинарника - Sender и Reflector:
- Sender отправляет-принимает пакеты и считает эти самые метрики;
- Reflector принимает пакеты от Sender и отправляет их обратно.
- Демка-симуляция на Docker Compose, которая разворачивает два контейнера и демонстрирует принцип работы (бинарники не требуются).

Зачем я это показываю вам? - хочется комментариев на тему "полезно - не полезно, нужно - не нужно". Пока что это просто учебный проект, хоть и прилизанный, но если будет интерес от комьюнити и запросы фич для реальных юзкейсов - быть может, из этой штуки вырастет серьёзная сетевая утилита. Так что если вы его погоняете у себя на своих сетях и скажете мне: "Полезная штука, буду юзать" или "Хорошо бы иметь такую-то фичу" - я буду очень рад и дальше её развивать.

https://github.com/viktordoronin/stamp-bpf

---
👍332🥱2👎1
Технологический Болт Генона
Глубина анализа по временному промежутку небольшая, конечно, но что есть 🌝 UPD: Так как в комментах стало понятно, что не все поняли, то поясняю, что это бот текст сгенерил. 🔥 Roast Analysis: Тебе от друга (наконец-то честно) Слушай, я тут твой канал перечитал.…
Продолжаем анализировать канал ботами.

Прошлый раз - https://xn--r1a.website/tech_b0lt_Genona/5474

В этот раз принёс подписчик

Политический анализ канала
Технологический Болт Генона (@tech_b0lt_Genona)

📍 Диагноз: ЛИБЕРТАРНЫЙ СОЦИАЛИЗМ

💭 Обоснование:
Во всех постах автор продвигает открытое программное обеспечение, совместную работу и децентрализованные инструменты (например, "json‑joy" с CRDT, "Antithesis"‑fuzzing, sandbox‑инструменты, открытый конкурс IOCCC). Он ценит свободу разработки и минимизацию внешнего контроля: «я с удовольствием прочитал всю серию и жду новые посты, тем кто интересуется рекомендую», «Bubblewrap активно использую», «работы должны препятствовать анализу кода, но быть интересными». Такие позиции указывают на левый экономический уклон (поддержка коллективных, открытых проектов) и сильный либертарианский настрой (отрицание авторитарных ограничений). Поэтому наиболее близкой идеологией считается ЛИБЕРТАРНЫЙ СОЦИАЛИЗМ.

@ChanToolsBot
😁25🙉8🔥7🤡3👍2🥱2
Разработчики библиотеки GNU MP (GMP), предоставляющей функции для выполнения арифметических операций с произвольной точностью, предупредили пользователей об инциденте с повторным выходом из строя процессоров серии AMD Ryzen 9000 на базе микроархитектуры Zen 5 в ходе тестирования работы библиотеки. Предполагается, что повреждение процессоров было вызвано перегревом, возникающим при интенсивном выполнении функций GMP. До завершения полного анализа проблемы пользователям не рекомендовано активно использовать GMP на системах с CPU AMD Zen 5.

Опасения вызваны повторным выходом из строя CPU AMD Ryzen 9950X (AMD Zen5 X16 4300MHz) на сервере в тестовой инфраструктуре проекта. Первый выход из строя произошёл в феврале 2025 года, после чего процессор был заменён по гарантии. В конце августа ситуация повторилась и заменённый по гарантии CPU, установленный в системе с другим блоком питания и другой материнской платой, также перестал функционировать с теми же признаками, свидетельствующими о перегреве (на чипе образовалась обесцвеченная область, диаметром примерно в 1 сантиметр).

По предварительным данным библиотека GMP слишком интенсивно использует циклы с инструкцией MULX, что приводит на системах с AMD Zen 5 к потреблению значительного большей энергии, чем заявлено, и невозможности компенсировать нагрев системой охлаждения, подобранной в соответствии со спецификацией. Во время обоих повреждений выполнялся тест с ручными ассемблерными циклами с одной инструкцией MULX, создающий максимальную нагрузку.


Возможное повреждение CPU AMD Zen 5 при использовании библиотеки GNU MP
https://www.opennet.ru/opennews/art.shtml?num=63786

Оригинал
GMP damaging Zen 5 CPUs?
https://gmplib.org/gmp-zen5
🫡39🔥25👍2😁2🤯21😢1
Есть такой проект Ferrocene целью которого является создание Rust для критических систем.

В 2023 году его открыли
https://github.com/ferrocene/ferrocene

> Ferrocene is the upstream Rust compiler, rustc, unmodified - thoroughly tested on targets that are not supported by upstream. It comes with all tools you expect and are accustomed to from using the Rust toolchain. Additionally, it comes with long term support by a team of experts that have being doing Rust since before Rust 1.0.

Qualifying Rust without forking
https://ferrous-systems.com/blog/qualifying-rust-without-forking/

Свои наработки они стараются вливать в апстрим основного репозитория Rust

How Ferrocene improves Rust
https://ferrous-systems.com/blog/how-ferrocene-improves-rust/

Но пост не про сам Ferrocene, а про то они завезли полезную фичу генерации SBOM (Software Bill of Materials)

До относительно недавнего момента существовал один проект для генерации под Rust
https://github.com/CycloneDX/cyclonedx-rust-cargo

И главная его проблема в том, что он до сих пор не поддерживает последнюю версию CycloneDX 1.6
[Feature] Support CycloneDX 1.6
https://github.com/CycloneDX/cyclonedx-rust-cargo/issues/769

Ferrocene задались задачей затащить генерацию SBOM, как кусок cargo

Вот обсуждение pre-RFC
https://internals.rust-lang.org/t/pre-rfc-cargo-sbom/19842

Вот PR RFC в репе Rust
RFC: cargo-sbom
https://github.com/rust-lang/rfcs/pull/3553

После этого был сделан PR с имплементацией, который приняли в феврале этого года
feat: implement RFC 3553 to add SBOM suppor
https://github.com/rust-lang/cargo/pull/13709

> To enable this feature either set the sbom field in the .cargo/config.toml
[unstable]
sbom = true

[build]
sbom = true

https://doc.rust-lang.org/cargo/reference/unstable.html#sbom

Поддерживаемые форматы

--output-format <OUTPUT_FORMAT>
The SBOM output format. [default: spdx_json_2_3] [possible values: spdx_json_2_3, cyclone_dx_json_1_4, cyclone_dx_json_1_6]

https://crates.io/crates/cargo-sbom

Пост с подробным рассказом что, как и когда контрибутил в этом контексте Ferrocene
SBOM support in Rust
https://ferrous-systems.com/blog/stackable-client/
11🔥7👍1😐1
🫡

В Минцифры РФ предложили пакет мер по борьбе с кибермошенничеством. Среди них — запрет на распространение информации, связанной с практикой ИБ. В случае вступления этих мер в силу более половины статей «Хакера» окажется вне закона. Подписчики потеряют к ним доступ, и новые материалы на эту тему появляться не будут. Архивы PDF нам тоже придется убрать.

Поправка к Федеральному закону № 149-ФЗ «Об информации, информационных технологиях и о защите информации» предполагает наложить запрет на распространение «информации, предназначенной для несанкционированного уничтожения, блокирования, модификации, копирования информации и (или) программ для электронных вычислительных машин, либо позволяющей получить доступ к программам для электронных вычислительных машин, предназначенным для несанкционированного уничтожения, блокирования, модификации, копирования информации и (или) программ для электронных вычислительных машин».

Принятие поправки в таком виде сделает противозаконными любые публикации, связанные с практикой информационной безопасности, в том числе описание уязвимостей и способов их эксплуатации.

На наш взгляд, публичное обсуждение уязвимостей играет ключевую роль в развитии кибербезопасности. Благодаря открытой информации об обнаруженных слабостях разработчики и владельцы ИТ-систем получают возможность оперативно устранять проблемы, а пользователи — защищать свои данные и бизнес-процессы.

Призываем читателей «Хакера», поддерживающих нашу точку зрения, комментировать законопроект:
https://regulation.gov.ru/projects/159652

Дмитрий Агарунов, основатель «Хакера»:

«Любой запрет на публикации и обмен научно-технической информацией является фактическим запретом на обучение. ИБ-специалистам просто негде будет приобретать знания. С учетом того, что новая информация поступает ежесекундно, такая поправка может парализовать кибербезопасность страны.

Кроме того, данная мера бьет исключительно по своим: запретить можно только легальным, зарегистрированным, официальным ресурсам. Публикации на иностранных сайтах, в чатах, каналах, целенаправленную рассылку враждебных приказов и инструкций такая поправка запретить не может. Специалисты врагов спокойно продолжат обучение».


Предложение Минцифры сделает нормальную работу «Хакера» невозможной
https://xakep.ru/2025/08/29/infosec-law/
🤡86🤬29🗿5😭4😁3🖕31
Когда-то давно, лет 15-17 назад, я участвовал в разработке статического анализатора кода C/C++. Одной из задач, которой я занимался, было тестирование качества анализа и тогда я познал боль.

За давностью лет я может уже забыл чего, но точно помню, что проблема undefined behavior (UB) мне веселья доставляла. Сколько я тогда выгреб всякого интересного словами не передать. В те времена Clang уже появился, но совсем не был конкурентом GCC, который безраздельно правил. С GCC тоже нормально пришлось поприседать, пока разбирался в его внутренностях.

К слову, в этот же период я проникся IOCCC
https://xn--r1a.website/tech_b0lt_Genona/5588
https://www.ioccc.org/

А в это время где-то в Туле Андрей Карпов (@programming_tales) вместе с командой пилил viva64 (на тот момент PVS-Studio, либо ещё не появился, либо только-только появился). Viva64 решал вполне конкретную задачу - перенос кода с 32-битных систем на 64-битные. Тогда как раз массово стало появляться соответствующее железо.

В течении нескольких лет мы были знакомы с Андреем, скажем так, заочно, а потом на какой-то из конференций познакомились уже очно.

К чему эта вся предыстория? Я книгу "Экскурс в неопределенное поведение C++" почти дочитал, автором которой является Дмитрий Свиридкин (Software Engineer в AWS, Cloudfront), а Андрей является редактором.

Тем кто постоянно и давно ковыряется в C и C++, наверное, не так будет интересно читать про "костыли" и "грабли", которые происходят в "плюсах", потому что они и так видят постоянно UB в своей работе, но это прям реально справочник того, что вы можете встретить (прям как в описании и сказано). В целом рекомендую всем интересующимся темой.

Прочитал с удовольствием несмотря на то что были моменты, когда не всё понимал, потому что я на "плюсах" уже сто лет ничего не писал (на современных тем более).

Конкретно я ещё и ностальгией нулевых своих проникся, когда всякую хрень ловил и в компиляторе, и в коде, и в IR 🌝

ЗЫ
Оставлю пару ссылок на интервью с Дмитрием

C++ сегодня: меньше магии — больше инженерии | Дмитрий Свиридкин
https://www.youtube.com/watch?v=-6RCZhM9hqU

Дмитрий Свиридкин: Перепишем всё на Rust
https://www.youtube.com/watch?v=IuxCVrx3i38

ЗЫЫ

Тест "So you think you know C?"
https://wordsandbuttons.online/so_you_think_you_know_c.html
+
Книга с таким же названием
https://wordsandbuttons.online/SYTYKC.pdf

Страуструп знает C++ на 7/10
https://xn--r1a.website/tech_b0lt_Genona/3770

C++ это просто
https://xn--r1a.website/tech_b0lt_Genona/5394
🔥4010👍3🥰2💊1