commit -m "better"
3.21K subscribers
1.01K photos
147 videos
3 files
2.35K links
just random thoughts
Download Telegram
Технологический Болт Генона
Тут @SergeySabbath, закинул мой канал в тройку своих самых любимых. Скрывать не буду, мне очень приятно. https://xn--r1a.website/IT_Friday/646 А накидайте в комменты свои любимые каналы по IT-шной тематике или около неё. Можно несколько. Может я и подписчики найдут…
👍12❤‍🔥6🔥3😁21
😁40💯11👍5🤔5🤬3🐳3🍾2
#Kent Предложка:

"Свежую драму от Кента подвезли. Читаешь, думаешь, блин, несправедливо человека банят: https://www.patreon.com/posts/trouble-in-116412665

потом открываешь лор, а там: https://lore.kernel.org/all/citv2v6f33hoidq75xd2spaqxf7nl5wbmmzma4wgmrwpoqidhj@k453tmq7vdrk/"

https://www.phoronix.com/news/Bcachefs-Uncertain-Kernel-Issue

https://www.opennet.ru/opennews/art.shtml?num=62276
😁12🔥5👍3🐳21
commit -m "better"
#sched_ext Какие-то демонстрационные шедулеры у меня получилось заставить работать (но и результат, ожидаемо, никакой), а вот что-то серьезное уже не работает: https://github.com/sched-ext/scx/issues/823 Товарищи захотели перехватить static функцию из ядра…
Вышло ядро 6.12, https://www.opennet.ru/opennews/art.shtml?num=62243, и, наконец-то, у меня получилось завести #sched_ext.

Завести в том смысле, что оно запустилось, и я убедился, что оно таки принимает решения по шедулингу.

Но тот эффект, который обещали авторы, воспроизвести пока не получилось.

Когда я запускаю компиляцию во все потоки, scx выходит через какое-то время, с ошибкой:

https://gist.github.com/pg83/602ee9f04e80d36d8651fec0e0af13d6

Начало положено, и, наверное, у меня скоро перестанет тормозить браузер (https://xn--r1a.website/itpgchannel/139)!

Ну и, конечно, очень приятно, что это не kernel panic, а вполне себе падение user space приложухи, которую можно перезапустить.
🔥15😁63👍1
commit -m "better"
попробую пожить с корнем на ней.
Эксперимент с #F2FS считаю завершенным, она за пару лет развалилась на всех 4 устройствах (ноут и 3 сервера), где я ее использовал на root разделе.
😁36🐳4👍3🆒1
маразм, конечно, крепчал; для меня все началось, когда NIPS заставили переименовать в NeurIPS из-за того, что это совпадает с жаргонным наименованием сосков (nipples -> nips); указания лингвистов на то, что слово nips в этом значении появилось позже, чем конференция, не помогло; жду, когда переименуют абсолютно черное тело (да-да, физики, придут и за вами)

P.S. картинку стащил из рабочего чата, источник не знаю
😁30🤡10💩5🐳4😢2🔥1
Картина маслом - админ готовится к тому, чтобы написать свою первую программу на Rust!
🦄86🥰19😁14😭9💅7😍6💔43💋3🎉2🤡1
Forwarded from Ряды Фурье
В 2019 году вышло исследование про супердолгожителей. Тех дедушек и бабушек, которые умудрились прожить больше 100 лет. Ну, знаете, горный воздух, свежие овощи, минимум быстрых углеводов, крепкая семья, верные друзья, спокойные отношения, прогулки каждый день, низкое атмосферное давление, вот это всё — прям идеальная картина.

Это давно знали по предыдущим исследованиям. Проблемы начались чуть позже, когда на данные взглянули математики.

Они овощами не впечатлились ни разу.

Первое, что их удивило — что всего один фактор на 69-82% снизил количество супердолгожителей. Это наличие свидетельства о рождении. Когда их начали выдавать, видимо, это резко сократило шансы дожить до 100 лет. Опасные бумажки, однако.

Второй интересный момент — как так получилось, что супердолгожители сосредоточены в самых неблагоприятных районах по криминальной обстановке и вообще уровню жизни? Бедность была очень хорошим предиктором супердолгожительства.

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

Например, в выборках самых пожилых людей часто наблюдаются уровни курения 17-50% [6] и уровни неграмотности 50-80% [5,6]. При обследовании "голубой зоны" Икарии Хрисохоу и др. отметили, что среди самых пожилых людей: более 95-98% случаев имеют заработную плату ниже медианной, умеренное или высокое потребление алкоголя (5,1-8,0 л/год), 10% неграмотных, в среднем 7,4 года образования и 99% курящих среди мужчин [3].


А потом случилось страшное:

Более недавние исследования выявили потенциальную роль ошибок [13-16] и операторских смещений [17] в создании моделей выживания в старческом возрасте и данных. В свою очередь, эти выводы вызвали реакцию с потенциально разрушительными последствиями: что при таких моделях большинство, если не все рекорды удивительного возраста могут быть ошибками [18].


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


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

Ну и это касается даже Японии:

Высококачественные системы всеобщей регистрации часто содержат необнаруженные частые ошибки. Например, вопреки предыдущим утверждениям о том, что "Япония имеет... одни из самых качественных данных о самых пожилых людях" [24], расследование японских записей в 2010 году показало, что 238 000 столетних жителей на самом деле пропали без вести или умерли [25].


Исследование вот.

Секрет долгожительства во многих случаях — систематическая подделка документов!
🔥38😁19👌5🤡32👍1💯1
Forwarded from The After Times
Media is too big
VIEW IN TELEGRAM
🔥28🫡11😁8👍42🥰2👏1
commit -m "better"
#безопастный_rust Продолжаем цикл заметок про то, что Rust не является memory safe language. Самое главное тут, конечно, договориться, что значит "memory safe". Почему это важно, я писал в https://xn--r1a.website/itpgchannel/1828 Часто слышу определение "в коде нет…
https://www.opennet.ru/opennews/art.shtml?num=62286

https://foundation.rust-lang.org/news/rust-foundation-collaborates-with-aws-initiative-to-verify-rust-standard-libraries/

TL;DR - пока фанбои кричат, что "soundness достаточно", взрослые дяди занимаются формальной верификацией unsafe кода, потому что понимают, что memory "мамой клянусь"-safety - недостаточно!

А unsafe кода там прилично:

Currently, the Rust standard library contains approximately 35,000 functions, including 7,500 marked as unsafe.
😁15👍13🤪43🆒2🤔1
Будни #bootstrap

В очередной раз переделал цепочку bootstrap.

Раньше, на самых ранних стадиях, у меня был сумасшедший скрипт, которые пытался найти подходящий компилятор и shell, а дальше все работало с этими компилятором и shell.

Маленькая проблема заключалась в том, что происходило это в runtime, и команда не зависела от окружения. То есть, могло что-то сломаться, человек менял компилятор или shell, и дальше все ломалось, потому что компилятор и shell были уже закешированы.

Выкинул этот скрипт, сделал так, что компилятор и shell система ищет на configure стадии, и дальше цепочка bootstrap уже зависит от того, что было найдено (или нет).

Финальный аккорд выглядит как-то так - https://github.com/pg83/ix/blob/main/pkgs/bld/boot/0/ind/ix.sh

На самом деле, изменений по всей пакетной базе было сделано очень много, но показывать их особого смысла нет.

Главное - цепочка стала гораздо более робастной, и устойчивой к изменениям окружения, которые могут случаться у пользователей, во время установки #stal/ix
👍156❤‍🔥3🆒2🔥1
#llvmweekly

https://llvmweekly.org/issue/569

"The basic definition for “LLVM” as the environment part of a triple (as in x86_64-pc-linux-llvm was added, intended for use to indicate LLVM’s libc"

https://github.com/llvm/llvm-project/commit/7672216ed7f4

Хорошо быть libc при компиляторе - сами с собой обсудили добавление нового суффикса -llvm для libc от llvm, сами и закоммитили, ни с кем договариваться не надо!

Упорство, с которой вот эту вот ебалу "x86_64-pc-linux-llvm" называют "триплет", меня, конечно поражает.
😁16👍6🤮5🆒4🐳1
commit -m "better"
#runit, будни #bootstrap, #herobora #runsvdir. У используемого и нежно любимого мной runit есть одна неприятная особенность (врочем, как и у остальных init-ов, унаследованных от daemontools). Он хочет безусловно портить структуру директорий, в которых лежат…
Будни #bootstrap, #runit, хозяйке на заметку.

Уменьшил число процессов, которые "следят" за сервисами.

Раньше у меня была цепочка "cgroup manager" (он прибивал все дерево процессов, если основной процесс выходил) -> "flock" (обеспечиваем, что запущено не больше одного инстанса сервиса) -> "tinylog" (штука, которая пишет stdout/err процесса в виде нашинкованных файлов).

Оказалось, что flock можно убрать!

Раньше было

# вот тут flock ожидает выхода
# команды
flock lock cmd args...


Стало

# shell создает fd == 200
# связанный с файлом lock
exec 200>lock
# flock умеет принимать на вход fd!
flock 200
exec cmd args ...


Вы знали, что flock так умеет? Я не знал!

Чтобы это работало, нужно гарантировать, что мы убьем все дерево процессов, которые унаследовали flock 200, и это у меня обеспечивается (выше писал, как)!
🔥15👍4❤‍🔥2🆒1
🏆30🔥8😁4🐳4🫡43😐2
commit -m "better"
Упорство, с которой вот эту вот ебалу "x86_64-pc-linux-llvm" называют "триплет", меня, конечно поражает.
Меня тут спрашивают, "а у тебя как".

Рассказываю!

У меня есть отображение строк на словари, строки - это токены в x86_64-unknown-linux-gnu-...., словари - это наборы свойств P, в виде "ключ" - "значение".

Я начинаю с пустого словаря X, и для всех токенов T, которые передал пользователь в строке, которую он считает платформой, подливаю в X содержимое словаря, соответствующему T.

for T in target.split('-'):
X = X.update(P[T])


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

https://github.com/pg83/ix/blob/main/core/config.py

Поэтому:

* linux-x86_64 и x86_64-linux - это могут быть разные платформы (но не являются, так уж получилось)

* riscv64-linux-darwin - тоже платформа! Правда, вряд ли под нее что-то соберется, but still.

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

Хочу ли я с этим что-то сделать?

Нет, не хочу.

(- Какими извращениями вы страдаете?
- Доктор, что вы! Я ими наслаждаюсь!)

При неправильном использовании может получиться хрень, зато алгоритм примитивен, и, при понимании, пользоваться им очень удобно.

Есть понятная точка расширения - поискать в P все пары токенов, но такой точности мне пока не было нужно.
👍5🥴5🔥4🆒2🤯1
Админ изволит отдыхать.

(как эта котяра с удобством устроилась на сетевом фильтре, а!)
33🔥10🥰6🆒3👍1
Forwarded from The After Times
💩20😁17🔥7👍4👎1😱1
Forwarded from Записки CPU designer'a (Николай)
Сегодня немного отойдём от основной темы канала.

Более половины длинных англоязычных постов в LinkedIn создаются с помощью искусственного интеллекта


К такому выводу пришел AI detection стартап Originality.

За последний год всё больше и больше новостей так или иначе отсылают к Теория мёртвого интернета.

Ждём, когда боты будут сами писать посты, комментировать их и репостить.
Или уже дождались?

Ставь 💾, если ты бот 👀
Please open Telegram to view this post
VIEW IN TELEGRAM
🗿15😁7👍6🐳5👾5😐2🌭1👨‍💻1💊1
😁75💯10😱4🐳31👎1