Forwarded from Музыкальный Болт Генона
Vintage Rotary Phone MIDI Controller
https://diyelectromusic.com/2022/03/10/vintage-rotary-phone-midi-controller/
Vintage Rotary Phone MIDI Controller – Part 2
https://diyelectromusic.com/2022/03/10/vintage-rotary-phone-midi-controller-part-2/
Vintage Rotary Phone MIDI Controller – Part 3
https://diyelectromusic.com/2022/03/10/vintage-rotary-phone-midi-controller-part-3/
Vintage Rotary Phone MIDI Controller – Part 4
https://diyelectromusic.com/2022/03/11/vintage-rotary-phone-midi-controller-part-4/
Vintage Rotary Phone MIDI Controller – Part 5
https://diyelectromusic.com/2022/03/11/vintage-rotary-phone-midi-controller-part-5/
Vintage Rotary Phone MIDI Controller – Part 6
https://diyelectromusic.com/2022/03/17/vintage-rotary-phone-midi-controller-part-6/
Vintage Rotary Phone MIDI Controller – Part 7
https://diyelectromusic.com/2022/03/29/vintage-rotary-phone-midi-controller-part-7/
https://diyelectromusic.com/2022/03/10/vintage-rotary-phone-midi-controller/
Vintage Rotary Phone MIDI Controller – Part 2
https://diyelectromusic.com/2022/03/10/vintage-rotary-phone-midi-controller-part-2/
Vintage Rotary Phone MIDI Controller – Part 3
https://diyelectromusic.com/2022/03/10/vintage-rotary-phone-midi-controller-part-3/
Vintage Rotary Phone MIDI Controller – Part 4
https://diyelectromusic.com/2022/03/11/vintage-rotary-phone-midi-controller-part-4/
Vintage Rotary Phone MIDI Controller – Part 5
https://diyelectromusic.com/2022/03/11/vintage-rotary-phone-midi-controller-part-5/
Vintage Rotary Phone MIDI Controller – Part 6
https://diyelectromusic.com/2022/03/17/vintage-rotary-phone-midi-controller-part-6/
Vintage Rotary Phone MIDI Controller – Part 7
https://diyelectromusic.com/2022/03/29/vintage-rotary-phone-midi-controller-part-7/
💊12🔥6❤4😁3
Сегодня активно форсят ссылку везде с "анализом приложения MAX"
MAX-deep-analysis-of-the-messenger
https://github.com/ZolManStaff/MAX-deep-analysis-of-the-messenger
Я видел этот разбор ещё недели три назад наверное и не стал постить потому что там обсуждать нечего. Этот "анализ" подтверждает, что в целом MAX ничем не отличается от Telegram или Whatsapp по своим запросам.
Если автор(ы) хотят показать что-то ТАКОЕ, то им придётся провести более глубокий анализ с деобфускацией.
Вот ссылки на пермиссии, которые запрашивают Telegram или Whatsapp
https://reports.exodus-privacy.eu.org/en/reports/org.telegram.messenger/latest/
https://reports.exodus-privacy.eu.org/en/reports/com.whatsapp/latest/
MAX-deep-analysis-of-the-messenger
https://github.com/ZolManStaff/MAX-deep-analysis-of-the-messenger
Я видел этот разбор ещё недели три назад наверное и не стал постить потому что там обсуждать нечего. Этот "анализ" подтверждает, что в целом MAX ничем не отличается от Telegram или Whatsapp по своим запросам.
Если автор(ы) хотят показать что-то ТАКОЕ, то им придётся провести более глубокий анализ с деобфускацией.
Вот ссылки на пермиссии, которые запрашивают Telegram или Whatsapp
https://reports.exodus-privacy.eu.org/en/reports/org.telegram.messenger/latest/
https://reports.exodus-privacy.eu.org/en/reports/com.whatsapp/latest/
👍39❤12
Извините, день сегодня такой тяжёлый. Понедельник!
> 20 июл. 2025
> ИА "Панорама"
Все SMS-коды теперь будут приходить только в национальный мессенджер МАХ
https://panorama.pub/news/vse-sms-kody-teper-budut
> 18 августа 2025
> первый зампред комитета Госдумы по информполитике Александр Ющенко
В Госдуме заявили, что все коды верификации должны отправляться в Max
https://absatz.media/news/130801-v-gosdume-zayavili-chto-vse-kody-verifikacii-dolzhny-otpravlyatsya-v-max
Спасибо
> 20 июл. 2025
> ИА "Панорама"
Все SMS-коды теперь будут приходить только в национальный мессенджер МАХ
https://panorama.pub/news/vse-sms-kody-teper-budut
> 18 августа 2025
> первый зампред комитета Госдумы по информполитике Александр Ющенко
«Если полноценно запускать мессенджер, он должен соответствовать всем возможным технологическим возможностям, которые есть на рынке, для того чтобы быть конкурентоспособным. У него должен быть практически весь функционал, в том числе и информационные каналы, и возможность взаимодействия с разными сервисами. Поэтому работа над тем, чтобы в Max приходили коды верификации, должна идти. Она уже ведется, я думаю, и надо быть уверенным, что данная функция будет представлена», – отметил Ющенко.В Госдуме заявили, что все коды верификации должны отправляться в Max
https://absatz.media/news/130801-v-gosdume-zayavili-chto-vse-kody-verifikacii-dolzhny-otpravlyatsya-v-max
Спасибо
😁44🤡43🫡9🖕7👍4🐳2❤1🌭1
Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за пределы базового каталога
https://www.opennet.ru/opennews/art.shtml?num=63740
В NPM-пакете tar-fs выявлена уязвимость (CVE-2025-48387), позволяющая при распаковке специально оформленного tar-архива записать файлы в любые части ФС, не ограниченные каталогом, в который осуществляется распаковка (насколько позволяют права доступа текущего пользователя). Уязвимость также может использоваться для перезаписи существующих файлов, например, для организации выполнения своего кода в системе могут быть переписаны файлы ".ssh/id_rsa" или ".bashrc" в домашнем каталоге пользователя.
Проблеме присвоен критический уровень опасности c учётом того, что пакет tar-fs имеет 23 миллиона загрузок в неделю и используется как зависимость в 1155 проектах. Уязвимость устранена в выпусках 3.0.9, 2.1.3 и 1.16.5, которые были сформированы в мае, но информация об уязвимости раскрыта лишь спустя почти 3 месяца.
Уязвимость вызвана недостаточными проверками имеющихся в архиве символических и жёстких ссылок на предмет их выхода за пределы целевого каталога для распаковки. Для обхода проверок применяются две символические ссылки: первая указывает на корневой каталог распаковки архива ("."), а вторая создаётся относительно первой символической ссылки и использует в имени символы "../" для выхода за пределы базового каталога. Например, первая ссылка "noop/noop/noop" указывает на ".", а вторая "noop/noop/noop/../../../" раскрывается как "./../../../". Для организации перезаписи файлов в архиве может быть создана жёсткая ссылка, ссылающаяся на внешний файл относительно второй символической ссылки.
Похожая уязвимость (CVE-2025-55188) выявлена в архиваторе 7-Zip. Для записи файлов вне базового каталога в 7-Zip также могут использоваться символические ссылки, имеющие последовательность "../" в файловом пути. Проблема может быть эксплуатирована при распаковке при помощи 7-Zip любых архивов, поддерживающих символические ссылки, например, zip, tar, 7z и rar
PoC
https://www.opennet.ru/opennews/art.shtml?num=63740
В NPM-пакете tar-fs выявлена уязвимость (CVE-2025-48387), позволяющая при распаковке специально оформленного tar-архива записать файлы в любые части ФС, не ограниченные каталогом, в который осуществляется распаковка (насколько позволяют права доступа текущего пользователя). Уязвимость также может использоваться для перезаписи существующих файлов, например, для организации выполнения своего кода в системе могут быть переписаны файлы ".ssh/id_rsa" или ".bashrc" в домашнем каталоге пользователя.
Проблеме присвоен критический уровень опасности c учётом того, что пакет tar-fs имеет 23 миллиона загрузок в неделю и используется как зависимость в 1155 проектах. Уязвимость устранена в выпусках 3.0.9, 2.1.3 и 1.16.5, которые были сформированы в мае, но информация об уязвимости раскрыта лишь спустя почти 3 месяца.
Уязвимость вызвана недостаточными проверками имеющихся в архиве символических и жёстких ссылок на предмет их выхода за пределы целевого каталога для распаковки. Для обхода проверок применяются две символические ссылки: первая указывает на корневой каталог распаковки архива ("."), а вторая создаётся относительно первой символической ссылки и использует в имени символы "../" для выхода за пределы базового каталога. Например, первая ссылка "noop/noop/noop" указывает на ".", а вторая "noop/noop/noop/../../../" раскрывается как "./../../../". Для организации перезаписи файлов в архиве может быть создана жёсткая ссылка, ссылающаяся на внешний файл относительно второй символической ссылки.
Похожая уязвимость (CVE-2025-55188) выявлена в архиваторе 7-Zip. Для записи файлов вне базового каталога в 7-Zip также могут использоваться символические ссылки, имеющие последовательность "../" в файловом пути. Проблема может быть эксплуатирована при распаковке при помощи 7-Zip любых архивов, поддерживающих символические ссылки, например, zip, tar, 7z и rar
PoC
import tarfile
import io
with tarfile.open("poc.tar", mode="x") as tar:
root = tarfile.TarInfo("root")
root.linkname = ("noop/" * 15) + ("../" * 15)
root.type = tarfile.SYMTYPE
tar.addfile(root)
noop = tarfile.TarInfo("noop")
noop.linkname = "."
noop.type = tarfile.SYMTYPE
tar.addfile(noop)
hard = tarfile.TarInfo("hardflag")
hard.linkname = "root/home/username/flag/flag"
hard.type = tarfile.LNKTYPE
tar.addfile(hard)
content = b"overwrite\n"
overwrite = tarfile.TarInfo("hardflag")
overwrite.size = len(content)
overwrite.type = tarfile.REGTYPE
tar.addfile(overwrite, fileobj=io.BytesIO(content))
content = b"new!\n"
newfile = tarfile.TarInfo("root/home/username/flag/newfile")
newfile.size = len(content)
newfile.type = tarfile.REGTYPE
tar.addfile(newfile, fileobj=io.BytesIO(content))
🔥16🥱2❤1👾1
Forwarded from Безумный кот
В пятницу с @int0x80h (Алексеем Федулаевым) обнаружили и проработали интересный кейс.
(Да, писать об этом в пятницу вечером — было жестоко🤪 )
🎼 Kubernetes pods/exec — что поменялось и почему это важно
В преддверии публикации нашего UI в open source, мы с коллегами откопали нечто любопытное.
В статье вы, скорее всего, найдёте нечто необычное. А может — просто хорошо забытое старое.
В любом случае, речь пойдёт о pods/exec и о том, как правильно давать к нему доступ пользователям.
Думаете, тут ничего особенного?
Прочитайте статью — и, возможно, удивитесь😉
😎 Читаем статью:
https://docs.dobry-kot.ru/blog/kubernetes-pods-exec
💤 Исходники на GitHub:
https://github.com/PRO-Robotech/in-cloud-docs
😇 Лучшая ваша похвала это:
• вопросы по теме,
• поиск неточностей,
• советы, как сделать лучше,
• и, конечно, ⭐️ на GitHub.
(Да, писать об этом в пятницу вечером — было жестоко
В преддверии публикации нашего UI в open source, мы с коллегами откопали нечто любопытное.
В статье вы, скорее всего, найдёте нечто необычное. А может — просто хорошо забытое старое.
В любом случае, речь пойдёт о pods/exec и о том, как правильно давать к нему доступ пользователям.
Думаете, тут ничего особенного?
Прочитайте статью — и, возможно, удивитесь
https://docs.dobry-kot.ru/blog/kubernetes-pods-exec
https://github.com/PRO-Robotech/in-cloud-docs
• вопросы по теме,
• поиск неточностей,
• советы, как сделать лучше,
• и, конечно, ⭐️ на GitHub.
Please open Telegram to view this post
VIEW IN TELEGRAM
💅10👍3❤1🍌1
> Стабилизированы команды "git switch" и "git restore", которые с 2019 года рассматривались как экспериментальные. Команды преподносятся как современные эквиваленты "git checkout", разделяющие такие малосвязанные возможности данной команды, как манипуляция ветками (переключение и создание) и восстановление файлов в рабочем каталоге.
Перешёл на использование этих команд как только они были добавлены. Ни о чём не жалею 🌝
Выпуск системы управления исходными текстами Git 2.51
https://www.opennet.ru/opennews/art.shtml?num=63742
Оригинал
https://lore.kernel.org/lkml/xmqqikikk1hr.fsf@gitster.g/
Перешёл на использование этих команд как только они были добавлены. Ни о чём не жалею 🌝
Выпуск системы управления исходными текстами Git 2.51
https://www.opennet.ru/opennews/art.shtml?num=63742
Оригинал
https://lore.kernel.org/lkml/xmqqikikk1hr.fsf@gitster.g/
👍29❤3🌚3👎2
Forwarded from RutheniumOS
> Видали как ща ребятки анлочат химики?
> 1. Просите откатить версию прошивки в сервисе.
2. Выхватываете девайс и убегаете, прежде чем они успеют залочить бут обратно.
🤣48🥰15😁5🙏2❤1🔥1
Нашёл в закладках у себя пост из 2021 года интересный. Из серии "чего только не бывает".
Меня зову Женя, я open source разработчик. Я занимаюсь разработкой библиотеки sqlite_orm на С++ https://github.com/fnc12/sqlite_orm в свое свободное время.
Библиотека sqlite_orm предоставляет более удобный API на С++, чем «родная» SQLite3-библиотека, написанная на чистом С. Конечно, я и другие контрибьюторы еще не покрыли весь API SQLite, потому работа не останавливается никогда. Меня очень давно просили добавить в sqlite_orm поддержку пользовательских функций. Это возможность привязывать колбэки на чистом C в виде функций, доступных внутри SQLite-запросов.
. . .
Лямбда должна осуществлять сравнение строк и возвращать индекс первого несовпадающего символа по аналогии с функцией strcmp. И я проигнорировал первый аргумент, который имеет тип int. Это длина данных для сравнения. И SQLite не дает гарантию, что второй и третий аргументы имеют после себя нуль-терминаторы. Просто почему-то раньше эти нуль-терминаторы там были. Целых три года! Но с появлением пользовательских функций три из восьми конфигураций на Windows вдруг перестали проявлять толерантность к неопределенному поведению. К такому жизнь меня точно не готовила.
. . .
Что имеем в итоге? Если опустить глупую ошибку с копированием C-строки, то новая фича вдруг выявила совершенно не связанные проблемы, которые были в виде кода, который ведет себя неопределенно в теории, но на практике три года вел себя очень определенно (по крайней мере тесты выполнялись и крэшей не было).
Вся цепочка расследования с примерами кода в посте
Неопределенное поведение, пронесенное сквозь года
https://habr.com/ru/articles/568674/
Меня зову Женя, я open source разработчик. Я занимаюсь разработкой библиотеки sqlite_orm на С++ https://github.com/fnc12/sqlite_orm в свое свободное время.
Библиотека sqlite_orm предоставляет более удобный API на С++, чем «родная» SQLite3-библиотека, написанная на чистом С. Конечно, я и другие контрибьюторы еще не покрыли весь API SQLite, потому работа не останавливается никогда. Меня очень давно просили добавить в sqlite_orm поддержку пользовательских функций. Это возможность привязывать колбэки на чистом C в виде функций, доступных внутри SQLite-запросов.
. . .
Лямбда должна осуществлять сравнение строк и возвращать индекс первого несовпадающего символа по аналогии с функцией strcmp. И я проигнорировал первый аргумент, который имеет тип int. Это длина данных для сравнения. И SQLite не дает гарантию, что второй и третий аргументы имеют после себя нуль-терминаторы. Просто почему-то раньше эти нуль-терминаторы там были. Целых три года! Но с появлением пользовательских функций три из восьми конфигураций на Windows вдруг перестали проявлять толерантность к неопределенному поведению. К такому жизнь меня точно не готовила.
. . .
Что имеем в итоге? Если опустить глупую ошибку с копированием C-строки, то новая фича вдруг выявила совершенно не связанные проблемы, которые были в виде кода, который ведет себя неопределенно в теории, но на практике три года вел себя очень определенно (по крайней мере тесты выполнялись и крэшей не было).
Вся цепочка расследования с примерами кода в посте
Неопределенное поведение, пронесенное сквозь года
https://habr.com/ru/articles/568674/
👍17❤3
Четверг, а значит время проектов от подписчиков! 🌝
Тем, кто пропустил, что такое четверговые проекты от подписчиков, можно прочитать тут - https://xn--r1a.website/tech_b0lt_Genona/4983
Влада, автора этого проекта, я знаю уже много лет и рад, что он пилит и делает всякое интересное и образовательное.
А для демонстрации сделано полноценное живое видео (происходит впервые в четверговой рубрике!), за что отдельное спасибо.
Слово автору @ejiek
---
git-plumber — read-only клиент для git'a, преследующий образовательные цели. Он показывает, как другие git клиенты меняют содержимое папки
Это консольное приложение, как и сам git. Но с TUI в качестве основного интерфейса. Надеюсь, это поможет пользователям IDE и GitHub Desktop узнать, что гит родом из терминала перебороть его страх.
Лично мне приложение помогло понять:
- Насколько плохо хранить бинарные файлы в гите
- Почему гит отказывается добавлять в репу пустые папки
- Как спасти удалённый и не закомиченный файл
- Как именно гит хранит разницу между версиями файла
Оказывается, на уровне хранения git ничего не знает ни про строки, ни про текст. Иногда git хранит все версии целиком. А иногда сжимает, но не построчными diff'aми, а побайтовыми delta'ми. Мало того, дельты умеют всего две операции: скопировать и вставить. Этого достаточно! Например, чтобы описать удаление: «скопируй всё до, пропусти лишнее, скопируй всё после».
Приглашаю попробовать приложение самостоятельно. И поделиться обратной связью. Особенно если что-то сложно понять или нужны пояснения.
git-plumber ещё в ранней стадии разработки, но уже может быть полезен. Сейчас главная цель — проработать подачу материала и UX. И вооружить git-plumber'ом преподавателей, студентов и энтузиастов уже в этом учебном году.
⭐️ Прошу поддержать проект звездой на GitHub'e ⭐️
---
Влада, автора этого проекта, я знаю уже много лет и рад, что он пилит и делает всякое интересное и образовательное.
А для демонстрации сделано полноценное живое видео (происходит впервые в четверговой рубрике!), за что отдельное спасибо.
Слово автору @ejiek
---
git-plumber — read-only клиент для git'a, преследующий образовательные цели. Он показывает, как другие git клиенты меняют содержимое папки
.git.Это консольное приложение, как и сам git. Но с TUI в качестве основного интерфейса. Надеюсь, это поможет пользователям IDE и GitHub Desktop узнать, что гит родом из терминала перебороть его страх.
Лично мне приложение помогло понять:
- Насколько плохо хранить бинарные файлы в гите
- Почему гит отказывается добавлять в репу пустые папки
- Как спасти удалённый и не закомиченный файл
- Как именно гит хранит разницу между версиями файла
Оказывается, на уровне хранения git ничего не знает ни про строки, ни про текст. Иногда git хранит все версии целиком. А иногда сжимает, но не построчными diff'aми, а побайтовыми delta'ми. Мало того, дельты умеют всего две операции: скопировать и вставить. Этого достаточно! Например, чтобы описать удаление: «скопируй всё до, пропусти лишнее, скопируй всё после».
Приглашаю попробовать приложение самостоятельно. И поделиться обратной связью. Особенно если что-то сложно понять или нужны пояснения.
git-plumber ещё в ранней стадии разработки, но уже может быть полезен. Сейчас главная цель — проработать подачу материала и UX. И вооружить git-plumber'ом преподавателей, студентов и энтузиастов уже в этом учебном году.
⭐️ Прошу поддержать проект звездой на GitHub'e ⭐️
---
🔥56👍15🤓5⚡2❤1🤡1
Forwarded from Rotten Mechanism (Şėʀɢᴇγ Ɲσʀᴅ)
Media is too big
VIEW IN TELEGRAM
OFFZONE 25 уже не за горами, поэтому рассказываю, какие аддоны я привезу) В этом году было много основной работы и совсем мало свободного времени, поэтому было принято решение собрать моргалки с моим логотипом, паялось всё конечно же в последний момент, pcb-арт получился неплохо, а вот касательно равномерности засветки - в следующий раз буду брать светодиоды на больший угол излучения) Видос и вовсе закончил рендериться за 10 минут до отправления поезда, поэтому я поехал, а вы пока можете посмотреть процесс сборки)) До встречи на конференции ^^
❤8🔥3👍1🥰1
Тут темпоральную логику затащили в рантайм Linux (6.17.0-rc2) для верификации происходящего в ядре.
Extending run-time verification for the kernel
https://lwn.net/Articles/1030685/
[PATCH v11 00/21] RV: Linear temporal logic monitors for RT application
https://lwn.net/ml/all/cover.1751634289.git.namcao@linutronix.de/
Вообще, вокруг ядра есть куча всего и для статического анализа, и динамического, и тестирования, что бы оно становилось стабильней и лучше
Development tools for the kernel
https://docs.kernel.org/dev-tools/index.html
В посте идёт рассказ проблематики и причин появления утилиты
В результате будет получено два файла:
- pagefault.h - файл с описанием автомата Бюхи
- pagefault.c - скелет RVM
Подробнее тут
https://docs.kernel.org/trace/rv/monitor_synthesis.html#rvgen
Собственно, в этом и состоит патч.
Но тут я хочу теперь больше сказать про то что такое
LTL (Linear Temporal Logic) значит/переводится как логика линейного времени. Как понятно из названия это относительно простая сущность, которая позволяет описать и формализовать последовательность событий без ветвлений.
Давайте рассмотрим простейший пример - светофор.
Обычный режим его работы: Красный -> Жёлтый -> Зелёный
Описать это можно следующей формулой:
,где
[] - всегда в будущем
<> - когда-нибудь
&& - логическое И
U - до тех пор (пока)
Соответственно, эту формулу можно "перевести" так:
Сварщик я не настоящий и подобные штуки это скорей моё хобби. Я когда-то игрался с LTL/CTL применительно к ping'у, было сложна 🌝
Вот, для понимания, пример из статьи применительно к ядру
https://lwn.net/Articles/1030831/
Если вы хотите узнать, что такое
Проверка моделей. Видео и слайды лекций
http://wasp.iis.nsk.su/page5.html
Математические методы верификации схем и программ
https://mk.cs.msu.ru/index.php/%D0%9C%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%8B_%D0%B2%D0%B5%D1%80%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D0%B8_%D1%81%D1%85%D0%B5%D0%BC_%D0%B8_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC
Софт с которым можно поиграться
- https://uppaal.org/
Презентация с UPPAAL https://asvk.cs.msu.ru/~dimawolf/SoftwareReliability/Lection05.pdf
- https://spinroot.com/
Две лекции со SPIN https://www.lektorium.tv/course/22862
Extending run-time verification for the kernel
https://lwn.net/Articles/1030685/
[PATCH v11 00/21] RV: Linear temporal logic monitors for RT application
https://lwn.net/ml/all/cover.1751634289.git.namcao@linutronix.de/
Вообще, вокруг ядра есть куча всего и для статического анализа, и динамического, и тестирования, что бы оно становилось стабильней и лучше
Development tools for the kernel
https://docs.kernel.org/dev-tools/index.html
В посте идёт рассказ проблематики и причин появления утилиты
rvgen. Это инструмент, который из DOT-описания Graphviz генерирует код на C, который, в свою очередь, представляет собой "скелет" для Runtime Verification Monitor'а (RVM). Но так же можно с помощью него получить логический монитор$ rvgen monitor -c ltl -s pagefault.ltl -t per_task
В результате будет получено два файла:
- pagefault.h - файл с описанием автомата Бюхи
- pagefault.c - скелет RVM
Подробнее тут
https://docs.kernel.org/trace/rv/monitor_synthesis.html#rvgen
Собственно, в этом и состоит патч.
Но тут я хочу теперь больше сказать про то что такое
LTLLTL (Linear Temporal Logic) значит/переводится как логика линейного времени. Как понятно из названия это относительно простая сущность, которая позволяет описать и формализовать последовательность событий без ветвлений.
Давайте рассмотрим простейший пример - светофор.
Обычный режим его работы: Красный -> Жёлтый -> Зелёный
Описать это можно следующей формулой:
[](Красный -> (<> Зелёный && (!Зелёный U Жёлтый))),где
[] - всегда в будущем
<> - когда-нибудь
&& - логическое И
U - до тех пор (пока)
Соответственно, эту формулу можно "перевести" так:
Всегда после Красного когда-нибудь в будущем будет Зелёный, после того как некоторое время был ЖёлтыйСварщик я не настоящий и подобные штуки это скорей моё хобби. Я когда-то игрался с LTL/CTL применительно к ping'у, было сложна 🌝
Вот, для понимания, пример из статьи применительно к ядру
https://lwn.net/Articles/1030831/
Если вы хотите узнать, что такое
автомат Бюхи, модель Крипке и т.д., то в интернете много материала на эту тему. Я же оставлю на русскоязычные источники (если знаете хорошие, то кидайте в личку или комменты)Проверка моделей. Видео и слайды лекций
http://wasp.iis.nsk.su/page5.html
Математические методы верификации схем и программ
https://mk.cs.msu.ru/index.php/%D0%9C%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%8B_%D0%B2%D0%B5%D1%80%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D0%B8_%D1%81%D1%85%D0%B5%D0%BC_%D0%B8_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC
Софт с которым можно поиграться
- https://uppaal.org/
Презентация с UPPAAL https://asvk.cs.msu.ru/~dimawolf/SoftwareReliability/Lection05.pdf
- https://spinroot.com/
Две лекции со SPIN https://www.lektorium.tv/course/22862
👍14🔥9❤2👎1🗿1
Технологический Болт Генона
Отличная новость, обожаю эти соревнования После четырёхлетнего перерыва объявлено о возобновлении конкурса IOCCC (International Obfuscated C Code Contest), нацеленного на написание наиболее запутанного и трудноразбираемого кода на языке Си. Мероприятие IOCCC28…
Об IOCCC (International Obfuscated C Code Contest) я писал в январе
https://xn--r1a.website/tech_b0lt_Genona/4922
И вот недавно подвели итоги
Winning Entries of 2024 - The 28th IOCCC
https://www.ioccc.org/2024/index.html#2024
Объявлены победители 28 конкурса по написанию запутанного кода на языке Си
https://www.opennet.ru/opennews/art.shtml?num=63668
Больше всего меня впечатлили три работы
1. Виртуальная машина, способная запускать Doom 1/2 на современных ПК от Ильи Курдюкова из "Базальт СПО"
https://www.ioccc.org/2024/kurdyukov3/index.html
https://github.com/ioccc-src/winner/blob/master/2024/kurdyukov3/prog.c
Разбор его работы от жюри
2024/kurdyukov3 - Prize in virtual quietus
https://www.youtube.com/watch?v=iaXMwqR93iE
2. Эмулятор CPU Intel 4004 от Николаса Карлини (Nicholas Carlini) из "Anthropic"
https://www.ioccc.org/2024/carlini/index.html
https://github.com/ioccc-src/winner/blob/master/2024/carlini/prog.c
Разбор его работы от жюри
2024/carlini - Prize in perfect timing
https://www.youtube.com/watch?v=r6wUZUaaJBY
Пост с разбором от самого автора
Gate-level emulation of an Intel 4004 in 4004 bytes of C
https://nicholas.carlini.com/writing/2025/ioccc-intel-4004-in-4004-bytes-c.html
3. Эмулятор CPU OpenRISC, способный запустить Linux от Себастиана Маке (Sebastian Macke) из "QAware"
https://www.ioccc.org/2024/macke/index.html
https://github.com/ioccc-src/winner/blob/master/2024/macke/prog.c
Разбор его работы от жюри
2024/macke - Prize in imitative rebooting
https://www.youtube.com/watch?v=jeQFI_8kGA4
Репа со всеми победителями за все года
https://github.com/ioccc-src/winner
Полная трансляция разбора работ
IOCCC28 Winning Entries | IOCCC Awards Presentation and Source Code Reveal
https://www.youtube.com/watch?v=UDzGwTalVAc
https://xn--r1a.website/tech_b0lt_Genona/4922
И вот недавно подвели итоги
Winning Entries of 2024 - The 28th IOCCC
https://www.ioccc.org/2024/index.html#2024
Объявлены победители 28 конкурса по написанию запутанного кода на языке Си
https://www.opennet.ru/opennews/art.shtml?num=63668
Участвующие в конкурсе работы, с одной стороны, должны препятствовать анализу кода и пониманию сути решаемой задачи, но, с другой стороны, код должен быть интересен и чем-то примечателен (работы могут быть необычно оформлены или выделять неожиданные стороны языка Си). Размер исходного кода программы не должен превышать 4096 байт, а программа должна собираться и выполнять осмысленное действиеБольше всего меня впечатлили три работы
1. Виртуальная машина, способная запускать Doom 1/2 на современных ПК от Ильи Курдюкова из "Базальт СПО"
https://www.ioccc.org/2024/kurdyukov3/index.html
https://github.com/ioccc-src/winner/blob/master/2024/kurdyukov3/prog.c
Разбор его работы от жюри
2024/kurdyukov3 - Prize in virtual quietus
https://www.youtube.com/watch?v=iaXMwqR93iE
2. Эмулятор CPU Intel 4004 от Николаса Карлини (Nicholas Carlini) из "Anthropic"
https://www.ioccc.org/2024/carlini/index.html
https://github.com/ioccc-src/winner/blob/master/2024/carlini/prog.c
Разбор его работы от жюри
2024/carlini - Prize in perfect timing
https://www.youtube.com/watch?v=r6wUZUaaJBY
Пост с разбором от самого автора
Gate-level emulation of an Intel 4004 in 4004 bytes of C
https://nicholas.carlini.com/writing/2025/ioccc-intel-4004-in-4004-bytes-c.html
3. Эмулятор CPU OpenRISC, способный запустить Linux от Себастиана Маке (Sebastian Macke) из "QAware"
https://www.ioccc.org/2024/macke/index.html
https://github.com/ioccc-src/winner/blob/master/2024/macke/prog.c
Разбор его работы от жюри
2024/macke - Prize in imitative rebooting
https://www.youtube.com/watch?v=jeQFI_8kGA4
Репа со всеми победителями за все года
https://github.com/ioccc-src/winner
Полная трансляция разбора работ
IOCCC28 Winning Entries | IOCCC Awards Presentation and Source Code Reveal
https://www.youtube.com/watch?v=UDzGwTalVAc
🔥23❤2😁1