]> Sergey Matveev's repositories - stargrave-blog.git/log
stargrave-blog.git
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. сайт
для всего этого.

2 years agoОдна консоль на устройство в Linux и удаление coredump-ов
Sergey Matveev [Wed, 6 Jul 2022 06:26:24 +0000 (09:26 +0300)]
Одна консоль на устройство в Linux и удаление coredump-ов

https://utcc.utoronto.ca/~cks/space/blog/
https://unix.stackexchange.com/questions/220420/cleaning-up-coredumpctl-list
Человек пишет что Linux поддерживает только одну консоль per device type.
Не перестаю удивляться во что превратилось то, что раньше пыталось быть
Unix-ом. Точно отчётливо помню что в прошлом году игрался с COM-портами
на своём сервере и без проблем имел несколько консолей в нём.

А вчера я искал как бы мне удалить накопившиеся coredump-ы созданные
coredumpctl-ем (763addc2e593a89a365040923567746f948155a9). Я конечно
нашёл где лежат сами дампы, но их удаление приводит к тому, что просто
показывается в списке coredumpctl, что они не доступны, но где-то в
state знание о них сохранилось. И... как говорит stackexchange, такой
возможности нет вообще. Предложения очистить журнал не помогают.
systemd-tmpfiles не помогает. В общем-то, абсолютно ничего не
отрабатывает. Удалил их сделав rm /var/log/journal/*/*.
Это немыслимо во что вся эта экосистема превратилась.

2 years agoОсвоил не развязывающийся узел шнурков ботинок
Sergey Matveev [Tue, 5 Jul 2022 18:31:51 +0000 (21:31 +0300)]
Освоил не развязывающийся узел шнурков ботинок

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

2 years agoСтоляров о JavaScript
Sergey Matveev [Mon, 4 Jul 2022 19:50:21 +0000 (22:50 +0300)]
Столяров о JavaScript

http://stolyarov.info/faq.html
Обратили мне тут внимание что у Столярова есть FAQ с ответами на тему JS.

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

    Я вот тут подумываю насчёт расширения объёма памяти в моей основной
    рабочей машине, при этом единственное, что тут тормозит - это браузер.

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

    Смешно, да. Ну давайте посмотрим, как реально обстоят дела с этой
    вашей юзабилити. Лично я обычно просто не хожу на сайты, которые не
    работают без JS, то есть вообще не хожу — точно так же, как не хожу,
    например, в такие магазины, где продавцы хамят и матерят
    покупателей. Но, увы, есть парочка сайтов (буквально: два), которые
    мне использовать приходится, несмотря на наличие там JS и
    невозможности работы без него. Так вот, чтобы зайти на такой сайт,
    мне приходится на рабочей машине держать специально для этого пустой
    аккаунт, на котором периодически сносится всё, что там успел
    нагвоздить браузер; перед заходом на JS-нутые сайты я делаю ssh -X
    bolvan@localhost и уже там запускаю браузер. Это вы называете
    "повышением юзабилити"?!

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

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

    >код на JS полностью абстрагирован от реального железа и не зависит
    от среды выполнения
    То же самое можно сказать про любой интерпретируемый язык, а равно и
    про язык, который компилируется в байткод. И это никоим образом не
    повод иметь в браузере интерпретатор любого алгоритмически полного
    языка, неважно, JS это или что-то ещё. Кстати, от среды выполнения
    JS очень даже зависит — если статический HTML ещё более-менее
    реально заставить выглядеть одинаково в разных браузерах, то
    заставить JS вести себя всегда одинаково — невозможно в принципе,
    это превышает возможности человека.

    >Какие возможны альтернативы JavaScript в плане снижения нагрузки на
    сервер со стороны клиентов и экономии трафика?
    Вопрос был бы корректен, если бы «решение» в виде JavaScript можно
    было бы считать хоть сколько-нибудь допустимым; но это не так,
    применение JS на сайтах по сути своей преступно. С тем же успехом
    подсудимый, которого отправляют в тюрьму за серию квартирных краж и
    разбойных нападений, мог бы требовать от судей указать ему
    «альтернативу кражам в плане быстрого получения большого количества
    денег, что особенно актуально, когда не хочется работать».

2 years agoТип переменной индекса массива в Си
Sergey Matveev [Mon, 4 Jul 2022 11:41:07 +0000 (14:41 +0300)]
Тип переменной индекса массива в Си

https://stackoverflow.com/questions/3174850/what-is-the-correct-type-for-array-indexes-in-c
https://sergvasiliev.medium.com/about-size-t-and-ptrdiff-t-a1654234d842
Вот размеры и длины я привык (и считаю корректным) указывать в size_t.
Но если хочется итерироваться по массиву, указывать элемент в нём, то
какой тип применять для переменной содержащей индекс? size_t плох тем,
что он беззнаковый, так что при логической ошибке или переполнении его
значение может стать огромным из-за переполнения и оно уйдёт в
бесконечный цикл например. Подобное отлаживать не очень приятно. А я уже
не раз напарывался на подобную ошибку.

Хочется использовать число со знаком. int может быть слишком маленьким.
ssize_t определён только в POSIX и гарантирует только [-1, SSIZE_MAX].
Куча людей указывается на ptrdiff_t. Но и он может, очевидно, быть
меньше size_t.

Посмотрел код всяких других проектов серьёзных, типа Redis. Они все
size_t используют. И пока я тоже остаюсь на нём, не забывая про косяки
неприятные во время разработки.

2 years agoНовое приятное поведение прокрутки в Vim
Sergey Matveev [Mon, 4 Jul 2022 11:36:46 +0000 (14:36 +0300)]
Новое приятное поведение прокрутки в Vim

Перед Vim 9.0 я использовал какую-то его версию из репозитория, не
сильно более старую. Но только сейчас заметил изменение поведения:
если я сделаю :vsplit и в одной половинке буду вставлять/удалять всякие
строки находящиеся выше/ниже видимой области того что в другой половинке
окна, то ничего в этой второй половинке не будет двигаться. Прежде
изменение количества строк напрямую сразу же двигало текст в других
split-ах, из-за чего приходилось временами туда возвращаться и
подкручивать видимость. Сейчас же изменения в неактивном split-е будут
видны только если правки напрямую затрагивают видимую область. Если
переключиться в прежде неактивный split, то обновится только текущий
номер строки, но местоположение останется прежним. Очень удобно и очень
приятно что подобное сделали по умолчанию!

2 years agovim9script vs Neovim
Sergey Matveev [Sun, 3 Jul 2022 18:06:33 +0000 (21:06 +0300)]
vim9script vs Neovim

Спросили меня тут про vim9script:

    Мне кажется, что это сложный и отчасти тупиковый путь. В таком
    контексте Lisp (и конкретно ELisp) в Emacs выглядит как изначально
    более рациональное решение. Смотрел ли ты в сторону neovim с его упором
    на поддержку Lua?

И вот мои мысли на этот счёт:

    Меня тоже посещали аналогичные мысли, когда я впервые услышал про то,
    что в Vim пилят новый язык. Поддержка других языков, кроме vimscript,
    была давным давно: видел/использовал плагины на Perl и Python. Но их
    использование было связано в первую очередь, насколько мне запомнилось,
    банально отсутствием асинхронных задач в Vim. С их появлением в Vim8, я
    больше плагинов не на vimscript уже не встречал. Я писал когда-то их на
    Python, так как он был и основным рабочим языком у меня, но позже как-то
    само собой всё переписалось на vimscript.

    Мне кажется что неявная killer-feature программирования на vimscript это
    то, что ты постоянно находится в экосистеме редактора. У тебя идёт не
    кусок кода на Perl/Python/Lua/Tcl/whatever, а потом внезапный вызов
    vim.run("kj$R$3lrk4r") абракадабры интерактивного ввода, а ты пишешь на
    языке в котором прямо в его скрипте можно написать "normal gg:%d"
    какой-нибудь. Когда пишешь "mark '", "@/ = 'pattern'", "execute smth",
    то все его задействованные переменные, метки и регистры являются родными
    объектами редактора. Вместо программирования на чём-то в интерпретаторе,
    делая API вызовы к редактору, ты находишься в контексте редактора
    постоянно. Всё это позволяет прямо мгновенно на коленке взять и писать
    себе скрипт для какой-нибудь автоматизации. Не полноценную программу на
    настоящем большом языке, делая API вызовы к редактору, а именно писать
    внутри редактора. Не знаю как корректнее выразиться, но это всё прям на
    ощущениях.

    И поэтому у меня давным давно не возникает применять что-то кроме
    vimscript для скриптования Vim-а. Vimscript пускай и странен, и некрасив
    и уродлив местами (всякие странные переносы, "call"-ы например), но по
    возможностям он вполне себе предоставляет кучу всего (словари, списки,
    лямбды, даже методы -- не существенно отличаясь от всяких более
    привычных Python/JavaScript/Lua). Для знакомых с Py/JS -- в vimscript
    очень небольшой порог входа и куда более тесная интеграция с редактором.
    Я думаю поэтому и не приживаются его плагины на сторонних языках,
    особенно после появления асинхронных задач в Vim8. Я писал на Python,
    думал что это точно будет удобнее, ведь я и вне редактора его
    использовал, но положительных воспоминаний у меня не осталось, хотя по
    сути там точно такие же "normal ..." вызовы можно было делать например,
    но не чувствовался profit от неиспользования vimscript-а.

    Касательно Neovim: я пробовал его использовать с разницей в года. Каждый
    раз у него было другое поведение, какая-то несовместимость. Это выбивает
    из колеи и раздражает -- ведь ожидал я прозрачной незаметной смены
    редактора.

    Что он мне дал бы дополнительного, как пользователю редактора? Я знаю
    только про встроенный LSP клиент. В Vim-е это был бы вопрос одного
    плагина. More sane defaults -- слишком субъективно, да и какая разница
    будет ли на пару строк больше/меньше в .vimrc? Всё равно без
    персонифицированного .vimrc не обойтись.

    То есть, Neovim должен иметь какую-то крутую killer-feature чтобы
    переход на него (прозрачно у меня не вышло ни разу -- он не полностью
    обратно совместим) стоил того. LSP не является такой feature. Может быть
    Lua как альтернатива vimscript? Просто Lua можно было и прежде
    использовать в Vim. Причины того, что сторонние языки не приживаются я
    описал (как мне они видятся). В Neovim это мог бы быть luajit с
    увеличенной производительностью. Пока это единственная возможная
    killer-feature.

    Которая теперь полностью нивелируется vim9script. В случае с Neovim мне
    надо бы было полностью на другом языке переписать свои плагины. Это не
    малая работа. И изучать этот новый язык Lua (лично я на нём год писал,
    мне он нравится, но многие никогда с ним не пересекались). В случае с
    vim9script, "конвертация" vimscript в vim9script -- небольшая работа.
    Этот новый язык не отличается кардинально от старого. Плюс ещё более
    дружелюбен к тем, кто писал на Py/Lua/JS/whatever. Переделать vimscript
    на vim9script -- существенно менее трудозатратно, при этом, как заверяет
    Брэм (ну и другие люди в рассылке), можешь получить ускорение на
    порядки.

    В итоге: трудозатрат на порядки меньше, профит в производительности
    получишь. И опять у Neovim не выходит ни одной killer-feature стоящей
    рассмотрению перехода на него. Ну и я не забуду что Vim собирался на
    старом ноутбуке за пару минут, а Neovim -- пару часов, что не очень
    приятно (хотя я и понимаю что не каждый день этим занимаешься). Меня не
    очень привлекают решения разработчиков Neovim: если Lua это вполне себе
    хорошее решение (в вакууме для произвольного редактора), то MessagePack
    совершенно не ясен, как будто это какой-то highload проект.

    От vimscript в Neovim не избавиться: так как написаны тысячи плагинов на
    нём. Смысла переписывать хотя бы часто используемые (surround, fugitive
    какие-нибудь) -- никто не нашёл. Сейчас их переделать под vim9script и
    они ещё и быстрее станут. А как язык, vim9script ещё ближе стал к
    привычным современным Py/JS.

    Не исключено что я просто так сильно привык к vimscript что мне он
    заходит и мне с ним легко. Но вот Neovim сколько не существует, но не
    смог заинтересовать ничем, что не требовало бы приличных трудозатрат без
    ясного понимания нафига это надо. А Брэм (и команда) придумали нечто,
    благодаря чему можно без существенных затрат всё ещё сделать красивее и
    удобнее (с точки зрения программирования) и без тормозов. Почти бесплатно.

    Помнится что у Neovim изначально была killer-feature в виде асинхронных
    задач. На нём можно было писать любую асинхронщину на Lua. Но Брэм
    сделал асинхронные задачи в Vim8, которые оказались гораздо удобнее для
    использования и очень простые.

    Vim на протяжении всей своей истории демонстрировал что Брэму нужен
    пинок под зад. Регулярно nvi что-то вкусное изобретал, становился неким
    конкурентном с killer-feature, но в Vim впиливали похожу штуку которая
    была зачастую лучше/проще/яснее. Огромная ценность Neovim в том, что он
    был пинком для создания асинхронных задач в Vim8, ещё какого-то
    функционала (типа balloon-ов и popup-ов, lambda, packages, если не
    придумываю). И вот он был пинком для создания очень простой (с точки
    зрения порога входа) vim9script, который, такие как я, сразу же рвутся
    попробовать и быть им довольным.

    Колоссальная ценность Vim-а же ещё в его плагинах. Если потеряется с
    ними совместимость, то задаёшься вопросом "а нафига мне это тогда
    надо?". Редактор в котором не будет аналога surround/repeat/abolish мне
    не нужно. Писать это с нуля? Даже не могу представить какая killer
    feature в редакторе могла бы появится чтобы заставила меня пойти на это.
    А Брэм даёт возможность развивать и улучшать свой experience новыми
    фичами, не ломая уже рабочие мощнейшие отлаженные инструменты (плагины).

    Neovim говорит ещё о более чистом API, возможности использования разных
    GUI, встраивания в броузеры и IDE. Возможно разрабатывать сам Neovim
    существенно удобнее и проще. Возможно (легко поверю!) Lua внутри него
    существенно помогает. Но конечного profit-а для меня, как пользователя
    это не даёт никакого. Был бы разработчиком инструмента (редактора), то
    наверное бы это играло роль. А как конечный пользователь меня не
    интересует насколько там красивее и проще внутри Neovim-а всё, если я
    при этом не вижу чтобы на всём этом появлялись полезные мне killer
    feature. Это как бы внутренняя кухня, меня не затрагивающая.

2 years agoПобывал на свадьбе
Sergey Matveev [Sun, 3 Jul 2022 13:26:24 +0000 (16:26 +0300)]
Побывал на свадьбе

У друга, с которым обменивались многими мегабайтами электронной почты
лет десять, но ни разу, кроме одного случая в метро, не пересекавшись
в живую. Тут уж в электронном формате никак не выйдет такое событие.
Жутко за него рад, что нашёл себе замечательную спутницу по жизни!

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

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

2 years agoАрхив почтовых рассылок через NNTP
Sergey Matveev [Sat, 2 Jul 2022 08:23:36 +0000 (11:23 +0300)]
Архив почтовых рассылок через NNTP

Пока писал про Web 2.0 (2c74dfed17ed87b9a2600d6f725a976b07fbfde5), то
как раз вчера посетил меня вопрос: а почему архив почтовых рассылок не
делать доступным через NNTP? Я никогда в жизни не пользовался этой
технологией (news-ами), поэтому этот вопрос бредовый, но, насколько
знаю, это протокол для online доступа к mail-like сообщениям.

Я несколько раз вводил URL с news/nntp схемой в lynx и он мне вполне
себе открывал и показывал какие-то сообщения. А HTML-сгенерированный
архив это просто rendered выхлоп получается. Плюс NNTP точно
поддерживается и некоторыми броузерами (Lynx например) и почтовыми
клиентами (Thunderbird точно умел). Если домашние странички,
документация к проектам это всё же вполне себе ложится нормально в WWW,
то вот почтовые архивы уже нет -- задевает моё чувство прекрасного.

Вспомнил что был же Gmake, который как-раз агрегировал рассылки и
хвалился доступом к ним через NNTP. Зашёл на их сайт и вижу что они
оставили только NNTP-интерфейс. Делаю "lynx news.gmane.io" (помню что
lynx, видя "news.", сразу попробует соответствующий протокол) и вижу
список рассылок (не знаю как это в терминах news-ов называется
корректно), заходя в которые видны сообщения. То что надо!

Надо будет попробовать всё это. И попробовать найти NNTP↔WWW gateway
какой-нибудь: так можно бы было оставить и fallback для людей не имущих
соответствующее ПО.

2 years agoНе врите мне о Web 2.0
Sergey Matveev [Sat, 2 Jul 2022 08:05:48 +0000 (11:05 +0300)]
Не врите мне о Web 2.0

https://accordion-druid.tumblr.com/post/685175656750972928/dont-lie-to-me-about-web-20
Автор пишет, что Web 2.0 (W2) называют нечто совершенно к нему не
относящееся. Собственно, social media это не W2, а то что его убило. А я
в 4fda8b5403fa562d8dc9a6944f20fc4dce1392ee писал про W2 как-раз то, что
тут и критикуется. Говорят, что W2 это: блоги с комментариями, wiki,
форумы, bookmark sharing, RSS. В общем, всё это наверное точно не
относилось и не существовало в середине 90-х по сути, так что,
действительно это точно не W1. Но Wikipedia говорит, что social media
это приложения W2 -- видимо именно поэтому я приравнивал эти два
понятия, точно так же, как приравнивают WWW к Интернету. В общем, тут я
тоже плаваю в определениях. Да и чёрт с этим WWW и его descendants :-)

2 years agoФорматирование Go кода в Vim
Sergey Matveev [Fri, 1 Jul 2022 09:44:49 +0000 (12:44 +0300)]
Форматирование Go кода в Vim

http://www.git.stargrave.org/?p=dotfiles.git;a=commitdiff;h=68ef15d382d0b6f10c6ad30a7370db57ed8318e9
С самого начала знакомства с Go я использовал их плагин для Vim для
вызова :Fmt команды форматирования кода, которую никогда не трогал, ибо
работает -- не трожь. Для Си кода я использовал set equalprg опцию, и
команду "command! -buffer Fmt normal mtgg=G'tz.", которая ставит метку,
переходит в начало файла, вызывает equal программу, возвращается на
метку. Ведь то же самое можно было бы применить и к Go коду, ведь
goimports и go fmt умеют работать в качестве фильтра текста. Родной Vim
плагин умеет заполнять quickfix, что мне не нужно при форматировании.
Поэтому вместо тьмы строчек можно бы обойтись двумя.

Но в его родном плагине увидел красивый хак с тем, чтобы не портить
метки и чтобы не скакал экран при вызове :Fmt: они создают view
(winsaveview()) и просто его восстанавливают в конце (winrestview()).
Просто, красиво и эффективно. :Fmt команда у меня теперь одинакова и для
Си и для Go, только equalprg у них отличается.

2 years agoGive up GitHub
Sergey Matveev [Fri, 1 Jul 2022 09:29:25 +0000 (12:29 +0300)]
Give up GitHub

https://giveupgithub.org/
https://sfconservancy.org/blog/2022/jun/30/give-up-github-launch/
https://dianne.skoll.ca/pipermail/remind-fans/2022/004157.html
Вчера увидел большую бучу против GitHub-а. Проекты, типа remind, уже
начинают переезжать на что-то другое.

Я не особо понимаю смысл этой акции. Какие есть причины которые бы не
были известны прежде? Было какое-то внезапное событие с GitHub-ом?
Увидел только два наезда основных:

* их AI-trained бот который будет тырить код из проектов, возможно (а
  так и будет, конечно же) нарушая copyright-ы
* то, что сам GitHub сервер полностью закрыт

Как уезд с него помешает Microsoft собирать код с любого другого
Git-репозитория? Никак. Сейчас она удобно все данные для своего AI
собирает из одного места. Что мешает ей сканировать пакеты/порты чтобы
узнавать адреса репозиториев других проектов? Одну только разницу вижу:
сейчас Microsoft может "смотреть" и в приватные проекты.

Ну а то, что GitHub использует закрытое ПО: как мешает его использовать
то? Если человеку нужен просто бесплатный Git-хостинг, то открытие кода
сервера не поможет ему никоим образом, если он всё равно будет требовать
JavaScript загрузки. Если человеку надо запустить свой собственный
GitHub, то этих решений полно и так.

Если человек зависит от функционала wiki, ticket tracker-а и подобного,
то, мне казалось, история с SourceForge показала что в любой момент всё
может закончится. Я помню времена когда SF.net был де-факто хостингом
для софта (все мои проекты там были), а потом за считанные месяцы/годы
все оттуда свалили, когда те начали всякую дичь творить. И так понятно
на что ты шёл и что всё это возможно временно только удовлетворяет.

А разработчики кто не против использовать Copilot для "кражи" кода: так
и останутся на GitHub, которому ничто не мешает тащить код из публичных
репозиториев.

Я то против GitHub потому что он не работает без JavaScript и потому что
он банально ещё и блокирует всяких россиян и представителей других
неугодных США стран.

2 years agoDeath metal хор
Sergey Matveev [Fri, 1 Jul 2022 08:35:18 +0000 (11:35 +0300)]
Death metal хор

http://www.hitkiller.com/edinstvennyj-dez-metal-xor-v-mire-porval-konkurs-americas-got-talent.html
Пару человек одновременно я ещё слышал, но чтобы целый хор -- ещё нет.
Один раз услышать прикольно.

2 years agoНачал познавать vim9script
Sergey Matveev [Thu, 30 Jun 2022 16:02:49 +0000 (19:02 +0300)]
Начал познавать vim9script

https://www.vim.org/vim90.php
http://www.git.stargrave.org/?p=dotfiles.git;a=commitdiff;h=9cbfa59ca421fac5422cbf0c2c52f48f8f2adb4c
Вышел Vim 9.0, в котором основное изменение это появление vim9script
языка. Перевёл почти все свои скрипты для Vim-а на него.

Думал что будет сложнее или бесполезнее. Но нет -- vim9script куда
приятнее и удобнее в использовании, уже действительно походя на любой
современный язык в плане синтаксиса и странностей. Не нужны больше call,
комментарии не в виде ", по умолчанию не глобальная видимость переменных
и функций, типизированные переменные, нет возможной путаницы с "->" и
"." при конкатенации строк, не нужны let-ы. Кроме проверки на типы,
вполне себе работающей, он ещё и к стилю даже будет придираться. Сильно
меньше нужны переносы длинных строк -- можно списки или словари писать
удобно, да ещё и опускать кавычки у ключей. Есть Python-like возможность
опциональных kwarg-ов. Индекс в строке указывает не на байт, а на
символ. Появилась возможность делать import сторонних скриптов и
используя его прямо как в Go.

Мои скрипты не ресурсоёмки, поэтому профита от компиляции я не увижу.
Плагины тоже надо будет ждать когда их перепишут на vim9script (если и
будут). Но в целом новый язык очень и очень мне приятен. И перевести
обычный vimscript на новый не сложно.

2 years agoGit fsmonitor
Sergey Matveev [Tue, 28 Jun 2022 11:31:50 +0000 (14:31 +0300)]
Git fsmonitor

https://github.blog/2022-06-27-highlights-from-git-2-37/
Дожили... фича в git-е, не самая бесполезная, поддерживается только в
Windows и macOS. Чего-чего, а я то уж мог бы ожидать поддержки только
GNU/Linux-а например.

2 years agoСайт посвящённый Elligator-у
Sergey Matveev [Tue, 28 Jun 2022 10:31:47 +0000 (13:31 +0300)]
Сайт посвящённый Elligator-у

https://elligator.org/
Важный алгоритм превращения точки публичного ключа в псевдослучайную
последовательность (с какой-то вероятностью). Он например использовался
в GoVPN для создания zero-knowledge аутентификации.

2 years agoКак мне доверять этому репозиторию?
Sergey Matveev [Tue, 28 Jun 2022 08:13:08 +0000 (11:13 +0300)]
Как мне доверять этому репозиторию?

https://anarc.at/blog/2020-03-17-git-gpg-verification/
https://lwn.net/SubscriberLink/898522/9cf50ee3f96f90c1/
https://stackoverflow.com/questions/23584990/what-data-is-being-signed-when-you-git-commit-gpg-sign-key-id
https://github.com/cgwalters/git-evtag
В Git до сих пор используется SHA1, что в общем то не очень хорошо чтобы
можно было спокойно доверять этому хэшу.

Поддержка SHA256 в Git пока плачевна, никакого interoperability между
репозиториями не будет. Хотя можно уже создавать репозиторий с SHA256.

Подписывать каждый коммит: по моему безумная трата ресурсов. Да и,
собственно, подписывает он всё равно те же самые SHA1 хэши.

Какая-то git-evtag утилита, про которую впервые услышал, подписывает уже
SHA512 хэши всего дерева. Плюс ряд других предложений имеется, но про
которые не слышал чтобы использовались.

Задался вопросом: а что есть штатного и стандартного чтобы можно было в
иерархии пройти по всем файлам и посчитать/проверить их хэши? Вообще
конечно и банальным shell-скриптом не сложно, но не очень эффективно.
Вспомнил про mtree и выглядит как то что надо:

    $ fields="type size sha512"
    $ mtree -p /my/dir -c -k "$fields" |
        mtree -F mtree -C -S -k "$fields" > checksum

Ну и выводит нечто что легко отпарсить и автоматизированно проверить:

    $ head checksum
    ./GPL type=file size=17987 sha512=5b3...49c
    ./INSTALL type=file size=1443 sha512=965...fbe
    ./.git/HEAD type=file size=23 sha512=76b...6cf
    $ mtree -p /my/dir < checksum

Если всё сошлось, то будет хороший return code без вывода. В противном
случае покажет что изменилось и вернёт ошибку.

Порты mtree для GNU/Linux существуют, должны прожевать такое.

Утилиты типа sha512sum судя по man могут проверить иерархию, но sha512 в
BSD не может, поэтому тоже это решение не совместимо между платформами.

2 years agoСовет по использованию криптографических хэшей в man FreeBSD
Sergey Matveev [Tue, 28 Jun 2022 07:56:29 +0000 (10:56 +0300)]
Совет по использованию криптографических хэшей в man FreeBSD

https://www.unix.com/man-page/freebsd/1/md5/
https://www.freebsd.org/cgi/man.cgi?query=md5&apropos=0&sektion=0&format=ascii
В старой версии man-а по командам расчёта хэшей даётся рекомендация по SHA256:

    It is recommended that all new applications use SHA-256 instead of
    one of the other hash functions.

Но в новой уже:

    It is recommended that all new applications use SHA-512 or SKEIN-512
    instead of one of the other hash functions.

2 years agoПродолжение подборки книжек Созвездия льва
Sergey Matveev [Mon, 27 Jun 2022 19:19:17 +0000 (22:19 +0300)]
Продолжение подборки книжек Созвездия льва

https://fantlab.ru/work57659
https://fantlab.ru/work63361
https://ru.wikipedia.org/wiki/%D0%9F%D0%B5%D1%80%D0%B5%D0%B6%D0%B8%D0%B2%D1%88%D0%B8%D0%B9_%D1%87%D0%B5%D0%BB%D0%BE%D0%B2%D0%B5%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%BE
https://fantlab.ru/work2106
https://fantlab.ru/work54856
https://fantlab.ru/work209483
https://fantlab.ru/work78809
А серия жутиков (e4fc3fd701d22e9e0731b19e62b898a4aa961d39) не кончается:

* "Армагеддон" Фредерика Брауна -- уже читал этот рассказ когда-то. Про
  то, как маленький мальчик устроил Армагеддон, заправив свой водяной
  пистолет святой водой в церкви, ну и выстрелив куда не стоило
* "Купол" Фредерика Брауна -- тоже уже читал. Про то, как мужик
  испугался того, что вот-вот начнётся ядерная война и спрятался на 30
  лет за купол, ничего не пропускающий извне и во вне. Просил одну
  девушку выйти за него замуж, но она посчитала что лучше быть со всеми.
  Отключил купол через 30 лет, а оказывается никакой войны то и не было,
  а он был просто чудиком, профукавшим в одиночестве всё это время
* "Переживший человечество" Говарда Лавкрафта и Роберта Барлоу -- больше
  всего запомнились мрачные описания Лавкрафта. Солнце увеличилось, всё
  высохло, полный упадок и кабздец, все люди вымирают, почти никого не
  осталось, переехали на полюса, а последний человек просто срывается и
  падает в колодец с мизерным количеством воды в ведре
* "Ведро воздуха" Фрица Лейбера -- про то, как чёрная звезда пронеслась
  мимо солнечной системы, прихватив за собой Землю, которая перестала
  получать свет и даже атмосфера просто замёрзла, превратившись в
  слоёный лёд. Семья сделала себе из одеял и фольги некое подобие дома,
  где поддерживает огонь, выходя в скафандрах наружу чтобы в ведро
  загрузить кристаллизированного кислорода, который огнём растапливается
  и поддерживает горение и дыхание
* "Девушки и Наджент Миллер" Роберта Шекли -- про то, как (наверное
  снова Китай) возникла ядерная война, почти никого в живых не осталось,
  лишь считанные единицы разбросанные по миру. Миллер шёл шёл и
  наткнулся на группу из пяти 20-25 летних симпатичных девиц, с не очень
  симпатичной учительницей, объясняющей что объединять усилия они не
  будут, и вообще мужчины устроили всё это безобразие и войны. Прогнали
  его камнями. От обиды, несуразной нелогичности и желания (таких девиц
  то!) он взял нож с палкой и:
      ... на Земле исчез последний цивилизованный человек. Вместе с ним
      погибли: последний пацифист, последний отказник по этическим
      убеждениям, последний ценитель произведений искусства, последний
      библиофил. На месте этих достойных восхищения фигур, стоял Миллер
      в ножом в руке, диким взглядом...
* "Закованный разум" Майкла Коуни -- про то, как в Китае поднялась
  какая-то буча, он напал на Индию, её стала защищать Европа, и началась
  третья мировая, продлившаяся всего пять минут. Создали fallout shelter
  и жили под землёй из-за радиации. А спустя сотню лет выяснилось что
  никто никаких замеров её уровня не делал, мол и так правителям было
  хорошо. Воздух считали чрезвычайно ядовитым и боялись любого его
  проникновения в эти убежища
* "Часовые Феникса" Эрика Брауна -- про то, как очередная ядерная война
  (не помню, но наверное опять из-за Китая) и глобальное потепление
  высушили моря и океаны и главные герои колесили на грузовике с буровой
  установкой для добычи хоть какого-то количества еды. Выяснилось что
  есть место, где готовили космический корабль с переселенцами к полёту,
  но не успели запустить -- началась война. А в корабле то том должны
  быть тысячи замороженных людей, которыми можно было бы полакомиться,
  ням-ням...
* "Звуки речи" Октавии Батлер -- про то, как какая-то неведомая болезнь
  убила кучу народу, а у выживших теряется речь, а то и возможность
  понимать чужую речь, максимум только выдавая нечленораздельные звуки.
  Кто-то разучивается читать и забывает что прежде в книгах читал.
  Полная анархия, почти все при оружии. Но некоторые ещё могут говорить,
  или хотя бы читать -- вот только из-за зависти и ненависти их грохнут,
  поэтому это тщательно скрывают

2 years agoCoredump в современном GNU/Linux
Sergey Matveev [Mon, 27 Jun 2022 18:43:17 +0000 (21:43 +0300)]
Coredump в современном GNU/Linux

У меня падает программа под Ubuntu (работает она только под GNU/Linux).
Segfault. Нужно засунуть в отладчик. А где .core? В отличии от *BSD
систем, тут эти файлы не создаются. ulimit -c unlimited не помог --
файлы всё равно не появляются. Во время быстрого поиска в Интернете
видело упоминание coredumpctl, которого не нашёл в своей установке.
Спросил коллег на работе: оказывается эту штуку надо ставить отдельно,
штатно в системе не идёт. Дожили... ставить что-то дополнительно в
систему чтобы получить coredump-ы. А ведь прежде они просто так,
бесплатно, без регистрации и SMS предоставлялись.