]> Sergey Matveev's repositories - stargrave-blog.git/log
stargrave-blog.git
2 months agoОщутимо иначе стал воспринимать death метал
Sergey Matveev [Tue, 2 Apr 2024 14:56:41 +0000 (17:56 +0300)]
Ощутимо иначе стал воспринимать death метал

Помню что меня не то чтобы впечатляли многие death metal группы. Больше
любил грайндкорчик и горграйндчик. И когда говорили про приезжающих
монстров death metal, то я конечно на многих из них ходил, но не то
чтобы это запоминалось. А тут за последние дни много альбомов Avulsed,
Decapitated, Deicide, Deranged, Devourment, Dying Fetus, Morbid Angel,
Mortician, Putrid Pile, Wormrot прослушал и прям тащусь от большинства
из них. Сейчас мне именно подобного хочется поставить, чем грайнду. Да
кардинальное изменение с (b1131e9ec315c349c3d299b9cdd4fbbca598dda6)
Cryptopsy не забуду. А black-а прежде я слушал ещё меньше чем death.
Сейчас же совсем наоборот.

2 months agoMagic Security Dust
Sergey Matveev [Mon, 1 Apr 2024 18:18:04 +0000 (21:18 +0300)]
Magic Security Dust

https://shostack.org/magic-security-dust
https://www.schneier.com/blog/archives/2024/04/magic-security-dust.html
Революционное решение для того, чтобы делать вещи безопасными by design.
В ролике снялся сам Брюс Шнайер, заявляя что там где он использовал эту
пыль, то security theatre пропал. Продаётся там же, где и snake oil.

2 months agoFLIP протокол
Sergey Matveev [Mon, 1 Apr 2024 17:52:46 +0000 (20:52 +0300)]
FLIP протокол

https://www.rfc-editor.org/rfc/rfc9564.html
Faster than LIght speed Protocol, использующий ChatGPT, может
предсказывать какие пакеты должны прибыть, делая канал связи
быстрее чем скорость света.

2 months agoДальнейшие приключения с gmail.com
Sergey Matveev [Mon, 1 Apr 2024 08:26:54 +0000 (11:26 +0300)]
Дальнейшие приключения с gmail.com

В 67c58801e7f5cd763f98639317494484493e4774 писал, что IPv6 SMTP трафик
после какого-то времени установления (кол-ва пакетов?) TCP соединения
перестаёт ходить со стороны подключающегося. На выходных убрал IPv6
адрес из DNS-а для входящего почтового сервера, оставив только IPv4. И
почта с gmail.com стала ходить. То есть, как минимум, это говорит о том,
что SMTP трафик по IPv4 никто не режет и это Google даже не пытается по
нему подключаться.

Добавил ещё один MX сервер, у которого только IPv4 есть адрес, надеясь,
что Google хотя бы будет пытаться ротировать список MX серверов для
попыток доставки. Но нет -- вижу что никаких попыток достучаться до IPv4
снова нет.

В голову ничего не приходит, кроме как: 1) забить и считать что
gmail.com связь невозможна, из-за кого на магистралях режущих IPv6
трафик. 2) убрать возможность доставки по IPv6. 3) drop-ать
самостоятельно трафик от gmail.com, чтобы он считал что этот IPv6 точно
так же как и mailfake[01].stargrave.org недоступны. 1) -- не очень
приятно, ибо люди на gmail.com имеются, хоть и не большинство. 2) точно
нет, регресс снова в каменный век?

3) сработал как и ожидалось:

    drill _spf.google.com TXT
    "v=spf1 include:_netblocks.google.com include:_netblocks2.google.com ... ~all"
    drill _netblocks2.google.com TXT
    "v=spf1 ip6:2001:4860:4000::/36 ip6:2404:6800:4000::/36 ... ~all"

    ipfw table google-mail create type addr
    tableadd google-mail 2001:4860:4000::/36
    tableadd google-mail 2404:6800:4000::/36
    tableadd google-mail 2607:f8b0:4000::/36
    tableadd google-mail 2800:3f0:4000::/36
    tableadd google-mail 2a00:1450:4000::/36
    tableadd google-mail 2c0f:fb50:4000::/36
    $add deny tcp from "table(google-mail)" to "table(mein)" smtp

Увидел drop пакетов, а дальше увидел попытку соединения по IPv4, по
которой почта прошла.

2 months agoBackdoor в XZ
Sergey Matveev [Sat, 30 Mar 2024 06:21:08 +0000 (09:21 +0300)]
Backdoor в XZ

https://dataswamp.org/~solene/2024-03-30-lessons-learned-xz-vuln.html
https://www.opennet.ru/opennews/art.shtml?num=60877
https://www.openwall.com/lists/oss-security/2024/03/29/4
https://www.linux.org.ru/news/security/17567724
https://lwn.net/Articles/967180/
В tarball-ах новых версий XZ был сделан backdoor. Касается это правда
только систем с systemd, где OpenSSH собран с патчем для systemd.

2 months agogmail.com перестал до меня ходить
Sergey Matveev [Fri, 29 Mar 2024 20:47:19 +0000 (23:47 +0300)]
gmail.com перестал до меня ходить

Пару недель назад обнаружилось, что почта по IPv6 не ходила до меня.
Дело было в VPS (db38f36c737212f4ec8e82a82acf96586b56ea3b). Ну точнее он
говорил что он ничего не делает, так что били/резали трафик где-то и вне
него возможно. Перенёс приём писем через другой VPS, с другой IP сетью.
И всё начало ходить без проблем.

Пока мне сегодня даже не позвонили и не сообщили что сегодняшние письма
с @gmail.com не дошли, нет от меня ответа. Увидел в логе, что точно так
же как и на прошлом VPS, связь рвётся после STARTTLS. Но ни с кем больше
такого не происходит, хотя у меня преобладающая часть почты через IPv6
принимается (всякие рассылки).

Причём до переезда, когда всё резалось, все всё равно делали fallback до
IPv4 адреса и, пускай и с задержкой, но почта доставлялась. А gmail.com
вообще не пытается по IPv4 сходить. Либо его режут и я не вижу попыток.

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

И что удивительно, но от меня то по IPv6 (судя по логам) письмо на
gmail.com отправилось. Снова односторонняя связанность какая-то.

В общем... gmail.com до меня по каким-то там сетевым ТСПУ/whatever,
больше не ходит. Я знал что проблемы с почтой начнутся с Google, но
думал что именно с их стороны.

2 months agoОтлично работается под Jungle Rot
Sergey Matveev [Thu, 28 Mar 2024 19:44:35 +0000 (22:44 +0300)]
Отлично работается под Jungle Rot

https://en.wikipedia.org/wiki/Jungle_Rot
В США в целом не то чтобы густо с стоящим металлом (его много, но крутых
стоящих не шибко), а про Jungle Rot я знаю давно. Сегодня почти целый день
он в наушниках. Простая, незатейливая, ритмичная музыка отлична для работы.

2 months agoВ чём проблема работать с файлами?
Sergey Matveev [Thu, 28 Mar 2024 09:54:09 +0000 (12:54 +0300)]
В чём проблема работать с файлами?

https://habr.com/ru/articles/803347/
https://lwn.net/Articles/752093/
https://research.cs.wisc.edu/wind/Publications/sfa-dsn05.pdf
https://pages.cs.wisc.edu/~laksh/research/Bairavasundaram-ThesisWithFront.pdf
https://elinux.org/images/b/b6/EMMC-SSD_File_System_Tuning_Methodology_v1.0.pdf
https://www.cs.utexas.edu/~bornholt/papers/ferrite-asplos16.pdf
https://www.usenix.org/system/files/conference/osdi14/osdi14-paper-pillai.pdf
Много интересной информации об особенностях работы с файлами. В основном
речь про целостность и консистентность данных на ФС. Упоминаются различия
между fdatasync и fsync. Факт (1e91d63fac9882e2c226ceb360916d802c96e9be)
отсутствия работающего POSIX fsync на macOS. То что надо бы fsync-ать и
директории (я много где в своём софте подобное делаю). Есть статья с
анализом выживаемости ext3, ReiserFS и JFS -- всё очень плохо со всеми
ними, хотя, как говорят авторы, ReiserFS типа меньшее из зол. Про JFS
мне всегда было любопытно, но о ней почти ничего из практики не
известно: типа никто не использует её, судя по всему. То что NTFS говно
и так можно было не гадать. Есть статья, демонстрирующая то, что btrfs
после спонтанных выключений питания -- приходит в полную негодность и
невозможность восстановления. Вопросы износа/ошибок на HDD, SSD,
контроллеров, ECC RAM. Ну и куча примеров как надо работать с файлами.
Полезная статья!

Ничего явно не сказано про ZFS, хотя, учитывая наличие btrfs, статьи
вполне себе современные и в курсе про эту ФС. Видимо, кроме редких
косяков в самом коде (кои везде бывают), она вне "конкуренции". Ведь она
именно в условиях сбоящих контроллеров, протухающих секторов должна же
выживать и гарантировать обнаружение потери консистентности/целостности.
Нет ничего и про UFS2, в которой вообще soft-updates вместо журналов.

2 months agoСвободный доступ провайдеров к домам
Sergey Matveev [Thu, 28 Mar 2024 08:41:00 +0000 (11:41 +0300)]
Свободный доступ провайдеров к домам

https://www.securitylab.ru/news/547086.php
Давно пора! А то ведь это ж реально полная жопа: куда ни плюнь, но типа
только пара провайдеров имеется, один хуже другого, типа Ростелекомов
или МГТС. Это если Москва. В Королёве где-то есть WiFire, бывший
NetByNet, который теперь Мегафон вроде -- не знаю как сейчас, но они
даже PTR без проблем прописывали. В моём доме только Ростелеком и
мытищинский Индиком. Ростелеком я принципиально не стану использовать,
ибо уроды. Я готов и в десять раз больше платить за Интернет, если бы он
выдавал /56+ IPv6 вменяемо статичный, придите кто-нибудь то уж.

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

2 months agoПочта не ходила из-за VPS провайдера
Sergey Matveev [Thu, 28 Mar 2024 07:55:57 +0000 (10:55 +0300)]
Почта не ходила из-за VPS провайдера

Моя /48 сеть ходит через vpsville.ru VPS. В ней же IP адрес для моего
входящего почтового сервера. В c1e4bf6cc029ad338577718afcc9cd671ab70258
писал, что в последнее время с почтой неладное. Попристальнее посмотрел:
через n-ое время пакеты по 25-му TCP порту начинают исчезать, причём
только в одном направлении. TCP, EHLO устанавливаются, может дойти до
STARTTLS, но дальше tcpdump-ом я вижу что пакеты, которые должны бы были
прийти -- отсутствуют. И мой сервер через внушительное время говорит
что, мол, время ожидания исчерпано. Проверил также и просто netcat-ом, с
другой VPS, по этому порту -- без разницы что слать, но через n-секунд
трафик в одну сторону перестаёт ходить.

Написал в поддержку, говорят что у них никакой фильтрации нет. Я даже
просто nc|dd делал чтобы убедиться, что на 25-ом порту трафик (почти) не
ходит, а на соседних всё без проблем. Я что, единственный человек у них
что ли, кто почтовик на IPv6 за их сетями держит? Или где-то,
действительно, выше находится ТСПУ именно на мои адреса? Не вериться.

Решил пока прокинуть входящий SMTP через мою вторую VPS. Одна VPS у меня
исключительно для /48 сети, на которой нет ничего, кроме ndproxy
(5958e69e23f2519c6716ff689aa39a9b8c480837) и WireGuard туннеля от меня,
по которому идёт весь этот IPv6 трафик. Но vpsville.ru не даёт
прописывать PTR-ы для IPv6 (25ce76407710dc00ab7e4cbda272f32a83f54300),
поэтому мой предыдущий VPS в строю. На нём много чего: зеркала, DNS,
всякое, плюс исходящий SMTP сервер. Для входящего то PTR-ы не нужны. Но
на нём /64 сеть только, поэтому его в качестве IPv6 брокера не использую.

Поднял ndproxy на нём, чтобы он отвечал на NDP NS в /64 сети. Так как
BIRD с OSPFv3 поверх WireGuard уже стоит, то на моём домашнем сервере я
всего-лишь добавил к loopback-у один из адресов этой /64 сети. Через
OSPF VPS-ка узнаёт о нём и знает куда маршрутизировать приходящий
трафик для него. Но, так как исходящий маршрут по умолчанию у меня через
/48 туннельного брокера идёт, то исходящие пакеты этого адреса идут не в
тот интерфейс. Добавил новый FIB (884f5eb6a88411f947a0d6c3fecd37c612a51654),
firewall-ом помечаю трафик SMTP IP адреса этим FIB-ом, всё заработало.
Почта снова по IPv6 стала ходить.

Но vpsville.ru уже не первый раз разочаровывает. То не предупреждают о
том, что PTR для IPv6 они не дают. То проигнорировали мою просьбу
написать это в документации на сайте (ну да, понимают, что если бы было
написано, то я бы к ним не пошёл). Я бы сказал, что это обман, введение
в заблуждение. То вот почта по сути у них не ходит -- возможно,
действительно, кто-то выше режет трафик, но только у меня эта проблема
что ли и они не признаются что это known issue, can not do anything?
Рекомендовать его я уже не могу никому.

Но пока остаюсь на нём для всего остального IPv6 трафика -- это ж снова
надо искать очередных провайдеров, трахаться со всей этой настройкой.
Может я просто по дешёвкам всё бегаю, тогда как серьёзные дяди
используют какой-нибудь well-known не дешёвый хостинг (что это у нас
сейчас, MasterHost когда-то был, сейчас его сайт вообще не открывается у
меня)? Но я же заходил к подобным на сайт и не видел чтобы они
предоставляли нужный мне сервис. Возможно он просто не описан и при
личном разговоре с продавцами они всё смогут сделать, но это ж тоже
геморрой. Почему так сложно просто взять и получить хотя бы /56 сеть,
чтобы без всякого говна, без необходимости запуска NDP proxy, чтобы хотя
бы один PTR выставить?

2 months agoМой блог и репозитории сдублированы
Sergey Matveev [Tue, 26 Mar 2024 08:48:11 +0000 (11:48 +0300)]
Мой блог и репозитории сдублированы

Вообще-то Git репозитории у меня дублируются с ноября прошлого года.
git.* смотрит на две машины (мою домашнюю и VPS). Заведены master.git. и
slave.git. адреса для каждой из них по отдельности, чтобы в каждом
репозитории я указал два pushurl. git push при этом сразу без вопросов
пропихнёт коммиты в оба репозитория. Они не совсем одноранговы: например
добавление комментария в блог идёт на сервере только в master.git, а
дальше я уже руками при обновлении блога, подпихну в slave.git.

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

Пришлось правда подправить его: ETag в нём вычислялся как хэш от кучи
всяких данных, среди которых был путь до репозитория, который на разных
машинах легко может отличаться. Плюс обнаружил, что godlighty в качестве
ETag-а для статичных файлов использует ctime, который, как правило,
вообще невозможно сделать одинаковым на разных ФС. Стал использовать
mtime и размер для этого.

2 months agoРаспознавание linkmeup подкастов
Sergey Matveev [Tue, 26 Mar 2024 08:08:05 +0000 (11:08 +0300)]
Распознавание linkmeup подкастов

Начал в 0a1f29f947892a13635bec94abdabcd1e9c55179 превращать подкасты
linkmeup в текст. Вчера именно linkmeup-овские закончились (отдельно там
ещё есть LTE, sysadmins). Три компьютера (Xeon 6-ядер, Xeon 4-ядра, i9
8-ядер) всю неделю упорно жгли электричество. Треть прочитал уже.
Использование large-v2 модели (5ba6c084e4aaa13339e01b094cda718d9ff03a37)
почти (но не все) зацикливания убирает. В общем, полезной штукой этот
whisper.cpp оказался.

2 months agoНеладное со связью
Sergey Matveev [Tue, 26 Mar 2024 07:48:54 +0000 (10:48 +0300)]
Неладное со связью

Оказалось, что со мной пытались связаться знакомые после теракта в
Крокусе. По сотовому телефону и по почте через @gmail.com. Я же часто на
подобные мероприятия хожу. На Пикнике три раза был.

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

Так вот и сообщения по сотовому тоже не проходили. Только через пару
дней, когда я отправил SMS на их номер -- всё стало работать. Впервые
сталкиваюсь с тем, чтобы SMS/звонки не проходили (если есть доступность
сотовой соты).

Смотрел tcpdump-ом что же могло идти не так. До сих пор так и не знаю,
но вижу что именно по IPv6, который у меня через VPS идёт, как-будто
убиваются пакеты TCP. Я вижу что TCP устанавливается без проблем, вижу
даже plaintext вывод начала SMTP сессии, где стороны говорят кто что
умеет, но когда от противоположной стороны должен приходить MAIL FROM,
RCP TO, то такого пакета не видно в трафике. И вскоре мой сервер
посылает ответ что 421 timeout, давай, до свидания. Если стороны
пытаются начать STARTTLS, то это сообщение тоже проходит, но самого
пакета с TLS handshake-ом уже нет. В любом случае это не объясняет
почему gmail.com не делает fallback до IPv4, по которому вроде бы
проблем не видно. Проверял это всё даже просто telnet-ом с другой своей
VPS, где опускал BIRD, чтобы маршрут шёл через глобальный IPv6 Интернет.

Вообще, за 1-2 дня до начала выборов я заметил резкое изменение в
качестве обслуживания Интернета. По ночам -- прям всё тип-топ как-будто,
а как начинается рабочий день, то мой мониторинг постоянно (сотни
событий за рабочий день) говорит о временной недоступности моих VPS. Но
выборы то давно прошли, а Интернет всё равно продолжает кто-то шатать.
Что внутри страны (до Московских серверов например), что за рубеж.

Ну и отдельная тема это директория спам в gmail.com. Годами по абсолютно
непонятным причинам у кого попадает корреспонденция в спам, то нет,
причём в разное время по разному. Кому-то попадает в inbox, хотя мы
раньше не связывались. С кем годами переписывались -- может легко
попасть друг за другом. Хотя годами у меня адреса/настройки/сервера
могут и не меняться при этом.

2 months agoЗацикливание whisper.cpp
Sergey Matveev [Sun, 24 Mar 2024 14:27:03 +0000 (17:27 +0300)]
Зацикливание whisper.cpp

В 0a1f29f947892a13635bec94abdabcd1e9c55179 писал, что новая large-v3
модель может зацикливаться. Смена на large-v2 уменьшает вероятность, но
всё равно это вполне себе у меня может происходить. И large-v2 менее
точные результаты выдаёт.

2 months agoБолее-менее активная работа с schwabrak-ом
Sergey Matveev [Sun, 24 Mar 2024 08:47:19 +0000 (11:47 +0300)]
Более-менее активная работа с schwabrak-ом

В bd94115b066472316ea03e85d611f732785f8b7c я упоминал о написании "issue
tracker"-а на основе директорий и файлов, пригодного для использования
без дополнительного софта, имея под рукой только Git.

С парой коллег вот попытались его вести для нескольких проектов.
Наверное ещё рано говорить об успехе или провале, но пока вроде
отторжения ни у кого не вызывает это всё. Используем все написанные
на Z shell утилиты мои.

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

    # Usage: colourise ColourSpec:RegExp [ColourSpec:RegExp ...]
    # It is intended to be a drop-in replacement for supercat utility.
    # ColourSpec is comma delimited list of ANSI codes for colour setting.
    # Look for zsh'es Functions/Misc/colors documentation about possible
    # colour values. For example to set bold red on green background you use
    # "bold,fg-red,bg-green" as a ColourSpec.
    # RegExp is POSIX extended regular expression of the text you want to
    # colourise.
    colourise() {
        if [[ -n $NO_COLOR ]] || [[ $# -eq 0 ]] ; then
            cat
            return
        fi
        (( ${+colour} )) || { autoload -Uz colors ; colors ; }
        local lc=$'\e[' rc=m colr=""
        local spec=(${(s/:/)1})
        shift
        for c (${(s/,/)${spec[1]}}) colr="${col}${lc}${colour[$c]}${rc}"
        local re=${(j/:/)spec[2,-1]}
        sed -E "s/${re}/${colr}&${reset_color}/g" | colourise $@
    }

Можно давать вот такие команды:
    colourise bold,fg-green,bg-magenta:"\d+" blue:"whatever regexp"
перечисляя множество регулярок и опций для формирования ANSI разукрасок.
Понравилось что вышло без кучи кода, переиспользуя colors модуль zsh и
POSIX-совместимый sed с расширенными регулярками.

Раньше не было команды "comment", ибо что в неё засунуть, если нужно
всего-лишь открыть issues/.../comment файл и после редактирования
добавить в Git? Но теперь она есть и позволяет предыдущий комментарий
оставить в виде "#"-комментария, а после выхода из редактора удаляет
его, добавляя в Git index. А если ничего не было отредактировано, то
оставляет как было.

"list" команда позволяет фильтровать по тагам. Причём не нужно указывать
полное название тагов. "list star" покажет список задач у которых есть
таги "assignee:stargrave". Если перед тагом написать "!", то будут
показаны задачи у которых него его. "list starg \!done" -- все не
сделанные задачи (у которых нет status:done тага) повешенные на меня.

На работе используется сраный GitLab (сраный -- потому что не
поддерживает SHA256 Git-репозитории, как минимум). Но в нём парой
щелчков можно включить отсылку оповещений о коммитах с показом diff-а.
Поэтому любой push в репозиторий с задачами -- оповещает на email всех
участников.

Пока мне очень нравится как с ним удаётся работать и лично мне ощутимо
помогает уже с несколькими десятками задач. Кроме него, у меня ещё и
личный issue tracker был, по которому очень легко было делать отчёты об
удалённой работе (да, сдаём каждый месяц такое). С schwabrak-based
tracker-ом можно давать ссылки на GitLab и на нужную директорию задачи,
что было бы уже проблематично, если бы задачи находились в
SQL/Recutils/Org-mode СУБД какой-нибудь.

2 months agoGNU/Linux дистрибутивы без elogind
Sergey Matveev [Sun, 24 Mar 2024 07:34:33 +0000 (10:34 +0300)]
GNU/Linux дистрибутивы без elogind

https://sysdfree.wordpress.com/2023/09/25/363/
Оказывается, есть ещё отдельная боль с elogind. Slackware 15 его
использует, поэтому не может уже считаться systemd-free дистрибутивом.
В списке одобренных за 2023-ый код на этом сайте я слышал только об
antiX, Hyperbola, Kiss.

Решил вспомнить что такое antiX, зашёл на их сайт, и вижу что они громко
заявляют что это "анти-фашистский" дистр. Не, это здорово что на этом
Западе кто-то решился пойти против течения и заявить о неподдержке
фашизма, нацизма и подобного (Украину то Запад поддерживает вовсю, как и
террор), но... не надоело ли приплетать всё это к чисто техническим
вещам? Дело конечно автора, в лицензии ничего не написано про запрет
использования его, например, украинцами. Но в форуме всё равно народ
поднимает вопросы нафига это заявление:
https://www.antixforum.com/forums/topic/anti-fascist-antix/

Hyperbola помню что (fea55f774b79e9648a8c6dd30dc0e42747bf7e60) не шибко
адекватный дистрибутив, где я так и не смог найти что же не так с
Zstandard например.

Venom Linux, о котором в другом месте слышал, вообще на JS сайт имеет.
Сайт Kiss-а не открывается -- тоже только JS какой-то вижу в HTML.

Отдельно у них список дистров есть, где запущен DBus, который я у себя
тоже форсированно отрубаю. Тут есть знакомые названия типа Alpine,
Artix, TinyCore (хотя elogind там всё равно присутствует), Void.
В комментариях упоминают CRUX, о котором я тоже вспомнил, вроде бы
elogind там тоже нет по умолчанию.

2 months agoRedis -> Redict
Sergey Matveev [Sat, 23 Mar 2024 07:10:34 +0000 (10:10 +0300)]
Redis -> Redict

https://www.opennet.ru/opennews/art.shtml?num=60820
https://andrewkelley.me/post/redis-renamed-to-redict.html
https://notes.billmill.org/link_blog/2024/03/Redis_renamed_to_redict.html
https://www.opennet.ru/opennews/art.shtml?num=60823
Недавно Redis решил поменять свободную (но не copyleft!) лицензию на
несвободные. Я к этому как-то спокойно отнёсся: Redis той версии что
была -- работает, живёт, есть, сломается что ли? Его поддерживать
запрещено что ли становится? Кроме того, это как бы уже довольно давно
матёрое и стабильное ПО.

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

2 months agoВпервые столкнулся с OpenAPI
Sergey Matveev [Tue, 19 Mar 2024 19:13:33 +0000 (22:13 +0300)]
Впервые столкнулся с OpenAPI

https://github.com/OAI/OpenAPI-Specification
Столкнулся сегодня с OpenAPI. Хотели чтобы я написал и реализовал схему
и свою программу по нему. Пошёл искать что на Go есть из валидаторов
онной. Куча существенно несовместимых версий (2.0, 3.0, 3.1) -- выбор
софт сужается.

Целый день разбирался почему же проверка уже существующих OpenAPI в
проекте не проходила. Не удивился бы, если их коммитили не проверяя. Не
удивился бы, если бы инструмент, которым проверяли -- был бы косячный
(ибо на Python) и глючный. Но нужно же было понять кто же всё же
виноват: или github.com/pb33f/libopenapi (мой выбор пал на него) или
Python софт.

Оказалось, что схема OpenAPI 3.1... вполне себе регулярно обновляется,
причём даже без изменения хотя бы дат внутри своего namespace. И на
сайте написано что в одном месте можно использовать $ref, но валидатор
упорно не пропускал это. Оказалось, что в нём не настолько современная
3.1 схема была. По сути, выходит, что нету никакого OpenAPI 3.1, а есть
множество версий этого 3.1. Что за уроды так делают?

2 months agoРасходы и доходы в шаурмичном бизнесе
Sergey Matveev [Tue, 19 Mar 2024 08:41:16 +0000 (11:41 +0300)]
Расходы и доходы в шаурмичном бизнесе

https://habr.com/ru/articles/800963/
Всегда было интересно сколько это всё стоит, сколько получают.

2 months agoПочему хранить музыку в HiRes формате глупо
Sergey Matveev [Mon, 18 Mar 2024 19:50:28 +0000 (22:50 +0300)]
Почему хранить музыку в HiRes формате глупо

https://habr.com/ru/articles/801159/
Доходчиво на примере показано что нафиг не нужно ничего более чем
обычный CD-DA. Для обработки -- да, безусловно, вне всяких сомнений.
Но для конечного результата -- комментарии излишни.

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

Но и в комментарии верно заметили, что чисто CD-DA это только стерео.
Да, тут уж никуда не деться. Но речь только про 44.1kHz/16-бит.

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

2 months agowhisper.cpp то может и не работать
Sergey Matveev [Mon, 18 Mar 2024 07:09:35 +0000 (10:09 +0300)]
whisper.cpp то может и не работать

https://github.com/ggerganov/whisper.cpp/issues/1949
Поставил я тут распознаваться подкасты linkmeup-а
(46e4d23a23a10eb1c05e5a20f0ceeebd5ff31016). Наобум взял один
результирующий .txt файл и увидел:

    [00:50:46.080 --> 00:50:47.080]   Внутри нашего, например, дата-центра, 800-гига-модов.
    [00:50:47.080 --> 00:50:48.080]   То есть мы будем делать все, что угодно.
    [00:50:48.080 --> 00:50:49.080]   То есть, мы будем делать все, что угодно.
    [00:50:49.080 --> 00:50:50.080]   То есть, мы будем делать все, что угодно.

и на час понёсся повтор одной и той же строчки. Взял наобум другой файл:

    [02:12:14.680 --> 02:12:17.580]   очень активно развиваться.
    [02:12:17.580 --> 02:12:19.580]   Это будет очень активно развиваться.
    [02:12:19.580 --> 02:12:21.580]   И это будет очень активно развиваться.
    [02:12:21.580 --> 02:12:24.580]   И это будет очень активно развиваться.
    [02:12:24.580 --> 02:12:27.580]   И это будет очень активно развиваться.
    [02:12:27.580 --> 02:12:29.580]   Это будет очень активно развиваться.
    [02:12:29.580 --> 02:12:31.580]   Это будет очень активно развиваться.
    [02:12:31.580 --> 02:12:33.580]   Это будет очень активно развиваться.
    [...]

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

Если начать распознавать с seek-ом, то loop не возникает на этих
участках. Короче глаз да глаз нужны.

2 months agoРезультаты exit-poll и опросы на улицах
Sergey Matveev [Sun, 17 Mar 2024 19:50:56 +0000 (22:50 +0300)]
Результаты exit-poll и опросы на улицах

https://lenta.ru/news/2024/03/17/opublikovany-rezultaty-ekzitpola-vtsiom-po-vyboram-prezidenta-rossii/
Я только на этих выборах увидел "независимых экспертов", которые при
выходе, на улице, спрашивают проголосовали ли и за кого. Прежде не
встречал такого у нас. Пишут, что почти 40% отказались от ответа. Я тоже
сказал что "нет, не скажу, это анонимно". Папа тоже впервые встретил
такие вопросы на этих выборах и ему тоже не понравился этот факт.

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

2 months agoСходил на оркестр волынщиков "City Pipes"
Sergey Matveev [Sun, 17 Mar 2024 17:31:09 +0000 (20:31 +0300)]
Сходил на оркестр волынщиков "City Pipes"

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

Начинался концерт с приветственных слов. При этом, обратил внимание, что
свет не выключили, а только приглушили. Где-то издалека начинают раздаваться
барабаны, включаются волынки и с заднего входа в зал заходят City Pipes,
зигзагом проходясь между рядами, не переставая играть. Ну и так до сцены.
Классно придумали, плюс вблизи все поглядели и услышали.

Кроме двух волынок, ещё три барабанщика (бас, тенор и забыл-как-называется),
и пианист. Пианино и синтезатор на сцене были. Играли и чисто волыночные
композиции, но вообще концерт назывался "рок-хиты на волынках". ABBA,
Beatles, Metallica, System Of A Down, Deep Purple, Queen, Bon Jovi и ещё
всякие, знакомые мне, но не помню названия исполнителей. Что-то игралось
совместно с пианино. Кроме волынки, один из участников, всякие дудки
использовал. И медляки и боевики.

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

Дымовая завеса, активно работающее освещение -- всё как полагается.
Головой главный волынщик кивал так, что, будь у него гитара, явно бы ею
тряс. Энергии куча во всём этом. Закончили представление неспешной
"Don't worry, be happy".

Я обожаю и звук одной волынки, в восторге от двух (в том же In Extremo
такого полно), но а с барабанами так вообще круче некуда. Очень доволен!

2 months agoМасленичные гулянья в Королёве
Sergey Matveev [Sun, 17 Mar 2024 17:24:05 +0000 (20:24 +0300)]
Масленичные гулянья в Королёве

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

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

Как-будто по размаху оно сравнимо с новогодними праздниками.

2 months agoПрофессиональная порча компьютерных игр
Sergey Matveev [Sat, 16 Mar 2024 10:19:00 +0000 (13:19 +0300)]
Профессиональная порча компьютерных игр

https://www.youtube.com/watch?v=NWAl-s2clhQ
Ага, есть даже целые конторы, которые говорят что и как надо испортить в
игре, дабы следовать трендам всяким там "metoo", "blm" и прочему дерьму.
В этом видео тоже упоминается (9053f799dc6435fd7bb3c84af777b3dfedf9fc02)
Disney со своим мнением о провале фильмов.

2 months agoСборка современного mpv
Sergey Matveev [Sat, 16 Mar 2024 09:48:42 +0000 (12:48 +0300)]
Сборка современного mpv

https://www.opennet.ru/opennews/art.shtml?num=60788
Вышли тут кодеки SVT-AV1 и dav1d, где куча оптимизаций и улучшений. Я
ярый приверженец AV1 кодека. Обновил их -- mpv перестал запускаться
из-за другого имени библиотеки. Я почему-то подумал что это
FFmpeg-related вещь не запускается, поэтому пошёл и FFmpeg обновлять,
где тоже прилично изменений подъехало. mpv перестал собираться из-за
того, что то тут, то там (руками то одно, то другое попытался быстренько
поправить) mpv использовал deprecated API.

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

Ладно, решил обновить таки mpv и посмотреть может чего исправилось.
Вместо WAF он стал использовать Meson. И обязательной зависимостью стала
libplacebo. Но, оказалось, что mpv предусмотрел возможность
использования её и её немалочисленных зависимостей через рекурсивную
инициализацию git модулей:
    git clone --depth=1 --recursive subprojects/libplacebo \
        https://code.videolan.org/videolan/libplacebo.git
Пришлось явно добавлять включение поддержки X11:
    meson setup -Dgpl=true -Dx11=enabled -Dalsa=disabled build
Но после всего этого -- вполне себе собирается и работает. В принципе,
даже стало менее геморройно его собирать, ибо прежде ещё приходилось
после сборки добавлять __progname+environ в build/mpv.def и пересобирать
снова. Плюс требовались разные несовместимые версии WAF. Как
проигрыватель, mpv хорош. Но его сборка это всегда была какой-то
постоянной проблемой. Плюс какие-то пертурбации с поддержкой OSS были.

2 months agoСходил на оперу "Летучий голландец"
Sergey Matveev [Sat, 16 Mar 2024 07:31:40 +0000 (10:31 +0300)]
Сходил на оперу "Летучий голландец"

https://ru.wikipedia.org/wiki/%D0%9B%D0%B5%D1%82%D1%83%D1%87%D0%B8%D0%B9_%D0%B3%D0%BE%D0%BB%D0%BB%D0%B0%D0%BD%D0%B4%D0%B5%D1%86_(%D0%BE%D0%BF%D0%B5%D1%80%D0%B0)
Только недавно я сходил на оперу (411cc4cd20be6c375c0cbb101330d1aa2fd7fae8),
выразил желание услашть оперу на немецком, как на днях увидели, что
будет премьера "Летучего голландца" в Новой Опере. Взяли билеты, ибо
мало оставалось, но только на следующий день решили почитать про детали
этой премьеры. Как оказалось, режиссёром выступает Богомолов и это
премьера именно в Новой Опере, которая приехала к нам из Перми.

Если почитать рецензии, то сразу встаёт вопрос: ё моё, на что мы взяли
билеты то? Мама ещё добила тем, что этот режиссёр является мужем Собчак.
Знал бы -- не брал, конечно. Что значит Собчак? Говно, дерьмо, мерзость,
гниль и аморальность. И рецензии про его постановку "голландца" --
именно всё это и подтверждают. Да ещё и деньги ему платить за это?

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

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

Можно было бы поступить куда проще: просто навсего закрыть глаза. Сделав
это, ничего кроме музыки и самой оперы Вагнера и не останется. Не видя
сцену -- не потеряешь ничего, декораций не много. Можно бы было вообще
просто убрать абсолютно всё, кроме артистов -- было бы лучше. Что хотел
показать, выразить режиссёр своим псевдо-юмором уровня недалёкого 15-ти
летнего пацана решившего пародировать сортирный юмор Гоблина? Не знаю.
Гоблина то я при этом очень уважаю и обожаю многие его переводы и
озвучки, но не те, что в Терминаторе 3 или Властелине Колец. Не мой это
юмор. Но это всё было не Гоблином, а как-будто жалкой попыткой его
пародии.

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

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

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

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

Резюмируя: постановка -- полное говно, но всё остальное (музыка, пения,
хор) вызывает полнейший восторг! И да, не смотря на то, что Аида была в
"Геликон опере" -- пафосное, большое, грандиозное помещение, с хорошей
(как говорят знатоки) акустикой, заслуженными артистами в труппе,
колоссальными декорациями, но "Летучему голландцу" в простецкой "Новой
опере", даже в постановке Богомолова -- по восторгу и вызываемой буре
эмоций и напряжении, полностью проигрывает. Такого же мнения и мама, у
которой нет ни пристрастного отношения к немецкому языку, ни к музыке Вагнера.

2 months agoТеперь можно "слушать" подкасты linkmeup
Sergey Matveev [Fri, 15 Mar 2024 07:17:37 +0000 (10:17 +0300)]
Теперь можно "слушать" подкасты linkmeup

https://linkmeup.ru/podcasts/
На сайте linkmeup есть ценнейшие ресурсы о компьютерных сетях
(2135e60903b761f4188c0cecb49bb96b95809ab7). А также есть подкасты.
Но слушать подкасты... это всё же не аудиокниги, где читают дикторы.
Моё время и удобство дороже, как бы там интересно не было бы.

Но AI, искин, нейросети и [подставить нужное модное слово] решают эту
проблему. whisper.cpp (94cf819e49d4e1f78279ef001bd2a9556b8004f3) можно
превращать это всё почти в real-time в текст. Уже несколько подкастов
так прослушал. yt-dlp без проблем качает MP3 файлы с их страниц.

А так как подкастов у них за многие годы накопилось уйму... процессор
мне жечь очень долгое время придётся. И вот тут то появляется желание
заиметь GPU или акселератор нейросетевых вычислений.

А вообще забавно: текстовые книги хочется преобразовать в звук, а
звуковые подкасты в текст.

2 months agoЭнергетика большой страны
Sergey Matveev [Thu, 14 Mar 2024 19:42:33 +0000 (22:42 +0300)]
Энергетика большой страны

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

3 months agoСходили на оперу "Аида"
Sergey Matveev [Sun, 10 Mar 2024 10:43:39 +0000 (13:43 +0300)]
Сходили на оперу "Аида"

https://www.helikon.ru/ru/performances/aida.html-0
По сути, это моё первое посещение оперы. Был я один раз на премьере
"Царской невесты", но слишком маленьким, чтобы хоть что-то оттуда
запомнить, кроме первой минуты начала, жутко мрачной.

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

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

В этой Аиде была сцена, где по периметру зала расходились артисты и со
всех сторон пели, споря друг с другом: с одной стороны призывая кончать
пленных, а с другой -- пощадить их. И когда хором куча человек это
делает -- незабываемо! Египетский полководец, Рамадес -- сразу мне
понравился своим голосом. Аида была с мощным, но партий у неё не много.
А вот дочь царя Египта, которая типа чуть ли не больше всех пела --
ну... даже я понимал что разница с той же Аидой ощутимая по мощи голоса.
Имело ли это колоссальное значение? Наверное нет, но всё же мощь голосов
впечатляет -- а без этого остаётся как бы просто красивый вокал и
артистизм. Но я, понятное дело, дилетант в подобном искусстве.

Была она на итальянском языке. Кроме имён собственных и "mori" (смерть?
что-то с нею связанное, "memento mori") я не знал ни одного слова.
Слышал я оперы у Therion (симфо-метал) и Вагнера на немецком -- а вот
там я прилично слов разбираю. Слышать какие-нибудь "шмерцены" в оперном
исполнении -- люто нравится. В живую надо бы.

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

Читал, что Джузеппе Верди хотел изобразить главного жреца в опере плохим
дядькой. Типа жестоким и всё в таком духе. Блин, а я наоборот его уважал
всё выступление. Он сразу сказал царю что кончать пленников надобно, ибо
пойдут мстить. Только их отпустили -- сразу же о планах мести и реванша
пошли разговоры. Рамадес же погиб -- и поделом, ибо предатель! Пускай
даже по неаккуратности типа, но он главком и выдал серьёзную военную
тайну -- никаких поблажек за это быть не должно. Жрец всё делал и
советовал как надо, не придерёшься.

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

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

3 months agoГОСТ в LibreSSL
Sergey Matveev [Sun, 10 Mar 2024 10:27:32 +0000 (13:27 +0300)]
ГОСТ в LibreSSL

https://dxdt.ru/2024/03/10/12501/
https://www.mail-archive.com/announce@openbsd.org/msg00517.html
LibreSSL был приятен ещё тем, что в нём были ГОСТ алгоритмы.
А вот в новой версии их убрали, из-за низкого качества кода.
Вот видел я хороший и быстрый ГОСТ код, но... не свободный.

3 months agocURL в macOS
Sergey Matveev [Sat, 9 Mar 2024 10:36:09 +0000 (13:36 +0300)]
cURL в macOS

https://daniel.haxx.se/blog/2024/03/08/the-apple-curl-security-incident-12604/
Думаете что указав --cacert опцию в curl вы форсируете использование
чётко заданного списка CA сертификатов для проверки? Так документировано
в самом cURL, так всегда было. Apple же считает иначе и штатный curl в
системе на самом деле всё равно делает проверку напротив встроенных в ОС
сертификатов! И, конечно же, это недокументированное поведение.

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

3 months agoZ Shell-based Web-сервер
Sergey Matveev [Sat, 9 Mar 2024 10:17:40 +0000 (13:17 +0300)]
Z Shell-based Web-сервер

http://www.git.stargrave.org/?p=zws.git;a=blob;f=zws
Какой минималистичный web-сервер для раздачи статических файлов есть?
Да ещё чтобы с dirlisting-ом? Я знал только про python -m SimpleHTTPServer.
Но Python мало где водится из коробки, ибо громоздкий. Поэтому написал
на zsh такую штуку, которая даже знает про MIME (пока в коде только .txt
и .html понимаются) и чуть-чуть про GET параметры, где можно указать
использование tai64nlocal. Мой Go сервер godlighty нужно
перекомпилировать и заранее собирать. А zsh это интерпретируемый скрипт.
За TCP сокеты он не отвечает -- для этого предполагается запуск например
под tcpserver UCSPI-TCP.

Вообще это писалось под (7e1dbd0539c7ea5c6bd5e8831abeea4796da693e)
BASS/zwoki CI проект, где на серверах априори есть и zsh и ucspi-tcp.
Хотя на данный момент zsh уже выпилен почти отовсюду -- после кучи
всякого рефакторинга вышло так, что zsh уже избыточен и не даёт никакой
помощи в скриптах, сильно всё проще стало.

3 months agoДоработки meta4ra
Sergey Matveev [Sat, 9 Mar 2024 09:46:00 +0000 (12:46 +0300)]
Доработки meta4ra

http://www.meta4ra.stargrave.org/
Я стал что-то типа .meta4 fanboy-ем. В системе сборки BASS (прежде это
называлось zwoki, 7e1dbd0539c7ea5c6bd5e8831abeea4796da693e, а теперь
Build Automation Simple System) всё качается через Metalink4 файлы. Ибо
и контрольные суммы и несколько ссылок и подписи удобно лежат в одном
файле.

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

Есть у меня места, где нужны хэши, но пофиг какие -- просто например для
сравнения файлов между собой. Был hardcode b3sum, но, опять же, в той же
Astra Linux, из коробки этой утилиты нет, а дополнительные зависимости
это всегда когнитивная нагрузка на человека. b3sum можно собрать в
пределах системы сборки и установить этот пакет. Но проблема курицы и
яйца: для создания пакета, уже нужен b3sum хэш, а чтобы его получить --
надо собрать пакет.

Такое уже было с ZStandard сжатием, но там я просто для некоторых
пакетов форсировал использование "gzip"-а. libarchive-based bsdtar
автоматически может понимать какой декомпрессор надо запускать. Вот
такое же хотелось бы и для хэшей. meta4ra-check утилита на самом деле
уже так и делает: находит первый общий хэш и его и проверяет. Нет b3sum
-- будет fallback до чего-то другого имеющегося. Когда появится после
установки пакета -- будет использован в приоритете.

Пришлось в meta4ra-check добавить -stdin опцию, чтобы можно было данные
единичного файла проверять через stdin. Добавил -all-hashes опцию,
которая форсирует проверку всех хэшей .meta4 файла, просто чтобы
убедиться что всё в нём корректно рассчитано и не бито. Добавил
meta4ra-hash утилиту, которая через stdin/stdout считает первый хэш
указанный в -hashes -- как-раз тот самый случай, когда нужен любой хэш,
желательно более приоритетный.

meta4ra использовала внешние утилиты для расчёта хэшей. Сама Go
программа использовалась только для работы с XML и распараллеленным
запуском команд хэшей. Список команд задаётся через -hashes, где через
запятую перечисляются "name:cmdline" пары, указывающие название хэша
(которое будет в XML) и командную строку для запуска. Точнее прежде был
запуск только единичной команды, а теперь это строчка передающаяся в
"/bin/sh -e -c", поэтому можно использовать и конвейеры. Но на разных ОС
доступны разные команды. Заставлять человека тщательно формировать
довольно длинную строчку описывающую что надо запускать -- геморройно.
Написал поэтому meta4ra-hashes-detect утилитку, которая просто
перебирает hard-coded известные (мне) команды для расчёта того или иного
хэша, проверяя их работу напротив hard-coded хэша от "hello world".
Теперь можно любую команду запускать типа:
    meta4ra-check -hashes "`meta4ra-hashes-detect`" ...

Когда-то сам meta4ra считал хэши. Но реализации в Go не всегда
удовлетворительно быстрые. Поэтому я и стал использовать внешние
команды. Однако, если на скорость пофиг и хочется хоть как-то посчитать,
например при создании установочных пакетов? А потом уже использовать
появившуюся быструю b3sum/Skein/Стрибог/whatever? Решил поэтому вернуть
возможность использования, так называемых, builtin хэшей, но компилируя
их опционально. Если просто собрать meta4ra "go build"-ом, то будут
использованы только родные библиотеки, где только sha256/sha512. Если
указать "tags thirdparty", то будет использована масса дополнительных
библиотек для кучи остальных хэшей. vendor-ized tarball все их содержит.
Для использования builtin реализации надо указать "builtin" в качестве
cmdline строчки.

Ради Python пакетов, которые теперь на PyPI по умолчанию хэшируются
BLAKE2b, добавил BLAKE2b. Всё же он очень распространён. А BLAKE2s
только внутри протоколах, как правило, используется. Его не стал.
Однако, PyPI использует не просто BLAKE2b, а BLAKE2b-256, хэш которого
не просто обрезанный полный 512-бит. Поэтому добавил ещё и BLAKE2b-256.
Оказалось, что b2sum утилита также входит и в GNU Coreutils (но это не
та, что официально поставляется авторами BLAKE2, но "-l" аргумент
работает одинаково у них обеих). BLAKE2b-256 на PyPI встречается в URL-е
для скачивания пакета.

Убрал Skein-256, смысла в котором и нет. Авторы Skein рекомендуют
ориентироваться на Skein-512. Ну и github.com/dchest/skein библиотека
только его и поддерживает (реализации dchest-а доверяю). Ну и Skein-512
на 64-бит системах ощутимо быстрее работает.

Добавил XXH3-128 (dffa894abeab4eaec509b95af9d23b51e4e0f844). Ну
just-for-fun. С другой стороны, для проверки целостности его 128-бит
значение вполне себе годно, если модель угроз не включает в себя
злоумышленника, а только ошибки канала связи. Go реализация XXH3 тоже
очень быстра.

3 months agoИгры, ломающие 4-ую стену
Sergey Matveev [Sat, 9 Mar 2024 08:17:36 +0000 (11:17 +0300)]
Игры, ломающие 4-ую стену

https://www.youtube.com/watch?v=a6Ctt8h5Koo
Не слышал о том, что некоторые игры просят:
* нажать reset на приставке прямо во время игры, и реально после
  перезапуска игра продолжится как и задуманно
* влажным пальцем потереть порт для контроллера
* переподключить контроллер в другой порт, чтобы противник не мог
  телепатически читать ваши действия
* поменять CD во время игры на любой другой, чтобы использовать его в
  качестве источника энтропии

А ещё в Monkey Island 2, в джунглях, был телефон, позвонив по которому,
персонаж игры попросит поддержку на горячей линии LucasArts для помощи в
игре. Ведь не раз проходил MI2, но не знал о такой штуке. Обожаю юмор в
этих играх!

3 months agoSHAKE в OpenSSL
Sergey Matveev [Thu, 7 Mar 2024 16:30:28 +0000 (19:30 +0300)]
SHAKE в OpenSSL

https://github.com/openssl/openssl/issues/18586
В OpenSSL есть возможно использования SHAKE128 или SHAKE256 хэшей из
командной строки. openssl shakeX. Ага, как же! Неужели можно поверить
что оно реально у них сделано? "shake128" выдаёт... 128-бит выхлопа.
"shake256", соответственно, 256-бит. В баге на GitHub им написали, что
как-бы при этом они урезали в два раза все заявленные этими функциями
ожидаемые уровни безопасности. Что же поделать? Обновить документацию,
написать там об этом косяке, но исправлять уже поздно, софт от этого
уже зависит.

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

3 months agoСообщения от Госуслуг -- не спам
Sergey Matveev [Thu, 7 Mar 2024 08:36:56 +0000 (11:36 +0300)]
Сообщения от Госуслуг -- не спам

https://habr.com/ru/news/798651/
Всех деталей, конечно, не знаю, но когда-то очень давно я был
зарегистрирован на них. Позже, уже уйму лет ни через один броузер,
который оказывался под рукой, войти туда уже не выходило. Хотел удалить
учётную запись (чёрт его знает возможно ли это?). Но спама от них всегда
было настолько достаточно, то я вообще своему MTA сказал что со всего их
домена ничего не принимать. Отписаться же я уже не могу -- войти то не
выходит. И это всё, похоже, не считается спамом. Приехали...

3 months agoСюжет Bioshock Infinite
Sergey Matveev [Wed, 6 Mar 2024 20:58:57 +0000 (23:58 +0300)]
Сюжет Bioshock Infinite

https://www.youtube.com/watch?v=DiNsCa7QX-I
https://en.wikipedia.org/wiki/Immersive_sim
https://www.youtube.com/watch?v=NWm_EPs9Mv4
https://www.youtube.com/watch?v=9jTvRWZoEoM
Среди того, что называют и причисляют к immersive sim игр, я был знаком
только с System Shock 2. Очень хотел сыграть в Deus Ex в своё время, но
он не шёл на компьютере -- слишком тот был слаб или ещё какая-то
проблема, уж не помню. Помню что Bioshock выглядел чем-то революционным,
жутко интересным, но железа для его запуска даже близко не было. Про
Thief читал в книгах, но не встречал знакомых которые бы в него играли и
у кого можно бы было скопировать его. Про более новые игры вообще речь
не веду.

Смотрел всякие обзоры на Bioshock [12] -- дичайшее удовольствие получаю
от его атмосферы, мира и всего что происходит на экране. Многое
напоминает о Fallout. Весь этот стимпанк. Вообще всё.

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

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

3 months agoRetro Games Mechanics Explained
Sergey Matveev [Mon, 4 Mar 2024 20:13:19 +0000 (23:13 +0300)]
Retro Games Mechanics Explained

https://www.youtube.com/channel/UCwRqWnW5ZkVaP_lZF7caZ-g
Много видео поясняющего различные механики и баги в ретро игрушках,
которые на игровых приставках.

3 months agoOpus 1.5
Sergey Matveev [Mon, 4 Mar 2024 19:30:21 +0000 (22:30 +0300)]
Opus 1.5

https://opus-codec.org/demo/opus-1.5/
В новой версии Opus всякие ML-related улучшения и нейросети.
В основном всё качается VoIP.

3 months agoCloudinary снова про JPEG XL
Sergey Matveev [Thu, 29 Feb 2024 17:32:31 +0000 (20:32 +0300)]
Cloudinary снова про JPEG XL

https://cloudinary.com/blog/jpeg-xl-and-the-pareto-front
Куча графиков сравнений с JPEG, AVIF, WebP. Короче говоря:

    This consolidates JPEG XL’s position as the best image codec
    currently available, for both lossless and lossy compression, across
    the quality range but in particular for high quality to visually
    lossless quality. It is Pareto-optimal across a wide range of speed
    settings.

3 months agoGNU tar и автоматическое определение декомпрессора
Sergey Matveev [Thu, 29 Feb 2024 09:22:24 +0000 (12:22 +0300)]
GNU tar и автоматическое определение декомпрессора

Его нет. Я уже даже не помню сколько лет я просто отправлял данные в
"tar x" и декомпрессор находился сам, на основе данных на входе. А в
GNU tar, при подаче через stdin, он так не умеет. Более того, он сам
прекрасно при этом понимает что ему подаётся Zstandard и предлагает
использовать --zstd опцию, но автоматом сам её не подставит.

3 months agoСтатистика внедрения IPv6, преимущества и перспективы
Sergey Matveev [Wed, 28 Feb 2024 07:49:50 +0000 (10:49 +0300)]
Статистика внедрения IPv6, преимущества и перспективы

https://www.etsi.org/images/files/ETSIWhitePapers/etsi_WP35_IPv6_Best_Practices_Benefits_Transition_Challenges_and_the_Way_Forward.pdf
https://www.rfc-editor.org/rfc/rfc9386.html
RFC и ETSI документы на эту тему есть. Про SRv6 не раз упоминают в
последнем. Только в прошлом году впервые видел его упоминание.

3 months agoНебезопасности в PDF
Sergey Matveev [Tue, 27 Feb 2024 06:49:12 +0000 (09:49 +0300)]
Небезопасности в PDF

https://web-in-security.blogspot.com/2021/01/insecure-features-in-pdfs.html
Я предполагал что можно бесконечные циклы делать например, для DoS, как
и сам факт запуска JavaScript тоже путь не хороший. Авторы проанализировали
кучу программ. MuPDF, среди standalone реализаций, оказался почти ничему
не подвержен. Его (f5ac4628c014cc4c9fb43f7f15c6bd5cc211d24d) я стал
использовать уже давно.

3 months agoЧем ChaCha20 лучше AES-256
Sergey Matveev [Sun, 25 Feb 2024 15:15:53 +0000 (18:15 +0300)]
Чем ChaCha20 лучше AES-256

https://mailarchive.ietf.org/arch/msg/cfrg/YVVjUaDCCaBndfaokO2m-zNpQRA/
AES-256 использует в 1.5 раза больше операций чем AES-128. Между тем,
замечает DJB, ChaCha20:

* использует в 1.4 раза меньше операций чем AES-128
* не имеет никаких накладных расходов во время подготовки ключа к работе
* имеет бОльшую безопасность PRF чем AES-256
* имеет гораздо больший порог безопасности чем AES-256

Программная реализация ChaCha20 использует "fast addition circuits in
CPUs", сглаживая какие бы то ни было timing утечки как это было в
https://eprint.iacr.org/2019/996, не говоря про кучу утечек у самого AES
из-за применения таблиц поиска.

3 months agoАнализ PQ3 в стиле Хабра
Sergey Matveev [Sun, 25 Feb 2024 12:09:25 +0000 (15:09 +0300)]
Анализ PQ3 в стиле Хабра

https://habr.com/ru/articles/796065/
Просто позорнейшая и постыднейшая статья. Не, я сам недавно упоминал PQ3
алгоритм от Apple (f3f761c7479fc29876ee97502684fd06b74867b8), но только
в том плане, что бросаются громкими словами, но без какой-либо критики в
криптографическом и техническом плане. Это просто некий state-of-art
протокол с постквантовыми алгоритмами, ratcheting и постоянным
добавлением энтропии в ключевой материал эфемерными ключами. Ничего
революционного, но и ничего плохого -- наоборот хорошо что современный и
учитывающий современные реалии, молодцы.

Автор пишет, что подробностей на каком-то ресурсе о деталях протокола не
дали. Пошёл искать дальше на ещё один какой-то сайт. А в чём проблема
зайти на сам Apple? Там не то что полное описание протокола в деталях,
но и криптоанализы есть.

    Это так назвали шифрование поверх обычного RSA, с временными
    ключами? Да его в чистом виде то никогда и не было, всегда совместно
    использовались обычные симметричные ключи и алгоритм Диффи Хеллмана,
    ибо есть свои уязвимости.

Причём тут RSA? Его там и в помине нет.
Почему чистого RSA никогда и не было? Как-раз таки его полным полно
везде и всюду было. Лишь относительно недавно его официально стали
выпиливать из таких протоколов как TLS 1.3.
Какие уязвимости даже при использовании "обычного" RSA? Сложности -- да.
Уязвимости? Нет, не поэтому стараются сейчас DH использовать.

    HTTPS и MTPROTO (Telegram) самые популярные примеры, у Signal
    (Signal и Whatsapp) вроде похожий принцип.

Не HTTPS, а TLS. MTProto лучше бы не позориться, даже его упоминанием.
У Signal похожий принцип? Да именно в нём впервые как-раз и было
популяризованы идеи ratcheting и полной замены подписей для
аутентификации тройным (а дальше и больше) DH.

    Постквантовые ключи? Это тот же RSA, только генерация ключей на
    эллиптических кривых, которые не так просто даются алгоритму Шора и
    выдают ту же стойкость при меньшем размере.

Какой, @#$%, RSA то опять? Его там даже близко нет. Автор считает что
постквантовые ключи это нечто основанное на эллиптических кривых (ECC)?
Что за бред? Конкретно в PQ3 используется Kyber, не имеющий никакого
отношения к ECC, принципиально иной алгоритм
(cc0b820a5564d3ad136183951b882bf31c5ab606). Но он используется гибридно
совместно с ECC -- если один из них поломается, то вся система не летит
к чертям. Кроме того, ECC тривиально ломается на (гипотетическом)
квантовом компьютере, ничуть не сложнее чем RSA.

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

3 months agoЗаценил Borknagar -- 2024 -- Fall
Sergey Matveev [Sun, 25 Feb 2024 08:52:14 +0000 (11:52 +0300)]
Заценил Borknagar -- 2024 -- Fall

https://en.wikipedia.org/wiki/Fall_(Borknagar_album)
https://www.youtube.com/watch?v=Dujno_ftAMk
Обожаю эту группу, ждал её нового альбома. Смесь black, progressive и
folk металов. Альбом продолжает идеи и в духе предыдущего потрясающего
True North. Прям скучал по вокалу Lars A. Nedland
(b21bc97300719af31e38a3cacab42d566d1231c3,
a1f1290c205c48fe52158cc58c03ee3470d20904). Отличнейший альбом!

3 months agoОптимизация поиска в libalias
Sergey Matveev [Sat, 24 Feb 2024 21:05:03 +0000 (00:05 +0300)]
Оптимизация поиска в libalias

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=253912
У меня было много проблем с нагрузкой на CPU в моём ipfw:
f8e2e4dfc6870c4dad7e62be9bb02ae9dd73d180. Всё жутко сильно
упиралось в NAT, а точнее libalias реализацию, используемую
в ipfw. Сегодня снова разбирался во всём этом, ибо у меня
Xeon современный, а у него половина ресурсов занята сетью,
а точнее libalias-ом.

Увереннее, уже рефлекторно стал вводил "netstat -Q" (просмотр очередей
netisr (kernel network dispatch service)), "top -aSH" (где видны
конкретные ядерные модули отнимающие ресурсы), "vmstat -m" (размер
памяти отведённой для libalias там виден), "vmstat -i" (видеть
распределения прерываний по ядрам).

Отчаялся уже, ибо выходило так, что вот ну ни может FreeBSD выжать NAT
для 100Mbps интерфейса, за которым всего 1.5 машины по сути (одна с
BitTorrent активным, а вторая это мой компьютер, иногда часами ничего не
дёргающего из IPv4 Интернета).

Но нашёлся bug по ссылке, с патчем, созданный ещё пару лет назад. И
никто его не мёржит никуда. Прошло пара часов -- полёт отличнейший. На
процессоре смехотворные несколько процентов одного ядра максимум теперь
(и это firewall, NAT и AQM).

    While lookup of outgoing packets uses hash based on both source and
    destination address, for incoming packets only alias address and
    port is used. So when multiple connections from different addresses
    target the same port of redirected address (using redirect_addr or
    redirect_port in IPFW), the link table must be searched sequentially
    - tens of thousand of items for every incoming packet. To make it
    worse, the search is under a lock, so it is forced to run on a
    single core. Consequently just 1000pps from different addresses are
    enough to bring down a server with the fastest CPU available in
    under a minute.

Прям вот ситуация именно как у меня, точь-в-точь. И ведь самая обычная
банальная домашняя. Как-будто крайне редко и мало кто с ней встречается.
Вот тут то и можно бы было сказать что FreeBSD не для дома. Но нет,
всего то маленький патчик нужен.

3 months agoФрагментация пакетов gif-туннеля
Sergey Matveev [Sat, 24 Feb 2024 20:55:14 +0000 (23:55 +0300)]
Фрагментация пакетов gif-туннеля

При использовании gif/gre/stf туннелей в FreeBSD, отправляемые пакеты
форсированно фрагментируются если размером больше минимального MTU IPv6
(1280 байт). sys/netinet6/in6_gif.c:

    [...]
    /*
     * force fragmentation to minimum MTU, to avoid path MTU discovery.
     * it is too painful to ask for resend of inner packet, to achieve
     * path MTU discovery for encapsulated packets.
     */
    return (ip6_output(m, 0, NULL, IPV6_MINMTU, 0, NULL, NULL));

Так как у меня gif-туннель используется для инкапсуляции IPv4 трафика
поверх динамически маршрутизируемого IPv6, который поверх слонокадров
идёт, а MTU gif-туннеля = 1500, то куча пакетов фрагментируется без
какой-либо необходимости. Всё же на пустом месте чуть ли не удваивать
количество пакетов не очень приятно, поэтому можно просто поменять этот
IPV6_MINMTU на ноль.

3 months agoПочему используются ECDH вместо традиционного DH?
Sergey Matveev [Thu, 22 Feb 2024 19:30:29 +0000 (22:30 +0300)]
Почему используются ECDH вместо традиционного DH?

https://mailarchive.ietf.org/arch/msg/cfrg/bGiT7BHITzP6Ir0coceGaeyIROE/
Отвечает DJB. Потому что сильно проще безопасную реализацию делать
именно на эллиптической криптографии. Классический DH или там RSA
могут быть безопасно сделаны и использованы -- просто это сильно
сложнее достичь. И это если не обсуждать производительность и
размеры ключей.

3 months agoОбновил аккумулятор в ИБП
Sergey Matveev [Thu, 22 Feb 2024 16:38:13 +0000 (19:38 +0300)]
Обновил аккумулятор в ИБП

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

3 months agoПоздравительная открытка к 23 февраля на работе
Sergey Matveev [Thu, 22 Feb 2024 16:09:02 +0000 (19:09 +0300)]
Поздравительная открытка к 23 февраля на работе

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

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

3 months agoСнова долго без Интернета
Sergey Matveev [Thu, 22 Feb 2024 15:15:45 +0000 (18:15 +0300)]
Снова долго без Интернета

4-6 часов не было link-а от провайдера. Сказали что пожарные
всякое проверяли и вырубали электричество у их оборудования.

3 months agoeXoScummVM 2.8.0
Sergey Matveev [Wed, 21 Feb 2024 17:56:35 +0000 (20:56 +0300)]
eXoScummVM 2.8.0

https://www.retro-exo.com/scummvm.html
https://scummvm.org/
Вышла обновлённая версия колоссального сборника всех игр что
поддерживает ScummVM. Этот эмулятор не требует много зависимостей,
работает на большом парке платформ и операционных систем. Не нужны
DOSBox, WineHQ и прочие штуки. За последнее время в ScummVM много
каких игр появилось -- почти все добавились в этот торрент.

3 months agoiMessage PQ3
Sergey Matveev [Wed, 21 Feb 2024 17:37:10 +0000 (20:37 +0300)]
iMessage PQ3

https://security.apple.com/blog/imessage-pq3/
Как понять что статья написана явно в Apple?

    ...we are announcing the most significant...
    ...a groundbreaking post-quantum cryptographic protocol that
    advances the state of the art...
    ...extensive defenses against even highly sophisticated quantum
    attacks...
    ...has the strongest security properties of any at-scale messaging
    protocol in the world...

и это только первый абзац. Читал про сам протокол по диагонали, но
вроде ничего существенно нового нету. Просто применяются относительно
современные алгоритмы и идеи (тьма которых популяризована Signal-ом).
Но 256-бит ECDSA, NIST P... не вяжется с strongest, coolest, greatest.

3 months agoDisney о провале своих фильмов
Sergey Matveev [Tue, 20 Feb 2024 13:52:33 +0000 (16:52 +0300)]
Disney о провале своих фильмов

https://icdn.lenta.ru/images/2024/02/20/16/20240220163234935/owl_detail_620_b02930b05e48c43ee30d8d1a5399e8f7.jpg
https://lenta.ru/news/2024/02/20/disney-ob-yasnil-proval-svoih-filmov-v-prokate-seksizmom-zriteley/
Disney считает, что провал его фильмов в прокате связан со зрителями. Да
достаточно только на кадр из их очередного фильма посмотреть: чисто
белокурая девица, чисто негритянка, чисто азиатка (?) в одном кадре, ну
и конечно же, небось все они лесбиянки... ой, а кто-то наверняка на
самом деле мужчина. Может это они там совсем с ума посходили уже со всей
этой дебильной политикой и маразмом? Хотя их *люто* страшную негритянку
русалочку уже сложно переплюнуть. Адекватность совсем потеряли.

3 months ago"Тайны Блэквуда" и "Проект Послеловие"
Sergey Matveev [Tue, 20 Feb 2024 07:45:42 +0000 (10:45 +0300)]
"Тайны Блэквуда" и "Проект Послеловие"

http://www.stargrave.org/LinksCatAudiobook.html
https://rutracker.org/forum/viewtopic.php?t=6071812
https://rutracker.org/forum/viewtopic.php?t=5325369
Puffin Cafe весь прослушан (79a334426baf1cf9139784c6c721be7891893386),
обновлений на Рутрекере не видно больше. Механиков точно не хочу
продолжать слушать (ab3db371c107c2d582b31e879e82472479227a2f) -- снова,
снова и снова автор будет описывать и разукрашивать автомобили.

Но обнаружил от уже известных мне авторов (озвучки) ещё пару проектов.
Полдюжины книг из "Тайн Блэквуда" уже прослушал -- тема всяких ужастиков,
не sci-fi. Но нравится, тоже такое люблю.

3 months agoПро читерство в играх
Sergey Matveev [Mon, 19 Feb 2024 21:26:07 +0000 (00:26 +0300)]
Про читерство в играх

https://www.youtube.com/watch?v=wPSxXwchiU8
Смотря на ролик рассказывающий про то, какие читерства бывают, понял что
я застрял где-то на 30 лет назад. Если про штатные читы и ArtMoney (даже
пару раз использовал) я ещё был в курсе, то дальше совершенно не в теме.

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

Но это если про FPS говорить. А про RPG, MMORPG, где ещё и валюта есть,
grind... ну да, это ещё могу понять. Если соревнования и деньги... там
где деньги, то сразу всё становится понятно.

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

Бывают даже HvsH сервера: где читеры против читеров. Прямо как в Core
War игре, где вредоносные программы между собой воюют.

Да и я вообще-то ни разу в жизни не играл с кем-то по Интернету. По
COM-порту с нуль-модемным кабелем -- да. По настоящему модему, напрямую
звонив второму человеку -- тоже. По локальной сети конечно же, но вроде
уже только по TCP/IP, IPX не застал. LAN появился у нас дома когда я в
Unix системах уже жил.

3 months agoПервый релиз goredo прогнанный в zwoki
Sergey Matveev [Mon, 19 Feb 2024 18:01:21 +0000 (21:01 +0300)]
Первый релиз goredo прогнанный в zwoki

Пишу я тут CI систему (7e1dbd0539c7ea5c6bd5e8831abeea4796da693e).
Полностью перевёл сборку пакетов на использование redo. Мало того, что
это сократило код за счёт того, что всякими вопросами атомарной записи
файлов не приходится заниматься, что появились честные зависимости между
пакетами при сборке, что из-за lock-ов на выполняемые цели теперь нет
конкурентных попыток установки собранных пакетов, так ещё и внезапно (об
этом вообще не думал) это всё прекрасно начало распараллеливаться. Пока
одна из зависимостей собирается, для другой качается distfile например.

Плюс я почти избавился от zsh кода. Оставил его только в паре скриптов.
Сами .do цели на POSIX shell написаны. Прежде всё было на нём в системе
сборки. С redo вышло неожиданно всё здорово, а то я было вообще сомневался
будет ли от него польза в данном проекте.

Ну и в качестве первого проекта, для которого я на коммиты выполнял бы
тесты, с его сборкой из исходников, стал goredo. Обнаружилось что тесты
в нём зависят и от Python (ибо это тесты apenwarr/redo, без Python не
работающего) и от Git. Сделал коммиты избавляющие от них, запушил, git
hook создал события, task-maker насоздавал $task-ов, task-taker начал их
забирать и выполнять. Часть коммитов упали, из-за недостатка в
зависимостях, оставив tmux-ы со всем окружением упавшим. Последний
коммит успешно прошёл, подчистив за собой. zwoki выполнил задачу для
которой и был создан. redo очень кстати был. Ну и появился goredo 2.6.1
релиз минорный, о котором даже в рассылку не буду оповещать.

3 months agoGitLab и SHA256 репозитории
Sergey Matveev [Sun, 18 Feb 2024 12:25:01 +0000 (15:25 +0300)]
GitLab и SHA256 репозитории

До сих пор GitLab (73555bc7b599082947d066015b3010be9a3e9c5f) не
поддерживает SHA256 репозитории. А мне новый создавать как изволите?
Продолжать новые проекты создавать с SHA1 форматом? На работе у нас
в качестве Git-репозитория как-раз GitLab используется. Я за это не
отвечал, конечно же.

Что-то мне в голову приходит пока только одно решение как бы хранить в
SHA1 репозитории SHA256 данные. Коммитить туда git-bundle (+сжатие) файл
с полным содержимым репозитория. Он будет каждый раз перезаписываться,
но на старые копии уже ссылок не будет и git-gc будет подчищать
неактуальные копии. Ну и где-то в стороне держать нормальный SHA256
репозиторий в качестве remote.

3 months agoНовый проект: zwoki
Sergey Matveev [Sun, 18 Feb 2024 07:41:48 +0000 (10:41 +0300)]
Новый проект: zwoki

Целую неделю ни одной записи в блоге. Точнее была одна несколько дней
назад об исправлении одной баги, но удалил, так как ничего не исправилось.
А всё потому что полностью погружён в написание новой программы на
работе, больше вообще ни на что не отвлекаясь.

У нас работе нет devops-ов, нет достаточного кол-ва админов, вообще
народу не шибко много. Поэтому если хочешь какую-то систему CI для
сборок -- ну бери и делай. Виртуальные машины или железо тебе выделят, а
вот дальше возись сам. И у нас было n-ое кол-во BuildBot установок.
Часть из них уже никем не поддерживается и из-за изменений
инфраструктуры и не в рабочем состоянии. Что-то на них подправить никто
не знает как. На некоторых, к тому же, всё установлено через Nix, к
которому мало у кого есть охота изучения. Даже те, кто прежде его
использовал активно -- плюнули, из-за постоянных изменений в upstream-е,
требующим постоянное обновление правил сборки (либо сидеть на версиях
годовалых давностей и обновлять только собственные пакеты).

Какие CI системы я знаю? В живую имел дело с Jenkins и BuildBot. Первый
-- на Java и монструозен. Просто воспоминания о том как возиться с его
правилами сборки -- отталкивают от одной мысли его использовать. Второй
написан на Python. А это означает: ee3156341baf276877e601325bb9555ce5743fb1
что хрен его поставишь, не скачивая руками все его зависимости и вручную
подсовывая в virtualenv. Если авторы не предоставили vendored
зависимости (чего конечно же из Python разработчиков штатно никогда не
делает (а вот в моём PyDERASN, кстати, все зависимости приложены в
tarball)), то это просто неуважение к своему времени и силам в попытках
это всё развернуть. Кроме того, современные версии BuildBot имеют WebUI
требующий JavaScript -- поэтому если и ставить, то старьё.

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

По большей части новый CI framework уже написан, как и правила сборки
нескольких проектов. К сожалению, делаю это полностью в рабочее время
(благо, срочных задач пока нет, поэтому могу позволить), не обсуждал
можно ли это выложить в виде свободного ПО. Поэтому пока это закрытая
разработка внутри компании. На следующей неделе уже буду разворачивать
на настоящем железе.

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

* оно должно работать на разных платформах: как минимум GNU/Linux
  (Astra, Debian) и FreeBSD
* в идеале, slave выполняющий задачи, должен быть как можно более
  минималистичной ОС из коробки. Вот поставили голую FreeBSD или Astra
  -- и вот она уже должна мочь выполнять задачи раздаваемые. Чтобы можно
  было быстро вводить в строй новые машины для сборок

BuildBot никоим образом не поможет с последним требованием. Если для
сборки нужен PostgreSQL например -- ну или добавляй его сборку/установку
в шаги сборки проекта, или ставь прямо в саму систему slave-а. Последним
админы BuildBot-ов и занимались. Если появляется новый проект с совсем
иными требованиями (например для сборки многого моего софта нужен redo),
то это ставится в slave-ы вручную. Ну или через Nix, Ansible, Puppet,
whatever. Но не средствами BuildBot.

Нужно что-то, что позволяет собирать и устанавливать "пакеты". Хотелось
бы, чтобы сборка проекта на первом шаге просто сказала что мне нужен
"python", "postgres" и это как-то в эту сборку подсунулось. Да, примерно
таким и Docker может заниматься. Nix тот же. Но Nix поддерживает только
GNU/Linux (хотя когда-то давно была поддержка и BSD систем). Docker...
спасибо, но нет, плюс его вроде бы и нет на FreeBSD (лень проверять, как
и возиться с ним).

Поэтому первым шагом я начал писать свой пакетный менеджер по сути.
Правила сборки описываются в shell скрипте, который устанавливает
программу в /well/known/permanent/path/hash-progname. А установка
пакета, которая на практике будет происходить в некой $tmp директории
сборки -- это просто вызов stow для создания symlink-ов из /well/known
пути до программы в $tmp/local поддиректорию. Добавив $tmp/local/bin в
$PATH, директории до библиотек и прочего -- можно удобно заиметь в своём
окружении нужный софт. Всё это очень сильно напоминает то, что делает
Nix. Так и есть. Так вышло, что я самостоятельно к этому пришёл. Но
напомню, что Nix не кроссплатформенный и в нём уродский собственный
функциональный язык для описания сборок. У меня же буквально shell
скрипты выполняющие всё нужное по шагам. Можно ли сторонней программе
легко и точно сказать от кого зависит тот, или иной пакет при сборке? В
Nix можно, а у меня нельзя. Ну и где это создаст проблем? В том то и
дело, что нигде. Как в redo: не запустив .do файлов -- никто не знает от
чего они зависят. Здесь аналогично. Зато никакого нового языка, нового
формата -- пиши как и на чём хочешь.

Установка в /well/known/... путь на любой ОС (GNU, BSD) и создание
$tmp/local stowed директории -- работает одинаково. Если есть
особенности сборки для заданной архитектуры, то внутри правил сборки
всегда есть $ARCH переменная и поэтому можно писать if [ $ARCH = ... ].

Пакет устанавливаться должен из единичного файла. Так я захотел, для
удобства. Думал что можно обойтись просто созданием .tar-а с
hash-progname-version директорией, которую распаковывать в
/well/known/..., но понадобилась возможность хранить run-dependencies
(для работы stow нужен perl, для tmux нужен libevent, и т.д.), точное
имя пакета (чтобы сам пакет имел имя progname-version.tar), информация о
сборке (из какого коммита взяты правила, как минимум).

Поэтому начал рождаться и собственный формат пакетов. Я сначала подумал
и придумал, а только потом пошёл смотреть что из себя представляют
пакеты в Debian, RedHat, Gentoo, и т.д.. Оказалось, что я полностью
схожим образом пришёл к точно такому же решению как и в Gentoo:
https://www.gentoo.org/glep/glep-0078.html
Архив с собранным пакетом находится внутри другого архива, в котором
метаинформационные файлы: name, rundeps, buildinfo, и т.д.. К каждому
файлу можно приложить .blake3 какой-нибудь, .sig/.asc подпись. Очень
просто и удобно. Главное следить за тем, чтобы метаинформационные файлы
находились в начале архива, чтобы до них можно бы было быстро
достучаться при потоковой работе:
    curl http://pkg/progname-version | tar xfO - name | read name_with_hash
Архив с программой, конечно же, может быть (и должен быть!) пожат.
    curl http://pkg/progname-version | tar xfO - bin |
        tar xfC - /well/known/$name_with_hash
Ну а через tee и заранее вычитанные .blake3 файлы можно проверить и
целостность на лету. Внешний архив не стоит сжимать, чтобы можно было бы
быстрее производить поиск по нему.

Машина для сборки пакетов из исходников не должна быть подключена к
Интернету. Может, но не обязана. Поэтому я давно за практику взял
разделение шагов скачивания исходного кода и его сборки. Для скачивания
нужны git, wget и всякое такое. Для сборки они, как правило, не нужны.
На одной машине можно запустить скрипты для скачивания, а на другой уже
использовать результат сформированный в distfiles.

Я не раз писал скрипты скачивания, в которых указывается URL до
tarball-а и криптографический хэш для его "аутентификации". Плюс
скачивал и добавлял в репозиторий и файлы с PGP подписями. Но я
использовал единственный хэш -- SHA512. Было бы здорово указывать хэши,
которые перечислены зачастую на страницах скачивания у проектов. Чаще
всего это SHA256. А вот например для Go 1.4, который нужен для сборок
более новых версий -- вообще только SHA1. Начал добавлять возможность
указывать несколько хэшей... и меня осенило: ведь именно всем этим и
занимается Metalink формат! c3ba3d2f29655d06dffe1ec836c9f0b98daec0c9,
2374b93f88e7a3222c0e91999306b259bd9e276c. Я же сам его уже давно создаю
и выкладываю для всех tarball-ов своего софта. В нём можно указывать
URL-ы для скачивания, разные хэши, встраивать подписи. Плюс он
поддерживается и GNU Wget-ом и Aria2. В итоге для скачивания софта я
просто добавляю в репозиторий .meta4 файлы и натравливаю на них
wget/aria2c. Часть софта есть только в виде VCS репозиториев -- ну тут
просто руками выполняются git fetch/clone/whatever и git-archive для
создания tarball. Для формирования .meta4 я использовать свою
meta4ra/meta4-create утилиту, но всё это можно без проблем проделать и
вручную, ведь это же текстовый XML.

Начал писать это всё на POSIX shell, чтобы на любой ОС можно было
запустить. Я сделал всё что мог, но всё же дошёл до того, что пришлось
для существенного облегчения жизни перейти на Z Shell. У меня много
pipe-ов используется -- поэтому нужен pipefail включённый. Я думал что
он де-факто есть в любом shell (e3a3ccff5507dd83913a0809b9525e3adabd64d2).
Но как оказалось, POSIX ещё не вышел с ним, поэтому и dash (Debian shell
по умолчанию) pipefail не добавляет! Да и если и добавит, на руках же
куча старых версий дистрибутивов. Переписывать pipe-ы на всякие вызовы с
FIFO файлами и прочими неудобствами я не собираюсь. Только из-за этого
dash я вынужден был плюнуть на POSIX shell. А какая альтернатива? GNU
Bash не имеет права на существование. *ksh? rc? fish? Наиболее разумным
и требующим меньшего порога вхождения я считаю только zsh. Либо писать
вообще не на shell, а на Perl, Tcl, whatever. С zsh хотя бы ещё
существенно всё упрощается в плане экранирования аргументов (чего нет в
bash: 30670475d5bc7b8601a555d33fad188602f96712).

А вот скрипты для создания, раздачи, взятия, запуска задач -- всё это
пока вышло написать на POSIX shell. Сами шаги сборки/проверки
конкретного проекта -- можно писать на чём хочешь, как например и .do
redo файлы. Шаги сборки -- просто исполняемые файлы, а значит и shebang
будет прочтён. Если кто-то захочет написать на zsh их, то заранее в
первых шагах достаточно выполнить pkg-install zsh и он появился в
$tmp/local окружении, став доступным для следующего шага сборки
написанного на zsh.

Скрипт запуска задачи занимает примерно экран POSIX shell. А в нём и
создание окружения, и установка stow+perl+zstd через tar xfO вызовы,
чтобы дальнейшие пакеты уже можно устанавливать через pkg-install
скрипт, учитывающий rundeps. Всё это запускается внутри tmux-а, дабы к
упавшей сборке можно было бы подключиться и попасть буквально в её
окружение где все падения и происходили. На самой системе slave-а иметь
tmux не нужно -- он ставится тут же сразу же из самосборных пакетов.

Скрипт запуска шагов сборки тоже занимает один экран. А это и
перенаправления выводов, демон touch alive файла, проверка не слишком ли
долго выполняется шаг (как в BuildBot -- если нет вывода в течении
часа), убийство зависшей задачи, подчистка всего мусора, и т.д.. Скрипт
создания задачи -- полэкрана.

Задача это директория с $TASK_NUM:$PROJNAME:$REVISION:$ARCH[:$HOST]
именем. Внутри есть code.tar и steps.tar. slave-ы не лазят
самостоятельно в git-ы для получения кода который надо проверять. Всё
это, ради разграничения полномочий, делается на абстрактном master.
Результаты выполняющейся задачи это директория с таким же именем, с:
    alive
    01step/
        stderr.txt
        stdout.txt
        exitcode.txt
    ...
и всё в таком духе. Вывод std* конечно же пропущен через tai64n. Если
нужно сохранить какие-то артефакты сборки, то просто кладём файлы в
эту директорию. Jenkins умел понимать особый XML формат с результатами
прогона unittest-ов и умел анализировать эти XML между соседствующими
сборками и показывать diff (стало падать на пять тестов меньше, и т.д.).
Тривиально положить шагам XML-ку, а сторонними утилитами, пробегаясь по
директориям с результатами, выполнять нужные вычисления.

У меня нет ни одного демона (ну кроме shell скриптов крутящихся в while
true аналоге). Абсолютно всё взаимодействие между master и slave
происходит через операции на файловой системе. Соответственно, между
ними поднимается NFS. Создание задачи: наполнение директории
$TASKS/tmp/$task:, а дальше создание $TASKS/tmp/$task:$arch и жёсткие
ссылки в каждую из этих директорий. Атомарное появление задач для
slave-ов: mv $TASKS/tmp/$task:* $TASKS/cur/. Только один slave должен
мочь взять задачу? mkdir $JOBS/$task:$arch -- только одной из машин это
удастся сделать. Никаких RPC/API демонов, никаких curl вызовов -- только
NFS, ФС и mkdir для атомарных операций.

task-maker-ы -- программы срабатывающие на появление событий от git
hook-ов, не обязаны запускаться на одной и той же машине (на master). По
сути, нет такой роли как центральный master сервер. Должен быть общий
NFS куда разные машины могут выкладывать свои разные $task-и. NFS с
$JOBS-ами или с $PKGS -- могут быть и другими машинами, другими
mountpoint-ами. Для удобства я для всех новых задач постоянно
инкрементирую $TASK_NUM счётчик -- что-то типа уникального
идентификатора задачи. Как это сделать атомарно, если всё что у нас есть
это NFS? Проблема в том, что на нём из коробки не работают lock-и:
https://serverfault.com/questions/66919/file-locks-on-an-nfs
Ну точнее из коробки в FreeBSD на NFSv4 у меня они не сработали. Дальше
не стал разбираться. Поэтому задачу с взятием значения счётчика я решаю
через бесконечный цикл с mkdir-ом инкрементированного значения счётчика
-- если это удалось сделать, то значит значение "наше", а другие пускай
снова пробуют mkdir-ить его инкрементирующееся значение.

Я сразу же условился не бояться copy-paste. Если что-то делается shell
скриптами, то очень многое можно выносить, DRYить в разные маленькие
скрипты. Помню, что берёшь какой-нибудь suckless проект, видишь пару
дюжин скриптов -- и как то вот сразу отпадает желание разбираться в нём,
даже просто прочитать названия этой кучи скриптов. Если во всех скриптах
сборки проекта есть общая часть с созданием временной директории,
trap-ом для её очистки, и всяким таким подобным -- я считаю ничего
страшного чтобы это копировать между всеми скриптами. А то откроешь
такой DRY файл: и видишь с десяток вызовов неизвестных тебе скриптов и
функций и начинаешь прыгать по файлам чтобы понять что они делают. А без
DRY ты просто видишь все шаги as-is. Надо стараться соблюдать некий
баланс между удобочитаемостью и минимальным порогом вхождения и
адекватностью объёма copy-paste. Это же касается и большого кол-ва
переменных окружения неявно приходящих в скрипты и функции: ничего
страшного чтобы постоянно писать $SKELBINS/$ARCH/$hsh-$name/bin -- всё
равно за человека это делает текстовый редактор.

Всё готово на 80-90%. Вышло значительнее меньше по коду чем я
предполагал. Нужно конечно ещё делать и делать описания всяких пакетов и
правил сборки того или иного проекта, но это уже рутина не влияющая на
код самого framework-а.

Проект, кстати, называется zwoki. Я начал отталкиваться от "2nd
continuous integration" фразы, в итоге вышла "zwo" (zwei, два), "ki"
(Kontinuierliche Integration, чтобы вышел не "zwoci", который фиг знает
как правильно прочитать). Должно бы быть конечно "zweiteki" (zweite --
второй, 2nd), но уже длинновато. А так получился "цвоки".

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

3 months agoСходили в цирк "Корона"
Sergey Matveev [Sun, 11 Feb 2024 20:21:12 +0000 (23:21 +0300)]
Сходили в цирк "Корона"

https://цирк.рус/
Со вчерашнего дня открылся приехавший на месяц в наш город цирк шапито.
Акробаты, воздушная гимнастка, жонглёр, силач (которого ещё и машина
переезжает), иллюзионист (который ещё и из арбалета стрелял метко). Было
весело, здорово, захватывающе. Очень всем понравилось!

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

3 months agoВпервые использовал Tesseract OCR
Sergey Matveev [Sun, 11 Feb 2024 20:17:49 +0000 (23:17 +0300)]
Впервые использовал Tesseract OCR

https://en.wikipedia.org/wiki/Tesseract_(software)
В девятом классе (20+ лет назад) я на подработке использовал FineReader
для распознавания текста. С тех пор ни разу не трогал подобный софт. А
тут надо один документ заново "набрать". Установил из портов Tesseract,
сделал на цифровую мыльницу фотографию документа, просто указал путь к
JPEG файлу и .txt файлу, подождал несколько секунд -- получил текст. Не
абсолютно всё распозналось, но почти всё. Существенно сэкономило время,
нежели пришлось бы набирать всё с нуля. Полностью свободное ПО, не много
зависимостей. Приятная штука оказалась, ожидал куда большего геморроя.

4 months agoПоказал "Большой куш" родителям
Sergey Matveev [Sat, 10 Feb 2024 19:53:00 +0000 (22:53 +0300)]
Показал "Большой куш" родителям

Причём в переводе Гоблина. Наверное впервые с ними посмотрел фильм где
не то чтобы мало мата. Фильм им понравился. Оказалось что оба не видели
его прежде, в отличии от "Карты, деньги, два ствола".

4 months agoAV1 и материал с BitTorrent
Sergey Matveev [Sat, 10 Feb 2024 19:39:20 +0000 (22:39 +0300)]
AV1 и материал с BitTorrent

Иногда я нахожу и качаю фильмы с BitTorrent-а. 2-3 гигабайтные с AVC
кодеком дают отличное качество, где, как правило, ни разу не увидишь, ни
одного квадратика, артефакта. Но многие выкладываются только в MPEG4 AVI.
Уже 2024-ый код, но на кой чёрт продолжать кодировать в это? Не, надо
сказать спасибо, что хоть в таком виде можно достать фильм, но всё же.
Или же часто выкладывают просто копию с DVD или BluRay, просто remux.
Занимают они дофига и я поэтому почти никогда не качал подобные
варианты, ибо жалко и каналы нагружать этим и на диске мне как-то жалко
на какой-то обычный фильм по 5-10 гигабайт. Очень немного фильмов, где
хочется сохранять качество картинки/звука на максимуме.

Но уже не раз сталкивался с тем, что или будет очень паршивый AVI или
DVD/BD-remux. Качал последние и перекодировал в AV1+Opus. И в 700-800
мегабайт вполне себе умещается 720p фильм с двумя звуковыми дорожками и
качеством изображения таким, что ни одного артефакта не увидишь. Прям
хоть только так и делай сейчас... а то ведь даже в HEVC кодеке редко
чего выкладывают.

И параметры кодирования FFmpeg для AV1 (SVT-AV1 кодек) у меня:

    -codec:v libsvtav1 -crf 24 -preset 3 -pix_fmt yuv420p10le -svtav1-params tune=0 -g 120

CRF=32 если перекодирую видео podcast-ов. Ну и "-g" зависит от
количества кадров. Всё остальное вообще не трогаю. Кодируется это где-то
со скорость 0.2x для <=720p.

4 months agoВинил папе в подарок
Sergey Matveev [Sat, 10 Feb 2024 19:37:02 +0000 (22:37 +0300)]
Винил папе в подарок

Скоро 23-е февраля. Папе ездил приобретать пластинки для его нового
проигрывателя (50aef4f17e5e3f8f90cb40a4b69e930643d83c64). А то из новых,
не со времён СССР, пластинок у него только одна Kiss. Теперь появился
альбом Pink Floyd и сборник живых выступлений всяких рок звёзд. Качество
звучания на них очень здоровское.

4 months agoДела домашние
Sergey Matveev [Sat, 10 Feb 2024 19:33:32 +0000 (22:33 +0300)]
Дела домашние

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

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

Везде нужен ремонт время от времени...

4 months agoMarketing bullshit о WireGuard
Sergey Matveev [Mon, 5 Feb 2024 12:54:52 +0000 (15:54 +0300)]
Marketing bullshit о WireGuard

https://vpnmag.ru/wireguard-protocol/
Не перестаю удивляться какую же неграмотную фигню умудряются писать.

    WireGuard использует семейство асимметричных ключей Curve25519,
    обеспечивающие более высокий уровень безопасности, чем ключи RSA и
    AES, используемые в других протоколах VPN. Благодаря асимметричной
    криптографии, WireGuard не требует ресурсоемких операций,
    используемых в других протоколах.

Что за семейство ключей? Как можно сравнивать асимметричный *25519 и
симметричный AES? В асимметричной криптографии, как-раз таки самые
тяжёлые операции всегда и делаются. Асимметричная -- значит ресурсоёмкая.
Плюс никто не запрещает использовать *25519 в IKEv2 для IPsec.

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

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

4 months agoGitHub думает таки добавить IPv6
Sergey Matveev [Mon, 5 Feb 2024 08:34:46 +0000 (11:34 +0300)]
GitHub думает таки добавить IPv6

https://news.ycombinator.com/item?id=39257841
https://news.ycombinator.com/item?id=39099065
https://supabase.com/blog/ipv6
Не прошло и кучи лет, но GitHub намекает на то, что собирается
использовать IPv6. Я думал что уж когда он перешёл к Microsoft,
то это точно должно было свершиться, ибо вроде бы MS давно
агитирует за IPv6, вроде бы и поддержку рабочую давным давно
имеют, а значит и специалистов.

HackerNews я перестал читать давно (сплошная политика, плюс всякое
дерьмо в топе, вместо крутых статей), но иногда на них ведут ссылки.
Увидел что и они, в кой да веки, тоже добавили IPv6. Из сайтов которые я
посещал и посещаю, наверное только Хабр остаётся в числе технологически
позорно отсталых.

Ну и Amazon (c9a5722cd25a2cbacd7d758f498e708200916abb) берёт деньги за
IPv4, что явно должно подстегнуть к ускоренному переходу на актуальный IP
протокол.

4 months agoПосмотрел "Конец славы"
Sergey Matveev [Sun, 4 Feb 2024 18:47:57 +0000 (21:47 +0300)]
Посмотрел "Конец славы"

https://www.kino-teatr.ru/kino/movie/ros/170525/annot/
Сходили в кино на этот фильм. Неплохой. Даже если бы он закончился и на
несколько минут раньше, без happy end -- тоже был бы хорошим, намекающим
на то, что второго шанса мало кому в жизни дают, надо голову включать
раньше и задумываться о своём поведении и отношении к окружающим.

4 months agoИспользование почтовых голубей по сей день
Sergey Matveev [Sun, 4 Feb 2024 08:09:50 +0000 (11:09 +0300)]
Использование почтовых голубей по сей день

https://computer-museum.ru/connect/dovemail.htm
https://golubevod.ru/
http://golubevodstvo.ru/

    И в наше время почтовый голубь используется по своему прямому
    назначению. В Голландии, например, голуби доставляют по назначению
    донорскую кровь в пробирках. Это выгоднее и быстрее, чем автомобилем
    из-за перегруженности магистралей. В Бельгии на небольшие расстояния
    голуби служат для доставки почты, особенно секретной – переносят
    маленькие магнитные пластинки (5x5 мм), которые вмещают информацию,
    равную по объему Библии. В Великобритании голубей используют биржи.
    Японские и немецкие журналисты во время Олимпиады с помощью голубей
    моментально получали сведения о результатах соревнований.

4 months agoAWS может получать более 1млрд$ за IPv4
Sergey Matveev [Sat, 3 Feb 2024 08:20:59 +0000 (11:20 +0300)]
AWS может получать более 1млрд$ за IPv4

https://www.tomshardware.com/networking/amazons-aws-new-charge-for-using-ipv4-is-expected-to-rake-in-up-to-dollar1b-per-year-change-should-speed-ipv6-adoption
Вот, собственно, одна из причин почему не так торопливо внедряют (ну а
точнее стараются предоставлять на последней миле) IPv4 -- это огромные
деньги. А IPv6 так много, что за даром отдают и бизнеса из воздуха не
сделаешь.

4 months agoВ паспортах место рождения должно совпадать со свидетельством
Sergey Matveev [Fri, 2 Feb 2024 20:22:20 +0000 (23:22 +0300)]
В паспортах место рождения должно совпадать со свидетельством

https://lenta.ru/news/2024/02/02/rossiyane-edva-ne-lishilis-otpuska-v-egipte-posle-proverki-pasportov/
Женщина родилась в Свердловске, а в паспорте стоит Екатеринбург. Благо,
таможня пропустила. У меня всю жизнь было всё в порядке по паспорту:
родился в Калининграде, а проживаю в Королёве. До середины 90-х город
был закрытым, а после того как стали всех впускать, то и название поменяли.
Но из-за "Калининграда" приходится не забывать указывать область, а то
многие думают что это далеко от Москвы.

4 months agoОдноразовые вспышки для фотоаппарата
Sergey Matveev [Fri, 2 Feb 2024 17:21:15 +0000 (20:21 +0300)]
Одноразовые вспышки для фотоаппарата

https://www.youtube.com/watch?v=AEm-2giH_zw
Никогда не видел таких устройств в живую, даже в музеях (или не обращал
внимания?). Только почему-то в Симпсонах вспоминаю серию, где Лиза и
Барт нашли древний фотоаппарат и после вспышки они выстреливали горячей
лампочкой. Я не знал что это действительно прям одноразовые лампы.

У родителей во времена СССР была Смена, но уже с электрической вспышкой.
Вообще она вроде бы чуть ли не до начала (и вроде и после) 2000-х нам
прослужила. Потом был куплен Olympus C3050W (точную модель не вспомню,
вроде бы как-то так называлась) цифровой, пишущий на CompactFlash. Вроде
до сих пор должен быть жив. На нём делали фотографии в Иране например.
Дальше родители купили цифровую компактную Sony мыльницу, но она толком
почти не использовалась, в отличии от Olympus. Ну а спустя ещё время у
них хорошие (с неплохими фотоаппаратами) смартфоны появились.

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

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

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

4 months agoКачество курсов и книг по программированию
Sergey Matveev [Fri, 2 Feb 2024 13:56:35 +0000 (16:56 +0300)]
Качество курсов и книг по программированию

https://habr.com/ru/articles/790758/
За последний месяц мне знакомые скидывали примеры вопросов и ответов на
курсах всяких (бывают открытые/пробные части). На курсе стоимостью в 40k₽
спрашивают какие права доступа будут на файле если сделать umask и сами
же совершенно некорректно высчитывают значение, хотя ведь можно просто
взять и руками выполнить umask+touch например. Показывали книгу, в
которой названы преимущества Go перед Python почти уровня "в нём
фигурные скобочки вместо отступов".

А тут вот статья на Хабре. Знаю что кто-то приемлет, но меня как бесило
использование "golang", так и продолжает, особенно когда люди причисляют
себя к Go-программистам -- при этом не знают официальное название языка
и инструмента (ведь даже сайт официальный уже не "golang.org"). Но это
мелочи, ладно.

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

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

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

    Лучше использовать буферизированные каналы. Как всем известно, когда мы
    пишем в небуферизированный канал, пишущая горутина блокируется до того
    момента, пока другая горутина не прочитает из этого канала. Чтобы
    избежать этой блокировки, можно использовать буферизированный канал на 1
    элемент.

Тут меня просто бомбит. "Лучше" использовать буферизованные, говорят.
Чтобы избежать блокировок. А... а если канал именно для блокировки и
синхронизации и используется? Буферизованный и небуферизированный канал
это просто тупо две совершенно разные сущности, для разных задач. Это
как "лучше" использовать автомобиль вместо велосипеда?

    for i, v := range slice
    в переменную v попадает копия слайса

Копия slice в переменную? Может быть всё же значение элемента slice?

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

Далее тестируют производительность switch и... map. Я прям вот реально
впервые вообще вижу что сравнивалась структура данных и код для
генерирования if-ов (грубо говоря). Вроде бы можно и вообще не
разбираться в сложности алгоритмов, но чтобы додуматься до тестирования
скорости switch и map...

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

4 months agoНастройки безопасности Chromium
Sergey Matveev [Fri, 2 Feb 2024 10:52:28 +0000 (13:52 +0300)]
Настройки безопасности Chromium

Чтобы опубликовать статью "Libre/OpenPGP vs OpenSSH/age"
(6df5bfb70dfc25de3344c4a28b307dc6fe4f1807,
1e117f483724c190b2d1cefb20355b910719b07d), пришлось с LiveCD загружать
KNOPPIX, так как в нём Chromium есть из коробки, тогда как под Firefox
не работает даже CAPTCHA для входа на Хабр. Всё это на отдельном старом
ноутбуке.

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

Просто ужас, насколько же современный Web стал неюзабельнейшим говном и
всякие LiveCD GNU/Linux дистрибутивы чёрта с два помогают и позволяют в
нём работать. Стоит конечно окончательно забыть про Хабр для публикации
статей, но раз в год могу и достать ноутбук, хотя теряю прилично времени
на попытку разместить на нём статью.

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

Сегодня вот появилась виртуальная машина, где можно было "apt install"-ом
установить Chromium и добавить выбор русского языка. Ради интереса полез
в настройки броузера. Возможно я вообще никогда в жизни не видел как это
делается в этом броузере. Пользовательские интерфейсы, конечно, уже
давно просто убивают: совершенно разные стили оформления на двух
соседних страницах, вообще не видно и не понятно что является элементом
управления/выбора, а что нет. Как тупая макака (или игрок в
point-and-click adventure) должен долбить курсором во всё что кажется
подозрительным на экране.

По умолчанию во вкладке "safe browsing" стоит "standard protection". А
рядом с "enhanced protection" стоит пометка о том, что при этом вся
"browsing data" отсылается в Google. Хм, интересное у них понимание
"enhanced protection". По умолчанию, действительно, у них используется
зашифрованный DNS (то бишь DoH/DoT/хз), конечно же, тоже сливающий это
третьим лицам. По умолчанию включена галочка о том, что периодически
Chrome будет проверять мои пароли напротив списков скомпрометированных
(то есть, снова сливать ещё и пароли (пускай даже и производные от них
-- это тоже ценная информация, чай не zero-knowledge же у них)).

4 months agosetuptools-rust
Sergey Matveev [Thu, 1 Feb 2024 18:01:15 +0000 (21:01 +0300)]
setuptools-rust

Надо было проверить работоспособность GoCheese для загрузки в него
Python пакетов. Обычная утилита для этого в Python -- twine, которую
только и использовал для загрузки. Делаем "pip install twine" и через
несколько минут падаем с тем, что на моей системе нет Rust. Кто-то,
где-то тянет setuptools-rust.

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

4 months agoЗащищая наши секреты от компьютеров
Sergey Matveev [Tue, 30 Jan 2024 08:05:17 +0000 (11:05 +0300)]
Защищая наши секреты от компьютеров

https://dl.acm.org/doi/10.1145/3623614
Многие работы связанные с криптографией регулярно упоминают Alice и Bob.
Эта же работа начинается с интригующего:
    Bob is in prison and Alice is dead; they trusted computers with secrets.

4 months agoПоиграл в маджонг у друзей
Sergey Matveev [Sun, 28 Jan 2024 14:04:01 +0000 (17:04 +0300)]
Поиграл в маджонг у друзей

https://ru.wikipedia.org/wiki/Маджонг
https://ru.wikipedia.org/wiki/Пасьянс_Маджонг
Как оказалось, на компьютерах я видел не маджонг, а пасьянс-маджонг.
Настоящий же маджонг, как Wikipedia пишет, это штука сродни покеру.
По началу были проблемы с тем, что, уж извините, но я ни одного
иероглифа не знаю, с трудом их отличаю, и даже не знал как цифры то
у них обозначаются. Но дальше полегче пошло. Вообще в целом очень и
очень понравилась игра, хотя полностью честно, не показывая свои кости,
не обсуждая у кого что и что можно сделать -- не успели сыграть. Всё же
порог вхождения не нулевой. Но однозначно хотелось бы повторения!

4 months agoБурк Бурук -- По образу своему
Sergey Matveev [Sun, 28 Jan 2024 11:52:23 +0000 (14:52 +0300)]
Бурк Бурук -- По образу своему

https://author.today/work/129269
Забавная (и не очень) история про троллиху. Описывают её жизнь, быт, как
пришли их убивать и порабощать люди.
    История о том, как стать человеком. И без всякой магии.
Вспомнились "Дикие истории" (1bf88b8b0e5b1e80b1d68700c632e3658c10f7a8) и
слоган книги должен бы быть:
    В каждом тролле есть человек. Не буди его.

4 months agoApple решила уничтожить квадратные checkbox-ы
Sergey Matveev [Sun, 28 Jan 2024 11:44:16 +0000 (14:44 +0300)]
Apple решила уничтожить квадратные checkbox-ы

https://tonsky.me/blog/checkbox/
Действительно, по форме элементов можно понять чем они являются. А
теперь, видимо пользователи смартфонов и macOS настолько отупели, что и
это уже не в состоянии воспринимать и дифференцировать -- поэтому Apple
решила сделать checkbox и radio button неотличимыми. Насколько ж нужно
себя не любить, чтобы использовать всё это дерьмо?

4 months agoБольше про ArVid
Sergey Matveev [Fri, 26 Jan 2024 18:06:28 +0000 (21:06 +0300)]
Больше про ArVid

https://jacobfilipp.com/arvid-vhs/
В ad67e5a0dfca5056d07a782b99250e2c0db31024 я упоминал Арвид: стример,
который использовал обычный видеомагнитофон и видеокассеты для хранения
внушительного объёма данных. В статье ещё и куча снимков экрана есть.

4 months ago{line,character,block}wise, inclusive/exclusive действия
Sergey Matveev [Thu, 25 Jan 2024 20:23:48 +0000 (23:23 +0300)]
{line,character,block}wise, inclusive/exclusive действия

Более двадцати лет я каждый день провожу часами в Vim. А сегодня заметил
что удаление "d%" блока текста занимающего несколько строк и начинающегося
с начала строки, при вставке вставляется как блок из нескольких строк, а
не как многострочный текст сразу после/до места где я нажимаю "p"/"P"
команды. Если же "d%" я делаю не в начале строки (до этого места хотя бы
один не indent символ есть), то при вставке оно ведёт себя уже иначе.

Не одна страница в help-е Vim-а написана про все эти *wise действия и
про *clusive. Но как-будто вообще впервые вижу. Впервые обратил внимание
на колонку с типом текста находящегося в регистрах. И документация прямо
явно намекает как бы делать форсированные character/line-wise действия.
Вот не перестаёт Vim удивлять и даже 20+ летней давности функционал
продолжает открываться.

4 months agoPKCS#12 проблема в OpenSSL
Sergey Matveev [Thu, 25 Jan 2024 18:58:54 +0000 (21:58 +0300)]
PKCS#12 проблема в OpenSSL

https://www.openssl.org/news/secadv/20240125.txt
В очередной раз, на уровне парсинга структуры ASN.1, OpenSSL может упасть.
Вот люто ненавижу этот проект из-за ничтожного качества. Да и PKCS#12 это
одно из самых переусложнённых и монструозных что придумано.

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

4 months agoYahoogle. Доверие к Gmail "show original"
Sergey Matveev [Thu, 25 Jan 2024 12:02:40 +0000 (15:02 +0300)]
Yahoogle. Доверие к Gmail "show original"

https://wordtothewise.com/2024/01/dont-trust-gmails-show-original/
В Gmail есть возможность показать оригинальное письмо полностью, со
всеми заголовками. Пишут что они всё же некоторые данные вполне себе
меняют и не отображают оригинал.

А ещё услышал про "yahoogle". Прежде только о "faceboogle".

4 months agoБогиня небес
Sergey Matveev [Thu, 25 Jan 2024 11:54:21 +0000 (14:54 +0300)]
Богиня небес

https://www.securitylab.ru/news/545517.php
И не поверишь, что это природа так выдумала туманность.

4 months agoFFV1+Matroska в библиотеке конгресса
Sergey Matveev [Tue, 23 Jan 2024 20:48:58 +0000 (23:48 +0300)]
FFV1+Matroska в библиотеке конгресса

https://blogs.loc.gov/thesignal/2023/12/embracing-ffv1-matroska-container-preferred/
Библиотека конгресса США теперь считает .mkv с FFV1 кодеком
(c2327fd8617a2a200ea75dbd3ab1bb30001891fb94d581df931a13bce7f419069466d52a81b45e78)
предпочтительным для хранения. Это конечно не то чтобы весомым
аргументом где-либо должно быть, ибо среди предпочтительных форматов у
них и проприетарные .xls, .xlsx есть, а среди допустимым даже RAR есть.

4 months agoIPv6 город в Китае. IPv6 в Чехии
Sergey Matveev [Tue, 23 Jan 2024 08:00:15 +0000 (11:00 +0300)]
IPv6 город в Китае. IPv6 в Чехии

https://blog.apnic.net/2024/01/23/the-ipv6-city-xiongan-china/
https://konecipv4.cz/en/
Упоминают о городе, в котором только IPv6 сетевая инфраструктура
(хотя всё же до сих пор остаются шлюзы в устаревший Интернет). А
к 2032-ому госучреждения Чехии должны прекратить предоставлять
доступ через IPv4. 2032... вообще это чуть ли не десять лет. Но
на уровне государств (Белоруссия a641dcab42a75c5de321740567c63c9b4e48f015,
США 2e24ed164b9fc1d8b0c0d5e852245e3fb3c65edc, вся Азия в целом, особенно
Китай) форсирование не только внедрения IPv6, но и выпила IPv4 дело идёт.

4 months agoOpenBSD и UTF-8
Sergey Matveev [Tue, 23 Jan 2024 07:54:23 +0000 (10:54 +0300)]
OpenBSD и UTF-8

В рассылке FreeBSD вот такое письмо прилетело:

    > Which I think leads to one of my big reasons for supporting Rust and
    > something else that needs to be moved to its own thread, Text encoding
    > issues. I think the project needs to follow OpenBSD's lead and
    > deprecate non UTF-8 locales. While I personally can't read or write
    > anything other than English and a few dozen words in Spanish,
    > Portuguese, and French, I can find or create test input data that isn't
    > in basic ASCII and test my string handling against such input. Assuming
    > allowing things like French column names make sense.

    First this is already deprecated, only utf-8 locales and encoding are being
    updated on regular basis! Second, no we will not follow the path of OpenBSD here
    because locales are not only for interactive, but text processing, like
    for example databases (collation, comparison etc) and there are plenty of data
    stored that cannot be converted to unicode for many valid reason, dropping non
    unicode locales will just make sure those data and databases cannot be served
    on FreeBSD anymore! (btw note that OpenBSD, while having deprecated all non UTF-8
    encoding support, do not support unicode collation).

Вот верно заметили, что локализации используются не только для
интерактивных программ (9a7015f648c3b55e1c1ff22f8bfd2958dcf2e255).
И в очередной раз неприятно удивила меня OpenBSD тем, что там нет
Unicode collation. Не, понятное дело что никто не мешает использовать
внешние библиотеки, но если уж вы за Unicode, то без collation многие
web-задачи не выполнимы. Странные эти OpenBSD-шники всё же.

4 months agoТеория игр за 15мин
Sergey Matveev [Mon, 22 Jan 2024 07:59:16 +0000 (10:59 +0300)]
Теория игр за 15мин

https://habr.com/ru/companies/raft/articles/787906/
Я только научно-популярные статьи на тему теории игр читал. Как минимум,
дилемма заключённых упоминается частенько в книгах по криптографии.
Интересная штука. Впрочем, как и по экономике чего научно-популярное
читать, то тоже интересно, особенно про всякие парадоксы (типа
поднимаешь цену на гречку, и её сметают с полок).

4 months agoОбсуждают внедрение Rust в FreeBSD
Sergey Matveev [Sun, 21 Jan 2024 14:44:01 +0000 (17:44 +0300)]
Обсуждают внедрение Rust в FreeBSD

https://lists.freebsd.org/archives/freebsd-hackers/2024-January/002845.html
Пока никто не видит смысла, зато тьму недостатков экосистемы Rust,
не забывая отмечать, что его bootstrap -- тёмная лошадка.

4 months agoПобывал на выставке-форуме "Россия"
Sergey Matveev [Sun, 21 Jan 2024 13:52:11 +0000 (16:52 +0300)]
Побывал на выставке-форуме "Россия"

https://vdnh.ru/russia/
Хоть он идёт уже и не первый месяц, но вот только сейчас выбрались с
родителями на него. Очень понравилось там! Страна то огромна и
разнообразна как нигде и ни у кого. Сколько всяких республик а народов.
И на них можно посмотреть, ознакомиться с их миром. БОльшая часть
информации подаётся в интерактивном виде через сенсорные экраны. Время
от времени там выступают и культурный досуг устраивают то одни, то
другие. Мама вот наконец-то в живую горловое пение услышала (я то не раз
на концертах подобных был). Если разглядывать и читать всё -- то нужно
много часов, информации очень прилично.

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

4 months agoПрочитал "Игра головой" Павла Виноградова
Sergey Matveev [Sun, 21 Jan 2024 13:49:34 +0000 (16:49 +0300)]
Прочитал "Игра головой" Павла Виноградова

http://samlib.ru/w/winogradow_p_w/igra_golovoy.shtml
Короткий рассказ, где повествование идёт от лица комментатора
благородной игры в мяч. Но только во времена майа. Очень весело,
хотя и кроваво дико. Люблю подобный чёрный юмор и нормальное
отношение тех народов к нему.

4 months agoПрочитал "Курс выживания для подростков" Ди Снайдера
Sergey Matveev [Fri, 19 Jan 2024 20:25:26 +0000 (23:25 +0300)]
Прочитал "Курс выживания для подростков" Ди Снайдера

https://www.livelib.ru/book/1000318539-kurs-vyzhivaniya-dlya-podrostkov-di-snajder
Отец тут написал о том, что вспомнил как хотел было её мне обязательно
порекомендовать, но мне тогда ещё было всего два года, а потом у него
вылетело из головы.

С один сегодняшний вечер её всю осилил. Сам Ди Снайдер то написал её в
30-летнем возрасте. Я то уже на одну пятую старше.

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

Собственно, прям вот ни с одной рекомендацией или заявлением не
возникало диссонанса (ну кроме раздела про гомосексуализм, где, пишет,
что 60% парней имели гомопыт... видимо это в США у них так). Прям да --
всё говорит как есть, подправлять нечего. Хотя мой опыт с женщинами
существенно отличался (первый поцелуй только в 20 лет был, а не забыть
свою бывшую я не мог 8 лет), но абсолютно точно к таким же выводам и
мыслям всё равно пришёл.

Название Twisted Sister (плюс их хиты) и имя Снайдера и слышал, но не
более. Не моя музыка. Но Снайдера, хоть он и весь из себя такая
рок-звезда, зауважал, видя и его отношение к сексу и неупотребление ни
курева, ни выпивки, ни наркоты, только дофига кофе (а у меня чая).

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

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

Снайдер отмечает, что в его юности (60-е) он мало чего знал о сексе и
его заботами было смазывание бейсбольной перчатки и пополнение коллекции
пластинок. А сейчас (то бишь в 80-е) у подростков проблемы ранней
беременности, наркотики, самоубийства возрастающие в геометрической
прогрессии. Вот и в моей юности: не было Интернета, не было смартфонов
(ну у меня то была FreeBSD и FidoNet, но таких не много встречалось). О
сексе физиология безусловно заставляла думать, но я могу припомнить
только две пары среди трёх старших классов -- вроде бы больше никто ни с
кем не встречался. В лагере (5162408ec89dda8c83b6fa446ff2921abe327264)
вожатые о теме секса не заикались. А от одного знакомого, который всего
на ~3 года помладше, уже слышал что и секс у старшеклассников случался
не редко и, будучи вожатым, они напоминали о важности презервативов
школьникам в лагере (если память не сильно изменяет, то речь была про
7-8 классы).

Пишет, что в свои 30 он ощущает себя подростком всё ещё. Я точно помню
что в 30 говорил что ощущаю себя студентом -- вот как-будто только
совсем недавно закончил институт. Но последние 2-3 года я совершенно
перестал так говорить, ибо видя и общаясь с кучей молодых (10+ лет
разницы) коллег, всё же разница мне становится ощутимой, уже не чувствую
что из одной песочницы с ними. Я реально по своим собственным внутренним
ощущениям чувствую что куда ближе к коллегам 40+.

4 months agoРассказал про redo, daemontools, UCSPI
Sergey Matveev [Fri, 19 Jan 2024 20:22:19 +0000 (23:22 +0300)]
Рассказал про redo, daemontools, UCSPI

Три часа на работе рассказывал с проектором и практической демонстрацией
про redo, недостатки Make, daemontools, UCSPI и вообще DJB-way. Оказалось,
что вовсю уже были проекты (не мои) которые использовали redo. А то я
думал что загорелся так сильно DJB-way-ем только я один.

4 months agoПроблемы Linux с дровами
Sergey Matveev [Thu, 18 Jan 2024 07:58:40 +0000 (10:58 +0300)]
Проблемы Linux с дровами

https://habr.com/ru/news/787162/
Пять суток Торвальдс не имел доступа к Интернету из-за упавшего дерева
на линии электропередач. И поэтому добавить в Git ничего не мог.

4 months agoРаботоспособность Рувики
Sergey Matveev [Tue, 16 Jan 2024 07:21:21 +0000 (10:21 +0300)]
Работоспособность Рувики

https://habr.com/ru/news/786634/
https://ru.ruwiki.ru/wiki/Cryptoparty
Пишут что вышли из стадии тестирования.

Зашёл первым делом на страницу про криптопати, чтобы понять перенесены
ли данные по всяким мелочам из ru.wikipedia.org. Страница есть, текст
есть, а вот ссылок на внешние ресурсы по сути нет, ибо они все выглядят
как URL до страницы с прикреплённым через # Base64. Внутри него
URL-encoded URL плюс ещё бинарщина какая-то. То есть, чтобы мне куда-то
перейти, то надо вручную вызывать внешнюю программу для декодирования
этого безобразия? Ах да, они ожидают что я буду использовать ПО, которое
автоматически с их серверов каждый раз будет скачивать их программы для
выполнения на моём компьютере, чтобы мне было, видимо, удобнее.

Никаких IPv6 адресов. Да, давайте ещё и MD5 по старинке и по привычке
использовать. Условия лицензирования по CC или GNU FDL хотя бы
сохранены. Вовсю предупреждения что все персональные данные отправляются
на сторонние ресурсы.

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

Как там говорят? Хотели как лучше, получилось как всегда.

4 months agoКрасивая графика в играх
Sergey Matveev [Mon, 15 Jan 2024 19:46:22 +0000 (22:46 +0300)]
Красивая графика в играх

https://www.youtube.com/watch?v=RDs-heejPdY
Очень не нравится как говорит автор, но можно смело просто вообще
выключить звук, ибо никакой полезной информации. Я раз в пару лет да
введу в поисковике что-нибудь чтобы мне показали как современные то
дорогущие игрухи могут выглядеть и вау-эффекта не получаю. А тут прям
впечатляюсь тем, что вижу на мониторе (на котором и никаких HDR/WCG
нет). Но нисколько не охота во что либо из этого поиграть.

4 months agoNomadBSD
Sergey Matveev [Mon, 15 Jan 2024 08:46:51 +0000 (11:46 +0300)]
NomadBSD

https://www.youtube.com/watch?v=t51UZTEYnSQ
https://nomadbsd.org/
Из одной рассылки просто увидел ссылку на рассказ про NomadBSD
дистрибутив, основанный на FreeBSD. Видео промотал за 10сек, ибо
неперевариваю подобный способ подачи информации. Но помню своё
знакомство с ним в feaf6a9f904302434e3963f885d5be999049f3d2, где
просто хотелось что-то загружаемое с LiveCD и что могло бы фильмы
показывать через HDMI. Ubuntu и ещё какие-то дистры с этим не
справились.

Вчера публиковал (6df5bfb70dfc25de3344c4a28b307dc6fe4f1807) статью на
Хабре, который конечно же не работает даже с включённым JavaScript в
surf-е. Есть у меня ноутбук на котором установлен для Unreal-а Ubuntu
Ultimate Edition (dd8df75e5426bd556026c16cdb5f46412f299627). В нём
Mozilla Firefox далеко не самый старый. Под ним даже CAPTCHA для входа в
Хабр не работала. Пришлось KNOPPIX запускать, в котором далеко не самый
новый Chromium, но под ним всё заработало. Но статью удалось скопировать
только если использовать "старый" редактор Хабра.

4 months agoLibre/OpenPGP vs OpenSSH/age
Sergey Matveev [Sun, 14 Jan 2024 15:32:30 +0000 (18:32 +0300)]
Libre/OpenPGP vs OpenSSH/age

https://habr.com/ru/articles/786302/
Написал статью на Хабре на тему *PGP и ssh-keygen/age.
В блоге то всё это мнение уже присутствовало и прежде.