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
Миропись Былеузорья | История и Культура
Табель учёта рабочего времени возрастом ~ 3500 лет. Новоегипетское иератическое письмо было написано на известняке красными и чёрными чернилами и содержало такую информацию, как дата (сезон и число), имя работника и причина отсутствия. Например, 2-го месяца…
прошло 3500 лет, а ничего не поменялось!
😁18❤3💯3
Forwarded from lobste.rs
lobste.rs
Windows dynamic linking depends on the active code page
0 comments
😁12💊6👍3🤯2🔥1
lobste.rs
Windows dynamic linking depends on the active code page Comments on lobsters
TL;DR - и дейcтвительно, "windows dynamic linking depends on the active code page"
👍5🤔4🤯3🔥1
https://vondra.me/posts/playing-with-bolt-and-postgres/
Коллега собрал postgres с #BOLT.
TL;DR - десятки процентов перфа в плюс.
Кстати, скачать clang + BOLT всегда можно вот тут - https://github.com/yandex/toolchain-registry
Коллега собрал postgres с #BOLT.
TL;DR - десятки процентов перфа в плюс.
Кстати, скачать clang + BOLT всегда можно вот тут - https://github.com/yandex/toolchain-registry
🔥23🤯7👍2🌚1
И новости из дурки: https://www.opennet.ru/opennews/art.shtml?num=62020
"На прежнем уровне останется финансирование проведения конференций Linux App Summit, GNOME.Asia и GUADEC, поддержания инфраструктуры gnome.org и программы Outreach (оплата стажировок женщин и меньшинств)"
"На прежнем уровне останется финансирование проведения конференций Linux App Summit, GNOME.Asia и GUADEC, поддержания инфраструктуры gnome.org и программы Outreach (оплата стажировок женщин и меньшинств)"
www.opennet.ru
Организация GNOME Foundation сокращает персонал для снижения издержек
Организация GNOME Foundation объявила о проведении оптимизации расходов для выравнивая баланса между доходами и расходами. Последние годы в организации наблюдается большой перерасход средств, например, в 2023 финансовом году организация получила 556 тысяч…
💊22🔥5😁4🐳2🦄1