#llvm weekly
https://reviews.llvm.org/rGf06abbb39380
Аааа, llvm busybox style binary приземлился! Пока в довольно ограниченном виде:
(1) the multicall binary cannot currently properly handle
multi-dispatch tools. This means symlinking llvm-ranlib to llvm-driver
will not properly result in llvm-ar's main being called.
(2) the multicall binary cannot be comprised of tools containing
conflicting cl::opt options as the global cl::opt option list cannot
contain duplicates.
Но лиха беда начало!
В прошлых сериях рассказывал, почему такой multicall хорошо и правильно, и что в llvm community есть сильное мнение против этой фичи. Очень переживал, что оно так и не будет внедрено, поэтому рад несказанно.
———
https://mawfig.github.io/2022/06/18/v-lang-in-2022.html
https://lobste.rs/s/hfjlba/v_language_review_2022
Давеча писал про #vlang, с прицелом на написание необходимых мне сборочных скриптов.
Python ужасно тормозной, например, мой clang wrapper замедляет сборку примерно в 2 раза, а его задача - просто переосмыслить cmd line для запуска настоящего компилятора.
Мне, конечно, тогданапихали за щеку рассказали, что vlang лучше не трогать, потому что его авторы рассказывают, но не показывают.
Вот, по ссылке - разбор современного состояния vlang.
TL;DR; - все плохо, бОльшая часть заявленных фичей не работает, да и корки в типа безопасном языке - ну такое.
———
Bootstrap story.
Собирал себе wireshark. Потому что в транк приземлили поддержку QT6, а QT5 у меня нет, и мне ее лень собирать.
Все прошло, как по маслу, разрабы wireshark молодцы, у них прямо есть опция для сборки wireshark без плагинов.
Но что-то сломалось в сумасшедших скриптах для cmake от QT, они начали писать, что, внезапно, у меня нет glib, хотя он, конечно, присутствовал.
Дебажить cmake скрипты - это дело совершенно безблагодатное, поэтому мне показалось, что проще убрать упоминание про glib в сгенеренных cmake скриптах от QT - https://github.com/pg83/ix/commit/7b46d6133b62f7b09cb37a57ba3817313e90ae7a#diff-19b6fefa6a33c75dfaedcd1b884a63a665b515b6c9894595aec999a951da530bR53
Лучше, конечно, было бы разобраться, но в cmake нет такой возможности.
Все, что оно умеет для отладки - это выдать дамп исполнения, со значениями переменных, которые были в IF(), FOR(), etc.
Я однажды пробовал раздебажить такой дамп, дело это не из приятных. Десятки мегабайт текста без какой-то внятной структуры.
https://reviews.llvm.org/rGf06abbb39380
Аааа, llvm busybox style binary приземлился! Пока в довольно ограниченном виде:
(1) the multicall binary cannot currently properly handle
multi-dispatch tools. This means symlinking llvm-ranlib to llvm-driver
will not properly result in llvm-ar's main being called.
(2) the multicall binary cannot be comprised of tools containing
conflicting cl::opt options as the global cl::opt option list cannot
contain duplicates.
Но лиха беда начало!
В прошлых сериях рассказывал, почему такой multicall хорошо и правильно, и что в llvm community есть сильное мнение против этой фичи. Очень переживал, что оно так и не будет внедрено, поэтому рад несказанно.
———
https://mawfig.github.io/2022/06/18/v-lang-in-2022.html
https://lobste.rs/s/hfjlba/v_language_review_2022
Давеча писал про #vlang, с прицелом на написание необходимых мне сборочных скриптов.
Python ужасно тормозной, например, мой clang wrapper замедляет сборку примерно в 2 раза, а его задача - просто переосмыслить cmd line для запуска настоящего компилятора.
Мне, конечно, тогда
Вот, по ссылке - разбор современного состояния vlang.
TL;DR; - все плохо, бОльшая часть заявленных фичей не работает, да и корки в типа безопасном языке - ну такое.
———
Bootstrap story.
Собирал себе wireshark. Потому что в транк приземлили поддержку QT6, а QT5 у меня нет, и мне ее лень собирать.
Все прошло, как по маслу, разрабы wireshark молодцы, у них прямо есть опция для сборки wireshark без плагинов.
Но что-то сломалось в сумасшедших скриптах для cmake от QT, они начали писать, что, внезапно, у меня нет glib, хотя он, конечно, присутствовал.
Дебажить cmake скрипты - это дело совершенно безблагодатное, поэтому мне показалось, что проще убрать упоминание про glib в сгенеренных cmake скриптах от QT - https://github.com/pg83/ix/commit/7b46d6133b62f7b09cb37a57ba3817313e90ae7a#diff-19b6fefa6a33c75dfaedcd1b884a63a665b515b6c9894595aec999a951da530bR53
Лучше, конечно, было бы разобраться, но в cmake нет такой возможности.
Все, что оно умеет для отладки - это выдать дамп исполнения, со значениями переменных, которые были в IF(), FOR(), etc.
Я однажды пробовал раздебажить такой дамп, дело это не из приятных. Десятки мегабайт текста без какой-то внятной структуры.
mawfig.github.io
V Language Review (2022)
V is a programming language promising to be “Simple, fast, safe, compiled. For developing maintainable software.” V has a controversial past but what is the state of V in 2022?
👍7
https://www.phoronix.com/scan.php?page=news_item&px=Rust-For-Linux-5.20-Possible
Big news!
Linus говорит, что, вполне вероятно, Rust в Linux будет уже в 5.20.
По #linux_rust_linux вы можете посмотреть, почему я эту новость считаю исключительно хорошей и лулзовой! :D
А я вот начал собирать 5.19-rc3, и оно не в очень хорошей форме - глючит подсветка экрана, и уже схлопотал зависание после выхода из сна.
———
Вышла новая телега, 4.0.0.
Видимо, такая смена версии обусловлена включением premium фичей, я почти ничего и не заметил, хотя, как только будет возможность, premium включу. Мне из него ничего не нужно, но я лично считаю, что возможность заплатить, и не видеть рекламу - это правильный подход.
Когда собирал, увидел, что телега написала нативную wayland интеграцию - из репозитория исчез враппер над kwayland - https://git.sr.ht/~pg/ix/commit/790b39736be2579587240f245a6d687f566d5de2#pkgs/bin/telegram/desktop/unwrap/t/ix.sh-1-5
Собственно, ровно оно у меня и сломалось.
Если отжать галку "use system decorations", теперь показывается старый темный window border от телеги. А если включить - то какое-то странное белое нечто, которое рисует явно не sway.
Старые декорации(темные) стали, к тому же, скругленными.
Blueeeh.
———
https://www.opennet.ru/opennews/art.shtml?num=57383
Facebook пишет swap под Linux, так, как он должен быть устроен. Ручки по настройке в ядре, сложная логика по управлению - в userspace.
Ну невозможно на C без граблей писать сложную логику.
Big news!
Linus говорит, что, вполне вероятно, Rust в Linux будет уже в 5.20.
По #linux_rust_linux вы можете посмотреть, почему я эту новость считаю исключительно хорошей и лулзовой! :D
А я вот начал собирать 5.19-rc3, и оно не в очень хорошей форме - глючит подсветка экрана, и уже схлопотал зависание после выхода из сна.
———
Вышла новая телега, 4.0.0.
Видимо, такая смена версии обусловлена включением premium фичей, я почти ничего и не заметил, хотя, как только будет возможность, premium включу. Мне из него ничего не нужно, но я лично считаю, что возможность заплатить, и не видеть рекламу - это правильный подход.
Когда собирал, увидел, что телега написала нативную wayland интеграцию - из репозитория исчез враппер над kwayland - https://git.sr.ht/~pg/ix/commit/790b39736be2579587240f245a6d687f566d5de2#pkgs/bin/telegram/desktop/unwrap/t/ix.sh-1-5
Собственно, ровно оно у меня и сломалось.
Если отжать галку "use system decorations", теперь показывается старый темный window border от телеги. А если включить - то какое-то странное белое нечто, которое рисует явно не sway.
Старые декорации(темные) стали, к тому же, скругленными.
Blueeeh.
———
https://www.opennet.ru/opennews/art.shtml?num=57383
Facebook пишет swap под Linux, так, как он должен быть устроен. Ручки по настройке в ядре, сложная логика по управлению - в userspace.
Ну невозможно на C без граблей писать сложную логику.
Phoronix
Linus Torvalds: Rust For The Kernel Could Possibly Be Merged For Linux 5.20
Speaking this morning at The Linux Foundation's Open-Source Summit, Linus Torvalds talked up the possibilities of Rust within the Linux kernel and that it could be landing quite soon -- possibly even for the next kernel cycle.
👍4👎1🐳1💯1
https://usebottles.com/
Раньше это был скрипт для установки wine приложения в отдельный environment.
Скрипт разросся в целый магазин, а теперь его оунеры просят дистрибутивы не распространять его через свои репозитории - https://usebottles.com/blog/an-open-letter/
Пишут, что репозитории неправильно его собирают, не с теми версиями библиотек, и оно плохо работает.
"We understand the need of providing a trusted source where users can obtain packages. However, we vastly prefer to provide no support than poor support, just so the user needn’t deal with a bad experience with Bottles directly. We also prefer to avoid telling users that the packagers who unofficially packaged Bottles did so incorrectly and/or didn’t test enough."
Качайте, грят, через flatpak.
———
Давеча писал про большие числа - #bb
Невообразимо большие числа совершенно непонятно, как сравнивать - отношение 2 невообразимо больших чисел может быть как невообразимо большим, так и невообразимо малым(вообразимыми я называю числа вида 100^500 - с ними мы умеем обращаться, и даже представлять, что это такое).
Вот, например, красивый результат - BB(6, 2) > 10↑↑15
Что это значит? Я не понимаю, и никто не понимает, но математика там интересная - https://www.sligocki.com//2022/06/21/bb-6-2-t15.html
Найдут ли когда-нибудь X такое, что BB(6, 2) < 10↑↑X? Глубоко сомневаюсь, эти числа, наверняка, совершенно из разных "классов невообразимости", если вы понимаете, о чем я :D
———
https://www.reddit.com/r/cpp/comments/vcedoe/til_about_the_stdranges_compile_time_tax_everyone/
Тут вот пишут, что простой код вывода в поток стал компилироваться в 2 раза дольше в С++20, из-за включения огромной библиотеки с ranges.
Несколько раз уже писал, что современные языки и компиляторы попали в ловушку последних 5% перфа, из-за которых нам приходится терпеть кратно возросшее время компиляции.
По мне, было бы круто, если бы можно было договориться, и открутить назад последние 20% перфа, но ускорить время сборки в 2 раза. КМК, за освободившееся время вполне можно было бы намолотить эти 20% другим способом.
Но ведь всегда найдется умник, который скажет "а давайте включим в проде LTO".
Раньше это был скрипт для установки wine приложения в отдельный environment.
Скрипт разросся в целый магазин, а теперь его оунеры просят дистрибутивы не распространять его через свои репозитории - https://usebottles.com/blog/an-open-letter/
Пишут, что репозитории неправильно его собирают, не с теми версиями библиотек, и оно плохо работает.
"We understand the need of providing a trusted source where users can obtain packages. However, we vastly prefer to provide no support than poor support, just so the user needn’t deal with a bad experience with Bottles directly. We also prefer to avoid telling users that the packagers who unofficially packaged Bottles did so incorrectly and/or didn’t test enough."
Качайте, грят, через flatpak.
———
Давеча писал про большие числа - #bb
Невообразимо большие числа совершенно непонятно, как сравнивать - отношение 2 невообразимо больших чисел может быть как невообразимо большим, так и невообразимо малым(вообразимыми я называю числа вида 100^500 - с ними мы умеем обращаться, и даже представлять, что это такое).
Вот, например, красивый результат - BB(6, 2) > 10↑↑15
Что это значит? Я не понимаю, и никто не понимает, но математика там интересная - https://www.sligocki.com//2022/06/21/bb-6-2-t15.html
Найдут ли когда-нибудь X такое, что BB(6, 2) < 10↑↑X? Глубоко сомневаюсь, эти числа, наверняка, совершенно из разных "классов невообразимости", если вы понимаете, о чем я :D
———
https://www.reddit.com/r/cpp/comments/vcedoe/til_about_the_stdranges_compile_time_tax_everyone/
Тут вот пишут, что простой код вывода в поток стал компилироваться в 2 раза дольше в С++20, из-за включения огромной библиотеки с ranges.
Несколько раз уже писал, что современные языки и компиляторы попали в ловушку последних 5% перфа, из-за которых нам приходится терпеть кратно возросшее время компиляции.
По мне, было бы круто, если бы можно было договориться, и открутить назад последние 20% перфа, но ускорить время сборки в 2 раза. КМК, за освободившееся время вполне можно было бы намолотить эти 20% другим способом.
Но ведь всегда найдется умник, который скажет "а давайте включим в проде LTO".
Mastodon
usebottles (@usebottles@mastodon.online)
81 Posts, 14 Following, 830 Followers · Run Windows software on Linux with Bottles.
👍7
Я очень последовательно выкорчевываю из кода всякие завязки на X server.
Потому что, если не выкорчевать, то бывает ситуация, когда код, будучи собран под wayland + X11, и, видя наличие X server, предпочитает выбрать рендеринг через X. Вот, например, qemy форсит рендеринг через X, выставляя переменную окружения для SDL - https://git.sr.ht/~pg/ix/tree/main/item/pkgs/bin/qemu/ix.sh#L63 Знали бы вы, как я это дебажил, потому что понять, почему SDL пытается выбрать X, хотя он в него даже не вкомпилен - ну такое.
А нафига оно нужно, если там то hidpi через раз работает, то размер курсора отвалится, то еще чего нить.
Иногда это просто, а иногда я рожаю кадавра, который, если бы увидел upstream, то у них волосы бы зашевелились не только на голове.
https://git.sr.ht/~pg/ix/tree/main/item/pkgs/bin/pcmanfm/ix.sh#L30 - вот тут я, например, полностью выпилил возможность ренедрить десктоп в pcmanfm.
https://git.sr.ht/~pg/ix/tree/main/item/pkgs/bin/dunst/ix.sh#L27 - а вот тут - хитрый редирект одной реализации виртуального интерфейса в другой, и занулил реализацию через X server. Пришлось заново переопределить некоторые интерфейсные структуры, потому что в них былы завязки на X - https://git.sr.ht/~pg/ix/tree/main/item/pkgs/bin/dunst/ix.sh#L44 Кстати, последовательный naming функций в этом коде доставляет - https://git.sr.ht/~pg/ix/tree/main/item/pkgs/bin/dunst/ix.sh#L29.
https://git.sr.ht/~pg/ix/tree/main/item/pkgs/bin/ly/ix.sh#L48 - вот тут я имплементирую целый кусочек xcb, так, чтобы он просто возвращал ошибку соединения, и дальше X никак не использовался.
https://git.sr.ht/~pg/ix/tree/main/item/pkgs/bin/lisgd/ix.sh#L19 - а тут притворяюсь куском Xlib, c той же целью.
Куча кода, которая пытается принудительно влинковать X11, хотя она им и не нужна - https://git.sr.ht/~pg/ix/tree/main/item/pkgs/bin/scummvm/ix.sh#L50, https://git.sr.ht/~pg/ix/tree/main/item/pkgs/bin/lisgd/ix.sh#L15, тысячи их.
Короче, если вы думаете, что в вашей свеженалитой федоре все идет через Wayland - я только усмехнусь, попробуйте убить и удалить XWayland, и посмотреть, что отвалится!
А у меня совершенно точно без X, и это стоило значительных усилий.
Кто-то может сказать, что это дурь, а я скажу, что у меня в Fedora telegram через раз запускался то в Wayland, то через XWayland, и там то были корявые шрифты, то использовался libinput вместо synaptic, и потому то работала плавная прокрутка, то нет. Отлаживать эту проблему я лично затрахался, и больше не хочу.
Потому что, если не выкорчевать, то бывает ситуация, когда код, будучи собран под wayland + X11, и, видя наличие X server, предпочитает выбрать рендеринг через X. Вот, например, qemy форсит рендеринг через X, выставляя переменную окружения для SDL - https://git.sr.ht/~pg/ix/tree/main/item/pkgs/bin/qemu/ix.sh#L63 Знали бы вы, как я это дебажил, потому что понять, почему SDL пытается выбрать X, хотя он в него даже не вкомпилен - ну такое.
А нафига оно нужно, если там то hidpi через раз работает, то размер курсора отвалится, то еще чего нить.
Иногда это просто, а иногда я рожаю кадавра, который, если бы увидел upstream, то у них волосы бы зашевелились не только на голове.
https://git.sr.ht/~pg/ix/tree/main/item/pkgs/bin/pcmanfm/ix.sh#L30 - вот тут я, например, полностью выпилил возможность ренедрить десктоп в pcmanfm.
https://git.sr.ht/~pg/ix/tree/main/item/pkgs/bin/dunst/ix.sh#L27 - а вот тут - хитрый редирект одной реализации виртуального интерфейса в другой, и занулил реализацию через X server. Пришлось заново переопределить некоторые интерфейсные структуры, потому что в них былы завязки на X - https://git.sr.ht/~pg/ix/tree/main/item/pkgs/bin/dunst/ix.sh#L44 Кстати, последовательный naming функций в этом коде доставляет - https://git.sr.ht/~pg/ix/tree/main/item/pkgs/bin/dunst/ix.sh#L29.
https://git.sr.ht/~pg/ix/tree/main/item/pkgs/bin/ly/ix.sh#L48 - вот тут я имплементирую целый кусочек xcb, так, чтобы он просто возвращал ошибку соединения, и дальше X никак не использовался.
https://git.sr.ht/~pg/ix/tree/main/item/pkgs/bin/lisgd/ix.sh#L19 - а тут притворяюсь куском Xlib, c той же целью.
Куча кода, которая пытается принудительно влинковать X11, хотя она им и не нужна - https://git.sr.ht/~pg/ix/tree/main/item/pkgs/bin/scummvm/ix.sh#L50, https://git.sr.ht/~pg/ix/tree/main/item/pkgs/bin/lisgd/ix.sh#L15, тысячи их.
Короче, если вы думаете, что в вашей свеженалитой федоре все идет через Wayland - я только усмехнусь, попробуйте убить и удалить XWayland, и посмотреть, что отвалится!
А у меня совершенно точно без X, и это стоило значительных усилий.
Кто-то может сказать, что это дурь, а я скажу, что у меня в Fedora telegram через раз запускался то в Wayland, то через XWayland, и там то были корявые шрифты, то использовался libinput вместо synaptic, и потому то работала плавная прокрутка, то нет. Отлаживать эту проблему я лично затрахался, и больше не хочу.
👍14👎1
This media is not supported in your browser
VIEW IN TELEGRAM
Смешных движущихся картинок в ленту!
😁23👎7👍1
https://drewdevault.com/2022/06/23/Copilot-GPL-washing.html
https://twitter.com/ReinH/status/1539626662274269185
#copilot #strong_ai
"Machine learning is essentially a glorified pattern recognition and reproduction engine, and does not represent a genuine generalization of the learning process. It is perhaps capable of a limited amount of originality, but is also capable of degrading to the simple case of copy and paste."
Что я тут могу добавить?
* А кожаные мешки чем отличаются? Смотрят на чужой код, и выдают какие-то другие его вариации, более хорошо предназначенные для решения конкретной задачи. Процесс обучения человека и машины чем принципиально отличается?
* Ну, что думает MS про обучение на github, всем понятно. А вот тонкий момент - а что, если обучить copilot на утекших исходниках Windows NT, или закрытых драйверах Nvidia, а потом он начнет делать интересные подсказки для авторов Nouveau и ReactOS? Это вот как будет классифицироваться? Насколько я понимаю, сейчас для кожаного мешка из соответствующих проектов читать такое - зашквар, потом код нельзя писать.
* КМК, Дрю ДеВолт таки пиарит на этом свой хостинг source hut, хотя явно заявляет, что не делает этого.
———
https://news.ycombinator.com/item?id=31846593
Пишут, что Я выложил большую модельку.
Ничего про модельку не знаю.
Обсуждение на HN классное - и про Путина, и про Ирак с Ираном, все, как положено.
600 комментариев - IMHO, довольно дофига.
Пеняют, что не нужно называть OSS проект "cocaine".
https://twitter.com/ReinH/status/1539626662274269185
#copilot #strong_ai
"Machine learning is essentially a glorified pattern recognition and reproduction engine, and does not represent a genuine generalization of the learning process. It is perhaps capable of a limited amount of originality, but is also capable of degrading to the simple case of copy and paste."
Что я тут могу добавить?
* А кожаные мешки чем отличаются? Смотрят на чужой код, и выдают какие-то другие его вариации, более хорошо предназначенные для решения конкретной задачи. Процесс обучения человека и машины чем принципиально отличается?
* Ну, что думает MS про обучение на github, всем понятно. А вот тонкий момент - а что, если обучить copilot на утекших исходниках Windows NT, или закрытых драйверах Nvidia, а потом он начнет делать интересные подсказки для авторов Nouveau и ReactOS? Это вот как будет классифицироваться? Насколько я понимаю, сейчас для кожаного мешка из соответствующих проектов читать такое - зашквар, потом код нельзя писать.
* КМК, Дрю ДеВолт таки пиарит на этом свой хостинг source hut, хотя явно заявляет, что не делает этого.
———
https://news.ycombinator.com/item?id=31846593
Пишут, что Я выложил большую модельку.
Ничего про модельку не знаю.
Обсуждение на HN классное - и про Путина, и про Ирак с Ираном, все, как положено.
600 комментариев - IMHO, довольно дофига.
Пеняют, что не нужно называть OSS проект "cocaine".
🔥7👍1
Меня попросили, чтобы я делил свои заметки на части, а не вываливал дневной блок одной порцией.
Я уже так пробовал, мне не понравилось почему-то.
Попробую еще раз, потом устрою опрос, как лучше.
Я уже так пробовал, мне не понравилось почему-то.
Попробую еще раз, потом устрою опрос, как лучше.
👍19
#copilot #ddv
https://lwn.net/Articles/898772/#Comments
В продолжение вчерашней темы, обсуждение статьи ДеВолта на lwn.net - https://lwn.net/Articles/898772/#Comments
Хорошее чтиво для тех, кто интересуется лицензиями, что они могут, чего не могут, как работают в разных юрисдикциях, и так далее.
TL;DR - derivative work довольно странное понятие, и оно не может определяться лицензией per se, а пределяется законом. То есть, я не могу в лицензии написать, что вот текст после обработки copilot - это derivative work, с соответствующими ограничениями.
https://lwn.net/Articles/898772/#Comments
В продолжение вчерашней темы, обсуждение статьи ДеВолта на lwn.net - https://lwn.net/Articles/898772/#Comments
Хорошее чтиво для тех, кто интересуется лицензиями, что они могут, чего не могут, как работают в разных юрисдикциях, и так далее.
TL;DR - derivative work довольно странное понятие, и оно не может определяться лицензией per se, а пределяется законом. То есть, я не могу в лицензии написать, что вот текст после обработки copilot - это derivative work, с соответствующими ограничениями.
lwn.net
DeVault: GitHub Copilot and open source laundering
Drew DeVault takes
issue with GitHub's "Copilot" offering and the licensing issues that it raises:
issue with GitHub's "Copilot" offering and the licensing issues that it raises:
👍5
Про хрупкость OSS систем сборок.
Есть такой проект, x265. У него вышла новая версия, я ее обновил, но, почему-то, с новой версией перестал собираться ffmepg, с сообщением от configure, что, мол, x265 не установлен в системе.
configure так посчитал, пому что x265 не установил в доступное место x265.pc, скрипт для pkg-config - основной способ резолвинга зависимостей.
Пристальное разглядывание сборки x265 показало, что установка этого файла зависит от флажка X265_LATEST_TAG - https://bitbucket.org/multicoreware/x265_git/src/9b59d45549f460e41a852cfd276f9b89eed2112a/source/CMakeLists.txt#lines-743
А флажок выставляется только если в системе есть бинарник git, хотя он может и не использоваться для поиска версии в репозитории, если в корне нет папки .git.
Вот так - нет git, нет и x265.pc, и пакета как бы и нету в системе.
Я пока добавил git в зависимости, но так-то у меня для подобных извращуг есть и фейковый git, просто пока не успел его проверить. https://git.sr.ht/~pg/ix/tree/main/item/pkgs/lib/x265/ix.sh#L22
Мораль? Сборка OSS проектов - это говно и палки, а, иногда, и палок не завезли.
Есть такой проект, x265. У него вышла новая версия, я ее обновил, но, почему-то, с новой версией перестал собираться ffmepg, с сообщением от configure, что, мол, x265 не установлен в системе.
configure так посчитал, пому что x265 не установил в доступное место x265.pc, скрипт для pkg-config - основной способ резолвинга зависимостей.
Пристальное разглядывание сборки x265 показало, что установка этого файла зависит от флажка X265_LATEST_TAG - https://bitbucket.org/multicoreware/x265_git/src/9b59d45549f460e41a852cfd276f9b89eed2112a/source/CMakeLists.txt#lines-743
А флажок выставляется только если в системе есть бинарник git, хотя он может и не использоваться для поиска версии в репозитории, если в корне нет папки .git.
Вот так - нет git, нет и x265.pc, и пакета как бы и нету в системе.
Я пока добавил git в зависимости, но так-то у меня для подобных извращуг есть и фейковый git, просто пока не успел его проверить. https://git.sr.ht/~pg/ix/tree/main/item/pkgs/lib/x265/ix.sh#L22
Мораль? Сборка OSS проектов - это говно и палки, а, иногда, и палок не завезли.
🤯17😱2🌭2👍1
https://roman.pt/posts/dont-let-dicts-spoil-your-code/
https://lobste.rs/s/gzemqn/don_t_let_dicts_spoil_your_code
Тут вот коллега убеждает всех, что не надо использовать словари в питоне для взаимодействия разныхслоев в коде. Пишет, что надо все преобразовывать в классы, и как можно раньше переводить ваши данные из json-like словарей в эти иерархии.
Я, конечно, читая все это, чуть не подавился, и хочу сказать, что, наоборот, нужно как можно дольше использовать куски сырых данных, не оборачивая их в промежуточное представление.
Сначала я несколько переформулирую задачу, надеюсь, что без https://en.wikipedia.org/wiki/Straw_man
Учем, что в Python (очень упрощенно, но достаточно для моих нужд)
Плюсы этого подхода понятны - иногда(pun intended) не нужно менять внутреннее представление при изменении формата данных и протоколов.
Все остальный перечисленные плюсы в статье или малополезны, или так же могут быть сделаны и для dict.
Минусов же - вагон и маленькая тележка:
* Если вам не повезло, то нужно менять и промежуточное представление, и внутренние данные. Это все усложняет, и вы можете стать заложником такого разделения при попытке сменить формат данных.
* Люди, на самом деле, плохо предсказывают будущее, и не везти вам будет сильно чаще, чем хотелось бы.
* В случае использования сырых данных абстракции не текут, а в случае вот такого промежуточного представления, у вас на схеме уже 2 места, где они могут начать протекать. Ну, типа, одного из ваших сотрудников все это заебет, и он положит в полюшко датакласса какую-то аццкую смесь из словарей с внешними данными, и промежуточного представления, а вам потом это рефакторить.
* Performance. На этом не останавливаюсь, и так все понятно. Тут мне могут возразить про туплы и датаклассы - на разборе много потеряете.
* Достаточно subtle вещь, но IMHO важная. В Python dict везде, вы можете очень прозрачно манипулировать этими словарями как объектами, так и как kwargs, и часто это очень удобно. С классами как?
* На каждое сочетание частей исходных данных классов не наберешься. Я к тому, что разных вариантов нетипизированных словарей у вас может быть очень много(в том числе, data driven), и вам совсем не захочется их все как-то именовать.
* #protaskivanie
Я свои словари разбираю только, если мне нужна полиморфная иерархия классов. И то, я постараюсь словари в поля классов не разбирать, а положить одним словарем все.
Более того, разные подсистемы у меня общаются чаще словарями, чем классами, и я имею гарантию, что ничего, кроме данных, между подсистемами не просачивается.
(Если подумать, то у меня в коде на Python сильно больше словарей и функций, чем классов с методами)
Ну и такое, философское, замечание - вот так вот отказываться от словарей в Python, это как в Lisp от списков.
https://lobste.rs/s/gzemqn/don_t_let_dicts_spoil_your_code
Тут вот коллега убеждает всех, что не надо использовать словари в питоне для взаимодействия разныхслоев в коде. Пишет, что надо все преобразовывать в классы, и как можно раньше переводить ваши данные из json-like словарей в эти иерархии.
Я, конечно, читая все это, чуть не подавился, и хочу сказать, что, наоборот, нужно как можно дольше использовать куски сырых данных, не оборачивая их в промежуточное представление.
Сначала я несколько переформулирую задачу, надеюсь, что без https://en.wikipedia.org/wiki/Straw_man
Учем, что в Python (очень упрощенно, но достаточно для моих нужд)
a.b := a.__dict__['b']Поэтому я переформулирую исходный тезис автора статьи так - между данными и внтренними структурами программы неплохо бы завести еще один слой словарей, который бы абстрагировал слой данных от слоя внутреннего представления.
Плюсы этого подхода понятны - иногда(pun intended) не нужно менять внутреннее представление при изменении формата данных и протоколов.
Все остальный перечисленные плюсы в статье или малополезны, или так же могут быть сделаны и для dict.
Минусов же - вагон и маленькая тележка:
* Если вам не повезло, то нужно менять и промежуточное представление, и внутренние данные. Это все усложняет, и вы можете стать заложником такого разделения при попытке сменить формат данных.
* Люди, на самом деле, плохо предсказывают будущее, и не везти вам будет сильно чаще, чем хотелось бы.
* В случае использования сырых данных абстракции не текут, а в случае вот такого промежуточного представления, у вас на схеме уже 2 места, где они могут начать протекать. Ну, типа, одного из ваших сотрудников все это заебет, и он положит в полюшко датакласса какую-то аццкую смесь из словарей с внешними данными, и промежуточного представления, а вам потом это рефакторить.
* Performance. На этом не останавливаюсь, и так все понятно. Тут мне могут возразить про туплы и датаклассы - на разборе много потеряете.
* Достаточно subtle вещь, но IMHO важная. В Python dict везде, вы можете очень прозрачно манипулировать этими словарями как объектами, так и как kwargs, и часто это очень удобно. С классами как?
**a.__dict__['b']? Ну такое.
* На каждое сочетание частей исходных данных классов не наберешься. Я к тому, что разных вариантов нетипизированных словарей у вас может быть очень много(в том числе, data driven), и вам совсем не захочется их все как-то именовать.
* #protaskivanie
Я свои словари разбираю только, если мне нужна полиморфная иерархия классов. И то, я постараюсь словари в поля классов не разбирать, а положить одним словарем все.
Более того, разные подсистемы у меня общаются чаще словарями, чем классами, и я имею гарантию, что ничего, кроме данных, между подсистемами не просачивается.
(Если подумать, то у меня в коде на Python сильно больше словарей и функций, чем классов с методами)
Ну и такое, философское, замечание - вот так вот отказываться от словарей в Python, это как в Lisp от списков.
Roman Imankulov
Don't let dicts spoil your code
I restricted the use of dicts in my code to make it easier to follow and maintain. Here's my explanation of the benefits and advice on what you can use instead. Bonus point: what to do with all the legacy code when there's no time to eradicate all the dicts.
👍11🤔4👎2
2 новости, одним блоком, потому что, они, по сути, про одно и то же.
https://www.opennet.ru/opennews/art.shtml?num=57414
Люди запускают ядро Linux в виртуалке во FreeBSD, чтобы использовать драйвер для сетевой карты. Звучит всрато? По мне так огонь - это еще один подход к снаряду "драйвера в userspace".
https://www.opennet.ru/opennews/art.shtml?num=57412
"Применение асинхронной буферизированной записи на базе io_uring до 80 раз снизило задержки в XFS"
Как по мне, обе этих новости про то, что монолитные OS уже отжили свое, потому что современные технологии и практики программирования приводят к тому, что не нужно делать context switch на каждый чих, и выселение сервисов OS в user space не бьет больно по throughput и latency.
Уже писал, и еще раз напишу, что будущее осестроения - это ядра, которые будут заниматься установкой соединений между сервисами, и поддержкой вот таких вот uring между сервисами в user space.
https://www.opennet.ru/opennews/art.shtml?num=57414
Люди запускают ядро Linux в виртуалке во FreeBSD, чтобы использовать драйвер для сетевой карты. Звучит всрато? По мне так огонь - это еще один подход к снаряду "драйвера в userspace".
https://www.opennet.ru/opennews/art.shtml?num=57412
"Применение асинхронной буферизированной записи на базе io_uring до 80 раз снизило задержки в XFS"
Как по мне, обе этих новости про то, что монолитные OS уже отжили свое, потому что современные технологии и практики программирования приводят к тому, что не нужно делать context switch на каждый чих, и выселение сервисов OS в user space не бьет больно по throughput и latency.
Уже писал, и еще раз напишу, что будущее осестроения - это ядра, которые будут заниматься установкой соединений между сервисами, и поддержкой вот таких вот uring между сервисами в user space.
www.opennet.ru
Wifibox 0.10 - окружение для использования WiFi-драйверов Linux во FreeBSD
Доступен выпуск проекта Wifibox 0.10, нацеленного на решение проблемы с использованием во FreeBSD беспроводных адаптеров, для которых отсутствуют необходимые драйверы. Работа проблемных для FreeBSD адаптеров обеспечивается через запуск гостевой системы с…
👍7🔥4❤1
https://www.opennet.ru/opennews/art.shtml?num=57415
Уязвимость в минорной версии openssl. Я подчеркну "в минорной", потому что хочу рассказать про следующий забавный факт.
Примерно в 20 - 30% случаев за каждым релизом какого-то OSS софта, через день-два следует следующий релиз с исправлениями багов.
Тут можно понимающе усмехнуться, и сказать "ну, на то и минорные релизы, чтобы фиксить проблемы мажорных".
Но, дело в том, что это нифига не так - фиксы следуют один за одним именно в минорных релизах. За последнюю неделю:
neovim 0.7.[1, 2]
popt 1.[17, 18, 19?(непонятно, был он, или нет)]
libidn 1.[40, 41]
телега 4.0.[1, 2]
+ топикстартер.
И это только то, что я вспомнил из головы.
К чему это я все?
Не работает этот ваш #semver, хреначат баги в прод без тестов почем зря.
Хочется уже какое-то правило "обновляться на новый код минимум через 2 дня после релиза, если не было следующего". К сожалению, с существующими инструментами это не очень удобно, придется где-то хранить свой state.
Уязвимость в минорной версии openssl. Я подчеркну "в минорной", потому что хочу рассказать про следующий забавный факт.
Примерно в 20 - 30% случаев за каждым релизом какого-то OSS софта, через день-два следует следующий релиз с исправлениями багов.
Тут можно понимающе усмехнуться, и сказать "ну, на то и минорные релизы, чтобы фиксить проблемы мажорных".
Но, дело в том, что это нифига не так - фиксы следуют один за одним именно в минорных релизах. За последнюю неделю:
neovim 0.7.[1, 2]
popt 1.[17, 18, 19?(непонятно, был он, или нет)]
libidn 1.[40, 41]
телега 4.0.[1, 2]
+ топикстартер.
И это только то, что я вспомнил из головы.
К чему это я все?
Не работает этот ваш #semver, хреначат баги в прод без тестов почем зря.
Хочется уже какое-то правило "обновляться на новый код минимум через 2 дня после релиза, если не было следующего". К сожалению, с существующими инструментами это не очень удобно, придется где-то хранить свой state.
www.opennet.ru
Уязвимость в OpenSSL 3.0.4, приводящая к удалённому повреждению памяти процесса
В криптографической библиотеке OpenSSL выявлена уязвимость (CVE-2022-2274), при помощи которой удалённый атакующий может повредить содержимое памяти процесса через отправку специальной оформленных данных в момент установки TLS-соединения. Пока не ясно, может…
🔥4🤔2😢1
https://tass.ru/ekonomika/15055267 #wot
Развитие событий по делу читов для World Of Tanks.
Что я могу сказать? Я не эксперт в юридических словах, но считал, и продолжаю считать, что тут нет "состава преступления".
Есть "unfair" эксплуатация дыр, это когда ты крадешь номер кредитки в чате игры, и есть "fair":
* автоматизация фарминга
* высокочастотный трейдинг(не про игры, но так-то тоже эксплуатация уязвимости, только уважаемая)
* AI для прицеливания(не могу найти ссылку на девайс, который прямо в hdmi потоке рисует рамочки для прицеливания в наборе игр)
Чем отличается официальный донат в играх от вот этого? Только тем, кому идут деньги. И в том, и в том случае игрок получает преимущество в игре за деньги.
Турниры? Ну come on, это мелкая и решаемая проблема, начиная от очных турниров, до полной записи на камеру действий игрока, монитора, и так далее.
UPD: в комментах мне пишут, что это нарушение ToS. Это классическая дилемма - отвечает ли производитель ножей за противоправное их применение. Я считаю, что не отвечает.
Развитие событий по делу читов для World Of Tanks.
Что я могу сказать? Я не эксперт в юридических словах, но считал, и продолжаю считать, что тут нет "состава преступления".
Есть "unfair" эксплуатация дыр, это когда ты крадешь номер кредитки в чате игры, и есть "fair":
* автоматизация фарминга
* высокочастотный трейдинг(не про игры, но так-то тоже эксплуатация уязвимости, только уважаемая)
* AI для прицеливания(не могу найти ссылку на девайс, который прямо в hdmi потоке рисует рамочки для прицеливания в наборе игр)
Чем отличается официальный донат в играх от вот этого? Только тем, кому идут деньги. И в том, и в том случае игрок получает преимущество в игре за деньги.
Турниры? Ну come on, это мелкая и решаемая проблема, начиная от очных турниров, до полной записи на камеру действий игрока, монитора, и так далее.
UPD: в комментах мне пишут, что это нарушение ToS. Это классическая дилемма - отвечает ли производитель ножей за противоправное их применение. Я считаю, что не отвечает.
TACC
Первый в России обвиняемый в продаже читов для World of Tanks признал вину
Ущерб разработчику игр от действий обвиняемого следствие оценило в 670 млн рублей
👍6😱1
Список зависимостей у библиотеки или программы - очень мощная вещь, по ним, например, можно понять, что cmake через curl лезет в сеть, а это очевидные ай-ай-ай.
Вот так, анализируя кольцевые зависимости freetype + harfbuzz + cairo + pango, я начал понимать, что мои представления о рендеринге шрифтов в Linux очень далеки от реальности.
#freetype #harfbuzz #fontconfig
Раньше я думал, что все очень просто: freetype загружает файл со шрифтом, рендерит его в буффер по заданным размерам, а дальше приложение битблитит эти буфера на канву, почем зря.
Потом в эту модель добавился harfbuzz, как загрузчик opentype шрифтов. Модель изменилась так - или freetype, или harfbuzz рендерят в буффер глифы, дальше приложение битблитает их на канву.
(битблитать недостаточно, https://github.com/revery-ui/revery/issues/108)
Эта стройная модель разбивается о:
* Настройки антиалиасинга живут во freetype. Всем известны infinality freetype, и патченый freetype в arch. Как это все соединяетсяс предыдущей моделью? Как антиалиасятся глифы от harfbuzz?
* subpixel rendering в freetype/harfbuzz? Один и тот же код, или разный, с разными настройками?
* Как мы рендерим цветные шрифты и шрифты под углом? Вряд ли мы поворачиваем глифы, кажется гораздо более естественным поворачивать outlines. Тогда пайплайн такой - freetype/harfbuzz готовят outlines, кто-то отдельный их рендерит. Но, если так, то конечным рендерингом должна заниматься какая-то отдельно стоящая векторная библиотека, типа cairo? А откуда она берет настройки антиалиасинга из freetype, и по каким алгоритмам вообще их имплементирует? А как мы рендерим/поворачиваем subhinted glyphs?
А как в обе этих модели вписываются хинты для взаиморасположения символов? В модель с outlines довольно понятно, а вот в bitmap модель не очень.
Причем, достаточно понятно, что есть приложения, которые берут готовые глифы от freetype, и есть те, которые используют outlines.
А если cairo для рисования outlines, то что в QT?
(Я попрошу заметить, что я еще даже не начал писать про подобные неоднозначности в text shape/layout, которыми занимаются harfbuzz и pango, и невесть кто еще)
Да, да, все это я начал понимать, раскапывая списки зависимостей разных там библиотек :) До этого мне правильные вопросы не приходили в голову.
Коллеги, помогите девочке Даше не сойти с ума, и скажите, как оно все на самом деле.
Ну и главный вопрос - чо круче-то, open type или true type шрифты? Как убедиться, что используется ot вариант, и что рендеринг идет правильным путем?
Вот так, анализируя кольцевые зависимости freetype + harfbuzz + cairo + pango, я начал понимать, что мои представления о рендеринге шрифтов в Linux очень далеки от реальности.
#freetype #harfbuzz #fontconfig
Раньше я думал, что все очень просто: freetype загружает файл со шрифтом, рендерит его в буффер по заданным размерам, а дальше приложение битблитит эти буфера на канву, почем зря.
Потом в эту модель добавился harfbuzz, как загрузчик opentype шрифтов. Модель изменилась так - или freetype, или harfbuzz рендерят в буффер глифы, дальше приложение битблитает их на канву.
(битблитать недостаточно, https://github.com/revery-ui/revery/issues/108)
Эта стройная модель разбивается о:
* Настройки антиалиасинга живут во freetype. Всем известны infinality freetype, и патченый freetype в arch. Как это все соединяетсяс предыдущей моделью? Как антиалиасятся глифы от harfbuzz?
* subpixel rendering в freetype/harfbuzz? Один и тот же код, или разный, с разными настройками?
* Как мы рендерим цветные шрифты и шрифты под углом? Вряд ли мы поворачиваем глифы, кажется гораздо более естественным поворачивать outlines. Тогда пайплайн такой - freetype/harfbuzz готовят outlines, кто-то отдельный их рендерит. Но, если так, то конечным рендерингом должна заниматься какая-то отдельно стоящая векторная библиотека, типа cairo? А откуда она берет настройки антиалиасинга из freetype, и по каким алгоритмам вообще их имплементирует? А как мы рендерим/поворачиваем subhinted glyphs?
А как в обе этих модели вписываются хинты для взаиморасположения символов? В модель с outlines довольно понятно, а вот в bitmap модель не очень.
Причем, достаточно понятно, что есть приложения, которые берут готовые глифы от freetype, и есть те, которые используют outlines.
А если cairo для рисования outlines, то что в QT?
(Я попрошу заметить, что я еще даже не начал писать про подобные неоднозначности в text shape/layout, которыми занимаются harfbuzz и pango, и невесть кто еще)
Да, да, все это я начал понимать, раскапывая списки зависимостей разных там библиотек :) До этого мне правильные вопросы не приходили в голову.
Коллеги, помогите девочке Даше не сойти с ума, и скажите, как оно все на самом деле.
Ну и главный вопрос - чо круче-то, open type или true type шрифты? Как убедиться, что используется ot вариант, и что рендеринг идет правильным путем?
GitHub
Text Rendering / Clarity: Implement correct gamma correction · Issue #108 · revery-ui/revery
Issue: The font rendering is not as clear as it could be on low-dpi displays. One contributing factor is that we are not appropriately handling gamma color space. When we render a glyph, freetype g...
🤯6👍2
Как вы уже поняли, я умею себе находить друзей в интернете. #vkquake
Вот, только что, видимо, закрыл себе все дороги в Tesla, повздорил с автором vkQuake - https://github.com/Novum/vkQuake/issues/500 https://www.mobygames.com/developer/sheet/view/developerId,567237/
Пришел с багой, что у меня его программа с новой версией начала падать.
Один из коммитеров(не оунер проекта) подсказали мне, что дело может быть в размере стека.
И, да, действительно, автор кода не очень бережно обращался со стеком, и ему перестало хватать дефолтного стека в musl.
Я посоветовал ему, "как perf инженер perf инженеру", чтобы он выделил пертредный буфер нужного размера, и использовал его вместо стека.
Автор кода:
* сообщил мне, что я stupid fool(потерто)
* что он 7 лет оттрубил в id Software, и что он-то уж точно знает, как надо. Я, конечно, сообщил ему в ответ, что 20 лет занимаюсь перфом сложного многопоточного софта, что разозлило его еще больше.
* Параллельно он попытался втюхать мне, что выделение в куче time unbounded, а на стеке - нет. Я, конечно, не преминул рассказать ему про то, что стек выделен в virtual memory, и page fault в нем так же time unbounded. И что предложенный memory pool так же решает эту проблему.
На все на это он ответил мне, что он не идиот, потер все мои сообщения, анально огородил тред, и вкоммитил какой-то недофикс, который будет падать на краевых случаях.
Всем новоприбывшим, если вам кажется все это странным - я повторю, что не имею задачи подружиться с каждым долбоебом из upstream, у них там много интересных фантазий про разработку софта, но я-то при чем?
Если автор upstream вменяемый, я с удовольствием рассказываю и помогаю в решении возникших проблем, а если вот такой невменоз - ну так он обойдется и без моих патчей, а я у себя их подержу.
Вот, только что, видимо, закрыл себе все дороги в Tesla, повздорил с автором vkQuake - https://github.com/Novum/vkQuake/issues/500 https://www.mobygames.com/developer/sheet/view/developerId,567237/
Пришел с багой, что у меня его программа с новой версией начала падать.
Один из коммитеров(не оунер проекта) подсказали мне, что дело может быть в размере стека.
И, да, действительно, автор кода не очень бережно обращался со стеком, и ему перестало хватать дефолтного стека в musl.
Я посоветовал ему, "как perf инженер perf инженеру", чтобы он выделил пертредный буфер нужного размера, и использовал его вместо стека.
Автор кода:
* сообщил мне, что я stupid fool(потерто)
* что он 7 лет оттрубил в id Software, и что он-то уж точно знает, как надо. Я, конечно, сообщил ему в ответ, что 20 лет занимаюсь перфом сложного многопоточного софта, что разозлило его еще больше.
* Параллельно он попытался втюхать мне, что выделение в куче time unbounded, а на стеке - нет. Я, конечно, не преминул рассказать ему про то, что стек выделен в virtual memory, и page fault в нем так же time unbounded. И что предложенный memory pool так же решает эту проблему.
На все на это он ответил мне, что он не идиот, потер все мои сообщения, анально огородил тред, и вкоммитил какой-то недофикс, который будет падать на краевых случаях.
Всем новоприбывшим, если вам кажется все это странным - я повторю, что не имею задачи подружиться с каждым долбоебом из upstream, у них там много интересных фантазий про разработку софта, но я-то при чем?
Если автор upstream вменяемый, я с удовольствием рассказываю и помогаю в решении возникших проблем, а если вот такой невменоз - ну так он обойдется и без моих патчей, а я у себя их подержу.
GitHub
1.20.0 segfaults on start · Issue #500 · Novum/vkQuake
1.13.1 works as expected Starting program: /ix/store/OGQOZKexFOqVYUB9-bin-quake-1-vk-20/bin/vkquake Command line: /ix/store/OGQOZKexFOqVYUB9-bin-quake-1-vk-20/bin/vkquake Found SDL version 2.0.22 D...
🔥24👍11😁10💩1
commit -m "better"
Как вы уже поняли, я умею себе находить друзей в интернете. #vkquake Вот, только что, видимо, закрыл себе все дороги в Tesla, повздорил с автором vkQuake - https://github.com/Novum/vkQuake/issues/500 https://www.mobygames.com/developer/sheet/view/developerId…
Очень мило, у меня появился персональный фанклуб(кстати, далеко не первый, но про остальные как-нить в другой раз), пока там 1 какой-то странный чувак, который хочет предать меня публичному позору:
Я тут пару раз писал, что придерживаюсь очень правых взглядов, и любая модерация мне как кость в горле.
Модерировать я ничего не собираюсь, разве что, конкретную уголовщину, чувака забанил на сутки(уже вернул).
Так как я не публичная инфраструктурная площадка, забанить человека на сутки мне чем-то особо плохим не кажется.
Это ещё одно, что я хочу показать.В целом, пофиг, мало ли сумасшедших, вопрос исключительно в модерации.
Как ты поплывёшь и пойдёшь меня
тереть после своего позора
Я тут пару раз писал, что придерживаюсь очень правых взглядов, и любая модерация мне как кость в горле.
Модерировать я ничего не собираюсь, разве что, конкретную уголовщину, чувака забанил на сутки(уже вернул).
Так как я не публичная инфраструктурная площадка, забанить человека на сутки мне чем-то особо плохим не кажется.
👍14
У меня случилось продолжение историй про #googlesource и про #gitlab
Напомню, что речь идет про 2 следующих факта:
* системы контроля версий отдают нестабильные tgz с кодом, если речь идет про снепшот, который готовит сама система контроля версий, а не про файл, который зааплоадил, в виде релиза, мейнтейнер проекта.
* freedesktop пролюбили свою инсталляцию gitlab, и поднимали ее из праха.
Короче, я вчера сделал ix gc - это команда удалила все ненужное из системы, в том числе, все скачанные исходники.
И тут началось.
* из-за того, что freedesktop пролюбили кеш артефактов, и из-за проблемы нестабильности генерации tgz, у меня поехали хеши исходников, указанные в сборочных файлах
* пока я прописывал новые хеши, gitlab снова сломался, и начала вместо исходников присылать html с 502, который и закешировался вместо исходников. К такому меня не готовили, и я снова сделал ix gc
* После этого я нашел зеркала нужных мне исходников на github, и прописал их.
Лично меня бесят эти красноглазые пенсионеры, которые, в своей ненависти к MS(а как еще объяснить желание своей инфры в этом месте?) делают больно дистростроителям на пустом месте.
Не надо, не надо, не надо держать свою инфраструктуру там, где это возможно. Особенно если у вас один админ на 10 минут в неделю на этот проект.
github собаку съел на хранении исходников, у него девяток больше, чем букв в слове freedesktop.
Напомню, что речь идет про 2 следующих факта:
* системы контроля версий отдают нестабильные tgz с кодом, если речь идет про снепшот, который готовит сама система контроля версий, а не про файл, который зааплоадил, в виде релиза, мейнтейнер проекта.
* freedesktop пролюбили свою инсталляцию gitlab, и поднимали ее из праха.
Короче, я вчера сделал ix gc - это команда удалила все ненужное из системы, в том числе, все скачанные исходники.
И тут началось.
* из-за того, что freedesktop пролюбили кеш артефактов, и из-за проблемы нестабильности генерации tgz, у меня поехали хеши исходников, указанные в сборочных файлах
* пока я прописывал новые хеши, gitlab снова сломался, и начала вместо исходников присылать html с 502, который и закешировался вместо исходников. К такому меня не готовили, и я снова сделал ix gc
* После этого я нашел зеркала нужных мне исходников на github, и прописал их.
Лично меня бесят эти красноглазые пенсионеры, которые, в своей ненависти к MS(а как еще объяснить желание своей инфры в этом месте?) делают больно дистростроителям на пустом месте.
Не надо, не надо, не надо держать свою инфраструктуру там, где это возможно. Особенно если у вас один админ на 10 минут в неделю на этот проект.
github собаку съел на хранении исходников, у него девяток больше, чем букв в слове freedesktop.
😁13👍1👎1😱1
#gstreamer #plugins #gold
OSS, построенный на консалтинге - зло, так же как и OSS, основанный на продаже вендорам закрытых версий своего же OSS кода.
Пока за фичу кто-то не заплатит, хрен она появится в публичной репе, даже если будут желающие ее запилить просто так.
Вот, например, авторы gstreamer последние 15 лет всем рассказывают, как же динамически загружаемые плагины - это круто.
Но стоило появиться Хуавею, который покрутил пальцем у виска, сказал, что хочет все, как у белых людей, и дал денег, так gstreamer сразу переехал в монорепу, и запилил "почти" статическую сборку.
https://www.collabora.com/news-and-blog/news-and-events/generate-mininal-gstreamer-build-tailored-to-your-needs.html
Конечно, все это сделано максимально говенным способом, накрутили каких-то скриптов поверх meson https://github.com/GStreamer/gst-build/blob/master/scripts/generate_init_static_plugins.py, накостылили прокидывание настроек из основного meson файла в вспомогательные, и, самая мякотка - сказали, "а мы будем собирать все, что найдем, как обычно, а вы потом в отдельном файлике имплементируйте функцию, которая зарегистрирует все нужные вам плагины".
Понять по названию кодека, чо там за плагин ему нужен, я не знаю, как, поэтому у меня в epiphany до сих пор видосы не смотрятся, потому что это адовый итерационный процесс - пересобирать браузер, смотреть, чо ему дальше не хватает, и добавлять в эту фабрику.
Написал однажды, и напишу еще раз.
Самый лучший опенсорс - это опенсорс от больших компаний, который:
* решает побочную для этих компаний задачу, поэтому им нет смысла вот так вот мелко гадить, типа chromium, protobuf, tensorflow, llvm, catboost, etc
* который делается по нормальным корпоративным лекалам, с тестами и KPI
OSS, построенный на консалтинге - зло, так же как и OSS, основанный на продаже вендорам закрытых версий своего же OSS кода.
Пока за фичу кто-то не заплатит, хрен она появится в публичной репе, даже если будут желающие ее запилить просто так.
Вот, например, авторы gstreamer последние 15 лет всем рассказывают, как же динамически загружаемые плагины - это круто.
Но стоило появиться Хуавею, который покрутил пальцем у виска, сказал, что хочет все, как у белых людей, и дал денег, так gstreamer сразу переехал в монорепу, и запилил "почти" статическую сборку.
https://www.collabora.com/news-and-blog/news-and-events/generate-mininal-gstreamer-build-tailored-to-your-needs.html
Конечно, все это сделано максимально говенным способом, накрутили каких-то скриптов поверх meson https://github.com/GStreamer/gst-build/blob/master/scripts/generate_init_static_plugins.py, накостылили прокидывание настроек из основного meson файла в вспомогательные, и, самая мякотка - сказали, "а мы будем собирать все, что найдем, как обычно, а вы потом в отдельном файлике имплементируйте функцию, которая зарегистрирует все нужные вам плагины".
Понять по названию кодека, чо там за плагин ему нужен, я не знаю, как, поэтому у меня в epiphany до сих пор видосы не смотрятся, потому что это адовый итерационный процесс - пересобирать браузер, смотреть, чо ему дальше не хватает, и добавлять в эту фабрику.
Написал однажды, и напишу еще раз.
Самый лучший опенсорс - это опенсорс от больших компаний, который:
* решает побочную для этих компаний задачу, поэтому им нет смысла вот так вот мелко гадить, типа chromium, protobuf, tensorflow, llvm, catboost, etc
* который делается по нормальным корпоративным лекалам, с тестами и KPI
Collabora | Open Source Consulting
Generate a minimal GStreamer build, tailored to your needs
Thanks to a partnership with Huawei, you can now use gst-build to generate a minimal GStreamer build, tailored to a specific application, or set of applications. Here's how.
🔥7👍3👎1🤔1
commit -m "better"
Как вы уже поняли, я умею себе находить друзей в интернете. #vkquake Вот, только что, видимо, закрыл себе все дороги в Tesla, повздорил с автором vkQuake - https://github.com/Novum/vkQuake/issues/500 https://www.mobygames.com/developer/sheet/view/developerId…
Вышел новый релиз yaQuake, с фиксом падения под musl, как написано в changelog: #vkquake
https://github.com/Novum/vkQuake/releases/tag/1.20.1
Видимо, коллегу в idSoftware магии про стек научили, а вот тестировать код - нет.
Завел issue - https://github.com/Novum/vkQuake/issues/508
https://github.com/Novum/vkQuake/releases/tag/1.20.1
========= Quake Initialized =========Оно, конечно, продолжает падать, всегда, а не как я ранее думал(в некоторых частных случаях).
execing quake.rc
execing default.cfg
execing config.cfg
couldn't exec autoexec.cfg
3 demo(s) in loop
Playing demo from demo1.dem.
the Necropolis
Using protocol 15
Segmentation fault
Видимо, коллегу в idSoftware магии про стек научили, а вот тестировать код - нет.
Завел issue - https://github.com/Novum/vkQuake/issues/508
GitHub
Release vkQuake 1.20.1 Binaries · Novum/vkQuake
Fix a bug that could cause random lockups with 1.20.0
Fix screenshot crash
Fix corruption if new vkquake.pak is missing or old one is still in place
Windows binaries require the Microsoft Visual C...
Fix screenshot crash
Fix corruption if new vkquake.pak is missing or old one is still in place
Windows binaries require the Microsoft Visual C...
😁17👏1
commit -m "better"
У меня случилось продолжение историй про #googlesource и про #gitlab Напомню, что речь идет про 2 следующих факта: * системы контроля версий отдают нестабильные tgz с кодом, если речь идет про снепшот, который готовит сама система контроля версий, а не про…
https://sfconservancy.org/GiveUpGitHub/
https://news.ycombinator.com/item?id=31932250
https://sfconservancy.org/blog/2022/jun/30/give-up-github-launch/
https://lwn.net/Articles/899530
Стоило мне всех позвать на github, как SFC начало всех призывать с гитхаба съехать. #sfc
Говорят, что не будут принимать под свое крыло проекты, которые живут на githab, или не собираются с него мигрировать(что они делают - я не понимаю, и делают что-то вообще, кроме судов - неизвестно).
Они - левые упыри.
https://sfconservancy.org/GiveUpGitHub/
Вы мне можете сколько угодно рассказывать, что мелким шрифтом потом все более развернуто, но первая фраза БОЛДОМ из списка аргументов - "Copilot is a for-profit product".
Жадные MS денег заработали, а в SFC не занесли.
Обычная левацкая подмена понятий - они защищают не мою свободу, и не свободу оунеров проектов на github, они нападают на MS. Как обычно для леваков, их аргументация более эмоциональная, чем техническая, почитайте:
"GitHub differs from most of its peers in the FOSS project hosting industry, as GitHub does not even offer any self-hosting FOSS option. Their entire codebase is secret." - ну и чо? В git content addressable storage, там хеши поедут, если они что-нить сделают не так. А в остальном - что такого в проприетарности? Это, в конце-концов, сервис, а не программа.
"GitHub is wholly owned by Microsoft, a company whose executives have historically repeatedly attacked copyleft licensing" - этот аргумент, на мой взгляд, вообще леденящий душу пиздец. Смотреть надо на то, что происходит сейчас.
Ну и такое у меня соображение - SFC, когда чует запах денег, судится. Если не судится - значит, шансов нет.
Еще я не понял, что там с правом на цитирование - типа, совсем небольшой блок кода не считается derived work. Это разве не подходит под copilot?
https://news.ycombinator.com/item?id=31932250
https://sfconservancy.org/blog/2022/jun/30/give-up-github-launch/
https://lwn.net/Articles/899530
Стоило мне всех позвать на github, как SFC начало всех призывать с гитхаба съехать. #sfc
Говорят, что не будут принимать под свое крыло проекты, которые живут на githab, или не собираются с него мигрировать(что они делают - я не понимаю, и делают что-то вообще, кроме судов - неизвестно).
Они - левые упыри.
https://sfconservancy.org/GiveUpGitHub/
Вы мне можете сколько угодно рассказывать, что мелким шрифтом потом все более развернуто, но первая фраза БОЛДОМ из списка аргументов - "Copilot is a for-profit product".
Жадные MS денег заработали, а в SFC не занесли.
Обычная левацкая подмена понятий - они защищают не мою свободу, и не свободу оунеров проектов на github, они нападают на MS. Как обычно для леваков, их аргументация более эмоциональная, чем техническая, почитайте:
"GitHub differs from most of its peers in the FOSS project hosting industry, as GitHub does not even offer any self-hosting FOSS option. Their entire codebase is secret." - ну и чо? В git content addressable storage, там хеши поедут, если они что-нить сделают не так. А в остальном - что такого в проприетарности? Это, в конце-концов, сервис, а не программа.
"GitHub is wholly owned by Microsoft, a company whose executives have historically repeatedly attacked copyleft licensing" - этот аргумент, на мой взгляд, вообще леденящий душу пиздец. Смотреть надо на то, что происходит сейчас.
Ну и такое у меня соображение - SFC, когда чует запах денег, судится. Если не судится - значит, шансов нет.
Еще я не понял, что там с правом на цитирование - типа, совсем небольшой блок кода не считается derived work. Это разве не подходит под copilot?
sfconservancy.org
Give Up GitHub - Software Freedom Conservancy
The Software Freedom Conservancy provides a non-profit home and services to Free, Libre and Open Source Software (FLOSS) projects.
🔥5👍2🤔2👎1