Запилил ix respawn https://github.com/pg83/ix/blob/main/pkgs/bin/ix/respawn/unwrap/main.c
Это такая штука, которая ищет бинарник ix "где-то" (например, во всех предках текущей директории), и вызывает его с переданными аргументами.
Довольно общая штука для всякого рода инструментов, которые не привязаны к рутовой файловой системе и к PATH.
Запилил и запилил, но у нее был какой-то конский размер, несколько сот килобайт. Я подумал, что меня за это зачморят старшие товарищи, и всю жизнь будут тыкать палочкой, мол, "ерунда эта ваша статическая линковка".
Ужал ее размер до 10к, можно было и меньше, но уже было лень.
Как?
* Выпилил stdio, он даже в musl довольно большой. Оставил только сисколлы и строковые функции.
* Не освобождаю память. А зачем это делать в one shot тулзах?
* Заменил аллокатор. Даже самый тонкий аллокатор давал footprint порядка 50 - 200к. Заменил его на bump allocator своего изготовления - https://github.com/pg83/ix/blob/main/pkgs/lib/bumpalloc/alloc.c
Чем он интересен?
* В нем нет ни единого syscall, потому что он распределяет память из заранее выделенного в программе массива.
* Ну и вообще, он не зависит от libc.
Это все довольно странные свойства, но мне он как-то понадобился в цепочке bootstrap - знаете, когда ты собираешь аллокатор, а он в процессе сборки хочет собрать какую-то программу и запустить ее. В этот момент нам нужен аллокатор попроще, я и запилил эту ерундовину.
Прикольная штука, в хозяйстве уже пригодилась не раз.
Это такая штука, которая ищет бинарник ix "где-то" (например, во всех предках текущей директории), и вызывает его с переданными аргументами.
Довольно общая штука для всякого рода инструментов, которые не привязаны к рутовой файловой системе и к PATH.
Запилил и запилил, но у нее был какой-то конский размер, несколько сот килобайт. Я подумал, что меня за это зачморят старшие товарищи, и всю жизнь будут тыкать палочкой, мол, "ерунда эта ваша статическая линковка".
Ужал ее размер до 10к, можно было и меньше, но уже было лень.
Как?
* Выпилил stdio, он даже в musl довольно большой. Оставил только сисколлы и строковые функции.
* Не освобождаю память. А зачем это делать в one shot тулзах?
* Заменил аллокатор. Даже самый тонкий аллокатор давал footprint порядка 50 - 200к. Заменил его на bump allocator своего изготовления - https://github.com/pg83/ix/blob/main/pkgs/lib/bumpalloc/alloc.c
Чем он интересен?
* В нем нет ни единого syscall, потому что он распределяет память из заранее выделенного в программе массива.
* Ну и вообще, он не зависит от libc.
Это все довольно странные свойства, но мне он как-то понадобился в цепочке bootstrap - знаете, когда ты собираешь аллокатор, а он в процессе сборки хочет собрать какую-то программу и запустить ее. В этот момент нам нужен аллокатор попроще, я и запилил эту ерундовину.
Прикольная штука, в хозяйстве уже пригодилась не раз.
GitHub
ix/pkgs/bin/ix/respawn/unwrap/main.c at main · pg83/ix
ix package manager. Contribute to pg83/ix development by creating an account on GitHub.
👍11🔥10❤3🏆2😐2🤔1
commit -m "better"
Потихоньку собираю запчасти, которые я использую, в единое целое. Ну, вот, знаете, чтобы ссылки из разных программ открывались единообразно, чтобы привязки программ к типам файлов работали единообразно (без специальных настроек), и так далее. Для этого начал…
"блеск и нищета С"
Еще одной причиной, почему я решил запилить свой портал - это качество существующих решений.
Я, перед тем, как начать говнокодить, прочел исходники wlr portal, от simon ser'а, и это тот еще говнокод:
* race condition - https://github.com/emersion/xdg-desktop-portal-wlr/blob/master/src/screenshot/screenshot.c#L120https://github.com/emersion/xdg-desktop-portal-wlr/blob/master/src/screenshot/screenshot.c#L120
* утечка номер раз - https://github.com/emersion/xdg-desktop-portal-wlr/blob/master/src/screenshot/screenshot.c#L133
* утечка номер два - https://github.com/emersion/xdg-desktop-portal-wlr/blob/master/src/screenshot/screenshot.c#L273 (тут их две - одна - при ошибке в выделении памяти, а вторая, более серьезная - если кто-то не позовет remote Close() на созданный хендл xdpw_*)
Ну и решил, что мне это не нужно.
Еще одной причиной, почему я решил запилить свой портал - это качество существующих решений.
Я, перед тем, как начать говнокодить, прочел исходники wlr portal, от simon ser'а, и это тот еще говнокод:
* race condition - https://github.com/emersion/xdg-desktop-portal-wlr/blob/master/src/screenshot/screenshot.c#L120https://github.com/emersion/xdg-desktop-portal-wlr/blob/master/src/screenshot/screenshot.c#L120
* утечка номер раз - https://github.com/emersion/xdg-desktop-portal-wlr/blob/master/src/screenshot/screenshot.c#L133
* утечка номер два - https://github.com/emersion/xdg-desktop-portal-wlr/blob/master/src/screenshot/screenshot.c#L273 (тут их две - одна - при ошибке в выделении памяти, а вторая, более серьезная - если кто-то не позовет remote Close() на созданный хендл xdpw_*)
Ну и решил, что мне это не нужно.
GitHub
xdg-desktop-portal-wlr/src/screenshot/screenshot.c at master · emersion/xdg-desktop-portal-wlr
xdg-desktop-portal backend for wlroots. Contribute to emersion/xdg-desktop-portal-wlr development by creating an account on GitHub.
👍8🤔3🤡3
https://j3s.sh/thought/write-posix-shell.html
Хороший текст про shell, например.
Полностью согласен с "simply: because shell is an insanely productive language. in fact, i believe that shell is the *most* productive language"
У меня, когда я пишу на shell, в голове всегда борются два начала:
* чистоплюйское, которое говорит, что надо писать на языках, в которых команды пишутся вот так: ['x', 'y', 'z'], потому что не надо думать про пути, про escaping, и про прочую хрень, которая всегда мешает в sh.
и
* getting things done, которое говорит мне, что, если я напишу "x y z", то я сделаю работу в 10 раз быстрее, хотя и не без потенциальных косяков.
Для кода, который пишется один раз, и который потом проще переписать, чем аугментировать, shell куда как продуктивнее.
Очень рад, что, еще на ранней стадии развития #ix, выкинул все попытки погрузить проблематику в скрипты на python, потому что я бы не успел сделать все то, что сделал к текущему моменту времени, если бы выбрал homebrew/nix-like подход.
Хороший текст про shell, например.
Полностью согласен с "simply: because shell is an insanely productive language. in fact, i believe that shell is the *most* productive language"
У меня, когда я пишу на shell, в голове всегда борются два начала:
* чистоплюйское, которое говорит, что надо писать на языках, в которых команды пишутся вот так: ['x', 'y', 'z'], потому что не надо думать про пути, про escaping, и про прочую хрень, которая всегда мешает в sh.
и
* getting things done, которое говорит мне, что, если я напишу "x y z", то я сделаю работу в 10 раз быстрее, хотя и не без потенциальных косяков.
Для кода, который пишется один раз, и который потом проще переписать, чем аугментировать, shell куда как продуктивнее.
Очень рад, что, еще на ранней стадии развития #ix, выкинул все попытки погрузить проблематику в скрипты на python, потому что я бы не успел сделать все то, что сделал к текущему моменту времени, если бы выбрал homebrew/nix-like подход.
👍9👌5
Я просто оставлю это здесь:
https://www.cnews.ru/news/top/2023-03-01_ssha_pytaetsya_razvalit_mir
"США медленно, но верно закрывает доступ к открытому коду своему главному технологическому конкуренту — Китаю"
"Кроме того, ничто не мешает сотруднику китайской разведки загружать OSS, находясь за границей. И все же, учитывая испорченные отношения между западом и востоком, кажется неизбежным, что западные демократии начнут мешать Китаю получить бесплатный код, они могут попросту сократить его производство"
Сука, что творится в головах у этих людей?
https://www.cnews.ru/news/top/2023-03-01_ssha_pytaetsya_razvalit_mir
"США медленно, но верно закрывает доступ к открытому коду своему главному технологическому конкуренту — Китаю"
"Кроме того, ничто не мешает сотруднику китайской разведки загружать OSS, находясь за границей. И все же, учитывая испорченные отношения между западом и востоком, кажется неизбежным, что западные демократии начнут мешать Китаю получить бесплатный код, они могут попросту сократить его производство"
Сука, что творится в головах у этих людей?
CNews.ru
США уничтожают единый мир Open Source. Разработку разваливают на восточный и западный лагеря - CNews
США медленно, но верно закрывает доступ к открытому коду своему главному технологическому конкуренту — Китаю....
🤡15😁4🤬4🐳2
commit -m "better"
https://www.phoronix.com/news/Linux-DRM-Process-Start-With-X Опять кто-то возбухает про хак про определение имени процесса, и выключении какой-то функциональности в ядре, если есть совпадение. Так-то это нормальная практика, я несколько раз писал, что это…
#mesa
Вот пример точно такого же (неприятного) поведения в винде, тоже в драйверах GPU - https://habr.com/ru/company/yandex/blog/721374/
Хаки над хаками, а потом драйвера научатся понимать что-то про "хаки над хаками", и нахуевертят еще всякого говна.
Вот пример точно такого же (неприятного) поведения в винде, тоже в драйверах GPU - https://habr.com/ru/company/yandex/blog/721374/
Хаки над хаками, а потом драйвера научатся понимать что-то про "хаки над хаками", и нахуевертят еще всякого говна.
Хабр
Название имеет значение: как получить оптимизацию, переименовав браузер
Всем привет! Меня зовут Максим Смирнов, я руковожу командой, которая работает над производительностью Яндекс Браузера и отвечает за его графическую подсистему. В этой статье я расскажу об одном...
🤯5❤3😁3😱2💩1🐳1🌚1
https://www.audioasylum.com/messages/pcaudio/119979/
Украдено у https://discuss.systems/@dan/110008052977994607, пишут, что С++ звучит лучше, чем malloc()
Вы знали? Я раньше не знал, знал только, что провода надо брать специальные, за 5K$.
Украдено у https://discuss.systems/@dan/110008052977994607, пишут, что С++ звучит лучше, чем malloc()
Вы знали? Я раньше не знал, знал только, что провода надо брать специальные, за 5K$.
discuss.systems
Dan Ports (@dan@discuss.systems)
This is your periodic reminder that 10 years ago an audiophile forum started debating which versions of memcpy had the highest sound quality.
And that C++ new sounds better than malloc.
https://www.audioasylum.com/messages/pcaudio/119979/
And that C++ new sounds better than malloc.
https://www.audioasylum.com/messages/pcaudio/119979/
😁8🤡6🔥3🐳2🤔1
commit -m "better"
https://lore.kernel.org/all/20230314103316.313e5f61@kernel.org/
Продолжение темы на phoronix: https://www.phoronix.com/news/Linux-STMAC-Russian-Sanctions
Горячо, конечно, в каментах - https://www.phoronix.com/forums/forum/phoronix/latest-phoronix-articles/1378146-linux-kernel-networking-driver-development-impacted-by-russian-sanctions, их число растет быстрее, чем я читаю.
Горячо, конечно, в каментах - https://www.phoronix.com/forums/forum/phoronix/latest-phoronix-articles/1378146-linux-kernel-networking-driver-development-impacted-by-russian-sanctions, их число растет быстрее, чем я читаю.
Phoronix
Linux Kernel Networking Driver Development Impacted By Russian Sanctions
The US and western government sanctions around the Russian government and its defense industry/companies due to their war in Ukraine has caused interesting issues in the open-source world
🤯6👍4🤔2🤮1
https://www.phoronix.com/news/Codon-Faster-Python
https://www.opennet.ru/opennews/art.shtml?num=58395
Судя по всему, какая-то горячая тема, что-то по типу #nuitka/cython/etc.
По мне так https://github.com/exaloop/codon - начали за здравие, а кончили уже не так оптимистично.
Любой, любой такой проект сразу, на первой странице, должен говорить, поддерживает ли он стандартные протоколы питона, или нет.
Ну вот реально - если там семантика лукапа методов такая же как в cpython (через 5 лукапов в dict, а иногда и еще больше), то там нет простора для оптимизаций, они всем давно известны, и реализованы в том же pypy.
А если стандартные протоколы не реализованы, и x.y - это что-то другое, нежели в cpython - ну да, можно сделать быстро, но интересный код там не выполнить.
https://www.opennet.ru/opennews/art.shtml?num=58395
Судя по всему, какая-то горячая тема, что-то по типу #nuitka/cython/etc.
По мне так https://github.com/exaloop/codon - начали за здравие, а кончили уже не так оптимистично.
Любой, любой такой проект сразу, на первой странице, должен говорить, поддерживает ли он стандартные протоколы питона, или нет.
Ну вот реально - если там семантика лукапа методов такая же как в cpython (через 5 лукапов в dict, а иногда и еще больше), то там нет простора для оптимизаций, они всем давно известны, и реализованы в том же pypy.
А если стандартные протоколы не реализованы, и x.y - это что-то другое, нежели в cpython - ну да, можно сделать быстро, но интересный код там не выполнить.
Phoronix
Codon Looks Very Promising For Super-Fast Python Code
While there is Pyston, PyPy, and various other alternative Python implementations being done in the name of performance, Codon is one of the newer ones and is talking up 10~100x faster performance.
👍8
Есть такая очень смешная шутка - "мне не нужен язык с GC, потому что моя программа не производит мусора".
Достаточно понятная и глубокая мысль - вместо того, чтобы героически решать какую-то искуственную проблему, прежде всего нужно сделать так, чтобы эта проблема не появилась.
К чему это я?
С-style printf - страшное говнище.
И не потому, что страшные и глючные varargs от C, а по очень простой баге в дизайне - способ форматирования, и аргументы для этого способа задаются отдельно, что приводит к тому, что очень легко нарушить какой-то инвариант.
Например, по числу аргументов - printf("%d %d", 1). Или по несовпадению типов аргументов.
Мой поинт в том, что, конечно, можно героически пытаться решить эти проблемы, как пытается делать compile time std::format в С++ (тоже, очевидно, страшное говнище, как наследник C printf), а можно сделать так, чтобы такое нарушение инварианта не могло возникнуть в принципе.
Мне известно два способа сделать это:
* f-strings в куче языков, f"{a} {b} {a}"
* std iostreams в С++. У них есть свои проблемы (например, они stateful), но вот класс проблем выше в них не может возникнуть: cout<<a<<" "<<b<<" "a;
Если вы приглядитесь, то поймете, что суть этих двух подходов совершенно одинакова, просто первый подход часть работы по токенизации делает чуть более удобной.
Вот их и надо использовать. В С++, конечно, лучше взять стороннюю реализацию потоков, которая не будет делать миллиарды inline вызовов, приводя к ухудшению времени компиляции и разбуханию кода.
А то, что std::format в текущем виде попал в стандарт, это, конечно, стыд и срам С++. Вот, реально, мало что хорошо было сделано в С++, ну так синтаксис форматированного вывода был сделан неплохо, надо было его и улучшать, в сторону f-strings, которые могли выглядеть "как в python", но, under the hood, превращаясь в вызов operator<<.
Если имеете возможность - не используйте C printf-like форматирование, нигде. Это очевидная ошибка дизайна из 70-х годов, которую упертые фанатики тащат в каждый новый язык.
Достаточно понятная и глубокая мысль - вместо того, чтобы героически решать какую-то искуственную проблему, прежде всего нужно сделать так, чтобы эта проблема не появилась.
К чему это я?
С-style printf - страшное говнище.
И не потому, что страшные и глючные varargs от C, а по очень простой баге в дизайне - способ форматирования, и аргументы для этого способа задаются отдельно, что приводит к тому, что очень легко нарушить какой-то инвариант.
Например, по числу аргументов - printf("%d %d", 1). Или по несовпадению типов аргументов.
Мой поинт в том, что, конечно, можно героически пытаться решить эти проблемы, как пытается делать compile time std::format в С++ (тоже, очевидно, страшное говнище, как наследник C printf), а можно сделать так, чтобы такое нарушение инварианта не могло возникнуть в принципе.
Мне известно два способа сделать это:
* f-strings в куче языков, f"{a} {b} {a}"
* std iostreams в С++. У них есть свои проблемы (например, они stateful), но вот класс проблем выше в них не может возникнуть: cout<<a<<" "<<b<<" "a;
Если вы приглядитесь, то поймете, что суть этих двух подходов совершенно одинакова, просто первый подход часть работы по токенизации делает чуть более удобной.
Вот их и надо использовать. В С++, конечно, лучше взять стороннюю реализацию потоков, которая не будет делать миллиарды inline вызовов, приводя к ухудшению времени компиляции и разбуханию кода.
А то, что std::format в текущем виде попал в стандарт, это, конечно, стыд и срам С++. Вот, реально, мало что хорошо было сделано в С++, ну так синтаксис форматированного вывода был сделан неплохо, надо было его и улучшать, в сторону f-strings, которые могли выглядеть "как в python", но, under the hood, превращаясь в вызов operator<<.
Если имеете возможность - не используйте C printf-like форматирование, нигде. Это очевидная ошибка дизайна из 70-х годов, которую упертые фанатики тащат в каждый новый язык.
👍12🤔7👎4🔥3🤮2🐳1
#раньшевсех
Вышел новый llvm. https://github.com/llvm/llvm-project/releases/tag/llvmorg-16.0.0
Я, конечно, проснулся с уже обновленным на него ноутбуком, и ничего такого не случилось.
Так же вышел #gnome 44. Вроде, нигде еще не написали, но он уже вышел, как говорится, "круги по воде" - зафризили версию новой libadwaita, webkitgtk получил новый stable (2.40.0), ну и теги местами расставили.
Вышел новый llvm. https://github.com/llvm/llvm-project/releases/tag/llvmorg-16.0.0
Я, конечно, проснулся с уже обновленным на него ноутбуком, и ничего такого не случилось.
Так же вышел #gnome 44. Вроде, нигде еще не написали, но он уже вышел, как говорится, "круги по воде" - зафризили версию новой libadwaita, webkitgtk получил новый stable (2.40.0), ну и теги местами расставили.
GitHub
Release LLVM 16.0.0 · llvm/llvm-project
LLVM 16.0.0 Release
👍6
commit -m "better"
В комментариях как раз обсуждали landlock, и на тебе, Justin подогнала gnu make + landlock: #justine https://justine.lol/make/ TL;DR; - make сам ограничивает свои ноды выполнения по тому, куда им можно писать и что можно читать. ЖЫР: "To demonstrate this…
Видимо, Жастин вполне осознано троллирует почтеннейшую публику своими изысканиями, иначе я более никак не могу объяснить вот этот текст - https://justine.lol/rusage/ #justine
Казалось бы, запилила портабельный rusage в своей cosmopolitan libc, ну и ладно.
Но нет, надо показать, как он работает именно на коде датасатанистов:
"The usefulness of this tool becomes apparent when running beefier programs, like an artificial general intelligence model with thirteen billion parameters. Here's what happens if we use llama.cpp to load Facebook's 13B LLaMA model."
Либо код от датасатанистов особенно хорошо оптимизируем (что не удивительно), либо это вполне осознанный способ проехаться на хайпе от ML, как раньше получилось у python.
Казалось бы, запилила портабельный rusage в своей cosmopolitan libc, ну и ладно.
Но нет, надо показать, как он работает именно на коде датасатанистов:
"The usefulness of this tool becomes apparent when running beefier programs, like an artificial general intelligence model with thirteen billion parameters. Here's what happens if we use llama.cpp to load Facebook's 13B LLaMA model."
Либо код от датасатанистов особенно хорошо оптимизируем (что не удивительно), либо это вполне осознанный способ проехаться на хайпе от ML, как раньше получилось у python.
justine.lol
Portable rusage command
The best tool for reporting command resource usage across platforms.
👍7😁2
AI-generated пресс-релиз для #stal/ix.
Запрос:
"Write press-release for alpha version of stal/IX - statically linked, source based, bootstrapped rolling Linux, based on IX package manager with Nix-inspired file system layout"
Кожаные не нужны не то что завтра, а уже даже сегодня:
"FOR IMMEDIATE RELEASE
Alpha Version of Stal/IX: The Future of Linux is Here
Stal/IX, the new statically linked, source-based, bootstrapped rolling Linux operating system, is pleased to announce the release of its alpha version. Based on the popular IX package manager, Stal/IX offers a cutting-edge file system layout inspired by Nix which provides users with a modern, streamlined, and efficient experience.
Stal/IX is a completely new take on Linux, offering an innovative approach to package management and distribution. Unlike traditional Linux distributions that rely on dynamic linking and shared libraries, Stal/IX is statically linked, meaning that it includes all of the libraries needed to run the operating system and its applications. This approach provides numerous benefits, including increased security, better performance, and simpler management.
Stal/IX also features a source-based build system, which allows users to compile their packages from source code, providing them with complete control over their system. This approach also ensures that packages are optimized for the user's specific hardware, resulting in faster and more efficient performance.
One of the most exciting features of Stal/IX is its bootstrapped rolling release model. This means that the operating system is constantly updated with the latest software, without the need for major version upgrades. This ensures that users always have access to the latest features and security updates.
In addition, Stal/IX features a file system layout inspired by Nix, which allows for efficient management of packages and dependencies. The file system is organized in a way that allows for easy rollback to previous versions, making it an ideal platform for development and experimentation.
"We're thrilled to release the alpha version of Stal/IX," said the Stal/IX development team. "We believe that our innovative approach to package management and distribution will provide users with a faster, more secure, and more efficient Linux experience."
The alpha version of Stal/IX is available for download now. For more information, please visit the Stal/IX website at<https://stalix.org/> https://stal-ix.github.io/.
About Stal/IX:
Stal/IX is a new statically linked, source-based, bootstrapped rolling Linux operating system "
Запрос:
"Write press-release for alpha version of stal/IX - statically linked, source based, bootstrapped rolling Linux, based on IX package manager with Nix-inspired file system layout"
Кожаные не нужны не то что завтра, а уже даже сегодня:
"FOR IMMEDIATE RELEASE
Alpha Version of Stal/IX: The Future of Linux is Here
Stal/IX, the new statically linked, source-based, bootstrapped rolling Linux operating system, is pleased to announce the release of its alpha version. Based on the popular IX package manager, Stal/IX offers a cutting-edge file system layout inspired by Nix which provides users with a modern, streamlined, and efficient experience.
Stal/IX is a completely new take on Linux, offering an innovative approach to package management and distribution. Unlike traditional Linux distributions that rely on dynamic linking and shared libraries, Stal/IX is statically linked, meaning that it includes all of the libraries needed to run the operating system and its applications. This approach provides numerous benefits, including increased security, better performance, and simpler management.
Stal/IX also features a source-based build system, which allows users to compile their packages from source code, providing them with complete control over their system. This approach also ensures that packages are optimized for the user's specific hardware, resulting in faster and more efficient performance.
One of the most exciting features of Stal/IX is its bootstrapped rolling release model. This means that the operating system is constantly updated with the latest software, without the need for major version upgrades. This ensures that users always have access to the latest features and security updates.
In addition, Stal/IX features a file system layout inspired by Nix, which allows for efficient management of packages and dependencies. The file system is organized in a way that allows for easy rollback to previous versions, making it an ideal platform for development and experimentation.
"We're thrilled to release the alpha version of Stal/IX," said the Stal/IX development team. "We believe that our innovative approach to package management and distribution will provide users with a faster, more secure, and more efficient Linux experience."
The alpha version of Stal/IX is available for download now. For more information, please visit the Stal/IX website at
About Stal/IX:
Stal/IX is a new statically linked, source-based, bootstrapped rolling Linux operating system "
🔥32😐10👍9🤮1
https://www.opennet.ru/opennews/art.shtml?num=58820
https://www.fsf.org/news/free-software-awards-winners-announced-eli-zaretskii-tad-skewedzeppelin-gnu-jami
FSF объявило "Free Software Awards winners".
Я, конечно, сильно удивлен, что в списке нет одной там компании на букву "Я".
Если серьезно - то все это, конечно, грустно, не более.
https://www.fsf.org/news/free-software-awards-winners-announced-eli-zaretskii-tad-skewedzeppelin-gnu-jami
FSF объявило "Free Software Awards winners".
Я, конечно, сильно удивлен, что в списке нет одной там компании на букву "Я".
Если серьезно - то все это, конечно, грустно, не более.
www.opennet.ru
Фонд СПО объявил обладателей ежегодной премии за вклад в развитие свободного ПО
На конференции LibrePlanet 2023 состоялась церемония награждения, на которой объявлены лауреаты ежегодной премии "Free Software Awards 2022", учрежденной Фондом свободного ПО (FSF) и присуждаемой людям, внесшим наиболее значительный вклад в развитие свободного…
😁14
https://habr.com/ru/company/yandex/blog/721526/
Яндекс выложил YT в open source, и это очень круто.
Теперь YT - лучший MR, доступный на рынке. Hadoop? Не смешите мои тапочки, пожалуйста.
Ну и, помимо MR, там есть много вкусного - динамические таблицы, которые, на мой взгляд, делают mongo db obsolete, и божественный Кипарис, который, если суметь поднять отдельно от YT, лучшая замена zk/etcd/прочим oss поделкам.
Яндекс выложил YT в open source, и это очень круто.
Теперь YT - лучший MR, доступный на рынке. Hadoop? Не смешите мои тапочки, пожалуйста.
Ну и, помимо MR, там есть много вкусного - динамические таблицы, которые, на мой взгляд, делают mongo db obsolete, и божественный Кипарис, который, если суметь поднять отдельно от YT, лучшая замена zk/etcd/прочим oss поделкам.
Хабр
YTsaurus: основная система для хранения и обработки данных Яндекса теперь open source
Привет! Меня зовут Максим Бабенко, я руковожу отделом технологий распределённых вычислений в Яндексе. Сегодня мы выложили в опенсорс платформу YTsaurus — одну из основных инфраструктурных...
🔥61👍8❤3❤🔥1
Ко мне в трекер зашел совершенно незнакомый человек, https://github.com/stal-ix/ix/issues/77
Откуда, как услышал про IX - вообще непонятно!
Скажите, а у вас есть опытbootstrap расрутки OSS проекта?
Куда стоит/можно написать про #stal/ix?
Есть понятные площадки, типа lobste.rs, HN, phoronix, distrowatch, но у них свои заморочки.
Откуда, как услышал про IX - вообще непонятно!
Скажите, а у вас есть опыт
Куда стоит/можно написать про #stal/ix?
Есть понятные площадки, типа lobste.rs, HN, phoronix, distrowatch, но у них свои заморочки.
GitHub
Relationship between Nix and this project · Issue #77 · stal-ix/ix
Nix is a declarative, reproducible package manager based on a PhD thesis by Eelco Dolstra et. al. published in 2004. It operates its /nix/store filled with hashed paths -- just like IX. Is this pro...
🔥9❤5👍2😐1🍾1
https://github.com/GNOME/adwaita-icon-theme/tags
Список версий adwaita icon theme (это тема с иконками по умолчанию):
44.0
43
42.0
41.0
...
Чувствуется рука мастера!
(вот по таким мелочам, кстати, хорошо видно, где релизные процессы автоматизированы, а где - нет)
Список версий adwaita icon theme (это тема с иконками по умолчанию):
44.0
43
42.0
41.0
...
Чувствуется рука мастера!
(вот по таким мелочам, кстати, хорошо видно, где релизные процессы автоматизированы, а где - нет)
GitHub
Tags · GNOME/adwaita-icon-theme
Read-only mirror of https://gitlab.gnome.org/GNOME/adwaita-icon-theme - Tags · GNOME/adwaita-icon-theme
😁8👍4
Мне кажется, одно из самых сильных удовольствий, доставляемых программированием - это "соединить несоединимое". #herobora
Вот, есть текстовый браузер links http://links.twibright.com/, в нем как бы есть графический режим, но он застрял на linux frame buffer.
Wayland?Да вы чо, ебу дали? Ага, конечно.
Я взял https://devel.dob.sk/links-sdl/ - это набор патчей для links, которые так и не вошли в основную ветку (или, точнее, вошли, а потом их неаккуратно выпилили, ссылку не дам, потому что не нашел links в каком-нить git)
Патч был написан в 2004 году, так просто он под современный links не подошел, но я его творчески доработал - https://github.com/pg83/ix/blob/main/pkgs/bin/links/sdl/sdl.c
Особенно мне доставила строчка https://github.com/pg83/ix/blob/main/pkgs/bin/links/sdl/sdl.c#L381 - я не понимаю, что она значит, но без нее ничего не работало, а скопировал я ее из соседнего драйвера.
Хитрым хаком добавил этот драйвер в сборку - https://github.com/pg83/ix/blob/main/pkgs/bin/links/sdl/ix.sh#L27 . По сути, просто подменил уже встроенный в сборку драйвер на свой, чтобы не возиться со сборочными файлами.
На картинке - links, запущенный поверх SDL1-compat, который является враппером над SDL2, который работает поверх wayland. Классический SDL1 под wayland не работает.
Обратите внимание на то, что там настоящие картинки и шрифты, и что это wayland сессия. Как обычно, делаю скриншот телефоном, чтобы было видно, что все это добро работает на реальном железе!
Вот, есть текстовый браузер links http://links.twibright.com/, в нем как бы есть графический режим, но он застрял на linux frame buffer.
Wayland?
Я взял https://devel.dob.sk/links-sdl/ - это набор патчей для links, которые так и не вошли в основную ветку (или, точнее, вошли, а потом их неаккуратно выпилили, ссылку не дам, потому что не нашел links в каком-нить git)
Патч был написан в 2004 году, так просто он под современный links не подошел, но я его творчески доработал - https://github.com/pg83/ix/blob/main/pkgs/bin/links/sdl/sdl.c
Особенно мне доставила строчка https://github.com/pg83/ix/blob/main/pkgs/bin/links/sdl/sdl.c#L381 - я не понимаю, что она значит, но без нее ничего не работало, а скопировал я ее из соседнего драйвера.
Хитрым хаком добавил этот драйвер в сборку - https://github.com/pg83/ix/blob/main/pkgs/bin/links/sdl/ix.sh#L27 . По сути, просто подменил уже встроенный в сборку драйвер на свой, чтобы не возиться со сборочными файлами.
На картинке - links, запущенный поверх SDL1-compat, который является враппером над SDL2, который работает поверх wayland. Классический SDL1 под wayland не работает.
Обратите внимание на то, что там настоящие картинки и шрифты, и что это wayland сессия. Как обычно, делаю скриншот телефоном, чтобы было видно, что все это добро работает на реальном железе!
🔥29👌5👏3👍2🐳2