]> Sergey Matveev's repositories - stargrave-blog.git/log
stargrave-blog.git
2 years agoДоступность наших государственных сайтов
Sergey Matveev [Tue, 27 Sep 2022 09:12:10 +0000 (12:12 +0300)]
Доступность наших государственных сайтов

На днях Сбербанк переехал на CA от Минцифры. И единственный официальный
источник знания об этом сертификате CA есть на сайте Госуслуг "/tls".
Ни один броузер, даже Firefox с включённым JavaScript-ом у меня это не
открывает. В комментариях пишут, что даже и после установки их
сертификата, Сбербанк всё равно в Firefox не откроется. Говорят что по
сути нужно только с Яндекс Броузером его использовать. Сегодня вот
опубликованы документы Минцифры с перечнем специальностей которые не
призывают: тоже их сайт и даже прямая ссылка на PDF нигде у меня не
отдаётся, forbidden-ом мне в рожу тычут. Хотел из любопытства посмотреть
являюсь ли я ценным по специальности, которая у меня никоим образом с ИТ
вообще не связана. Вот, казалось бы, столько всего в правильном
направлении в нашей стране делают, но обязательно что-то да через полную
жопу, никак иначе. И я ведь уверен что всё из-за сисадминов, которые
могут и ICMP пакеты перекрыть, ибо так же безопаснее наверняка.

2 years agoЦифровой манифест
Sergey Matveev [Tue, 27 Sep 2022 07:48:32 +0000 (10:48 +0300)]
Цифровой манифест

https://habr.com/ru/post/689636/
Вижу "блокчейн" -- можно сразу закрывать статью. Ни слова про
анонимность людей, про анонимное/тайное голосование. Ни слова
при их приватность. Спасибо, но предпочту оставаться в текущем
мире.

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

2 years agoДень рождения Ларри Уолла
Sergey Matveev [Tue, 27 Sep 2022 07:35:12 +0000 (10:35 +0300)]
День рождения Ларри Уолла

https://habr.com/ru/company/timeweb/blog/689804/
Все комментарии, на момент написания, о том, что это первый язык
программирования у людей. У меня тоже. Когда писал dmon.pl
(569cee2631ad9139e0f4d48d28f9ca9553a1f0b5), то всё же массу удовольствия
от писанины на нём получаю до сих пор.

    Еще в студенческие годы Ларри Уолл женился, и у них с супругой
    появилась одна мечта на двоих: найти где-нибудь на просторах Африки
    бесписьменный язык, и создать для него систему письма, над которой
    он тогда трудился.

и вот он создал Perl для этого.

Pathologically Eclectic Rubbish Lister. Хотя, как говорит Уолл, название
не было акронимом, а является, действительно, "жемчужиной" и отсылкой к
библии.

    Символом созданного им языка Уолл сделал верблюда -- удивительное
    животное, которое в отличие от программистов на Perl может не пить
    до 30 дней отличается силой и необычайной выносливостью.

(вроде бы, но поверю) Работающая программа на Perl 3:

    BEFOREHAND: close door, each window & exit; wait until time.
        open spellbook, study, read (scan, select, tell us);
    write it, print the hex while each watches,
        reverse its length, write again;
        kill spiders, pop them, chop, split, kill them.
            unlink arms, shift, wait & listen (listening, wait),
    sort the flock (then, warn the "goats" & kill the "sheep");
        kill them, dump qualms, shift moralities,
        values aside, each one;
            die sheep! die to reverse the system
            you accept (reject, respect);
    next step,
        kill the next sacrifice, each sacrifice,
        wait, redo ritual until "all the spirits are pleased";
        do it ("as they say").
    do it(*everyone***must***participate***in***forbidden**s*e*x*).
    return last victim; package body;
        exit crypt (time, times & "half a time") & close it,
        select (quickly) & warn your next victim;
    AFTERWORDS: tell nobody.
        wait, wait until time;
        wait until next year, next decade;
            sleep, sleep, die yourself,
            die at last

2 years agoМнение немца о политике США и Германии
Sergey Matveev [Sun, 25 Sep 2022 18:28:46 +0000 (21:28 +0300)]
Мнение немца о политике США и Германии

http://lists.busybox.net/pipermail/busybox/2022-September/089860.html
http://lists.busybox.net/pipermail/busybox/2022-September/089861.html
Высказанное в рассылке BusyBox. Не сдержался человек. Но в целом всё
понимает куда лучше многих россиян.

2 years agoБанька и PS4
Sergey Matveev [Sun, 25 Sep 2022 18:24:56 +0000 (21:24 +0300)]
Банька и PS4

Снова у друга попарился в баньке. Какая же это всё же клёвая штука!
Как хорошо после 110 градусов, ~100% влажности, когда уже нечем дышать,
когда тебя отхлестали веником, выйти на улицу под дождь. А когда уже
дрожишь от холода, то снова хорошо назад в парилку.

А ещё поиграл на PlayStation 4. У меня игровых приставок никогда не
было. Знаком с ними был только в гостях у одноклассников. И мне кажется,
что последняя приставка в которую я играл, была PlayStation 1. Ни с чем
более новым никогда не сталкивался более. И ещё вроде бы я первый раз в
жизни в руках держал BluRay диск.

2 years agoOpenBSD сборочная система
Sergey Matveev [Fri, 23 Sep 2022 09:31:07 +0000 (12:31 +0300)]
OpenBSD сборочная система

https://www.openbsd.org/images/rack.jpg
https://www.openbsd.org/images/rack2009.jpg
https://www.openbsd.org/images/newrack.jpg
https://marc.info/?l=openbsd-misc&m=139024400731106
Недавно (f84cd7894bd51b0702488a395b0deda547abc857) шла речь про стойки в
домашних условиях. А тут стойки для сборки всего что касается OpenBSD.
А также ведь была история о том, что они могли их вообще прикрыть из-за
нехватки средств на оплату электричества. Выглядит почти возбуждающе!
Когда всё такое гетерогенное, совершенно разных архитектур, а не просто
стойка набитая сплошными ровными однотипными серверами одного бренда.

2 years agoЖенский вокал в "Сокровищах богов" Изморози
Sergey Matveev [Fri, 23 Sep 2022 08:25:24 +0000 (11:25 +0300)]
Женский вокал в "Сокровищах богов" Изморози

https://www.realrocks.ru/izmoroz/music/1146971/
https://www.youtube.com/watch?v=tAzqzXup3uI
На концерте Ashen Light (e4a09572c117d8bc3c9f00a71cdd750f339a35a1)
прикупил альбомов Изморози. В целом не моя музыка конечно, но вот на
одном их трэке есть женский вокал, который меня просто безумно зацепил!
Я наверное раз пять подряд его проиграл от начала до конца. А суммарно
уже минимум с полсотни раз его проиграл. Не знаю что в её голосе или
манере исполнения такого, но тащусь. Причём на живом выступлении
вокалистка уже с более оперным (не знаю как это корректно называется)
пением: ничего против не могу сказать, но и не цепляет вовсе.

У меня, как правило, женский вокал или очень цепляет и я только им и
наслаждаюсь (плевать на музыку)
(f9d5ae66c2a5300c83811b746aaab5c48b2c908e -- причём тут то понятно что
банально исключительно просто частота/тембр может нравится,
766b14156e4157c79d546f167ac4fbaf3b6fa51d) или же мне просто на него
пофиг. На прошлых выходных в новостях увидел упоминание Юлии Савичевой.
Помню такое имя, помню что певица молодая попсовая какая-то. Нашёл на
YouTube чтобы просто вспомнить что это, вдруг у меня вкус вообще к
женскому вокалу поменялся? Не, вообще никак: для меня таких десятки
тысячи ничем не примечательных и не отличимых.

2 years agoКак бы выглядели Фредди Меркури, Курт Кобейн, Джимми Хендрикс, будь живы?
Sergey Matveev [Fri, 23 Sep 2022 07:54:47 +0000 (10:54 +0300)]
Как бы выглядели Фредди Меркури, Курт Кобейн, Джимми Хендрикс, будь живы?

http://www.hitkiller.com/esli-b-vse-byli-zhivy-kak-by-segodnya-vyglyadeli-kurt-kobejn-i-freddi-merkyuri.html
Честно говоря, Кобейна я не узнал. А Меркури и Хендрикс превосходны!

2 years agoНачало мобилизации
Sergey Matveev [Fri, 23 Sep 2022 06:03:13 +0000 (09:03 +0300)]
Начало мобилизации

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

Что мы видим после, более чем полугодовалой, СВО? Независимые от США
(достойные самостоятельностью) страны открыто и полностью поддерживают
РФ. Явно не поддерживает только небольшая доля населения Земли.
Остальные подтверждают (очевидное) право РФ на самооборону. Даже недруг,
но сильный и умный политик, Эрдоган. Поддержка нациков есть только со
стороны стран Запада, по сути подконтрольных полностью США, давно
известная своим мировым террором и подобной тактикой ведения войн.

К украинцам у меня вроде бы нет неприязни, хотя и прискорбно, что они
нормально могут смотреть на то, как их власти пытались устроить геноцид
крымчан, перекрыв им пресную воду (факт (я ж в Крыму каждые два года всё
же бываю), который фиг можно найти в зарубежных СМИ), как терроризируют
несогласных с нацистским режимом, как живут рядом с теми, кто неприкрыто
восторгается фашистами. Украине мы почти за бесценок десятилетия
(насколько помню) поставляли газ, что можно считать как нехилым
вливанием денежных средств. За Севастополь, что-то типа под 200M$,
платили ежегодно. И при этом они приглашают строить базы НАТО на своей
территории, прекрасно осознавая что РФ будет обороняться. Хотя террор
штука эффективная: вся история человечества показывают что при нём можно
жить долго, ничего не предпринимая (я никого не трогаю -- меня никто не
трогает). А США умеет устраивать террор, особенно чужими руками и
промытыми мозгами (e04b9f15fa11b60e6e434e589fba6af2d5cf9489). Вот ДНР и
ЛНР, где по сути русские (но граждане Украины (скоро уже нет)), выбрали
путь борьбы против такой гнусной марионеточной власти, разрешающей даже
геноцид. Честь им и хвала!

Какого-то сильного переживания касательно того, что заберут на войну у
меня нет. А тут разве может быть выбор? И почему у меня должны быть хоть
какие-либо сомнения в этом правом деле? Я не обязан защищать свою
Родину? Не должен отдавать долг, как минимум, за достойную и беззаботную
жизнь прошедшую? Не должен быть частью общества и совместно
предпринимать усилия чтобы у нас *было* будущее? Есть люди идущие на
путь предательства и коллаборационизма (собственно, например работая на
страны НАТО), но, благо, родители смогли меня вырастить без подобных
зёрен нечисти. С детства я прекрасно знал, что Запад это не друзья: с
ними можно работать вместе, много чего вместе делать, но при любой
возможности они не прочь будут если и не убить тебя, как представителя
непокорного государства, то, как минимум, изгадить твою жизнь, лишь бы
тебе было хуже чем им. Факт даже подачи заявки на членство в НАТО, со
школы знаю, означает буквально "мы хотим сделать что угодно, лишь бы
навредить (СССР прежде) РФ, сделать их покорными рабами". И я не понимал
ИТшников, соглашающихся работать на них, ведь преобладающая их часть
ценна не своими весомыми познаниями и умениями, а просто тем, что они
более дешёвая рабочая сила, гастарбайтеры обычные. Где самоуважение?
Бывают безусловно исключения: есть уникумы и монстры своего дела,
которым плевать на всё, ибо жизнь у них всецело посвящена только и
только своему делу, которое отлично выходит.

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

К нахлебникам то я отношу и армии бухгалтеров с юристами, которые можно
бы было сократить в разы или порядки. Если бы человек изучил Visual
Basic с макросами для своего Word/Excel, то штат сотрудников уже
сократился бы в разы. Страна достаточно богата и лояльна к подобным
людям с низким КПД, может их содержать, но это всё равно не правильно и
так быть не должно.

2 years agoЗабавные высказывания в ИТ
Sergey Matveev [Thu, 22 Sep 2022 06:39:09 +0000 (09:39 +0300)]
Забавные высказывания в ИТ

https://www.datagubbe.se/short/

    Programming is one of the few crafts that will only make you dirty
    on the inside.

    Hypocrisy is taking pride in Unix shell scripts kept since the
    1990:s while scoffing at banks running Cobol.

    Programming and angling are alike: fun and rewarding as pastimes,
    less so when your life depends on them.

    You can't work with your passion unless working is your passion.

    The mouse is a much faster input device than the keyboard: the
    latter is almost always stationary.

    Continuing a legacy is an honorable task, except in programming.

    It's important to consider ergonomics in sedentary jobs: every now
    and then, programmers should shift a bit.

    Affordances are so called because many contemporary UI designers
    have deemed them too expensive.

    Never changing the defaults is like living in a motel your whole
    life.

    Given enough time, every operating system will turn into Unix.

    In the future, when computers are at long last voice controlled,
    open office floor plans will finally disappear.

    The future was better in the past.

2 years agoБюрократий
Sergey Matveev [Tue, 20 Sep 2022 18:11:31 +0000 (21:11 +0300)]
Бюрократий

http://www.svpvril.com/Jokes/New%20Element%20Discovered,%20Bureaucratium.html
Новый элемент с отрицательным периодом полураспада: со временем он
становится тяжелее.

    A new ultra-heavy element was recently accidently synthesized by
    political scientists. The new element, now known officially as
    Bureaucratium, is electrically neutral, having neither protons nor
    electrons, and thus has an atomic number of zero. However, it does
    have:

    1   bossion
    75  vice-bossions
    111 assistant vice-bossions
    125 associate assistant vice-bossions

    It thus has an atomic mass of -312. The 312 mostly empty particles
    are held together by a strong, cohesive bonding force which involves
    the continuous exchange of clingon-like elementary particles called
    brownoseons.

    Since it is electrically neutral, Bureacratium is chemically inert.
    However, it can be detected indirectly by its ability to impede
    nearly every action with which it comes in contact. In fact it was
    precisely this characteristic (and its unexpected appearance) which
    led the research team to its serendipitous discovery, when it found
    that a certain reaction which is normally exothermic and occurs in
    under one millisecond was observed to be endothermic, with an energy
    input 3500 times greater than normal, and took four days to
    complete.

    Bureacratium is a man-made element and does not occur naturally. It
    apparently is formed as a by-product of necrotic organizational
    processes. It is found in greatest abundance in government agencies,
    large corporations, large non-profit organizations and academia. In
    extremely minute amounts it may actually serve a useful purpose in
    normal reactions by catalyzing the full release and exchange of
    energy among the reactive particles. However, in the typical growth
    process, Bureacratium seems to self-replicate at an alarming rate,
    eventually repelling, although occasionally absorbing, reactive
    particles. If left unchecked Bureaucratium will experience runaway
    growth and literally feed upon itself and absorb nearby organisms.

    Unlike both naturally occurring and man-made radioactive substances
    which decay continuously due to their nuclear instability,
    Bureaucratium, although also unstable, undergoes self-replication
    with a normal doubling time of about nine years. This replication
    appears to occur as a discrete process rather than continuously, and
    is associated with periodic reorganizations which occur at
    more-or-less regular time intervals of approximately three years. At
    these times, vice bossions, assistant vice-bossions, and associate
    assistant vice-bossions exchange places, and roughly 1/6 of them
    generate additional Half-Secretarium particles, which soon quietly
    and mysteriously mutate to become Full-Secretarium particles.

    Bureaucratium undergoes spontaneous chain reactions once it attains
    critical mass, at which point it is no longer controllable and
    consumes its host system along with itself. However, unlike nuclear
    fission and fusion reactions which are exothermic and release vast
    amounts of energy at criticality, Bureaucratium induces an
    endothermic process of fractionation and energy diffusion in which
    the system spins about itself in ever diminishing circles as it
    implodes, consuming vast amounts of energy. At this point, all
    productive reactions among non-Bureaucratium particles, as well as
    replication and mutation of Bureaucratium itself, cease as the
    system slowly disintegrates. Indeed, it has been found that
    Bureaucratium apparently cannot exist alone, having been found only
    in the presence of active particles from which it absorbs energy not
    unlike a parasite.

    Research is currently underway to determine how Bureaucratium can be
    harnessed or controlled to prevent irreversible damage to productive
    host systems.

2 years agoСтатья про собственный VPN
Sergey Matveev [Mon, 19 Sep 2022 18:28:11 +0000 (21:28 +0300)]
Статья про собственный VPN

https://dmitrysnotes.ru/sobstvennyj-vpn-server-za-10-minut
Автор говорит что IPsec лучше чем всё остальное, потому что "IPSec и
IKEv2" поддерживаются всеми ОС и не требуют дополнительного ПО. Я вот не
встречал GNU/Linux дистрибутивов чтобы в них из коробки был хоть
какой-то IKE. С ходу я знаю только OpenBSD, где это, действительно, из
коробки есть. Возможно что-то и поменялось сейчас, но в FreeBSD точно
нету и вроде бы нет планов на это. Кстати, корректное написание это
"IPsec", никак иначе. Более того, как-раз таки WireGuard в FreeBSD
(последних версий) и OpenBSD есть в ядре из коробки. Именно он, выходит,
из коробки единственный кто не потребует ничего дополнительно ставить.
Наверняка и в GNU/Linux-ах каких-нибудь он тоже из коробки будет идти.

И при том, что я очень люблю IPsec экосистему, но в IPv4 мире
использовать бы не порекомендовал, если нормальной прямой связанности
между IP (нет NAT-а). Это вообще не факт что будет всё работать. Сделать
VPN доступный до дома с работы (где я за NAT-ом) -- я не смог. И
возможно я что-то не то настроил в firewall, возможно что-то ещё -- но
даже банально я не могу ответить на вопрос как мне поднять то IP-in-IP
туннель, чтобы при этом его пакеты IPsec-ом защищались. Тогда я плюнул
на это дело и сейчас не хочу возвращаться. В IPv4 мире, с его NAT-ами:
мой выбор это однозначно WireGuard.

2 years agoiSCSI в FreeBSD
Sergey Matveev [Sun, 18 Sep 2022 12:03:56 +0000 (15:03 +0300)]
iSCSI в FreeBSD

https://docs.freebsd.org/en/books/handbook/network-servers/
Есть тут большой образ виртуальной машины, который на моих NVMe не
умещается. Подключал внешний жёсткий диск по USB. И так делал не один
месяц. Почему до меня не дошло то, что раз у меня есть ZFS массивы, на
которых достаточно места, то с них можно прокинуть блочное устройство по
iSCSI? С iSCSI работал на GNU/Linux прежде. Но на FreeBSD, где и target
и initiator реализации есть из коробки в системе, это делается прямо по
примерам из man или handbook. Just works, приятно. Хотя конечно и
медленнее и из-за пропускной способности и из-за задержек, но мне не
критично.

2 years agoTristania всё
Sergey Matveev [Sat, 17 Sep 2022 22:20:58 +0000 (01:20 +0300)]
Tristania всё

http://www.hitkiller.com/tristania-vse.html
https://ru.wikipedia.org/wiki/Tristania
Группа объявила официально о распаде. В общем то это было ожидаемо
конечно, ибо никакой активности уже давно. Их альбомы всегда были в моих
playlist-ах! Особенно мне нравился их период с вокалисткой Vibeke Stene
(e832d12d8e39d42ed3cc17a321f105dd47d908b3)

2 years agoБлокирование web-шрифтов
Sergey Matveev [Sat, 17 Sep 2022 06:47:00 +0000 (09:47 +0300)]
Блокирование web-шрифтов

https://collinmbarrett.com/block-web-fonts/
Сама идея возможности использования подгружаемых шрифтов мне с самого
начала казалась безумной. И трафик нехилый, и вопрос безопасности (всё
же движки для шрифтов, насколько помню, являются полными по Тьюрингу), и
вопрос приватности (когда качаем шрифты с CDN, то сливаем факт посещения).

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

2 years agoCLI игры
Sergey Matveev [Sat, 17 Sep 2022 06:42:29 +0000 (09:42 +0300)]
CLI игры

https://www.linuxjournal.com/content/best-command-line-only-video-games
Бесит когда люди мешают понятия "командной строки" и терминала/консоли.
В статье нет ни одной CLI/shell игры, разве что Frotz (запускался
interactive fiction игрушек), но даже он полноэкранные вещи умеет делать.

2 years agoКомментарии к NNCP новости
Sergey Matveev [Fri, 16 Sep 2022 10:44:48 +0000 (13:44 +0300)]
Комментарии к NNCP новости

https://www.opennet.ru/opennews/art.shtml?num=57771
Вспомнил я тут про OpenNet и что не мешало бы на нём публиковать новости
о своих релизах. Комментарии к своим статьям я давно уже не читаю, но
тут зашёл на страницу с ними. И вот почему не стоит читать комментарии в
Интернетах этих? Да потому что соотношение сигнал/шум к чему-то
полезному или шуму там крайне низкое почти во всех ИТ статьях.

Часть людей дальше заголовка явно ничего не пытается прочитать. И в
комментариях задают вопросы которые в документации явно отвечены. И речь
не про мой NNCP, а вообще про любое ПО. Блин, ведь время потраченное на
написание вопроса зачастую будет сравнимо с переходом по ссылке на
документацию и быструю навигацию по меню/TOC с нахождением ответа.

Конкретно в комментариях про NNCP: кто-то упорно пишет про scp, мол
вместо NNCP. Как-будто человек увидел что это что-то про передачу файлов
и на этом всё: scp же умеет передавать файлы, вот и заладил с ним.
Кто-то вообще задаётся вопросом "зачем шифровать, если передача между
F2F?". Ответ краток и полностью ёмок (дан кем-то): MitM. Очевидно. Но
оказывается кому-то это не очевидно. Как так?

Кто-то начал чушь про TCP и UDP писать. Да, человек понимает что TCP
может себя вести не очень на не очень хороших, колбасящихся по некоторым
характеристикам каналам связи. UDP то здесь чем поможет? Аналогично
придётся всё равно поверх UDP придумывать тему про доставку битых или
потерянных пакетов. В комментарии здраво отвечают что TCP используется
именно чтобы не заниматься этим. Может ли быть ситуация когда
самопальный транспорт поверх UDP будет эффективнее TCP? Безусловно!
Будет ли он эффективнее всегда? Очевидно что нет. Всё упирается в
алгоритм congestion control. Именно поэтому для TCP и дают возможность
его выбора и управления. В случае с UDP никто не отменяет что необходимо
всё равно управлять congestion-ом будет. Просто вместо того, чтобы это
делало ядро ОС, это перекладывается на плечи прикладного ПО. Это не есть
что-то плохое, ибо в каких-то задачах это может дать огромный profit,
как например при использовании QUIC и HTTP/3, где множество параллельных
потоков отправляются. Но когда речь про передачу единственного потока,
одного файла, то QUIC не даёт никакого профита (кроме возможно быстрого
установления, а точнее продолжения, TLS сессии). Переключение TCP CC на
какой-нибудь BBR алгоритм может дать колоссальный прирост "скорости".
Поэтому человек пишет лютый бред, игнорируя тот факт, что использование
UDP не отменяет необходимость congestion control, просто перенося его в
прикладное ПО. Если этот CC будет эффективнее на конкретных каналах
связи: будет эффективнее. Но предложения же нет о конкретике. Да и,
более того, не бывает алгоритмов CC которые работают лучше всех
остальных везде. Настройку/управление CC вместо ОС придётся делать
внутри программы. Если бы NNCP параллельно передавал зашифрованные
пакеты, то можно было бы о чём-то таком задумываться.

Кто-то пишет про то, что NNCP на плохих каналах не работает. Неправда,
ибо я на COM-порту его многократно использовал, и в Ethernet
искусственно ограничивая traffic shaper-ом его до десятков Kbps. Есть
только одна загвоздка: его online протокол оперирует 64KiB пакетами, и,
соответственно, все внутренние счётчики тикают и учитывают факты
передачи пакета. Если за 10сек он не успевает передастся, то ПО
посчитает что за 10сек (по умолчанию) timeout ничего не было передано и
значит надо делать disconnect. Тут всё как с TCP CC: не бывает алгоритма
удовлетворяющего все требования и контексты применения транспортного
протокола. TCP Reno алгоритм создавали во времена десятков Kbps каналов
связи в лучшем случае. На канале с 10-100Gbps он не может себя вести
достаточно хорошо. Но в NNCP "проблему" с 64KiB, которая требует, грубо
говоря, ~53Kbps канала как минимум, можно решить одной переменной
окружения, выставив большее время 10сек timeout-а.

И, опять же, NNCP вообще не имел средств online передачи данных
изначально. Это в первую очередь про store-and-forward и переносные
накопители.

Один человек упорно придирался к слову "простота" в описании NNCP. Мол,
настройка TCP CC это не про простоту. Меня это позабавило тем, что я
писал про простоту самой программы, про её "архитектуру", про код. Про
простоту для пользователя в этой части документации не было
предположений. Но согласен что это не очевидно. Например DJB софт
(daemontools, UCSPI) является очень простым, но имеет больший порог
входа для конечного пользователя.

2 years agoДомашний дата-центр
Sergey Matveev [Fri, 16 Sep 2022 10:03:08 +0000 (13:03 +0300)]
Домашний дата-центр

https://habr.com/ru/company/selectel/blog/688162/
Вот очень мне нравятся серверные железки, стойки и вся эта тема! Хочу и
дома иметь что-то подобное, но всё останавливается на вопросе "а зачем?".
Заиметь отказоустойчивые коммутаторы, маршрутизаторы -- неплохо однозначно.
Но за уйму лет хостинга всего и вся дома: у меня никогда не было проблем
с отказоустойчивостью и надёжностью. Два моих сервера: очень маленького
форм-фактора железки, но с серверными компонентами внутри. Работают без
нареканий. И только с появлением Intel NUC они перестали быть самыми
производительными железками.

В одном комментарии перечислили для чего нужна своя серверная:

    1. Поднять свой сервер мессенджера, того же джаббера
    2. Свой почтовик
    3. Хранилка бэкапов
    4. Медиабиблиотека: храним в одном месте, пользуемся с любого устройства
    5. Сервис синхронизации
    6. Локальный гит
    7. Сидбокс
    8. Домашняя автоматика
    9. Домашний VPN, чтобы туда-сюда не передергивать VPN на устройстве

IM, почта, локальный Git: всё это не требует ресурсов вообще. Просто
ноутбук может это всё хостить. Хранение резервных копий, медиа
библиотеки, seedbox -- всё это требует только достаточного места на
дисках. Ну и не совсем дохлое железо (речь про одноядерные процессоры
i386, и пару гигабайт RAM (хотя и с ней будет работать)) чтобы ZFS
хорошо работал. И вот всё просто упирается в кол-во дисков которое можно
подключить. В обычный большой корпус обычного компьютера можно вставить
с дюжину дисков без проблем (возможно докупая корзины 5.25"). Если я
приобрету ещё пару 16TB HDD (для зеркалирования, поэтому и два), то у
меня вообще всё что есть на лентах влезет на диски. И в одном сервере у
меня даже как-раз два слота для них есть свободных.

Многие говорят про запуск виртуальных машин -- для этого нужны мощные
железки. Не поспоришь. Но вот у меня, кроме совсем дохлых ВМ в которых
NetBSD, OpenBSD, какие-нибудь GNU/Linux, где я просто проверяю сборку и
работу некоторого своего софта, в этом году появилась только одна ВМ,
которой я отдаю много ресурсов, где я вожусь с одним огромным C++
проектом. Но он даже не каждую неделю включается и мощность ему нужна
только для ускорения процесса сборки.

У меня до сих пор дома все компьютеры соединяет один единственный 1Gbps
коммутатор на пять портов. И прямо сейчас подключены только три порта.
Just for fun, just proof of concept я бы мог задействовать по два
Ethernet порта для того, что в GNU/Linux называют bond-ом. Но на
практике мне это не требуется вовсе. MPTCP нету в FreeBSD, поэтому и
скорость в 2Gbps я просто так не получу из коробки.

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

Ну и полноценная, пускай и маленькая, стойка это здорово, но rack
mountable сервера жутко громкие. Для тишины нужные большие вентиляторы:
а это только пъедестальники, значит и никакой стойки (не брать же её
только для пары коммутаторов?). Или размещать на балконе. Но это значит
его надо утеплять, ибо зимой на нём как на улице у меня.

Плюс лично я ещё совершенно не хотел бы связываться с маршрутизаторами,
которые сделаны не на базе обычной ОС, которую ты сам поставил. Просто
угнетает психологически сама мысль о том, что ты полностью ограничен
функционалом встроенного ПО. Я спокоен если это тупой коммутатор. Или
если это коммутатор, который максимум управление VLAN-ами умеет делать,
но не более -- там как бы или он умеет/делает или нет, особо вариантов
больше нет. А вот маршрутизацию я бы хотел уже делать в полноценной ОС.
Или если речь ещё и про firewall. Поэтому у меня никогда не было
маршрутизаторов типа WiFi+ADSL+router+NAT+firewall: это всегда какой-то
обычный ПК с GNU/Linux или FreeBSD внутри. Точнее железки были, но
работавшие в режиме моста. Хотя маршрутизатор, по идее, штука тоже не
хитрая: приходит пакет, смотришь в таблицу куда его дальше отослать,
отсылаешь. Против таких тоже ничего не имею. Но дома такой не нужен,
ведь ещё же и firewall и NAT (к сожалению, пока legacy IPv4 ещё
распространён) понадобятся. Поэтому вместо специализированных
маршрутизаторов у меня бы был yet another сервер, пускай и достаточно
дохленький.

Возможно для всяких Syncthing, NextCloud и подобных штук нужны и
существенные мощности. Но я живу в Unix-friendly мире компьютеров: нужно
получить доступ к NAS, так монтируй его по NFS, который из коробки
встроен в ОС и вообще с ZFS (в FreeBSD) интегрирован. Нужна безопасная
связь для этого? Ну так поднимай WireGuard (в IPv6 мире -- IPsec). Чего
чего, но какого-то дополнительного софта для этого не надо мне.

Ну и я не сисадмин, не сетевик, не devops -- для локальных экспериментов
мне хватает и что имею. Даже 10Gbps сетевые карты я так и не заимел, ибо
мне и 1Gbps хватает, так как я при этом всё равно упрусь в скорость HDD.

2 years agoЛавкрафт мне очень нравится
Sergey Matveev [Mon, 12 Sep 2022 19:50:14 +0000 (22:50 +0300)]
Лавкрафт мне очень нравится

https://ru.wikipedia.org/wiki/%D0%9B%D0%B0%D0%B2%D0%BA%D1%80%D0%B0%D1%84%D1%82%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B5_%D1%83%D0%B6%D0%B0%D1%81%D1%8B
С полдюжины рассказов Лавкрафта прослушал
(81b54ddca2c8b87000e557252080c6be628f2eeb). Его манера подачи явно не
каждому понравится. И в основном то только описание мест и чувств
действующих лиц происходит. Но так детально и чётко! Может показаться
нудно и скучно -- но это только ярче создаёт всё происходящее в голове.

Пока это писал, то обратил внимание что в наушниках играет "Умереть --
значит жить вечно!", затем "Простая мелодия безумия" и "Мир пустоты" с
альбома "Кровь апокалипсиса" Ashen Light-а
(e4a09572c117d8bc3c9f00a71cdd750f339a35a1).
В тему, так как некоторые рассказы Лавкрафта уж угнетают фактом
ограниченности человеческого разума.

2 years agoПолно у нас музыки крутой
Sergey Matveev [Mon, 12 Sep 2022 19:43:29 +0000 (22:43 +0300)]
Полно у нас музыки крутой

Приобретя кучу всяких музыкальных альбомов с прошедших концертов, всё
слушаю и слушаю их. И чем дальше, тем больше нравятся они в целом все!
Есть у некоторых проблемы с качеством записи, особенно когда речь про
90-е или начало 2000-х. Но вообще прям нарадоваться не могу как много
у нас талантливых музыкантов. Есть и новые неведомые мне доселе чувства:
из-за русских текстов ещё и слова, хочешь не хочешь, слушаю. И мне они
тоже очень заходят! А то слушать слова всякого нашего популярного
рока (с советских времён начинающийся ещё)... нет уж, извините.

2 years agoCompaq LTE 5000
Sergey Matveev [Mon, 12 Sep 2022 17:25:45 +0000 (20:25 +0300)]
Compaq LTE 5000

https://www.youtube.com/watch?v=tUdUCHrttkc
Вот очень мне нравятся, чисто эстетически, подобные ноутбуки и
компьютеры как этот. Один из самых классных для меня ПК является
Acer Veriton FP (e40dbd8cc3fcbe0134dbd6c00ff855e99fc73213). Вот
современная техника совершенно не трогает ничем и не манит.

2 years agoКниги "Эврика"
Sergey Matveev [Mon, 12 Sep 2022 09:41:41 +0000 (12:41 +0300)]
Книги "Эврика"

https://ru.wikipedia.org/wiki/%D0%AD%D0%B2%D1%80%D0%B8%D0%BA%D0%B0_(%D1%81%D0%B5%D1%80%D0%B8%D1%8F_%D0%BA%D0%BD%D0%B8%D0%B3)
https://ru.wikipedia.org/wiki/%D0%A5%D0%BB%D0%BE%D1%80%D0%B5%D0%BB%D0%BB%D0%B0
https://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D0%B4%D0%B8%D0%BE%D0%B8%D0%B7%D0%BE%D1%82%D0%BE%D0%BF%D0%BD%D1%8B%D0%B9_%D1%82%D0%B5%D1%80%D0%BC%D0%BE%D1%8D%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D0%B3%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80
В деревне, в которой я проводил регулярно каждое лето своего детства и
подросткового возраста, на чердаке я нашёл несколько книжек "Эврика".
Это такие толстые сборники научно-популярных статей, где про всякие
новинки (ну на тот момент) писалось многое. И какие там только темы не
поднимались! Зачитывал эти книги до дыр, ибо давало тьму пищи для
размышлений. Почему то, в первую очередь, вспоминаю статьи про чудесные
свойства хлореллы (водоросли), которая могла бы стать отличной дешёвой и
богатой веществами едой. И про РИТЭГ я узнал из этих книг.

Оцифрованные архивы есть тут:
https://rutracker.org/forum/viewtopic.php?t=4508487
https://rutracker.org/forum/viewtopic.php?t=4533108

2 years agoВ преобладающем большинстве случаев: контакты -- источник всех проблем
Sergey Matveev [Sun, 11 Sep 2022 19:59:53 +0000 (22:59 +0300)]
В преобладающем большинстве случаев: контакты -- источник всех проблем

https://ru.wikipedia.org/wiki/%D0%9D%D0%B5%D0%B9%D1%82%D1%80%D0%B8%D0%BD%D0%BE#%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BE_%D0%B2%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE%D0%BC_%D0%BF%D1%80%D0%B5%D0%B2%D1%8B%D1%88%D0%B5%D0%BD%D0%B8%D0%B8_%D1%81%D0%BA%D0%BE%D1%80%D0%BE%D1%81%D1%82%D0%B8_%D1%81%D0%B2%D0%B5%D1%82%D0%B0
Во время возни с компьютерами за всю свою жизнь: уверен что наверное 90%
всех проблем связаны с плохими контактами. Именно поэтому в космических
аппаратах так много им уделяют внимания и так трушно выглядят их разъёмы.
Так вот из-за плохо вставленного оптического кабеля, учёные теряли 73нс
и думали что превышали скорость света.

2 years agoКитайцы виноваты в замедлении вращения Земли
Sergey Matveev [Sun, 11 Sep 2022 19:17:57 +0000 (22:17 +0300)]
Китайцы виноваты в замедлении вращения Земли

https://ru.wikipedia.org/wiki/%D0%A2%D1%80%D0%B8_%D1%83%D1%89%D0%B5%D0%BB%D1%8C%D1%8F_(%D1%8D%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D1%81%D1%82%D0%B0%D0%BD%D1%86%D0%B8%D1%8F)#%D0%AD%D0%BA%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D1%81%D1%82%D0%B2%D0%B8%D1%8F
Известно что Земля вращается всё медленнее: 273d4d5a49d90e55fbd5a173cf587fe09f8b03e7
Так оказывается одно только возведение крупнейшей ГЭС в мире, "Три
ущелья" в Китае, подняло 39гт воды на 175м и увеличило момент инерции
планеты, снизив скорость вращения, увеличив сутки на 0.06мкс.

2 years agoВышел FLAC 1.4
Sergey Matveev [Sat, 10 Sep 2022 19:36:57 +0000 (22:36 +0300)]
Вышел FLAC 1.4

https://www.opennet.ru/opennews/art.shtml?num=57761
Пишут что улучшена степень сжатия. Проверил обновлённую версию: всё
равно проигрывает WavPack-у. Проигрывает по размеру даже если
использовать --exhaustive-model-search. wavpack -hh, сжимая лучше,
почти на порядок быстрее flac -8. А wavpack -hh -x3 всё равно быстрее
flac -8. Ну а поддержка 32-бит форматов, которая мне как-то нужна была,
в WavPack уже давным давно, как и огромные значения частот.

2 years agoDjVu vs Comic Book Archive
Sergey Matveev [Sat, 10 Sep 2022 15:26:34 +0000 (18:26 +0300)]
DjVu vs Comic Book Archive

https://sourceforge.net/p/djvu/discussion/103285/thread/623607d5/
DjVu Libre полностью поддерживает DjVu формат. И может кодировать в
него. Вот только не умеет разделять изображение на фон и текст.
Проприетарный кодировщик это умеет делать: в итоге фон сжимается IW44, а
текст отдельно JB2, что делает файлы существенно меньше чем DjVuLibre
сделал бы просто закодировав одним только IW44. С института помню что не
выходило добиться таких же маленьких .djvu файлов, как это делали другие
проприетарными средствами. Хотя преобразуя отсканированное изображение в
PGM, а потом pgmtopbm -threshold/-dither8, можно получить вполне себе
хорошо читаемый PBM, без фона, отлично сжимаемый в JB2. Но скан должен
быть достаточно хорошим. Если это не очень резкая фотография, то будет
нечитабельно.

Но JB2 можно применять только в lossless сжатии, иначе шестёрки в lossy
могут превратиться в восьмёрки (9d4c55eed5c61a2214826129829b7fc3df6d4f3b).
Но cjb2 по умолчанию в lossless и работает.

Но, раз получить хороший PBM не очень тривиальная задача, то с DjVuLibre
остаётся использовать только IW44 (c44 команда) режим. То есть обычное
сжатие фотографии. Попробовал использовать JPEG XL с "-d 3" lossy сжатием.
На глаз оно даже чуть получше (резче) в некоторых местах чем IW44, при
этом чуть меньшего размера. И с лучшей скоростью декомпрессии.

Тогда какой смысл в DjVu? Вот я и не нахожу, ибо Libre версия не умеет
делать так же компактно как проприетарная (нет сегментирования изображения),
а JPEG XL сжимает лучше. Плюс уже есть известный формат Comic Book
Archive, который просто является архивом, внутри которого
пронумерованные отдельные изображения страниц. .cbz -- если это ZIP,
.cbt если tar (хотя для меня CBT это сокращённое название "Cock And Ball
Torture" группы), плюс нередко встречающийся уродский .cbr, использующий
RAR (который проприетарен). И никаких требований к формату изображений
внутри архива нет. Поэтому пронумерованный JPEG XL в ZIP, переименовать
в .cbz и отличная замена DjVu!

2 years agoНовое колесо обозрения на ВДНХ
Sergey Matveev [Sat, 10 Sep 2022 12:17:20 +0000 (15:17 +0300)]
Новое колесо обозрения на ВДНХ

https://lenta.ru/news/2022/09/10/koleso/
Пишут что, мол, самое большое в Европе. Вообще, действительно, издалека
оно хорошо видно. Хожу не один месяц пешком до ВДНХ и оно ориентиром
является.

2 years agoНовая фотография рабочего места
Sergey Matveev [Sat, 10 Sep 2022 09:19:42 +0000 (12:19 +0300)]
Новая фотография рабочего места

http://www.stargrave.org/photoes/home1.jxl
http://www.stargrave.org/photoes/home0.webp
http://www.stargrave.org/WareHistory.html
А то нет ни одной с NUC-ом обновлённым. Сравнил с прошлой фотографией:
другая клавиатура, другой стример (просто внешний, а не в корпусе от
компьютера), нет позёрства с модемом, нет KVM, появился системник с
корзиной с SAS дисками, другой телефон, другой USB хаб, другой ИБП.
Фотография постановочная конечно: и стример и корзина не подключены,
так как для этого надо открыть корпус верхнего сервера, потому что HBA
контроллер без внешних портов.

2 years agoApple продаёт только 5G смартфоны
Sergey Matveev [Thu, 8 Sep 2022 18:02:52 +0000 (21:02 +0300)]
Apple продаёт только 5G смартфоны

https://lenta.ru/news/2022/09/08/no4g/
А у меня до сих пор 2G сотовый. 3G вообще не приходилось использовать.

2 years ago"Созвездие Льва" закончилось
Sergey Matveev [Thu, 8 Sep 2022 07:18:22 +0000 (10:18 +0300)]
"Созвездие Льва" закончилось

Прослушал полностью все книги из сабжевой серии
(5aa0db5e31fd076698f65055f8a97bd89d3ec56b). Снова геморрой с поиском
аудиокниг -- хочется же какой-то большой сборник чтобы на долгие годы
или месяцы хватало. Скачал пока сборник рассказов Говарда Лавкрафта.

2 years agoIETF переходит с Jabber на Zulip
Sergey Matveev [Wed, 7 Sep 2022 20:28:18 +0000 (23:28 +0300)]
IETF переходит с Jabber на Zulip

https://mailarchive.ietf.org/arch/browse/ietf-announce/
https://en.wikipedia.org/wiki/Zulip
Впервые вообще услышал это слово "Zulip". Оказывается, ещё один клон
Slack-а. Ужас сколько этих IM-ов плодится из года в год! Вот только
лучше от этого ни на йоту не становится, насколько вижу. Только всё
более разобщённые и несовместимые средства связи.

2 years agodmon больше похож iftop
Sergey Matveev [Wed, 7 Sep 2022 20:00:33 +0000 (23:00 +0300)]
dmon больше похож iftop

Добавил отображение трафика за 1/5/10сек прошедших, аналогично как это
сделано в iftop. Плюс пиковые и суммарные значения. Всякие оптимизации
как в DTrace скрипте (только агрегации используются), так и Perl-е. Ещё
нужно много DRY сделать, ибо много однотипного кода. Но я уже более чем
удовлетворён результатом. Нагружает незаметно, так же удобен как и iftop
в плане отображения. Возможно получение PTR записей стоит добавить.

Это конечно не полная замена, ибо нет фильтрации например. Хотя в теории
её можно осуществлять на уровне DTrace скрипта. Сейчас dmon может на вход
принимать данные и не из порождённого DTrace процесса.

Напрягает меня кстати идея показывать подобную скорость в битах. Я
понимаю что каналы меряются в ней, но ведь если речь про TCP, то там же
только payload будет учтён. Если он разбит на кучу пакетов, то это ещё
куча overhead-а, которая не будет учтена. И если для IPv6 можно считать,
что заголовок всегда фиксированного размера (насколько понимаю,
расширенные заголовки это очень особые случаи когда их можно встретить),
то у IPv4 он весь из себя варьируемый. Плюс это не учитывает накладные
расходы на канальном уровне. Хотя соглашусь что это наверное быстрее
позволяет прикинуть какую часть канала занимает трафик хотя бы очень
примерно -- ведь канал то уже будет в битах/сек измеряться.

2 years agoNEWS в iftop
Sergey Matveev [Wed, 7 Sep 2022 10:00:42 +0000 (13:00 +0300)]
NEWS в iftop

    $ cat iftop-1.0pre4/NEWS
    Hm, automake insists on there being a NEWS file in place.

    So, here's one, for the time being.

2 years agoThe Stubborn Computer Manifesto
Sergey Matveev [Wed, 7 Sep 2022 07:45:13 +0000 (10:45 +0300)]
The Stubborn Computer Manifesto

https://www.datagubbe.se/stubborn/
http://helpful.cat-v.org/Blog/2019/12/03/0/
https://jurta.org/en/prog/noblink
Даёшь выбор софта, который просто лучше подходит для выбранной задачи!

Вспоминаю интервью с Вассерманом, где он говорил, что до сих пор
использует старый Word на Windows 95 под виртуальной машиной (иначе ведь
уже не запустить). Просто потому что оно отлично справляется с задачей.
На работе меня окружают всякие техписателели и я со стороны вижу что
документ в сотню страниц уже еле-еле пашет на i7 машинах с десятками
гигабайт оперативной памяти. Плюс постоянная матершина о том, что с
каждой новой версией всё только неудобнее становится и менее гибче,
возможностей customization всё меньше. Ну так и нахрена использовать
инструмент который по полной проигрывает своим предыдущим версиям? Ну
тут очевидно: потому что Microsoft сказала.

Если всякие редиски превращают экосистему GNU/Linux в Windows/macOS,
внедряя systemd, то вот нафига это использовать, страдать и мучиться?
Если оно ничего не делает, кроме как вредит конечному пользователю.
Сколько бы редакторов не изобрели, но лучше Vim/Emacs (ну и для кого-то
Acme) не придумали -- нафига страдать борясь на мощных рабочих станциях
с тормознутыми IDE?

В статье и редакторы упоминаются, и Plan 9, и xterm. А кто-то даже
парится и борется с тем, чтобы курсор не мерцал. Хотя лично я наоборот
добавлял патчи для st терминала чтобы он, как раз таки, мерцал, ибо мне
это удобнее.

Верно замечено в статье, что речь не про то, чтобы на старье
засиживаться, мол и на лошадях ездили и не тужили. Просто далеко не всё
новое, модное и молодёжное лучше справляется с задачами. Нередко бывает
и то, что новый софт так же хорошо решает задачи, но имеет более
качественный код, документацию и usability (типа того, что я не вижу
смысла в procmail, когда есть maildrop). У нас есть и куча старья,
которое бы уже давно надо выжигать и выбрасывать, типа IPv4 и MP3 (хотя
это и не программы). А некоторые вещи, типа SSL/TLS лучше бы и не
появлялись.

2 years agoGit SHA256
Sergey Matveev [Wed, 7 Sep 2022 07:43:30 +0000 (10:43 +0300)]
Git SHA256

https://www.fossil-scm.org/home/doc/trunk/www/fossil-v-git.wiki
Читал сравнение Fossil и Git. В принципе то и был в курсе что такое
Fossil, даже clone/pull делал из какого-то. Но... git is more than good
enough при умелом использовании, поэтому не смотрю в сторону кого либо
другого.

Бросилось в глаза то, что в Git указан SHA1 и SHA256. В Fossil SHA1 и
SHA3. Переход на SHA256 в Git идёт не шибко спешно. Но в glocate
(adca349bb86d9ed357051d2452c1a4f9dff24f7c) репозитории я применил SHA256,
просто чтобы посмотреть работает ли оно. Проблем не заметил с ходу:
Fugitive работает, Web-интерфейс для Git-а тоже. Хотя 100% куча софта,
типа моего codecomm (плагин для Vim) имеет hard-coded ожидание SHA1. Но
по идее это небольшие исправления требует в скриптах.

SHA256-only репозиторий -- единственное что полностью реализовано.
Одновременная/параллельная/transitional работа с SHA1 -- не сделана. В
принципе это может означать что новые проекты можно было бы делать
безопасно в SHA256-only режиме. Но пока до сих пор остаётся надпись в
документации о том, что гарантий о замороженности формата авторы не дают
и поэтому для боя не рекомендуют ещё.

2 years agoUnpluggable
Sergey Matveev [Tue, 6 Sep 2022 21:34:49 +0000 (00:34 +0300)]
Unpluggable

https://www.youtube.com/watch?v=81_NcN7yANM
На работе коллега несколько дней назад сказал что у него дома нет
Ethernet-ов. Ну, видимо, имеется в виду один ноутбук, работающий
только через WiFi. Не выходит это из головы и представляю себя
чуваком, орущим "unpluggable!" как в сценке из фильма "Идиократия".
Только в ней он кричал "unscannable!".

2 years agoОптимизация dmon в DTrace
Sergey Matveev [Tue, 6 Sep 2022 21:27:32 +0000 (00:27 +0300)]
Оптимизация dmon в DTrace

http://www.git.stargrave.org/?p=dmon.git;a=commitdiff;h=0c43c2cb5927fe6ee5619b4726da4c247373c9c9
Не успел сделать первый коммит в dmon (9fe4474ce530fe5e8793160fb9218b36f68bd491)
как дошло то, что если я и не делаю красивый вывод в самом DTrace, то ничто же
не мешает в нём производить агрегацию значений трафика. Только надо
дополнительно будет передавать информацию о количестве прошедших пакетов, раз
Perl-овый скрипт не будет видеть каждый по отдельности.

На гигабите вместо 33% (DTrace) + 28% (Perl) теперь это отжирает 2-3%
одного DTrace-а, а Perl вообще можно не учитывать.

2 years agoНаписал утилиту для мониторинга IP/TCP трафика -- dmon
Sergey Matveev [Tue, 6 Sep 2022 19:11:45 +0000 (22:11 +0300)]
Написал утилиту для мониторинга IP/TCP трафика -- dmon

http://www.git.stargrave.org/?p=dmon.git;a=commitdiff;h=589005ba759ab606ed18b6c6a20a4df76cbaf399
Снова, в очередной раз, как всегда, не нашёл, казалось бы простейшей
утилиты: хочу в real-time в консоли видеть какой сейчас трафик идёт
между какими IP. Просто увидеть, что сейчас вот такой-то хост активно
что-то качает. Из портов перепробовал с десяток утилит, которые мне
выдавал поисковик на эту тему. Часть или не работает под консолью
(строит графики для web-интерфейса), или не собирается (к чёрту
разбираться почему, хочу быстро и прямо сейчас!), или мониторят только
интерфейсы, без конкретики по адресам. А остальная, работающая часть,
просто не поддерживает IPv6.

Ведь нужно же просто узнавать информацию по переданным IP или TCP
пакетам и красиво агрегировать для показа пользователю. И самая сложная
часть это именно отображение. Пришлось написать самому подобное. Для
сбора информации использую DTrace. Банально взял примеры из
man dtrace_ip и man dtrace_tcp, где показано отображение отправленных и
принятых пакетов. Попробовал в самом DTrace сделать и агрегацию и
отображение, но это дело не простое и имеет очень ограниченную гибкость.
А раз я же ещё и захочу на лету генерировать DTrace скрипты, чтобы можно
было "слушать" на разных сетевых интерфейсах (мне интересен трафик
только на некоторых), то надо брать в руки Perl.

DTrace скрипт для каждого IP или TCP пакета генерирует вывод: src, dst,
[<>], size. В случае IP адресов src/dst это просто адреса, а в случае
TCP ещё и порты добавлены. И каждую секунду он выводит "T", сигнализируя
что пользователю можно показать обновлённую информацию. Все размеры по
src/dst суммируются, сортируются по убыванию и показывается только топ
значений. Плюс шапка таблицы содержит суммарное кол-во переданных
пакетов и их размер.

Вывод для IP трафика:

         1.25 K / 2.38 K                           85.65 KiB / 2.29 MiB
    ------------------------------------------------------------------------
    2a03:e2c0:2663:2::2         >  2a02:810c:WWWW:XXXX:YYYY:3f    208.91 KiB
    2a03:e2c0:2663:2::2         >  2600:1700:XXXX:YYYY:WWWW:85     48.52 KiB
    2a03:e2c0:2663:1::1         >        2409:8060:XXXX:YYY::2      1.11 KiB

Вывод для TCP:

        21.96 K / 14.08 K                          37.90 MiB / 16.28 MiB
    ------------------------------------------------------------------------
    [2a03:e2c0:2663:2::1]:2049  <    [2a03:e2c0:2663:2::3]:657      2.31 MiB
    [91.211.5.21]:80            >       [200.XXX.YYY.ZZ]:43751    299.53 KiB
    [2a03:e2c0:2663:2::1]:2049  >    [2a03:e2c0:2663:2::3]:657     39.41 KiB
    [91.211.5.21]:443           >        [185.XXX.YYY.Z]:27054      1.69 KiB
    [91.211.5.21]:22            >        [61.XXX.YYY.ZZ]:57762        900 iB

Меняется это всё ежесекундно, очищая экран. Но если хочется что-то
разгледеть попристальнее, то я просто замораживаю вывод tmux-ом.

На гигабитной скорости оно конечно не дешёвое: сам DTrace жрёт треть
ядра, а Perl 28%, да и drop-ы случаются. Но это же миллионы пакетов за
секунды, где каждый "генерирует" текстовую строчку, которую Perl ещё и
парсит. Но мою задачу это решает более чем полностью и более чем удобно.

2 years agoРекомендации wannabe программистам
Sergey Matveev [Mon, 5 Sep 2022 14:57:26 +0000 (17:57 +0300)]
Рекомендации wannabe программистам

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

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

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

У меня никакой базы по алгоритмам и структурам данных нету. Никогда в
жизни не реализовывал ни одного дерева. Первый, и пока единственный,
двусвязный список я использовал впервые в Си где-то пару лет назад,
чтобы иметь в памяти знание о выделенной памяти libgmp, чтобы при
какой-то нештатной ситуации, особенно при отсутствии памяти, программа
бы не падала с abort()-ом (что по умолчанию делает этот GMP), а штатно
шла по этому списку и подчищала информацию. Максимум до чего я сам
додумывался: сортировка пузырьком и двоичный поиск по отсортированным
данным. И по сути я до сих пор нахожусь на уровне сайтописак, возможно
потому что не читал нужные книжки. Кнута листал, но не более. Даже
"понимание" (чёрт его знает как это описать) указателей пришло спустя
многие годы (d026b3c3e20a717c7fd8aad8f5377c4fc4b90d0b).

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

Главная головная боль: хотеть обучиться программированию побыстрее, типа
курсов на пару недель, и после этого уже стать сайтописакой, или же
побывать на чём-то гораздо более внушительном типа двухгодичных курсов в
МГУ, после которых наверное уже будешь солидным разрабом из коробки. Но
это долго, не факт что выйдет, плюс время и деньги. И тут у меня
подобного опыта нет вообще, поэтому и какой-либо рекомендации дать не
могу. Видел/слышал и самоучек без профильного образования, которых можно
было бы обозвать übertopsenior-ами. И тех кто курсы какие-то заканчивал,
типа ШАДа Яндексового. И тех, кто только в институте вообще командную
строчку увидел, но после него тоже крутой достойный разраб. И тех кто
живёт в компьютерах, трудоголиках, не отвлекающихся месяцами больше ни
на что. И тех, для кого мир компьютеров заканчивается в 19:00 в будние
дни и у него в голове совершенно другие заботы и увлечения, а разработка
ПО это только работа. И все из них могут быть как крутыми, так и
отстойными профессионалами в итоге.

У меня опыт ещё отличается от того, что могло бы быть сейчас: в моё
время не было Интернетов! Да и компьютер то мало у кого был, но чтобы
доступ в Сеть -- вообще редкость. Да и более того: а что там делать то?
Плюс у меня никаких знакомых кто разбирался бы компьютерах и
программировании, кроме дяди, но совесть не позволяла бы его отвлекать
по пустякам. Да и, как то так вышло, что я сначала заинтересовался Unix
системами, а он в них совершенно не шарил на тот момент. Единственный
источник хоть какой-то информации -- книги. Благо что в нашем наукограде
завозили довольно редкие книги, типа вообще пары экземпляров в один
книжный магазин на весь город (как гласит легенда).

А книг то у меня не так уж и много было (не считая "Энциклопедии
профессора Фортрана" dae3f409bd6b7acd688d3e044aa5d411290d815f):

* Архитектура компьютера (Таненбаум)
* Компьютерные сети (Таненбаум)
* Современные операционные системы (Таненбаум)
* Распределённые системы (Таненбаум)
* UNIX инструментальные средства
* Системное программирование в UNIX
* Perl для системного администрирования
* какая-то книга про дизайн и устройство файловых систем, купленная в
  Евпатории на отдыхе
* тоненькая книжка-справочник по Си
* и так мною любимая A5-формата "Модемы", где был просто сборник статей
  про Фидо, модемы, перевод "Как стать хакером" и что-то про базы и
  основы Unix-ов
* древняя потрёпанная, купленная на развалах рядом с железнодорожной
  станцией, на русском языке, книга по программам Unix SVR4, если память
  не изменяет (какой-то SysV точно был). Где я узнал про roff систему, в
  которой свою первую курсовую в институте написал

Ну и, так сказать, общесемейная "Самоучитель работы на компьютере"
(9584c0476d4b55e6695a16800b663dbef0539cc4), но это вообще просто книжка
которую каждый пользователь обязан бы был знать на тот момент. Но именно
из неё я услышал про Unix и BeOS.

А ещё моё видение идеального мира отличается от принятого большинством.
Проприетарное ПО, systemd и прочее дерьмо я вообще не рассматриваю как
заслуживающее траты на него времени. И с языками программирования
аналогично. Вот знать или Emacs или Vim -- must-have. Git -- тоже. А
дальше уже и много вкусовщины и разные задачи и отрасли.

2 years agoNNCP ACKи
Sergey Matveev [Mon, 5 Sep 2022 14:46:40 +0000 (17:46 +0300)]
NNCP ACKи

http://www.nncpgo.org/nncp_002dack.html
https://www.complete.org/dead-usb-drives-are-fine-building-a-reliable-sneakernet/
https://news.ycombinator.com/item?id=32699261
https://lobste.rs/s/prtnbp/dead_usb_drives_are_fine_building
Удивительно, но я не нахожу у себя в блоге даже намёка на то, что в NNCP
я много месяцев назад добавлял поддержку ACK пакетов. А ведь на ней вон
люди делают всякие какие-то навороченные вещи.

Лично я эти ACK-и вообще не использую, но было интересно реализовать,
ибо не сложно и просто для некоторых use-case-ов явно подойдёт. То
чувство, когда ВООБЩЕ не помнишь что это, даже в общих чертах, а
некоторые люди это активно используют :-)

2 years agoNNCP не собирался на Go 1.19
Sergey Matveev [Mon, 5 Sep 2022 14:30:36 +0000 (17:30 +0300)]
NNCP не собирался на Go 1.19

http://www.nncpgo.org/Release-8_005f8_005f0.html
https://github.com/inetaf/netstack/issues/4
https://news.ycombinator.com/item?id=32699261
Я сижу на самых последних версиях Go. И почти сразу же обновляю
GOST-овый fork (http://www.gostls13.cypherpunks.ru/). Но далеко не весь
софт пересобираю им. Вот и NNCP, который у меня постоянно везде и всегда
трудится -- не обновлялся.

Оказывается он вообще отказывается собираться под Go 1.19. Всё дело в
зависимостях связанных с реализацией TCP/IP стэка, опционально
используемой при работе с Yggdrasil. Когда-то там использовалась gVisor
библиотека (6ed95a2d84010e41e16c5ee891649d470f765241), потом перешёл на
inet.af/netstack -- fork gVisor только с netstack частью, без тьмищи
зависимостей. Кроме того, были какие-то проблемы на 32-х битных системах
у gVisor, а в inet.af было исправлено это.

Но внутри этого inet.af/netstack в ряде файлов явно стоит "!go1.19".
Судя по коммитам, это авторы добавили просто на всякий случай -- мол они
не проверяли всю эту unsafe работу с новыми версиями и явно указывают на
это. Руками удалил эти build тэги -- вроде бы всё работает, хотя и нет
уверенности. Более того, как оказалось, этот inet.af вообще стал
заброшенным проектом, так как Фитцпатрик больше не имеет проблем с кучей
зависимостей gVisor-а после Go 1.17, который умеет делать lazy подгрузку
модулей.

Если сделать "go mod tidy -compat=1.17", то он круто подчищает
зависимости от всяких излишеств. И действительно, проблем с gVisor-ом
больше нет. Снова переехал на него, уже на значительно более новую
версию, где и куча обратно несовместимых изменений API было. Но это же
Go: я буквально не более десяти минут потратил чтобы понять что и как
надо подправить.

2 years agoЧуть обновил gohpenc
Sergey Matveev [Mon, 5 Sep 2022 14:07:48 +0000 (17:07 +0300)]
Чуть обновил gohpenc

http://www.git.cypherpunks.ru/?p=gohpenc.git;a=commitdiff;h=d863cee82aad34900144198abf740bb7f75a4642
Как-то давно написал альтернативу https://github.com/vstakhov/hpenc --
gohpenc (a43bb2e06daf52402c01ec522174e0c00a4b66d6), так как hpenc тупо
после 8192 блоков обламывалась на аутентификации блоков между разными ОС.

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

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

Я хотел было просто сделать Open(), получить ошибку, сделать Open() над
там же самым буфером с другим ключом. Но шифротекст меняется при этом
процессе. Ступил. Предположил что он дешифрует этот шифротекст,
параллельно скармливая его в Poly1305, и в самом конце просто проверяя
совпадает ли он с предоставленным тэгом. То есть мы бы получили
раскорёженный шифротекст. Но так как ChaCha20 это потоковый шифр, то
снова применив шифрование (на том же ключе) -- мы получили бы
оригинальное содержимое, которое уже дешифровать можно вторым ключом.

Но по непонятной мне причине, в chacha20poly1305 если MAC не валиден, то
он явно просто в цикле обнуляет значение шифротекста. Зачем??? В NNCP я
для дешифрования использовал отдельный буфер в памяти, так как всё равно
там работа с 128KiB блоками и поэтому не страшна такая не экономия. Но в
gohpenc я для каждого параллельного процесса выделяю довольно большие
буферы (по умолчанию в 1MiB) и увеличивать потребление в два раза (в
одном месте plaintext, в другом ciphertext) или, тем более, делать
копирование очень не хотелось бы.

В итоге, в классике жанра Go -- просто скопировал код chacha20poly1305 и
убрал из него обнуление шифротекста при плохом MAC. Это всё равно лишь
несколько строчек вызова Poly1305 и ChaCha20. Но уже в который раз
ощущение что я, как с glocate-ом (adca349bb86d9ed357051d2452c1a4f9dff24f7c),
хочу странного и ищу себе новые проблемы. Зато теперь он ещё более
безопасный.

2 years agoЧеловек сдался после 20 лет собственного почтового сервера
Sergey Matveev [Mon, 5 Sep 2022 08:16:54 +0000 (11:16 +0300)]
Человек сдался после 20 лет собственного почтового сервера

https://news.ycombinator.com/item?id=32715437
https://news.ycombinator.com/item?id=32720234
Яростно обсуждаемая статья, где, после двадцати лет, человек забил на
собственный почтовый сервер. И ответ на его статью: что, мол, вообще
сейчас особенно просто запустить всю эту экосистему.

Есть куча людей, которые говорят что email мёртв. Однако, судя по
комментариям, эти же самые люди, как правило, говорят и что RSS мёртв.
Что обесценивает их мнение. Таких полно: если не mainstream -- значит
оно мертво. Точно так же говорят и про то, что рок мёртв, метал мёртв.

Но с email полностью понимаю что есть колоссальные проблемы в виде
корпораций зла, делающих всё, чтобы email был менее работоспособным.
Microsoft (забыл даже уже что за домены у них для почты) мою почту молча
принимает и она пропадает. Писал им в техподдержку (через отдельный
компьютер, на котором ничего кроме броузера, ибо запускает недоверенный
JavaScript код), но та просто молчит. Google стал, как правило, помещать
мою почту в спам, не смотря на то, что с адресатами я регулярно и годами
переписываюсь. Но уже не первый год народ вовсю на своих домашних
страницах предупреждает о том, что Gmail совсем оборзел. Недавно в
рассылку писал, в которой не раз переписывался, с тех же самых IPv4/6
адресов -- моё письмо просто молча пропало.

Или ты живёшь в мире и экосистеме корпораций, или в мире кооперирующих
людей. Другого не дано.

2 years agoЦветной less
Sergey Matveev [Sun, 4 Sep 2022 16:29:41 +0000 (19:29 +0300)]
Цветной less

http://greenwoodsoftware.com/less/news.608.html
В новой версии less (а может и раньше, но вроде это не было стабильной
версией) появились цвета. Прежде только курсив/highlight использовался
и для результатов поиска, и для status line и для меток и для всего
остального. Теперь все разные по умолчанию -- удобнее стало, нагляднее.

2 years agoКомпьютерные RPG против настолок
Sergey Matveev [Sun, 4 Sep 2022 08:51:46 +0000 (11:51 +0300)]
Компьютерные RPG против настолок

https://www.youtube.com/watch?v=NvfT28_W1iA
https://www.youtube.com/watch?v=yvrNmpRFPgA
https://www.youtube.com/watch?v=8NTaQYBZ7mI
История компьютерных игр на основе настольных игр из реальной жизни. В
самом начале упоминается "Менеджер" -- аналог Монополии. У меня такой в
детстве был и нравился. Да и сейчас есть аналог от Сбербанка (маме на
работе как-то выдали). А вот в D&D никогда не играл и не видел в живую.
Самое близкое это только настольный Fallout
(4440c0bf998124fa83d5a22156ebf7ddca5a10ef) похоже был. Про MUD-ы много
начитан, наслышан, но на практике тоже дела не имел. Он вроде бы ещё
менее популярен чем например IF игры.

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

2 years agoСвободность Astra Linux
Sergey Matveev [Sat, 3 Sep 2022 09:24:07 +0000 (12:24 +0300)]
Свободность Astra Linux

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    define our_as = 4200000000;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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