commit -m "better"
3.21K subscribers
1.02K photos
147 videos
3 files
2.37K links
just random thoughts
Download Telegram
HN - контора пи%:,:сов.

Я вчера запостил https://news.ycombinator.com/item?id=35302329

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

Возможно, так сработал антиспам, потому что сначала мы промахнулись мимо "Show HN", удалили сообщение, и запостили заново.

Возможно, это какое-то лимбо для новых авторов/постов, но в гайдах нигде про такое не написано.

(пост накручивать не надо, если что, потому что забанят же нафиг)
👍8🐳4🤔3🤮3
https://distrowatch.com/weekly.php?issue=20230327#waiting

В distrowatch, кстати, дистрибутив сначала попадает в лимбо, где он должен потусить хотя бы год. Потому что много нас - а distrowatch один, и им приходят по 2 - 4 новых дистрибутива в неделю. Поэтому надо продержаться хотя бы год, прежде чем быть удостоенным попасть в список Linux дистрибутивов.
👍26
https://www.phoronix.com/news/OpenBLAS-0.3.22-Released

"The OpenBLAS 0.3.22 highlights amount to:

- Initial support for processing with the EmScripten JavaScript converter albeit only a single-threaded build for now"

Я просто оставлю это здесь.

Реально, кому может понадобиться реализация BLAS в JavaScript, да еще в виде emscripten?
😁3👍2😱2🤮1🐳1
Будни #bootstrap

Закончил собирать YT. Не весь, пока только сервер.

С удивлением обнаружил, что там нет цели install:

[5968/5968] Linking CXX executable yt/yt/server/all/ytserver-all
ninja: Entering directory `/ix/build/B771eHwr4Dr1dzEA/obj'
ninja: error: unknown target 'install'

Не знаю, что этим имелось в виду, наверное, то, что структуру пакета пусть придумывает человек, решивший это запустить?

Запустить тоже не получилось:

pg# ./ytserver-all
YT_VERIFY(func) at library/cpp/yt/phdr_cache/phdr_cache.cpp:29 in operator()
Illegal instruction

В дебагере это выглядит так - https://gist.github.com/pg83/ae955a0397e6ab36662e5d32ab556c1a

(вообще, довольно дико видеть падение в своем же коде в open source проекте)

Падает все потому, что я собрал yt статически, а у нас он собирается в режиме "dynamic libc", это когда все собирается статически, но линкуется с libc.so.6, чтобы работала подгрузка .so, ну и вот такие хаки с переопределением символов.

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

Собрать полностью статический бинарь было сложно, но, к счастью, я знал, что надо делать:

* экспортируемый код, хотя и умеет собираться с MUSL, при экспорте это свойство не очень сохранил (все ifdef в коде есть, а вот ключика для сборки - нет). Пришлось включать поддержку руками: https://github.com/pg83/ix/blob/main/pkgs/bin/yt/unwrap/ix.sh#L36

* так же пришлось отвязать сборку от #conan - https://github.com/pg83/ix/blob/main/pkgs/bin/yt/unwrap/ix.sh#L28, ну и подхачить всякие пути, чтобы по местам, куда conan подложил бы файлики, лежало что-то разумное - https://github.com/pg83/ix/blob/main/pkgs/bin/yt/unwrap/ix.sh#L81

* так же творчески пришлось запатчить наше расширение для stl - https://github.com/pg83/ix/blob/main/pkgs/bin/yt/unwrap/ix.sh#L48 (у нас, в нашем stl, мы умеем описывать forward declarations для всех классов, чего стандарт до сих пор не умеет)

Почему пришлось развендорить libc++?

Тонкий вопрос.

По зависимостям в сборку приезжал бы мой libc++. И, казалось бы, это не страшно, потому что в Я stl переложен в другой inline namespace - https://github.com/ytsaurus/ytsaurus/blob/main/contrib/libs/cxxsupp/libcxx/include/__wrappers_config#L4, но вот у нас внутри libc++ все еще таргетирован на libcxxrt (это такой рантайм для обработки исключений), а у меня - libc++abi, и вместе они не живут, потому что ABI диктует, где и какие символы должны лежать, получается пересечение.

Поэтому libc++ мне пришлось девендорить, ну и соорудить свой libc++, который бы включал в себя все релевантные патчи. Например, у нас итераторы - это голые указатели, и vector<bool> ведет себя разумно. Вот так я все попатчил - https://github.com/pg83/ix/blob/main/pkgs/lib/c%2B%2B/14/unwrap/ix.sh

Вишенка на торте - сборка всего поддерева кастомным компилятором, с кастомной (патченой) libc++ - https://github.com/pg83/ix/blob/main/pkgs/bin/yt/ix.sh#L4

(я так свободно про все про это пишу, потому что оперирую только теми знаниями, которые мы выложили в open source)

Сложно?

Умеючи - пара вечеров, а так - да, сложно.
👍13🔥9❤‍🔥5🥱3💩1
Forwarded from Дидлошная
ыыыы
🌚25🔥7😁6🫡5😢2🙊1
https://futureoflife.org/open-letter/pause-giant-ai-experiments/ #strong_ai

Я, как сформировавшийся луддит, полностью согласен с такой точкой зрения.

Проблема в том, что джинна в бутылку уже не загнать:

* Нет такого преступления, на которое не пошел бы капитал, и далее по тексту.

* Ну вот даже и договорятся западные компании промеж себя, но кто помешает заниматься развитием этой темы всему остальному (нерукопожатному) миру?

AI - это, конечно же, и оружие, в том числе (хотя бы даже чисто экономическое, не будем про военные применения), и новая гонка вооружений будет именно тут.

Эту чашу, к сожалению, нам придется испить до дна.
👍13🤔9🤮2👌2😢1🐳1
https://tobtu.com/blog/2023/3/breaking-xor-shift-prng/

Вкусный текст про взлом какого-там генератора случайных чисел.

"After the author was told this was using an insecure algorithm "Xor Shift", the author claimed it's secure because it's two different Xor Shift algorithms xored together and has multiple arrays that are randomly selected. Then added "probably the most secure PRNG available" to the read me. OK let's go"

TL;DR - кто-то запилил модуль ядра Linux с реализацией какого-то странного генератора PRNG, который "зачем-то" использовался в каких-то кастомных ядрах от непонятных вендоров:

* комбинирует (через xor) два генератора xor shift
* странно работает с многопоточностью - имеет несколько независимых потоков, тред привязывается к набору потоков

Мутная тема, понятно, что очередной "Джон Миллиметрон от C" не справился с задачей хотя бы корректно закодировать то, что он имел в виду, поэтому этот генератор не работает от слова "вообще".
🤔4👍2🔥2🐳1
https://www.phoronix.com/review/intel-scalability-optimizations

Сравнение Intel Clear Linux с "каким-то другим Linux".

Сравнение, на мой взгляд, весьма интересное.

Видно, что сначала отрыв Intel от Ubuntu невелик, и, скорее всего, это компиляция с правильными ключами.

Но, почти на каждой картинке, наступает момент, когда Intel Clear Linux показывает существенно лучшую масштабируемость.

Понятно, что кастомного кода они туда не писали, но крутили ручки.

Какие и как, кто-нибудь понимает?
👍5🤔4
https://github.com/twitter/the-algorithm

https://news.ycombinator.com/item?id=35391433

https://blog.twitter.com/engineering/en_us/topics/open-source/2023/twitter-recommendation-algorithm

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

https://github.com/twitter/the-algorithm/issues/709

Пишут, что twitter выложил алгоритм ранжирования.

Если это первоапрельская шутка - то почему это смешно?

Если нет - ну, я сомневаюсь, что это что-то полноценное, и соответствует действительности, потому что я склонировал репу, там 15 мегабайт "живого" кода, это просто ни о чем.

Короче, мне срочно нужна пояснительная бригада!
👍42🤔1
Думаю, сегодня самое лучшее время сказать, что шутка затянулась.

Никакого дистрибутива Linux я не делаю, и делать не собираюсь, что это за велосипедизм?

Весь код, да и пакетная база, на которые я тут ссылался - это переделанные с помощью chatgpt пакеты из проекта Nix https://nixos.org/, дай им бог здоровья.

Всем спасибо, всем пока!
😁47👍14🤣6😱4🌚3🤔2
commit -m "better"
https://github.com/twitter/the-algorithm https://news.ycombinator.com/item?id=35391433 https://blog.twitter.com/engineering/en_us/topics/open-source/2023/twitter-recommendation-algorithm https://www.opennet.ru/opennews/art.shtml?num=58904 https://gith…
Вечерний #rant

https://github.com/twitter/the-algorithm

Тем временем, репа с этим проектом набрала 37к звезд.

Мне вот интересно, кто эти люди, и что они полайкали в этом проекте?

Я ставлю звезду в трех случаях:

* Когда мне нравится, как проект сделан внутри
* Когда мне нравится, как он работает (даже если я не смотрел на код, или код мне не нравится)
* Когда проект несет неочевидную и интересную идею, которая, например, заставляет подумать.

КМК, выложенный код не удовлетворяет ни одному из этих критериев.
👍8😁4💯3🥴2
Forwarded from Топ Twitter
😁51👍112
https://www.phoronix.com/news/Qt-6.5-LTS-Released

Вышел новый #QT, и ничего такого не случилось - все приложения собрались, и продолжили работать, как им и положено.

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

"With Qt 6.5's multimedia support the FFmpeg back-end is now the default for macOS / Windows / Android / desktop Linux while for embedded systems GStreamer is the default"

Теперь, по умолчанию, для проигрывания видосов используется ffmpeg, и это очень, очень хорошо. Чем быстрее помрет фабрика по загрузке .so с диска под названием #gstreamer, тем лучше.

Но, на самом деле, мой глаз зацепился за фразу "The Qt 6.5 toolkit brings improved theme and styling support, including better support around dark mode handling on Windows", и я вспомнил, что уже какое-то время хочу рассказать, что, наконец, понял, почему авторы #gtk/#gnome так хейтят сторонние темы!

Считайте меня слоупоком, но я это понял совсем недавно.

В #gtk виджеты не совсем виджеты, а, по сути, настройки для канвы.

Все очень и очень похоже на html + css, берешь любой div, приделываешь к нему рамки из картинок, навешиваешь onClick(), и, пожалуйста, это не div, а уже кнопка.

Поэтому сделать кастомную тему для gtk - это как сделать кастомную css тему для нескольких веб сайтов одновременно. Иногда даже может работать, но, чаще всего, ползет какая-то херня из всех углов!

Что я пока не понимаю - перешли ли разработчики QT на темную сторону со своими qt quick, или еще не перешли.
👍4🔥21🤮1
Forwarded from Programmer memes
Хороший техдир и конкурсы интересные⁠⁠

Programmer memes
🔥25😁15🤡5😱2😢1
#rant #foot

Что отличает профессиональный софт от непрофессионального?

Профессионал никогда не поменяет тему по умолчанию, по крайней мере, в минорном апдейте.

https://codeberg.org/dnkl/foot/src/branch/master/CHANGELOG.md#user-content-1-14-0

"Default color theme from a variant of the Zenburn theme, to a variant of the Solarized dark theme"

Автору foot, видимо, важнее сэкономить пару строк в своем конфиге, нежели консистентное поведение у всех своих пользователей.

not good.
🤔6👎5👍2💯2
😁18🔥8👍5👎2