es
Feedback
Блог*

Блог*

Ir al canal en Telegram

Блог со звёздочкой. Много репостов, немножко программирования. Небольшое прикольное комьюнити: @decltype_chat_ptr_t Автор: @insert_reference_here

Mostrar más
1 924
Suscriptores
-124 horas
-17 días
-130 días
Archivo de publicaciones
Ах да, #abnormalprogramming

Ждём, когда запустят DoomPDF в LinuxPDF
Разработчик под ником ading2210 представил проект LinuxPDF — Linux в PDF в браузере. Проект открывается только в браузерах на базе Chromium, использующих движок PDFium. Код написан на C и опубликован на GitHub по лицензией GNU General Public License v3.0.

«Это Linux, работающий внутри PDF‑файла через эмулятор RISC‑V, основанный на TinyEMU», — пояснил автор решения.
. . .
Полная спецификация для JS в PDF была реализована только Adobe Acrobat, и она содержит некоторые нелепые вещи, такие как возможность выполнять 3D-рендеринг, делать HTTP-запросы и обнаруживать каждый монитор, подключенный к системе пользователя. Однако в Chromium и других браузерах была реализована только крошечная часть этого API из-за очевидных проблем безопасности. Благодаря этому мы можем выполнять любые вычисления, которые захотим, просто с очень ограниченным вводом-выводом.

Код C можно скомпилировать для запуска в PDF с использованием старой версии Emscripten, которая нацелена на asm.js вместо WebAssembly. С его помощью я могу скомпилировать модифицированную версию эмулятора TinyEMU RISC-V в asm.js, который можно запустить в PDF. Для ввода и вывода я повторно использовал тот же код отображения, который я использовал для DoomPDF. Он работает, используя отдельное текстовое поле для каждой строки пикселей на экране, содержимое которого задаётся различными символами ASCII. Для ввода есть виртуальная клавиатура, реализованная с кучей кнопок, и текстовое поле, в котором вы можете ввести текст, чтобы отправить нажатия клавиш в виртуальную машину.

Самая большая проблема здесь связана с производительностью эмулятора. Например, ядру Linux требуется около 30-60 секунд для загрузки в PDF, что более чем в 100 раз медленнее, чем обычно. К сожалению, нет способа исправить это, поскольку версия V8, которую использует движок PDF Chrome, имеет отключённый JIT-компилятор, что разрушает его производительность.

Для корневой файловой системы возможны как 64-, так и 32-битные версии. По умолчанию используется 32-битная система buildroot (которая была предварительно собрана и взята из оригинальных примеров TinyEMU), а также 64-битная система Alpine Linux. Однако 64-битный эмулятор примерно в два раза медленнее, поэтому обычно он не используется.
Представлен проект LinuxPDF — Linux в PDF в браузере https://habr.com/ru/news/878542/ GitHub https://github.com/ading2210/linuxpdf Demo https://linux.doompdf.dev/linux.pdf Он же в прошлом году запускал DOOM на POS-терминале https://t.me/tech_b0lt_Genona/4308 А недавно в PDF https://github.com/ading2210/doompdf

Зачем вообще в русском языке "жениться" и "выйти замуж"? Они означают по факту одно и то же, но при этом: — Одно — просто глагол, второе — устойчивое словосочетание, глагол с дополнением. — У них разные корни. — Они требуют разных падежей от прямых дополнений (предложный и винительный). Мне каждый раз при выражении идеи "заключить брак" приходится останавливаться, чтобы сообразить, какую форму использовать. Для сравнения, в английском языке есть глагол "marry", и он абсолютно симметричен при употреблении к обоим партнёрам.

В СМЫСЛЕ УЖЕ ФЕВРАЛЬ

#kbd
#kbd

#kbd
#kbd

Этим человеком на табуретке был я
Этим человеком на табуретке был я

#meme-открыточка любителям вахи:

#prog #rust #rustlib embed_it — макрос, который позволяет включить в бинарь целую директорию ресурсов и потом обращаться к вложенным директориям и файлам по именам, причём как по статическим (в виде геттеров с теми же именами, что и файлы), так и по рантаймовым. Посмотрите пример в README.

#prog #rust #article Prototyping in Rust I’ve found that my prototypes in other languages often hit a wall where I need to switch to something more robust. With Rust, I can start simple and gradually turn that proof-of-concept into production code, all while staying in the same language and ecosystem.

— Слушай, а почему ты никогда свою помощь мне не предлагаешь? — А то я тебя не знаю: если тебя спросить, можно ли тебе помочь, ты не вежливо откажешься, а реально скажешь, чем тебе можно помочь.

photo content

Блог*: высокоинтеллектуальный контент. ...иногда

photo content

Да, плюсовики тоже ругают плюсы. Но растовики их ругают, потому что у них скилл ишью. А плюсовики — потому что скилл ишью

Repost from Segment@tion fault
Китайский ИИ DeepSeek за один день покорил Уолл-Стрит, потому что упорно отказывается программировать на С++, а значит имеет сознание

Repost from AlexTCH
Real-Time Trading Signals aka dev/urandom as a Service

Repost from Jem
photo content

#prog #cpp #article How C++ Resolves a Function Call Взгляд на порядок разрешения имён при вызове функции в C++ с высоты птич
#prog #cpp #article How C++ Resolves a Function Call Взгляд на порядок разрешения имён при вызове функции в C++ с высоты птичьего полёта, с примером, который проходит по всем шагам.