commit -m "better"
Загрузка данных...
Find out who reads your channel
This graph will show you who besides your subscribers reads your channel and learn about other sources of traffic.Посты | Просмотры | Поделились | Динамика просмотров |
01 https://github.com/LadybirdBrowser/ladybird/pull/366 #ladybird
Гля какую красоту подогнали наши радиослушатели!
Проекту меньше недели (если не считать развитие в составе OS), а в него уже набижали любители нанести социальной справедливости!
"Removed white supremacist language"
И это про параграф
"## On ideologically motivated changes
This is a purely technical project. As such, it is not an appropriate arena to advertise your personal politics or religious beliefs. Any changes that appear ideologically motivated will be rejected" | 798 | 16 | Loading... |
02 Вторая история про сборку #ladybird (спойлер - все получилось)
Сломалась сборка https://github.com/LadybirdBrowser/ladybird/blob/master/Userland/Libraries/LibGfx/ImageFormats/PNGLoader.cpp
На строчке https://github.com/LadybirdBrowser/ladybird/blob/master/Userland/Libraries/LibGfx/ImageFormats/PNGLoader.cpp#L210, или рядом
Говорит, нет в твоей библиотеке libpng такой константы.
Оказалось, что чувак выпилил свой код в пользу какой-то libpng+apng - https://github.com/LadybirdBrowser/ladybird/commit/8a3dc5ea0a98fb0fd1d40ab7f33d6eb19657fe3b
Тут, конечно, запахло васянством, потому что libpng я знаю, а вот про apng - ничего не слышал.
Полез разбираться, вот результат:
* Есть такой де-факто стандарт APNG - https://ru.wikipedia.org/wiki/APNG
* Во всех мажорных браузерах есть своя его реализация
* Есть васянский форк libpng - https://sourceforge.net/projects/libpng-apng/, на который и завязался автор LadyBird.
Стандартом эта штука не является, по очень смешной причине - все рассылки libpng мертвы, никто не смог найти хоть кого-то, кто сможет стандарт поменять.
А без этого код в libpng, само собой, попасть не может.
https://github.com/pnggroup/libpng/issues/267 - попытка вмержить apng в libpng, со ссылками на списки рассылки, где не отвечают, и вот это вот все. Тянется попытка с 18 года по сей день, никто ничего сделать не может.
Ну я собрал #ladybird с правильной libpng, и у меня все собралось. Но не заработало, а про это - в следующей серии.
Мораль? Я думаю, наши радиослушатели уже привыкли, что в моих историях про open source очень мало морали.
Грустно это - наблюдать, как png долго и муторно побеждал остальные lossless форматы, а теперь медленно и печально уходит в никуда. | 769 | 4 | Loading... |
03 Media files | 990 | 25 | Loading... |
04 В 2015 году консалтинговая фирма McKinsey составила сомнительный отчёт, в нем она обнаружила связь между прибылью и расовым и гендерным разнообразием руководителей.
Исследование использовалось инвесторами, лоббистами и регуляторами для продвижения большего числа женщин и меньшинств в советах директоров и для оправдания инвестиций в компании. Новое исследование WSJ подтвердило, что это фуфел. Victoria Secret не даст соврать. https://t.me/banksta/49326 | 1 001 | 10 | Loading... |
05 Для комментариев | 1 042 | 1 | Loading... |
06 Media files | 1 020 | 54 | Loading... |
07 Почему-то не проросла ссылка в чат, для обсуждения | 421 | 2 | Loading... |
08 Продолжаю собирать #ladybird.
Процесс этот не быстрый, потому что, например, коллега решил поюзать для рендеринга skia от Google - https://skia.org/
Кстати, так-то очень хороший выбор, по модулю одной мааленькой проблемки - google не делает ее релизов (потому что совершенно не заинтересованы в ее использовании out of tree), а, значит, для того, чтобы получить дерево ее исходников, нужен depot_tools - https://chromium.googlesource.com/chromium/tools/depot_tools.git
Если кто не знает, то это такой анальный зонд кусок невоспроизводимого бинарного блоба от Google, который заменяет git submodules в их некоторых OSS проектах. Ну а запускать бинарный блоб просто так мне не хочется (да и не можется, потому что glibc).
Ну а чтобы ее собрать, они качают еще 2 куска бинарного блоба - bazel, и свою сборку ninja.
Короче, это мерзость мерзотная, в которую я лезть очень не хотел.
Но, к счастью, относительно недавно они запилили python скрипт, который заменяет depot_tools:
git clone https://skia.googlesource.com/skia.git
# or
# fetch skia
cd skia
python3 tools/git-sync-deps
Это решает первую проблему.
А вторую проблему решает то, что там лежат экспортированные в GN сборочные файлы от Bazel.
GN - это тоже такая система сборки от Google, она написана на C++, и нормально у меня #bootstrap
Ну и, так как Гугл совершенно не заинтересован в распрстранении этой либы, то у нее нет таргета make install, раскладывать по файловой системе все приходится ручками, кто во что горазд:
https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=skia-git#n82
skia я собрал, а вот #ladybird - пока нет, потому что там еще много чего "странного", о чем в следующих сериях. | 1 129 | 12 | Loading... |
09 https://www.opennet.ru/opennews/art.shtml?num=61466 #CVE
Опять та же самая организация (MITRE) отправила CVE, без возможности как-то аргументировать отсутствие ошибки.
И, как выяснилось, эта организация делает так довольно часто, пострадали не только curl и io.js, но и, например, aiohttp - https://github.com/github/advisory-database/pull/3504#issuecomment-2198884952
Ну, чем больше будет таких историй, тем быстрее эта лавочка дискредитирует себя, и безопасники будут заниматься поиском ошибок, а не присвоением id-шника CVE всякой чепухе. | 1 035 | 5 | Loading... |
10 https://ladybird.org/announcement.html
https://www.opennet.ru/opennews/art.shtml?num=61474
Вечер перестает быть томным, потому что автор Ladybird действительно решил запилить +1 "настоящий" броузер, и если у него это получится, то это будет бомба.
Почему бомба?
Потому что Mozilla преследует какие-то свои SJW цели, и чтобы они запилили вертикальные табы, понадобилось пересобрать их руководство (https://www.opennet.ru/opennews/art.shtml?num=61438)
WebKit хорошо работает только в macOS.
А Chromium - это "корпоративный", "индустриальный" браузер, со всеми вытекающими последствиями (например, отсутствие jpegXL из-за внутренних терок в Google)
Поэтому +1 независимая альтернатива - очень, очень хорошо. | 1 097 | 15 | Loading... |
11 https://medium.com/@austin-starks/i-spent-18-months-rebuilding-my-algorithmic-trading-in-rust-im-filled-with-regret-d300dcc147e0
Смотрите, еще один школьник прозрел, когда решил переписать настоящий большой кусок кода на Rust, со сложной структурой владения, а не очередной wrapper над C:
* пишет, что он не смог вывести тип в какой-то вспомогательной шаблонной функции, потому что https://t.me/itpgchannel/472 Duck typed шаблоны в С++ - это неизмеримо круче, чем дженерики в других языках.
* обрабатывать ошибки - сложно
* всратый, verbose, синтаксис
* токсичное community, которое состоит из людей, готовых сделать все, что угодно, кроме как признать наличие проблем у их любимого языка. Я тут, недавно, зарубился с коллегами про то, что в rustls огромное количество кода на C/Asm. Мы его искали долго, в итоге, нашли, он был прикопан очень, очень хорошо! А все чтобы сказать, что "safe", а что у нас тут крипта цельнопижжена (в виде сгенеренных из perl ассемблерных вставок) из openssl - ну так это так, ничего не значит.
Надеюсь, что таких текстов будет появляться больше, потому что чем раньше школота поймет, что Rust - это не серебряна пуля, тем лучше для всех нас. | 1 352 | 52 | Loading... |
12 Утречька ☺️ | 1 107 | 35 | Loading... |
13 https://habr.com/ru/articles/825638/
Классный текст про кадры, в том числе, в IT,
TL;DR - работодателям нужны высококвалифицированные, но низкооплачиваемые, сотрудники, и их на рынке дефицит, кто бы мог подумать. Казалось бы, надо заниматься автоматизаций, но всякие странные большие начальники говорят, что нужно возрождать традицию трудовых лагарей, и вот это вот все.
В IT, несмотря на озвучиваемый рост зарплат, стагнация, и это кажется похожим на правду. Потому что среднему Аркадию зачем работать внутри России, с боссом и HR, которые еще не поняли, что мир поменялся, и найти full remote не то чтобы очень сложно, с военкомом, который стоит у тебя под дверью, и вот это вот все? Средний Аркадий съебет в такой ситуации, скажем, в Тайланд. | 1 180 | 22 | Loading... |
14 https://www.phoronix.com/news/GNOME-MRs-Without-X11
Пишут, что можно собрать mutter, и gnome shell, вообще без поддержки X11, и без необходимости иметь библиотеки X11 в системе.
Как это принято у #GNOME, нагло врут, потому что https://gitlab.gnome.org/GNOME/mutter/-/blob/main/meson.build?ref_type=heads#L126
Как была зависимость от кишок X11, так и осталась. | 1 237 | 2 | Loading... |
15 А вот бы кто запилил эдакий универсальный readline() - ты ему llm, текущую строку, текущий контекст (в котором текстуально описано все, что посчитает нужным разработчик, про данное состояние системы), в качестве ответа - suggest для продолжения строки! | 1 318 | 2 | Loading... |
16 Надоело мне уже ваш говнокод терпеть. До конца лета всем, кто идентифицирует себя программистом в нашей компании, купить и выучить всего Кнута!
Я вас, псы, буду ночью будить и спрашивать пересказ! А то взяли моду: как про отступы в коде спорить, так они первые, а как прод лёг из-за OOM — они типа не при делах.
#сракигорят | 1 327 | 25 | Loading... |
17 Репетиторша английского перевела самые важные фразы, которые пригодятся в проектах с иностранцами. Записываем!
8️⃣ Programmer memes | 1 107 | 34 | Loading... |
18 https://govno.works/
Новая методология разработки, пишут, что лучше scrum! | 1 472 | 42 | Loading... |
19 Media files | 1 465 | 19 | Loading... |
20 Media files | 1 609 | 5 | Loading... |
21 у админа на дачном участке пошли грибы! | 1 414 | 3 | Loading... |
22 . | 1 512 | 11 | Loading... |
23 Media files | 1 563 | 14 | Loading... |
24 Обсуждали тут с коллегой sum types (они же tagged union, они же std::variant, и еще 100500 наименований)
Я не использую sum types, и почти никогда не использовал, потому что лично мне больше нравятся интерфейсы.
Кажется, что, за редким исключением (типа OrError), они решают весьма схожую задачу - выполнить в некоторых местах разный код, в зависимости от типа объекта, лежащего "внутри".
При этом:
* sum types масштабируются по O(число мест, где написали match), при добавлении нового типа в иерархию
* sum types - это закрытый набор типов, интерфейсы - открытый
* код наследника интерфейса пишется в одном месте, и не размазан по всей кодовой базе
С точки зрения perf все не очень однозначно. Где-то быстрее switch/case/match, гд-то вызов функции через vtable. Ну и нужно понимать, что, в случае использования LTO, интерфейсы тоже имеют закрытое множество реализаций, и компилятору вполне по силам "разынлайнить" вызовы.
Поэтому, конечно, я не понимаю преимуществ sum types в общем случае, и не понимаю, почему они "лучше".
В общем, sum types идут в топку, и, как говорится, пруф ми ронг. | 1 637 | 8 | Loading... |
25 Мать Илона Маска написала книгу о правилах счастливой жизни, которую дальше введения можно не читать.
Спойлер: правило счастливой жизни №1 – родись в богатой семье, у которой есть свой самолёт. | 1 383 | 58 | Loading... |
26 Будни #bootstrap
Запилил возможность по флажку выплюнуть на экран выполняющийся скрипт для сборки таргета, без его выполнения (для debug).
Это оказалось сделать неожиданно просто, даже без модификации ядра и графа. Вот, шаблоны позволяют делать любые манипуляции с текстом, поэтому логика "по флагу выведи содержимое какого-то блока на экран, а без флага - выполни его" реализуется просто, без изысков:
https://github.com/pg83/ix/blob/main/pkgs/die/sh.sh#L10-L19 | 1 320 | 1 | Loading... |
27 Media files | 1 441 | 51 | Loading... |
28 Media files | 1 546 | 42 | Loading... |
29 Нам тут подсказывают с задних рядов, что, не прошло и года (нет, реально, всего несколько дней не хватило), как умельцы положили в этот шейпер на #wasm какую-то там LLM модель - https://fuglede.github.io/llama.ttf/
Что она там должна делать, я не понял, потому что в видосе чувак редактирует текст, и предполагает, что на экране должны быть какие-то изменения, а я их не вижу.
Тем не менее, размах мысли завораживает! | 1 504 | 2 | Loading... |
30 Media files | 1 237 | 27 | Loading... |
31 Очередная история из разряда "не договорились".
Я вот раньше думал, что _ нельзя использовать в DNS.
https://stackoverflow.com/questions/2180465/can-domain-name-subdomains-have-an-underscore-in-it
Но, вот, оказывается, что некоторые считают, что таки можно, поэтому какие-то программы поддерживают _, а какие-то - нет.
Поэтому иногда случается красивое - вы можете разрезолвить домен, содержащий _, но не можете проверить ssl сертификат подлинности этого домена, потому что ваш резолвер поддерживает _, а ваша библиотека ssl - нет. И вроде как, все в своем праве:
https://github.com/python/cpython/issues/103490
"Hostnames with underscores fail SSLContext hostname verification with wildcard certificates" | 1 728 | 17 | Loading... |
32 #llvmweekly
https://discourse.llvm.org/t/rfc-require-discussion-of-impact-to-monorepo-stakeholders-when-adding-new-clang-extensions/79613
Разработчик llvm просит разработчиков clang договариваться с остальными stakeholders, если они делают какие-то изменения, которые могут затронуть всю остальную кодовую базу:
"As a concrete example of what I mean, the __restrict qualifier extension in C++ is treated as a cv-qualifier in Clang, including allowing it to be written on a member function. This impacts libc++ because e.g. std::function and std::invoke need to be able to invoke qualified member functions, and qualifiers have a combinatorial number of cases to consider for both tests and within the implementation"
Мне, в целом, данный пример кажется несколько надуманным, потому что врядли кто-то ожидает, что произвольное расширение будет хорошо взаимодействовать с какой-то другой произвольной частью языка, но бугурт коллег понятен.
Удивительно, но, вроде, все договорились. | 1 400 | 2 | Loading... |
33 cuBLAS vs MLIR
Один из лучших докладов, которые помогают понять внутреннее устройство современных NVIDIA GPU. Господа из MLIR/LLVM пытаются реверсинженирить nvidia либы, чтобы натянуть их на MLIR (обобщение llvm IR). Получается с виду хорошо, но больно. Шутки в духе "это то как теперь делаются компиляторы".
В современных deep learning алгоритмах большая часть времени тратится на перемножение матриц aka GEMM (general matrix multiplication) и на, собственно, подкачку данных. Проприетарная и закрытая реализация от NVIDIA — cuBLAS, работает на 20-30% лучше чем вон такие робкие попытки сделать более прямо. Никто не знает какими хаками они внутри это делают.
https://www.youtube.com/watch?v=V3Q9IjsgXvA | 1 320 | 31 | Loading... |
34 Исследование: просмотр мемов во время рабочего дня улучшает производительность
Теперь ты знаешь, чем заняться на работе | 1 509 | 44 | Loading... |
35 ё | 15 | 0 | Loading... |
36 В 2024 стыдно не уметь программировать!
Если вам хочется быстро вкатиться в IT, разобраться в тонкостях ядра Linux, научиться писать красивый код на Rust/Python/Go/C++, постигнуть все тайны менеджмента, и вообще, почувствовать себя в IT, как рыба в воде, то заходите в https://t.ly/3RQBu, будет интересно! | 1 620 | 4 | Loading... |
37 Вышла новая gcrypt - https://www.opennet.ru/opennews/art.shtml?num=61405
И я как раз хотел было написать по этому поводу, что "больше всего на всете я люблю, когда проекты копипастят друг у друга код", потому что:
ld.lld: error: duplicate symbol: gf_mul
>>> defined at f_impl64.c
>>> libcrypto-lib-f_impl64.o:(gf_mul) in archive libcrypto.a
>>> defined at mceliece6688128f.c
>>> mceliece6688128f.o:(.text+0x0) in archive libgcrypt.a
Но потом не поленился провести фактчекинг, и, должен сказать, что вот, просто так совпало. Код про что-то такое похожее, но совершенно разный.
В случае сборки в .so вероятность пересечения не очень велика, потому что всякие внутренние символы можно скрыть из интерфейса .so, а вот со статической линковкой такое ловится довольно часто. | 1 558 | 2 | Loading... |
38 Media files | 1 378 | 18 | Loading... |
Removed white supremacist language.
Truly independent web browser. Contribute to LadybirdBrowser/ladybird development by creating an account on GitHub.
git clone https://skia.googlesource.com/skia.git
# or
# fetch skia
cd skia
python3 tools/git-sync-deps
Это решает первую проблему.
А вторую проблему решает то, что там лежат экспортированные в GN сборочные файлы от Bazel.
GN - это тоже такая система сборки от Google, она написана на C++, и нормально у меня #bootstrap
Ну и, так как Гугл совершенно не заинтересован в распрстранении этой либы, то у нее нет таргета make install
, раскладывать по файловой системе все приходится ручками, кто во что горазд:
https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=skia-git#n82
skia я собрал, а вот #ladybird - пока нет, потому что там еще много чего "странного", о чем в следующих сериях.2D Graphics Library
Фёдор Индутный (Fedor Indutny), автор платформы Io.js (форк Node.js), входящий в технический комитет, управляющий разработкой Node.js, попытался привлечь внимание к проблеме с назначением CVE-идентификаторов некорректным отчётам об уязвимостях, не соответствующим действительности или неадекватно представляющим уровень опасности. Номер CVE, применяемый для идентификации уязвимости, присваивается без должной проверки и без консультации с разработчиками уязвимых программ, что приводит к появлению злоупотреблений, в которых под видом опасных уязвимостей преподносятся несущественные ошибки, на деле не представляющие угрозу безопасности.
We've created a US non-profit to develop Ladybird into a truly independent web browser...
Ваш текущий тарифный план позволяет посмотреть аналитику только 5 каналов. Чтобы получить больше, выберите другой план.