cookie

نحن نستخدم ملفات تعريف الارتباط لتحسين تجربة التصفح الخاصة بك. بالنقر على "قبول الكل"، أنت توافق على استخدام ملفات تعريف الارتباط.

avatar

commit -m "better"

just random thoughts

إظهار المزيد
مشاركات الإعلانات
1 866
المشتركون
-224 ساعات
+107 أيام
+3930 أيام
توزيع وقت النشر

جاري تحميل البيانات...

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.
Views Sources
تحليل النشر
المشاركاتالمشاهدات
الأسهم
ديناميات المشاهدات
01
Исследование: просмотр мемов во время рабочего дня улучшает производительность Теперь ты знаешь, чем заняться на работе
70835Loading...
02
ё
150Loading...
03
В 2024 стыдно не уметь программировать! Если вам хочется быстро вкатиться в IT, разобраться в тонкостях ядра Linux, научиться писать красивый код на Rust/Python/Go/C++, постигнуть все тайны менеджмента, и вообще, почувствовать себя в IT, как рыба в воде, то заходите в https://t.ly/3RQBu, будет интересно!
9534Loading...
04
Вышла новая 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, а вот со статической линковкой такое ловится довольно часто.
9572Loading...
05
Media files
87115Loading...
06
Ну, допустим, #meme про изучение #rust. (thanks @bapho_bush)
93726Loading...
07
Media files
1 00624Loading...
08
Так и работаем
1 01425Loading...
09
Neofetch developer archives all his repositories: "Have taken up farming" Article, Comments
1 0128Loading...
10
#runit, будни #bootstrap, #herobora. У используемого и нежно любимого мной runit есть одна неприятная особенность (врочем, как и у остальных init-ов, унаследованных от daemontools). Он хочет безусловно портить струткуру директорий, в которых лежат сервисы. Простыми словами - он создает директорию ./supervisor, рядом с каждым файликом run каждого сервиса. Там он хранит состояние управляемого сервиса, и прочую лабудень. Контрольки сервисов (./run файлы) у меня лежат в /etc, которая есть ссылка на какую-то папку в content addressable store. Из этого следует простой вывод - runit у меня "портил" (и продолжает портить) папки (и данные) в cas, чего допускать, конечно, нельзя. Я обкатывал несколько разных решений этой проблемы, которые, так или иначе, сводились к "теневой" копии сервисов из /etc "куда-то", где можно писать. Например, регулярным копированием /etc/services куда-то в /var/run/, или, вот, с помощью rw overlay unionfs куда-то в tmpfs. Короче, совершенно всратые решения, ошметки которых я даже не хочу показывать. В общем, после нескольких лет попыток придумать что-то не столь всратое, я плюнул, и переписал runsvdir - это часть runit, которая отвечает именно за управление деревом процессов. Эдакий сплав (она же херобора) из обычного runit для pid1, и моей запчасти, с таким же интерфейсом, ее так же зовут скрипты инициализации runit, но с нужной мне семантикой. Та-да-да-дам! https://github.com/stal-ix/ix/blob/main/pkgs/bin/ix/runsvdir/run.py Да, на python, потому что для прототипирования python подходит очень хорошо, и я уже смирился с тем, что он у меня есть в базовой системе (при этом я упаковал в один бинарь со всеми зависимостями, поэтому он не мозолит глаза своей россыпью файлов по всей fs). Когда его семантика устаканится, перепишу на go, или даже на rust (не хочет кто-то взяться? там строк 50-100 идиоматичного rust-о кода должно быть). Что я могу сказать? * Мне кажется, это самый компактный супервизор процессов, который я когда-либо видел/делал, при этом, с приличным набором фич. Он умеет пасти структуру директорий, такую же, как у runit, но ничего не пишет на диск. Сервисы могут добавляться и убираться "на лету". * Удивительно, но я вот написал этот скриптец, ребутнул машину, ожидая debug и recovery окирпиченного хоста, но ничего такого не случилось - все завелось сразу, с полпинка, потому что поверхность у runsvdir - очень простая и компактная. * В принципе, теперь я могу там запилить недостающие фичи из runit, типа динамически создаваемых юнитов. Захочу ли - пока не знаю.
1 0125Loading...
11
https://bugs.gentoo.org/934513 https://mathstodon.xyz/@bremner/112615591101488528 It is found that "systemd-tmpfiles --purge" will delete /home in systemd 256. Красота же!
1 58829Loading...
12
Работа с чужим кодом 8️⃣ Programmer memes
1 00460Loading...
13
Media files
1 04737Loading...
14
4,5 мегабайта данных в 62 500 перфокартах, 1955 год
1 1746Loading...
15
Media files
1 09529Loading...
16
BTW, я перешел на lm-sensors "от Васяна", потому что у него там какая-то жизнь и багфиксы, а в основной репе - тлен и забвение.
1 1314Loading...
17
Media files
1 19019Loading...
18
Эволюция 8️⃣ Programmer memes
1 23535Loading...
19
#evince Оказывается, я пропустил важную новость! TL;DR - разработчики устали от того, что не могут несколько лет затащить GTK4 port в evince, и потому форкнули его, теперь это GNOME Papers. https://www.phoronix.com/news/GNOME-Papers-GTK4-Evince-Fork https://gitlab.gnome.org/GNOME/evince/-/merge_requests/373 - многострадальный PR Офигеть какое там упорство у чувака, который несколько ЛЕТ ребейзил свой порт поверх основной кодовой базы, а еще как-то умудрялся реализовывать хотелки, которые то и дело возникали у главного (и единственного) мейнтейнера, а иногда и просто у "левых" чуваков - https://gitlab.gnome.org/GNOME/evince/-/merge_requests/373#note_1766944: "In libview/ev-jobs.h I don't like that you completely remove the cairo renderer. Maybe you don't need it in evince/shell anymore, but this is a library that can be used by other things, and I still have a need for the cairo render job. Let's put it back, maybe as EvJobRenderCairo and rename the other one as EvRenderJobTexture" Реально, чувак стер неиспользуемый код, чтобы не портировать его, а тут какой-то хуй с горы просит его код не стирать, потому что, дескать, он его где-то заиспользовал. https://blogs.gnome.org/pabloyoyoista/2024/01/26/on-how-to-fork-a-gnome-core-app-without-meaning-to-do-so/ Ну и, когда стало понятно, что старый мейнтейнер не хочет принимать на себ эту обузу, не хочет реализовать это сам, и не собирается отдать ключи от репозитория, случился форк. Наверное, оно и правильно, потому что пускай тот левый чувак себе сам тянет libview/libdocument, а в форке люди подчистят код и перепишут его (на Rust, а как же! https://gitlab.gnome.org/GNOME/Incubator/papers/-/merge_requests/223) так, как считают нужным.
1 2573Loading...
20
https://servernews.ru/1099765 Совершенно неожиданная новость, которую я пропустил. Оказывается, в 21 году Google установили срок жизни своих серверов в 4 года, вместо 3, как было очень долгое время до этого, а в 23 году так и вообще до 6 лет. Интересно, что это - желание временно показать более хорошие финансовые результаты, или простая констотация того факта, что железо стало развиваться медленнее, и, тем самым, не устаревать морально дольше?
1 2643Loading...
21
Мы?
1 26822Loading...
22
Retired engineer discovers 55-year-old bug in Lunar Lander computer game code | Ars Technica https://arstechnica.com/gaming/2024/06/retired-engineer-discovers-55-year-old-bug-in-lunar-lander-computer-game-code/
1 5277Loading...
23
Класс программирования, 1985 год, Москва
1 18818Loading...
24
Media files
1 42949Loading...
25
Больше всего на свете я люблю, когда дистрибутивы изобретают свои версии пакетов. Вот, например, есть проект https://github.com/lm-sensors/lm-sensors У него последняя версия - 3.6.0. Со мной согласны arch, lfs, и так далее: https://archlinux.org/packages/extra/x86_64/lm_sensors/ https://packages.gentoo.org/packages/sys-apps/lm-sensors (при этом gentoo верит repology, и говорит, что есть апдейт до 3.6.2) В https://repology.org/tools/important_updates действительно приехал update до 3.6.2. Несложный анализ показывает, что 3.6.2 есть ТОЛЬКО в openSUSE - https://repology.org/project/lm-sensors/versions https://build.opensuse.org/package/show/openSUSE:Factory/sensors Смотрите какая красота - https://build.opensuse.org/request/show/1142254 Даже changelog есть. А вот места, откуда эти господа скачали не существующий в природе 3.6.2 - нет. Это как? На самом деле, они берут какой-то васянский форк - https://github.com/hramrach/lm-sensors Что, зачем, почему?
1 4304Loading...
26
#wasi #wasm #webassembly #bootstrap https://determinate.systems/posts/nix-wasm/ Вот, коллега очень верно пишет про "nix as a meta build system", для сборки кода в WASI. Но, как это часто бывает, начал он за здравие, а кончил тем, что собрал какое-то мелкое приложение на Rust, так и не продемонстрировав мощь метапакетной системы для сборки произвольного кода. Ну потому что Rust и так умеет собирать в этот target, ничего нового не произошло. А надо это продемонстрировать на каком-нибудь интересном примере, когда в rust приложение подмешивается что-то интересное, помимо экосистемы rust.
1 4487Loading...
27
https://3dnews.ru/1106385/arm-potrebovala-unichtogit-vse-noutbuki-na-chipah-qualcomm-snapdragon-x Совершенно потрясная новость, одни жадные капиталисты наехали на других жадных капиталистов. Разные комментаторы пишут разные мнения на этот счет. Кто-то считает, что ARM в своем праве, потому что после покупки IP quallcomm использует этот IP не в соответствии тем лицензиям, которые были даны при разработке этого IP, а кто-то - что у Quallcomm и так своя "жирная" лицензия есть, поэтому они в своем праве использовать этот IP так, как используют. Я же просто запасся попкорном, и слежу за этой историей.
1 3177Loading...
28
Media files
1 35121Loading...
29
США запрещают предоставление услуг в сфере программного обеспечения и IT любому лицу на территории России.
1 30813Loading...
30
Оказывается, swift умеет в статическую линковку, поверх musl - https://www.swift.org/documentation/articles/static-linux-getting-started.html Pros of static linking: No runtime overhead. Only include code from libraries that is actually needed. No need for separately installed dynamic libraries. No versioning issues at runtime. Cons of static linking: Programs cannot share code (higher overall memory usage). No way to update dependencies without rebuilding program. Larger executables (though this can be offset by not having to install separate dynamic libraries). Это несомненно хорошо, пора попробовать запилить его поддержку.
1 5262Loading...
31
#scheduler Расширяемый шедулер едет в ядро - https://www.phoronix.com/news/Linux-6.11-Extensible-Scheduler День, когда у меня перестанет тормозить браузер, все ближе и ближе, what a day to be alive!
1 50013Loading...
32
Media files
1 37831Loading...
33
Редактор: «Нам надо изменить слово Тинькофф на Т-банк на всем сайте». Программист: «Ни слова больше» 8️⃣ Programmer memes
1 27162Loading...
34
https://www.phoronix.com/review/intel-meteorlake-epp-perf TL;DR - разработчики из Intel потюнили три константы в своем драйвере intel_pstate, что привело к ускорению вообще всего, суммарно процентов на 7, без ухудшения в потреблении энергии. Интересно конечно, как выбирали начальные параметры. Кстати, раз уж речь зашла про энергопотребление, то я какое-то время назад перешел на amd_pstate, c автоматической подстройкой (как это делается можно подсмотреть в https://wiki.archlinux.org/title/CPU_frequency_scaling), и всем советую так же, потому что ноутбук живет дольше, греется меньше, да и вообще, умеет уходить в довольно низкие скорости CPU: cpu MHz: 400.000 До этого был то ли acpi, то ли ccpc, (+ schedutil в качестве governor) и ниже 1200MHz они мой CPU не замедляли.
1 41433Loading...
35
#llvmweekly http://msinilo.pl/blog2/post/compilers-are-too-smart/ Текст про то, что чувак дизассемблировал какую-то простую функцию, состоящую из какого-то довольно простого вызова в libc++, и охуел удивился увиденному. Как выяснилось, авторы libc++ заложились на то, что clang проведет определенную оптимизацию вот такого блока кода: inline _LIBCPP_HIDE_FROM_ABI size_t __constrain_hash(size_t __h, size_t __bc) { return !(__bc & (__bc - 1)) ? __h & (__bc - 1) : (__h < __bc ? __h : __h % __bc); } И заменит его на popcount (что не произошло в случае автора этого текста). Не знаю, с одной стороны, это очевидный догфудинг, и "используйте наш самый лучший в мире clang для компиляции нашей самой лучшей stl библиотеки", с другой - некоторое хамство. Ну вот нужен тебе popcount, проверь, что он есть, и позови напрямую, даже через какой-нить builtin/intrinsic, чтобы у людей опыт использования либы был более-менее консистентным.
1 4898Loading...
36
Media files
1 26623Loading...
37
Media files
2 48974Loading...
38
Media files
1 58239Loading...
39
Про acme.sh, эксплойты и костыли Случайно наткнулся на https://github.com/acmesh-official/acme.sh/issues/4659 (кстати, этот issue открыли ровно год назад 🎉) История очень эпичная: - какая-то китайская компания занимается перепродажей сертификатов и захотела сделать бесплатную автоматическую выдачу сертификатов через ACME, как Let's Encrypt - но увы, сама компания не являются CA и не может выписывать сертификаты, поэтому полностью протокол ACME реализовать не может - вместо этого китайцы используют RCE-эксплойт (оно же — удаленное выполнение произвольного кода) в acme.sh, который позволяет им вставить костыль в процесс выдачи сертификата. При этом они никакого вредоносного кода у клиентов не исполняют (скорее всего), но варварски эксплуатируют страшную дыру в безопасности - клиентов, конечно же, просят юзать только acme.sh для выписывания сертификатов - через некоторое время эта вся история с эксплойтом вскрывается, и появляется issue на гитхабе (ссылку на который я уже давал в самом начале поста) - далее китайскую компанию, по всей видимости, жестко DDoS'ят (что можно узнать из комментов к issue) - потом в issue приходит представитель этой самой компании и жалуется, что (далее прямая цитата, орфография сохранена) we provides HiCA for non profit purpose, to provide ssl for free (RSA). We even donated 1000 USD to acme.sh last year to support the community developers, Except us any CA or reseller did this? и сообщает, что finally, we closed HiCA project and keep this before the community investigation finished. - дыру с RCE, конечно же, в конце концов поправили Мораль всей этой истории мне придумывать лень, оставлю это в качестве упражнения читателям 🐳 Могу лишь сказать, что использовать уязвимости для того, чтобы что-то закостылить или обойти — не самая удачная идея :)
1 49914Loading...
40
Media files
1 52229Loading...
Repost from Двач
Photo unavailableShow in Telegram
Исследование: просмотр мемов во время рабочего дня улучшает производительность Теперь ты знаешь, чем заняться на работе
إظهار الكل...
14😁 2🤔 2
ё
إظهار الكل...
В 2024 стыдно не уметь программировать! Если вам хочется быстро вкатиться в IT, разобраться в тонкостях ядра Linux, научиться писать красивый код на Rust/Python/Go/C++, постигнуть все тайны менеджмента, и вообще, почувствовать себя в IT, как рыба в воде, то заходите в https://t.ly/3RQBu, будет интересно!
إظهار الكل...
commit -m "better"

just random thoughts

🐳 33😁 11👏 6🤡 4👍 2
Вышла новая 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, а вот со статической линковкой такое ловится довольно часто.
إظهار الكل...
Выпуск криптографической библиотеки Libgcrypt 1.11.0

Проект GNU представил выпуск библиотеки Libgcrypt 1.11.0, с реализацией компонентов, лежащих в основе механизмов шифрования, применяемых в GnuPG. Библиотека предоставляет функции для использования в сторонних приложениях различных криптоалгоритмов, включая симметричные шифры (AES, Arcfour, Blowfish, Camellia, CAST5, ChaCha20, DES, GOST28147, Salsa20, SEED, Serpent, Twofish), алгоритмы хэширования (MD5, RIPE-MD160, SHA-*, SHAKE256, TIGER-192, Whirlpool), алгоритмы аутентифицированного шифрования (HMAC-*, CMAC-*, GMAC-*, Poly1305-*), шифрование с использованием публичных ключей (RSA, Elgamal, DSA, ECDSA, EdDSA, ECDH). Новая ветка полностью совместима на уровне API и ABI с веткой 1.10.x (для использования новой версии не требуется пересборка программ).

🐳 4👍 3🤔 3🫡 1
Photo unavailableShow in Telegram
😁 38👍 8 2
Repost from Блог*
Photo unavailableShow in Telegram
Ну, допустим, #meme про изучение #rust. (thanks @bapho_bush)
إظهار الكل...
😁 24👍 5 3
Repost from Дидлошная
Photo unavailableShow in Telegram
👍 19😁 17👎 3🆒 2🤔 1
Photo unavailableShow in Telegram
Так и работаем
إظهار الكل...
💯 34😁 8 4🔥 2
Repost from Hacker News
Neofetch developer archives all his repositories: "Have taken up farming" Article, Comments
إظهار الكل...
dylanaraps - Overview

self taught, creator of @kisslinux . dylanaraps has 71 repositories available. Follow their code on GitHub.

🔥 10🤩 4👍 2
#runit, будни #bootstrap, #herobora. У используемого и нежно любимого мной runit есть одна неприятная особенность (врочем, как и у остальных init-ов, унаследованных от daemontools). Он хочет безусловно портить струткуру директорий, в которых лежат сервисы. Простыми словами - он создает директорию ./supervisor, рядом с каждым файликом run каждого сервиса. Там он хранит состояние управляемого сервиса, и прочую лабудень. Контрольки сервисов (./run файлы) у меня лежат в /etc, которая есть ссылка на какую-то папку в content addressable store. Из этого следует простой вывод - runit у меня "портил" (и продолжает портить) папки (и данные) в cas, чего допускать, конечно, нельзя. Я обкатывал несколько разных решений этой проблемы, которые, так или иначе, сводились к "теневой" копии сервисов из /etc "куда-то", где можно писать. Например, регулярным копированием /etc/services куда-то в /var/run/, или, вот, с помощью rw overlay unionfs куда-то в tmpfs. Короче, совершенно всратые решения, ошметки которых я даже не хочу показывать. В общем, после нескольких лет попыток придумать что-то не столь всратое, я плюнул, и переписал runsvdir - это часть runit, которая отвечает именно за управление деревом процессов. Эдакий сплав (она же херобора) из обычного runit для pid1, и моей запчасти, с таким же интерфейсом, ее так же зовут скрипты инициализации runit, но с нужной мне семантикой. Та-да-да-дам! https://github.com/stal-ix/ix/blob/main/pkgs/bin/ix/runsvdir/run.py Да, на python, потому что для прототипирования python подходит очень хорошо, и я уже смирился с тем, что он у меня есть в базовой системе (при этом я упаковал в один бинарь со всеми зависимостями, поэтому он не мозолит глаза своей россыпью файлов по всей fs). Когда его семантика устаканится, перепишу на go, или даже на rust (не хочет кто-то взяться? там строк 50-100 идиоматичного rust-о кода должно быть). Что я могу сказать? * Мне кажется, это самый компактный супервизор процессов, который я когда-либо видел/делал, при этом, с приличным набором фич. Он умеет пасти структуру директорий, такую же, как у runit, но ничего не пишет на диск. Сервисы могут добавляться и убираться "на лету". * Удивительно, но я вот написал этот скриптец, ребутнул машину, ожидая debug и recovery окирпиченного хоста, но ничего такого не случилось - все завелось сразу, с полпинка, потому что поверхность у runsvdir - очень простая и компактная. * В принципе, теперь я могу там запилить недостающие фичи из runit, типа динамически создаваемых юнитов. Захочу ли - пока не знаю.
إظهار الكل...
ix/pkgs/bin/ix/runsvdir/run.py at main · stal-ix/ix

ix package manager. Contribute to stal-ix/ix development by creating an account on GitHub.

🔥 24👍 4 2🤔 1
تسجيل الدخول والحصول على الوصول إلى المعلومات التفصيلية

سوف نكشف لك عن هذه الكنوز بعد التصريح. نحن نعد، انها سريعة!