]> Sergey Matveev's repositories - stargrave-blog.git/log
stargrave-blog.git
2 years agoСвободность Astra Linux
Sergey Matveev [Sat, 3 Sep 2022 09:24:07 +0000 (12:24 +0300)]
Свободность Astra Linux

https://habr.com/ru/post/686172/
Выдержки из лицензионного соглашения говорят о полной несвободности
этого ПО, ибо всякие ограничения на использование.

2 years agoРаспределённые задачи по NFS
Sergey Matveev [Fri, 2 Sep 2022 13:10:04 +0000 (16:10 +0300)]
Распределённые задачи по NFS

Есть тут множество файлов, которые надо сжать. И есть три компьютера
мощных дома и поэтому хотелось бы как-то распараллелить этот процесс.
Все они лежат в shared NFS директории, поэтому можно работать по сети.
Думал что в GNU parallel есть из коробки что-то для этого, но нет.

Помню про lockf утилиту, которая могла бы идеально подойти для этой
задачи: взяли lock -- продолжаем работать, иначе выполняем следующую
задачу. Делает lock она путём открытия файла с O_EXLOCK. Но по NFS это
не работает. Не падает, но lock не отрабатывает.

Поэтому решил применить mkdir для этой задачи. Вроде бы, говорят, что он
атомарен на NFS. Хотя даже имитация атомарности мне бы подошла. На
каждой машине делаю:

    nice parallel 'mkdir {}.lock && cpuset -l $(( {%} - 1 ))
                   zstd -v --ultra -22 --rm {}' ::: *.tar

Делать несколько zstd вместо одного zstdmt эффективнее, так как
распараллеливает работу он по достаточно большим кускам и под конец
сжатия несколько минут может оставаться работать меньшее количество
нитей, не полностью утилизируя все ядра. cpuset уже и прежде использовал
для того, чтобы процесс был прибит к конкретному ядру
(30e51579624d482c2fd13324f0e1d6a5c4db40b6). И с parallel очень приятно
завершать задачи плавно, дожидаясь окончания уже запущенных процессов:
kill -HUP `pgrep -f parallel` (f5ea219cd5f1f8361e48a31d7fc29ee5b2b0fe14).

2 years agoВ электросети то 230В
Sergey Matveev [Fri, 2 Sep 2022 11:53:01 +0000 (14:53 +0300)]
В электросети то 230В

https://ichip.ru/sovety/ekspluataciya/220-ili-230-volt-kakim-dolzhno-byt-napryazhenie-v-seti-778372
https://elektrik-sam.ru/jelektrosnabzhenie/4107-kakoe-dolzhno-byt-naprjazhenie-220-ili-230-volt.html
Просто обратил внимание на то, что ИБП показывает что на входе у него
230В в моей квартире. У родителей аналогично уже довольно давно.
Оказывается, уже чуть ли не двадцать лет оно по умолчанию и должно у нас
везде быть.

2 years agoЛюди не могут запомнить свой email адрес
Sergey Matveev [Thu, 1 Sep 2022 09:36:18 +0000 (12:36 +0300)]
Люди не могут запомнить свой email адрес

https://old.reddit.com/r/programming/comments/x1kzgx/falsehoods_programmers_believe_about_email/imfksfp/
Люди делятся опытом о том, что многие не корректно вводят свой адрес и
чужим людям приходит корреспонденция. Забавно. Прям даже можно намотать
на ус то, что даже если адрес вида "first"+"last" свободен, то стоит
добавить какую-то соль, чтобы избежать непрошеной почты.

2 years agoЗаблуждения программистов про email
Sergey Matveev [Thu, 1 Sep 2022 08:20:17 +0000 (11:20 +0300)]
Заблуждения программистов про email

https://beesbuzz.biz/code/439-Falsehoods-programmers-believe-about-email
https://emailisbad.com/
Годный список заблуждений. Но не без юмора.
          ------------------------ >8 ------------------------
* Everyone has an email address
* Everyone has exactly one email address
* An email address never changes
* Whenever an address does change, it's under that user's control
* Whenever an address does change, it's because the user specifically
  requested it to happen
* Whenever an address does change, the old address will continue to work/exist
* Any one email address refers to only one single person
* Unique strings of characters all map to different addresses
* All email is hosted by a centralized system
* When email is sent to a user at a domain, it is delivered to a server
  whose address matches that domain
* When email is sent by a user at a domain, it is sent by a server whose
  address matches that domain
* All email comes from a .com, .net, .edu, or .org address
* You can filter out email based on the TLD or ccTLD from which it originates
* Having a particular ccTLD means that you prefer to receive
  communications in that country's native language (for example, .fr ->
  French)
* Email addresses only contain letters
* Email addresses only contain letters and numbers
* Email addresses only contain letters, numbers, and a handful of common
  punctuation marks (e.g. ., _, and -)
* Email addresses will have at least one letter in them
* An email address like ^_^@example.com or +&#@example.com is invalid
* Email is a reliable transport
* Email is an instantaneous transport
* Emails will be sent within a few minutes of their scheduling
* Emails will be sent within a few hours of their scheduling
* Emails will be sent within a few days of their scheduling
* Emails will be received soon after they're sent
* When an email is sent it immediately goes to its destination server
* If an email bounces, the address is invalid
* If an email doesn't bounce, the address is valid
* An address which is valid will always be valid, and an address which
  is invalid will always be invalid
* All email is sent via SMTP over TCP/IP port 25
* All email is sent via SMTP over TCP/IP
* All email is sent via SMTP over IP
* All email is sent via SMTP
* All email servers support the various vendor extensions by the current
  "everyone uses this vendor" vendor (Microsoft, Google, etc.)
* An email can only have one From: address
* The Date: header on a message is legitimate
* The Received: headers will always be no earlier than the Date: header
* All email clients support HTML attachments
* All email clients support HTML message bodies
* All email clients support MIME encoding
* Email is secure
* Encrypted email is secure
* All email is accessed via webmail
* All email is accessed via webmail or IMAP
* All email is accessed via webmail, IMAP, or POP3
* Nobody uses email anymore

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

А ещё сайтик почему email плох:

* Spam is rampant
  Да, не поспоришь. Из-за, так сказать, открытой федерации.

* Running your own server is a major pain
  Да. Но кто сказал что боль это плохо?

* If you aren't on gmail, gmail assumes you're sending spam
  К сожалению тут не поспоришь. В жопу людей использующих gmail.

* Everyone else is on gmail
  Смотря какой круг общения.

* Attachment limits are obnoxious and arbitrary
  Ибо нефиг посылать огромные вложения -- email крайне не эффективен тут.

* Nobody knows how to validate addresses
  Ну... да. Особенно бесит когда не дают ввести "+".

* Configuring TLS, SPF, DKIM, submission, etc. is confusing
  Не поспоришь.

* Random RBLs will blacklist you based on superstitions, and admins of
  other email servers will trust RBLs without question.
  Полностью согласен. В жопу таких админов.

* Many useful protocol features have been completely forgotten in the
  quest to eliminate all spam (retry, MX forwarding, etc.).
  Не уверен что понимаю где кто и когда посеял все эти фишки. Вроде бы
  это всё активно продолжает работать и использоваться.

* Random things don't understand MIME encoding for some damn reason
  Бывает, бывает.

* Many clients don't know how to handle HTML correctly and/or safely
  Не поспоришь.

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

И на нём же -- почему email хорош:

* Technically it's decentralized
  Верно.

* You can self-host it for not a lot of money
  Верно.

* There's a wide array of interoperable clients that work without a lot
  of proprietary nonsense
  Верно.

* Message headers are very extensible and useful for all sorts of
  unexpected things
  Верно.

* MIME encoding can do some really useful stuff
  Нет деталей и намёка что именно имеется в виду.

* It's private by default
  Не понятно что подразумевается под private. То, что тут могут быть по
  умолчанию не задействованы третьи лица? Тогда да.

* It's federated by default
  Верно.

* Spam filters have gotten pretty good for the most part
  Скорее соглашусь.

* You can have your own domain name and move it between different
  providers rather than being tied to your ISP and/or Google
  Верно.

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

И на нём же причины чем email хорош когда его пытаются заменить на
дерьмо IM-овое всякое:

* You can keep control of your notifications via message filtering, etc.
* Message filtering can be incredibly flexible
  Важнейшие аргументы!

* Pretty good search (especially in modern clients, with client-side caching)
  Согласен. Плюс вы его сами можете делать, независимо у себя.

* Threaded messages can provide better context for a conversation and
  also allow people to self-edit and take more time to think about what
  they're going to say
  Полностью согласен.

* Writing "bots" and email-based APIs in general is much, much easier
  Вот не уверен что возня с MIME приятна. Но библиотек для этого тьма.

* Signatures can add a lot of personality and useful information
  Не уверен что это прям плюсом каким-то является.

* A broad choice of clients that satisfy varying accessibility needs
  without randomly A/B testing your experience
  Полностью согласен -- то, что email это протоколы/форматы, а не
  какое-то конкретное ПО. Одно ПО не может удовлетворять всех и вся.

2 years agoLTT выпустил отвёртку
Sergey Matveev [Wed, 31 Aug 2022 18:34:40 +0000 (21:34 +0300)]
LTT выпустил отвёртку

https://www.youtube.com/watch?v=2K5Gqp1cEcM
http://www.stargrave.org/photoes/screw.jxl
Linus Tech Tips чуть ли не в каждом своём ролике рекламирует отвёртку,
которая вот-вот скоро выйдет. Я вот в инструментах вообще не шарю, да и
использую то крайне редко и поэтому ничего особо оценить не могу. Но
помню что на первой работе надо было выбрать отвёртки для себя: массово
их закупали и чтобы даже у программистов был какой-то инструмент, чтобы
не бегали к сборщикам одалживать а потом их выискивать. Помню что цена
на них отличалась на порядок, как минимум. А визуально все одинаковы. Но
когда пару раз помогал крутить серверы, ну и вообще то одно, то другое
приходилось делать: то реально понимал что разница есть ощутимая.

У отца, когда он работал в Интелкоме, инструмент был раз в 20 наверное
дороже того что он покупал (для себя!) домой. Впечатляла обжимка для
Ethernet кабелей, которую можно типа за несколько сотен рублей купить в
магазине, а у него вроде чуть ли не несколько тысяч долларов стоила.

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

И сейчас вот осознал что я наверное лет 15 уже для 90% всего времени в
компьютерах (а это 95% всего что я кручу) использую одну и ту же
отвёртку, фотографию которой сделал сейчас. Откуда она, почему она
такая: чёрт его знает. Но в ней грубо сточена рукоятка и весь конец.
Зачем? Никогда не задавался вопросом. Но просто по привычке она всегда
рядом и её долгое время брал с собой в рюкзаке если была вероятность что
что-то где-то надо будет крутить. Плюс она всегда лежит на сильном
постоянном магните -- всегда хорошо намагничена. Хотя дома у меня есть
нормальные отвёртки, со сменными битами и всем таким подобным.

2 years agoУтечка персональных данных в ivi?
Sergey Matveev [Wed, 31 Aug 2022 16:06:17 +0000 (19:06 +0300)]
Утечка персональных данных в ivi?

https://habr.com/ru/news/t/685716/
Не знаю как там всё сейчас устроено, но сервер аутентификации и
авторизации там делал в основном я.

Точно помню что пароли хранились в усиленном виде, то ли в PBKDF2, то ли
ещё в каком более сильном виде. ivi отвечает что одновременно email и
телефон (который я в БД обзывал MSISDN-ом) не указываются -- технически
ничто не мешает в БД их параллельно хранить, но логика frontend-а не
позволяла. Про ФИО не помню.

Говорят что авторизация только через ВКонтакте? Ну при мне были точно и
Facebook и Twitter, который вообще OAuth1, как минимум. Но они же сейчас
экстремистские.

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

2 years agoCUBIC отстой на моей FreeBSD
Sergey Matveev [Wed, 31 Aug 2022 10:50:28 +0000 (13:50 +0300)]
CUBIC отстой на моей FreeBSD

В f4856188ed790df92521db94edacf86c6184d57c упоминал что начал
использовать CUBIC алгоритм управления перегрузкой TCP. Сегодня качал
всякое с домашней системы по обычному голому IPv4 на рабочий компьютер
за NAT-ом и заметил что через какое-то время скорость TCP-соединения
(wget) падает даже до нуля. Перезапускаешь wget скачивание -- всё снова
летает, а потом снова деградирует и падает. Переключившись назад на New
Reno -- полнейшая стабильность, никаких падений скорости до нуля. Вообще
всё выглядит так, что на CUBIC я буквально не в состоянии скачать что-то
большое, тогда как на New Reno прекрасно работает.

Но раз все используют CUBIC, то как же так выходит что у меня он почти
неработоспособный на практике? Наверное в моей версии FreeBSD с ним всё
плохо. Судя по https://freebsdfoundation.org/wp-content/uploads/2021/05/TCP-Cubic-is-Ready-to-Take-Flight.pdf
в 13.0 версии сделано много улучшений в нём.

2 years agoЖивые выступления Active Stenosis и Dysthymia
Sergey Matveev [Wed, 31 Aug 2022 08:45:02 +0000 (11:45 +0300)]
Живые выступления Active Stenosis и Dysthymia

https://www.youtube.com/watch?v=BYbDLdrQPcA
https://www.youtube.com/watch?v=eYYDqz4fJk4
Второе видео, Dysthymia -- запись с недавнего Blast Damage Fest preparty
(82ad61dd650a01e72aa3a1c1c8d4f11ba2af20d4). Active Stenosis прям отличный
goregrind из серии Last Days Of Humanity!

2 years agoCAPTCHA? Тогда уходим от вас
Sergey Matveev [Tue, 30 Aug 2022 08:40:17 +0000 (11:40 +0300)]
CAPTCHA? Тогда уходим от вас

https://habr.com/ru/post/685328/
Поддерживаю автора статьи и поступаю аналогично: вижу CAPTCHA -- иду с
сайта и считаю что его и нет. Одна из причин это то, что в преобладающем
большинстве случаев она требует загрузки программы на мой компьютер --
не приемлемо. Но даже если и технологически нормальная CAPTCHA, где
честно только HTML форма и возможно картинка -- тоже идёт нафиг, ибо
сколько раз встречал крайне не тривиальные "задачки" или требующие
знание чуждой культуры (f1c72a42951230da604bbc4b3f7efb54d2eab168). У
Яндекса вообще всё стало нерабочим (хотя и не то, чтобы я часто у него
использовал). Как бы... кому это всё надо? Кому нужен какой-то сайт? Мне
или им? Почему моё время (и, зачастую, безопасность/приватность) не уважают?

2 years agoНемного про архитектуру Яндекс.Облака
Sergey Matveev [Mon, 29 Aug 2022 10:39:27 +0000 (13:39 +0300)]
Немного про архитектуру Яндекс.Облака

https://habr.com/ru/company/yandex/blog/448588/
Как дополнение к a744f8c2a603fda9aa08254c66c4bc4bbdfedb7e.
Все сервисы в control plane написаны на Go. Что-то я вообще
не помню слышал ли про использование Go в Яндексе прежде.

2 years agoУскорил goredo
Sergey Matveev [Sun, 28 Aug 2022 19:24:15 +0000 (22:24 +0300)]
Ускорил goredo

http://lists.cypherpunks.ru/archive/goredo-devel/f4cf64d0-4b50-7647-089e-6a6e1fa27113@jnboehm.com/
Добавив кэширование результата проверки существования файла, а также
принятия решений OOD (out-of-date), зверски сократил количество
системных вызовов которые goredo делал на каждый чих.

Потом обнаружил что из трёх секунд у меня две занимает парсинг .rec
файлов, хранящих состояние зависимостей. Точнее под две секунды занимает
работа regexp. Сделал поэтому и новый релиз go.cypherpunks.ru/recfile, в
котором убрал regexp, просто ручками разбирая каждую строчку. В итоге
парсинг .rec-ов стал занимать 800мс. Вроде бы многовато, но это на
данных с 1028 файлами, в которых 88k записей, 293k строк, каждую из
которых надо парсить.

2 years agoПочему сайт должен быть меньше 14KiB
Sergey Matveev [Fri, 26 Aug 2022 14:52:18 +0000 (17:52 +0300)]
Почему сайт должен быть меньше 14KiB

https://habr.com/ru/post/684836/
Рассказ о TCP slow start и что некоторый объём данных в TCP улетает
довольно быстро. А всякие HTTP/2, QUIC, HTTP/3 борятся вовсю с
задержками и лишними round-trip-ами, поэтому важно отправить как можно
больше без ожидания чего-то в ответ.

А я на прошлой неделе как-раз зачитывался про TCP алгоритмы управления
перегрузкой и включил себе уже давно везде (в ОС) использующийся CUBIC.
До сих пор в моей FreeBSD New Reno по умолчанию. Правда разницы нигде не
заметил, но у меня или чистый 1Gbps Ethernet с десятисантиметровыми
расстояниями или 100Mbps Ethernet до провайдера и никаких WiFi.

2 years agoBIRD простота конфига
Sergey Matveev [Fri, 26 Aug 2022 14:27:28 +0000 (17:27 +0300)]
BIRD простота конфига

С настройкой BIRD-а (982b29ed90d9c1e8e39ebb4398e0a4b0f26ad927) у меня
изначально были мысли о том, что как-то многовато строчек в его
конфигурационном файле для такой простой задачи как у меня. Но в
документации хорошо описана его архитектура и всё встало на свои места и
пришло понимание почему kernel и direct являются протоколами точно так
же наравне с BGP и остальными. И особо то ничего лишнего уже и не видно
в нём.

Комментарий о range снова подтолкнул разобраться почему он у меня не
сработал и оказалось что у меня просто недостаточно свежая версия демона
была. С range-ем можно избавиться от явно заданного link-local адреса на
стороне "клиентов". В итоге туннельные интерфейсы на клиентах делаются
просто указывая автоматическое создание link-local-а:
    ifconfig iface inet6 -ifdisabled auto_linklocal

Конфиг на моём NUC сейчас выглядит так:

    protocol kernel {
      ipv6 {
        import none;
        export filter {
          if proto = "direct1" then reject;
          accept;
        };
      };
      learn;
    }

    protocol direct direct1 {
      ipv6;
      interface "lo0";
    }

    define our_as = 4200000000;

    template bgp gwpeers {
      local as our_as;
      neighbor fe80::1 as our_as;
      direct;
      ipv6 {
        import all;
        export filter {
          if net ~ [2000::/3+] then accept;
          reject;
        };
      };
    }

    protocol bgp gwwg from gwpeers {
      interface "wg0";
    }

    protocol bgp gwipsec from gwpeers {
      interface "gif0";
    }

А на сервере так:

    [...]
    protocol direct direct1 {
      ipv6;
      interface "lo0";
      interface "igb_lan";
    }

    template bgp peers {
      local as our_as;
      local fe80::1;
      neighbor range fe80::/64 as our_as;
      direct;
      passive on;
      ipv6 {
        import all;
        export filter {
          if net ~ [2000::/3+] then accept;
          reject;
        };
      };
    }

    protocol bgp nukewg from peers {
      interface "wg0";
    }

    protocol bgp nukeipsec from peers {
      interface "gif_nuke";
    }

    protocol bgp beta from peers {
      interface "gif_beta";
    }

2 years agoU.3, EDSFF
Sergey Matveev [Fri, 26 Aug 2022 06:14:13 +0000 (09:14 +0300)]
U.3, EDSFF

Давно уже не занимаюсь системами хранения данных. Уже U.2 я в живую не
видел. А оказывается бывают U.3 и EDSFF форм-фактор.

2 years agoИспользую BGP для домашней сети
Sergey Matveev [Thu, 25 Aug 2022 18:18:46 +0000 (21:18 +0300)]
Использую BGP для домашней сети

Год назад (79484c1dc99bf5d6204202ce27f471a1a88f34c9) трогал BIRD2 демон
и игрался с OSPFv3. Сегодня снова вспомнил про эту тему и уже на практике
начал использовать у себя BGP. Лютый overengineering конечно же, но хочется
что-нибудь подобное поиспользовать.

На втором сервере и на моём NUC используется dual-stack IP. Статические
IPv6 и IPv4 адреса. На трафик между ними и основным сервером я хочу
чтобы был зашифрован в Ethernet сети. Поэтому поднимаю IPsec между ними.
Настраивать отдельные туннели/транспорты по отдельности на IPv6 и IPv4
трафик не хочу. Поэтому делаю gif-туннели, которые передаются поверх
fc00:: IPv6 сети Ethernet-а (link-local адреса тут не поддерживает
strongSwan, поэтому использую site-local сеть). Указать для каждого gif
туннеля что он является point-to-point link-ом между IPv4 адресами можно
без проблем:

    gif0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1420
            tunnel inet6 fc00::98f1 --> fc00::2752
            inet 192.168.20.2 --> 192.168.20.1/32

и на сервере можно указывать 192.168.20.1 на всех gif-ах. А с IPv6
указанием одного и того же адреса не выходило уже не помню по какой
причине. Из-за этого я делал link-local адреса и создавал статические
маршруты: такой то IPv6/128 доступен через такой то интерфейс. Для дома,
учитывая что у меня считанное число подобных туннелей, это конечно
сойдёт, но мне эстетически не нравилось.

Позже я решил просто указывать надуманный IPv6 адрес на сервере для
каждого туннеля, типа:

    inet6 2a03:e2c0:2663:2::53 --> 2a03:e2c0:2663:2::3/128

Это уже было экономией строчек в rc.conf файлах касающихся маршрутов.
Хотя и эстетически неприятно что я вынужден какой-то надуманный адрес
использовать просто чтобы указать что он в этой же сети.

Другой "проблемой" стало то, что мой NUC бывает на работе и подключается
к дому через WireGuard туннель. Но так как на gif-туннелях IP адрес
NUC-а уже "занят", то на wg-туннеле его не прописать уже. А (опять же,
чисто эстетически) хочется чтобы я мог через разные VPN (IPsec или
WireGuard) подключаться и иметь один и тот же адрес. А сервер просто
должен будет знать где именно сейчас мой IP находится.

OSPF, помню, нравился тем, что никаких явно endpoint-ов демонов
маршрутизации не нужно настраивать -- он по multicast-у сам договорится
и всех найдёт. Но через WireGuard multicast-ы не работают и его на
завести в подобную систему. Поэтому завёл BGP.

Помню комментарии в своей прошлогодней записи о том, что можно и более
простые протоколы использовать, и то, что и статические маршруты, more
than good enough. И ни с чем я тут не поспорю -- всё так и есть. Но
хочется потрогать что-то "боевое". Тем более, что IP4Market туннельный
брокер выдаёт /48 сеть, так что у меня тьма /64 доступно для любых задач.

В отличии от OpenBSD, в FreeBSD из коробки не ставятся никакие BGP
демоны. Поэтому на каждый сервер пришлось явно доставить BIRD2. Опыта по
сути со всем этим никакого, как и понимания есть ли у меня понимание
хотя бы основ. Но моих минимальных познаний хватило чтобы это почти без
проблем всё поднять.

На каждом gif/wg-туннеле у меня link-local адреса только, но среди
которых в обязательном порядке выставлен fe80::1 для удобства на
сервере. BGP демоны связываются поверх этих link-local и обмениваются
всеми своими 2000::/3 сетями. Понравилось что в BIRD2 из коробки шаблоны
поддерживаются, которые мне как-раз пригодились, ибо всё однообразно и
однотипно настраивается. Так как BGP трафик всё равно пойдёт по
аутентифицированным IPsec/WireGuard сетям, то дополнительной
аутентификации не делаю и полностью доверяю переданным маршрутам.

Демон BIRD везде автоматически запускается при старте системы. Когда
какой-либо из туннелей готов работать, то BIRD, время от времени,
пытаясь связаться с противоположной стороной, подключится и все маршруты
установит. Адреса, кроме основного сервера, у меня навешиваются прямо на
loopback интерфейс. А маршрут по умолчанию можно просто указать, сказав
что он идёт не через определённый адрес, а просто через интерфейс.

В итоге, строчек в rc.conf файлах и ручных скриптах поднятия туннелей на
NUC-е стало ещё меньше, плюс исчезли глобальные IPv6 адреса из
туннельных интерфейсов. Исчезли надуманные IPv6 адреса используемые
исключительно для туннелей. Если я добавлю новый адрес: то BGP
автоматически оповестит мой центральный сервер (он же и маршрутизатор) о
нём. Если я добавлю целую /64 сеть, то, опять же, все остальные смогут
до неё сразу же автоматом ходить. Причём самих IP адресов (кроме
статичных link-local) в конфиге BIRD-а нет вообще: он собирает всё что
относится к 2000::/3 (что например исключает Yggdrasil сеть) и
обменивается этим.

2 years agoGitHub и IPv6
Sergey Matveev [Wed, 24 Aug 2022 13:12:40 +0000 (16:12 +0300)]
GitHub и IPv6

https://github.com/orgs/community/discussions/10539
Говорят что уже не мало провайдеров, которые имеют только IPv6, при этом
деля огромный CGNAT с кем-то ещё, что не редко ложится и не работает. И
бывают VPS-ы где берётся дополнительная плата за IPv4 адреса (очевидно),
тогда как IPv6 предоставляются безвозмездно. Поэтому сделать git clone с
GitHub-а требует дополнительных денег (или геморроя).

Кто-то ругает Microsoft, хотя мне казалось ещё 15+ лет назад, что
Microsoft как-раз таки уже тогда очень активно подталкивала сисадминов к
этому не устаревшему протоколу, делая примеры настроек в своей документации
на нём.

И верно замечают, что GitHub-у гораздо важнее переименовывать master в main.

2 years agoПереписал zdns на Tcl
Sergey Matveev [Mon, 22 Aug 2022 14:21:56 +0000 (17:21 +0300)]
Переписал zdns на Tcl

http://www.git.stargrave.org/?p=zdns.git;a=commitdiff;h=bb68fcc5ab280623651b31953e149d364d3f7bf9
Не преследуя никакой практической цели, кроме как потрогать Tcl вновь,
чтобы развеяться. Этот язык я в руки не брал с момента написания
tofuproxy (который тоже почти не трогается, ибо just works -- почти все
HTTP запросы на моём компьютере проходят через него, даже WARC временами
использую).

И вот почти ничего не помня про Tcl, я почти без единого спотыкания и
почти без единой ошибки во время выполнения всё переписал. Только одна
ошибка запомнилась: если закрыть канал, являющийся stdout-ом от другой
команды, не дочитав всё до конца (я читаю OpenPGP ключ и выхожу когда
нужный UID был прочитан), то программа выходит с ошибкой (что ожидаемо)
и Tcl ловит эту ошибку падая. Ну и забыл что глобальные переменные по
умолчанию не видны в процедурах.

Всю документацию, кроме одной базовой книжки в PDF по Tcl, я брал из
man-ов, благо до которых у меня прекрасно работает мой клёвый
настроенный completion в zsh:

    % man index<TAB>
    [...]
    ... manual page, section 5 (file formats and conventions)
    INDEX                                       portindex
    ... manual page, section 9 (kernel features)
    bhnd_get_core_index                         ifaddr_byindex
    ... manual page, section n (new documentation)
    auto_mkindex.tcl86           lindex.tcl86                 pkg_mkIndex.tcl86
    ... parameter
    ZSH_AUTOSUGGEST_ORIGINAL_WIDGET_PREFIX

И эти man-ы очень понравились, наличием ценнейших простых примеров, где
тот же намёк на использование while {getc} и catch{close} имеется.

Непередаваемое чувство, когда ты пишешь всякий код, много или не очень,
а он просто берёт и выполняется без проблем. Такое у меня только с Go
было. Tcl очень приятен!

2 years agoМини аудио диски
Sergey Matveev [Sat, 20 Aug 2022 00:47:44 +0000 (03:47 +0300)]
Мини аудио диски

На прошедшем концерте приобрёл аж 18 дисков всяких. И 7 среди них
формата маленьких CD. С самим форматом я знаком: долгое время всегда с
собой носил mini CD-RW. Формат приятен тем, что умещается в карман. Но
про музыкальные альбомы в таком формате не слышал и не видел. Это всё
правда у меня относится к noisecore-у. Но на 24мин такого диска, группа
типа Anal Cunt легко запишет не один десяток трэков.

2 years agoСходил на Blast Damage Fest (Moscow preparty)
Sergey Matveev [Fri, 19 Aug 2022 23:48:36 +0000 (02:48 +0300)]
Сходил на Blast Damage Fest (Moscow preparty)

Вообще этот фестиваль должен быть в Санкт-Петербурге, но типа репетиция
в Москве. Было круто прекруто! Смотрю я на свой список концертов чтобы
вспомнить когда я в последний раз был на настоящем горграйнде, грайндкоре,
но не Napalm Death и не всяком заводном танцующем порнограйнде. Jig-Ai
был в 2017-ом, а перед этим тема была только в 2016-ом. Я уже и забыл
как это всё круто.

Проходило на территории завода инструментов, рядом с цехом по созданию
резьб. В ab593349b33cdd37c668a30114afffbcb2bce6f5 я удивлялся маленькому
клубу "Live Stars". Сегодня концертная площадка была раза в два меньше.
А больше и не надо -- там народу на один не полный автобус соберётся. Но
звук был вполне себе хорош для такой музыки. Но отсутствие кондиционера
и дело под землёй. Даже в свои лучшие годы молодости я бы не смог там
колбаситься -- меня бы пришлось выносить от недостатка кислорода за руки.

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

Первые две группы (Toughguy, Boner) были из Москвы, состоящие из
барабанщика и гитариста только. Ну какая-то грайнда, power violence.
Народ завёлся, всё здорово.

Далее были Bastard Youth из Екатеринбурга. К сожалению всякую ху@#ю
политическую вокалист между песнями пытался нести, что сильно подпортило
впечатление, но играли, я б сказал, прям таки эталонный агрессивный
grindcore каким он и должен быть. Тупой, быстрый, мощный. Napalm Death
например довольно мелодичны. А тут прям понимаешь что grindcore это
штука более близкая к панкам, нежели чем к металлистам (отсюда, видимо,
и херня политическая, поэтому буду считать что это часть культуры). Я
реально уже забыл, кроме Napalm Death, когда я чисто грайндкор
нормальный слышал.

Затем были москвичи Active Stenosis, которые играли, прям опять хочется
применить слово, "эталонный" goregrind. Вот прям просто послушать
Bastard Youth и Active Stenosis чтобы понять разницу между чисто
грайндкором и чисто горграйндом. Последний конечно тоже разный бывает,
но тут игрался похожий (я бы сказал что лучше) на Last Days Of Humanity.
Очень круто! Собственно, эталонного быстрого горграйнда я вообще с
трудом припоминаю в живую.

А закончило сие мероприятие группа Dysthymia. Стиль можно назвать noise
grind-ом. Барабанщик и гитарист, который создавал стену из distortion
шума. Я как-то писал что одна группа на black metal концерте ударяет по
барабанам больше чем все группы doom концерта с Metal Over Russia. Так
вот в Dysthymia в течении только одной "песни", ударяют по барабанам
больше чем наверное на всём Metal Over Russia. В течении одной песни они
ударяют больше, чем многие люди на протяжении нескольких лет слышали бы
барабаны из своих звуковых систем. Я *никогда* не слышал такой дичайшей
скорости молотилова, причём без остановки и достаточно долго. Можно
взять Last Days Of Humanity трэк "Divine Proclamation of Finishing the
Present Existence": https://www.youtube.com/watch?v=ZW6lnrUpX1o
и увеличить скорость процентов на двадцать, бить по тарелкам раза в три
чаще и всё это без остановки раза в полтора дольше. Мне кажется их
барабанщик должен был потреблять кислорода столько же, сколько и все
люди там присутствующие. Что в конце и было видно: он пару минут сидел
просто тяжело дыша, а дальше не мог встать ровно, явно с невидящими по
началу глазами (по себе знаю что значит недостаток кислорода).

В общем, люто здорово было! Видел несколько лиц, которых я знаю по
концертам ещё с 2007-2008-ых годов, уже постаревшие дядьки. Но, благо,
молодёжи тоже не мало ходит.

2 years agoСделал генератор файлов DNS зон
Sergey Matveev [Wed, 17 Aug 2022 19:28:07 +0000 (22:28 +0300)]
Сделал генератор файлов DNS зон

http://www.git.stargrave.org/?p=zdns.git;a=tree
А то и человеческий фактор и геморрой уже надоели. Думал написать это
просто в виде zsh скрипта всё, а потом обернул в redo default цель.
Наколеночная работа, но задачу выполняет. Так как у меня тьма всего
сделано под одну гребёнку, добавление поддомена, как правило, означает
добавление адресов, SPF записи, CAA, DANE, возможно Yggdrasil адреса, то
всё можно автоматизировать. Например полностью вся зона nncpgo.org:

    zone_start 2012011632
    add_mx @
    add_subdomain www "$GW4 $GW6 $VPS4 $VPS6" "tls y"
    add_subdomain openpgpkey "$GW4 $GW6" "tls y"
    add_pgp releases@nncpgo.org

lists.cypherpunks.ru и его git. с некоторыми зеркалами:

    add_subdomain lists "$GW4 $GW6" "tls y nospf"
    add_mx lists

    add_subdomain git "$GW4 $GW6" "tls y nospf"
    print git TXT $ReSPF
    add_ssh git $SSHGW
    add_ssh y.git $SSHGW
    add_subdomain www.git "$GW4 $GW6" "tls y"

    add_subdomain go "$GW4 $GW6" "tls y"
    add_subdomain cpan.mirror "$GW4 $GW6" "tls y"
    add_subdomain ctan.mirror "$GW4 $GW6" "tls y"
    add_subdomain cran.mirror "$GW4 $GW6" "tls y"

2 years agoClang с обновлённым libstdc++
Sergey Matveev [Tue, 16 Aug 2022 19:39:43 +0000 (22:39 +0300)]
Clang с обновлённым libstdc++

За неделю мне попались две программы, в которых используется C++17
include <filesystem>, где прежде была абстракция из Boost-а. И у меня
оно не компилировалось, ибо не находит этот <filesystem>. Действительно,
при сборке используется штатный /usr/include, который у меня в системе
старый и в нём никаких <filesystem> просто ещё не было реализовано и всё
собрано на Clang 6.x ещё древнем.

Но я использую LLVM/Clang 14.x установленном через GNU Stow в ~/local,
где есть ~/local/include/c++/v1/filesystem. Пробую добавить этот путь
через -I -- ругается на то, что не может найти __config_state. Он есть в
include/x86_64-unknown-freebsd12.0/c++/v1/. Если его добавить в -I, то
дальше лавина ошибок из-за каких-то проблем с define-ами.

Под GNU GCC в GNU/Linux этот <filesystem> работает. Под виртуальной
машиной запускаю FreeBSD 13.1 с Clang-ом 13.x -- тоже всё работает, хотя
filesystem тоже под c++/v1.

Verbose показывает что при компиляции c++ (14.x) не пытается смотреть в
c++/v1 поддиректорию свою, а смотрит только в /usr/include, где старьё
сплошное, и в -I директории. Смотрю на вывод verbose под FreeBSD 13.1.
И разница только у указании "isystem" директории. Пробую повторить
полную команду "clang ... -triple x86_64-... -x c++" у себя локально, но
указывая isystem директорию ~/local/include/c++/v1. Снова падает на
невозможности найти __config_state. Скопировал его, ибо там ничего кроме
простых define-ов нет, и всё компилируется. Выходит что это не тоже
самое что просто добавление -I директории. Благо, в clang в 2019-ом году
добавили опцию -stdlib++-isystem, которая может переопределить эту
isystem.

Компилируется теперь с <filesystem> успешно, но не запускается. Уже
потому что libstdc++ не содержит всего нужного. Пришлось добавить в
LD_LIBRARY_PATH и ~/local/lib/x86_64-unknown-freebsd12.0.

Но перед этим кучу времени потратил на перекомпилирования LLVM-а, думая
что он как-то вообще не так собирает или не собирает вовсе этот
filesystem.

2 years agoТетрахроматия
Sergey Matveev [Mon, 15 Aug 2022 20:00:08 +0000 (23:00 +0300)]
Тетрахроматия

https://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D1%82%D1%80%D0%B0%D1%85%D1%80%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%8F
http://www.vasyanovich.com/images/art-facts/kak_razlitchayut_tsveta.jpg
https://www.diets.ru/data/cache/2012jan/24/04/570265_23705nothumb500.jpg
У людей, преимущественно у женщин, бывает такая мутация, при которой
появляется четвёртый тип колбочек в глазах, существенно расширяющий
диапазон видимых оттенков цветов. Я и по жизни видел сколько геморроя
добавляют эти женщины со своей цветовой дифференциацией, и в анекдотах
или картинках сколько про это. А оказывается, действительно биологически
разница в восприятии может быть.

2 years agoКак играть goregrind
Sergey Matveev [Mon, 15 Aug 2022 14:25:51 +0000 (17:25 +0300)]
Как играть goregrind

https://www.youtube.com/watch?v=LXLCnnXgjoQ
https://www.youtube.com/watch?v=jMdNBAwfWus

2 years agoThrash vs death vs black metal
Sergey Matveev [Mon, 15 Aug 2022 07:25:08 +0000 (10:25 +0300)]
Thrash vs death vs black metal

https://www.youtube.com/watch?v=aWfyHmjTALo
На практике показана разница между тремя стилями. У меня придраться не к
чему: действительно показаны отличные яркие представители. Не самые
сложные и техничные, но которые явно можно причислить к соответствующей
категории.

2 years agoМагнитооптический эффект видимый на камере
Sergey Matveev [Sun, 14 Aug 2022 18:36:57 +0000 (21:36 +0300)]
Магнитооптический эффект видимый на камере

https://www.youtube.com/watch?v=UTquUbvzJII
Показан принцип работы МО-дисков.

2 years agoСетевые диаграммы в PlantUML
Sergey Matveev [Sun, 14 Aug 2022 15:10:09 +0000 (18:10 +0300)]
Сетевые диаграммы в PlantUML

https://plantuml.com/nwdiag
В новых версиях появилась возможность рисования сетей. Обрисовал все
свои домашние сети и соединения и понравилось что получилось -- реально
понятно через что куда можно пойти.

2 years agoРтутным градусникам пришёл конец
Sergey Matveev [Sun, 14 Aug 2022 12:34:42 +0000 (15:34 +0300)]
Ртутным градусникам пришёл конец

https://intersgroup.com/nastasya-ivanova-farm-ekspert-kuda-ischezli-rtutnye-gradusniki/
https://en.wikipedia.org/wiki/Mercury-in-glass_thermometer
Коллега сообщил что обычный ртутный градусник уже не купить.
Оказывается, РФ действительно присоединилась к движению против них и
прекращает их производство. Всё бы ничего, наверное, но коллега говорит
что, попробовав несколько моделей, у них дикая погрешность (под полтора
градуса). Работающую простую надёжную штуку заменили, выходит, чем-то
что или не работает, или дорогое. Как всегда в пролёте простой потребитель.

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

2 years agoПосмотрел прохождение Deponia
Sergey Matveev [Sun, 14 Aug 2022 07:50:09 +0000 (10:50 +0300)]
Посмотрел прохождение Deponia

https://en.wikipedia.org/wiki/Deponia_(video_game)
Про эту игру слышал давно (ей уже десять лет), но не играл и имел
немного предвзятое отношение -- мол это уже навряд ли нечто типа
старого доброго квеста (point-and-click adventure). Но был не прав.
Всё выглядит именно так как и должно. Интересные головоломки, хорошее
простое управление, отличная графика и озвучка. Юмор понравился. Даже
есть отсылка к Secret Of Monkey Island, когда говорят про трёхголовое
нечто за спиной.

2 years agoНе грози южному централу, попивая сок у себя в квартале
Sergey Matveev [Sat, 13 Aug 2022 11:32:48 +0000 (14:32 +0300)]
Не грози южному централу, попивая сок у себя в квартале

https://ru.wikipedia.org/wiki/%D0%9D%D0%B5_%D0%B3%D1%80%D0%BE%D0%B7%D0%B8_%D0%AE%D0%B6%D0%BD%D0%BE%D0%BC%D1%83_%D1%86%D0%B5%D0%BD%D1%82%D1%80%D0%B0%D0%BB%D1%83,_%D0%BF%D0%BE%D0%BF%D0%B8%D0%B2%D0%B0%D1%8F_%D1%81%D0%BE%D0%BA_%D1%83_%D1%81%D0%B5%D0%B1%D1%8F_%D0%B2_%D0%BA%D0%B2%D0%B0%D1%80%D1%82%D0%B0%D0%BB%D0%B5
А ещё на днях пересмотрел этот фильм, уж не помню почему захотелось
вспомнить о чём он, ибо смотрел его один раз где-то в начале 2000-х.
Помню что 20 лет назад он мне показался совсем каким-то наркоманским
и не то чтобы хорошим. Сейчас не особо понимаю чего мне там раньше так
не нравилось. Мне кажется среди всех фильмов про нигерское гетто, из
комедий -- это лучший что я видел. Да и из всех фильмов братьев Уэйансов
это лучший.

2 years agoПосмотрел "Я достану тебя, ублюдок" и "Молчание ветчины"
Sergey Matveev [Sat, 13 Aug 2022 10:56:50 +0000 (13:56 +0300)]
Посмотрел "Я достану тебя, ублюдок" и "Молчание ветчины"

https://ru.wikipedia.org/wiki/%D0%AF_%D0%B4%D0%BE%D1%81%D1%82%D0%B0%D0%BD%D1%83_%D1%82%D0%B5%D0%B1%D1%8F%2C_%D1%83%D0%B1%D0%BB%D1%8E%D0%B4%D0%BE%D0%BA
https://ru.wikipedia.org/wiki/%D0%9C%D0%BE%D0%BB%D1%87%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B2%D0%B5%D1%82%D1%87%D0%B8%D0%BD%D1%8B
Первый фильм пародирует в целом жанр, а второй определённые фильмы.
Очень много смеялся.

2 years agoТаксономия доступа к информации
Sergey Matveev [Sat, 13 Aug 2022 10:49:41 +0000 (13:49 +0300)]
Таксономия доступа к информации

https://www.schneier.com/blog/archives/2022/08/a-taxonomy-of-access-control.html
https://eprint.iacr.org/2021/1522.pdf

safe -- только пользователь имеет доступ
loss -- никто не имеет доступа
leak -- и пользователь и злоумышленник имеют доступ
theft -- только злоумышленник имеет доступ

2 years agoИстория Lua
Sergey Matveev [Wed, 10 Aug 2022 12:19:44 +0000 (15:19 +0300)]
История Lua

https://www.lua.org/history.html
https://en.wikipedia.org/wiki/Grim_Fandango
Не может обойтись без упоминания, возможного лучшего
(https://adventuregamers.com/articles/view/18643), квеста Grim Fandango.
Много где говорили что бОльшая часть всего в этой игре написано на Lua.
У меня довольно тёплое отношение к Lua. Писал исключительно на нём
больше года для SAN системы, в том числе MVC UI LuCI из OpenWRT.

2 years agoДокументация рядом с кодом у Альфа-Банка
Sergey Matveev [Wed, 10 Aug 2022 11:50:22 +0000 (14:50 +0300)]
Документация рядом с кодом у Альфа-Банка

https://habr.com/ru/company/alfa/blog/680556/
http://www.stargrave.org/InfoRules.html
В ivi мы начали вести документацию, которая в том числе
шла наружу для сторонних разработчиков, в reStructured Text формате, ибо
всё же код на Python был изначально полностью. Каждое изменение API
попадало в отдельный файлик с изменениями в новой версии. Во время
релиза (вроде) запускался скрипт который этот файлик переименовывал в
чётко заданную версию. Во время ревью надо было проверять что все
изменения отражены в документации. И она отдельно собиралась Jenkins
задачей.

У меня было предложение использовать git-notes для хранения кусочков
текста которые должны пойти в changelog, но, действительно, это
требовало большой аккуратности и толком то ничего не упрощало, кроме
того факта, что в репозитории, во время разработки между релизами, не
правился один и тот же changelog файл.

В da160c3c7b3f5393aa37f2d042f9b281264273de писал про мой выбор форматов
документации. Сейчас я reST не использую совсем. Из личных проектов
только PyDERASN с ним остался. Для всего применяю Texinfo с Info и HTML
генерированием. С docstringer.pl скриптом (de290eaa23dc9d16296162f0ff52ed00f506e786):
http://www.git.stargrave.org/?p=dotfiles.git;a=blob;f=bin/bin/docstringer.pl
я собираю документацию из файлов исходного кода. Безусловно только redo
используется, типа:

    doc/docstringer.log.do:
        redo-ifchange *.texi docstringer.pl ../src/*.h
        sed -n 's/^@verbatiminclude \(.*.plantuml.txt\)$/\1/p' *.texi |
            xargs redo-ifchange
        mkdir -p build
        ./docstringer.pl -v ../src . build

    doc/xxx.info.do:
        redo-ifchange ../conf/cmd/makeinfo ../conf/version docstringer.log
        read MAKEINFO < ../conf/cmd/makeinfo
        read VERSION < ../conf/version
        cp -f *.txt build/
        cd build
        MAKEINFO_OPTS="$MAKEINFO_OPTS --set-customization-variable SECTION_NAME_IN_TITLE=1"
        [...]
        $MAKEINFO -D "VERSION $VERSION" $MAKEINFO_OPTS -o ../$3 index.texi

    doc/default.plantuml.txt.do:
        src=${1%.txt}
        redo-ifchange $src ../conf/cmd/plantuml
        read PLANTUML < ../conf/cmd/plantuml
        $PLANTUML -tutxt -pipe < $src

    doc/xxx.html.do:
        rm -rf $1
        MAKEINFO_OPTS="$MAKEINFO_OPTS --html"
        [...]
        MAKEINFO_OPTS="$MAKEINFO_OPTS" . xxx.info.do

Почти везде применяется хотя бы для одной-двух диаграмм PlantUML
(https://plantuml.com/). Недавно смотрел на его документацию и поразился
обилием вещей который он может рисовать. Но я почти только для sequence
диаграмм его использую. Искал более легковесные (не Java) альтернативы,
но уже много лет держу Java только и только ради одной этой программы,
ибо хороша.

2 years agoВокалист Airbourne о важности маленьких музыкальных площадок
Sergey Matveev [Wed, 10 Aug 2022 10:18:36 +0000 (13:18 +0300)]
Вокалист Airbourne о важности маленьких музыкальных площадок

https://www.darkside.ru/news/145758/
Согласен с ним полностью: на большую сцену новичок не может попасть,
а где ему развиваться то и где люди о нём узнают в противном случае?
Да и большая сцена это куда меньшее удовольствие чем клуб.

2 years agoУлучшил glocate
Sergey Matveev [Mon, 8 Aug 2022 19:40:58 +0000 (22:40 +0300)]
Улучшил glocate

В 8e24a68248865cfcd58538871f8b96e6327376d8 я написал glocate. Всё же
жутко напрягает что он жрёт уйму памяти, поэтому повозился над
оптимизацией. Отняло прилично времени, похоже из-за недостатка знаний по
структурам и алгоритмам. Сложности с применением zfs diff-а, который
как-то оттестирован, но наверняка есть крайние случаи и косяки.

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

Это работает вполне себе без проблем и годно. В файле хранится 16-бит
длина имени, имя, 8-бит глубина, 64-бит mtime и размер. Плюс Zstandard
над всем этим, ибо всё равно всё только в потоковом режиме читается и
пишется.

А для применения zfs diff куча кода. По сути я просто создаю
отсортированные списки из файлов для удаления, для добавления и для
изменения. Для каждого добавляемого файла есть запись в списке для
изменения. Записи из БД потоково читаются и смотрится нет ли записи в
списке для удаления. Если есть, то она в новую БД (очередной временный
файл) не попадает. Если есть запись в списке для добавления, и она при
сортировке должна пойти перед прочитанным элементом из БД, то она
вставляется в поток записей. Из списка для изменения берутся данные о
размере и mtime. Если прочитанная запись имеется в списке для изменения,
то у неё обновляется размер и mtime. Так как все списки отсортированы,
то никаких map-ов не используется и смотрятся только верхушки списков.

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

Дополнительная сложность с переименованием директорий: zfs diff
показывает ровно одну запись, честно. А мне ведь надо всю иерархию, все
элементы изменить. Если есть переименование директорий, то я отдельно
потоково читаю БД, ищу какие файлы надо во что переименовать, и
для каждого элемента создаю отдельную запись в списках удаления,
добавления и изменения.

Таким образом, если есть переименование директорий, то "копирование" БД
(чтение из неё и запись во временный файл) идёт первый раз для узнавания
всей иерархии директорий, второй раз для создания полной БД со всеми
записями, третий раз для актуализации всех размеров директорий. Но
отличное переиспользование кода при этом.

Все эти потоки записей идут через штатные каналы Go, обрабатываются в
горутинах и отлично распараллеливаются. Отдельная горутина для чтеца,
для писателя, для считателя размеров директорий, для модификатора потока
записей. Плюс zstd имеет свои горутины. Я в top-е видел использование
2-3-х ядер без проблем.

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

Поиска как такового нет, кроме как возможности указания части иерархии
для вывода, для последующего grep/whatever. И при этом он просто
потоково читает все записи из БД. Но работает вполне себе шустро:
считанные секунды чтобы выдать результаты (для полугигабайтной БД).

Смотрю на формат БД GNU findutils-ов:
https://www.gnu.org/software/findutils/manual/html_node/find_html/LOCATE02-Database-Format.html
и вижу что у них тоже никакой магии для поиска нету: просто компактный
формат, где объединяется общий префикс. Так как я явно храню знания о
директориях отдельно, чтобы у директории был свой mtime/size, то у меня
аналогично бы вышел вырожденный LOCATE02 формат БД, только вместо общей
длины у меня указывается глубина, вероятность переполнения которой
существенно меньше чем длина текстового префикса. Приятно что оказался
на аналогичном пути.

2 years agoВыступление Aspid, Бѣсъ, Sinful, Shadowmoor
Sergey Matveev [Fri, 5 Aug 2022 11:52:10 +0000 (14:52 +0300)]
Выступление Aspid, Бѣсъ, Sinful, Shadowmoor

https://www.youtube.com/watch?v=EVR3VD1hDrs
Качество записи (как звука, так и видео) конечно несоизмеримо с
3d70a9949cba9d5fbfa8a1f5084e405d7e891cc6, как будто это старый добрый
VHS какой-то.

Слушаю тут альбомы накупленные и очень порадовал Бѣсъ. В том числе
атасными картинками в обложке. Хотя богохульничества там хоть отбавляй,
но забавно из-за этого.

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

2 years agoВыступление Pale Keeper на MOR
Sergey Matveev [Fri, 5 Aug 2022 11:39:31 +0000 (14:39 +0300)]
Выступление Pale Keeper на MOR

https://www.youtube.com/watch?v=A0NaD9-qRLA
То, что мне понравилось больше всего на всём фестивале.

2 years agoGoogle Groups то ещё дерьмо
Sergey Matveev [Wed, 3 Aug 2022 17:10:54 +0000 (20:10 +0300)]
Google Groups то ещё дерьмо

В продолжении b3f6829703cff6d2397a4256c1d3a585f1a02586, сегодня пришло
письмо с битым multipart/signed. Настолько битым, что мой Mutt буквально
только треть его показал где-то, а дальше как будто ничего не написано.
Я ответил на письмо, не подозревая что в нём было что-то ещё.

Но, ничего страшного, ибо моё письмо хоть и было принято сервером
Google, но в web-архиве я его не вижу, как, соответственно, и ответов
возможных на него. Похоже стоит просто отписаться от всего что там
находится, ибо ни прочитать, не ответить.

2 years agoРок-фестиваль в Атланте отменили потому что мало оружия
Sergey Matveev [Wed, 3 Aug 2022 08:12:32 +0000 (11:12 +0300)]
Рок-фестиваль в Атланте отменили потому что мало оружия

http://www.hitkiller.com/nuzhno-bolshe-oruzhiya-rok-festival-v-atlante-otmenili-po-dikoj-prichine.html
Рок-фестиваль запрещает проносить оружие. А недавние законы Атланты
запрещают запрещать оружие в общественных местах, чем фестиваль является.
Ну поэтому и отменили. И смешно и грустно конечно :-)

2 years agoПишущие машинки с настоящим delete-ом
Sergey Matveev [Tue, 2 Aug 2022 20:09:23 +0000 (23:09 +0300)]
Пишущие машинки с настоящим delete-ом

https://www.youtube.com/watch?v=YE0U018Copw
Не знал что такое бывает, впечатляет.

2 years agoТретий день Metal Over Russia
Sergey Matveev [Sun, 31 Jul 2022 22:31:37 +0000 (01:31 +0300)]
Третий день Metal Over Russia

Вот и последний день MOR-а. Побывал на death сцене и впервые в Live
Starts клубе, который недалеко от Храма Христа Спасителя. Забавно: все
три дня, до всех клубов надо идти и ориентироваться по церквям и храмам.
Всё рядом с ними расположено.

Я был минимум наверное на с полсотни death концертах, но этот был явно
вообще не death. Блин, ведь уж чего чего, ЧЕГО ЧЕГО, но death метал
групп у нас в стране полным полно. А тут на завезли. Не ожидал. И
наверное бы не очень был рад проведённому времени, если бы не последняя
группа.

Первыми были Instorm. Ну нормально играли, но это по сути был power
metal, ближе к нему. Но слэм уже начался на них -- это здорово.

Далее были Nosłeep. Вокалистка, драм-машина и гитарист. Почти всё время
она пела чистым вокалом. Я вообще ни в музыке, ни, тем более, в вокале
не разбираюсь, но даже я знаю что кричать не значит петь. Можно яростно
и круто scream-ить в микрофон и это будет здорово, но не просто визжать.
Под конец мне прям совершенно перестало нравится, честно говоря, хлопал
уж просто из приличия. Вокал очень слаб, да и музыка как-то просто ни о
чём толком. Хотя некоторым вроде понравилось -- хорошо если так.

Далее была единственная death метал группа Mastemath. После Nosłeep
конечно это раззадорило людей, все повеселились, но для меня ничего
особого. Просто death metal, вот типа и всё.

А дальше вышли Storm of Souls. Frontman это невысокая узкоглазая
девушка. После девушки из Nosłeep я аж испугался, мол вдруг что-то опять
подобное будет? Фиг там! Она так круто играла на гитаре, как и все
остальные в группе, что ни капли не пожалел что пошёл на этот концерт.
Это вообще тоже нифига не death (я не понимаю чем руководствовались
люди, которые это всё назвали death-ом (ну кроме Mastemath)?), но
просто клёвый атасный thrash метал!

Клуб Live Stars оказался таким маленьким, что я даже застыдился, ибо я
кучу других, типа Города, называл малюсенькими. А он, выходит, так
вообще коморка. После ДК Кристалл, я подумал что ветвь первенства по
отвратнейшему звуку будет побит сегодня. Но... конкретно на Storm Of
Souls он был более чем неплох. Вот когда выходят матёрые опытные группы,
то и звук у них куда лучше, хотя техника остаётся прежней. От звукача
многое зависит. Но в ДК Кристалл всё же не было ни одного выступления на
моей памяти чтобы звук был приемлем.

Когда меня реально что-то начинает цеплять, когда реально начинает
нравится, то у меня подступают слёзы. Так вот на Storm Of Souls чуть ли
не все первых 3-4 трэка они и подступали -- ибо очень круто играли.
Дикая редкость: но отдельно даже было барабанное соло, а потом и
гитарное. Они явно очень понравились всем и искренне все им салютовали.
И позвали на бис, чего они не планировали делать. И что же было на нём?
Может ошибаюсь из-за не сильной осведомлённости, но это известнейшая
песни вроде бы Mötorhead. Ни разу подобное в живую не слышал. От death-а
ясное дело далеко как никогда, но так здорово всё равно!

Прикупил ещё пару альбомов. Вообще весь этот фестиваль это нехилый
бизнес конечно же. Один только я за эти три дня где-то на 15k₽
потратился. Впрочем, не малая доля ушла на диски, которые мимо кассы
MOR. А это ведь были маленькие площадки далёкие от заполненности. На
главных сценах наверное на порядок больше народу было.

В общем, подводя итог: я жутко доволен этим фестивалем прошедшим! Я был
на двухдневных, но трёхдневных ни разу. Шея болит. Говорю ощутимо более
низким голосом. Спать ложусь глубоко ночью, ибо ведь добираться на
последних электричках приходится. Storm Of Souls приятные впечатления
оставил напоследок, как последняя группа фестиваля. Но впечатление от
doom сцены ничем не перебить. Как будто большая часть зала мне уже
знакома даже была на третий день. Как мне нравится быть среди подобных
людей! Отцу вчера говорил как-раз что нигде я так себя не ощущаю в своей
тарелке.

2 years agoПереехал на public-inbox с hypermail
Sergey Matveev [Sun, 31 Jul 2022 12:03:05 +0000 (15:03 +0300)]
Переехал на public-inbox с hypermail

http://www.git.stargrave.org/?p=public-inbox.git;a=summary
В b54eee0a42cf88a1bc85e18e682797405b8f7608 писал про знакомство с
public-inbox, который мне всем понравился, хоть и закрываю глаза на то,
что приходится иметь запущенного демона HTTP.

Для обновления БД использую не -mda, а -watch команду, которой
подсовываю якобы maildir-ы (где cur является симвлической ссылкой на
архив писем mlmmj). Поэтому теперь нет получасового ожидания cron-а
когда hypermail обновит свои архивы. Всё почти моментально обновляется.

Fork-нул public-inbox, чтобы разрешить HTML письма, ибо всё равно
фильтрация происходит на стороне mlmmj. Правда всё равно остались письма
не попадающие в архив, но что ж поделать, что люди, а точнее компании,
упорно стараются делать email неюзабельным. Плюс выпилил всякие
текстовые вкладки о том как можно отправить письма в рассылку через
git-send-email -- для моих рассылок это не актуально и вообще является
ложью, ибо mlmmj ими правит, а public-inbox это только про архивы.

2 years agoВторой день Metal Over Russia
Sergey Matveev [Sun, 31 Jul 2022 09:20:42 +0000 (12:20 +0300)]
Второй день Metal Over Russia

https://sun1-21.userapi.com/impg/xHGmXmwbdpjThE-nCoMb34Ec_jy18Ut9tZA5cA/QOoaf5lFIBM.jpg?size=1920x1440&quality=95&sign=4be92cb0e6045af76da8015d6b01024f&type=album
https://sun1-14.userapi.com/impg/Y7ZxEOZ57qqWHKXYXmkorgYjzeFuzEiNfW76ow/GLW6lqqDB84.jpg?size=1920x1440&quality=95&sign=80a77c65df2a9bb468a1ba8bda65b8ba&type=album
https://sun9-42.userapi.com/impg/14X36DrGUBiLnRxn70XBECxVNrTJXsnMGC_FSw/mWgx8nCZJKw.jpg?size=1600x1200&quality=95&sign=5ab89b9c10925c633bbaf21560bc4495&type=album
https://sun9-42.userapi.com/impg/11srfA47dozx7U2gZNyf2v_7WrK5lFNyD7TGQQ/_gLj7YOXVt0.jpg?size=1600x1200&quality=95&sign=8ba6039793a65fb6b7bc22a60d2b36ae&type=album
https://www.youtube.com/watch?v=FBKAx6hI-sY
Сходил на black сцену MOR-а. Такого восторга как вчерашний концерт уже
не вызвало. Но наверное потому что на black-е я был много и часто,
сложнее впечатлить. Ну и всё же я уже заранее знал что, раз это будет в
ДК Кристалл, то жди каши из звука (как это было на Coyote Brutal Fest
20916c6f22a5f98524b899ddb1a588a2433316b2). Так и было. Уши ловят сначала
чистый нормальный звук из колонок, а потом уже отражённый от стен и
головой его приходится отфильтровывать.

То что нет восторга, не означает что концерт не удался. Отличные группы,
отличная толпа людей (слеймилась на каждой группе), треть которой я уже
видел предыдущим днём! Недавно был на black metal концерте Ashen Light
(e4a09572c117d8bc3c9f00a71cdd750f339a35a1), но это прям детский сад,
типа начинающая группа, по сравнению с теми кто выступал на MOR. Очень
много black-а я видел именно простоватого уровня. А тут прям крутые
мощные группы, которые я бы поместил на одну полку с мировыми известными
мастерами сие стиля.

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

На doom сцене, забыл упомянуть, меня удивило ещё то, что мне непривычно
слышать чистый вокал. Я б даже сказал что немного напрягало это. На
black сцене уже никакого чистого вокала -- наслаждение! Мне вообще
что-то кажется что, учитывая как много я слушал постоянно музыки, то
гроула и скрима я небось слышу больше чем чистой речи в целом по жизни.

И забавный факт различия от doom-а и black-а: за одну песню black-а по
барабанам и одной только бочке совершается больше ударов чем за весь
doom концерт суммарно. Но конкретно сейчас я слушаю Pale Keeper
(c3612c3ec2ad4696781709012842083a45b1b5b8).

Отдельно про каждую группу особо писать мне нечего. Первыми были Aspid,
затем Бѣсъ, потом Sinful и Shadowmoor. Все играли отлично, барабанщики
круты, вокалисты жутко энергичны и бодры. Отличное настроение на всех
группах. Кучка бошкотряса и на всех был слэм. На Бѣсъ народ явно
разогрелся -- очень круто сыграли. У Shadowmoor запомнился барабанщик, и
то, что они регулярно в какой-то Finntroll скатывались. Не то чтобы это
плохо, но хочется сказать что не хватает агрессии, как в Funeral Mist
или Marduk.

Но явными headliner-ами фестиваля для меня стали Sinful! На их концерт
отдельно стоит пойти, который будет 27-го августа в клубе Город, который
мне уже сильно полюбился. И performance, и наряды, и игра, и взаимодействие
с залом, и Kiss-like поведение frontman-а -- всё очень понравилось. И
вот их музыка уже была достаточно круто агрессивна, хотя и не сказать
что мрачна.

Прикупил пять альбомов, в том числе Sinful-а.

Что ещё могу добавить? В укор всяким людям из Фрязино -- имя Сатаны ни
разу не прозвучало со сцены, ничего подобного. Бѣсъ с залом восхвалял
только Чернобога. Так что про сатанизм думаю на порядки больше только
все эти религиозные фанатики портящие жизнь окружающим. Да как и любые
фанатики, конечно же.

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

Нашёл тут видео Pale Keeper выступления, но это полное говно а не
запись, ибо там звук настолько мощный, что просто все микрофоны
смартфонов глушит. Даже я в кадр попал. Думал что с шеей всё нормально,
но на втором MOR -- болела, хотя я головой тряс вертикально, не
распуская волос, что даже не считал бы.

2 years agoПервый день Metal Over Russia
Sergey Matveev [Fri, 29 Jul 2022 23:16:36 +0000 (02:16 +0300)]
Первый день Metal Over Russia

Сходил на doom сцену MOR-а. Прежде по сути на doom концерте никогда не
был. Ну что могу сказать... было просто потрясающе неописуемо офигенно!
Я ожидал просто yet another сборной солянки из разных групп. Чёрта с два
это была так.

Во-первых, я не разбираюсь в стилях всех этих. Я думал что doom metal
это "Burning bridges" песня у Arch Enemy. Но тут почти у всех было то,
что я бы называл stoner metal-ом, ибо похоже жутко на Weedeater
(19d6300c909d23d3e94d5cbd165f5837a2ae4c42). Который кстати тоже был в
этом клубе. Во-вторых, это прям существенно другая музыка, совершенно
новый опыт для меня.

Первыми выступали Thunder Volt. Это типа Nirvana в виде stoner/doom
metal. Здорово отыграли, очень понравилось. Поддержка от зала была тоже
выше всяких похвал -- всем зашло, хотя это ведь вообще первая группа,
мол разогревчик просто. Уже не пожалел что пошёл -- даже одного их
выступления мне было более чем удовлетворительно.

Далее шли Топь. Музыка в принципе у них посложнее и поинтереснее, но
бесил вокалист. Тексты были на русском, ну и все из себя типа забавные и
годные для панка, типа песни "я ебанутый". Не моё.

После их выступления я было подумал что до Weedeater всё равно не
дотягивают. И тут начали играть Pale Keeper. Впервые от себя в блоге
использую скверное слово: это было АХУЕННО! Я отдельно после их
выступления к ним подошёл и поделился восторгом. Я не знаю какой
бесчувственной тварью надо бы было быть, чтобы они не снесли тебе голову
качем. Звукач отлично поработал: удары по бочке отдавали в груди,
бас-гитара заставляла вибрировать пол, удары по барабанам как выстрелы,
а звон тарелок полностью заполняют всю голову. Более сочной как
бензопила гитары я не знаю когда слышал. Вообще звук был для меня неким
эталоном того, как метал должен насквозь тебя пропитывать. И именно этот
звук -- причина почему подобное надо слушать на концертах. Гитарист в
каждой песне, время от времени, делал клёвые крутые запилы, но без
шреда. Казалось бы, одни и те же колонки, одни и те же барабаны, но звук
басухи и электрухи этих парней как будто всё время был в идеальном
резонансе и поэтому получалось просто сногсшибательно. Я реально не
помню слышал ли я такой метал прежде. Хоть и относительно простовато,
но прям моё премоё!

Был уверен что до конца недели ничего уже так не впечатлит. Тоже был не
прав. Вышли Челябинцы Megalith Levitation в чёрных рясах, надвинутых
капюшонах, типа как Батюшка. Если для преисподнии нужна фоновая музыка,
ну как в торговых центрах в колонках, то это однозначно должны быть они.
Вот это точно doom так doom. Простоватый, опять же, конечно, очень
занудный и под конец я уже подустал от однообразия, но атмосферно просто
жуть. Без того сокрушительного зубодробительного звука это всё равно не
передать ни словами, ни колонками или наушниками дома. Прикупил пару их
альбомов. Не, не то чтобы музыка у них была крута, как у Pale Keeper, но
атмосферность впечатлила.

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

Короче это потрясающе всё было! Это точно нельзя было пропускать. А ведь
шёл на doom в слепую. Да и групп то этих наших никаких не знаю, включая
тех кто будет в субботу и воскресенье на black и death сценах.

2 years agoMetal Over Russia не отменилась
Sergey Matveev [Fri, 29 Jul 2022 11:45:10 +0000 (14:45 +0300)]
Metal Over Russia не отменилась

https://metaloverrussia.ru/
Разбросали выступления по куче разных клубов. Площадки для doom, black,
death отдельно. Есть даже группа из Королёва.

2 years agoFacebook предпочитает C++, Rust, Python, Hack
Sergey Matveev [Fri, 29 Jul 2022 09:15:03 +0000 (12:15 +0300)]
Facebook предпочитает C++, Rust, Python, Hack

https://www.opennet.ru/opennews/art.shtml?num=57569
Про Hack ничего не знаю, вроде бы и не слышал прежде. Оказалось что это
PHP со статической типизацией. А C++ с Rust-ом для меня прям ярое нет
для использования. Не дружить мне с миром Facebook-а.

2 years agoПознакомился с public-inbox
Sergey Matveev [Thu, 28 Jul 2022 19:25:44 +0000 (22:25 +0300)]
Познакомился с public-inbox

https://public-inbox.org/README.html
Упоминал в 24cb57beb1d53c4822b881300c73a37f1f36cc03 про то, что не плохо
бы иметь NNTP интерфейс к архивам почтовых рассылок. Я не нашёл ни
одного простого средства, как минимум без серьёзных СУБД типа PostgreSQL
или MySQL, чтобы Maildir/mbox можно было выдавать. Я не прочь бы был и
просто через pipe в команду скармливать по сообщению, чтобы оно попадало
в какую-нибудь БД, но ничего не нашёл удовлетворительно простого.

Вспомнил про public-inbox, который уже не помню почему не рассматривал
(05bfb59b71520599ab105f0b189a5876988c0dcc). Наверное потому что
показалось большим overhead-ом хранить это всё в репозитории и потому
что нужно иметь запущенный демон в качестве frontend-а. Но посмотрел и
попробовал это поближе.

Мне очень понравилась аккуратность документации и минималистичность
проекта. Я не ожидал что настолько легко будет сделать архив и отдавать
его. public-inbox-init с тривиальными аргументами, public-inbox-mda
скормить через stdin просто все файлы архива mlmmj
(aac872add6b3defe52aef4d70dbb54a6fcddf973), public-inbox-index --all, а
дальше просто запускать или -httpd, или -nntpd, или -imapd.

Но обнаружились проблемы: он отказывается помещать в архив HTML письма,
как минимум. В рассылке про криптопати многие письма отсутствуют, есть
только ответы в plain text-е. И public-inbox настолько минималистичен,
что настроить это ничего нельзя. Хотя оно на Perl и в качестве
преимущества указывается (7140d7a5634957df1b459a4d6dae976b642d18f4)
возможность всё это править, но не думаю что я возьмусь за это. Люди
использующие HTML в письмах заслуживают презрения и неуважительного
отношения и недостойны помещения в архив.

Другая, более важная проблема: я не нашёл ни одного клиента который бы
отображал мне кириллические письма. Впервые пробовал использовать NNTP и
поэтому опыта никакого. slrn, tin и NeoMutt пробовал, а также Lynx. В
общем-то, кириллические письма всегда в закодированных MIME сообщениях
встречаются. tin показывает содержимое писем, но не декодирует их темы,
поэтому список сообщений в криптопати-рассылке состоит из сплошных
вопросительных знаков. slrn наоборот отображает темы, но не тела. Или
наоборот -- уже запутался. Lynx ничего не декодирует.

А NeoMutt не показывает список сообщений вообще, хотя список доступных
групп имеется. С Gmane-ом он сообщения показывает, так что наверное
что-то с public-inbox не стыкуется у него. Причём нашёл пару ошибок в
нём: на одной строчке из muttrc он падает и ругается что там какая-то
ошибка. На одном из предыдущих коммитов, когда я пробовал "другую"
версию NNTP реализации, увидел что он явно написал мне про ошибку
(mailboxes указывал на несуществующий mailbox). То есть явно произошла
деградация в нём. А другая ошибка была в том, что в нём по умолчанию
включён всякий force TLS, он выдаёт ошибке о невозможности провести
STARTTLS, но зачем же при этом показывать мне список групп новостей? То
есть, не смотря на force TLS, он всё равно общается с сервером.

В итоге NNTP как бы отпадает, ибо всё плачевно с MIME поддержкой в
популярных клиентах.

Но, зато работает IMAP! Анонимный пользователь без проблем может войти,
ну и отдаётся всё в этом почтовом ящике. Уж IMAP-capable софта гораздо
больше и с MIME проблем быть не должно ни в каком виде уже.

Наверное буду переезжать на эту штуку. С daemontools тривиально
интегрируется. godlighty надо научить проксировать запросы в -httpd.
Посмотреть как бы красиво письмо можно бы было скармливать -mda. Понять
нужен ли IMAP. Скорее всего нет, ибо если в news:// ещё можно указывать
конкретное сообщение, то в imap:// не слышал о таком.

2 years agoПочему Perl?
Sergey Matveev [Thu, 28 Jul 2022 16:24:13 +0000 (19:24 +0300)]
Почему Perl?

https://public-inbox.org/public-inbox.git/tree/Documentation/technical/whyperl.txt
Несколько ответов из public-inbox проекта повторю:
* Установлен на большинстве, если не всех GNU/Linux и BSD-based серверах
  и рабочих станциях. Похоже что это самое распространённое программное
  окружение, которое реализует огромную часть POSIX функциональности.
  Кроме того, документация Perl ставится часто как man-страницы тут же.
* Один из самых мало жрущих ресурсы интерпретируемых языков
* За двадцать лет существования Perl, в нём почти не было каких-либо
  крупных обратно несовместимых изменений. У него колоссальная
  совместимость
* Компактность и сжатость кода означают меньше вероятности наделать
  ошибок. Хотя это безусловно спорное утверждение, учитывая динамическую
  типизацию

2 years agoVPS снова работает
Sergey Matveev [Thu, 28 Jul 2022 07:17:21 +0000 (10:17 +0300)]
VPS снова работает

https://status.hexcore.ru/
Пишут на своём сайте, что маршрутизатор у них полетел. Более 12 часов
всё не работало. Причём IPv4 запустили сильно раньше чем IPv6. Но хотя
бы в строю. А то ведь в прошлом году два месяца IPv6 у них не работал
и я испугался как бы не повторилась эта история снова.

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

2 years agoMetal Over Russia отменили
Sergey Matveev [Wed, 27 Jul 2022 16:38:16 +0000 (19:38 +0300)]
Metal Over Russia отменили

https://lenta.ru/news/2022/07/27/metal_over/
https://rockgig.net/event/402799
https://rockgig.net/event/447228
https://rockgig.net/event/447229
https://metaloverrussia.ru/
Религиозные уроды добились отмены метал фестиваля. Я видел список его
групп и приятно удивился серьёзности: там реально конкретные нормальные
крутые группы, а не всякий heavy metal типа Арии (при всём моём уважении
к ним). Хотя пишут пока только о переносе.

2 years agoПроизношение "of"
Sergey Matveev [Wed, 27 Jul 2022 07:17:45 +0000 (10:17 +0300)]
Произношение "of"

https://english.stackexchange.com/questions/4462/pronunciation-of-of
https://www.merriam-webster.com/dictionary/of
https://en.wikipedia.org/wiki/Behemoth_(band)
Я шокирован как никогда. Но "of" в любом английском (что американском,
что британском) произносится как "ov". Я начинал учить английский ещё в
дошкольной подготовительной группе, до школы, 30+ лет назад. Но всегда
произносил с "ф" на конце и никак иначе. И отличить "off" и "of" я был
уверен что можно только по контексту. И никогда не обращал внимания на
произношение этого слова другими людьми.

Короче, надо просто быть black metal сатанистом типа Behemoth, которые у
себя на дисках/буклетах меняют "of" на "ov", чтобы никого не путать.
Уважаю за заботу о своих клиентах :-)

2 years agogpg --symmetric, постквантовые алгоритмы
Sergey Matveev [Wed, 27 Jul 2022 06:46:51 +0000 (09:46 +0300)]
gpg --symmetric, постквантовые алгоритмы

https://en.wikipedia.org/wiki/Grover%27s_algorithm
https://en.wikipedia.org/wiki/Shor%27s_algorithm
Если есть опасения что в ближайшем будущем могут появится квантовые
компьютеры достаточной мощности (кубит) для запуска алгоритма Гровера,
то достаточно использовать размеры ключей в два раза длиннее чем нужный
порог безопасности. То бишь, 256-бит ключ на квантовых компьютерах всё
равно должен будет ломаться за 2^128 операций. Поэтому проблем с
симметричными шифрами нет. Наши ГОСТовые алгоритмы вообще всегда
использовали 256-бит ключи.

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

А вот вся асимметричная криптография ломается моментально и полностью,
независимо от длины ключа (поэтому пофиг cv448 у вас или cv25519). И RSA
и ECC все. И если просто обычно шифровать OpenPGP сообщения для
долговременного хранения (gpg -e -r offline-storage < data), то внутри
такого пакета он будет использовать асимметричный алгоритм (или DH в
случае с cv25519/cv448, или асимметричного шифрования RSA), на основе
которого будет вырабатываться симметричный ключ шифрования сообщения. А
так как асимметричный алгоритм всё равно будет взломан, то и
симметричный ключ узнана и сообщение полностью компрометируется.

И пока постквантовые алгоритмы не распространены, не так эффективны и
относительно ресурсоёмки, то как вариант для долговременного хранения
зашифрованных данных -- не использовать асимметричную криптографию.
Очевидно. Как передать безопасно парольную фразу при этом другому
человеку? Без постквантовой криптографии никак. Но если речь о
собственных данных, когда ни с кем сторонним не надо согласовывать
ключи, то парольная фраза и исключительно симметричное шифрование вполне
себе выполнимы.

В Интернете можно найти тысячи статей и советов как симметрично
зашифровать что-то использую openssl enc вызов команды. И в 999 статей
будет просто шифрование, каким-нибудь CBC/CTR режимом, без какой-либо
аутентификации. Именно по этой причине и дают совет: никогда не
занимайтесь криптографией самостоятельно, потому что подобные советы --
медвежья услуга. Изменение шифротекста вы при этом не обнаружите.

Благо, в GnuPG есть опция --symmetric, подходящая для этой задачи. Без
проблем использующая AEAD режим шифрования. В документации не написано
как усиливается пароль, лень смотреть в исходниках, но или никак или
как-то слабо, учитывая что сейчас в OpenPGP рассылках обсуждают Argon2.
Но раз шифруется что-то серьёзное, то и парольная фраза будет достаточно
длинной и стойкой и поэтому переживать об усилении нет смысла?

Можно бы было использовать PQ-алгоритмы для шифрования хотя бы парольных
фраз. Но лично я в этих алгоритмах толком не разбираюсь. В курсе
некоторых идей и проблем на которых они основаны, в курсе чем занимается
Бернштейн с ними, но на этом всё. У меня единственный софт с
PQ-алгоритмом это обновлённый OpenSSH
(ac8333dcf2a8d2e40a00b4a551355760aa0e28b7), где только согласование ключей.

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

2 years agoVPS пока не работает
Sergey Matveev [Wed, 27 Jul 2022 06:02:55 +0000 (09:02 +0300)]
VPS пока не работает

Мой VPS пока что-то не работает. Даже не могу войти в панель
управления у хостера. Так что исходящая почта не отправляется.

2 years agoФакты о Брюсе Шнайере
Sergey Matveev [Tue, 26 Jul 2022 10:03:57 +0000 (13:03 +0300)]
Факты о Брюсе Шнайере

Уже не помню откуда эти забавные факты, но целый сборник у меня их.

* When Bruce Schneier observes a quantum particle, it remains in the
  same state until he has finished observing it
* Bruce Schneier knows Alice and Bob's shared secret
* Most people use passwords. Some people use passphrases. Bruce Schneier
  uses an epic passpoem, detailing the life and works of seven mythical
  Norse heroes
* Bruce Schneier's secure handshake is so strong, you won't be able to
  exchange keys with anyone else for days
* Bruce Schneier knows the state of schrödinger's cat
* If we built a Dyson sphere around Bruce Schneier and captured all of
  his energy for 2 months, without any loss, we could power an ideal
  computer running at 3.2 Kelvin to count up to 2^256. This strongly
  implies that not only can Bruce Schneier brute-force attack 256-bit
  keys, but that he is built of something other than matter and occupies
  something other than space
* Bruce Schneier writes his books and essays by generating random
  alphanumeric text of an appropriate length and then decrypting it

* Schneier knows if Reiser did it
* Bruce Schneier doesn't need backups because his hard drive knows that
  failure is not an option
* Bruce Schneier uses a variation of the sha1 algorithm to drive his
  car, which is why he never has collisions
* Bruce Schneier does not share forks when eating with dining
  philosophers
* SHA = "Schneier has access" SHA2 = "Schneier has access - and a spare
  too"
* There are no composite numbers. Only prime numbers Bruce has broken
  into smaller pieces
* Erwin Schrödinger had a mere cat; Bruce Schneier has a Bengal tiger
* Bruce Schneier wrote the random number generator used to generate
  thermal noise
* Bruce Schneier distrusts atomic clocks because the timing attacks are
  too obvious
* Remember - if you ever lose your password, you can still ask Bruce
  Schneier
* When Bruce Schneier plays lotto, he doesn't guess. He determines
* Bruce Schneier uses a different salt for his soup everyday
* Bruce Schneier can hear sounds through vacuum
* Bruce Schneier knows J. Random, and where he lives
* Most people salt their hash. Bruce salt and peppers his
* Bruce Schneier feeds Schrödinger's cat on his back porch. Without
  opening the box
* AES stands for "Ain't Encryption to Schneier."
* Bruce Schneier loves women with extra padding
* Bruce Schneier is a proof that one way functions do not exist
* ITAR prevents Bruce Schneier from travelling abroad, even though the
  restrictions on the export of strong crypto have been lifted
* cryptographically secure (adj): 1. uninteresting to Bruce Schneier
* Stephen Hawking changed his opinion on the information paradox when he
  realized that not even black holes can hide information from Bruce
  Schneier
* Bruce Schneier once could not decrypt something. Then he woke up
* God does not play dice with the universe. That's Bruce Schneier's job
* There are no prime numbers, just numbers Bruce Schneier hasn't
  bothered to factor yet
* Bruce Schneier can distinguish non-orthogonal quantum states
* Every time Bruce Schneier speaks, a cryptographer dies
* Bruce Schneier doesn't encrypt, he Bruce Schneiers
* Only Bruce Schneier is allowed to wear the "I read the NSA's e-mail"
  t-shirt
* When transmitted over any socket, Bruce Schneier's public key causes
  libpcap to enter an infinite malloc loop
* Bruce Schneier is always the man in the middle
* When Bruce Schneier observes a quantum particle, it remains in the
  same state until he has finished observing it
* Bruce Schneier can smell weak keys
* Bruce Schneier doesn't need to hide data with steganography - data
  hides from Bruce Schneier
* Bruce Schneier knows the state of schrödinger's cat
* The Dining Cryptographers always wait until Bruce Schneier has been
  served
* Bruce found a secure way to reuse a one-time pad
* Bruce Schneier knows you are reading this
* Bruce Schneier doesn't even know the meaning of the word ciphertext,
  because to him, everything is plaintext
* Bruce Schneier's secure handshake is so strong, you won't be able to
  exchange keys with anyone else for days
* Bruce Schneier does not share forks when eating with dining philosophers
* Bruce Schneier can force Brownian motion to go in one direction only
* Bruce Schneier can tie cherry stems into Feistel nets with his tongue
* The reason why BSDs are now the most secure OSes is that BSD stands for
  "Bruce Schneier Debugged it"
* Bruce Schneier can calculate MD5 hashes in his head. For any length of
  data. In constant time. Drunk
* Bruce uses Turing tape as toilet paper
* Bruce Schneier can read and understand Perl programs
* Bruce Schneier's two-factor authentication consists of his left and
  right fists
* Bruce Schneier is immune to birthday attacks - no children are born on
  his birthday to avoid collisions
* If Bruce Schneier multiplies two primes, the product is prime
* Bruce Schneier takes no prisoners, so there never is a dilemma
* Bruce Schneier is the root of all certificates
* Bruce Schneier knows Chuck Norris' private key
* Regardless of their length, all passwords are vulnerable to a
  Bruce-force attack
* At college, Bruce Schneier had his way with so many women that his dorm
  room was called "The One-Time Pad."
* Parallel lines meet at Bruce Schneier
* Bruce Schneier has solved the Travelling Salesman problem in O(1) time,
  but hasn't published it because he doesn't like salesmen
* Bruce is so influential that a blog link is indistinguishable from a
  DDoS attack
* Bruce Schneier puts his pants on in constant time... no matter how many
  legs he has
* Bruce Schneier is also an accomplished children's author. He wrote the
  famous childhood crypto book, "One Fish, Twofish, Red Fish, Blowfish"
* If Bruce Schneier multiplies two primes, the product is prime
* Bruce Schneier can find Waldo in one chronon
* Bruce Schneier does not bother with challenge-response mechanisms. No such
  system dares to challenge him
* Bruce Schneier takes no prisoners, so there never is a dilemma
* Bruce Schneier can make onion routers cry
* When you email Bruce Schneier, you don't need to press "send"

2 years agoDebian захватил debian.community сайт
Sergey Matveev [Tue, 26 Jul 2022 04:22:24 +0000 (07:22 +0300)]
Debian захватил debian.community сайт

https://www.opennet.ru/opennews/art.shtml?num=57552
Увидев имя Daniel Pocock, то я сразу понял какого рода критика проекта
была. Сайта даже не открывал, но ещё со времён когда я был членом FSFE,
Покока знаю давно. Запомнился просто как неприятный гнусный обсиратель.
Можно даже не читать что он пишет.

2 years agoСделаем DNS снова быстрым: DNS over QUIC
Sergey Matveev [Mon, 25 Jul 2022 18:27:02 +0000 (21:27 +0300)]
Сделаем DNS снова быстрым: DNS over QUIC

https://habr.com/ru/company/otus/blog/678650/
Давайте делать вид что DNSCrypt не знаем, ибо он настолько просто и
эффективен что никакого fun-а и проблем, и сделаем медленную громоздкую
херню типа DNS over TLS, а ещё и DNS over HTTPS. Теперь у нас появляется
challenge! У нас всё стало медленно и надо с чистой совестью решать эту
проблему. Поражает насколько могут люди всё усложнять. Мне страшно
представить сколько кода вообще нужно чтобы с нуля (ну, имея под рукой
работающий TCP/IP стэк) можно было бы пользоваться этой штукой.

2 years agoFedora не считает CC0-лицензированный код свободным
Sergey Matveev [Mon, 25 Jul 2022 18:22:25 +0000 (21:22 +0300)]
Fedora не считает CC0-лицензированный код свободным

https://lwn.net/Articles/902410/
То бишь то, что public domain, не является свободным и допустимым у них
к использованию. Google у себя не разрешает AGPLv3. Apple вообще без
комментариев. Microsoft недавно чудила (d42c6eaa66c7fdb286f05d9e0ac3035976e0068c).
Конечно, конечно, корпорации очень не прочь поддерживать свободное ПО.

2 years agoФрагментация на дедуплицированном ZFS
Sergey Matveev [Mon, 25 Jul 2022 09:41:29 +0000 (12:41 +0300)]
Фрагментация на дедуплицированном ZFS

В ca7f39f768008dd3bf15cbb2be98d4680da85e0b говорил про жуткую
медленность при записи или удалении данных в ZFS. Но, кроме всего
прочего, у меня при полном выполнении zfs send | zfs recv на
дедуплицированный pool -- было >25% фрагментации. Если send/recv
проделать на простой pool, то 2%! Плюс раздел с PyPI пакетами у
у меня занимал >33G, а без дедупликации 8.5G! В целом у меня на
20-25% больше pool занимал места. Об этом я не припоминаю чтобы
в статьях упоминали. Возможно, опять же, у меня какая-то странная
версия.

Подозреваю что фрагментация и такой колоссальный overhead из-за
постоянного сброса DDT на диск в момент записи.:

2 years ago3DES и SHA1 в GnuPG можно не использовать
Sergey Matveev [Sun, 24 Jul 2022 15:50:31 +0000 (18:50 +0300)]
3DES и SHA1 в GnuPG можно не использовать

https://www.opennet.ru/opennews/art.shtml?num=54928
С GnuPG 2.3.0 по умолчанию не используется 3DES. AES вместо него как
наименьший общий знаменатель. Но если выставить предпочтения для ключа,
то setpref/showpref всё равно будет показывать 3DES и SHA1. Однако на
самом деле, если экспортировать ключи и посмотреть его пакеты
(--list-packets), то можно будет убедиться что никаких 3DES/SHA1 явно не
прописывается.

А я добавлял их чтобы явно понимать что они будут присутствовать в любом
случае. Теперь можно полностью избавиться.

2 years agoПопробовал пожить с полной дедупликацией на всём pool-е
Sergey Matveev [Sun, 24 Jul 2022 14:52:48 +0000 (17:52 +0300)]
Попробовал пожить с полной дедупликацией на всём pool-е

И через пять часов отказался от этой затеи -- запись на pool с парой
сотен гигабайт реально идёт ооооооочень медленно. Памяти полно, CPU
полно, NVMe, но работает это всё в разы медленнее чем был бы HDD, при
этом top говорит, что в основном CPU простаивает. Для general purpose
системы прям совсем не годится. Возможно в более новых версиях (Open)ZFS
многое прооптимизировано и улучшено, но у себя я так не могу.

2 years agoСделал себе новый PGP ключ
Sergey Matveev [Sun, 24 Jul 2022 08:50:13 +0000 (11:50 +0300)]
Сделал себе новый PGP ключ

http://openpgpkey.stargrave.org/.well-known/openpgpkey/stargrave.org/hu/s8kd45yyt8ymu6uttefkjkngyagsui5x.asc

    pub   ed25519/0xCB8205632107AD8A 2022-07-24 [C]
      Schl.-Fingerabdruck = 12AD 3268 9C66 0D42 6967  FD75 CB82 0563 2107 AD8A
    uid                [ ultimativ ] Sergey Matveev <stargrave@stargrave.org>
    uid                [ ultimativ ] Sergey Matveev <stargrave@gnupg.net>
    uid                [ ultimativ ] Sergey Matveev <admin@cypherpunks.ru>
    uid                [  niemals  ] [jpeg image of size 5969]
    sub   ed25519/0xD2237E8409086CB7 2022-07-24 [S]
    sub   cv25519/0xAD1D959393A4B1E8 2022-07-24 [E]

Уже давно думаю о том, чтобы начать использовать что-то посовременнее
чем огромные медленные RSA и DSA. Но не хотелось терять красивый ключ с
кучей подписей. Но рано или поздно это всё равно пришлось бы сделать,
так что чего ждать то? Подписан он старым, так что доверие всё равно не
идёт с нуля. И старый я подписал новым.

Однозначно это должен быть на ECC, ибо вопросов с безопасностью к ним до
сих пор не предъявлено, а компактность и скорость крайне приятны.
Разрывался между *448 и *25519, остановившись на последнем. Я не верю
что будет найдена такая атака, что она сможет поставить под угрозу
25519, но не сможет, банально из-за длины, 448. Если будет что-то
угрожающее им, то наверняка сломаны будут одновременно оба. Если всё же
человечество сможет изобрести квантовые компьютеры достаточной мощности
и способностью выполнять алгоритмы для атаки на криптографию, то любой
ECC будет сломан вне зависимости от длины.

Может лучше перебздеть и не экономить на копейках, чай не RSA16k? Всё
усугубляется тем, что *25519 имеет и RFC черновик и реализован и вообще
по умолчанию уже используется в GnuPG. Тогда как для *448 ничего нет,
даже уверенности у Вернера Коха что его детали не поменяются со временем.
Поэтому сделав *448 я почти буду уверен что преобладающее большинство не
сможет его использовать, тогда как с *25519 это уже меньшая проблема.

Также пересмотрел свои предпочтения алгоритмов: сделал AES-256 более
приоритетным чем Twofish. Пускай последний, считается, и имеет немного
более высокий порог безопасности (а Serpent ещё больший), но нет никаких
сомнений в безопасности AES-а. Зато с ним можно получить на порядки
более высокие скорости работы из-за аппаратного ускорения в процессоре.
Убрал все алгоритмы с 192-бит ключом, как и SHA384: если нужна
безопасность, то будет 256-бит ключ, а если скорость, то и 128-бит
хватит за глаза. Плюс убрал все шифры с 64-бит блоком. Не то чтобы я не
доверял их безопасности (хотя надо проверять как GnuPG внутри их
использует и не касается ли его SWEET32), но смысла всё равно в них нет,
ибо даже по скорости выигрыша всё равно не будет.

Обнаружил что WKD для admin@cypherpunks.ru ключа у меня не был рабочим.
Похоже что во время какого-то рефакторинга я полностью потерял
.well-known/openpgpkey директорию.

WKS сервис без проблем отработал на gnupg.net. Причём впервые
использовал ~/.mailcap запись касающуюся WKS:

    application/vnd.gnupg.wks; gpg-wks-client -v --read --send;
        needsterminal; description=WKS message

Отправил запрос: gpg-wks-client --create --send \
    12AD32689C660D426967FD75CB8205632107AD8A stargrave@gnupg.net
Получил ответ. И прямо в Mutt, нажав просмотр MIME вложений, жахнул
Enter на vnd.gnupg.wks и он всё дешифровал и отправил. Дальше я только
получил уведомление об успешном обновлении ключа.

2 years agoПамятник Исаеву. Улицы и торговые комплексы Королёва
Sergey Matveev [Fri, 22 Jul 2022 16:17:18 +0000 (19:17 +0300)]
Памятник Исаеву. Улицы и торговые комплексы Королёва

https://ru.wikipedia.org/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:%D0%9F%D0%B0%D0%BC%D1%8F%D1%82%D0%BD%D0%B8%D0%BA_%D0%98%D1%81%D0%B0%D0%B5%D0%B2%D1%83_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D1%8E_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87%D1%83.jpg
https://ru.wikipedia.org/wiki/%D0%98%D1%81%D0%B0%D0%B5%D0%B2,_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87
https://ru.wikipedia.org/wiki/%D0%96%D0%A0%D0%94_%D0%B7%D0%B0%D0%BA%D1%80%D1%8B%D1%82%D0%BE%D0%B3%D0%BE_%D1%86%D0%B8%D0%BA%D0%BB%D0%B0
https://ru.wikipedia.org/wiki/%D0%A2%D0%B8%D1%85%D0%BE%D0%BD%D1%80%D0%B0%D0%B2%D0%BE%D0%B2,_%D0%9C%D0%B8%D1%85%D0%B0%D0%B8%D0%BB_%D0%9A%D0%BB%D0%B0%D0%B2%D0%B4%D0%B8%D0%B5%D0%B2%D0%B8%D1%87
Относительно недавно на проспекте Королёва открыли памятник Исаеву
Алексею Михайловичу. На улице Исаева всю мою жизнь жила бабушка. И я, до
памятника, считал что Исаев был каким-нибудь политическим деятелем, типа
Орджоникидзе, в честь которого назван Московский Авиационный Институт
например, или МГТУ им.Баумана.

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

Недалеко от меня улица Тихонравова, Михаила Клавдиевича. Только что
узнал что он создатель первого искусственного спутника Земли.

Нравится мне что в нашем городе сплошная космическая тематика в
названиях, даже каких-нибудь торговых центров: Юпитер, Сатурн, Луноход,
Гелиос -- все они на одном только проспекте Космонавтов. Который
кончается жилкомплексом "Парад планет" и "Звёздным" торговым центром.
Оказывается ещё есть ТК Нептун, Солярис, Зодиак. В Гелиосе кстати я
видел людей режущихся в Magic The Gathering.

Ещё есть улицы Гагарина, академика Легостаева (который был генеральным
конструктором в РКК Энергия), Аржакова (был директором КПО "Стрела"),
Богомолова (тоже двигателист), Грабина (конструктор артиллерии),
Мичурина, Павлова, ну и, конечно же, Циолковского. Хотя и больше улиц
названных в честь революционеров и анархистов (Сакко и Ванцетти), даже
Богдана Хмельницкого, но это старая часть города в основном. Ещё всяких
писателей и военных деятелей.

2 years agoУправляющая компания: поставщик квестов или работодатель садистов
Sergey Matveev [Fri, 22 Jul 2022 15:53:34 +0000 (18:53 +0300)]
Управляющая компания: поставщик квестов или работодатель садистов

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

Прошло два месяца: по документам вижу что ничего не изменилось. Пошёл
снова к ним. Сказали что выписка из ЕГРН устаревшая, мол нужна не старее
месяца. И вот на кой хер упорно спрашивали номер телефона, типа якобы
для оповещения, если всё равно знали что ничего делать не стали бы, ибо
документы не подходят (якобы) совсем.

Надо идти в МФЦ. ЕГРН выписка платная -- поэтому после МФЦ надо идти в
банк чтобы её оплатить. Только через сутки будет готова выписка, которую
уже надо будет нести в управляющую.

Говорят, что в целом во всём остальном, особенно том, который называется
"цивилизованным", всё гораздо хуже и там даже мечтать не могли бы чтобы
за пару дней можно бы было провернуть подобные операции. В управляющей
очереди не было. В МФЦ, котором за день был два раза, передо мной по
одному человеку только. В банке, самом крупном и центральном в Королёве,
минут пять пришлось подождать всего лишь. Был ещё по параллельному делу
у нотариуса: ожидание минуты три длилось, оплата на месте, всё мигом. А
я помню что всего несколько лет назад о таком нельзя было и мечтать, не
говоря про 90-е или СССР.

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

2 years agoКак связаться с нашим мэром
Sergey Matveev [Fri, 22 Jul 2022 15:50:19 +0000 (18:50 +0300)]
Как связаться с нашим мэром

Увидел на доске объявлений распечатку с фотографией и ФИО нашего мэра. И
всякие там соцсети, email, IM-ы и прочее... вот только кроме названия
соцсетей/IM-ов, их конкретные URL-ы/адреса сделаны в виде QR-кода.
Буквально ни одного человекочитаемого адреса на всём A4 листке. Хотя
места там предостаточно. Надеюсь что это они не со зла, а типа от
спаммеров.

2 years agoMicrosoft отменила ограничения на свободное ПО
Sergey Matveev [Fri, 22 Jul 2022 15:46:11 +0000 (18:46 +0300)]
Microsoft отменила ограничения на свободное ПО

https://www.opennet.ru/opennews/art.shtml?num=57537
Они как будто учатся у Apple делать свой бизнес: сначала сделай человеку
плохо, выпусти отвратительный продукт (ну типа клавиатур Apple с механизмом
бабочкой или там убери функциональные клавиши), а потом верни его назад.
Вот и Microsoft делает плохо (3f62cee4d19daf6f6d114dc8e9f3d8b96b793bae),
но потом как-то быстренько возвращает всё в зад. Как минимум отличная
реклама: про них бы я не слышал, а тут аж уже два раза упомянул.

2 years agoDPDK/VPP на FreeBSD
Sergey Matveev [Fri, 22 Jul 2022 13:41:39 +0000 (16:41 +0300)]
DPDK/VPP на FreeBSD

https://lists.freebsd.org/archives/freebsd-net/2022-July/002182.html
Я сильно не интересовался, но не удивился бы если DPDK/VPP не работали
под FreeBSD. Ан нет, пишут что на практике используют, всё тип-топ, даже
лучше чем под Linux. Точно знал что нет MPLS, в отличии от OpenBSD, но,
действительно, кому критично: можно и самому сделать, ибо не сложный
протокол. Хотя я скорее склоняюсь к тому, что он вообще не нужен как класс.

2 years agoОбзор Crusader Kings 3
Sergey Matveev [Thu, 21 Jul 2022 08:36:25 +0000 (11:36 +0300)]
Обзор Crusader Kings 3

https://www.youtube.com/watch?v=C6rGvKvEqSg
Презабавнейшие вещи можно творить в этой игре!

2 years agoКаким нехорошим человеком внезапно оказался один тип
Sergey Matveev [Tue, 19 Jul 2022 19:26:30 +0000 (22:26 +0300)]
Каким нехорошим человеком внезапно оказался один тип

Написал я тут одному человеку, на блог которого давно подписан. Он
поделился небольшой информацией о том, какие плагины использует для Vim.
Я спросил знает ли он про shrc/secure опции, которые могут многие
плагины (по своему опыту сужу, ибо я просто не знал о том, что сам Vim
многое умеет/научился делать) заменить. Мол, у него use-case который
действительно не будет покрыт встроенным функционалом? Сразу получил
упрёк зачем я отправил письмо зашифрованным? А как бы, я думаю про себя,
зачем тогда свой PGP ключ публиковать на домашней странице? А на
следующем round-trip-е мне вообще сказали, что я по сути запрашиваю
техподдержку по Vim-у и, мол, не пиши ничего более. Самомнение некоторых
не молодых разработчиков конечно просто зашкаливает. Видимо, любой
вопрос воспринимается как "о, мудрец, поделись опытом!"? Причём и
вопроса то не было как такового, а лишь "вы не смотрели в сторону XXX?
чем он вас не устроил, из любопытства?". Делиться just-for-fun *своим*
опытом и знаниями, без задней меркантильной мысли, не каждому, выходит,
даже понятно зачем.

Vim мир славится тем, что написано для многих вещей десятки плагинов, не
смотря на то, что функционал встроен в Vim из коробки. Просто о нём не
все знают, ибо он не очевиден с первого раза. Ну или появляется он не
сразу, делая плагины не актуальными. Мои 20+ лет за Vim-ом показывают,
что с ростом опыта, количество плагинов, грубо говоря, уменьшается.
Остаются только для совсем специфичных задач. Ну и самописные для своих
собственных предпочтений workflow.

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

2 years agoДелал ли Рогозин чего полезного?
Sergey Matveev [Tue, 19 Jul 2022 07:09:32 +0000 (10:09 +0300)]
Делал ли Рогозин чего полезного?

https://torontovka.com/news/russia/2022-07-15/49004.html
Недавно его заменили в Роскосмосе. Только слыша о нём через СМИ, особо
то и не знаешь чем он вообще занимался, кроме как переписывался с Маском
и бросал мемчики. Но я понимаю что нельзя его оценивать по тому, что ты
видишь только доступное публично. Позвонил человеку, узнать мнение,
который давно работает в космической отрасли и общается с замами гендира
Роскосмоса постоянно. В целом он очень положительно отзывался о его
деятельности. Пускай сам Рогозин чисто в технических вопросах не силён,
чай не инженер, не конструктор или технолог, но внутреннюю кухню он
очень круто поменял, в целом ощутимо сократив издержки и, как вот
написали в статье, хорошо интегрировав тьму предприятий между собой.
То есть, он именно как управленец достойно в лучшую сторону многое чего
поменял. А я по ИТ сфере уже длительно понимаю насколько важно
управление, корректно построенные процессы взаимодействия.

2 years agoПрочитал "Купец и волшебные врата" Теда Чана
Sergey Matveev [Tue, 19 Jul 2022 06:59:57 +0000 (09:59 +0300)]
Прочитал "Купец и волшебные врата" Теда Чана

https://www.livelib.ru/work/1000614207-kupets-i-volshebnye-vrata-ted-chan
https://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D0%B4_%D0%A7%D0%B0%D0%BD
Дико понравилась повесть! Тема перемещения во времени, причём как в
прошлое, так и будущее, со встречами с самим собой -- раскрывается
как мало где. И кучу пищи для размышлений любопытных рождает. Не
даром она получила премии Небьюла и Хьюго.

2 years agoThomas Dolby, Dr.Alban, Bomfunk MC's, Eminem
Sergey Matveev [Tue, 19 Jul 2022 06:19:24 +0000 (09:19 +0300)]
Thomas Dolby, Dr.Alban, Bomfunk MC's, Eminem

https://www.youtube.com/watch?v=qvr-_qWAl14
https://www.youtube.com/watch?v=4zHm_6AQ7CY
https://www.youtube.com/watch?v=ymNFyxvIdaM
https://www.youtube.com/watch?v=aqUpe6QeBTk
https://www.youtube.com/watch?v=XbGs_qK2PQA
Бывает что вообще не пойми с чего, но вспомнится какая-нибудь
музыка/песня и не выходит целый день из головы. Уже второй день
почему-то крутится "Quantum Mechanic" трэк из Beyond Mind's Eye
(f8e17220d2c45effc0f48124a6cc85c5d1913c4f) недавно просмотренного.
Причём это вообще единственный трэк оттуда что запомнился.

А на прошлой неделе в башке вспомнился "It's My Life" Dr.Alban-а,
который у меня только с детством ассоциируется (крутили видимо часто по
СМИ). Оказывается, это нигерийско-шведский проект. Как для меня когда то
было открытием, что Bomfunk MC это финский хип-хоп, Freestyler которого
мне вполне заходил. Искал ссылку на видео в YouTube, открыл, и что мне
бросилось в глаза в нём? То что чувак магнитооптический плеер на
MiniDisc-ах использует.

Что-то тут сплошной рэп пошёл в этих воспоминаниях. И когда мне отец
говорит что, не смотря на всё, даже в рэпе есть что-то нравящееся всем,
даже у какого-нибудь Eminem (где чисто рэп, а не что-то типа Limp Bizkit),
то соглашусь, ибо его Stan вполне себе нравился. Хотя может это из-за
Dido? Но нет, надрывные нотки Eminem до сих пор вспоминаются. Даже тему
песни помню, даже разбирал слова вполне себе.

Заценил другие хиты Eminem, но вообще ничего не цепляет. Только Rap God
впечатляет его отрывком с дичайшей скоростью. Причём у меня в общем то
проблемы с разбором речи людей (одна из причин почему мне на песни в
общем-то насрать -- поэтому мне и грайндкор с growl inhale-ом так
заходит), а тут без проблем.

2 years agoFacebook теперь шифрует URL-ы
Sergey Matveev [Mon, 18 Jul 2022 16:02:36 +0000 (19:02 +0300)]
Facebook теперь шифрует URL-ы

https://www.schneier.com/blog/archives/2022/07/facebook-is-now-encrypting-links-to-prevent-url-stripping.html
В URL-ах часто и много суют всякой информации для слежки. Например тот
же Хабр их содержит и это одна из причин почему я заменил urlview на
самописную штуку (5166ea2f34f0a653f00a3012b1485d38650ff05a) где можно
куда удобнее отредактировать URL. Есть оказывается автоматизированные
средства для этого в Firefox. Но Facebook недоволен этим и поэтому стал
полностью шифровать свои ссылки. Мне конечно пофиг на Facebook, ещё и до
того, как он стал официально поддерживать призывы к терроризму и
убийству россиян, но насколько же надо себя не уважать чтобы продолжать
пользоваться этим сервисом даже после URL-ов вот таких.

2 years agoБеги, Лола, беги
Sergey Matveev [Sun, 17 Jul 2022 16:39:44 +0000 (19:39 +0300)]
Беги, Лола, беги

https://ru.wikipedia.org/wiki/%D0%91%D0%B5%D0%B3%D0%B8,_%D0%9B%D0%BE%D0%BB%D0%B0,_%D0%B1%D0%B5%D0%B3%D0%B8
Фильм получил аж 25 наград всяческих. Реально клёвый и один из моих
любимейших. Однако как-то не многие его смотрели среди моих знакомых.
Если мне надо представить чисто немецкое женское лицо, то это всегда
Лола. Что она делает в фильме? Ну... весь фильм, действительно, бежит.

2 years agoВызов калькулятора в Vim
Sergey Matveev [Sun, 17 Jul 2022 07:49:14 +0000 (10:49 +0300)]
Вызов калькулятора в Vim

https://old.reddit.com/r/vim/comments/9421bm/whats_your_favourite_equalprg_hack/
http://www.git.stargrave.org/?p=dotfiles.git;a=blob;f=dc/.dc
Пишу тут код, где нужно прикинуть всякие простые вычисления, типа
offset-ов, длин и тому подобного. В самом же коде я делаю наброски и
вычисления, но нужно и что-то посчитать. Не видя никаких статей, я
самостоятельно додумался до вызова калькулятора внешнего:

    пишу на отдельной строке: 6 304 13 45 72 36 lSx 18 12+ 5*+p
    выделяю ("V") и вызываю калькулятор ":!zc"

Это я всякие размеры полей пакета считал, строчка оставшаяся в истории
редактора. Про ссылку на reddit вспомнил просто потому что недавно,
когда что-то искал по Vim, напоролся на неё. Но из неё узнал что вместо
визуального выделения параграфа, можно делать "!}zc" -- куда короче и не
загрязняет "историю" визуальных выделений. Всё равно, даже в простых
вещах, Vim не перестаёт удивлять маленькими полезностями.

В качестве калькулятора уже который год использую обёртку над dc RPN
калькулятором (d65882c3c5decb9e2216d7a8de98c1d422c2c42d).

    $ cat =zc
    #!/bin/sh
    exec rlwrap \
        --history-filename /tmp/.dc_history \
        --substitute-prompt "> " \
        --prompt-colour=red \
        dc -f ~/.dc -f /dev/stdin

Где ~/.dc содержит настройку точности и пока только пару скриптов:

* загруженный в "S" регистр суммирует всё что есть в стэке.
  Это я использую постоянно, без надобности писать кучу "+"
* загруженный в "L" регистр вычисляет натуральный логарифм. А для
  преобразования в другие основания применять формулу из школы, типа:
  1000lLx 10lLx /p

Вызов zc у меня есть и в tmux по быстрому нажатию prefix+t+c, но когда
чисел много, и их надо брать из кучи других мест, то уже не
попереключаешься между сессиями tmux удобно.

2 years agoLSP поддержка в Vim9
Sergey Matveev [Sat, 16 Jul 2022 14:48:48 +0000 (17:48 +0300)]
LSP поддержка в Vim9

:help language-server-protocol
LSP поддержка, возможность удобного взаимодействия с сервером в Vim9
имеется из коробки. Это конечно только вопрос про IPC, но всё же это
упростит плагины, с которыми всё очень не очень
(c89a9164128730eb856b89e4f99970a6bfb7b7f4).

2 years agoСнова про форматирование кода в Vim
Sergey Matveev [Sat, 16 Jul 2022 12:01:50 +0000 (15:01 +0300)]
Снова про форматирование кода в Vim

http://www.git.stargrave.org/?p=dotfiles.git;a=commitdiff;h=1e761ea8af276caa2ff605cb4d7d0a63fac51a36
http://www.git.stargrave.org/?p=dotfiles.git;a=commitdiff;h=f0f5d759e21858dc6a50f88ce80cdec24493a52c
В 3a417a68fd72f8b882dfc760b7dd6fa3a3940cd4 писал про то, что можно
существенно упростить вызов форматировалки кода. Но был не прав: оно не
учитывает что команда может упасть и выдать ошибки. И в моём случае
полностью перетирает содержимое выводом об ошибке.

Оказалось, что Go-шный родной плагин не делает ничего лишнего: проверяет
код ошибки, парсит вывод с ошибками из текущего буфера, заполняя quickfix,
дальше выполняет undo. Использование самого буфера как временное хранилище
мне нравится. Плагин был сделан отлично. Но я его портировал на vim9script.

Но есть другая проблема: если были ошибки, то из-за перетирания всего
буфера, его changelist становится полностью невалидным. Я делаю :Fmt,
получаю ошибку, но уже ни одна команда перемещения по изменениями у меня
не отработает. Можно вызвать команду через system(), получить её вывод и
код возврата, ничего не делая с буфером. Но я не нашёл способа как бы
обновить весь буфер не инвалидировав changelist, тогда как equalprg
вызов оставляет его почти полностью неизменным.

Поэтому в фоне (если вызывать system() или systemlist(), то они
скармливают данные не через pipe, а через временный файл) запускаю
equalprg, агрегирую её строчки, и при плохом коде возврата заполняю
ими quickfix. В противном случае вызываю =-форматирование.

2 years agoZFS дедупликация учитывает весь pool
Sergey Matveev [Fri, 15 Jul 2022 15:01:33 +0000 (18:01 +0300)]
ZFS дедупликация учитывает весь pool

https://unix.stackexchange.com/questions/382303/does-zfs-deduplicates-across-datasets-or-only-inside-a-single-dataset
Внезапно и неожиданно для себя увидел что дедупликация учитывает данные
всего pool-а. Выстапление dedup параметра для dataset-а просто означает
что они не будут избыточно копироваться, если оно уже есть в pool. А я
думал что и данные учитываются только per-dataset. Matthew Ahrens на
Stack Exchange подтверждает это. Теперь логично стало почему dedupratio
смотрится именно у pool-а. Эх... в целом это конечно всё портит: нельзя
красиво ограничить контекст дедупликации, только отдельным pool-ом.

2 years agoФорсированный sync данных на ZFS
Sergey Matveev [Fri, 15 Jul 2022 14:50:42 +0000 (17:50 +0300)]
Форсированный sync данных на ZFS

Команда sync не заставляет накопившиеся данные в кэше записываться на
диск. Ну, по крайней мере, в моей версии FreeBSD. Когда смотрел код
zfs-diff (22b9eb13c837497c09b0d17e11cffac8aa655999), то заметил что он
для своей операции создаёт временный эфемерный snapshot (что логично).
А это, в свою очередь, заставляет всё записаться на диск. А то у меня на
моём основном компьютере выставлено что в памяти может накапливаться до
32GB dirty данных, начиная выгружать их при 95% заполнении. Или же
делать транзакцию раз в две минуты.

Вот надо мне проверить наследуется ли dedup параметр о дочерних
dataset-ов. Точнее будет ли дедупликация общей для разных dataset-ов.
Для уверенности надо проверить, но ждать две минуты, пока оно реально
окажется на диске и zpool get dedupratio обновится -- долго. Достаточно
вот вызвать zfs diff, даже на другие dataset-ы, и всё мигом обновится.

2 years agoЗамена режима шифрования в PGP бесполезна и вредна
Sergey Matveev [Fri, 15 Jul 2022 11:33:32 +0000 (14:33 +0300)]
Замена режима шифрования в PGP бесполезна и вредна

https://articles.59.ca/doku.php?id=pgpfan:no_new_ae
Видел эту статью в RSS, но решил не комментировать. Но он её продолжает
сувать ещё и в официальные рассылки OpenPGP. Задолбал.

В своей статье он рассматривает нападки на OCFB-MDC и парирует их. Одной
из нападок является факт расчёта MDC до шифрования, что даёт возможность,
за счёт специально подобранных сообщений, атаковать систему. Но так как
там что-то ещё шифруется, именно в OpenPGP, то это не создаёт проблем.
То есть: есть, действительно, не самый безопасный режим шифрования и
аутентификации, но к которому сбоку добавили костыль-подпорку. Этот
режим и так не самый простой, но ещё и с костылём. Нет, я согласен, что
это не означает что нужно бежать сломя голову и менять это всё, ибо оно
на практике is good enough. Но это не значит что оно good.

Где-то, вроде бы Moxie Marlinspike, говорил что даже 3DES+HMAC-MD5,
казалось бы -- архаичные алгоритмы, но всё равно на практике more than
secure enough. Вот и автор демонстрирует аналогичное и призывает
оставаться на архаичных решениях.

У меня на самом деле тоже есть похожая позиция касательно OpenPGP и
например age (4674ad351dcb1f018d2392bc03fb0692e101e229). Но там
призывают полностью выбросить и отказаться от OpenPGP, в чём я сильного
смысла не вижу. А тут автор призывает вообще-превообще ничего не трогать
в OpenPGP. Я вот нарадоваться не могу OCB AEAD-режиму его: он прост,
надёжен и жутко быстр. Да, OpenPGP придётся поддерживать и legacy с
OCFB-MDC какое-то время, но новые реализации будут state of start.

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

Резюмирует он это всё тем, что OCFB-MDC безопасен, поэтому ничего не
надо менять. Не спорю -- при правильном использовании он безопасен. Но
предлагают его заменить на нечто более простое, более быстрое и в чём
куда сложнее напортачить так, чтобы возник ещё один EFAIL.

2 years agoУстройство атомных часов
Sergey Matveev [Fri, 15 Jul 2022 11:27:21 +0000 (14:27 +0300)]
Устройство атомных часов

https://habr.com/ru/post/677064/
Давно я не чувствовал себя таким ничего не понимающим. Чем дальше по
статье, тем всё более запутаннее становится -- мозгов не хватает точно
понять о чём речь. Но дьявольски интересно! Сделал вывод: цезиевые часы
уже, мол, прошлый век. Ну а NTP, коммерческие часы и подобная фигня это
прям каменный век.

2 years agoHTTP авторизация как защита от роботов
Sergey Matveev [Fri, 15 Jul 2022 06:37:30 +0000 (09:37 +0300)]
HTTP авторизация как защита от роботов

https://lists.sdaoden.eu/pipermail/s-announce/2022-July/000058.html
Разработчик решил добавить HTTP basic авторизацию для страниц типа
git-репозитория, но в realm запроса явно написан login/пароль, который
увидит человек. Мне кажется идея неплохая и ничего не должна поломать,
ибо весь софт вроде бы умеет делать хотя бы такую авторизацию.

Но, он говорит, что Firefox этот realm не показывает. Я просто офигеваю:
ну как так можно? Firefox уже который год не перестаёт удивлять во что
он превратился.

2 years agoНаписал glocate утилиту
Sergey Matveev [Thu, 14 Jul 2022 21:15:38 +0000 (00:15 +0300)]
Написал glocate утилиту

http://www.git.stargrave.org/?p=glocate.git;a=summary
На фоне медленности поиска на HDD с 17.5M файлов и отсутствия быстрых
средств инкрементального обновления locate БД
(22b9eb13c837497c09b0d17e11cffac8aa655999), написал свою утилиту для
индексации файлов и их обновления. Пока жутко прежутко черновая версия,
но вроде работает как задумывал.

Сначала она пробегает по всей иерархии в текущей директории и составляет
отсортированные списки файлов с размерами и mtime-ом. Это хранит в виде
gob-файла (сериализация родная в Go) сжатого zstd. Для любого вывода
полностью загружает и декомпрессирует его в памяти.

Умеет выводить красивый вывод для человека (замена tree), типа:

    ├ music/HARTE/  №0 [283 GiB] 2022-05-10
    │ ├ 324-Boutoku_No_Taiyo/       №1 [33 MiB] 2020-12-10
    │ │ ├ 01.Silence_Before_Silver_Screen.mp3       №1 [3.7 MiB] 2016-10-13
    │ │ ├ 02.Quarter_Moon.mp3       №2 [1.6 MiB] 2016-10-13
    │ │ ├ 03.Red_Origin_Still_Streaming.mp3 №3 [2.0 MiB] 2016-10-13
    │ │ ├ 04.Plastic_Dream.mp3      №4 [2.9 MiB] 2016-10-13
    │ │ ├ 05.Japanese_Title.mp3     №5 [1.6 MiB] 2016-10-13
    │ │ ├ 06.Disgusting_Flower.mp3  №6 [2.4 MiB] 2016-10-13
    │ │ ├ 07.Swinging_Skull.mp3     №7 [1.3 MiB] 2016-10-13
    │ │ ├ 08.Broken_Clock.mp3       №8 [2.1 MiB] 2016-10-13
    │ │ ├ 09.Crawl_In_The_Transparency.mp3  №9 [1.6 MiB] 2016-10-13
    │ │ ├ 10.New_Demention.mp3      №10 [2.2 MiB] 2016-10-13
    │ │ ├ 11.Cobalt.mp3     №11 [1.9 MiB] 2016-10-13
    │ │ ├ 12.Flash_Rings_Link.mp3   №12 [2.6 MiB] 2016-10-13
    │ │ ├ 13.Moc.mp3        №13 [2.9 MiB] 2016-10-13
    │ │ └ 14.Glenghost.mp3  №14 [4.1 MiB] 2016-10-13
    │ ├ 7_H.Target-2011-Fast-Slow_Demolition/       №2 [293 MiB] 2020-09-06
    │ │ ├ 01.Transmutation_Energy_Machine.wv        №1 [17 MiB] 2020-09-06
    │ │ ├ 02.Technosex.wv   №2 [17 MiB] 2020-09-06
    │ │ ├ 03.Metal+Flesh.wv №3 [25 MiB] 2020-09-06
    │ │ ├ 04.Drill_Penis.wv №4 [18 MiB] 2020-09-06

вывод дружелюбный к парсингу компьютером:

    303730496828 2022-05-10 music/HARTE/
    34290985 2020-12-10 music/HARTE/324-Boutoku_No_Taiyo/
    3875800 2016-10-13 music/HARTE/324-Boutoku_No_Taiyo/01.Silence_Before_Silver_Screen.mp3
    [...]
    4292087 2016-10-13 music/HARTE/324-Boutoku_No_Taiyo/14.Glenghost.mp3
    306921714 2020-09-06 music/HARTE/7_H.Target-2011-Fast-Slow_Demolition/
    17598286 2020-09-06 music/HARTE/7_H.Target-2011-Fast-Slow_Demolition/01.Transmutation_Energy_Machine.wv
    18076892 2020-09-06 music/HARTE/7_H.Target-2011-Fast-Slow_Demolition/02.Technosex.wv

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

Собственно, сам поиск утилита не делает: или суй в grep или fzf
какой-нибудь. Загружается этот файл в течении нескольких секунд.

Скорость создания БД -- упирается исключительно в IO у меня. Почти
столько же времени занимает что и просто сделать find по ФС. Вот правда
для 16TB раздела процесс под конец занимал почти 3.5GB. Загруженный в
память, при "штатном" использовании: отнимает 2GB. В общем то совсем не
мало, но я и не заморачивался экономией ресурсов и мне даже и так будет
удовлетворительно. БД для 17.5M файлов у меня заняла 128MB, что по моему
вполне себе терпимо. С ходу пришла мысль о том, что можно не хранить
размеры директорий: сжаться должно лучше, в надежде что это ни капли не
затормозит загрузку файла.

Ну и главная фишка: утилите можно скормить выхлоп zfs diff | sort -r и
все его действия (добавление, удаление, переименования, изменение) будут
применяться к загруженному состоянию, а дальше атомарно обновлено на
диске. Узнать какие изменения были произведены быстрее zfs diff-а всё
равно никто не сможет. zfs diff приятен тем, что его вывод,
отсортированный в обратном направлении, буквально говорит что и как надо
поочерёдно удалить и что обновить касательно mtime-а.

2 years agoБыстрый locate и инкрементальное обновление его БД
Sergey Matveev [Thu, 14 Jul 2022 11:06:26 +0000 (14:06 +0300)]
Быстрый locate и инкрементальное обновление его БД

С появлением дополнительного большого раздела
(324ba83a7eba5331bd93e0360fd181657dddf3d0) и переноса на него всяких
всячин, которые время от времени обновляются, выяснилось что суммарно
уже на диске находится более 17.5M файлов и директорий. Просто
выполнение find-а на нём занимает 51мин. Я редко ищу что-то совершенно
не зная где оно примерно может находится, поэтому find натравливался на
поддиректории. Но всё же может понадобится поиск и по всему диску.

51 минута это ни в какие ворота конечно же. Можно сделать дамп вывода
find, использовать locate команду. Но мне не нравится тот факт, что
пересоздание этих state-ов всё равно займёт час времени постоянной
трескотни дисков. Пускай это у меня и так штатно происходило каждую
ночь, но чтение с HDD всё же является для них нагрузкой и износов,
учитывая большое количество random IO. Чай не SSD.

Хочется инкрементального обновления этой БД. Но как понять что у меня
изменилось? mtime на директориях меняется только если изменился, грубо
говоря, список файлов в ней. У вышестоящих директорий уже ничего не
будет затронуто. Штатные средства POSIX-а тут бессильны.

Видел что есть реализации locate следящие за событиями связанными с ФС.
Какой-нибудь kqueue тут тоже не подойдёт, как мне кажется, ибо он может
наблюдать только за одним объектом (одной директорией), без рекурсии.
Придётся создавать колоссальное количество kqueue объектов, что вряд ли
будет приятно ядру.

Но я знаю в общих чертах устройство ZFS, которое само по себе идеально
подходит для того, чтобы быстро понимать где что и как изменилось
относительно какого-то предыдущего состояния. Полез смотреть все данные
связанные с объектом в ZFS через zdb. В нём есть поле "gen", несущее
номер транзакции при которой был создан данный объект. Но нигде нет
информации о текущем txg. Насколько понимаю, эта информация находится не
в dnode-е, а в block pointer-е несущем эту dnode-у, до которого я не
нашёл как бы можно было вменяемо достучаться. Полез в исходный код
zfs-diff команды, а она просто бегает про объектам и сравнивает по сути
эти же самые поля что я видел и в zdb выводе, никакой магии. Вот только
это требует особых привилегий для запуска.

В общем, судя по всему, быстро найти что изменилось на ФС, можно только
через zfs diff, сравнивая snapshot-ы. И проще всего это буквально
вызывать эту команду и парсить её вывод. Готового решения для этого не
видел, так что придётся, видимо, писать самому. Ведь мне ещё и размеры
файлов хотелось бы знать, чтобы на основе этого можно было красивый
tree-like вывод делать.

В ZFS, с какой-то версии, появился special VDEV allocation class:
https://en.wikipedia.org/wiki/ZFS#Special_VDEV_Class
при котором можно метаданные сохранять например на SSD отдельные,
существенно ускоряя с ними работу. Мне бы точно помогло такое. Даже
есть две неиспользуемые SSD. Но у меня достаточно старая FreeBSD где
такого функционала нет. Да и сильного желания всё же тоже: кроме зеркала
из двух HDD, ещё придётся иметь зеркало из двух SSD, которые у меня и
так полудохлые.

2 years agoОбзор защищённых транспортных протоколов
Sergey Matveev [Wed, 13 Jul 2022 08:29:24 +0000 (11:29 +0300)]
Обзор защищённых транспортных протоколов

https://datatracker.ietf.org/doc/html/rfc8922
Есть вот целый RFC, где упоминаются и DJB-шный CurveCP с MinimaLT
(6e30e1c9e0cf17d773f9238d0d164175c28924fc) и WireGuard.

Summary of Interfaces Exposed by Protocols:
+===========+===+====+=====+==+==+======+==+=====+==+==+======+==+==+
| Protocol  |IPK|ALG | EXT |CM|AD| PSKI |IV| SAV |CT|KU| SSKE |KE|ME|
+===========+===+====+=====+==+==+======+==+=====+==+==+======+==+==+
| TLS       | x | x  |  x  |x |  |  x   |x |     |x |x |  x   |  |  |
+-----------+---+----+-----+--+--+------+--+-----+--+--+------+--+--+
| DTLS      | x | x  |  x  |x |  |  x   |x |  x  |x |x |  x   |  |x |
+-----------+---+----+-----+--+--+------+--+-----+--+--+------+--+--+
| ZRTP      | x | x  |     |x |  |  x   |x |     |x |  |      |  |  |
+-----------+---+----+-----+--+--+------+--+-----+--+--+------+--+--+
| QUIC      | x | x  |  x  |x |  |  x   |x |  x  |x |x |      |  |x |
+-----------+---+----+-----+--+--+------+--+-----+--+--+------+--+--+
| tcpcrypt  |   | x  |     |x |x |  x   |  |     |x |x |  x   |  |  |
+-----------+---+----+-----+--+--+------+--+-----+--+--+------+--+--+
| MinimaLT  | x | x  |     |x |  |  x   |x |     |x |x |  x   |  |x |
+-----------+---+----+-----+--+--+------+--+-----+--+--+------+--+--+
| CurveCP   | x |    |     |  |  |      |x |     |  |  |      |  |x |
+-----------+---+----+-----+--+--+------+--+-----+--+--+------+--+--+
| IPsec     | x | x  |     |  |x |  x   |x |  x  |x |x |  x   |x |x |
+-----------+---+----+-----+--+--+------+--+-----+--+--+------+--+--+
| WireGuard | x |    |     |  |  |  x   |x |  x  |  |  |      |  |x |
+-----------+---+----+-----+--+--+------+--+-----+--+--+------+--+--+
| OpenVPN   | x | x  |     |  |  |  x   |x |     |x |  |  x   |  |  |
+-----------+---+----+-----+--+--+------+--+-----+--+--+------+--+--+

IPK  : Identities and Private Keys
ALG  : Supported Algorithms (Key Exchange, Signatures, and Ciphersuites)
EXT  : Extensions
CM   : Session Cache Management
AD   : Authentication Delegation
PSKI : Pre-Shared Key Import
IV   : Identity Validation
SAV  : Source Address Validation
CT   : Connection Termination
KU   : Key Update
SSKE : Shared Secret Key Export
KE   : Key Expiration
ME   : Mobility Events

2 years agoПогулял в Коломенском парке
Sergey Matveev [Wed, 13 Jul 2022 07:18:37 +0000 (10:18 +0300)]
Погулял в Коломенском парке

https://kolomenskoe.su/park/
Был я там в последний раз наверное лет десять назад. А вообще частенько
с одногруппниками туда захаживали, хоть институт наш находится и на
другом конце Москвы. Тогда ещё не было никаких дорожек с плиткой. И то
ли я был меньше, то ли дорожки визуально так влияют, но сейчас все эти
просторы парка кажутся в разы меньше чем были прежде. Мне казалось что
там пару огромных таких полей, где можно и поваляться и никого в радиусе
сотни метров не будет. Но в этот раз я не забредал ни в яблоневые сады,
ни в лес.

2 years agoСнова прошёл чемпионат мира по heavy metal вязанию
Sergey Matveev [Wed, 13 Jul 2022 07:10:24 +0000 (10:10 +0300)]
Снова прошёл чемпионат мира по heavy metal вязанию

http://www.hitkiller.com/smotrim-strim-chempionata-mira-po-xevi-metal-vyazaniyu.html
Ну в этом году что-то так себе по моему, в отличии от предыдущих
(9aeaaac840d37696a5cc9a5874fc39b0c302ea75), но любую подобную
движуху яростно одобряю!

2 years agoПрочитал "Огнепад" Питера Уоттса
Sergey Matveev [Tue, 12 Jul 2022 19:24:34 +0000 (22:24 +0300)]
Прочитал "Огнепад" Питера Уоттса

https://www.livelib.ru/book/1006964947-ognepad-sbornik-piter-uotts
https://ru.wikipedia.org/wiki/%D0%9B%D0%BE%D0%B6%D0%BD%D0%B0%D1%8F_%D1%81%D0%BB%D0%B5%D0%BF%D0%BE%D1%82%D0%B0_(%D1%80%D0%BE%D0%BC%D0%B0%D0%BD)
https://ru.wikipedia.org/wiki/%D0%AD%D1%85%D0%BE%D0%BF%D1%80%D0%B0%D0%BA%D1%81%D0%B8%D1%8F_(%D1%80%D0%BE%D0%BC%D0%B0%D0%BD)
Это сборник из двух книг: "Ложная слепота" и "Эхопраксия". Подарил его
друг и вот сейчас только осилил, ибо параллельно ещё были незаконченные
книги в очереди. Он же мне прежде дарил "Семиевие" Нила Стивенсона
(ad1e55aca359fd071aea257aaee50fa59d5b3d3e), "Благие знамения"
(26a407a9617967991d03effa9b58d8eb7dfda294) и его вкус мне точно по вкусу!

В целом книги очень понравились, хотя всё же "Ложная слепота" больше
запоминается, возможно потому что она первая шла. Тема того, что можно
не замечать движения производимого во время саккад глаз мне зашла.

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

2 years agoMinimaLT протокол
Sergey Matveev [Tue, 12 Jul 2022 15:36:46 +0000 (18:36 +0300)]
MinimaLT протокол

http://cr.yp.to/tcpip/minimalt-20131031.pdf
Зашифрованный транспортный протокол, с PFS, защитой IP заголовков,
возможностью аутентификации как только сервера, так и клиента.
Напоминает и TLS и IPsec. Но этот протокол делает handshake с PFS-ом
за один roundtrip, быстрее чем TCP. Возможность продолжать работу
даже при смене IP адресов. Возможность защиты от DoS-а вставкой паззлов
требуемых для подключения. А также он может туннелировать несколько
независимых соединений.

Работает это даже с меньшими задержками чем TCP, но не как-то магически,
а за счёт того, что используется directory сервер, с которого получают
короткоживущие эфемерные публичные ключи сервера. Это может быть и DNS
например, к которому всё равно запрос должен пойти для узнавания IP
адреса. Так что, действительно, round-trip штатно будет только один,
если в целом смотреть на всю эту экосистему.

А вообще транспортный host-to-host режим IPsec-а много в чём близок к
этому решению. TLS в статье обосрали конечно полностью. MinimaLT
заменяет собой TCP+IPsec/TLS обязательно интегрируясь с directory
сервером (например DNS-ом), поэтому и получается такой profit и
простота. Как например ZFS заменяет собой RAID+LVM+кучу-всего.

2 years agoJPEG XL в очередной статье/тестах всех уделывает
Sergey Matveev [Mon, 11 Jul 2022 11:51:44 +0000 (14:51 +0300)]
JPEG XL в очередной статье/тестах всех уделывает

https://habr.com/ru/company/first/blog/674878/
Что меня не удивляет. А вот комментарии типа:

    от Discrete Cosine Transform они вроде не отказались, а значит в
    любом случае будут потери в наименее значащих битах

разочаровывают. Автор не в курсе что уже даже в JPEG2000 для lossy и
lossless сжатия использовались два совершенно разных wavelet-а? В том
же WebP lossless сжатие на самом деле, по сути, совершенно другой
алгоритм, ничего общего с VP8 не имеющим (насколько помню). Ну и в общем
случае, если сделать точность достаточную чтобы покрыть ошибки
округления, то и в DCT без квантования нет проблем сделать lossless.

2 years agoMicrosoft препятствует распространению свободного ПО
Sergey Matveev [Sun, 10 Jul 2022 08:54:27 +0000 (11:54 +0300)]
Microsoft препятствует распространению свободного ПО

https://www.opennet.ru/opennews/art.shtml?num=57473
В статье правда речь про открытое ПО. Но одна из основополагающих свобод
в свободном ПО это право продавать, получать деньги. То есть, я, как
автор, мог бы загрузить туда свою свободную программу, брать мзду, но
кто-то после первой покупки вправе выложить бесплатно и поэтому Microsoft
запретит мне распространять впредь своё творение? Ничего удивительного,
ведь это же Microsoft. Это всё идёт вразрез с принципами СПО.

2 years agoДвухфакторная аутентификация PyPI привела к удалению популярного пакета
Sergey Matveev [Sun, 10 Jul 2022 06:48:03 +0000 (09:48 +0300)]
Двухфакторная аутентификация PyPI привела к удалению популярного пакета

https://www.opennet.ru/opennews/art.shtml?num=57481
Понимаю автора -- я бы принципиально не стал страдать этой хернёй с
двухфакторной аутентификацией. Я сам в праве решать как мне обеспечивать
безопасность. Кто-то считает что нужно вводить пароль со всякими цифрами
и знаками препинания. Кто-то считает что даже парольные фразы являются
злом и нужно только криптоключи или что-то подобное использовать. А
кто-то вообще считает что SMS-ки достаточно. Тут не может быть всех
удовлетворяющего решения. А если компрометация учётной записи даже с
парольной фразой возможна, чего вроде бы нет -- тогда и OTP и подобные
решения тут не помогли бы. Всё таки есть разница между секретаршей,
априори вешающей свой цифровой шестизначный пароль на монитор и
разработчиком ПО. Понимаю, понимаю, что современные разработчики в массе
своей не далеко ушли от этих секретарш в вопросах безопасности, но это
просто унизительно бы было для нормальных и адекватных чтобы к ним
принимали схожие меры.

2 years agoПоявился 16TB жёсткий диск
Sergey Matveev [Sat, 9 Jul 2022 18:26:40 +0000 (21:26 +0300)]
Появился 16TB жёсткий диск

Уже давно присматривался к тому, чтобы взять себе большие жёсткие диски.
Но надо брать парочку, а это стоило более 100k₽ ещё до начала СВО. А
сейчас даже пару 18TB дисков для серверов (правда SATA) можно найти за
эту цену новеньких. К сожалению, в наличии был только один диск, так что
жду доставки второго, ибо в зеркало я даже NVMe помещаю в NUC-е. Вроде
бы данных у меня и не сказать чтобы много: никаких 4K фильмов или там
современных тяжеловесных игр, но один только раздел для сборки Android
занимает 360GB, и даже одна его резервная копия это ощутимый вес. Да и
фильмы перестали умещаться -- уже давно выгружены на ленты, что не
позволяет быстренько взять и посмотреть их. Или вот как-то надо было мне
Worms игру достать, DOS-овскую -- вряд ли бы ожидал что такое появится в
планах, но на дисках у меня такое не лежит. Хотя горячий доступ к ним и
не горит, но почему бы и не сделать поудобнее.

2 years agoКак в LTT охлаждают ПК
Sergey Matveev [Sat, 9 Jul 2022 18:20:34 +0000 (21:20 +0300)]
Как в LTT охлаждают ПК

https://www.youtube.com/watch?v=T1ZnAwUg9CU
Получившаяся бандура и вообще комната мне жутко напоминают сцены из
фильма Бразилия (82654d517d6b2d97bbc6ccd7fc65ff19cc713dc9), где мне
казалось это такой глупостью что можно ожидать подобное в будущем.
Но лично я бы не отказался от подобной штуки, ибо с точки зрения
теплопереноса всё грамотно и корректно.

Но труба у меня уже имеется: мобильный кондиционер спасает в эти жаркие
дни (f0b195faac59a95ceab92b423dfaceba137e52f6).

2 years agoBLAKE3 в ZFS
Sergey Matveev [Sat, 9 Jul 2022 18:07:01 +0000 (21:07 +0300)]
BLAKE3 в ZFS

В рассылке FreeBSD вижу что тестируют возможность использования BLAKE3 в
качестве checksum в ZFS. Круто, мой выбор бы пал на него. Быстрее всяких
MD5, при этом оставаясь надёжным криптографическим хэшом.

2 years agoСистемный блок из 2003-го
Sergey Matveev [Sat, 9 Jul 2022 07:43:24 +0000 (10:43 +0300)]
Системный блок из 2003-го

https://www.linux.org.ru/gallery/workplaces/16910635
Очень похоже на мой системник тех времён: насчёт 5.25" дисковода не
уверен что ещё был, но без 3.5" безусловно никуда. Два CD-привода
конечно же: один крутой хороший Teac (и у автора и у меня) для записи, а
дальше какой-нибудь дешёвый для чтения, чтобы первый не изнашивать по
пустякам. Модем точно так же стоял, но на тот момент у меня уже был
USRobotic Courier V.Everything. И тоже, чего у меня там только не было,
тоже включая QNX какой-нибудь.

Сбоку ещё виден Epson принтер -- небось матричный. И у меня аналогично.
Шумные конечно, но лента стоила как пару CD-болванок (почти ничего не
стоила), а хватало её на годы (!) даже при вполне себе активной печати.

2 years agoСамые смешные фильмы всех времён
Sergey Matveev [Thu, 7 Jul 2022 17:07:23 +0000 (20:07 +0300)]
Самые смешные фильмы всех времён

https://lenta.ru/news/2022/07/07/funny/
Если в современной музыке я совершенно ни капли не в теме, даже названий
лучших групп десятилетия не слышал (bf94be562853f113de684137e053a04a9db4da9a),
то в фильмах я полностью в теме и очень солидарен с мнениями.

* Борат -- честно говоря, не особо вспоминаю где там моменты чтобы прям
  надрываясь можно смеяться, но положительное настроение мне всегда с
  ним гарантировано, не раз пересматривал, обожаю его!
* Реальные упыри -- 8b6513e68a8e2f1900a2c2ae3de986f329a26ee6. Мне ОЧЕНЬ
  понравились, готов с удовольствием снова пересмотреть. А вот моим
  родителям совершенно не зашло, мол даже пожалели потраченного времени.
  Думаю что и Борат им тоже бы не понравился
* Типа крутые легавые -- ещё один фильм, который я готов пересматривать
  неоднократно. Всё же, действительно, лучший из трилогии "Кровь и
  мороженое" (0f456f8e5252351ca8e4028cebebdf4c4605e9ba), хотя "Зомби по
  имени Шон" тоже очень и очень мне люб, пересмотрю запросто!

Также в новости упоминаются:

* Офисное пространство -- не слышал
* Похождения императора -- не слышал
* Аэроплан -- ff6d4e82b314d1ce8af0d8e3d70f1b862e6dec4e, ну просто
  неплохая комедия, но для меня и ничего выдающегося
* В поисках галактики -- не слышал
* Монти Пайтон: Житие Брайана -- 45218d4a135a57f1cfce4ee55b73469eb37fd062,
  без комментариев, ибо это крутейший фильм Монти Пайтона, как и их
  "Смысл жизни"
* Клетка для пташек -- не слышал
* Мой кузен Винни -- не слышал
* Улика -- не слышал
* Космические яйца -- не слышал
* Рыбка по имени Ванда -- посмотрел совсем недавно, отличная комедия,
  тоже кстати с участниками Монти Пайтона (9408b1f48f8029aecb495aba2649031c5fb22472)
* Самолётом, поездом, машиной -- хм, ведь вроде бы в прошлом году его
  смотрел, а в блоге ничего не написал. Просто неплохая добрая комедия,
  но и ничего выдающегося
* SuperПерцы -- смотрел в этом году, неплохо, но и недостаточно достойно
  было для упоминания в этом блоге
* Победители шоу -- 9148834b07e64d342e98c8e148c4cf982657d66e уже писал
  что оно забавное конечно, но не более, ничего выдающегося

Фильмы явно составлены западным зрителем, ибо подборка, кроме первой
троицы, чисто средненькая, кроме Монти Пайтонов.

2 years agoПоттеринг ушёл в Microsoft
Sergey Matveev [Thu, 7 Jul 2022 07:02:07 +0000 (10:02 +0300)]
Поттеринг ушёл в Microsoft

https://www.opennet.ru/opennews/art.shtml?num=57464
https://www.phoronix.com/scan.php?page=news_item&px=Systemd-Creator-Microsoft
С одной стороны это конечно новость, а с другой вряд ли это кого-либо бы
могло удивить, ибо он многие годы только и занимался тем, что превращал
GNU/Linux экосистему в этот самый Windows, с соответствующей неюзабельностью,
корявостью, небезопасностью и ненадёжностью.

2 years agotshark и termshark
Sergey Matveev [Wed, 6 Jul 2022 19:40:38 +0000 (22:40 +0300)]
tshark и termshark

https://tshark.dev/
https://github.com/gcla/termshark
Как-то не многие знают про tshark, в отличии от (сильно) простого
tcpdump и сильно тяжёлого GUI Wireshark. tshark входит в состав
последнего, но работает в консоли.

Wireshark/tshark конечно огромные монстры по размерам, по сравнению с
tcpdump, но зато умеют очень глубоко и детально разбирать пакеты. tshark
очень помогает мне.

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

2 years agoGentle introduction to elliptic-curve cryptography
Sergey Matveev [Wed, 6 Jul 2022 06:50:55 +0000 (09:50 +0300)]
Gentle introduction to elliptic-curve cryptography

http://ecchacks.cr.yp.to/
https://media.ccc.de/v/31c3_-_6369_-_en_-_saal_1_-_201412272145_-_ecchacks_-_djb_-_tanja_lange
https://cdn.media.ccc.de/congress/2014/webm-sd/31c3-6369-en-ECCHacks_webm-sd.webm
Помню что в YouTube это видео выступления Бернштейна с Таней было не
тривиально найти. Не замечал что у них есть отдельный ecchacks. сайт
для всего этого.