Sergey Matveev [Sat, 29 Jan 2022 12:51:38 +0000 (15:51 +0300)]
История Сида Мейера до его Цивилизации
https://www.youtube.com/watch?v=jS_v-20nhfU
https://en.wikipedia.org/wiki/Civilization_(video_game)
http://www.freeciv.org/
Играл во много игр в названии которых было "Sid Meier's"
(ab09781d390fd55cebed3baa649bd08e003ad8e0). Но цивилизация,
как уже писал, феноменальна. Даже когда я был маленьким,
далеко не всё понимал в этой игре, но всё равно играл и
играл в неё. Жутко засасывает. И до сих пор не отпускает:
время от времени запускаю FreeCiv. Помню что где-то Столлман
говорил, что его Lemote YeeLoong имел единственный недостаток:
слишком маленький экран для его FreeCiv. Причём FreeCiv не шибко
сильно навороченнее чем самая первая часть Civ. То бишь, спустя
30+ лет в неё всё равно интересно играть.
Sergey Matveev [Sat, 29 Jan 2022 10:16:06 +0000 (13:16 +0300)]
Актёры дубляжа в Longest Journey
https://tlj.fandom.com/ru/wiki/%D0%9F%D0%BE%D0%BB%D0%B8%D0%BD%D0%B0_%D0%A9%D0%B5%D1%80%D0%B1%D0%B0%D0%BA%D0%BE%D0%B2%D0%B0 76fdc62fc5a8e629fa941d972ae74d53791e05b4
Оказывается русский дубляж (которого я не слышал) Longest Journey делала
Полина Щербакова (April Ryan озвучивала, которой больше всего в игре) --
её голос хорошо знаком. И оказывается она замужем на Владом Коппом --
голосом "Модели для сборки". Как тесен мир!
Sergey Matveev [Sat, 29 Jan 2022 08:52:23 +0000 (11:52 +0300)]
Посетители на сайте anarc.at
https://anarc.at/blog/2022-01-28-one-year-visitors/
Просто рассматривает всякую статистику, среди которой отмечает одного
посетителя с Lynx-ом:
I also salute that "Lynx" visitor who managed to come up on those
stats. Knowing that Lynx doesn't run Javascript or display images,
you must find yourself pretty clever with that user agent string
hacking. Or did I miss something?
Напишу ему, что это не шутка, что никто агента не подменял.
I saw your https://anarc.at/blog/2022-01-28-one-year-visitors/ post and
just want to note, that I am the visitor with the Lynx :-) (on FreeBSD
from Russian Federation). I do not alter User-Agent, I really use it as
my main browser most of time. Sometimes I use Links2 to see pages with
much of images. Sometimes I use Xombrero browser -- the best GUI browser
I have seen so far, but unfortunately its development and support is
over for many years.
If there is small number of images (not photo album), then lynx is ok,
because it shows links to the images, that I just follow -- it downloads
them and shows through the external program. It is completely ok for me.
I turn of automatic images downloading/showing even in GUI browser,
because so many sites have them completely useless.
Those browsers do not support many modern features like HTTP/2, possibly
modern TLS 1.3 implementation and no JPEG XL, AVIF, WebP (in Links2).
Moreover Xombrero very often segfaults when trying to display some
images. Possibly because of unsupported old WebKit. Only Xombrero gives
ability to monitor and manage trust-of-first-use X.509 certificates, do
certificate pinning. Also that Xombrero often does not work properly (at
all) with basic HTTP authentication. But I still want to use all of them!
All of that is not a problem anymore when I wrote tofuproxy:
http://www.tofuproxy.stargrave.org/
That HTTP/HTTPS proxy acts as TLS-terminator, taking all certificate
management issues. When some browsers visits the site those certificate
is changed (for example), then it shows Tk-written dialog with
certificate chain, saved certificate chain and waits for user
interaction (accept, accept ones, reject). Because it is written on Go,
it also acts as HTTP-terminator, supporting keep-alives, HTTP/2 (through
ALPN) and TLS resumption tickets. Also it does DANE-EE validation check,
that hardly anyone other does at all. It also takes TLS client
authentication and HTTP basic authorization through Tk-dialogs too. It
transcodes JPEG XL/AVIF/WebP (if user-agent != Xombrero) to PNG
transparently in background and has other various content
checking/altering things (like replacing HTTP redirects with explicit
HTML page to aware of redirection happening), forbidding of
analytics/spying/advertisement requests. Also I added WARC browsing
support to it -- through FIFO files you can load/index .warc.(gz|zst)
and browse them (Python-based viewers do not install for me anymore in
many cases because of broken Python's packaging ecosystem, and other
WARC-browsers requires various external databases like Redis, that is
too burdensome for only local usage). Just for fun I also added Gemini
protocol support, however I do not like its idea at all.
I forbid anyone trying to execute some untrusted code without my clear
explicit permission. So I do not use websites with JavaScript at all.
With other ones (and with tofuproxy) -- all of that is pretty modern
(TLS 1.3, session resumption) solution.
xml sel -T -t \
-m "rss/channel/item" \
-v "./enclosure/@url" -o " " \
-v "./title" -n \
index.rss
Делает for-each для каждого item, в каждом из которых выводит содержимое
url атрибута enclosure, добавляет пробел, а дальше выводит значение
title, добавляя перевод строки. Единственное что мне пришлось
подсмотреть, так это как сослаться на атрибут.
Sergey Matveev [Fri, 28 Jan 2022 11:55:25 +0000 (14:55 +0300)]
История Sony
https://16-bits.ru/%d0%ba%d1%80%d0%b5%d0%bc%d0%bd%d0%b8%d0%b5%d0%b2%d1%8b%d0%b5-%d1%82%d0%b8%d1%82%d0%b0%d0%bd%d1%8b-%e2%84%9636/
Люблю я "Кремниевые титаны"! И не слишком поверхностно, и не слишком
детально и с 2x скоростью отличный темп подачи. Sony я ещё с
подросткового возраста недолюбливаю, ибо куда ни плюнь, но везде они
делают всё несовместимым между собой (аккумуляторы, карты памяти). Но
качество неплохое. Недолюбливать я продолжал и продолжаю и сейчас, ибо
если Sony, то vendor-lockin и DRM. Но они действительно очень много чего
принесли в этот мир, что наверняка коснулось каждого человека.
Чего только они не делают, как и LG с Samsung-ом! Верно замечено, что
могли бы быть отдельным государством, так сказать. f4fff272447c28c99e13e44668ec6533ab26589f
Sergey Matveev [Fri, 28 Jan 2022 09:13:36 +0000 (12:13 +0300)]
Поиск по регулярке, исключая определённое слово
В 02c6419d4f1a424aa24f78cdf9d75e52681780f1 хотел найти все "/bin/", но
исключая "/bin/sh". В Perl регулярках (кто бы сомневался!) это можно
сделать: /bin/(?!sh). Для GNU Grep-а можно указать -P опцию, чтобы он
интерпретировал регулярку как Perl-овую -- будет работать. Для git grep
аналогично, вот только оказалось что он у меня без PCRE собран и поэтому
не работал из коробки.
Sergey Matveev [Fri, 28 Jan 2022 08:12:27 +0000 (11:12 +0300)]
git jump и Vim
Уже начинают вырабатываться рефлексы на использование всяких новшеств
(e555e45817d00286d76c6bd1df49f30c67389aa0, 768d6d9661c699595043d0a129d51df29343ddcb):
В goredo проекте хочу найти все места с hardcode-ом /bin/ путей:
ggj /bin/
(ggj это алиас на GIT_EDITOR="$EDITOR -c copen" git grep jump).
Открывается Vim с заполненным quickfix-ом. Вижу что много /bin/sh
которые меня не интересуют. Хочется удалить их из quickfix:
:packadd cfilter
:Cfilter! /bin/sh
Можно указать регулярку которая бы убрала /bin/sh, но, стыдно
признаться, я с ходу не помню как это сделать. Конкретно в git-grep
можно сделать:
gg -e /bin/ --and --not -e /bin/sh
Sergey Matveev [Thu, 27 Jan 2022 19:41:24 +0000 (22:41 +0300)]
Postgres разрабатывался на рабочей станции Alpha
https://retrocomputing.stackexchange.com/questions/13611/how-much-better-was-dec-alpha-than-contemporaneous-x86
Говорят, что эта БД создавалась на машине с Alpha процессором и 64MB RAM.
Просто ещё один любопытный факт из серии тех, что Doom с Quake создавались
на NeXT. Как и Hexen с Heretic.
Sergey Matveev [Thu, 27 Jan 2022 18:05:41 +0000 (21:05 +0300)]
Метаинформация PDF-файлов
http://www.git.stargrave.org/?p=dotfiles.git;a=blob;f=bin/bin/ps2pdf.zsh
Оригинальная ps2pdf команда на самом деле является просто shell обёрткой
над Ghostscript-ом, передавая пару опций, типа желаемой версии
создаваемого PDF. Я давно уже использую самописный ps2pdf.sh, который
старается делать PDF/A документы: типа более надёжные на то что будут
везде открыты. Как минимум я хочу чтобы он встраивал шрифты в них, а то
уже насмотрелся когда пользователи Windows/Word отправляют PDF-ки, в
которых ссылки на отсутствующие шрифты.
PDFSETTINGS=/default на удивление делает почти всё что мне надо и не
делает того что мне не надо. Дополнительно я указываю чтобы "фильтрация"
изображений не применялась -- насколько понимаю, он не будет пытаться
что-то пересжимать/перекодировать.
Этот же скрипт я использую для "пересжатия" уже имеющихся на руках
PDF-ок. На самом деле оно зачастую может увеличить документ, как минимум
из-за добавленных шрифтов.
Обратил внимание что Ghostscript создаёт свою собственную метаинформацию
в файле, хотя и старается брать некоторые поля из оригинального файла.
Всякое имя автора, заголовок pdflatext при использовании
\usepackage[pdfusetitle]{hyperref}
пропишет в результрующий файл. В ps2pdf добавил вызов exiftool для
удаления всяких пустых полей, полей содержащих UUID-ы (ну не нравится
мне такой род информации), плюс копирую информацию о программе создавшей
изначальный PDF. В итоге получается:
PDF Version : 1.4
Linearized : No
Page Count : 1
XMP Toolkit : Image::ExifTool 12.30
Creator : pdfTeX-1.40.22
Title : Мой титульный лист
Producer : GPL Ghostscript 9.25
Conformance : B
Part : 1
Create Date : 2022:01:27 21:30:56+03:00
Creator Tool : LaTeX with hyperref
Modify Date : 2022:01:27 21:30:56+03:00
Author : Сергей Матвеев
Изначально это всё было на pure POSIX shell с вставками Perl-а для
выдирания названий полей. Но затем этот скрипт стал ещё одной жертвой
моей любви к zsh, с которым внешние утилиты (ну кроме, собственно, gs и
exiftool) полностью исчезли и код стал существенно проще. Всё же мне
очень нравится zsh уже и как язык скриптования. Знаю что можно написать
нечто менее понятное чем на Perl-е, но... так можно везде.
Хотя я обнаружил что ExifTool на самом деле ничего не удаляет, а
инкрементально дописывает изменения. И только сторонними утилитами можно
действительно избавиться от ненужного.
Sergey Matveev [Thu, 27 Jan 2022 17:58:15 +0000 (20:58 +0300)]
Redo и LaTeX
В d0ffbdd295c1583abde17388553038f39747b0cc упоминал о redo цели которая
смотрит на .log файл результата работы TeX и повторяет сборку пока там
не исчезнет сообщение о том что хватит. Доработал эту default.pdf.do
цель, которая ещё и BibTeX запускает:
redo-ifchange $2.tex db.bib
exec >&2
jobname=${3#.}
trap "rm -f ${jobname}*" HUP PIPE INT QUIT TERM EXIT
pdflatex --draftmode --jobname=$jobname $2.tex
bibtex $jobname
while grep -q "Rerun to get" $jobname.log ; do
pdflatex --jobname=$jobname $2.tex
done
mv $jobname.pdf $3
В отличии от первой версии скрипта, эта использует честный jobname для
создания всего вывода полностью во временных файлах, подчищая за собой
при ошибке или выходе. Прежде, если я запустил redo, то первое
исполнение pdflatex команды уже перезатрёт report.pdf, но может выйти с
ошибкой при этом (или на bibtex упадёт) -- с точки зрения redo файл $1
был затронут, но в его базу данных знаний о нём не занесено. Поэтому при
следующем запуске после упавшего, redo сообщит о том что .pdf уже был
externally modified. Плюс оставался всякий мусор после сборки. С этой
новой версией default.pdf.do все эти проблемы решены. Эмпирически
обнаружил что jobname не может начинаться с точки, поэтому отрезаю её,
используя в качестве имени уже имеющееся временное название $3.
Sergey Matveev [Thu, 27 Jan 2022 17:38:03 +0000 (20:38 +0300)]
Gorgoroth живые выступления
https://www.youtube.com/watch?v=hjr74CNzArM
https://www.youtube.com/watch?v=9m8BkcIzG7M
Да у них не только в Кракове (c5bc373f82e2f9703d9810e3c7e0c55a221dd71a)
распятия, овечьи головы и факелы. Позёрство не знает границ!
Sergey Matveev [Thu, 27 Jan 2022 10:27:04 +0000 (13:27 +0300)]
PFX -- как не надо разрабатывать крипто стандарт
https://www.cs.auckland.ac.nz/~pgut001/pubs/pfx.html
Полностью согласен со всем написанным! PFX это самое отвратительное что
я видел среди всей тематики ASN.1 структур связанных с криптографией.
Хотя многие другие стандарты явно как-будто опираются на эти
рекомендации (как не надо делать), но всё же переплюнуть PKCS#12 не вышло.
Sergey Matveev [Thu, 27 Jan 2022 09:22:41 +0000 (12:22 +0300)]
Про похожие по звучанию ругательные слова английского
https://habr.com/ru/post/648051/
Похожие по произношению слова но с разным смыслом:
There is shit on the sheets.
Playing the bagpipes is a piece of piss.
This is our beach, you bitch!
We still steal other people's steel.
I can't stand that old cunt.
Put your cock away, all I want is a coke.
This crepe tastes like crap.
We need to deal with the third turd.
Ну и русские похожи на всякие английский:
Книга -> nigga
Факт -> fucked
Щит, шит, шитьё -> shit
День, деньги -> dang, damn
Sergey Matveev [Thu, 27 Jan 2022 09:08:21 +0000 (12:08 +0300)]
Жёсткие диски с 520-байт секторами
https://jrs-s.net/2022/01/26/520-byte-sectors-and-ubuntu/?pk_campaign=feed&pk_kwd=520-byte-sectors-and-ubuntu
https://pissedoffadmins.com/general/unsupported-sector-size-520.html
https://old.reddit.com/r/homelab/comments/97se1p/512520_byte_sector_sizes/
https://bjartolini.wordpress.com/2014/11/06/108/
https://forums.freebsd.org/threads/deciding-what-to-do-with-520byte-sector-size-ssd.79361/
https://justinschmitt.com/2019/01/16/unsupported-sector-size-520.html
https://en.wikipedia.org/wiki/Data_Integrity_Field
Даже не слышал прежде о существовании подобного. Точнее я слышал про
Data Integrity Field, но думал что оно автомагически за командами SCSI
скрыто и в ОС сектор всё равно видится как 512-байт.
Sergey Matveev [Thu, 27 Jan 2022 09:01:02 +0000 (12:01 +0300)]
Про Семёрку и немного Илона Маска
https://habr.com/ru/post/647825/
Хорошая статья про развитие Р-7. Я насмотрелся кучи чертежей этой ракеты
в институте, хотя больше имел дело с Прогрессом (создавалось впечатление
что я знаю про каждый болт в нём). Интересно было всё это вспомнить. Ну
и касательно Маска вроде всё корректно.
Sergey Matveev [Thu, 27 Jan 2022 08:47:47 +0000 (11:47 +0300)]
Фотография нехилой по размерам BBS установки
https://rachelbythebay.com/w/2022/01/26/swcbbs/
Никогда не видел фотографии с таким количеством компьютеров. Прикольно
наверное молодым людям объяснять что: вот эта железка, это типа одного
TCP соединения.
Sergey Matveev [Wed, 26 Jan 2022 21:46:04 +0000 (00:46 +0300)]
Носки с сандалиями
https://ru.wikipedia.org/wiki/%D0%9D%D0%BE%D1%81%D0%BA%D0%B8_%D1%81_%D1%81%D0%B0%D0%BD%D0%B4%D0%B0%D0%BB%D0%B8%D1%8F%D0%BC%D0%B8
https://en.wikipedia.org/wiki/Socks_and_sandals
На Wikipedia есть даже отдельные страницы на эту (вечную) тему. В блоге
уже не раз затрагивал эту тему, ибо она реально нервирует кучу женщин :-)
Но а я носил, ношу и буду носить, ибо с натираниями ноги я мириться не
готов. Удобство превыше всего. Хотя в целом я уже наверное года два их
ни разу не надевал. Брюс Уиллис, пишут, ярый приверженец такого ношения,
а я чем хуже?
Sergey Matveev [Wed, 26 Jan 2022 20:01:13 +0000 (23:01 +0300)]
Про name service в Ethereum
https://yanmaani.github.io/no-ethereum-name-service-is-still-a-clown-show/
Демонстрация того, как вовсю разбрасываются словами "децентрализация" и
"цензуроустойчивость". Доменом вы владеть можете, а вот "продлять" его:
персонально вам могут влепить пошлину нехилую за него.
Ничто технически не запрещает же.
Sergey Matveev [Wed, 26 Jan 2022 14:06:58 +0000 (17:06 +0300)]
NNCP community, TCP/IP стэк
irc://irc.oftc.net/nncp
Один из активнейших популяризаторов NNCP, создал Matrix канал и IRC мост
к нему: #nncp:matrix.org. С Matrix у меня ничего не вышло
(ec98bff598791d031b0625174b87bd4bd54c188b), но к OFTC подключился.
Обнаружил, что некоторые каналы в нём требуют чтобы пользователь был
"verified", что требует перехода по ссылке на которой какой-то JS.
Поэтому к какому-нибудь suckless каналу не подключиться.
Народ там активничает, что-то обсуждает, спрашивает, дают ответы. Оттуда
же мне пришли патчи для поддержки сборки на OpenBSD, которую я с
сегодняшнего дня буду чмырить (c42a501865e4a91b8fa172840f9a0d35935fde90).
Всякие люди написали лично что вовсю используют моё поделие.
В комментарии к e9cb4aa824f5675c18230ece4f384a463cc70439, kmeaw меня
направил на gVisor библиотеку -- pure-Go реализацию сетевого IP стэка.
В новых версиях NNCP перешёл на неё, сделал так, чтобы просто из под
штатной ОС с запущенным Yggdrasil можно было связываться с NNCP демоном
самостоятельно выступающем в роли Yggdrasil ноды.
Добавление Yggdrasil-а где-то взбудоражило людей и только за один день у
меня добавилось несколько подписчиков рассылки. Matrix канал, говорят,
ещё как-то там соединён с другим обществами на тему более безопасного и
децентрализованного Интернета.
Sergey Matveev [Wed, 26 Jan 2022 10:10:46 +0000 (13:10 +0300)]
OpenBSD и firmware
Установил тут OpenBSD для проверки работоспособности NNCP под ним. После
установки, без предупреждений заранее, он полез в firmware.openbsd.org
чтобы скачать и установить Intel-related firmware. И вот как-то сразу
прям всё уважение к этой ОС пропало, полностью и наотрез. Совсем охренели
все эти разработчики, считая нормой просто так слазить в Интернет.
apenwarr/do (redo на POSIX shell) не находит .do файлы, не работает. Но
хотя бы goredo без проблем собирается.
А ещё в ней из коробки нет ни xz, ни zstd. И tar не умеет
декомпрессировать на лету при разархивировании (это мне скорее
даже нравится).
Sergey Matveev [Tue, 25 Jan 2022 08:27:22 +0000 (11:27 +0300)]
git jump
https://github.com/git/git/tree/v2.35.0/contrib/git-jump
В составе git-а есть такая вот утилита, которая позволяет результат
diff-ов, git-grep-ов превращать в quickfix и открывать в редакторе.
Когда-то для подобного я писал qq утилиту: 5d2d9f386d547b8e436829db5c6533b17feffe8e.
Посмотрим какого это с jump-ом.
Sergey Matveev [Tue, 25 Jan 2022 07:07:00 +0000 (10:07 +0300)]
Ненужность Gemini протокола
https://xn--gckvb8fzb.com/gemini-is-solutionism-at-its-worst/
Полностью согласен и считаю аналогично всё что написано в статье про
Gemini. Писал об этом не так размашисто просто. Gemini не решает ни
одной проблемы, которую нельзя бы было решить HTTP. Не нравится CSS?
Не используй, отключи, заблокируй CSS. А не изобретай отличающийся
протокол просто чтобы у нас существовал отличающийся протокол.
Sergey Matveev [Mon, 24 Jan 2022 18:03:01 +0000 (21:03 +0300)]
FSF и сертификация железа уважающего свободу пользователя
https://www.opennet.ru/opennews/art.shtml?num=56568
Все эти наезды вижу в рассылках. И в целом не согласен с ними. Поражает
как спокойно на это реагирует Столлман -- явно опытный и мудрый человек.
Они чётко говорят что их оценке касается то что проходит через ОС, через
general purpose компьютер. Железка с прошивкой, которая не загружается
извне -- это чёрный ящик. И физическое отключение WiFi/GPU я тоже считаю
нормальной штукой. WiFi я в двух ноутбуках отключал физически.
Sergey Matveev [Mon, 24 Jan 2022 17:53:10 +0000 (20:53 +0300)]
Очередная попытка запустить Matrix
http://lists.cypherpunks.ru/archive/nncp-devel/2201/0469.html
Попробовал всякие Matrix клиенты -- ничего не вышло. Смог запустить
Dendrite сервер, но понятия не имею успешно ли или нет, ибо ни одного
рабочего клиента который бы мог подключаться к каналам. Создалось
впечатление что программисты заинтересованы только web-ом, мобильными
устройствам, ну и возможно GUI на desktop-е. Хотя JSON+HTTP -- уж
насколько просты должны быть в обращении, но софта нет.
Может я совсем криворукий стал? Но блин, ведь десятки XMPP или IRC
клиентов собираются без проблем. С полдюжины всяких XMPP серверов на
самых разных языках я собирал и запускал, с работающей федерацией. А по
мне так XMPP реализовать посложнее чем JSON-ы по HTTP транспорту гонять.
Sergey Matveev [Mon, 24 Jan 2022 13:36:35 +0000 (16:36 +0300)]
Почему переехали с GNU/Linux на FreeBSD
https://it-notes.dragas.net/2022/01/24/why-were-migrating-many-of-our-servers-from-linux-to-freebsd/
* Консистентность всей системы. Нет необходимости устраивать революции
во всей ОС/дистрибутивах раз в несколько лет
* Разработка FreeBSD до сих пор движется не только коммерческими интересами
* В GNU/Linux есть Docker, Podman, lxc, lxd... а в FreeBSD есть Jail-ы
* В GNU/Linux есть ext4/xfs/btrfs... а в FreeBSD UFS2 и ZFS
* Процесс загрузки гораздо проще и понятнее
* Сетевой стэк FreeBSD до сих пор лучше и часто быстрее
* Большой инструментарий из коробки
* Bhyve хоть и не так фичаст как KVM, но часто быстрее
Sergey Matveev [Sun, 23 Jan 2022 18:40:22 +0000 (21:40 +0300)]
Skullhog фотография в Encyclopedia Metallum
https://www.metal-archives.com/images/1/2/5/9/125971_photo.jpg
https://www.metal-archives.com/bands/Skullhog/125971
Основная фотография голландской Skullhog группы -- на нашей Красной
площади. Это небось сделано в 2007-ом когда я на них в живую был.
Sergey Matveev [Sun, 23 Jan 2022 11:33:32 +0000 (14:33 +0300)]
zsh autoquoter
https://github.com/ianthehenry/zsh-autoquoter
http://www.git.stargrave.org/?p=dotfiles.git;a=blob;f=zsh/.zsh/rc/025zaq.zsh
Мизерный плагин (на два экрана кода) который автоматически экранирует
написанный текст для команд. Не знаю насколько будет полезен, но попробую.
Sergey Matveev [Sun, 23 Jan 2022 11:13:45 +0000 (14:13 +0300)]
Брайн Керниган о ранней истории Unix
https://www.youtube.com/watch?v=ECCr_KFl41E
Понравилась программа проверки орфографии:
cat files | tr ... | sort | uniq | comm -1 - dict
просто поиск слов в некоем, каноничном представлении, которые
отсутствуют в файле словаря.
А ещё Microsoft какое-то время была крупнейшим поставщиком Unix систем в
мире, со своим Xenix. Первая версия Word была написана именно для него.
Sergey Matveev [Fri, 21 Jan 2022 06:42:01 +0000 (09:42 +0300)]
Язык молодёжи
С молодым коллегой попереписывался, а он использовал слова "магарыч",
"банкуй". Только из контекста предположил их значения. Никогда прежде ни
в устной, ни в письменной речи не встречал. Хотя одна из ссылок в
поисковой выдаче вывела на статью начинающуюся с:
Наверняка каждый слышал фразу «С меня магарыч».
Вот ни разу и нигде не слышал доселе.
Понимаю что слова то старые, не слэнг недавно образовавшийся. Другой
коллега скинул отрывок из литературной классики с ними. Но в живую не слышал.
Sergey Matveev [Thu, 20 Jan 2022 20:31:01 +0000 (23:31 +0300)]
Yes Hello
https://yeshello.org/
Не могу не продублировать этот явно троллинговый сайт:
2018-07-19 12:32:12 you: Hello.
2018-07-19 13:17:15 coworker: Hello.
2018-07-19 17:40:31 you: I have a question, if you have time.
2018-07-20 10:02:24 coworker: Sure, what is it?
2018-07-20 16:33:58 you: I'm working on [something] and I'm trying to do [etc]
2018-07-21 12:33:21 coworker: Oh, that's [answer]
А я даже коллекцию ссылок на эту тему имею:
http://www.stargrave.org/LinksCatNoHello.html
Это убийственно раздражает когда человек отправляет привет в IM,
ты переключаешь контекст свой, пишешь тоже приветствие и... ждёшь.
Sergey Matveev [Tue, 18 Jan 2022 18:13:05 +0000 (21:13 +0300)]
Пришло время обновить Vim
Ибо с включённым LSP плагином пару раз в день да вылетает в coredump.
Отладчик показывает что в strcmp в функции самого Vim, а дальше не
разбирался. Собрал из master ветки -- ни разу падений больше не было.
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 не работала (точнее наполовину как-то).
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 -- якобы каждый должен знать как выглядят гидранты
или что такси обязательно жёлтые. Я всё не забуду как приходилось
французам объяснять что такое прописка и что да, это не шутка что мне на
почту (не электронную) ничего не приходит из посылок вообще, ибо я
ничего не заказываю. С местными хотя бы не будет культурных, так
сказать, различий.
В 2019 году произошло великое событие: инженеры из Facebook написали
новый механизм асинхронной работы с дисковым IO, который получил
название io_uring. Он был добавлен в ядро версии 5.1. Вполне неплохо
-- Linux 2019 года уже может полноценно работать с файлами.
Тогда как в FreeBSD AIO появился в 5.0 в 2003-ем году. Facebook молодцы!
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-приводы.
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 бит шифрованием взломан".
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)
Клёвый триллер, понравился. Так как теперь более дюжины книг и рассказов
Кинга прочитал, то уже вижу что это прям его стихия, особенно заканчивать
свои рассказы вот так. Кэти Бейтс в кошмарах после этого только будет
приходить.
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 я не видел.
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
и для проверки софта (де-факто) и для почты постоянно использую.
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 формате ещё.
Sergey Matveev [Fri, 14 Jan 2022 10:21:15 +0000 (13:21 +0300)]
Facebook firewall
Услышал тут:
Непросто англоязычным живётся:
у нас "фейсбук не работает из-за багов в файерволе роутера".
у них "книга лиц недоступна из-за жуков в огненной стене проводника".
Апокалиптическая жуть.
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).
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 мир это ад, даже для попыток
нахождения реально используемой версии кода.
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).
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.
По определению :-)
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-ы я впервые услышал.
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 в том числе.
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.
Если показать 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 никаких претензий.
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 это полная фигня. В том плане, что она опирается
только на решения людей, не делая самостоятельно никакого консенсуса.
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
Впечатляет чего только люди в нём не сделают и как не оформят!
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.
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 при этом заблокировала ему доступ -- это свинство конченое. Ты
не в праве творить в своих же репозиториях угодные тебе изменения?
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.
Выглядит удобно, хотя выделить набор строчек всё равно не выдет.
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 (без объяснения
причин не собираются восстанавливать).
Sergey Matveev [Sun, 9 Jan 2022 20:01:28 +0000 (23:01 +0300)]
Минималистичный xorg.conf
Решил поубирать всё что можно из xorg.conf, который я наверное уже лет
десять таскаю с собой сквозь всевозможные дистрибутивы. Оказалось что
оно даже и пустое будет работать, ничего лишнего, судя по журналу, не
подгружая. Единственное что я оставил:
так как переключение драйвера точно требовалось. Ещё помню что
обязательно нужно было указать Option "AutoAddDevices" "false" в
ServerLayout, но... я забыл для чего, в блоге нет, без этой опции
пока проблем никаких не наблюдаю. Может быть это связано с Logitech
трэкболом было, где задавался mapping некоторых его клавиш в moused
демоне и Xorg не должен был самостоятельно чего-то лишнего делать?
Но переключение языков делается теперь через setxkbmap (прежде в
xorg.conf задавалось). Для трэкбола не нужно никакого mapping-а, ибо
у него и так колесо прокрутки родное имеется. В итоге и выродились
секции с устройствами ввода.
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...
Папа у меня не признаётся что впечатлён этим творением, но я его один
раз застукал, придя домой, что он сидел и слушал этот альбом.
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-а ни с кем не спутаешь.
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-ами.
Sergey Matveev [Sat, 8 Jan 2022 17:48:53 +0000 (20:48 +0300)]
Пропущенные запятые в Python
https://www.opennet.ru/opennews/art.shtml?num=56470
Вечный источник проблем в этом языке! Пример того, как свобода
самовыражения куда больше бед приносит. Конечно, если бы всё было
покрыто тестами досконально, то и проблем бы не было, но зачем на
пустом месте давать такую простую возможность обосраться? Ведь все
эти запятые действительно плохо видны на экране. Настраивать
редактор на их яркую подсветку?
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, но видел что многие даже не
подозревают о таком встроенном функционале, используя костыльные плагины.
Выяснилось что типы файлов он определяет корректно: text/troff, но они
не индексируются, так как неизвестно какой из процессоров roff-макросов
необходимо применять. В штатной поставке есть mimemap файл для явного
указания что файлы в /usr/share/man являются text/x-man, для которых уже
явно вызывается groff с man-процессором.
Добавив этот mapping для всех директорий man-ов (которых с десяток),
проблема решается, всё прекрасно начинается искаться. Прежде, при
проверке работоспособности, я, похоже, давал поиск по man-ам
оказывающимся в /usr/share/man.
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 редко выживал.
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 не
остаётся на практике. Но запустить такой магазин они просто не могли,
так как рынок требует чтобы было модно, ново, молодёжно, с блокчейном
внутри (хотя он там просто лишен).
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/
В этом году я стал использовать патч с мигающим курсором в терминале.
И тоже по причине описанное в статье -- понимать где он находится.
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.
Sergey Matveev [Thu, 6 Jan 2022 16:22:05 +0000 (19:22 +0300)]
apcupsd
Впервые решил использовать демона для мониторинга ИБП. Хотя может быть
раньше и пробовал, но ничего не вышло из-за какой-нибудь проприетарщины.
Сейчас у меня APC ИБП появился. Установил apcupsd из портов, указал в
конфиге что нужно использовать USB -- бесперебойник видит, все параметры
показывает, из коробки делает и wall и выключение системы. Всё оказалось
тривиальным.
Sergey Matveev [Thu, 6 Jan 2022 15:19:03 +0000 (18:19 +0300)]
Покатушки
На днях с родителями ездил в Сергиев-Посад. Погуляли там по Лавре,
съездили в Радонеж. Выбирались ещё в центр Москвы, на Красную площадь.
Народу тьма, всякие ярмарки. Сегодня ездил на ИБП и на ВДНХ народу
как-будто ещё больше чем в центре. Выбирались специально вечером, чтобы
кучу подсветки красивой лицезреть.
Sergey Matveev [Wed, 5 Jan 2022 20:04:38 +0000 (23:04 +0300)]
TurboBoost и ИБП
В 69e98cc610789604ae6a02ae38586135a803d38c начал использовать TurboBoost.
Но даже банальный startx заставит процессор разогнаться настолько, что ИБП
сразу вырубается. Не проверял хватает ли ИБП одного на NUC, но совместно
с ненагруженными серверами -- вообще не тянет. Так что в любом случае
придётся приобретать ещё один бесперебойник.
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)
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-а.
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 будет стандартом и
переполнение в нём уже штатным поведением.
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 насытить не могу.
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 я помню что код
становился куда более громоздким, как в начале статьи.
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
Вроде бы забавный и неплохой фильм, но, как и с первой частью, боюсь что
напрочь забуду о чём он после непродолжительного времени.
Sergey Matveev [Sun, 2 Jan 2022 16:49:45 +0000 (19:49 +0300)]
Муха
Новая собака вовсю обжилась у родителей. Везде ходит хвостом. Тявкает и
охраняет квартиру когда кто приходит. Может и порычать и покусать, что
мы одобряем (чихуашка же). Пулей носится по дому. Пытается играть с
нашей другой собакой, но та только скалится пока на неё. Любит ложится
полностью прямо на тебя: на пузо, на спину. Полностью расслабляется,
спит без задних ног. Всегда под бочком старается быть. Реагирует на
звуки в телевизоре, поворачивая голову. Такое впечатление, что большую
часть времени рассматривает комнаты, нас или телевизор через зеркало:
постоянно уставится в него. А когда видит своё отражение в окне или
стеклянных дверях, то может и полаять на него. Всё что даём из
вкусняшек: сразу же прячет в какое-нибудь потайное место (за подушки,
закапывает в оделяла, прячет за шкафы и тумбы, говорят что и в ботинках
тайники находились). Ко мне на руки постоянно просится -- я явно свой у
неё уже. Если хочет тебя полизать, то фиг оторвёшься от неё: родители её
называют мухой-прилипалой.
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 или
пилят своё или его просто не используют.
Sergey Matveev [Sat, 1 Jan 2022 19:27:08 +0000 (22:27 +0300)]
Новый год с Терминатором
У родителей по какому-то каналу целых пять частей Терминатора показывали:
три части до полуночи, две после. Все и посмотрели. На следующий день
пересмотрели Бриллиантовую руку, Кавказскую пленницу, Ивана Васильевича,
Джентльменов удачи, Служебный роман -- куда ж без них, с удовольствием
их смотрю снова и снова.
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)
Кинг конечно крут! Так здорово и интересно пишет! Во всех историях жуть
наступает только в самом конце. Но "завтрак" -- прям сюжет для сна,
после которого в ужасе проснёшься в холодном поту.
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 будет тормозить на зверь-машинах).
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: одна команда и масса несвязанных действий.
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 это тоже
можно будет использовать.
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 сложно из-за этого вернутся.
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 {%} ...
Сгодится конечно если задач не больше кол-ва процессоров.
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 долго
и до меня доходила.
Sergey Matveev [Tue, 28 Dec 2021 17:53:54 +0000 (20:53 +0300)]
Дуров ответил Мокси
https://habr.com/ru/news/t/598421/
Мокси ему про криптографию и шифрование и хранение plaintext-а, а Дуров
про "мы не раскрываем третьим лицам", про кто кого спонсирует. Ну и... я
конечно не вижу оригинальное его сообщение, но если он и правда заявил
что, раз АНБ участвовало в создании алгоритмов шифрования (что не
правда, ибо оно участвовало в качестве судей, что в общем-то не важно)
-- то они могут дешифровать: это перебор уже в идиотских тупых заявлениях.
Но опровергать заявление Мокси он не стал.
Sergey Matveev [Tue, 28 Dec 2021 08:56:23 +0000 (11:56 +0300)]
Множество примеров zsh expansion-а
https://thevaluable.dev/zsh-expansion-guide-example/
В принципе то всё есть в документации и массе других мест, но тут
аккуратно по шагам, не наваливая с полсотни опций/параметров, с
примерами. БОльшую часть всего вовсю использую ежедневно.
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 фразой.
На работе коллега вбросил фразу что всякие трансгендеры и подобные --
проводят подобную операцию наверняка только чтобы потом всегда можно
было обижаться и прикрываться "да он сексист", "да он гомофоб", "да он
антисемит" и всё в таком духе... как это испокон веков делают и
религиозные люди.
А бафометыш:
подчеркивает "плюрализм, единение, способность к эмпатии", а также
отражает позитивные ценности
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,
язык мне всё равно нравится... просто надо учитывать эти недостатки и
особенности.
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-го я лучше ничего не смотрел.
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 и очень доволен этой железкой
Sergey Matveev [Sun, 26 Dec 2021 11:33:57 +0000 (14:33 +0300)]
Культура и воспитанность людей в общественном транспорте
Она просто никакая, как минимум в Москве/Подмосковье! Из-за холодов я
на этой неделе не хочу дожидаться удобной маршрутки и поэтому еду на
электричке. Я просто в шоке, мягко говоря от всего что творится там
вокруг: *каждые* 10сек но обязательно у кого-то будет оповещение на его
смартфоне, каждые 30сек обязательно кто-то начнёт трындеть по своей
трубе, всегда находятся люди которые даже фильмы будут смотреть без
наушников. Накопил на чудо техники шпионажа и не хватило 200руб на
наушники? О чём думают те, кто держит перед собой свой девайс и не
выключает оповещения -- не подозреваю. Когда мне звонят (и я поднимаю),
то я говорю что в транспорте и кладу трубку, думая об окружающих. В 9 из
10 случаев народ наоборот заходя в транспорт начинает звонить своим
знакомым чтобы трепаться сорок минут, говоря что кладёт трубку, так как
выходит из вагона/салона.
Я думаю люди всегда были такими: срать хотели на окружающих. Смартфоны
просто стали как деньги: лакмусовая бумажка показывающая что у них там
внутри на самом деле. Прежде то просто не было техсредств для показа
своей невоспитанности и эгоизма. Без наушников просто невозможно выходит
там ездить. Причём от возраста вообще не зависит это свинское поведение.
На работе немного это обсудили и коллега начал представлять некую
гипотетическую ситуацию: ... вот сидим мы, достаём шоколадку и
разворачиваем и ... (а дальше что-то не связанное с едой, как таковой).
На что у меня сразу мысль о том, что воспитанный человек, в первую
очередь, не стал бы доставать еду в общественном месте в принципе, даже
мысли бы не было. Про дальние странствия -- никуда не денешься. Но уж в
электричке, потерпеть один или два часа можно бы было. Я помню что мог
пропустить электричку, если сильно хотелось есть, ибо делать это
позволял только вне ней (речь про любой общественный транспорт).
На работе вспомнили про культуру людей в метро: стоят параллельно
дверям, а не перпендикулярно, загораживая половину прохода (не собираясь
выходить/входить); не снимают рюкзаки (я тоже иногда так делаю когда на
100% уверен что никому не мешаю, когда это бывает в почти пустых вагонах);
начинают поднимать свой зад для выхода только когда двери уже открылись;
начинают ломиться на вход, не дожидаясь пока всей выйдут. Отдельная боль
это еле плетущиеся черепахи, уткнувшиеся в смартфоны, идущие в полосах
где нельзя обогнать (ничего против не имею черепах, если они в сторонке,
не перекрывают дорогу). Бывают ещё те кто фильмы смотрят, спуская по
одной ступеньке в секунде на эскалаторе. Это прям моя ежедневная
пятиминутка ненависти, как в "1984". Метро хотя бы приятно своим громким
шумовым фоном, за котором не слышно всего этого трындения и просмотра
фильмов людьми.
Sergey Matveev [Sun, 26 Dec 2021 11:29:37 +0000 (14:29 +0300)]
Блоги за Cloudflare
За последний год где-то с десяток блогов переехало на Cloudflare CDN.
Смело можно их удалять из агрегатора новостей, ибо CF требует
прохождение CAPTCHA со всякими cookie и JavaScript. Фактически оно
предотвращает работу вне современного броузера.
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)
Пишут что масса негативных отзывов была на этот фильм. А мне он жутко
понравился с самого начала, когда по телевидению увидел. Потом и
отдельно скачивал посмотреть на компьютере. Ну где ещё можно школу
швей-гитаристок в доисторическую эпоху увидеть?