]> Sergey Matveev's repositories - stargrave-blog.git/log
stargrave-blog.git
2 years agoСерия статей про redo и goredo
Sergey Matveev [Tue, 31 Jan 2023 16:19:27 +0000 (19:19 +0300)]
Серия статей про redo и goredo

gemini://ew.srht.site/en/2022/20221218-redo-0.gmi
Один человек тут написал целую серию статей с введением в redo, кучей
примеров и всё это на примере goredo, с использованием кучи его
опциональных утилит (типа redo-dot).

2 years agoСмена LSP плагина для Vim
Sergey Matveev [Tue, 31 Jan 2023 14:35:26 +0000 (17:35 +0300)]
Смена LSP плагина для Vim

https://github.com/yegappan/lsp
http://www.git.stargrave.org/?p=vim-lsp.git;a=commitdiff;h=a682ee9b6215c9155f170f6b35a972aa14a2999f
Больше года использую vim-lsc плагин (c89a9164128730eb856b89e4f99970a6bfb7b7f4).
И полностью им доволен. Пока не увидел что в обновлённом Vim появилась
встроенная поддержка LSP протокола. По сути то это просто помощник
отправляющий самостоятельно HTTP заголовки и парсящий/создающий JSON-RPC
ответы с идентификаторами.

Посмотрел можно ли с нуля мне самостоятельно написать LSP плагин
используя всё это. Первые шаги взаимодействия получились. Спецификация
LSP от Microsoft прекрасно читается и под Lynx-ом. Но вообще протокол
умеет довольно много всего, как и серверы типа clangd и gopls. Писать
всё с нуля я бы смог, но это не мало.

И внезапно нашёл что уже написали не то что LSP плагин с использованием
поддержки самого Vim-а, а вообще всецело на vim9script. Попробовал и
пока замечаний нет. Более того, он ощутимо более фичастый чем vim-lsc,
хотя я и не уверен зачем мне всё это надо. Использует исключительно
родные возможности Vim-а.

Впервые увидел "virtual text" в действии: LSP/плагин дописывают названия
аргументов из сигнатуры функции, хотя на этот текст нельзя встать или
отредактировать. Не понял ещё мешает ли это или нет, но пока пусть будет.

Работает это всё ощутимо быстрее. Хотя я думал что всё упираться уже
должно в сам LSP-сервер. Но нет -- тут и подсветка и goto definition и
вывод ошибок работают почти стремглав.

Но... конечно же нашлась неприятность. А точнее отсутствующая фича. Для
Python у меня в vim-lsc конфиге явно передавалась такая штука как
workspace_config, в котором указывались настройки для LSP сервера
(отключить mccabe и смотреть только на flake8 конфиг). Пошёл смотреть
vim-lsc код, чтобы понять что же такое (с точки зрения LSP протокола)
workspace_config и как он передаётся. Оказалось что это прям отдельное
событие отправляемое на сервер. Чего yegappan/lsp плагин не делает.
Благо код на vim9script, понятный, компактный и топорный. Добавил
возможность указания этого конфига и его отправку на сервер.

2 years agoДобавление surround без пробела
Sergey Matveev [Tue, 31 Jan 2023 12:08:06 +0000 (15:08 +0300)]
Добавление surround без пробела

https://github.com/tpope/vim-surround/commit/3d188ed2113431cf8dac77be61b842acb64433d9
Tim Pope пишет, что добавил пояснение как сделать surrounding без
добавление пробела и в README intro и в help файлы, но всё равно куча
issue на тему как это сделать. Теперь он добавил аж целый FAQ на эту тему.
Люди реально просто выбешивают тем, что ни секунды не хотят потратить на
чтение хотя бы введения какого-нибудь, отвлекая разработчиков и тратя
своё же время и нервы.

2 years agoСтрогая проверка ASN.1 OID в encoding/asn1
Sergey Matveev [Tue, 31 Jan 2023 11:34:43 +0000 (14:34 +0300)]
Строгая проверка ASN.1 OID в encoding/asn1

Много лет назад в рассылку Go я отправил патч с более строгой проверкой
DER кодирования ASN.1 OID-ов. У них можно было успешно отпарсить не
нормализованные числа. Патч проигнорирован, хотя я написал что просто
нет возможности им отправить правки как они хотят без JavaScript. Увидел
что в мае 2020-го эту строгую проверку в parseBase128Int() всё же добавили.

2 years agoSeafile на FreeBSD
Sergey Matveev [Tue, 31 Jan 2023 09:28:54 +0000 (12:28 +0300)]
Seafile на FreeBSD

https://en.wikipedia.org/wiki/Seafile
Есть одно место где установлен Seafile для обмена файлами. Ни один
броузер у меня не позволяет в него войти, даже с включённым JavaScript.
Сказали что есть CLI клиент для него. Попытался собрать. Кроме кучи
зависимостей, кроме того что в autogen.sh с какого-то фига прописан bash
(хотя и под просто /bin/sh BSD-шным работает), упал на том, что где-то
не хватало заголовочного файла для ntohs-like функций. Затем упал на
строчке с sizeof(struct in6_addr), ибо, опять же, не хватало заголовков.
Затем упал на том, что нет inotify для сборки wt-monitor. Конечно нет,
это ж GNU/Linux-specific. А как отключить его сборку? Нет указаний. А
seafile-cli оказался Python скриптом ещё. В общем, даже filesharing
backend приложения умудряются сделать не кроссплатформенными.

2 years agoVidcast-ы в AV1
Sergey Matveev [Mon, 30 Jan 2023 22:56:05 +0000 (01:56 +0300)]
Vidcast-ы в AV1

AV1 кодек настолько понравился (точнее его SVT-AV1 реализация)
(07bddb0ed6a5d2276a10cf77b81e22da2d7c69e6), что решил перекачать и
перекодировать имеющиеся у меня с YouTube-а подкасты. В 2K я их не
качал, ибо много места занимает, да и нафиг нужны такие разрешения.
А в более плохом качестве YouTube использует уж или маленький bitrate
или плохие настройки качества (чтобы быстро кодировалось).

Скачал самые качественные версии роликов, смотря на вывод -F-опции
yt-dlp и задавая по отдельности видео и аудио, и перекодирую в AV1,
но с downscaling-ом до 720p. Такое разрешение достаточно, качество в нём
отличное, ибо исходник хорош, а занимает меньше места в разы. Хотя это у
меня не одну неделю займёт процессорного времени, но прерывать это
легко, ибо выпуски vidcast-ов относительно коротки. Коробит меня, даже
имея терабайты свободного места, тратить по полгигабайта на 20-30мин
видео vidcast-а (ладно бы фильма).

2 years agoТысячи торрентов
Sergey Matveev [Mon, 30 Jan 2023 22:51:40 +0000 (01:51 +0300)]
Тысячи торрентов

Глядя на свою коллекцию музыки (0e39e6d1b75b764057dc33f1d35d924bcb4ed5ea),
решил через BitTorrent заменить всё что у меня в lossy формате из
всякого грайндкора и метала, на что-то нормальное. Более 2200 торрентов.
Это оказалось испытанием для btrtrc клиента, где даже с резко
сокращённым количеством потребляемых тредов
(80defeaa4b493f6d954d0895fdf8fc89409ac875), их всё равно тысячи
создаются, ибо уж очень много файлов параллельно открываются. Пришлось
вообще запускать несколько instance-ов клиента на разных портах. Но
очень многого не найти всё равно.

2 years agoКремниевые титаны: ZyXEL
Sergey Matveev [Wed, 25 Jan 2023 16:47:14 +0000 (19:47 +0300)]
Кремниевые титаны: ZyXEL

https://16-bits.ru/%d0%ba%d1%80%d0%b5%d0%bc%d0%bd%d0%b8%d0%b5%d0%b2%d1%8b%d0%b5-%d1%82%d0%b8%d1%82%d0%b0%d0%bd%d1%8b-%e2%84%9642/
Этот выпуск заканчивается подчёркиванием того факта, что многие и не
знают и не видят как много где всяких ZyXEL-ей, а они есть. Вот и я: для
меня это брэнд модемов был, не более. А оказывается живёт и поживает и
поставляет в колоссальных количествах всякое.

А их модемы я видел и трогал у знакомых только ширпотребные и в Фидо
особо ничего не было, кроме как куча упрёков и ругани в сторону этой
компании. Мол, когда-то она делала хорошие модемы, а потом скатилась.

2 years agoУже две комнаты
Sergey Matveev [Tue, 24 Jan 2023 21:38:38 +0000 (00:38 +0300)]
Уже две комнаты

Пару лет назад (f2e4d95e36490aa60cfe95cac08f7be6410182ee) писал, что мне
относительно часто снилась внезапно обнаруживаемая дополнительная
комната в моей квартире. Типа во сне внезапно обращаю внимание, что есть
дверь в стене между кухней и большой комнатой, за которой очень и очень
не маленькое помещение и осознание что "блин, а я ж забыл что у меня ещё
одна комната то есть!".

Но тогда, в той комнате было куча хлама. Не мусора, а просто какой-то
мебели, мониторы, которые свалены покомпактнее. Что-то типа склада
ненужных более вещей, но которые и жалко выкинуть. Света нет (точнее не
пытался его включать в ней), ну и явно там нога человека редко появлялась.

Но потом тот сон как-то исчез и я даже забыл про него. А сегодня вновь
тема поднялась, но уже в двойном размере. Внезапно, мой балкон стал
метров на 10-15 шире (и как я раньше то не замечал этого?), став по
ширине как вся квартира. И по обоим концам есть двери в ещё две комнаты.
Но внутри они полностью аккуратны, чисты, вылизаны, и готовы к жизни. По
сути это две спальни: большая двухместная кровать, тумбы, шкафы. Как
будто на чистовую их сделали, заправили всё бельё, но после этого никто
даже не садился на кровать. Но в одной комнате, которая раза в два по
площади больше чем моя большая, кроме спального убранства ещё много
вещей аккуратно сложено и занимает треть комнаты. Вещи тоже из серии
жалко выкинуть, но это какая-то чистенькая одежда, полотенца, коробки
какие-то не пыльные. Всё очень аккуратно, как будто просто подготовилось
всё к переезду или только переехало и нужно распаковать.

Причём во сне я снова офигеваю о того, что "как я мог забыть то про эти
две комнаты то у себя? не часто потому что выхожу на балкон?". И куча
мыслей о том как туда ещё чего бы перенести мешающего в текущих
(реальных) комнатах (хотя лишнего то у меня особо ничего и нет), а чего
вообще стоит выбросить. Я было подумал что это начало попахивать
собирательством, но нет -- я там начал сортировать что надо бы вынести и
выбросить, ибо вещь уже всё равно не будет использоваться. Во сне прям
отчётливо помню что думал о том, что надо бы сегодня не пойти на работу,
заняться причёсыванием и перераспределением вещей. Короче говоря,
инвентаризацией, которую и в реальной жизни проводил для реальной
квартиры (8249370437018ad186c7946f22242731fba52035).

Маме на концерте (6dfb34781bc52cf88db6db7a4c08c4fb176afcc4) рассказал об
этом сне (она у меня любила сонники читать). Она говорит что эти комнаты
-- небось проекция того что у меня творится в голове. Ну что ж, если
так, то тогда приятно: был огромный объём с кучей ненужного хлама, но от
которого жалко избавиться, а теперь ещё больше места, где уже всё очень
чистенько, ни пылинки, хлама меньше (мониторов я уже не видел), но он
аккуратно сложен в стороночке. И сильное желание всё причесать, выбросить
вот точно лишнее. Целая спальня-комната у меня полностью свободна,
стерильна и ни одного предмета в ней лишнего не было.

Может быть обнаружение такого количества свободного пространства это
реакция моего мозга на то, что я на днях внезапно добавил себе +17TB
свободного места? Просто когда показывал что-то на сервере связанное с
ZFS-ом, я увидел что там как-то на массиве из 20TB дисков маловато
места. Оказывается, со момента переезда на эти диски
(289a1c8a9aa5e98936203d48c6079903aaf3550b) я забыл сделать expand для
pool-а и всё появившееся место просто не пыталось быть задействованым.

Плюс возможно реакция мозга на изменение того, как я храню и
категоризирую музыку сейчас (0e39e6d1b75b764057dc33f1d35d924bcb4ed5ea),
ведь это крупнейшее изменение со времён окончания школы.

А ещё я осознал что, вообще уже не один десяток раз на самом деле мне
снилось что-то связанное с моей квартирой или целым домом. То я
жаловался что живу пять лет отдельно от родителей, а в снах только их
квартира. Но сейчас уже точно не так... по сути моё прежнее место
жительства уже даже не вспомню когда во сне было последний раз.

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

2 years agoСходил на "Виртуозов Москвы" с Владимиром Спиваковым
Sergey Matveev [Tue, 24 Jan 2023 20:40:55 +0000 (23:40 +0300)]
Сходил на "Виртуозов Москвы" с Владимиром Спиваковым

Впервые побывал на чисто симфоническом концерте, на государственном
камерном оркестре со Спиваковым в качестве дирижёра и скрипача. Аж
усилителей никаких не было -- только сами инструменты. В целом
понравилось, сходил бы ещё, но уже на что-то более конкретное типа
Баха, Бетховена или Вагнера. Сегодня исполняли как и что-то старенькое
(Гайдн там, Моцарт), так и что-то современное. И мне "старенькое" было
куда интереснее слушать.

Хотя ушам и не хватало напряжения. Подключить бы их виолончели к
электричеству, как это сделали Apocalyptica...

2 years agoЗапятая в конце netstring-а
Sergey Matveev [Mon, 23 Jan 2023 17:28:05 +0000 (20:28 +0300)]
Запятая в конце netstring-а

http://cr.yp.to/proto/netstrings.txt
В netstring формате ([len]":"[string]",") передаваемые строки
заканчиваются символом запятой. Это и удобно для человеческого глаза,
если приходится смотреть что-то не совсем бинарное, и будет неким
сигналом хоть как-то успешного приёма строчки. Но сегодня обнаружил
другой приятнейший эффект: запятую можно изменить на нулевой байт и это
превратит содержимое переданного netstring в строчку пригодную в Си для
работы с родными строковыми функциями. Эта запятая прям резервирует
место для подобного действия.

2 years agoVacuum и Tarja Turunen
Sergey Matveev [Sun, 22 Jan 2023 20:29:47 +0000 (23:29 +0300)]
Vacuum и Tarja Turunen

https://ru.wikipedia.org/wiki/Vacuum
https://en.wikipedia.org/wiki/Mattias_Lindblom
Первый аудио диск который у нас появился после покупки CD-ROM привода --
альбом "Seance At The Chaebol" шведской Vacuum группы, которая у нас и
на новогодних огоньках выступала и по ТВ их "I Breathe" клип крутили
постоянно. Обнаружил что у меня его не было в "оцифрованном" виде.
Спустя четверть века без проблем его прочитал на дешёвом USB приводе.
Оказалось, что Маттиас Линдблум (вокалист Vacuum) написал полно песен
для Тарьи. При деле всё ещё!

Слышать хорошо мне знакомый Vacuum альбом на кардинально совершенно иной
по качеству аудиотехнике... очень необычно! Как-будто впервые слышу.

2 years agoЮбилейный выпуск подкаста old-games.ru
Sergey Matveev [Sun, 22 Jan 2023 20:03:17 +0000 (23:03 +0300)]
Юбилейный выпуск подкаста old-games.ru

https://www.youtube.com/watch?v=spm_t8VVwUs
В этом выпуске просто множество ответов на вопросы от слушателей. Авторы
считают что золотой век компьютерных игр это либо 1990-2000 (один автор),
либо 1995-2005. Приятно осознавать что я застал как-раз именно этот
золотой век. Хотя авторы признают, что и сейчас любой может найти для себя
из новых игр что-то по вкусу. Но придётся поискать, ибо средняя планка
качества и интересности игр понизилась.

2 years agoМоя база данных музыки
Sergey Matveev [Sun, 22 Jan 2023 17:00:24 +0000 (20:00 +0300)]
Моя база данных музыки

http://www.git.stargrave.org/?p=dotfiles.git;a=blob;f=bin/bin/music-indexer
Впервые со времён школы, я хоть как-то решил чуть подразобраться с
коллекцией музыки своей.

Когда-то я хранил альбомы в виде "Artist/Year-Album". Позже перешёл на
Artist-Year-Album, так как просто нет смысла в иерархии, плюс бывают же
сборники с несколькими группами. Если присутствует несколько artist-ов,
то прописываю их в виде "ARTIST_and_ARTIST[_and_...]". Штатно все
названия групп используют заглавные буквы и поэтому "_and_" тут будет
выделяться своим особенными регистром.

Не у всех альбомов имеется год. В основном это очень старые директории,
которые появились у меня неизвестно откуда. Что делать если artist
содержит дефисы? Просто искать слово похожее на год между дефисами.
Может ли быть такое что в artist влезет и что-то похожее на год через
дефисы? Не исключено, но вроде бы пока не встретилось такое.

Я храню все трэки раздельно. Никаких контейнеров или одиночных файлов с
CUE. Во-первых, это потребует специального проигрывателя, который бы их
понимал. Во-вторых, gapless playback должен уметь этот самый
проигрыватель. Если не умеет, то объединить файлы в один продолжительный
аудиофайл легче, чем разделять его. Просто не вижу смысла в
неразделённых аудиофайлах. Файлы называются "XX.NAME.EXT", где "XX" это
номер трэка. Хотя для noisecore альбомов двухзначного числа не хватит
для всех трэков -- там, конечно, это поле шире.

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

Самый старый из использованным мною скриптов -- это torn, который
недавно переписался с Perl на zsh: 9dc73622854227df4a31a4c0a57adfc72a52ecd6
Его я использовал для транслитерации всего что на кириллице. Сейчас же я
перестал это делать, так как под Unix-ом с UTF-8 именами проблем нет,
как и с exFAT (хотя в нём например ":" символ, встречающийся в альбомах,
нельзя использовать).

Основной помощник в переименовании файлов это zsh и его zmv.
Сегодня вот проделывал к примеру:

    zmv '(*).cock_and_ball_torture-(*)-ify.mp3' '$1-$2.mp3'
    for i (*) mv $i Cock_And_Ball_Torture-${${(s/./)i}[-1]}-${${(s/./)i}[2,-2]}

Для разбивание lossless файлов по меткам из CUE файлов, использую
cuebreakpoints ....cue | shnsplit ....wav. А для того, чтобы трэки
переименовать в нормальные названия, то используется самописный
cueparser скрипт, выплёвывающий команды для переименования файлов. Ну а
GNU parallel-ом распараллеливаю процесс сжатия или разжатия. cdparanoia
используется для "оцифровки" аудио CD. Если где-то попадаются
проприетарные lossless форматы, типа ALAC/Monkey's Audio, то прежде
mplayer -aodump, а сейчас ffmpeg используются для получения .wav.

Весь lossless у меня в WavPack формате. Lossy... ну в чём получил его
изначально, в том и будет. Но вся метаинформация по возможности
(ID3-тэги, APE-тэги) выпилена. По факту lossy альбомов у меня больше
половины, но это всё полученные ещё в 2000-х годах, в основном грайндкор
который я не слушаю (а тот что слушаю, у меня есть в lossless). Lossy
записи у меня крайне редко звучат дома. А вот на работе, где нет
качественных наушников, нет смысла и таскать с собой lossless -- для
работы у меня в Opus перекодированные файлы валяются.

Собственно всё это было у меня без изменений более десяти лет. И в конце
2000-х у меня были несколько директорий: FATHERS, FOLK, HARTE, LEICHT,
NOISE. Альбомы папы, всякий рок, из которого я только AC/DC и Led
Zeppelin ставлю. Немного фольклорной музыки. Noisecore, harsh noise.
Что-то "тяжёлое" -- в основном грайндкор, black, death и подобное. А
лёгкое это всякий симфо метал и всё что не тяжёлое.

И так получилось, что HARTE у меня стал неким аналогом помойки
грайндкора который не слушаю, даже Gorguts со всем black metal
перекочевал в LEICHT. В LEICHT директории у меня музыка которую я
"знаю": помню что за исполнитель, что за альбомы. А после ряда последних
концертов у меня не один десяток новых альбомов появился, которые я
далеко не все ещё прослушал. Как я знакомлюсь с ними? Выдаю список
файлов с сортировкой по mtime и смотрю кто из них недавно был получен.
А LEICHT превратился в директори с мешаниной из Мадонны и сурового блэка
Funeral Mist и Napalm Death. В общем просто помойка с "актуальной"
lossless музыкой.

Решил свалить все альбомы в одну большую директорию, а дальше
символическими ссылками наделать, так называемых коллекций. Надо
поместить ряд альбомов в коллекцию black-а?:

    for i (Hate-* Immortal-* Ihsahn-20* Illt-2022-Mercy_Of_The_World)
        ln -s ../../$i cols/black/

Альбом может находится и в нескольких коллекциях само собой без проблем.
Плюс в том, что вся эта категоризация не затрагивает ни метаинформацию,
ни названия альбомов. Ещё не прослушанную музыку я просто помещаю в
cols/recent символическими ссылками.

Работы тут ещё надолго, ведь то, что раньше было HARTE -- та ещё
мешанина. Да и всё не тривиально: ведь многие группы в процессе своей
жизни кардинально меняли своё музыкальное направление. Ладно бы Napalm
Death, у которого несколько brutal death альбомов, но остальные, в
общем-то, grindcore. Но вот Carcass относится к goregrind-у только
первым альбомом. Bathory для меня это, в первую очередь, black metal
альбомы первые, но ведь дальше то у него были viking metal, которым не
особо то место в cols/black. Но тут я уж так не заморачиваюсь сильно.
Bathory у меня попадает в black.

А чтобы себе помочь с тем, чтобы получить список не категоризированной
музыки, начал писать zsh скриптики, которые превратились в один скрипт
создающий .rec базу данных с отпарсенными названиями альбомов,
исполнителей и годом выхода. Массу косяков обнаружил в названиях, что не
удивительно. Но теперь даже альбомы 1349-группы без проблем парсятся,
как и полностью кириллические:

    Artist: 1349
    Year: 2004
    Album: Beyond The Apocalypse
    Lossless: yes
    Collection: black

    Artist: Взрыв Кабачка В Коляске С Поносом
    Year: 2008
    Album: Меня не берут на работу, я нигде не учусь и я некрофил
    Collection: noise

* моментально получить список не-lossless или lossless альбомов:
    recsel -e '!Lossless'
    recsel -e '#Lossless'
* получить black метал альбомы 2010-го года:
    Collection = 'black' && Year = 2010
* альбомы группы Spasm, возможно сборники:
    Artist ~ 'Spasm'

Хотя сейчас мне этот файл будет помогать с категоризацией, ведь это
более 4700 альбомов.

2 years agoПосмотрел "Мисс Поттер"
Sergey Matveev [Sun, 22 Jan 2023 10:42:16 +0000 (13:42 +0300)]
Посмотрел "Мисс Поттер"

https://ru.wikipedia.org/wiki/%D0%9C%D0%B8%D1%81%D1%81_%D0%9F%D0%BE%D1%82%D1%82%D0%B5%D1%80
Фильм про детскую писательницу Беатрис Поттер. Понравились мне как её
рисунки, так и полностью раскрываемая тематика зверюшек всяких (кролики
ж милые!), так и игра Рене Зеллвегер!

2 years agoСисадмин компании использовал компьютеры организации для SETI@home
Sergey Matveev [Sun, 22 Jan 2023 09:27:09 +0000 (12:27 +0300)]
Сисадмин компании использовал компьютеры организации для SETI@home

https://habr.com/ru/news/t/712020/
https://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D0%BD%D0%B5%D0%B9%D0%BA%D0%B0_%D0%93%D0%BE%D0%BB%D0%BE%D0%BC%D0%B1%D0%B0
Мне нравится идея таких распределённых вычислений, ведь это же
колоссальная потенциальная мощность. А электроэнергия много где крайне
дешёва.

Но вот конкретно SETI@home меня не прельщал никогда, ибо я просто не
верю в то, что он что-то найдёт, не вижу практической пользы. Почти все
проекты на BOINC (де-факто платформа для распределённых вычислений) --
закрытые, не свободные программы. Поэтому и они отпадают.

В итоге оставался какой-нибудь поиск простых чисел (GIMPS), где я
недолго участвовал, и distributed.net. На GIMPS я забил, так как и без
очередных больших простых чисел тоже можно спокойно жить -- это чисто
опциональная приятная штука. Как и взлом ключа RC5 на distributed.net
тоже практически бесполезная задача, по моему.

А distributed.net с его поиском оптимальных линеек Голомба выглядит как
реально на практике полезная штука, с настоящей возможностью перебора
всего пространства значений. В итоге я на нём был где-то восемь лет,
запуская на всех не дохлых компьютерах под моим управлением. Хотя их
официальный клиент имеет закрытую часть сетевого взаимодействия, но сам
код алгоритмов доступен в открытом виде. В отличии от других, они хотя
бы предоставляли сборки под FreeBSD. Поэтому даже при закрытии глаз на
закрытость ПО, всё равное мне просто нечего бы было, как правило,
запускать на BOINC-е.

Но с началом СВО, прям через несколько дней, все его серверы
отказывались от меня принимать результаты вычислений. Посмотрел
упоминает ли кто-нибудь о downtime -- ничего не нашёл. Видимо, им
важнее показать что они солидарны с нацистким государством, чем
действительно заниматься совместными вычислениями. Но в ноябре они
завершили об окончании OGR-28 проекта. Так что я всё равно почти всё
время был с ними и находился в top 100 стабильно.

2 years agoПарсинг X.509 сертификатов в Си
Sergey Matveev [Sat, 21 Jan 2023 18:57:29 +0000 (21:57 +0300)]
Парсинг X.509 сертификатов в Си

https://www.sstic.org/media/SSTIC2019/SSTIC-actes/journey-to-a-rte-free-x509-parser/SSTIC2019-Article-journey-to-a-rte-free-x509-parser-ebalard_mouy_benadjila_3cUxSCv.pdf
Статья рассматривает проблемы парсинга сертификатов на Си. Это, само
собой, жопа, из-за сложности как структур, так и самого ASN.1.

Понравился раздел про developer constraints, которые они хотят
использовать.

* C99, без VLA -- вот и я тоже пишу на C99, но чтобы никаких эти VLA,
  ибо это открывает врата в ад. Полностью отказываться от C99 из-за
  этого VLA я не хочу
* Отсутствие динамического выделения памяти. В моих программах malloc
  вообще редко когда встречается. Чаще всего я просто выделяю буферы
  достаточного размера (речь про работу с данными по сети). Пускай часть
  памяти и не будет использована полностью, но зато куда более простой
  код, наверняка и эффективный, плюс меньше возможных ошибок связанных с
  памятью кучи
* Ограниченное использование указателей на функции
* Отсутствие внешних зависимостей
* Использование const и static квалификаторов. Про static компилятор
  подсказывает всегда, как и про const, но про него и так не забываю
* Использование беззнаковых целых чисел ограниченной длины (uint*_t).
  Тоже предпочитаю их, когда явно есть возможность использования
* Строгие опции компиляции. Тут они используют -Weverything, который
  даже в самой документации к Clang не рекомендуется. А я все свои
  проекты всё равно с ним собираю. Лишь считанное количество
  игнорирований есть в коде
* Нет рекурсиям

2 years agoОчистка памяти в Linux
Sergey Matveev [Thu, 19 Jan 2023 21:45:49 +0000 (00:45 +0300)]
Очистка памяти в Linux

https://habr.com/ru/post/711186/
Могу только ужасаться тому что творит автор. Он хочет удалять кэш
файловой системы из оперативной памяти. Если он говорит про то, что у
него типа слабый компьютер, то значит ему важна производительность. Но
при этом он делает прямо противоположные вещи: уничтожает кэш,
уничтожает попытки ОС ускорить работу его и так не быстрого ПК. Я даже
просто не знаю как не делать face palm от этого. Почему то это хочется
сравнить с тем, как люди используют NAT для безопасности LAN.

А ещё он абсолютно непонятно на кой чёрт, но использует Go программы для
того, что можно сделать и просто в shell. А ещё он из Go вызывает bash
(!!!) чтобы выполнить две команды. Просто не понимаю... зачем???

Да и... если не хочется чтобы что-то swap-илось или кэшировалось, то не
проще ли настроить это в ОС/ядре? Убрать причину, а не бороться с
последствиями? Наверное это всё мышление после мира Windows, когда там
только бороться и можно.

2 years agoНачал проект на Tcl
Sergey Matveev [Thu, 19 Jan 2023 19:00:17 +0000 (22:00 +0300)]
Начал проект на Tcl

https://en.wikipedia.org/wiki/Tcl
На работе дали одну задачу, которую реализуй как хочешь. Аналог на
Python или Go занимает несколько тысяч строк кода. Решил использовать
Tcl. Tcl ради Tcl, уж очень хочется. Пока целый день перечитывал
документацию, вспоминал язык, уже что-то работающее написал. Пока
мне всё ещё очень нравится язык чисто эстетически. Подвохов пока
особо никаких не встретил. Задача связана с I/O, работе с байтами,
криптографией.

2 years agoThe Moon Mistress
Sergey Matveev [Wed, 18 Jan 2023 18:31:06 +0000 (21:31 +0300)]
The Moon Mistress

https://www.metal-archives.com/albums/The_Moon_Mistress/Silent_Voice_Inside/329857
https://www.youtube.com/watch?v=_k3xZwz-bNc
https://www.metal-archives.com/images/3/5/4/0/3540326905_logo.jpg
Послушал их приобретённый альбом "Silent Voice Inside". Вот теперь я
понимаю что такое stoner metal, его фишки. И на концертах и на других
альбомах. Sludge, судя по всему, всё же ощутимо быстрее, как минимум, не
такой doom-овый, но и понятно почему многие группы/альбомы и к stoner и
к sludge причисляют (граница размыта).

Обожаю подобное звучание! Много distortion не бывает, много
перегруженного баса не бывает, много тарелок не бывает, заводные
грувовые мотивчики не повредят -- ребята из этого жанра понимают всё это
как никто.

Особо проблем мне доставил их логотип на альбоме. Он шёл в составе пачки
без коробочек -- мол пачка за 666₽ для знакомства с продукцией label. На
диске нет ничего кроме логотипа группы. Что это? Фиг знает. Беру диск,
вижу "s", ещё "s" вроде бы, "w" на конце. Открываю noname666.bandcamp.com
страницу с полным списком альбомов. Сохраняю в файл. Разными регулярными
выражениями, задавая "s" и "w" буквы, пытаюсь найти альбом/группу.
Безуспешно. Потратил наверное минут десять. И только потом решил на 180
градусов повернуть диск в руке, чтобы увидеть что это не "w", а "m", а
также увидеть и другие буквы. Понапишут этими шрифтами... даже не
понятно где верх, а где низ. Я кстати ношу футболку с чёртом каким-то,
где тоже есть надпись, но до сих пор не знаю что там написано, что за
группа.

2 years agoAIX больше не будет разрабатываться, как и Solaris
Sergey Matveev [Wed, 18 Jan 2023 09:53:38 +0000 (12:53 +0300)]
AIX больше не будет разрабатываться, как и Solaris

https://www.theregister.com/2023/01/17/unix_is_dead/
Хотя после поглощения Oracle-ом Sun-а и так было понятно что Solaris-у
конец. А AIX ведь оставался одним из немногих Unix-ов. А HP-UX вообще,
как оказалось, не работал на чём либо кроме PA-RISC и IA-64 процессорах.
SCO OpenServer последних версий это, по сути, FreeBSD.

2 years agoЗлурад
Sergey Matveev [Mon, 16 Jan 2023 09:17:49 +0000 (12:17 +0300)]
Злурад

https://www.youtube.com/watch?v=qaWE7uHKz4g
Из пачки новых приобретённых дисков, совершенно незнакомого направления
по большей части, незнакомого label-а, первым поставил альбом Злурада
"Во благо злу". Как сказал мне глава label-а, это чуваки типа десять
часов импровизировали, и вот что-то из записанного нарезали на трэки,
получился альбом. Получилось здорово, забавно и задорно!

2 years agoИнтерактивная девочка
Sergey Matveev [Mon, 16 Jan 2023 09:14:49 +0000 (12:14 +0300)]
Интерактивная девочка

На концерте (c437dce08c9acc568f6c8d898d47ec9dac0f2a08) услышал разговор
двух парней, сравнивавших вокалисток из Clarity Vision и heXenblatt. Про
первую парень сказал что она "была более интерактивной", а вторая
"стеснялась похоже". И речь тут просто про то, что первая чуть больше
двигалась, подтанцовывала. Но фраза про "интерактивность" повеселила.

2 years agoBorn Again Festival
Sergey Matveev [Sun, 15 Jan 2023 08:17:34 +0000 (11:17 +0300)]
Born Again Festival

Вчера была куча концертов-фестивалей: и всякий pornogrind, и death
metal, и doom metal, и stoner/sludge. На всё хотелось бы сходить. Но мой
выбор на stoner/sludge в Peak Sound-е, в котором я уже стал не редким
гостем.

Было просто жуть как здорово! Прям эталонный концерт в плане обратной
связи от толпы, постоянной улыбки и игры музыкантов от души! Причём
четыре из пяти групп я уже слышал на других концертах.

Пришёл не к началу, засиделся в гостях у родителей, поэтому пропустил
Aether, но, честно говоря, его мне и не особо то хотелось слушать
(aee4f0c9572c18251dd8e10d712f0a2465bd19d4).

Затем вышли мне известные Clarity Vision. В отличии от гаража где я на
них был, в Peak Sound звук конечно на порядок мощнее и чище. Куча песен,
хоть я и только один раз их слышал, уже были знакомы, в голове
отложилось. Играли от души, у всех (музыканты, слушатели) улыбки,
отличный звук, отличный кач -- я уже был очень доволен и счастлив. Вроде
бы на них уже и слэм устроили, если не ошибаюсь.

После них были, опять же уже известные, heXenblatt. Не, я помнил что это
ребята дико крутые, но не настолько же! Не часто такое можно встретить,
но такое количество энергии, так завёлся зал, столько слэма, столько
бошкотряса (перед сценой по всей её длине выстроились трясуны), столько
благодарности группе! Позвали даже на бис. Опять же, улыбки у всех,
особенно у музыкантов, не сходили. Один попросил не делать таких
перерывов между песнями, а то сердце выпрыгнет от перепадов. После них в
зале только и были разговоры о том, что их уже никто не переплюнет.

Что похоже и произошло, когда после них вышли Sacrifuzz. С вокалисткой
одетой во что-то типа готического, с черепами, ножами и какой-то ещё
атрибутикой выложенной на сцене. Играли вообще очень и очень недурно,
сказал бы отлично. Но после более танцевальных и качёвых heXenblatt это
уже не так заходило людям. Хотя поддержка была, но уже без слэма например.

Я подумал что чумовое выступление heXenblatt сейчас мне вообще всё
испортит, ибо последними должны выступать Pale Keeper
(3d70a9949cba9d5fbfa8a1f5084e405d7e891cc6), которых ждал, которые очень
медленные и не шибко то танцевальные. Но их мощь, крутая игра гитариста,
заставили снова бесноваться весь зал. Звук был такой атасный, что я
лично отдельно поблагодарил звукача за это. В перерыве между песнями
барабанщик что-то там простоватенькое сыграл, из зала вылетела фраза
"прям как Bloodhound Gang", после чего всем залом через пару секунд
начали все напевать вместе "the roof, the roof, the roof is on fire".
Поржали от души с музыкантами. Одну песню гитарист с барабанщиком
закончили такой молотиловкой и скоростью (что было прямой
противоположностью их музыке довольно медленной), что даже грайндкорщики
могли бы позавидывать -- но это они от избытка чувств, от хорошего
настроения. И тоже их позвали на бис, где они по сути вообще все свои
имеющиеся песни отыграли. Тоже поблагодарили за офигеннейшую атмосферу,
за потрясающую поддержку.

Прикупил себе 22 диска от лейбла noname666, лютую долю из которых мне
порекомендовали распрашивая о моих пристрастиях. Пока ещё ничего не
слушал, но там многие диски, как говорили и окружающие, типа лучшие на
весь 2022-ой год что у нас было выпущено.

2 years agoYAML из ада
Sergey Matveev [Sat, 14 Jan 2023 09:12:22 +0000 (12:12 +0300)]
YAML из ада

https://habr.com/ru/post/710414/
YAML ужасно сложен и вообще я убеждён что формат не имеющий право на
существование, ибо лучше не станет. Документ в статье представлен где
можно изрешетить себе ноги. Шестнадцатеричные значения; вызовы тэгов;
проблема Норвегии (8976383f8feb44fca9cf0b8f4e614b853d671214); ключи
становящиеся не строками, а потом строками; числа становящиеся строками.
А я люблю Hjson.

          ------------------------ >8 ------------------------

server_config:
  port_mapping:
    # Expose only ssh and http to the public internet.
    - 22:22
    - 80:80
    - 443:443

  serve:
    - /robots.txt
    - /favicon.ico
    - *.html
    - *.png
    - !.git  # Do not expose our Git repository to the entire world.

  geoblock_regions:
    # The legal team has not approved distribution in the Nordics yet.
    - dk
    - fi
    - is
    - no
    - se

  flush_cache:
    on: [push, memory_pressure]
    priority: background

  allow_postgres_versions:
    - 9.5.25
    - 9.6.24
    - 10.23
    - 12.13

2 years agoЗимний МОР
Sergey Matveev [Fri, 13 Jan 2023 15:05:14 +0000 (18:05 +0300)]
Зимний МОР

https://metaloverrussia.ru/winter-mor-2023
Внезапно увидел что будет Metal Over Russia в зимнем варианте. Тоже три
дня, но уже даже по четыре площадки параллельно каждый день. Тут уже
прям перебор: я на многое хотел бы сходить, но не выйдет. В общем, буду
смотреть как это всё выйдет. Очень рад что у нас так с металом активничают!

2 years ago10bpp при кодировании в AV1
Sergey Matveev [Fri, 13 Jan 2023 09:45:16 +0000 (12:45 +0300)]
10bpp при кодировании в AV1

Увидел тут мнение о том, что в AV1 лучше кодировать в 10 бит-на-пиксель,
даже если исходный материал в 8bpp. Действительно, особо не влияя на
производительность, оно заметно снизило количество блочных артефактов в
Рике и Морти, где много равномерных градиентов.

2 years agoПоигрался с AV1 видеокодеком
Sergey Matveev [Fri, 13 Jan 2023 05:11:36 +0000 (08:11 +0300)]
Поигрался с AV1 видеокодеком

https://netflixtechblog.com/svt-av1-an-open-source-av1-encoder-and-decoder-ad295d9b5ca2
https://gitlab.com/AOMediaCodec/SVT-AV1
https://code.videolan.org/videolan/dav1d
Ибо говорили что конкретно этот кодировщик настолько быстр, что
сопоставим с HEVC-ом становится. Ну что ж, попробовал. Сразу же упал, на
попытке кодирования screencast-а, на том, что кодировщик поддерживает
только 4:2:0, никаких 4:4:4. Дальше прямо в примере запуска --help
указывается что CRF режим можно использовать в несколько проходов, но...
меня тоже сразу же послали что они только для VBR режима.

Сравнил с VP9 закодированным эпизодом Рика и Морти (960x540 8bpp),
который делался в жирных медленных настройках, в два прохода с CRF=24, а
это где-то полтора-два часа на 22мин эпизод. В AV1 указал такой же CRF
(шкала у них одинаковая) и по умолчанию preset=10, который кодировал со
скоростью на порядок выше чем real-time проигрывание. Плюс
распараллелился на все ядра. Размер файла вышел побольше, качество
чуть-чуть похуже, но это если всматриваться, не кардинально.

Попробовал закодировать с preset=2. Это уже не всегда параллелилось на
все ядра, скорость была где-то 3.5 FPS, но это всё равно существенно
быстрее чем я пробовал с libaom, в котором у меня фильм бы месяц
кодировался. Жрёт под два гигабайта памяти.

В итоге: примерно за то же время кодирования, с куда большими
возможностями по распараллеливанию, я получаю на 8% меньшего размера
файл с ощутимо лучшим качеством картинки (почти не увидел ни одного
артефакта вглядывась). В принципе, наверное несколько десятков процентов
лучшего качества (или меньшего bitrate) действительно есть. SVT-AV1 прям
делает этот кодек полностью юзабельным даже для real-time кодирования с
отличным качеством. Прежде я думал что AV1 годен только с аппаратным
ускорением.

Декодирую я его используя VideoLAN-овский dav1d. Ни в SVT-AV1, ни в
dav1d никаких Rust-ов, всё без проблем собирается, интегрируется с
FFmpeg-ом.

Пока не вижу причин не переходить на него. Весь последний сезон Рика и
Морти вот как-раз надо будет перекодировать и там как-раз всем этим
кодекам очень не сладко приходилось с этой почти синтетической графикой.

2 years agoСборник мифов о HPC
Sergey Matveev [Wed, 11 Jan 2023 19:05:14 +0000 (22:05 +0300)]
Сборник мифов о HPC

https://arxiv.org/pdf/2301.02432.pdf

2 years agoМытьё посуды Vim-ом
Sergey Matveev [Tue, 10 Jan 2023 07:17:48 +0000 (10:17 +0300)]
Мытьё посуды Vim-ом

В :help howdoi есть пометка:

    |You can't! (yet)|      do dishes using Vim

2 years agoGithub удалил libmdbx
Sergey Matveev [Tue, 10 Jan 2023 07:06:26 +0000 (10:06 +0300)]
Github удалил libmdbx

https://libmdbx.dqdkfa.ru/
Github молча удалил libmdbx проект в этом годму, без предупреждений или пояснений.

2 years agoТестирование корректности работы компилятора
Sergey Matveev [Mon, 9 Jan 2023 17:40:30 +0000 (20:40 +0300)]
Тестирование корректности работы компилятора

https://bronevichok.ru/posts/highload-2022.html
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106523
В докладе упоминается баг в GNU GCC:

    unsigned char f7 (unsigned char x, unsigned int y)
    { return (x << y) | (x >> ((-y) & 7)) }

где программа будет по разному отрабатывать. Бага до сих пор не закрыта.

А вообще для меня там всё магией является (до подобного не дорос, не
факт что дорасту когда-либо), хотя про технологии и инструменты слышал.
Чтобы понять не сломала ли оптимизация компилятора чего, то берётся
получающийся на этапе JIT-а IR-код, преобразуется в SMT-формулу, затем
подаётся в SMT-решатель, который оценивает идентичны ли результаты до и
после оптимизации.

2 years agoSourceHut будет блокировать proxy.golang.org
Sergey Matveev [Mon, 9 Jan 2023 17:25:03 +0000 (20:25 +0300)]
SourceHut будет блокировать proxy.golang.org

https://sourcehut.org/blog/2023-01-09-gomodulemirror/
Ибо если репозиторий разсинхронизируется или пропадёт -- пользователи
Google-а (те, кто используют proxy.golang.org) будут даже не знать что
используют зависимость которую другие уже даже не могут получить. Ну а
вообще эти серверы проверяют обновления делая полное клонирование, что
является нехилой нагрузкой, это 70% от всего трафика SourceHut и речь
может идти про гигабайты на один репозиторий ежедневно.

2 years agoMeister Leonhardt
Sergey Matveev [Sun, 8 Jan 2023 18:18:43 +0000 (21:18 +0300)]
Meister Leonhardt

https://www.youtube.com/watch?v=YQAu82ZQCY4
Слышал их вчера на концерте, вот прослушал альбом. Сильнейшее дежавю при
прослушивании, как будто я слушаю Satyricon. Но круто, молодцы ребята!
Заводной танцевальный метал!

2 years agoСходил на Through Obscure Dominions Fest II
Sergey Matveev [Sun, 8 Jan 2023 09:00:51 +0000 (12:00 +0300)]
Сходил на Through Obscure Dominions Fest II

Как лучше всего отметить Рождество? Конечно же посещением black metal
концерта! Все группы прежде были незнакомы мне.

Открывали мероприятие Illt. Ну просто black метальчик, ничего
особенного, не плохо.

Meister Lionhardt был для меня в новинку: эдакий русский Satyricon, с
массой заводных и танцевальных риффов. В живую подобного не слышал.

Cage Of Creation из Суздаля были очень интересны: гитары постоянно
что-то напиливали, не было простого молочения по струнам. Но black-ом
это не назвать -- разве что с его элементами. Здорово, здорово, даже на
бис группу позвали, но барабанщик устал.

Завершали питерцы Blackdeath. Вот это именно тот самый black который я и
ожидал и хотел услышать. Очень крутые разнообразные быстрые барабаны (с
девушкой на них!), вокал как полагается и постоянная плотная стена звука
из незатейливой электрогитары. Играли без перерывов, что редко встречал.

Приобрёл десять дисков всех этих товарищей. Во время концерта ко мне
подошёл парень, спросив не я ли это скупил все грайндкорные диски в Peak
Sound-е (a524670c7ff381f29e725cc81982dae5b6dddc6e). Пожал руку за это.

2 years agoПроизводительность ChaCha20 на PDP11
Sergey Matveev [Sat, 7 Jan 2023 09:49:20 +0000 (12:49 +0300)]
Производительность ChaCha20 на PDP11

https://niconiconi.neocities.org/posts/chacha20-performance-on-pdp-11/
На этом компьютере полувековой давности сделали эффективную (кол-во
тактов на байт) реализацию шифра и достигли чуть менее 6KiB/sec скорости.
Что кстати не будет бутылочным горлышком при связи через модем например.

2 years agoЗаживление ран когда собака лижет
Sergey Matveev [Fri, 6 Jan 2023 17:30:47 +0000 (20:30 +0300)]
Заживление ран когда собака лижет

https://naked-science.ru/qa/536358/
Всё так! Ещё с детства помню что собака наша сама начинала вылизывать
раны, которые я получал из-за не малого количества падений на асфальт.
Один раз не забуду: была раскорябана вся коленка, заживало бы пару
недель. А я за компьютером сидел и собака мне всё это время лизала её.
Когда отвлёкся и встал с места -- абсолютно ничего не осталось на
коленке, как будто ничего и не было.

2 years agoПобывал на концерте Садко
Sergey Matveev [Fri, 6 Jan 2023 10:55:52 +0000 (13:55 +0300)]
Побывал на концерте Садко

Просто за компанию с родителями, которым понравилось.
Совершенно не моя музыка (а точнее песни), ничего не трогает.
Да, мне лучше послушать шум (a524670c7ff381f29e725cc81982dae5b6dddc6e),
что поделать.

2 years agostdbuf
Sergey Matveev [Thu, 5 Jan 2023 19:04:50 +0000 (22:04 +0300)]
stdbuf

https://www.unix.com/man-page/freebsd/1/stdbuf/
Узнал про существование утилитки которая позволяет настроить буферизацию
стандартных потоков перед выполнением какой-либо команды.

2 years agoПочему не Let's Encrypt: из-за ACME
Sergey Matveev [Thu, 5 Jan 2023 10:18:13 +0000 (13:18 +0300)]
Почему не Let's Encrypt: из-за ACME

https://rachelbythebay.com/w/2023/01/03/ssl/
https://rachelbythebay.com/w/2023/01/04/cert/
Автор рассказывает почему он не использует Let's Encrypt из-за его
ужасного, как по архитектуре, так и по реализациям, протоколу ACME.
Я тоже офигевал от его переусложнённости на ровном месте, когда
впервые увидел.

2 years agoСыграл в Vampire: The Eternal Struggle
Sergey Matveev [Wed, 4 Jan 2023 20:44:34 +0000 (23:44 +0300)]
Сыграл в Vampire: The Eternal Struggle

https://en.wikipedia.org/wiki/VTES
Вообще до конца я так игру и не доиграл с друзьями, ибо правила все
крайне бегло прочитывали, мало что используя на практике. Так и не понял
мешали ли мне познания в Магии (Magic The Gathering), но похоже что да.
Постоянно рефлекторно всё хочется играть по правилам Магии, многое сбивало
что сделано не так, как в ней. Поэтому пока вообще никакого мнения об
игре не могу сделать. Пока Магия просто привычнее, ближе, понятнее, уже
и в правила как бы подсматривать не приходилось много последних игр.

2 years agoПроехался в МЦД
Sergey Matveev [Wed, 4 Jan 2023 20:42:11 +0000 (23:42 +0300)]
Проехался в МЦД

Впервые проехался до пригорода Москвы в поезде МЦД. Новенькие, блестящие
удобные электрички, очень понравилось. Разницы между просто поездами не
увидел, ведь даже с электричек есть тоже быстрый переход в метро например.

2 years agoНазад в будущее в новом году
Sergey Matveev [Wed, 4 Jan 2023 20:40:57 +0000 (23:40 +0300)]
Назад в будущее в новом году

Встретил новый год просмотром до самого утра по телевизору у родителей
всех трёх частей "Назад в будущее". Обожаю эти фильмы!

2 years ago41-ый выпуск журнала Downgrade
Sergey Matveev [Sat, 31 Dec 2022 08:46:51 +0000 (11:46 +0300)]
41-ый выпуск журнала Downgrade

http://dgmag.in/N41/DowngradeN41.pdf
Единственный журнал на RSS которого я подписан и почитываю -- Downgrade
(992b70213ec80158aed3b4cb246ba90b08f040f6). Этот выпуск, вышедший в
последний день этого года, прям очень понравился подборкой. И про Фидо,
про телетекст, про мемы (о которых, за отсутствием соцсетей, даже Фидо,
я узнаю временами после их смерти уже), спутниковую связь, OS/2 с кучей
скриншотов, HomePNA.

2 years agoМного шума, очень много шума. Баркал виу виу
Sergey Matveev [Thu, 29 Dec 2022 20:33:43 +0000 (23:33 +0300)]
Много шума, очень много шума. Баркал виу виу

https://www.youtube.com/watch?v=YAi9NU6U1ew
https://vk.com/wall-217735393_26
https://www.youtube.com/watch?v=qCE39Vx0rPM
С последнего концерта (babd98ef385187672019aa5b89a20bf13425a3d5) каждый
день слушаю Moon Far Away, ибо голос их второй вокалистки просто волшебен
для меня. Как же так? Я стал слушать музыку где временами вообще ничего
кроме чистого женского вокала, да ещё и на фольклорную тему?

Как бы не так! Сходил сегодня на концерт с harsh noise, noisecore,
gorenoise направлениями. Проходил в уже знакомом мне месте: подвале
рядом с зубонарезным цехом инструментального завода
(82ad61dd650a01e72aa3a1c1c8d4f11ba2af20d4). Я второй раз в жизни
умудрился перепутать станции метро, осознав это когда уже прибыл на сам
концерт. Вышел и ничего не узнаю. Спрашиваю где тут чего находится у
охранников, они мне указывают куда идти, но я про себя думаю что они
явно ошиблись, ибо я совершенно не с той стороны подходил к заводу
этому. Из-за этого опоздал и кого-то пропустил. Но как от одного
слушателя услышал -- не много потерял.

Когда пришёл, то как-раз другой "музыкант" настраивался. Музыкой это
многие не назовут, скорее антимузыкой какой-нибудь. Если не ошибся, то
это был K1R2CH8T7V. Harsh noise без вокала. С harsh noise-ом то я в
целом знаком достаточно, ничего необычного для меня не было. Не тронуло,
но и плохого не могу сказать. Просто harsh noise.

Далее был Viralocide. Нечто поближе к noisecore-у, с вокалом. Ну, опять
же, ничего особо для меня.

Далее была уже известная мне пара Dysthymia, которую в этом же подвале я
и услышал в первый раз. Дичайшая скорость на барабанах, где за один трэк
больше ударов делается чем многие за год услышат в попсовой музыке.

Каждая группа при этом настраивалась дольше чем, собственно, играла.

После были Hydrocele, где на гитаре и вокале был тот же K1R2CH8T7V, а на
барабанах вроде бы мне уже известный чувак. Судя по Интернету, он
как-раз играл в Inopexia и Purulent Jacuzzi, с которыми знаком был ещё в
институте. Это уже gorenoise, ближе к grindcore всякому.

На этом моменте я в любом случае ни о чём не пожалел. Я ожидал что будет
"ну ничего так, нормально, можно сходить" или "редкостная параша весь
этот харш-нойз в живую".

И тут на сцену вышли и начали готовится: какая-то девочка в юбочке,
цветными волосами и с красным носом (как у клоуна), с каким-то мальчиком
интеллигентного вида в белой рубашечке, без бабочки, но тоже с красным
носом. Куча всякой аппаратуры какой-то: с десяток коробочек с
крутилками, кассетный плеер, кассеты, Korg, электрогитара, микрофон.
Парень с гитарой сидел на полу, крутил там что-то всё и играл с
магнитофоном, а девочка с микрофоном за синтезатором и кучей крутилок.

Выступление было не менее чем на 20мин, может быть полчаса. Это было
реально чертовски дико круто! Я даже не подозревал что вообще выйду с
подобного концерта с чувством восторга. Это были "Barkal x wiiu wiiu".
Нашёл только одно видео в YouTube с ними. Девочка конечно не так
аппетитно была одета, да и без пакета на голове. По сути у них
конкретный сочный плотный harsh noise был 95% времени. В видео с YouTube
только местами есть плотный harsh noise. На концерте только он, лютый
distortion на гитаре, громкий голос из микрофона (конечно же тоже с
кучей эффектов).

95% времени это была стена плотного шума, с адовым количеством высоких
частот на максимальной громкости. Как это могло понравится? Там где и
ритма нет. Да и вокала нет. И игры (то что можно было бы назвать игрой)
на гитаре. Чем это отличается от harsh noise-а который всякие
grind-близкие люди делают? Тоже много шума, громкости, басов и высоких.
Но тут было нечто *совершенно* кардинально иное. Лично я по настоящему
получал удовольствие от того что исходило из колонок. Да и зал на них
был полон.

Выступление закончилось внезапно, что жутко меня разочаровало -- я
реально хотел продолжения. Наверное треть зала в итоге подошла к ним и
выразить восторг и как это неимоверно всем понравилось. Я тоже подошёл,
сказав что впервые на noise, но это было нечто. Вышел я после них с
настоящим восторгом.

Мог бы я порекомендовать кому-либо сходить на них, если снова где-то
будут? Я в растерянности, ибо лично я просто не знаю чем именно они
цепляют, что именно так нравится в их конкретном таком harsh noise. Тупо
не знаю по каким критериям можно понять кому это понравится. Причём на
выступлении "Barkal x wiiu wiiu" и девочки симпатичные откуда то пришли
на всё это. Магия harsh noise...

В своё время прослушав много harsh noise, 99% из него повторно не
поставишь, зато какой-нибудь Guilty Connector (я даже название то
моментально его вспоминаю): https://www.youtube.com/watch?v=WZyRTtTDaBE
ставил не раз специально. На этом видео -- пример того, как надо
заканчивать концерт.

А ещё прикупил аж... 26 дисков со всякой grind/noise экстремальной музыкой.

2 years agoЛекции про прикладную криптографию, IPv6, IPsec
Sergey Matveev [Thu, 29 Dec 2022 13:17:51 +0000 (16:17 +0300)]
Лекции про прикладную криптографию, IPv6, IPsec

Вчера целый день читал лекции на эти темы. Понять что-то про IPsec без
основ прикладной криптографии не выйдет. Понять его без IP протокола, а
на сегодняшний день актуальным является IPv6, тоже не выйдет.

2 years agoNarrative history of BSD
Sergey Matveev [Wed, 28 Dec 2022 19:52:21 +0000 (22:52 +0300)]
Narrative history of BSD

https://archive.org/download/ANarrativeHistoryOfBSDDr.KirkMcKusick/A%20Narrative%20History%20of%20BSD%2C%20Dr.%20Kirk%20McKusick.ogv
https://www.youtube.com/watch?v=bVSXXeiFLgk
Рассказ про историю BSD от МакКузика. Очень интересно его слушать,
особенно когда простые жизненные истории упоминаются, а не сухие факты.

2 years agoПрошедший год
Sergey Matveev [Wed, 28 Dec 2022 17:55:26 +0000 (20:55 +0300)]
Прошедший год

Год, конечно, запомнится из-за начала СВО. Дело верное, возмездие должно
было прийти к нацистским отморозкам, приглашающим НАТО к нашим границам.
Да и отворачивание от гнилого лживого лицемерного запада не может не
радовать. Кто свалил (благо, коих по пальцам посчитать среди знакомых)
меня не удивил, было ожидаемо и предсказуемо. С другими же стали
сплочённее. Мобилизация пока меня не коснулась, не боялся её, наоборот
ждал когда же призовут. Пока помогаю хотя бы материально.

Приобрёл квартиру в Королёве. Просто вклад в недвижимость.

Были события связанные с противоположным полом. Что-то приятное, что-то
не шибко. В очередной раз (никогда прежде, и вот опять!) понял что гиблое
это дело у меня. Когда же я пойму что вообще лучше не ввязываться во все
эти отношения, тем более когда мне уже 35?

По некоторым вопросам, которые прежде никогда не обсуждал, с папой прям
полное совпадение мнений и решений как поступить. А у мамы может быть
полностью противоположное, но которое могу предугадать.

Гораздо, гораздо больше стал слушать black metal -- это прям основной
жанр в tracklist-ах моих.

Всяких полезных утилит и программок написал: glocate, zk.zsh, sgmon,
zeasypki, zdns, dmon, btrtrc, dht-bootstrap форк, feeder. Теперь у меня
куда ни плюнь, везде обнаружится самописная поделка.

Стал использовать российский IPv6 туннельный брокер IP4Market. Поднял
BGP между всеми своими машинами и сетями. Пока очень нравится как у меня
всё устроено.

На работе в основном был вовлечён в написание проекта на Си и его
интеграцию в здоровую C++ программу. Си всё так же продолжает нравится,
не отталкивает. Плюс на Go под конец года немного пописал.

Прилично всяких книжек прочитал. Вспоминается много чего, но наверное в
первую очередь восторг от Лавкрафта. Стругацкие оказались в целом не
близки мне. Как и фэнтези. Нашлись новые серии аудиокниг, которые
продолжают для меня "Модель для сборки".

Фильмов посмотрел не много. Чего-то прям потрясающего не вспомню.
Но познакомился и понравились два сезона "Теории большого взрыва".

Просто совпадение, но тотально переехал на ed25519/cv25519 алгоритмы: в
новом основном OpenPGP ключе; в OpenSSH, собранном без зависимости от
OpenSSL; в ещё одном поднятом моём CA.

2 years agojson2tsv
Sergey Matveev [Tue, 27 Dec 2022 11:28:39 +0000 (14:28 +0300)]
json2tsv

https://codemadness.org/json2tsv.html
Для новой программы на Си вновь посмотрел на известные мне форматы
удобные для конфигурационных файлов. И снова наилучшим мне видится
Hjson. Иметь встроенный парсер/конвертер Hjson не обязательно: внешняя
утилитка может преобразовать Hjson в JSON и его уже подать на вход
программе. Но работать в Си с JSON-ом тоже не самое тривиальное. Нашёл
вот json2tsv библиотеку/утилиту, которая может в простой TSV формат
преобразовать JSON, что уже в Си существенно проще обработать.
Unix-way: hjson2json < cfg | json2tsv | myprogram. После которого
может стать понятно почему systemd многим людям заходит :-)

2 years agoПосмотрел бегло прохождение Scorn-а
Sergey Matveev [Mon, 26 Dec 2022 16:43:41 +0000 (19:43 +0300)]
Посмотрел бегло прохождение Scorn-а

https://www.youtube.com/watch?v=Of-uHbuMiZY
https://www.youtube.com/watch?v=F_ZSOzPCtws
Не часто где увидишь такую жуткую атмосферу и сюжет.

2 years agoОтпраздновал Йоль
Sergey Matveev [Sun, 25 Dec 2022 22:55:48 +0000 (01:55 +0300)]
Отпраздновал Йоль

Сходил на ежегодный музыкальный фестиваль Йоль, где всякая folk тематика.
Проходило в клубе Glastonberry, а в нём два зала, где одновременно
выступали разные группы.

Малый зал был весь из себя танцевальным, со столиками для еды, духотой и
подобным. В нём были группы "The Black Watch" (punk rock), "Slipeir"
(celtic folk), "Оркестръ Тролля" (alco rock, лёгкая версия "Тролль Гнёт
Ель"), "Оля и домовые". В этот зал я заходил только в перерывах между
группами большого. Несколько песенок послушал, дальше возвращался.
Совершенно всё не моё, но типа заводное, весёлое, задорное и народ там
даже слэм устраивал и всякие ирландские и шотландские танцы. Несколько
мужиков в кильтах пришли под это. Но специально на подобное бы не пошёл.

А вот в большом зале куда более серьёзные группы отыграли. Yaruga из
Тулы очень мрачно открыла фестиваль. Музыканты с черепами животных на
головах, шкурами животных, варганом, барабанами большими, бубном,
какой-то смычковым инструментов, горловым пением и всяким около
шаманским. Понравилось, интересно, но повторно уже не вряд ли бы хотел
послушать.

Далее были Smorodina Reka. Акустический folk всякий. Неплохо,
понравилось, но хватает и одного раза.

Далее Moon Far Away из Архангельска. Вот это крутейшая группа была!
Конечно, довольно однообразна, только с медленным ритмом, незатейливой
атмосферной музыкой. Но какая вокалистка! Её голос буквально завораживал.
Есть голоса которые возбуждают, которые просто нравятся как звучат,
которые мощные. Но именно буквально завораживающих я не знаю встречал ли
на записях. В живую точно нет. Это однозначно ещё бы хотел услышать.
Незабываемо!

Далее Сны Саламандры из Ижевска, на которые пришёл и весь малый зал, так
как там всё закончилось. Куча поддержки им, куча плясок под них. Но мне
не понравилось совсем. Не, играли профессионально, но и вокалистка после
Moon Far Away могла бы только нервно курить в сторонке. Я простоял у
стеночки половину выступления, ибо совсем никак не трогало.

Последними выступили Helvegen из Липецка, которые вообще в чартах наших
оказывается присутствуют и по радио их крутят. Это уже прям метальчик
был хорошо исполняемый. Тоже с отличной вокалисткой, хотя я думал что
на фоне Moon Far Away вокалисток уже не смогу воспринимать более.
Бодренько, активненько, осталась четверть народа из всех кто был
изначально. Неплохо, можно даже и башкой бы было помотать, но всё же не
моё, простоватенько.

Специально я бы сходил на Moon Far Away только из всех что услышал.
https://www.youtube.com/watch?v=Rv00OmmizPQ

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

Устраивали там доселе невиданное мне -- хороводы регулярные. Прям через
весь зал, длиной в десятки человек. Был в зале старичок которому где-то
лет 70, с бородой как у Столлмана, только полностью седой. Так вот он на
Helvegen вообще начал слэм. И активно в нём принимал участие. Крутой
дядька, не встречал таких прежде.

Заключительной песней Helvegen была "Хоровод". На которой устроили
большуший многослойный (несколько рядов) хоровод. Я стоял у стеночки,
так как не принимал участие, а он занимал всю площадь. Так вот от него
реальный конкретный ветер был, который прям поднимал волосы у людей, как
будто вентилятор дул на них. Забавно вышло.

В общем, очень остался доволен. Хотя прежде с folk темой знаком по сути
только с Хуун Хуур Ту и folk-металом типа Korpiklaani. На подобное
стоить сходить, если будут группы типа Moon Far Away и Yaruga.

2 years agoПотрогал Nintendo Switch и поиграл в Super Smash Bros.
Sergey Matveev [Sat, 24 Dec 2022 11:48:14 +0000 (14:48 +0300)]
Потрогал Nintendo Switch и поиграл в Super Smash Bros.

https://en.wikipedia.org/wiki/Nintendo_Switch
https://en.wikipedia.org/wiki/Metroid
https://en.wikipedia.org/wiki/Super_Smash_Bros.
Принесли на работу сабжевую игровую консоль. Подключили через HDMI к
проектору на стену. Поиграли в разные игры. Я впервые увидел Metroid-а.
Честное слово: знал только название, но никогда не видел gameplay.
Прошёл в нём несколько экранов, но дальше уже как-то сложно всем этим
управлять стало: допустим четыре кнопки, кроме крестовины, я ещё могу
запомнить и осознанно нажимать, но дальше нужно больше времени.
Джойстики я трогал считанное количество раз.

А затем джойстик разделили на две части, как Switch позволяет, и друг
против друга сыграли часок в Smash Bros. Сплошное мельтешение на экране,
хаос, непонятно кем и почему активированные действия, но всё очень
забавно и интересно. Интересная штука этот Switch, как и Nintendo игры.
Насколько понимаю, они и славятся своим gameplay и его продуманностью.

2 years agoГори ИТ синим пламенем
Sergey Matveev [Fri, 23 Dec 2022 05:25:51 +0000 (08:25 +0300)]
Гори ИТ синим пламенем

https://habr.com/ru/post/707230/
Думал что это будет очередная статья от какого-нибудь плаксивого ламера.
Но автор описывает реально всё безумие и недопустимый ужас который очень
не редко творится в модных молодёжных и неподдерживаемых программных
проектах. Как например всё засунуть в YAML (и действительно держать типа
целого отдела для его поддержки) или как зеницу ока хранить конфиги с
которыми можно запуститься.

2 years agoВсякие независимые от корпораций online-сервисы
Sergey Matveev [Thu, 22 Dec 2022 12:39:15 +0000 (15:39 +0300)]
Всякие независимые от корпораций online-сервисы

https://habr.com/ru/company/sp/blog/702592/
Рассказы от разных администраторов как они пришли к тому чтобы поднимать
различные децентрализованные сервисы для кооперации и общения. Интересно
проглядеть эти истории. Но куча указанных сервисов наотрез отказывается
работать без JavaScript.

2 years agoРедактирование строк в Lynx во внешнем редакторе
Sergey Matveev [Thu, 22 Dec 2022 08:27:23 +0000 (11:27 +0300)]
Редактирование строк в Lynx во внешнем редакторе

http://www.git.stargrave.org/?p=lynx-patches.git;a=blob;f=edit-line.patch
В Lynx из коробки есть возможность использования внешнего редактора для
textarea и для отправки писем. Но нету возможности редактирования
простых строк, где например вводятся URL-ы.

Час времени, небольшой патч, теперь при нажатии Ctrl-U он сохраняет
текст во временный файл, запускает внешний редактор, обновляет буфер. И
почти всё время уходит на поиск места куда это надо вставить и
вспомогательных функций.

2 years agoWrite hole в btrfs
Sergey Matveev [Mon, 19 Dec 2022 09:30:08 +0000 (12:30 +0300)]
Write hole в btrfs

https://www.opennet.ru/opennews/art.shtml?num=58352
https://habr.com/ru/post/559014/
https://en.wikipedia.org/wiki/RAID_5_write_hole#Atomicity
Стыдоба, а не ФС. Write hole, оказывается, у них всё это время имелся в RAID5/6.

2 years agoСколько компьютеров в вашем компьютере?
Sergey Matveev [Mon, 19 Dec 2022 08:34:08 +0000 (11:34 +0300)]
Сколько компьютеров в вашем компьютере?

https://www.gwern.net/docs/www/habr.com/aecd1230c1167a4bedf025cc0c99b5183ac39f9e.html
https://www.gwern.net/Computers#computers-all-the-way-down
Полно! Теперь даже в кабелях есть компьютеры, которые, конечно же,
тоже могут быть атакованы. А для банального управления включением и
выключением зарадки используют процессоры, которые по мощности схожи с
первыми Macintosh-ами.

2 years agoМаршрутки в такую погоду в Королёве
Sergey Matveev [Sun, 18 Dec 2022 17:15:47 +0000 (20:15 +0300)]
Маршрутки в такую погоду в Королёве

Настолько всё замело и под снегом корка льда, что водитель маршрутки при
входе говорил чтобы все сразу садились в самый самый конец. Иначе вообще
сцепление с дорогой цеплял и не мог сдвинуться с места.

2 years agoЕщё одна команда Vim
Sergey Matveev [Sat, 17 Dec 2022 07:43:17 +0000 (10:43 +0300)]
Ещё одна команда Vim

Вчера на работе с ходу, во время парного программирования, написал вот
такую конструкцию сразу же без ошибок:
    :.,/^Skip/g/q.Get/m'a
Нравится как это выглядит, нравится что это делаю уже давно не сильно
задумываясь, без подсказок. Надо было переместить все объявления
переменных (... := q.Get(...)) выше определённой метки, чтобы можно
написать "goto Skip..." в Go коде.

Или вот надо было обернуть несколько "{{...}}" конструкций внутри HTML
шаблона в <tt>-тэг. Не писать же это руками в каждом месте, пускай даже
и используя motion-ы. Нужно буквально ввести команду "оберни мне текст
между фигурными скобками в <tt>-тэг", чтобы её просто нажатием точки
можно бы было повторить в любом другом месте. "ys%ttt>". Правда тут
surround плагин от Tim Pope нужен, но я считаю что это предполагается
что всегда установлено на компьютере разработчика.

Ну и как после этого можно использовать другие редакторы (кроме Emacs)?

2 years agoКремниевые титаны: USRobotics
Sergey Matveev [Thu, 15 Dec 2022 09:14:49 +0000 (12:14 +0300)]
Кремниевые титаны: USRobotics

https://16-bits.ru/%d0%ba%d1%80%d0%b5%d0%bc%d0%bd%d0%b8%d0%b5%d0%b2%d1%8b%d0%b5-%d1%82%d0%b8%d1%82%d0%b0%d0%bd%d1%8b-%e2%84%9641/
В блоге только упоминал что у меня был USRobotics Courier V.Everything
модем. Вообще изначально мне в руки попал что-то типа выброшенного не
нужного встроенного 9600bps модема. Что с ним делать? Не знал. Но просто
вставил в компьютер. А как-то при выходе из какой-то shareware программы
я увидел рекламу русскоязычной BBS и решил позвонить на неё через
Norton-овский терминал. Дозвонился сразу же. И жизнь стала до и после.
Об этом написал в http://www.stargrave.org/FidoNet.html

Позже уговорил родителей приобрести нормальный полноценный внешний модем
(во внутреннем же всякие наводки). Денег у нас на тот момент было совсем
не много, но после всяких статей и сравнений был приобретён не самый
дешёвый, но и не дорогой EliteGroup модем какой-то там модели. На нём я
уже подключался к FidoNet. BBS при этом тоже посещал. Один раз побывав в
гостях у родственника, попробовал BBS-ку на его USRobotics Courier-е,
где был задействован HST протокол. Разница в скорости по сути наверное
достигала порядка, ибо даже если на EliteGroup модеме я, допустим, мог
бы подключиться и на 19200bps, но там всё равно были регулярные
rehandshake, обрывы связи и прочие шалости. HST же, как где то было
написано, вгрызался мёртвой хваткой в телефонную линию и не выпускал.
Так оно и было. И мне предложили поменяться модемами просто так. Хотя
EliteGroup стоит что-то где-то 40$, а Courier не менее 200$. Но
телефонная линия в том московском доме была очень хорошей и там уже
разницы между ними особо не было заметно. А вот у меня дома в
Королёве... разница была просто потрясающая. Помню что с некоторыми
нодами/BBS в Москве я мог соединиться на скорости менее 1000bps вообще,
тогда как с HST протоколом на почти честных 16800 запросто.

Уйму времени я с ним возился, ибо ведь там столько всего можно было
настраивать! Я делал и отдельные профили настроек для разных BBS нод,
часа по четыре тратя на нахождение лучших настроек для каждого по
отдельности. И мне это нравилось, очень! Использовал его также и как АОН.
А в Интернет по нему входил считанные разы. Причём пару раз наверное
покупал карточки РОЛ, но уже не припомню что я там вообще делал и что
можно было делать в этих Интернетах. Ведь всё общение было в Фидо. И тот
же родственник мне дал свою учётную запись от рабочего модемного пула
для доступа в Интернет, но чтобы я не особо палился его используя.
Запомнилось что через него я за целую ночь смог скачать Quake3 для
GNU/Linux, которую сразу же без проблем запустил на FreeBSD. Но
полноценный Интернет у меня появился через GPRS Motorola C350L. И уж
годы спустя поставили мы ADSL на 160/128 Kbps, которые затем выросли до
более чем мегабитных скоростей. Ну а уж потом обычный Ethernet пошёл в
квартиру.

2 years agoВычислительная сложность взлома X25519
Sergey Matveev [Thu, 15 Dec 2022 09:03:58 +0000 (12:03 +0300)]
Вычислительная сложность взлома X25519

https://mailarchive.ietf.org/arch/msg/cfrg/qj_KLhOrlHx5kE2BCSo1BTtPCnI/
Бернштейн отвечает касательно сложности взлома 25519. Ведь в его
приватном ключе используются не все 128-бит, а чуть меньше. Поэтому типа
оно меньше чем взлом 128-бит шифра. Однако при этом используются другие
единицы измерения -- "перебор" одного значения эллиптической кривой
гораздо более затратная операция. Поэтому DJB приходит к 2^145.2 операциям.

          ------------------------ >8 ------------------------

First of all, a standard negating rho attack takes about sqrt(pi l/4)
iterations on average.

https://cr.yp.to/papers.html#grumpy showed that the constant sqrt(pi/4)
isn't optimal in cost models that allow free memory access, and it's
conceivable that the same is true in realistic cost models, but the
potential improvement here was already well known to be limited by
Nechaev--Shoup: a generic negating attack can't do better than 2/3.
Let's assume 2/3 is achievable, so 2^125.4 iterations for Curve25519.

This number 2^125.4 is below the number of AES-128 keys, namely 2^128.
More to the point, it's below the average number of guesses in a
brute-force AES-128 key search, which is about 2^127.

However, as John notes, the 2^125.4 and 2^127 here have different units.
For a valid comparison, we need the same units. Let's count bit
operations.

An unrolled 255-bit multiplication circuit, including Karatsuba and many
lower-layer speedups, uses 95126 XORs and 78828 ANDs/ORs, for a total of
173954 bit operations. https://cr.yp.to/papers.html#qisog includes code
to count this.

An optimized elliptic-curve attack iteration costs 5 multiplications
plus overhead, about 2^20 bit operations overall. Footnote 5 of
https://cr.yp.to/papers.html#sect113r2 is tantamount to reducing 5 to
4.5+o(1) asymptotically (if one ignores the bit operations involved in
RAM access), but it's structurally clear that the o(1) is positive, so
this is below 0.2 bits of difference in security.

To summarize, the ~2^125.4 iterations are above ~2^145.2 bit operations.
The only gap I see in the literature is that there's a missing analysis
of bit operations for more complicated multipliers; I'd guess that Toom
does _marginally_ better than Karatsuba at this size.

For comparison, there are more gaps in the literature analyzing the cost
of AES-128 attacks (e.g., how many bit operations can be shared across
key guesses? what's the impact of bicliques on bit-operation counts?),
but it's reasonably clear that plugging existing AES-128 single-input
optimizations into a naive AES-128 attack brings each iteration below
2^15 bit operations, so the average ~2^127 AES-128 attack iterations are
below 2^142 bit operations.

In short, an X25519 key is an order of magnitude more costly to break
than an AES-128 key by known attacks. (Until the attacker has a quantum
computer, a big caveat noted in the Curve25519 paper.)

Bitcoin is currently around 2^111 bit operations per year, which might
make 2^142 sound safe. An important cautionary note is that multi-target
AES-128 attacks are already feasible for large-scale attackers today;
see generally https://blog.cr.yp.to/20151120-batchattacks.html. As the
Curve25519 paper explains, low-probability attacks and multi-target
attacks have less impact on X25519 security than on cipher security.

Beyond bit operations, there's more to say about exact hardware costs. I
expect a detailed analysis to show that hardware overheads are a bigger
issue for Curve25519 attacks than for AES-128 attacks, most importantly
because of routing overheads. This prediction is based on considering
the high-level data flow in a rho attack against Curve25519 (see the
diagrams in https://cr.yp.to/papers.html#opb for the similar case of
binary elliptic curves), the low-level data flow inside multipliers, the
low-level data flow inside an AES attack, and the mix of bit operations
(which can matter: e.g., NAND is cheaper than XOR in hardware). It would
be interesting to see papers analyzing this.

2 years agoИгрушечный заяц на работе
Sergey Matveev [Wed, 14 Dec 2022 23:02:09 +0000 (02:02 +0300)]
Игрушечный заяц на работе

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

2 years agoScott Ian о Fredrick Thordendal
Sergey Matveev [Wed, 14 Dec 2022 08:22:26 +0000 (11:22 +0300)]
Scott Ian о Fredrick Thordendal

http://www.hitkiller.com/mnenie-scott-ian-anthrax-kirk-hammett-samyj-nedoocenennyj-ritm-gitarist-v-mire.html
Интервью/статья вообще о том, что он считает Кирка Хаммета недооценённым,
превозносит Хэтфильда, но при этом Фредрик у него просто навсего инопланетянин,
сродни Терминатору, которого прислали из будущего чтобы унижать остальных
гитаристов в мире :-). Ну что сказать: Fredrik для меня действительно
совершенно иной уровень (3922ec0a8abe6c2ee2f2af5704464923058d0f76,
1eed2bbf606bacf8a8c21f46ddfbaf44d06748e9). А касательно гитаристов
Metallica -- ничего не могу сказать. Не понимаю я тут ничего. Ну просто
неплохой метальчик играют, но меня ничто не восхищало в их игре.
Наверное потому что не гитарист, слуха нет, просто обыватель я. Вот
например Мальком Янг, которого первым упомянули в статье: вот это мне
ясно что он тоже дико крут.

2 years agocpuc
Sergey Matveev [Tue, 13 Dec 2022 08:56:42 +0000 (11:56 +0300)]
cpuc

https://github.com/rilysh/cpuc
Простая утилита из одного исходного файла на Си, которая просто
показывает поддерживаемые расширения команд x86 красивым списком.

2 years agoДырявый ping в FreeBSD
Sergey Matveev [Mon, 12 Dec 2022 20:05:17 +0000 (23:05 +0300)]
Дырявый ping в FreeBSD

https://www.opennet.ru/opennews/art.shtml?num=58232
https://www.opennet.ru/opennews/art.shtml?num=58299
Везде эта новость, тупые комментарии (впрочем, тупее могут быть только
комментарии про IPv6, ценные как источник мифов и легенд). Даже в
рассылке FreeBSD отправили короткое письмо поясняющее (хотя это как бы и
так ясно вроде) масштаб проблемы:

- This issue affects only /sbin/ping, not kernel ICMP handling.
- The issue relies on receipt of malicious packet(s) while the ping
  utility is running (i.e., while pinging a host).
- ping(8) is setuid root, but drops privilege (to that of the user
  executing it) after opening sockets but before sending or receiving
  data.
- ping(8) runs in a Capsicum capability sandbox, such that even in the
  event of a compromise the attacker is quite limited (has no access to
  global namespaces, such as the filesystem).
- It is believed that exploitation is not possible due to the stack
  layout on affected platforms.

2 years agoCogent
Sergey Matveev [Mon, 12 Dec 2022 07:56:45 +0000 (10:56 +0300)]
Cogent

https://adminhacks.com/broken-IPv6.html
https://news.ycombinator.com/item?id=33941324
https://en.wikipedia.org/wiki/Cogent_Communications#Peering_disputes
https://en.wikipedia.org/wiki/Depeering#Depeering
https://www.youtube.com/watch?v=7CObnXjmDtg
Только ненависть и ничего кроме ненависти к Cogent провайдеру у людей.
Как всё оказывается не просто с этим peering-ом между Tier-1 (?) сетями.

2 years agoПознакомился с Eyehategod
Sergey Matveev [Sat, 10 Dec 2022 22:14:12 +0000 (01:14 +0300)]
Познакомился с Eyehategod

https://www.youtube.com/watch?v=6vtFbBF3Dy4
Пишут что вот это просто sludge стиль музыки. И в этом году всё больше и
больше подобного слушаю и даже на концерты хожу. Вот в этом альбоме уже
чётко понимаю что вот это наверное и есть настоящий sludge. Начинаю
видеть разницу между stoner. Мне такое нравится.

2 years agoZig избавляется от C++, привносит WebAssembly
Sergey Matveev [Fri, 9 Dec 2022 11:58:13 +0000 (14:58 +0300)]
Zig избавляется от C++, привносит WebAssembly

https://ziglang.org/news/goodbye-cpp/
Интересное чтиво про то, как bootstrap-ится будет Zig. Очень приятно что
разработчики обеспокоены этой темой и вообще задаются вопросом адекватного
boostrap. В отличии от Rust, где нет официально никакого bootstrap, просто,
мол, используйте наши бинарники.

2 years agoДоступ удалённых клиентов к tmux-у
Sergey Matveev [Thu, 8 Dec 2022 09:25:39 +0000 (12:25 +0300)]
Доступ удалённых клиентов к tmux-у

В 5f98503b78f5aa80bd48f4633ce82e9a219ed7e6 я говорил про настройку
tmux-а и SSH-а для парного программирования. Внезапно тут выяснилось
что в существенно более новых версиях tmux-а он просто так уже не пустит
в свою сессию, даже если сокет будет и 666 права иметь и владельца SSH
учётной записи. Нужно явно разрешить доступ конкретному пользователю:
    tmux server-access -r shared-user

Вообще tmux это наверное самая обратно-несовместимо-изменяемая
программка из всех используемых. Именно в ней чаще всего, пускай по
мелочам, но так или иначе меняется поведение с каждым минорным обновлением.

2 years agoШифрование резервных копий в Apple iCloud
Sergey Matveev [Wed, 7 Dec 2022 21:43:20 +0000 (00:43 +0300)]
Шифрование резервных копий в Apple iCloud

https://blog.cryptographyengineering.com/2022/12/07/apple-icloud-and-why-encrypted-backup-is-the-only-privacy-issue/
Мэтью Грин снова (2e481ab71d76799feac3821dfdf17a1b922b2410) пишет об
Apple и проблемах с шифрованием приватных данных в облаках. Понравилось
его наблюдение полностью схожее с введением в одной из глав книги Брюса
Шнайера:

    представьте, то вас попросили отсылать копии всех ваших писем и
    фотографий в государственную службу (как-то так у Шнайера)

    представьте, что ваша страна по результатам референдума сделала
    централизованное хранилище всех фотографий делаемых людьми (у Грина)

Звучит всё ужасно и, мол, никто на это в здравом уме не согласится. Но
оба криптографа просто ставят перед фактом (очевидным): люди и так это
всё делают самостоятельно, без лишних просьб и применений форсирующих
методов.

    A handful of Silicon Valley executives made the choice for us, in
    pursuit of adoption metrics and a "magical" user experience.

2 years agoЗаблуждения программистов о времени
Sergey Matveev [Sun, 4 Dec 2022 16:04:26 +0000 (19:04 +0300)]
Заблуждения программистов о времени

https://habr.com/ru/post/703360/
https://habr.com/ru/post/146109/
Перевод хорошей статьи о времени.

Одно вот только взбесило прям: на одной карте указана легенда к цветам,
среди которой есть цвет "фуксия". Уроды, я даже примерно не знаю что это
за цвет, даже примерно к какой части спектра он относится. Нельзя просто
написать было "красный"? Аналогично в общем-то и про "персиковый" цвет
можно тоже сказать.

2 years agoLTT о режиме сна в Windows
Sergey Matveev [Sun, 4 Dec 2022 11:41:15 +0000 (14:41 +0300)]
LTT о режиме сна в Windows

https://www.youtube.com/watch?v=OHKKcd3sx2c
Я знал что режимы сна в компьютере это та ещё жопа в плане сложности и
нетривиальности. 100500 багов/особенностей видел что чуть ли не к каждому
компоненту в компьютере нужен особый подход, особый код для того, чтобы
его можно было переключить в энергосберегающий режим (ну или выключить)
и сделать работоспособным снова.

Когда у меня был GNU/Linux, то я тогда ещё бывало использовал сон в
ноутбуках, но совершенно не помню даже примерно какой именно подход.
Вроде бы когда питание на памяти поддерживалось. В FreeBSD с этим похуже
было, да и хранить дешифрованные ключи от зашифрованных дисков не гоже в
памяти под напряжением -- я перестал даже пытаться что-то переводить в
спящий режим и для меня это абсолютно ненужная фича и даже не
интересуюсь о состоянии её поддержки где бы то ни было.

Но Linus Tech Tips говорит, что даже в Windows с этим серьёзные
проблемы. Такие, что люди типа даже переходят на MacBook-и из-за этого.
Ну мне их use-case-ы чужды, но я от Windows подобного не ожидал. Думал
что в них то уж всё тип-топ должно было бы быть.

2 years agoКлубы в бары
Sergey Matveev [Sun, 4 Dec 2022 10:16:38 +0000 (13:16 +0300)]
Клубы в бары

Заметил по афишам, что за последние пару лет ряд клубов переименован в
"бары". Не клуб Город, а бар Город уже, например. Так что теперь я стал
ходить не по клубам, а по барам. И не скажешь ведь людям это прямо: ведь
и про клубы первой ассоциацией что-то нелицеприятное будет приходить.

2 years agoКуча кача
Sergey Matveev [Sun, 4 Dec 2022 10:13:45 +0000 (13:13 +0300)]
Куча кача

В прошлом посте написал это словосочетание. Нравится мне как звучит и
как пишется. Надо застолбить для название какой-нибудь goregrind группы.
А ещё я как-то во время поездки в машине по Ярославскому шоссе увидел
объявление об аренде "ямобура". С тех пор не могу забыть это слово. И
нравится как звучит и оно прям брутальное такое, тоже для грайндкора
какого-нибудь подходит.

2 years agoFallout Olympus
Sergey Matveev [Sun, 4 Dec 2022 10:10:28 +0000 (13:10 +0300)]
Fallout Olympus

https://youtu.be/EE6Ct39bYUc
Скинули мне тут ссылку на рецензию русскоязычного мода на движке Fallout.
Получаю невероятное удовольствие от подобной графики. И не от ностальгии:
тут всё же почти всё перерисовано, просто в Fallout-овском стиле. Фетиш
прям от всего этого.

2 years agoСходил на Extreme Metal Gig
Sergey Matveev [Sun, 4 Dec 2022 09:41:26 +0000 (12:41 +0300)]
Сходил на Extreme Metal Gig

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

Первыми выступали Excile D.C.. Ну просто такой грувовый метал, чисто
поколбаситься и потрясти башкой. Неплохо, но специально я бы пошёл на
такое только чтобы потанцевать. Но эти черти ближе к концу додумались
исполнить кавер на "Blind" Korn-а. Причём я узнал только вступление к
этой песне, не помня чья она, но уже понял что сдержаться не смогу (да
и кто смог бы?). И уже на них устроили wall of death.

Далее шли ребята из Рязани Sympuls-E. Вот это были крутейшие ребята! На
них стоит сходить и отдельно, только ради них. Исполняли что-то типа
mathcore с кучей кача. Потряс и под них. Вокалист очень понравился.
Внешне то напоминал короткостриженного Джареда Лето, много было чистого
вокала, но очень качественного. Местами вспоминал про TesseracT под всё
это дело. Офигенно сыграли.

Далее были In Vision. Вот на них мой задор весь и поубавился. Вроде бы
играют качественно, вокалист тоже неплох, но больно уж однообразно и не
интересно как-то.

Штатно у них два гитариста и басист. Но на пару песен они пригласили ещё
одного. И был момент когда они в ряд вчетвером выстроились и качовые
риффы незатейливые исполнили. Хотелось заржать, так как напомнило момент
из Идиократии с кучей гитаристов: https://www.youtube.com/watch?v=y4We5q8aTWQ

Концерт в названии говорит про экстремальный метал. Но блин, а куда ж
относить black metal или техничный brutal death? На этом концерте всё же
довольно лёгкая музыка была, просто качовая с сочным плотным звуком.

2 years agoВкусно и точка, МакДональдс, шаурма
Sergey Matveev [Fri, 2 Dec 2022 13:44:04 +0000 (16:44 +0300)]
Вкусно и точка, МакДональдс, шаурма

https://lenta.ru/news/2022/12/02/makvernis/
Я слышал что вместо МакДака у нас стала "Вкусно и точка". Видел рекламу.
Но я что в первом бывал наверное даже не каждый год, а во "ВиТ" ни разу.
Редко я просто куда выбираюсь где нужно поискать какой-то общепит.

Где-то 1-2 раза за пару недель я захожу в пирожочную недалеко от работы,
чисто чтобы разнообразить готовые лотки с едой от Перекрёстка и Милти.
Но тут один раз двери в ней оказались закрыты. Возможно буквально на
минуту, но никакого указания времени не было. Рядом есть уголок с шаурмой.
Взял попробовать. Последний раз я шаурму уже не помню сколько лет назад ел.
И уже в четвёртый раз я там её беру, подсадив ещё пару коллег. Все мы
сошлись на том, что это похоже самая вкусная шаурма которую кто-либо из
нас ел. Ничего особого, точно такие же ингредиенты, но видимо банально
качественные, в нужных пропорциях и должным образом прожаренные. Сегодня
шаурмисту сказал что я такой вкусной не ел прежде.

А со времён института знаю правило: ешь там, где ест милиция. И так уж
совпало, но шаурму эту я взял как-раз когда пара полицейских тоже её ели.

2 years agoИТшники в РФ
Sergey Matveev [Fri, 2 Dec 2022 13:31:36 +0000 (16:31 +0300)]
ИТшники в РФ

https://lenta.ru/news/2022/12/02/itmigration/
Действительно, СВО (ну, видимо, как и любой вызов стране) показала
какими на самом деле оказываются проститутками многие программисты,
ну и вообще все кто причастен к ИТ. Впрочем, я и прежде знал что
среди них много всяких там либералов и прочих уродов. Удручает конечно
что и я с ними связан был многие годы (с теми кто сбежал, предал,
изменил, струсил, и т.д.), но зато делаются приятные и порой неожиданные
открытия о других людях (и среди них ИТшники попадаются :-)).

2 years agoSpamhaus сразу блокирует /64 сети
Sergey Matveev [Fri, 2 Dec 2022 12:34:36 +0000 (15:34 +0300)]
Spamhaus сразу блокирует /64 сети

https://dianne.skoll.ca/pipermail/remind-fans/2022/004411.html
Автор remind утилиты жалуется на эту лютую жесть. Ну и предупреждает,
что от кого будет отфутболиваться корреспонденция -- тот будет отписан.
Это на самом деле GNU Mailman из коробки и делает. Поддерживаю это, ибо
я считаю полным идиотизмом использовать подобные blacklist-ы, зная
насколько они занимаются произволом.

2 years agoСтолпы творения
Sergey Matveev [Fri, 2 Dec 2022 09:31:15 +0000 (12:31 +0300)]
Столпы творения

https://www.astronews.ru/cgi-bin/mng.cgi?page=news&news=20221201233357
https://en.wikipedia.org/wiki/Pillars_of_Creation
https://en.wikipedia.org/wiki/List_of_Hubble_anniversary_images
Чертовски красивы многие фотографии из космоса. С детства обожал их
рассматривать в энциклопедиях по астрономии.

2 years agoСерверы ActivityPub
Sergey Matveev [Fri, 2 Dec 2022 09:04:19 +0000 (12:04 +0300)]
Серверы ActivityPub

https://nelsonslog.wordpress.com/2022/12/01/activitypub-servers/
Автор статьи хочет просто взять какой-то CGI-like сервер чтобы
федеративно обмениваться с другими. И среди всего что он нашёл,
это проекты на сотню тысяч строк кода на Go или Python. Я тоже
как-то смотрел в сторону этих технологий чисто ради интереса,
для интеграции в движок своего блога. Больше к этой теме не
притрагиваюсь после поисков.

2 years agoHalf-Life 2
Sergey Matveev [Thu, 1 Dec 2022 11:23:08 +0000 (14:23 +0300)]
Half-Life 2

https://www.youtube.com/watch?v=zaRTfTCneUU
Подробное описание сабжевой игры. Согласен полностью с автором о том,
что игра просто феноменально крута. Плюс это по сути последняя (ну ok,
ещё GTA3 трогал, но не проходил) в которую я играл на Windows и что у
меня мой GeForce 2 ещё тянул. Не солидарен с его отношением к некоторым
уровням, которые по его мнению скучны и не удачны. Я и от тюрьмы и от
City 17 получал колоссальнейшее удовольствие. Единственное что я не
перевариал в игре: последний уровень с муравьиными львами до получения
феромонного оружия. Когда я переигрывал, то это единственное место где я
включал noclip чтобы пропустить всю эту тягомотину.

А вот в эпизоды я не играл. Точнее запускал первый, но где-то через
15мин игры, у меня жуткие артефакты на моей видеокарте. Она по сути уже
не тянула игру. Ну а дальше у меня был институт и я уже отошёл от игр.
Только периодически возвращаясь к Doom 3, когда у меня появился ThinkPad
с достаточно мощным видеоаккселератором для него, и ко всяким квестам.

2 years agoTexinfo 7.0.1
Sergey Matveev [Thu, 1 Dec 2022 10:07:19 +0000 (13:07 +0300)]
Texinfo 7.0.1

Буквально вчера обнаружил что info зависает при попытке вывести .info
файл в текстовом виде, во время индексации recoll-ом всей документации в
моей системе (c2b22fed00ef109af2e1d58a7ff0058a00dcbc4d). Дело было вне
доступности Интернета. А сегодня в почте как-раз получаю письмо из
рассылки о выходе 7.0.1 версии, в которой это как-раз было исправлено. А
то он вообще просто не открывал многие .info файлы при этом.

2 years agoGG Allin
Sergey Matveev [Thu, 1 Dec 2022 08:23:26 +0000 (11:23 +0300)]
GG Allin

http://www.hitkiller.com/jonas-akerlund-snimet-film-o-gg-allin.html
Первый раз увидел и услышал хоть что-то про GG Allin-а. Единственное что
я знал про него -- он бросается какашками на концертах. Но вообще у него
ещё какая хипповская/панковская/анархическая идея. Прикольный чувак. Я
бы сказал -- трушный чувак. И вместо него могла бы быть *любая* рок или
метал группа, как правило. Там верно заметили что и за прослушивание
Beatles тоже аналогично наезжали, ведь эти же уроды не постригли волосню.
И до сих пор среди нас, даже у меня на работе, есть люди которые говорят
"это что-то сатанинское", услышав банально любые тяжёлые рифы thrash metal-а.

Да и в первый раз я увидел шоу Спрингера. Хотя по сути то и так в курсе
о чём оно, ибо в Симпсонах сколько его показывало.

2 years agoСтабильность btrtrc
Sergey Matveev [Wed, 30 Nov 2022 18:35:57 +0000 (21:35 +0300)]
Стабильность btrtrc

Получил тут спустя десятки часов работы панику во время попытки
шифрования RC4: мол обращение по нулевому адресу идёт. Где-то наверное
race или что-то подобное. Даже выяснять не хочу: проще перезапускать
демона, ибо раз в несколько суток абсолютно терпимо это делать.

Треды кстати всё же растут (80defeaa4b493f6d954d0895fdf8fc89409ac875),
но очень неспешно. Нужна не одна неделя в самом прискорбном случае чтобы
можно было снова выйти за пределы ОС по-умолчанию. Но с моими
оптимизациями по хранению открытых файловых дескрипторов я точно знаю
что возможна ситуация когда к одному файлу конкурентно могут обратиться.
Без этой оптимизации, когда просто все обращения выстраиваются строго
линейно -- роста не видел (ну или он пренебрежительно малый). Проблему в
любом случае считаю решённой.

2 years agoed25519 X.509 сертификаты
Sergey Matveev [Wed, 30 Nov 2022 18:12:24 +0000 (21:12 +0300)]
ed25519 X.509 сертификаты

http://www.caed.cypherpunks.ru/
https://www.rfc-editor.org/rfc/rfc8410
Сегодня вспомнил про существование X.509 сертификатов с ed25519 (и
ed448) ключами. И задался вопросом: а почему, собственно, я их не
использую у себя? Понимаю что оно только в относительно довольно новых
библиотеках только поддерживается, но всякие криптографические и так
стоит держать обновлёнными. Во всяких GnuTLS, OpenSSL, NSS и BoringSSL
всё имеется. В итоге сделал ещё один CA себе, основанный полностью на
ed25519. Ну и сертификаты все перевыпустил.

2 years agoПамятник Туполеву
Sergey Matveev [Wed, 30 Nov 2022 14:19:42 +0000 (17:19 +0300)]
Памятник Туполеву

https://lenta.ru/news/2022/11/30/tupolev_pamiatnik/
Пишут, что в Москве это первый памятник авиаконструктору. С ходу,
действительно других не вспоминаю чтобы слышал. На космическую то
тему не мало есть.

2 years agoКто контролирует DNS?
Sergey Matveev [Wed, 30 Nov 2022 09:34:04 +0000 (12:34 +0300)]
Кто контролирует DNS?

https://netmeister.org/blog/nsauth-diversity.html
Всякая статистика и исследования кто отвечает за корневые серверы, да и
вообще в целом домены. Всё довольно сильно централизовано и, конечно же,
в руках США, в особенности Verisign.

2 years agoGoCheese в портах FreeBSD
Sergey Matveev [Wed, 30 Nov 2022 07:46:25 +0000 (10:46 +0300)]
GoCheese в портах FreeBSD

https://www.freshports.org/devel/gocheese/
Оказывается, GoCheese есть в портах.
Недавно выпустил новую версию: с последними версиями PIP он не работал.

2 years agoSlipknot барабанщик "Metal Drummer Of The Year"
Sergey Matveev [Tue, 29 Nov 2022 11:49:32 +0000 (14:49 +0300)]
Slipknot барабанщик "Metal Drummer Of The Year"

https://www.darkside.ru/news/148933/
https://www.youtube.com/watch?v=aXJtE42gaFI
Посмотрел ради интереса его выступления, нарезки всякие. Не, ну быстро
долбить умеет, но что он, что весь Slipknot совершенно не трогает и
скорее не нравится.

Зато вот нашёл подборку "10 тупо быстрых барабанщиков" -- понравилось
что знаком хорошо со всеми этими группами, кроме Infant Annihilator,
названия которых и не слышал прежде.

2 years agoПроблема с тредами у btrtrc
Sergey Matveev [Mon, 28 Nov 2022 13:57:47 +0000 (16:57 +0300)]
Проблема с тредами у btrtrc

github.com/anacrolix/torrent порождает такую кучу тредов
(2643c085a0970d8d8bc3471cb5c294ba8b09fee8), что ОС это совершенно не
нравится. На самом деле, это просто настолько активная конкурентная
работа с файлами, что сам Go порождает эти треды для блокирующих операций.

Решил её линейно выполняя I/O операции для каждого файла. Просто захват
mutex-а каждый раз. Больше кол-во тредов не растёт. Плюс добавил
сохранение этих файловых дескрипторов открытых на 10сек -- существенно
уменьшает кол-во системных вызовов open/close.

2 years agoPCRE2 и git grep проблемы
Sergey Matveev [Mon, 28 Nov 2022 11:28:19 +0000 (14:28 +0300)]
PCRE2 и git grep проблемы

https://lore.kernel.org/git/87muh57t5r.fsf@evledraar.gmail.com/T/
С какого-то момента у меня начали вываливаться во многих репозиториях
ошибки на git-grep вида:
    Schwerwiegend: pcre2_match failed with error code [...]
Если собрать PCRE2 с --enable-jit, то они пропадут.

2 years agoКомпьютеры -- занятие для девочек
Sergey Matveev [Sun, 27 Nov 2022 18:57:26 +0000 (21:57 +0300)]
Компьютеры -- занятие для девочек

https://www.datagubbe.se/girls/

2 years agobtrtrc
Sergey Matveev [Sun, 27 Nov 2022 12:38:55 +0000 (15:38 +0300)]
btrtrc

http://www.git.stargrave.org/?p=btrtrc.git;a=blob;f=cmd/btrtrc/README;hb=refs/heads/btrtrc
Выложил наработки по своему BitTorrent клиенту (b35e390fb27533c78ba6b4c415e0ace7b9bffcec).
Что делать с проблемой (2643c085a0970d8d8bc3471cb5c294ba8b09fee8)
большого количества тредов? Пока просто увеличил допустимый лимит в ОС.
Пока не вижу проблемы и перезапускать клиента, так как их количество
растёт неспешно со временем. Надо, когда будет время, посмотреть что же
там такого при чтении файлов и можно ли это как-то вменяемо поправить.

"btrtrc" это "better bittorrent client", по аналогии с "btrfs". Можно
произносить как "бэ-тр-тр-ц!", то бишь, потрахтеть трактором и закончить
звуком от удара по тарелке барабанной установки.

2 years agoПервая попытка эксплуатации BitTorrent клиента
Sergey Matveev [Sun, 27 Nov 2022 07:25:41 +0000 (10:25 +0300)]
Первая попытка эксплуатации BitTorrent клиента

https://github.com/anacrolix/torrent/issues/769
... провалилась. Процесс грохнулся с SIGABRT, потому что runtime не смог
создать новый тред: Resource temporarily unavailable.
kern.threads.max_threads_per_proc у меня выставлен в 1500 по умолчанию,
а процесс после запуска уже ~1300 имеет тредов. Есть даже заведённый
issue на это, где автор говорит про исчезновение проблемы при
использовании mmap-based storage. Попробовал -- действительно, тредов
стало меньше сотни и не растёт.

Но... у меня же ZFS, а mmap на ней использовать не гоже. Page cache для
mmap-а отъедает память, не смотря на то, что копия данных всё равно
имеется в ARC-е ZFS. В итоге использование памяти моим процессом
стремительно растёт, вытесняя ARC. А так как это торренты, то память
будет использоваться под завязку, нивелируя кэш ZFS.

В общем, или увеличить max_threads_per_proc (что я уже и сделал чтобы
продолжало работать) или ограничивать количество соединений.

2 years agoThe Hu -- первая тяжёлая группа ЮНЕСКО "Artist for peace"
Sergey Matveev [Sun, 27 Nov 2022 07:21:38 +0000 (10:21 +0300)]
The Hu -- первая тяжёлая группа ЮНЕСКО "Artist for peace"

http://www.hitkiller.com/the-hu-stali-pervoj-tyazheloj-gruppoj-poluchivshej-zvanie-yunesko-artist-for-peace.html
Ну здорово! Действительно клёвые ребята, с которыми и прежде
(12de649232075d4eec055fa36a7192d3ef0ac76b). Обожаю горловое пение,
нравится звучание подобных инструментов (варганы там), а к этому ещё
и рок добавили с distortion гитарами.

2 years agoНаписал BitTorrent клиент
Sergey Matveev [Sat, 26 Nov 2022 20:32:47 +0000 (23:32 +0300)]
Написал BitTorrent клиент

Сегодня вот полностью стал им (8357328821a1a6859a268197a618554b875a87c6)
seed-ить все свои торренты. При запуске можно указать IPv4, IPv6 адреса,
DHT bootstrap адреса, ну и где слушать. github.com/anacrolix/torrent DHT
тоже обслуживает на том же самом порту что и торренты. На экран будет
выводиться общее кол-во принятого/переданного трафика и скорости раз в
секунду. Создаются "add", "del", "list" FIFO файлы. Если записывать
строчку с путём от .torrent или magnet: ссылку в "add", то он будет
добавлен в клиент. Запись (info) хэша торрента в del -- удалит его из
клиента. cat list покажет (с цветами) вывод аналогичный godiana
(0c40b3f99ee554b301bd40b1b4d4c6390c746834). Для каждого торрента
создаются также "files/HASH" и "peers/HASH" FIFO, который выдают
цветастый вывод с информацией о peer-ах и файлах.

Для хранения информации о проверенных кусочках всё продолжает
использоваться BoltDB, но по отдельному файлу на каждый торрент. По
идее, конечно же, overhead, но раз оно уже написано, занимает мало коду,
работает, не надо париться с консистентностью при обновлении этого
файла, то, боюсь что так и оставлю. Если добавить совершенно новые
торренты для seed-а, то их проверка будет идти параллельно, что плохо
для производительности на HDD. Для себя проблему решил добавлением
-verify флага к клиенту, где можно указать .torrent и он только проверит
целостность торрента, с созданием БД, и выйдет. Просто в shell цикле
пройдя по torrent-ам их можно подготовить для вставки в клиент.

Пока совершенно нет никакого сохранения знания о seed ratio. Возможно
буду его писать в уже имеющийся BoltDB для каждого торрента. Но и без
этого уже можно использовать. Ну и пока нет возможности выбора
директории для скачивания торрента. У меня два больших ZFS pool-а с
торрентами и сейчас я банально запустил два клиента на разных портах
параллельно. Стоит, конечно, заняться этим вопросом плотнее. Для этого
надо собственный storage написать будет, но вроде выглядит довольно легко.

По uTP общается, шифрование peer-ов есть, с трэкерами и DHT, IPv4/IPv6
-- все летает и существенно быстрее находит peer-ов. Если aria2
перезапустить, то она с минуту может начать хоть что-то кому-то
отдавать. CPU жрёт при этом немного поболее: ~12% одного ядра одним
клиентом, и ~4% другим, в котором только шесть торрентов. Listen queue
нулевой: никто не ждёт в очередях (35f498b93a95b1d620889197042db8a941aa0428).
Но потребление памяти клиентом растёт со временем неспешно. Утром
посмотрю до каких значений вырастет, если не упадёт с какой-нибудь
паникой за ночь. Но все 100Mbps с сотнями активных peer-ов заняты. Пока
это писал, то размер занимаемой памяти вообще стал уменьшаться -- так
что возможно это и не утечки.

В общем, пока очень очень доволен получившимся результатом. По сути то я
конечно просто сделал незатейливый frontend для библиотеки. Хотя пару
мест в ней пришлось подправить и сделать данные публично доступными.
Например крайне мало чего можно узнать о peer-е было. Отображение
информации о торрентах происходит моментально, тогда как aria2 можно
было ждать (ответа от её RPC) в течении секунд десяти.

На будущее: ещё знаю что надо будет рано или поздно добавлять в storage
на тему переименования файлов (cdc44c7a1bb63c5822313ac73e99a39bda088bff),
так как могут быть имена настолько длинные, что не уместятся в ФС.

Уже сделал коммит, но не стал ничего никуда push-ить, потому что ещё не
знаю как обозвать репозиторий. Ведь придумывание названия дело
ответственное и сложное, так что на свежую голову надо. Изначально хотел
просто github.com/anacrolix/torrent добавить как зависимость к
отдельному Go проекту. Но раз пришлось править саму библиотеку (из-за
приватных методов), то это будет уже fork-ом.

2 years agoLemote Loongson обзор от Бачило
Sergey Matveev [Sat, 26 Nov 2022 11:36:46 +0000 (14:36 +0300)]
Lemote Loongson обзор от Бачило

https://16-bits.ru/%d0%b1%d0%b5%d0%b3%d0%bb%d1%8b%d0%b9-%d0%be%d1%81%d0%bc%d0%be%d1%82%d1%80-%d0%ba%d0%b8%d1%82%d0%b0%d0%b9%d1%86%d0%b5%d0%b2/
В этой рецензии показан Lemote ноутбук. У меня был такой же ±, только
чёрного цвета. Работал за ним несколько лет, был основным рабочим ПК.
И использовал как-раз Debian.

2 years agoNAT64/DNS64-дружелюбный BitTorrent клиент
Sergey Matveev [Fri, 25 Nov 2022 23:19:01 +0000 (02:19 +0300)]
NAT64/DNS64-дружелюбный BitTorrent клиент

Прежде об этом мыслей у меня не было, но раз теперь у меня в руках
клиент написанный на Go, с довольно простым и понятным кодом, то что мне
мешает сделать его NAT64/DNS64-aware? Ведь только BitTorrent меня и
останавливал (346e0efce2e89ae14cc328bf433d54c9520aa145) от попыток дома
сделать IPv6-only сеть. В Си-шном коде я бы это точно за разумное время
не осилил бы (желание бы пропало прежде).

2 years agoBitTorrent клиент основанный на github.com/anacrolix/torrent
Sergey Matveev [Fri, 25 Nov 2022 20:16:11 +0000 (23:16 +0300)]
BitTorrent клиент основанный на github.com/anacrolix/torrent

В прошлом после я написал о плюсах сабжевой библиотеки, но очень не
хотелось писать собственный frontend/клиент. А то, уж что я только не
переписываю под свои потребности последнее время.

Но когда я полез менять список DHT bootstrap нод, когда пошёл добавлять
возможность установки IPv6 адреса (в дополнение к IPv4), то пошло поехало
и вот я уже почти полностью cmd/torrent и переписал. Мне не нравится что
состояние скачанных кусочков хранится в одной БД на все торренты. Я хочу
по отдельности, как это было во всех прошлых клиентах. Благо, API
библиотеки позволяет написать свою piece completion реализацию. Я просто
скопировал основанную на BoltDB и сделал так, чтобы имя файла БД было с
хэшом от торрента. Сработало. Но надо конечно будет переделать на
хранение просто bitfield структуры.

Проверка всего этого, просмотр вообще всех issue проекта, показал что в
целом он вроде бы действительно очень и очень хорошо и эффективно со
всем справляется. Уже часть торрентов поставил seeder-оваться через
него. Работает реально лучше чем aria2. И это речь и про IPv6 и про DHT.
Вот только нет никакой возможности понять в каком состоянии находится
торрент: проверяется ли он с диска или нет. Судя по всему, библиотека
так просто устроена, что она просто говорит качать нужные кусочки, а
дальше уже, напротив piece completion БД, проверяется готовы ли они или
нет. Можно подписаться на события происходящие с кусочками, но если файл
уже полностью был проверен, то они вообще не возникают и можно только
косвенно понять что файл полностью скачан. Если просто добавить все
торренты для seed-а, то они честно в параллельных горутинах начинают
проверяться и сразу же параллельно раздаваться. Это конечно происходит
один раз, до создания piece completion БД, но делается полностью не
последовательно и поэтому медленно -- мои диски трещали не один час
из-за этого.

Как быть с frontend-ом для этого? Делать свой RPC и через него общаться?
К чёрту. Просто сделал FIFO файл, по аналогии с suckless проектами и по
аналогии как я делал в tofuproxy (432f7635faed298751cef04f0102deee68ea942f).
"cat list" буквально просто выдаст вывод аналогичный тому что был в
godiana (0c40b3f99ee554b301bd40b1b4d4c6390c746834) -- я прям copy-paste
кода оттуда сделал, раз всё равно ж написано. Пока это единственный FIFO
сейчас имеющийся.

Думаю что через FIFO буду и добавлять torrent-ы, так как сейчас любое
изменение требует перезапуска программы. Типа запускаем демон, а дальше
просто "cat torrent-list > fifos/add". И через FIFO (уже отработано в
tofuproxy) удалять их. Точно не уверен, но API вроде бы позволяет и
ставить на паузу их. И аналогично можно будет показывать информацию о
peer-ах и скачанных файлов.

По сути, вроде бы все мои хотелки с точки зрения useability будут
удовлетворены. Кроме одного: не нашёл возможности сохранять состояние
DHT. Но особо тут проблем и не вижу никаких. Не даром же я bootstrap
ноду то поднимал. И API не позволяет задавать целевую директорию
per-torrent. Но я код storage уже облазил и это не сложно будет
добавить, хотя и саму библиотеку придётся менять для этого.

Вот теперь я начинаю не любить Go. Был бы любой другой язык, то я долго
бы возился с добавлением одного только DHT/IPv6 адреса и даже мысли бы
не возникло переписать это всё с нуля для своих useability хотелок. А
тут затягивает и не можешь остановиться. Пока ещё никуда наработки не
выложил, так как надо бы закончить всю тему с FIFO и причесать перед
коммитом.