https://www.opennet.ru/opennews/art.shtml?num=56152
Вышла новая версия #Nuitka. Мне она пока больше кажется хайпом - решает ту же задачу, что и cython, делает это пока хуже, и местами очень странно(чего стоит тот факт, что ее выхлоп - не просто .c файл, а какая-та хрень, требующая SCons для сборки).
———
LLVM Weekly:
https://reviews.llvm.org/D112816 - "rename option -name-whitelist to -name-allowlist Needs ReviewPublic", да скока можно-то.
https://simonbyrne.github.io/notes/fastmath/ - "friends don't let friends use fast-math"
———
https://www.opennet.ru/opennews/art.shtml?num=56167 #npm
"Компания GitHub раскрыла информацию о двух инцидентах в инфраструктуре репозитория пакетов NPM. 2 ноября сторонние исследователи безопасности (Kajetan Grzybowski и Maciej Piechota) в рамках программы Bug Bounty сообщили о наличии в репозитории NPM уязвимости, позволяющей опубликовать новую версию любого пакета, используя для этого свою учётную запись, не авторизированную для выполнения подобных обновлений."
Я вот все собираюсь написать, почему PyPI(и NPM заодно) - это зло с точки зрения безопасности и воспроизводимости сборки. Если совсем коротко - потому что это лишний шаг на этапе между source control tool и конечным tgz с артефактом, на котором злоумышленник может непрозрачно поменять код. По той же причине я не советую использовать ссылки на релизы в github(их готовят люди), а использовать ссылки на теги(их готовит сам github):
https://github.com/PhilipHazel/pcre2/releases/download/pcre2-10.39/pcre2-10.39.tar.gz vs https://github.com/PhilipHazel/pcre2/archive/refs/tags/pcre2-10.39.tar.gz (сравните эти 2 файла, они разные)
Вышла новая версия #Nuitka. Мне она пока больше кажется хайпом - решает ту же задачу, что и cython, делает это пока хуже, и местами очень странно(чего стоит тот факт, что ее выхлоп - не просто .c файл, а какая-та хрень, требующая SCons для сборки).
———
LLVM Weekly:
https://reviews.llvm.org/D112816 - "rename option -name-whitelist to -name-allowlist Needs ReviewPublic", да скока можно-то.
https://simonbyrne.github.io/notes/fastmath/ - "friends don't let friends use fast-math"
———
https://www.opennet.ru/opennews/art.shtml?num=56167 #npm
"Компания GitHub раскрыла информацию о двух инцидентах в инфраструктуре репозитория пакетов NPM. 2 ноября сторонние исследователи безопасности (Kajetan Grzybowski и Maciej Piechota) в рамках программы Bug Bounty сообщили о наличии в репозитории NPM уязвимости, позволяющей опубликовать новую версию любого пакета, используя для этого свою учётную запись, не авторизированную для выполнения подобных обновлений."
Я вот все собираюсь написать, почему PyPI(и NPM заодно) - это зло с точки зрения безопасности и воспроизводимости сборки. Если совсем коротко - потому что это лишний шаг на этапе между source control tool и конечным tgz с артефактом, на котором злоумышленник может непрозрачно поменять код. По той же причине я не советую использовать ссылки на релизы в github(их готовят люди), а использовать ссылки на теги(их готовит сам github):
https://github.com/PhilipHazel/pcre2/releases/download/pcre2-10.39/pcre2-10.39.tar.gz vs https://github.com/PhilipHazel/pcre2/archive/refs/tags/pcre2-10.39.tar.gz (сравните эти 2 файла, они разные)
www.opennet.ru
Выпуск Nuitka 0.6.17, компилятора для языка Python
Доступен выпуск проекта Nuitka 0.6.17, развивающего компилятор для трансляции скриптов на языке Python в представление на языке C++, которое затем можно скомпилировать в исполняемый файл, использующий libpython для обеспечения максимальной совместимости с…
👍1
Я тут задумался, что же я получу, добавив поддержку Rust в Mix. Читал awesome rust, понял, что получу три полезные command line тулзы, и Alacritty. Негусто. Возможно, я поторопился с выводами, что Rust скоро заменит С++ :) Пока на Rust пилят, в основном, http server, и все для этого необходимое(async io, ssl, etc).
В связи с этим мне вспомнился текст(не могу его найти, если есть в загашнике - киньте ссылкой), в котором рассказывалось про то, почему разработчики любят новые языки программирования(скажем, Rust и Go), и не любят старые. Long story short:
1) В новых языках не написан http server*. Можно легко прославиться, написав его, и получив 10000 звезд на github.
2) На старых языках весь нужный код уже написан, простых задач не осталось, остались только сложные.
Короче, это все про низковисящие фрукты, и про любовь человекоподобных обезьянок к ним, ага.
* - http server можно заменить на что угодно, типа, "json parser", "grpc client/server", whatever.
———
https://www.opennet.ru/opennews/art.shtml?num=56169
"Напомним, что атаки класса RowHammer позволяют исказить содержимое отдельных битов памяти путём цикличного чтения данных из соседних ячеек памяти. Так как память DRAM представляет собой двухмерный массив ячеек, каждая из которых состоит из конденсатора и транзистора, выполнение непрерывного чтения одной и той же области памяти приводит к флуктуации напряжения и аномалиям, вызывающим небольшую потерю заряда соседних ячеек. Если интенсивность чтения большая, то соседняя ячейка может потерять достаточно большой объём заряда и очередной цикл регенерации не успеет восстановить её первоначальное состояние, что приведёт к изменению значения сохранённых в ячейке данных."
https://www.realworldtech.com/forum/?threadid=198497&curpostid=198647 - а вот мысли Линуса, про ECC память. Коротко - во всем виновата Intel, с ее дурацкой политикой "ECC для серверов". А чо, как-то же надо продавать те же самые процы в 10 раз дороже.
Если бы не жадность Intel, такой класс атак был бы невозможен.
———
https://blog.unity.com/technology/debugging-memory-corruption-who-the-hell-writes-2-into-my-stack-2
Совершенно потрясный текст про одну историю отладки. Вот перепишут все на Rust - где такое читать-то???
В связи с этим мне вспомнился текст(не могу его найти, если есть в загашнике - киньте ссылкой), в котором рассказывалось про то, почему разработчики любят новые языки программирования(скажем, Rust и Go), и не любят старые. Long story short:
1) В новых языках не написан http server*. Можно легко прославиться, написав его, и получив 10000 звезд на github.
2) На старых языках весь нужный код уже написан, простых задач не осталось, остались только сложные.
Короче, это все про низковисящие фрукты, и про любовь человекоподобных обезьянок к ним, ага.
* - http server можно заменить на что угодно, типа, "json parser", "grpc client/server", whatever.
———
https://www.opennet.ru/opennews/art.shtml?num=56169
"Напомним, что атаки класса RowHammer позволяют исказить содержимое отдельных битов памяти путём цикличного чтения данных из соседних ячеек памяти. Так как память DRAM представляет собой двухмерный массив ячеек, каждая из которых состоит из конденсатора и транзистора, выполнение непрерывного чтения одной и той же области памяти приводит к флуктуации напряжения и аномалиям, вызывающим небольшую потерю заряда соседних ячеек. Если интенсивность чтения большая, то соседняя ячейка может потерять достаточно большой объём заряда и очередной цикл регенерации не успеет восстановить её первоначальное состояние, что приведёт к изменению значения сохранённых в ячейке данных."
https://www.realworldtech.com/forum/?threadid=198497&curpostid=198647 - а вот мысли Линуса, про ECC память. Коротко - во всем виновата Intel, с ее дурацкой политикой "ECC для серверов". А чо, как-то же надо продавать те же самые процы в 10 раз дороже.
Если бы не жадность Intel, такой класс атак был бы невозможен.
———
https://blog.unity.com/technology/debugging-memory-corruption-who-the-hell-writes-2-into-my-stack-2
Совершенно потрясный текст про одну историю отладки. Вот перепишут все на Rust - где такое читать-то???
www.opennet.ru
Blacksmith - новая атака на память DRAM и чипы DDR4
Группа исследователей из Швейцарской высшей технической школы Цюриха, Амстердамского свободного университета и компании Qualcomm опубликовали новый метод атаки класса RowHammer, позволяющий изменить содержимое отдельных битов динамической оперативной памяти…
😁1
commit -m "better"
https://yandex.ru/company/press_releases/2021/superkompyuter-yandeksa-priznali-samym-moschnym-v-rossii Первое место в СНГ - это та еще специальная олимпиада, а вот то, что у Я в 3 раза больше установленных мощностей для обучения, чем у ближайшего конкурента…
https://www.opennet.ru/opennews/art.shtml?num=56164
"В качестве процессорной основы лидируют CPU Intel - 81.6% (два года назад было 94%), на втором месте AMD 14.6% (0.6% !!), на третьем IBM Power - 1.4% (было 2.8%). Отмечается активный прирост кластреов на базе процессоров AMD, например, все новые системы, вошедшие в Top15, оснащены CPU AMD."
Прямо тектонический сдвиг. Очень рад за AMD, и за индустрию.
"В качестве процессорной основы лидируют CPU Intel - 81.6% (два года назад было 94%), на втором месте AMD 14.6% (0.6% !!), на третьем IBM Power - 1.4% (было 2.8%). Отмечается активный прирост кластреов на базе процессоров AMD, например, все новые системы, вошедшие в Top15, оснащены CPU AMD."
Прямо тектонический сдвиг. Очень рад за AMD, и за индустрию.
www.opennet.ru
Опубликована 58 редакция рейтинга самых высокопроизводительных суперкомпьютеров
Опубликован 58-й выпуск рейтинга 500 самых высокопроизводительных компьютеров мира. В новом выпуске десятка лидеров не изменилась, но в рейтинг включено 4 новых российских кластера.
https://vc.ru/legal/320288-google-proigrala-appelyaciyu-po-dvum-iskam-cargrada-o-vosstanovlenii-dostupa-k-ego-youtube-kanalu
Безотносительно того, что из себя представляет этот канал(давайте на эту тему не троллить, не интересно), очень позитивная новость. Не устану повторять, что провайдер услуг не может быть модератором этих услуг. #law #provider #yeswecan
«Я не разделяю ваших убеждений, но готов умереть за ваше право их высказывать»
https://www.rbc.ru/technology_and_media/06/08/2021/610ca2fc9a79477988e66372 - надеюсь, что и до этой хрени общество когда-нибудь доберется.
———
https://octoverse.github.com/#improving-how-we-work
full remote уже тут.
https://devonzuegel.com/post/remote-work-will-break-the-us-monopoly-on-talent - а мне вот кажется, что наоборот. Теперь те, кто предпочитает сидеть на попе ровно, продолжат сидеть на попе, но работать будут на MANGA.
———
https://www.usenix.org/system/files/conference/osdi14/osdi14-paper-pillai.pdf
https://www.usenix.org/system/files/conference/osdi14/osdi14-paper-zheng_mai.pdf
2 старые(поэтому без нормального фаззинга, например), но все еще интересные статьи, про влияние особенностей FS и hard reset на базы данных.
Безотносительно того, что из себя представляет этот канал(давайте на эту тему не троллить, не интересно), очень позитивная новость. Не устану повторять, что провайдер услуг не может быть модератором этих услуг. #law #provider #yeswecan
«Я не разделяю ваших убеждений, но готов умереть за ваше право их высказывать»
https://www.rbc.ru/technology_and_media/06/08/2021/610ca2fc9a79477988e66372 - надеюсь, что и до этой хрени общество когда-нибудь доберется.
———
https://octoverse.github.com/#improving-how-we-work
full remote уже тут.
https://devonzuegel.com/post/remote-work-will-break-the-us-monopoly-on-talent - а мне вот кажется, что наоборот. Теперь те, кто предпочитает сидеть на попе ровно, продолжат сидеть на попе, но работать будут на MANGA.
———
https://www.usenix.org/system/files/conference/osdi14/osdi14-paper-pillai.pdf
https://www.usenix.org/system/files/conference/osdi14/osdi14-paper-zheng_mai.pdf
2 старые(поэтому без нормального фаззинга, например), но все еще интересные статьи, про влияние особенностей FS и hard reset на базы данных.
vc.ru
Google проиграла аппеляцию по двум искам «Царьграда» о восстановлении доступа к его YouTube-каналу — Право на vc.ru
Если компания не выполнит решение суда, ей может грозить уголовное дело и дополнительные штрафы.
commit -m "better"
Перечитал текст, и задумался - а имеет ли вообще модуль readline в Python право на существование? Очевидно, сам модуль должен быть под GPL3, раз он линкуется с libreadline. При этом, интерпретатор питона загружает его в runtime. Какой, в итоге, должна быть…
Вот, пожалуйста, ответ FSF:
"According to our license list, Python 2.0.1, 2.1.1 and newer versions
are released under a GPL-compatible license,
https://www.gnu.org/licenses/license-list.html#Python
It means that its code may be legally combined with code released
under the GNU GPL in one larger program,
https://www.gnu.org/licenses/gpl-faq.html#WhatDoesCompatMean
Now, if you ask about a program written in Python and using readline,
then it may be effectively linked to libreadline.so, in which case
the result qualifies as a combined work with libreadline.so, so it
can't be distributed unless under GPL-compatible terms,
https://www.gnu.org/licenses/gpl-faq.html#IfInterpreterIsGPL"
Напишу-ка я в python.org, что лучше, от греха подальше, поменять умолчание - а то как же использовать интерпретатор питона в проприетарных приложениях безопасно? Простой REPL же может импортировать readline.
"According to our license list, Python 2.0.1, 2.1.1 and newer versions
are released under a GPL-compatible license,
https://www.gnu.org/licenses/license-list.html#Python
It means that its code may be legally combined with code released
under the GNU GPL in one larger program,
https://www.gnu.org/licenses/gpl-faq.html#WhatDoesCompatMean
Now, if you ask about a program written in Python and using readline,
then it may be effectively linked to libreadline.so, in which case
the result qualifies as a combined work with libreadline.so, so it
can't be distributed unless under GPL-compatible terms,
https://www.gnu.org/licenses/gpl-faq.html#IfInterpreterIsGPL"
Напишу-ка я в python.org, что лучше, от греха подальше, поменять умолчание - а то как же использовать интерпретатор питона в проприетарных приложениях безопасно? Простой REPL же может импортировать readline.
Я тут хотел накатать большой текст, но решил, что много чести.
https://github.com/rust-lang/rust/issues/40174
"For those following various links to this issue, it is important to note that you can compile code using proc_macro to statically-linked musl binaries, BUT you need to cross-compile from a platform that does support dynamic linking."
Rustc и cargo пишут сумасшедшие и наркоманы. Для того, чтобы собирать статически слинкованные бинари в Rust, нужно делать кросс-компиляцию с динамически слинкованного rustc, потому что это требует подгрузки .so в rustc.
Rustc и cargo могут выполнять произвольный rust код в процессе сборки. Товарищи растоманы, удачи вам в интеграциях в большие монорепы с герметичной сборкой, она вам понадобится!
Long live Alacritty, hello Kitty!
———
https://lemire.me/blog/2021/11/18/converting-integers-to-fix-digit-representations-quickly/
Обзор оптимизаций int2string, от Daniel "наше всё" #Lemire. Удивлен, что он топит за табличную реализацию. Уверен, что он знает, что табличные реализации хорошо выглядят в микробенчмарках, когда таблицы в L1 cache, но хуже себя ведут в обычной жизни.
———
Мало кто знает, но в macOS решена проблема dll hell, в отличие от того же Linux. Решена она с помощью фичи Mach-O, под названием two level namespace - https://en.wikipedia.org/wiki/Mach-O Благодаря этой фиче, в конечный артефакт может быть влинковано произвольное число .so/.dylib, с произвольным пересечением по символам,
"When looking up symbols Mach-O uses a two-level namespace that encodes each symbol into an 'object/symbol name' pair that is then linearly searched for, first by the object and then the symbol name."
https://github.com/rust-lang/rust/issues/40174
"For those following various links to this issue, it is important to note that you can compile code using proc_macro to statically-linked musl binaries, BUT you need to cross-compile from a platform that does support dynamic linking."
Rustc и cargo пишут сумасшедшие и наркоманы. Для того, чтобы собирать статически слинкованные бинари в Rust, нужно делать кросс-компиляцию с динамически слинкованного rustc, потому что это требует подгрузки .so в rustc.
Rustc и cargo могут выполнять произвольный rust код в процессе сборки. Товарищи растоманы, удачи вам в интеграциях в большие монорепы с герметичной сборкой, она вам понадобится!
Long live Alacritty, hello Kitty!
———
https://lemire.me/blog/2021/11/18/converting-integers-to-fix-digit-representations-quickly/
Обзор оптимизаций int2string, от Daniel "наше всё" #Lemire. Удивлен, что он топит за табличную реализацию. Уверен, что он знает, что табличные реализации хорошо выглядят в микробенчмарках, когда таблицы в L1 cache, но хуже себя ведут в обычной жизни.
———
Мало кто знает, но в macOS решена проблема dll hell, в отличие от того же Linux. Решена она с помощью фичи Mach-O, под названием two level namespace - https://en.wikipedia.org/wiki/Mach-O Благодаря этой фиче, в конечный артефакт может быть влинковано произвольное число .so/.dylib, с произвольным пересечением по символам,
"When looking up symbols Mach-O uses a two-level namespace that encodes each symbol into an 'object/symbol name' pair that is then linearly searched for, first by the object and then the symbol name."
GitHub
Unable to find crate `proc_macro` on musl target · Issue #40174 · rust-lang/rust
Using procedural derive macros on musl seems to work just fine for the most of the cases, but there is one pitfall; in some cases like this dtolnay/proc-macro-hack#6 build fails because not only th...
Будни бутстрапа.
https://habr.com/ru/post/473228/ - сборка perl из нулевой ревизии. Спойлер - все хорошо, даже работает. Исторический прон(а, так же, пример "хорошего" Хабра).
https://github.com/heliocastro - qt/kde 1/2. Красивый, чистый код, а не то bloatware, во что все это превратилось позже.
https://github.com/adrian-thurston/ragel - бутстрапнуть рагель оказалось еще сложнее, чем bison, старые версии недоступны(разве что в Аркадии посмотреть), да и в них лежат сгенеренные фалы.
———
https://icu.unicode.org/
"Do you need ICU to work on EBCDIC platforms?
We need help: Someone needs to build ICU4C on a native-EBCDIC machine (z or i), fix C++ compiler issues (if any), fix issues related to an EBCDIC codepage as the system encoding, and test frequently (or add their machine into our CI). Please contact us via the icu-support mailing list. Otherwise we will remove the support code for non-ASCII-family platforms. Details: ICU-21672"
Разработчики ICU(поделие IBM, на минуточку) жалуются, что им негде проверить EBCDIC платформу. Это теперь сапожник без сапог?
———
https://www.opennet.ru/opennews/art.shtml?num=56190
Новость уже привычная, на этот раз зловредный код выложили в PyPI. Разве что, название одного из зловредов:
"yandex-yt (4183) - выводил сообщение о компрометации системы и перенаправлял на страницу с дополнительной информацией о дальнейших действиях, выдаваемой через nda.ya.ru (api.ya.cc)."
Это что, атака на нашу инфру?
checking for sbrk... yesБольше всего на свете я люблю confgiure скрипты, написанные для неизвестной версии sh. Интересно, что этот скрипт узнал про мою систему?
checking for working sbrk...
./configure: 18613: test: =: unexpected operator
checking for the existence of strsignal... yes
checking whether strstr works in linear time... no- а это пример "воспроизводимости" autoconf сборки. Что эта проверка вообще делает, я ХЗ, strstr должен или за M + N, или за M * N, что из них более linear, я не берусь гадать. Второй вариант точно линеен по каждому аргументу.
https://habr.com/ru/post/473228/ - сборка perl из нулевой ревизии. Спойлер - все хорошо, даже работает. Исторический прон(а, так же, пример "хорошего" Хабра).
https://github.com/heliocastro - qt/kde 1/2. Красивый, чистый код, а не то bloatware, во что все это превратилось позже.
https://github.com/adrian-thurston/ragel - бутстрапнуть рагель оказалось еще сложнее, чем bison, старые версии недоступны(разве что в Аркадии посмотреть), да и в них лежат сгенеренные фалы.
———
https://icu.unicode.org/
"Do you need ICU to work on EBCDIC platforms?
We need help: Someone needs to build ICU4C on a native-EBCDIC machine (z or i), fix C++ compiler issues (if any), fix issues related to an EBCDIC codepage as the system encoding, and test frequently (or add their machine into our CI). Please contact us via the icu-support mailing list. Otherwise we will remove the support code for non-ASCII-family platforms. Details: ICU-21672"
Разработчики ICU(поделие IBM, на минуточку) жалуются, что им негде проверить EBCDIC платформу. Это теперь сапожник без сапог?
———
https://www.opennet.ru/opennews/art.shtml?num=56190
Новость уже привычная, на этот раз зловредный код выложили в PyPI. Разве что, название одного из зловредов:
"yandex-yt (4183) - выводил сообщение о компрометации системы и перенаправлял на страницу с дополнительной информацией о дальнейших действиях, выдаваемой через nda.ya.ru (api.ya.cc)."
Это что, атака на нашу инфру?
Хабр
Собираем Perl прямиком из 1987 года
Прочитав новость "Код интерпретатора Perl официально перенесён на GitHub" на ресурсе LINUX.ORG.RU я решил взглянуть на репозиторий Perl 5, который теперь уже нах...
https://habr.com/ru/news/t/590129/
Qualcomm обещает догнать M1 к 23 году. В принципе, не вижу в этом проблем, к 23 году уже будет M3.
———
https://boilingsteam.com/i-love-arch-but-gnu-guix-is-my-new-distro/
Рассказ про то, почему подход Guix, Nix(и Mix!) к управлению пакетами - это хорошо и удобно.
———
http://www.slackware.com/changelog/current.php?cpu=x86_64
Второй RC на slackware 15. Новость ни о чем, просто я разностальгировался - мой первый Linux была slackware 8(вроде бы). Потом, пока я был студентом, были ASP/ALT(20 лет назад грамотно настроить поддержку кириллицы по всей системе было нетривиально(это сейчас везде utf8, а тогда, fellow kids, во всю существовало понятие "codepage", которую нужно было прописать примерно везде)), позже Fedora, потом Linux From Scratch, его я себе собирал раз 10. Потом я нашел работу, на LFS стало не хватать времени, и, через Gentoo, я пришел к Убунте. Потом я женился и завел детей, и Linux плавно перетек в MacOSX. Стоило развестись, как я тут же начал пилить свой дистрибутив Mix. С - стабильность!
———
https://blog.cloudflare.com/the-tale-of-a-single-register-value/?a - еще одна прекрасная история про debug, на этот раз tcp стека Linux.
Qualcomm обещает догнать M1 к 23 году. В принципе, не вижу в этом проблем, к 23 году уже будет M3.
———
https://boilingsteam.com/i-love-arch-but-gnu-guix-is-my-new-distro/
Рассказ про то, почему подход Guix, Nix(и Mix!) к управлению пакетами - это хорошо и удобно.
———
http://www.slackware.com/changelog/current.php?cpu=x86_64
Второй RC на slackware 15. Новость ни о чем, просто я разностальгировался - мой первый Linux была slackware 8(вроде бы). Потом, пока я был студентом, были ASP/ALT(20 лет назад грамотно настроить поддержку кириллицы по всей системе было нетривиально(это сейчас везде utf8, а тогда, fellow kids, во всю существовало понятие "codepage", которую нужно было прописать примерно везде)), позже Fedora, потом Linux From Scratch, его я себе собирал раз 10. Потом я нашел работу, на LFS стало не хватать времени, и, через Gentoo, я пришел к Убунте. Потом я женился и завел детей, и Linux плавно перетек в MacOSX. Стоило развестись, как я тут же начал пилить свой дистрибутив Mix. С - стабильность!
———
https://blog.cloudflare.com/the-tale-of-a-single-register-value/?a - еще одна прекрасная история про debug, на этот раз tcp стека Linux.
Хабр
Qualcomm обещает составить конкуренцию чипам Apple M1 к 2023 году
Qualcomm объявила о планах по разработке однокристальной системы нового поколения на базе ARM, которая сможет конкурировать с процессорами Apple М-серии. Новые чипы будут использоваться в ноутбуках и...
https://www.forbes.ru/tekhnologii/446495-seks-loz-i-gejming-cto-skryval-glava-activision-blizzard-i-sohranit-li-on-kompaniu
Я уже писал про Близзард, по сути мне добавить нечего.
"Например, в июле 2018 года бывшая сотрудница Sledgehammer Games — студии, принадлежащей Activision Blizzard, — сообщила об изнасиловании в отдел кадров и вышестоящему руководству, но никакой реакции не последовало."
У меня только один вопрос - почему не в полицию? У вас там уже настолько киберпанк, что корпорации - это и суд, и полиция?
———
2 ссылки про управление пакетами в npm. Спойлер - это леденящий душу п:%дец.
https://dustycloud.org/blog/javascript-packaging-dystopia/
https://drewdevault.com/2021/11/16/Cash-for-leftpad.html #npm
"I’ll pay you cold hard cash to delete your npm module. The exact amount will be determined on this equation, which is designed to offer higher payouts for modules with more downloads and fewer lines of code. A condition of this is that you must delete it without notice, so that everyone who depends on it wakes up to a broken build."
Я уже писал про Близзард, по сути мне добавить нечего.
"Например, в июле 2018 года бывшая сотрудница Sledgehammer Games — студии, принадлежащей Activision Blizzard, — сообщила об изнасиловании в отдел кадров и вышестоящему руководству, но никакой реакции не последовало."
У меня только один вопрос - почему не в полицию? У вас там уже настолько киберпанк, что корпорации - это и суд, и полиция?
———
2 ссылки про управление пакетами в npm. Спойлер - это леденящий душу п:%дец.
https://dustycloud.org/blog/javascript-packaging-dystopia/
https://drewdevault.com/2021/11/16/Cash-for-leftpad.html #npm
"I’ll pay you cold hard cash to delete your npm module. The exact amount will be determined on this equation, which is designed to offer higher payouts for modules with more downloads and fewer lines of code. A condition of this is that you must delete it without notice, so that everyone who depends on it wakes up to a broken build."
Forbes.ru
Секс, ложь и гейминг: что скрывал глава Activision Blizzard и сохранит ли он компанию
Сотрудники американского игрового гиганта Activision Blizzard второй раз за год устроили забастовку и требуют отставки CEO компании Бобби Котика. В этот раз их поддержали акционеры, а поводом для новой вспышки недовольства стало расследование Wall St
Срочно в номер, SJW отакуэ!
https://github.com/rust-lang/team/pull/671
"I'm a black latino from a 3rd world country, I hereby declare that I'm voluteering for being a mod."
https://www.reddit.com/r/rust/comments/qzme1z/moderation_team_resignation/
https://www.opennet.ru/opennews/art.shtml?num=56208
UPD: https://news.ycombinator.com/item?id=28515306
"As for Ashley's personal character... before she worked for Rust, she worked for npm. While she was working there, she tried to falsely accuse Rod Vagg because she wanted to kick him out of npm. Thankfully she failed, and after she failed she quit npm:
https://thenewstack.io/node-js-forked-complaints-repeated-ha...
https://medium.com/@rvagg/the-truth-about-rod-vagg-f063f6a53...
While she was working for npm, she violated npm's Code of Conduct numerous times, saying incredibly horrible sexist and racist things such as "kill all men", and actively trying to prevent white men from speaking at tech conferences:
https://archive.fo/f10KK"
То есть, возможно, это одни SJW нападают на других SJW? Божечки, наконец-то!!!
https://github.com/rust-lang/team/pull/671
"I'm a black latino from a 3rd world country, I hereby declare that I'm voluteering for being a mod."
https://www.reddit.com/r/rust/comments/qzme1z/moderation_team_resignation/
https://www.opennet.ru/opennews/art.shtml?num=56208
UPD: https://news.ycombinator.com/item?id=28515306
"As for Ashley's personal character... before she worked for Rust, she worked for npm. While she was working there, she tried to falsely accuse Rod Vagg because she wanted to kick him out of npm. Thankfully she failed, and after she failed she quit npm:
https://thenewstack.io/node-js-forked-complaints-repeated-ha...
https://medium.com/@rvagg/the-truth-about-rod-vagg-f063f6a53...
While she was working for npm, she violated npm's Code of Conduct numerous times, saying incredibly horrible sexist and racist things such as "kill all men", and actively trying to prevent white men from speaking at tech conferences:
https://archive.fo/f10KK"
То есть, возможно, это одни SJW нападают на других SJW? Божечки, наконец-то!!!
GitHub
mod team resignation by BurntSushi · Pull Request #671 · rust-lang/team
The entire moderation team resigns, effective immediately. This resignation is
done in protest of the Core Team placing themselves unaccountable to anyone but
themselves.
As a result of such struct...
done in protest of the Core Team placing themselves unaccountable to anyone but
themselves.
As a result of such struct...
В python нет кросс-компиляции модулей из коробки.
Это, в целом, достаточно понятно - setup.py через импорты модулей получает доступ к установочным путям(== Python.h, libpython.so, etc) того интерпретатора python, которым этот setup.py запущен, поэтому host == target всегда.
Мне известно 3 способа(без привлечения внешней системы сборки) решить эту проблему:
1) запуск через qemu
2) crossenv хачит собранный env таким образом, чтобы target, который бы возвращали встроенные в python модули, отличался от host
3) патчить PYTHONHOME, чтобы он смотрел на папку с установленным target python. Это работает, если target не очень далек от host.
Все это, конечно, в стиле "в отсутствии горничной еб%м дворника". Процесс, вроде, идет, но удовольствие ниже среднего.
———
https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard
FHS, несмотря на свое убожество, является(точно являлся до появления контейнеризации в сборочных системах) ускорителем развития систем сборки. Потому что в FHS-based системах ну не может быть в системе 2 cmake(на самом деле, может, но сборочным скриптам об этом узнать трудно). Поэтому подготовка свежего дистрибутива Linux подразумевала портирование сборочных систем проектов на более свежие версии сборочных инструментариев. В Guix/Nix/Mix сборка пакета может зависеть от любой нужной версии cmake/autoconf, поэтому на прогресс в этом месте похер.
———
https://developer.apple.com/metal/cpp/
Apple запилили С++ биндинги к Metal. Наконец-то это можно будет попробовать. Я 2 раза пытался в objective-C, мне не зашло.
Это, в целом, достаточно понятно - setup.py через импорты модулей получает доступ к установочным путям(== Python.h, libpython.so, etc) того интерпретатора python, которым этот setup.py запущен, поэтому host == target всегда.
Мне известно 3 способа(без привлечения внешней системы сборки) решить эту проблему:
1) запуск через qemu
2) crossenv хачит собранный env таким образом, чтобы target, который бы возвращали встроенные в python модули, отличался от host
3) патчить PYTHONHOME, чтобы он смотрел на папку с установленным target python. Это работает, если target не очень далек от host.
Все это, конечно, в стиле "в отсутствии горничной еб%м дворника". Процесс, вроде, идет, но удовольствие ниже среднего.
———
https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard
FHS, несмотря на свое убожество, является(точно являлся до появления контейнеризации в сборочных системах) ускорителем развития систем сборки. Потому что в FHS-based системах ну не может быть в системе 2 cmake(на самом деле, может, но сборочным скриптам об этом узнать трудно). Поэтому подготовка свежего дистрибутива Linux подразумевала портирование сборочных систем проектов на более свежие версии сборочных инструментариев. В Guix/Nix/Mix сборка пакета может зависеть от любой нужной версии cmake/autoconf, поэтому на прогресс в этом месте похер.
———
https://developer.apple.com/metal/cpp/
Apple запилили С++ биндинги к Metal. Наконец-то это можно будет попробовать. Я 2 раза пытался в objective-C, мне не зашло.
https://zivadynamics.com/zrt-face-trainer
Это рендер. Я в полном восторге.
https://www.youtube.com/watch?v=hIfmGQ6AG6A - или вот, например. Где мои 25 и LSD?
———
LLVM weekly.
https://blog.llvm.org/posts/2021-11-18-relicensing-update/ - LLVM почти перешел на лицензию Apache2, осталось совсем чуть-чуть.
https://reviews.llvm.org/rG7f287390d78d, https://bugs.llvm.org/show_bug.cgi?id=20837 - починили знатный баг в сортировке(иногда работала за n^2). Почему бы просто не использовать randomized quick sort?(кстати, тема самого первого поста этого бложика) Наверняка, это поменяло бы ABI, чего авторы libc++ ну никак не могут допустить. #abi
https://reviews.llvm.org/rG2b4948448f03 - например, как запилить теплый ламповый глобальный рефакторинг в монорепе.
———
https://microsoft.github.io/reverse-proxy/ - yet another reverse proxy. Судя по названию, технологию потырили у Я, судя по платформе - нет, таки MS. Когда уже MS перестанет форсить этот унылый мем(NET)?
Это рендер. Я в полном восторге.
https://www.youtube.com/watch?v=hIfmGQ6AG6A - или вот, например. Где мои 25 и LSD?
———
LLVM weekly.
https://blog.llvm.org/posts/2021-11-18-relicensing-update/ - LLVM почти перешел на лицензию Apache2, осталось совсем чуть-чуть.
https://reviews.llvm.org/rG7f287390d78d, https://bugs.llvm.org/show_bug.cgi?id=20837 - починили знатный баг в сортировке(иногда работала за n^2). Почему бы просто не использовать randomized quick sort?(кстати, тема самого первого поста этого бложика) Наверняка, это поменяло бы ABI, чего авторы libc++ ну никак не могут допустить. #abi
https://reviews.llvm.org/rG2b4948448f03 - например, как запилить теплый ламповый глобальный рефакторинг в монорепе.
———
https://microsoft.github.io/reverse-proxy/ - yet another reverse proxy. Судя по названию, технологию потырили у Я, судя по платформе - нет, таки MS. Когда уже MS перестанет форсить этот унылый мем(NET)?
Unity
Unity Real-Time Development Platform | 3D, 2D, VR & AR Engine
Create and grow real-time 3D games, apps, and experiences for entertainment, film, automotive, architecture, and more. Get started with Unity today.
https://tjournal.ru/news/480589-krupneyshiy-rasprostranitel-lotereynyh-biletov-stoloto-cherez-sud-potreboval-razmestit-svoe-prilozhenie-v-google-play - как вы уже поняли, новость, конечно, очень позитивная.
https://secretmag.ru/zhizn/v-rossii-zadumali-sozdat-reestr-toksichnogo-kontenta-22-11-2021.htm - надеюсь, сервис предоставит RSS. А это какие-то упыри занимаются каким-то леденящим душу пиздецом.
Я специально поставил эти две ссылки вместе, потому что они явно про схожие вещи, и у меня явно разное к ним отношение. Я люблю находить у себя такие баги, они обычно заставляют (продуктивно) задуматься.
———
https://www.notebookcheck.net/First-Intel-Alder-Lake-P-Core-i7-12700H-Cinebench-scores-leave-both-AMD-Cezanne-Zen-3-and-Apple-M1-Max-in-the-dust.579828.0.html
3dnews у них слизал новость - https://3dnews.ru/1054047/publikatsiya-1054047
Очень интересный способ обмануть почтеннейшую публику. Сinebench R20 не умеет в M1, и работает через Rosetta(вот этот факт я проверил не на 100% - лично мне оказалось достаточно того, что он вышел до M1, и что авторы бенчмарка заявили поддержку M1 только в R23(https://www.maxon.net/en/cinebench-tech-info)). Поэтому бенчмарк однопотока мы покажем в R20, и M1 будет сливать. А вот в R23, где добавили поддержку M1, мы покажем только многопоток, потому что у Alder Lake 14 ядер, а не 10, но в однопотоке он будет сливать(легко пересчитывается по результатам многопотока и числу ядер). Ну и пишем, что "по результатам cinebench, новые Alder Lake на 40% быстрее". Красота же!
———
https://reviews.llvm.org/D70631#3149545
В libcxx почти доехал быстрый алгоритм форматирования floating point(https://www.researchgate.net/publication/329410883_Ryu_fast_float-to-string_conversion)
Красота? А как насчет "оно туда ехало 2 года"? Ревью висит с 2019 года, поражаюсь упорству Microsoft. В rust соответствующий код доехал, наверное, за неделю. Че, теперь пару лет ждем, пока доедет быстрый from_string от #Lemire.
https://secretmag.ru/zhizn/v-rossii-zadumali-sozdat-reestr-toksichnogo-kontenta-22-11-2021.htm - надеюсь, сервис предоставит RSS. А это какие-то упыри занимаются каким-то леденящим душу пиздецом.
Я специально поставил эти две ссылки вместе, потому что они явно про схожие вещи, и у меня явно разное к ним отношение. Я люблю находить у себя такие баги, они обычно заставляют (продуктивно) задуматься.
———
https://www.notebookcheck.net/First-Intel-Alder-Lake-P-Core-i7-12700H-Cinebench-scores-leave-both-AMD-Cezanne-Zen-3-and-Apple-M1-Max-in-the-dust.579828.0.html
3dnews у них слизал новость - https://3dnews.ru/1054047/publikatsiya-1054047
Очень интересный способ обмануть почтеннейшую публику. Сinebench R20 не умеет в M1, и работает через Rosetta(вот этот факт я проверил не на 100% - лично мне оказалось достаточно того, что он вышел до M1, и что авторы бенчмарка заявили поддержку M1 только в R23(https://www.maxon.net/en/cinebench-tech-info)). Поэтому бенчмарк однопотока мы покажем в R20, и M1 будет сливать. А вот в R23, где добавили поддержку M1, мы покажем только многопоток, потому что у Alder Lake 14 ядер, а не 10, но в однопотоке он будет сливать(легко пересчитывается по результатам многопотока и числу ядер). Ну и пишем, что "по результатам cinebench, новые Alder Lake на 40% быстрее". Красота же!
———
https://reviews.llvm.org/D70631#3149545
В libcxx почти доехал быстрый алгоритм форматирования floating point(https://www.researchgate.net/publication/329410883_Ryu_fast_float-to-string_conversion)
Красота? А как насчет "оно туда ехало 2 года"? Ревью висит с 2019 года, поражаюсь упорству Microsoft. В rust соответствующий код доехал, наверное, за неделю. Че, теперь пару лет ждем, пока доедет быстрый from_string от #Lemire.
TJ
Крупнейший распространитель лотерейных билетов «Столото» через суд потребовал разместить своё приложение в Google Play — Новости…
Компании отказали из-за политики Google в отношении азартных игр, но в других странах были исключения из правила.
У меня при сборке clang под darwin включается вот такой флаг:
ПЖ, ты совсем упоролся со своим бутстрапом?
Самое интересное начинается, если эту опцию убрать. В результате мы получаем такой clang + lld, которые строят некорректные бинарники под darwin(они тупо сегфолтятся на старте).
Почему? Потому что, если выставить такую опцию, то линковка программ начинает писать в stderr на этапе configure/cmake, и система сборки clang начинает думать, что компилятор не поддерживает -fpic/-fPIC, и не добавляет эти аргументы в command line. Ежели собрать clang/lld c такими опциями, он начинает подглючивать(я так полагаю, это где-то бага в районе lld под darwin).
Как я это нашел? Случайно. Случайно был выставлен этот флаг линкера глобально, и когда я его убрал, процесс бутстрапа стал падать после сборки компилятора.
Что будет, когда линкер поддержит эту опцию? Ну, придется выковырять плохие флаги более правильно, пока лень.
———
https://github.com/PhilipHazel/pcre2
Меня сегодня переполняет чистое, незамутненное, счастье!
Обновлял я pcre2, и заметил на странице проекта такой блок текста:
https://docs.github.com/en/github/importing-your-projects-to-github/working-with-subversion-on-github/support-for-subversion-clients
Короче, выкинул клиент git, как страшный сон, и пользуюсь божественным svn.
А половине читателей этого бложека должно быть стыдно - наверняка вы мерзко подхихикивали в кулачок, когда я годами жаловался на git, зная про эту фичу. Фу такими быть!
{% block setup %}
{% if mix.platform.target.os == 'darwin' %}
export LDFLAGS="-Wl,-w ${LDFLAGS}"
{% endif %}
{% endblock %}
Фактически, мы прокидываем до линкера опцию -w, которая должна убирать предупреждения линкера. К чему это приводит на самом деле:[259/4503] Building CXX objectХм, то есть, я прокидываю опцию до линкера, которая должна выключать предупреждения, и она сама выводит предупреждение о том, что опция не поддерживается?
lib/MC/CMakeFiles/LLVMMC.dir/MCStreamer.cpp.o
ld64.lld.darwinnew:
warning: Option `-w' is not
yet implemented. Stay tuned...
Почему? Потому что, если выставить такую опцию, то линковка программ начинает писать в stderr на этапе configure/cmake, и система сборки clang начинает думать, что компилятор не поддерживает -fpic/-fPIC, и не добавляет эти аргументы в command line. Ежели собрать clang/lld c такими опциями, он начинает подглючивать(я так полагаю, это где-то бага в районе lld под darwin).
Как я это нашел? Случайно. Случайно был выставлен этот флаг линкера глобально, и когда я его убрал, процесс бутстрапа стал падать после сборки компилятора.
Что будет, когда линкер поддержит эту опцию? Ну, придется выковырять плохие флаги более правильно, пока лень.
———
https://github.com/PhilipHazel/pcre2
Меня сегодня переполняет чистое, незамутненное, счастье!
Обновлял я pcre2, и заметил на странице проекта такой блок текста:
You can check out the PCRE2Протер глаза, решил, что Филип совсем уже упоролся со своими регулярками, но решил проверить. И оно таки работает!
source code via Git or Subversion:
git clone https://github.com/PhilipHazel/pcre2.git
svn co https://github.com/PhilipHazel/pcre2.git
https://docs.github.com/en/github/importing-your-projects-to-github/working-with-subversion-on-github/support-for-subversion-clients
Короче, выкинул клиент git, как страшный сон, и пользуюсь божественным svn.
А половине читателей этого бложека должно быть стыдно - наверняка вы мерзко подхихикивали в кулачок, когда я годами жаловался на git, зная про эту фичу. Фу такими быть!
GitHub
GitHub - PCRE2Project/pcre2: PCRE2 development is based here.
PCRE2 development is based here. Contribute to PCRE2Project/pcre2 development by creating an account on GitHub.
Кстати, каналу уже 2 месяца, поэтому закиньте уже на Патреон, знали бы вы, как надоело жрать Pedigree накидайте ссылок на околоit и научпоп сайты, которые вы читаете? Интересные для меня темы, думаю, вы уже неплохо представляете.
commit -m "better"
Срочно в номер, SJW отакуэ! https://github.com/rust-lang/team/pull/671 "I'm a black latino from a 3rd world country, I hereby declare that I'm voluteering for being a mod." https://www.reddit.com/r/rust/comments/qzme1z/moderation_team_resignation/ http…
Должен сказать, что Mod Team со стороны не похожи на SJW, был неправ. Andrew Gallant, например, автор весьма годной библиотеки регулярок(по следам RE2)(ripgrep я тоже видел, меня лично не заинтересовало).
https://www.opennet.ru/opennews/art.shtml?num=56233
"Проект Airyx развивает редакцию FreeBSD, совместимую с приложениями macOS"
Иногда я не понимаю, что думать, про OSS проекты. Вот этот похож на откровенный стеб - посмотрите на скриншоты, где MacOS, и где вот это поделие? (судя по всему, это вариация GnuSTEP). Сайт(https://airyx.org/) - привет из 80-ых, вырвиглазное нечто. Но Issue tracker и forum живые. Короче, вот про что это? Кто все эти люди, которые качают и ставят себе это поделие?
———
https://www.gwern.net/docs/www/0xeb.net/86e4b3bee45b08ac9249c10b4d649637df73074a.pdf
Феерическая презентация про эмуляцию buffer overflow. Long story short - в оригинальном starcraft от 98 года был проезд по памяти, который эксплуатировался картоделами. Например, благодаря ему запилили карту под starcraft, которая представляет из себя super mario. Карт таких создано было приличное количество, и нужно было, чтобы они продолжили работать в starcraft: remastered от 2017 года. Короче, эпичненько.
———
Мне тут в личных переписках предлагают завести аккаунт на Патреон, или где-то еще. Денег мне не надо, пишу я с гораздо более интересной целью - у меня наполеоновские планы на Mix, но двигать целый дистрибутив в одиночку - ну так себе план. Короче, я ищу себе компанию для этого нелегкого дела. Поэтому лучшее, что вы можете для меня сделать - это привлечь сюда таких же энтузиастов(или, например, рассказать, где их еще можно поискать).
Зачем мне вообще двигать свой дистрибутив? Мне он нравится, но развивать его всю жизнь одному - сложно. Если найдется 100 - 1000 заинтересованных пользователя(а это норм тема, гораздо более странные поделия находят себе пользователей еще больше, выше привел пример), сообща делать это гораздо проще.
"Проект Airyx развивает редакцию FreeBSD, совместимую с приложениями macOS"
Иногда я не понимаю, что думать, про OSS проекты. Вот этот похож на откровенный стеб - посмотрите на скриншоты, где MacOS, и где вот это поделие? (судя по всему, это вариация GnuSTEP). Сайт(https://airyx.org/) - привет из 80-ых, вырвиглазное нечто. Но Issue tracker и forum живые. Короче, вот про что это? Кто все эти люди, которые качают и ставят себе это поделие?
———
https://www.gwern.net/docs/www/0xeb.net/86e4b3bee45b08ac9249c10b4d649637df73074a.pdf
Феерическая презентация про эмуляцию buffer overflow. Long story short - в оригинальном starcraft от 98 года был проезд по памяти, который эксплуатировался картоделами. Например, благодаря ему запилили карту под starcraft, которая представляет из себя super mario. Карт таких создано было приличное количество, и нужно было, чтобы они продолжили работать в starcraft: remastered от 2017 года. Короче, эпичненько.
———
Мне тут в личных переписках предлагают завести аккаунт на Патреон, или где-то еще. Денег мне не надо, пишу я с гораздо более интересной целью - у меня наполеоновские планы на Mix, но двигать целый дистрибутив в одиночку - ну так себе план. Короче, я ищу себе компанию для этого нелегкого дела. Поэтому лучшее, что вы можете для меня сделать - это привлечь сюда таких же энтузиастов(или, например, рассказать, где их еще можно поискать).
Зачем мне вообще двигать свой дистрибутив? Мне он нравится, но развивать его всю жизнь одному - сложно. Если найдется 100 - 1000 заинтересованных пользователя(а это норм тема, гораздо более странные поделия находят себе пользователей еще больше, выше привел пример), сообща делать это гораздо проще.
www.opennet.ru
Проект Airyx развивает редакцию FreeBSD, совместимую с приложениями macOS
Доступен первый бета-выпуск операционной системы Airyx, предлагающей окружение в стиле macOS и нацеленной на предоставление определённого уровня совместимости с приложениями для macOS. Airyx базируется на FreeBSD и используется графический стек на основе…
commit -m "better"
Я тут хотел накатать большой текст, но решил, что много чести. https://github.com/rust-lang/rust/issues/40174 "For those following various links to this issue, it is important to note that you can compile code using proc_macro to statically-linked musl binaries…
Мужик сказал - мужик сделал. Перешел с Alacritty на #kitty. Правда, это оказалось не так просто, как я ожидал.
#terminal
Kitty разрабатывает индус. Не, натурально, зовут его, кстати, #Ковид, и у него есть скрипт для подсчета объема его лапшеобразного кода - https://github.com/kovidgoyal/kitty/blob/master/count-lines-of-code. Код соответствующего качества.
Например, он зачем-то импортировал цельнотянутые исходники glfw в свой проект, наверное, чтобы увеличить line count. https://github.com/kovidgoyal/kitty/tree/master/glfw
Собирать статически слинкованный бинарь это решительно не помогает.
Так же мне очень нравился рендеринг шрифтов в alacritty(они там более crispy), и я долгое время искал, какую функцию рендера шрифтов MacOS нужно дернуть, чтобы получить нужный результат. Нашел, держите:
https://github.com/kovidgoyal/kitty/blob/master/kitty/core_text.m#L504
Так же #alacritty химичит с вертикальным размером шрифта - почти pixel to pixel я получил, когда обрезал шрифт на 85% исходной высоты. В коде Alacritty я с ходу этого не нашел, там слишком много вхождений литерала 85.
https://www.reddit.com/r/archlinux/comments/n9noje/alacritty_vs_kitty/ - вот, например, сравнение этих двух эмуляторов терминала.
https://wezfurlong.org/wezterm/config/files.html - пока занимался сборкой Kitty, ознакомился и с другими эмуляторами. Этот меня порадовал своим подходом к конфигурации. Конфиг - это код на lua, который должен вернуть dict. Кто-то еще помнит поисковый балансер? Гениальная же штука!
Оказывается, зря я гнал на авторов терминалов - все они понимают, что протокол терминала не позволяет нормально НЕ делать апдейты посреди процесса вывода программой своего интерфейса. Вот, пожалуйста, документ про это - https://gitlab.freedesktop.org/terminal-wg/specifications/-/merge_requests/2. Кстати, наш друг Ковид там тоже засветился. Но если понимают - то что же так криво реализуют существующую схему-то?
Кстати, Kitty мерцает существенно меньше, чем Alacritty, хотя и несколько медленнее.
#terminal
Kitty разрабатывает индус. Не, натурально, зовут его, кстати, #Ковид, и у него есть скрипт для подсчета объема его лапшеобразного кода - https://github.com/kovidgoyal/kitty/blob/master/count-lines-of-code. Код соответствующего качества.
Например, он зачем-то импортировал цельнотянутые исходники glfw в свой проект, наверное, чтобы увеличить line count. https://github.com/kovidgoyal/kitty/tree/master/glfw
Собирать статически слинкованный бинарь это решительно не помогает.
Так же мне очень нравился рендеринг шрифтов в alacritty(они там более crispy), и я долгое время искал, какую функцию рендера шрифтов MacOS нужно дернуть, чтобы получить нужный результат. Нашел, держите:
https://github.com/kovidgoyal/kitty/blob/master/kitty/core_text.m#L504
Так же #alacritty химичит с вертикальным размером шрифта - почти pixel to pixel я получил, когда обрезал шрифт на 85% исходной высоты. В коде Alacritty я с ходу этого не нашел, там слишком много вхождений литерала 85.
https://www.reddit.com/r/archlinux/comments/n9noje/alacritty_vs_kitty/ - вот, например, сравнение этих двух эмуляторов терминала.
https://wezfurlong.org/wezterm/config/files.html - пока занимался сборкой Kitty, ознакомился и с другими эмуляторами. Этот меня порадовал своим подходом к конфигурации. Конфиг - это код на lua, который должен вернуть dict. Кто-то еще помнит поисковый балансер? Гениальная же штука!
Оказывается, зря я гнал на авторов терминалов - все они понимают, что протокол терминала не позволяет нормально НЕ делать апдейты посреди процесса вывода программой своего интерфейса. Вот, пожалуйста, документ про это - https://gitlab.freedesktop.org/terminal-wg/specifications/-/merge_requests/2. Кстати, наш друг Ковид там тоже засветился. Но если понимают - то что же так криво реализуют существующую схему-то?
Кстати, Kitty мерцает существенно меньше, чем Alacritty, хотя и несколько медленнее.
GitHub
kitty/count-lines-of-code at master · kovidgoyal/kitty
Cross-platform, fast, feature-rich, GPU based terminal - kovidgoyal/kitty
Купил тут себе новую игрушку. #xiaomi
Давно хотел себе мощный ноутбук с Linux, при этом:
* Желательно AMD. Intel объективно отстали на много лет, при сравнимой производительности у них бешеный теплопакет, и наоборот. От AMD можно взять 16 потоков, от Intel max 8.
* Желательно, без дискретной видеокарты. Меня душит жаба платить за то, что я не использую. Хочется хорошую встроенную - чтобы рисовать ускоренный десктоп, не более того.
* OLED, 4K. Ноутбук с плохим экраном(Apple) у меня уже есть, хочется хорошего.
* Чтобы Linux без танцев с бубном.
Долго искал, пробовал разные варианты, и вот, тададам!!!
https://www.ixbt.com/news/2021/05/24/oled-3-5k-ryzen-7-5800h-100-1055-xiaomi-mi-notebook-pro-15-ryzen-edition.html
https://www.reddit.com/r/linuxhardware/comments/p4a148/2021_xiaomi_mi_notebook_pro_15_ryzen_edition/
Все, как я хотел(не работает только сенсор отпечатков пальцев), и даже лучше:
* Отличная сборка - лучше, чем у dell xps, asus rog
* Цельнопизженный дизайн от Apple. Мне нравится, нечего тут выделываться, и надо воровать лучшее решение на рынке.
* Благодаря AMD сборка в 16 потоков не жарит коленки, как было в моем Mac Book Pro от 19 года.
Что так себе(но было ожидаемо):
* Батарею держит плохо. Ну, топовое ядро + Linux - это заведомо беспроигрышное сочетание. Не думаю, что я со своими требованиями могу найти что-то лучше.
* Ядро хуже, чем M1. Сборка clang где-то 20 минут(топовые результаты можно почитать где-то тут).
Что просто так себе:
* На клавиатуре есть честные pgup/home/end/pgdown, поэтому fn + arrow не работают. В биосе починки я не нашел.
* Тачпад кажется дубовым. Думаю, это особенность libinput, дойдут руки собрать ее - попробую зафиксить.
Что хочу особо отметить:
* ЭКРАН. Экран просто божественный. Он просто бескомпромиссно хороший. Черный - черный. Белый - белый. Везде. Без бликов. При любой скорости скроллинга. Цвета огонь. Шрифты четкие(нет разницы включать AA, или нет - это значит, что точки достаточно мелкие) - на мониторе от Apple вокруг белых шрифтов на черном фоне видно гало. Я не знаю, как это описать - возьмите телефон с хорошим OLED, и представьте, что у вас весь экран такой. Яркость экрана тоже на высоте. Кажется, это первый ноутбук, где я выкрутил яркость не на 100%.
* Не забываем в загрузку ядра добавлять mitigations=off, это 5 - 10% перфа.
* Китайцы не постеснялись сделать в BIOS по умолчанию китайские иероглифы. Я считаю, это правильно. Вот Apple выебы;%ется, и ничего, все равно ее железки раскупают, как горячие пирожки.
В первый раз провел bootstrap с fedora linux, узнал еще много разных и нетривиальных способов, какими сборочные скрипты лезут в систему. perl, например, запускает linker, и по путям к .so пролезает в host систему.
Давно хотел себе мощный ноутбук с Linux, при этом:
* Желательно AMD. Intel объективно отстали на много лет, при сравнимой производительности у них бешеный теплопакет, и наоборот. От AMD можно взять 16 потоков, от Intel max 8.
* Желательно, без дискретной видеокарты. Меня душит жаба платить за то, что я не использую. Хочется хорошую встроенную - чтобы рисовать ускоренный десктоп, не более того.
* OLED, 4K. Ноутбук с плохим экраном(Apple) у меня уже есть, хочется хорошего.
* Чтобы Linux без танцев с бубном.
Долго искал, пробовал разные варианты, и вот, тададам!!!
https://www.ixbt.com/news/2021/05/24/oled-3-5k-ryzen-7-5800h-100-1055-xiaomi-mi-notebook-pro-15-ryzen-edition.html
https://www.reddit.com/r/linuxhardware/comments/p4a148/2021_xiaomi_mi_notebook_pro_15_ryzen_edition/
Все, как я хотел(не работает только сенсор отпечатков пальцев), и даже лучше:
* Отличная сборка - лучше, чем у dell xps, asus rog
* Цельнопизженный дизайн от Apple. Мне нравится, нечего тут выделываться, и надо воровать лучшее решение на рынке.
* Благодаря AMD сборка в 16 потоков не жарит коленки, как было в моем Mac Book Pro от 19 года.
Что так себе(но было ожидаемо):
* Батарею держит плохо. Ну, топовое ядро + Linux - это заведомо беспроигрышное сочетание. Не думаю, что я со своими требованиями могу найти что-то лучше.
* Ядро хуже, чем M1. Сборка clang где-то 20 минут(топовые результаты можно почитать где-то тут).
Что просто так себе:
* На клавиатуре есть честные pgup/home/end/pgdown, поэтому fn + arrow не работают. В биосе починки я не нашел.
* Тачпад кажется дубовым. Думаю, это особенность libinput, дойдут руки собрать ее - попробую зафиксить.
Что хочу особо отметить:
* ЭКРАН. Экран просто божественный. Он просто бескомпромиссно хороший. Черный - черный. Белый - белый. Везде. Без бликов. При любой скорости скроллинга. Цвета огонь. Шрифты четкие(нет разницы включать AA, или нет - это значит, что точки достаточно мелкие) - на мониторе от Apple вокруг белых шрифтов на черном фоне видно гало. Я не знаю, как это описать - возьмите телефон с хорошим OLED, и представьте, что у вас весь экран такой. Яркость экрана тоже на высоте. Кажется, это первый ноутбук, где я выкрутил яркость не на 100%.
* Не забываем в загрузку ядра добавлять mitigations=off, это 5 - 10% перфа.
* Китайцы не постеснялись сделать в BIOS по умолчанию китайские иероглифы. Я считаю, это правильно. Вот Apple выебы;%ется, и ничего, все равно ее железки раскупают, как горячие пирожки.
В первый раз провел bootstrap с fedora linux, узнал еще много разных и нетривиальных способов, какими сборочные скрипты лезут в систему. perl, например, запускает linker, и по путям к .so пролезает в host систему.
iXBT.com
Экран OLED 3,5K, Ryzen 7 5800H, 100 Вт и тонкий металлический корпус за 1055 долларов. Стартовали продажи Xiaomi Mi Notebook Pro…
Xiaomi сегодня официально представила на домашнем рынке ноутбук Mi Notebook Pro 15 Ryzen Edition — это версия ранее выпущенной модели, но вместо CPU Intel в ней используются мощные APU AMD линейки Ryzen 5000H.
https://www.opennet.ru/opennews/art.shtml?num=56246
Чинят сборку с Emscripten. А я еще удивлялся - чего у меня сломалась статическая сборка питона в 3.11. А это, оказывается, ее шатают для такой благородной задачи. Статическая сборка питона, традиционно, всегда сломана, причем, от релиза к релизу, всегда разным способом. В 3.11 сломали каким-то новым, доселе невиданным, способом(в Modules/Setup оставили модули, часть из которых перенесли в принудительную сборку в Makefile.pre, если кто-то понимает, о чем я), но, надеюсь, раз решили поддержать Emscripten, то больше ломаться не будет. Надо понимать, что сборка под #WASM всегда статическая, сами понимаете, под js в браузере нет никаких .so.
———
https://www.openswr.org/index.html
Начал собирать Mesa, и вот порция свежих знаний. Оказывается, Intel запилил ОЧЕНЬ быстрый software rasterizer для Mesa OpenGL, в десятки раз быстрее, чем llvmpipe. Сравнения с GPU я не нашел, но это уже близко.
———
https://www.phoronix.com/scan.php?page=news_item&px=Linux-5.17-AF_UNIX-Optimization
Оказывается, в Linux все AF_UNIX сокеты живут под одним big lock. Я из текста не понял, это один lock на все, или это только изначальное отображение int fd на внутриядерную структуру(которая сама уже живет без этого big lock). В любом случае, это жесть, и разработчики решили это дело поменять хотя бы на шардированный lock. Дело хорошее, всяким local rpc, типа Wayland, D-Bus, etc, должно стать хорошЕе.
Чинят сборку с Emscripten. А я еще удивлялся - чего у меня сломалась статическая сборка питона в 3.11. А это, оказывается, ее шатают для такой благородной задачи. Статическая сборка питона, традиционно, всегда сломана, причем, от релиза к релизу, всегда разным способом. В 3.11 сломали каким-то новым, доселе невиданным, способом(в Modules/Setup оставили модули, часть из которых перенесли в принудительную сборку в Makefile.pre, если кто-то понимает, о чем я), но, надеюсь, раз решили поддержать Emscripten, то больше ломаться не будет. Надо понимать, что сборка под #WASM всегда статическая, сами понимаете, под js в браузере нет никаких .so.
———
https://www.openswr.org/index.html
Начал собирать Mesa, и вот порция свежих знаний. Оказывается, Intel запилил ОЧЕНЬ быстрый software rasterizer для Mesa OpenGL, в десятки раз быстрее, чем llvmpipe. Сравнения с GPU я не нашел, но это уже близко.
———
https://www.phoronix.com/scan.php?page=news_item&px=Linux-5.17-AF_UNIX-Optimization
Оказывается, в Linux все AF_UNIX сокеты живут под одним big lock. Я из текста не понял, это один lock на все, или это только изначальное отображение int fd на внутриядерную структуру(которая сама уже живет без этого big lock). В любом случае, это жесть, и разработчики решили это дело поменять хотя бы на шардированный lock. Дело хорошее, всяким local rpc, типа Wayland, D-Bus, etc, должно стать хорошЕе.
www.opennet.ru
В основной ветке Python появилась возможность сборки для работы в браузере
Итан Смит (Ethan Smith), один из основных разработчиков MyPyC, компилятора модулей Python в код на языке Си, сообщил о добавлении в кодовую базу CPython (базовая реализация Python) изменений, позволяющих собрать основную ветку CPython для работы внутри браузера…
Новости бутстрапа.
Я собрал opengl, во всех его ипостасях(egl, gles[1, 2, 3], etc). Про то, что у меня теперь драйвер видеокарты влинкован в Sway, я расскажу отдельно. А сегодня - про Mesa(https://www.mesa3d.org/). Mesa - это:
1) Реализация различных API(OpenGL, Vulkan, D3D(да, да, он там есть, нативный, но разработчики это скрывают, потому что не хотят, чтобы им пользовался кто-то, кроме Wine))
2) OSS ускоренные драйвера(AMD, Intel, Noveau, Mali, etc)
Вы знаете, я был очень приятно удивлен. Я никогда не видел такой хорошей кодовой базы на C. Чистый, понятный, код, разумное разделение на слои и разделение ответственности. Если вы хотите(хз, правда, зачем) научиться, как хорошо писать на С - почитайте кодовую базу Mesa.
Я почитал(зачем? проект загружает драйвера в виде .so, это требует некой творческой доработки для статической линковки), и имею вам сказать следующее:
1) Что-то я разуверился, что #asahi linux достигнет какого-то разумного прогресса в плане ускоренного десктопа. Все очень просто. Код для asahi в Mesa - это 200 килобайт, драйвер и компилятор шейдеров. Код развитого драйвера в #Mesa - 5 и более мегабайт. Я не верю в чудо, что разработчики asahi смогли уместить такую сложную штуку, как Apple GPU, в 200К. Я не видел там реализации по существу, все это больше похоже на какой-то boilerplate. :(
2) Благодаря Mesa появилась система сборки Meson(https://mesonbuild.com/). На ней основана сборка практически всего графического стека Linux. И это очень хорошая(не побоюсь сказать, что лучшая OSS) система сборки:
* Мало внешних зависимостей. Фактически, только Python. Python собрать проще и быстрее, чем CMake.
* Сборочные файлы основаны на кастрированном подмножестве Python, чтобы не жестить(https://mesonbuild.com/GuiTutorial.html). Skylark украл эту идею из Meson. Сборочные файлы по большей части декларативные, но немного императивщины дозволено - все же, OSS, много настроек, вариабельность.
* Действительно хорошая поддержка тулзов - Meson знает про clang, lld, и умеет с ними обращаться.
* Сборочные скрипты очень чистые и понятные - без жести, все очень по существу вопроса.
* Хорошо поддерживает вариабельность сборки(настройки). Настройки лежат в отдельном файле, их можно узнать, не читая сборочные скрипты. Это реально удобно. В gnu #autohell для этого нужно запустить configure, и не факт, что он выдаст все настройки. В CMake это IMHO вообще невозможно - любой -DXXX - это настройка, выгрепать их все - невозможно.
* Поддержка кросс-компиляции.
* Идеальный custom_command - {'inputs': [...], 'outputs': [...], 'descr': '...', cmd: ['A', 'B', 'C']}. Кто занимается системами сборки, тот поймет. Я аж прослезился.
* Не мешает, и даже помогает, задаче герметичной сборки. Это редкость.
* Очень быстрый configure stage.
* Не совсем про Meson, но. Оно поддерживает coverity из коробки. И werror из коробки. Это многое говорит о проектах, которые ее используют.
Подобное есть в Bazel, но он очень тяжелый, и зависит от Java.
В общем, я свои проекты портирую на #Meson, и вам желаю того же. Хорошая, годная, вещь.
Ну и вот еще - https://gms.tf/the-rise-of-meson.html Meson очень быстро набирает популярность!
Я собрал opengl, во всех его ипостасях(egl, gles[1, 2, 3], etc). Про то, что у меня теперь драйвер видеокарты влинкован в Sway, я расскажу отдельно. А сегодня - про Mesa(https://www.mesa3d.org/). Mesa - это:
1) Реализация различных API(OpenGL, Vulkan, D3D(да, да, он там есть, нативный, но разработчики это скрывают, потому что не хотят, чтобы им пользовался кто-то, кроме Wine))
2) OSS ускоренные драйвера(AMD, Intel, Noveau, Mali, etc)
Вы знаете, я был очень приятно удивлен. Я никогда не видел такой хорошей кодовой базы на C. Чистый, понятный, код, разумное разделение на слои и разделение ответственности. Если вы хотите(хз, правда, зачем) научиться, как хорошо писать на С - почитайте кодовую базу Mesa.
Я почитал(зачем? проект загружает драйвера в виде .so, это требует некой творческой доработки для статической линковки), и имею вам сказать следующее:
1) Что-то я разуверился, что #asahi linux достигнет какого-то разумного прогресса в плане ускоренного десктопа. Все очень просто. Код для asahi в Mesa - это 200 килобайт, драйвер и компилятор шейдеров. Код развитого драйвера в #Mesa - 5 и более мегабайт. Я не верю в чудо, что разработчики asahi смогли уместить такую сложную штуку, как Apple GPU, в 200К. Я не видел там реализации по существу, все это больше похоже на какой-то boilerplate. :(
2) Благодаря Mesa появилась система сборки Meson(https://mesonbuild.com/). На ней основана сборка практически всего графического стека Linux. И это очень хорошая(не побоюсь сказать, что лучшая OSS) система сборки:
* Мало внешних зависимостей. Фактически, только Python. Python собрать проще и быстрее, чем CMake.
* Сборочные файлы основаны на кастрированном подмножестве Python, чтобы не жестить(https://mesonbuild.com/GuiTutorial.html). Skylark украл эту идею из Meson. Сборочные файлы по большей части декларативные, но немного императивщины дозволено - все же, OSS, много настроек, вариабельность.
* Действительно хорошая поддержка тулзов - Meson знает про clang, lld, и умеет с ними обращаться.
* Сборочные скрипты очень чистые и понятные - без жести, все очень по существу вопроса.
* Хорошо поддерживает вариабельность сборки(настройки). Настройки лежат в отдельном файле, их можно узнать, не читая сборочные скрипты. Это реально удобно. В gnu #autohell для этого нужно запустить configure, и не факт, что он выдаст все настройки. В CMake это IMHO вообще невозможно - любой -DXXX - это настройка, выгрепать их все - невозможно.
* Поддержка кросс-компиляции.
* Идеальный custom_command - {'inputs': [...], 'outputs': [...], 'descr': '...', cmd: ['A', 'B', 'C']}. Кто занимается системами сборки, тот поймет. Я аж прослезился.
* Не мешает, и даже помогает, задаче герметичной сборки. Это редкость.
* Очень быстрый configure stage.
* Не совсем про Meson, но. Оно поддерживает coverity из коробки. И werror из коробки. Это многое говорит о проектах, которые ее используют.
Подобное есть в Bazel, но он очень тяжелый, и зависит от Java.
В общем, я свои проекты портирую на #Meson, и вам желаю того же. Хорошая, годная, вещь.
Ну и вот еще - https://gms.tf/the-rise-of-meson.html Meson очень быстро набирает популярность!