commit -m "better"
3.21K subscribers
1.02K photos
147 videos
3 files
2.37K links
just random thoughts
Download Telegram
Forwarded from One last meme
Please open Telegram to view this post
VIEW IN TELEGRAM
😁52💯133👍3🔥2
commit -m "better"
#rant #cosmic Сподобился собрать https://lapce.dev/, просто чтобы позырить на GUI в Rust. Вот, оно падает, с очень похожей диагностикой на cosmic-term, не совсем в том же месте, но по коду где-то рядом, не может найти шрифт: https://gist.github.com/pg8…
В общем, я раскопал эту багу, а, точнее, набор баг, а если еще точнее, то, как обычно, это системная проблема школоты, которая не читает стандарты нижележащей платформы, но хочет переписать весь код, который с ней работает.

Вот, пожалуйста, код, который должен прочесть конфигурацию шрифтов на машине, и найти все доступные шрифты:

https://github.com/RazrFalcon/fontdb/blob/master/src/lib.rs#L489

Самая основная проблема в этом коде - это то, что он не использует системный способ поиска шрифтов #fontconfig, а реализует все с нуля:

* Библиотека, которая умеет читать fonts.conf, и "сливать" несколько таких файлов в один. Правила fontconfig - сложные, библиотека реализует их весьма условно.

* Библиотека не линкуется с системным fontconfig, а содержит набор эвристик, поэтому вот этот вызов ведет в никуда - https://github.com/RazrFalcon/fontdb/blob/master/src/lib.rs#L492. Поэтому, когда этот код запускается у меня, он не может найти мой fonts.conf, и, соответственно, не видит мои настройки шрифтов, и пути поиска шрифтов.

* Там есть какой-то набор эвристик (который, очевидно, не совпадает с тем, что есть в #fontconfig), https://github.com/RazrFalcon/fontdb/blob/master/src/lib.rs#L498-L518, который у меня тоже не срабатывает.

* Авторы библиотеки (и fontdb, и fontconfig_parser) очевидно, не читали исходники fontconfig, и стандарты freedesktopp.org, либо реализовали все "спустя рукава". Потому что ни та, ни другая, библиотеки, не реализуют поиск доступных шрифтов (и конфигураций) в XDG_DATA_DIRS (это такой PATH для share/* файлов). Например, вот тут https://github.com/RazrFalcon/fontdb/blob/master/src/lib.rs#L547 надо пройтись по всем $XDG_DATA_DIRS/share/fonts тоже. Системный fontconfig это делает (https://gist.github.com/pg83/160815167eba28b9380a40079ae88a40), а эта пионерская поделка - нет (она пропускает все, что у меня лежит в /ix/realm/pg, из https://gist.github.com/pg83/160815167eba28b9380a40079ae88a40, потому что эта папка добавляется через XDG_DATA_DIRS).

Я, понятное дело, это все как-то закостылял, но, конечно, состояние этого кода оставляет самое удручающее впечатление.
👍17😁6🤡54🔥2👏1
Forwarded from The After Times
👍24😁5🔥32💯1
Forwarded from на хуторе please Dick Аньки (Anna PYYALA)
😁10😢8💯5👍3🔥21
🤡27😁17🔥6🐳2🌚2👍1
commit -m "better"
https://github.com/LadybirdBrowser/ladybird/pull/366 #ladybird Гля какую красоту подогнали наши радиослушатели! Проекту меньше недели (если не считать развитие в составе OS), а в него уже набижали любители нанести социальной справедливости! "Removed white…
#ladybird

https://www.opennet.ru/opennews/art.shtml?num=61685

Проекту всего ничего, а он продолжает нас радовать и веселить!

На этот раз его автор отжег тем, что сказал, что далее Ladybird будут пилить на Swift. Очень, очень (без сарказма!) хороший выбор для GUI приложения, наверное, даже лучше, чем С++ сейчас.

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

Отдельно стоит упомянуть аргументацию "а почему не Rust":

"Андреас Клинг, основатель проекта Ladybird, поделился своими мыслями о Rust. По мнению Клинга, хотя Rust обладает впечатляющей экосистемой, он менее удобен для разработки долгоживущих программ с большими сложными графами объектов. Кроме того, Клинг охарактеризовал сообщество Rust как токсичное"

Вот, что называется, подпишусь под каждым словом. И про сообщество, и про то, что браузер писать на Rust - гиблое дело, из-за сложности модели данных, и ограничениях, накладываемых на нее системой типов Rust. Проект Servo провалился не просто так. Да, я знаю про пару попыток оживить его (одна из последних - https://wusyong.github.io/posts/verso-0-1/), но, простите, вот когда напишут - тогда и поговорим, ага.
🔥12👍6👎32
Forwarded from The After Times
💯22😢11👍54🥴3🤣2
А ребята хороши - https://pypi.org/project/ultralytics-thop/
😁19🤡9👍41💘1
Forwarded from Блог*
😁17💯15😢4🤷‍♂3👍21
/me
33😁21👍5💯2
https://t.me/tech_b0lt_Genona/4609

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

В демке меня очень впечатлили воксельные модельки, с одной стороны, полностью сохранили look & feel оригинальных спрайтов, а с другой - очень органично добавили 3D.

А, еще про воксели не могу не поделиться https://www.pouet.net/prod.php?which=4662 https://www.youtube.com/watch?v=_zSjpIyMt0k (олдфаги тут должны смахнуть скупую слезу), эта штука выдавала хороший FPS на 286 процессоре от Intel!
🔥23
Разработчики этого VPN знают, как должен выглядеть продающий текст.

Доступнее об истории просмотров вам никто не расскажет.
😁41💩12🤔31🐳1
commit -m "better"
#scheduler Расширяемый шедулер едет в ядро - https://www.phoronix.com/news/Linux-6.11-Extensible-Scheduler https://lwn.net/Articles/978007/ https://www.opennet.ru/opennews/art.shtml?num=61354 День, когда у меня перестанет тормозить браузер, все ближе и ближе…
https://www.phoronix.com/news/sched_ext-Ahead-Of-Linux-6.12

Linus жмется, и не пускает #sched_ext в ядро.

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

Ну или, что более вероятно, не хочет оставлять пару заслуженных пенсионеров без гешефта по заносу нужных изменений в переусложненный основной шедулер Linux.

А я-то, было, уже собрал https://github.com/sched-ext/scx, и, потирая ручки, ждал, когда же уже

"The following video is the scx_rustland scheduler which makes most scheduling decisions in userspace Rust code showing better FPS in terraria while kernel is being compiled. This doesn't mean that scx_rustland is a better scheduler but does demonstrate how safe and easy it is to implement a scheduler which is generally usable and can outperform the default scheduler in certain scenarios"

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

Мама дорогая, сколько они там нахуевертили за 30 лет существования этой технологии, уму непостижимо.

Но, самое главное, они наотрез отказываются пускать через ebpf turing complete код, поэтому, конечно, в текущий момент интересный мне шедулер устроен крайне примитивно - в ядре выполняется только "простой" щедулер, который умеет в round robin внутри каких-то групп процессов, а решения по переносу процессов между группами (довольно медленно!) принимает userspace часть, которая уже и написана на rust (это было про другой шедулер) интересный мне шедулер устроен так - "This BPF backend implements the low level sched-ext functionalities for a user-space counterpart, that implements the actual scheduling policy. The BPF part collects total cputime and weight from the tasks that need to run, then it sends all details to the user-space scheduler that decides the best order of execution of the tasks (based on the collected metrics). The user-space scheduler then returns to the BPF component the list of tasks to be dispatched in the proper order" - не самое рекативное решение.

Понятное дело, что до полноценного сложного шедулера на ebpf пока еще очень далеко.
🔥7🤔4👍2🤡2
14🤬9🔥5🤔2👍1😢1
commit -m "better"
Человечеству совершенно необходим инфраструктурный сервис, который бы по sha256 от данных мог вернуть эти данные. Такой глобальный DHT, натянутый на большое число компьютеров. Нужно это: * чтобы хранить результаты вычисления чистых функций (это когда на…
Помимо глобального DHT, у человечества есть еще нескольк нерешенных, сложных, проблем.

Одна из них - это консистентная база данных, чуть более сложная, чем K/V (ну, например, чтобы умела хорошо планировать и выполнять cross host запросы), которая хорошо (например, может потреблять значительно разнотипное оборудование в рамках одной инсталляции) скейлится горизонтально, без постоянного облизывания человеком.

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

Помню, как вот эти вот господа https://www.opennet.ru/opennews/art.shtml?num=61730 начинали с помпой, что они ниибацца инженеры из Гугла (или откуда они там были), и сейчас запилят ровно то, что я описал выше.

Во-первых, не получилось, во-вторых, теперь на то, что получилось нельзя даже толком посмотреть.

Очень жаль, начало было интересным.
👍8
Дачный A/B на примере.

На картинке мы видим настоящий "зеленый" A/B +20%, с правой стороны я положил удобрения, на обложке которых было написано, что они "дают насыщенный изумрудный цвет и стимулируют рост", а с левой стороны - не положил.

В удивительное время живем, что написано, то и дают!
😁44👍22🔥16🤯432🎃1
Forwarded from Mantichore Clava
Генрих Антон Мюллер и его таинственная машина безумия.

Строения, произведённые Мюллером между 1912 и 1927 годами в психиатрической больнице Мюнзинген, Швейцария.

Генрих Антон Мюллер был творческой личностью. Французский винодел и художник, который изобрёл машину для обрезки виноградных лоз перед прививкой.
К сожалению, он упустил патент, и в результате его изобретение было скопировано и использовано другими. Это привело Мюллера в состояние глубокой депрессии, и по мере ухудшения его поведения он был помещён в психиатрическую клинику Мюнзинген, недалеко от Берна в Швейцарии, где он оставался до конца своих дней. Здесь он начал строить сложные и странные машины из веток, тряпок и проволоки, смазывая детали собственными экскрементами. Мюллер не осмеливался рассказывать кому-либо, для чего будут использоваться его машины, из-за страха и паранойи снова всё потерять.
😢21🔥4👍2