]> Sergey Matveev's repositories - stargrave-blog.git/log
stargrave-blog.git
3 years agoFirefox остался один?
Sergey Matveev [Tue, 18 Jan 2022 08:05:16 +0000 (11:05 +0300)]
Firefox остался один?

https://habr.com/ru/company/mvideo/blog/646137/
Firefox, пишут, теряет много пользователей. Среди причин нет одной
постоянно нарастающей: всё больше сайтов в нём не работают (корректно),
будут только в Chrom*. Например вся из себя free software web-версия
Jitsi под Firefox не работала (точнее наполовину как-то).

Но Firefox уже много много лет откровенно плюёт на пользователей: с
какой стати его считать чем-то вообще положительным?
d91cacbfc66b1c0e01160af74a32ac59255e2362
8081858bb50754fe1fb985672f0f5c180a793d03
9ecf9331987a62db1d012bef94c39406a1d6af60
85ce6798fba20680414297893ffd58465db01d6b
Рекламу там встраивали, слив в поисковике. Чуть ли не каждая новость о
Firefox говорит что они становятся очередным Chrome или IE.

3 years agoReview приложения для Google Play через Google Translate
Sergey Matveev [Mon, 17 Jan 2022 18:53:12 +0000 (21:53 +0300)]
Review приложения для Google Play через Google Translate

https://sylviavanos.nl/blog/2021/12/24/google_play_hell.html
Долго приложения не подтверждалось, потому что использовался какой-то
Google Translate, превращающий слова "свобода" в "free", которое в
английском уже могло означать "gratis". И приложение отклонялось.

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

Как с Google Captcha -- якобы каждый должен знать как выглядят гидранты
или что такси обязательно жёлтые. Я всё не забуду как приходилось
французам объяснять что такое прописка и что да, это не шутка что мне на
почту (не электронную) ничего не приходит из посылок вообще, ибо я
ничего не заказываю. С местными хотя бы не будет культурных, так
сказать, различий.

3 years agoAIO в GNU/Linux
Sergey Matveev [Mon, 17 Jan 2022 18:06:01 +0000 (21:06 +0300)]
AIO в GNU/Linux

https://habr.com/ru/post/646073/
https://wiki.postgresql.org/wiki/FreeBSD/AIO

    В 2019 году произошло великое событие: инженеры из Facebook написали
    новый механизм асинхронной работы с дисковым IO, который получил
    название io_uring. Он был добавлен в ядро версии 5.1. Вполне неплохо
    -- Linux 2019 года уже может полноценно работать с файлами.

Тогда как в FreeBSD AIO появился в 5.0 в 2003-ем году. Facebook молодцы!

Ну а в macOS, как и с сетевым стэком (f19e0f25f0bf0c1563602d922e9cdf0c1f5ff00b):

    MacOS в скобках, потому что это не серверная ОС. aio там
    присутствует, но вместе с aio идет огромное количество граблей.

3 years agoApple похоронила свой последний компьютер с дисководом
Sergey Matveev [Mon, 17 Jan 2022 11:16:58 +0000 (14:16 +0300)]
Apple похоронила свой последний компьютер с дисководом

https://lenta.ru/news/2022/01/17/cd/
Очень удивился новости о том что у них ещё что-то было с дисководом.
И только открыв эту новость и прочитав что речь про CD-ROM, понял что
ошибся. Я вот никогда в жизни не называл CD-ROM приводы дисководами,
хотя вроде это действительно тоже корректное слово. Как-то так по жизни
повелось что дисковод это 5.25" или 3.5" штуки для дискет, а оптические
диски это уже CD/DVD/whatever-приводы.

3 years agoPGPdisk в Windows XP
Sergey Matveev [Mon, 17 Jan 2022 06:44:29 +0000 (09:44 +0300)]
PGPdisk в Windows XP

https://lists.gnupg.org/pipermail/gnupg-users/2022-January/065776.html
История о том, что PGPdisk может быть отлично написан и безопасен, когда
применяется там, на что и был рассчитан. Но под Windows XP, когда появилась
такая штука как засыпание компьютера, с сохранением данных на диск, он
становится полностью небезопасен. Хотя журналисты бы написали заголовки
из серии "PGPdisk с AES-256 бит шифрованием взломан".

3 years agoПосмотрел "Мизери"
Sergey Matveev [Sun, 16 Jan 2022 19:12:17 +0000 (22:12 +0300)]
Посмотрел "Мизери"

https://ru.wikipedia.org/wiki/%D0%9C%D0%B8%D0%B7%D0%B5%D1%80%D0%B8_(%D1%84%D0%B8%D0%BB%D1%8C%D0%BC)
Клёвый триллер, понравился. Так как теперь более дюжины книг и рассказов
Кинга прочитал, то уже вижу что это прям его стихия, особенно заканчивать
свои рассказы вот так. Кэти Бейтс в кошмарах после этого только будет
приходить.

3 years agoNNCP в Yggdrasil сети
Sergey Matveev [Sun, 16 Jan 2022 13:14:55 +0000 (16:14 +0300)]
NNCP в Yggdrasil сети

http://www.nncpgo.org/Yggdrasil.html
https://yggdrasil-network.github.io/
https://github.com/neilalexander/yggmail
NNCP теперь может выступать в качестве клиента сети Yggdrasil! Не
используя никакого стороннего софта, не настраивая сторонних демонов.
Идея, как и зачатки кода, полностью взяты из yggmail.

nncp-daemon может работать в качестве listener ноды принимающей
соединения от других участников, осуществляющей всю маршрутизацию и
вообще работу. nncp-call* могут подключаться к любой Yggdrasil ноде и
связываться с NNCP адресами. Из Yggdrasil используется только
возможность отправки/приёма пакетов: никаких сетевых интерфейсов или
вообще знаний об адресах иметь не нужно. Публичный ключ хоста,
магическим образом становится IPv6 адресом для пакетов μTP транспортного
протокола, достигая целевой ноды без вопросов туннелирования и прочего.
Что приятно тем, что никакой возни с TUN интерфейсами не нужно вообще,
где есть проблемы с не самыми свежими версиями ОС
(883b33f7085a9dfd04fca75b056d0e0b4c3fdf73).

Почему μTP? Я взял из yggmail-а. Видимо, проще на Go нет ничего другого
для реализации транспортного протокола поверх пакетного сокета.
Реализации TCP на pure Go я не видел.

    $ nncp-cfgnew -yggdrasl
    Public: c7274667c6...
    Private: a87d6f98d...

    $ cat >> $NNCPCFG <<EOF
    yggdrasil-aliases: {
      prv: a87d6f98d...
      dst: 3915039ac...
      entrypoint: "tcp://example.org:5400?key=2cd18819...
      bind: tcp://[::]:5400
    EOF

    $ nncp-call dst-node-name "yggdrasil:dst;prv;entrypoint"
    $ nncp-daemon -yggdrasil "prv;bind;;"

3 years agoage утилита шифрования
Sergey Matveev [Sat, 15 Jan 2022 11:12:29 +0000 (14:12 +0300)]
age утилита шифрования

https://github.com/FiloSottile/age
За сутки меня пара человек спрашивала что я думаю об age утилите. Пошёл
смотреть что это такое. Во-первых, мне очень жутко и невообразимо не
нравится то, что спецификация формата находится на GoogleDocs сайте: как
они предполагают ею люди будут читать?

Но в остальном у меня претензий больше то особо и нет. Весь исходный код
я просмотрел: его совсем немного, прост и топорен, как и сам формат.
Потоковое шифрование, как и я в NNCP
(9dbbfb48af71d290a67a389117411ded7ecc11a6), использует сигнал при
шифровании последнего блока: используется nonce с выставленным битом
особым. ChaCha20-Poly1305, HKDF, простые заголовки -- всё это одобряю.

Вижу эту утилиту как некий аналог signify (https://man.openbsd.org/signify).
Один делает подписи в очень простом формате и ed25519. А второй
предлагает шифрование. Причём преобразование ed25519->curve25519 делает,
вроде бы, корректно, всё как полагается.

Похоже что людям нравится тот факт что они могут использовать уже
имеющиеся ключи в их .ssh. В принципе то я доверяю стойкости *25519
достаточно чтобы не переживать по поводу переиспользования одного ключа
для разных целей. Но, на рефлекторном уровне предпочитаю стараться
разделять ключи по целям использования. Это просто не может не быть
плохой практикой. А раз так, то я и смысла в отдельной age утилите не
вижу. У неё конечно есть большое преимущество: очень мало кода, за 15мин
можно просмотреть, а криптография из родных Go библиотек берётся.
OpenPGP и GnuPG безусловно монстры по размерам. Но зато GnuPG можно
ожидать что есть на любой Unix-like системе из коробки, грубо говоря.
Раз всё равно будет отдельный ключ для шифрования, то на практике от age
мало каких-то плюсов: кол-во команд (age vs gpg) не изменится, но зато
есть целая инфраструктура и инструментарий OpenPGP, который может да
пригодится.

Единственная ощутимая разница это то, что в GnuPG нет ChaCha20-Poly1305.
Быстрее всего зашифровать можно в AES-OCB режиме в нём, что у меня вроде
выдавал больше гигабайта в секунду. Где-то наверное это может быть
недостаточно, но для моих применений более чем. Да и если хочется
максимальнейшей производительности, то вместо "age" я бы использовал
свой gohpenc, который распараллеливаться умеет.

Но а в целом порекомендовать age бы мог, как и signify. Я всё же не вижу
плюсов перевешивающих чтобы мне перейти на них полностью. Всё же OpenPGP
и для проверки софта (де-факто) и для почты постоянно использую.

3 years agoSICP в Texinfo/Info формате
Sergey Matveev [Sat, 15 Jan 2022 10:38:20 +0000 (13:38 +0300)]
SICP в Texinfo/Info формате

https://www.neilvandyke.org/sicp-texi/
https://mitpress.mit.edu/sites/default/files/sicp/index.html
https://en.wikipedia.org/wiki/SICP
Ещё в школе или институте я смотрел видео-лекции SICP из 1980-ых. Так
впечатляло там всё, что думал что ни на чём не буду программировать
кроме Lisp(-like) языков. Потом со временем и использованием Freetalk
(на GNU Guile написанном) понял что моя голова не для функциональщины.
Но очень впечатлял этот курс! А тут в удобном Info формате ещё.

3 years agoFacebook firewall
Sergey Matveev [Fri, 14 Jan 2022 10:21:15 +0000 (13:21 +0300)]
Facebook firewall

Услышал тут:

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

3 years agoВ Москве открылся музей криптографии
Sergey Matveev [Fri, 14 Jan 2022 07:54:14 +0000 (10:54 +0300)]
В Москве открылся музей криптографии

https://habr.com/ru/news/t/645469/
Очень хочется сходить! Вопросы с QR-кодами конечно останавливают сейчас.

3 years agoСтатьи-ответы на опыт Мокси с Web3
Sergey Matveev [Fri, 14 Jan 2022 07:51:58 +0000 (10:51 +0300)]
Статьи-ответы на опыт Мокси с Web3

https://blog.plan99.net/re-moxie-on-web3-b0cfccd68067
https://staltz.com/some-people-want-to-run-their-own-servers.html
https://www.cryptologie.net/article/548/in-response-to-moxies-doubts-on-web3-and-about-ultra-light-clients/
Мокси раз в несколько лет напишет в своём блоге что-то, а дальше на это
годами будут ссылаться и комментировать. Крутой чувак конечно, хотя я и
далеко не со всем с ним солидарен. Как и люди отвечающие на его статью
про Web3 (2a9b8bec6c707f0ec3b445056daa9807b1206a35).

3 years agoMatthew Green делает review MetaMask Web3 решения
Sergey Matveev [Fri, 14 Jan 2022 07:45:20 +0000 (10:45 +0300)]
Matthew Green делает review MetaMask Web3 решения

https://blog.cryptographyengineering.com/2022/01/14/an-extremely-casual-code-review-of-metamasks-crypto/
По сути он просто рассказал как куда полез и на что смотрел, чтобы хотя
бы в общих чертах прикинуть годность криптографической части проекта. А
буквально именно вчера я по сути тоже самое делал про
https://github.com/FiloSottile/age проект. Приятно было читать это всё и
понимать что я иду тем же самым путём и смотрю на точно такие же вещи.
Ну и можно увидеть какой же JavaScript мир это ад, даже для попыток
нахождения реально используемой версии кода.

3 years agoBeginner Vim
Sergey Matveev [Thu, 13 Jan 2022 08:35:22 +0000 (11:35 +0300)]
Beginner Vim

https://www.youtube.com/watch?v=R2pBWDnfJY8
Чувак в начале долго поясняет как он удаляет абзац. Показал несколько
вариантов, но не было, собственно главного, собственно, motion-а
удаления параграфа. И таких tutorial-ов преобладающее большинство. Я
называю его способ работы "блокнот-mode"
(0cb96230ef06269430291f13f206f4ccac86e926). С ними не понять и не
познать нафига Vi/Vim то нужны и чем они мощны. Плюс он
продемонстрировал насколько ужасно жить без relativenumber
(5ff1b3c8c76be6e7691defe34a7e18c4d753f4f2).

3 years agoУязвимость в eBPF
Sergey Matveev [Wed, 12 Jan 2022 20:24:25 +0000 (23:24 +0300)]
Уязвимость в eBPF

https://www.opennet.ru/opennews/art.shtml?num=56497
Заголовок статьи звучит "Уязвимость в подсистеме eBPF, позволяющая
выполнить код на уровне ядра Linux" -- мне казалось что eBPF это как-раз
именно и есть штука которая позволяет выполнять код на уровне ядра Linux.
По определению :-)

3 years agoPCIe 6.0
Sergey Matveev [Wed, 12 Jan 2022 09:34:53 +0000 (12:34 +0300)]
PCIe 6.0

https://habr.com/ru/company/dcmiran/news/t/645149/
Теперь там применяют PAM4 модуляцию и FEC кодирование. Вспомнил про
старые добрые модемы. Сотнигигабитные Ethernet-ы PAM вовсю применяют,
но пишут что это ощутимо дороже. А про FLIT-ы я впервые услышал.

3 years agotroff vs TeX
Sergey Matveev [Wed, 12 Jan 2022 08:59:01 +0000 (11:59 +0300)]
troff vs TeX

В рассылке TUHS бурляще обсуждают troff и TeX. Очень много людей в ней
предпочитают troff. Про TeX то в общем-то особо никакой критики сильной
нет, но только субъективная неприязнь. Я тут не силён в оценке обоих:
TeX для меня чёрный ящик, но troff наверняка попроще кодовую базу имеет,
хотя и больше возможностей тоже предоставляет.

На troff я написал свою первую курсовую в институте. Просто потому что
во всех книгах по Unix у меня рассматривался с примерами только он,
включая и макросы для математики и для рисования (я кстати вполне себе и
рисовал в нём какие-то схемки). Выглядело неплохо, но что-то потом у
меня как-то не возникло желания снова на нём продолжать делать работы.
Точную причину уж не помню. Да и как оформляется математика в нём я
смутно помню -- возможно TeX/LaTeX были существенно удобнее, а сроки
сдачи поджимали, поэтому на них выбор и пал.

Но вот смотрю я на troff/nroff и прочее. Смотрел я на mandoc. И вот ну
не нравятся мне они все, чисто субъективно и визуально. Да, код для
работы с ними наверное прост и эффективен. Задачу выполняют. Но вот мне
не приятно смотреть и пытаться интерпретировать все эти команды на
отдельных строчках. Сложно читать. Честно говоря, я бы предпочёл уж даже
какой-нибудь DocBook с его XML-ем, чем *roff. Видимо, поэтому мне так
хорошо заходит и Texinfo в том числе.

3 years agoGunicorn и gevent в Python
Sergey Matveev [Tue, 11 Jan 2022 15:09:46 +0000 (18:09 +0300)]
Gunicorn и gevent в Python

https://news.ycombinator.com/item?id=29874106
Первым комментарием к этой новости идёт:

    I wish Gunicorn with Gevent had won the “async vs. coroutine Python”
    battle. The Developer UX is so much better with coroutines and just
    as scalable as asyncio (async/await).

Полностью солидарен с этим! async код это грёбаный ад в Python. Как
минимум потому что по сути не выйдет мешать sync и async код вместе.
Или делать по две реализации или всё только с async-ом. Но вот только
зачем? sync код гораздо проще и удобнее писать, удобно отлаживать. В
обоих случаях придётся I/O библиотеки затачивать либо под дружелюбность
к gevent-у, либо к async. Плюс это всё очень хорошо работало ещё и на
Py27, позволяя вполне себе high-load решения делать для web-а.

    I cannot be the only one disappointed by the lack of unicorns with guns.

3 years agoЗадолбал vim-lsp, переехал на vim-lsc
Sergey Matveev [Tue, 11 Jan 2022 13:14:37 +0000 (16:14 +0300)]
Задолбал vim-lsp, переехал на vim-lsc

http://www.git.stargrave.org/?p=dotfiles.git;a=commitdiff;h=53366c99f4b3952a830993dac79e002b0dd381a8
https://github.com/natebosch/vim-lsc
Год назад я писал что vim-lsp препаршивнейшего качества:
3d12e5e1768d806eed09e90f07fecd6549dbeb6e. За последний месяц-пару
обновлял его. Changelist как портился, так и портится.

Если показать hover из описания объекта ("K" клавиша), то перестают
работать стрелочки -- вместо них появляется <plug>что-то-там. Если при
этом создать сессию (:mks) и восстановить её, то после входа в режим
ввода, перестаёт работать Esc и куча других клавиш, вставляя <plug>текст
всякий. В итоге я вынужден был убить редактор, ибо не могу из него
выйти. В репозитории есть коммит, который якобы чинит эту проблему с
ломающим hover-ом. Возможно где-то и чинит, но не в моём случае.

Откатился на сколько-то коммитов назад, где не было рефакторинга
hover-а. Но вскоре, переключив tab tmux-а, заметил что имя pane-а
поменялось на какую-то lsp-related кухню! Тут моё терпение уже
окончательно лопнуло. Задолбал! Как же меня этот плагин задолбал! Мне
кажется за всё время он НИ РАЗУ не работал без косяков, не портя позиции
курсора, changelist, не падая, не сбивая keymap-ов и всё в этом духе.

Из всех оставшихся плагинов для Vim нашёл (бегло) только vim-lsc. Всякие
ALE -- это как Nerd*. Какие-то требуют NodeJS или Rust.

vim-lsc я похоже не пробовал прежде вовсе. И об этом надо бы было
пожалеть. На фоне vim-lsp мне всё в нём нравится! Дока на порядок меньше
по размеру. Устанавливается и настраивается на работу с серверами на раз
два. Передать workspace_config -- без проблем. Из коробки ВСЕ настройки
меня полностью удовлетворяют и нравятся, ничего не надо менять или
переопределять. Кроме одной: отключение автоматического completion,
который мог тормозить на огромных проектах. Code action работает.
Подсветка текущего слова работает. Подсветка ошибок linter-а, пояснение
если курсор стоит на строке с ошибкой -- всё работает из коробки.

А главное: авторы vim-lsc упорно хотят засовывать всё на свете в
quickfix. И лично мне это очень нравится, ибо для vim-lsp писал
собственный плагин который бы это делал. В итоге мой плагин для
автодополнения импортов снова работает просто с quickfix окном!

С hover-ом, показывающим сигнатуру объекта, никаких проблем. Ничего
нигде не портится. Даже goto definition команды заточены на
дружелюбность к "vertical" префиксам команды. Проверил и на Python,
на Go и на Си коде.

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

Не скрою, пришлось повозиться с ним чтобы заработал ручной вызов
completion-а. Автоматически включённый -- работает. Как выключаю и
переопределяю omnifunc, так ничего не выходит. Излазил вдоль и поперёк
его код completion-а, но не нашёл проблемы. Зато понравился его качество
кода. Под конец догадался сделать :set omnifunc? чтобы увидеть что там
совершенно левое значение выставлено. vim-lsp после запуска LSP демона
выполнял hook, в котором выполнялся setlocal omnifunc. vim-lsc такого
hook-а не имеет и поэтому в приоритете оказывается ftplugin/python из
родной поставки Vim, переопределяющий omnifunc. В общем, это первое что
я должен был бы проверить, но обосрался, к vim-lsc никаких претензий.

PS: Ещё в vim-lsp есть больные на голову касательно whitelist/blacklist:
9a174ec74ffb0a499b5415c8c8238d2584b749ed.

3 years agoОкончательно избавился от medium.com блогов в новостной ленте
Sergey Matveev [Tue, 11 Jan 2022 09:21:03 +0000 (12:21 +0300)]
Окончательно избавился от medium.com блогов в новостной ленте

Часть убралась из-за JavaScript в 5ac1445beb210c012fcc37e1b3940a9c031a2a7d.
А теперь medium стал за Cloudflare (3377284e1f2e5c1db69e100ec32f8f5a92a08cb4),
поэтому в принципе уже ничего не загружается, кроме заглушки этого CDN.

3 years agoProof-of-stake это мошенничество
Sergey Matveev [Tue, 11 Jan 2022 09:05:57 +0000 (12:05 +0300)]
Proof-of-stake это мошенничество

https://yanmaani.github.io/proof-of-stake-is-a-scam-and-the-people-promoting-it-are-scammers/
https://habr.com/ru/post/600113/
Статья о том, что PoS это полная фигня. В том плане, что она опирается
только на решения людей, не делая самостоятельно никакого консенсуса.

3 years agoСобрание красивостей сделанных в TeX
Sergey Matveev [Mon, 10 Jan 2022 21:33:14 +0000 (00:33 +0300)]
Собрание красивостей сделанных в TeX

https://tex.stackexchange.com/questions/1319/showcase-of-beautiful-typography-done-in-tex-friends
Впечатляет чего только люди в нём не сделают и как не оформят!

3 years agoИдиотизм lock-ов SysV/POSIX
Sergey Matveev [Mon, 10 Jan 2022 14:35:09 +0000 (17:35 +0300)]
Идиотизм lock-ов SysV/POSIX

https://gavv.github.io/articles/file-locks/
https://www.freebsd.org/cgi/man.cgi?query=fcntl&sektion=2
https://lwn.net/Articles/586904/
https://go.dev/src/cmd/go/internal/lockedfile/internal/filelock/filelock_fcntl.go
https://www.samba.org/samba/news/articles/low_point/tale_two_stds_os2.html
https://apenwarr.ca/log/20101213
http://0pointer.net/blog/projects/locking.html
Есть BSD-style lock-и для файлов, есть SysV/POSIX fcntl/flock.
С первыми всё просто, тривиально, надёжно, легко и понятно.
Со вторыми написано хорошо в FreeBSD man-е для fcntl:

    This interface follows the completely stupid semantics of System V and
    IEEE Std 1003.1-1988 (“POSIX.1”) that require that all locks associated
    with a file for a given process are removed when any file descriptor for
    that file is closed by that process.  This semantic means that
    applications must be aware of any files that a subroutine library may
    access.  For example if an application for updating the password file
    locks the password file database while making the update, and then calls
    getpwnam(3) to retrieve a record, the lock will be lost because
    getpwnam(3) opens, reads, and closes the password database.  The database
    close will release all locks that the process has associated with the
    database, even if the library routine never requested a lock on the
    database.  Another minor semantic problem with this interface is that
    locks are not inherited by a child process created using the fork(2)
    system call.  The flock(2) interface has much more rational last close
    semantics and allows locks to be inherited by child processes.  The
    flock(2) system call is recommended for applications that want to ensure
    the integrity of their locks when using library routines or wish to pass
    locks to their children.

В статье с LWN-а:

    More troublingly, the standard states that all locks held by a
    process are dropped any time the process closes any file descriptor
    that corresponds to the locked file, even if those locks were made
    using a still-open file descriptor. It is this detail that catches
    most programmers by surprise as it requires that a program take
    extra care not to close a file descriptor until it is certain that
    locks held on that file are able to be dropped.

Похоже что в AIX и Solaris (но не Illumos) BSD flock-ов нет, поэтому в
Go для работы с ними написана обёртка над POSIX lock-ами, занимающая
несколько экранов кода, как раз для отслеживания всех этих привязок к
инодам.

Кирк МакКузик говорит что во время стандартизации lock-ов всем было
просто плевать, поэтому добавили как уже было в SysV.

Даже Поттеринг пишет что всё ужасно.

3 years agoGithub ответ на изменения в colors и faker NPM пакетах
Sergey Matveev [Mon, 10 Jan 2022 13:56:11 +0000 (16:56 +0300)]
Github ответ на изменения в colors и faker NPM пакетах

https://www.opennet.ru/opennews/art.shtml?num=56479
Автор волен делать что угодно, ничего против не скажу. Но вот то, что
Github при этом заблокировала ему доступ -- это свинство конченое. Ты
не в праве творить в своих же репозиториях угодные тебе изменения?

3 years agosnap_line_delimiters патч для st терминала
Sergey Matveev [Mon, 10 Jan 2022 11:33:44 +0000 (14:33 +0300)]
snap_line_delimiters патч для st терминала

http://git.suckless.org/sites/commit/b697350f15956135914068eff6262ae1c1b202c8.html
Позволяет тройным кликом выделять всю строку, но в пределах указанных
символов разделителя, например вертикальной полоски в tmux или vim.
Выглядит удобно, хотя выделить набор строчек всё равно не выдет.

3 years agobaredo redo
Sergey Matveev [Mon, 10 Jan 2022 11:16:08 +0000 (14:16 +0300)]
baredo redo

https://github.com/gotroyb127/baredo
Автор этого проекта прислал мне его на ревью, узнать моё мнение.
Реализация redo на Си, только с тремя основными командами
(redo/-ifchange/-ifcreate). Кроме неатомарного обновления файла
зависимостей в целом мне всё понравилось. Даже мои большие проекты
с полусотней не-только-shell целей собираются. Нет распараллеливания.
Проверка только ctime-а для определения свежести целей. Но этот проект
выглядит куда вменяемее чем redo-c, в котором сломали "пустые" цели:
https://github.com/leahneukirchen/redo-c/pull/2
https://github.com/leahneukirchen/redo-c/issues/22 (без объяснения
причин не собираются восстанавливать).

3 years agoМинималистичный xorg.conf
Sergey Matveev [Sun, 9 Jan 2022 20:01:28 +0000 (23:01 +0300)]
Минималистичный xorg.conf

Решил поубирать всё что можно из xorg.conf, который я наверное уже лет
десять таскаю с собой сквозь всевозможные дистрибутивы. Оказалось что
оно даже и пустое будет работать, ничего лишнего, судя по журналу, не
подгружая. Единственное что я оставил:

    Section "Device"
            Identifier "Card0"
            Driver "intel"
    EndSection

так как переключение драйвера точно требовалось. Ещё помню что
обязательно нужно было указать Option "AutoAddDevices" "false" в
ServerLayout, но... я забыл для чего, в блоге нет, без этой опции
пока проблем никаких не наблюдаю. Может быть это связано с Logitech
трэкболом было, где задавался mapping некоторых его клавиш в moused
демоне и Xorg не должен был самостоятельно чего-то лишнего делать?
Но переключение языков делается теперь через setxkbmap (прежде в
xorg.conf задавалось). Для трэкбола не нужно никакого mapping-а, ибо
у него и так колесо прокрутки родное имеется. В итоге и выродились
секции с устройствами ввода.

3 years agoГруппа Obscura была названа в честь Obscura альбома
Sergey Matveev [Sun, 9 Jan 2022 16:57:02 +0000 (19:57 +0300)]
Группа Obscura была названа в честь Obscura альбома

https://en.wikipedia.org/wiki/Obscura_(band)
https://en.wikipedia.org/wiki/Obscura_(album)
https://www.youtube.com/watch?v=RCT8-Yzkzbs
Для меня слово "Obscura" ассоциируется только с альбомом Gorguts.
Поэтому когда я видел название группы, то терялся -- ведь не на том
месте название то стоит в названии директорий.

    Since its release, Obscura has come to be regarded as one of the
    most important albums in the technical death metal genre, and as
    "one of the most complex and technical records in the genre...

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

3 years agoУзнаю гроулящих вокалистов
Sergey Matveev [Sun, 9 Jan 2022 16:28:57 +0000 (19:28 +0300)]
Узнаю гроулящих вокалистов

За последние годы заметил что узнаю приглашённых вокалистов на всяком
black и death метале. Я понятия не имею есть ли там кто в трэке, но
чувствую что кто-то знакомый появился. Захожу на Encyclopaedia Metallum
и оказываюсь прав. Вот у этого не сильно, вроде бы, выделяющийся гроул:
https://www.metal-archives.com/artists/Spiros_Antoniou/1630
(вокалист Septicflesh), но даже на трэке Aborted узнаётся. Да и не
только гроулящих, но и какого-нибудь Ihsahn-а ни с кем не спутаешь.

3 years agorirc IRC клиент
Sergey Matveev [Sun, 9 Jan 2022 07:50:30 +0000 (10:50 +0300)]
rirc IRC клиент

https://rcr.io/rirc/
http://www.git.stargrave.org/?p=rirc.git;a=commitdiff;h=85d77d07a201e6d712e06501494e6a7e3c633271
Попробовал rirc клиент IRC. Написан на Си, очень лёгок, полноэкранный
TUI, поддерживает всякие SASL, TLS и даже некоторые IRCv3 возможности.
Никаких конфигов. Связаться с Libera.Chat можно без проблем.

Как минимум не хватает перехода на "alerted" канал, да и просто список
каналов у меня не влезает по горизонтали (Mattermost на работе состоит
из не одного десятка каналов). Плюс нет сохранения журнала.

Из коробки оно правда не собралось у меня и пришлось сделать небольшой
патчик со всякими отсутствующими include-ами и define-ами.

3 years agoПропущенные запятые в Python
Sergey Matveev [Sat, 8 Jan 2022 17:48:53 +0000 (20:48 +0300)]
Пропущенные запятые в Python

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

3 years agoСессии в Vim
Sergey Matveev [Sat, 8 Jan 2022 16:13:25 +0000 (19:13 +0300)]
Сессии в Vim

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

:mks -- и в текущей директории (у меня это, как правило, корень проекта)
будет создан Session.vim. vim -S -- его автоматом загрузит. Я не парюсь
со всеми этими именами файлов, ибо у меня бывает только одна сессия на
проект.

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

3 years agorecoll и индексация man-страниц
Sergey Matveev [Sat, 8 Jan 2022 12:22:04 +0000 (15:22 +0300)]
recoll и индексация man-страниц

http://www.git.stargrave.org/?p=dotfiles.git;a=commitdiff;h=471b572cc7f6814bc8d37d0e5585ac67d9fe954a
Захотел документацию по одной из секций xorg.conf-а.
rcl man ServerLayout (86e4d33cf2ae7459838f041f534382a3ef23ee18): и
ничего не выдаёт! Какой же толк от всего этого если он не находит
банальщины?

Выяснилось что типы файлов он определяет корректно: text/troff, но они
не индексируются, так как неизвестно какой из процессоров roff-макросов
необходимо применять. В штатной поставке есть mimemap файл для явного
указания что файлы в /usr/share/man являются text/x-man, для которых уже
явно вызывается groff с man-процессором.

Добавив этот mapping для всех директорий man-ов (которых с десяток),
проблема решается, всё прекрасно начинается искаться. Прежде, при
проверке работоспособности, я, похоже, давал поиск по man-ам
оказывающимся в /usr/share/man.

3 years agoYggdrasil на FreeBSD
Sergey Matveev [Sat, 8 Jan 2022 12:10:50 +0000 (15:10 +0300)]
Yggdrasil на FreeBSD

В рассылке NNCP напомнили о существовании Yggdrasil. Решил посмотреть
работает ли эта штука и можно ли подключится к его глобальной сети.
Собирается на FreeBSD 12.0 без проблем, но совершенно отказывается
работать с TUN интерфейсами. Помню что когда игрался с Wireguard, то
тоже столкнулся с этим. Yggdrasil использует исходный код Wireguard для
работы с TUN-интерфейсами как-раз. Проблема в том, что они стали
использовать системные вызовы появившиеся как минимум в FreeBSD 12.1.

У меня есть директория с рабочим Wireguard-ом, стоящем на коммите до
несовместимых изменений работы с TUN-ом. Работоспособность Yggdrasil
в итоге восстанавливается простой командой:
    echo "replace golang.zx2c4.com/wireguard => /home/stargrave/work/wireguard-go"
        >> yggdrasil-go-0.4.2/go.mod

Взял какой-то российский публичный peer, подключился, разрешил firewall
на tun0 интерфейс, зашёл через эту overlay сеть на домашнюю страницу
проекта. Так что всё работает, не упало. cjdns при подключении к
Hyperboria редко выживал.

3 years agoКиану то прав о NFT
Sergey Matveev [Sat, 8 Jan 2022 09:50:22 +0000 (12:50 +0300)]
Киану то прав о NFT

Киану Ривз был прав (5203ade13973b991b29ea3a6b2b969be82c3c6a7) о том,
что NFT можно подменить/подделать, что Мокси и продемонстрировал и его
NFT даже удалили в 2a9b8bec6c707f0ec3b445056daa9807b1206a35.

3 years agoMoxie о Web3
Sergey Matveev [Sat, 8 Jan 2022 08:59:47 +0000 (11:59 +0300)]
Moxie о Web3

https://moxie.org/2022/01/07/web3-first-impressions.html
Спустя шесть лет простоя, у Мокси появилась запись в его блоге о Web3.

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

Он был удивлён что де-факто все клиенты blockchain-ов вообще то не
работают с этими blockchain-ами "напрямую" -- они не реплицируют
состояние, не делают криптографические проверки. Они просто общаются с
посредниками, всего с (де-факто) двумя посредниками-серверами, которые
отдают данные без какой-либо аутентификации или подписи. Какой смысл в
blockchain если, собственно, проверку никто не производит? Это вопрос к
последователям всей этой брехни.

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

Если что-то попало в blockchain, то его оттуда же уже не достать? Мокси
сделал NFT, но в итоге его оттуда "удалили". Как же так? Да потому что
никто из клиентов не делает никакой валидации ответов (от пары
централизованных платформ). И де-факто все смотрят не в blockchain, а в
централизованную платформу. Всякие правила отчислений вшиты не в
blockchain-ы с их умными контрактами, а в API и софт централизованных
платформ. Говоришь что у тебя есть NFT, он же зарегистрирован в
blockchain? А клиент платформы на смартфоне говорит что нету. И никуда
ты не денешься после этого, ведь у миллионов пользователей сказано что
нету у тебя ничего. Вот она децентрализация!

Что для меня было открытием, так это то, что оказывается NFT не делает
hash commitment. Я был полностью уверен что в blockchain помещается хэш.
Везде написано что помещается URL, но я не ожидал что без хэша.

В итоге, пишет Мокси, люди, имеющие дела со всеми этими NFT, совершенно
не заботятся о распределённом доверии, а только о том, где их деньги. В
итоге, уже сейчас на практике, всё это превратилось просто банально в
web-сайт для покупки и продажи JPEG-ов, используя дебетовую карточку. Не
больше, ни меньше. Это просто сайт магазин, использующий обычные
банковские карты для оплаты. Ничего де-факто из web3, blockchain не
остаётся на практике. Но запустить такой магазин они просто не могли,
так как рынок требует чтобы было модно, ново, молодёжно, с блокчейном
внутри (хотя он там просто лишен).

3 years agoМигающий курсор
Sergey Matveev [Fri, 7 Jan 2022 08:36:06 +0000 (11:36 +0300)]
Мигающий курсор

https://habr.com/ru/company/skillfactory/blog/599535/
https://st.suckless.org/patches/blinking_cursor/
В этом году я стал использовать патч с мигающим курсором в терминале.
И тоже по причине описанное в статье -- понимать где он находится.

3 years agoWeb3
Sergey Matveev [Thu, 6 Jan 2022 19:20:42 +0000 (22:20 +0300)]
Web3

https://thedorkweb.substack.com/p/the-weirdness-beyond-web3-bullshit
https://jlelse.blog/links/2021/12/web0
https://elliott.computer/pages/web0.html
https://ar.al/2022/01/06/the-web0-manifesto-a-technical-review/
https://blog.wesleyac.com/posts/web3-centralized
https://jlelse.blog/micro/2021/11/brave-web3
https://invisibleup.com//articles/38/
https://soatok.blog/2021/10/19/against-web3-and-faux-decentralization/
В ленте новостей замечаю много статьей замечающих об огромной куче
статей про Web3.

Собственно ничего нового в них не отмечают, всё очевидные факты: Web2
это коммерциализация Интернета, превращение WWW из распределённой
системы документов в систему скачиваемых автозапускаемых программ (ну
всё это дерьмо типа CSS и JavaScript) на всё более централизованных
ресурсах (соцсети). Web2 создан корпорациями для корпораций, для
сплошной торговли, слежки и рекламы.

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

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

3 years agoapcupsd
Sergey Matveev [Thu, 6 Jan 2022 16:22:05 +0000 (19:22 +0300)]
apcupsd

Впервые решил использовать демона для мониторинга ИБП. Хотя может быть
раньше и пробовал, но ничего не вышло из-за какой-нибудь проприетарщины.
Сейчас у меня APC ИБП появился. Установил apcupsd из портов, указал в
конфиге что нужно использовать USB -- бесперебойник видит, все параметры
показывает, из коробки делает и wall и выключение системы. Всё оказалось
тривиальным.

3 years agoПокатушки
Sergey Matveev [Thu, 6 Jan 2022 15:19:03 +0000 (18:19 +0300)]
Покатушки

На днях с родителями ездил в Сергиев-Посад. Погуляли там по Лавре,
съездили в Радонеж. Выбирались ещё в центр Москвы, на Красную площадь.
Народу тьма, всякие ярмарки. Сегодня ездил на ИБП и на ВДНХ народу
как-будто ещё больше чем в центре. Выбирались специально вечером, чтобы
кучу подсветки красивой лицезреть.

3 years agoTurboBoost и ИБП
Sergey Matveev [Wed, 5 Jan 2022 20:04:38 +0000 (23:04 +0300)]
TurboBoost и ИБП

В 69e98cc610789604ae6a02ae38586135a803d38c начал использовать TurboBoost.
Но даже банальный startx заставит процессор разогнаться настолько, что ИБП
сразу вырубается. Не проверял хватает ли ИБП одного на NUC, но совместно
с ненагруженными серверами -- вообще не тянет. Так что в любом случае
придётся приобретать ещё один бесперебойник.

3 years agoministat
Sergey Matveev [Tue, 4 Jan 2022 12:36:12 +0000 (15:36 +0300)]
ministat

https://klarasystems.com/articles/freebsd-tcp-performance-system-controls/
В FreeBSD много где встречал красивых ASCII графиков наподобие:

    $ ministat -s -w 60 iguana chameleon
    x iguana
    + chameleon
    +------------------------------------------------------------+
    |x      *  x            *      +              + x           +|
    | |________M______A_______________|                          |
    |             |________________M__A___________________|      |
    +------------------------------------------------------------+
        N        Min        Max     Median        Avg       Stddev
    x   7         50        750        200        300    238.04761
    +   5        150        930        500        540    299.08193
    No difference proven at 95.0% confidence

Делаются штатной ministat утилитой из коробки.

    #/bin/sh
    for size in 65k 1m ; do
      for x in 3 10 20 40 ; do
        sudo sysctl net.inet.tcp.initcwnd_segments=${x};
        for y in $(jot 20) ; do do
          /usr/bin/time -a -o iperf3-iw${x}-${size}.out iperf3 -c iperf3.example.com -n ${size}
          sudo -v
        done
      done
    done

    $ ministat iperf3-iw3.out iperf3-iw10.out iperf3-iw20.out iperf3-iw40.out
    x iperf3-iw3.out
    + iperf3-iw10.out
    * iperf3-iw20.out
    % iperf3-iw40.out
    +--------------------------------------------------------------------------+
    |       *       +             %                     x                      |
    |       *       +             %                     x                      |
    |       *       +             %              x      x                      |
    |       *       +             %      %       x      x                      |
    |       *       +             %      %       x      x                      |
    |       *       +             %      %       x      x                      |
    |       *       *             %      %       x      x                      |
    |       *       *             %      %       x      x                      |
    |       *       *      @      %      %       x      x                      |
    |*      *       *      @      %      %       #      x      x              x|
    |     |_MA__||__A__|       |__M__A____|     |______AM_____|                |
    +--------------------------------------------------------------------------+
        N           Min           Max        Median           Avg        Stddev
    x  20          0.86           0.9          0.87         0.868  0.0095145318
    +  20          0.81          0.83          0.82          0.82  0.0045883147
    Difference at 95.0% confidence
        -0.048 +/- 0.00478065
        -5.52995% +/- 0.52619%
        (Student's t, pooled s = 0.00746924)
    *  20           0.8          0.82          0.81        0.8115  0.0048936048
    Difference at 95.0% confidence
        -0.0565 +/- 0.00484226
        -6.50922% +/- 0.529354%
        (Student's t, pooled s = 0.0075655)
    %  20          0.83          0.86          0.84        0.8435  0.0074515982
    Difference at 95.0% confidence
        -0.0245 +/- 0.00546953
        -2.82258% +/- 0.619167%
        (Student's t, pooled s = 0.00854554)

3 years agoСнова увеличил производительность NUC-а почти в два раза
Sergey Matveev [Tue, 4 Jan 2022 11:32:20 +0000 (14:32 +0300)]
Снова увеличил производительность NUC-а почти в два раза

Я похоже какой-то мазохист. Сначала я работал на жутко медленных NVMe в
b206cedbbc0f50e43c40349e4baa62bf9db3a7e2, потом "ускорил". Теперь я
что-то вспомнил про TurboBoost и снова задался вопросом как оно
поддерживается в FreeBSD.

В общем, не знаю что я делал в прошлый раз не так, но то ли в UEFI забыл
включить TurboBoost (хотя навряд ли ж), то ли powerd не включал. Наспех
проверял. На каком-то ресурсе увидел что факт наличия TB возможности
намекается +1MHz частотой в:
    dev.cpu.0.freq_levels: 2401/45000 2400/45000 ...
Включив TB в UEFI увидел этот новый 2401. Запустил: powerd -a max
и вижу: load 800%, current freq 2401 MHz ( 0), wanted freq 4802 MHz.
И через пару секунд услышал вентиляторы как никогда громкие.

Запустил benchmark distributed.net. В прошлый раз
(2c464d080b6f570068ca633909de2bef0969ed9a) он показывал 50 Gnodes/sec,
тогда как старенький Xeon -- 70. Сейчас выдаёт 85-86 Gnodes/sec,
что уже значительно шустрее Xeon-а.

3 years agoПро strict aliasing в Си
Sergey Matveev [Tue, 4 Jan 2022 10:24:08 +0000 (13:24 +0300)]
Про strict aliasing в Си

https://lkml.org/lkml/2009/1/12/369
https://lkml.org/lkml/2018/6/5/769
https://danso.ca/blog/strict-aliasing/
https://habr.com/ru/post/114117/
https://bugzilla.kernel.org/show_bug.cgi?id=12597
https://bugzilla.mozilla.org/show_bug.cgi?id=1031653
https://stackoverflow.com/questions/47232954/what-does-fwrapv-do
В 153271e2a5ebe0450329c630e19ab92022d9966f упоминал про strict aliasing
и корректность использования char-ов. Торвальдс критикует в своём духе
всю эту идею aliasing-а.

А ещё они используют -fwrapv, предполагая что все архитектуры где они
собираются используют 2's complement signed числа, иначе переполнение
будет считаться UB и компилятор волен творить любую неожиданную дичь.
Только в будущих стандартах 2's complement будет стандартом и
переполнение в нём уже штатным поведением.

3 years agoЭкранирование переменных в zsh
Sergey Matveev [Tue, 4 Jan 2022 10:07:17 +0000 (13:07 +0300)]
Экранирование переменных в zsh

Нарадоваться не могу тому, что в zsh можно без боязни выполнять,
казалось бы, простые вещи типа:
    for i (**.7z) { mkdir $i:r && pushd $i:r && 7z x ../$i:t && popd && rm $i }
где по иерархии директорий и файлов, в которых возможно есть пробелы, он
будет спокойно идти и работать. Чувствуешь себя человеком в shell-е в
кой да веки!

Отдельно лучи ненависти к 7z: я уже забыл что значит упираться в CPU при
декомпрессии! Со скачанными 7z я даже 100Mbps насытить не могу.

3 years agoSigned vs unsigned integer
Sergey Matveev [Mon, 3 Jan 2022 11:26:11 +0000 (14:26 +0300)]
Signed vs unsigned integer

https://graphitemaster.github.io/aau/
https://news.ycombinator.com/item?id=29766658
Интересные аргументы за и против использования знака с целыми числами в
программах в общих случаях. Я изначально использовал unsigned когда мне
точно не нужен был знак. Позже самостоятельно пришёл к тому, что со
знаком безопаснее из-за всяких ошибок и косяков: unsigned число при
переполнении (точнее при underflow) всё равно останется положительным и
очень большим. Было что напарывался на эти проблемы, которые бы с signed
было проще отловить. Однако и с проверками для signed я помню что код
становился куда более громоздким, как в начале статьи.

3 years agoПосмотрел третью часть "Последнего богатыря"
Sergey Matveev [Sun, 2 Jan 2022 17:05:40 +0000 (20:05 +0300)]
Посмотрел третью часть "Последнего богатыря"

https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B8%D0%B9_%D0%B1%D0%BE%D0%B3%D0%B0%D1%82%D1%8B%D1%80%D1%8C:_%D0%9F%D0%BE%D1%81%D0%BB%D0%B0%D0%BD%D0%BD%D0%B8%D0%BA_%D1%82%D1%8C%D0%BC%D1%8B
Вроде бы забавный и неплохой фильм, но, как и с первой частью, боюсь что
напрочь забуду о чём он после непродолжительного времени.

3 years agoМуха
Sergey Matveev [Sun, 2 Jan 2022 16:49:45 +0000 (19:49 +0300)]
Муха

Новая собака вовсю обжилась у родителей. Везде ходит хвостом. Тявкает и
охраняет квартиру когда кто приходит. Может и порычать и покусать, что
мы одобряем (чихуашка же). Пулей носится по дому. Пытается играть с
нашей другой собакой, но та только скалится пока на неё. Любит ложится
полностью прямо на тебя: на пузо, на спину. Полностью расслабляется,
спит без задних ног. Всегда под бочком старается быть. Реагирует на
звуки в телевизоре, поворачивая голову. Такое впечатление, что большую
часть времени рассматривает комнаты, нас или телевизор через зеркало:
постоянно уставится в него. А когда видит своё отражение в окне или
стеклянных дверях, то может и полаять на него. Всё что даём из
вкусняшек: сразу же прячет в какое-нибудь потайное место (за подушки,
закапывает в оделяла, прячет за шкафы и тумбы, говорят что и в ботинках
тайники находились). Ко мне на руки постоянно просится -- я явно свой у
неё уже. Если хочет тебя полизать, то фиг оторвёшься от неё: родители её
называют мухой-прилипалой.

3 years agoОбновление /dev/random в Linux
Sergey Matveev [Sun, 2 Jan 2022 15:02:03 +0000 (18:02 +0300)]
Обновление /dev/random в Linux

https://www.opennet.ru/opennews/art.shtml?num=56445
Кхм, в Linux до сих пор был SHA1-based PRNG? 20+ лет назад, когда
организация где я работаю взяла GNU/Linux на вооружение, первым делом
производилась замена его PRNG. Fortuna до сих пор там не применяется.
По мне так это просто позорное ядро с криптографической точки зрения.
Такое впечатление, что если речь про криптографию, то в GNU/Linux или
пилят своё или его просто не используют.

3 years agoНовый год с Терминатором
Sergey Matveev [Sat, 1 Jan 2022 19:27:08 +0000 (22:27 +0300)]
Новый год с Терминатором

У родителей по какому-то каналу целых пять частей Терминатора показывали:
три части до полуночи, две после. Все и посмотрели. На следующий день
пересмотрели Бриллиантовую руку, Кавказскую пленницу, Ивана Васильевича,
Джентльменов удачи, Служебный роман -- куда ж без них, с удовольствием
их смотрю снова и снова.

3 years agoПодставка под запястья в виде французского батона
Sergey Matveev [Thu, 30 Dec 2021 20:58:27 +0000 (23:58 +0300)]
Подставка под запястья в виде французского батона

https://boingboing.net/2007/10/02/loaf-of-french-bread.html
https://www.youtube.com/watch?v=hYr2ph_p6as

3 years agoПрочитал "Уиллу", "Завтрак в Кафе Готэм" и "Немой" Стивена Кинга
Sergey Matveev [Thu, 30 Dec 2021 16:39:06 +0000 (19:39 +0300)]
Прочитал "Уиллу", "Завтрак в Кафе Готэм" и "Немой" Стивена Кинга

https://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%B2%D1%82%D1%80%D0%B0%D0%BA_%D0%B2_%C2%AB%D0%9A%D0%B0%D1%84%D0%B5_%D0%93%D0%BE%D1%82%D1%8D%D0%BC%C2%BB
https://ru.wikipedia.org/wiki/%D0%A3%D0%B8%D0%BB%D0%BB%D0%B0_(%D1%80%D0%B0%D1%81%D1%81%D0%BA%D0%B0%D0%B7)
https://en.wikipedia.org/wiki/Mute_(short_story)
Кинг конечно крут! Так здорово и интересно пишет! Во всех историях жуть
наступает только в самом конце. Но "завтрак" -- прям сюжет для сна,
после которого в ужасе проснёшься в холодном поту.

3 years agoВыпуск "Back to the BBS" о демосцене
Sergey Matveev [Thu, 30 Dec 2021 09:50:11 +0000 (12:50 +0300)]
Выпуск "Back to the BBS" о демосцене

https://alsgeeklab.com/back-to-the-bbs-episode-6-the-demoscene/
Вот что я совершенно не застал и не видел, так это демосцену.
Обязательно когда рассматривают историю BBS-ок, FidoNet и подобного,
то без демосцены не обходятся. В этом ролике показано много
разнообразных демок -- хотя бы ясно что это такое не на словах.
Впечатляет что люди умудряются делать с доступными ресурсами
(а сейчас и Word будет тормозить на зверь-машинах).

3 years agoПеремещение/копирование директорий
Sergey Matveev [Thu, 30 Dec 2021 08:51:55 +0000 (11:51 +0300)]
Перемещение/копирование директорий

https://minnie.tuhs.org/pipermail/tuhs/2021-December/024921.html
В ранних версиях SysV команда mv действительно буквально только
переименовывала директории. В Plan9 аналогично -- только переименование.
Для копирования есть отдельная dircp утилита, аналогичная вызову:
    @{cd fromdir && tar c .} | @{cd todir && tar xT}
Насколько это всё же правильнее, ибо ведь действительно два совершенно
разных действия. Как в git: одна команда и масса несвязанных действий.

3 years agolore+lei
Sergey Matveev [Thu, 30 Dec 2021 08:30:03 +0000 (11:30 +0300)]
lore+lei

https://lwn.net/Articles/878205/
https://lwn.net/Articles/748184/
https://public-inbox.org/
В Linux для рассылок используют mlmmj. А для их архивирования с
web-интерфейсом, поиском и возможностью локального клонирования:
public-inbox. Надо попристальнее будет посмотреть на эту штуку,
ибо недостаток централизованной рассылки это одна точка отказа.
Впрочем, если выкладываются .mbox файлы, то в offline это тоже
можно будет использовать.

3 years agoВ Linux оказывается есть X.509
Sergey Matveev [Thu, 30 Dec 2021 08:28:33 +0000 (11:28 +0300)]
В Linux оказывается есть X.509

https://www.spinics.net/lists/stable-commits/msg184308.html

3 years agoВажность SIGINFO
Sergey Matveev [Tue, 28 Dec 2021 22:24:25 +0000 (01:24 +0300)]
Важность SIGINFO

https://minnie.tuhs.org/pipermail/tuhs/2021-December/024898.html
В TUHS рассылке есть люди, которые не могут находится рядом с Linux
из-за отсутствия в нём удобнейшего SIGINFO (ну и софта соответственно
и терминала с Ctrl-T). Пишут что и в SVR4 сложно из-за этого вернутся.

3 years agoparallel cpuset
Sergey Matveev [Tue, 28 Dec 2021 22:17:34 +0000 (01:17 +0300)]
parallel cpuset

Когда под рукой многопроцессорная система, то GNU parallel использую
постоянно, для всякой мультимедиа в основном. И хочется чтобы задача
не скакала по ядрам. Для NUMA систем это вообще губительно: процесс
может оказаться "вдалеке" от своей памяти что значительно замедляет
к ней доступ. Благо что сделать привязку легко, учитывая что parallel
может подставить "job slot number": parallel cpuset -l {%} ...
Сгодится конечно если задач не больше кол-ва процессоров.

3 years agoredo и shell
Sergey Matveev [Tue, 28 Dec 2021 21:32:09 +0000 (00:32 +0300)]
redo и shell

https://news.ycombinator.com/item?id=29717028
Комментарий за комментарием пишут что redo не вариант, ибо надо писать
на ужасном shell-е. Удручает что вроде бы все мне известные сайты и
реализации redo подчёркивают, что никоим образом не зависят от shell-а
и не заставляют на нём писать .do файлы. Элегантная простота redo долго
и до меня доходила.

3 years agoДуров ответил Мокси
Sergey Matveev [Tue, 28 Dec 2021 17:53:54 +0000 (20:53 +0300)]
Дуров ответил Мокси

https://habr.com/ru/news/t/598421/
Мокси ему про криптографию и шифрование и хранение plaintext-а, а Дуров
про "мы не раскрываем третьим лицам", про кто кого спонсирует. Ну и... я
конечно не вижу оригинальное его сообщение, но если он и правда заявил
что, раз АНБ участвовало в создании алгоритмов шифрования (что не
правда, ибо оно участвовало в качестве судей, что в общем-то не важно)
-- то они могут дешифровать: это перебор уже в идиотских тупых заявлениях.
Но опровергать заявление Мокси он не стал.

3 years agoМножество примеров zsh expansion-а
Sergey Matveev [Tue, 28 Dec 2021 08:56:23 +0000 (11:56 +0300)]
Множество примеров zsh expansion-а

https://thevaluable.dev/zsh-expansion-guide-example/
В принципе то всё есть в документации и массе других мест, но тут
аккуратно по шагам, не наваливая с полсотни опций/параметров, с
примерами. БОльшую часть всего вовсю использую ежедневно.

3 years agoУти-пути, маленький Бафомет в капитолии штата Иллинойс
Sergey Matveev [Tue, 28 Dec 2021 08:15:27 +0000 (11:15 +0300)]
Ути-пути, маленький Бафомет в капитолии штата Иллинойс

http://www.hitkiller.com/milota-xram-satany-prazdnichno-prines-v-kapitolij-shtata-illinojs-malenkogo-bafometa.html
И самые нетерпимые ко всему чуждому, самые поносящие это всегда всякие
религиозные люди, коих я считаю одними из самых страшных человеков, ибо
они никогда не скажут что у них реально на душе, будут лицемерить и
говорить что прописано и что полагается, но без какой-либо искренности.

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

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

А бафометыш:

    подчеркивает "плюрализм, единение, способность к эмпатии", а также
    отражает позитивные ценности

с чем не могу не согласится.

3 years agoLua: хорошее, плохое и уродливое
Sergey Matveev [Mon, 27 Dec 2021 08:48:10 +0000 (11:48 +0300)]
Lua: хорошее, плохое и уродливое

http://notebook.kulchenko.com/programming/lua-good-different-bad-and-ugly-parts
Хорошее резюме об особенностях этого языка. И даже не смотря на bad и ulgy,
язык мне всё равно нравится... просто надо учитывать эти недостатки и
особенности.

3 years agoПосмотрел "Не смотрите наверх"
Sergey Matveev [Sun, 26 Dec 2021 17:54:02 +0000 (20:54 +0300)]
Посмотрел "Не смотрите наверх"

https://ru.wikipedia.org/wiki/%D0%9D%D0%B5_%D1%81%D0%BC%D0%BE%D1%82%D1%80%D0%B8%D1%82%D0%B5_%D0%BD%D0%B0%D0%B2%D0%B5%D1%80%D1%85
Ну... просто средненький фильм, ожидал большего. Но и не пожалел
времени. Собственно показаны тупые язвы в обществе, когда даже видя
комету всё равно будут говорить что её нет и это всё заговор. Ну как с
COVID19 тем же происходит, да и ещё тьмой вещей. Но фильм современный и
пиндосский, поэтому в каждом кадре по негру и США будет спасать весь
мир конечно же, с женщиной-президентом.

Обожаю Ди Каприо -- и тут с удовольствием на него смотрел и слушал!
Лоуренс, которую я обзываю "Ди Каприо актрис", как-то маловато говорила,
роль поменьше у неё, но тоже обожаю. Смотреть надобно не в дубляже, ибо
Леонардо много орёт.

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

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

Судя по блогу, среди фильмов 2021-го я лучше ничего не смотрел.

3 years ago(почти) Прошедший год
Sergey Matveev [Sun, 26 Dec 2021 11:56:17 +0000 (14:56 +0300)]
(почти) Прошедший год

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

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

* Из литературы очень произвёл впечатление Суер-Выер
* Прошёл The Longest Journey -- единственный из оставшихся квестов очереди
* В восторге от нескольких фильмов Монти Пайтона

* Реализовал давнюю хотелку и написал tofuproxy HTTP/HTTPS-прокси, с TLS
  терминатором, TOFU менеджером сертификатов, DANE-EE, WARC-броузером
* Написал godlighty HTTP/HTTPS-сервер, заменивший у меня все lighttpd
* Удовлетворил своё желание изучить Tcl. Написал на нём не много, но в
  целом язык простой и очень мне понравился
* Переехал на daemontools, UCSPI-TCP и dqcache. Ещё больше погрязаю в
  DJB мире, что меня не удручает
* Стал поклонником JPEG-XL
* Узнал про всякие hardening фичи, научился применять seccomp и Capsicum,
  впиливать DTrace пробы
* Сменил ноутбук на Intel NUC и очень доволен этой железкой

3 years agoКультура и воспитанность людей в общественном транспорте
Sergey Matveev [Sun, 26 Dec 2021 11:33:57 +0000 (14:33 +0300)]
Культура и воспитанность людей в общественном транспорте

Она просто никакая, как минимум в Москве/Подмосковье! Из-за холодов я
на этой неделе не хочу дожидаться удобной маршрутки и поэтому еду на
электричке. Я просто в шоке, мягко говоря от всего что творится там
вокруг: *каждые* 10сек но обязательно у кого-то будет оповещение на его
смартфоне, каждые 30сек обязательно кто-то начнёт трындеть по своей
трубе, всегда находятся люди которые даже фильмы будут смотреть без
наушников. Накопил на чудо техники шпионажа и не хватило 200руб на
наушники? О чём думают те, кто держит перед собой свой девайс и не
выключает оповещения -- не подозреваю. Когда мне звонят (и я поднимаю),
то я говорю что в транспорте и кладу трубку, думая об окружающих. В 9 из
10 случаев народ наоборот заходя в транспорт начинает звонить своим
знакомым чтобы трепаться сорок минут, говоря что кладёт трубку, так как
выходит из вагона/салона.

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

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

На работе вспомнили про культуру людей в метро: стоят параллельно
дверям, а не перпендикулярно, загораживая половину прохода (не собираясь
выходить/входить); не снимают рюкзаки (я тоже иногда так делаю когда на
100% уверен что никому не мешаю, когда это бывает в почти пустых вагонах);
начинают поднимать свой зад для выхода только когда двери уже открылись;
начинают ломиться на вход, не дожидаясь пока всей выйдут. Отдельная боль
это еле плетущиеся черепахи, уткнувшиеся в смартфоны, идущие в полосах
где нельзя обогнать (ничего против не имею черепах, если они в сторонке,
не перекрывают дорогу). Бывают ещё те кто фильмы смотрят, спуская по
одной ступеньке в секунде на эскалаторе. Это прям моя ежедневная
пятиминутка ненависти, как в "1984". Метро хотя бы приятно своим громким
шумовым фоном, за котором не слышно всего этого трындения и просмотра
фильмов людьми.

3 years agoБлоги за Cloudflare
Sergey Matveev [Sun, 26 Dec 2021 11:29:37 +0000 (14:29 +0300)]
Блоги за Cloudflare

За последний год где-то с десяток блогов переехало на Cloudflare CDN.
Смело можно их удалять из агрегатора новостей, ибо CF требует
прохождение CAPTCHA со всякими cookie и JavaScript. Фактически оно
предотвращает работу вне современного броузера.

3 years agoКритика "Миллиона лет до нашей эры"
Sergey Matveev [Sat, 25 Dec 2021 18:33:43 +0000 (21:33 +0300)]
Критика "Миллиона лет до нашей эры"

https://ru.wikipedia.org/wiki/%D0%9C%D0%B8%D0%BB%D0%BB%D0%B8%D0%BE%D0%BD_%D0%BB%D0%B5%D1%82_%D0%B4%D0%BE_%D0%BD%D0%B0%D1%88%D0%B5%D0%B9_%D1%8D%D1%80%D1%8B_(%D1%84%D0%B8%D0%BB%D1%8C%D0%BC,_2004)
Пишут что масса негативных отзывов была на этот фильм. А мне он жутко
понравился с самого начала, когда по телевидению увидел. Потом и
отдельно скачивал посмотреть на компьютере. Ну где ещё можно школу
швей-гитаристок в доисторическую эпоху увидеть?

3 years agoГотовится Уэбб, самый дорогой прибор в истории
Sergey Matveev [Sat, 25 Dec 2021 08:25:07 +0000 (11:25 +0300)]
Готовится Уэбб, самый дорогой прибор в истории

https://naked-science.ru/article/astronomy/samyj-dorogoj-nauchnyj-pribor-v-istorii
На замену Хабблу полетит этот телескоп. Не знал что его будут размещать
не на околоземной орбите, а в точке Лагранжа, ибо рядом с нами жарко. От
солнца загораживающий экран, но и при этом, всё равно, отдельно система
охлаждения жидким гелием имеется. Дикая сложность и точность всего, без
возможности обслуживания. Офигенный challenge.

3 years agoВ Linux то ещё появился Landlock
Sergey Matveev [Fri, 24 Dec 2021 12:24:38 +0000 (15:24 +0300)]
В Linux то ещё появился Landlock

https://kernelnewbies.org/Linux_5.13
https://lwn.net/Articles/703876/
В Linux давно есть seccomp, но с которым настолько всё геморройно, что
мало кто использует, в отличии от простого OpenBSD pledge или FreeBSD
Capsicum, с которыми программы сотнями переводятся. В Linux решили
написать очередное творение, уже повторяя pledge/capsicum. Я просто не
успеваю за регулярно появляемыми новыми технологиями в их экосистеме.

3 years ago*_uass и fuckwit_* в Linux
Sergey Matveev [Fri, 24 Dec 2021 09:41:39 +0000 (12:41 +0300)]
*_uass и fuckwit_* в Linux

https://www.opennet.ru/opennews/art.shtml?num=47849
Оказывается предлагались такие сокращения в коде для закрытия
уязвимостей в процессорах:
* User Address Space Separation (*_uass)
* Forcefully Unmap Complete Kernel With Interrupt Trampolines (fuckwit_*)
но в итоге приняли унылый Kernel Page Table Isolation (kpti_*).

3 years agoSecret Of Monkey Island перевели на русский
Sergey Matveev [Thu, 23 Dec 2021 18:21:31 +0000 (21:21 +0300)]
Secret Of Monkey Island перевели на русский

https://www.old-games.ru/forum/threads/klassicheskie-versii-kvesta-the-secret-of-monkey-island-perevedeny-na-russkij-jazyk.102434/
Про эту игру (точнее серию) у меня наверное больше всего в блоге
записей. Перевод меня конечно не интересует, но отметить не могу.
Я однозначно полностью нахожусь в лагере квестов от Lucas Arts, не
Sierra. И среди всех квестов от LA -- Monkey Island первые две части
это лучшее что было создано. Третью я тоже люблю, но она типа считается
не каноничной. Какой же там отличный юмор и всё по доброму (типа
каннибалов вегетарианцев). Хотя Grim Fandango я бы наверное на одном
уровне поставил, но в нём нет такого юмора.

3 years agoGojira про веганство и пандемию
Sergey Matveev [Thu, 23 Dec 2021 05:27:10 +0000 (08:27 +0300)]
Gojira про веганство и пандемию

http://www.hitkiller.com/citata-gojira-joseph-duplantier-nas-veganov-pechalit-dolbanaya-pandemiya-poskolku-vse-bedy-ot-ploxogo-obrashheniya-s-zhivotnymi.html
Многих будут бесить всякие сатанисты, а меня вот этот лютый сущий бред
веганов. К сожалению веганство достаточно заразный недуг поразивший и
вокалиста Napalm Death, но он, благо, про это ничего нигде не говорит.

3 years agoCPU радиатор с дисплеем
Sergey Matveev [Wed, 22 Dec 2021 08:42:25 +0000 (11:42 +0300)]
CPU радиатор с дисплеем

https://g15tools.com/best-cpu-cooler-with-screen-5-options-reviewed-rated-2021/
Увидел что бывают CPU радиаторы с экранчиками, у которых нехилое
разрешение и количество цветов. Смысл прозрачного корпуса появляется
(хотя и прежде он был чтобы показать все эти RGB радуги). Туда бы
простую консоль вывести для сервера -- и монитор не нужен.

3 years agoМодераторы Хабра совсем расчванькались: сокеты в Python, чат в 50 строк
Sergey Matveev [Tue, 21 Dec 2021 18:58:16 +0000 (21:58 +0300)]
Модераторы Хабра совсем расчванькались: сокеты в Python, чат в 50 строк

https://habr.com/ru/post/596985/
Комментарием на Хабре уже оставить не могу -- мой самый современный
броузер из всех что имеется уже не ест их JS-код. Но я возмущён что
подобное попадает в RSS.

* автор пишет про "веб-сокеты" -- с какого хрена то там web вообще?
  Ладно, я помню времена когда стали "WWW" считать "Интернетом", помню
  что "Internet Explorer" считать Интернетом, но теперь уже сокеты
  считаются частью web?
* сокет привязан к порту -- нет не привязан
* сокет это типа треда или программы? Ещё не лучше...
* автор выбрал 5000-ый порт "методом тыка", просто потому что на нём у
  него всё заработало. Хм... почему была выбрана USB-клавиатура вместо
  PS/2 -- потому что её штекер смог втыкнутся в USB-порт?
* curl для проверки подключения к серверу?
* то автор читает "1024 байта", то автор отсылает/читает "строки". Может
  определиться что он шлёт то?

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

Хотел бы тыкнуть автора в свой https://habr.com/ru/post/452200/
но интерфейс Хабра совсем не работает.

3 years agoКакой только бред не напишут про SHA256
Sergey Matveev [Tue, 21 Dec 2021 18:44:53 +0000 (21:44 +0300)]
Какой только бред не напишут про SHA256

https://habr.com/ru/post/596983/
https://www.securitylab.ru/analytics/488291.php
В статье про P2P протоколы ссылка на securitylab.ru, с припиской что
"SHA256 также на сегодняшний день считается уязвимой функцией". Смотрю
статью: хэширования там нет вообще, а есть HMAC-SHA256. В нём не описано
ни одной проблемы, а только косяки с вопросами кодирования того над чем
применяется этот MAC. Одна статья бредовее другой -- и ведь в эту чушь
кто-нибудь да поверит.

3 years agozmv рекурсивно по директориям
Sergey Matveev [Tue, 21 Dec 2021 11:32:46 +0000 (14:32 +0300)]
zmv рекурсивно по директориям

Прежде никогда даже не задумывался о том, чтобы применять zmv в иерархии
директорий, но это без проблем работает: zmv '(**/)(*).mp3.wav' '$1$2.wav'

3 years agoПовисающие новенькие мощные MacBook-и
Sergey Matveev [Mon, 20 Dec 2021 19:43:14 +0000 (22:43 +0300)]
Повисающие новенькие мощные MacBook-и

https://www.youtube.com/watch?v=Cw_0tBl11bY
Во время тестов, нагружающих CPU, даже удалось повесить Mac-и намертво.
Даже хвалёному качеству Apple невозможно доверять -- desktop есть
desktop: нагружать их не является штатным режимом работы.

3 years agoАудиофильский SSD
Sergey Matveev [Mon, 20 Dec 2021 19:08:38 +0000 (22:08 +0300)]
Аудиофильский SSD

https://habr.com/ru/company/ruvds/news/t/596727/
Было бы смешно, как бы не было так грустно от того что в это реально
ведь будут верить.

3 years agoПознакомился с Immortal
Sergey Matveev [Sun, 19 Dec 2021 16:24:05 +0000 (19:24 +0300)]
Познакомился с Immortal

https://en.wikipedia.org/wiki/Immortal_(band)
Как и Satyricon (f468b689d1e1159893c04f6df942e34a5c2709c1), лёгкий black
metal, под который отлично работается. Не чета жутко агрессивным и мрачным
Funeral Mist с Marduk. И куда мелодичнее и проще чем Deathspell Omega.

3 years agoЗавели Муху
Sergey Matveev [Sat, 18 Dec 2021 16:53:20 +0000 (19:53 +0300)]
Завели Муху

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

3 years agoНападение инопланетян и отключение электричества
Sergey Matveev [Sat, 18 Dec 2021 10:40:43 +0000 (13:40 +0300)]
Нападение инопланетян и отключение электричества

https://vitus-wagner.dreamwidth.org/2290841.html
Тут у человека регулярно отключают электричество. Дома раз в полгода, в
основном ночью, но всё равно бывает. На работе аналогично. И у родителей
и у бабушки (не один месяц жил) -- всегда бывает.

Ещё жутко бесит когда люди считают что Интернет/сайты всегда есть и
доступны. Достаточно логи RSS-аггрегатора посмотреть чтобы увидеть как
часто всякое бывает недоступно. Родные DNS сервера у всех провайдеров
где я был -- регулярно недоступны (ну или не отвечают не NX-ом). Раз в
месяц да почти везде но обязательно трафик между мной и Интернетом не
ходит -- мониторинг показывает.

3 years agoМатрица 1999-го
Sergey Matveev [Fri, 17 Dec 2021 20:29:58 +0000 (23:29 +0300)]
Матрица 1999-го

https://ru.wikipedia.org/wiki/%D0%9C%D0%B0%D1%82%D1%80%D0%B8%D1%86%D0%B0_(%D1%84%D0%B8%D0%BB%D1%8C%D0%BC)
С новостями о выходе Матрицы, на работе слово за слово и оказалось что
прилично людей не смотрело этот фильм! Я считал что уж этот то фильм все
видели. И не только я один на работе был в этом уверен. Причём от возраста
это на зависело.

Пытались вспомнить какие бы фильмы вот точно точно все смотрели?

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

Остановились на "Пятом элементе" и "Терминаторе 2". Молодёжь ещё
подсказала про "Гарри Поттера" (с чем наверное соглашусь), "Властелина
колец" и "Пиратов Карибского моря" -- мне всё это в голову даже не
приходило, ибо уж больно что-то современное. Ну и не приходило наверное
потому что не поклонник всего этого.

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

На работе ещё назвали "Бойцовский клуб", но мои родители его, благодаря
мне, посмотрели только несколько месяцев назад впервые. Я бы хотел
назвать "Криминальное чтиво", но я сам с ним познакомился лет через 15
после выхода.

Ну а про Матрицу нечего говорить -- легендарный революционный фильм, по
моему. Дальнейшие части -- чёрт с ними, ничего не помню кроме пары сцен
со спецэффектами и Монику Белуччи. "Перезагрузку" помню что посмотрел в
кинотеатре в Евпатории. А "Революция" на DVD до сих пор есть в шкафу.

3 years agoFuneral Mist -- Deiform
Sergey Matveev [Fri, 17 Dec 2021 20:17:59 +0000 (23:17 +0300)]
Funeral Mist -- Deiform

http://www.hitkiller.com/mortuus-iz-marduk-vypuskaet-novyj-albom-funeral-mist.html
Нашёл в ужасном качестве для ознакомления. Не думая что всё же сможет
впечатлить, ибо куда ему уж переплёвывать Maranatha и Hekatomb то? Но
нет, Arioch снова породил безумное зубодробительное творение! Нужно
добыть в нормальном lossless качестве только.

3 years agoБайты в Си
Sergey Matveev [Fri, 17 Dec 2021 13:56:16 +0000 (16:56 +0300)]
Байты в Си

https://lists.suckless.org/hackers/2112/18050.html
https://gist.github.com/jibsen/da6be27cde4d526ee564
https://cellperformance.beyond3d.com/articles/2006/06/understanding-strict-aliasing.html
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66110
https://github.com/RIOT-OS/RIOT/issues/5497
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2653.htm
Когда начинал писать на Си, то uint8_t показался корректным и правильным
типом данных для представления всяких байтовых последовательностей. Ведь
Си явно не говорит что char вообще то равен байту или 8-ми битам. Как и
автору libgrapheme suckless библиотеки. Но тут начались обсуждения в
рассылке и он изменил всё на char.

Начал изучать вопрос. Пришёл к тому что надо использовать unsigned char
или char (если не думать по будущие стандарты Си), проверяя на всякий
пожарный что оно равно 8-ми битам. Проблема с uint8_t в том, что
безопасно делать алиасы, когда на один и тот же участок памяти ссылаются
несколько переменных, можно когда или типы совместимы или алиасом
является character тип. uint8_t не character тип, поэтому не может быть
алиасом. Поэтому он не должен дружить с -fstrict-aliasing и может мешать
оптимизациям. На практике это работает только потому что GCC/Clang
делают typedef unsigned char uint8_t.

Дальше задался вопросом про signed/unsigned char. Проблем с конвертацией
между этими двумя типами не будет если используется дополнительный код
(two's complement). C99 не диктует что должно быть именно такое
кодирование, но будущий C23 диктует. POSIX диктует и two's complement и
8-бит размер. По этому, в общем то, на POSIX (signed) char можно
безопасно использовать. Более того, в UTF-8 строки в C11 исходном коде
интерпретируются как char *.

Итого, для работы с байтами, кроме void *:
* uint8_t * -- некорректно
* unsigned char * -- всегда корректно, если UCHAR_MAX==255
* char * -- всегда корректно в POSIX

3 years agoКуча всякого X11-софта с screenshot-ами
Sergey Matveev [Fri, 17 Dec 2021 12:47:24 +0000 (15:47 +0300)]
Куча всякого X11-софта с screenshot-ами

https://cyber.dabamos.de/unix/x11/
Узнал что есть xlennart игра, аналогичная xbill, только где вместо
Гейтса надо мочить Поттеринга.

3 years agoSIGINFO в tar
Sergey Matveev [Thu, 16 Dec 2021 21:15:27 +0000 (00:15 +0300)]
SIGINFO в tar

Сегодня догадался нажать Ctrl-T чтобы послать SIGINFO в работающий tar и
увидеть прекрасный вывод:

    In: 49 files, 309606500352 bytes; Out: 309606500352 bytes, compression 0%
    Current: ./XXX.xxx (77173096448/88082131032 bytes)

по аналогии с
cp (5f5be8fd96b77bc50e7a6b38c6bd52718c941625) и
dd (bfe140989efca7e0645986dc0678f4af4e492211)

3 years agoRust -- must die
Sergey Matveev [Thu, 16 Dec 2021 18:57:03 +0000 (21:57 +0300)]
Rust -- must die

http://rustmustdie.com/
Сайт созданный по аналогии с http://cmustdie.com/.
Даже моих небольших практических знаний по Rust достаточно чтобы
чуть-чуть усомнится в некоторых высказываний, но в целом я согласен
что Rust это та ещё жопа для написания. И на работе коллега подтвердил
что безопасное написание очень часто означает кучу копирования -- значит
медленно.

3 years agoПрочитал "Дневник" Чака Паланика
Sergey Matveev [Thu, 16 Dec 2021 17:43:49 +0000 (20:43 +0300)]
Прочитал "Дневник" Чака Паланика

https://ru.wikipedia.org/wiki/%D0%94%D0%BD%D0%B5%D0%B2%D0%BD%D0%B8%D0%BA_(%D1%80%D0%BE%D0%BC%D0%B0%D0%BD)
Ни с чем прежде у него не знаком (ну кроме фильма "Бойцовский клуб",
хотя чёрт его знает насколько близок он к книге). Очень необычно, очень
детально. Первая половина книги... по мне так скучновата, но возможно
потому что не понятно к чему это всё говорится и к чему всё ведётся. Но
под конец начинается стрёмная кровавая движуха. А это уже понравилось.
Однозначно что-нибудь ещё бы надо у него прочитать.

3 years agoКонвертирование PDF для recoll и определения страниц
Sergey Matveev [Thu, 16 Dec 2021 14:10:00 +0000 (17:10 +0300)]
Конвертирование PDF для recoll и определения страниц

http://www.git.stargrave.org/?p=dotfiles.git;a=blob;f=recoll/bin/pdftotext.sh;h=1775278068da0b9d1b844a82888b8b1a0b8088f9;hb=0232bed604be77802bc76422627be707ac2c8838
Для конвертирования PDF в текст я использую mutool convert -F text
утилиту. Но вот беда -- в её выводе нет информации о страницах. recoll
из коробки понимает разделение на страницы если есть "^L" символ. Пока
сделал хак в виде отдельного mutool info вызова для получения количества
страниц и дальше для каждой страницы вызов convert-а, с выводом "^L"
символа. Существенно медленнее, но пока меня не сильно смущает.

3 years agoСнова tar c|tar x vs cp
Sergey Matveev [Thu, 16 Dec 2021 11:15:26 +0000 (14:15 +0300)]
Снова tar c|tar x vs cp

В dd558b2a665788dfa4a15024397060615bd86d98 уже упоминал про "cp -a": без
этой опции cp будет "терять" всё на свете о файле, кроме его содержимого
(например mtime (863f4e1fadabacdb2de4d6493ba96880e20eb0e8)). А сегодня
обнаружил (это не было новостью -- просто не задумывался прежде) что
сохранить жёсткие ссылки с ним нельзя. Ни в коем случае для серьёзного
backup-а cp использовать нельзя.

И опять же спасает например tar/cpio/pax, которые без дополнительных
опций будут сохранять информацию о таких ссылках в архиве и при
разархивировании воссоздавать их.

Вот только с tar-ом обнаружил неприятную особенность: в нём можно
указать ("T") список путей которые надо добавить в архив, но директории
в нём он рекурсивно добавляет в архив. Например:
    find . -type d -mindepth 1 | tar cfT - - | ...
в архив не поместит только сами директории, но и их содержимое. В POSIX
tar команде ничего нет чтобы могло помочь. В GNU tar есть --no-recursion.
В BSD tar есть -n, --norecurse, --no-recursion. Портабельной опции для
find -d | tar нету.

cpio мог бы тут помочь. Но у самого cpio формата сильные ограничения
(например на размер файла). pax, с точки зрения POSIX, был бы тут
идеален и интерфейсом (копировать файлы можно без pipe-а вызывая pax -rw)
и форматом, но он из коробки нигде не присутствует. А если и имеется, то
зачастую не имеет поддержки pax формата.

Так какую же команду можно использовать для создания архива без
ограничений (типа размера), чтобы find-ом можно было только директории
предоставить например? Никакую :-). Не вижу тут решения. Всё не
портабельное или не присутствует гарантированно в ОС (pax). В FreeBSD
cpio команда то на самом деле использует libarchive и поэтому может
создавать pax-архивы. На практике для конкретных систем -- возможности
то имеются.

3 years agoТакой разный код на Си для простой утилиты cat
Sergey Matveev [Thu, 16 Dec 2021 10:30:07 +0000 (13:30 +0300)]
Такой разный код на Си для простой утилиты cat

https://github.com/0intro/plan9/blob/master/sys/src/cmd/cat.c
https://github.com/coreutils/coreutils/blob/master/src/cat.c
К вопросу о сравнении языков программирования: на одном и том же можно
кардинально сложно или просто писать.

3 years agorcl и несколько индексов
Sergey Matveev [Wed, 15 Dec 2021 21:17:41 +0000 (00:17 +0300)]
rcl и несколько индексов

Сегодня я начал использовать recoll (bb337e0d83d3ef04c5ec966f090ade5a162e21a1)
и уже использую несколько индексов, чтобы контексты поиска разделить.
Отдельно RFC, отдельно man-ы и отдельно рабочая директория. И позволяет
распараллелить работу с ними и независимо переиндексировать, но главное
это позволяет разделить знания об особенностях индексирования по разным
директориям (ведь за это отвечают несколько файлов: recoll.conf и
mimeconf, как минимум).

Хочется уметь легко указывать по каким именно индексам я хочу искать. Не
руками же мне "-i ..." опции передавать. rcl теперь если видит что
первые аргументы к нему являются названиями директорий в ~/recoll, то
добавляет их в качестве дополнительного индекса. Теперь:
rcl http authorization -- ищет среди всяких рабочих PDF-ок
rcl man http authorization -- ищет ещё и среди man страниц
rcl rfc man http authorization -- будет ещё и в RFC смотреть

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

3 years agoМой zsh прогресс
Sergey Matveev [Wed, 15 Dec 2021 21:14:38 +0000 (00:14 +0300)]
Мой zsh прогресс

Сейчас я с первого раза, не залезая в документацию, пишу уже вот такие
команды автоматом: vobs=(VTS*.VOB(on)) ; ffmpeg -i ${(j:|:)vobs[2,-1]} ...
Нужно взять все VTS*.VOB-ы отсортированные, без первого, соединить их
список через "|" ну и передать в ffmpeg (для кодирования с DVD). И нигде
не нужно париться с экранированием (хотя с файлами DVD даже под DOS не
было бы проблем). В прошлом году я бы возможно это ещё и не смог бы
синтерпретировать.

3 years agoJFS2 в Linux пришёл из OS/2
Sergey Matveev [Wed, 15 Dec 2021 19:38:19 +0000 (22:38 +0300)]
JFS2 в Linux пришёл из OS/2

https://en.wikipedia.org/wiki/JFS_(file_system)
Эта файловая система пришла в Linux, как оказалось, из OS/2.
Я не знал что и для последней то она была.

3 years agorecoll показал на что способен
Sergey Matveev [Wed, 15 Dec 2021 13:45:28 +0000 (16:45 +0300)]
recoll показал на что способен

http://www.git.stargrave.org/?p=dotfiles.git;a=blob;f=recoll/bin/rcl
Вчера установил recoll (e18bf71655b8a564745dd4f307df4ce034996031), но
только сегодня вплотную с ним поигрался.

* первая задача: среди кучи всяких ужасных PDF-ок связанных с ТК26,
  найти все где упоминается например "VKO". Они ужасно отформатированы,
  многие ужасно сконвертированы из Word-а. Названия ни о чём не говорят
  (идентификаторы рекомендации/стандарта). Многое разнесено и ссылается
  друг на друга по куче этих стандартов. VKO находит идеально, без
  проблем
* вторая задача искать не тривиальные AND-нутые фразы по RFC: даже
  комментировать нечего -- всё отрабатывает без проблем. Хотя, учитывая
  что там и .txt имеются -- это можно и grep-ом делать, просто не так
  быстро
* третья задача, после которой recoll у меня точно остаётся: замена
  apropos. Работает ли вообще этот apropos? С одной стороны я до сих пор
  продолжал иногда его вводить когда надо что-то найти в man-ах. Но у
  меня стойкое ощущение что банальные вещи у меня и zsh completion
  самописный находит прекрасно, а вот чуть более сложные apropos уже не
  может. В итоге его запускаешь, но толку никакого. Беру проект на Си в
  котором точно помню что есть FreeBSD-specific код, вижу в нём
  упоминание PROC_TRACE_CTL_DISABLE. В какой man смотреть за его
  описанием? apropos -- молчит. recoll показывает что в
  /usr/share/man/man2/procctl.2.gz есть:
      by PROC_TRACE_CTL...self.  PROC_TRACE_CTL...2).
      PROC_TRACE_CTL_DISABLE...as PROC_TRACE_CTL...of PROC_TRACE_CTL...

Я правда написал обёртку над recollq, чтобы она поприятнее для глаз
выводила ABSTRACT (с ним как-то полегче понимать о чём вообще документ
найденный) и в которой ещё и подсветка применяется supercat-а
(d85140c8be0146ddc09312cd4470c1aec828b894):

3 years agoРазукрашивание вывода по регулярным выражениям
Sergey Matveev [Wed, 15 Dec 2021 11:19:33 +0000 (14:19 +0300)]
Разукрашивание вывода по регулярным выражениям

http://supercat.nosredna.net/index.html
http://kassiopeia.juls.savba.sk/~garabik/software/grc.html
http://prysm.sourceforge.net/
Куча всяких разукрашивателей, но написаны на Python -- даже пробовать не
хочется это всё уже. Благо, supercat написан на чистом Си, без проблем
собирается и очень прост в использовании: указываем цвет, регулярку и
получаем разукрашенный вывод. Помню что мне не раз подобное требовалось,
но отдельных утилит для этой задачи не искал.

3 years agoПробую начинать использовать recoll
Sergey Matveev [Tue, 14 Dec 2021 20:15:00 +0000 (23:15 +0300)]
Пробую начинать использовать recoll

https://www.lesbonscomptes.com/recoll/
http://www.git.stargrave.org/?p=dotfiles.git;a=commitdiff;h=cbccb5bd5071445788464f183f563cc6a79218c1
Коллега на работе в очередной раз поднял вопрос и напомнил о теме
индексации и поиска информации в документах. По сути я удовлетворяюсь
grep-ом в преобладающем большинстве случаев. Но к сожалению имеются
PDF-ки, как минимум. Да и HTML-ки не всегда удобны для grep-а.

Нашёл recoll программу. Xapian движок -- точно такой же как и в
mu-helper используется (его я использую вместе с Mutt-ом), поэтому язык
запросов мне уже знаком. Есть не только GUI клиенты, но и recallq CLI.
Так как pdftotext у меня нет, ибо не хочу я ставить громоздкий poppler,
ибо я поклонник MuPDF (f5ac4628c014cc4c9fb43f7f15c6bd5cc211d24d), то
пришлось обёртку над mutool писать и переопределять вызов "декодера" PDF
файлов. Делается легко. Работает отлично. HTML-ки, PDF-ки, всякие
случайно попавшиеся под руку файлы словарей -- всё ест и по всему ищет.
С кириллицей не обнаружил проблем. Надо осваивать это всё, а то,
действительно, как в каменном веке перехожу в ~/doc, ~XXX/doc и grep-ом
ищу. Когда понимаю что что-то в PDF-ках, то бывало циклом прогоняю
pdftotext (ну точнее аналог), но это терпимо когда крайне редко делается.

3 years agoВручили на работе почётную грамоту
Sergey Matveev [Tue, 14 Dec 2021 20:13:24 +0000 (23:13 +0300)]
Вручили на работе почётную грамоту

За достижение высоких показателей в труде по итогам года.

3 years agoКриптономикон
Sergey Matveev [Tue, 14 Dec 2021 09:08:24 +0000 (12:08 +0300)]
Криптономикон

https://ru.wikipedia.org/wiki/%D0%9A%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%BD%D0%BE%D0%BC%D0%B8%D0%BA%D0%BE%D0%BD
Порекомендовали тут книгу Нила Стивенсона "Криптономикон", потому что в
блоге про неё нет упоминаний. Но я её, конечно же, читал. Просто много
раньше создания блога. Самая шифропанковская среди всей литературы.
Unix-like системы, перехват ван Эйка, PGP, и приглашённый Брюс Шнайер
специально для этой книги создавший вполне себе серьёзный настоящий шифр
Пасьянс (http://www.cypherpunks.ru/Solitaire.html), использующий
игральные карты для "вычислений". Оказалось что у Нила Стивенсона всего
две книги прочитал: эту и Семиевие (ad1e55aca359fd071aea257aaee50fa59d5b3d3e)
Обе круты.

Ещё в Криптономиконе очень нравился вот этот абзац:

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