Фильтр публикаций


Репост из: 🌚Пятисотые на проде😱
Когда поймал Rust разработчика


хуман ин залуп все еще важен


17к тестов на #trustme позеленели, и я приступил ко второй стадии проекта - расширять покрытие крейтов с crates.io, которые должны компилироваться моим компилятором, и проходить после этого тесты.

В процессе было сделано около 1000 коммитов, и, так как я требовал красный тест на каждую поломку, то теперь у меня есть и свой большой корпус для тестирования, не только пижженое из интернетов!

https://github.com/pg83/trustme/tree/master/tst/unit


https://github.com/pg83/ix/commits/main/

Все, теперь реально, машина сама апдейтит пакеты, и сама же и чинит ошибки после. Вот, первый коммит от моей fixer #gorn #lab #home_lab job - https://github.com/pg83/ix/commit/13fca3e3939011c9ce537341c4eac42f0b37964c

Осталось несколько мелочей - промптов для обновления сложных наборов пакетов, типа qt, mesa, llvm, и, кажется, #IX больше не будет есть мое время от слова совсем.

Шел я к этому 5 последних лет, и сейчас испытываю некоторое опустошение.

Неожиданно даже, что проект такого масштаба можно "доделать до конца".


https://aengelke.net/llvm23-ct.html

"LLVM 23 has seen substantial compile-time improvements of -6.75% (sqlite3: -10.53%) in -O3 builds. This article describes the major sources of these improvements"

#perf


Рубрика "нам пишут"!

#shitty


https://danluu.com/perf-opt/

Коллега вот написал, что у вас сейчас нет причин не заниматься оптимизациями перфа.

Я про это же писал несколько раз - https://t.me/itpgchannel/4184

С двумя поправками:

1) пока все еще нужно понимать, что делаешь. Без понимания машина методом грубой силы ускорит тебе программу в 2 раза, но не в 20, у нее кругозор пока не такой. Опять же, если без понимания, на результат потом будет страшно смотреть.

2) на самом деле, утверждение так-то гораздо шире - у вас сейчас нет причин не заниматься любой полезной/интересной херней, которая придет в голову.

Если процесс размышления стал бесплатным, то почему бы не подумать про все сразу, и не попробовать сделать, а вдруг залетит? Тем более, думаешь не ты, и делаешь тоже не ты.

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

Я, конечно, чутка утрирую, потому что вы все еще ограничены своим вниманием, но только чутка.

Мои #shitty #solo и #trustme - проекты ровно из этой оперы. Времени не требуют, собирают мне звездочки на github и репутацию на HN, потом это во что-то да превратится. Или нет, поэтому надо брать массой. Но что совершенно точно - совершенно нет смысла не пробовать, тем более, если вы уверены, что в чем-то очень хороши. Тот же SoLo может показаться дичью, но, знаете ли, docker начинал как скрипт на 100 строк кода поверх chroot.


Запилить хороший рендер эмулятора терминала - продуктово весьма сложная задача. Не технически, потому что технически там каждый раз все понятно, а вот именно понять, что и когда надо делать - сложно.

Вот возьмем italic.

Если ты хочешь хорошо отрисовать текст в italic, то ты неизбежно придешь к тому, что левые ячейки налезают на правые, и ничего с этим не поделать - ну не помещается один italic символ в одну ячейку.

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

Потом ты видишь, что по краям слов italic у тебя обрезан, и ты понимаешь, что это потому, что ты сделал границей последовательности пробельные символы. Это очень важно, потому что кешировать отрисовку слов - эффективно, а кешировать отрисовку линий - дорого.

Ты берешь, и добавляешь в последовательность самый правый пробельный символ после слова, и все становится хорошо и классно, потому что последней букве слова есть куда нависнуть, пока...

Пока ты не видишь, что если italic слово выделено болдом, то оно снова рисуется обрезанным. И все потому, что болд - это часть отрисовки шрифта, и тебе нужно обрывать последовательность, когда отрисовка шрифта меняется, потому что иначе получается дичь.

Кроме одного случая - если отрисовка шрифта меняется на пробельном символе, то и пофиг - неважно, болдом пробел рисуется, или нет, его можно включить в последовательность.

Такие дела.

Самое интересное в процессе, конечно, изучать, как это делают твои конкуренты, и на какие компромиссы идут.

#shitty


Штош, все готово, и даже больше - не просто докер, а полноценный qemu boot, в systemd, cо всеми полагающимися сервисами!


https://github.blog/news-insights/company-news/the-august-17-outage-and-the-work-ahead/

"Neither outage was caused by a code or configuration change. Both incidents were capacity failures at their core. We failed to scale critical components before demand exceeded their capacity. Since April, monthly commits have grown from 1.4 billion to 2.9 billion. That growth explains the pressure on our systems, but it does not excuse these outages"

Я бы поcоветовал уважаемой компании Microsoft финт ушами - отказать в бесплатном CI/CD проектам под копилефтными лицензиями! С жадинами надо пожестче!

#GNU


Хотите покажу наркоманию?

Вот на картинке - мой #solo, только теперь он умеет загружать glibс-based бинари, но без glibc.

В целом, если уметь загружать произвольные .so без glibc, то это мелкая мелочь, пара сотен строк кода.

Мне теперь вообще не нужна glibc, ни в каком виде, чтобы гонять claude code в #stal/ix!

Думаете, наркомания?

Нееет! Наркомания будет дальше!

А сейчас я посадил клоду с задачей "а теперь сделай из solo полноценный /lib/ld.so//lib/ld-linux.so.2, и доводи его до состояния, когда с ним будет работать ubuntu/fedora в докере, с удаленным оригиналом, и физически удаленными libc.so.6 и прочими запчастями glibc".

Понимаете, да?

Это возможность запустить любой glibc-based distro поверх musl!

Кому может понадобиться такая наркомания, не очень понятно, но выглядит это смешно, чего уж там.


https://safedep.io/arrayref-proc-macro1-rust-build-time-malware/
https://blog.rust-lang.org/2026/08/20/supply-chain-attack-on-arrayref/

Я давно перестал писать про любые supply chain attack, хотя раньше писал много, потому что их стало очень много разных, и по их поводу уже сказано все, что нужно было сказать. Основной вывод - вы должны сами следить за зависимостями, а не полагаться на дядю, дядя перд вами не отвечает за качество своей работы, потому что денег за нее вы ему не платите.

Поэтому горячо поддерживаю https://x.com/oxcrows/status/2090464985403248740?s=52&t=ZqOdDqap7VWxGoQoRNgXNg:

"C/C++ are unironically safer than Rust, when it comes to supply chain attacks. Mainly because build system in C/C++ sucks, horribly. So everyone vendors their dependencies"

Но эта атака довольно интересная, потому что она показывает существенную уязвимость в компиляторе Rust, основанную на том, что компилятор Rust загружает .so для обработки proc macro (https://t.me/itpgchannel/1543 https://t.me/itpgchannel/1301 https://t.me/itpgchannel/192 https://t.me/itpgchannel/98).

Поэтому он никак не может ограничить build стадию, не ограничив одновременно и себя. Хочет уметь писать в /tmp, значит, и загружаемая .so будет уметь писать в /tmp. Хочет cargo уметь ходить по сети - ну вы поняли.

#trustme, как и #mrustc, имеет процессную модель обработки proc macro, и может ограничивать свои subprocess с макросами как угодно, и такого рода атакам не подвержен.

Надеюсь, этот случай заставит одуматься наркоманов из rust foundation, и переделать это место без загрузки .so.




Репост из: Откровения от Олега
Видео недоступно для предпросмотра
Смотреть в Telegram
Как стать человеком и избавиться от перхоти


Вот бы еще коллега, который в прошлый раз запилил классный текст на opennet, сделал это еще раз!




Спасибо, Леша!



2k 0 12 22 66

В общем, оно успешно загружает vulkan icd и работает на Intel, NVIDIA, AMD radv, raspberry pi5, а еще, совершенно неожиданно, на M1 + Asahi Linux (вот какие у меня есть подписчики!), то есть, вообще везде, где можно себе представить.

Схема абсолютно рабочая, что очень круто.


https://github.com/pg83/solo/releases/download/6/vulkan-x86_64

Мне для друга, запустите pls бинарь на nvidia и на intel GPU. Так же его можно собрать из репы, 0 зависимостей, кроме компилятора.

Программа отрендерит картинку в offscreen, и сохранит на диск.

Я проверил под radv и lavapipe, но этого мало.

В общем, хочется потестить https://github.com/pg83/solo перед широким анонсом.

#solo

Показано 20 последних публикаций.