]> Sergey Matveev's repositories - stargrave-blog.git/log
stargrave-blog.git
3 years agoПотыкал OSPFv3 и BGP дома
Sergey Matveev [Wed, 28 Jul 2021 18:31:26 +0000 (21:31 +0300)]
Потыкал OSPFv3 и BGP дома

Опыта вообще никакого в этой теме, ни разу в жизни BGP хотя бы с одним
маршрутом не поднимал, как и OSPF. Использовал BIRD. Ничего в этом не
понимая, с первого раза сделал что захотел (прососать динамически
появившийся маршрут на ноутбуке и чтобы другие сервера туда могли слать
трафик). OSPFv6 прям приятен тем, что не нужно конечные адреса
настраивать (в отличии от BGP (понимаю что они и для разных задач)) и
что он поверх IPv6 исключительно работает.

3 years agoДва месяца на восстановление IPv6 на VPS
Sergey Matveev [Wed, 28 Jul 2021 14:49:28 +0000 (17:49 +0300)]
Два месяца на восстановление IPv6 на VPS

Примерно два месяца назад (9dfe1d98eea897cc9d69eed85108c4210109a464)
VPS-ка переехала в другой ДЦ и при этом там не работал IPv6, вообще.
Я потерпел с неделю наверное, а дальше поднял туннель до Hurricane
Electric. Даже забыл про VPS, но намотал на ус, что когда деньги
закончатся, то буду искать другого провайдера. Но сегодня мне написали
что наконец-то IPv6 у них заработал и мне готовы подарить два месяца.
Проверил -- пока вроде действительно всё заработало, на тех же адресах и
PTR записи в DNS не потерялись. Думаю что уж останусь с ними. Но два
месяца без сетевой связанности!? Люди в отпуске что ли были и про IPv6
при переезде забыли напрочь?

3 years agoЕдиницы измерения информации
Sergey Matveev [Wed, 28 Jul 2021 12:58:24 +0000 (15:58 +0300)]
Единицы измерения информации

На работе в документах видел что стараются использовать ГОСТ 8.417-2002,
где килобайт это 1024 байта. Но в таблицах характеристик компьютеров
пишут "4ГБ" памяти и "1ТБ" диск. Относительно ГОСТ-2002 объём памяти
корректен, но не диска, который на самом деле должен быть чуть более
931ГБ. А ещё же сколько путаницы возникает когда люди меряют скорость
сети в "10 мб/сек" -- мегабит, мегабайт? И то и другое могло бы подойти,
но чёрт знаешь что имел в виду автор.

Ну ведь 20+ лет назад же придумали нормальные чёткие измерения с "би"
приставкой: https://ru.wikipedia.org/wiki/%D0%9A%D0%B8%D0%B1%D0%B8%D0%B1%D0%B0%D0%B9%D1%82
даже в ГОСТ IEC 60027-2-2015 их официально ввели. С одной стороны кто-то
хочет придираться к корректности, требуя соблюдение ГОСТов, но сам же
закрывает глаза на потерянные десятки гигабайт.

А ещё узнал что есть такая величина как ниббл:
https://ru.wikipedia.org/wiki/%D0%9D%D0%B8%D0%B1%D0%B1%D0%BB
4-бита, также известные как тетрада (вот это часто встречал) или
гексадецит. Причём "byte", который звучит как "bite" это "кусать", а
"nibble" это "покусывать". LPT порт передаёт за раз по нибблу.

3 years agoПрочитал "Прозрачные витражи"
Sergey Matveev [Tue, 27 Jul 2021 21:34:05 +0000 (00:34 +0300)]
Прочитал "Прозрачные витражи"

https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D0%B7%D1%80%D0%B0%D1%87%D0%BD%D1%8B%D0%B5_%D0%B2%D0%B8%D1%82%D1%80%D0%B0%D0%B6%D0%B8
Совсем короткий рассказ-продолжение "Лабиринта отражений"
(4e86b4e61f480498c89453a519d9de1ee942642d). Понравился, уже не такой
мрачный. Но у него две разных концовки. От первой прям тошнит: во-первых
какой-то либеральный лепет про то, что люди сами могут самоорганизоваться
в Интернете (Глубине), а, во-вторых, какая-то чисто бабская концовка (аж
вспомнил Тима (a97af6f2c2150b7b2fa795c7ad363711aa1251f7)). А вот вторая
концовка прям то что надо. Лукьяненко как будто постебаться так решил,
на контрасте.

3 years agoОбнаружил что PPP умеет работать по UDP
Sergey Matveev [Tue, 27 Jul 2021 13:19:07 +0000 (16:19 +0300)]
Обнаружил что PPP умеет работать по UDP

Прямо в man пример того как user-space ppp (в FreeBSD) можно заставить
работать под inetd и даже в UDP. Действительно работает без проблем. А
то просто ужас какой-то с тем, чтобы сделать какой-то простой туннель
(пускай даже без шифрования, которое можно внутри него организовать), но
чтобы он был не поверх TCP. И IPv6 link-local адресация внутри из
коробки будет. PPP можно использовать чтобы пробить NAT-ы, а внутри уже
IPsec с нужными туннелями поднять и статическими адресами внутри них.
А то как-то за NAT-ом всё проблематично с IPsec
(478eef75e239bf6cf9e4e8357524f0fd033a7bb2).

3 years agoДемонизация программ: SysV и новый стили
Sergey Matveev [Tue, 27 Jul 2021 13:16:30 +0000 (16:16 +0300)]
Демонизация программ: SysV и новый стили

http://0pointer.de./public/systemd-man/daemon.html
Нет конечно никакого нового стиля, а просто замашки Поттеринга. Но
страница ценна вереницей действий которые действительно предпринимались
"классическими" Unix демонами. А "новый" стиль уже действительно хорош
для daemontools/runit/s6 и подобных систем запуска. Можно оценить
насколько всё становится проще и надёжнее (PID file race один чего
стоит).

3 years agoДи Шнайдер об искусстве и несовершенных людях
Sergey Matveev [Tue, 27 Jul 2021 05:27:46 +0000 (08:27 +0300)]
Ди Шнайдер об искусстве и несовершенных людях

http://www.hitkiller.com/mnenie-dee-snider-esli-by-okazalos-chto-mikelandzhelo-byl-pedofilom-nado-zakrasit-sikstinskuyu-kapellu.html
Всё верно и правильно говорил Шнайдер о тотальном горьком катаклизме
культуры отмены.

    Искусство автоматически перестает быть талантливым, если выясняется,
    что художник был педофилом?

    "Мы больше не станем смотреть фильмы с Кевином Спейси". Один из
    величайших актеров своего времени, сейчас просто мертв для всех, и
    за что?

    Просто тяжко видеть, как искусство теряет в цене,
    дисквалифицируется, уничтожается потому, что его творец оказался
    несовершенным грешным человеком.

3 years agoПрочитал "Фальшивые зеркала"
Sergey Matveev [Mon, 26 Jul 2021 21:00:58 +0000 (00:00 +0300)]
Прочитал "Фальшивые зеркала"

https://ru.wikipedia.org/wiki/%D0%A4%D0%B0%D0%BB%D1%8C%D1%88%D0%B8%D0%B2%D1%8B%D0%B5_%D0%B7%D0%B5%D1%80%D0%BA%D0%B0%D0%BB%D0%B0
Продолжение "Лабиринта отражений" (62f7070114a62e6634be91c7a69e3e067c4c5051).
Более мрачная, но всё равно очень понравившаяся книга. Понравилось как
применяются понятия детства к Глубине (можно считать Интернета) и её
взросления. В детстве всё везде прекрасно, как в мечтах, ничего сильно
плохого. А когда вырастаешь, то взрослая жизнь многое изменит, хочешь ты
этого или нет. Я про себя и к Интернету это применял: то там были всякие
умные дядьки, отсутствие коммерции, прекрасное восьмое чудо света. А
потом возник Вечный Сентябрь, коммерция из всех щелей повылезала и
Интернета уже и нет, каким его знали прежде.

3 years agoПопарился в баньке
Sergey Matveev [Sun, 25 Jul 2021 18:13:55 +0000 (21:13 +0300)]
Попарился в баньке

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

3 years agoВыступления с suckless конференций
Sergey Matveev [Sun, 25 Jul 2021 10:10:08 +0000 (13:10 +0300)]
Выступления с suckless конференций

https://suckless.org/conferences/
Просмотрел многие записи, некоторые особо про себя отметил.

https://dl.suckless.org/slcon/2015/slcon-2015-07-klenkow-simple_jabber.webm
Рассказ о том, как устроен XMPP, хотя бы в базовом виде. Вообще жуткая
переусложнённая штуковина. Matrix выглядит в этом плане симпатичнее.

https://dl.suckless.org/slcon/2016/slcon-2016-07-jklemkow-ii-like_chatting_improved.webm
Посмотрев вот это, захотел всё же решить проблему с отсутствием UCSPI-like
утилит для TLS. Утилиты от этого автора используют libtls из LibreSSL.
Плюс из-за execvpe не собираются на моей системе. Было и прежде желание,
но не столь сильное, написать аналогичную утилиту на Go: его TLS
реализации я доверяю полностью, плюс будет работать на широком круге ОС
без зависимости от библиотек которых не будет из коробки.

Написал tlss/tlsc UCSPI утилиты для создания TLS-сервера или TLS-клиента:
http://www.git.cypherpunks.ru/?p=ucspi.git;a=blob;f=README
избавился от stunnel для paster (24cd89da8ad2d37061f2fd9867ed7e0472fc2900),
ибо это реально монстр какой-то. Плюс для клиента можно использовать:
    DST=cat paster $@ |
        tcpclient -DHR -l 0 paster.example.com 2020 sh -c "cat >&7 ; cat <&6"

https://dl.suckless.org/slcon/2019/slcon-2019-03-marc_chantreux-acme_changed_my_life.webm
А вот это выступление понравилось больше всех! Чувак впечатлён что Acme
редактор может всё в тексте исполнять. Я думал будет рассказ про этот
редактор, а оказалось на 100% только про Vim и как в нём можно
использовать pipe-ы по всякому. Уверен что многим было бы полезно
посмотреть, хотя лично я для себя ничего нового не открыл, кроме трюка с
использованием переопределённой "="-команды для прогона через внешнюю
команду. Не то чтобы показанные трюки были действительно полезны и
эффективны, но идею дают. Плюс показывают как бы жилось с Acme.

3 years agoDJB отвечает на выпады Venema
Sergey Matveev [Fri, 23 Jul 2021 19:02:19 +0000 (22:02 +0300)]
DJB отвечает на выпады Venema

https://cr.yp.to/qmail/venema.html
Создатель Postfix много наезжал на DJB-овский qmail.
DJB отвечает на эти выпады что он сам нифига не знает и не разбирается.
Ничего в этом мире людей не меняется, даже у крутых хакеров и математиков.

3 years agoВсё же можно сделать пятно краски являющееся не валидной Perl программой
Sergey Matveev [Fri, 23 Jul 2021 14:48:54 +0000 (17:48 +0300)]
Всё же можно сделать пятно краски являющееся не валидной Perl программой

https://www.mcmillen.dev/sigbovik/
Так что можно заниматься рисованием не боясь напрограммировать на Perl.

3 years agoХранение текстовой строки в виде символической ссылки
Sergey Matveev [Thu, 22 Jul 2021 11:27:31 +0000 (14:27 +0300)]
Хранение текстовой строки в виде символической ссылки

http://jemalloc.net/jemalloc.3.html#tuning
В jemalloc опции аллокатора задаются в файле /etc/malloc.conf, но не в
его "содержимом", а в виде пути символической ссылки. Интересная идея,
ведь на многих файловых системах оно будет хранится прямо в inode.

3 years agoОшибка в функции конкатенации строк
Sergey Matveev [Thu, 22 Jul 2021 09:16:42 +0000 (12:16 +0300)]
Ошибка в функции конкатенации строк

https://habr.com/ru/company/pvs-studio/blog/569012/
Доволен, так как моих знаний и опыта на Си хватило чтобы найти все
недочёты и ошибки в этой функции. Но только я бы не стал писать цикл,
а делал memcpy/memmove.

3 years agodhcpleased, slaacd, resolvd, unwind, ospfd
Sergey Matveev [Thu, 22 Jul 2021 09:02:35 +0000 (12:02 +0300)]
dhcpleased, slaacd, resolvd, unwind, ospfd

http://undeadly.org/cgi?action=article;sid=20210722072359
В OpenBSD теперь используется возможность добавления "autoconf" опции к
ifconfig настройке интерфейса, которая для "inet6" адресов будет
разрешать slaacd демону проводить его автоматическую настройку, а для
"inet" разрешать dhcpleased демону. Так как и по DHCP и по SLAAC можно
получить настройки DNS сервера, то возникает конфликт, который
разруливается ещё одним демоном resolvd. Всё это privsep pledged демоны,
конечно же. А судя по обсуждению в рассылке, не проблема и игнорировать
DNS ответы от DHCP, что даже я регулярно хочу делать. Красиво в целом.

3 years agoJulia получает 24M$. zig!
Sergey Matveev [Tue, 20 Jul 2021 17:45:02 +0000 (20:45 +0300)]
Julia получает 24M$. zig!

https://habr.com/ru/news/t/568700/
https://ziglang.org/learn/why_zig_rust_d_cpp/
https://ziglang.org/learn/overview/
https://ziglang.org/learn/samples/
https://andrewkelley.me/post/zig-cc-powerful-drop-in-replacement-gcc-clang.html
https://andrewkelley.me/post/unsafe-zig-safer-than-unsafe-rust.html
Когда вижу новости про не часто (в моей сфере) встречающиеся языки, то
конечно чаще всего просто их игнорирую. Всякие JavaScript, PHP мне не
интересны, точно нигде не встречу. Rust -- в жаркую топку. Всякая
функциональщина -- не для моих мозгов. Swift -- там же где и Mono с C#.
Julia -- там же для меня где и R: неведомый мне мир. А ещё бывают языки
которые вроде just for fun пишутся, типа Zimbu.

А вот zig зацепил! Интересно было почитать про него, хотя "вышел" на
него благодаря тому, что его компилятор может обычный Си код
обрабатывать (не без помощи LLVM). И чем больше его рассматриваю, тем
больше хочется попробовать, ибо нравятся идеи и подходы. Если Go в
embedded не заиспользуешь, то zig уже вроде бы ещё как можно. И он
достаточно прост и имеет очень вкусный (как и Go) функционал которого
мне не хватает в Си (типа defer-ов). А факт использования LLVM говорит
что при разработке языка не будет тьмища времени потрачена на уже
существующие (относительно) решённые проблемы. В нём даже и сборка на
FreeBSD описана (в отличии от ё@#$ого Rust, где по сути нет сборки из
исходников штатной), с вниманием к статической линковке:
https://github.com/ziglang/zig/wiki/Building-Static-Zig-on-FreeBSD
И набор инструментария имеется (zig fmt хотя бы) с пакетным менеджером.
С удовольствием бы чего на нём не прочь написать, но останавливает что
на работе даже рассматривать не будут.

3 years agogo.stargrave.org/paster
Sergey Matveev [Mon, 19 Jul 2021 19:12:34 +0000 (22:12 +0300)]
go.stargrave.org/paster

http://www.git.stargrave.org/?p=paster.git;a=blob;f=README
Каждый новобранец на Go наверняка писал какой-нибудь URL-shortener или
сервис типа Pastebin. Мой uploader
(http://www.git.stargrave.org/?p=uploader.git;a=blob;f=README) почти
годится для этого: нужно только HTTP сервером директорию отдавать
наружу. Но как-то это всё недостаточно просто.

СУБД? Нафиг -- достаточно ФС. Слушать демоном? Не вариант, только
daemontools + UCSPI-TCP. Логирование -- аналогично через него. Отдавать
paste-ы: внешним демоном (HTTP, Gopher, FTP, whatever). Хранить MIME
тип: достаточно "в" расширении файла. И очищать старьё можно просто
find-ом по ctime времени в cron. Хранить состояние счётчиков или время?
Нафиг -- просто рандом для имени файла: и не перебрать/подобрать имя.

HTTP? Тоже нафиг, слишком сложный протокол для такой задачи. Изначально
хотел сделать на netstring: 5:hello,. Но потом захотелось чтобы была
возможность указать расширение файла. Отправлять два netstring-а? Уже не
красиво. Вспомнил про bencode -- один из самых прекрасных протоколов
сериализации: супер простой, позволяет сложные структуры хранить,
кодирование однообразное (типа ASN.1 DER/CER). Полноценный bencode
декодер не использую, ибо даже лень искать есть ли потоковые: ведь мне
нужно узнать размер загружаемого файла до того как я начну много читать
по сети.

Вот и реализовал это всё. Плюс ещё вывод половины SHA512 от загруженных
данных (половины достаточно, а SHA256 тормознее на современных системах,
считаю что нет ему места для использования, а с SHA вообще связываюсь
потому что это же всё рассчитано для небольших файлов). Плюс добавление
newline если в .txt/.url файлах его нет в конце (иначе это не настоящие
текстовые файлы). А HTTP сервер уже увидев .webp расширение выдаст
соответствующий Content-Type и это будет отображено в виде картинки.

Отправить файл в paster можно банальным:
    ( printf "d1:v${size}:" ; cat data ; printf "e" ) |
        nc paster.example.com 2020
где самое геморройное это узнать длину передаваемого файла:
7cdceadae4be75a1cc450f380e01b667ef5ca7d5. Ну а полноценный скрипт:
http://www.git.stargrave.org/?p=paster.git;a=blob;f=contrib/paster
и его TLS-capable версия:
http://www.git.stargrave.org/?p=paster.git;a=blob;f=contrib/paster-tls
Это ещё и первый TLS-сервис что просто ради интереса я поднял уже с
stunnel (+UCSPI-TCP): вполне себе работает.

А то с этим IRC (недавно обсуждалось насколько он удобен :-)
b34c369b5ce18f0c92dd56270201bca19ea8f262) надо же небольшие куски кода
как-то share-ить. А ещё снимки экрана бывает: теперь это делается:
import png:- | paster png (хотя тут не применялся pngcrush).

3 years agoСнова про убогость протокола Telegram
Sergey Matveev [Mon, 19 Jul 2021 16:04:18 +0000 (19:04 +0300)]
Снова про убогость протокола Telegram

https://habr.com/ru/company/dcmiran/news/t/568512/
https://mtpsym.github.io/
https://core.telegram.org/techfaq/UoL-ETH-4a-proof
Ответы разработчиков Telegram являются просто насмешкой какой-то. Так,
как они, криптографические протоколы не делают. Это просто несерьёзно
ориентироваться на задержки и возможности просасывания n-ого кол-ва
пакетов/сек. Просто стыдоба -- ведь даже старый TLS куда безопаснее!
С их подходом можно бы было и что-то супер древнее использовать с MD5
и DES-ом, ведь *на практике* их было бы вполне достаточно для применения.

3 years agoКак ставить пакеты в Python?
Sergey Matveev [Mon, 19 Jul 2021 10:01:30 +0000 (13:01 +0300)]
Как ставить пакеты в Python?

Второй день подряд хотел было поставить кое какие пакеты Python, но
очень все стали любить ставить cryptography последних версий, который
требует Rust для сборки. Кто-то требует gevent: падает на сборке Си кода
явно из-за каких-то разных версий установленных библиотек (Си). Кто-то
зависит от пакетов в которых setup.py не работает с современными
setuptools версиями.

Короче... pip install, падаем, пробуем подбрать флаги CFLAGS, падаем,
пробуем подобрать более старые версии зависимостей, падаем, что-то
возможно ставим руками (pip download, vi setup.py, ручные действия),
падаем, видим что установленные более старые версии не годятся, идём
искать этот софт на Go.

3 years agoТаненбаум о "победе" Linux
Sergey Matveev [Mon, 19 Jul 2021 09:22:20 +0000 (12:22 +0300)]
Таненбаум о "победе" Linux

https://linuxfr.org/nodes/88229/comments/1291183
    Linux "succeeded" because BSD was frozen out of the market by AT&T
    at a crucial time. That's just dumb luck.
Вот к чему я недавно тоже и пришёл (0a2e5056ba726ac888bb9be1a71d314869b2899e).
Плюс BSDi начали продавать полноценный дистрибутив за 1k$, тогда как
коммерческие Unix-ы стоили минимум 15-20$k. Плюс появился i386, на
котором можно было запустить это всё за вменяемую цену простому человеку.

3 years agoПочему ZeroMQ стоило писать на Си, а не C++
Sergey Matveev [Sun, 18 Jul 2021 17:34:35 +0000 (20:34 +0300)]
Почему ZeroMQ стоило писать на Си, а не C++

https://250bpm.com/blog:4/
https://250bpm.com/blog:8/
Сам автор рассказывает и объясняет почему код на Си был бы лучше.

3 years agoКниги с прохождениями и читами компьютерных игр
Sergey Matveev [Sun, 18 Jul 2021 12:31:13 +0000 (15:31 +0300)]
Книги с прохождениями и читами компьютерных игр

https://rutracker.org/forum/viewtopic.php?t=3758536
Какая бесценная подборка книжек с кодами для игр! У меня с дюжину было
подобных для ПК игр (видеоприставок не было никогда), хотя самих игр
оттуда было не шибко много, ибо мой компьютер всё время тогда был
"отсталым" и не много чего мог потянуть. Я зачитывался прохождениями и
описаниями, порой, даже не запустив игру, зная про неё больше чем многие
другие. Это наверное как читать фантастику.

3 years agoСвободное ПО разрабатывается энтузиастами
Sergey Matveev [Sun, 18 Jul 2021 11:52:00 +0000 (14:52 +0300)]
Свободное ПО разрабатывается энтузиастами

За последние дни, уж не знаю как так вышло, но оказался я на паре блогов
где люди восхищены идеями свободного ПО (или open source? не пойму). Но
создаётся впечатление что все они считают мир FOSS-а местом где сидят
такие энтузиасты и за еду и идею пилят кучу софта, который активно
поглощают и используют всякие Apple и Google. И то, что до Столлмана
были тёмные времена закрытого коммерческого ПО, каждый друг другу враг,
но только RMS решил восстать и собрать армию единомышленников.

Жалко у меня не было блога 15+ лет назад. Может быть и я так же наивно
считал. Но если получше читать историю и даже смотреть любительские ролики:
d477a6b2119fa1928dad55613ccaf89e44828a64
http://catb.org/esr/writings/taoup/html/ch02s01.html
8433171d12a31dbff6e55164824b41e64f041e47
d99a6755d851ea9461dc3bbf2bfe3357169447dd
и читать https://www.tuhs.org/
то картина куда более приземлённая, не такая романтичная, но и не
настолько мрачная: 15+ лет всеми исходными кодами люди вовсю
обменивались, распространяли свои наработки и изменения (BSD тот же).
Это было то, что можно было бы обозвать open source-ом. А потом
появились всякие Microsoft, которые показали как можно лихо грести
деньги на проприетарном софте. RMS увидел во что это начнёт выливаться в
будущем и заранее обеспокоился проблемой и начал толдычить о ней и
другим разработчикам. Ну и коммерческие Unix начали борзеть по ценам и
проприпреировать код. Кто-то начал с нуля писать софт, без legacy (GNU).
Кто-то начал вычищать BSD-код от явно AT&T-copyrighted вещей. Но к
1991-1992 уже появились почти полностью законченные ОС в которых не было
copyrighted кода компаний которые бы явно сделали всё проприетарным.
Против BSD начались судебные разбирательства:
https://en.wikipedia.org/wiki/UNIX_System_Laboratories,_Inc._v._Berkeley_Software_Design,_Inc.
во время которых вовремя подоспел GNU+Linux.

Короче, Unix мир и так имел свободное ПО де-факто, ещё до RMS. Потом
из-за денежных вопросов началась суматоха, во время которой в итоге
появились *BSD и GNU+Linux системы.

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

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

Де-факто вся массовая GNU/Linux экосистема вовсю пишется в компаниях
типа RedHat, а драйвера для железа пилят те же самые Intel-ы.
https://lwn.net/Articles/839772/
А это компании и люди которые делают всё для заработка, а не идей
осчастливливания всех людей на свете. Аналогично и BSD мир:
https://freebsdfoundation.org/our-donors/donors/?donationYear=2020
https://freebsdfoundation.org/our-donors/donors/?donationYear=2019
https://www.openbsdfoundation.org/contributors.html
Тот же Яндекс ведь не обязан был отдавать свои наработки в FreeBSD, но
он этот делал (чай не GPL, и вообще для внутренних нужд разработки),
хотя тратил свои немалые деньги (специалисты то дорогие).

Но корректнее говорить что это open source пилят точно так же
коммерчески в офисах. Именно свободное ПО мало кого, к сожалению,
беспокоит.

3 years agoПосмотрел "Житие Брайана по Монти Пайтону"
Sergey Matveev [Sun, 18 Jul 2021 09:47:16 +0000 (12:47 +0300)]
Посмотрел "Житие Брайана по Монти Пайтону"

https://ru.wikipedia.org/wiki/%D0%96%D0%B8%D1%82%D0%B8%D0%B5_%D0%91%D1%80%D0%B0%D0%B9%D0%B0%D0%BD%D0%B0_%D0%BF%D0%BE_%D0%9C%D0%BE%D0%BD%D1%82%D0%B8_%D0%9F%D0%B0%D0%B9%D1%82%D0%BE%D0%BD%D1%83
Как в Wikipedia и написано: пародия и высмеивание религиозных фанатиков,
террористов-смертников, националистов и феминистов (вот это было очень
забавно!). В куче стран фильм был запрещён к показу -- сейчас бы за него
наверное на Западе лишали бы всех премий, работ и заслуг. Но последняя
сцена, с пританцовывающими и весело поющими о светлой стороне жизни
распятыми людьми... в этом весь Монти Пайтон. Очень чёрно юморной -- мне
понравился.

Вообще можно было бы только фильмы (четыре штуки) у Монти Пайтона смотреть.

3 years agoСтоллман влиял даже на BSD
Sergey Matveev [Sat, 17 Jul 2021 17:36:03 +0000 (20:36 +0300)]
Столлман влиял даже на BSD

http://catb.org/esr/writings/taoup/html/ch02s01.html
https://minnie.tuhs.org/pipermail/tuhs/2021-July/024102.html
https://minnie.tuhs.org/pipermail/tuhs/2021-July/024103.html
https://minnie.tuhs.org/pipermail/tuhs/2021-July/024108.html
https://minnie.tuhs.org/pipermail/tuhs/2021-July/024157.html
Пишут, что (в том числе) из-за влияния RMS, уже в 1988 начали вычищать
AT&T-copyrighted код из исходников BSD, благодаря чему 386BSD, без
которой не было бы ни FreeBSD, ни NetBSD, стала возможна.

Забавно, что если бы 386BSD зарелизилась буквально считанными месяцами
раньше, то Linux бы вообще не появился: Линус просто не мог себе купить
Sun машину, а Minix был не свободен. Причём первая версия Linux даже не
имела сетевого стэка, тогда как 386BSD имел это всё сразу же. Но там
начались судебные наезды от AT&T продлившиеся два года, тормозя всё
развитие. В общем, RMS заранее понял что проприетарщики оборзеют
окончательно вскоре, а Linux просто оказался в нужном месте и в нужное
время.

3 years agoПосмотрел "Смысл жизни по Монти Пайтону"
Sergey Matveev [Sat, 17 Jul 2021 08:16:58 +0000 (11:16 +0300)]
Посмотрел "Смысл жизни по Монти Пайтону"

https://ru.wikipedia.org/wiki/%D0%A1%D0%BC%D1%8B%D1%81%D0%BB_%D0%B6%D0%B8%D0%B7%D0%BD%D0%B8_%D0%BF%D0%BE_%D0%9C%D0%BE%D0%BD%D1%82%D0%B8_%D0%9F%D0%B0%D0%B9%D1%82%D0%BE%D0%BD%D1%83
И снова не думал что они смогут переплюнуть сами себя, но они умудрились
это сделать. Просто жесть на жести. По моему, даже по современным меркам
это офигенно.

3 years agoНедостаток bfs
Sergey Matveev [Sat, 17 Jul 2021 07:48:52 +0000 (10:48 +0300)]
Недостаток bfs

Обнаружил неприятную особенность в bfs
(7c1a6ea5e58871a1616d7ec29419af06d50a082c): если NFS точка монтирования
недоступна (сеть лежит), то bfs виснет и ничего не делает. truss показывает
что на получении информации (типе) о доступных ФС и зависает. Поправил
сам bfs и просто не делаю mtab-related вызовы, нужные только для -fstype
фильтрации.

И посмотрел будет ли разница на такой мизерной, с точки зрения
зависимостей, программе, у которой только libc, между статической и
динамической линковкой. Даже банальный time bfs упорно показывает
разницу в 10мс.

3 years agoFSF и GNU на IRC
Sergey Matveev [Sat, 17 Jul 2021 07:10:58 +0000 (10:10 +0300)]
FSF и GNU на IRC

https://www.fsf.org/news/fsf-and-gnu-move-official-irc-channels-to-libera-chat-network
Явно написали что они рассмотрели и Matrix и XMPP, но не могут
использовать первый, так как большинство пользователей будет
использовать Web-версию, которая требует несвободный JS-код.
Про XMPP деталей нет, но наверное это его прожорливость?
Вот и я независимо от них тоже пришёл к выводу что пока лучше
IRC для IM, тем более группового ещё ничего не придумали.
Как минимум не реализовали.

3 years agoЗависания сетевухи, часть 2
Sergey Matveev [Fri, 16 Jul 2021 11:42:23 +0000 (14:42 +0300)]
Зависания сетевухи, часть 2

Уже в блоге у себя видел что писал не однократно о зависаниях NIC-а:
3248da65be9ca38eb5ae181922390e5e6d693bca. Сегодня играла музыка,
распаковывался большой tarball по NFS, в фоне NNCP передавал online
протоколом большие файлики. Только за сегодня было два "зависания".
Ничего не помогает кроме физической перезагрузки компьютера. Задолбало.
Работаю на явно неисправном железе. Среди всех ноутбуков этот Dell
Latitude прям худший. По сути у меня ломались только крепления мониторов
и деградировали аккумуляторы. А тут проще сказать что осталось рабочим.

3 years agoНе верь всему, что пишут на хабре
Sergey Matveev [Fri, 16 Jul 2021 06:12:33 +0000 (09:12 +0300)]
Не верь всему, что пишут на хабре

https://habr.com/ru/post/567996/
Человек прошёл кучу курсов по Java, но так и не смог нигде устроится на
работу и написал гневное письмо автору статьи в которую он так поверил.

Солидарен с комментариями о том, что этот человек небось просто только
по курсам и задачкам считает себя крутым, но на деле на собеседованиях
выясняется что реальной базы или понимания нет никаких. Человек
возмущается что автора взяли только с голым знанием Java+SQL, но без
framework-ов. Про Java мир ничего не могу сказать, но в Python или Go
незнание framework точно не стало бы проблемой почти нигде: умеешь
разбираться в базе, то уж framework-и осилишь -- они просто могут быть
дополнительным плюсом.

Хотя с этим человеком меня объединяет: "мне 33 года, без семьи, без
детей, ... и без шансов иметь хотя бы одно из вышеперечисленного". А у
автора, в списке самых труднодостижимых целей, заняться сексом по
взаимному согласию одно из самых простых дел в жизни: для меня изучить
иностранный язык новый было бы куда проще. Да и на работу в другую
страну (Англию) меня уже приглашали.

А ещё один комментарий говорит что если для резюме будет гуглиться
аватарка с Гитлером, то это обнуляет шансы на устройство в Израиле.
Забавно, ибо когда меня мама стригла коротко (тот небольшой промежуток в
жизни когда у меня не было длинных волос) для поступления в ФСБ, то
карандашом пририсовала усики и сфотографировала: получилось очень
Гитлер-like. И я это на аватарку в Github повесил. Когда устраивался на
работу, то первым вопросом мне было "вы националист?". А я аватарку то и
не замечал особо, ибо в броузере у меня давным давно картинки по
умолчанию не грузятся. Любят на Западе оценивать людей по чему угодно,
но не по реально им нужным навыкам. Увидел фотографию меня с каким
нибудь вокалистом Marduk (а у меня прямо сейчас его Funeral Myst в
наушниках), то сразу давай до свидания? В общем, люди сами себе ищут
проблем, вместо того чтобы в нормальных странах искать работу.

Ещё понравился комментарий:

    Вы как старожил, просто должно быть помните одну "историю успеха" о
    переезде в Германию, которая была опубликована тут в 2019 году. Где
    один небезызвестный автор писал о том, какой он крутой студент и
    специалист, а в итоге оказалось, что из универа в Германии его
    выгнали, родители в России в глубоких долгах за обучение сына в
    Германии, на работу в Германии его не берут, а живет он там только
    потому, что сожительствует с престарелым геем.
    [...]
    Вы забыли добавить, что на Хабре его приняли просто с распростертыми
    объятиями. Карма его росла экспоненциально, а в комментариях был
    восторженный хор поклонников, который на моё не очень эмоциональное
    и вполне корректное критическое замечание к автору, моментально слил
    карму в глубокие минуса.

    Рецепт успеха очень прост: достаточно писать «Рашка — отстой, вот в
    Европе уууу», «Русский язык и кириллица отстой — для прогресса надо
    переходить на латиницу, а то и вообще английский» (он действительно
    что-то в этом роде писал), и т.д. и т.п. Это и рецепт как быстро
    подрастить карму, и собрать хор восторженных поклонников, несмотря
    на полную неадекватность (достаточно загуглить ник этого персонажа —
    GamerSuper).

3 years agoFredrik Thordendal -- Sol Niger Within сессия
Sergey Matveev [Thu, 15 Jul 2021 17:34:04 +0000 (20:34 +0300)]
Fredrik Thordendal -- Sol Niger Within сессия

https://www.youtube.com/watch?v=HIdjLw-7Xa0
Про альбом этой группы (гитариста Meshuggah) уже писал в
1eed2bbf606bacf8a8c21f46ddfbaf44d06748e9, а тут вот видеозапись сессии с
одним только барабанщиком и гитаристом.
Всё вот это наяривание без мелодий обожаю!

3 years agoПробую использовать alias -s в zsh
Sergey Matveev [Thu, 15 Jul 2021 17:07:03 +0000 (20:07 +0300)]
Пробую использовать alias -s в zsh

В zsh можно "открывать" файлы путём их исполнения. Исполняемые файлы
будут запускаться, а для остальных нужно настраивать alias -s алиасы.
Но из коробки есть zsh-mime-setup функция, которая парсит ~/.mailcap и
~/.mime.types, автоматически добавляя alias -s соответствующие. Пока у
меня это всего лишь просмотр less-ом .txt, lynx-ом .html, и просмотр
картинок с PDF-ками, .info. Но вроде привыкаю уже набирать короткие
doc/html/index<TAB> чтобы оно раскрылось в doc/project.html/index.html
и сразу смотреть его отрендеренную документацию.

Про этот функционал я знал давно, но мне не хотелось заниматься
прописыванием этих алиасов для всех расширений картинок что мне нужны.
Но когда оно может автоматом на основе .mime.types/mailcap, то уже стало
интереснее. Ведь это заодно и будет заставлять меня прописывать
корректную информацию в эти MIME файлы.

3 years agoДомашние компьютеры для BitCoin mining
Sergey Matveev [Wed, 14 Jul 2021 06:49:23 +0000 (09:49 +0300)]
Домашние компьютеры для BitCoin mining

Вспомнилось тут что на работе когда упомянул коллеге о покупке дорогущей
железки, имея в виду стример, он спросил не о ферме для майнинга я говорю?
Когда мне меняли провайдера, то увидев сервачки, тоже спросили из любопытства
не майнят ли они чего? Вот неужели это дело действительно так распространено
у людей, что первой мыслью у них приходит mining?

3 years agoОчередные улучшения completion-а zsh
Sergey Matveev [Tue, 13 Jul 2021 19:53:57 +0000 (22:53 +0300)]
Очередные улучшения completion-а zsh

Если выставить zstyle ":completion:*:descriptions" format "%d"
то при отработке какого-то completer-а будет выводиться его название и
можно будет увидеть что вообще было найдено (дополнение команды, пути,
man-а там). Но я не хочу чтобы он загромождал экран во время дополнения
путей, как самых часто используемых. Легко решается выставлением только
для нужных completer-ов этой настройки (она ещё будет жирным цветом
показывать сообщения):
    zstyle ":completion:*:man:*:*:descriptions" format "%B... %d%b"
    zstyle ":completion:*:parameters:*:*:descriptions" format "%B... %d%b"
Если ничего нигде не было найдено, то можно добавить вывод сообщения об
этом, чтобы чётко понимать что completer-ы честно отработали, а не это я
забыл нажать на кнопку дополнения:
    zstyle ":completion:*:warnings" format "%F{red}no matches: %d%f"
А ещё сообщения нужно/можно сгруппировать, чтобы выводились отдельно
сообщения descriptions, далее найденные в этой группе предложения:
    zstyle ":completion:*" group-name ""
А конкретно у man completer-а есть своя собственная настройка
разделяющая запрос по секциям:
    zstyle ":completion:*:manuals" separate-sections true

Проделав всё это:

    % man write<TAB>
    ... manual page, section 1 (general commands)
    write
    ... manual page, section 2 (system calls)
    write   writev

    % man ports<TAB>
    ... manual page, section 5 (file formats and conventions)
    portsnap.conf
    ... manual page, section 7 (miscellanea)
    ports
    ... manual page, section 8 (maintenance commands and procedures)
    portsnap

    % echo GO<TAB>
    ... parameter
    GOCACHE  GOPATH   GOPROXY  GOSUMDB

    % echo something<TAB>
    no matches: `file' or `parameter'

3 years agoAbandoned software downgrade fest
Sergey Matveev [Tue, 13 Jul 2021 19:38:13 +0000 (22:38 +0300)]
Abandoned software downgrade fest

http://fddvoron.name/aswdf/
Видео с ASWDF мероприятия: retro-computing и downgrading. Выглядит
клёво. В видео даже есть загрузка с настоящего магнитофона Спектрумовской
программы.

3 years agoBoxes утилита для рисования boxes
Sergey Matveev [Tue, 13 Jul 2021 15:05:07 +0000 (18:05 +0300)]
Boxes утилита для рисования boxes

https://boxes.thomasjensen.com/examples.html
https://boxes.thomasjensen.com/box-designs.html
В конфиге можно задать шаблон по которому будет рендерится обрамление.

3 years agoFictionBook2 в HTML
Sergey Matveev [Tue, 13 Jul 2021 12:17:19 +0000 (15:17 +0300)]
FictionBook2 в HTML

https://github.com/gribuser/fb2any
Почти все книги художественные я читаю на eBook аппаратном. Но иногда
нужно что-то найти/скопировать из них. MuPDF+Zathura можно использовать
для чтения FB2 (f5ac4628c014cc4c9fb43f7f15c6bd5cc211d24d), но... GUI, бе.
В репозитории fb2any есть разные XSL которые могут выдать HTML
(FB2_2_html.xsl) или текст (FB2_2_txt.xsl) вполне себе отличный.

3 years agoИстория изометрических видеоигр
Sergey Matveev [Tue, 13 Jul 2021 06:46:39 +0000 (09:46 +0300)]
История изометрических видеоигр

https://www.youtube.com/watch?v=fZC5Wy2jywI
http://feedproxy.google.com/~r/Old-games-ru-news/~3/JmYuEaQAYU8/
Помню что самая впечатляющая по графике игра на Спектруме у нас была
как-раз Knight Lore. Правда у меня в неё толком не получалось играть,
уж не помню почему.

3 years agoПросмотрел 3 сезона "Летающего цирка Монти Пайтона"
Sergey Matveev [Mon, 12 Jul 2021 19:49:27 +0000 (22:49 +0300)]
Просмотрел 3 сезона "Летающего цирка Монти Пайтона"

https://ru.wikipedia.org/wiki/%D0%9B%D0%B5%D1%82%D0%B0%D1%8E%D1%89%D0%B8%D0%B9_%D1%86%D0%B8%D1%80%D0%BA_%D0%9C%D0%BE%D0%BD%D1%82%D0%B8_%D0%9F%D0%B0%D0%B9%D1%82%D0%BE%D0%BD%D0%B0
От некоторых скетчей надрываю живот, некоторые не так сильно впечатляют,
бывают и те что я не понимаю. Но такого количества абсурдных идей я не
встречал! Мастера своего дела. Осталось посмотреть их фильм о "смысле жизни".
Вот правда их мультики меня не трогают и их я все проматываю.

3 years agoРазрешение версий ада зависимостей
Sergey Matveev [Mon, 12 Jul 2021 19:25:00 +0000 (22:25 +0300)]
Разрешение версий ада зависимостей

https://research.swtch.com/version-sat
Я знал что нахождение версии зависимости удовлетворяющей разным
требованиям других это непростая задача, но не ожидал что всё это
заканчивается в десятках систем вообще применением SAT solver-ов.

3 years agoTile-ы в деревьях Меркле
Sergey Matveev [Mon, 12 Jul 2021 18:58:58 +0000 (21:58 +0300)]
Tile-ы в деревьях Меркле

https://research.swtch.com/tlog
https://github.com/rsc/tlogdb
Описание устройства GOSUM сервиса хранения контрольных сумм модулей Go.
Интересная идея разбивать дерево на tile-ы и хранить только самые
"нижние" элементы tile-а, а все остальные высчитывая на лету --
существенная экономия места, чуть-чуть нагружая CPU.

3 years agogoproxy
Sergey Matveev [Mon, 12 Jul 2021 18:20:29 +0000 (21:20 +0300)]
goproxy

https://github.com/goproxy/goproxy
https://arslan.io/2019/08/02/why-you-should-use-a-go-module-proxy/
https://about.sourcegraph.com/go/gophercon-2019-go-module-proxy-life-of-a-query/
Попробовал сегодня поработать с этим простейшим GOPROXY демоном, в
котором даже main.go никакого нет -- вот насколько он минималистичен.
Супер простой, без проблем работающий. Для сетевых сборок как shared кэш
для зависимостей отлично подойдёт, тем более что отдавать он будет уже
готовые сжатые .zip-ы. И на днях осознал что его наличие полезно для
минималистичных машин, на которые не хотелось бы ставить git. Нужно тут
было на голой новой системе собирать goredo и другой Go софт -- благо
что я tarball-ы делал с vendor-директорией.

3 years agoNNCP баги и оптимизации
Sergey Matveev [Sun, 11 Jul 2021 19:18:35 +0000 (22:18 +0300)]
NNCP баги и оптимизации

http://lists.cypherpunks.ru/archive/nncp-devel/2107/0249.html
Один человек использует NNCP с Raspberry Pi и у него получилось
воспроизвести проблему с обрезанными пакетами и другой чертовщиной.
Выяснилось что 32-х битная система делает некорректные пакеты. Везде
старался делать int64 где может быть большой размер (например файла,
а не внутреннего буфера), но в самом важном месте, во время создания
шифрованного пакета -- был простой int, из-за которого могли получаться
или отрицательные значения размера или просто меньшие по размеру.
Поставил себе 32-х битную FreeBSD -- с новой версией всё исправилось.

Вообще я частенько про себя думаю что "ну кто ж будет то запускать и
использовать 32-бит софт на ПК"? Но RPi штука хорошо подходящая для NNCP
и распространённая в природе -- всё же не хочется забивать на подобную
платформу.

Ещё я начал было писать функциональные тесты на sharness, но забуксовал
на том, что конфиг в NNCP это Hjson, который хоть и может быть легко
преобразован в JSON, но как с ним работать то добавляя/удаляя/меняя
поля? jq (а точнее я сейчас использую gojq, jq удалил напрочь) позволит
прочитать поля, но не изменить что-то в дебрях внутри. Недавно узнал про
jo и gjo утилиты (40cb8a257f73cc02ea67ad7d50d6a5064ccda81b) и как раз к
месту пригодились и на них начал писать вот такие портянки:

    [...]
    idB=$(gojq .self.id $spoolB/cfg.json)
    exchpubB=$(gojq .self.exchpub $spoolB/cfg.json)
    signpubB=$(gojq .self.signpub $spoolB/cfg.json)

    cfgA=$(gjo \
        spool=$spoolA log=$spoolA/log \
        self=$(gjo id=$idA \
            exchpub=$exchpubA exchprv=$exchprvA \
            signpub=$signpubA signprv=$signprvA \
        ) \
        neigh=$(gjo \
            self=$(gjo id=$idA \
                exchpub=$exchpubA exchprv=$exchprvA \
                signpub=$signpubA signprv=$signprvA \
            ) \
            nodeB=$(gjo id=$idB \
                exchpub=$exchpubB exchprv=$exchprvB \
                signpub=$signpubB signprv=$signprvB \
            )
        )
    )

Вроде бы ужасно, но в принципе даже читаемо глазами вполне. Но до самого
теста дело всё равно так и не дошло, психанул, и добавил возможность
преобразовывать конфиг в директорию, полностью по аналогии что видел в
mlmmj (aac872add6b3defe52aef4d70dbb54a6fcddf973) где всё в виде простых
текстовых файлов, флаговых файлов и поддиректорий.
http://www.nncpgo.org/Configuration-directory.html
Это в тестах очень легко будет модифицировать. NNCP внутри себя может
сконвертировать эту директорию в JSON (точнее структуру аналогичную
после декодирования JSON), так же как и Hjson сначала конвертируется в
JSON. Ну и в принципе автоматизации это стало поддаваться, ибо мысль не
покидает о явном неудобстве списка подписантов multicast area
(ed3fd3765f912c43a16adf4f7032b851a447c695).

Плюс окончательно прооптимизировал реализацию MTH
(26d0fad8f0c8e523ec77c70dec244afc2c0e86e3). Старая осталась
исключительно как reference (можно вызвать через nncp-hash -force-fat).
А новая реализация значительно сократилась по коду, что меня удивило, и
потребляет только самый необходимый минимум памяти: как только
появляются элементы которые можно "схлопнуть" -- сразу хэшируются и
создают элемент более высокого уровня. И это применяется и к докачке тоже.
Думал что будет значительно всё сложнее, но нет.

3 years agoОтладка регулярных выражений
Sergey Matveev [Sun, 11 Jul 2021 10:48:57 +0000 (13:48 +0300)]
Отладка регулярных выражений

https://habr.com/ru/post/567106/
https://www.youtube.com/watch?v=zcSFIUiMgAs
Увидел статью на Хабре про регулярки. А я вот даже не вспомню когда
впервые ими начал пользоваться и впечатляли ли они меня так. Может быть
изначально я уже за DOS-ом пользовался globbing-ом и для меня они были
просто чем-то более мощным и продвинутым, но старой и знакомой темой? А
так как сейчас в командной строке DOS/Windows не часто пользователи
сидят, то и даже globbing-а не встречают в повседневной жизни?

Всюду и везде куча ссылок и советов на всякие online ресурсы для
парсинга регулярок. А я помню что видел некий инструмент для
визуализации и отладки регулярок. Не сразу нашёл, но даже есть видео от
автора его презентующее: Regexp::Debugger. Вместе с ним идёт rxrx
утилита для совсем уж интерактивной работы с RE.

Из коробки можно использовать: use re "debug", -mre=debug. А ещё есть
интерактивная утилита pcretest.

3 years agoВодяной компьютер Владимира Лукьянова
Sergey Matveev [Sun, 11 Jul 2021 09:39:19 +0000 (12:39 +0300)]
Водяной компьютер Владимира Лукьянова

https://www.amusingplanet.com/2019/12/vladimir-lukyanovs-water-computer.html
Именно этот "компьютер" я больше и дольше всего рассматривал в
Политехническом музее в Москве! Что-то есть тёплое и ламповое в нём...
хотя нет :-). А вообще в институте рассказывали про аналоговые счётные
устройства, которые в действительности применяются там где недопустимы
какие-либо задержки: не цифровые, но суммировать, перемножать, делить,
интегрировать же можно просто электрическим током.

3 years agoЗамена nbsp в Vim
Sergey Matveev [Sat, 10 Jul 2021 13:02:10 +0000 (16:02 +0300)]
Замена nbsp в Vim

Себе на заметку: для non-breakable space в Vim нету никаких
спецсимволов, но этот символ можно задать через Unicode код: s/\%ua0/ /

3 years agoОднобитная ошибка в Certificate Transparency логе
Sergey Matveev [Fri, 9 Jul 2021 19:59:14 +0000 (22:59 +0300)]
Однобитная ошибка в Certificate Transparency логе

https://www.agwa.name/blog/post/how_ct_logs_fail
Вот на практике bitflip запросто может встретится, и небось на
нормальном сервере с ECC памятью. А последствия катастрофичны:
append-only лог из цепочки хэшей после этого неюзабелен.

3 years agoРазмеры сборки Chromium
Sergey Matveev [Fri, 9 Jul 2021 15:36:15 +0000 (18:36 +0300)]
Размеры сборки Chromium

https://lists.dragonflybsd.org/pipermail/commits/2021-June/820334.html
Впечатляют! С отладочной информацией, при сборке LLVM 10-ым, пишут, что
конечная линковка занимает три часа, плюс потребляет 100GB места на
диске и 54GB памяти. А я думал что это Rust является нечто выдающимся
при сборке. Получается что я не смог бы ни на одном своём компьютере
отладочную версию собрать этого броузера. Человечество сходит с ума.

3 years agoTIMEFMT
Sergey Matveev [Fri, 9 Jul 2021 09:24:05 +0000 (12:24 +0300)]
TIMEFMT

По умолчанию встроенная time команда не показывает потребляемую память
процесса. По умолчанию сделал себе:
    TIMEFMT="user:%U sys:%S mem:%K/%M io:%I/%O %*E"
Возникла идея справа в строке приглашения отображать вывод time для
каждой команды. Но... что-то даже с поиском в Интернете не нашёл как бы
это сделать легко и просто.

3 years agoНезамужние женщины, почта, друзья, коллеги, сетикет, обиды
Sergey Matveev [Tue, 6 Jul 2021 20:19:32 +0000 (23:19 +0300)]
Незамужние женщины, почта, друзья, коллеги, сетикет, обиды

Забавно, но за последние тройку месяцев у меня со всех возможных сторон
куча информации/предложений о знакомстве с ищущими мужей девушками 30±
лет (знакомые знакомых, и тому прочее). Что меня даже до смеха удивило:
даже коллеги мужчины предлагали прислать свою фотографию, ибо у них есть
знакомые в активном поиске.

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

Как-то хотел было написать, как сильно задевает молчание в почтовой
переписке. Не долгие round-trip-ы (это то нормально), а когда люди
вообще просто ничего не отвечают. С одной стороны, я конечно понимаю что
почта и не обязывает к этому, особенно когда в письме нет явных вопросов
и просьб действий. Но ведь в обычной жизни, когда ты принял информацию и
услышал, то ты хотя бы киваешь, а если замечаешь что этот жест не
увидят, то хотя бы угукаешь. Почему это не относится к почте? В которой
нет гарантий/индикаций доставки. У меня это частенько к голове сводится
к тому, что человек хочет даже подчеркнуть насколько он тебя, как
собеседника, не уважает, что даже угукнуть не захочет. Ведь и в жизни
когда надо отделаться от назойливого собеседника, прибегают к этому
приёму игнорирования говорящего. Всё бы ничего, если речь про незнакомых
мне по жизни (реальной) людей, но вот молчаливые собеседники в жизни то
могут проявлять живой интерес и никакого неуважения. Диссонанс.
Банальное отсутствие сетикета у этих людей?

А девушки так вообще обожают эту практику по обрыванию общения. Мне
запомнились две в моей жизни, которым хотелось бы пожать руку: одна
чётко и ясно сказала "давай останемся друзьями", а вторая чётко и ясно
(у нас с ней было только одно свидание и недолгая переписка перед этим)
поставила перед фактом что у неё на работе появился сисадмин с которым
она на одной волне. Это всё ставит точку, но без обид, без недоговорок,
без непонятностей и тщетных надежд. А когда во время, как мне кажется,
самого разгара какого-то обсуждения девушка берёт и пропадает с
радаров... это жутко задевает, тем что я даже недостоин ответа из серии
"мне не интересно, давай прекращать этот бестолковый трёп"?

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

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

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

Но мне всё же не кажется что я настолько обидчивый, ибо если бы я
прислушивался ко всем оскорблениям и мнениям людей о себе, то давно бы
наверное покончил с собой, считая себя конченым гнилым паразитом в
обществе. Со временем понимаешь и узнаешь и получаешь подтверждения что
гниль из людей идёт в лёгкую, лишь бы только получить удовольствие от
успешных попыток задеть другого человека. А Интернет с его анонимностью
(чай не Фидо!) в лёгкую это позволяет осуществлять. Поэтому стараюсь
прислушиваться только к заслуживающим моего уважения достойным людям, а
остальное игнорировать (ведь и хорошие вещи могут говорить не из хороших
побуждений, или даже просто не искренне, или не разбираясь в
профессиональных вопросах и поэтому не дающих объективные оценки).

Но вот что у меня точно есть (было?), так это принимание очень близко к
сердцу. И вот ссоры и расставания я бы относил именно к этому. И
особенно это касается единственной девушки с которой были отношения.
Только примерно два года назад до меня самостоятельно дошло: какого
чёрта я вообще чего-то хотел и надеялся серьёзного от (на тот момент)
19-ти летней девицы, которая ещё и изменила? Некоторые только в институт
в этом возрасте поступают, а я там о семье планы строил какие-то. И меня
"отпустило". До этого момента, я 7 лет обязательно вспоминал хотя бы раз
в неделю о бывшей, при этом у меня были только одни чувства: обиды,
и наверное некой ненависти (когда как-то ничего положительного и
хорошего просто не вспоминается даже если напрячься), которые как будто
скручивают желудок. А когда до меня дошло, что просто глупо было что-то
серьёзное "строить", то даже перестал вспоминать про неё, а если и
приходит на ум, то уже без этой разъедающей желчи.

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

И возвращаясь к изначальной теме о внезапно появившейся куче незамужних
девушек "в поиске" -- даже хочется смеяться от попыток представить как
могут отшивать, таких как я, уже опытные 30± девушки. Банально страшно
что они могли бы сказать (или не сказать). Само собой речи ни о каких
попытках очередных знакомств уже идти не может, но толика любопытства
всё равно имеется. Либо это все девушки которые уже перешли в режим "а
лишь бы какой подошёл чмошник".

Хотя чисто по дружески общаться с ними на работе можно без проблем, типа
обычные люди. Но самую малость зайти за границы общения "как с мужиком",
то жди неприятного.

3 years agoПрочитал "Лабиринт отражений" Лукьяненко
Sergey Matveev [Tue, 6 Jul 2021 18:07:24 +0000 (21:07 +0300)]
Прочитал "Лабиринт отражений" Лукьяненко

https://ru.wikipedia.org/wiki/%D0%9B%D0%B0%D0%B1%D0%B8%D1%80%D0%B8%D0%BD%D1%82_%D0%BE%D1%82%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B9
Очень понравилась книга! Тема виртуальной реальности не нова, но тут она
такая простая и лаконичная: мол просто запуская особую программу,
человек переключает свой мозг на совершенно иной уровень восприятия,
хотя данные у него идут по дохлым простым аналоговым модемным линиям.
Можно сказать что даже никакой фантастики то особо в книге и нет: те же
самые Пентиумы, Windows, DOS и прочее. Но забавно слышать про то как
вирусы легко могут всё на свете разрушать и проникать -- хотя
большинство людей по фильмам (и вот таким книгам) так и считает ведь.
А ещё под конец книги упоминаются стримеры, диски Бернулли и
магнитооптика -- и тогда и сейчас далеко не каждый пользователь знает
что это всё такое.

3 years agoЦитата в info Texinfo
Sergey Matveev [Tue, 6 Jul 2021 08:36:16 +0000 (11:36 +0300)]
Цитата в info Texinfo

     Documentation is like sex: when it is good, it is very, very good;
     and when it is bad, it is better than nothing.  --Dick Brandon

3 years agoMulticast area в NNCP
Sergey Matveev [Sun, 4 Jul 2021 17:34:47 +0000 (20:34 +0300)]
Multicast area в NNCP

http://www.nncpgo.org/Multicast.html
http://www.nncpgo.org/Encrypted-area.html
http://www.nncpgo.org/Reliz-7_002e1_002e0.html
Реализовал крупную фичу в своём NNCP: полноценную multicast рассылку!
Ибо нравится мне идея эффективной рассылки файлов/писем без создания
каждому прекаждому копии пакета, как это в обычных почтовых рассылках
делалось бы. Нравится эффективность подхода в FidoNet эхопочты, фэх и,
видимо (никогда не пользовался), NNTP и Usenet новостей.

Мне нравится как я реализовал: обычный (file/exec) пакет помещается в
обычный зашифрованный пакет, но в котором получателем является multicast
area. Этот зашифрованный пакет оборачивается в обычный (plain) но с
типом "area" и идентификатором area в которую он посылается. А только
после этого он уже штатно помещается в обычный зашифрованный
отправляемый от ноды к ноде. Во время тоссинга, когда мы видим area
пакет, то плодим для каждого подписчика area по копии его содержимого.

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

И только после "обработки" всех подписантов, дешифруем пакет и
обрабатываем его содержимое. Причём, раз это Go, то функция обработки
пакета у меня на вход принимает io.Reader, поэтому абсолютно прозрачно
для неё данные берутся из на лету дешифруемого "внешнего" пакета и из
зашифрованного пакета который внутри area пакета.

Если приватного ключа от area нет, то значит будем только делать relay
multicast пакета, без попытки его самостоятельной обработки. Можно
включить разрешение на обработку пакетов (внутри area) с неизвестными
отправителями.

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

Чтобы отправить начальное сообщение, нужно множеству подписантов создать
исходящие зашифрованные копии area пакета (внутри которого ещё один
зашифрованный для area). Если тут где-то что-то упадёт, то будет плохо:
ведь оригинал (зашифрованный пакет в area) у нас уже будет утерян и мы
не сможем оставшимся подписантам дослать его копии. Нужно значит где-то
временно сохранить. Проблему даже не пришлось решать, ибо уже написанный
(на тот момент) код отлично справился с тем, что пакет можно отправить
самому себе, и тоссер запускать на свою собственную "tx" директорию. И
тоссер уже надёжно и гарантированно, пофиг как и сколько его прерывали,
создаст копии для каждого подписанта, а так как во время отправки самому
себе, уже будет создан .seen файл, то тоссер после создания всех копий
просто удалит этот пакет из self/tx директории. Из коробки готовое
перманентное хранилище для multicast пакета, к тому же зашифрованное (в
открытом виде никто нигде не видит заголовков area пакета),
автоматически очищаемое.

3 years agoIPv6 статья вдохновляет
Sergey Matveev [Sun, 4 Jul 2021 09:25:28 +0000 (12:25 +0300)]
IPv6 статья вдохновляет

https://habr.com/ru/post/565692/
Автор статьи про SLAAC и Wireguard, пишет, что вдохновился моей статьёй
"IPv6 -- прекрасный мир, стоящий скорого перехода на него"
(0f5ad7b8696ecca2b13dfb3c9dd4f2a2ae4cc614). Ну круто. Вот правда с ходу
я не понял проблематику его задачи и почему нельзя раздавать одну /64
сеть всем устройствам, пускай по разным WG-туннелям. Но я и не пытался
вдумываться и вчитываться ещё.

3 years agoDoom Eternal
Sergey Matveev [Sat, 3 Jul 2021 18:01:34 +0000 (21:01 +0300)]
Doom Eternal

https://en.wikipedia.org/wiki/Doom_Eternal
Внезапно узнал о том, что есть продолжение Doom серии игр. Чисто
визуально точно такой же Doom 4 (2016) (хотя это id Tech 7, а Doom4 это
id Tech 6), как будто ничего нового. Скачал playthrough, ещё до конца не
досмотрел. Сам не играл, поэтому сужу только по видео.

Я считаю что меня сложно удивить современными FPS-ами, но эта версия
Doom чуть ли не лучшее что я вообще видел! Такое ощущение что в ней
идеально всё. Богатая механика передвижений: должно бесить? Мы же не в
паркур игру и не платформер играем! Но, судя по playthrough это реально
добавляет богатства в игре. Дичайшее по ожесточению, скорости и
напряжению мочилово: я, будучи бывшим опытным Quake3 игроком, понимаю
что в этом Doom пришлось бы очень тяжело, адреналин бы бурлил. Время
боёв и не слишком коротко и не слишком затяжно. Области для боёв богаты
всякими jump-pad-ами и напоминают deathmatch как в Quake3, просто где
все против тебя. Нет нудных долгих областей, но есть и передышки.
Офигеннейшее музыкально сопровождение! Mick Gordon и для Doom4 сделал
отличное и многое тут осталось, но тут я гораздо больше и чаще замечаю
крутую атмосферу. Если начался электрогитарный рифф, то однозначно будет
крутейшее мочилово! Дико нравятся сами уровни как нарисованы! Отхождение
от "классики", да ну и чёрт с ней, ибо красиво, интересно, разнообразно,
не длится слишком долго. Выглядит так, что везде есть хороший баланс
амуниции и powerup-ов и весь бой выглядит как постоянный декремент
своего здоровья и брони, с постоянным инкрементом онных со стороны
убитых монстров.

За последние лет 10 меня наверное ещё только Prey 2017 заинтересовал
(d62cebfa50b82f8e2f859ce94ee9c78e44511ae2) и то это совершенно другой
жанр, из серии System Shock. Время от времени посматриваю на что
творится в мире FPS игр и совершенно всякие Call Of Duty или Battlefield
не прельщают. Wolfenstein тоже никак. FarCry вообще всегда параллелен был.

3 years agoПлата за прививки
Sergey Matveev [Sat, 3 Jul 2021 16:16:34 +0000 (19:16 +0300)]
Плата за прививки

https://lenta.ru/news/2021/07/03/privivki/
Очень мне не нравится что у нас, насколько понимаю, большинство людей
ничего не хочет делать по хорошему -- всё на свете хотят чтобы им
оплачивали (либо наказывали деньгами). Я вот только не пойму одного:
если кто-то боится чипирования, то за небольшую плату они готовы как
бараны ходить с чипом (по их мнению)? Если антипрививочники боятся то
что им сделают только хуже, то небольшая плата будет им достаточно чтобы
(по их мнению) они согласились угробить своё здоровье?

3 years agobfs вместо find
Sergey Matveev [Fri, 2 Jul 2021 18:20:30 +0000 (21:20 +0300)]
bfs вместо find

https://github.com/tavianator/bfs
В одном комментарии на Хабре к моей Mein Konfig статье
(a12e8f1010858df4a2d38e5cc7755355a318a1de) указали на bfs утилиту на
замену find. С того момента время от времени запускал её вместо, ведь
аргументы обратно совместимы, ну и использовал в fzf-касающихся
командах. Сегодня точно понял что bfs выдача действительно мне больше
нравится. Выдача find:

    /var/spool/nncp/
    /var/spool/nncp/tmp
    /var/spool/nncp/log.lock
    /var/spool/nncp/3DTEML5LFDYX76OZ634AM3Z2GX6SABXQHJ2AYQJLJD45G36QIUTA
    /var/spool/nncp/3DTEML5LFDYX76OZ634AM3Z2GX6SABXQHJ2AYQJLJD45G36QIUTA/toss.lock
    /var/spool/nncp/3DTEML5LFDYX76OZ634AM3Z2GX6SABXQHJ2AYQJLJD45G36QIUTA/area
    /var/spool/nncp/3DTEML5LFDYX76OZ634AM3Z2GX6SABXQHJ2AYQJLJD45G36QIUTA/tx
    /var/spool/nncp/3DTEML5LFDYX76OZ634AM3Z2GX6SABXQHJ2AYQJLJD45G36QIUTA/rx
    /var/spool/nncp/log.1.zst
    /var/spool/nncp/log.6.zst
    /var/spool/nncp/2WHBV3TPZHDOZGUJEH563ZEK7M33J4UESRFO4PDKWD5KZNPROABQ
    /var/spool/nncp/2WHBV3TPZHDOZGUJEH563ZEK7M33J4UESRFO4PDKWD5KZNPROABQ/rx.lock
    /var/spool/nncp/2WHBV3TPZHDOZGUJEH563ZEK7M33J4UESRFO4PDKWD5KZNPROABQ/tx
    /var/spool/nncp/2WHBV3TPZHDOZGUJEH563ZEK7M33J4UESRFO4PDKWD5KZNPROABQ/tx/6GZONRE2AHPZ4Y44DOY45PKPBFS4X4NNMYOU6GI6IVUOSYMG6HCQ.hdr
    /var/spool/nncp/2WHBV3TPZHDOZGUJEH563ZEK7M33J4UESRFO4PDKWD5KZNPROABQ/tx/6GZONRE2AHPZ4Y44DOY45PKPBFS4X4NNMYOU6GI6IVUOSYMG6HCQ
    /var/spool/nncp/2WHBV3TPZHDOZGUJEH563ZEK7M33J4UESRFO4PDKWD5KZNPROABQ/area
    /var/spool/nncp/2WHBV3TPZHDOZGUJEH563ZEK7M33J4UESRFO4PDKWD5KZNPROABQ/area/F4L5NO7766E7T7R234SXU4UMU6XEP3N4QRBUJENRLANGZHXYLI7A.seen
    /var/spool/nncp/2WHBV3TPZHDOZGUJEH563ZEK7M33J4UESRFO4PDKWD5KZNPROABQ/rx
    /var/spool/nncp/2WHBV3TPZHDOZGUJEH563ZEK7M33J4UESRFO4PDKWD5KZNPROABQ/toss.lock
    /var/spool/nncp/2WHBV3TPZHDOZGUJEH563ZEK7M33J4UESRFO4PDKWD5KZNPROABQ/tx.lock
    /var/spool/nncp/D4XP5NII36FG2PZHFI3NQTDPA7CYYNN7Z57EZEHKZ7UAI76VK4FA
    /var/spool/nncp/D4XP5NII36FG2PZHFI3NQTDPA7CYYNN7Z57EZEHKZ7UAI76VK4FA/rx
    /var/spool/nncp/D4XP5NII36FG2PZHFI3NQTDPA7CYYNN7Z57EZEHKZ7UAI76VK4FA/toss.lock
    [...]

и выдача bfs:

    /var/spool/nncp/log.6.zst
    /var/spool/nncp/2WHBV3TPZHDOZGUJEH563ZEK7M33J4UESRFO4PDKWD5KZNPROABQ
    /var/spool/nncp/D4XP5NII36FG2PZHFI3NQTDPA7CYYNN7Z57EZEHKZ7UAI76VK4FA
    /var/spool/nncp/second
    /var/spool/nncp/log
    /var/spool/nncp/SSJHQZP45ZVZKV7P4L4FOTMANACVFVAPB7R6R7WVJ4JZMWZ2TZ7A
    /var/spool/nncp/self
    /var/spool/nncp/BYRRQUULEHINPKEFN7CHMSHR5I5CK7PMX5HQNCYERTBAR4BOCG6Q
    /var/spool/nncp/gw
    /var/spool/nncp/PKTJQKU5M62LF3IND7JTPIJB5A45FSSQ7TEP4SGGT26RW4WAE76A
    /var/spool/nncp/log.0.zst
    /var/spool/nncp/log.3.zst
    /var/spool/nncp/log.4.zst
    /var/spool/nncp/log.5.zst
    /var/spool/nncp/log.2.zst
    /var/spool/nncp/FAMGVDUYPVUFK732PU6SP3SCSKBVEQ33DTUTMG4MSVH3EDEP3U5A
    /var/spool/nncp/3DTEML5LFDYX76OZ634AM3Z2GX6SABXQHJ2AYQJLJD45G36QIUTA/toss.lock
    /var/spool/nncp/3DTEML5LFDYX76OZ634AM3Z2GX6SABXQHJ2AYQJLJD45G36QIUTA/area
    /var/spool/nncp/3DTEML5LFDYX76OZ634AM3Z2GX6SABXQHJ2AYQJLJD45G36QIUTA/tx
    /var/spool/nncp/3DTEML5LFDYX76OZ634AM3Z2GX6SABXQHJ2AYQJLJD45G36QIUTA/rx
    /var/spool/nncp/2WHBV3TPZHDOZGUJEH563ZEK7M33J4UESRFO4PDKWD5KZNPROABQ/rx.lock
    /var/spool/nncp/2WHBV3TPZHDOZGUJEH563ZEK7M33J4UESRFO4PDKWD5KZNPROABQ/tx
    [всякая однотипная однообразная фигня]
    /var/spool/nncp/FAMGVDUYPVUFK732PU6SP3SCSKBVEQ33DTUTMG4MSVH3EDEP3U5A/rx
    /var/spool/nncp/2WHBV3TPZHDOZGUJEH563ZEK7M33J4UESRFO4PDKWD5KZNPROABQ/tx/6GZONRE2AHPZ4Y44DOY45PKPBFS4X4NNMYOU6GI6IVUOSYMG6HCQ.hdr
    /var/spool/nncp/2WHBV3TPZHDOZGUJEH563ZEK7M33J4UESRFO4PDKWD5KZNPROABQ/tx/6GZONRE2AHPZ4Y44DOY45PKPBFS4X4NNMYOU6GI6IVUOSYMG6HCQ
    /var/spool/nncp/2WHBV3TPZHDOZGUJEH563ZEK7M33J4UESRFO4PDKWD5KZNPROABQ/area/F4L5NO7766E7T7R234SXU4UMU6XEP3N4QRBUJENRLANGZHXYLI7A.seen

Конкретно в этом случае мне нравится что интересующие меня последние три
строки сгруппированы вместе. Ну и синтаксическая подсветка имени файла
мне тоже приятна.

3 years agoSolefald запись в Танзании
Sergey Matveev [Fri, 2 Jul 2021 10:36:31 +0000 (13:36 +0300)]
Solefald запись в Танзании

https://www.youtube.com/watch?v=3JKQ01YrIw4
Трэк с этим вступлением я хорошо знаю, но и не подозревал что он
записывался аж в Танзании. В чём, в чём, но в однообразии Solefald не
упрекнуть.

3 years agoДеревья Меркле в NNCP
Sergey Matveev [Wed, 30 Jun 2021 12:32:40 +0000 (15:32 +0300)]
Деревья Меркле в NNCP

http://www.nncpgo.org/Reliz-7_002e0_002e0.html
В новом релизе NNCP я наконец-то стал использовать деревья Меркле для
проверки целостности шифрованных пакетов. Как минимум, польза от этого
в том, что если мы докачали половинку файла, то прежде мы не могли
посчитать хэш файла без его полного чтения, хотя ведь половина файла
"прошла" через программу и данные мы видели. В NNCP реализация MTH
(Merkle Tree Hashing) имеет метод PrependFrom, который прочитает
недостающие данные до уже нам известных и увиденных.

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

3 years agoNivea средства
Sergey Matveev [Tue, 29 Jun 2021 16:33:37 +0000 (19:33 +0300)]
Nivea средства

Никогда бы прежде не подумал что у меня возникнут предпочтения в
средствах для бритья или каких-нибудь дезодорантов. Брал что попадётся,
вообще не обращая внимания на компанию. Потом уже просто визуально
выделял запомнившиеся мне флаконы/ёмкости и старался их брать. А недавно
я даже целенаправленно поехал в другой магазин, только из-за наличия там
предпочитаемых средств. И с удивлением заметил что все они от Nivea.

Ох уж эти немцы! Машины визуально нравятся, в первую очередь, их:
Mercedes, BMW, Audi. Звуковая техника (наушники и усилители для них):
вне конкуренции для меня тоже только от них (Beyerdynamic, Sennheiser).
Сколько музыки немецкой слушаю! А теперь даже, так сказать, косметика у
меня в предпочтении явном.

3 years agoКуча оптимизаций Vim скриптов
Sergey Matveev [Tue, 29 Jun 2021 09:13:15 +0000 (12:13 +0300)]
Куча оптимизаций Vim скриптов

https://www.arp242.net/effective-vimscript.html
Напоролся тут вот на такую статью и... понапеределывал свою .vim
директорию на diff в 500+ строк. Я всё же ужасно знаю и пишу на vimscript.

* К function можно добавить abort, чтобы при ошибках во время исполнения
  она останавливалась. Как set -e в shell. Как я без этого страдал!
* Не везде у меня присутствовали ограничители scope, чтобы не
  загромождался глобальный namespace
* set на setlocal в ftplugins я когда-то заменял. Но совершенно не
  обращал внимание на *map команды, которые тоже можно ограничить только
  буфером. Как и аббревиатуры
* У разных функций можно передавать код не в виде строчки (где помнить
  об экранировании и не иметь синтаксической подсветки), а в виде ссылки
  на функцию. Что может быть и лямбдой, что очень удобно
* Так как я могу запросто одновременно редактировать и Python и Go
  файлы, то всякие глобальные настройки помешают всему функционалу в них
  работать. Например мой Defsplit имел глобальную настройку
  используемого отступа. Переделал на то, чтобы это была переменная буфера
* Аналогично проделал с функцией печатающей значение LintStatus в
  statusline. Прежде я переопределял функцию в ftplugin скриптах. Теперь
  я ftplugin выставляю буффер-локальную переменную с ссылкой на функцию
  печати статуса lint -- теперь каждый буфер для разных типов файлов
  будет иметь свои работающие статусы

И главное изменение: я начал использовать autoload директорию. Не
понимаю почему я раньше просто игнорировал эту удобнейшую штуку! И
namespace удобный она создаёт и, самое главное, загружает всего лишь
один раз при первом использовании. Однократная ленивая загрузка. Плюс
исчезают проблемы когда нет возможности передать s:-scoped переменные во
многих местах. Плюс сам факт наличия autoload-функции использую для
проверки был ли скрипт загружен или нет (если нет, то делаю всякие *map
и command например). Удобнейший функционал!

Плюс я думал что тема с bracketed paste закрыта навсегда. Но
документация Vim, как будто, живёт своей жизнью и постоянно изменяется и
начинает содержать доселе неизведанные и неизвестные факты :help
xterm-bracketed-paste. Vim 8.2 из коробки понимает что это такое и
смотрит на настройки терминала для определения возможностей. У меня не
определяет (лень выяснять по какой причине, наверное описание screen
терминала не содержит ничего про xterm-специфичные вещи), но help
подсказывает тривиальное решение:

    let &t_BE = "\e[?2004h"
    let &t_BD = "\e[?2004l"
    exec "set t_PS=\e[200~"
    exec "set t_PE=\e[201~"

После которого вообще никаких скриптов и map-ов не нужно для работающего
bracketed paste.

3 years agoHome Networking Control Protocol
Sergey Matveev [Mon, 28 Jun 2021 15:09:57 +0000 (18:09 +0300)]
Home Networking Control Protocol

https://datatracker.ietf.org/doc/html/rfc7788
https://datatracker.ietf.org/doc/html/rfc7368
https://github.com/jech/shncpd
https://github.com/sbyx/hnetd/
Оказывается есть целый протокол (RFC) для согласования и настройки
домашних маршрутизаторов. Как и целый RFC 7368 для домашней IPv6 сети.

3 years agoMultiCast Discovery в NNCP
Sergey Matveev [Sat, 26 Jun 2021 17:47:04 +0000 (20:47 +0300)]
MultiCast Discovery в NNCP

http://www.nncpgo.org/MCD.html
В 6.6.0 релизе NNCP добавил возможность обнаружения хостов через
multicast рассылки. Поднял дома ещё одну машину, где хотел применить
NNCP, и сразу как-то стало неохота прописывать адреса в конфиги
остальных нод (хотя в любом случае их придётся менять, чтобы добавить
публичный ключ). Я ленив. Поэтому чтобы не писать лишнюю строчку, я
потратил несколько часов чтобы реализовать MCD.

Не стал заморачиваться с IPv4 и сделал просто рассылку по ff02::1 адресу
UDP пакетов на фиксированный порт. Исходящий адрес и порт будут
сигнализировать о том, где доступен демон. Внутри пакета XDR с
магическим заголовком и идентификатором ноды (хэш от публичного ключа).
nncp-caller слушает, ловит эти пакеты, добавляет в качестве
предпочтительных адресов для соединения. Следит за сроком жизни и
удаляет когда оповещения больше не приходят.

Можно сделать конфиги в которых вообще адреса не фигурируют, но при
любой сетевой доступности и ловле MCD оповещений они будут готовы
соединяться.

3 years agovared в zsh
Sergey Matveev [Sat, 26 Jun 2021 07:03:08 +0000 (10:03 +0300)]
vared в zsh

С прошлого года стал регулярно использовать vared команду для
интерактивного редактирования значения переменной. Когда временно что-то
надо подправить. Приятно что можно редактировать массивы, типа $path-а.

3 years agoПосмотрел "Ведьму из Блэр"
Sergey Matveev [Sat, 26 Jun 2021 06:52:25 +0000 (09:52 +0300)]
Посмотрел "Ведьму из Блэр"

https://ru.wikipedia.org/wiki/%D0%92%D0%B5%D0%B4%D1%8C%D0%BC%D0%B0_%D0%B8%D0%B7_%D0%91%D0%BB%D1%8D%D1%80
https://lenta.ru/news/2021/06/01/kingofhorror/
Прочитал что Стивен Кинг считает данный фильм самым страшным что он видел.
Ну вообще я ожидал большего от фильма, но в целом понравился: нет никакой
классической тупости с разбросанными кишками и внезапно выпрыгивающими
чудищами. Но страшно не было нигде -- всё же ужастики это точно не моё.
Вот какой-нибудь психологический триллер меня куда больше напрягает.
Но не могу не отметить ровно один момент, который был неожиданным и
наверное стрёмным: буквально последние секунды фильма, развязка. Вот
этот ход мне там понравился!

3 years agoCfilter
Sergey Matveev [Fri, 25 Jun 2021 15:37:53 +0000 (18:37 +0300)]
Cfilter

Когда-то я удивлялся почему нет встроенной функции типа grep по
результату quickfix списка. Очень часто хочется отфильтровать его
содержимое. Оказывается это есть из коробки в Vim 8.2, но в виде пакета:

    :packadd cfilter
    :Cfilter whatever

а ведь это в штатной документации по quickfix-у всё отмечено! Ну вот как
я этого не замечал когда нужно?

3 years agoПочему GNU grep на порядок быстрее BSD версии?
Sergey Matveev [Fri, 25 Jun 2021 15:06:58 +0000 (18:06 +0300)]
Почему GNU grep на порядок быстрее BSD версии?

https://lists.freebsd.org/pipermail/freebsd-current/2010-August/019310.html
Поясняет создатель оригинальной GNU версии.

3 years agogoredo интеграция с jobserver GNU Make и NetBSD bmake
Sergey Matveev [Fri, 25 Jun 2021 10:29:39 +0000 (13:29 +0300)]
goredo интеграция с jobserver GNU Make и NetBSD bmake

http://lists.cypherpunks.ru/archive/goredo-devel/2106/0031.html
Недавно зарелизил goredo с совместимостью с jobserver реализацией либо
GNU, либо NetBSD make (который используется по умолчанию и в FreeBSD).
Суть всех jobserver-ов (включая тот, что из коробки в goredo) одинакова:
pipe, который передаётся дочерним процессам, по которому гоняется
однобайтный токен (f6e7ce58418d4b6dbcbf28b31698f1b6830ca028). Вот только
способ передачи знаний о файловых дескриптора отличается: GNU и NetBSD
версии используют MAKEFLAGS переменную окружения, в которой отличающийся
формат опций.

Через REDO_MAKE переменную окружения можно указать какой вид передачи
"знаний" об этих файловых дескриптора goredo должен использовать. По
сути, то это просто выбор регулярки, которая найдёт два числовых
идентификатора файловых дескрипторов, и названий переменных.

Теперь, если используется и Make и redo, то количество worker-ов будет
совместно ограничиваться между ними. Причём, как запуская make под redo,
так и наоборот. Зачем? А почему бы и нет. apenwarr/redo поддерживает GNU
Make протокол. А goredo ещё и bmake-овый!

3 years agoАвтор GnuPG не рекомендует использование ключевых серверов
Sergey Matveev [Fri, 25 Jun 2021 10:23:39 +0000 (13:23 +0300)]
Автор GnuPG не рекомендует использование ключевых серверов

https://lists.gnupg.org/pipermail/gnupg-devel/2021-June/034889.html
Много лет назад на работе я пробовал поднимать ключевой сервер и мне это
не понравилось. Все реализации мне как-то не нравились, а та, что в
итоге выбрал, как-то не очень была устойчива к внезапной перезагрузке
компьютера. Можно сказать, что я поклонник WKD (web key discovery), хотя
мне и не нравится что он требует обязательного TLS. Но зато всё под
твоим контролем. Вот и Вернер Кох советует либо его, либо поднять LDAP
локальный.

3 years agoQuake speedrun отрендеренный в Blender
Sergey Matveev [Fri, 25 Jun 2021 10:14:09 +0000 (13:14 +0300)]
Quake speedrun отрендеренный в Blender

https://www.youtube.com/watch?v=uX0Ye7qhRd4
Давным давно мне запомнился speedrun Doom 2 за четверть часа:
https://www.youtube.com/watch?v=leVtfU5qNh0
А вот по Quake я ничего не видел прежде. За три минуты можно пройти весь
его первый эпизод, как оказалось, буквально ходя по голове босса.

3 years agoПопробовал distcc
Sergey Matveev [Fri, 25 Jun 2021 10:05:14 +0000 (13:05 +0300)]
Попробовал distcc

https://distcc.github.io/
Вместо использования обычного "cc" вызова, можно вызвать CC="distcc cc"
и распределить сборку Си проекта по машинам в сети. На машинах
запускается distccd демон (из коробки, правда, не умеющий слушать на
IPv6, но он дружен с inetd), настраиваются команды разрешённые к
применению, а на основной машине в переменной окружения можно добавить
их hostname, чтобы distcc пытался с ними связаться, передать
preprocessed исходный код и получить объектный файл в ответе.

Что-то тяжёлое я редко собираю, но хотелось бы чтобы при сборке LLVM
были задействованы два Xeon сервера. Но везде в идеале бы нужно иметь
точно такие же версии компиляторов, а у меня он на ноутбуке стоит в
~/local/stow. Так что пока не настолько я хочу ускорения чтобы
заниматься созданием build-кластера :-). Но проверил в jail-ах -- вроде
бы всё корректно собирается и отрабатывает. Когда буду обновлять свои
системы, собирая всю ОС из исходников, то надо будет попробовать это всё
задействовать.

3 years agoОбломался с туннельным IPsec режимом
Sergey Matveev [Fri, 25 Jun 2021 09:47:53 +0000 (12:47 +0300)]
Обломался с туннельным IPsec режимом

Попробовал вчера за NAT-ом соединить два strongSwan между FreeBSD
системами своими. Через 4500 UDP порт всё работает, соединяется без
правок в ядре, инкапсулированный ESP трафик оборачивается. Но вот у меня
не вышло обеспечить передачу IP-трафика между машинами. Сделал TUN
интерфейс, указав ему IP адреса которые должны ходить внутри туннеля. И
маршрут должен быть при этом автоматически ядру и оборачивать пакеты он
должен в ESP. На ноутбуке трафик принимается и на ping-и он отвечает,
всё как надо и как ожидается. А вот на сервере отправка трафика
происходит, enc0 интерфейс показывает приём дешифрованного ICMP ответа,
но он не "доходит" дальше никуда, ping команда в ответ ничего не
получает. Потратил часы, но даже примерно так и не смог выяснить и
понять в чём дело и куда девается успешно дешифрованный пакет. И это
ведь полностью одинаковые версии FreeBSD. Разница только в наличии
других сетевых интерфейсов и маршрутах -- как-то они чем-то влияют.
Надеюсь что это просто редкая бага в моей не самой современной FreeBSD.

3 years agoОпасность экстрадиции в США
Sergey Matveev [Fri, 25 Jun 2021 06:07:54 +0000 (09:07 +0300)]
Опасность экстрадиции в США

https://lenta.ru/news/2021/06/24/detention/
А я уже не первый год понимаю опасность попасть в тюрьму в США и того,
что куча стран-подкаблучников готова выдать кого угодно. Для меня
поэтому все страны НАТО уже давно закрыты для потенциального посещения,
как и всякие где я был прежде, типа Таиланда. С одной стороны: нафиг я
кому нужен, а с другой, я всё же работаю в подсанкционной организации,
имею допуск к секретным документам, учился на аэрокосмическом факультете
МАИ (не раз слышал, что с этим институтом и факультетом сложно получить
визу в США), чаще всего за границей был в Сирии, а также Иране, да и
дома у меня сувенир с Хезболлой, считающейся на Западе террористической
организацией. Плюс многолетняя практика торрентов нарушающих всякие DMCA
(тот же SciMag, https://habr.com/ru/post/557512/), враньё касательно
своего ПО на SourceForge (что оно, якобы, не имеет отношения к
криптографии). А ещё я не скрываю (мама говорила что врать не хорошо)
что свободно перемещаюсь по своей стране, регулярно посещая
подсанкционный для Запада Крым (но за это вроде не сажают, а только
могут отказать в визах).

3 years agoА Хабр действительно уже не тот
Sergey Matveev [Fri, 25 Jun 2021 05:59:13 +0000 (08:59 +0300)]
А Хабр действительно уже не тот

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

Ощущение что умение делать просто работающие web-сайты человечеством
утрачивается. Сейчас любой "redesign" и обновление сайта это значит всё
везде поедет (CSS), будет обмазано коряво и медленно (с точки зрения
задержек) работающим JS. Соревнование кто сможет сделать как можно менее
удобно, но не настолько чтобы люди сразу же распрощались с ресурсом.

Web-сайты уже не обновляют, их зачастую переделывают в web-приложения,
заточенные под работу в Google Chrome/Chromium.

3 years agoGoogle превратил человека в серийного убийцу
Sergey Matveev [Thu, 24 Jun 2021 19:39:36 +0000 (22:39 +0300)]
Google превратил человека в серийного убийцу

https://hristo-georgiev.com/google-turned-me-into-a-serial-killer
Статья на Wikipedia однофамильца не имеет фотографию. Но при поисковой
выдаче, Google показывает фотографию одного, а подпись под ней от
другого человека (убийцы). Вообще забавно вышло, как бы не тот факт, что
преобладающая часть современного поколения склонно доверять фактам в
выдаче Google, чем кому бы то ни было ещё. Манипулировать людьми сейчас
стало тривиально -- и это мнение знакомых которые относительно далеки от
технологий и они просто видят со стороны что люди слепо верят первым
трём ссылкам выдачи.

3 years agoМобильный кондиционер
Sergey Matveev [Thu, 24 Jun 2021 07:06:40 +0000 (10:06 +0300)]
Мобильный кондиционер

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

3 years agoПрочитал "Близится утро" Лукьяненко
Sergey Matveev [Tue, 22 Jun 2021 18:16:20 +0000 (21:16 +0300)]
Прочитал "Близится утро" Лукьяненко

https://ru.wikipedia.org/wiki/%D0%98%D1%81%D0%BA%D0%B0%D1%82%D0%B5%D0%BB%D0%B8_%D0%BD%D0%B5%D0%B1%D0%B0#%D0%91%D0%BB%D0%B8%D0%B7%D0%B8%D1%82%D1%81%D1%8F_%D1%83%D1%82%D1%80%D0%BE
Как и в прошлый раз (a0c27001a5fbfcc2e502732d285589186465a6c4), так уж
вышло, что прочитал вторую книгу из серии. В общем и целом, выходит что
мне нравится как Лукьяненко пишет -- пускай и довольно многословно, но
детально всё описывает, точно воссоздавая и визуализируя в голове
написанное. И нравится когда всё идёт довольно линейно, перемещаясь от
страны к стране, как в квестах от локации к локации, не возвращаясь в
них назад (типа Гоблинов). По началу я всё не мог понять в какое время
происходит действие книги и вообще в реальном ли мире. Что-то
пересекается и отсылается к настоящей истории. Что-то явно из XX века, а
что-то явно не дотягивает. Ну уже потом дошло что это то, что называют
"альтернативной историей".

3 years agoПрочитал "Двери в песке" Желязны
Sergey Matveev [Tue, 22 Jun 2021 18:11:16 +0000 (21:11 +0300)]
Прочитал "Двери в песке" Желязны

https://ru.wikipedia.org/wiki/%D0%94%D0%B2%D0%B5%D1%80%D0%B8_%D0%B2_%D0%BF%D0%B5%D1%81%D0%BA%D0%B5
Ну что ж, Желязны реабилитирован в моих глазах с момента прочтения
предыдущей книги (1191fa097b65a73db47ed1a71dc4ba05cc54f42c)! Очень
понравилась эта книга: прям вся такая бурная и активная, постоянно
какая-то движуха и интересные идеи, плюс юмор местами чем-то
напоминающий "Автостопом по галактике". Вчера и сегодня пропустил
даже свою маршрутку назад домой, дабы лишние четверть часа прочитать
побольше и до конца.

3 years agoЖенщины на рулём
Sergey Matveev [Tue, 22 Jun 2021 18:01:20 +0000 (21:01 +0300)]
Женщины на рулём

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

Без преувеличений, но в 100% случаев за всю мою жизнь, когда я почти
оказывался под колёсами или когда задевал носом проносящуюся машину: во
всех случаях за рулём были не мужчины. Если бы где собирали подписи
чтобы запретить им садиться за руль автомобиля, то я бы подписал, с
чистой совестью, ибо вижу как они "по правилам" ездят и как особенно
срать хотели на пешеходов, даже когда с десяток машин стоят на
светофоре. Почему? Потому что в рулём королевишны и это нормально что
она одна по дороге несётся, а холопы в округе обязаны стоять.

У меня теперь так много объясняется касательно женщин их "королевским"
воспитанием! Удобно.

3 years agoTelegram vs Moxie
Sergey Matveev [Tue, 22 Jun 2021 08:51:58 +0000 (11:51 +0300)]
Telegram vs Moxie

https://news.ycombinator.com/item?id=6916860
Оказывается на HackerNews есть "представители" Telegram и ответ Moxie
Marlinspike касательно безопасности их криптографии. Ничего нового, но в
очередной раз видно что они не могут не подчеркнуть что "у нас 6
победителей ACM, Ph.D in math". И они два года изобретали MTProto? Я уж
подробности MTProto не помню, но там они даже RSA padding использовали
свой, а не OAEP какой-нибудь. Как-будто создатели протокола просто не в
курсе разработок в криптографии за последние десятилетия были.

3 years agoJPEG XL Тьюринг-полный
Sergey Matveev [Tue, 22 Jun 2021 06:22:33 +0000 (09:22 +0300)]
JPEG XL Тьюринг-полный

https://dbohdan.com/wiki/jpeg-xl
С одной стороны он Тьюринг полный, но с другой, он работает в 1024x1024
границах, поэтому вряд ли можно расценивать это как потенциальную
проблему безопасности.

3 years agoХабра больше не будет?
Sergey Matveev [Tue, 22 Jun 2021 06:19:44 +0000 (09:19 +0300)]
Хабра больше не будет?

https://habr.com/ru/post/563956/
Пишут что в каком-то новом интерфейсе Хабра всё плохо. Про это ничего не
могу сказать, но вот когда я публиковал прошлую статью, то пользовался
старым редактором, тогда как новый, в моём shiny pluginless Firefox на
отдельной машине -- не отобразился совсем. Это один из последних ESR
версий которая ещё не требовала Rust -- уже вот не отображает ничего,
как, кстати, и файлы на gitlab.com.

3 years agogoredo 1.5.0
Sergey Matveev [Mon, 21 Jun 2021 13:49:26 +0000 (16:49 +0300)]
goredo 1.5.0

http://lists.cypherpunks.ru/archive/goredo-devel/2106/0026.html
Выпустил новую версию goredo. Я вообще не использую ни redo-ood,
redo-sources и redo-targets команды, но попробовал быстренько
реализовать идею с указанием чётко заданных целей для этих команд.
Пока возился с этим, то в redo-sources добавил рекурсивный проход
по всем зависимостям чтобы собрать все файлы "исходного" кода и
понять полную картину зависимостей -- на какие изменённые файлы
данная цель "отреагирует". В рабочем проекте видно что, очевидно,
флаги сборки TAI библиотек повлияют на весь процесс

    % redo-sources src/zero.o
    conf/cmd/default.do
    conf/cmd/list
    conf/flags/common.rc.do
    conf/flags/dmalloc.rc.do
    conf/flags/mutex.pthread.rc
    conf/flags/mutex.rc.do
    conf/flags/pc.list
    conf/flags/tai.rc.do
    conf/fn2env.sh
    conf/methods.do
    conf/vars.do
    conf/vars.list.do
    config
    src/zero-bzero.c
    src/zero.h
    src/zero.o.do

    % cd src ; redo-sources mlock.o
    ../conf/cmd/default.do
    ../conf/cmd/list
    ../conf/flags/common.rc.do
    ../conf/flags/dmalloc.rc.do
    ../conf/flags/mutex.pthread.rc
    ../conf/flags/mutex.rc.do
    ../conf/flags/pc.list
    ../conf/flags/tai.rc.do
    ../conf/fn2env.sh
    ../conf/methods.do
    ../conf/vars.do
    ../conf/vars.list.do
    ../config
    cricksdt.d
    cricksdt.h.do
    dtrace-dummy.pl
    err.h
    log.h
    mlock-posixrt.c
    mlock.h
    mlock.o.do

Причём сама сборка делается выполняя conf/cmd/cc команду (gcc, cc, и т.д.).
Которой здесь нет -- ибо она не является исходным кодом, а зависит от
conf/cmd/default.do и conf/cmd/list целей, занимающихся автодетектом команд.

3 years agoПосмотрел "Манхэттен" Вуди Аллена
Sergey Matveev [Mon, 21 Jun 2021 08:03:35 +0000 (11:03 +0300)]
Посмотрел "Манхэттен" Вуди Аллена

https://ru.wikipedia.org/wiki/%D0%9C%D0%B0%D0%BD%D1%85%D1%8D%D1%82%D1%82%D0%B5%D0%BD_(%D1%84%D0%B8%D0%BB%D1%8C%D0%BC)
Очень понравился! Обожаю режиссуру Аллена и его приёмы. Обожаю его как
актёра, его манеру выражаться и вести себя. Обожаю его юмор.

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

Пишут что это типа лучший его фильм. Он однозначно хороший, один из
лучших что я видел, но... Энни Холл для меня бесспорно лучше во всём.
Одна Да́йана Ки́тон чего стоит в этом фильме! Ну и гораздо больше
рассуждений, юмора, режиссёрских трюков.

3 years agoДоверие к весам
Sergey Matveev [Sun, 20 Jun 2021 17:08:01 +0000 (20:08 +0300)]
Доверие к весам

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

3 years agoMutt, List Management Menu, Maildrop
Sergey Matveev [Fri, 18 Jun 2021 14:35:39 +0000 (17:35 +0300)]
Mutt, List Management Menu, Maildrop

http://www.mutt.org/relnotes/2.1/
В новой версии Mutt появилось меню для действий связанных с почтовой
рассылкой. Он должен парсить заголовки и предлагать всякие List-* действия.
Заметил что у меня в основном ничего не работает (меню не показывается),
а на некоторых писем всё хорошо. Разбирался с заголовками (может формат
не такой) -- не помогает. Пересобрал Mutt с отладочной информацией, lldb
=mutt, breakpoint на имя функции, увидел что на "From " (From_) строке
парсинг RFC822 заголовков падает. Действительно, это mbox-style
заголовок. Но, при перемещении средствами Mutt письма в другой почтовый
ящик, этот заголовок пропадает, делая всё сообщение RFC822 валидным и с
работающими List-* заголовками и меню.

В Postfix на сервере, действительно, стоит настройка добавления From_ к
сообщениями поступающим в NNCP транспорт. Убрал, не помогло. Выяснилось
(точнее забылось), что почта у меня доставляется через "local" демон,
который самостоятельно насильно добавляет этот From_ заголовок. А
maildrop явно в man говорит что он не поддерживает это и, пожалуйста,
удаляйте. Сделал такую доставку писем:
    mailbox_command = /usr/local/bin/reformail -f0 |
        /usr/local/bin/maildrop -d ${USER}
Теперь сообщения в Maildir не являются mbox почтовыми ящиками. Я давно
замечал этот From_, но не придавал значения, думал что всё работает.

3 years agoMein Konfig
Sergey Matveev [Fri, 18 Jun 2021 07:42:53 +0000 (10:42 +0300)]
Mein Konfig

https://habr.com/ru/post/563426/
https://habr.com/ru/post/563428/
Чем заняться на выходных в День России? Забацать какую-нибудь статью!
Так уж совпало, что перед этим я несколько статей видел из серии "как я
работаю", "какой мой workflow" и тому подобных. Описал своё рабочее
окружение. То ли Хабр, то ли броузер у меня не в состоянии загрузить
такой объём текста, но пришлось поэтому разбить на две части.

3 years agoSnapshot-ы блочных устройств в Linux
Sergey Matveev [Thu, 17 Jun 2021 08:52:53 +0000 (11:52 +0300)]
Snapshot-ы блочных устройств в Linux

https://habr.com/ru/company/veeam/blog/563056/
Статья предлагает использовать LVM для создания бэкапов. Хорошо. Но где
же команды и намёки на то, как сделать заморозку состояния файловой
системы? Типа xfs_freeze. Статья из серии вредных советов, ведь вполне
себе не нулевая вероятность что образ машины сделанный таким образом
потом вообще не загрузить, ведь куча не синхронизированных данных на
момент создания snapshot могла быть в памяти и с точки зрения файловой
системы такой бэкап является выдёргиванием шнура питания из компьютера.
Это если речь идёт про создание бэкапа на горячей работающей системе.
Btrfs дамп snapshot-а то как-раз должный и хороший способ.

3 years agoПрочитал "Глаз Кота" Желязны
Sergey Matveev [Thu, 17 Jun 2021 07:41:01 +0000 (10:41 +0300)]
Прочитал "Глаз Кота" Желязны

http://www.lib.ru/ZELQZNY/eye_cat.txt
Не понравилась книга, дочитал уж просто потому что начал.
Скучно и сложно читать, куча какой-то индейской мистики.

3 years agoДэвид Линч сам не понял сюжета "Малхолланд Драйв"
Sergey Matveev [Tue, 15 Jun 2021 14:20:33 +0000 (17:20 +0300)]
Дэвид Линч сам не понял сюжета "Малхолланд Драйв"

https://lenta.ru/news/2021/06/15/mlhdrv/
Фух... теперь я спокоен, ибо сам Линч тоже ничего не понял :-).
Но картина мне всё равно понравилась. Не скрою что пара обнажённых
девиц не последнюю очередь в этом сыграла.

3 years agoGreg Kroah-Hartman советует BSD
Sergey Matveev [Mon, 14 Jun 2021 13:56:41 +0000 (16:56 +0300)]
Greg Kroah-Hartman советует BSD

https://old.reddit.com/r/linux/comments/2ny1lz/im_greg_kroahhartman_linux_kernel_developer_ama/
В 5b0eaa9eaff24f3d5cd0bf298f3a345ecc9d9687 я уже читал его "ask me
anything", но не заметил:

    > What's your thought on the BSD Kernel? Is there anything they do
      that you wish the Linux kernel did?
    < I love the BSDs, they have some great code and developers. If that
      operating system works for you, great, use it!

Если вам BSD подходит, то используйте! Я понимаю что ответ то на самом
деле про то что: используй что нравится, но я для себя его притягиваю за
уши, потому что большинству людей BSD подойдут, и Грэг считает что надо
использовать в этом случае :-)

3 years agoСнова про экспедицию Амундсена и Скотта
Sergey Matveev [Mon, 14 Jun 2021 10:55:58 +0000 (13:55 +0300)]
Снова про экспедицию Амундсена и Скотта

https://habr.com/ru/company/macloud/blog/562514/
Короткое и ясное сравнение двух экспедиций. И, в очередной раз, вся суть
англосаксов (4c660342d43e67b16ad885bf395b04042f1f2eee): Скотт пришёл
вторым (звучит!), Амундсен предпоследним (звучит как никогда принижающе).

3 years agoПлохое поведение zsh-autosuggestions
Sergey Matveev [Sun, 13 Jun 2021 15:22:23 +0000 (18:22 +0300)]
Плохое поведение zsh-autosuggestions

Обновил недавно этот плагин (git pull) и заметил что теперь приходится
нажимать Up по два раза чтобы путешествовать по истории. Плюс не всё
показывается из неё. Явно это что-то совершенно неладное творится.
Откатился до предыдущей v0.6.4 версии.

3 years agoНужно начать улучшать web-сайт suckless.org
Sergey Matveev [Fri, 11 Jun 2021 09:25:13 +0000 (12:25 +0300)]
Нужно начать улучшать web-сайт suckless.org

http://lists.suckless.org/dev/2106/34335.html
Очень понравились хорошо объяснённые предложения по улучшению и
популяризации сайта этого проекта:

    I think the suckless website could do with some updating. I think suckless
    has potential, but people are turned off by the old website. Using a more
    modern website built with a modern framework like React or VueJS could
    probably solve a lot of its problems.

    Some of the problems:

    1. I am able to find most information by using the clearly labelled menu
       items. This is very boring! A good website makes users search for the
       content they want, this is more fun and drives engagement.

    2. I am unable to find a mobile app for either iOS or Android? Is there a
       suckless mobile app? You really can't afford to NOT have a mobile app
       these days.

    3. Because the website is written in plain language with relevant and
       useful content the SEO score is very low. You can add some more
       critical keywords as a quick fix, but personally I would recommend some
       larger changes, such as renaming "software that sucks less" to "Is it
       true that software can suck less? We compiled 7 reasons why it could!"

       Other content that could be added are blog posts, for example "How
       suckless' minimalism can help your relationship with your dog", or "Six
       different ways suckless can get you laid", "Why Linus Torvalds says he
       HATES suckless", "Does using suckless mean you're a beta cuck?", etc.
       The most important part is a title that will either 1) confirm people's
       preconceived notions, or 2) outrage people. Most people don't read the
       article so that's not very important, as long as it uses many keywords.
       It's also important to post this on at least 46 subreddits, Hacker
       News, Lobste.rs, etc. Don't worry if it may be on-topic or not, with
       some luck it will slip past the moderation because your incendiary
       title will drive engagement. You can always create a new account if you
       get banned.

    4. Suckless.org currently has a score of 100 on Google PageSpeed. This is
       far too high. The homepage loads in about 200ms for me, far too fast
       too. Slower load times increases frustration of users, and more
       emotional users drive greater engagement.

    5. It doesn't ask to send me notifications at all. As a user, I feel
       undervalued and ignored. Please, ask for notifications and send me a
       notification every time something important happens, such as mailing
       list posts, or other important events such as a suckless developer
       breaking wind. I absolutely need to know about this without any delay

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

3 years agoТорвальдс об антипрививочниках
Sergey Matveev [Fri, 11 Jun 2021 09:18:58 +0000 (12:18 +0300)]
Торвальдс об антипрививочниках

https://lkml.org/lkml/2021/6/10/957
https://www.opennet.ru/opennews/art.shtml?num=55315
Линус вежливо ("...SHUT THE HELL UP...") попросил прекратить лютый бред
сивой кобылы в рассылке о прививках. Я, честно, был удивлён тому что
оказывается всё это мракобесие дошло до того, что прививки считают
генетическим экспериментом, изменяющим нашу ДНК, для создания новой
расы людей.

3 years agoExamples в man-е для xclip
Sergey Matveev [Fri, 11 Jun 2021 08:06:01 +0000 (11:06 +0300)]
Examples в man-е для xclip

    EXAMPLES
           I hate man pages without examples!

3 years agoAngel of Death
Sergey Matveev [Thu, 10 Jun 2021 19:40:31 +0000 (22:40 +0300)]
Angel of Death

https://www.youtube.com/watch?v=9VebUUenm_Y
https://www.youtube.com/watch?v=s3Vzh7Q17zc
https://www.youtube.com/watch?v=nco6FRXYLsU
Услышал я тут кавер Debauchery на Angel Of Death группы Slayer. К Slayer
всегда был равнодушен как-то, но и не пытался слушать. Заценил их
сборник хитов весь. На концерт можно бы было сходить. Но вот Angel Of
Death прям как-то для меня сильнее всех выделяется и уже который день
крутится в голове. Идеальная композиция для бошкотряса, слэма или стены
смерти -- идеальный темп! Звучит очень просто и незатейливо, да,
впрочем, как и всё у Slayer, но не выходит из головы. И ведь это уже
было на альбоме 1986-го года! Вот чего мне точно не прёт в их группе,
так это вокалист -- всё же для их музыки нужен гроул.

3 years agoI'm gonna be your dog
Sergey Matveev [Thu, 10 Jun 2021 17:22:54 +0000 (20:22 +0300)]
I'm gonna be your dog

https://www.youtube.com/watch?v=Uy2-5uDpu5Q
https://www.youtube.com/watch?v=SMNFOf-YgTY
Трэк от Stooges я, как будто, знаю наизусть, из-за фильма Гая Ритчи, в
котором я его слышал столько раз. Оказывается у Slayer есть кавер на эту
песню, только с названием "I'm gonna be your god".

3 years agoСходил на свадьбу на конной базе Аванпост
Sergey Matveev [Mon, 7 Jun 2021 11:24:15 +0000 (14:24 +0300)]
Сходил на свадьбу на конной базе Аванпост

http://bezpovoda.ru/
Целый день провёл на не совсем "классической" свадьбе.

Стреляли и ружей, из лука, метали ножи, учились пользоваться лассо,
смотрели как пользуются кнутом. Катались верхом на лошадях (я впервые),
самостоятельно ими управляя.

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

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

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

Ну и вкусно хорошо готовят, в том числе и торты ручной работы. В общем
все остались очень довольны, клёвая и необычная была свадьба!

3 years agoРаботы на Hexcore VPS
Sergey Matveev [Mon, 7 Jun 2021 11:11:51 +0000 (14:11 +0300)]
Работы на Hexcore VPS

С пятницы по субботу Hexcore московская площадка переезжала в другой
датацентр. И до сих пор IPv6 ещё не работает у них. Честно говоря, уже
мне совсем не нравится их отношение к своей сетевой доступности. Часть
Интернета работает, а часть (IPv6, который уже треть всего трафика
Интернета глобально составляет) -- мол фиг с ней, подождут пользователи.
У меня то поверх IPv6 прилично всего работает, ибо IPsec с IPv4 мизерным
кол-вом адресом не шибко здорово использовать.

Плюс ISO образы через их панель управления не загружаются, пароль не
сбрасывается через эту же панель в самой виртуальной машине. Поддержка
сказала что по какой-то причине, мол, "guest tools" не отрабатывают.
Бегло посмотрел что это такое, вижу что множество скриптов с "#!/bin/bash",
хотя в системе никакого bash нет (это ж FreeBSD), и наверное из-за этого
эти утилиты и не работают.