Sergey Matveev [Tue, 21 Nov 2023 18:46:22 +0000 (21:46 +0300)]
Начал использовать VPS с /48 подсетью. Правка ядерного модуля
У меня такое впечатление, что последние недели я как-будто только сетью
своей домашней и занимаюсь. Но просто совпадение, что то одно, то другое.
Вчера вот перестал работать IP4Market туннельный брокер, уже больше
суток, не первый раз (aaf1553890450f4cf9ad2364d8f5f00341d3ef10). Причём
его сайт и endpoint работают, но IPv6 трафик никакой не проходит. Они
бесплатны, никаких обязательств нет, поэтому их и не поругать. Но сидеть
без огромной части Интернета не вариант.
Больше туннельных брокеров в РФ я не знаю. Из зарубежных только
Hurricane Electric, который по понятным причинам аналогично рискованно
использовать в плане стабильности. А все VPS что я видел: дают только
/64 сети, что жутко неудобно.
Но во время поиска, в каком-то где-то из комментариев увидел упоминание
VPSville.ru, который даёт /48 сети. Сайт без JavaScript не везде
работает, но чисто информацию полистать можно и без него. Они не то что
/48, но даже /32 могут выдать. Конечно не за бесплатно. Reverse DNS явно
говорят что могут выдать. Явно пишут что "чистые" адреса выдают, хотя
подешевле могут и использованные. Среди вариантов установленных ОС есть
и FreeBSD. Выглядело нормально.
Заказал себе самый простой их VPS и /48 подсеть. Знакомый помог с
оплатой через карточку (а то их офис находится где Коммунарка, далеко),
а мне пришлось доставать из под кровати ноутбук для запуска Knoppix, в
котором из коробки есть какой-то Chromium, ибо под surf-ом клавиатура
для RDP плагина их не работала, да и оплата через карточку вряд ли бы
заработала тоже.
Всё завелось через их web-интерфейс, в том числе и заявка на /48. При
создании предлагают пароль для root-а сразу задать, что мне понравилось.
Но потом он в открытом виде отсылается на почту всё равно, что
нивелирует пользу. Могу сравнить с HexCore.ru, на котором у меня сейчас
исходящий почтовый сервер. Среди пакетов есть ровно один: Zabbix клиент.
На HexCore был даже Bash, что лично мне очень не понравилось, конечно
же. На HexCore настройка IPv4 адреса происходила через... DHCP, а IPv6
через SLAAC. Ну come on! Тут же чисто статически настраиваемые адреса. В
HexCore у меня никак не работала загрузка ISO образа, до загрузки и не
доходил. Тут же и загрузка и установка и вообще всё создание с чистого
листа прошли без проблем или неожиданностей. В общем, как VPS, с точки
зрения конфигурации предварительной -- всё хорошо.
Но конечно же, я это и подозревал, читая их документацию: они выдадут
/48 сеть просто на виртуальный Ethernet интерфейс. Если бы я знал
сколько же это добавляет геморроя. Ну вот почему туннельные брокеры
нормально просто маршрутизируют в тебя -- никаких проблем, никакого
геморроя? Что тут то мешает, тем более когда выдаётся /48? Какой смысл в
такой огромной сети если предполагается что вся она не будет
маршрутизироваться?
Из коробки у них идёт древняя FreeBSD 11.0. Да пофиг, ладно. Установил
ndproxy, сделал gif IPv6-over-IPv4 туннель (как и туннельные брокеры
делают), просто статически маршрут прописал до части /48 адресного
пространства используемого у меня через этот интерфейс. И всё
заработало.
А потом перестало. Дёргаешь ndproxy (выгружаешь, загружаешь, меняешь
настройки) -- временами всё начинает работать, а потом снова прекращает.
Смотрел на tcpdump, но с ходу так и не понял в чём дело. Подумал что
возможно древняя ОС и последний ndproxy возможно как-то не штатно
работают вместе или баги имеются.
Решил поновее поставить версию. Нечаянно скачал FreeBSD 14.0, только на
днях вышедшую. Хотел 13.2, чтобы везде всё одинаково было. Но понял это
только когда уже вошёл в новую переустановленную систему. И... ndproxy в
ней просто не собирается вообще из-за смены API и какая-то структура
стала другие поля содержать. В портах ndproxy тоже помечен как не
собирающийся под этой версией. Пошёл закачивать 13.2 уже. Каждый такой
шаг это минимум полчаса времени потраченного, ибо и много данных
передавать и всё очень не шустрое в их VPS (не быстрый CPU).
И всё равно оно то работает, то нет. Очень внимательно пошёл читать не
маленькую документацию по ndproxy, чтобы понять какой куда IP в его
конфигурации надо засовывать. Убедился что точно всё правильно делаю,
без сомнений. Снова пошёл смотреть на tcpdump и стал замечать, что
вообще-то я отвечаю на запросы для хостов которые вообще не в моей сети
находятся. Маршрутизатор один, а вот запрашивает он множество ещё других
адресов. Я притворяюсь что их знаю и через какое-то время после всего
этого -- всё перестаёт работать. Причём даже сама VPS-ка не в состоянии
кого-то PING-ануть.
В ndproxy есть настройка ndproxyconf_exception_ipv6_addresses, в которой
можно игнорировать адреса. Но чем больше я смотрел на tcpdump, тем
больше убеждался что это не парочка каких-то служебных устройств в сети,
а вообще их количество уже на десятки шло. Указать несколько штук в
ndproxy ещё можно бы было, но тут вообще разные сети. ndproxy для такой
задачи вообще не подходит, судя по документации, не предполагающей
подобное.
Косяк ли это провайдера, который шлёт меня не касающиеся NDP? Думаю что
да. Ибо достучаться из своей сети до этих хостов я всё же не могу. Но
и маршрутизатор я своими ответами "сбиваю" на какое-то время.
Пошёл я править сам ndproxy. Он умеет игнорировать адреса по заданному
списку. А мне надо вообще-то прямо противоположное: отвечать только вот
на эти чётко указанные сети. С десяток строчек Си кода поправил и сделал
простое сравнение элементов списка: если первые 48-бит совпадают, то
значит можно. Вижу что перестал отвечать на не свои адреса. Но потом всё
снова перестало работать, и на самой VPS-ке. Увидел что я и перестал на
NDP пакеты link-local адреса отвечать. Усложнил логику проверки адреса:
если это link-local адреса (прям макросы для этого есть в ОС), то
проверить на равенство последние 64-бита. А противном случае: первые 48.
Ещё добавил логирование явное: на что мы ответили, а что
проигнорировали -- в dmesg можно увидеть.
Стало всё сильно лучше: прям многие минуты все хосты работают (ping до
Интернета) через всё это прокидывание. Но... иногда всё равно
отрубается, но сильно реже. Снова tcpdump, рассматривание уже dmesg-а и
вижу что почему-то advertisement о link-local адресе совсем перестаёт
через какое-то время отправляться. Да и запроса о нём нет. Устал уже,
поэтому проблему "решил" cron-ом и явным убиранием/добавлением этого
адреса на интерфейс, чтобы форсированно инициировать посылку unsolicited
advertisement-а.
Бля, вообще это всё к концу уже порядком начало выбешивать. Не, мне
понравилось с первого раза править Си код, который загружается и
работает в ядре, делает что я от него хочу. Но какого хера провайдеры
делают такую подлянку пользователям? Неужели у них это существенно
что-то упрощает в инфраструктуре, чем просто тупо (раз всё равно для
себя они статический адрес для шлюза используют)? Или это специально
увеличивают порог вхождения и геморроя чтобы /48 сеть не могли
использовать с удобством полноценно? Костыли в виде ndproxy уже
написали, но даже они не рассчитаны на такую архитектуру как у этих вот
(или это всё же просто бага их маршрутизатора, который шлёт мне то, что
не должно).
И ведь наверняка из-за подобного многие люди и считают что IPv6 это
сложно, геморрой и ад. А всё потому что делают не по best practices, без
грамотного проектирования сетей. Короче, сами себе создают проблем.
PTR запись ещё не пробовал себе заводить. Видел что это тоже делается
через обращение в техподдержку. Причём было упомянуто, что они не прочь
проверить есть ли у меня права владения доменом. Это очень удивило (в
хорошем смысле): ведь никогда прежде никто этим не интересовался ни из
домашних провайдеров, ни из VPS.
Если с PTR проблем не будет, то тогда окончательно избавляюсь и от
Hurricane Electric, который до сих пор у меня всё ещё остался для
входящей IPv6 почты. Причём реально только для неё: используется
отдельная таблица маршрутизации (884f5eb6a88411f947a0d6c3fecd37c612a51654)
для трафика почтовика.
Во время запроса на создание /48 сети, по электронной почте связывался с
техподдержкой. В конце они попросили меня предоставить какой-нибудь
альтернативный адрес, а то у них что-то там в их системе не работает
из-за плюсиков в адресе (stargrave+vpsville@). Хотя я и логинился и все
остальные действия без проблем выполнял. Эх...
В общем, целый день был убит. Три переустановки (в первый раз установка
обломилась, и я явно нашёл баг в ней). tcpdump, tshark, ещё больше
tcpdump. Правка везде всех конфигов (что в общем-то заняло не более
10мин наверное). Возня с ndproxy, его изменение. Но в конце всё же уже
более надёжная (не как у бесплатных туннельных брокеров) /48 сеть.
VPS-ка что-то типа 350руб/мес стоит, а /48 аж тысяча. Плюс плата за
домашний провайдер и за статический IPv4 адрес. Почти ровно две тысячи в
месяц выходит доступ в полноценный нормальный Интернет.
Закончились ли мои приключения на сегодня? Отнюдь! Ведь нужно же ещё
glue records поправить для DNS серверов. А это ёбаный (да, да, именно
такой уже) reg.ru (14f327a48c97f751dc12e30b993afb2e66171805). Взял за
сегодня проверенный и отработанный Chromium, залогинился у них. Тыкнул
на свои домены... и ничего. Тыкаю на другие вкладки... и ничего. Но
увидел какую-то плашку самого броузера что он там чего-то
назаблокировал. Оказалось, что в Knoppix штатно из коробки стоит uBlock.
Никогда в жизни подобными штуками не пользовался, а тут оказалось что
всё это время он был включён. И я подумал что наверное из-за этого
reg.ru и не работает. Удалил его. Перезапустил броузер. Ура, вкладки
начали открываться! А вот тыкание на сам домен, чтобы мне показали
возможно поменять список DNS серверов -- не работает. Видимо с 90-х у
меня ещё остались какие-то инстинкты Windows пользователей и я решил
перелогиниться и снова перезапустить броузер. И да: меню для правки
доменов появляются. Из drill NS вывода копирую доменное имя первого
сервера, помня что мне должны предложить, видя что этот от же самый
домен (а значит к нему можно сделать glue record), но мне не предлагают.
Методом тыка я понял что точка на конце всё портит. Хотя перед этим я
оставит только "....nsX", ведь в нормальном DNS софте если не указать
точку в конце, то это будет "относительное" имя, а значит
"ns.stargrave.org" станет "ns.stargrave.org.stargrave.org.". Срать
reg.ru хотел на это -- нужно чтобы остался "stargrave.org" в конце и
никак иначе. Предложили в итоге glue record. Если попытаться набрать с
клавиатуры там что-то, то после любого символа всё что-то мигает и фокус
с поля ввода пропадает! Ввёл символ -- а дальше заново нацеливайся
мышкой на поле ввода и тыкай на него. Где там курсор/фокус, куда он
уходит -- понятия не имею. Пиздец. Это просто на нитроглицерине
полнейший un-usability! Поэтому в консоли я полностью формирую полную
строчку для вставки, как Windows пользователь правой кнопкой мышки
копирую в буфер обмена, чтобы в броузере вставить. Shift-Ins или третья
кнопка почему-то на reg.ru не срабатывают, хотя из терминала испокон
веков так вставляли без проблем. Я реально наверное потратил 20-30мин на
всё это дело, которое прежде занимало наверное минуту, из которой
большая часть времени это было бы копирование логина/пароля и IP адресов.
Sergey Matveev [Mon, 20 Nov 2023 19:22:27 +0000 (22:22 +0300)]
8088 vs Z80 vs 6502
https://trixter.oldskool.org/2011/06/04/at-a-disadvantage/
https://groups.google.com/g/comp.os.cpm/c/OG4tTERPtto/m/yC5iUh79CQAJ
https://news.ycombinator.com/item?id=38345053
https://retrocomputing.stackexchange.com/questions/5748/comparing-raw-performance-of-the-z80-and-the-6502
5MHz Intel 8088 за тысячи долларов с мегабайтным адресным пространством
был ли быстрее Commodore 64 с 64KB адресами, 1MHz процессором и на
порядок дешевле? Пишут, что запросто:
Let’s illustrate this with a fun example: Rotating a byte of memory
once using ROR (rotate right). We’ll keep it fair by treating the PC
like it only has a single 64K segment of memory. First, the 6502
version using ROR:
Cycle Operation
1 fetch opcode, increment program counter
2 fetch low byte of address, increment program counter
3 fetch high byte of address, increment program counter
4 read from effective address
5 write value back and do operation
6 write the new value to the effective address
6 cycles. Now the 8088 version:
Cycle Operation
1 ROR BYTE PTR [1234],1 expands to “D0 0E 34 12” so let’s get to fetching the opcode:
2 (still fetching…)
3 (still fetching…)
4 (still fetching…)
5 (still fetching…)
6 (still fetching…)
7 (still fetching…)
8 (still fetching…)
9 Fetch lowbyte of address
10 (still fetching…)
11 (still fetching…)
12 (still fetching…)
13 Fetch hibyte of address)
14 (still fetching…)
15 (still fetching…)
16 (still fetching…)
17 Perform operation, which takes 15 cycles + EA calculation (6)
… …
37 Final cycle of calculation, we’re done, yay :-/
Я вот никогда не задумывался кто из них быстрее. Ну типа там 5MHz, а тут
1MHz. Само собой я в курсе про стоимость обращения к памяти, размерности
шин, регистров, RISC/CISC и всё вот это. Просто никогда не задумывался о
том, что в ряде задач такой дорогой и современный новенький ПК (на тот
момент) мог всё равно уступать в ряде вычислительных задач.
Sergey Matveev [Mon, 20 Nov 2023 11:06:01 +0000 (14:06 +0300)]
Apple то собирается вовсю поддерживать JPEG XL
https://www.computerweekly.com/blog/CW-Developer-Network/Cloudinary-The-dramatic-story-of-JPEG-XL-support-so-far
https://cloudinary.com/blog/jpeg-xl-how-it-started-how-its-going
https://forums.theregister.com/forum/all/2023/06/07/apple_safari_jpeg_xl/
https://old.reddit.com/r/firefox/comments/16mgpjf/apple_ios_17_just_brought_jpeg_xl_support_to/
Apple собирается поддерживать JPEG XL во всех своих основных продуктах.
Что снова пугает, как с AV1 (f11e227b03c81a528388ec7cce9d16bff78310a4),
ведь прежде Apple ничего хорошего толком не поддерживала из форматов.
Sergey Matveev [Mon, 20 Nov 2023 07:24:00 +0000 (10:24 +0300)]
Как работает dhclient с DHCP
https://habr.com/ru/companies/yandex/articles/774462/
Язык подачи, лексикон автора мне люто не нравятся, но особенности работы
с DHCP интересны. И с самого начала я сразу подумал про DHCPv6 и SLAAC:
насколько же там всё проще, ибо link-local сеть сразу имеется. В конце
статьи это тоже отметили.
Sergey Matveev [Sat, 18 Nov 2023 15:11:00 +0000 (18:11 +0300)]
Снова firewall. Поднял collectd. Ошибки на 10GbE витой паре
https://collectd.org/
https://calomel.org/rrdtool.html
После начала применения AQM с FQ-CoDel
(6588786a31b2cbec545beeecf1232338609ff9ce), захотелось на графиках
трафика за длительное время посмотреть меняется ли чего. Так то
невооружённым глазом вижу насколько всё стало отзывчевее -- прям это
реально must-have! А вот BitTorrent трафик в последнее время не забивает
весь канал на выход. Но у меня тут большие пертурбации со всеми этими
торрентами были и возможно дело именно в них -- в особенности их "роя
пиявок" (так и оказалось). Плюс снова люто порефакторил правила своего
firewall-а, ибо я тут вообще конченый идиот (даже после f8e2e4dfc6870c4dad7e62be9bb02ae9dd73d180).
Сколько раз я видел в man-ах, в документациях, и на ответах на форумах
FreeBSD упоминание того, что пакет штатно проходит два раза firewall?
Тысячу. Но как-то до меня это совершенно не доходило и в голове я по
сути делал one_pass для пакета -- разрешил ему вход, а дальше как-то
считал что с ним покончено, решение принято, он должен уйти. И не всегда
я понимал почему то тут, то там правило не отрабатывает как я ожидаю.
Прозрел. Сделал по сути аналоги цепочек как в iptables:
$add skipto 02000 ip4 from any to any in
$add skipto 04000 ip4 from any to any out
$add skipto 08000 ip6 from any to any in
$add skipto 10000 ip6 from any to any out
где я уже осознанно понимаю что где пакет вошёл, а где выходит. Когда
логировал пакеты, то обнаружил что один и тот же пакет у меня по два
раза входит в NAT: когда входит по внутренней сети, и когда выходит
наружу, очевидно. Не, всё это работает, просто отнюдь не самым
эффективным образом.
Более того, сколько раз я читал про recv и xmit, in/out правила и
разницу между via и ними? Сколько раз писали что например у loopback
пакетов нет in/recv? Но я всё равно в некоторых правилах решил как можно
точнее типа описывать что я хочу и в итоге многое у меня всё равно не
работало. Когда дошло про все (?) особенности in/out пакетов, то прям
чувство что я на 100% понимаю почему, как, зачем и для чего каждая
строчка (кроме всего что касается queue/shaper) ipfw мне нужна. Плюс
даже строчки с tablearg стал делать:
$add 10000 queue tablearg ip6 from any to any out xmit "table(ip6out)"
После всего этого, искал кто может собирать всякую статистику и красиво
в RRD-like виде отображать. Ну и чтобы попроще, типа suckless. Вообще и
самому то не сложно написать всё это, но остановился на collectd. А в
качестве интерфейса использую его Perl CGI скрипт, который просто парсит
директорию на файловой системе с иерархией проб и для кучи .rrd файлов
вызывает rrdtool для рендеринга. Но rrdtool, если хочется рендерить,
зависит от Cairo, который вообще тянет за собой очень нехилые по тяжести
зависимости. Иметь такое на сервере не хотелось бы. Но так как смотреть
то это всё буду только я, а rrdtool на моей машине имеет все зависимости
(и так X11 и Cairo есть), то я монтирую директорию с данными collectd по
NFS и локально запускаю web-сервер, который дёргает CGI. На сервере
rrdtool собрал облегчённой версии.
Сервер то у меня godlighty, давно не делал в нём настроек, кроме
copy-paste статических сайтов. Но CGI добавить тривиально, пример даже
не забыл закоммитить.
Заметил что торренты ночью поспокойнее раздаются. Со времён ivi то я
помнил что реально люди спят по ночам, а не смотрят фильмы, поэтому
обновления софта на серверах там проходило в ночь с воскресенья на
понедельник. Но я думал что BitTorrent то уж на ночь, как минимум,
оставляют, а днём наверняка многие отключают чтобы не мешал. Помню и про
зарубежных пользователей, да и про россиян, где чуть ли не на полсуток
может быть разница в часовом поясе -- но волна трафика у меня повторяет
картину которую на MSK-IX или ivi можно видеть.
А ещё обратил внимание, что на 10GbE, который к к моему рабочему
компьютеру идёт по обычной витой паре -- прям постоянно и регулярно
имеются ошибки передачи, даже при трафике в несколько MiB/sec. Не, я с
самого начала на это обратил внимание и ничего тут удивительного конечно
-- ибо это обычный Cat.5. Но по twinax DAC-у ошибок нет вообще, по нулям.
Sergey Matveev [Sat, 18 Nov 2023 08:03:37 +0000 (11:03 +0300)]
Культовые стратегии 1990-х
https://www.youtube.com/watch?v=NN4e7gT5_98
Почти во все эти стратегии играл. И кроме M.A.X.
(5648578d297f9e69a6e9b3da5a9e9885abcc8488) и Total Annihilation
уже и не вспомню какие вообще стратегии после 90-х то я и трогал.
Не раз от людей слышал что стратегии, как и point-and-click adventures
вымерли как жанр.
* SimCity -- играл в SimCity 2000. Интересная штука, но не зависал
* Populos -- вот в это не играл, но многое слышал
* Civilization -- да только вчера я в очередной раз запускал FreeCiv
поиграть пару часиков. FreeCiv это что-то типа Civ2 -- кардинально не
сильно ушедшая от самой первой части. Даже есть регресс, в виде
отсутствия возможности отстраивать себе замок
* Duna 2 -- с ней я познакомился после Warcraft 2, поэтому уже ничем не
впечатлила. Только пару уровней наверное прошёл
* Settlers -- только слышал, но не играл
* Panzer General -- аналогично
* X-COM -- в неё уйму времени играл. Как в Enemy Unknown, так и Terror
From The Deep. И не раз запускал OpenXCom свободную реализацию без
каких-либо модификаций. Шедевральна!
* Warcraft -- с первой части познакомился уже после второй. И управление
там было не шибко удобное. Но в Warcraft 2 обожал играть, много
времени на него потратил
* Heroes Of Might And Magic -- играл только во вторую часть, даже
недавно собирал свободный движок (без проблем собралось, всё
игралось). Знаю что третья считается самой самой, но так и не трогал её
* Command & Conquer -- а вот эта серия игр мне совершенно не зашла. Упор
не на строительство, а на войнушку. Вот прям совсем не моё
* Age Of Empires -- ради неё (и Fallout 2) я собирал и ставил WineHQ.
Офигеннейшая стратегия. Причём боготворят то вторую часть, а я только
в первую играл. Пожалуй, что я скорее в неё ещё раз сыграю чем в
Warcraft 2. Microsoft тут молодец
* Starcraft -- насколько понимаю, среди всех стратегий именно в эту надо
в первую очередь сыграть. Но я сколько не пытался её из разных
источников скопировать и запустить -- всегда не запускалась из-за
защиты от копирования. В итоге я так и ни разу не запустил. Сейчас это
не должно быть проблемой под WineHQ, но уже не тянет на RTS
Sergey Matveev [Fri, 17 Nov 2023 09:23:55 +0000 (12:23 +0300)]
Чат поверх SSH
https://medium.com/@shazow/ssh-how-does-it-even-9e43586e4ffc
https://www.tecmint.com/ssh-chat-linux-terminal-chat-client/
https://github.com/shazow/ssh-chat
https://en.wikipedia.org/wiki/Talk_(software)
Подумал тут, что ведь наверняка же кто-то уже должен был написать
простой чат просто поверх SSH? И автор shazow/ssh-key написал статью с
такими же мыслями как и у меня. SSH есть у всех из коробки на любой ОС,
в нём даже постквантовая криптография уже идёт из коробки, используется
TOFU и никаких требований PKI, аутентификация клиента уже сама собой
происходит по публичному ключу.
Когда-то ведь talk/talkd программы были в Unix-ах для этой простой
задачи. Точнее они и сейчас из коробки идут в той же FreeBSD. Но
заставить с ходу всё это работать, учитывая что я сижу в X11 и
терминалах на pts-ах.
Sergey Matveev [Thu, 16 Nov 2023 17:05:09 +0000 (20:05 +0300)]
Session и XMPP
https://getsession.org/
Кто-то мне предложил пообщаться в Session IM. Вроде бы впервые про него
услышал. Поглядел на его whitepaper. Не федеративная, а распределённая
сеть, но которая использует... blockchain и криптовалюту. Сисоп сервера
участника сети буквально должен заплатить чтобы в ней участвовать. То
есть, она не бесплатна. Если я не могу быть её частью, то значит ни
распределённости, ни федерации тут конечно же для меня не будет.
Бесплатно я, видимо, могу подключиться будучи просто потребителем,
пользователем чьих то ресурсов. Банальное разделение на богатых, кто
рулит сетью и серверами, и тех, кто не собирается платить за IM. Плюс,
насколько понял, даже сами клиенты вынуждены делать proof-of-work для
того, чтобы сохранить свои публичные ключи на серверах сети.
Ладно, даже если про это забыть. То в разделе Download нет ни одной ОС
которая бы у меня была. Судя по GitHub, для desktop у них только нечто
написанное полностью на TypeScript, Очевидно что это нечто совершенно
неюзабельное будет, работающее только в GUI, жрущее ресурсы похлеще
криптовалют.
Задался я тут вопросом: а насколько вообще тяжело поднимать сейчас XMPP
сервер то? Я его давно не держал у себя, давно не поднимал. Очень
нравился Prosody, ибо лёгок, написан на Lua, требует совсем немного
Си-зависимостей (для разумной производительности), имеет кучу фич, очень
легко и просто настраивается. Поднял его с нуля, потратив 90% времени на
то, чтобы понять как заставить Lua искал .so в директории
~/xmpp/local/lib/lua/5.4. В итоге просто в самой Lua (luaconf.h) при
компиляции задал нужный путь. Взял 6855f1c4e5ade25cfd4a97941ce6dab32cedb18a
xmpp-client клиент на Go, всё тип-топ заработало.
Ну и главный вопрос то был: небось же сейчас, при федерации, серверы
будут требовать TLS и чтобы они ему могли доверять? TLS сертификат то я
сделал с самого начала, но XMPP сервер FSF отказался со мной общаться,
ибо не доверяет ему. А jabber.ru не отказался (хотя я и не смотрел,
может быть вообще он не по TLS соединялся).
Поэтому и XMPP как некое универсальное решение для IM-ов, из-за того,
что сисопы требуют чтобы сервер получил разрешение от организаций
США/НАТО на "безопасную" (8fafe32b1788cb579e357c4fad54ec039d600677)
связь. Может быть ещё CA и каких-нибудь других юрисдикций используют, но
навряд ли и... какого чёрта? Вот если один человек для связи с другим
будет регистрироваться (через XMPP клиент) на его сервере, то это хоть
как-то может работать, но тогда смысла в федерации никакого уже нет.
Глядя на исходный код cURL и GnuTLS, в которых есть его поддержка,
оказалось, что они только для GNU/Linux или macOS. Видимо, когда был
hype на эту тему, то в macOS оно раньше появилось.
Вообще просто так его включить то не сложно: setsockopt(sock,
IPPROTO_TCP, TCP_FASTOPEN, ...). Но посылки данных с первыми SYN-ами
конечно не будет. Для этого надо делать не connect(), а
sendto(sock, ...). Что не всегда тривиально легко сделать. У меня код
подключения (connect()) и создания сокета были совмещены в одной
функции. После которой и всякий Capsicum включался, который sendto и
setsockopt не даст выполнить просто так. В общем, немного порефакторить
пришлось код.
Данные от сервера же могут не пойти с первым SYN+ACK если успеет
сработать таймер на delayed ACK. Но в трафике теперь видно что handshake
сообщение от клиента идёт с первым пакетом, тогда как от не быстрого
сервера приходит SYN+ACK, SYN, но он в это время уже считает
Диффи-Хельмана.
Sergey Matveev [Wed, 15 Nov 2023 11:16:27 +0000 (14:16 +0300)]
Техподдержка провайдера моего
Сегодня я массово захотел в скриптах bootstrap-а одной системы
пообновлять ПО. Скачать новые tarball, прописать их хэши. Только я
сделал rm старых версий, wget, как всё перестало работать. Пропал link
на коммутаторе от провайдера.
И причём вот именно сегодня, прям за пару часов до этого, я подумал что
не стоит ли мне поднять Git сервер на VPS-ке, добавить просто во все мои
репозитории как второй remote, но один общий git.-домен на них всех
иметь, чтобы хоть какая-то отказоустойчивость была в случае потери
домашнего Интернет-канала была.
И совсем недавно ведь заходила речь об Интернет провайдерах и их
техподдержке (262b66f5903b5afd217ee5acf43df0ac6fb8fd86). Но у меня
проблемы возникали только с Ростелекомом. Мой текущий провайдер, не
дожидаясь от меня вопросов уточняющих, сам сообщил (когда я ему позвонил
в техподдержку) что что-то у них странное и несколько коммутаторов,
действительно, вообще перестали отвечать, но не во всём доме. И сбоев
электричества не было, как им ответили в энергокомпании (прежде у нас
все проблемы только из-за электричества возникали).
Sergey Matveev [Tue, 14 Nov 2023 08:38:21 +0000 (11:38 +0300)]
Шиповник
https://habr.com/ru/companies/kryptonite/news/773640/
Ещё вроде бы не стандартизован окончательно, но похоже что для
постквантовых подписей Шиповник и будет использоваться. Выложили вот
2-BSD реализацию на Си (вот правда почему-то CMake как сборочная система
задействована).
Sergey Matveev [Mon, 13 Nov 2023 14:48:50 +0000 (17:48 +0300)]
Дед Мороз со Снегурочкой на дом
https://moslenta.ru/news/city/cena-priglasheniya-13-11-2023.htm
Помню что в детстве, когда ещё был в детском саду, к нам как-то приходил
Дед Мороз со Снегурочкой домой. Уж не знаю что был за день, возможно
выходной, ибо и мама и я были дома. Я тогда наверное и не задумывался
существует ли по-настоящему Дед Мороз или нет. Но до сих пор помню как я
был впечатлён, восторжен, удивлён и ошеломлён увидев как он такой
большой и высокий, с бородой, посохом к нам заходил в гости. Помню что
был глубокий величественный голос, как и полагается.
И, действительно, стоя на табуретке рассказал какой-то стишок. А мне
подарили за это огромный металлический экскаватор, где двумя ручками
крутящимися можно было и поворачивать и зачерпывать всякое. Родители
говорят, что игрался я с ним уйму времени.
Очень не много моментов я из детства помню, но Деда Мороза не забываю.
Было, так сказать, волшебно. И я точно никогда не задавался вопросом
"настоящий" ли он или нет, ибо без сомнений, конечно же -- да. И никогда
не спрашивал родителей знали ли они про то, что он внезапно вот так вот
просто заглянет к нам в гости (хотя это длилось то минут десять наверное),
ведь по другому и быть не могло.
Нашёл вот и фотографию, где фиг когда-либо увидишь чтобы я был таким
довольным.
Sergey Matveev [Sun, 12 Nov 2023 13:18:42 +0000 (16:18 +0300)]
rfc4880bis vs crypto-refresh
В рассылке GnuPG показывают что всякие крупные дистрибутивы меняют GnuPG
и откатывают его изменения на использование RFC4880bis, который, судя по
словам Коха, вообще-то даже в госучреждениях Германии вполне себе
используется активно. Вижу что в crypto-refresh до сих пор присутствуют
и GCM и EAX режимы. Кох яростно против GCM, а EAX выпилен просто из-за
ненадобности (d7d5650cac3bbb74434b202924e72fec10b82db3).
Мне кажется, что OpenPGP уже стоит стоит начать закапывать. Ибо уже
теперь у нас есть GnuPG как одна из реализаций со своим видением и
своими стандартами, а всякие другие (почему-то только помню что они
написаны на JavaScript и Rust), которые очень хотят всякое дерьмо типа
GCM (в том числе). В общем, отсутствие совместимости или архаичные
стандарты.
Sergey Matveev [Sat, 11 Nov 2023 17:55:01 +0000 (20:55 +0300)]
Lindemann продолжает жечь
https://en.wikipedia.org/wiki/Zunge_(album)
Тилю в Rammstein уже видимо давно скучно и они не особо шокируют людей,
поэтому как-то он с Peter Tägtgren (834f8979ff975c64cd424ba46eab85e1910802e5,
весьма крутым дядькой) замутил "Lindemann" проект.
Сейчас они уже не особо дружат, как Петер сказал в одном интервью, но
два неплохих альбома выпустили, и крутые концерты давали
(52ab03b596ffd133c7f5c9530606e864ea06d8a1).
Затем он был "Доктором Членом", продавал самотыки, и в видеоклипе пялил
питерских проституток, уже будучи музыкальным проектом "Nu Chui". Далее
был тур с названием "Я ненавижу детей". Многие его перестали уважать, но
я во всём этом не увидел чего-то сильно выходящего за рамки дозволенного
(ну... для артиста).
То что он за уничтожение русских, за нацистов: ну да, с одной стороны --
мразь поганая, с другой -- я продолжаю общаться и с немцами, и
голландцами и в курсе какая цензура, искажение фактов до совсем-наоборот,
и враньё в их СМИ на всю эту тему. Чего-чего, но только не правду им
будут толкать.
Далее на него наехали за якобы сексуальное насилие над ничего не
подозревающей наивной дурочкой фанаткой. Конечно же это оказалось всё
вымыслом и от него отстали.
Ну и вот у него теперь "Till Lindemann" группа, где половина состава это
сексапильные девочки. И недавно вышел их первый альбом. Часть трэков --
так себе. Но часть вполне себе хитовые. Я уже не раз переслушал. Среди
тех, кто пишет тексты песен: black металлист.
А также увидел многое с концерта открывавшего их тур из Лейпцига. Не,
порнографии там конечно не занимать, но это явно было неимоверно круто.
Сохранил себе было несколько ссылок с очень крутейшими моментами, но вот
обнаружил что все их YouTube удалил. Они также продолжают исполнять
песни и из "Lindemann" проекта. Я считаю что он (или кто ему там
помогает со всем этим) -- überпрофессионал своего дела. Мне прям почти
всё нравится: и как он выглядит, и как ведёт себя, и что на экране, и
остальные музыканты и как вообще шоу устроено. Начинать концерт с
медлячка, как они делали в Москве -- когда-то меня сильно удивило и
поразило (какие-нибудь Rolling Stones, на которые ходили родители,
начинали с выстрела пушки) когда-то, но теперь я прям понимаю что это
очень мудро и правильно подготавливать так толпу. Делать паузу на две
секунды в нужном месте в Knebel -- автоматом означает не то что
фейерверк, а взрыв от избытка чувств у присутствующих. В общем даже на
видео со смартфона это всё было и выглядело безумно круто.
А ещё он выпустил видеоклип, который почти сплошными русскими
срежиссирован и сделан ещё в 2019-ом, на одноимённую песню альбома. Ну
то что он там себе гастроскопию делает -- фиг с этим, я грайндкорщик и
насмотрелся на обложках подобного вдоволь. То что ему по живому зашивают
рот и дротики втыкают -- ну ok, с кем не бывает, хотя и здорово что без
анастезии или чего-то подобного. Но вот в окружении тигров находится,
есть кусок который в зубах у онного, быть слизываемым чем-то похожим на
кровь -- вот это меня впечатлило, ибо выглядит страшно. Тигры и
дрессировщики были конечно братья Запашные. В интервью сказали, что
Тилль хотел чтобы они на него набросились, но его отговорили. Но все кто
с ним работал, подтверждают что он абсолютно адекватный, нормальный,
очень дисциплинированный человек, большой профессионал.
Sergey Matveev [Sat, 11 Nov 2023 17:09:02 +0000 (20:09 +0300)]
Повспоминал LaTeX, PGF/TikZ
Уже не первую неделю почти не программирую, а пишу всякую документацию к
своей разработке. Чтобы подготавливать печатный вариант -- такое впервые
в моей профессиональной работе. Прежде была только документация в итоге
выходившая хотя бы в виде HTML. На самом деле мне не говорили что нужен
печатный вариант, но если надо навставлять математических выражений, тем
более что-то порисовать, то первое в HTML геморрой, а второе в любом
случае я буду делать какими-то TeX-specific средствами.
Я никогда в жизни не рисовал схемки "от руки", разве что только в ASCII. ec09a3609c081a53cc97bceecf2a1e98b80da667b6c8b1922c3ac35ed0138b608115dc7c63e2cece
Только чётко детерминированные и явно расположенные друг относительно
друга элементы в TikZ. Но чтобы взять в руку мышку/трэкболл, расставлять
кружочки/квадратики и между ними указывать стрелочки? На за что!
Вообще LaTeX я время от времени брал в руки, но чтобы какой-нибудь отчёт
для секретариата сдать, просто копируя по шаблону кучу элементов. Не
могу сказать что я освежал знания о нём при этом. А сейчас я пересел на
XeLaTeX (993356e6db7459241dbd8c8312ea69bbb49045f7), с которым все мне
нужные и попадающиеся пакеты совместимы. Недостаток в нём правда есть:
hyperref не показывает какие именно ссылки не определены. Поэтому руками
время от времени запускаю pdfLaTeX только для получения этих ошибок.
Многое упростилось, стало надо меньше костылей. Начал обмазывать текст,
даже в мат-формулах ссылками внутренними для документа. По сути он
становится, как и HTML -- гипертекстовым, куда ни тыкни. Упоминается
HKDF? Тыкаешь: попадаешь на его определение. Какой-то K_{foo} ключ?
Тыкаешь и попадаешь на его определение.
Texinfo меня приучил стараться всё обмазывать ещё и индексами. В итоге
предметный указатель, как и в хорошем Texinfo документе, становится
очень удобен даже для меня, автора документа. Хотя это и превращается в
портянку copy-paste: \index{Foo} \hypertarget{Foo}{} \subsection{Foo}
Очень стараюсь соблюдать корректный вид шрифта/текста: если в тексте
используется название ключа/хэша/whatever, то его вид (курсив ли,
моноширинный ли) должен везде, включая формулы, оставаться стабильным. А
учитывая, что нужно ещё и ссылки делать, то вместо изначально предельно
простых записей становится месиво типа \hyperlink{Foo}{\texttt{Foo}}\Big(\big(
PlantUML оказывается умеет делать вывод в виде TikZ кода, пригодного для
\input-а в TeX. Но... как-то всё не так у него при этом с размерами. Или
буквы нормальные, но сама схема не влезает. Или схема влезает, но буквы
слишком маленькие. Для компактных схем ещё более менее, но у меня таких
почти нет. В итоге продолжаю делать вывод в Encapsulated PostScript.
GraphViz аналогично в EPS умеет. Ни в одном месте не будет растра,
только вектор!
Документация для TikZ у меня таскается в ~/doc/man/tex/ директории уйму
лет. Скачал тут обновлённую версию, которая на 1300+ страниц. Прежде
было раза в 2-2.5 меньше вроде бы. Ещё не смог прочувствовать насколько
ли в нём стало чего удобнее и мощнее -- пока хватало прежних запасов
умений.
Всё это переведено на redo конечно же:
% cat default.pdf.do
for i in *.plantuml ; do deps="$i.eps $deps" ; done
[...]
redo-ifchange $2.tex $deps
exec >&2
tmp=`mktemp -d`
trap "rm -fr $tmp" HUP PIPE INT QUIT TERM EXIT
prevAuxHash="dummy"
while [ "$auxHash" != "$prevAuxHash" ]; do
prevAuxHash=$auxHash
xelatex -halt-on-error -output-directory=$tmp $2.tex
( cd $tmp ; makeindex $2.idx )
auxHash=`b3sum < $tmp/$2.aux`
done
mv $tmp/$2.pdf $3
Есть таблички, где надо высчитывать "итого"/сумму столбцов. Ну не делать
же мне это руками? Но я потратил дофигище времени чтобы как-то красиво
решить эту проблему. Изначально я хотел чтобы сам TeX это посчитал. Даже
есть пакеты позволяющие вычислить сумму из столбцов, но какие-то они не
гибкие, сложные и шаг-в-сторону-расстрел. Просто эстетически не
понравилось. Есть pgfplotstable, который безумно мощен, крут, в нём даже
можно добавить столбец с суммой, а данные брать из полу-сырого внешнего
файла. Но мне нужен не столбец, а строка. Где-то в Интернете увидел
решение в виде: транспонировать таблицу, добавить столбец,
транспонировать назад. И всё это с экраном TeX кода который я не понимаю
(я в общем-то чисто начинающий user во всём этом *TeX мире). Хорошо,
подумал я: не надо хотеть странного -- в TeX можно импортировать данные,
а вот считать их уже как-то автоматизированно. В файлике с данными есть
сырые данные, и надо как в Excel добавить строчку с суммой. Вариант с
настоящими табличными процессорами (4b4b3dd84fd22ad74d5dbbf90a7024eca665882f, 8b9b7c565c8c1b25f042bbe6b266901819fd5398) слишком монструозен, плюс
появился бы не человекочитаемый формат таблицы. В общем, я считаю что
закончилось это у меня вот таким обсёром:
% cat default.sum.tex.do
#!/usr/bin/env perl
use strict;
use warnings;
system "redo-ifchange $ARGV[1].sum";
open(my $fd, "< $ARGV[1].sum") or die $!;
my @sums;
while (<$fd>) {
print "$_\\\\\n";
my @cols = split "&";
for (my $i=0; $i <= $#cols; $i++) {
my $v = $cols[$i];
$v =~ s/\s//g;
next unless $v =~ /^\d+$/;
$sums[$i] += $v;
};
};
Буквально программкой которая для всех столбцов (где есть только числа)
считает их сумму. Я же этого хотел? И результат то в общем-то вполне
себе: .sum файл содержит буквально TeX код, который даже приятно
выглядит из-за выравнивания (2b5c80afecf0eb12fe394918a17f3ecedbc18779),
и для него добавляется строчка с суммой. И достаточно сделать \input
этого файла, учесть его в зависимостях к документу и redo его
автоматически посчитает, если он изменился.
Но вообще всё это, даже месиво TeX конструкций, мне всё-равно продолжает
нравится и доставлять удовольствие. И нравится что документ вовсю
гипертекстовый. А если распечатать, то хотя бы предметный указатель
автоматически сгенерированный удобно имеется. А если PDF-ку прогонять
(5c2b1203284c41e99a6af455ce9257821d95dd3d) через Ghostscript, exiftool
(для метаинформации) и QPDF, то и размер во много раз у меня сокращается
при этом, хотя вырезания шрифтов не происходит, должен быть PDF/A.
Sergey Matveev [Sat, 11 Nov 2023 09:30:43 +0000 (12:30 +0300)]
TCP Fast Open
https://lwn.net/Articles/508865/
https://blog.apnic.net/2021/07/05/tcp-fast-open-not-so-fast/
https://en.wikipedia.org/wiki/TCP_Fast_Open
https://datatracker.ietf.org/doc/html/rfc7413
https://github.com/bradleyfalzon/tcp-fast-open/
Пока читал про всякие AQM, ECN (6588786a31b2cbec545beeecf1232338609ff9ce),
то обратил внимание на TCP Fast Open. Название то слышал, но думал что это
какая-нибудь опция внутри TCP и поэтому не вчитывался. Оказалось что штука
интересная: сервер, при обычном TCP рукопожатии, может отправить клиенту
некую криптографически аутентифицированную cookie, которую клиент позже,
при установке нового соединения, может предъявить вместе с данными, а
сервер ответить тоже данными не дожидаясь третьего пакета рукопожатия от
клиента. Выходит настоящий 0RTT.
FreeBSD, судя по man-ам и ядру это поддерживает. Надо будет поиграться.
Хотя и требуются небольшие изменения в программы. Go вообще ничего про
него не знает, но нашёл какой-то репозиторий, где, явно выставляя опции
для сокета, включают всё это. Если совмещать с TLS 1.3 session
resumption, а то и его early data, то по RTT это становится как QUIC.
# sysctl net.inet.tcp.fastopen.ccache_list
net.inet.tcp.fastopen.ccache_list:
Local IP address Remote IP address Port MSS Disabled Cookie
127.0.0.1 127.0.0.1 22222 16344 No 19f2ad06c2e26754
Тут не IPv6, потому что тестовая утилитка не понимала его, на коленках
кем-то сделана.
Sergey Matveev [Fri, 10 Nov 2023 08:57:50 +0000 (11:57 +0300)]
Видео с Only Fetish Fest VI
http://www.youtube.com/watch?v=8WYDhAUN_iU
http://www.youtube.com/watch?v=X_ehifM_200
http://www.youtube.com/watch?v=l6N-jjUwHdo
http://www.youtube.com/watch?v=VMfyDuRu_Yk
http://www.youtube.com/watch?v=8DI629U5y1U
http://www.youtube.com/watch?v=wHx2JVsPD0E
Внезапно во время поиска увидел что в отличном качестве профессионально
снятые записи всех групп с OFF6 (b82620abe745fd85916525228597ccb44068ad2a)
имеются. Суперский был денёк!
Sergey Matveev [Thu, 9 Nov 2023 09:26:57 +0000 (12:26 +0300)]
Включил FQ-CoDel. PIE, CAKE...
https://www.youtube.com/watch?v=y5KPryOHwk8
https://www.bufferbloat.net/projects/
https://en.wikipedia.org/wiki/CoDel
https://datatracker.ietf.org/doc/html/rfc7567
https://datatracker.ietf.org/doc/html/rfc8290
https://habr.com/ru/articles/194274/
https://forum.netgate.com/topic/112527/playing-with-fq_codel-in-2-4
https://news.ycombinator.com/item?id=11516372
Traffic shaper я прежде использовал только для ограничения пропускной
способности того или иного трафика. Уже не помню как, но вышел на тему
связанную с AQM -- Active Queue Management. ECN (Explicit Congestion
Notification), который у меня включён, по идее работать должен только
при использовании AQM, ибо именно он должен оповещать о возникающих
задержках. Но AQM и без ECN должен быть полезен.
Увидел много упоминаний положительных о FQ-CoDel (FlowQueue-Controlled
Delay) алгоритме, который относительно недавно был добавлен в FreeBSD.
Пишут что без каких-либо настроек он резко улучшает usability и user
experience в сети при забитых каналах. Подтверждаю: при забитом на выход
BitTorrent-ом канале, ssh до VPS-ки теперь идёт как маслу, не замечаю
разницы между 10GbE соединением с шлюзом и забитым 100Mbps каналом в
Интернет.
Читаешь форумы, где говорят что невообразимая по полезности магия
происходит только включив (FQ-)CoDel -- и действительно визуально оно
ощутимо меняет поведение. iperf3 на 10GbE вроде бы не мешает, не замечаю
ощутимо большего использования CPU.
Хотя, как всегда, не совсем уверен
(f8e2e4dfc6870c4dad7e62be9bb02ae9dd73d180) в корректности настройки
firewall-а, но добавлял count log правила чтобы точно понимать попадает
ли под правило нужный мне трафик или нет.
Но для работы ECN нужна поддержка и от TCP. А у меня BBR
(e454488d86353680fdc8300a1567011572953e27), который не ECN-friendly.
BBRv2 дружелюбен к нему, но его нет в FreeBSD. На BitTorrent машине
временно включил CUBIC и статистика по ECN пошла:
# netstat -s | grep ECN
0 packets with ECN CE bit set
295108 packets with ECN ECT(0) bit set
177 packets with ECN ECT(1) bit set
3525 successful ECN handshakes
8 times ECN reduced the congestion window
Ещё я догадался проверить iperf3 свои 10GbE соединения после этого. И на
BBR с двумя параллельными соединениями он и до 5Gbps не вытягивает. А на
родном FreeBSD стэке (с CUBIC-ом вместо New Reno) спокойно все 10 выдаёт.
Конечно, один алгоритм для 10GbE LAN и загруженного 100Mbps Интернета не
может подойти одинаково хорошо, но пока от BBR откажусь.
IPv4 трафик, который в основном BitTorrent, который и забивает весь
исходящий канал, у меня идёт в gif-туннеле поверх IPv6 динамически
маршрутизируемых пакетов (a1251840ec6cc11b80519ae8a4f519f54c4358b9).
Чтобы ECN биты копировались из IPv4 заголовков в IPv6-ые, то надо сделать:
ifconfig gif_XXX link1
Но это только для внутренних туннелей годится. gif-ы с Hurricane
Electric и IP4Market (fb6dc9b409ae5051b610950dae0eaf4c70061437) не
поддерживают этой фишки, ибо она не по RFC.
А ещё бывают AQM-ы с красивым названиями типа:
PIE (Proportional Integral controller Enhanced) и
CAKE (Common Applications Kept Enhanced).
Первая ссылка -- видео поясняющее принципы AQM-а. Лектор здорово
подготовился ко всему этому представлению. Даже для RED алгоритма
использовал соответствующий цвет жидкости.
А в комментарии на HackerNews, пишут что в OpenBSD выпилили ECN, всё мол
плохо. Но это 2016-ый год. В его исходниках вижу, что и CoDel есть и ECN
вроде бы обрабатывается в TCP.
Sergey Matveev [Wed, 8 Nov 2023 16:13:30 +0000 (19:13 +0300)]
8GB RAM в MacBook Pro эквивалентно 16GB на PC
https://habr.com/ru/news/772688/
Не, я уже много лет вижу, что Apple считает всех своих пользователей
полнейшими тупыми идиотами, но тут они снова умудряются переплюнуть
себя. И ведь поклонники этой компании упорно верят всем её заявлениям,
как продолжают верить, что клавиатуры с переключателями-бабочками были
удобны и хороши (я просто сам как-то у знакомого пощёлкал на них, когда
они только вышли -- забыть невозможно). А теперь 8 будет эквивалентно 16.
Хотя чуть-чуть адекватности в заявлениях об эквивалентности всё же есть,
если упоминается сжатие данных. Ибо кэш ZFS может хранить сжатые блоки
данных, а это может в разы (5f4f66bffd8992c40adb89b0e30bdcdc33b9ae53)
экономить память, делаясь эквивалентным по производительности с более
тупыми ОС с большим количеством памяти.
Sergey Matveev [Wed, 8 Nov 2023 08:00:41 +0000 (11:00 +0300)]
QWACи и снова про ущербность global-scale PKI
https://scotthelme.co.uk/what-the-qwac/
https://securityriskahead.eu/
https://security.googleblog.com/2023/11/qualified-certificates-with-qualified.html
https://last-chance-for-eidas.org/
https://sslmate.com/resources/certificate_authority_failures
https://epicenter.works/en/content/eu-digital-identity-reform-the-good-bad-ugly-in-the-eidas-regulation
https://alecmuffett.com/article/108139
https://www.eff.org/deeplinks/2023/11/article-45-will-roll-back-web-security-12-years
https://en.wikipedia.org/wiki/Qualified_website_authentication_certificate
https://en.wikipedia.org/wiki/Extended_Validation_Certificate#Removal_of_special_UI_indicators
https://www.european-signature-dialog.eu/ESD_answer_to_Mozilla_misinformation_campaign.pdf
Европейские регуляторы захотели иметь возможность форсированной
установки государственных CA сертификатов в софт. Чтобы у себя в Европе
принимать, так называемые, квалифицированные сертификаты. Прямо драма
разыгралась: все броузеры написали как это ужасно, что QWAC-и и решения
eIDAS подрывают безопасность в ЕС и всё плохо. Мол они, броузеры,
принимают столько сил и мер по оценкам CA и о заботе о безопасности
пользователей.
По последней ссылке есть ответ из ЕС на эту критику от Mozilla. И как бы
я не не любил всю эту Европу, из штанов выпрыгивающую лишь бы уничтожить
каждого русского и каждого россиянина любыми средствами (вооружение
нацистов, спонсирование и помощь терроризму, бандитизму, воровства
имущества), но не могу не быть солидарен с их доводами. Ибо мои первые
мысли о чтении всего, что касается этих eIDAS и QWAC-ов, полностью
совпадают с ними. Ибо по сути всё сводится к политике и вопросу "с какой
стати исключительно компании США решают кому и как доверять в Европе"?
But that’s not what eIDAS does — it simply asserts EU digital
sovereignty so that US big tech companies like Mozilla are not in
control of all trust decisions in Europe.
Пишут что Mozilla давно является приспешником Google и синхронно делает
те же решения что и они, дабы проталкивать политику и решения этой
корпорации. О какой безопасности они заботятся, когда обе выпилили
визуальное различие между DV и EV сертификатами для домена, делая для
пользователя DV-verified домены такими же хорошими как и остальные? Если
не видно разницы между ними, то зачем вообще EV использовать -- вот и
перестали. А выпил DANE? Я не то чтобы за него, ибо это централизованный
trust anchor DNSSEC-а, но шаг в правильном направлении всё же был.
Я не особо вчитывался в то, как устроены квалифицированные сертификаты
QWAC, но беглым взглядом не вижу кардинальных отличий от онных в РФ. А с
ними дело приходилось иметь регулярно. И уж чего чего, но в них тупо
значительно больше информации и проделанных проверок для выдачи.
Броузеры считают DV-сертификаты приемлемым вариантом, безопасным, но у
QWAC-ов типа меньшая безопасность? Забавно. PDF-ка верно отмечает
лютые технически безграмотные фразы о шифровании (такая риторика
повсеместно используется всюду у не очень грамотных людей, не делая
никаких различий между понятиями шифрования и аутентификации сторон).
Короче сплошная политика, участвующий в этом бизнес, и упорное
стремление США управлять всем и вся, решать вопросы доверия за других.
А Mozilla, Google, Apple это инструменты влияния и управления, очевидно.
Sergey Matveev [Wed, 8 Nov 2023 06:51:51 +0000 (09:51 +0300)]
Поставили точку в споре кошатников и собачников
https://infoforme.ru/zhizn/tak-vsyo-taki-koshki-ili-sobaki-uchyonye-vyyasnili-kto-iz-khvostatykh-umnee-08-11-2023.htm
У собак более чем в два раза больше мозгов. То то я их так обожаю!
Sergey Matveev [Tue, 7 Nov 2023 07:18:34 +0000 (10:18 +0300)]
Заценил Mgła
https://en.wikipedia.org/wiki/Mg%C5%82a
https://www.metal-archives.com/bands/Mg%C5%82a/44722
https://www.youtube.com/watch?v=CgdwGubkzsw
С одного из концертов у меня появилось три альбома Мглы. Только сейчас
вот внимательно заценил их и очень понравились. Хотя местами и
попсовато. Считал что это небось наша группа, а оказалась польская. Ну
ничего удивительного -- поляки ещё как умеют делать подобное!
Поисковик выдал ссылку на рецензию на YouTube. И вот да: тоже отмечают
доступность подобного black не для подготовленного человека. Про себя я
тоже думал что это то, что можно и в машине ставить во время долгих
поездок с отцом. Аналогично понравились и постоянные гитарные проигрыши
и особенно вокал.
Sergey Matveev [Mon, 6 Nov 2023 18:54:14 +0000 (21:54 +0300)]
systemd-bsod
https://habr.com/ru/news/772142/
Давно уже говорил, что с внедрением systemd, ОС превращается в
Windows/macOS. Вот теперь окончательные штрихи доделали, чтобы обычный
пользователь уж вообще не смог бы отличить современный GNU/Linux
дистрибутив от Windows.
Sergey Matveev [Sun, 5 Nov 2023 15:43:01 +0000 (18:43 +0300)]
Почему лежал 16-bits.ru
https://www.youtube.com/watch?v=RNpedOk0vDM
Бачило объясняет почему его ресурсы лежали. Всё банально просто. Но до
современных провайдеров не "дозвонишься", ибо ты -- никто, пользователь
WiFi "роутера". С их точки зрения. Если не помогает его перезагрузка, то
жди мастера по настройке. У меня кстати никогда в жизни не было подобных
"роутеров". В общем четыре дня у него ничего не работало, а затем, за
2мин решилось.
У меня самый большой простой в работе был из-за уродов Gandi.net
(c31f6098d68cde8ca765e916fb58e4cb7ce93a69), где когда-то были
зарегистрированы мои домены. Но это был простой в работе DNS, но не
Интернета как такового.
Sergey Matveev [Sun, 5 Nov 2023 15:04:23 +0000 (18:04 +0300)]
Посмотрел "По щучьему велению"
https://ru.wikipedia.org/wiki/%D0%9F%D0%BE_%D1%89%D1%83%D1%87%D1%8C%D0%B5%D0%BC%D1%83_%D0%B2%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8E_(%D1%84%D0%B8%D0%BB%D1%8C%D0%BC,_2023)
Недавно вышедший на экраны фильм. Ну... не в восторге, но фильм в целом
нормальный, можно посмотреть. В конце всё же как-то довольно сумбурно
было. Щука очень понравилась!
Sergey Matveev [Sun, 5 Nov 2023 09:15:44 +0000 (12:15 +0300)]
ipfw table для интерфейсов
Вот сколько раз я просматривал man ipfw, но только сегодня обратил
внимание на то, что в table можно сувать не только адреса, но и названия
интерфейсов. Прежде у меня были правила типа:
for iface in igb_lan wg_\* epaira_xxx mlxen_\* ; do
ipfw add allow ip6 from any to any via $iface
done
а теперь можно это помещать в одно правило, которое использует table:
ipfw table ip6allowed create type iface
ipfw table ip6allowed add igb_lan
ipfw table ip6allowed add wg_beta
ipfw table ip6allowed add wg_mail3
ipfw table ip6allowed add wg_nuke_wan
ipfw table ip6allowed add wg_nuke_lan
ipfw table ip6allowed add epaira_xxx
ipfw table ip6allowed add mlxen_beta
ipfw table ip6allowed add mlxen_nuke
ipfw add allow ip6 from any to any via "table(ip6allowed)"
# ipfw list | grep allowed
02100 allow ip6 from any to any via table(ip6allowed)
Удобно, приятно для глаза, плюс каждое лишнее правило в firewall это
лишняя нагрузка и задержки.
Sergey Matveev [Fri, 3 Nov 2023 10:39:51 +0000 (13:39 +0300)]
Кириллические шрифты
http://post.hppi.troitsk.ru/%7Emike/Latex_TTf_T1/fine_koi.html
https://ru-typography.livejournal.com/443094.html?nojs=1&thread=4211670
https://ru.wikipedia.org/wiki/%D0%A1%D0%B2%D0%BE%D0%B1%D0%BE%D0%B4%D0%BD%D1%8B%D0%B5_%D1%88%D1%80%D0%B8%D1%84%D1%82%D1%8B_%D0%9F%D0%A2
https://www.cnews.ru/news/top/2021-06-04_rossiyane_sozdali_zamenu
История о том, как всё плохо со шрифтами в постсоветской России. Самое
немыслимое для меня было то, что наши ГОСТы требовали Times New Roman
для документов, которые как бы не очень свободны (а после СВО так вообще
типа нелегальны к использованию). Но в 2010-х этим уже озадачивались в 3d08e9d5391841471581e48d98b1fcb2327c4e54 и появились свободные шрифты
"ПТ", а потом и PT Astra, метрически совместимые с Times New Roman.
Я же в свою очередь попробовал XeLaTeX запустить из TeX Live.
Действительно, подхватывает TrueType-ы из системы и без проблем
использует в документе. Так что, если надо будет использовать PT
какой-нибудь, то возможность есть. TikZ в XeTeX работает, не ломается.
Sergey Matveev [Wed, 1 Nov 2023 16:44:36 +0000 (19:44 +0300)]
Дафна Дю Морье "Эрцгерцогиня"
https://fantlab.ru/work180675
Рассказ о сказочной стране, где все жили и не тужили, были счастливы. А
потом США захотела у них всё прибрать к рукам, ну и путём провокаций,
манипуляций мнениями, враньём и агитациями они настраивают жителей
против друг друга, устраивая ночь длинных ножей и фактически уничтожая
страну. Книга как бы и про выдуманную страну, но методы англосаксов
много десятилетий не меняются и регулярно применяются то тут, то там.
Sergey Matveev [Wed, 1 Nov 2023 16:04:47 +0000 (19:04 +0300)]
Хранение SQLite в Git
https://garrit.xyz/posts/2023-11-01-tracking-sqlite-database-changes-in-git
Знал и помнил про этот трюк с:
git config diff.sqlite3.binary true
git config diff.sqlite3.textconv "echo .dump | sqlite3"
echo "*.sqlite diff=sqlite3" > .gitattributes
но так никогда и не возникало у меня use-case чтобы на практике увидеть.
Sergey Matveev [Wed, 1 Nov 2023 15:42:31 +0000 (18:42 +0300)]
Адекватность Hyperbola GNU/Linux-libre
https://wiki.hyperbola.info/doku.php?id=en:philosophy:incompatible_packages
Большой список, даже с отдельными страничками, всякого ПО, которое не
входить в этот дистрибутив. Многое я конечно одобряю, типа поделий
Поттеринга, но у них явно какой-то больной маразм есть на тему
"корпоративного ПО". Всё что касается Zstandard они не включают, потому что:
Package is free and permissive licensed but nevertheless bloat
within especially social and economical aspects as some projects
implement it as mandatory dependency without any kind of choice left
to fast select another interface and dependency. It is a corporate
project imposing goals of free, libre culture and destroying other
free software with imperative things (breaks portability, ignores
backwards compatibility, and replaces existing services, forcing
into adoption)!
Хорошо, допустим я чего-то не знаю, чего-то не учитываю? Но ведь
аналогичное написано и для банального Redis:
Package is free and permissive licensed, but in its whole approach
only usable in combination with specialized software. It is a
Corporate project imposing goals...
Нет уж, явно у них с головой что-то не так. Ибо качество кода,
документации Redis выше всяких похвал, да и автор явно любит свой
проект и много писал интересного в блоге, это явно в душой сделанный
проект, а не состряпанный в душных офисах корпораций за деньги :-). Да
даже если бы было и так, то... что меняется то? Он как технический
инструмент становится хуже? Его качество падает? Zstandard действительно
сделан внутри Facebook, но по большей части известным в своих кругах
Yann Collet-ом. Ибо не удивительно, что богатая компания для выполнения
своих задач может и нанимает крутейших специалистов в своём деле.
А ещё у них есть отдельное заявление что для документации man-ов
достаточно и HTML в любом проявлении для неё это плохо. Тоже, аналогично
бред. Даже сами авторы идеи man-ов (когда я готовился к рассказу про
историю Unix (df0dda77f31e6a3823a10ef99a8182b66e780327)) говорили и
говорят, что ни для чего иного они не предполагались как для кратких
справок о небольших командах, то что можно бы было пихать в --help.
Sergey Matveev [Wed, 1 Nov 2023 11:17:41 +0000 (14:17 +0300)]
AV1 в железе Apple и обязательность в Android 14
https://fullystacked.net/posts/av1/
https://news.ycombinator.com/item?id=38083588
https://stackoverflow.com/questions/75459594/why-doesnt-edge-support-avif-images
AV1 активно форсируется даже в Apple экосистеме. Что вообще вряд ли
говорит о нём хорошо, ибо Apple ничего не поддерживает что не обмазано
бы было с ног до головы патентными отчислениями. Ходят слухи, что
Microsoft, именно поэтому и не хочет связываться ни с AV1, ни с AVIF.
Ибо все эти патенты на Западе -- минное поле. Также как и Google выпилил
поддержку JPEG XL (1a632f94b854e95a7ef76a5511734d596b859ef7) -- тоже
якобы из-за непоняток с патентами. Короче сплошная политика и делёж денег.
Но мне AV1, чисто с практической точки зрения, очень нравится: он
(SVT-AV1) тупо ощутимо быстрее кодирует с куда лучшим качеством чем
другие свободные аналоги. И не надо с указанием кучи опций париться при
кодировании.
Sergey Matveev [Wed, 1 Nov 2023 11:01:59 +0000 (14:01 +0300)]
Обфускация времени нажатия/передачи клавиш в OpenSSH
https://habr.com/ru/companies/ruvds/articles/770792/
http://undeadly.org/cgi?action=article;sid=20231004154107
Определять введённый текст, особенно литературный, анализируя время
между нажатиями -- довольно хорошо выходит на практике. Недавно были
новости что и просто по громкости нажатий тоже можно 90%+ нажатий
распознавать. У меня обновлённый OpenSSH с включённой обфускацией --
разницы при интерактивной работе не заметил никакой, не мешает ничуть.
Sergey Matveev [Wed, 1 Nov 2023 10:34:25 +0000 (13:34 +0300)]
Доверие к CA после MitM-а на jabber.ru/xmpp.ru
https://dxdt.ru/2023/11/01/11377/
http://stolyarov.info/node/404
https://mjg59.dreamwidth.org/66907.html
В 62233ed8f4fd2f9625cde5f3058b33eb36dc99b6 упоминал о нашумевшем
обнаруженном факте MitM-а на jabber.ru/xmpp.ru серверы. Я известный не
сторонник PKI и всего подобного, но даже я не говорю что Let's Encrypt
тут был чем-то виноват. Верно автор первой статьи замечает, что:
“система хорошо известных УЦ” и раньше должна бы “вызывать доверие”
равно в пределах разумной модели угроз, то есть – доверять ей можно
только в сугубо определённых, узких случаях
Преобладающая часть X.509 сертификатов в WWW это так называемые "DV"
(domain validated). Что они (или УЦ) аутентифицируют? То, что трафик до
заданного домена (до заданных resolved IP) идёт и автор имеет над ними
какой-то контроль. Это не исключает наличия влияния хостера/провайдера
или подмены DNS записей.
Много говорили что многое чего решает Certificate Transparency. А что он
решает? Ну вот благодаря нему мы увидели что были выпущены как-бы не
легитимные сертификаты MitM-ом. Обнаружили это. Дальше то что? Более
того, это обнаруживает сам CA и типа почти случайно, из-за протухшего
сертификата. Но конечный пользователь не предполагается что должен
лазать в CT журнал для проверок. Экосистема CT не дружелюбна к тому
чтобы у себя сделать полную синхронизацию локально -- я пробовал, они
официально не советуют это. А лазать в CT каждый раз -- значит сливать
данные о том, куда ты ходишь и что посещаешь. В итоге от наличия CT
конечному пользователю ни холодно, ни горячо, а владельцу домена
предлагают постоянно следить за журналами CT? Следить за костылём
априори ущербной задумки?
Где-то помогла бы DNSSEC-подписанная CAA-запись в CA, говорят. То есть
зависеть от ещё одной вообще централизованной PKI системы, чтобы хоть
как-то сделать получше? Тогда почему бы сразу в ней и не хранить
аутентифицирующую DV информацию в виде DANE записей? Но нет, форум
броузеров не принимает это решение. Да и невозможно требовать DNSSEC
наличия, ибо, насколько помню, даже не все корневые зоны его вообще
начали использовать, не говоря про крайне малое количество вообще
подписанных зон. Ну и я молчу про то, что тут вообще единственный якорь
доверия (полностью управляемый НАТО).
Вообще-то изначально PKI задумывался как нечто, куда приходят с кипой
документов, информация из которых прописывается в сертификате. И
Столяров в своей заметке верно говорит, что это означает что нам бы
приходилось ездить, грубо говоря, в США, чтобы получать EV-grade
сертификаты. Чего, очевидно, никто (ну кроме банков там и подобных
серьёзных организаций) делать не будет. Поэтому будут оставаться
DV-grade сертификаты. Поэтому MitM прекрасно даже на уровне хостера
будет возможен. Поэтому на кой чёрт все эти свистопляски с Let's Encrypt
и прочими DV-grade CA? Ну да, чтобы не нажимать лишний раз на кнопочку
"всё равно доверить данному сертификату". Но только не надо заливать и
бросаться словами про безопасность.
Sergey Matveev [Wed, 1 Nov 2023 09:43:18 +0000 (12:43 +0300)]
Политика Вассермана
https://awas1952.livejournal.com/
В этом блоге давно не упоминаю всякую политику. Ибо нафиг надо, разве
что показать каких позиций ты придерживаешься и какого мнения, чтобы
понять кто полный гондон, а кто нормальный чувак. А то сложно забывать
что тот или иной человек сказал и разделять это с его профессиональной
работой и продолжать наблюдать за нею.
У меня есть мнение и по поводу Армении с Азербайджаном, и Израиля с
Палестиной, и всяких буйств недавних в Дагестане и о высказываниях
Кадырова и о его сыне, и так далее. Зашёл тут на блог Вассермана и
приятно был удивлён что, так сказать без подсказок, я аналогичных мнений
держусь, аналогичные выводы делаю и как он и на кого он ссылается. Нет
какого-то непонятного диссонанса в суждениях.
А ещё не забуду что когда-то давным давно мой папа брякал что арабы там
на Востоке сплошную смуту всюду наводят, нехорошие мол, сплошные войны.
У меня позже сложилось противоположное мнение. А в этом или прошлом году
отца переспросил не передумал ли -- говорит что да, уже совсем другого.
Sergey Matveev [Wed, 1 Nov 2023 09:25:41 +0000 (12:25 +0300)]
Попытка человека использовать Bcachefs
https://kevincox.ca/2023/06/10/bcachefs-attempt/
https://www.opennet.ru/opennews/art.shtml?num=60021
Какой выбор современных вменяемых файловых систем сейчас имеется? Чтобы
и контрольные суммы велись и возможности снимков были и RAID-ы заменяли
(RAID write hole чтобы не было)? Чтобы и прозрачное сжатие (повышающее
производительность в целом, как правило). По сути это только
copy-on-write выбор. ZFS -- выбор очевиден, но только не для Linux,
в котором проблемы с этой ФС. BTRFS -- известна корявостью и может
заменить только простейшие RAID0/RAID1.
И вот я про себя думал что может быть в GNU/Linux мире всё же Facebook,
когда-то создавший bcache, но принесёт нормальную CoW современную ФС? С
bcache, давным давно, у меня были самые положительные впечатления (я
тогда ещё не вернулся на FreeBSD, а был под GNU/Linux). Но тут у
человека не вышло с ней подружиться -- он даже потерял данные. Что ж всё
так продолжает быть печальным в GNU/Linux мире?
Но я не злорадствую, в отличии от не уважаемой мною BTRFS, а хотел бы
всего хорошего Bcachefs. Правда вот бросается в глаза их фраза на сайте
о том, что проверено на 100TB+ данных... блин, да у меня в одном моём
сервере четыре диска это уже 72TB. Речь должна о многих петабайтах идти,
чтобы звучать хоть сколько то серьёзно. Как ZFS уже чуть ли не двадцать
лет вовсю пашет в production системах огромных.
Sergey Matveev [Wed, 1 Nov 2023 09:21:41 +0000 (12:21 +0300)]
dn42 сеть
https://dn42.eu/Home
https://habr.com/ru/articles/760866/
Сеть энтузиастов объединяющихся VPN-ами и запускающих BGP поверх всего
этого добра и fd00::/8 адресного пространства. Имеют собственный реестр
учёта и выдачи IP-адресов и номеров AS.
Всё бы круто, но я даже JavaScript-броузер запустил, но
зарегистрироваться у них в Git сервисе не выходит, говорит что CAPTCHA
не введена, хотя мне ничего не показывают. А без регистрации там нельзя
будет сделать запрос на добавление себя в их реестр. Не выйдет поиграть.
Sergey Matveev [Wed, 1 Nov 2023 09:14:28 +0000 (12:14 +0300)]
Yggdrasil обновлён до v0.5
https://yggdrasil-network.github.io/2023/10/22/upcoming-v05-release.html
https://www.opennet.ru/opennews/art.shtml?num=60030
Новая версия не совместима с предыдущими. Поэтому куча участников
текущей глобальной Yggdrasil сети более не работают. Нужно вручную
обновляться. Вчера вот NNCP выпустил с обновлением Yggdrasil
зависимости, чтобы в v0.5 мире могла заработать. Вообще не очень конечно
приятно что за несколько недель, но внезапно всем всё надо обновлять. Но
сеть всё же не Tor: не централизованная, каждый сам себе может сделать
свой отдельный mesh, а глобальная Yggdrasil не шибко то больших масштабов.
Зато не паришься в обратной совместимостью, поддержкой всякого старья.
Sergey Matveev [Wed, 1 Nov 2023 08:48:05 +0000 (11:48 +0300)]
Зачем ACPI?
https://mjg59.dreamwidth.org/68350.html
https://en.wikipedia.org/wiki/Advanced_Configuration_and_Power_Interface#Security_risks
https://bugzilla.kernel.org/show_bug.cgi?id=204807
https://www.welivesecurity.com/2022/04/19/when-secure-isnt-secure-uefi-vulnerabilities-lenovo-consumer-laptops/
https://www.csoonline.com/article/575447/gigabyte-firmware-component-can-be-abused-as-a-backdoor.html
https://security.stackexchange.com/questions/61785/firmware-backdoor-protection
Ещё одно пояснение откуда растут ноги у ACPI. Не забывая, что это один
из backdoor-ов в компьютере.
Sergey Matveev [Tue, 31 Oct 2023 12:30:52 +0000 (15:30 +0300)]
OpenBSD избавляется от syscall
https://marc.info/?l=openbsd-tech&m=157488907117170
https://marc.info/?l=openbsd-tech&m=157489277318829&w=2
https://marc.info/?l=openbsd-tech&m=157507151909740&w=2
http://stolyarov.info/guestbook/archive/8/
http://stolyarov.info/guestbook/archive/8/#cmt126
Нельзя теперь просто так брать и делать syscall из ассемблерного кода.
Надо через libc это делать. Помню что и прежде они предупреждали о том,
что надо через libc делать вызовы и в Go какой-то версии эта особенность
уже учитывалась. Но теряется совместимость со статическими бинарями.
Столяров негодует и теперь этой ОС для него не существует. А я вот не
понимаю почему это всё так катастрофично. Что за дрочево на всю эту
совместимость? Любая программа должна мочь в любой момент быть
пересобранной из исходных кодов. С обновлениями ОС надо будет всё
пересобирать. Что в этом такого? Или боязнь того, что в новой версии,
под которую надо пересобирать, будут и в API обратно несовместимые
изменения и поэтому уже не выйдет пересобрать? Ни в коей мере не могу
сказать что одобряю или симпатизирую тому что происходит в OpenBSD, но
мне их изменения никак не мешают например. Да и, насколько понимаю,
статические бинари всё равно можно собрать, что они и сами делают в
базовой системе.
Sergey Matveev [Mon, 30 Oct 2023 17:30:57 +0000 (20:30 +0300)]
Разница между OpenBSD, FreeBSD, NetBSD and DragonFly BSD
https://unixsheikh.com/articles/the-main-differences-between-openbsd-freebsd-netbsd-and-dragonflybsd.html
Полуюмористическая статья представляющая каждую из этих ОС как какое-то
транспортное средство. С детства считал что самая крутая машинка это
Мерседес. Так вот, судя по статье, я как-раз на нём и езжу :-)
Sergey Matveev [Sun, 29 Oct 2023 17:39:59 +0000 (20:39 +0300)]
Тестовые примеры для ГОСТ TLS 1.3
https://datatracker.ietf.org/doc/html/rfc9367
Увидел тут что в RFC для ГОСТ TLS 1.3 вставлены тестовые примеры. Не
отмечено что они сделаны мною, но это есть в каком-то ТК26 документе.
Оформление и вообще всё сопровождение и ведение, конечно же, уже делал
не я. Даже сам вывод их -- чисто мой отладочный вывод который был мне
удобен для многих полей. Но там только два примера из четырёх разных
сценариев.
Это всё генерировалось из обмазанного сверху донизу отладочными
print-ами Go 1.12 кода, в котором реализован не просто ГОСТ TLS 1.3, но
и куча всяких других возможностей TLS 1.3 протокола, штатно
отсутствующих в родной crypto/tls реализации. Благо Go код достаточно
простой и это всё было не сложно добавлять. И запускались
детерминированные по поведению тесты, где PRNG был подсунут
детерминированный. Много мегабайт вывода сохранялось в текстовый файл. А
дальше Perl скрипты, которые выдирали нужную информацию из получившихся
логов и вставляли в заранее полуавтоматически подготовленный HTML
шаблон, в котором, кроме таблиц, по сути только всякие <pre>-вставки с
plaintext-ом и были.
"HELO gost.example.com\r\n" это моя дань SMTP протоколу, в качестве
первого тестового application data.
Sergey Matveev [Sun, 29 Oct 2023 13:25:15 +0000 (16:25 +0300)]
Посмотрел "Повелитель ветра"
https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%B2%D0%B5%D0%BB%D0%B8%D1%82%D0%B5%D0%BB%D1%8C_%D0%B2%D0%B5%D1%82%D1%80%D0%B0
https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BD%D1%8E%D1%85%D0%BE%D0%B2,_%D0%A4%D1%91%D0%B4%D0%BE%D1%80_%D0%A4%D0%B8%D0%BB%D0%B8%D0%BF%D0%BF%D0%BE%D0%B2%D0%B8%D1%87
Фильм про относительно недавний кругосветный перелёт Фёдора Конюхова на
воздушном шаре. Понравился, мог бы рекомендовать. Хотя из недавно
просмотренных я бы ещё раз пересмотрел "Вызов"
(62b23efafa08da98884dac04c718b409d091f6ee). Очень круто выглядят облака
и циклоны в фильме -- насмотреться не мог.
Sergey Matveev [Sun, 29 Oct 2023 13:09:00 +0000 (16:09 +0300)]
Человек размещает свою автономную систему дома
https://aaka.sh/posts/20230129-bgp-at-home.html
https://news.ycombinator.com/item?id=34853136
https://varunpriolkar.com/2018/12/bgp-on-a-shoestring-the-definitive-guide/
Интересно про всё это читать и хочется поиграться со своими собственными
IP-адресами, ASN, BGP и multihoming. Только дорого и никакой практической
пользы не могу придумать.
Sergey Matveev [Fri, 27 Oct 2023 13:43:59 +0000 (16:43 +0300)]
Ох уж эти сны
Лёг я поздно, ибо дочитывал (934e7563c300bba059c4df350ae7a53ce09e4bbb)
Coders At Work. Забыл поставить будильник и проспал аж до 12:30, просрав
работу. Но когда проснулся, то было довольно мрачно и темно -- я думал
что только ранее утро. Посмотрел в окно -- ничего не видно. Надел очки
-- всё равно ничего не видно, но понял что уже из-за метели. В этом
полугодии ещё не видел снега и первая мысль: ох сколько ж времени то я
проспал!
Но до сих пор частично помню пару снов не связанных за эту ночь. В одном
из них я был у родителей дома -- до сих пор всё продолжает мне их дом
сниться (2a901a3bc832f0936979328c6527ccdc493cbaa7). Был какой-то ясный
солнечный день, но на горизонте вдалеке что-то горело -- много чёрного
дыма уходило в небо. А потом непонятно что происходило, но волной по
всей земле начало появляться пламя, асфальт как-бы загорался. Я во сне
сказал, что вот та дымящаяся штука типа рванула и на десятки (сотни? она
очень далеко) километров как дождём топливом всё залило и оно
воспламенялось. И мы в квартире, на 13-ом этаже, чувствовали повышение
температуры. А потом, типа секунд через десять, всё разом прекратилось,
как не бывало. По радио (во сне) и ТВ никаких новостей о происшествии.
А в следующем сне я был на экскурсии вместе с школьным классом.
Чего-чего, а вот школу я вообще редко вспоминаю, ну кроме времени
проведённого за FreeBSD и FidoNet в ней. А тут я с классом на экскурсии
в каком-то российском городе. Ох и красиво же было. Мы как-бы в каком-то
кремле ходили бродили и любовались архитектурой. Запомнилось, что всё
было новенькое (никакой грязи, ничего временем старости не тронутое),
блестящее (как-будто везде вместо окон мозаика разноцветная) большое
(если столб, то конкретный такой колоссальный столб), блестящее на
солнце. Вместо комнат -- хоромы как в кремлях, как в "Иван Васильевич
меняет профессию" можно увидеть, но без блёклых однотонных стен, а всё
резное, расписное. И огромное, высокое, масштабов какой-нибудь мечети
Джами в Исфахане (Иран). И куча людей одетых в старом стиле, как в
иллюстрациях царских хором к русским народным сказкам. Но в пёстрых, как
с иголочки одёжах. В некоторых комнатах и площадях танцы да песни. При
этом многие здания были и в очень ультра-современном стиле из сплошного
стекла, тоже колоссальных размеров. Некоторые из них типа бизнес
центров, где люди в чёрном (костюмчики) шатались. По ощущениям, хотелось
сказать что ничего красивее не видел и прям гордость на такой старый
русский город брала. И живность, весёлые настроения и гулянья людей
заставляли улыбаться.
И вот что за фигня только не приснится после чтения Coders At Work?
Sergey Matveev [Thu, 26 Oct 2023 22:04:56 +0000 (01:04 +0300)]
Прочитал Coders At Work
Которую начал 70e91862259101f51bd34bc4fd28d35d817d2140. Жутко
вдохновляющая книга! Меня ведь не раз уже посещали мысли что может быть
ну это всё программирование нафиг и пойти заниматься чем-то совсем
другим, пускай и низкооплачиваемым, но мне для жизни много и не надо
(тем более всё равно ж один живу). Ибо всё больше и больше думаю что я
банально уже не в состоянии решать задачи, и даже на всякие письма в
рассылке, не говоря о доработках, касающихся NNCP -- даже просто нет
желания читать полностью и думать обо всём этом.
Но читая интервью со всеми этими хакерами, вижу что моё направление
мышления, выводов, мнений, отношений, приоритетов и вообще задаваемых
вопросов -- неимоверно схоже и похоже. Споры которые возникали с
опытными коллегами -- такие же как и у этих разработчиков. Как они
подходят к задачам/проблемам, как пишут код, когда (не) пишут тесты, как
отлаживают, как читают код и где граница что его надо переписывать -- у
меня всё полностью аналогично и схоже (как и у коллег которых я серьёзно
уважаю как профессионалов). Отношение/мнение этих хакеров к формальных
доказательствам, literate programming, вопросам на собеседованиях (все
считают их просто бессмысленными), важностью документации и умения хоть
сколько-то грамотно говорить на человеческом языке -- я полностью на
одной волне со всеми ними. Что такое простой и красивый код, насколько
это важно -- аналогично. И ни у кого нет каких-то совсем уж выделяющихся
мнений и отношений ко всему что сейчас происходит в мире
программирования. Ну... только Кнут выделяется на фоне всех, но даже он
заметил, что, например, не то что не мог бы рекомендовать читать свой
Art Of Computer Programming от корки до корки, но даже не уверен смог ли
сейчас он сам это проделать.
Никто не признаёт и не считает C++ ни хорошим, ни достойным языком для
программирования и это прискорбно что он вообще используется. UML
бесполезен.
Хакеры которые занимаются JavaScript -- имеют немного другие ценности, и
например плюются от Perl. Однако остальные, кто из мира Unix/Си и других
прекрасных вещей -- очень положительно о нём отзываются, что мне очень
приятно видеть, что крутые хакеры с которыми я на одной волне, точно так
же уважают и используют этот язык. Но Кнут заметил, что программирование
схоже религии -- есть вещи/ценности/верования которые объективно не
могут у всех сойтись.
Не ожидал что Кен Томпсон меня чем-то удивит, ведь про него и так много
чего начитан, но как же мне нравятся его ответы, как нравятся отношения
и критерии оценок! Не удивительно что его творения так мне любы. Прям не
мог не отметить, что даже его (человеческий) язык местами сама простота
и чёткость, когда лучшего, более простого и понятного ответа просто
невозможно дать.
И я вдохновлён тем, что всё же какие-то но правильные выводы делаю о
многих вещах, на верном пути критерии и оценки делаю. Безусловно у меня
мозгов на килограммы меньше чем у любого из них, я банальный обычный
программист, но у которого нет какого-нибудь недуга типа ООП головного
мозга или (нездоровый) щенячий восторг от Web-технологий.
Sergey Matveev [Thu, 26 Oct 2023 12:53:44 +0000 (15:53 +0300)]
Deathcore в переходе
Вчера в подземном переходе на электричку, где регулярно играет
кто-нибудь на гитаре, двое волосатых металлюг с гитарами исполняли
какой-то современный бодрый deathcore, где в колонках был и гроул
вокал. Круто, круто, парни, так держать!
Sergey Matveev [Wed, 25 Oct 2023 22:05:43 +0000 (01:05 +0300)]
Gemini, Mercury, Spartan, Nex, Guppy протоколы
gemini://gemini.conman.org/boston/2023/10/25.1
https://geminiprotocol.net/
gemini://zaibatsu.circumlunar.space/~solderpunk/gemlog/the-mercury-protocol.gmi
https://portal.mozz.us/spartan/spartan.mozz.us/
http://portal.mozz.us/nex/nex.nightfall.city/nex/info/specification.txt
gemini://gemini.dimakrasner.com/guppy-v0.3.1.gmi
Как только люди не продолжают изобретать новые Gemini протоколы, упрощая
и упрощая всё, даже доходя до UDP. Автор первой статьи предупреждает о
пагубности последней идеи. А у меня чешутся руки написать своё видение
протокола из этой серии, но сдержусь.
Sergey Matveev [Wed, 25 Oct 2023 14:44:19 +0000 (17:44 +0300)]
PyPI и pygost, pyderasn пакеты
https://pypi.org/project/pygost/
https://pypi.org/project/pyderasn/
Вижу что после удаления проекта с PyPI, на его месте всё равно появился
проект (прежде выдавалась честная 404). Какие-то заглушки с описанием:
A package to prevent Dependency Confusion attacks against Yandex.
Почему PyPI вообще разрешает что-то создавать поверх старого имени? Мда...
Sergey Matveev [Wed, 25 Oct 2023 13:33:37 +0000 (16:33 +0300)]
EBCDIC не совместим с GDPR
https://shkspr.mobi/blog/2021/10/ebcdic-is-incompatible-with-gdpr/
Из-за того, что банк до сих пор использует древние компьютеры IBM с
EBCDIC кодировкой, в которой нет всяких "á, è, ô, ü", то на него клиент
подал в суд за нарушение GDPR, ведь его имя не смогли корректно ввести в
систему.
Sergey Matveev [Tue, 24 Oct 2023 14:06:46 +0000 (17:06 +0300)]
Пробую использовать nnn
https://github.com/jarun/nnn
Почти всё время я перемещаюсь и оперирую файлами просто в zsh. Но
иногда, когда надо или оглядеть какую-нибудь мешанину и/или выборочно из
неё что-то удалить/скопировать/переместить, то запускаю ортодоксальный
файловый менеджер (7efac46178ded122377f4d32485a3ab02d9574ea) Midnight
Commander, ибо подобными (187fbd62f66088016c61da19a36f8f0a7b9a48fb
Volkov Commander, Far Manager (код ещё сидел под Microsoft Windows)) я
пользовался ещё с детства.
На днях надо было попрыгать по ряду директорий с фотографиями и
запускать в них "sxiv -t ." для preview просмотра их содержимого.
Запускать sxiv натравив на все директории -- слишком большой объём,
слишком долго ждать. Но в MC каждый раз приходилось набирать руками этот
sxiv вызов. На n-ый раз я быстро сделал one-line "foo" скрипт, тупо
чтобы меньше набирать пришлось.
Снова задался вопросом: есть ли приемлемая замена MC? Слышал я про
ranger, vifm, nnn и ещё наверное какие-то. ranger сразу отпадает:
написан на Python, значит будет тормозить, а мне надо чтобы всё
мгновенно запускалось. vifm когда-то пробовал, но как-то всё не шибко
было удобно с ходу. Главное что я хочу: progress bar отображающий cp/mv
операции, со скоростью и ETA. Ну и быстрое перемещение между двумя
местами, чтобы из одного в другое быстро что-то перебрасывать --
собственно, две панельки поэтому и удобны в ортодоксальных менеджерах.
nnn при выходе иногда оставляет coredump, с ходу пока не понял почему.
Но компилируется из одного .c файла, занимает мизерное место. С одной
стороны он не ортодоксальный и нет двух панелек -- но есть tab-ы (они их
называют контекстами), между которыми можно быстро прыгать tab-ом или
циферками. Быстрый fuzzy-like поиск и перемещение: "/", вводим часть
имени, если в выборке остался один элемент (и это директория), то сразу
переходим в него. Непривычно, не прощает опечаток, но нажатий клавиш
минимум.
По-умолчанию он использует xdg-open для открытия файлов. XDG ненавижу.
Но достаточно export NNN_OPENER=zsh-mime-open и мои .mailcap/.mime.types
файлы начинают работать как и везде и всякие .jxl сразу же начинают
просматриваться. Хочется мне запускать "sxiv -t ."? Просто добавляю plug
в виде NNN_PLUG='s:!sxiv -t .*' -- нажимая ";s" в nnn, будет запускаться
sxiv команда.
Выделять что-то, переключаться между контекстами и делать
вставку/копирование -- требует минимум нажатий клавиш. Прогресса
никакого нет. Точнее штатная документация говорит что под BSD системами
вы можете самостоятельно отправлять SIGINFO сигнал
(37bc49efafc88667a4bd371133e843ddbc6c0ce3, b10b27905edfce6ad8054172f508ada4e3ebc09f, 954a5de29f23ee16e037b107e5847fd33799246e) и видеть прогресс копирования.
Но mv прогресс не покажет. Может быть можно написать собственный плагин,
который возьмёт selection и самостоятельно раскидает всё в tar и pv
например? Без проблем! Добавляю "c"-plug: NNN_PLUG='c:!_nnn-cd*' и
создаю _nnn-cd исполняемый файл:
#!/usr/bin/env zsh
set -e
sel=${NNN_SEL:-${XDG_CONFIG_HOME:-$HOME/.config}/nnn/.selection}
[[ -s $sel ]]
read -d $"\x00" -A tgts < $sel || :
size=$(du -A -c $tgts)
size=(${=size})
size=${size[$#size - 1]}
for tgt ($tgts) ( cd $tgt:h ; tar cf - $tgt:t ) |
pv --wait --interval 0.5 --size ${size}k |
tar xf - --options read_concatenated_archives
В zsh можно сразу же удобно в массив прочитать null-terminated список
файлов selection-а. Натравливаю на всё это du чтобы хотя бы примерно
иметь представление о размере данных. А далее для каждой цели делаю по
tar архиву, чтобы в каждом из них только последний элемент явно
копировался (то бишь "music", а не "home/stargrave/music").
В nnn нельзя просто взять и указать "cd куда-то". Или переходить в ~,
или в /, или в какой-то bookmark и от них уже через "/" отправляться в
нужную директорию. Но ведь plugin может быть просто как-раз cd команда
же. А у меня есть время от времени используемая "cf", которая запускает
bfs и fzf, которыми можно fuzzy выбрать директорию для перехода.
NNN_PLUG='c:!_nnn-cd*;C:!_nnn-cd /*'
Последняя строка -- протокол взаимодействия с nnn через pipe. Тут мы ему
говорим чтобы сменил директорию. ";c" запустит интерактивный fzf от
текущей директории, а ";C" -- от корня.
Midnight Commander умеет и прозрачно переходить в архивы. nnn же
использует archivemount утилиту для этого, которая поверх FUSE монтирует
archive. Впервые использовал, но так как она работает через libarchive,
через которые вообще все tar/cpio/whatever в FreeBSD сделаны, то значит
поддерживает всё что нужно сразу же. Действительно -- работает. Во
временной директории nnn из под пользователя она всё монтирует. С
.tar.zst проблем не нашлось.
Когда-то я ещё использовал возможности подключения к FTP или SFTP в MC,
но уже наверное годами ни разу не использовал эти возможности, обходясь
ручным вызовом ftp/sftp ради единичных файлов.
Похоже, что nnn более чем удовлетворителен и годится на замену MC,
который тянет за собой GLib, libssh2 и S-Lang.
Sergey Matveev [Fri, 20 Oct 2023 20:48:23 +0000 (23:48 +0300)]
Спросили паспорт при покупке пива
Брал сегодня пиво в магазине. Даже не для себя (я то вообще ничего
алкогольного не пью). Попросили показать паспорт. Стукнуло 36, а не
поверили что я дорос.
Отталкиваясь от того, что уж TLS то должен работать, то пускай сначала
устанавливается TLS 1.3 соединение, а уж из него экспортируется ключевой
материал. И аутентификация двусторонняя появляется сразу же сильная, на
основе X.509 ключевых пар.
Также осуществляется посылка пустых (payload) пакетов каждые десять
секунд, если легитимного трафика нет. Ну и heartbeat по TLS каналу.
И сколько угодно параллельно сессий может работать, в отличии от
предыдущего варианта.
Вместо полноценного шифра использую BLAKE3 XOF который XOR-ится с
данными. На маленьких пакетах это немного медленнее ChaCha20-Poly1305,
но те кто приближается к килобайтному размеру -- уже быстрее. Poly1305
соответственно заменён BLAKE3-MAC. Для выработки ключей -- BLAKE3-KDF.
Размер MAC-а увеличил с 5 до 6 байт, за счёт уменьшения передаваемого
номера на 1 байт -- этого всё равно достаточно, судя по всему.
Шифрование заголовка Blowfish-ем так и осталось.
Вот вчера понадобилось быстро сделать какой-нибудь CA и пару EE
сертификатов. Учитывая что zeasypki я отнюдь не каждый день пользуюсь,
то в 100% случаев начало работы с ним начинается с вызова без
аргументов, а дальше по usage становится всё понятно, что не перестаёт
радовать.
$ zeasypki ca eddsa ca
$ zeasypki new ee/eddsa/ca/server
$ zeasypki new ee/eddsa/ca/client
$ zeasypki keypair ee/eddsa/ca/server > server.pem
$ zeasypki keypair ee/eddsa/ca/client > client.pem
$ cp ca/eddsa/ca/cer.pem ca.pem
А ещё недавно менял шифрование ключей в нём с GnuPG на age. Ровно по
одной строчке в key_encrypt/key_decrypt функциях пришлось поменять.
Я прям вовсю ухожу с GnuPG и OpenPGP в целом -- они по сути остаются как
бы только для WoT/доверия и для почты. Прямо вот сейчас в рассылке
OpenPGP снова ругань Коха со всеми остальными и категорическое неприятие
им предлагаемых изменений, которые похоже прям вот-вот уже приведут к
конкретному расколу в стандарте и реализациях. А я уже вовсю подписываю
и релизы и Git-тэги (c5e9b245012a5a1ac1732b2c94fc89d9e760efe3, d2890179a8bbb7bc3f2dcd807faa906e6ab78224), а также уже не оставил и
зашифрованных .gpg файлов.
Sergey Matveev [Thu, 19 Oct 2023 07:57:26 +0000 (10:57 +0300)]
Муха устроила погром
В Интернете часто показывают фотографии того, как какая-нибудь хаски
устраивает погром в квартире, выгрызая двери, приводя диваны в полную
негодность. Мама тут присылала намедни фотографию квартиры когда она
зашла домой -- по всему коридору порванные пакеты, огрызки, мусор, грязь
и подобное. За всю нашу историю владения собаками -- такое впервые.
Просто впопыхах забыли выбросить пакет с мусором и Муха
(63f7f86c5e15507ca960e0b7d861176c48a4655c) его разворошила, ведь там же
остались аппетитные запахи.
Sergey Matveev [Thu, 19 Oct 2023 07:43:32 +0000 (10:43 +0300)]
Куча black metal на русском языке
Прослушал кучу дисков с прошлого (b82620abe745fd85916525228597ccb44068ad2a)
концерта. Мало того, что музыка много где нравится именно мелодичностью,
а не техничностью (хотя и такое есть), но и нравятся тексты песен. Не то
чтобы я всё разбираю, тем более понимаю смысл, но лексикон обожаем! ca23bc85781a099a3f61719c1714957ac20c8e6c 113ca725be819d6c11d69bf98825da50bfc949fa 2d440a96b081b1740db1c2d1183ab04c3ecec2e0
Морок крут, в котором даже балалайки встречаются и клёвый женский вокал.
White Night/Black Forest дико местами напоминает мне Solefald
(77d6fc201a7da5267ba59ce5047ee0f57ec26269), даже внешний вид frontman.
Frostnatt инструментальный альбом прям погружает в атмосферу сибирской
зимы. Altwald, Credimus, Heretoir, Horn, Туга -- все понравились
музыкой. Громоверж прям сильно такой языческий, но очень классно
записан, атасный вокал, воодушевляющие слова, красивая музыка с огромным
количеством дудок. Split "Ural Megalith" содержит: Nothing, Темень,
Всполох и Вихрь. Слышал названия эти групп, но не ожидал что, особенно
две последние, такие интересные и прекрасные оказались. В общем, под
большим впечатлением и очень обрадован музыкальной кладези в стране.
Sergey Matveev [Thu, 19 Oct 2023 07:35:58 +0000 (10:35 +0300)]
Начал читать Coders At Work
https://en.wikipedia.org/wiki/Coders_at_Work
В книге собраны интервью со всякими известными программистами и
хакерами. Пока я прочитал только о четверых. Очень нравится то, что
ничем особенным их ответы не выделяются относительно того, что и я бы
говорил. В плане рекомендаций и мнений относительно C++ какого-нибудь
и других технологий. Пока они все довольно чётко разграничивают то, что
делают академики со всякими комитетами и те, кто реально в
"промышленности", а не выдуманном мире первых. У всех самые сложные баги
связаны с конкурентной работой в программах -- как и я сколько раз
убеждался в сложности этого занятия. Не шибко много каких книг
рекомендуют, а вот читать код в один голос. Интересно что там будет в
интервью у Кнута какого-нибудь или Томпсона.
Sergey Matveev [Sun, 15 Oct 2023 08:59:53 +0000 (11:59 +0300)]
Only Fetish Fest 6: Чернее чёрного
Более четырёх месяцев так и не выбирался на концерты. И тут вот посетил
наверное самый офигенный из всех black metal фестивалей за всю историю!
И крут он не только, так сказать, техническими сторонами, типа отличного
звука, отличной толпы и поддержки и количества людей, отличного
настроения и веселья, отличной подготовки performance музыкантов, но и
разнообразием black-а как такового в принципе. И медляки, и
полуатмосферные вещи, и нечто авангардное, и танцевальное, и true black,
и raw black, и с чистым вокалом, и с гроулом, и скримингом, и даже не
без горлового пения немного, и максимально мрачного, и задорно
плясовально танцевального, и яростно быстро агрессивного. Никакого death
не было и в помине! Это всё было просто интересно слушать, ибо
разнообразия хоть отбавляй! И похоже впервые я мог бы впервые сказать
что, пожалуй, моему организму достаточно distortion звука было, пресытился!
Открывали сей чёрный шабаш ребята из Саранска "По́́́тьма". Крутой вокал,
крутые музыканты, интересная разнообразная музыка, вообще headliner-ами
могли бы быть. Слэм уже начался на них.
Black Forest из Северодвинска были крутейше агрессивны и мощны. Очень
понравился их кавер на "I'm Gonna Be Your God" -- куда куда более
суровый чем у Slayer. Офигенны, народ бесился ещё как.
Следом были Credimus. Вот на них как-то всё было уныловато, хотя под
конец народ всё же побесился. Вроде бы и играют неплохо, долбят, делают
стену distortion-а гитарами, гроулят, в костюамх, но чего-то вот не
хватало. Возможно после Black Forest все силы были выжаты? Но у них
наверное был самый быстрый барабанщик из всех что слышал. Dysthymia
(82ad61dd650a01e72aa3a1c1c8d4f11ba2af20d4) делают больше ударов, но
ничего кроме них и нет, тогда как в Credimus всё очень сложно и
разнообразно. Но на одних барабанах не выедешь.
Meister Leonhardt мне уже знаком (37b4cb1c9b843cfe6353b539269e0f26b816bda8).
А судя по разговорам и вопросам в зале -- не многим. Всякий этот black
metal конечно должен иметь некую толику бунтарства, но тут ребята
перегнули палку. Пока настраивались, то ходили в нормальных (как у меня)
футболках. Но перед выходом на сцену все одели гавайские рубашки!
Задумка клёвая, отдельно респект. А вот вокалист, огромных размером, был
полностью в балахоне, в чёрных перчатках и полностью чёрной
непроницаемой одёже на голове -- ни кусочка тела не видно. Я то знал что
на них будет круто. Так и было. После выступления в толпе слышал "я же
тебе говорил что они ахуенны!".
Ведьмин Прах из Уфы, судя по разговорам, ждали многие. Вокалист в
ведьминой шапке, зелёная подсветка... прям чувствуешь что на каком-то
шабаше. На сцене только вокалист/гитарист и басист. Ударные -- drum
machine. Скорость и буйство знатные, но без агрессии, только весёлые
пляски. Это как взять какую-нибудь "Лесную царевну" у Ashen Light и
только подобное с забавными текстами и играть. Отрывался народ под всё
это знатно. Честно говоря, вообще не понимал откуда у людей могут ещё
браться силы на продолжение слэма -- судя по всему, из закромов
последние были. И греблю устраивали и сколько только людей не
перетаскали на руках. В общем, понял отчего и почему их так ждали.
А закрывали всё это Туга. Быстрый зубодробительный black, но очень такой
разнообразный и с быстро меняющимися темами. Кто-то пытался послеймиться,
но по мне так это можно было просто стоя слушать и наслаждаться. На
сцене череп со свечкой зажжённой на нём. Очень круто, послушать и на
записи и в живую однозначно хотелось бы ещё. Но до конца я их не
дослушал: время уже было почти полночь и мне надо было успеть на
электричку (ведь ещё и в гардероб бы очередь была). Организатор в 23:30
уже им намекал что пора закругляться, так что, надеюсь, я только минут
пять и не дослушал.
По этому концерту особо сильно понимаешь что black metal вовсю
эволюционирует и прогрессирует, меняется, не стоит на месте. То тут, то
там, но явно элементы из других жанров и стилей притаскиваются. И так и
хочется сказать что тут группы только лучшее от всех брали. Но без death
metal, который частенько сопутствует black.
Sergey Matveev [Fri, 13 Oct 2023 07:59:43 +0000 (10:59 +0300)]
Современные UI
https://artemis.sh/2023/10/12/scrollbars.html
Автор ругается на то, что scrollbar-ы становятся не то что меньше, а
вообще исчезают даже, скрываются. Тоже в каком-то LiveCD и современной
GUI программе видел такое. И не было ни одного раза чтобы я не
проматерился при этом, ведь scrollbar мягко говоря часто использую,
чтобы быстрее перемещаться.
Вчера же я пошёл оплачивать всякие домены и VPS свои. LiveCD на
отдельном ноутбуке приходится запускать, ведь нихера ничего не работает
под броузерами даже с JavaScript хотя бы двухлетней давности (которые у
меня в виртуальной машине есть). Отличился reg.ru. Его интерфейс
как-будто каждый 1-2 года меняется, как-будто прям полностью меняют
команду разработки UI. И каждый раз они умудряются переплёвывать себя в
неюзабельности. Я бы не поверил в это, но когда показывается список
доменов, то в нём отображается только их имена. Нет даже даты до какого
они действуют. Раньше там кроме этого были и даже NS-сервера видны.
Приходится буквально переходить на каждый их них чтобы увидеть дату.
Когда-то были ясные ссылки на услуги (домены там, VPS), а сейчас я с
трудом догадался тыкнуть на какую-то херь с чёрточками и это оказалось
ниспадающее меню. Нашёл иконку (да, даже если мышку навести, то никакого
всплывающего текста о том что это за кнопка не появится) с настройками
таблицы. В ней указано что всякие даты и куча другой информации мол типа
отображаются, это даже отключить нельзя. Тыкая на кнопочки переключения
видимости это информации мне выдаются сообщения о том что это нельзя
отключить (я думал что выключив и включив всё появится) -- и эти
сообщения заняли четверть экрана, очень неспешно по таймеру пропадая.
Если поперемещаться у них в помощи, то например кнопка на мышке или в
броузере назад -- не работает, ибо это же всё динамическое, AJAX, Web
2.0/x.0, поэтому ни штатных средств навигации, ни Home/End не будет
работать. На других сайтах, пока я всё это проделывал, тоже видел что
"назад" не работает, как частенько и PgUp/PgDown -- используйте
scrollbar и мышку... ой, а нету же scrollbar, вы должны туда
прицелиться, а потом перемещать ползунок, ибо тыкнуть в нужное место
scrollbar-а уже не выйдет.
Ввод телефонного номера например это на каждом сайте всегда по разному.
Где-то это просто вводится as-is текстом. Где-то они дают подсказку
серым цветом о том, в каком формате надо вводить, начиная с "+7": где-то
вводишь +7 и всё ok, где-то оно съедается, но дальнейшая часть номера
вводится, где-то съедается "+", а 7 становится первой цифрой после "+7".
Где-то, введя три цифры, надо нажать пробел чтобы он в дальнейшую ячейку
для 2-4 цифр перепрыгнул, где-то это происходит автоматом. Нажимая
КАЖДУЮ цифру, приходится смотреть на экран и смотреть где же мой курсор
и всё ли пошло по плану.
Отдельная "хвала" цветовой схеме. В некоторых местах read-only текст
показан бледным цветом. Настолько бледным, что я, не имея проблем с
монитором домашним прежде, вынужден был головой подвигать чтобы
действительно убедиться что там где-то в этом месте написан таки текст,
а не просто мне так показалось. Почему нельзя его сделать не бледно
бледно пребледно альбиносо серым, а нормальным ближе-к-серому цветом,
как в какой-нибудь Windows 95 элементы в интерфейсе показывались? Просто
с ходу про них вспомнил: всегда везде видно, на любом мониторе. Бывает
так, что текст там чёрный, а фон еле серый -- в итоге ты даже не
понимаешь что это read-only элемент на самом деле, поэтому тебе и не
дают его исправить. Но еле-серым на белом, почти невидимого цвета...
Плюс ещё сейчас мода все таблицы делать без рамок/разграничителей,
просто с висящими в воздухе элементами, когда даже не понятно кто из них
куда и как относится и является ли частью вот этой или другой формы.
Я реально охреневаю: это вообще хоть кто-то когда-либо пытался из
разработчиков/менеджеров/тестеров использовать? Думаю что да, но просто
такие сейчас стали стандарты юзабельности. Мир сходит с ума, лютое
безумие, идиотизм и дебилизм. Или это всё удобно на смартфонах может
быть? Какого хера уж интерфейсы то работы с регистратором доменов или
VPS-ок делать заточенными для смартфонов?
Sergey Matveev [Fri, 13 Oct 2023 05:09:44 +0000 (08:09 +0300)]
CDN ivi, anycast, ECMP
https://habr.com/en/companies/ivi/articles/240237/
https://habr.com/en/companies/ivi/articles/237349/
Наткнулся тут во время поиска на старые статьи от бывшего коллеги из
ivi, рассказывающего про сетевое устройство их CDN-а. Много лет назад я
не шибко понимал всё что там написано. Когда запускали мои наработки на
прокси серверах, то чтобы вывести/ввести узел в строй, просто
опускали/запускали BGP демона. И я не понимал полностью все процессы что
за этим стоят и как так оно всё так работает. Сейчас же мне кажется что
ведь всё так очевидно и просто.
Sergey Matveev [Thu, 12 Oct 2023 20:43:43 +0000 (23:43 +0300)]
Список частей с BluRay
https://github.com/beandog/bluray_info
bluray_info утилита позволяет удобно получать метаинформацию
о мультимедиа данных BluRay диска. Причём сразу же в формате
пригодном для mkvmerge (--title X --chapters --xchap).
Sergey Matveev [Wed, 11 Oct 2023 17:15:17 +0000 (20:15 +0300)]
Третье место
https://en.wikipedia.org/wiki/Third_place
https://ru.wikipedia.org/wiki/%D0%A2%D1%80%D0%B5%D1%82%D1%8C%D0%B5_%D0%BC%D0%B5%D1%81%D1%82%D0%BE
Первое -- дом, где живём. Второе -- работа, где проводим большую часть
времени. А вот ещё выделяют третье, например бары, кафе, церкви,
библиотеки, спортзалы, парки, и т.д.. В примере русскоязычной страницы
указаны coworking и антикафе. Я про них только слышал, но не бывал. Как
и никогда не был, в отличии от большинства сверстников в Королёве, в
Интернет-кафе. Для меня третье место это явно концертные площадки, хотя
общения явного с окружающими там нет.
Sergey Matveev [Wed, 11 Oct 2023 11:24:44 +0000 (14:24 +0300)]
RFC: The Twelve Networking Truths
https://www.rfc-editor.org/rfc/rfc1925
Abstract
This memo documents the fundamental truths of networking for the
Internet community. This memo does not specify a standard, except in
the sense that all standards must implicitly follow the fundamental
truths.
Acknowledgements
The truths described in this memo result from extensive study over an
extended period of time by many people, some of whom did not intend
to contribute to this work. The editor merely has collected these
truths, and would like to thank the networking community for
originally illuminating these truths.
1. Introduction
This Request for Comments (RFC) provides information about the
fundamental truths underlying all networking. These truths apply to
networking in general, and are not limited to TCP/IP, the Internet,
or any other subset of the networking community.
2. The Fundamental Truths
(1) It Has To Work.
(2) No matter how hard you push and no matter what the priority,
you can't increase the speed of light.
(2a) (corollary). No matter how hard you try, you can't make a
baby in much less than 9 months. Trying to speed this up
*might* make it slower, but it won't make it happen any
quicker.
(3) With sufficient thrust, pigs fly just fine. However, this is
not necessarily a good idea. It is hard to be sure where they
are going to land, and it could be dangerous sitting under them
as they fly overhead.
(4) Some things in life can never be fully appreciated nor
understood unless experienced firsthand. Some things in
networking can never be fully understood by someone who neither
builds commercial networking equipment nor runs an operational
network.
(5) It is always possible to aglutenate multiple separate problems
into a single complex interdependent solution. In most cases
this is a bad idea.
(6) It is easier to move a problem around (for example, by moving
the problem to a different part of the overall network
architecture) than it is to solve it.
(6a) (corollary). It is always possible to add another level of
indirection.
(7) It is always something
(7a) (corollary). Good, Fast, Cheap: Pick any two (you can't
have all three).
(8) It is more complicated than you think.
(9) For all resources, whatever it is, you need more.
(9a) (corollary) Every networking problem always takes longer to
solve than it seems like it should.
(10) One size never fits all.
(11) Every old idea will be proposed again with a different name and
a different presentation, regardless of whether it works.
(11a) (corollary). See rule 6a.
(12) In protocol design, perfection has been reached not when there
is nothing left to add, but when there is nothing left to take
away.
Security Considerations
This RFC raises no security issues. However, security protocols are
subject to the fundamental networking truths.
References
The references have been deleted in order to protect the guilty and
avoid enriching the lawyers.
Sergey Matveev [Wed, 11 Oct 2023 10:11:54 +0000 (13:11 +0300)]
Рыбные салаты в Иране
https://moslenta.ru/news/lyudi/kukhni-11-10-2023.htm
https://moslenta.ru/lyudi/na-rasstoyanii/budete-est-rolly-v-irane-vas-nazovut-sumasshedshim-persiyanka-o-nacionalnoi-ede-pereezde-v-moskvu-i-russkom-mentalitete.htm
Иранцы не понимают прелести ни мимозы, ни селёдки под шубой. Именно эти
два салата я *всегда* беру в Глобусе себе. Больше могу никакой не брать,
но мимозу уж обязательно.
Sergey Matveev [Tue, 10 Oct 2023 07:28:48 +0000 (10:28 +0300)]
Музыка в метро вернулась
С этих выходных появились снова места для выступления музыкантов. У меня
два перехода, где уже вовсю по пути на работу играет живая музыка. А то
со времён COVID прикрывали же это всё, к сожалению.
Sergey Matveev [Mon, 9 Oct 2023 18:52:57 +0000 (21:52 +0300)]
Подарил проигрыватель пластинок папе
Его простенький проигрыватель сломался. А пластинок много, даже
современных. И папа любит их слушать, явно нравится весь этот
фетиш с тем чтобы достать и поставить её.
Съездили с ним в магазин Аудиомания, проконсультировали, рассказали,
порекомендовали всякого. Приобрели Audio Technica неплохой. С
автоматической системой запуска/останова, которую раньше и не видели
никогда в действии.
Sergey Matveev [Sun, 8 Oct 2023 08:34:49 +0000 (11:34 +0300)]
goredo 2.0
http://www.goredo.cypherpunks.ru/News.html#Release-2_005f0_005f0
После более чем недели разработки по вечерам, выпустил новую версию
сабжа. В рассылке сказали что на большом количестве целей goredo
работает в разы медленнее чем apenwarr/redo. Я особо с оптимизацией и не
заморачивался, но, действительно, время затрачиваемое на нахождение
зависимостей в нём идёт на минуты, а redo-sources я вообще не смог
дождаться на своём синтетическом примере.
Оказалось, что в нём просто тьма одной и той же работы выполнялась
каждый раз при рекурсивном прохождении информации о зависимостях.
redo-sources был написал просто ужасно неоптимально, слишком дуболомно.
Очень много времени затрачивалось на постоянную работу с путями:
path.Split, path.Join, path.Abs и подобные. Сотни мегабайт памяти
уходило на хранение строчек, большая часть из которых одинакова.
Информация о зависимостях в памяти хранилась вообще как буквально
map[string]string, как словарик вытащенный о каждой из цели из .rec
файла, где у всех одни и те же строковые ключи.
Оптимизацию и проверку скорости омрачал тот факт, что регулярно стали
появляться ошибки при любых операциях с файлами, типа fd.Stat(),
fd.Read(). Раньше никогда не вылазило ничего подобное. Но когда
запускаются десятки тысяч целей, у каждой из которых по тысяче
зависимостей, то иногда секунд десять может всё идти нормально, иногда
чуть ли не секунду от каждой цели вылазит сообщение об ошибке работы с
файлом. Долго выяснял, но стало похоже на то, что как-будто os.File
пытается работать с уже другим файловым дескриптором. Как-будто один
закрыли и его переиспользовали, но os.File об этом не знал.
Оказалось, что в Go на os.File вешается finalizer, который закрывает
файловый дескриптор. А срабатывать он будет если попадает под сборщик
мусора. Долго искал и место где у меня с какой-то стати, но переменная
выходит за scope и почему-то попадает под GC. Чуть ли не в самом начале
main(), действительно, был if {} scope внутри которого открывался файл,
и не предполагалось что он должен закрываться. Короче исправил проблему.
Вместо чисто string путей использовал структуру, внутри которой
предвычисленные пути (абсолютный, путь к .rec файлу зависимости,
относительный путь к Cwd). А также завёл кэш этих самых строчек, чтобы
не создавалась куча копий одной и той же строки по сути.
Вместо хранение map[string]string зависимости, имело смысл хранить
нормальные структуры с int-ами. Так и сделал. Даже хэш у меня прежде
хранился в виде шестнадцатеричной строки, ужас. Но потом до меня дошло,
что информация об иноде: размер, номер иноды, ctime, mtime -- не требуют
явного парсинга, ибо они используются по сути просто только для
сравнения. Всё это можно просто положить одной бинарной строкой
сконкатенированной. Завёл кэш и инодов, чтобы не плодилось копий, и кэш
хэшей. Позже дошло что вероятность того, что для заданной иноды хэш
может отличаться -- мизерная. Поэтому можно иноду и хэш хранить вместе в
одной 6*8+32 байта строчке. А ещё можно использовать не строчку, которая
хранит указатель и длину данных, а просто массив фиксированного размера.
Ну и дошло до того, что парсинг двух гигабайт recfile-ов отнимает (что
не удивительно) львиную долю времени. Перешёл на бинарный формат. Думал
было взять что-то существующее, типа Protocol Buffers, но плюнул. Просто
друг за другом идущие chunk-и, каждый из которых начинается на 16-бит
длину, далее один байт тип (ifcreate, ifchange, ifchange-nonexistent,
stamp, always), а далее либо имя файла (до конца chunk), либо перед ним
ещё фиксированного размера поля иноды с хэшом. redo-depfix команда
теперь может сконвертировать все имеющиеся .redo/*.rec в .dep бинарные
файлы, а redo-dep2rec может наоборот показать .dep в виде recfile.
В общем, теперь всё в разы быстрее apenwarr/redo, на порядки чем было
прежде. Правда и ценой использования RAM.
Sergey Matveev [Wed, 4 Oct 2023 15:45:50 +0000 (18:45 +0300)]
Необычные твари на Земле
https://habr.com/ru/companies/leroy_merlin/articles/765286/
Про ящериц, которые стреляют своей же кровью из глаз не слышал
никогда. Фринов никогда не видел -- жутко выглядят. Казуара даже
помню как выглядит, но не знал что это самые опасные птицы.
Sergey Matveev [Wed, 4 Oct 2023 05:16:13 +0000 (08:16 +0300)]
DJB о Kyber-512
http://blog.cr.yp.to/20231003-countcorrectly.html
Катком Бернштайн проходится по NIST-у и его стандартизации Kyber-а,
советуя держаться от него подальше.
Sergey Matveev [Mon, 2 Oct 2023 11:57:57 +0000 (14:57 +0300)]
История спектра цветов окружающих нас предметов
https://habr.com/ru/articles/764798/
Любопытная статистика о цветах вокруг нас. Исчезло дерево, появился
пластик и метал, синтетические синие цвета. В общем и целом мир
становится темнее, мрачнее и холоднее.
https://en.wikipedia.org/wiki/Sanitarium_(video_game)
https://www.youtube.com/watch?v=ggrBv4UqLQs
А точнее Sanitarium. Шизариум это версия с русским переводом. Про этот
квест я что-то забыл, а ведь он был признан одним из лучших наряду с
Grim Fandango. Я же хотел пройти крутые и великие квесты, а в ScummVM
как-раз недавно добавили поддержку этой игры.
Просто совпадение, но в RSS появился выпуск от одного геймера об этой
игре. Я на день раньше начал её проходить. В walkthrough подглядывал, но
чтобы мне не интересные головоломки решать (ну не люблю я все эти игры в
водопроводчика например).
В Sanitarium очень понравилось как всё нарисовано, особенно когда я
оказался в теле циклопа. И круто что чем ближе к концу, тем больше и
больше становится понятного что же всё это означает.
Но всё же Downfall (оригинал, а не переделку 2016-го) не переплюнуть,
только нервно в сторонке покуривать. Такого впечатления уже возможно
никогда никогда не произведёт!
https://mwl.io/archives/23127
Есть давний миф о том, что PF сделана в OpenBSD, один раз портирована на
FreeBSD, с тех пор не обновляется и не изменяется толком. Типа PF на
OpenBSD постоянно улучшается, а в FreeBSD на него плюнули. Человек,
написавший много книг про BSD системы и разный софт под них, объясняет
как дела обстоят на самом деле.
Прожил две недели с двумя нашими собаками. Муха прежде
(63f7f86c5e15507ca960e0b7d861176c48a4655c) ещё не была у меня, всё для
неё новое и непривычное. Даже не ела в первый день из-за переживания. Но
потом обвыклась и по полдня обе у меня на коленках дрыхли, пока я за
компьютером. Обожаю собак, а эти две обожают меня.
https://www.libking.ru/books/sf-/sf/575930-ted-chan-pravda-faktov-pravda-oshchushcheniy.html
https://ru.wikipedia.org/wiki/%D0%98%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8F_%D0%B2%D1%81%D0%B5%D0%B9_%D1%82%D0%B2%D0%BE%D0%B5%D0%B9_%D0%B6%D0%B8%D0%B7%D0%BD%D0%B8
Очень крута данная книга, как по мне! Куча примеров, когда идеальная
память (записанная на электронный носитель, без ошибок
воспроизводящаяся, не изменяющаяся со временем) будет не просто вредить,
но и разрушать отношения людей. Как забывание многого крайне важно.
И в первом сезоне "Чёрного зеркала", в эпизоде "История всей твоей
жизни", как-раз точно так же, как и в книге, присутствуют всё
запоминающие устройства и как это негативно скажется на жизни людей.
Уже писал как впечатлила (611484087e7d3f7a7ed8e72f0636f92dbd965068) меня
та серия, ибо я бы точно такие же шаги и выводы делал на месте главного
героя. Вот и книга обо всём этом же.
http://lists.cypherpunks.ru/archive/goredo-devel/ZRGx74oYIMB_OUSL@stargrave.org/
https://gitlab.nic.cz/labs/bird/-/commit/a80cd4707464cedb526eb72e7704b097af20beb7
Сегодня день каких-то очевиднейших открытий. Во-первых, в goredo я
поправил неприятное поведение, когда при параллельной сборке он мог
десяток сообщений вывести о том что, мол, resource deadlock avoided при
попытке захвата lock-а на файл. На BSD системах не воспроизводится
вообще. Сегодня попристальнее почитал man по fcntl lock-ам и они явно
говорят, что Linux вполне себе может выдать эту ошибку и когда на самом
деле deadlock-ов никаких нет, мол показалось. Так что с чистой совестью
можно проверять на эту ошибку и просто *молча* пытаться брать lock заново.
Сколько лет это сообщение донимает GNU/Linux пользователей, а я только
сейчас дочитал man до нужного места.
А дальше я решил ещё раз посмотреть в репозиторий BIRD на тему есть ли
там какой прогресс с ECMP (3eeb6b3ec3b4abdd3a25f78402f02f3cf821305e)
поддержкой в FreeBSD. И я же ведь видел этот коммит прежде, аж декабря
прошлого года, но то ли криво собрал, то ли ещё чего ступил прежде, но
сейчас собрал BIRD с bsd-netlink реализацией и... ECMP прекрасно
заработал! Вижу двойные маршруты до одной и той же цели, через разные
интерфейсы. В 190e3364aaed45929ea025671bdc0a331cd6aad0 я обозвал BIRD
слишком уж Linux-центричным, чуть ли не готовым его поменять на FRR
какой-нибудь. Но он реабилитировался, так уж и быть. MTU всё равно для
default route не умеет делать (ну или я ещё не понял как это провернуть),
но да и ладно.
https://en.wikipedia.org/wiki/Gabriel_Knight:_Sins_of_the_Fathers
https://en.wikipedia.org/wiki/The_Beast_Within:_A_Gabriel_Knight_Mystery
Пробовал когда-то начинать играть в первую часть, но моментально уставал
от скуки от постоянного трёпа на темы мне не очень интересные. А трёпа
там уйма! Но игра многими считается хорошим квестом. В этом месяце
посмотрел (на ускоренной промотке) прохождение. И точно не пожалел что
не пытался играть -- игра чуть ли не полностью состоит из диалогов. Вот
совсем не по мне, хотя ничего плохого и не могу сказать.
Вторая игра по сути является детективным фильмом, многосерийным. Квеста
в игре, как такового, не шибко то много, просто направление главного
героя в нужное русло. Это мне больше понравилось, но, опять же, это
сложно прям к квесту отнести.
https://www.youtube.com/watch?v=OIWNyibf_0w
Известная в Германии путешественница в совсем недавно, этим летом,
20тыс. проехала на нашей Ниве из Германии в Пакистан, через Турцию
и Иран. Посмотреть на людей можно. Приятно что отнюдь не мало
понимаю чего там она по немецки говорит. Ниву очень хвалит.
Сам хотел было в Пакистане побывать, но то одно, то другое, то третье --
так и не дошло до него дело ещё.
https://wiki.netbsd.org/projects/project/Add_Argon2_password_hashing/
Уже упоминал (d553fdf1e57d86722ba41cb9fb04329c7dd2bd4e) что чисто
случайно узнаю что у NetBSD всякие современные приятности внедряются
регулярно. Вот в нём Argon2 для /etc/passwd используется. Молодцы!
https://dan.langille.org/2023/09/23/r730-01-2/
Человек показал на чём работает, что за диски у него. Ведь видел много
раз я название "sesutil" утилиты, но ни разу не запускал! А оно делает
ведь прям прекрасный вывод:
А вот корзина с SAS дисками подключена к HBA контроллеру, но только SAS
кабелями. Даже не думал о подключении SES-кабеля (или как он там
называется). Когда в следующий раз полезу в компьютер, то надо бы не
забыть посмотреть.
https://bird.network.cz/pipermail/bird-users/2021-May/015453.html
В cdd29ba1d7a5fdd299f169e5d213c33258e561df упоминал, что BIRD может
устанавливать маршрут по умолчанию, меняя его шлюз при изменении
маршрутов. Но, штатно в нём нет способа указать ему MTU. Когда я прежде
выставлял его руками, то мог (bcdf941977524afc69a18a4bf23fa7923d3aa182)
для каждого маршрута (ну мне только для default и надо было) указать
MTU, ибо бывают проблемы (не работает) с PMTUD.
Поисковик выдал письмо из рассылки, где предлагают установить krt_mtu
атрибут маршрута. Вот только фигня в том, что оно только под Linux. Под
BSD системы аналогичных атрибутов в BIRD нет.
Это уже второй раз (2699f8360ee6aa3622e6aab139a1b650dc375fa6), когда
BIRD именно под (Free)BSD не умеет что-то делать, что я хотел бы. На
данный момент моё снисхождение и приязнь к нему сходят на нет. Очень уж
какой-то он Linux-centric.
В cdd29ba1d7a5fdd299f169e5d213c33258e561df упоминал, что для IPv4
трафика всякие 10GbE, демоны маршрутизации и прочие штучки-дрючки
не применяются. Он тупо статическим маршрутом идёт в шлюз. Ибо ну
не хочу я видеть упоминание этого рудимента у себя в прекрасных
конфигах, как можно меньше бы.
Но что мне мешает пускать IPv4 трафик внутри IPv6 туннеля между шлюзом и
другими компьютерами? Тогда и его путь будет зависеть от подключённости
10GbE и если используется WireGuard, то и внутри него он будет
заворачиваться. Зато демоны маршрутизации ничего про IPv4 не знают.
Сделал, прекрасно работает, доволен результатом.
Первая задача что стояла (efb7b138ba42bd19945b3ab1f700c340061524f2):
трафик с NUC должен ходить до beta-сервера через gw-сервер, так как они
соединены 10GbE. Но NUC соединён с beta-сервером и напрямую через 1GbE.
Об этом всём они знают через OSPF. cost интерфейса в OSPF по умолчанию
равен 10. Прежде, я просто задавал cost=5 и 10GbE интерфейс становился
более приоритетным. Я подумал что возможно из-за дополнительного hop-а,
5+5≥10 (какой-нибудь там ещё плюсик появляется) и поэтому маршрут до
beta всё равно идёт через 1GbE.
Долго возился, делал огромные cost-ы у 1GbE интерфейса, но он всё равно
упорно не собирался ходить через лишний hop. Понял что что-то у меня не
ладно с пониманием OSPF в BIRD, ибо у меня метрики много где показывают
10000, 10001, 10002, в зависимости от кол-ва hop-ов в этих маршрутах.
Какое-то большое значение. В документации его нашёл только в упоминании
метрик для OSPF от external маршрутов.
Голова уже не очень свежа, но похоже что дело было так: источник
маршрутов на самой машине это protocol direct, в котором я перечисляю
"lo0" как минимум. Адреса с него становятся маршрутами, внешними с точки
зрения OSPF. И имея огромные веса, всякие мои потуги с cost интерфейсов
ни на что не влияют. В общем, сделал так: 10GbE интерфейсы имеют cost по
умолчанию (10); 1GbE cost=100; WG-туннели в Интернет cost=1000. И
добавил строчку с заданием метрики OSPF в фильтр экспорта только
"Интернет" маршрутов, которые у меня copy-paste на всех машинах:
filter only_internet {
if proto = "directed" then ospf_metric1 = 1;
if net ~ [2000::/3+] then accept;
reject;
}
после этого, метрики birdc show route стали вменяемыми, и по сути
показывать и количество hop-ов как-бы и интерфейсы между ними. После
этого всё стало работать как надо, как я ожидаю и хочу. Документация по
protocol direct говорит что надо бы подумать, прежде чем вообще
применять этот протокол, ибо learn в protocol kernel типа должен и так
всё сделать. Понятия не имею что там будет с метриками при этом, почему
я от learn избавился не помню, но надо бы будет выяснить.
Вторая задача возникла на пустом месте. На втором сервере у меня если не
подключён 10GbE, то я хотел бы чтобы трафик, очевидно, всё равно шёл по
1GbE имеющемуся. Добавил в /etc/rc.conf:
ipv6_defaultrouter="2a03:e2c0:2663:2::1 -mtu 1480"
ожидая что после поднятия BIRD, он добавит маршрут до ::2:1 и default
route сможет типа работать. И этот сервер перезапускался уйму раз, и...
я считал что всё работало. Я же мог на него SSH-нутся. И за это время я
только по IPv6 или в LAN работал, или BitTorrent по IPv4 использовал,
который вообще статично настроен и демонов маршрутизации не касается. В
netstat -r я видел default маршрут, но не пытался сделать ping на что-то
вне LAN. А на него он говорил бы:
ping: sendmsg: No buffer space available
ping6: wrote ya.ru 16 chars, ret=-1
Обнаружил это уже на своём ПК, в котором появился 10GbE и я аналогичную
конфигурацию проделал.
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=221445
Увидел что в самом BIRD можно задать статичный маршрут.
route ::/0 via 2a03:e2c0:2663:2::1;
и вижу что в ядре ничего не появляется. И только спустя пару часов я
вновь решил посмотреть получше документацию и увидел, что вместо "via"
можно задавать "recursive", который прям рекурсивно доходит до нужного
next hop адреса. И вот теперь то у меня нормально появляется и
обновляется default route, идущий через link-local адрес актуального на
данный момент сетевого интерфейса.
Сколько траханья, на простейших задачках! Как слабо я во всём это
понимаю. Но в итоге всё же без особых костылей оно работает как я хочу.
В прошлый upgrade (c88a83563caf8a6000f430b69e37aa4766315c93) я соединил
только два сервера 10GbE сетью через DAC кабель. А моя основная рабочая
машина, Intel NUC, ходила по 1GbE. Сегодня привезли ещё одну сетевую
карту и два SFP+ на RJ45.
Карта точно такая же с Mellanox ConnectX-3 чипом и двумя портами, что и
заказывал прежде. Но её вставил во второй сервер, а из него вынул карту
с одним SFP+ портом и Intel чипом на борту. Благо что ко всем карточкам
давались низкопрофильные планки, ибо в старый сервер только такие
влезают.
Вставил всё это дело в NUC. И... ничего не заработало. Карта вообще не
видится в списке PCI устройств. Изначально то я именно Mellanox новую
купленную попробовал, потом её заменил на Intel, который точно рабочий
-- подумал что может быть карта нерабочая?
Но я же теперь типа немного поумнее стал после просмотра лекции введения
в PCIe (4df90850b243b914bf29f7ee7396c99724af3945) и подумал что может
быть в NUC, учитывая что у меня аж два NVMe там уже стоят, банально не
хватает каким-то образом PCIe lane-ов или что-нибудь в этом духе? Так то
в NUC 4x и 16x gen 3 порта. Поставил в BIOS: force 8x, 4x, 4x в разделе
PCIe bifurcation. И всё заработало! Причём 4x gen3 lane-ов достаточно
для обоих NVMe, а 8x gen2 достаточно (даже избыток) для NIC.
SFP+ заработали без проблем. Проверил iperf3: более 9Gbps, но скорость
сильно танцует и плавает на полгигабита. С DAC-ом 9.88 стабильно
показывает. Греется, действительно, как и пишут, пипец как сильно,
трогать пальцем нельзя. Но хотя бы если кабель не подключён, то вроде
перестаёт.
Cat7 кабеля у меня нет, только 6e. Но расстояние в полметра -- так что
наверное вряд ли на что-то влияет. Так вот главное то: ping на DAC
показывал ± стабильно 0.030мс, тогда как на RJ45 0.110мс, которые
колбасятся и иногда >0.220, иногда чуть меньше 0.090.
Добавил интерфейс в BIRD OSPF конфигурацию, указал меньший cost для
10GbE link-ов и IPv6 трафик автоматом идёт по более быстрому каналу. По
умолчанию cost=10 для 1GbE. Я указал cost=5. Это сработало при
подключении сервер↔сервер. Но мой NUC подключён 10GbE только к одному
серверу, и 1GbE через коммутатор ко второму. Он выбирает для второго
сервера маршрут через 1GbE, а не через, пускай и на один hop дальше,
10GbE link-и. Плюс раньше у меня default route шёл просто через
-iface wg_gw, а сейчас это уже либо 10GbE, либо wg туннель. Надо как-то
динамически менять этот default route будет.
https://changelog.com/posts/xml-better-than-yaml
Статья начинается с утверждения:
There's always something better than YAML
с которым невозможно поспорить. Пишешь 1.20, получаешь 1.2.
Плюс старая проблема с Норвегией (8976383f8feb44fca9cf0b8f4e614b853d671214).
Когда-то я тоже использовал YAML, но одумался. Особенно когда на работе
его хорошенько поиспользовали. YAML не может быть (адекватным) вариантом
-- никогда. XML местами может быть адекватен.
https://www.youtube.com/watch?v=VdsPft_uaNg
Клёвое выступление! На таком концерте бы с удовольствием побывал.
Нормальный рок, хотя и ничего выдающегося. Но вокал и поведение Нины
очень по мне. Пишут что она мать немецкого панка -- легко поверю, круто!
https://www.youtube.com/watch?v=8bGN2Riyr0A
Забавно какой только фигни не придумают в играх. В половину бы сыграть.
* Симулятор камня
* Симулятор заварки чая
* Симулятор робота-пылесоса
* Симулятор оленя в городе, с пистолетами вместо рогов
* Симулятор таракана
* Симулятор лежания на кровати
* Симулятор ребёнка проказника
* Симулятор парня девушки
* Симулятор ГАИшника
* Симулятор инвалида-колясочница
* Симулятор жителя России: соревнование по буханию, гонки верхом на
медведях, мольба голышом на улице Путину, гопота, корты, трапеза
арбузом с медведем
* Симулятор ОМОНа
* Симулятор бабули
* Симулятор уличного мастурбатора
* Симулятор туалета от первого лица. 20k полигонов на какаху
Сегодня наконец-то возникла задача по копированию сотен гигабайт между
серверами, по NFS. Указав nconnect=4 опцию при монтировании, он делает
несколько TCP соединений к серверу, стабильно выдавая 988 MiB/sec (если
dd например делать). Штатно то всё равно упрётся в HDD диски. И это на
ZFS dataset-е где sync=disable. В общем, особо затыков не наблюдается, и
ведь никакого tuning толком не делал. Ожидал больше засад.
Ещё заметил что vfs.zfs.arc_max в новой версии ZFS/FreeBSD стал равен
просто нулю, означая автоматическое вычисление (почти всю RAM чтобы
использовал).
SHA256 Git репозитории то больше не экспериментальны
https://lore.kernel.org/git/27BFEA76-A6F5-418C-B18C-1206704849F7@zombino.com/T/
Внезапно увидел, что уже в 2.42.0 версии Git-а, sha256 object-format не
считается экспериментальным, теперь только совместимые изменения будут
вносится и можно формально не беспокоится что репозиторий будет поломан.
Увидел в одном месте, что можно как бы сконвертировать репоизторий из
sha1 формата в sha256, прогоняя через git-fast-export|git-fast-import.
https://www.cambus.net/on-the-importance-of-distfiles/
Эти парни, в отличии от FreeBSD и OpenBSD (SHA256), используют
BLAKE2s и SHA512. Молодцы! Вот как ни какой-нибудь любопытный
факт про NetBSD, так нравятся всё больше и больше.
https://github.com/ggerganov/whisper.cpp
Программа которая может транскрибировать аудиофайлы. Зависимостей для
сборки не требует. Но нужно скачать модель. Я использовал "large"
модель, которая 3GB+ требует памяти -- для меня копейки. Решил проверить
на аудиокниге из "Созвездия льва" (859b583e6ea48f5bb3de8338274d7fe936c2f225)
"Роберт Шекли -- О высоких материях". Книга длится 357 сек. На восьми
ядрах NUC работа заняла 504 сек. То бишь, в полтора раза медленнее чем
неспешное чтение книги.
[...]
[00:04:03.440 --> 00:04:11.960] несамостоятельность. Лапух. Любому неприятно было бы угодить в подобный переплет. Но что же в
[00:04:11.960 --> 00:04:19.280] жизни главное? Мортенсен загасил сигарету и вспомнил, что она у него последняя. Тьфу,
[00:04:19.280 --> 00:04:25.760] только не отвлекаться. Главное в жизни — сомнение, желание, стремление к цели,
[00:04:25.760 --> 00:04:34.040] наслаждение. Потерев лоб, Мортенсен громко, хоть и слегка дрожащим голосом, выговорил — главное
[00:04:34.040 --> 00:04:43.280] в жизни — воспламенение. Воцарилась зловещая тишина. Выждав пристойный по своим понятиям срок,
[00:04:43.280 --> 00:04:52.280] Мортенсен спросил — угадал я или нет? — Воспламенение, — пророкотал возвышенный
[00:04:52.280 --> 00:05:04.520] могущественный глаз. — Чересчур длинно. Горение? Тоже длинновато. Огонь! Главное в жизни — огонь.
[00:05:04.520 --> 00:05:14.240] Подходит. — Я и имел в виду огонь, — вывернулся Мортенсен. — Ты меня действительно выручил,
[00:05:14.240 --> 00:05:20.080] — заверил голос. — Ведь я прямо завяз на этом слове. А теперь помоги разобраться
[00:05:20.080 --> 00:05:26.560] с семьдесят восьмым по горизонтали. Отчество изобретателя бесфрикционного привода для
[00:05:26.560 --> 00:05:31.960] звездолётов. Четвёртая буква «Д» вертится на языке, да вот никак не поймаю.
[00:05:31.960 --> 00:05:38.680] По словам Мортенсена, тут он повернулся кругом и пошёл себе в освояси подальше от
[00:05:38.680 --> 00:05:48.040] неземного глаза и от высоких материй. Роберт Шекли
[00:05:48.040 --> 00:05:53.720] О высоких материях Рассказ читал Олег Булдаков
[00:05:53.720 --> 00:05:58.480] [музыка]
Это конечно не готовый для публикации текст, есть косячки, но в целом
всё отлично. Но это очень качественно записанная книга с качественным
диктором. А как оно справится например с моей презентацией NNCP на
CryptoInstallFest?
[00:00:10.000 --> 00:00:16.000] Всем привет! Сергей Матвеев, я разработчик заданного программа "Досучение" и "Шифровал".
[00:00:16.000 --> 00:00:23.000] Сегодня я хотел бы рассказать про NCP, это набор утилит, которые позволяют строить в сторону форвард-сети,
[00:00:23.000 --> 00:00:29.000] которые можно использовать, например, для построения независимых от интернета сети передачи данных.
[00:00:29.000 --> 00:00:34.000] Про эту тему я уже рассказывал в прошлом году на CryptoCentralFest,
[00:00:34.000 --> 00:00:38.000] эта тема просто немного более расширена.
[00:00:38.000 --> 00:00:48.000] В предыдущей лекции все отлично сказали про все наши проблемы с интернетом,
[00:00:48.000 --> 00:00:58.000] про то, что мы его по сути потеряли, теряем, и я уверен, безвозвратно, и у нас огромные проблемы.
[00:00:58.000 --> 00:01:05.000] То есть интернет, как некое чудо света, когда два произвольных компьютера между собой могут обменяться произвольными данными,
[00:01:05.000 --> 00:01:12.000] мы вовсю теряем. И восстановить это я не знаю как, это невозможно.
[...]
[00:04:39.000 --> 00:04:45.000] Это клиент включается к серверу и ему дают, в общем-то, просто закрытую программу,
[00:04:45.000 --> 00:04:49.000] 99%, что это будет отдельно стервенный natural script код, сравнение с эндвером.
[00:04:49.000 --> 00:04:53.000] И эта программа полностью контролирует, что он может сделать,
[...]
[00:06:04.000 --> 00:06:09.000] Какие решения? Очевидно, прокладывать собственный канал связи, как говорят, дорого,
[00:06:09.000 --> 00:06:12.000] просто и смертно это не могут сделать, и если у нас будет вайп-рейс блокировки,
местами я даже не понимаю о чём речь и не могу вспомнить что именно то я
говорил? Но большая часть текста вполне себе понятна и читабельна. Всё
же и я говорю не очень, и запись не очень, и язык с жаргонами и
подобным. Я не знаю хороший ли это результат или нет, но вообще меня
впечатляет. А то как-то я вот не слышу чтобы в кой да веки но был сделан
что синтезатор речи отличный (хотя вроде бы very good enough уже есть),
что распознаватор.
Добавление -mavx512f флага показывает что AVX512 включён (на новом
сервере моём), но это не то чтобы ощутимо помогает: 532 vs 547 сек.