https://ladybird.org/newsletter/2024-09-30/
https://www.opennet.ru/opennews/art.shtml?num=61970
#ladybird
Гля чо пишут,
"Networking with curl
We’ve replaced our in-house HTTPS implementation with the curl library. This change has dramatically improved both compatibility and performance (it’s often more than 5x faster), allowing us to load more websites faster than ever before!" - проект не велосипедит, это хорошо. Знали бы вы, как бесит в webkitgtk сраный glib-networking.
И
"Web Platform Tests
We’ve made significant progress in Web Platform Test (WPT) coverage this month. The number of test timeouts has been reduced from 5,798 to 2,970, and switching to curl for networking has cut down the full test run time from 7 hours to under 5 hours.
In addition, we’ve fixed a long-standing issue with reftest image capture, improving our test accuracy. We’re now passing 588,982 more subtests compared to last month, bringing the total to 1,510,615 . You can track our progress via our new WPT dashboard or check out the results on wpt.fyi"
Однажды я сказал, что Rust совершенно не подходит для разработки браузера, вот, в копилку доказательств, как маленькая команда энтузиастов может обойти большой и сложный проект.
https://www.opennet.ru/opennews/art.shtml?num=61970
#ladybird
Гля чо пишут,
"Networking with curl
We’ve replaced our in-house HTTPS implementation with the curl library. This change has dramatically improved both compatibility and performance (it’s often more than 5x faster), allowing us to load more websites faster than ever before!" - проект не велосипедит, это хорошо. Знали бы вы, как бесит в webkitgtk сраный glib-networking.
И
"Web Platform Tests
We’ve made significant progress in Web Platform Test (WPT) coverage this month. The number of test timeouts has been reduced from 5,798 to 2,970, and switching to curl for networking has cut down the full test run time from 7 hours to under 5 hours.
In addition, we’ve fixed a long-standing issue with reftest image capture, improving our test accuracy. We’re now passing 588,982 more subtests compared to last month, bringing the total to 1,510,615 . You can track our progress via our new WPT dashboard or check out the results on wpt.fyi"
Однажды я сказал, что Rust совершенно не подходит для разработки браузера, вот, в копилку доказательств, как маленькая команда энтузиастов может обойти большой и сложный проект.
ladybird.org
This Month in Ladybird - September 2024 - Ladybird
Networking via curl, better audio through FFmpeg, improved emoji support, Skia font decoding, CSS Transitions and Cascade Layers, plus GPU-accelerated masks.
🔥12🤡4💩3❤1
commit -m "better"
https://www.phoronix.com/review/intel-xeon-6980p-power/7 Чуда не произошло, насколько быстрее, настолько и менее эффективно (per watt?) - https://www.phoronix.com/review/intel-xeon-6980p-power/7
Phoronix
Intel Xeon 6900P "Granite Rapids" List Prices Top Out At $17,800 USD
Last week with the launch of the Intel Xeon 6900P 'Granite Rapids' processors, Intel didn't disclose their list prices..
👍5🥴4🤔2🤡1
https://www.opennet.ru/opennews/art.shtml?num=61984
"В своей рекламной платформе Mozilla намерена обеспечить конфиденциальность пользователей и достигнуть баланса между получением коммерческой прибыли и соблюдением общественных интересов"
"В своей рекламной платформе Mozilla намерена обеспечить конфиденциальность пользователей и достигнуть баланса между получением коммерческой прибыли и соблюдением общественных интересов"
www.opennet.ru
Mozilla объявила о развитии собственной платформы показа рекламы
Лаура Чемберс (Laura Chambers), в этом году заменившая Митчелл Бейкер (Mitchell Baker) на посту руководителя (CEO) компании Mozilla Corporation, представила инициативу, связанную с выходом Mozilla на рынок платформ для показа рекламы. Аналогичное объявление…
🤡33👍7🤔4🆒3🦄1
commit -m "better"
https://www.opennet.ru/opennews/art.shtml?num=61984 "В своей рекламной платформе Mozilla намерена обеспечить конфиденциальность пользователей и достигнуть баланса между получением коммерческой прибыли и соблюдением общественных интересов"
This media is not supported in your browser
VIEW IN TELEGRAM
🤡18
#rant
Многие инструменты, которые мы используем - они как swiss army knife.
И, знаете, очень бомбит, когда ты объясняешь человеку, что, чтобы открыть консервную банку, ему нужен консервный нож из поставки, а он тебе такой "нет, что это за херня, я все привык делать ножом, я и банку открою ножом, а твой консервный нож - это какой-то хак, с ним еще разбираться надо, в первый раз вообще вижу, смотри, как у меня классно ножом получилось"!
Надо знать и понимать используемые инструменты!
Многие инструменты, которые мы используем - они как swiss army knife.
И, знаете, очень бомбит, когда ты объясняешь человеку, что, чтобы открыть консервную банку, ему нужен консервный нож из поставки, а он тебе такой "нет, что это за херня, я все привык делать ножом, я и банку открою ножом, а твой консервный нож - это какой-то хак, с ним еще разбираться надо, в первый раз вообще вижу, смотри, как у меня классно ножом получилось"!
Надо знать и понимать используемые инструменты!
👍27❤1
commit -m "better"
Перешел с unbound на dnsmasq, по советам коллег.
Будни #bootstrap
Поменял #dnsmasq на https://github.com/AdguardTeam/dnsproxy #dnsproxy
Потому что:
* На нормальном go, а не на богомерзкой сишке. Вообще, по мере того, как я заменяю дырявые программы на C, на что-то более безопасное, начинаю спать спокойнее.
* Почти полностью повторяет #dnsmasq, если почитать их readme, то там прямо так и написано, что они целятся в его ЦА. Функциональность, аргументы cli - прямо все цельнопижжено с dnsmasq.
* Рекомендуетсялучшими собаководами openwrt, для всяких там DoH - https://openwrt.org/docs/guide-user/services/dns/dot_dnsmasq_dnsproxy Я жопа ленивая, думать мне самому обычно лень, а тут все готовое.
* Нормально поддерживает DoH, TLS, и прочие новомодные dns штуки. Мне это, внезапно, стало важно, в контексте борьбы с #РКН.
Я бы взял и раньше, но они только недавно запилили параллельный обход указанных источников, а мне это тоже важно.
Всячески рекомендую, короче.
Поменял #dnsmasq на https://github.com/AdguardTeam/dnsproxy #dnsproxy
Потому что:
* На нормальном go, а не на богомерзкой сишке. Вообще, по мере того, как я заменяю дырявые программы на C, на что-то более безопасное, начинаю спать спокойнее.
* Почти полностью повторяет #dnsmasq, если почитать их readme, то там прямо так и написано, что они целятся в его ЦА. Функциональность, аргументы cli - прямо все цельнопижжено с dnsmasq.
* Рекомендуется
* Нормально поддерживает DoH, TLS, и прочие новомодные dns штуки. Мне это, внезапно, стало важно, в контексте борьбы с #РКН.
Я бы взял и раньше, но они только недавно запилили параллельный обход указанных источников, а мне это тоже важно.
Всячески рекомендую, короче.
GitHub
GitHub - AdguardTeam/dnsproxy: Simple DNS proxy with DoH, DoT, DoQ and DNSCrypt support
Simple DNS proxy with DoH, DoT, DoQ and DNSCrypt support - AdguardTeam/dnsproxy
👍22
https://blog.cloudflare.com/patent-troll-sable-pays-up/
Сказ о том, как Cloudflare победил патентного тролля:
"In the end, Sable agreed to pay Cloudflare $225,000, grant Cloudflare a royalty-free license to its entire patent portfolio, and to dedicate its patents to the public, ensuring that Sable can never again assert them against another company"
Сказ о том, как Cloudflare победил патентного тролля:
"In the end, Sable agreed to pay Cloudflare $225,000, grant Cloudflare a royalty-free license to its entire patent portfolio, and to dedicate its patents to the public, ensuring that Sable can never again assert them against another company"
The Cloudflare Blog
Patent troll Sable pays up, dedicates all its patents to the public!
We’re pleased to announce that the litigation against Sable has finally concluded on terms that we believe send a strong message to patent trolls everywhere — if you bring meritless patent claims against Cloudflare, we will fight back and we will win.
🥰19🔥6❤1
Forwarded from Programmer memes
Please open Telegram to view this post
VIEW IN TELEGRAM
😁20❤7🔥5💩2👍1
Будни #bootstrap
https://www.phoronix.com/news/WebKitGTK-2.46-Skia
WebKit перешел на #skia (https://t.me/itpgchannel/2047), для рендеринга.
Перешел и перешел, дело хорошее.
Но он сделал это криво!
Дело в том, что они переписывают сборку внешних компонент на cmake, и вендорят их к себе.
В этот раз они решили сэкономить, и добавили в сборку не все исходники. Поэтому получилось так, что часть кода ссылается на недоступные функции и методы. У них в сборке, так уж получилось, это осталось незамеченным, а вот у меня посыпались ошибки линковки.
Чаще всего такие расхождения связаны со слабыми символами, которые линкер учитывает по-разному, для динамической линковки, и для статической. Поэтому у них линкер выкинул часть графа вызовов, потому что посчитал ее недостижимой, а у меня - нет.
Мне настолько надоело чинить это "красиво", что ясоорудил очередную #herobora прибегнул к ковровым бомбардировкам - сказал, что недостающие символы надо разрезолвить в вызов abort() - https://github.com/pg83/ix/blob/main/pkgs/bin/epiphany/4/ix.sh#L28-L41 (там какие-то запчасти для отладки).
Это работает в предположении, что эти символы действительно недостижимы, а если достижимы, то получим падение в runtime (которое так и не случилось).
Мораль? Лучше не вендорить зависимости, особенно если у тебя нет команды из 5 человек, которые бы это вылизывали для твоей монорепки.
https://www.phoronix.com/news/WebKitGTK-2.46-Skia
WebKit перешел на #skia (https://t.me/itpgchannel/2047), для рендеринга.
Перешел и перешел, дело хорошее.
Но он сделал это криво!
Дело в том, что они переписывают сборку внешних компонент на cmake, и вендорят их к себе.
В этот раз они решили сэкономить, и добавили в сборку не все исходники. Поэтому получилось так, что часть кода ссылается на недоступные функции и методы. У них в сборке, так уж получилось, это осталось незамеченным, а вот у меня посыпались ошибки линковки.
Чаще всего такие расхождения связаны со слабыми символами, которые линкер учитывает по-разному, для динамической линковки, и для статической. Поэтому у них линкер выкинул часть графа вызовов, потому что посчитал ее недостижимой, а у меня - нет.
Мне настолько надоело чинить это "красиво", что я
Это работает в предположении, что эти символы действительно недостижимы, а если достижимы, то получим падение в runtime (которое так и не случилось).
Мораль? Лучше не вендорить зависимости, особенно если у тебя нет команды из 5 человек, которые бы это вылизывали для твоей монорепки.
Phoronix
WebKitGTK 2.46 Uses Skia Rather Than Cairo, More CPU/GPU Optimizations To Come
Igalia open-source developer Carlos Garcia Campos has written a new blog post to outline recent graphics improvements found in WebKitGTK 2.46 and WPEWebKit 2.46
👍12💯4😱3🐳1🆒1
commit -m "better"
You guys are freaked out because I'm moving quickly and you don't have visibility into my own internal process, that's all
https://www.phoronix.com/news/Bcachefs-Fixes-Two-Choices
Вечер перестает быть томным, Linux ставит вопрос ребром - или #Kent подчинится общим правилам, или с вещами на выход:
"You're a smart person. I feel like I've given you enough hints. Why don't you sit back and think about it, and let's make it clear: you have exactly two choices here:
(a) play better with others
(b) take your toy and go home
Those are the choices"
Вечер перестает быть томным, Linux ставит вопрос ребром - или #Kent подчинится общим правилам, или с вещами на выход:
"You're a smart person. I feel like I've given you enough hints. Why don't you sit back and think about it, and let's make it clear: you have exactly two choices here:
(a) play better with others
(b) take your toy and go home
Those are the choices"
Phoronix
Bcachefs Fixes Pull Once Again Frustrates Linus Torvalds - Two Choices Offered
Linus Torvalds merged the newest round of fixes to the experimental Bcachefs file-system, but it's left Linux creator Linus Torvalds frustrated and he's presented two choices for the file-system moving forward due to the continued LKML drama.
👍11🤡10😁5❤3🐳3🤔1
https://www.opennet.ru/opennews/art.shtml?num=61988
Сама по себе новость не очень интересная, но вот глаз зацепился за
"Фоновый процесс переведён с использования GObject-обвязки GUsb на прямое обращение к libusb и sysfs, что дало возможность вынести эмуляцию устройств в библиотеку libfwupdplugin и реализовать эмуляцию обновления прошивок на фиктивных устройствах hidraw и nvme по аналогии с эмуляцией с использованием фиктивных USB-устройств. Подобная возможность позволила реализовать дополнительные тесты, выявляющие проблемы с обновлением прошивок, возникающие после внесения в fwupd тех или иных изменений"
и
"Из зависимостей исключена библиотека GUdev, предоставляющая GObject-обвязки над libudev. Вместо GUdev процессом fwupd теперь создаётся netlink-сокет для разбора событий udev, передаваемых через netlink. Изменение привело к значительному сокращению потребления памяти и снижению нагрузки на CPU при запуске и в процессе работы, а также упростило добавление поддержки ueventd, которая в будущем позволит реализовать в fwupd поддержку платформы Android"
Ну вы поняли, да?
Проект выкинул зависимости на всякое glib/gnome/gobject gовно, и получил измеримый профит. Как по памяти, так и по перфу.
Библиотеки от проекта GNOME, которые написаны в парадигме gobject - это говно лютое, там на каждый чих по 10 аллокаций памяти, и линейный перебор по куче связанных списков.
А все потому, что в С еще не изобрели хеш-таблицу.
Сама по себе новость не очень интересная, но вот глаз зацепился за
"Фоновый процесс переведён с использования GObject-обвязки GUsb на прямое обращение к libusb и sysfs, что дало возможность вынести эмуляцию устройств в библиотеку libfwupdplugin и реализовать эмуляцию обновления прошивок на фиктивных устройствах hidraw и nvme по аналогии с эмуляцией с использованием фиктивных USB-устройств. Подобная возможность позволила реализовать дополнительные тесты, выявляющие проблемы с обновлением прошивок, возникающие после внесения в fwupd тех или иных изменений"
и
"Из зависимостей исключена библиотека GUdev, предоставляющая GObject-обвязки над libudev. Вместо GUdev процессом fwupd теперь создаётся netlink-сокет для разбора событий udev, передаваемых через netlink. Изменение привело к значительному сокращению потребления памяти и снижению нагрузки на CPU при запуске и в процессе работы, а также упростило добавление поддержки ueventd, которая в будущем позволит реализовать в fwupd поддержку платформы Android"
Ну вы поняли, да?
Проект выкинул зависимости на всякое glib/gnome/gobject gовно, и получил измеримый профит. Как по памяти, так и по перфу.
Библиотеки от проекта GNOME, которые написаны в парадигме gobject - это говно лютое, там на каждый чих по 10 аллокаций памяти, и линейный перебор по куче связанных списков.
А все потому, что в С еще не изобрели хеш-таблицу.
www.opennet.ru
Доступен инструментарий для загрузки прошивок fwupd 2.0.0
Ричард Хьюз (Richard Hughes), создатель проекта PackageKit, активно участвующий в разработке GNOME, представил выпуск пакета fwupd 2.0.0, предлагающего фоновый процесс для организации обновления прошивок и утилиту fwupdmgr для управления прошивками, проверки…
👍17😁9🐳3🤡2
commit -m "better"
А у меня ее нет, зато есть /var/tmp, с разделением по сессиям.
Будни #bootstrap
Я как-то писал про то, что стараюсь делать так, чтобы все программы уважали ${#TMPDIR} - https://t.me/itpgchannel/757
Сейчас я пошел еще дальше, и удалил системную /var/tmp - https://github.com/pg83/ix/commit/ff64cbcb480c9f0557fccce7de3dd9a51ae3aed3#diff-3814a46e233f2ebc67e3992e03a9eaf741405849ee94ff7de2506582e02e1f1bL110.
Да, у меня теперь нет этой помойки под названием "/tmp".
Каждый процесс в моей системе - он либо принадлежит какому-то сервису, или сессии. Каждая сессия тоже принадлежит какому-то сервису, поэтому, можно сказать, что любой процесс в моей системе принадлежит какому-то сервису. Есть, конечно, исключение - это ранние моменты инициализации, до запуска супервизора, но они и не гадят в /tmp.
Сервис у меня - это вполне формализованное понятие, он хранит все свои файлы в /var/run/{{service_name}}/, и нигде больше. В том числе, все сокеты, нужные для взаимодействия с ним.
Поэтому теперь временные папки создаются для каждого сервиса/сессии, и очищаются, когда они заканчиваются - https://github.com/pg83/ix/blob/main/pkgs/bin/vt/runit/scripts/ix.sh#L9-L13.
Это позволило очищать всякие остатки за завершившимися сессиями, ну и вообще, стало приятнее!
Я как-то писал про то, что стараюсь делать так, чтобы все программы уважали ${#TMPDIR} - https://t.me/itpgchannel/757
Сейчас я пошел еще дальше, и удалил системную /var/tmp - https://github.com/pg83/ix/commit/ff64cbcb480c9f0557fccce7de3dd9a51ae3aed3#diff-3814a46e233f2ebc67e3992e03a9eaf741405849ee94ff7de2506582e02e1f1bL110.
Да, у меня теперь нет этой помойки под названием "/tmp".
Каждый процесс в моей системе - он либо принадлежит какому-то сервису, или сессии. Каждая сессия тоже принадлежит какому-то сервису, поэтому, можно сказать, что любой процесс в моей системе принадлежит какому-то сервису. Есть, конечно, исключение - это ранние моменты инициализации, до запуска супервизора, но они и не гадят в /tmp.
Сервис у меня - это вполне формализованное понятие, он хранит все свои файлы в /var/run/{{service_name}}/, и нигде больше. В том числе, все сокеты, нужные для взаимодействия с ним.
Поэтому теперь временные папки создаются для каждого сервиса/сессии, и очищаются, когда они заканчиваются - https://github.com/pg83/ix/blob/main/pkgs/bin/vt/runit/scripts/ix.sh#L9-L13.
Это позволило очищать всякие остатки за завершившимися сессиями, ну и вообще, стало приятнее!
Telegram
commit -m "better"
Сегодня у меня для вас анекдот про мое чувство прекрасного.
Меня лично бесят программы, которые хотят создавать временные файлы. Вообще, "временный файл" - это какой-то нонсенс, потому что захера писать эфемерные данные в персистентный файл?
Данные можно…
Меня лично бесят программы, которые хотят создавать временные файлы. Вообще, "временный файл" - это какой-то нонсенс, потому что захера писать эфемерные данные в персистентный файл?
Данные можно…
👍29🔥15😁2🆒2
commit -m "better"
https://github.com/python/cpython/pull/116338 А вот это прямо бомба - #nogil в транке Python. И чувак, который это таки сделал, войдет в историю (https://t.me/itpgchannel/1241) Потрясающее упорство, надо сказать.
#nogil
https://docs.python.org/3.13/whatsnew/3.13.html
"PEP 703: CPython 3.13 has experimental support for running with the global interpreter lock disabled. See Free-threaded CPython for more details.
PEP 744: A basic JIT compiler was added. It is currently disabled by default (though we may turn it on later). Performance improvements are modest – we expect to improve this over the next few releases"
Ну, с почином!
https://docs.python.org/3.13/whatsnew/3.13.html
"PEP 703: CPython 3.13 has experimental support for running with the global interpreter lock disabled. See Free-threaded CPython for more details.
PEP 744: A basic JIT compiler was added. It is currently disabled by default (though we may turn it on later). Performance improvements are modest – we expect to improve this over the next few releases"
Ну, с почином!
Python documentation
What’s New In Python 3.13
Editors, Adam Turner and Thomas Wouters,. This article explains the new features in Python 3.13, compared to 3.12. Python 3.13 was released on October 7, 2024. For full details, see the changelog. ...
🔥41👍5❤1
А вы говорите, что атаки Томпсона (https://www.cs.cmu.edu/~rdriley/487/papers/Thompson_1984_ReflectionsonTrustingTrust.pdf) IRL не бывает!
https://rodarmor.com/blog/whence-newline/
https://rodarmor.com/blog/whence-newline/
👍3
Forwarded from Миропись Былеузорья | История и Культура
Табель учёта рабочего времени возрастом ~ 3500 лет.
Новоегипетское иератическое письмо было написано на известняке красными и чёрными чернилами и содержало такую информацию, как дата (сезон и число), имя работника и причина отсутствия.
Например, 2-го месяца лета, 14-го дня, рабочий по имени Пеннуб отсутствовал на работе, потому что бальзамировал усопшую сестру.
Некоторые из причин:
1. Выпивка с Хонсу
2. Кровотечение у дочери.
3. Варка пива
4. Строит свой дом
5. Приготовление лекарства для жены писца
6. Страдание глазом (?)
7. Бальзамирует родственника
8. Жена истекает кровью.
9. Укус скорпиона
10. У него пир
11. Подношение богу
Новоегипетское иератическое письмо было написано на известняке красными и чёрными чернилами и содержало такую информацию, как дата (сезон и число), имя работника и причина отсутствия.
Например, 2-го месяца лета, 14-го дня, рабочий по имени Пеннуб отсутствовал на работе, потому что бальзамировал усопшую сестру.
Некоторые из причин:
1. Выпивка с Хонсу
2. Кровотечение у дочери.
3. Варка пива
4. Строит свой дом
5. Приготовление лекарства для жены писца
6. Страдание глазом (?)
7. Бальзамирует родственника
8. Жена истекает кровью.
9. Укус скорпиона
10. У него пир
11. Подношение богу
😁21👍12🎉3❤2🔥1