Блог* – Telegram
1.9K subscribers
3.46K photos
135 videos
15 files
3.69K links
Блог со звёздочкой.

Много репостов, немножко программирования.

Небольшое прикольное комьюнити: @decltype_chat_ptr_t
Автор: @insert_reference_here
Download Telegram
#prog #rust #cpp #article

Type Inference in Rust and C++

<...>My feeling is that literally everything above is indicative of a trade-off pattern.

If you want to have a fancy, bespoke modern type checker with Hindley-Milner type inference semantics, you need to accept one of the following:

1. Bad performance for your type checker with a risk of exponential blow-up.
2. No features that look anything like “the compiler picks the best option out of several ones”. No function overloading, implicit conversions, etc.

Надо отдельно отметить, что deref coercion под "pick the best option out of several ones" не подпадает — Target является у трейта ассоциированным типом, а не параметром, поэтому реализаций Deref у каждого конкретно взятого типа не более одной
🤔3
#prog #cpp #article

How C++ Resolves a Function Call


Взгляд на порядок разрешения имён при вызове функции в C++ с высоты птичьего полёта, с примером, который проходит по всем шагам.
👍12🤮3
Forwarded from Jem
😁35🌚4😭3
Forwarded from AlexTCH
Real-Time Trading Signals aka dev/urandom as a Service
😁28💯5
Forwarded from Segment@tion fault
Китайский ИИ DeepSeek за один день покорил Уолл-Стрит, потому что упорно отказывается программировать на С++, а значит имеет сознание
😁2018🤡3🔥2💯1
Forwarded from Yegor Zudin (коренастый яблоко)
Да, плюсовики тоже ругают плюсы. Но растовики их ругают, потому что у них скилл ишью. А плюсовики — потому что скилл ишью
😁27😐4🥴1
😁21😐3🥰2
Блог*: высокоинтеллектуальный контент.

...иногда
😁4💩2🔥1😐1🤝1
Блог* pinned «Блог*: высокоинтеллектуальный контент. ...иногда»
😁33🔥4🌚31🙏1😭1
— Слушай, а почему ты никогда свою помощь мне не предлагаешь?
— А то я тебя не знаю: если тебя спросить, можно ли тебе помочь, ты не вежливо откажешься, а реально скажешь, чем тебе можно помочь.
😁15
#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.
🤔5👍3😁3🔥2
#prog #rust #rustlib

embed_it — макрос, который позволяет включить в бинарь целую директорию ресурсов и потом обращаться к вложенным директориям и файлам по именам, причём как по статическим (в виде геттеров с теми же именами, что и файлы), так и по рантаймовым. Посмотрите пример в README.
👍6
#meme-открыточка любителям вахи:
Этим человеком на табуретке был я
😁14🌚1
🌚5🤔2
Блог*
Photo
❤‍🔥3🤮2
В СМЫСЛЕ УЖЕ ФЕВРАЛЬ
11🤡5😭3💯1
Зачем вообще в русском языке "жениться" и "выйти замуж"? Они означают по факту одно и то же, но при этом:

— Одно — просто глагол, второе — устойчивое словосочетание, глагол с дополнением.
— У них разные корни.
— Они требуют разных падежей от прямых дополнений (предложный и винительный).

Мне каждый раз при выражении идеи "заключить брак" приходится останавливаться, чтобы сообразить, какую форму использовать и как сформулировать предложение.

Для сравнения, в английском языке есть глагол "marry", и он абсолютно симметричен при употреблении к обоим партнёрам.
👍31🤡12💯5😁1🤯1
This media is not supported in your browser
VIEW IN TELEGRAM
Ждём, когда запустят 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 с использованием старой версии Emnoscripten, которая нацелена на 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://news.1rj.ru/str/tech_b0lt_Genona/4308

А недавно в PDF
https://github.com/ading2210/doompdf
🤯13🎉1