Sergey Matveev [Mon, 7 Mar 2022 09:17:51 +0000 (12:17 +0300)]
Посмотрел "Артиста"
https://ru.wikipedia.org/wiki/%D0%90%D1%80%D1%82%D0%B8%D1%81%D1%82_(%D1%84%D0%B8%D0%BB%D1%8C%D0%BC)
Немое чёрно-белое кино из 2011-го года. Очень понравился! Незатейливая
история, но легко смотрится и не позволяет тебе оторваться от экрана.
Sergey Matveev [Fri, 4 Mar 2022 18:54:58 +0000 (21:54 +0300)]
Сходил на концерт Мельницы
Как оказалось, в прошлом году она была точно такого же числа. Понравился
конечно же. Забавно, что я себя называю и считаю металистом, но вот от
классического heavy metal типа Арии (bef6526ee52378814da78893700dccc090327d90)
удовольствия не шибко много получаю.
Sergey Matveev [Fri, 4 Mar 2022 12:38:14 +0000 (15:38 +0300)]
Сотни миллионов смартфонов Samsung не имеют безопасного шифрования
https://www.schneier.com/blog/archives/2022/03/samsung-encryption-flaw.html
https://threatpost.com/samsung-shattered-encryption-on-100m-phones/178606/
В общем, в их реализации GCM режима, в котором используются nonce-ы,
можно извне влиять на эти самые nonce-ы, заставляя их повторятся, что
фатально. Небезопасное применение безопасных примитивов.
Sergey Matveev [Fri, 4 Mar 2022 11:43:22 +0000 (14:43 +0300)]
Rock Me Amadeus
https://en.wikipedia.org/wiki/Rock_Me_Amadeus
https://www.youtube.com/watch?v=cVikZ8Oe_XA
https://www.youtube.com/watch?v=9qExmU6F22s
https://www.youtube.com/watch?v=Vd35k7M_GA4
Давно знаком с "Rock Me Amadeus" песней в исполнении Megaherz.
Недавно вот услышал её же в исполнении Sturmgeist.
А сегодня решил поискать оригинал на который все они его делают.
Sergey Matveev [Thu, 3 Mar 2022 18:48:10 +0000 (21:48 +0300)]
Новые фотографии "терминаторов"
http://www.stargrave.org/photoes/term4.preview.webp
http://www.stargrave.org/photoes/term4.jxl
http://www.stargrave.org/photoes/term5.preview.webp
http://www.stargrave.org/photoes/term5.jxl
В городе уже не первый год как появились ещё "терминаторы",
как я их называю. Сегодня смог сфотографироваться рядом с
ними. Последний стоит прямо рядом с нашей пожарной частью.
Sergey Matveev [Wed, 2 Mar 2022 07:41:52 +0000 (10:41 +0300)]
Прочитал "Малыша" Стругацких
https://ru.wikipedia.org/wiki/%D0%9C%D0%B0%D0%BB%D1%8B%D1%88_(%D0%BF%D0%BE%D0%B2%D0%B5%D1%81%D1%82%D1%8C)
В основном я говорю что творчество Стругацких мне не очень нравится.
"Пикник на обочине" (522ba6e4fdd94f0750e7c7865af1d94370c43db4) суперская
книга, но о какой-нибудь "Трудно быть богом" у меня прямо противоположное
мнение. Малыш вот явно из серии той фантастики что мне нравится! Буду
читать весь цикл этих произведений, уже начал "Страну багровых туч".
Надеюсь что я просто неудачные (для меня) книги брал.
Малыш мне понравился, но под конец как-то всё очень быстро подошло к
развязке и на нет.
Sergey Matveev [Tue, 1 Mar 2022 19:11:48 +0000 (22:11 +0300)]
Использую conflictStyle=zdiff3 в git
http://www.git.stargrave.org/?p=dotfiles.git;a=commitdiff;h=109f0f1e4e4288c2e8d2c880de8f37963526a4b0
https://blog.jcoglan.com/2017/05/08/merging-with-diff3/
https://blog.nilbus.com/take-the-pain-out-of-git-conflict-resolution-use-diff3/
https://stackoverflow.com/questions/27417656/should-diff3-be-default-conflictstyle-on-git
В блоге даже не упоминал этого факта, но чуть более месяца назад включил
такую штуку как отображение неразрешённого конфликта в виде (z)diff3.
Вроде потому что были сильные сомнения в полезности. Но сегодня точно
понял и порадовался этому способу отображения конфликта. Был точно тот
самый случай когда во время rebase что-то можно потерять, во время
хронологической перестановки коммитов изменяющих одни и те же места
файлов. И при "старом" diff мне бы точно пришлось подсматривать в
историю или сохранять во временный файл некоторые куски чтобы самому
было проще (на самом деле рефлекторно я это всё равно сделал). Но diff3
показал всё настолько хорошо и понятно, что я даже удивился безболезненности
разрешения конфликта. В общем, однозначно могу рекомендовать эту настройку!
Sergey Matveev [Tue, 1 Mar 2022 10:14:23 +0000 (13:14 +0300)]
Западные CA отозвали X.509 сертификаты банков
https://habr.com/ru/news/t/653923/
https://crt.sh/?id=6051080112
Ну и каким придурком надо быть чтобы не верить прежде в эту возможность?
Точнее в то, что это в любом случае бы произошло, даже если бы не принимались
мочить бандеровцев -- придумали бы с полдюжины других причин.
Sergey Matveev [Tue, 1 Mar 2022 09:45:10 +0000 (12:45 +0300)]
Мой Align в vim
http://www.git.stargrave.org/?p=dotfiles.git;a=commitdiff;h=9b587025d39d98ee5a0545e85d3315d3cb232385
В 0b3deca9141cc1700b95aa3bd150b09861555ebb упоминал что для выравнивания
по разделителю можно использовать column внешнюю команду. Но BSD версия
не умеет "вставлять" назад разделитель (-o опция у GNU версии), что чаще
бывает неудобно, например при выравнивании таблиц по "@tab" в Texinfo.
Есть конечно Align-плагин https://www.vim.org/scripts/script.php?script_id=294
но он на несколько тысяч строк кода и поэтому выглядит overhead-ом. Так
что просто написал обёртку в vimscript которая добавит нигде-не-встречающийся
разделитель, табуляцию, выровняет по табуляции, разделитель заменит на
разделитель указанный пользователем.
Sergey Matveev [Tue, 1 Mar 2022 08:20:38 +0000 (11:20 +0300)]
Dognapped
https://www.youtube.com/watch?v=XY0D29SLeQ0
https://www.mobygames.com/game/rescue-rover-2
Из Old Hard выпуска увидел описание игры Rescue Rover 2. Обожал эту игру!
Точнее я её знал только под названием "dognapped" (все директории и .exe
так назывались), но, судя по MobyGames, это ре-релизное название. Помню
что кто-то точно из родителей даже поигрывал в неё. На снимках экрана
даже узнаю уровни.
Sergey Matveev [Mon, 28 Feb 2022 20:36:22 +0000 (23:36 +0300)]
tmux terminal-features
http://www.git.stargrave.org/?p=dotfiles.git;a=commitdiff;h=f7cf80842562ed21fac059a3e1c6d489ac02bc0f
http://www.git.stargrave.org/?p=dotfiles.git;a=commitdiff;h=3c909dab2de881f2a3212f491eec1b716a33e373
Недавно писал про поддержку OSC52 b430db6f858a162b9ed2fe64ed5377c0853424fd
в suckless терминале, которая у меня успешно отработала. Но мне написали
что всё равно не фурычит, мол настраиваем tmux:
tmux set-option -g set-clipboard external
но в буфер обмена ничего не попадает. Проверил -- действительно не
сработало. Даже мой printf не отрабатывает. Точно значит проблема в
tmux. В man увидел terminal-features опцию, в которой можно всякие
clipboard, ccolour, cstyle, title и кучу других опция выставлять для
терминала. Штатно они определяются на основе terminfo:
и использую я screen-256color, который, с точки зрения tmux, умеет
только выставлять title окна. Добавил clipboard -- и OSC52 заработал.
Как-то я пробовал менять цвет курсора в st, ведь я видел что поддержка
этого функционала явно есть в его коде. Но как не пытался -- не выходило.
Сейчас понял в чём дело: tmux всё это проглатывал. Добавил ccolour --
цвет спокойно меняется. Теперь осуществил свою давнюю хотелку, где-то
подсмотренную, чтобы цвет курсора менялся в зависимости от используемого
vi-режима в zsh. Плюс можно менять стиль курсора (работает -- проверял).
Правильнее конечно честно говорить что у тебя st терминал и в систему
засунуть знания о нём, чтобы честно tmux понимал с чем имеет дело.
Sergey Matveev [Mon, 28 Feb 2022 12:50:35 +0000 (15:50 +0300)]
Apple изобрела клаву с компом
https://lenta.ru/news/2022/02/28/keyboard/
https://en.wikipedia.org/wiki/ZX_Spectrum
Брехня какая-то. Ведь это давным давно уже было в виде, как минимум,
ZX Spectrum-а, который дошёл до СССР даже. И тоже ничего не нужно было,
кроме телевизора. Ну и опционально магнитофона (обычного), если не
удовлетворён встроенным BASIC-ом.
Sergey Matveev [Mon, 28 Feb 2022 12:14:19 +0000 (15:14 +0300)]
ЕС планирует сделать менее безопасные X.509 сертификаты
https://www.feistyduck.com/bulletproof-tls-newsletter/issue_86_eu_plans_to_mandate_less_secure_certificates_in_browsers
Ну на самом деле название статьи только звучит громко. В Европе хотят
форсировать использование "квалифицированных" сертификатов (у нас
подобные уже давно существуют и я даже наверное с ходу назову большинство
полей и отличий в них). При этом CA только среди доверенных могут это
делать. И среди них есть CA которые прежде даже были исключены из списка
доверенных в броузерах за всякие косяки: https://wiki.mozilla.org/CA/Camerfirma_Issues
Кстати я тоже удивлялся, видя некоторые *CA* сертификаты, которые не
являлись валидными с точки зрения X.509/RFC5280 схемы: мол, как?, как
это вообще и кем могло быть принято?
Sergey Matveev [Sun, 27 Feb 2022 15:51:13 +0000 (18:51 +0300)]
OSC52
https://oroques.dev/notes/vim-osc52/
https://github.com/ojroques/vim-oscyank
Узнал про такую штуку как OSC52 ANSI escape последовательность, которая
позволяет вставить значение в буфер обмена. Мне задали вопрос получалось
ли у меня его выполнить в suckless terminal-е. Даже не пробовал, а сразу
полез в его исходный код, где чётко виден case 52 в switch-е OSC кодов,
где выполняется Base64 декодирование и вставка в оба X11 буфера обмена.
Но есть if, проверяющий выставлен ли allowwindowops в конфиге. По
умолчанию, как раз таки, он выключен, ибо это потенциально опасное
действие. Включил, сделал printf "\e]52;c;0L/RgNC40LLQtdGC\e\a" и увидел
что в буфере находится "привет". Так что всё работает.
Sergey Matveev [Sun, 27 Feb 2022 14:10:04 +0000 (17:10 +0300)]
Думаешь не только на родном языке
На работе как-то вбросил кто-то фразу о том что на иностранном языке не
думают: думаю на "своём", который переводят на иностранный. Человек
иностранными языками не владел. Но все заметили что он не прав и все,
задумавшись, поняли что они реально думают как-раз таки на иностранном
(когда на нём говорят).
Последние несколько дней я было часами сидел и сижу за письмами всяким
немцам, туркам, американцам, которые со мной (и наоборот) связывались и
затевали разговор касательно ситуации с Россией и Украиной. Их приходится
и обдумывать про себя, пока не за компьютером. А вчера я несколько часов
друзьям рассказывал про redo и daemontools -- и было пара моментов когда
я просто не мог с ходу родить некоторые слова и мысли на русском:
английская фраза у меня в голове выстраивается чётко и сразу, ибо на
английском я последние дни только и общаюсь, русский используя только
в блоге.
Sergey Matveev [Fri, 25 Feb 2022 14:24:55 +0000 (17:24 +0300)]
Столяров о TLS SMTP
http://stolyarov.info/node/350
posteo.net сервер стал в обязательном порядке требовать TLS, причём не
ниже TLS 1.2. Столяров принципиально отказывается тут что-то делать.
Солидарен с:
Крипто по обоюдному согласию между частными серверами — это вполне
нормально. Криптобесие — это когда крипто, разрушая
интероперабельность и добавляя сложность там, где её и так слишком
много, при этом принципиально не прибавляет ни грамма безопасности.
В этом случае ситуация именно такова: если почтовый ящик заведён на
публичном сервере, ни о какой его безопасности речи быть не может, а
применение шифрования становится откровенным карго культом.
Но у меня на серверах есть TLS через опциональный STARTTLS, хотя и
понятно с какими точками доверия.
Sergey Matveev [Fri, 25 Feb 2022 08:59:04 +0000 (11:59 +0300)]
Попробовал bondcat
https://blog.benjojo.co.uk/post/multipath-without-mptcp
https://github.com/benjojo/bondcat
Multipath TCP для бедных в userspace, написано на Go. Если есть два
Ethernet между двумя компьютерами, то обеспечить увеличение скорости в
два раза -- не тривиальная задача. Все эти lagg и bond не работают если
поток данных идёт между двумя IP адресами (и тем более одним и тем же
TCP/UDP портом например). Можно включить round-robin раскидывание
пакетов, но, из-за переупорядочивания пакетов, TCP будет сильно страдать.
MPTCP как-раз про всё это: сделать так, чтобы один TCP мог разные IP
адреса использовать при этом. Но в FreeBSD, насколько понимаю, этого в
ядре пока нет. В SCTP протоколе закладывалось с самого начала, но, опять
же, не знаю как это всё завести просто так и можно ли.
На одном хосте делаю bondcat -l -p XXX, а на другом указываю его два IP
адреса, которые в разных сетях и на разных сетевухах. Прокачиваю
несколько десятков гигабайт, считаю BLAKE3 (ну чтобы уж наверняка не
упереться в CPU). 234 MiB/sec. То есть оно полностью утилизирует 2xGbE.
Задача отлично выполнена!
Автор пишет про то, что он данные с лент не мог достаточно быстро
просасывать через сеть. Вот у меня есть почти свободный терабайт на NUC
NVMe, и я не прочь бы его использовать для чтения данных со стримера, но
лента это ~130-140 MiB/sec. Возможно используя mbuffer можно сгладить и
уменьшить эту скорость во время того, когда она доходит до конца и
меняет направление чтения, но у меня сомнения. bondcat бы тут отлично
справился.
Sergey Matveev [Fri, 25 Feb 2022 08:09:11 +0000 (11:09 +0300)]
guix.gnu.org недоступен только в РФ
Из feed-ов у меня вчера полностью перестал работать сабжевый домен.
Всякие сайты по мониторингу доступности показывают что, действительно,
только в РФ он не доступен. Ну кол-во людей с двойными стандартами,
совершенно не совместимыми с идеологией свободного ПО (типа давайте
запретим СПО для РФ), уже было показано когда наезжали на Столлмана.
Sergey Matveev [Thu, 24 Feb 2022 21:54:42 +0000 (00:54 +0300)]
Рассказывал Путину про СПО
Позавчера, после просмотра его обращения о признании ДНР/ЛНР и всей этой
ситуации, приснился сон с Путиным. Видимо потому что это последнее что
видел перед сном. В общем, Королёв, пр-т Королёва, летний день, Путин у
нас с визитом и что-то типа пресс-конференции прямо на улице с народом.
Но он почему-то при этом идёт куда-то, передвигается и то один, то
другой ему задают вопросы. У меня точно помню (во все) что планов о
чём-то спрашивать не было -- мол, о чём я могу, ну и чего на меня
отвлекать его и отнимать время других людей. Но что-то там кто-то брякал
уже касающееся ИТ, что меня возмущало. А потом как-то он оказался на
расстоянии вытянутой руки от меня, и вопросы у людей поугасли и
возмущение моё не прошло -- ну и я к нему "Владимир Владимирович, ..."
обратился и как-то перешёл на тему важности и критичности свободного ПО.
И мы с ним вдвоём идём по нашему проспекту, сзади толпа, охрана за нами
передвигается, а я всё жужжу ему, а он кивает, отвечает что всё верно
толкую, всё так, я прав, это важно, ну и тому подобное. И мы так
очень прилично с ним прошли: прям даже помню что примерно начали от
самого памятника Королёву (но шли по левому тротуару от него, а не
центральной аллее) и до памятника Исаева.
https://www.votpusk.ru/country/dostoprim_info.asp?ID=22353
http://in-korolev.ru/novosti/na-prospekte-korolyova-otkryli-pamyatnik-isaevu
А дальше он в здание вошёл и уже на этом вся "конференция" закончилась.
Отчётливо помню желание сообщить родителям что сам Путин меня слушал
внимательно целых 10мин.
А сегодня почитал я всякие зарубежные новости о том что творится на
Украине. И предыстории даже есть, мол вообще с чего все конфликты то
начались с ней (ещё в 2014-ом). И *нигде* нет ни бита информации и
упоминаний того, что и живьём там людей сжигали и бандитизм
безнаказанный лютый был и что ДНР с ЛНР постоянно обстреливают уже
сколько лет. И что воду, хуже фашистов, перекрыли, якобы, своим же
гражданам. И куча знакомых кто за это время ездило в Украину -- почти
все не могли не отметить реально наличие бесстыдных нацистов. Я даже в
школе в 7-8-ом классе когда ездил в Киев, то лично я столкнулся с ними
прямо на вокзале после прибытия (провоцировали на драку, задирали: и это
были взрослые, "против" ученика средних классов), ну а у других были
приключение и с мордобитием, когда я буквально на пять минут с ними
разминался. Со сколькими народами я не работал и не дружил. Полшколы за
одной партой с азербайджанцем, с которым мы довольно крепко дружили,
родителям его я нравился, и с радостью позже пересекались, искренне
интересуясь у кого как жизнь складывается когда даже институт я
закончил. Украинцы были на всех работах. Армяне и в институте и на
работах. Азербайджанцы тоже. С узбеком как-то подработку делал вместе.
Казахи были. И как бы национальная тема не то что не поднималась, но
даже отдалённо в мыслях никогда не возникала. Но если заходит где-то
речь про национализм, именно радикальный, то вот всегда почему-то
связано с украинским. И отец подтверждал и дяди его возраста, что ещё в
советское время, когда они школьниками были, но обязательно да были те
кто писал на партах или книжках "УОА" (хотя они учились вообще в
Нижегородской области). Поэтому не поверить что на Украине есть
радикальные нацисты -- не смогу, ибо с детства знаю про их существование
там и убедился за одну только поездку в Киев, без какой-либо
предвзятости. Поэтому мне очень понятно и близко было обращение Путина.
И то что НАТО с США (хотя между ними почти равенство можно поставить)
наши главные враги я с детства знаю, а в институте, так как я
"конструктор и проектировщик КЛА и РБ", то много изучал ракеты, для
которых все задачи сводились (в учебниках это чётко рисовалось) к
доставке "грузов" или на территорию США, ну или на орбиту какую. И я
полностью согласен со всем сказанным президентом и полностью поддерживаю
его решения. И не только его, но и Шойгу с Медведевым -- их
профессионализм ценю и уважаю.
Ну а лицемерие Запада известно уже давно. США бомбить каждый день страны
чужие -- ну это демократия, ёпта. Уничтожать страны, превращая в разруху
и бедноту -- ну другого Запад никогда не делал. Нет ни одной страны, где
если бы побывала США, то там бы жизнь улучшилась. СССР в Афганистане
сколько инфраструктуры всякой делал: больницы, школы, тьма дорог, до сих
пор использующихся. Мой родственник Матвеев преподавал в Кабуле высшую
математику тогда даже. Отец там служил и видел что помощь была ещё какая.
В Крыму РФ -- фактически спасла уйму мирных жизней, за которых бандеровцы
бы в 2014-ом обязательно взялись, учитывая пророссийскую настроенность
(кстати, там нацистских намёков ни разу не заметил даже отдалённо). Мы
часто семьёй ездили в Крым и когда он был ещё при Украине и после: до РФ
цены приятно низкие, но и разруха присутствовала, застой с 90-х. Сейчас
же сколько там всего отстраивается и в городах и стратегически по всему
полуострову! Ну и в ДНР и ЛНР, уверен, что придёт куда большее
спокойствие и мир. Аналогичное я видел и в Сирии, два раза съездив пару
лет назад. И с нашей военной полицией на границе с Ливаном пересёкся и
со мной они поболтали (с другими коллегами не стали) -- чувствуется что
крутые достойные мужики, рукой нам приветливо помахали когда уезжали.
Путин как-то про Крым сказал что-то типа "а как ещё вообще можно было?
как можно было бы поступить по другому?" -- полностью солидарен.
Когда они тебя оскорбляют: это "свобода слова".
Пытаешься возразить: это "отсутствие культуры"!
Если они задают вопросы: это "свободомыслие",
Если ты пытаешься задавать им вопросы: это "допрос"!
Они тебя в чем-то обвиняют: это "поиски правды",
Ты пытаешься оправдаться: значит, ты -- "лжец"!
Они смеются над тобой: это "конструктивная критика",
Пытаешься ответить: это "нетерпимость"!
Они тебе угрожают: значит, "защищают себя",
Когда сам пытаешься защищать свои убеждения:
ты -- "разжигатель ненависти и насилия"!
А это иранский режиссёр сказал (если не путаю) -- ничего не поменялось.
Как-то я даже говорил что если бы жить не в РФ, то Иран бы выбрал. Мы
сейчас как-будто сближаемся, становимся похожими (ну там санкции-фиганкции,
ограничения банкам), что меня даже чем-то радует. Ростех, официально под
управлением которого я работаю сейчас, вообще уже вроде как два года под
санкциями. Нравились слова Кадырова о том, что факт того, что тебя внесли
в санкционный список -- здорово, значит ты всё делал правильно для
своего народа/гос-ва.
Sergey Matveev [Thu, 24 Feb 2022 18:29:02 +0000 (21:29 +0300)]
Borknagar крут
https://en.wikipedia.org/wiki/Borknagar
Заценил несколько альбомов Borknagar -- очень круто! В целом музыку
можно спокойной назвать, где тьма чистого вокала. Всё очень гармонично и
мелодично. И на фоне отлично можно послушать и сосредоточиться на ней.
Sergey Matveev [Thu, 24 Feb 2022 15:17:43 +0000 (18:17 +0300)]
ZFS и NFS
https://klarasystems.com/articles/nfs-shares-with-zfs/
В блоге, насколько вижу, никак не упоминал про то, что вовсю
использую sharenfs опцию ZFS dataset-ов. Очень нравится:
zfs set sharenfs="-maproot=XXX -ro -network 2001::XXX"
и dataset доступен другим компьютерам. Никакой магии: эти строчки
просто складываются в /etc/zfs/exports и mountd демон их подгружает.
Разницы между прописыванием руками в exports нет никакой -- но тут
просто удобнее: знания хранятся прямо вместе с dataset-ом и дёргать
руками ничего не надо явно.
Проблема с этими строчками в том, что они NFS-implementation specific. В
FreeBSD один NFS демон со своими опциями, в GNU/Linux-ах будет другой.
В статье говорится просто про "on" значение опции -- такое не пробовал.
Sergey Matveev [Thu, 24 Feb 2022 15:08:11 +0000 (18:08 +0300)]
Пишут про сбои Telegram и Instagram
https://lenta.ru/news/2022/02/24/durov/
https://lenta.ru/news/2022/02/24/insta/
Ну проблемы наверняка не только у них, а вообще в целом. У меня с
десяток никак с ними не связанных feed-ов не грузятся: пакеты не
ходят до хостов. Только один за Cloudflare. Плюс Hacker News не
работает сейчас.
Sergey Matveev [Thu, 24 Feb 2022 14:56:50 +0000 (17:56 +0300)]
DJB и IMAP4 протокол
http://thedjbway.b0llix.net/imap/introduction.html
Это конечно не слова DJB, но не удивительно что он полностью игнорирует
IMAP4 протокол и вообще подход к работе с почтой через него. Как и я
аналогично.
Sergey Matveev [Tue, 22 Feb 2022 14:06:41 +0000 (17:06 +0300)]
Замена urlview
http://www.git.stargrave.org/?p=dotfiles.git;a=blob;f=urlview/bin/urlview
Бесит меня в urlview то, что backspace в нём почему-то не работает,
приходится нажимать Ctrl-H при редактировании URL (часто приходится
удалять всякую tracking информацию).
Подумалось: а почему вообще fzf бы не использовать для этой задачи?
Нужно же просто выдернуть все URL-ы и подать на вход к нему. Regexp я
взял прямо из urlview. Чтобы отредактировать URL и открыть, запускаю
rlwrap как редактор строчки (в зависимости от .inputrc он может и сразу
работать в vi-режиме без проблем) по нажатию Ctrl-F.
Sergey Matveev [Tue, 22 Feb 2022 10:06:09 +0000 (13:06 +0300)]
Vendor-locked CPU к материнке (PSB)
https://www.youtube.com/watch?v=bFNJVaO9E-o
https://www.servethehome.com/lenovo-is-using-amd-psb-to-vendor-lock-amd-cpus/
https://www.servethehome.com/amd-psb-vendor-locks-epyc-cpus-for-enhanced-security-at-a-cost/
https://www.servethehome.com/lenovo-vendor-locking-ryzen-based-systems-with-amd-psb/
Оказывается CPU можно заточить на использование только с текущим UEFI.
Уже не первый год замечаю что если с чем-либо от крупных vendor-ов есть
слова типа "security"/"secure", то речь про DRM.
Sergey Matveev [Mon, 21 Feb 2022 12:41:26 +0000 (15:41 +0300)]
Произношение немецких слов
На прошлой работе слышал что люди говорили про "веркзеуга". Даже не
сразу понимал о чём речь. Мне казалось по немецки типа все умеют читать:
ведь, в отличии от английского, как пишется, так и читается. Вот только
правила чтения всё же имеются. "Werkzeug" произносится как "веркцойг".
На днях, в презентации утилиты для работы с zettelkästen-ом, которую с
youtube скачал, автор утилиты произносит её как "зеттелкастен". В одной
статье на Хабре даже в заголовке "Зеттелькастен" написано. Интересно,
немцев это также бесит как меня? Ведь уж англичане то вообще относятся к
германской языковой группе и могли бы знать что это читается только как
"цеттелькэстен". А если будет написано "kasten" вместо "kästen", то
действительно "кастен".
Ладно в школе мало кто немецкий проходил и не знает что время ("Zeit")
это "цайт". Но "цайтнот" хотя бы слышали. Карла Цайса то уж точно все
слышали, ибо известнейший брэнд с его фамилией, на котором пишут
"Zeiss". Никто же не будет это читать как "зейс", надеюсь.
Sergey Matveev [Sat, 19 Feb 2022 19:24:26 +0000 (22:24 +0300)]
Сходил на концерт Арии
Просто чтобы развеяться, за компанию с родителями. Из всех песен знал я
похоже только пару: Штиль (и наверное потому что её исполнял Rammstein)
и "Улицу роз". Ну... просто нормальный heavy metal концерт, но не более.
Вообще я отмечал что последнее время барабанщики как-то довольно круто и
по другому играют относительно того что записывали в 70-80-е года. Отец
вроде тоже заметил это. В Мельнице, казалось бы вообще спокойной группе,
барабанщик я прям отметил что крут (c2a00c1252c1c4a0764afbb4048c540061f02a42).
И вот помня его, барабанщик Арии выглядит для меня просто никаким. Я тут
вообще не разбираюсь во всём этом и может быть совершенно не прав, но не
впечатлил он меня вовсе. Хотя чуть ли не в обычном роке уже драммеры
куда более крутые вещи выдают стабильно.
Скоро будет снова концерт Мельницы у нас -- думаю что снова пойду.
Но на Арию вряд ли -- совсем не моё. Но прикупил пару их альбомов.
Sergey Matveev [Sat, 19 Feb 2022 10:34:53 +0000 (13:34 +0300)]
Человек глушил связь в паре городков
https://habr.com/ru/news/t/652463/
Я тоже хотел бы поставить себе глушилки дома, раз всё равно WiFi не
использую, а телефонная связь может легко быть проводной. Но сразу
понимаю что это же затронет и соседей, поэтому идею отметаю. Головой же
думать надо. Это вот в частном доме можно, проверив что сигнал дальше
участка или дома не выходит.
Sergey Matveev [Sat, 19 Feb 2022 10:13:30 +0000 (13:13 +0300)]
Zsh в go.stargrave.org/feeder
В feeder-е много всяких .zsh файлов. Основные скрипты: cmd/download.sh,
cmd/parse.sh, cmd/muttrc-gen.sh написаны на POSIX shell, но другие уже
на zsh. Благо в целом они опциональны. Почему не POSIX shell, ведь я так
бьюсь против башизмов например?
Bash почти ничего не даёт в плане безопасности и простоты написания
скриптов. Единственное что приходит на ум из действительно ценного в нём
это setopt pipefail. В остальном же (0630e96a5148d8f43b8873fc013acac53cb0f677)
он точно так же подвержен всем трудностям и сложностям программирования
на shell.
Я изначально старался делать POSIX shell в feeder, но как-то меня
достала постоянная борьба со всем что попадается в нём, с каждой его
строчкой. download.sh/parse.sh -- хорошо ложаться на POSIX shell без
особых страданий и граблей. Но
cmds="$(dirname "$(realpath -- "$0")")"
конструкция уже довольно неприятна (dirname правда можно заменить на
отрезание строки до последнего слэша). В zsh это будет cmds=$0:h:a, прям
буквально без всяких кавычек.
while IFS= read -r -d '' file; do
some_command "$file"
done < <(find . -type f -name '*.mp3' -print0)
Чтобы вывести список упавших задач запущенных через GNU parallel, я
создаю --joblog файл, который является TSV, где первая строчка это
заголовок указывающий какие элементы в какой колонке находятся. В POSIX
это всякие cut бы пришлось использовать, не шибко приятно выглядящие. В
zsh же для вывода всех упавших команд (у которых return code != 0, где
команда всегда последний элемент TSV):
read row
cols=(${(s:\t:)row})
i=${cols[(i)Exitval]}
while read row ; do
cols=(${(s:\t:)row})
[[ ${cols[$i]} -ne 0 ]] || continue
print failed: ${cols[$#cols]}
end
Ни единого внешнего вызова и даже while выполняется не в subshell.
Удалить все устаревшие файлы, не входящую в первую сотню?
rm -f $feed/cur/*(Nom[101,-1])
Вместо сотни использовать значение переменной? Да пожалуйста, заменяем
"101" на $max. Кажется очевидным? А в bash бы уже не сработало:
for i in {1..$n}
В zsh я могу спокойно писать:
opts=(
--page-requisites
--foo $bar
)
cmd $opts --out=$dst/$fn $url
не боясь что пробелы в именах директории $dst или $fn или $bar что-то
могут испортить. Хочется побыть человеком и использовать что дружелюбно
ко мне, тем более раз оно есть.
Sergey Matveev [Sat, 19 Feb 2022 09:49:04 +0000 (12:49 +0300)]
Реализации redo
Готовлюсь тут друзьям программистам рассказать про redo. И надо же
сделать небольшое резюме по имеющимся реализациям. Если кратко и с ходу
по памяти, то всё не очень, но оно исправимо:
apenwarr/redo (https://redo.readthedocs.io/en/latest/) -- по сути
единственный недостаток это то, что он на Python. Значит даже просто его
запуск будет на глаз заметен. Он не делает автоматическое хэширование
целей, а полагается на mtime+inodeNum+size+мелочи, что означает
возможные false positive, но это терпимо. Главное чтобы было собрано то,
что должно собраться. Есть особенность неприятная в виде SQLite3 БД,
которая создаётся один раз на проект и важно чтобы это было в его
top-директории. Сам автор признаёт что корректнее бы было делать .redo в
каждой поддиректории. Не помню уважает ли он umask. Не делает fsync-и
даже для SQLite3. Но жить с этим можно. Ценнейшая вещь в этом проекте
это документация, которую стоит читать всем кто погружается в redo!
https://github.com/leahneukirchen/redo-c -- 1kLOC Си без зависимостей,
вместе с встроенной SHA256 реализацией. Умеет распалаллеливаться. umask
не уважает. Всю метаинформацию размещает рядом с целями, вместо
помещения в отдельную директорию. Всё это я даже исправлял в своём fork.
И всё бы ничего (с этими правками), если бы не один коммит на пару
строчек, который создаёт результирующий файл при пустом stdout. Это
полностью уничтожает возможность создания виртуальных OOD-целей.
Буквально если сделать revert этих пары строчек -- redo-c бы был
полностью юзабельной отличной реализацией, смотрящей на ctime+hash.
https://github.com/gotroyb127/baredo -- совсем новый проект, который я,
так сказать, консультировал и из-за меня появились fsync-и честные,
umask-дружелюбность, атомарное обновление файлов с метаинформацией и
возможность их чтения человеком, плюс распараллеливание задач (правда
сейчас автор там что-то ещё коммитит и я не знаю работает ли оно), плюс
то, что должно учитываться содержимое файла, как будто он был open/read,
а изначально там содержимое самой символической ссылки например
читалось. Но автор ни в какую не соглашается использовать что-либо кроме
mtime. Ни apenwarr статьи, ни мои аргументы его ни в чём не убеждают.
Если я сделаю truncate -r 1 2 ; touch -r 1 2 ; mv 2 1, то его baredo не
увидит изменений. apenwarr разумно учитывается inode number поэтому и у
него таких проблем не будет. Но если в baredo в коде поменять "mtime" на
"ctime", то всё будет вполне себе хорошо.
http://www.goredo.cypherpunks.ru/ -- насколько понимаю, сейчас это
основная рекомендуемая большинством реализация. Самая навороченная в
плане дружелюбности к разработчику (все фичи apenwarr заюзал, плюс свои
накрутил). Самая замороченная на fsync-ах и атомарности. Замороченная на
(не)доверии к файловым системам, позволяя на выбора даже не учитывать
ctime или например наоборот доверять mtime. umask дружелюбна. Jobserver
совместим с GNU Make и NetBSD bmake (apenwarr единственный кто совместим
хотя бы только с GNU). Покрыта интеграционными тестами, на некоторых из
которых вроде бы apenwarr бы уже не проходил.
apenwarr/do -- входит в apenwarr/redo и это мизерная POSIX shell
реализация пригодная только для сборки с нуля, без распараллеливания и
учёта зависимостей. Пригодна для подкладывания в tarball-ы софта чтобы
его можно было собрать без дополнительных зависимостей. Под OpenBSD, как
недавно выяснил, оно не работает правда (зато goredo собирается и
работает).
redo-sh (http://news.dieweltistgarnichtso.net/bin/redo-sh.html) -- из
неё я взял основную массу интеграционных тестов (другую часть тестов из
apenwarr/redo). Использовать не пробовал, так как оно требует GNU
утилиты и под BSD работать не будет.
Sergey Matveev [Sat, 19 Feb 2022 09:25:02 +0000 (12:25 +0300)]
Полностью перешёл на go.stargrave.org/feeder
https://www.feeder.stargrave.org/WARCs.html
С момента создания b10a0aa678fd8759885c9af0d9abba7bafd88efb своего
новостного агрегатора, нашлось много мелочей и косяков и особенностей:
* вряд ли кто-то удивится что некоторые XML-ки вообще невалидны. Причём
совсем (типа <foo bar="baz "boo" bom">). Но, видимо, авторам это
сообщают и через полдня ошибки пропадают
* бывают feed-ы в которых содержимое новости (content) меняется *каждый*
раз при скачивании feed. Я перешёл на хэш от title+content как
идентификатор уникальный, но это не будет работать, так как tracking
информация каждый раз меняет этот хэш. Дата поста в этих feed-ах
аналогична равна now банально. Но, повезло что хотя бы GUID там
присутствует и действительно уникально идентифицирует пост. В итоге я
проверяю уникальны ли GUID-ы и, если да, то использую их, в противном
случае хэш от title+content (у кого-то title нет, у кого-то он
повторяется). Вот это уже работает надёжно
* updated дата самого feed-а может быть меньше чем дата его постов.
Поэтому нужно брать дату последнего поста
* бывает что информация об авторах присутствует, но равна пустой строке
* удалил пять feed-ов потому что они отдают 403 если видят curl-овый
User-Agent. Я сейчас отправляю go.stargrave.org-feeder/0.1.0, но
никакого почтения тем кто не даёт использовать curl -- не достойны
упоминания или чтения
Много ещё всяких мелочей поправил и исправил. Всё работает просто
прекрасно теперь! Newsboat я полностью удалил. Остался urls файл,
генерируемый linksexp (df5af37e96c74dedf26d1a2614cb2fe79a7f52ba),
который продолжаю использовать для urls2feeds.zsh, ибо этот список
регулярно меняется (что-то появляется, что-то исчезает, где-то меняются
адреса и домены).
В Mutt на клавише "o" в режиме pager открывается urlview с ссылками из
X-URL и X-Enclosure, по аналогии "o" клавише в Newsboat.
Максимальное кол-во элементов feed-а можно изменять конкретно для
каждого feed-а: echo 50 > feeds/FEED/max. Ноль будет означать без
ограничений.
Появилась приятная возможность пересохранять новость в другой ящик,
чтобы почитать в будущем. Это же всё же полноценная почтовая система.
Большой плюс по сравнению с Newsboat.
Полностью избавился от redo зависимости в проекте. Зависимостей в
задачах было 1.5 штуки, и то через промежуточную искусственную цель. Для
распараллеливания используется GNU parallel, у которого клёвый progress
bar (--bar) показывающий сколько выполнено и сколько осталось задач.
redo тут всё же переусложнение.
Не то чтобы я это когда буду использовать, но в качестве доказательства
что это не сложно сделать: написал ./feeds-encs.zsh для скачивания
enclosures (ссылки на аудиофайлы в podcast-ах например) из новых новостей.
GNU wget уже этим занимается. И аналогично ./feeds-warcs.zsh скачивает
все link-и из новостей как страницы с реквизитами (все необходимые
картинки, CSS-ки для просмотра HTML-ки) в WARC файлы. Это позволяет не
только скачать feed-ы, но и всё на что они ссылаются и читать это дальше
в offline, используя например tofuproxy как WARC броузер:
for w (feeds/*/warcs/*.warc) print $w:a > path/to/tofuproxy/fifos/add-warcs
В общем, очень доволен получившимся результатом! Я думал будет куда
геморройнее и менее удобно использовать MUA чем Newsboat, в котором
keybinding-и стали так привычны. Плюс это всё работает значительно
быстрее в целом: запуск newsboat занимал секунд 20, при этом он жутко
тёк по памяти (6e2b2c02747ad3c1ac0a5e39e18e616b3b0bb680) и неслабо её ел
(сотни мегабайт).
Sergey Matveev [Thu, 17 Feb 2022 19:39:04 +0000 (22:39 +0300)]
Сделал собственный newsfeeds aggregator
http://www.feeder.stargrave.org/
http://www.feeder.stargrave.org/Usage.html
Видимо не давал моей голове покоя sfeed
(571ce0c3d2c17e5562ff41866ae4948c701cf54b) и я проснулся с мыслью о том
что надобно или написать свой или понять что это отнюдь не тривиальная
задача. В итоге получилось гораздо проще чем ожидал, причём работает
существенно быстрее Newsboat при парсинге/индексации за счёт
распараллеливания.
Вовсю переиспользуются существующие инструменты. curl, как оказалось,
прекрасно умеет самостоятельно отправлять If-Modified-Since и ETag
заголовки, храня эту информацию в отдельном для ETag-а файле и mtime.
Прекрасно поддерживает сжатый Content-Encoding, в том числе Zstandard.
Хранить сообщения из feed-ов я решил в Maildir-ах и использовать MUA в
качестве интерфейса для этого. Каждый feed это отдельная директория, по
совместительству Maildir, в которой и состояние для скачивания curl-ом
хранится.
Использую github.com/mmcdole/gofeed библиотеку для парсинга всевозможных
форматов. Поддерживает даже JSON, которого в Newsboat не было. Она
просто выплёвывает простые структуры идентичные для любых форматов
feed-ов, из которой я руками формирую почтовые MIME сообщения. Тело
сообщений -- только HTML. Ибо даже я в своих feed-ах его использую для
простоты.
Названия файлов для писем: SHA512/2(title+date). Изначально вообще
использовал дату обновления/публикация для имён, но, оказалось, очень
много feed-ов вообще не несут никакой информации о датах. А ещё могут
иметь одну и ту же дату для кучи разных записей. Честно выставляю mtime
и для файлов и для Maildir директорий, чтобы MUA понимал когда последний
раз были сообщения в feed-е.
Всё попадает в new/, что в Mutt-е честно будет показываться с флагом
"N". Всё что не прочтённое, но уже и не новое, будет old-ом ("O").
feed2mdir утилита умеет ограничивать кол-во обрабатываемых записей.
Удалять старые записи тривиально можно сортировкой по mtime и отсеканию
ненужного множества файлов (rm *(om[101,-1])).
Распараллеливать скачивание можно либо через redo, либо через parallel:
С redo вышла засада: сама по себе команда redo выполняет цели без
распараллеливания, последовательно, чтобы можно было написать: redo lib
install clean. Так делает не только goredo. Но redo-ifchange делает
проверку на "надо ли это вообще собирать", а так как явно зависимостей
никаких нет, то он ничего выполнять и не будет. Я добавил в goredo "-f"
флаг для redo-ifchange, но вообще думаю что redo тут наверное вообще
излишен. Честно для tracking-а зависимостей он использует для решения
надо ли запускать feed2mdir и для пересборки mutt.rc файла, если список
feed-ов и их названий поменялся. Но то, что feed.download, feed.parse,
feed.clean являются виртуальными целями, как будто присутствующими в
директории -- мне эстетически нравится.
Mutt запускается в режиме броузера почтовых ящиков. Для всего этого дела
автоматически генерируется mutt.rc, в котором все feed-и прописаны в
качестве почтовых ящиков с человеческими названиями. Сортировка по дате,
быстрый переход к списку feed-ов/ящиков, компактные форматы index-ов,
отображение авторов, категорий и ссылок новостей в виде X--заголовков
сообщений.
Можно запускать (что я и делаю) mu index для индексации этого всего и
добавлены макросы в Mutt для быстрого вызова поиска и просмотра
результатов. Так как в результатах поиска мешанина из элементов разных
feed-ов, то названия feed-ов в этом индексе тоже отображаются. Я привык
в Newsboat нажимать "A" для помечания всех элементов текущего feed-а
прочтёнными -- легко было написать аналогичный макрос и для Mutt.
В общем всё это получилось шустро работающим, сильно гибким из-за куда
более мощных инструментов. Я думал что подвохов будет гораздо больше.
Хотя по сути то самое главное это парсинг и раскладывание в БД: это
делается на Go. redo скорее не нужен будет -- можно будет заменить
только parallel.
Теперь выясняется что fsync на самом деле нифига не fsync, а штука
которая выгружает всё из буферов ОС, но не отправляет команду на очистку
буферов самих дисков! По сути просто врёт. Зато какие крутые цифры в
benchmark-ах! А на самом деле, если "честный" fsynс там делать, то
производительность у автора выходит... 46 IOPS!!! Это тупо в разы
медленнее чем у жёстких дисков.
В desktop применении fsync-и не часто делаются на самом деле, не так
много задач, поэтому apple fanboys конечно будут удовлетворены. Но для
"боевых" задач (СУБД например) оно вообще ни на что не годится.
Sergey Matveev [Wed, 16 Feb 2022 18:40:31 +0000 (21:40 +0300)]
Гомер Симпсон ездит на жигулях
https://www.youtube.com/watch?v=S_hWBfL1ro0
Не многие знают, но есть один эпизод в Симпсонах, начало которого не
нарисовано, а снято живьём. Причём действительно максимально похоже на
их классические заставки. И в нём Гомер ездит на жигулях (ВАЗ-2105 вроде).
Sergey Matveev [Wed, 16 Feb 2022 16:50:44 +0000 (19:50 +0300)]
Почему на тебя накричал GreyCat?
http://mywiki.wooledge.org/GreyCat/CompilingBad
Пока читал 0630e96a5148d8f43b8873fc013acac53cb0f677, то увидел ремарку
от GreyCat-а. Раз тема про shell, то это наверняка мой первый начальник,
который учил на shell-е писать грамотно. Раз он там упомянул про
название музыкальных файлов, то значит точно он.
Посмотрел его статью на тему "почему компиляция скриптов это плохо".
[...]
If you're asking us for help selling a product, then you are a
spammer and we want nothing to do with you.
If you're ashamed of your script because you know it's a piece of
shit, but you would prefer to hide its crappiness from people (but
still have them use it!) instead of fixing it, then you are a blight
upon humanity.
Видимо, с него я точно тоже брал пример для подражания о том как надо
выражаться :-). Мог ли он накричать в жизни? Конечно, помню день когда
после очередного push-а, слышу из-за спины вздох и слова "Серёг, сейчас
всё отреверчу нахуй" (хотя мат от него редко можно услышать).
Sergey Matveev [Wed, 16 Feb 2022 16:45:46 +0000 (19:45 +0300)]
Процесс загрузки FreeBSD
https://klarasystems.com/articles/the-freebsd-boot-process/
Очень коротко объяснено как FreeBSD загружается по старинке, с более
новыми GPT и UEFI. Очень просто и понятно что как и почему происходит.
Хотя я всё равно могу придраться: нет варианта с загрузкой без
MBR/GPT/UEFI, с ZFS установленной прямо на диск, без каких-либо
партиций, где загрузчик устанавливается так:
Sergey Matveev [Wed, 16 Feb 2022 15:45:38 +0000 (18:45 +0300)]
Подвохи при использовании bash
http://mywiki.wooledge.org/BashPitfalls
Очень хорошая подборка не банальных косяков, которую бы стоило почитать
всем кто пишет что-то на shell. БОльшая часть тут касается и POSIX shell.
Чтобы прочитать список файлов в иерархии, то рекомендуют делать так:
while IFS= read -r -d '' file; do
some_command "$file"
done < <(find . -type f -name '*.mp3' -print0)
Действительно, лучшего способа для POSIX/bash не найти (для POSIX только
нужно будет перенаправить find через pipe). Для zsh можно было бы:
for file (**.mp3(.)) {
some_command $file
}
И обратить внимание на отсутствие кавычек. В zsh это безопасно. Пишут
что в bash 4.0 можно делать так:
shopt -s globstar
for file in ./**/*.mp3; do
some command "$file"
done
Копировать $file в $target не безопасно, так как $file может иметь
дефисы в начале. И это касается многих других команд. Всякие GNU-шные
понимают "--" аргумент, означающий конец всех опций. Но это зависит от
конкретной программы. Не знал, но как хак применяют добавление "./" к
пути файла.
Отмечен старый хак с [ x"$foo" = xbar ], но и верно замечено что уже
давно в нём смысла нет -- проблемы с дефисом в $foo могли возникнуть
уже в очень старых версиях shell-ов.
Чтобы в ps|grep не попал сам grep, то можно делать: ps ax | grep '[g]edit'
Не слышал прежде про это. Но дальше верно замечают что правильнее и
легче использовать конечно pgrep (хотя я и не знаю насколько его опции
портируемы).
bash не в состоянии будет сделать это: for i in {1..$n}
поэтому советуют делать так: for ((i=1; i<=n; i++)); do ...
В zsh, конечно же, с этим проблем нет: for i ({1..$n})
Сам бы я наверное не догадался что же выведет следующая конструкция
(впрочем про (()) я и так ничего не знаю):
i=0
true && ((i++)) || ((i--))
echo "$i"
Выведет 0, так как код возврата (()) равен выражению внутри и будет
равен 1 ($i тоже будет равен 1), что для shell означает плохой код
возврата и будет выполнено ((i--)), сделав $i равным 0.
Sergey Matveev [Wed, 16 Feb 2022 13:42:44 +0000 (16:42 +0300)]
BIG TCP
https://lwn.net/SubscriberLink/884104/89d8ccf8f52ad9dc/
Если хочется передавать данные поверх 100GbE, привычными ~1500 байт
пакетами, то это более 8 миллионов пакетов в секунду. Процессору
остаётся 120нс для обработки каждого пакета.
В IPv6 давным давно в 90-х предусмотрели возможность передачи пакетов
большого размера (>64KiB), добавлением расширенного заголовка с 32-бит
размером.
Ну а в статье просто рассказ про набор патчей для Linux для поддержки
этих больших пакетов.
Sergey Matveev [Mon, 14 Feb 2022 20:22:43 +0000 (23:22 +0300)]
Посмотрел "Новейший завет"
https://ru.wikipedia.org/wiki/%D0%9D%D0%BE%D0%B2%D0%B5%D0%B9%D1%88%D0%B8%D0%B9_%D0%B7%D0%B0%D0%B2%D0%B5%D1%82
Как я могу относится к фильму, в котором визуализирован главный (для меня)
фидошный мем про холодильник (f5b1ebddf811eb35d626d63e80a8c7830c9c097c)!?
В фильме он буквально выпал с самолёта и приземлился на человека. Чего
не ожидал, того не ожидал.
Даже и без холодильника фильм очень понравился! Про бога из Брюсселя,
которого везде только мутузят. В конце ссылают чинить стиральные машины
в Узбекистане. Вообще жалко мне его.
В фильме есть очень мудрый посыл о том, что без сотового, человек был бы
куда куда счастливее, ибо не знал бы сколько ему осталось. Ах да, и ещё
то, что компьютеры нужно lock-ать, когда отходишь от него.
Эпизод про озабоченного мне жутко понравился! Прям местами показывают
всё через мою призму восприятия, очень понимаю этого "апостола".
Ну а конец фильма показывает что нельзя женщинам давать какой-либо
серьёзной власти. И по жизни так считаю и даже в этом новейшем завете
это отчётливо вижу.
Хотя последние эпизоды (последний апостол и дальше) уже как-то как-будто
высосаны из пальца, скучны.
Sergey Matveev [Mon, 14 Feb 2022 17:21:15 +0000 (20:21 +0300)]
Dæmonarch -- Hermeticum
https://www.metal-archives.com/albums/D%C3%A6monarch/Hermeticum/2695
https://en.wikipedia.org/wiki/Daemonarch#Experimenting_(1998%E2%80%932000)
У Dæmonarch был только один альбом, но который я не знаю откуда но имею
на CD ещё со школьных времён. Наверное продавец порекомендовал из Irond
(закупался дисками у них на Горбушке). К Moonspell я равнодушен (ну
кроме того что вокалист имеет запоминающийся голос), но этот Dæmonarch
очень нравился и до сих пор продолжаю ставить!
Только сейчас увидел на Encyclopaedia Metallum что там использовалась
драм-машинка: а я то с самого начала удивлялся звуку и такой чёткой
монотонной долбёжке! Сразу почувствовал что что-то не так с их
барабанами.
А на Moonspell я был в живую и даже отец со мной ходил в 2015-ом.
Headliner-ами правда там были Dream Theater.
Sergey Matveev [Mon, 14 Feb 2022 16:48:24 +0000 (19:48 +0300)]
Череда поломок с zsh 5.8.1 продолжается
https://github.com/zsh-users/zsh-autosuggestions/issues/603
https://github.com/zsh-users/zsh-autosuggestions/issues/660
В 398f6985b90366c4fc0c2cc536922f681020109f много чего поломалось,
казалось бы, не взаимосвязанного. Но сейчас увидел что (лень проверять,
но с отключением асинхронной работы что ли?) autosuggestions всё равно
не делает подсветку своего предложения. Bugreport-ы уже завели. И...
дело не в autosuggestions, а в необходимости ещё обновить и
syntax-highlighting плагин. Но это всё чинит, действительно.
Sergey Matveev [Mon, 14 Feb 2022 16:27:33 +0000 (19:27 +0300)]
Добронравов пожаловался на зрителей со смартфонами
https://lenta.ru/news/2022/02/14/dobonravov/
Всецело согласен со всеми его словами. Это просто лютое неуважение к
окружающим, ибо реально этот яркий светящийся экран жутко отвлекает.
Хорошо сказано что это разрушает магию театра которую пытаются создать.
К концертам это тоже относится, но благо на всяких метал и рокерских я
стараюсь быть в том, что на больших площадках называют фан-зоной, где
народ собирается на концерт, на музыку, на представление и ему нет дела
до своего сраного смартфона и делания селфи на нём. Ну и, как минимум, в
зале со сцены довольно много света льётся и поэтому светящийся экран не
так бьёт по глазам. Но я бы всё равно, как Lindemann, отнимал их при
входе (6a30d3693577f42c01ed7e5bdf73328a5eb30dfa).
Когда я набрал "mu suck", нажал Shift-Up, то ожидаю что включится
инкрементальный поиск с уже вставленным "mu*suck" текстом. Вот последнее
действие упорно не выполняется.
Подумал что сломал PS1 как-то. Откатил. Не помогло. Вспомнил что обновил
zsh как-раз заодно с 5.8 до 5.8.1. Откатил до 5.8 -- помогло. Ну
очевидно что бага в zsh. Полез в их репозиторий смотреть diff между
релизами. Ничего подозрительного или странного, никаких обратно
несовместимых изменений.
Пока возился с этим, заметил что autosuggestions не всегда отображают
suggestion текст разукрашенным -- текст есть, но без применения стиля.
Явно и autosuggestions как будто сломался. Полез смотреть -- а у меня
явный checkout его предыдущей версии сделан. Хотя в более новой явно
сказано о поддержке zsh 5.8. Обновил autosuggestions, хотя и не помню
почему откатывал. Подсветка починилась, но инкрементальная история нет.
Вставляю print $BUFFER в функе -- всё имеется, всё на месте, явно беда с
zle вызовом.
Отключаю autosuggestions -- поиск по истории работает. Хотя бы понял что
беда именно с этим плагином. Пошёл смотреть его исходный код на тему
особенностей с поиском по истории, смутно понимая как он вообще устроен.
Благо что в начале плагина есть массивы с перечислениями всяких widget-ов
и что с ними надо как-то особо обходится. И в некоторых как-раз
перечислены widget-ы связанные с поиском по истории, но не инкрементальной.
Добавил их в ZSH_AUTOSUGGEST_IGNORE_WIDGETS -- всё заработало!
Сегодня заметил что как-будто пропускаются некоторые нажатия up/down при
поиске по истории. Действительно, чуть ли не каждый раз по два раза
приходится нажимать. Когда я смотрел README autosuggestions плагина, то
мне сразу не понравились фразы про асинхронную работу плагина. И оно
включено по умолчанию. Отключил -- решило проблему.
Обновление одного софта на минорнейшую версию, повлекло то, что другой
софт ломает третий :-). Позже смотрел на bugtracker autosuggestions и
там похожие проблемы наблюдались регулярно с widget-ами. Но, не смотря
на его странное качество (или по другому просто без хаков не выйдет его
сделать?), он über-полезнейший и must-have в моём арсенале!
Sergey Matveev [Mon, 14 Feb 2022 09:43:16 +0000 (12:43 +0300)]
Вокал Сакиса Толиса
https://ru.wikipedia.org/wiki/%D0%A2%D0%BE%D0%BB%D0%B8%D1%81,_%D0%A1%D0%B0%D0%BA%D0%B8%D1%81
https://www.youtube.com/watch?v=hwxd2JIqBQ0
https://www.youtube.com/watch?v=ua1sV0iheWU
Пишут про уникальный вокал вокалиста Rotting Christ. Действительно,
такую манеру пения не встречал. Да и в целом они конечно однообразны, но
заводны и легко слушаются. Хотя я пока только с поздним творчеством
ознакомился. Клёвая группа!
Sergey Matveev [Mon, 14 Feb 2022 09:23:43 +0000 (12:23 +0300)]
sfeed RSS/Atom reader
https://sgauthier.fr/blog/minimalism_3_sfeed.html
Автор пишет, что пришлось искать замену Newsboat, который стали писаться
на Rust. В общем-то я Newsboat-ом доволен, но использую его последнюю не
Rust версию. Пока проблем не вижу с этим. Если понадобится какое-то
хитрое скачивание статей, то он может читать feed-ы из файлов сторонних,
которые можно качать как пожелаешь. Я часто не понимаю людей которые
перестают пользоваться ПО, если оно перестало поддерживаться. Вопросы
безопасности -- тут всё понятно. Но если это какой-нибудь newsreader, то
он что, перестаёт работать что ли с прекращением поддержки? Я вот GoVPN
вообще не трогал сколько лет, но на 95% уверен что он (а сборочница
портов FreeBSD это доказывали) и собирается и работает точно так же как
и прежде. Но если от Newsboat придётся избавляться, то буду смотреть в
сторону sfeed. Хотя я как-то бегло уже глядел и awk мне не понравился.
Но это чисто субъективная вкусовщина (лишь бы под BSD awk работала).
Sergey Matveev [Sun, 13 Feb 2022 18:31:26 +0000 (21:31 +0300)]
releases.atom.zsh
http://www.git.stargrave.org/?p=releases-feed.git;a=blob;f=releases.atom.zsh
После 35be2372fa3caa2b73a24eca45c1333159519ba8 замучила совесть за то,
что у моего софта нет никаких средств оповещения о выходе новых релизов,
кроме иногда (например я это редко делаю для GoGOST того же) публикуемых
писем в рассылки. Причём отдельных рассылок только для announcement-ов нет.
latest-version.txt это конечно интересно, но всё же уже имеется Atom
формат для задач оповещения об изменениях.
Добавил в своих проектах генерирование releases.atom и
"<link rel="alternate" title="Releases" href="releases.atom" type="application/atom+xml">.
Atom генерируется на основе *.meta4 файлов, ссылаясь на них, используя
их mtime в качестве времени у записи в feed-е.
Sergey Matveev [Sun, 13 Feb 2022 17:52:45 +0000 (20:52 +0300)]
Paster поддерживает asciicast-ы
http://www.paster.stargrave.org/
http://www.paster.stargrave.org/Asciicast.html
Для своего демона заметок (24cd89da8ad2d37061f2fd9867ed7e0472fc2900)
добавил возможность автоматической генерации .html-ек для asciicast-ов
(2d4333e8dc6ac239a490ad940255025414702449). Заранее надо подложить
asciinema-player на сервер, указать его имя для paster демона, а дальше
все ".cast" файлы будут сопровождаться ".cast.html" версией с
подключением JavaScript проигрывателя этого asciicast-а. Конечно же
возможность скачать ".cast" остаётся, чтобы это локально без JS
проигрывать по человечески.
Использую при этом старую версию player, которая ещё не была переписана
на Rust/WASM, ибо она работает даже в Xombrero броузере, ну и Firefox
последнем независящем от Rust. В курсе что есть более новая версия,
более быстрая, в несколько раз более компактная, но она даже в Firefox
не работает у меня.
Для последнего решил использовать родной zsh функционал для работы с
VCS. Посмотрел на код -- идёт вызов git rev-parse, но хотя бы никаких
"git status" тяжёлых не вызывается при всём этом (что тормозило).
Показываю только 8 символов от хэша коммита, плюс особый режим типа того
что мы сейчас находимся в "rebase".
Для отображения virtualenv/autoenv показываю однобуквенные флаги,
которые храню в уже имеющимся PSVAR массиве.
Прежде у меня PS1 каждый раз, при каждой инициализации строки
приглашения или смене vi-режима, создавалась с нуля, проверяя что и как
надо выводить, динамически её изменяя. Теперь использую родные
возможности %(X.Y.Z) if/then/else условий и PROMPT_SUBST, который
предварительно делает раскрытие переменных. PS1 устанавливается только
один раз при запуске, а дальше динамически меняются только _VIMODE и
PSVAR переменные, плюс vcs_info сообщение.
Прежде использовал отдельную переменную $timer для учёта времени
выполнения команды, а в качестве текущего времени $SECONDS. Сегодня
понял что можно же только $SECONDS использовать, обнуляя её перед каждой
командой. Документация говорит что это особая изменяемая переменная --
наверное как раз намёк на то, чтобы её и использовать в этом контексте.
Почти всё показывается только опционально. Минимально строка приглашения
показывает только: путь до текущей директории (два последних элемента) и
vi-режим. Максиально строка может показывать (разделяя элементы разными
цветами и стилями): путь, "V" флаг virtualenv, "A" флаг autoenv, кол-во
фоновых задач, режим git-а (rebase, amend, и т.д.), часть хэша git-а,
не успешный код возврата команды, время выполнения команды (если больше
секунды), vi-режим. Насчёт информации о Git-е я не уверен в её пользе,
буду смотреть.
Sergey Matveev [Sun, 13 Feb 2022 17:34:41 +0000 (20:34 +0300)]
Прямоугольное выделение в tmux
Узнал что в tmux (ну да, кто ж читает manual-ы!) можно делать
прямоугольные выделения текста, просто нажимая "v" для переключения
режимов "построчного"/"прямоугольного".
Sergey Matveev [Sun, 13 Feb 2022 16:53:27 +0000 (19:53 +0300)]
iWatch будут искать "партнёра"
https://habr.com/ru/post/651079/
https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%B2%D0%B5%D1%81%D1%8C_%D0%B4%D0%B8%D0%B4%D0%B6%D0%B5%D1%8F
Часы будут выбрировать если рядом окажется подходящая "пара". Сразу
напоминает серию "Чёрного зеркала", когда компьютер говорил кому, с кем,
сколько нужно пробыть в интимных отношениях. Такое впечатление, что
"Чёрное зеркало" это прям вестник того что ждёт всех нас в будущем.
Sergey Matveev [Sun, 13 Feb 2022 13:50:25 +0000 (16:50 +0300)]
Megadeth отказался играть с Rotting Christ
https://en.wikipedia.org/wiki/Rotting_Christ#Publicity
Лидер Megadeth отказывался играть с Rotting Christ в Греции. Абсолютно,
по моему, недостойное поведение металиста, тем более, будучи гостем в их
стране.
Sergey Matveev [Sun, 13 Feb 2022 10:01:48 +0000 (13:01 +0300)]
Поиграл в Манчкина
https://ru.wikipedia.org/wiki/%D0%9C%D0%B0%D0%BD%D1%87%D0%BA%D0%B8%D0%BD_(%D0%B8%D0%B3%D1%80%D0%B0)
Слышал название игры много раз, но не знал про технику и принцип игры
совсем. Очень понравилась! Все говорили что чем больше людей в ней, тем
лучше -- понял почему, явно будет заметно веселее. Так как знаком с
Magic The Gathering, то многое про себя map-ил на термины из неё. Эдакая
ultra-lightweight/simplified версия MtG.
Sergey Matveev [Fri, 11 Feb 2022 19:33:24 +0000 (22:33 +0300)]
Вы можете объяснить этот пропуск в вашем резюме?
https://irreal.org/blog/?p=10316
... я пытался сделать сложный TikZ рисунок и потерял счёт времени.
Очень хорошо понимаю автора этого, сам терял его когда рисовал в TikZ.
За свою жизнь я ни разу не делал ни одной презентации в PowerPoint и
аналогичных программах (даже не знаю название в Open/LibreOffice).
Всегда это был либо Beamer, либо скрипты внутри Vim или что-то подобное.
Чертежи делал в QCad. И вот схемки не помню делали ли когда-нибудь в
чём-то кроме TikZ, ибо очень уж напрягает меня тот факт, что они не
детерминированны, так сказать: всё делается же типа на глаз и как
выйдет, так и выйдет. Наверняка в каком-нибудь Inkscape/Xfig можно и
плясать от узлов сетки какой-нибудь, но небось геморройно и проще будет
взять настоящий CAD для этого. Всё это конечно я брал только если в
Gnuplot или Graphviz нельзя сделать.
Sergey Matveev [Thu, 10 Feb 2022 18:33:14 +0000 (21:33 +0300)]
Заценил The 3rd and the Mortal
https://ru.wikipedia.org/wiki/The_3rd_and_the_Mortal
Сегодня познакомился с творчеством этой норвежской группы. Слушал их с
конца, а на альбоме 1994-го года появилось дежавю от женского вокала.
Полез в wikipedia, оказалось что это Kari Rueslåtten, сольные альбомы
которой у меня на дисках есть, но которые не ставил лет десять.
Сегодня коллега верно заметил что с возрастом восприятие и вкусы ощутимо
меняются. Многие мои знакомые слушали в подростковом возрасте всякие
Limp Bizkit и Korn, а сейчас даже на концерты не пойдут. Отец у меня
совсем перестал ставить AC/DC, хотя в детстве я буквально рос под них.
Я бы лет десять назад покрутил пальцем у виска, не поверив что буду
слушать что-то типа этих 3rd and the Mortal, Peccatum, Starofash, Major
Parkinson, Diablo Swing Orchestra, Trail Of Tears, Ihsahn и, теперь
любимейших, Solefald. Кривил рожу когда люди предлагали сходить на
концерт Мельницы, а в этом году снова планирую на них в Королёве
побывать. Я даже сказал бы что Мельница -- это лучшее что я в городе из
концертов слышал. Я стал раз в двадцать больше слушать всякого black
metal, но раз в десять меньше goregrind-а заводного. Бывает поставлю, но
скорее для вспоминания молодости. У меня в playlist-е чаще появляется
Madonna, Lenka и Dolores O'Riordan.
Nightwish, с которых я начинал слушать метал, мне как-то параллелен.
После ухода Тарьи то я их вообще не слушаю, но и их первые альбомы раз в
год наверное только поставлю. Но их Once мне крышу просто сносил! Зато
вот какой-нибудь Rammstein как ставил, так и ставлю. Только теперь ещё и
с Lindemann альбомами. Ранний Theatre Of Tragedy мне был слишком уныл, а
их "экспериментальные" альбомы 2000-2002-го годов настолько постыдны,
что даже удалял с жёсткого диска -- сейчас же ставлю регулярно, как и
ранние doom-ные.
Отчётливо помню, что со всякими Rammstein, Megaherz и прочим neue
deutsche härte, думал что самая крутая (для меня) музыка идёт из
Германии. Со всякими Nightwish появилась тьмища исключительно финских
исполнителей, на худой конец из Швеции. С грайндкором и горграйндом
горизонты расширились, люто захватывая Скандинавию. А теперь в playlist-е
сплошные норвежцы и шведы.
Sergey Matveev [Thu, 10 Feb 2022 18:04:09 +0000 (21:04 +0300)]
Гос-ая открытая лицензия
https://www.opennet.ru/opennews/art.shtml?num=55960
https://g.info.gov.ru/datamart/nsud-datamarts.git
https://www.opennet.ru/opennews/art.shtml?num=32632
https://standartgost.ru/g/%D0%93%D0%9E%D0%A1%D0%A2_%D0%A0_54593-2011
Что-то мимо меня как будто прошла новость о "Государственной открытой
лицензии, версии 1.1". Хрен прочтёшь её в броузере -- JavaScript врубай.
Придётся клонировать git-репозиторий.
Прежде это была, как оказалось, открытая лицензия "Восхода". В куче кода
и файлах упоминается эта лицензия с ссылкой которая уже не работает
(файл переименован). Или вообще без ссылок, а с placeholder-ом "тута
надо вставить ссылку". Короче вместе с исходным кодом самого текста
лицензии нет, как и на сайте его нет. И я понимаю людей которые метают
какахи в сторону госработ, когда видят подобное качество на отъебись.
Исходный код коммитится и обновляется в репозитории одним бинарным Zip
архивом. Я даже не знаю как это прокомментировать. Люди впервые
пользуются VCS? Или, опять же, "на отвали" делают? Всякий IntelliJ мусор
закоммичен при этом. И бинари всяких зависимостей.
В "открытой лицензии" с ходу бросается в глаза что явно отмечено что ты
не можешь нарушать законы РФ и чего-то Евразийского. Выглядит как
нарушение нулевой свободы (свободного ПО), но вроде бы юридически это и
так автоматом будет следовать что закон выше в любом случае и ты его и
так обязан соблюдать.
И, опять таки, почему то мимо меня прошёл тот факт, что у нас есть ГОСТ Р
с определением "свободного ПО". Причём в нём действительно речь про СПО,
а не open source. Упоминают FreeBSD и даже правильно пишут "GNU/Linux",
не забывая добавлять что это только развивающая ОС, видимо, в противовес
законченной FreeBSD :-). Приятный ГОСТ, в котором первым делом ссылаются
на GNU GPLv3.
Sergey Matveev [Thu, 10 Feb 2022 17:34:31 +0000 (20:34 +0300)]
Установка софта DJB-way
https://sorting.cr.yp.to/install.html
https://libpqcrypto.org/install.html
https://news.ycombinator.com/item?id=17505357
Бернштайн предлагает качать tarball-ы так:
wget -m https://whatever/whatever-latest-version.txt
version=$(cat whatever/whatever-latest-version.txt)
wget -m https://whatever/whatever-$version.tar.gz
tar -xzf whatever/whatever-$version.tar.gz
cd whatever-$version
при этом намекает и на создание отдельного пользователя под которым оно
будет собираться, с chmod 755 $HOME и umask 022.
Идея с latest-version.txt мне понравилась. Надо бы и у себя наверное так
сделать. А то как понять появилась ли какая новая версия? Atom feed-ы я
не делаю для своего софта.
Хак с wget -m, создающим директорию, внутри которой будут помещаться все
tarball-ы программы, тоже понравился.
Sergey Matveev [Thu, 10 Feb 2022 07:43:07 +0000 (10:43 +0300)]
Как понять, что перед вами плохой разработчик
https://habr.com/ru/company/hexlet/blog/650603/
Уже наверное с год я стал замечать как люди говорят. Видя всяких
блоггеров время от времени, видя интервью с молодняком и Брайанами
Керниганами (89c4d5373d535a0b04b499a583d6f69312f302ea), стал
отмечать насколько же отличается речь. И действительно заметна
корреляция между уровнем разработчика и тем, как он говорит. Это
замечаю и в жизни у коллег. Отличный список критериев в статье:
* Насколько объёмный у него словарный запас;
* Как часто он поправляет себя;
* Как начинает и как заканчивает фразы;
* Насколько целостны и непротиворечивы его мысли;
* Насколько плавна его речь;
* Много ли он использует слов-паразитов и заполняющего паузы "мычания";
* Насколько обширный контекст он способен удерживать в диалоге;
* Насколько лаконично и ёмко он способен донести информацию.
Злоупотребление жаргонизмами, buzzwords, новояз -- аналогично тоже
замечал что крутые профи ничем подобным не балуются никогда.
Перфекционизм и идеализм -- тоже замечал что у молодых и неопытных это
нередко проявляется. Сам такой. И понимаю что всё хорошо в меру.
Переусложнение или оверинженеринг -- самое первое что бросается в глаза
у не очень опытных разрабов! Но тут всё очевидно.
* Желание учесть абсолютно все пограничные случаи работы приложения,
независимо от их вероятности и степени рисков, которые они несут
* Трата ресурсов и времени на разные аспекты задачи
непропорционально их фактической значимости
* Инновации ради инноваций
* Преждевременная оптимизация
Самоуверенность, велосипедизм, эффект Даннинга-Крюгера -- ни с чем не
поспоришь, корреляция всего этого с уровнем разраба ещё какая.
Туннельное зрение, когда человек использует бездумно
технологии/инструменты/подходы и даже не интересуется альтернативами.
Sergey Matveev [Thu, 10 Feb 2022 07:36:27 +0000 (10:36 +0300)]
Симпатичные doom-ерши
http://www.hitkiller.com/moshhnye-dumershi-smotrim-novyj-klip-zhenskoj-death-doom-komandy-konvent.html
Датская Konvent группа состоит только из девок, как и греческая Astarte
(fe96e0512ef8d053d102d868df0627e791f05509), но играют doom metal.
Простой, незатейливый, но приятно слушается. Такого женского гроула ещё
не слышал.
Sergey Matveev [Wed, 9 Feb 2022 12:42:12 +0000 (15:42 +0300)]
Сколько кубит нужно для взлома 256-бит ECC ключа
https://www.schneier.com/blog/archives/2022/02/breaking-245-bit-elliptic-curve-encryption-with-a-quantum-computer.html
13 миллионов чтобы взломать его за день. На сегодняшний день самый
большой и крутой квантовый компьютер IBM имеет всего 127 кубит.
Sergey Matveev [Wed, 9 Feb 2022 09:30:58 +0000 (12:30 +0300)]
GNU Guix переходит на Zstandard сжатие пакетов
https://guix.gnu.org/blog/2022/sunsetting-gzip-substitutes-availability/
Ибо оно у них экономнее lzip получается. Только у zstd умопомрачительная
скорость декомпрессии ещё.
Sergey Matveev [Wed, 9 Feb 2022 07:42:13 +0000 (10:42 +0300)]
Расширение RAIDZ в ZFS
https://freebsdfoundation.org/blog/raid-z-expansion-feature-for-zfs-goes-live/
В fd06c1c180f30fb802075a3a4a48ef0197576a85 упоминалась статья, где одним
из недостатков ZFS является невозможность увеличивать RAIDZ vdev.
Известно что работа над этом велась, а теперь она уже, можно сказать,
завершена.
Sergey Matveev [Tue, 8 Feb 2022 20:39:26 +0000 (23:39 +0300)]
Посмотрел "Один прекрасный день"
https://www.kino-teatr.ru/kino/movie/euro/19174/annot/
Под этим именем всякие другие фильмы и сериалы прячутся -- фиг найдёшь
где французский фильм с Пульвордом. Фильм про то, как то всё наперекосяк
у главного героя идёт, а потом внезапно вдруг все его любят, женщины
дают просто так, на работе хорошо как и не мечтал, жена возвращается и
всё в таком духе. Но почти весь фильм я был очень напряжён, ибо если бы
в жизни такое произошло, то обязательно что-то плохое всё это
компенсирует -- не бывает просто так и резко хорошо. Кто-то слишком
хорошо к тебе внезапно относится -- жди подвоха (хотя в фильме их не
было). Вот и герой фильма попадает в психушку из-за этого -- нервы не
выдержали.
Sergey Matveev [Tue, 8 Feb 2022 20:35:19 +0000 (23:35 +0300)]
Посмотрел "Не послушник"
https://www.afisha.ru/movie/266138/
На выходных за компанию с родителями ходили в кинотеатр. В целом мне
наверное не понравился, из-за слишком православной пропаганды в конце.
Родителям основная идея понравилась, но вот то, что, мол, нельзя без
соцсетей ничего сделать -- нет. Ну тут понятное дело что меня это тоже
удручает.
Sergey Matveev [Tue, 8 Feb 2022 16:27:25 +0000 (19:27 +0300)]
HackerNews сервер
https://news.ycombinator.com/item?id=16076041
https://news.ycombinator.com/item?id=28478379
https://news.ycombinator.com/item?id=30257487
Весь HackerNews работает на двух серверах (master и запасной) с FreeBSD:
CPU: Intel(R) Xeon(R) CPU E5-2637 v4 @ 3.50GHz
FreeBSD/SMP: 2 package(s) x 4 core(s) x 2 hardware threads
Mirrored SSDs for data, mirrored magnetic for logs (UFS)
К сожалению, многие даже не подозревают насколько вообще то современное
железо мощное и как много на нём можно делать. Чуть что, так сразу
бросаются за решениями с облаками и десятками машин.
Sergey Matveev [Mon, 7 Feb 2022 20:50:56 +0000 (23:50 +0300)]
Eaten By a Grue будет играть в победителей IFComp
https://monsterfeet.com/grue/notes/44
"Eaten By A Grue" -- первый подкаст который я начал слушать. Более пяти
лет я с ними, практически с самого начала. Они проиграли во все Infocom
IF-ы. Затем решили проиграть в оставшиеся четыре графические Infocom
игры. А затем настал волнующий выбор:
* либо завершить подкаст, мол как полностью законченный проект
* либо поиграть в квесты от LucasArts, типа Maniac Manson и Monkey Island
* либо поиграть в другие игры с Zork-ом в названии, уже графические, не Infocom
* либо поиграть в победителей ежегодного соревнования IFComp
Выбрали последний вариант. Во-первых, это всё же IF, а не графические
квесты. Во-вторых, там априори победители -- значит явно не плохие игры.
Я с нетерпением буду ждать их выпусков снова, которые под конец выходили
раз в несколько месяцев (на Zork Zero они потратили семь месяцев). Тем
более что в некоторых победителей IFComp я уже играл и именно на них и
ориентировался. Плюс среди них большая часть это относительно короткие
игры, которые можно за пару часов пройти, в противовес нескольких
месяцев легко затрачиваемых на Infocom-овские творения.
Sergey Matveev [Mon, 7 Feb 2022 17:41:24 +0000 (20:41 +0300)]
NNCP и goredo пакеты в разных ОС и дистрибутивах
http://www.nncpgo.org/Installation.html
http://www.goredo.cypherpunks.ru/Install.html
https://github.com/NixOS/nixpkgs/pull/141769
Почти никто из maintaner-ов пакетов не сообщает что пакет для софта был
добавлен куда-то. Понасиловал поисковик и обнаружил что софт мой много
где добавлен:
goredo: ALT Linux, Arch Linux AUR, Fedora, FreeBSD, macOS Homebrew, NetBSD
NNCP: Arch Linux AUR, Debian, Dragonfly BSD, FreeBSD, GNU Guix, NetBSD,
NixOS, Void Linux
Ну и возможно в NixOS появится goredo, в котором народ поругался на
отсутствие HTTPS с "валидными сертификатами". Причём мне не понятно для
чего? Они же там SHA256 хэш от файла вшивают в само описание пакета!
Сам я maintain-ил только GoVPN (уже мёртв) и NNCP в FreeBSD.
Sergey Matveev [Mon, 7 Feb 2022 10:22:10 +0000 (13:22 +0300)]
Запись terminal screencast
https://habr.com/ru/company/first/blog/648773/
https://pypi.org/project/asciinema/
https://blog.asciinema.org/post/two-point-o/
Делал я наверное только с десяток записей экрана терминала. Делал
записывая видео, конвертируя его потом в lossless VP9. Это требует и
места на диске прилично и много времени занимает кодирование. Но
lossless сжатие довольно компактно выходит, относительно фильмов.
В FreeBSD можно использовать "script -r" для записи вывода в файл с
временными штампами. И проигрывать его позже через "script -p". Но это
явно несовместимое с GNU/Linux реализацией решение, где у script свои
опции и отдельная scriptreplay команда.
Про asciinema я слышал, но считал что для этого обязательно что-то на
JavaScript надо запускать. Оказалось что нет. Есть asciinema Python
пакет, без зависимостей -- поэтому установить не проблема. Он и
записывать и проигрывать может, прямо в терминале, без дополнительных
программ. Решение куда более портируемое чем script.
В блоге для 2.0 версии показали что rec/play можно использовать и через
pipe для показа своего терминала удалённому пользователю, без всяких
ssh/tmux (5f98503b78f5aa80bd48f4633ce82e9a219ed7e6). Не пробовал, но
надо взять на заметку.
Sergey Matveev [Mon, 7 Feb 2022 08:36:56 +0000 (11:36 +0300)]
Эпитафия ноутбукам
https://vermaden.wordpress.com/2022/02/07/epitaph-to-laptops/
https://drewdevault.com/2020/02/18/Fucking-laptops.html
Автор ругается на постоянную деградацию клавиатур ноутбуков. Как по
качеству, так и по количеству важных клавиш. Полностью с ним солидарен!
Уже давно я ноутбуки использую только с внешней клавиатурой, ну и
монитором заодно. А в этом году то и вообще перестал как класс их
использовать.
Верно заметил что сейчас огромное количество людей выросло вообще без
полноценных клавиатур и не знают как использовать PgUp/Down, Home/End,
Ins/Del блок клавиш.
Sergey Matveev [Sun, 6 Feb 2022 09:58:20 +0000 (12:58 +0300)]
Спам чёрные списки совсем оборзели
https://blog.roastidio.us/posts/spam_blacklists_are_out_of_control/
Человек пишет что его IP адрес в чёрном списке, только потому, что он
соседствует с какими-то другими нехорошими из этой же организации. И это
официальное объяснение, даже с пометкой что "мы понимаем, что конкретно
ваш адрес ничего плохого и не делает". Это действительно совершенно
бессовестно уже. Автор не использует эти сервисы, как и я. Их поведение
неприемлемо и выходит за все разумные рамки.
Sergey Matveev [Fri, 4 Feb 2022 13:58:40 +0000 (16:58 +0300)]
Почему не ZFS?
https://storytime.ivysaur.me/posts/why-not-zfs/
* ZFS не будет в ядре Linux
Да и пофиг. Это их проблемы. У них и так оно плохо интегрировано и ARC
не дружит с остальной системой кэширования.
* Низкая производительность шифрования.
Ну тут нечего мне сказать. Как в Linux не знаю. В FreeBSD используется
родная crypto подсистема. Само по себе родное шифрование ZFS не всем
подойдёт, потому что там много чего не зашифровано на самом деле и
полнодисковое может быть предпочтительнее.
* Не гибкий.
Примеры надуманные. Даже если не хватает гибкости, то это не означает
что для превалирующего большинства оно подходит без проблем.
* Нельзя добавлять/удалять диски из RAIDZ.
Да, всё так. Как и делать shrink массивов. Есть ограничения. Волнуют
ли оно большинство? Вряд ли. Ибо shrink я считаю глупостью считать
недостатком.
* RAIDZ медленный
Куча статей на эту тему. Нет, не медленный. И не быстрый. Много от
чего зависит его производительность. RAIDZ с 4-8 KiB блоками вообще
будет иметь overhead потерянного места больший чем было бы в зеркале.
* mdadm RAID6 даст больше IOPS
Ага, только с возможностью потерять данные при аварии. Write-hole
никто не отменял. Даст ли mdadm с диском для хранения промежуточного
state для write-hole safety больше IOPS? Все молчат.
* Файло-ориентированный RAID медленный. Для операций типа resilvering,
scrub, rebuild последовательное чтение/запись быстрее
Нет. Зависит от степени заполненности массива. Если у меня вылетел
диск из pool-а с 1 GiB полезных данных, то resilver потребует
чтение/запись (пускай и с random IO) только гигабайта данных. В
обычном же RAID из-за кратковременного сбоя контакта -- потребуется
чтение/запись всех 2 TB данных для 2 TB диска. Кроме того, алгоритмы
scrub/resilver улучшаются со временем и scrub уже вроде бы не первый
год старается всё делать последовательно. Это почти полностью лживый
аргумент.
* Real-world performance is slow
У меня зачастую наоборот. А phoronix умудряется чисто CPU bound задачи
сделать так, что на одном и том же процессоре может отличаться в разы
время работы компрессора (6d986bf15a3e11ffd3d82f0f7b74b9f7af566ab0).
Ну и как бы какой смысл сравнивать ext4 и ZFS, у которых кардинально
разные возможности и гарантии целостности/консистентности. Кого
волнует производительность, если данные/ФС можно потерять незаметно?
* Производительность падает при отсутствии свободного места
Верно. У всего своя цена. ZFS -- дорогая штука. И всё зависит от
режимов работы с массивом -- линейно записать для хранения фильмы и их
потом линейно читать, редко удаляя или перезаписывая -- тут никаких
проблем с производительностью не будет. Это CoW система -- у неё есть
своя цена.
* Layering violation of volume management
Violation это когда что-то явно подразумевалось, но оно нарушается. Не
нужно делать ложных непойми откуда взявшихся ожиданий от ZFS. Поверх
LVM/whatever ZFS можно использовать. Использовать менеджеры томов
поверх ZFS ZVOL-ов -- тоже. Отсутствие разделения знаний о блочном
устройстве и файлов/объектов на нём -- даёт колоссальные преимущества,
невозможные иначе.
* Не поддерживает reflink?
И?
* Много памяти нужно для дедупликации
Я не понимаю: много относительно чего? Очевидно что для дедупликации
нужно иметь какую-то табличку с хэшами всех блоков и ходить по ней
постоянно чтобы проверять нет ли такого блока на диске уже. ZFS
неэкономно расходует место под эту табличку? Нет, overhead
незначительный, почти всё отдаётся под настоящий payload всех этих
хэшей и ссылок. Если не хватает RAM и можно потерпеть просадку по IO,
то без проблем можно использовать L2ARC для выгрузки таблицы
дедупликации. Совершенно бредовый аргумент. Сжатие использует больше
CPU. Очевидно! Не нравится -- отключи сжатие. Дедупликация использует
больше памяти. Очевидно! Не нравится -- отключи. Хранит таблицы ZFS
достаточно экономно с маленьким overhead-ом
* Дедупликация синхронна
Да. Это просто, надёжно и имеет предсказуемое поведение. Асинхронный
фоновый процесс btrfs... означает что не понятно когда как и что у
меня будет дедуплицировано. Если я делаю nncp-reass сборку файла, то я
не хочу чтобы на диск что-то вообще было записано, ибо я знаю что это
полностью дуплицированные блоки, которые в btrfs могли бы означать
запись на диск и дикую просадку по производительности.
* ARC жрёт много памяти
Ну тут проблемы только Linux. В нём page cache и ARC живут
параллельной жизнью. Если кроме ZFS на хосте ничего нет, то проблем не
будет -- всё так. В противном случае можно ждать неприятного (или
памяти не на ARC будет не хватать, либо ARC не будет использовать все
возможности памяти). Двойной mmap -- да, это проявится не только на
Linux. Наверняка mmap-heavy задачи заранее известны и серверу можно
сделать соответствующий tuning.
* Buggy + ссылка на сотни задач в трэкере
Ну я бы тут приводил подобное в пример, ибо даже для ext*fs, UFS*
файловых систем, которые на порядки проще, порядки меньше всего умеют,
до сих пор есть баги и находятся критично важные проблемы. Вот btrfs
до сих пор не стабильна достаточно чтобы не ссать и использовать её не
боясь всё потерять. ZFS давно стабильна. Ошибки находят в любом софте,
даже очень старом и проверенном временем, даже очень простом.
* Нет fsck
Так и не понял что он должен делать то, кроме того что ZFS и так
делает при импорте pool-а или при scrub. Автор считает что
журналируемая ext4 точно так же консистентна должна быть, как и
copy-on-write системы. Я точно не знаю про ext4, но чую что там не
сильно всё отличается от UFS/FFS подходов с журналами и soft-updates,
где журнал спасает/помогает только для ряда транзакций действий.
Например soft-updates не позволит жутко испортить иноды, но место при
этом может спокойно "утечь" -- таблица/bitmap свободных блоков это
отдельная тема. Поэтому там всё равно есть отдельно fsck. Хочется
проверить все хэши -- делай scrub или zfs send, в чём проблема?
Автор предлагает альтернативы?
* RAID, LVM -- спасибо, но write-hole и жуткая неэффективность из-за
незнания что за объекты обслуживаются в блоках.
* Шифрование делать на блочном уровне -- тут ничего не могу сказать
против, ибо где-то это разумнее может быть, точно безопаснее.
* Снимки автор предлагает делать через LVM snapshot-ы... умалчивая как
при этом сделать для любой ФС консистентную выгрузку состояния. И
overhead от количества передаваемых данных на которые никто не
ссылается (пустое место). И умалчивает про инкрементальные снимки. И
как бы их сделать эффективно.
* Scrub предлагает делать просто чтением данных. Что-то я не пойму: а
чем проверять то их целостность? Он говорит про URE (Unrecoverable
Read Error), то есть когда диск не может отдать данные. Автор, scrub
делается в первую очередь и для проверки bit-rot-а! Не для того чтобы
понять что диск выходит из строя/сбоит, а для проверки целостности!
* Дедупликация не стоит того. В целом тут я согласен, что задач где она
имеет смысл -- мало. Речь про то что лучше для VM -- не согласен, ибо
для них надо использовать zfs clone. Но даже у меня на моей рабочей
системе: zroot dedupratio 1.12x -- очень ощутимая дедупликация
$GOPATH-а
* Компрессия не стоит того. Ну это вообще бред сивой кобылы. Нет,
конечно есть много задач где она не поможет безусловно. Только одно из
первых от чего почти все пользователи ZFS тащатся -- как много места
сжалось и какой профит для производительности (данных то с диском
теперь меньше передавать!) оно даёт. Заявление про sparse databases
говорит о полном непонимании copy-on-write природы. Sparse файлы на
CoW не работают просто по природе CoW. Точнее работают, но profit не
имеют никакого. Причём тут сжатие? Речь про то, что с выключенным
сжатием sparse блоки могут оказаться на диске, а с сжатием даже не
будут записаны? Автор явно не учитывает что при любом обновлении
блока, sparse блок будет записан в другом месте диска, нивелируя
*любые* sparse оптимизации.
* Контрольные суммы не стоят того, ибо мол SATA/диск и так имеют CRC.
Про bit-rot автор как-будто не слышал. "Вы можете использовать
dm-integrity" -- согласен. "или btrfs, которая автоматически это
делает". Ага... как и ZFS, тоже автоматически из коробки!
Если сложить предложения: RAID, LVM2, cryptsetup, lvmsync, cron-ed cat,
lvmvdo/kvdo/dduper, dm-integrity, cron-ed cksfv... то станет понятно
настолько администратор задолбается это всё поддерживать. Это без учёта
того, что тут не решается куча других проблем (типа write-hole, компрессии
файлов, инкрементальных снимков). И даже эти то проблемы не решены до
конца, ибо .sfv файлы не будут в real-time проверятся. Кроме того ZFS
делает self-healing, восстанавливая побитые данные (проверено!), тогда
как в предложениях автора ничего для этого случая нет.
Sergey Matveev [Thu, 3 Feb 2022 07:39:40 +0000 (10:39 +0300)]
Всё о моём опыте с лентами и стримером
Пять лет ещё не прошло с начала игр с ними, но скоро будет.
* Использую я LTO4, которые на 800GB или ~745GiB (то что показала бы ОС)
* Есть 1 LTO5, шедшая в комплекте со стримером, которую я для временной
записи чего-то большого, что не умещается разом на LTO4, использовал
* LTFS не пробовал, хотя видел FUSE драйвер. Пишу я простым обычным BSD
tar-ом. Он не поддерживает multi-volume архивы, когда если стример
сообщает о том что место кончилось, то он позволил бы вставить
следующую ленту и продолжить на ней. Заранее просто через split
команду создают .tar00, .tar01 архивы
* Пишу я tar-ом ещё и потому, что он блюдёт размер блока фиксированного,
что стример очень любит и работает на максимальной скорости без проблем
при этом
* Сжатие (mt comp on) не использую. Разве оно может сравнится с offline
сделанным zstd например?
* Сжимаю я всё что сжимается. Шифрую (GnuPG) всё что не стоит всем
показывать, в случае попадания лент в чужие руки. Да, это всё означает
что если файл будет бит, то я ничего из него не восстановлю. И я не
использую никаких par2. Я просто слепо верю в то, что на ленте и так,
как пишут, своей избыточности достаточно много
* По умолчанию у меня в настройках было выставлено использование Twofish
алгоритма шифрования. Для шифрования лент у меня отдельный offline
ключ, который по умолчанию тоже стал иметь это предпочтение. Он, как и
не ускоренный AES -- медленный и я всегда упираюсь в CPU. Теперь стал
использовать AES, но без OCB режима, так как лень обновлять GnuPG на
сервере к которому подключён стример. Всё же считывание данных с лент
это очень редкое действие у меня на практике, поэтому не так к спеху
* Практически все ленты пишутся в двух экземплярах, идентичных копиях.
Вторая копия относится в географически другое место
* Из всех лент, которых более 80 штук, которые почти все я купил у
одного человека, которые были списаны по причине upgrade-а их
библиотеки, только две были неисправны. Они видятся, даже немного
пишутся, но возникают ошибки. Но при этом мне две ленты он давал
просто так в подарок как постоянному оптовому покупателю
* Ни разу не было чтобы я что-то не смог прочитать с них, хотя конечно и
не проходит так много времени чтобы убедиться в действительно их
долговечной надёжности
* Но я стараюсь их хранить вне сквозняков. При перетаскивании на холоде,
помещаю в теплоизолированные сумки, не оставляя например в холодной
машине
* Даже без LTFS на них можно дозаписывать данные и прыгать по меткам
между ними. Но для этого надо вести какой-то учёт, индекс того, что
где размещено. Мне лень. Поэтому все они записываются в виде одного
tar-а одной записью
* Из-за этого нельзя с произвольного места, произвольный файл прочитать
с ней. Поэтому любое чтение это всегда tar xf /dev/esa0 -- полное
чтение всей ленты. Так проще
* Прежде я агрегировал недельные бэкапы всех своих систем на жёстких
дисках. Когда их объём становился достаточно большим, то скидывал на
очередную свободную пару лент. Сейчас забил. По сути мне ни разу не
требовались старые резервные копии. Или то что имеется в пределах
snapshot-а ZFS недельного, или то, что вообще отсутствует на диске но
выгружено отдельным файлом на ленты (типа "резервная копия какой-то
там CentOS на которой я проверял такую-то софтину, где остался
исходный код, сборочная система и я не знаю вообще нужно ли это мне
ещё когда-нибудь будет, но мало ли")
* Прежде я старался по полной забивать каждую ленту до отказа. Осталось
200 GB свободных? Ещё одну копию фотографий туда забацать! Сейчас
перестал. Во-первых это не уменьшает износ: наполовину заполненная
лента служит в два раза дольше. То есть, износ делает не загрузка
ленты, а её проматывание. Во-вторых, просто удобнее иметь более
"короткие" ленты с чётко заданными данными, чем постоянную мешанину
которую дольше считывать
* Когда-то у меня были всякие копии wikipedia (очень правда старых
срезов), но сейчас от них избавился. Или нужно иметь свежий срез, но
на него у меня нет места или нафиг. Если отключат Интернет, то
какие-то БД и сборники всякой всячины у меня конечно есть, но они не
существенно помогут. Есть срезы wikipedia в виде ZIM файлов -- просто
лучше чем ничего
* Кол-во лент для моих нужд небольших мне хватает. Для wikipedia полной
или какого-нибудь scimag -- нет. Но и покупать новые я уже как-то и не
горю желанием из-за цены. Стоимость самого стримера такова, что он
окупается только при объёмах в сотни терабайт. Даже для scimag или
wikipedia... дешевле купить современные очень ёмкие жёсткие диски и
держать в массивах регулярно делая scrub. Если не дешевле, то конечно
и удобнее. Ленты это всё же для очень больших данных (чтобы окупалось)
и для архивов
* Единственный софт для ведения базы данных этих лент это... tapes.txt
файлик под Vim-ом. Каждый параграф в нём состоит из пары строчек с
серийными номерами лент (оно наклеено на сам картридж и сбоку видно),
а дальше просто из "ls -1" вывода файлов на них содержащихся, которых
не много как правило: если мне надо записать архив со всеми моими
подкастами, то я создаю podcast-DATE.tar и его помещаю в архив на
самой ленте: tar cf /dev/*sa0 podcast-DATE.tar
* Раз в полтора года я перезаписывал многие ленты оставляя только самые
свежие и актуальные архивы, снова освобождая много из них. В этом году
решил просто перезаписывать поверх старых, учитывая что "мешанины" у
меня будет меньше. Не должно быть лент с "музыка+фильмики+фотографии",
а должно быть три со всеми этими архивами отдельно, позволяя просто
обновить только нужную коллекцию
* У меня сильные подозрения что мой опыт по ведению всего этого
хозяйства просто смехотворен и зелен. Наверняка. Но меня не сильно это
парит, ибо это just-for-fun главным образом. Ибо это всё не отменяет
что фотографии, музыка (а это две самых ценных вещи что у меня есть,
ибо моё собрание музыки хрен откуда скачаешь и добудешь) всё равно
находятся на ZFS массиве тоже
* Один жёсткий диск с ZFS не пригоден для работы с лентами. ZFS всё же
имеет кой какой но overhead и скорость последовательного чтения чуть
пониже чем максимальная что может выдать сам диск. Речь про диски не
самые свежие и современные, но всё равно 2-3-х терабайтные. Они сами
по себе могут выдать 140MiB/sec зачастую, что требуется и при записи
ленты, но чуть проседающий overhead от ZFS уже недостаточен для
"насыщения" канала стримера и он вынужден время от времени
останавливаться, чуть отматывать ленту назад, продолжать запись, что и
изнашивает её и сильно замедляет весь процесс записи. Чтение с ленты
на ZFS на один диск делается без проблем, overhead тут не мешает
* Поэтому приходится или с массива читать или с UFS2 файловой системы. У
меня есть отдельная не всегда включённая SAS корзина с 4-мя 450GiB
дисками в RAIDZ1, которую я часто и использую для работы с лентами.
Ибо держать её постоянно включённой тоже не охота для раздачи торрентов
* Скорость LTO5/LTO6 чуть повыше, но одного современного диска всё же
должно быть достаточно. А вот LTO7 уже имеет скорость в 300MiB/sec и
там без массивов не обойтись. Ну или без SSD, но я в живую SSD на 6TB
не видел, чтобы можно было бы разом записать на ленту всё что хочется
* Упоминал про LTFS, но только сейчас вспомнил что его можно
использовать только начиная с LTO5, которых у меня одна штука. Так что
можно не переживать по поводу того, что возможно с ним тьма проблем бы
в плане удобства решалась сразу
* Безумно удобна возможность отправки SIGINFO сигнала в BSD tar через
Ctrl-T, который покажет нечто типа:
In: 7 files, 356068175872 bytes; Out: 356068175872 bytes, compression 0%
Current: photoes.tar (75536662528/139850764800 bytes)
* Стример жрёт под 90W энергии. Если внутренний, то нужно реально думать
об охлаждении. У меня сейчас внешний с собственным вентилятором --
проблем нет, лента при вынимании не горячая
* Он громкий. Он буквально визжит. При этом не монотонно, а
останавливаясь каждые несколько десятков секунд, меняя направление
головки (серпантинная дорожка), далее снова разгоняясь до визга. Спать
рядом с таким не выйдет без берушей. У меня он в другой комнате, в
которую приходится закрывать дверь или две двери
* Идея с тремя разными device node-ами просто гениальна по удобству! При
прекращении чтения/записи из/в nsaX -- он оставит головку на том же
самом месте где и остановились.
tar cf /dev/nsa0 file1 ; tar cf /dev/nsa0 file2
создаст две записи на ленте. В первой будет архив с file1, во второй с
file2. mt fsf позволяет прыгнуть на следующие записи. saX перемотает в
начало ленты после закрытия файла devnode-ы. Равносильно использованию
nsaX с mt rewind после. esaX используется мною чаще всего -- оно eject
ленту после обработки. Так как прочитать с ленты и сразу же на неё
что-то записать требуется редко, то это удобно. Вынутая лента видна
визуально -- сигнал о том что процесс завершился. Плюс я часто же
оставляю писаться/читать на ночь и не хотел бы чтобы оставшиеся кучу
часов оно в раскрытом состоянии находилось внутри стримера
* Хоть лента и по последовательным скоростям сравнима с жёстким диском,
но из-за объёма весь процесс чтения/записи занимает часы! Как и с
жёстким диском конечно же. Но если на последнем, при наличии файловой
системы, мы можем один из тысяч произвольных файлов прочитать, то на
ленте (без LTFS, без индекса и файлов побитых по записям) доставание
нужного файла стоит оценивать как полное её чтение на жёсткий диск, а
дальше уже вынимание нужного с его файловой системы
* С совместимостью у стримеров, насколько понимаю, проблем нет никаких.
SAS/SCSI tape drive -- везде должен без проблем работать. Но нужен SAS
контроллер. Знаю что есть home-grade решения подключаемые по
Thunderbolt, где наверное SAS контроллер просто встроен в сам стример,
но и цена у них будет ещё выше
* Пользоваться tar-ом совершенно не обязательно! Ничто к этому не
принуждает. Я делал и zfs send запись прямо на ленту. Единственное о
чём нужно помнить -- размер блока для записи, к которому стример
чувствителен. Детали уже не помню, но вроде это 10240 байт. На других
он то ли откажется работать, то ли будет на ещё каком-то одном
работать, но в два раза меньшей скоростью. Лень искать в блоге, но об
опыте этом всём писал. То есть, просто не забывать делать не
"> /dev/esaX", а через "dd bs=XXX" соответствующий
Sergey Matveev [Wed, 2 Feb 2022 15:34:55 +0000 (18:34 +0300)]
Почему и как автор получил свой ASN
https://chown.me/blog/getting-my-own-asn
Интересно было почитать, ведь мысли о приобретении собственной AS меня
посещали не раз и читал про LIR-ы и уже тоже.
Sergey Matveev [Tue, 1 Feb 2022 19:02:31 +0000 (22:02 +0300)]
GoatCounter для Lynx пользователей
https://github.com/arp242/goatcounter/issues/560
После общения с d0f03297a63566332bd9a840b8268c0910715c75, автор того
сайта предложил GoatCounter указывать alt атрибут в tracking пикселях.
Я ничего не предлагал вообще -- это автор загорелся идеей посмотреть
как это всё выглядит в Lynx :-). И про его tracking я ни словом не
обмолвился. Авторы этого счётчика послали с предложением, ибо в 2022-ом
нет причины использовать что-то, что не уважает современные стандарты
web-а. В ответе он конечно верно заметил, что под современными
стандартами явно подразумеваются "Google + Chrome". И что вообще нет
причин не указывать описание изображения (alt в img -- помню что во
всех книжках про HTML за его отсутствие ругали сильно!).
Sergey Matveev [Mon, 31 Jan 2022 20:03:58 +0000 (23:03 +0300)]
Why I won't use Let's Encrypt
http://www.stargrave.org/WhyNotLE.html
https://lobste.rs/s/m6hkl1/why_i_won_t_use_let_s_encrypt
https://news.ycombinator.com/item?id=30141646
https://news.ycombinator.com/item?id=30145482
Вбросил я сегодня статью про то, почему я не буду использовать LE. Об
этом разрозненно писал и в блоге и в рассылках, но вопрос касательно
HTTPS на моих сайтах поднимается всюду и везде -- поэтому написал статью
чтобы просто ссылку можно было бы вкинуть. Ничего нового в ней нет.
Почитал комментарии которые люди пишут. В IRC NNCP верно заметили что у
большинства вообще создалось впечатление что я против TLS и не использую
его. Ну тут мне нечего сказать, ведь в самом начале я начинаю с того что
он у меня используется.
Другая часть обращает внимание исключительно только на моё заявление о
том что LE это NOBUS. Конечно у меня нет доказательств этого, но
репутации CA, software vendor-ов, вообще американцев и их спецслужб,
плюс того факта что всех остальных бесплатных убрали предварительно --
мне достаточно.
Некоторые упорно тычут в Certificate Transparency, мол как средство
аудита добропорядочности власть имущих. В последний раз когда я проверял
на какие CT публикуются данные некоторых крупных CA (детали уже не помню
кого именно), то все они полностью в одной юрисдикции находились. Я и
одной то third-party из этой страны не могу доверять серьёзно, а мне
предлагают ещё дополнительно нескольких других. Вбросили и что VPS
hoster-у тоже надо доверять всецело. Короче везде только "отдай это на
попечение другим". Шикарно! И это разве не NOBUS, в том числе?
Кол-во голосов (?) за комментарий о том что человека бы больше напрягали
ГОСТ-алгоритмы, нежели чем NOBUS LE, ставит всё на свои места.
Длинные разъяснения о рисках того, когда применяется CAA+DNSSEC+LE+CT,
сводятся самими же авторами к тому, что поверхность атаки уменьшается до
всяких атак на конечные реализации ПО, конечные endpoint-ы и до тех, кто
имеет доступ к ключу подписи LE. Всё верно, поверхность уменьшена, но за
счёт участника из США в вопросах безопасности? Это не может быть
вариантом. Лично для меня по очевидным причинам, но для граждан США
наверное нет, они же искренне верят что террор который они устраивают в
куче стран по всей Земле -- на благо остальных. В комментариях даже явно
пишут, что даже если LE это вообще проект АНБ, то это всё равно лучше
для безопасности. Умалчивают чьей.
Есть предложения использовать другие бесплатные CA, которые тоже с ACME
протоколом. Посмотрел на них. Все (потому что ЕС, НАТО?) аналогично
упоминают подсанкционные страны и районы и возможные последствия
взаимодействия с ними. Ибо я должен "дружить" with nobody, but us, ага.
Sergey Matveev [Mon, 31 Jan 2022 08:38:51 +0000 (11:38 +0300)]
Жёлтая собачка Фаворского
https://masterkrasok.ru/posts/kak-sobachka-mozhet-pomoch-v-prodazhe-kartin
Из серии вредных советов:
Выполнив очередной заказ, Фаворский непременно пририсовывал в
уголке… маленькую желтую собачку. Такую яркую и нахальную, что не
обратить на нее внимание было невозможно. Когда клиент получал
работу, он непременно начинал требовать собачку убрать, ведь она
портит весь вид. Ну представьте, право: на холсте возвышенный
портрет вашей благопристойной тети в голубоватых тонах, и вдруг
сбоку какая-то нелепая канареечная собачка выскакивает прямо вам в
лицо – ужасно ведь раздражает! (Правда, Фаворский теть не рисовал,
но это уже другая история).
Художник на требование заказчика начинал протестовать, убеждая его,
что собачка – это ценнейший элемент, можно сказать, основа
композиции, и картина без собачки станет намного хуже.
Обескураженный клиент настаивал, Фаворский нажимал, но в итоге
неизменно сдавался и закрашивал несчастное животное, а заказчик
облегченно отирал пот со лба.
Напряженная борьба с собачками клиентов Фаворского так выматывала,
что сил замечать другие недостатки у них уже не оставалось, работа
после исправления казалась безупречной, и, размякнув, заказ они
принимали безо всяких возражений.
Sergey Matveev [Sat, 29 Jan 2022 17:48:16 +0000 (20:48 +0300)]
Linus Tech Tips потерял все свои данные. Снова
https://www.youtube.com/watch?v=Npu7jkJk5nM
https://www.youtube.com/watch?v=gSrnXgAmK8k
Не смотря на то, что у них ZFS, RAIDZ2 и всё такое, они потеряли массивы.
И всё из-за людей, из-за того что не делают scrub и всё такое прочее. Они
это всё прекрасно понимаю конечно же. Но то они, а то куча других людей,
которые и с UFS2 умудряются терять всё на свете и не делать резервные
копии (LTT понимает что всё же у них не супер-пупер mission critical
данные и как бы YouTube тоже является некой их резервной копией) и с чем
угодно другим, виня при этом технические инструменты, а не собственную
криворукость.
Sergey Matveev [Sat, 29 Jan 2022 17:03:16 +0000 (20:03 +0300)]
Ужасы, интриги, иски и цензура компьютерных игр
https://www.youtube.com/watch?v=__X0ehi5uGg
https://www.youtube.com/watch?v=iHvXBNWz4IM
https://www.youtube.com/watch?v=jlZMB0KS0DM
Вроде не слышал прежде, но не один раз были случаи когда на диске с
релизом игры находились вирусы. Были баги, когда при удалении игры
(uninstall) она грохала много чего лишнего, в том числе системные файлы.
И отдельная тема подскаста old-games.ru это про цензуру игр в странах.
Где-то всякие свастики меняют просто на кресты -- перерисовывают
текстуры. Если где-то была зигующая статуя, то в версии с цензурой она
стоит с согнутой рукой. В некоторых странах всякую кровь меняют на
зелёную и меняют людей на зомби. А в других странах меняют на роботов.
Прям два основных шаблона для цензуры.
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 есть даже отдельные страницы на эту (вечную) тему. В блоге
уже не раз затрагивал эту тему, ибо она реально нервирует кучу женщин :-)
Но а я носил, ношу и буду носить, ибо с натираниями ноги я мириться не
готов. Удобство превыше всего. Хотя в целом я уже наверное года два их
ни разу не надевал. Брюс Уиллис, пишут, ярый приверженец такого ношения,
а я чем хуже?