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 экстремальной музыкой.
Sergey Matveev [Thu, 29 Dec 2022 13:17:51 +0000 (16:17 +0300)]
Лекции про прикладную криптографию, IPv6, IPsec
Вчера целый день читал лекции на эти темы. Понять что-то про IPsec без
основ прикладной криптографии не выйдет. Понять его без IP протокола, а
на сегодняшний день актуальным является IPv6, тоже не выйдет.
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 от МакКузика. Очень интересно его слушать,
особенно когда простые жизненные истории упоминаются, а не сухие факты.
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.
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 многим людям заходит :-)
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.
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 и его продуманностью.
Sergey Matveev [Fri, 23 Dec 2022 05:25:51 +0000 (08:25 +0300)]
Гори ИТ синим пламенем
https://habr.com/ru/post/707230/
Думал что это будет очередная статья от какого-нибудь плаксивого ламера.
Но автор описывает реально всё безумие и недопустимый ужас который очень
не редко творится в модных молодёжных и неподдерживаемых программных
проектах. Как например всё засунуть в YAML (и действительно держать типа
целого отдела для его поддержки) или как зеницу ока хранить конфиги с
которыми можно запуститься.
Sergey Matveev [Thu, 22 Dec 2022 12:39:15 +0000 (15:39 +0300)]
Всякие независимые от корпораций online-сервисы
https://habr.com/ru/company/sp/blog/702592/
Рассказы от разных администраторов как они пришли к тому чтобы поднимать
различные децентрализованные сервисы для кооперации и общения. Интересно
проглядеть эти истории. Но куча указанных сервисов наотрез отказывается
работать без JavaScript.
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 он сохраняет
текст во временный файл, запускает внешний редактор, обновляет буфер. И
почти всё время уходит на поиск места куда это надо вставить и
вспомогательных функций.
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.
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-ами.
Sergey Matveev [Sun, 18 Dec 2022 17:15:47 +0000 (20:15 +0300)]
Маршрутки в такую погоду в Королёве
Настолько всё замело и под снегом корка льда, что водитель маршрутки при
входе говорил чтобы все сразу садились в самый самый конец. Иначе вообще
сцепление с дорогой цеплял и не мог сдвинуться с места.
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)?
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 пошёл в
квартиру.
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 операциям.
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.
Sergey Matveev [Wed, 14 Dec 2022 23:02:09 +0000 (02:02 +0300)]
Игрушечный заяц на работе
На работе подарили небольшую мягкую игрушку зайца. Произведён компанией
из Королёва. У нас и двигатели для космических кораблей, и космические
аппараты, и крылатые ракеты производят, и... зайцев.
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 -- ничего не могу сказать. Не понимаю я тут ничего. Ну просто
неплохой метальчик играют, но меня ничто не восхищало в их игре.
Наверное потому что не гитарист, слуха нет, просто обыватель я. Вот
например Мальком Янг, которого первым упомянули в статье: вот это мне
ясно что он тоже дико крут.
Sergey Matveev [Tue, 13 Dec 2022 08:56:42 +0000 (11:56 +0300)]
cpuc
https://github.com/rilysh/cpuc
Простая утилита из одного исходного файла на Си, которая просто
показывает поддерживаемые расширения команд x86 красивым списком.
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.
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 (?) сетями.
Sergey Matveev [Sat, 10 Dec 2022 22:14:12 +0000 (01:14 +0300)]
Познакомился с Eyehategod
https://www.youtube.com/watch?v=6vtFbBF3Dy4
Пишут что вот это просто sludge стиль музыки. И в этом году всё больше и
больше подобного слушаю и даже на концерты хожу. Вот в этом альбоме уже
чётко понимаю что вот это наверное и есть настоящий sludge. Начинаю
видеть разницу между stoner. Мне такое нравится.
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, просто,
мол, используйте наши бинарники.
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 это наверное самая обратно-несовместимо-изменяемая
программка из всех используемых. Именно в ней чаще всего, пускай по
мелочам, но так или иначе меняется поведение с каждым минорным обновлением.
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.
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/
Перевод хорошей статьи о времени.
Одно вот только взбесило прям: на одной карте указана легенда к цветам,
среди которой есть цвет "фуксия". Уроды, я даже примерно не знаю что это
за цвет, даже примерно к какой части спектра он относится. Нельзя просто
написать было "красный"? Аналогично в общем-то и про "персиковый" цвет
можно тоже сказать.
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 подобного не ожидал. Думал
что в них то уж всё тип-топ должно было бы быть.
Sergey Matveev [Sun, 4 Dec 2022 10:16:38 +0000 (13:16 +0300)]
Клубы в бары
Заметил по афишам, что за последние пару лет ряд клубов переименован в
"бары". Не клуб Город, а бар Город уже, например. Так что теперь я стал
ходить не по клубам, а по барам. И не скажешь ведь людям это прямо: ведь
и про клубы первой ассоциацией что-то нелицеприятное будет приходить.
Sergey Matveev [Sun, 4 Dec 2022 10:13:45 +0000 (13:13 +0300)]
Куча кача
В прошлом посте написал это словосочетание. Нравится мне как звучит и
как пишется. Надо застолбить для название какой-нибудь goregrind группы.
А ещё я как-то во время поездки в машине по Ярославскому шоссе увидел
объявление об аренде "ямобура". С тех пор не могу забыть это слово. И
нравится как звучит и оно прям брутальное такое, тоже для грайндкора
какого-нибудь подходит.
Sergey Matveev [Sun, 4 Dec 2022 10:10:28 +0000 (13:10 +0300)]
Fallout Olympus
https://youtu.be/EE6Ct39bYUc
Скинули мне тут ссылку на рецензию русскоязычного мода на движке Fallout.
Получаю невероятное удовольствие от подобной графики. И не от ностальгии:
тут всё же почти всё перерисовано, просто в Fallout-овском стиле. Фетиш
прям от всего этого.
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? На этом концерте всё же
довольно лёгкая музыка была, просто качовая с сочным плотным звуком.
Sergey Matveev [Fri, 2 Dec 2022 13:44:04 +0000 (16:44 +0300)]
Вкусно и точка, МакДональдс, шаурма
https://lenta.ru/news/2022/12/02/makvernis/
Я слышал что вместо МакДака у нас стала "Вкусно и точка". Видел рекламу.
Но я что в первом бывал наверное даже не каждый год, а во "ВиТ" ни разу.
Редко я просто куда выбираюсь где нужно поискать какой-то общепит.
Где-то 1-2 раза за пару недель я захожу в пирожочную недалеко от работы,
чисто чтобы разнообразить готовые лотки с едой от Перекрёстка и Милти.
Но тут один раз двери в ней оказались закрыты. Возможно буквально на
минуту, но никакого указания времени не было. Рядом есть уголок с шаурмой.
Взял попробовать. Последний раз я шаурму уже не помню сколько лет назад ел.
И уже в четвёртый раз я там её беру, подсадив ещё пару коллег. Все мы
сошлись на том, что это похоже самая вкусная шаурма которую кто-либо из
нас ел. Ничего особого, точно такие же ингредиенты, но видимо банально
качественные, в нужных пропорциях и должным образом прожаренные. Сегодня
шаурмисту сказал что я такой вкусной не ел прежде.
А со времён института знаю правило: ешь там, где ест милиция. И так уж
совпало, но шаурму эту я взял как-раз когда пара полицейских тоже её ели.
Sergey Matveev [Fri, 2 Dec 2022 13:31:36 +0000 (16:31 +0300)]
ИТшники в РФ
https://lenta.ru/news/2022/12/02/itmigration/
Действительно, СВО (ну, видимо, как и любой вызов стране) показала
какими на самом деле оказываются проститутками многие программисты,
ну и вообще все кто причастен к ИТ. Впрочем, я и прежде знал что
среди них много всяких там либералов и прочих уродов. Удручает конечно
что и я с ними связан был многие годы (с теми кто сбежал, предал,
изменил, струсил, и т.д.), но зато делаются приятные и порой неожиданные
открытия о других людях (и среди них ИТшники попадаются :-)).
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-ы, зная
насколько они занимаются произволом.
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
Чертовски красивы многие фотографии из космоса. С детства обожал их
рассматривать в энциклопедиях по астрономии.
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. Я тоже
как-то смотрел в сторону этих технологий чисто ради интереса,
для интеграции в движок своего блога. Больше к этой теме не
притрагиваюсь после поисков.
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
с достаточно мощным видеоаккселератором для него, и ко всяким квестам.
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 файлы при этом.
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-а.
Да и в первый раз я увидел шоу Спрингера. Хотя по сути то и так в курсе
о чём оно, ибо в Симпсонах сколько его показывало.
Sergey Matveev [Wed, 30 Nov 2022 18:35:57 +0000 (21:35 +0300)]
Стабильность btrtrc
Получил тут спустя десятки часов работы панику во время попытки
шифрования RC4: мол обращение по нулевому адресу идёт. Где-то наверное
race или что-то подобное. Даже выяснять не хочу: проще перезапускать
демона, ибо раз в несколько суток абсолютно терпимо это делать.
Треды кстати всё же растут (80defeaa4b493f6d954d0895fdf8fc89409ac875),
но очень неспешно. Нужна не одна неделя в самом прискорбном случае чтобы
можно было снова выйти за пределы ОС по-умолчанию. Но с моими
оптимизациями по хранению открытых файловых дескрипторов я точно знаю
что возможна ситуация когда к одному файлу конкурентно могут обратиться.
Без этой оптимизации, когда просто все обращения выстраиваются строго
линейно -- роста не видел (ну или он пренебрежительно малый). Проблему в
любом случае считаю решённой.
http://www.caed.cypherpunks.ru/
https://www.rfc-editor.org/rfc/rfc8410
Сегодня вспомнил про существование X.509 сертификатов с ed25519 (и
ed448) ключами. И задался вопросом: а почему, собственно, я их не
использую у себя? Понимаю что оно только в относительно довольно новых
библиотеках только поддерживается, но всякие криптографические и так
стоит держать обновлёнными. Во всяких GnuTLS, OpenSSL, NSS и BoringSSL
всё имеется. В итоге сделал ещё один CA себе, основанный полностью на ed25519. Ну и сертификаты все перевыпустил.
Sergey Matveev [Wed, 30 Nov 2022 14:19:42 +0000 (17:19 +0300)]
Памятник Туполеву
https://lenta.ru/news/2022/11/30/tupolev_pamiatnik/
Пишут, что в Москве это первый памятник авиаконструктору. С ходу,
действительно других не вспоминаю чтобы слышал. На космическую то
тему не мало есть.
Sergey Matveev [Wed, 30 Nov 2022 09:34:04 +0000 (12:34 +0300)]
Кто контролирует DNS?
https://netmeister.org/blog/nsauth-diversity.html
Всякая статистика и исследования кто отвечает за корневые серверы, да и
вообще в целом домены. Всё довольно сильно централизовано и, конечно же,
в руках США, в особенности Verisign.
Sergey Matveev [Wed, 30 Nov 2022 07:46:25 +0000 (10:46 +0300)]
GoCheese в портах FreeBSD
https://www.freshports.org/devel/gocheese/
Оказывается, GoCheese есть в портах.
Недавно выпустил новую версию: с последними версиями PIP он не работал.
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,
названия которых и не слышал прежде.
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.
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, то они пропадут.
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". Можно
произносить как "бэ-тр-тр-ц!", то бишь, потрахтеть трактором и закончить
звуком от удара по тарелке барабанной установки.
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 (что я уже и сделал чтобы
продолжало работать) или ограничивать количество соединений.
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 гитарами.
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-ом.
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.
Sergey Matveev [Fri, 25 Nov 2022 23:19:01 +0000 (02:19 +0300)]
NAT64/DNS64-дружелюбный BitTorrent клиент
Прежде об этом мыслей у меня не было, но раз теперь у меня в руках
клиент написанный на Go, с довольно простым и понятным кодом, то что мне
мешает сделать его NAT64/DNS64-aware? Ведь только BitTorrent меня и
останавливал (346e0efce2e89ae14cc328bf433d54c9520aa145) от попыток дома
сделать IPv6-only сеть. В Си-шном коде я бы это точно за разумное время
не осилил бы (желание бы пропало прежде).
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 и причесать перед
коммитом.
Sergey Matveev [Fri, 25 Nov 2022 12:33:42 +0000 (15:33 +0300)]
github.com/anacrolix/torrent/cmd/torrent
https://github.com/anacrolix/torrent
Решил посмотреть какие вообще ещё варианты для BitTorrent-а то бывают.
Сразу отметаются конечно же все кто GUI, а также кто использует JS-based
WebUI. Transmission я уже не раз зарекался даже пытаться пользоваться.
Уже не помню конкретику, но блог говорит о его ресурсоёмкости чудовищной
(3ccff5a1e1f61e103b92dde4fc2e01c4affb9268, 59862ce0e889b45d6872ba974d906312bfbf0a01).
rTorrent идёт нафиг из-за hardcode-а максимального размера файлов -- я
помню что не мог скачать некоторые из-за этого
(3ccff5a1e1f61e103b92dde4fc2e01c4affb9268).
aria2... не без проблем (35f498b93a95b1d620889197042db8a941aa0428),
хотя использую её уже не один год (59862ce0e889b45d6872ba974d906312bfbf0a01).
И мне уже хочется обязательно иметь DHT, PEX и полную поддержку IPv6 (и
при общении с трэкером и с DHT). Часть клиентов из-за этого отметена.
Например изначально я использовал ctorrent -- он работал, без проблем,
но даже UDP трэкеров не поддерживал, а только чистый оригинальный
классический BitTorrent протокол.
В итоге нашёл я только anacrolix-овскую реализацию на Go. Причём в ней
явно сказано что она является библиотекой, а всякие cmd/* в ней только
для примера использования. Готовых и устраивающих меня клиентов нет. Но
cmd/torrent из её состава уже сейчас годится и для скачивания и для
seeding-а вполне. Есть у меня тут один проблемный торрент, единственного
peer-а которого aria2 банит -- тут работает без проблем. В SQLite3 или
BoltDB хранит состояние скачанных кусочков. Параллельно может и качать
при проверке целостности торрента. Кроме всех фич, даже uTP поддерживает.
Пока правда полное отсутствие frontend-а к нему, кроме просто печати раз
в несколько секунд прогресса скачивания. Эх... неужели снова, вновь и
опять придётся писать самостоятельно это всё? Если для aria2 хотя бы
просто надо переиспользовать её RPC (0c40b3f99ee554b301bd40b1b4d4c6390c746834),
то тут уже все хотелки самостоятельно придётся добавлять. Благо это всё
на Go и за десять секунд я нашёл например где задаётся список DHT
bootstrap нод.
Sergey Matveev [Fri, 25 Nov 2022 10:44:07 +0000 (13:44 +0300)]
aria2 как BitTorrent клиент далеко не идеален
Например он любит "банить" (если включить debug вывод, то сообщение о
том, что такой то peer is banned) по какой-то причине peer-ов и больше к
ним не возвращаться. Если у torrent-а единственный seeder, которого
клиент забанил, то ничего качаться не будет, пока не перезапустишь aria2.
Есть у меня домашний aria2, который запущен за NAT-ом (но с пробросом
портов) на втором сервере. Но он обращается к трэкеру расположенному на
первом сервере. При этом трэкер "запоминает" его 192.168/16 адрес, что
делает это знание бесполезным. Подключаюсь я к этому торренту с внешнего
адреса, таким же aria2, но за NAT-ом. Клиент получает только 192.168
адрес и ничего не качает. Если включить DHT, то рано или поздно они друг
о друге узнают, но... по неведомой причине (debug вывод не поясняет)
один aria2 банит другого. Причём есть и попытка подсоединения как со
стороны одного, так и со стороны другого. В итоге торрент вообще не
выходит скачать. С IPv6 проблем никаких при этом.
У aria2 постоянно переполненная очередь ожидающих TCP соединений. То
есть, они поступают быстрее чем он успевает делать accept. И если
снаружи я просто netcat-ом пытаюсь подключиться к нему, то меня пошлют с
высокой долей вероятности.
Ещё он не поддерживает uTP протокол. Вроде бы не проблема, но где-то
видел что многие uTorrent клиенты хотят общаться только по нему и бывают
uTP-only раздачи вообще.
Sergey Matveev [Fri, 25 Nov 2022 09:54:59 +0000 (12:54 +0300)]
.meta4 файлы на замену .sha512.txt
На своих web-серверах я держу всякие дистрибутивы и другие крупные
файлы. Рядом с ними хранил текстовые файлы с SHA512 хэшами, ну чтобы
на всякий случай можно было точно проверить всё ли хорошо скачалось.
И только недавно дошло что нет в них смысла, когда есть Metalink
(542f9611780a28a67ebd52210bbdcb9845c2890c) формат, в котором все эти
контрольные суммы уже имеются. Плюс мой godlighty
(bc087ee7e3be4177e83bc39ae3b1497e336ec5da) умеет находить .meta4 файлы
рядом с запрашиваемыми и вставлять в HTTP заголовки значения этих хэшей,
а также ссылку на .meta4. Плюс aria2/wget2 могут скачать файл и сразу же
автоматом проверить хэш. Плюс у меня уже есть написанные утилиты для
создания .meta4 файлов (http://www.git.stargrave.org/?p=meta4ra.git;a=summary).
А если никакого дополнительного софта у конечного пользователя нет, то,
так как это короткие XML-ки, тривиально или скопировать руками или
выпарсить утилитами значения хэшей.
Обнаружил что godlighty не выдаёт всю эту информацию если используется
HEAD метод, а не GET. Надо будет поправить.
Sergey Matveev [Thu, 24 Nov 2022 21:36:26 +0000 (00:36 +0300)]
Музей ретрокомпьютеров Дмитрия Бачило
https://16-bits.ru/%d0%bd%d0%b0%d1%87%d0%b8%d0%bd%d0%b0%d1%8e-%d0%b2%d0%b8%d0%b4%d0%b5%d0%be%d0%bb%d0%be%d0%b3-%d0%bf%d1%80%d0%be-%d1%81%d1%82%d1%80%d0%be%d0%b8%d1%82%d0%b5%d0%bb%d1%8c%d1%81%d1%82%d0%b2%d0%be-%d0%bc/
Буду ждать успеха этого проекта! Будет повод съездить в этот далёкий
город, где была первая в СССР FidoNet нода к тому же.
Sergey Matveev [Thu, 24 Nov 2022 19:21:15 +0000 (22:21 +0300)]
Гибридное шифрование, KEM/DEM, signcryption...
https://neilmadden.blog/2021/01/22/hybrid-encryption-and-the-kem-dem-paradigm/
https://neilmadden.blog/2018/11/14/public-key-authenticated-encryption-and-why-you-want-it-part-i/
https://neilmadden.blog/2018/11/26/public-key-authenticated-encryption-and-why-you-want-it-part-ii/
https://neilmadden.blog/2018/12/14/public-key-authenticated-encryption-and-why-you-want-it-part-iii/
Понятные интересные статьи объясняющие как устроены все эти
криптографические штуки для согласования ключей. Почему их
так много, какие сложности при этом возникают.
Sergey Matveev [Thu, 24 Nov 2022 18:50:03 +0000 (21:50 +0300)]
Посмотрел "Добро пожаловать в Зомбилэнд"
https://ru.wikipedia.org/wiki/%D0%97%D0%BE%D0%BC%D0%B1%D0%B8%D0%BB%D1%8D%D0%BD%D0%B4
Вообще мне тема всех этих зомби до лампочки, никогда не привлекала и
считал (да и считаю) это бредовой фигнёй. Но если тема зомби бы была
как в "Зомби по имени Шон" (0f456f8e5252351ca8e4028cebebdf4c4605e9ba),
то я бы был яростным поклонником всего этого. Решил тут дать шанс и
Зомбилэнду. Забавных моментов не мало действительно. Билл Мюррей, хоть и
краткосрочно появился в фильме, но заставил смеяться даже с грудиной
прострелянной. Это конечно не та весовая категория как у Шона, но
посмотреть разок можно.
Sergey Matveev [Wed, 23 Nov 2022 21:19:16 +0000 (00:19 +0300)]
Отказался от IPsec между домом и VPS
Раз всё равно я поднял WireGuard между ними
(5cb0d1facad355fc9192f34c048141680e30185e), как туннель для IPv6
трафика, то какой смысл в IPsec, который будет идти внутри этого
туннеля? Использовать IPsec для IPv4 я зарёкся -- гиблое дело.
Мне нравилось в IPsec то, что в нём я мог задавать security policy,
запрещающие общаться например DNS master↔slave без защищённой связи.
Теперь это заменил правилом firewall-а, который просто запрещает этот
трафик не по VPN каналу (если или он, или BGP лежат, то трафик пойдёт
честно через маршрутизацию обычную). Поднятие WireGuard-а в daemontools
делается на раз два.
Sergey Matveev [Wed, 23 Nov 2022 21:10:24 +0000 (00:10 +0300)]
Мои серверы не шибко дружат с UEFI
Сегодня перевёз систему со старых дисков на новые. Просто добавляя их к
зеркалу, ожидая конца resilvering, делая detach старых. Но изменил GPT
разбивку диска. На прошлых, кроме разделов для ZFS и swap, был ещё 800KB
для загрузчика FreeBSD. Серверы наверняка придётся менять до смерти
дисков, а на новом железе не UEFI загрузка уже запросто может и не
работать. Сделал EFI раздел с загрузчиком.
Но сервер отказался с него грузится. Хоть в BIOS и выставлены все
галочки для UEFI, но не грузится с них, даже не предлагает в меню.
Ладно, не беда -- удаляю раздел, создаю freebsd-boot на эти 800KB,
пихаю старый загрузчик. Раз всё равно место зарезервированное
осталось для EFI раздела, то на новой системе нужно просто пару команд
gpart выполнить чтобы превратить систему в UEFI compatible.
Насколько же всё это просто под FreeBSD делается и без какой-либо боязни
что сейчас что-то запросто пойдёт не так. Воспоминания о GRUB из
GNU/Linux мира только и только крайне негативные и неприятные.
Sergey Matveev [Mon, 21 Nov 2022 18:23:48 +0000 (21:23 +0300)]
Обожаю рассказы про Хогбенов
https://ru.wikipedia.org/wiki/%D0%A5%D0%BE%D0%B3%D0%B1%D0%B5%D0%BD%D1%8B
https://ru.wikipedia.org/wiki/%D0%AE%D0%BC%D0%BE%D1%80%D0%B8%D1%81%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D1%84%D0%B0%D0%BD%D1%82%D0%B0%D1%81%D1%82%D0%B8%D0%BA%D0%B0
Ещё до начала блога, я был знаком с серией рассказов Генри Каттнера про
Хогбенов. С тех пор, Каттнер является для меня неотъемлемым автором
юмористической фантастике наравне с Гаррисоном, Шекли, и другими. Даже
просто читать описания членов семейства Хогбенов уже забавно.
Sergey Matveev [Mon, 21 Nov 2022 18:14:54 +0000 (21:14 +0300)]
Ошибка которую совершают многие с ZFS
Сколько лет пользуюсь ZFS, но всё равно умудрился обосраться, забыв
указать "mirror" при создании нового pool. В итоге, вместо зеркала,
получаю обычный, в два раза менее надёжный, stripe. И ведь это уже
не в первый раз. Главное обнаружить это до того, как на дисках
размещено что-то важное.
Sergey Matveev [Mon, 21 Nov 2022 14:23:14 +0000 (17:23 +0300)]
PTP протокол синхронизации времени в Facebook
https://engineering.fb.com/2022/11/21/production-engineering/future-computing-ptp/
https://engineering.fb.com/2022/11/21/production-engineering/precision-time-protocol-at-meta/
Как всегда (657ba65018717773b3a7e4cfb3f11332db5f81dd), статьи про
синхронизацию часов от Facebook-а очень интересны!
Sergey Matveev [Mon, 21 Nov 2022 12:43:45 +0000 (15:43 +0300)]
Книга по IPv6
https://github.com/becarpenter/book6
Ещё не закончена, в процессе написания, исходный код доступен. Не мало
интересных RFC из неё углядел. Там же обнаружился интересный факт: КНР
сеть довольно закрыта от посторонних глаз, поэтому точную статистику по
кол-ву пользователей IPv6 сложно было дать. Сам КНР говорит о 713M
пользователей, в противовес 220 по данным APNIC. А это почти 44%
пользователей *всего* Интернета уже на IPv6 сидят.
Sergey Matveev [Mon, 21 Nov 2022 12:15:52 +0000 (15:15 +0300)]
Познал про iBGP vs eBGP
https://en.wikipedia.org/wiki/IBGP#Operation
После поднятия WG+BGP на VPS, обнаружил что мой компьютер не может
больше ходить до VPS-ки. Точнее она не может до него дойти, отсылая
ответные пакеты не через туннель. Не смотря на то, что мой домашний
сервер знает все маршруты, он не отправляет их в VPS, и она не знает
что моя рабочая машина доступна тоже через этот туннель. А все BGP
демоны я добавил в одну AS, заставив их работать в interior BGP режиме.
На VPS поменял AS (использую private пространство), это стало eBGP,
маршруты стали просасываться, всё заработало.
Sergey Matveev [Mon, 21 Nov 2022 11:17:12 +0000 (14:17 +0300)]
Наконец-то поигрался с NDP proxy
http://fenyo.net/newweb/ndproxy.html
Несколько дней назад мой туннельный брокер (https://ipv6.ip4market.ru/)
не работал почти весь день. В принципе то они могут и отключиться когда
заблагорассудится, ведь всё бесплатно, никаких обязательств. Посмотрел
было какие ещё есть варианты на всякий пожарный. В течении пары часов
так ничего и не нашёл.
Туннельных брокеров в РФ (да как и в целом в мире) больше нету. Найти
VPS/VDS, которая могла бы выдавать /56 или /48 -- попробуй ещё найти.
Какие-то нашёл, список уже потерял, но в некоторых из них явно сказано
что проксировать трафик запрещено. На одной VPS хотел было попробовать
тестовый период, хотел зарегистрироваться по email, и он упорно говорит
что "stargrave@stargrave.org" не является валидным email-ом. Такой VPS
конечно идёт нафиг.
Многие выдают /64. Но понять как именно они эту сеть делегируют: повезёт
если хоть какие-то намёки будут в документации. Где-то явно
маршрутизируется через единственный адрес на моей стороне. А раз
маршрутизируется, то значит я по VPN-у могу прокинуть эту сеть домой и
переиспользовать это же адресное пространство. Неудобно конечно
находится в одном /64 блоке, но хоть что-то. Но до проверки дело не дошло.
На моей же VPS маршрутизации явной нету, а просто виртуальный сетевой
интерфейс считается /64. Поэтому если по NDP никто не будет отвечать, то
и пакетов, которые затем как-то отмаршрутизировать/отпроксировать можно
бы было, никто слать не будет. Нужен NDP прокси для этого. В кой да веки
я дошёл до этой штуки, понимая зачем она. WireGuard туннель, по BGP
узнаёт какие адреса доступны со стороны домашнего сервера, ndproxy
отвечает на NDP и... всё работает! Ну точнее я проверил только с
единственным адресом, просто как proof-of-concept, но внешним сайтом для
ping-ов, а также tcpdump-ом, убедился что всё ходит как надо.
Sergey Matveev [Mon, 21 Nov 2022 10:43:11 +0000 (13:43 +0300)]
BGP и WireGuard на VPS
Мой домашний сервер общается с VPS время от времени. Для отправки почты,
для синхронизации DNS и прочей всячине. И делает многое из этого
исключительно по IPv6, который у меня идёт через туннельного брокера.
Если поднять WireGuard по IPv4, а между ними BGP, то автоматом прозрачно
все маршруты пойдут через этот туннель, что в моём случае более короткий
маршрут. Приятно что типа ничего делать не надо, кроме как демона
маршрутизации поднять с copy-paste конфигом.
Sergey Matveev [Mon, 21 Nov 2022 08:16:58 +0000 (11:16 +0300)]
Leap second отменяется с 2035-го года
https://www.opennet.ru/opennews/art.shtml?num=58159
Только только я узнал про TAI, TAI64 формат, забацал БД этих високосных
секунд для работы в Go (http://www.git.stargrave.org/?p=leapsecs.git;a=tree),
как их уже решили и вовсе отменить.
Sergey Matveev [Sat, 19 Nov 2022 21:06:29 +0000 (00:06 +0300)]
Переводы Кураж-Бамбей
https://xn--80aacbuczbw9a6a.xn--p1ai/
Увидел тут "Убойные каникулы" в переводе и озвучке Кураж-Бомбея. Люто
понравилась их деревенская речь. Как и сам перевод (лексикон), так и
озвучка. Прежде слышал их в "Теории большого взрыва"
(4461fc237445990ecec250c075649b15fbda382a). Очень здоровски сделано.
Sergey Matveev [Fri, 18 Nov 2022 19:03:09 +0000 (22:03 +0300)]
Call From Grave
https://www.youtube.com/watch?v=i3h5ou0A508
https://www.youtube.com/watch?v=W5SzJgtCCH4
Одна и та же песня в исполнении Bathory
(671b65fb766cd69cfae5b84b90110e4d6043aedd) и Dæmonarch
(7f3e6f74b18b7193c13f2b50ce2b8ff66bff4caa). Приятно при
знакомстве с первыми было услышать этот трэк, с которым
хорошо знаком по второй группе, диск которой ещё в школе
появился.
Sergey Matveev [Fri, 18 Nov 2022 18:54:09 +0000 (21:54 +0300)]
Мнение про Blood
https://www.youtube.com/watch?v=B8Ju5gG3rgQ
Небольшое видео с мнением про игрушку (0a60b951f1ae358841b0891e5bf8416e0b525672)
Blood, с массой показанного gameplay. Действительно одна из самых офигенных FPS!
Sergey Matveev [Thu, 17 Nov 2022 21:18:30 +0000 (00:18 +0300)]
Вам не нужен HTML
https://no-ht.ml/
https://whitep4nth3r.com/blog/html-is-all-you-need-to-make-a-website/
Сайт-ответ на "HTML это всё что вам нужно". По сути то просто показаны
возможности Unicode, где далеко не всё у меня ни в броузере, не терминале
не отразилось. Но выглядит приятно безусловно.
https://fantlab.ru/work81626
https://en.wikipedia.org/wiki/The_Rediscovery_of_Man
В целом понравился сборник. Конечно далеко не все рассказы оттуда,
но основная тема вполне себе зашла. Особо больше ничего не могу
добавить, так как это просто приключения и рассказы.
Sergey Matveev [Wed, 16 Nov 2022 10:12:36 +0000 (13:12 +0300)]
Заказал пару 20TB HDD
Наверное можно в другом магазине и сегодня было получить, но мне не к
спеху, зато знаю что проблем с НИКСом не будет. А то в основном сервере
у меня "loaded hours" на 3TB дисках уже составляет шесть лет. А во
втором сервере один из 2TB дисков аж восемь лет (другой только четыре).
Как быстро время то летит! Не помешает, действительно, как рекомендовал
знакомый, превентивно уже начать поменять.
Sergey Matveev [Wed, 16 Nov 2022 09:55:15 +0000 (12:55 +0300)]
"Цвет из иных миров" Лавкрафта
https://ru.wikipedia.org/wiki/%D0%A6%D0%B2%D0%B5%D1%82_%D0%B8%D0%B7_%D0%B8%D0%BD%D1%8B%D1%85_%D0%BC%D0%B8%D1%80%D0%BE%D0%B2
Сегодня попался в Puffin Cafe (c2ca5b3c80288aaa1a12d1a6d6ff3e2600657c0d)
этот рассказ, который уже совсем недавно слышал в другой серии книг
(81b54ddca2c8b87000e557252080c6be628f2eeb). Но с удовольствием снова
"перечитал". И мне кажется это прям такая эталонная и каноничная чисто
Лавкрафтовская история, без мистики. Оказалось, как говорит Wikipedia,
сам Говард считал её лучшим своим творением. Понятно почему и мне
действительно тоже так понравилась. Если она не понравится кому-то, то
значит наверняка и весь Лавкрафт.
Лавкрафт выразил несколько важных для него соображений:
* присутствие инопланетян остается тайной не только для героев, но и
для читателя. Ни мотивы, ни цели, ни прошлое инопланетян не
раскрываются. Остается даже неясно, разумны ли они
* невозможность уйти от судьбы
* угроза для человечества. Иллюстрирует полное бессилие человека
перед загадочным явлением
* ничтожность человеческих знаний о Вселенной
Sergey Matveev [Mon, 14 Nov 2022 17:17:41 +0000 (20:17 +0300)]
Разделить аудиокнигу на части
Скачал я тут аудиокниги. Одна книга -- один файл. Но, благо, с
метаинформацией о частях (к сожалению в MP4 контейнере, а не Matroska).
Надо разделить на много файлов, так как ни на одном своём
MP3-проигрывателе нельзя быстро отмотать, например, на час вперёд.
FFmpeg-овская утилита ffprobe может выдать метаинформацию в JSON
формате. А дальше в цикле вызываю ffmpeg для создания набора WAV файлов.
Предварительно полность. декомпрессировав весь звук, потому что каждый
вызов ffmpeg с "перемоткой" вперёд -- отъедает кучу CPU, это медленно.
Sergey Matveev [Mon, 14 Nov 2022 12:43:16 +0000 (15:43 +0300)]
godlighty на FreeBSD 11
Обнаружилось тут, что web-сервер на моей VPS отвечает "internal error"-ом.
В журнале есть только "function not implemented". Оказалось, что всё
падает на невозможности выполнить golang.org/x/sys/unix.Fstat вызов. В
июле этого года, как-раз этот файл перегенерировали и явно в log message
написали о прекращении поддержки 11-ой ветки FreeBSD. Решить это пока
можно просто явно указав более старую версию этой зависимости в go.mod:
Sergey Matveev [Mon, 14 Nov 2022 07:05:23 +0000 (10:05 +0300)]
rfork как замена thread-ам
https://www.unix.com/man-page/freebsd/2/rfork/
https://en.wikipedia.org/wiki/Fork_(system_call)#Rfork
https://plan9.io/magic/man2html/2/fork
В B системахSD есть rfork() вызов, изобретённый ещё в Plan 9. Один вызов
для создания или отдельного fork()-like процесса или для thread-ов.
Sergey Matveev [Mon, 14 Nov 2022 06:49:50 +0000 (09:49 +0300)]
Роб Пайк об истории появления Go: less is more
https://commandcenter.blogspot.com/2012/06/less-is-exponentially-more.html
Какие упрощения были сделаны относительно C/C++ того времени?
* regular syntax (don't need a symbol table to parse)
* garbage collection (only)
* no header files
* explicit dependencies
* no circular dependencies
* constants are just numbers
* int and int32 are distinct types
* letter case sets visibility
* methods for any type (no classes)
* no subtype inheritance (no subclasses)
* package-level initialization and well-defined order of initialization
* files compiled together in a package
* package-level globals presented in any order
* no arithmetic conversions (constants help)
* interfaces are implicit (no "implements" declaration)
* embedding (no promotion to superclass)
* methods are declared as functions (no special location)
* methods are just functions
* interfaces are just methods (no data)
* methods match by name only (not by type)
* no constructors or destructors
* postincrement and postdecrement are statements, not expressions
* no preincrement or predecrement
* assignment is not an expression
* evaluation order defined in assignment, function call (no "sequence point")
* no pointer arithmetic
* memory is always zeroed
* legal to take address of local variable
* no "this" in methods
* segmented stacks
* no const or other type annotations
* no templates
* no exceptions
* builtin string, slice, map
* array bounds checking
We also added some things that were not in C or C++, like slices and
maps, composite literals, expressions at the top level of the file
(which is a huge thing that mostly goes unremarked), reflection,
garbage collection, and so on. Concurrency, too, naturally.
Ну и заканчивает это всё очень правильными высказываниям
Python and Ruby programmers come to Go because they don't have to
surrender much expressiveness, but gain performance and get to play
with concurrency.
C++ programmers don't come to Go because they have fought hard to
gain exquisite control of their programming domain, and don't want
to surrender any of it. To them, software isn't just about getting
the job done, it's about doing it a certain way.
The issue, then, is that Go's success would contradict their world view.
And we should have realized that from the beginning. People who are
excited about C++11's new features are not going to care about a
language that has so much less. Even if, in the end, it offers so
much more.
Sergey Matveev [Sun, 13 Nov 2022 12:24:04 +0000 (15:24 +0300)]
Лишние keep-state в правилах ipfw
Я никогда точно не понимал как именно обрабатываются правила в ipfw.
Всегда было ощущение недопонимания и неясности. Но это особо не мешало
всё равно выполнять им задачи на практике. Но когда есть и NAT и NAT64 и
IPsec, то всё равно не фига до конца ничего не понятно. Но это только
потому что я и не пытался разобраться раз и навсегда.
Вчера возник вопрос: а зачем я почти для каждого правила добавляю
keep-state, делая stateful firewall. Для исходящих соединений это
понятно зачем надо. Но если у меня правило вида:
ipfw add allow tcp from any to "table(mein)" http keep-state
и весь исходящий от меня трафик разрешён, то какой смысл добавлять
какой-либо state? На выход всё разрешено, а на вход явно и так тоже.
В общем, убрал тьму эти keep-state-ов.
Sergey Matveev [Sun, 13 Nov 2022 11:34:05 +0000 (14:34 +0300)]
Новый mu-helper значительно быстрее работает
https://www.djcbsoftware.nl/code/mu/
Давно не обновлял эти утилиты. В них и заранее mu init теперь надо
делать и MUHOME указывать. Но они существенно (в разы) быстрее индексируют.
Sergey Matveev [Sun, 13 Nov 2022 11:26:17 +0000 (14:26 +0300)]
Обрезание новой строки при bracketed paste в zsh
Что-то надоело что при вставке из буфера строчек с newline-ом, он честно
вставляется, остаётся в истории, мозолит глаза. Нашёл рецепт как это очень
просто поправить:
Sergey Matveev [Fri, 11 Nov 2022 18:52:43 +0000 (21:52 +0300)]
Улучшения dht-bootstrap
http://www.git.stargrave.org/?p=dht-bootstrap.git;a=summary
Всё не могу успокоиться играться с правкой dht-bootstrap демона
(aa2617fbedd389ae134e81f8b3461f495c8cb6ef).
* использование arc4random() (в GNU/Linux-ах можно getrandom())
сокращает код, плюс не требует явной работы с файлами (чтения из
/dev/urandom). Более того, в glibc arc4random уже тоже добавили
* состояние о количестве известных нод теперь "показываю" в названии
процесса. И stdout/логи не загромождает, и посмотреть можно легко
* отладочный вывод показывает конкретные IP-адреса(+порты) всего
происходящего
* закрываю лишние файлы, ограничиваю ресурсы rlimit-ом
Всё это ещё было портабельным. Но очень хотелось использовать Capsicum.
Обломался, так как посылка UDP пакета на адрес к которому прежде не было
connect-а -- невозможна в Capsicum, который ограничивает доступ к global
namespace, к которому относятся и IP-адреса. Сделал в итоге privilege
separated решение: отдельный процесс который занимается только отправкой
UDP пакетов, принимая данные из заранее связанного сокета. Основной же
демон, который принимает пакеты, парсит их -- под Capsicum sandbox-ом
работает.
А раз всё равно я это уже перевёл на FreeBSD из-за Capsicum, то и смысла
держать poll() нету. Перевёл на использование kqueue(). Происходит из-за
этого дополнительное копирование содержимого исходящих пакетов, для их
отсылки через сокет дочернему процессу -- но да и ладно, ибо нагрузка и
так смехотворная.
Sergey Matveev [Fri, 11 Nov 2022 13:25:47 +0000 (16:25 +0300)]
Дополнение имён почтовых ящиков
http://www.git.stargrave.org/?p=dotfiles.git;a=commitdiff;h=752967292719f7f312d8779d23c2659d3dbb25cf
http://www.git.stargrave.org/?p=dotfiles.git;a=commitdiff;h=9617ad122904870e08106ace6db96c46a2ffca95
Частенько я открываю MUA с чётко указанным почтовым ящиком. mutt -f =MBOX.
Проблема с "MBOX" в том, что если это например будет "go", то "=go" в zsh
раскроется в путь до go. Из-за этого я переименовывал почтовые ящики в
какой-нибудь "godev". Но набирать эти длинные имена геморройно. Можно
автоматически экранировать путь до ящика
(9c8126a531e8f20aa10c5baea299529807ed0a4e), история не будет дополняться
удобно при поиске из-за эти кавычек. Для простоты можно просто сделать
алиас типа mbox () { mutt -f "=$1" }. И теперь мне нужно дополнение
имени аргумента для mbox команды. Благо, в zsh это тривиально:
local mboxes=()
for m ($MAILDIR/*(/on)) mboxes=($mboxes $m:t)
_mycomp_mbox () {
[[ ${words[1]} == mbox ]] && _values mboxes $mboxes && return
}
Sergey Matveev [Fri, 11 Nov 2022 10:36:34 +0000 (13:36 +0300)]
Chrome выпиливает JPEG XL поддержку
https://habr.com/ru/company/skillfactory/blog/697756/
https://www.opennet.ru/opennews/art.shtml?num=58012
Ну как бы... ну и что? Очевидно что ряд причин там надуманные.
Chrome это про Web, а AVIF для Web-а только и подходит -- вот
и решили сосредоточиться на нём. Ведь и WebP подходит только для
Web-а -- никто его не будет использовать для хранения фотографий
коллекции. Я не вижу преимуществ AVIF по сравнению с JPEG XL даже
для Web-а, но тут же уже делёж денег, вложений и всего подобного,
вопрос бизнеса. Но AVIF и не сказать что ужасен для всяких небольших
картинок (ибо фотографии у меня он сжимал отжирая 40GiB+ RAM и то не
все -- я просто не смог дождаться завершения). Также как JPEG 2000 не
взлетел в Интернете из-за патентов -- это не отменяет что он куда лучше
для многих задач (lossless сжатие фотографий например) чем всё имевшееся
до появления JPEG XL.
Sergey Matveev [Thu, 10 Nov 2022 14:21:31 +0000 (17:21 +0300)]
Reply-To поле email-а
https://karl-voit.at/2021/07/21/reply-to/
http://cr.yp.to/proto/replyto.html
http://www.stargrave.org/Email-headers.html
Оказывается не все знают про этот заголовок, как говорит автор. Ужас
если это так. Причём "поддерживают" (уважают) уж наверняка все MUA. А
вот Mail-Followup-To и Mail-Reply-To до сих пор поддерживаются не всеми,
но думаю это чтобы не улучшать user experience (а перетягивать на
централизованные решения для удобства).
Sergey Matveev [Thu, 10 Nov 2022 08:00:11 +0000 (11:00 +0300)]
Разные программные ошибки
https://habr.com/ru/company/pvs-studio/blog/698404/
Всякие истории об ошибках забавных. Забавно что катание на американских
горках посчиталось как ДТП и автоматом вызвало соответствующие службы
iPhone-ами. Microsoft вроде бы ведь какой-то софт но может писать, но
вот всё равно обосралась с tweet-ом с кодом пытающимся поздравить с
новым годом. Ну как так можно? Они не делают tweet-review?
Хотя история про leftpad не смешна. Самое уродское в ней это то, что
npm самостоятельно вернули взад этот пакет, не смотря на то, что автор
явно пожелал его удалить.
Sergey Matveev [Wed, 9 Nov 2022 17:50:57 +0000 (20:50 +0300)]
godiana frontend для Aria2
http://www.git.stargrave.org/?p=godiana.git;a=blob;f=README
Годами использовал diana (https://github.com/baskerville/diana) frontend
для Aria2. Но как-то пришлось добавить команду для показа информации о
peer-ах. Но фатальная проблема с ним в том, что нельзя передать
дополнительные опции при добавлении торрента. А мне частенько надо
переопределять директорию для скачивания. В итоге я редактирую seed-файл
и перезапускаю aria2, что геморрой и останов всех торрентов. Плюс diana
вывод не показывает seed ratio. Что я делаю в этом случае? Стыдно
признаться: проматываю вывод aria2 в tmux-е. Но ratio он показывает
только когда ты seeder.
Открыл код diana и прям всё противит править Python код. Решил
переписать на Go. Кроме решения всех вышеназванных проблем, теперь ещё
можно удалить Python3 пакет с сервера с BitTorrent-ом, который аж больше
сотни мегабайт весит.
Sergey Matveev [Wed, 9 Nov 2022 17:40:12 +0000 (20:40 +0300)]
dht-bootstrap fork
http://www.git.stargrave.org/?p=dht-bootstrap.git;a=commitdiff;h=5ce75cf1b18f93fc109bf860b7ad900f7a42542d
В прошлом посте упоминал что пришлось подправить dht-bootstrap.
Выложил fork где добавил возможность явно указывать адреса для bind-а.
Плюс заменил select на poll. Всё это заметно упростило код.
Sergey Matveev [Tue, 8 Nov 2022 18:45:03 +0000 (21:45 +0300)]
Как не тривиально настроить BitTorrent оказалось
BitTorrent-ом я пользуюсь с момента появления у меня Интернета. Уже не
первый год использую aria2 в качестве клиента. Много лет у меня поднят
локальный трэкер (opentracker). Но похоже я вообще толком не проверял
всё ли работает как надо.
opentracker заставляешь слушать на "::" адресе и sockstat показывает что
он слушает и отвечает везде. Но проверка показала что он нифига не
показывает всех peer-ов для моих трэкеров. Явно же в его README написано
что WANT_IPV6 опция только для IPv6-only версии трэкера. Я подумал что
без неё -- он будет dual-stack. Посмотрел код: либо он только IPv4, либо
только IPv6. Нашёл что в дистрибутивах по два пакета opentracker не
брезгуют делать из-за этого: один для IPv4, другой для IPv6. Пришлось
поднимать две версии этого трэкера.
Пошёл дальше проверять работает ли это всё. Сможет ли один aria2 клиент
скачать с другого, используя только этот трэкер? Приятно что в aria2
можно явно отключить и указать только чётко заданные трэкеры. Вижу в
debug выводе leecher-а, что он получает IPv4 адрес seeder-а, но, так как
он за NAT-ом этого же адреса, то качать с него не сможет. Не проблема,
всё понимаю, но где же IPv6 адрес seeder-а?
Предполагаю что aria2 почему то стукнулся по IPv4 адресу трэкера и
поэтому передал ему только IPv4. Жёстко задал IPv6 адрес в /etc/hosts.
Не помогло, потому что aria2 использует c-ares и самостоятельно
асинхронно опрашивает DNS серверы. Ладно, указываю адрес трэкера не по
доменному имени. Вижу что seeder подключается по IPv6 адресу трэкера, но
передаёт он IPv4, который я указал в --bt-external-ip опции к aria2.
Почему я понадеялся что он только IPv4 адрес переопределит или что он
просто добавит этот адрес к анонсируемым?
Оказалось, что указать несколько адресов этой опцией нельзя. Что
укажешь -- то он и будет анонсировать трэкерам. Указывать несколько
адресов можно только косвенно через multiple-interface опцию. Но
BitTorrent seeder у меня запущен на отдельной машине, которая ничего не
знает про свой внешний настоящий IPv4 адрес. В общем, никак нельзя
указать чётко заданный IPv4 и IPv6 адреса.
Благо, оказалось что можно передавать доменное имя. И BitTorrent
протокол это явно разрешает (BEP3). И aria2 leecher это прекрасно
понимает тоже. Так что проблема решилась созданием доменного имени с
нужными мне IPv4+IPv6 адресами.
Я также поднял и DHT bootstrap сервер github.com/jech/dht-bootstrap.
Очень минималистичный, поддерживающий и IPv4 и IPv6, слушающий спокойно
на всех адресах. Когда поднимал, то тестировал локально утилитой
github.com/jeanralphaviles/dhtcli чтобы хотя бы просто PING-ануть его.
Начал проверять работу уже через aria2 seeder/leecher и вообще не видно
в выводе чтобы что-либо на DHT сервере происходило. Запрос сервер видит,
пишет на экране что посылает и ответ, но клиент (dhtcli) ничего не
получает. tcpdump показывает что ответ, действительно, отсылается назад.
Вот только не с того IPv6 адреса на который запрос приходил.
Потому что, в отличии от TCP, UDP отправляется as-is и какой уж будет
выбран исходящий адрес, такой и будет. FIB-ом вроде бы тут делу не
поможешь (в отличии от 884f5eb6a88411f947a0d6c3fecd37c612a51654). А
dht-bootstrap настолько минималистичен, что даже не предлагает выбрать
явный адрес для bind-а. Не нашёл решений как можно явно указать
preferred source address или адрес для bind-а. Но просто взял и сделал
явный hardcode адреса для bind-а в dht-bootstrap демоне. DHT вроде бы
заработал после этого.
И вновь чувство того, что я похоже жутко что-то всё переусложняю или
что-то не то делаю. Неужели запуск dual-stack BitTorrent клиента за
NAT-ом это такое не тривиальное дело оказалось? Как и запуск DHT
сервера. Понимаю, что это вообще не часто кем-либо поднимается, да и то
это наверняка официальная BitTorrent реализация. Да и на IPv6, который
вообще в отдельных BEP-ах описан как для BitTorrent, так и для DHT --
многие плевать хотели. Ну а доку по opentracker я просто плохо читал.
Sergey Matveev [Tue, 8 Nov 2022 10:30:40 +0000 (13:30 +0300)]
engge2 движок для Thimbleweed Park игры
https://www.opennet.ru/opennews/art.shtml?num=58068
https://github.com/scemino/engge2
Написан на Nim и Lua. Вообще ничего про Nim не знаю, кроме названия. Но
появляется возможность, как и с SCUMMVM, ResidualVM, играть в квесты на
свободном ПО.
Почему engge2 был вообще написан? Автор пишет, что последние баги в
оригинальном engge проекте на C++, который его задолбал, он решил
профиксить переписыванием на другом языке.
Но Nim у меня собрался из tarball-а их без проблем.
Sergey Matveev [Tue, 8 Nov 2022 10:12:56 +0000 (13:12 +0300)]
FreeBSD будет использовать Dragonfly Mail Agent
https://cgit.freebsd.org/src/commit/?id=a67b925ff3e58b072a60b633e442ee1d33e47f7f
Всецело одобряю! Понятия не имею как устроен DMA, но временами что-то
вижу из конфигов в рассылках. Что что, но sendmail у меня вызывает самые
крайне удручающие воспоминания. И это первый компонент который я заменяю
в любой FreeBSD установке, и что бы заменял в OpenBSD (когда они тоже не
начали делать свой MTA).
Sergey Matveev [Tue, 8 Nov 2022 09:40:35 +0000 (12:40 +0300)]
Вышел Texinfo 7.0
В нём исправлена бага о пропаже элемента из индекса, о которой сообщал
(ab93c94e50820da24ba107002f5cb0c1091cef2d), а также теперь HTML5 вывод
по умолчанию и желанная мною ASCII_PUNCTUATION опция (ибо бесит когда в
текстовом выводе, как минимум, не ASCII кавычки).
Sergey Matveev [Tue, 8 Nov 2022 09:20:07 +0000 (12:20 +0300)]
aria2 не имеет DHT bootstrap серверов по умолчанию
https://github.com/aria2/aria2/issues/362
Задался я тут вопросом: какие сервера для BitTorrent DHT bootstrap-а
использует aria2. Полазил в исходном коде и не нашёл ответа. Точнее не
видел чтобы были какие-то вшитые по умолчанию. Даже мысли не было что
они честно просто дают это полностью на откуп пользователю. Что верное
решение. Просто видя, как в десятках других клиентах обязательно это всё
вшивается, то не подумал о трушности aria2.
Люди в задаче на Github тоже пишут что годами имели проблемы с aria2 и
DHT, который типа просто не работал толком. Мне тоже казалось что как-то
он не очень хорошо работает (но что поделать, если у тебя на руках есть
только магнитная ссылка?). И у меня на практике всё, выходит, хоть
как-то но работало только за счёт peer exchange между клиентами,
которых обнаруживал через трэкер. --dht-entry-point[6] надо использовать.
Sergey Matveev [Tue, 8 Nov 2022 09:12:14 +0000 (12:12 +0300)]
Про top-posting
В рассылке questions@freebsd.org кто-то вновь вбросил про сабжевую тему.
Понравился ответ старожила:
> The place where top posting makes most sense is the corporate
> environment where an email thread starts with two (or more) people and as
> discussion goes on more people are added to weigh in with their thoughts.
> Done right it looks a bit like this when it arrives in the unsuspecting
> Fiona's inbox, complete with all the context she needs to see what's going
> on. She just has to read it message by message from bottom to top.
No, that's complete utter nonsense because now poor Fiona
is also forced by others into wasting her brain cycles trying to
read reverse hodgepodge from bottom to top, gearshifting reading
direction with every included snippet (which are in top-down form),
to get the "full context" necessary anyways for her to not make
professional error or negligience in whatever her duly considered
reply ends up being. All those wasted burnt brain cycles add up
across the enterprise.
> She just has to read it message by message from bottom to top.
And this here exactly admits that that is indeed the actual
horrible situation... she "has to read it" all in backwards fashion,
where "just has to" is a trick phrase to get her to do something
different, extra burn, unnatural.
Nothing is read from bottom to top, not books, not newspapers,
not flyers, not signs, not computer terminals, not spreadsheets,
nothing. There is no way for bottom-up "done right" because it is
fundamentally wrong opposite against how humans run language.
All the "corporate environment" top-post apologists are doing is
making invalid excuses for their sorry lazy writing behaviours
random junk tools and random contracts instead of teaching
their staff to do standard top to bottom like everything else.
These "environments" also waste endless cycles futzing their
source code because they don't follow codequette there either.
It's garbage netiquette perpetuated by the uninitiated,
the lazy careless, and the impetulent flippants upon others.
Allow garbage, get garbage, and it's getting worse because of that.
Computing writing is a responsibility, teach your children.
Quit top-posting, html'ing, whole msg quoting, etc.
And get a real MUA that lets you actually see what your
disgustingly torrid mess of an email looks like for real in
real 80x25 plaintext... if that doesn't wake you up and tell you
what's wrong and make you fix your emails, nothing will.
Полностью согласен что "копоративные" пользователи просто подло
оправдываются за свою лень, некомпетентность и банальное неуважение ко
времени собеседников (зачастую, конечно, таких же уродов, аналогично не
уважающих).
Ну и оправдываются за неумение настраивать своё говёное ПО, типа
Microsoft/Apple поделий. Где-то читал что в Outlook была банально бага,
когда метки цитирования (">" всякие) просто пропадали и поэтому люди
даже не могли понять где ответ, а где цитата и поэтому вынуждены были
писать свой ответ сверху, чтобы хоть как-то можно было разделить
информацию из-за этого бага. А это были времена когда обновление софта
означало заказ/распространений версий через дискеты, поэтому подобное ПО
использовалось годами. А так как закрытое, то и самостоятельно исправить
не было возможности.
И ещё заметил что куча людей вообще не разделяет (почему то) такие
use-case-ы как ответ на дискуссионное сообщение и forward писем, мешая
всё в одну кучу.