Sergey Matveev [Thu, 15 Jun 2023 07:48:05 +0000 (10:48 +0300)]
Google считает io_uring небезопасным
https://www.opennet.ru/opennews/art.shtml?num=59297
Давно я злорадствую и поливаю какахами Linux за низкое качество и
халтуру. И давно я говорил, что если в Linux что-то посчитали готовым к
применению, то нужно ещё лет десять подождать чтобы это начать пробовать.
Вот Google всё это и подтвердила касательно io_uring подсистемы. Именно
поэтому, на фоне Free/Net/OpenBSD систем, которые хотя бы не врут
касательно готовности к промышленному применению, я и не признаю ни Linux,
ни в целом всю GNU/Linux экосистему (хотя качество многих GNU программ
наоборот, как ни странно, хорошее), превратившуюся уже в systemdOS. И
даже не смотря на то, что в BSD системах многие вещи годами могут
находится в experimental состоянии, они издревле были технологически во
многом более совершенны (716e82e70f4e9bfbd4c604575bf60787c45561ed).
И чем мне не нравится open source
(https://opensource.com/resources/what-open-source)? Они заявляют в "Why
do people prefer using open source software?" о том, что OSS хорош по
ряду причин:
* Control -- технически да, но на практике, особенно с systemdOS,
никакого контроля люди не имеют, из-за огромной сложности системы даже
в простых вопросах. Кто-то полезет в Си код править что-то, если нужно
поменять поведение? Берёшь какой-нибудь daemontools и там, из-за
простоты, действительно можно что-то править, а в systemd... увольте
* Training -- типа люди становятся лучшими программистами возясь с OSS.
На практике же у нас куча программистов которые только умеют
жонглировать framework-ами (а GNU/Linux мир это мир framework-ов, без
готовых законченных решений), но не писать и вести софт с нуля
* Security -- ну тут без комментариев
* Stability -- для меня тоже без комментариев. Можно ли иметь OSS софт
безопасным и стабильным? Да. Но выполняется ли это по умолчанию на
практике? Лучший пример -- OpenSSL, который для меня является стыдобой
всего OSS и опровержением "закона Линуса" (given enough eyeballs, all
bugs are shallow)
* Community -- тут не знаю, да и profit-а не вижу
В итоге, все их заявления ничего не стоят, и на практике не достигаются.
Тогда как заявы о свободном ПО (те четыре свободы) выполняются без вранья.
OSS это бизнес терминология, из которой следует и весь этот marketing
bullshit, ничем не отличимый от заяв Microsoft или Apple, лицемерие. И
такое же паршивое качество. А СПО говорит о возможностях (свободах), но
использовать ли их это уже другой вопрос.
Sergey Matveev [Wed, 14 Jun 2023 06:36:43 +0000 (09:36 +0300)]
Посетитель концерта Roger Waters откусил ухо мужчине
https://lenta.ru/news/2023/06/14/ear/
Я вот был уже полторы сотни концертов, общался (учился) с панками в
институте, и точно знаю что самые безопасные концерты это всякий death,
black, grindcore. Самые небезопасные, где в слэме лучше не падать, это
панки и... heavy metal, ибо на последнем частенько бывают люди пришедшие
не из-за музыки, а просто побухать, просто деваться некуда, просто
лясы поточить, тем более что на таком металле то народу много бывает.
На последнем концерте (40363086670e80c67dc1bb4ec981e4d460d0d694)
нас с отцом даже не обыскивали -- ибо на Crust не пойдут непойми кто.
Так чего же ожидали парни на концерте основателя Pink Floyd? На всех
билетах не даром пишут что посещение концерта это повышенная опасность.
Sergey Matveev [Wed, 14 Jun 2023 06:15:41 +0000 (09:15 +0300)]
Ещё иноагенты
https://ru.wikipedia.org/wiki/%D0%A1%D0%B0%D1%85%D0%B0%D1%80%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9_%D1%86%D0%B5%D0%BD%D1%82%D1%80
https://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D0%B1%D0%B5%D1%80%D1%82%D0%B0%D1%80%D0%B8%D0%B0%D0%BD%D1%81%D0%BA%D0%B0%D1%8F_%D0%BF%D0%B0%D1%80%D1%82%D0%B8%D1%8F_%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D0%B8
В продолжении eabedbc6fbd775cf3401612346c764ef160b336a, Сахаровский
центр, где на YouTube записи моих выступлений неоднократных, тоже
является иноагентом.
Вспомнил тут, что у меня же как-то была "дискуссия" с Либертарианской
партией на тему цензуры (9c51476a382f92bf3691e10bd843899f7b97d6de). Судя
по Wikipedia, у них там полная Санта-Барбара с поножовщиной внутри
организации. Даже на флаге изображена возбуждённая змея, что для меня
говорит только о том, что не жди ничего кроме яда токсичного -- именно
это впечатление токсичности (и ничего кроме неё) я и не встретил от них,
действительно.
Sergey Matveev [Tue, 13 Jun 2023 16:58:22 +0000 (19:58 +0300)]
Инициализация PRNG в FreeBSD
По умолчанию kern.random.initial_seeding.bypass_before_seeding=1, что
означает успешную отдачу якобы случайных данных, даже при отсутствии
должной инициализации генератора. man 4 random явно отмечает что это
не безопасно, что так и есть. Впрочем, в dmesg должны по умолчанию
вываливаться сообщения о попытках чтения до инициализации
(kern.random.initial_seeding.disable_bypass_warnings=0), чего не
происходит. /dev/random инициализируется из /entropy файла, сразу после
подключения корневой ФС.
А список источников энтропии можно посмотреть (и настроить маской):
kern.random.harvest.mask_symbolic:
PURE_RDRAND,[UMA],[FS_ATIME],SWI,INTERRUPT,NET_NG,[NET_ETHER],NET_TUN,MOUSE,KEYBOARD,ATTACH,CACHED
Sergey Matveev [Tue, 13 Jun 2023 09:02:29 +0000 (12:02 +0300)]
История Quake
https://www.youtube.com/watch?v=DCX_q5oQj6Q
Местами уж чересчур пафосный текст, даже выключить хочется, но... никуда
не денешься, ведь Quake это действительно революционное творение. А ещё
стоит посмотреть 23d464891159e0719159a6a946df6843c1de6680.
Sergey Matveev [Tue, 13 Jun 2023 08:08:46 +0000 (11:08 +0300)]
Зеркалирование AUR зеркала
https://github.com/archlinux/aur
Есть Git-репозиторий со всеми AUR пакетами. Каждый находится в своей
ветке, а это почти 115k штук. Просто так сделать git clone не выходит
из-за этого. Но можно доставать все эти данные частями, просто получив
список веток, а дальше по тысяче (например) штук их запрашивать:
git ls-remote https://github.com/archlinux/aur.git |
cut -f2 | sed -n "s/^refs.heads.//p" |
xargs -L1000 | while read pkgs ; do
for pkg in $pkgs ; do echo ${pkg}:${pkg} ; done | git fetch --stdin origin
done
А ещё стоит сделать "git config gc.auto 0", так как Git упорно запускает
gc при всём этом, сильно тормозя весь процесс. gc можно вызвать руками потом.
Sergey Matveev [Mon, 12 Jun 2023 20:25:40 +0000 (23:25 +0300)]
Incubation
https://www.youtube.com/watch?v=sGWYiuXxHd4
https://en.wikipedia.org/wiki/Incubation:_Time_Is_Running_Out
Небольшой рассказ про игру 1997-го года. У дяди пытался играть в неё, но
было сложно, непонятно и страшно. А позже, уже на своём компьютере,
проникся ею и даже в 2010-х под Wine-ом запускал. Отличная тактическая
стратегия, где приходилось неслабо голову ломать -- каждая новая миссия
это отдельный пазл, никакого разнообразия.
Sergey Matveev [Mon, 12 Jun 2023 20:20:24 +0000 (23:20 +0300)]
Повозился с Noise
http://noiseprotocol.org/
Про Noise framework для построения криптографических протоколов я
конечно же знал прежде (75602bef8d50e9f327ff4e1e6565aab107c78cf8), с
чистой совестью рекомендовал бы всем. Использую его в NNCP. WireGuard
его Noise-IK pattern реализует (f6f262828dfebff1ae5f0fd3c8cfadacf45bdcde).
Но не приходилось его реализовывать с нуля (ну вот надо). Теперь уже
внимательно его документацию пришлось читать. Очень понятная, очень
простая, очень ясная. И очень круто, что они в таблицах приводят
свойства и уровни безопасности на каждом из шагов каждого pattern.
Пример для подражания.
Sergey Matveev [Sun, 11 Jun 2023 09:46:59 +0000 (12:46 +0300)]
L'Homme Absurde, Gnot и Crust
Целый месяц я с нетерпением ждал концерта Crust! Аж сердце ёкнуло, когда
увидел на афише, что Crust приезжают. Даже отец не прочь был пойти.
Было это в Punk Fiction баре. А точнее они себя называют скейт-баром.
Действительно, танцпол это скейтдром перед сценой, на втором этаже. Все
стены двухэтажного здания расписаны в панковском стиле. В таком месте
ещё не бывал.
L'Homme Absurde открывали сие мероприятие. Отлично отыграли, народ с
середины уже начал слеймиться. Далее по афише должны были быть Мерзость
из Нижнего Новгорода, но облом, не было. Поэтому шли Gnot из Питера.
Полу-эмо, полу блэк, народ завёлся уже окончательно.
Ну а Crust... я не знал что ожидать от них, ибо на альбомах есть и
атмосферные медляки, которые мне безумно заходили, а есть и мощный блэк.
На концерте было зубодробительное месиво из жёсткого, ультра-быстрого
блэка. Половину песен я знал, поэтому отметил что на самом концерте
барабанщик отрывался как мог -- на альбоме ему как-будто запрещали свои
ураганные партии играть, приостанавливали. Вокалист в живую ещё большую
проникновенную мощь имеет. Гитарист превосходно наяривал. Мне кажется
более мощной по плотности энергетики музыки в живую не слышал. Чего
чего, но такого я точно не ожидал. Просто монстры своего дела из
Великого Новгорода! А вот отцу понравились первые две группы больше.
Забавно наблюдать за слэмом на этом скейтдроме: народ падает больше,
теряет равновесие на скошенных краях больше. Поверхность там меньше
сцепления имеет чем другие покрытия. Но это ещё больше веселья
добавляет. Из карманов людей летали пачки батареек, ключи, а также
теряли ботинки.
В общем, один из самых впечатляющих концертов! Ну и, конечно же,
прикупил недостающих альбомов Crust, альбом Gnot и Sönma.
Sergey Matveev [Fri, 9 Jun 2023 20:50:01 +0000 (23:50 +0300)]
Как работали модемные ISP?
https://blog.randomstring.org/2023/06/09/how-did-dial-up-isps-work-/
Ничего нового для себя не узнал кардинального, но хотя бы просто
упомянуты примерные скорости каналов связи у самого ISP, примерное
оборудование.
Последние годы что-то стал очень интересоваться как там Интернет то
устроен вне дома, вне дата-центров? Вообще нетривиально было даже понять
что именно идёт поверх оптоволокна который например в Атлантике проложен.
Неужели остаётся до сих пор SONET (bdd304a51771bf6dfabdbf31d748877112178406)
какой-нибудь? Сейчас то знаю (точнее так и не нашёл опровержений), что
везде банальный Ethernet. Про BGP сколько пытался найти информации о том,
как именно договариваются то между собой операторы связи.
А я через модем в Интернет почти не ходил. Одну, может быть две карточки
РОЛ приобретал (94009b3b008d26208b4fb31f1ffad60857085ed9), но и то на
всякий случай, email там завести, авось пригодится. Во-первых, а что в
этом Интернете было делать? Во-вторых, качество телефонных линий у нас
было такое отвратное, что это сущая боль даже пытаться на 9600bps
соединиться стабильно, даже с V.Everything Courier и "русской" прошивкой.
И мне очень не нравился факт того, что платишь за время, угнетал. И
когда GPRS начал появляться, становиться доступным, как и сотовые, то
вот тогда я уже полноценно стал членом сети Интернет, пускай тоже на не
высоких скоростях, но хотя бы не думая про время. И это всё у меня уже
через FreeBSD выходило, как и FidoNet.
Sergey Matveev [Fri, 9 Jun 2023 19:38:15 +0000 (22:38 +0300)]
Хранение PCM на видеокассетах
https://www.youtube.com/watch?v=E-v7RwnGzKE
Уже в 1970-х были *домашние* устройства для хранения PCM цифрового аудио
на видеокассетах. С неплохой защитой от ошибок, с совместимостью как с
BetaMax и VHS, в том числе в "медленных" режимах записи. За много лет до
появления первых компакт-дисков. Автор задаётся вопросом: почему же, при
их наличии так давно, их не использовали для компьютеров, как хранилище
на несколько гигабайт данных? И предположил что просто столько данных и
так неоткуда взять -- до широкого распространения CD-ROM на IBM PC,
вполне для всего хватало и дискет.
Sergey Matveev [Fri, 9 Jun 2023 19:16:45 +0000 (22:16 +0300)]
TurboBoost, атаки по побочным каналам, overclocking
http://blog.cr.yp.to/20230609-turboboost.html
https://timing.attacks.cr.yp.to/overclocking.html
Масса информации от Бернштейна (DJB) касательно TurboBoost,
overclocking, долговечности систем, быстродействия и безопасности.
Он не одобряет все эти фишки связанные с резкими случайными
оптимизациями изнашивающими аппаратные компоненты, а также являющимися
отличными побочным каналами по сливу приватных ключей.
Sergey Matveev [Fri, 9 Jun 2023 06:55:23 +0000 (09:55 +0300)]
PCIe gen 3 vs 4
https://lists.freebsd.org/archives/freebsd-current/2023-June/003817.html
У человека NVMe случайным образом выдаёт ошибки под FreeBSD. Пишут, что
у gen 4 больше вероятность ошибок и поэтому сама ОС должна заниматься
перепосылкой запросов, для чего есть отдельный протокол. Проблема под
FreeBSD решилась понижением PCIe на gen 3.
Sergey Matveev [Fri, 9 Jun 2023 06:39:31 +0000 (09:39 +0300)]
Буча-2 не вышла
https://ria.ru/20230609/plotina-1877092711.html
https://ukraina.ru/20230608/1047051049.html
Тоже удивлён тому, что зарубежные СМИ молчат и даже не обвиняют РФ
ни в чём. Про Бучу то вон сколько ора было, в которых даже самих
украинцев убеждают. Явно всё очень плохо на Украине с их очередным
контрнаступлением, что она переключилась на очередные террористические
акты, на подрыв аммиакопровода (благо, вроде бы смертью гражданских это
не закончилось), на разрушение ГЭС. АЭС активно обстреливают уже сколько
времени. Видимо, до Запада как-то начинает что-то доходить об этих
отмороженных нацистах. Даже ООН недавно внезапно отметила, что она против
нацистов, говоря про ВСУ.
Sergey Matveev [Fri, 9 Jun 2023 06:29:57 +0000 (09:29 +0300)]
acme.sh запускает произвольные команды полученные с сервера
https://github.com/acmesh-official/acme.sh/issues/4659
Китайский CA (HiCA) работает только с acme.sh ACME-клиентом, потому что
в него можно запустить произвольные команды, что HiCA и делает, даже
вызывая напрямую bash. Вообще люди уже совсем озверевают от того, что
нормой является запуск произвольного кода с серверов сторонних. Для
Web-а большинство вообще уже по другому не может ничего делать.
Sergey Matveev [Thu, 8 Jun 2023 10:03:44 +0000 (13:03 +0300)]
Мышгород
https://www.myshgorod.com/muzmish.html
В середине 2010-х мы с родителями были проездом в городе Мышкин. А там
единственный в мире "Музей мыши". До сих пор вспоминаю, хотя я ведь уже
взрослой дубиной был, с теплотой о нём. Тысячи всяких игрушечных мышей!
Не то чтобы я был к ним неравнодушен, но мне было очень интересно и
весело всё это разглядывать там. До сих пор, с тех пор, у меня в
кошельке живёт маленькая глиняная мышка.
Sergey Matveev [Tue, 6 Jun 2023 09:14:56 +0000 (12:14 +0300)]
Многие годы мой firewall был совершенно некорректно настроен
https://docs.freebsd.org/en/books/handbook/firewalls/
Чуть ли не десять лет firewall/NAT у меня был в постыднейшем состоянии.
Он работал, но жутко сильно грузил процессор. С переездом на свой btrtrc
BitTorrent клиент (c2928fb18b27df55c19dd745753b2e76bdf2172b), который
значительно больше соединений поддерживает и UDP-транспорт, проблемы с
firewall/NAT стали очень видны. С переездом на новую FreeBSD
(0cfadc4b3f5ed39dba025a4aecf5cede864f9ad1), проблема ещё сильнее
усугубилась: если активно что-то начинает качаться, то я даже не могу
сделать SSH временами, отваливается NFS и всё в таком духе. Когда я
поднимал (6e7bec429305b04a664e01e6913d54d49fc0aaff, 394eb39744924cc673fcc8815eae1508440c9d44) публичный BitTorrent трэкер,
то всё было просто неюзабельно.
Причём при переезде (0aca426f64a513068a0bfffa563ab85f238a7d9f) с IPsec
на WireGuard я оставил IPv4 трафик вне туннеля зашифрованного, так как
IPv4 это всякая legacy Web-фигня и BitTorrent трафик -- штатно я уже не
помню когда пришлось бы явно руками что-то делать с IPv4 адресами. То
есть нагрузка на сетевую подсистему и CPU стала ещё меньше, но
отзывчивость системы ужасна.
Я понимаю что это явно косяк с моей стороны: ну не может жалкий 100Mbps
канал так нагружать всё, что 4-core Xeon не справляется. На 100Mbps
спокойно VIA C7 700-800MHz процессор с FreeBSD, NAT, ipf+ipfw+dummynet
справлялся без проблем.
tracker.cypherpunks.ru много где остаётся прописанным -- выключил его,
ибо не справляется ничего. Но стало "много" (речь про несколько тысяч
пакетов в секунду всего) трафика на DNS -- "решил" traffic shaper-ом.
Позже я просто drop-ал пакеты на firewall к порту трэкера. Полная фигня.
По top/*stat утилитам ничего не понятно что и где именно тормозит всё:
они показывают что на 4-х ядерном Xeon 80+% CPU ест исключительно ядро.
Где-то нашёл вот такой DTrace скрипт:
BEGIN
{ printf("%40s | %s\n", "function", "nanoseconds per second"); }
который показал что в dummynet модуле (traffic shaper) больше всего
времени проводится. Удалил shaping вообще -- хуже ничего не стало,
dummynet исчез, теперь libalias самый дорогой по вызовам. А это NAT.
Ещё вот такой простой DTrace скрипт интересен был:
profile:::profile-1001hz
/arg0/
{ @[ stack() ] = count(); }
И так было очевидно что дело в NAT-е. Просто отключая его, вижу что
нагрузка пропадает, всё тип топ. Пора начать за эти десять лет всё же
разбираться как корректно прописать правила в firewall.
Я использую ipfw и не хочу его менять, ибо привык (хотя и не научился
настраивать :-)), нравится ясность и простота правил (хоть и не логики
работы). Против PF ничего против не имею, знаю что там много есть
отсутствующего в ipfw, но мне не нужно оно.
Короче говоря, достаточно было *внимательно* читать самый обычный родной
FreeBSD handbook на тему ipfw (ага, в кой да веки за десять лет, RTFM).
Основная проблема это то, как я заруливал трафик в NAT:
[...]
$add nat 1 ip4 from any to $ip4 in via igb_wan
$add nat 1 ip4 from 192.168.20.0/24 to any out via igb_wan
$add check-state
[...]
$add allow [...]
$add deny all from any to any
эти правила шли друг за дружкой. И только после "nat"-ов шли всякие
разрешающие по всяким портам и интерфейсам. Для stateful firewall
выглядело всё так, что весь трафик инициировался самим сервером. И
короче из-за всего этого и была полная жопа. Надо делать так, чтобы
сначала отрабатывал stateful firewall правила, а потом ещё в довесок на
выходе nat для исходящего трафика, как бы:
[...]
$add nat 1 ip4 from any to $ip4 in via igb_wan
$add check-state
$add allow [...] keep-state
[...]
$add nat 1 ip4 from 192.168.20.0/24 to any out via igb_wan
$add deny all from any to any
но засада в том, что allow правила уже дальше ничего не будет делать с
пакетом, он разрешён к прохождению и точка. Поэтому используют skipto
действие вместо allow, указывая куда именно надо в правилах ipfw
перепрыгнуть, на строчку с исходящим nat, как бы:
[...]
$add nat 1 ip4 from any to $ip4 in via igb_wan
$add check-state
$add skipto 1234 [...] keep-state
[...]
$add 1234 nat 1 ip4 from 192.168.20.0/24 to any out via igb_wan
$add deny all from any to any
но и тут засада в том, что будет отрабатывать deny правило всегда.
Поэтому nat+allow добавляется после deny:
[...]
$add nat 1 ip4 from any to $ip4 in via igb_wan
$add check-state
$add skipto 1234 [...] out via igb_wan keep-state
[...]
$add deny all from any to any
$add 1234 nat 1 ip4 from 192.168.20.0/24 to any out via igb_wan
$add allow all from any to any
Меня пугал этот последний allow, но штатно до него пакет не дойдёт. В
часть с 1234-им правилом можно попасть только через отработавшее skipto
правило, которое явно разрешило прохождение трафика.
И после этого нагруженность ядра упала чуть ли не до нуля.
Не то чтобы проблема, но обратил внимание на тысячи динамических правил
в stateful firewall создаваемых. И среди них почти все это DNS трафик от
сервера в ответ кому-то ещё. Явно их быть не должно, ибо DNS трафик
извне на 53-ий порт разрешён, а сам сервер отправляет данные точно так
же с этого же 53-го. Было у меня такое правило:
$add allow { tcp or udp } from any to "table(mein)" domain
[...]
$add allow ip4 from $ip4 to any out via igb_wan keep-state
$add allow ip6 from any to any out via gif_tb keep-state
и исходящий ответный DNS трафик создавал state-ы из-за последних правил.
Если же сделать:
$add allow { tcp or udp } from any to "table(mein)" domain
$add allow { tcp or udp } from "table(mein)" domain to any
то проблема решается конечно же. И динамических правил уже меньше тысячи
остаётся, почти все инициированные BitTorrent-ом с другого сервера.
Sergey Matveev [Tue, 6 Jun 2023 09:02:02 +0000 (12:02 +0300)]
Почему MPEG-TS до сих пор всё ещё используется?
https://www.obe.tv/why-does-mpeg-ts-still-exist/
Когда есть RTMP, WebRTC, да и просто контейнеры типа Matroska и MP4?
Ну лично я про это знал и догадывался: из-за синхронизации и потерь пакетов.
Sergey Matveev [Tue, 6 Jun 2023 08:35:52 +0000 (11:35 +0300)]
Разница подходов ко времени в Go и Rust
https://ntietz.com/blog/units-in-go-rust/
В Go Duration это просто int64, обозначающий наносекунды. В Rust это
приватная/закрытая структура где отдельно есть секунды и наносекунды.
Собственно, как субъективно написал автор, у Rust "extra complexity".
Для меня Rust это в первую очередь сложность, как-будто ради сложности.
Sergey Matveev [Sun, 4 Jun 2023 19:39:41 +0000 (22:39 +0300)]
Красная Луна
https://ru.wikipedia.org/wiki/%D0%9B%D1%83%D0%BD%D0%BD%D0%BE%D0%B5_%D0%B7%D0%B0%D1%82%D0%BC%D0%B5%D0%BD%D0%B8%D0%B5#Полное_затмение
Мимо окна прошёл, увидел Луну. Красного цвета, здоровая, прямо над
горизонтом сейчас, но уже поднимается. Никогда в жизни не видел её
такого цвета. Пишут что это на ней затмение.
Плюс в январе они переименовали "blake2_256" в "blake2b_256" (о чём
думали прежде?) -- тоже синхронизировал это изменение. Поэтому в storage
надо сделать: for i (**.blake2_256) mv $i $i:r.blake2b_256
При скачивании пакетов, GoCheese делал запрос в Simple API и в JSON API.
Из первого брал список файлов с хэшами, а из второго сопутствующую общую
метаинформацию. Проблема в том, что Simple отдаёт только SHA256 хэш, а
JSON отдаёт все хэши (насколько понимаю, BLAKE2b-256 есть для всех).
Поэтому теперь беру знание о BLAKE2b из JSON API в приоритете.
Sergey Matveev [Fri, 2 Jun 2023 07:17:15 +0000 (10:17 +0300)]
Ricing
http://blog.stargrave.org/russian/d73e406f07ab9df35eab080ccf9a30cb2420349f#comment0
https://www.shlomifish.org/humour/by-others/funroll-loops/Gentoo-is-Rice.html
В комментарии разъяснили что такое "ricing" применительно к компьютерам,
к Gentoo конкретно.
А я ведь когда начинал знакомства с GNU/Linux и FreeBSD, то под
последней тоже всё пересобирал главным образом чтобы указать флаги типа
-mcpu=k6-2. Ну и вообще всякие замеры производительности делал и получал
проценты выигрыша. Но MPlayer было критично компилировать под заданный
CPU, иначе MPEG 4 ASP нельзя было проиграть -- чуть-чуть не хватало ему
производительности CPU.
Sergey Matveev [Thu, 1 Jun 2023 11:41:56 +0000 (14:41 +0300)]
Язык ИТ-молодёжи
https://habr.com/ru/articles/739092/
https://wiki.installgentoo.com/wiki/GNU/Linux_ricing
Восьмиклассник пишет про свой путь в GNU/Linux мире. По теме нечего
сказать -- ну, молодец, здорово что его это всё радует, так и надо!
Но я просто не понимаю, даже примерно, некоторые слова:
>иногда играли в Among Us (дада, сейчас это кринж, но тогда было оч круто)
"Кринж"... ну явно это что-то негативное, видимо постыдное.
А на работе мне в 2015-2016-ом объясняли что такое "зашквар".
>выкладывали туда рофельные посты
Могу только предположить что это "ROFL"-статьи, но тоже не уверен.
>Написал дефолт конфиг и кодил в нем не зная режимов, клавиш и тд (кекал как мог)
Даже примерно не догадываюсь что такое "кекал".
>Мы обменивались райсами систем и радовались
Не понял что такое "райс". Подумал что это может быть название чего-то
специфичного для пакетного менеджера или ОС? Ну типа "ебилдов",
"портов"? Полез в поисковик... оказалось что, "rice" это что-то типа
обмена dotfiles. Вот вообще ни разу не встречал этого термина в
контексте ОС. Наверное потому что те, кто обмениваются темами и
картинками -- вряд ли пересекаются со мной на информационных ресурсах
(ну, вот кроме Хабра). Но так и не понял почему оно так называется.
Sergey Matveev [Thu, 1 Jun 2023 07:05:55 +0000 (10:05 +0300)]
SIGINFO для sleep
Обнаружил что SIGINFO (Ctrl-T) у sleep-а покажет:
sleep: about 4663 second(s) left out of the original 7200
Как же это удобно, о чём уже упоминал в 954a5de29f23ee16e037b107e5847fd33799246e.
Sergey Matveev [Thu, 1 Jun 2023 06:49:19 +0000 (09:49 +0300)]
Аварии с DNSSEC это причина его отключения людьми
https://utcc.utoronto.ca/~cks/space/blog/tech/DNSSECFailureDrivesDisablement
https://www.opennet.ru/opennews/art.shtml?num=59217
https://ianix.com/pub/dnssec-outages.html
Недавно у .nz доменной зоны были проблемы с DNSSEC, временно сделав их
поддомены невалидными. И DNSSEC очень неприятная штука в том, что сразу
понять всё ли в порядке -- не просто бывает. Я когда-то у себя тоже
делал свои зоны подписанными DNSSEC (мой регистратор доменных имён
позволяет это делать) -- и несколько ошибок совершал, да так, что неделю
домены были не валидны оказывается. И забил на неё вовсе, достала. Потом
я вообще не стал признавать эту технологию из-за единственного NATO-based
trust anchor.
Sergey Matveev [Wed, 31 May 2023 09:16:58 +0000 (12:16 +0300)]
Блокировка OpenVPN
https://habr.com/ru/news/738790/
Пишут, что с вечера вчерашнего дня многие провайдеры начали вредить
OpenVPN соединениям. Я OpenVPN не использую, но WireGuard туннель до
VPS у меня, вплоть до утра, работал через раз -- мониторинг
(6b7aeaf101572663bf56b5959cbfd95fab179157) сотнями писем заваливал о
том, что "о, связь появилась", "опа, пропала". Причём началось почти
ровно в девять вечера, в течении часов плохо себя вело. А потом в шесть
утра снова. Сейчас всё ok. Тренируются явно. Что ж... конец Интернета
уже становится совсем близок? Если я не могу (±) произвольные данные
между компьютерами передать, то это равносильно отсутствию связи,
неработающему каналу. Хотя, наслышан что преобладающая часть людей в
мире именно такой доступ в Интернет и имеет.
Sergey Matveev [Tue, 30 May 2023 12:31:37 +0000 (15:31 +0300)]
netmap
https://man.freebsd.org/cgi/man.cgi?query=netmap&sektion=4
https://man.freebsd.org/cgi/man.cgi?query=vale&sektion=4
Посмотрев на pkt-gen утилитку для генерирования трафика, вижу ссылки на
всякие vale(4) и netmap(4) подсистемы. Я слышал про DPDK, но никогда их
не трогал. netmap из этой же серии, но даже под Windows, пишут, может
работать -- то бишь, портируемый. API у него очень простой -- прям
хочется взять и что-нибудь написать с его использованием. man-ы говорят
про 40Mpps производительность на 40Gb NIC-ах на одном ядре. Intel-овые
распространённые NIC-и в FreeBSD/netmap поддерживаются. А даже если и
нет, то можно их "эмулировать" и это всё равно будет в несколько раз
быстрее обычного ядерного bpf.
Sergey Matveev [Tue, 30 May 2023 12:09:47 +0000 (15:09 +0300)]
"Открытый код" про GNU GPL. Mos.Hub
https://russiaos.ru/ospo/
https://habr.com/ru/news/721944/
https://www.opennet.ru/opennews/art.shtml?num=59218
Недавно появилась организация "Открытый код". Будет заниматься вопросами
"ОСПО" в РФ. Не встречал "ОСПО" прежде, аналог FOSS. Есть у них даже целый
раздел посвящённый GNU GPL и его применимости: всё ok у нас, проблем с
ним нет, как многие считают. Даже ГОСТ на определение СПО упоминается, о
котором мельком отписывался (2fcded0750f1250134c7df3638b22b807f4717d0).
Но то, что там упор на "open source" -- конечно удручает.
Вот и сегодня новость об открытии Московского (а для РФ?) аналога
GitHub. Регистрация идёт через mos.ru, который у меня не позволяет ни в
одном броузере пройти регистрацию. Впрочем это всё равно, так как пишут
что этот хаб -- просто instance GitLab, с CAPTCHA от Google и обращением
к внешним США-серверам. Вообще удручает, что на создание аналога GitHub
выделяют миллиарды. И, как и GitHub, этим навряд ли можно будет
пользоваться без скачивания несвободного ПО.
Sergey Matveev [Mon, 29 May 2023 20:31:20 +0000 (23:31 +0300)]
CDN BBC
https://www.youtube.com/watch?v=nzk-hFHfZ2I
Презентация-рассказ о том, как устроен CDN у BBC. Приятно мне то, что
вообще всё понятно как, что и почему. Раньше я вот про сетевую часть
точно не понял бы.
Sergey Matveev [Mon, 29 May 2023 12:03:03 +0000 (15:03 +0300)]
Список release asset-ов проекта на GitHub
GitHub стал настолько уродским (уже давно), что в нём даже список файлов
для релизов не получить без запуска JavaScript кода. Но, оказалось, что
их API позволяет эту информацию получить. Например для LLVM:
Sergey Matveev [Mon, 29 May 2023 10:34:59 +0000 (13:34 +0300)]
Организация рабпространства в ящичках
https://dlinyj.livejournal.com/872931.html
Буквально вчера, впервые в жизни, я разобрался с огромной коробкой
всяких винтиков, джамперов и других крепежей, распределив их в
зависимости от резьбы и типов. И вообще дома почти всё уже тоже
распределил по коробочкам и ящичкам. И сам процесс нравится и сам
факт порядка. Вот у папы моего вообще беспорядок в этом плане.
Sergey Matveev [Mon, 29 May 2023 10:19:51 +0000 (13:19 +0300)]
memset(0) vs memset ('\x00')
https://habr.com/ru/articles/118716/
https://stackoverflow.com/questions/23810453/why-use-0-instead-of-0-for-memset
Некоторые люди заморачиваются с типом аргумента для memset-а. Говорят
что даже есть заметная разница для этого. Лично я пишу просто 0, так как
это один символ, хотя по хорошему меня тянет написать именно character
нулевой.
Sergey Matveev [Mon, 29 May 2023 10:10:56 +0000 (13:10 +0300)]
Коммерческое at
https://www.computerra.ru/287644/znak-kak-simvol-tehnologicheskoj-revolyutsii/
Я давно знаю что "собакой" @-символ называется типа только у нас (ну там
СНГ ещё), а в английском официально это "commercial at". Оказывается, в
других странах в этом символе видят улиток, червей, уточек, обезьян,
слонов, змей.
Sergey Matveev [Mon, 29 May 2023 09:44:48 +0000 (12:44 +0300)]
Донорство 1488
https://ru.wikipedia.org/wiki/14/88
Увидел тут рекламу предложения сдачи крови. Ну это регулярно на работе
проводится. Но в этот раз предлагают компенсировать денежную сумму в
размере 1488₽. Вот там точно не знают про особое значение этого числа,
которое вообще официально присутствует в списке экстремистких материалов?
Sergey Matveev [Sun, 28 May 2023 16:55:29 +0000 (19:55 +0300)]
Korea -- Zion
https://www.youtube.com/watch?v=3HjMSZFf6cc
Случайно поставил тут альбом (The) Korea группы, совершенно не помня кто
это и что это. Забойный такой djent пошёл. А потом на одном трэке чувствую
что по русски что ли там запели. Оказалось что да. Живьём вот выступают
бодренько. Не Meshuggah конечно по техничности, но оторваться можно отлично.
Sergey Matveev [Sun, 28 May 2023 06:50:47 +0000 (09:50 +0300)]
Быть хорошим человеком -- плохо
https://habr.com/ru/articles/738048/
Как считает автор статьи. Призывает быть эгоистом. Достаточно понять
какой он урод, просто по факту написания:
Свалил за границу, когда родина в опасности? Предатель.
А разве нет? Разве не предатель? Не перебежчик?
Вот наверное у нас поэтому и не мало нехороших людей в стране и появилось,
которые про "самоличностный рост" начитываются, думают только о себе,
которые затем и помогают убивать окружающих или устраивать диверсии.
Автор явно не видит ещё и того, что если "отказал" плохому человеку, то
плохим ты от этого не становишься, даже если у плохого и вызвал из-за
этого негативную реакцию. Быть хорошим для всех -- действительно,
нельзя. Даже если устроился на работу на радость одних, другой будет
желчью истекать от того, что ты занял вакантное место.
Всегда не уважал людей, которые считают, что главнее их потребности.
Мол, они не часть общества, не видят что ею являются, не смотрят на то,
что общество (государство) обеспечивает им жизнь и возможности (ну, в
достойной, нормальной стране, конечно же) развития и самореализации (в
достойных сферах, конечно же).
Паршиво вот когда нехороший человек (с твоей точки зрения) называет тебя
хорошим. Сразу напрягаешься и задумываешься с какой позиции он делает
эту оценку. Ибо то, что хорошо для "плохого", может быть плохо для
общества в которым ты живёшь. И наоборот, естественно.
Sergey Matveev [Sat, 27 May 2023 19:53:34 +0000 (22:53 +0300)]
Посмотрел "Цензора"
https://en.wikipedia.org/wiki/Censor_(2021_film)
https://www.ivi.ru/watch/464660
Какого живётся цензорам фильмов? Фильм покажет, что лучше с ними не шутить.
На музыку в фильмах я редко обращаю внимание, но тут прям в тему хороша.
Sergey Matveev [Sat, 27 May 2023 05:47:05 +0000 (08:47 +0300)]
Блок питания beta.stargrave.org издох
Проснулся, зашёл в комнату с компьютерами, а там как-то тихо. Лампочки
на коммутаторе мигают исправно, NUC не перезагружался (значит
электричество не пропадало). А вот "второй" сервер не работает, на
котором BitTorrent пахал. При попытке включения издаёт жалобный писк
затихающий. Поменял блок питания -- всё заработало. Правда корпус
открыт, БД лежит сверху, ибо форм-фактор совершенно другой.
Sergey Matveev [Fri, 26 May 2023 09:33:02 +0000 (12:33 +0300)]
Анализ Converso
https://habr.com/ru/companies/productivity_inside/articles/737752/
Статья рассматривает очередной E2EE, весь из себя безопасный, IM.
Выясняется, что там всё до смехотворного паршиво, чистый snake oil.
Автор ещё и пообщался с этой компанией и её ответы показывают всё
некомпетентность разработки.
Sergey Matveev [Fri, 26 May 2023 03:31:55 +0000 (06:31 +0300)]
Кипелов стал заслуженным артистом
https://www.darkside.ru/runews/64133/
Давно пора! С коллегой-металлистом решили что, действительно, никого
больше нет из металлистов, кого бы уж наверняка бы слышали и знали все
в нашей стране.
Sergey Matveev [Thu, 25 May 2023 17:46:01 +0000 (20:46 +0300)]
Лампочки тормоза у электромобилей -- сущий ад
https://www.youtube.com/watch?v=U0YW7x9U5TQ
Европа так вообще отличилась: она прям буквально запрещала включать
лампу тормоза, даже если ты *люто* тормозишь рекуперацией.
Sergey Matveev [Thu, 25 May 2023 17:17:26 +0000 (20:17 +0300)]
Graph::Easy
http://bloodgate.com/perl/graph/manual/
Кроме PlantUML я давным давно в курсе про Graph::Easy модуль для Perl.
Когда надо порисовать всякие box-ы со стрелочками, да чтобы в UTF-8-art,
то беру этот инструмент, хоть и не очень часто бывает.
Sergey Matveev [Tue, 23 May 2023 16:27:58 +0000 (19:27 +0300)]
PyPI убирает поддержку OpenPGP
https://blog.pypi.org/posts/2023-05-23-removing-pgp/
https://blog.yossarian.net/2023/05/21/PGP-signatures-on-PyPI-worse-than-useless
С одной стороны я понимаю что PGP там наверное нафиг не сдался, ибо на
Python в основном пишут те, кто даже не знает что "PGP" такое. И понимаю
что нужно поддерживать это в инфраструктуре -- хотя ведь это просто ещё
один дополнительный файл для загруженного пакета, чего тут сложного?
С другой, мне совершенно не нравится их исследование. Автор почему-то
считает что все ключи должны быть обнаруживаемы на ключевых серверах? С
фига ли? Он пишет что "aren’t discoverable by the PGP ecosystem’s own
tooling" -- нет, GnuPG и его автор открыто говорят что предпочтительный
способ обнаружения ключей это уже давно WKD. Не все хотят загружать свои
ключи на ключевые сервера. Это уже дело конечного пользователя как ему
получать доверие над пакетом или ключом его подписывающим. И раньше PyPI
хотя бы предоставлял возможность это доверие от автора привносить.
Автор считает, что почему-то должны быть expire data, ключи же ведь
протухают. Опять же, с фига ли?
RSA-2048, считается, имеет 112-бит силу. Ok. Чем это проблема? То что
наверное новые ключи стоило бы создавать посильнее -- ну да, наверное.
Но на практике это означает что 112-бит будут скоро ломать? Я вообще
считаю что от RSA давно пора избавиться, но не потому что у него
какие-то практические проблемы с безопасностью.
Про ECC ключи он написал:
It’s also probably pointlessly slow (for P-521 and brainpoolP512r1
in particular)
но умолчал, что это также probably в сотни раз быстрее RSA (for *25519
in particular).
Довольно безграмотное исследование в целом. Хотя да, конечно есть и
слабые ключи, и глюкавые, проблематичные, странные. А если бы они
разрешали заливать minisig/signify ключи? Не вариант, ибо у них вообще
нет discoverability из коробки, зато с криптографией никаких вопросов?
Но PyPI в последнее время ведёт себя люто негоже: и двухфакторная
авторизация (61b09aa1dc97dfdfff5e80684d20a74ad3b4ef21), и пару дней
назад они прикрыли регистрацию из-за создания множества зловредных
пакетов, а сейчас ещё и деградируют свой функционал (хотя это наверное
из 99.99% Python-программистов и не заметили бы). Я рад что вовремя
оттуда удалился, ибо не дело.
Sergey Matveev [Tue, 23 May 2023 10:52:37 +0000 (13:52 +0300)]
Krahnholm -- A Wind In The Cold Night
https://www.youtube.com/watch?v=RmBYYeZ_mhE
Из купленной кучи black metal дисков (691da676c243e4a8163092c74bdb63a6e3c023af),
альбом Krahnholm-а похоже заслушиваю больше остальных. Black-ом это
сложно назвать, ибо достаточно легко слушается, мелодично, нет агрессии
как в Marduk каком-нибудь, но я тащусь от вокалиста и нравятся слова
(смысл не пытаюсь декодировать), лексикон
(ca23bc85781a099a3f61719c1714957ac20c8e6c).
Sergey Matveev [Tue, 23 May 2023 10:37:41 +0000 (13:37 +0300)]
HDD Clicker
https://liliputing.com/25-board-brings-satisfyingly-retro-hdd-clicks-back-to-your-ssd-equipped-computer/
https://www.youtube.com/embed/zxTtG9wmAFM
Моя мечта! В NUC нету даже лампочки дисковой активности
(6233aef81564620a2908e5340cd38317d7e64c7f). А тут и лампочка и эмуляция
звуков жёсткого диска! В видео, правда, используется Compact Flash
небольшой, который относительно медленный, а вот если будет быстрый
NVMe, то звук (если он на каждую операцию/поиск производится) должен
превратиться во что-то монотонно гудящее наверное.
Недавно родители ко мне заходили и мама сразу же заметила как у меня всё
громко у компьютеров. Серверы стоят же рядом, а в них по четыре 3.5" HDD,
на которых, на тот момент, проводился ZFS scrub и BitTorrent работал.
Sergey Matveev [Mon, 22 May 2023 19:10:33 +0000 (22:10 +0300)]
Comalies потерян
https://darkside.ru/news/147756/
Lacuna Coil недавно перезаписали свой альбом Comalies, которому аж
двадцать лет. У меня он в фирменном виде был куплен. С новым альбомом
2022-го года толком не знакомился ещё, только пару моментов с некоторых
трэков услышал -- чистого вокала Андре там не услышал, только гроул, что
мне нравится. А вот в той же Heaven's A Lie, вокал Кристины мне не
понравился -- на старом альбоме было лучше. Зато музыка тяжелее и
сочнее.
Захотел вспомнить старенький... и у меня все альбомы этой группы есть в
хранилище, кроме именно этого Comalies! А он всё же точно лучший. И
только его и нет. Как он пропал -- даже предположить не могу. Ведь даже
физический диск имеется. Сразу же пошёл доставать USB CD-привод чтобы
исправить этот фатальный провал.
Просто совпадение, но на днях ставил какой-то альбом Apocalyptica и
сразу же узнал на вокале Кристину эту. Не спутаешь её голос.
Sergey Matveev [Mon, 22 May 2023 14:07:59 +0000 (17:07 +0300)]
Статьи про TLS, УЦ, DNS и всякое подобное
https://dxdt.ru/2023/05/22/10124/
Понравилось, что в статье про certificate transparency явно отмечено,
что CT-журналы являются всего-лишь ещё одним дополнительным компонентом,
но который тоже может быть скомпрометирован. А то, чуть ли не поголовно,
люди считают CT какой-то панацеей от плохих CA.
В статье про CA сертификаты явно отмечено, что там пофиг на подпись и
алгоритм подписи -- поэтому даже с MD5/SHA1 *CA* сертификат годен для
использования. А то как-то народ со мной спорил на ЛОРе, видя CACert.org
сертификаты с "небезопасным алгоритмом".
Sergey Matveev [Mon, 22 May 2023 09:19:55 +0000 (12:19 +0300)]
Снимок скачков уплотнения у истребителя
https://naked-science.ru/community/850082
Круто получилось, прям видны скачки уплотнения. У нас в книгах только
схематично показывалось какими они должны быть.
Sergey Matveev [Sun, 21 May 2023 16:10:44 +0000 (19:10 +0300)]
Мой сборник обложек музыкальных альбомов
http://www.stargrave.org/images/meats/1.page.html
С института собираю приглянувшиеся обложки альбомов. Просто где увижу,
что понравилось, то сохраню картинку. С переездом на родное шифрование
ZFS (0cfadc4b3f5ed39dba025a4aecf5cede864f9ad1), у меня теперь нет
отдельного раздела для root-а и для шифрованного dataset-а. Поэтому
размер директории домашней страницы не ограничен. Иначе её пришлось бы
размещать на зашифрованном разделе, который при перезагрузке кто-то
должен открыть. На VPS места тоже достаточно. Поэтому выложил свою
подборку этих, зачастую стрёмных, картинок. Сортируются они по mtime,
так что новые картинки будут в конце.
Sergey Matveev [Sat, 20 May 2023 17:46:04 +0000 (20:46 +0300)]
go.cypherpunks.ru/balloon/v2 и Nettle
https://lists.gnu.org/archive/html/info-gnu/2023-05/msg00007.html
https://crypto.stanford.edu/balloon/
В новой версии Nettle появился OCB режим шифрования (GCM в GnuPG
например не признают, вообще решили оставить только OCB, даже EAX убрали
за ненадобностью (d7d5650cac3bbb74434b202924e72fec10b82db3)), SIV-GCM
(приятно что не забывают про SIV), а также Balloon хэширование.
Я следил за Password Hashing Competition, знаю что там победил Argon2, в
курсе что он добавлен даже в штатные библиотеки Python, но мне очень уж
нравится Balloon, который появился попозже, но, судя по бумагам про
него, лучше Argon2. А самое главное -- он значительно проще в
реализации. Balloon это надстройка над любым существующим хэшом. В
Nettle весь код Balloon умещается на одном экране. А Argon2 хоть и
основан на BLAKE2, но это не надстройка.
А так как тестовых векторов и reference реализаций Balloon не было
прежде, то тут уж каждый пишет её как хочет. Но в Nettle тестовые
вектора взяты из нескольких других библиотек, а значит некая де-факто
унификация между ними уже имеется. Вот и /v2 версию своей Balloon
библиотеки я тоже подправил, чтобы она производила совместимые
результаты.
А ещё Nettle поддерживает Стрибог и есть nettle-hash утилита, которая у
меня выдаёт 100MiB/sec.
Sergey Matveev [Sat, 20 May 2023 15:57:02 +0000 (18:57 +0300)]
MyHouse.WAD
https://www.youtube.com/watch?v=i2eAXF1AqaE
https://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D0%BC%D0%B8%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D1%81%D1%82%D0%B2%D0%BE
https://ru.wikipedia.org/wiki/%D0%A1%D0%B0%D0%BC%D0%B0%D1%8F_%D0%B7%D0%B0%D0%B3%D0%B0%D0%B4%D0%BE%D1%87%D0%BD%D0%B0%D1%8F_%D0%BF%D0%B5%D1%81%D0%BD%D1%8F_%D0%B2_%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BD%D0%B5%D1%82%D0%B5
Про игры я всякие новости смотрю иногда, но почти никогда не возникает
желания поиграть. А тут прям гениальное стрёмное творение, слюни текут!
Sergey Matveev [Fri, 19 May 2023 08:07:18 +0000 (11:07 +0300)]
Компьютерная графика в "Побеге из Нью-Йорка"
https://habr.com/ru/articles/735842/
Как оказалось, компьютерной графики (даже простой) в фильме не было, ибо
дорого. Вместо красивого каркасного зелёного отрендеренного города был
действительно построенный в миниатюре и оклеенный по контуру люминесцентной
лентой.
Sergey Matveev [Thu, 18 May 2023 19:39:51 +0000 (22:39 +0300)]
Повозился с протоколами атомарного коммита
Надо в n мест делать атомарную запись: либо во все запишется
гарантированно, либо ни в один. Тема всяких двухфазных коммитов
и подобного. Контекст применения такой, что много чего можно
упростить, но даже с упрощениями это далеко не тривиальная задача.
Не спроста пишут много книг на эту тему. Пришлось поднимать их и
впервые очень внимательно читать, а не по диагонали просто запоминая
что и как бывает делают. Опыт понравился. А также ещё понял почему
для всего этого очень хотелось бы писать формальные модели и понимать
всё ли учтено и будет ли "сходимость".
Sergey Matveev [Thu, 18 May 2023 07:41:00 +0000 (10:41 +0300)]
Прочитал "Фантомы" Дина Кунца
https://fantlab.ru/work17578
Нахвалили мне эту книгу. Но... чем дальше, тем менее она мне нравилась.
Хочется применить слово -- банальная. В начале ещё ничего: когда куча
трупов, не разлагающихся, ничего не понятно, было бы страшно. Но потом
всякие поедания и высасывания мозгов, приезд бравых ребят, стрельба,
снова трупы, дьявольщина и прочее. Под конец существо всех убивавшее
вообще не показывало признаков здравомыслия, хотя перед этим было ведь
хитро и изобретательно.
По сути -- стрёмное что-то было только в самом начале, а дальше
банальности. Ну или лично мне такое не очень по нраву. До историй того
же Стивена Кинга или Лавкрафта этой книге как до Луны.
Sergey Matveev [Wed, 17 May 2023 07:40:25 +0000 (10:40 +0300)]
Сериалы статей
https://habr.com/ru/companies/ruvds/articles/735340/
Всё чаще и чаще стали появляться (не только на Хабре) статьи в несколько
частей. Хорошо, бывают "Сети для самых маленьких", где действительно
объём просто огромный и можно разделить. Но это редкость. А бОльшая
часть это сплошные статьи размером меньше чем моё среднее письмо. В
итоге ты вроде бы что-то только начала получать из интересной информации
и тебя сразу обрывают. Я прям перестал открывать их, если вижу в
названии "часть X". Я ведь и сериалы не смотрю именно поэтому
принципиально -- или давайте мне вменяемого объёма сразу всю информацию,
или не тратьте моё время и внимание. К сериалам где каждая 20мин серия
полностью самостоятельна от остальных (Симпсоны, Футурама там) это не
относится.
Sergey Matveev [Wed, 17 May 2023 05:29:36 +0000 (08:29 +0300)]
Все ETSI стандарты можно скачать
https://www.etsi.org/deliver/
http://www.etsi.mirror.cypherpunks.ru/
Стандарты многие любят делать недоступными бесплатно. Это и к нашим
ГОСТам тоже относится. А вот ETSI всё выложили в WebDAV-capable HTTP
сервере. Скопировал к себе их 60GB данных обычным lftp mirror. recoll-ом
(86e4d33cf2ae7459838f041f534382a3ef23ee18) всё это можно проиндексировать
и удобно работать.
Sergey Matveev [Fri, 12 May 2023 17:37:22 +0000 (20:37 +0300)]
Первые игры на ПК
https://www.youtube.com/watch?v=yPLTHa3wNdQ
Один блоггер рассматривает свои первые игры на ПК. Со всеми игрушками
знаком с детства, как минимум запускал со сборников игр. И даже с теми
что в заставке без объяснений.
Doom -- без комментариев
Dune -- познакомился после Warcraft 2, как-то было уже не очень
Heretic -- очень нравилась атмосфера
Wolfenstein 3D -- познакомился после Doom, поэтому никак
Master Of Orion -- слишком всё было не понятно что надо делать
Blackthorn -- много играл в неё
Duke Nukem -- без комментариев, не вылазил
Hi-Octane -- не любитель гонок, ничего не помню
Ascendancy -- точно помню что запускал, но, видимо, было сложно
Stargunner -- не любитель подобных, но точно запускал
Warcraft 2 -- любимейшая RTS, возможно наравне с Age Of Empires
Micro Machines -- играл на одной клавиатуре вдвоём с одноклассниками,
поэтому было интересно
Flashback -- было очень сложно, совсем я в такие аркады не умелец играть
Epic Pinball -- точно помню что запускал, но равнодушен
Ugh! -- помню что запускал, но не запомнилась
Поле Чудес -- было забавно как там всё оформлено, особенно, зная что
стены из Wolfenstein 3D. И особенно что там по Tab-у можно
было быстро включить вид на мониторе что как будто ты
работаешь
Commander Keen -- играл, какие-то уровни проходил, но не силён в подобных
Quarantine -- не понимал что надо делать. Ездил, стрелял, сбивал, но не
понимал что дальше то надо выделывать
Dangerous Dave 2 -- играл, но было сложно. Наверное дальше 2-3-го уровня
не проходил
Civilization -- без комментариев. Почти каждую неделю играю в FreeCiv
BabyType -- не знал как называется, но точно в неё играл. Возможно ещё
до того, как у нас появился компьютер
Castle -- именно в этот Castle 1991-го года я точно играл. Точно надо бы
в подобное вдвоём было
Sexonic, Sextris -- в обе играл. Не то чтобы много, конечно же пока не
было родителей рядом
Worms -- кроме FPS игр, в эту было забавнее всего играть вдвоём на одном
компьютере. Очень клёвая!
King Bounty 2 -- запускал не раз, ничего не понимал, никого не
получалось побить, ничего не получалось сделать
Lemmings -- был слишком маленьким чтобы понять что надо делать.
Рандомные действия только делал, но вроде дальше проходил
Battle Chess -- точно запускал, забавляли анимации, но не более
Но в детстве всё совершенно по другому выглядело. Например в Fallout я
вообще ничего не мог сделать, даже убить крысу на начальном уровне. И
конечно же мне не нравилась эта игра. Или M.A.X. был безумно сложным --
хотя в Warcraft 2 без проблем удавалось играть. Но во всё это я играл не
на нашем компьютере (был слишком старым/слабым), а на дядином.
Sergey Matveev [Fri, 12 May 2023 08:06:28 +0000 (11:06 +0300)]
Streamlined NTRU Prime vs Kyber
https://blog.josefsson.org/2023/05/12/streamlined-ntru-prime-sntrup761-goes-to-ietf/
https://ntruprime.cr.yp.to/faq.html
Kyber был выбран NIST-ом для KEM-а. OpenSSH использует sntrup. В FAQ
говорится что для Kyber нет уверенности в отсутствии патентов. Google
когда-то ведь запускала проект с NewHope алгоритмом, но больше про него
не слышно из-за патентов. Вообще видно что Kyber DJB недолюбливает.
Sergey Matveev [Thu, 11 May 2023 18:45:21 +0000 (21:45 +0300)]
Эштон Кучер в Брюсселе толкает речь про гомоморфное шифрование
https://blog.cryptographyengineering.com/2023/05/11/on-ashton-kutcher-and-secure-multi-party-computation/
А вообще в статье от Мэтью Грина рассказывается про multi-party
computation примеры и вообще возможность не нарушая приватности
сканировать фотографии на тему "плохого" содержания.
Sergey Matveev [Wed, 10 May 2023 15:19:33 +0000 (18:19 +0300)]
OAuth2 же стандарт, поэтому быстро можно реализовать клиента
https://habr.com/ru/companies/ruvds/articles/734204/
... ага, как же! Статья кратко описывает подводные камни и то, что фиг
выйдет просто взять и сделать работающий OAuth2 клиент для очередной
соцсети. Я первый и последний раз связывался с OAuth1/2 в ivi. OAuth1
поддерживался только Twitter. А для OAuth2 не было никакого generic
решения: для каждой соцсети были свои модули с теми или иными хаками.
Sergey Matveev [Wed, 10 May 2023 13:56:45 +0000 (16:56 +0300)]
Удаление файлов с похожими именами
https://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D1%81%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D0%B5_%D0%9B%D0%B5%D0%B2%D0%B5%D0%BD%D1%88%D1%82%D0%B5%D0%B9%D0%BD%D0%B0
Среди скачанных lossless альбомов на замену MP3
(96cac6d683e023383670bf6cbccf91c7eff90063) есть много альбомов с
не совпадающими именами: опечатки, наличие восклицательных знаков,
многоточия, разные регистры букв, пропущенные года в имени, и т.д..
Надо бы как-то автоматизировать поиск похожих имён. Когда-то я просто
слышал про расстояние Левенштейна, но никогда на практике не использовал
ничего связанного с подобным. Судя по всему, как минимум, он то что мне
нужно. Для Perl есть лёгкая библиотека по его расчёту. Беру
отсортированный список директорий и вывожу пары между которыми
расстояние меньше заданного:
use Text::Levenshtein qw(distance);
my @lines = map { chop; $_ } <STDIN>;
for (my $i = 0 ; $i < ($#lines - 1); $i++) {
my ($l1, $l2) = ($lines[$i], $lines[$i+1]);
print "$l1\n$l2\n\n" if (distance($l1, $l2) <= $ARGV[0]);
}
Расстояние подбирал эмпирически: указывал одно, сохранял результат в
файл, затем другое, затем сравнивал файлы comm -3 командой и смотрел
имеются ли отличия значимые. Несколько сотен директорий подчистил таким
образом.
Sergey Matveev [Wed, 10 May 2023 10:31:31 +0000 (13:31 +0300)]
zparseopts вместо getopts
https://linux.die.net/man/1/zshmodules
https://www.zsh.org/mla/users/2011/msg00350.html
Спустя столько лет у меня появился zsh скрипт с опциональными
аргументами. Передавал я их через переменные окружения, что не очень
удобно. Наверняка же в zsh есть какой-нибудь helper для парсинга
аргументов? В моём скрипте мне хватило всего лишь просто помещения в
один ассоциативный массив значений длинных опций.
В рассылке привели более сложный пример с короткими и длинными опциями:
while getopts dhv opt ; do
case $opt in
(d) setopt xtrace;;
(h) print_help
exit;;
(v) print_version
exit;;
esac
done
Если поместить -d и --debug в $opthash[d], то проверить наличие ключа
можно ${opthash[(i)-d|--debug]}. Можно использовать разные массивы:
local -a debug help vers usage
zparseopts \
d=debug -debug=debug \
h=help -help=help \
v=vers -version=vers
и $+debug[1] покажет был ли использован debug.
Ну а обработать результат zparseopts можно так:
Sergey Matveev [Tue, 9 May 2023 22:42:16 +0000 (01:42 +0300)]
Парад старых автомобилей
Пока ехал в Москву в маршрутке, на дороге минут пять мы обгоняли колонну
из ретро автомобилей. Были всякие Запорожцы, которые я в живую в детстве
ещё видел, хотя и не ездил. Но были и Чайки, всякие Победы, старые Волги.
Некоторые из них я только в музее и на фотографиях видел -- а тут все на
ходу!
Sergey Matveev [Tue, 9 May 2023 21:55:15 +0000 (00:55 +0300)]
Празднование Дня Победы: презентация альбома L'Homme Absurde
Так сказать, отпраздновал походом на концерт-презентацию нового альбома
L'Homme Absurde. Знаком с ними с Зимнего MORа
(42bb33b6099fe1c7eec747eb070dffcf24056b7b).
На разогреве были "Шумы Штормовых Широт", с которым тоже познакомился на
том же MOR. Офигенны ребята. Как и писал прежде: только на них уже можно
было бы пойти.
После них шли "Mare Infinitum". Ну такой медленный doom. Вообще было
скучновато, уныловато. Но очень понравился вокалист: отличнейший
приятный чистый вокал, отличный крутой гроул, зачётный скриминг, плюс
даже горловое пение было местами. Но мужской чистый вокал мне редко
заходит -- тут прям наслаждался им.
Ну и закрывали сие мероприятие сами L'Homme Absurde. Прямо даже на самом
альбоме отпечатано что он вышел 9-го мая. Я возможно вообще был первым
человеком кто на CD его приобрёл. Сыграли кучу песен с него, а также
свои старые хиты, которые я заслушал до дыр с прошлых альбомов. Всё было
превосходного и атасно! Похоже я снова вошёл в колею бошкотряса. Я почти
весь их концерт оттряс головой усердно, страшно представить что будет с
моей шеей на утро, ибо она уже сейчас болит и плохо поворачивается, а
ведь до сна, обычно, ей ещё плохо не бывает.
Как сказала группа в середине выступления, то можно считать что это была
некая приватная вечеринка для избранных. Я обернулся и увидел что в зале
где-то человек восемь, включая меня (я стоял в середине зала, но это был
первый ряд (звук хороший чтобы был)). При этом на предыдущей группе было
поболее людей, но я мельком от кого-то услышал слово "салют" -- видимо,
люди ушли на него. В общем, такого опыта у меня ещё не было: чтобы люди
ушли с самых главных, да ещё и реально человек 7-8 всего осталось. Ну,
праздник всё таки важный, не поспоришь.
Кроме их альбома приобрёл ещё диск Mare Infinitum.
Sergey Matveev [Tue, 9 May 2023 07:42:14 +0000 (10:42 +0300)]
age имеет 128-бит ключи
https://words.filippo.io/dispatches/post-quantum-age/
https://eprint.iacr.org/2019/1492
В 4674ad351dcb1f018d2392bc03fb0692e101e229 глянул на age утилиту. Сейчас
попристальнее посмотрел на её формат, который уже стал доступен в
https://github.com/C2SP/C2SP репозитории, а не на Google Docs.
И сильно поразился: для шифрования используется 128-бит ключ. В начале
шифротекста добавляется 128-бит nonce. HKDF-SHA-256 на вход принимает
ключ, nonce и выдаёт 256-бит ключ для ChaCha20. Но ведь энтропии на вход
всей этой симметричной схеме шифрования было подано всего 128-бит.
Я не могу сказать что это не безопасно на практике *сейчас*. Но я не
понимаю почему так сделано. Ведь ничто не мешает использовать 256-бит:
шифр и так 256-битный, SHA-256 имеет размер блока (внутреннее состояние)
в 512-бит, что достаточно для потребления энтропии и 256-бит ключа и
nonce-а. Если иметь 256-бит ключи, то ничего нигде не станет медленнее
(захэшировать несколько раз дополнительные 128-бит перед шифрованием
всего файла -- ничего не стоит). Ведь для квантовоустойчивых схем нужны
в два раза более длинные ключи, то бишь 256-бит.
Я понимаю, что если и будут созданы квантовые компьютеры общего
назначения, то ломать будут не симметричную часть age, а его X25519 и
там уже без разницы какой длины ключи. Но на пустом месте убрали
бесплатный запас прочности.
В блоге Filippo Valsorda описано почему не стоит воспринимать эти
128-бит как проблему: алгоритм Гровера всё равно медленный, не
распараллеливается и там "сила ключа" не просто делится пополам.
Why 128 bits? Because the file key is wrapped in each recipient
stanza, so adding 16 more bytes to the file key would add 16 bytes
to the file size per recipient. Instead, we have a 128-bit per-file
nonce to provide a comfortable margin against multi-user attacks,
where a shared search space of only 128 bits would be too tight.
Всё это всё равно выглядит как экономия на копейках. Мне не нравится.
Это всё из серии "Too much crypto" статьи, где говорят о том, что
консерватизм в криптографии приводит к ужасно завышенным запасам
прочности алгоритмов, уничтожая производительность. В BLAKE3 поэтому
вообще сократили количество round-ов в два раза относительно
оригинального BLAKE, который стал финалистом SHA3. Но если BLAKE3 ещё
можно применять где не так критична криптографическая сила, зато получая
лютый прирост производительности, то в age это экономия в 16 байт на
каждого получателя (всего то!).
Sergey Matveev [Mon, 8 May 2023 11:42:41 +0000 (14:42 +0300)]
Переехал с IPsec на WireGuard
Уже упоминал что были мысли о переезде на WireGuard полностью. Но
останавливала его скорость ниже IPsec-а, из-за userland реализации.
После обновления FreeBSD (0cfadc4b3f5ed39dba025a4aecf5cede864f9ad1),
WG стал встроенным в ядро, как и утилита управления им. Тесты показали
что он, как минимум, не медленнее (пропускная способность и задержки)
IPsec-а на гигабите.
* IPsec я всё равно использую с PSK аутентификацией. Никаких PKI или
подобного функционала IKEv2 не лишаюсь
* Ничего дополнительно из портов устанавливать не надо (strongSwan)
* Запускаю настройку wg интерфейсов в виде демона запускаемого через
daemontools -- явного демона никакого не используется
* WireGuard у меня всё равно для удалённого доступа используется и для
связи с VPS-кой -- теперь экосистема полностью унифицирована
* Эстетически очень приятно что шифрование это ChaCha20-Poly1305
* На gif-интерфейс нельзя было повесить MTU больше 8192, поэтому 8KiB
блоки через NFS нельзя передать было одним пакетом. На wg-интерфейс
можно навесить MTU большего размера. Мелочь, а приятно
Sergey Matveev [Fri, 5 May 2023 15:09:20 +0000 (18:09 +0300)]
Обновил FreeBSD на серверах
Делаю jail с голой FreeBSD 13.2 в отдельном ZFS dataset. Пересобираю всю
ОС в нём. mount_unionfs использую для монтирования /usr/ports/distfiles
в этот jail, чтобы он мог собирать пакеты без Интернета. Пакеты на
основной системе все были собраны, поэтому и distfile-ы имеются.
Использовать те же самые настройки для пакетов как на моей основной
системе не хочу, ибо на сервере мне не нужна документация для кучи из
них, которая занимает место. Собираю кучу пакетов общих для двух своих
серверов и общие настройки (всякие временные зоны, chrony, strongswan,
postfix). Делаю clone из этого data set. Теперь есть два chroot-а. В
одном продолжаю настраивать и устанавливать порты для одного сервера, а
в другом для оставшегося.
На USB флешку переношу файл с ZFS dataset-ом jail-а. С другой USB флешки
загружаюсь и переразбиваю диск, создаю ZFS pool и zfs recv на него
dataset-а с флешки. Перезагружаюсь и после нескольких итераций выясняю
что серверы почему-то могут загружаться с EFI разделов USB дисков, но на
обычных SATA они игнорируются. Делаю freebsd-boot раздел для gptzfsboot
разгрузчика, EFI раздел с /boot/loader.efi загрузчиком для UEFI систем,
swap-ом и оставшимся свободным местом для freebsd-zfs. Всё это
затрагиваю до самого большого раздела на терабайты с хранилищем файлов.
gptzfsboot тоже без проблем справляется с загрузкой с ZFS где zstd и
skein. Корень на этом сервере сзеркалирован, а вот разделы с данными
вообще в stripe и на GELI зашифрованных разделах. Их не трогаю -- пускай
остаются как есть. На втором диске проделываю все те же самые действия с
загрузчиками и добавляю ZFS корневой раздел в зеркало.
Но это сервер который не шибко критичен для постоянного online. Зато на
нём понял особенности загрузки с EFI на этих серверах. А вот с основным
больше геморроя. Гораздо больше программ и настроек. Перед вознёй с
jail-ами я делаю zfs send с сервера и zfs recv на мой основной компьютер
чтобы рядом под рукой иметь полностью его готовый образ, чтобы локально
удобно копировать настройки/state-ы и прочее. Теперь на SSD USB создаю
уже полноценную загрузочную систему. В самом конце останавливаю
почтовик, переношу его последнее состояние в dataset на флешке и
перезагружаю сервер, загружаясь с SSD USB, чтобы понять вообще работает
ли он (почта). Если не работал бы, то просто перезагрузился бы обратно с
дисков. Но всё оказалось более менее нормально. Система работает, на
лету по SSH чиню всякие мелки косяки, загружаю zfs recv-ом dataset с
одним jail-ом, который был сделан ещё на FreeBSD 11.2. Заработал без
проблем.
Но на этом основном сервере у меня небольшая часть места отведена под
корень, а терабайты под GELI раздел с хранилищем. И всё в зеркалах. И я
решил заменить этот GELI на родное ZFS шифрование, из-за удобства и
гибкости. Например раздел с NNCP spool-ом у меня ограничен квотой на
2GiB всего, ибо не раз кончалось место на корневом разделе. А tossing
при этом уже происходит на зашифрованный dataset. С родным ZFS
шифрованием можно не думать про место -- оно одно для всех. Плюс я хотел
перейти на AES-256 (GELI был на AES-128). В итоге полностью переразбиваю
один из дисков, теряя на нём данные, устанавливаю загрузчики, добавляю в
зеркало к SSD USB диску. Когда resilvering завершается, то загружаюсь с
этого HDD. Расширяю его место на все оставшиеся терабайты, подключаю
GELI диск с данными и переношу с него всё что там есть через zfs
send|recv, но не забывая указать encryption на целевом dataset-е. После
этого второй диск полностью переделываю и добавляю в зеркало.
В общем, прилично работы, куча времени на перенос терабайтов, но
минимальный downtime. Вот ни одной проблемы в ОС или баги не нашёл. Всё
как по маслу. Все косяки -- моих рук и от невнимательности.
Sergey Matveev [Wed, 3 May 2023 08:44:40 +0000 (11:44 +0300)]
Безопасность AMD Zen 2/3 и TPM
https://3dnews.ru/1086074/protsessori-amd-na-zen-2-i-zen-3-okazalis-uyazvimi-k-atake-cherez-modul-bezopasnosti-tpm
Пишут, что на этих системах можно за 200$ TPM атаковать так, что
получить доступ ко всем ключам.
Sergey Matveev [Mon, 1 May 2023 17:30:35 +0000 (20:30 +0300)]
hwpstate_intel и powerd
В обновлённой системе появился рабочий hwpstate_intel драйвер, который
позволяет per-core управлять балансом между производительностью и
энергозатратами. Прежде без powerd Turbo Boost не врубался
(69e98cc610789604ae6a02ae38586135a803d38c). А сейчас powerd что-то и
пытается делать, но я по вентиляторам слышу, что отнюдь он никакого
максимума не пытается выжать. А вот если сделать:
for oid (`sysctl -aN | grep "dev.hwpstate_intel.*.epp"`) sysctl $oid=0
то частота будет на максимуме. Если =100, то частота будет на минимуме.
По сути, powerd с этим hwpstate_intel драйвером становится бесполезным.
Sergey Matveev [Mon, 1 May 2023 16:39:46 +0000 (19:39 +0300)]
Garmarna -- Gamen
https://www.youtube.com/watch?v=D_dJjJ2H-i4
Прикольный клип на композицию Garmarna: народ в кадрах отрывается как
на конкретном нормальном металле. Все колбасятся, включая музыкантов,
а идея неподвижной вокалистки ещё экстремальнее всё делает.
https://t-dose.org/2023/schedule/workshop-editor-ed/slide.pdf
Знакомый устроил workshop на одной из конференций посвящённый редактору
ed. Мол, Кен написал его за неделю, как и командную оболочку с ассемблером.
Хорошие слайды с показом всех основных принципов работы с ним. Ведь он
куда не так прост, довольно много функциональности.
Годами откладывал обновление FreeBSD 12.0, так как геморройное и
длительное это занятие. То тут патчик, то там -- чем дальше, тем больше
их накапливалось и ещё сильнее оттягивало время обновления. Вчера
решился на это. С чистого листа установка, а дальше накатывание и сборка
кучи всякого софта. Не считая ночи, заняло это у меня сутки. Я думал
значительно дольше будет. Многое в портах просто оказалось достаточно
или даже более современным чем у меня было установлено руками через Stow
(1e743a661cddf1e6755aa183932b74e4c99de322). Прежде у меня в системе был
LLVM аж 6-ой версии, а руками установленный 14-ый. 15-ый уже не
собирался на такой древности. В FreeBSD 13.2 LLVM 14 уже просто из
коробки идёт, 15-ый в портах работает.
Наверняка я ещё месяцами буду напарываться на какие-то особенности что
не учёл. По хорошему, надо бы было смотреть diff от всего моего корня до
голой 12.0 установки, чтобы понять где я что подкручивал. Но пока решил
решать проблемы/особенности по мере обращения на них внимания. Благо, с
ZFS-ным send/recv держать отдельный старый корень можно легко рядом.
Прежде я видел, что загрузчик не позволяет грузиться с ZFS разделов где
включён или Skein или SHA512/2 хэш. Сейчас в man-е я ограничений не
увидел и сразу же выставил для корня и Skein и Zstandard сжатие.
Работает и грузится без проблем. Теперь у меня вообще везде Skein. С
zstd вместо lz4 пока не понял есть ли профит или тормоза. Вообще система
работает побыстрее, но конкретно про ФС ничего сказать не могу --
быстрее, но не известно по какой причине. Да и лень выяснять. Появилась
возможность поиграться с шифрованием родным на ZFS.
Думал что будет гораздо гораздо больше подводных камней, но прям сейчас
даже и не вспомню с чем были проблемы. Существенно обновлённый Postfix
только чуть иначе стал работать и небольшие поправки к настройкам
понадобились.
Проблема с теми, кто зависит от GTK3, ибо он зависит от colord, который
хочет spidermonkey, который берётся из Firefox, который стал требовать
Rust. Никаких Rust-ов я не допущу у себя, поэтому собирать порты
зависящие от polkit/colord/gtk3 не выйдет. Всякую Zathura собрал руками
поэтому. Что-то от GTK3 всё равно установилось из портов.
Приятно было видеть что в куче мультимедиа портах по умолчанию
собирается AV1 поддержка везде. А также и JXL поддерживается.
Xombrero уже не собрать штатно, ибо Webkit нужной версии вообще в портах
стал отсутствовать. Какой же броузер можно использовать? Попробовал
NetSurf -- падает на разных кнопочках, ещё какие-то фатальные проблемы:
не рабочий вариант. Dillo выглядит хуже чем Links2 в GUI режиме, не
нашёл с ходу как подсунуть сертификат для аутентификации tofuproxy.
luakit требует webkit, зависящий от GTK3, который из портов не собрать,
а руками ленно. Пока для GUI броузером остаётся Links2. Если в Xombrero
я ещё включал JavaScript, который где-то, например на рабочем Redmine,
ещё работал, то в Links2 никакого CSS/JS нет. Наверное можно и вообще
полностью уже забыть про JS-capable броузеры. Пока попробую собрать
qutebrowser, который не от GTK3, а от Qt зависит (хотя бы без Rust
зависимостей). Хотя удобство Xombrero возможно и заставит меня в Jail-е
со старой FreeBSD установить всё же webkit с ним.
Но пока это всё только на моей рабочей машине. Ещё и серверы же надо
обновлять. Но там вроде бы должно быть попроще и побыстрее, ибо пакетов
не много, в ОС почти ничего не трогал.
https://ru.wikipedia.org/wiki/%D0%92%D1%8B%D0%B7%D0%BE%D0%B2_(%D1%84%D0%B8%D0%BB%D1%8C%D0%BC,_2023)
Понравился фильм! Хоть и более двух часов идёт, но нигде не устаёшь и не
надоедает, держит в напряжении. Прежде "Гравитация" для меня была самым
технофетишистским фильмом про космос. Но "Вызов" тут естественно круче,
что не удивительно -- ведь действительно по-настоящему в космос то
слетали. Лично мне бы побольше туда кадров самого полёта, стыковки и
подобного -- ведь они гораздо дольше длятся. Здорово и на космонавтов
посмотреть было, настоящих! С удовольствием пересмотрел бы и ещё раз!
https://habr.com/ru/articles/730464/
В очередной раз вижу статью о том, что RSS мёртв. Я не понимаю с фига
ли? Даже в комментариях верно заметили что RSS пропал только из
нескольких соцсетей (типа Twitter), не более. Я конечно попадаю на сайты
где нет feed-ов, но это на уровне статистической погрешности их
количество. Все эти статьи про RSS должны говорить о том, что основная
масса людей просто переехала в соцсети из web-а. Вот и всё. Соцсети --
закрытая экосистема, изолированная, как правило, от поисковых роботов
путешествующих в web. Заинтересованная в том, чтобы люди заходили на
них, смотрели рекламу, сливали свои предпочтения и историю просмотров.
Когда-то ведь и XMPP был что в Facebook, что в VK.
Сейчас у меня 348 feed-ов. Пару лет назад было более полутысячи, но я
активно всё подчистил от годами не обновляющихся feed-ов. Это было
наверное с полторы сотни. А какая-то часть стала недоступна или стала
открыто поддерживать терроризм и убийство россиян и русских. Но этого
было возможно штук пятнадцать. А вообще feed-ы только добавляются и
добавляются.
* Он установлен везде, не нужно ничего дополнительно ставить
* Его скрипты вполне себе могут масштабироваться до больших проектов
* Можно быть уверенным, что через десять лет скрипт всё равно будет работать
* Perl прекрасно подходит для любой shell-related задачи
* У Perl-а не богатый синтаксис, он расширяем
Вообще, утверждение о том, что Perl есть везде -- уже вроде бы не
соответствует действительности. Это я про некоторые дистрибутивы
GNU/Linux говорю. Но, по сути я вообще понятия не имею что от
современного GNU/Linux можно ожидать: vi нет, ed нет, perl нет из
коробки. Я могу ожидать только наличие sh и ls что ли? Но скорее
просто нужно говорить про нормальные адекватные Unix-like ОС.
Про то, что, как правило, не надо париться о версиях и совместимости --
это так. Я вообще даже примерно не знаю какие именно версии Perl у меня
где установлены -- но все скрипты just works. Когда-то давным давно и
Python, когда был 2.7, мог этим хвастаться. Но сейчас уже куда ни плюнь,
то сплошь и рядом можно увидеть один скрипт работающий под 3.5, другой
только под 3.6, третий под 3.7, и т.д..
Вот недавно мне надо было реализовать EGD (https://egd.sourceforge.net/)
демона, который бы за энтропией ходил по XML-RPC к другому серверу.
Писать на Go -- возможно его не будет на целевой системе. Python?
Понятия не имею будет ли там Py2 или Py3, как минимум. На Си -- и долго
и не хотелось бы, ради такой мелочи, компилировать что-то. Вот и
остаётся Perl.
https://vk.com/wall-216231092_6729
https://www.youtube.com/watch?v=dVSqEIVp95s
https://www.youtube.com/watch?v=TzUYrQcaxFg
Рекламы службы в вооружённых силах у нас клёвые.
Есть ещё китайский ролик неплохой и просто постыдный из США.
https://vk.com/video-50883936_456242505
Полуторачасовое интервью с Дмитрием, где обсуждают всякие Intel,
Эльбрусы и прочее.
Под конец затрагивают и тему полной невменяемости многих комментаторов.
Я подобных видел не раз (на Хабрах тех же), но думал что это люди такие
непробиваемые идиоты. Дмитрий же считает что это ничто иное как просто
ответ по методичке либеральной, мол ну нельзя был настолько тупым.
Хорошо они оба сказали про то, что люди ничего дальше своего носа не
видят, не интересуются а какого живётся остальным, кому просто нет
времени сидеть в VK том же. Говорят, что самый дурацкий призыв который
только можно сделать -- это "давайте смотреть на вещи объективно".
Плюс AMD -- глюкавое говно. Я всё не забуду, что с появлением Ryzon-ов,
читал как ядро BSD/Linux/whatever падает чуть ли не каждый день. Многое
решалось обновлением прошивки процессора, но... выходит что продают
просто буквально не рабочий процессор? Я много видел заметок о том, что
вот то, да сё не работает на AMD, особенно в плане виртуализации. Ну
типа особая поддержка нужна всё равно. И я не понимал как при этом то
люди AMD процессоры покупают то активно? Думал что, возможно для офисных
и игровых задач оно достаточно стабильно. В этом интервью это
подтверждается. Лучше переплатить за Intel, зато быть уверенным в
стабильности и надёжности.
Ещё Дмитрий офигел от того, что у современной молодёжи нет игровых
приставок. Типа полсотни человек школьников приезжают в его музей, но ни
у кого нет ни приставок, и не играют на ПК. Мол только на смартфонах.
https://ria.ru/20230418/simonyan-1866025170.html
Предложили обменять Ассанжа на трёх иноагентов. "Спасите одну
полезную жизнь ценой трех вредных" -- хорошо сказано, поддерживаю!
https://chipsandcheese.com/2023/04/16/codecs-for-the-4k-era-hevc-av1-vvc-and-beyond/
Хорошая статья о сравнении этих современных кодеков. Оценки VMAF-а
конечно могут не совпадать с субъективным восприятием. VVC хорош на всех
bitrate, AV1 бьёт HEVC на <1.5Mbps для 4K. Но AV1 единственный кто не
имеет проблем с патентами и отчислениями. Но и надо учитывать, что у
него довольно низкие по качеству CRF-ы выбраны, экономные.
Побывал на концерте "Dragonaut Fest". Офигительно было. Такого смешения
и разнообразия совершенно разной музыки я наверное не встречал на одном
мероприятии. Всё же самый "жирный" и сочный звук, самый лютый distortion
на гитарах это на sludge и stoner музыке. Анонс был таков:
Cамые самобытные артисты столицы соберутся на одной сцене, чтобы
поразить вас ощущением слияния эпох. Психоделика 60-х,
инструментальный рок 70-х, Kraut, Stoner и Cладж нулевых.
Почти всё конечно можно было отнести к stoner-у, но по сути большинство
участников несравнимы все между были. Очень уж всё разнообразно.
Открыли концерт "Инна Пиварс и Гистрионы". Одетые как хиппи, музыкой из
этого же времени. Здорово, ничего так, можно было бы ещё раз послушать.
В живую ничего такого не слышал прежде.
https://www.youtube.com/watch?v=1E-YKcEcLHw
https://f4.bcbits.com/img/0005825302_10.jpg
Далее были "Кшеттра". Барабанщик и басист. Причём последний как-то
офигенно играл на басу, выдавая соляки и параллельно дубася по басовой
струне. Не видя сцены, я бы подумал что там отдельно басист и гитарист.
Затем шли "Black Aspirin", которые играли и каверы на Panthera и
подобную заводную музыку. Неплохо, отлично, заводно, но, конечно, не
моё, простовато.
Далее "Roswell Surgery". Барабанщик с Napalm Death футболкой как у меня.
Вокалистка с Obituary футболкой. А гитариста я уже видел в Шишкином Лесу
(d8da5d3e101eb1916ac3fe3412e321a4f9c012e0). А это значит что будет жутко
мрачный, медленный и сочный звук. Но, как и с Шишкиным Лесом, их
композиции бы раза в два сокращать. Один раз послушать интересно, но
дальше уже не особо бы захотелось.
Потом "Unhealing Wound". Люто понравились! Вообще чёрт знает что это
такое было в плане стилистики. На сайте написано что это "krautrock".
Впервые слышу. Но просто потрясающая вещь, которую не описать. Куча
энергии, авангарда, психоделики, кача, медляков и скоростных вещей.
Думал что этих парней ничто для меня не переплюнет. Но нет, ибо следом
вышли "The Re-Stoned". Под них я не выдержал, снял очки, резинку для
волос и оторвался бошкотрясом. Можно взять и смешать атмосферные запилы
Джо Сатриани, жёсткую ударную игру Джона Петруччи, психоделику и
заводного ритмичного идеального для бошкотряса мощного дж-дж -- вот и
будут Re-Stoned. Мощнейше!
Ну а заканчивал это всё "Drunk Shaman". Было весело, но от того, как всё
выступление было нелепо. Басист, гитарист, барабанщик, плюс сам этот
шаман. У которого на столе куча каких-то электроприблуд как у харш-нойзеров
и микрофон. Так вот половину выступления вокруг него носились аж два
звукача, тыкая в планшетах, пытаясь что-то сделать с тем, что его голос,
как и его электроника, были бы хоть как-то слышны. А шаману похоже что
было пофиг. Он стоит, собственно, шаманит там что-то с ручками. Ему
кричат что не слышно его вокала -- он только кивает. Когда сыграли
первую композицию, где на сцене два звукача были, никто так и не понял
было ли это уже начало выступления или типа только soundcheck. Между
второй и третьей, пока всё пытаются сделать вокал, гитарист свою гитару
настраивает, басист с барабанщиком там вместе что-то про себя наяривают,
а шаман шаманит. Но кач и звук у инструменталистов был хорош, но ничего
выдающегося. В общем, наверное более фигового выступления я наверное ещё
не слышал, но это даже было забавно. Действительно: на сцене чувак,
который что-то шаманит, пофиг на то что его не слышно, как бухому, и всё
это на фоне sludge/stoner музыки.
Прикупил шесть альбомов Maat Lander (ещё не слушал, но, судя по
фотографии группы, там гитарист из Re-Stoned), Re-Stoned и Uratsakidogi.
https://www.schneier.com/blog/archives/2023/04/hacking-suicide.html
Моральная дилемма: совершив суицид (fa604a3ec404299b4c41d35be9ad85bbc1eb725e),
попадёшь в ад навсегда. Поэтому ты убиваешь кого-нибудь. Тебя казнят, но
если ты сознаешься в грехах священнику прежде, то избежишь ада. Даже
такая проблема решается криптографами.
https://www.iana.org/assignments/hash-function-text-names/hash-function-text-names.xhtml
https://datatracker.ietf.org/doc/html/rfc8692
https://datatracker.ietf.org/doc/html/rfc8702
https://crypto.stackexchange.com/questions/70565/shake-128-256-or-sha3-256-512
Для X.509 и CMS уже есть RFC с OID-ами для использования SHAKE128 и
SHAKE256 "хэшей" вместо SHA2 семейства. А Ed448 вообще с самого начала
используется только с SHAKE256. А в IANA списке хэшей, кроме MD5, SHA1 и
SHA2 есть только ещё SHAKE*-и. Так что внедряется SHA3 всё активнее.
В 33-ем сезоне Симпсонов, Гомер написал ещё одно стихотворение. Я и
первое (на много сезонов до этого было) помню до сих пор (в русском
переводе):
Жил был помидор насильник.
Он насиловал меня каждый день.
И знаете что? Это был я.
Новое стихотворение ему даже не дали прочитать, но к камере тетрадь была
повёрнута:
There once was another tomato
The son of the rapping tomato.
He rapped really smart
with all of this heart.
And then who cares he was famous
Представьте себе наиболее оскорбительный app store.
Программы из него запускаются на вашем личном компьютере.
Но вы должны быть в online для их запуска.
Каждый раз при запуске, они соединяются с app store.
Если есть более новая версия, то без вопросов она
устанавливается автоматически.
Если app store решила что вам более нежелательно запускать
программу, то она больше и не запустится.
Если сервера app store в offline (или вы), то забудьте о программе.
Программы из этого app store должны хранить все данные за серверах
этого app store.
Если программа не запустилась, то и до прежде сохранённых данных вы
больше не сможете достучаться.
Возможно даже была опция по скачиванию резервной копии ваших данных,
но вам ещё нужно понять как декодировать её.
Звучит ужасно? Но ведь это буквально описание современной экосистемы
web-а! Современный web именно такой app store и представляет.
"Web приложения" чаще всего распространяются как JavaScript
программы (прежде эту нишу занимали Java и Flash), автоматически
без вопросов устанавливаемые и запускаемые.
Проблема не в том, что они написаны на JavaScript (или WASM/whatever),
а в том, что:
* у вас нет контроля над тем, что программа делает
* у вас нет контроля над тем, когда эта программа запускается
* у вас нет контроля над вашими данными
Владелец такого "app store" отбирает у вас контроль, тем самым
получая контроль над вами.
Использование подобных несвободных программ автоматом ещё и означает
встроенные возможности слежки и универсального backdoor-а.
http://www.git.stargrave.org/?p=meta4ra.git;a=commitdiff;h=1efa4b2c0439a7f041a619d99e9b18c6a4045979
http://www.git.stargrave.org/?p=meta4ra.git;a=commitdiff;h=2d4783856dffafc91b9aa007c3dd922dea12599b
http://www.git.stargrave.org/?p=godlighty.git;a=commitdiff;h=60823f21a618760fa82ac72ac6c6c4e2974d4e4d
На сайтах для своего софта, в разделе скачивания, я публикую ссылку на
сам tarball, OpenPGP подпись над ним и SHA256 хэш. Позже я стал ещё
добавлять .meta4 файлы (542f9611780a28a67ebd52210bbdcb9845c2890c, 2374b93f88e7a3222c0e91999306b259bd9e276c), которые содержат и хэши
(SHA256 с SHA512) и ссылки на доступность по другим URL-ам. Эти же
.meta4 файлы я стал прикладывать к письмам оповещениям о новых релизах.
Сегодня задался вопросом: а зачем я дублирую значение хэша (и то, только
одного из) вне .meta4, раз он всё равно и в письмах и на сайте есть?
Кроме того, на сайтах PyGOST и GoGOST я ещё писал Стрибог-256 хэш. Что
мешает его добавить в этот же .meta4? Ну кроме того, что формально нет
RFC на это. А если Стрибог добавлен в meta4ra утилиту генерирования
.meta4 файлов, то автоматом Стрибог появится и во всех остальных местах,
остальных проектах. Собственно, вот и добавил его поддержку в meta4ra, в
godlighty web-сервер (чтобы в HTTP заголовке Стрибог хэш отдавал), а
также убрал хэши на страницах скачивания tarball-а, ибо излишне.
Вот правда моя pure-Go реализация Стрибога очень не быстрая. Пришлось и
распараллеливание расчёта Стрибог-256 и -512 сделать и убедить себя что
я никуда не спешу.
А ещё содержимое файла в meta4ra передаётся теперь через stdin, что
автоматом позволяет красивый прогресс хэширования через pv отображать
(c1fbe2c15a0e2c6475ca508b04c91e8ca9ce8e6a).