Sergey Matveev [Tue, 11 Oct 2022 20:14:11 +0000 (23:14 +0300)]
Оценка эффективности работы программиста по кол-ву строк кода
https://www.tuhs.org/mailman3/hyperkitty/list/tuhs@tuhs.org/thread/CCLCN66K5BOXNH72WK5RRI6EEY7MABC4/
Рассказывают истории про то, как 130k строк было убрано из FreeBSD,
убирая поддержку MIPS. И про то, как надо было профиксить многочисленные
баги или отозвать их в 500k строк на ассемблере. Парень просто переписал
это всё в в 20k в новом компиляторе (-480k!), просто автоматом исправив
кучу ошибок.
Sergey Matveev [Sun, 9 Oct 2022 11:49:09 +0000 (14:49 +0300)]
Неужто так сложно передать зашифрованный файл? Эволюция формата пакетов NNCP
https://habr.com/ru/post/692254/
Довольно давно у меня лежал черновик статьи про описание эволюции
формата пакетов NNCP. Выложил. Довольно краткая получилась, ибо
если вдаваться в детали и описания необходимости каждого поля, то
многовато получается.
Sergey Matveev [Fri, 7 Oct 2022 17:41:02 +0000 (20:41 +0300)]
Статья про zmv
https://filipe.kiss.ink/zmv-zsh-rename/
zmv я использую довольно регулярно. Не уверен что это можно назвать
killer-feature zsh, ведь её можно было бы написать и вне него, но она
очень здорово его дополняет.
Не могу я, конечно же, без критики статьи. Автор пишет что zmv вон
насколько укорачивает переименование по сравнению с циклом:
zmv -n -W '**/*.js' '**/*.ts' # 29 chars
for file in **/*.js; do mv $file ${file/.js/.ts}; done; # 56 chars
Не соглашусь с ним, так как цикл можно написать ещё короче:
for i (**.js) mv $i $i:r.ts
Но в любом случае -n опция zmv очень удобна остаётся, так как в цикле
придётся писать test-условие чтобы проверить не перезаписали ли мы файл
какой лишний.
Sergey Matveev [Fri, 7 Oct 2022 10:12:34 +0000 (13:12 +0300)]
Телефонный спам
https://habr.com/ru/post/691990/
Я регулярно, примерно раз в два года, меняю себе номер сотового
телефона. Так как всё равно каким-нибудь курьерам из магазинов оставлял
(даже мне не всегда удобно куда-то переться в другой конец Москвы).
Когда у меня остался только Сбербанк, то ему номер телефона не сообщал:
пропал весь спам связанный с предложениями об играх на бирже, оформления
кредитов и прочего дерьма.
Почти всю жизнь использовал Мегафон. Изначально это был мой первый
доступ в Интернет, через GPRS 10-го класса с Motorola C350L, который
работал так хорошо в режиме модема, что мог перегреваться. Но позже
рекламы от Мегафона стало просто уйма. Разбирался с ними голосом, но они
только заверяют что всё отключили (спам от них), но ни на йоту ничего не
поменялось. Перешёл на Билайн.
И текущий мой номер у меня уже более чем два года живёт. Спама
существенно меньше стало. Но в этом году, за последние месяцы, чуть ли
не каждый день обязательно но спам-звонок будет. Хотя я за эти года уйму
кому отказывал предоставлять свой номер телефона. Речь про всякие
Мособлеирцы, Мои документы и подобные. Сейчас вот жду когда счёт
приблизиться к нулю и буду снова менять.
За последние недели я уже начал применять тактику много кем
исповедуемую: не отвечать на незнакомые номера. SMS-спам, кроме как от
сотового оператора, я почти не встречал. Человек, будь не дурак, напишет
SMS. Каждый номер, на который не отвечаю, я сразу записываю с именем
"spam-maybe", так как если перезвонит с него ещё раз, то высока
вероятность что это уже действительно какой-то человек (спаммеры тоже
ими бывают, но разве их можно назвать порядочными людьми?). Так мне
казалось. Но ни разу с maybe номера не было повторного звонка.
Телефоны сами по себе меня очень бесят. Как принцип связи: это прям
прерывание жёсткое -- мол, бросай всё, отвлекайся от всего, поднимай
трубку. Благо что по работе им вообще не приходится пользоваться. За 7+
лет работы мне наверное позвонили по делу ровно один раз. Знакомый
опытный программист, во времена когда не было сотовых -- отключал
домашний телефон когда работал.
Бесит больше всего то, что ведь сотовые операторы, насколько слышал,
прекрасно знают что звонит спамер. Ведь у них же даже услуги платные
есть по тому, чтобы они не пропускали спам-звонки. То есть, возможность
имеется, но делать просто так они не будут.
В общем, думаю что с новым номером, который сообщу только родственникам
и друзьям, отделу кадров с работы, плюс адвокату (с которым уже сколько
лет я знаюсь, по сути ровно по одному единственному делу с ленточным
накопителем). Честно говоря уже не помню где я оставлял свой номер
телефона из магазинов или других заведений, где я не отказывал в этом.
Но теперь ещё и полностью перестану отвечать на любые незнакомые номера,
что я по сей год ещё продолжал делать. Может быть оставлю текущий номер
для магазинов с курьерами только, просто зная что если я что-то заказал,
то в этот день можно будет брать трубку с незнакомого номера, а дальше
игнорировать.
Sergey Matveev [Thu, 6 Oct 2022 17:13:22 +0000 (20:13 +0300)]
CV-сертификаты
https://habr.com/ru/post/691812/
Вот этот формат сертификатов, да и экосистема в целом -- единственное
что не вызывало бурного отвращения, как это делает всё что касается X.509.
Очень приятный минималистичный формат. PyDERASN по сути может парсить и
создавать CV-объекты без каких-либо правок в библиотеку. CV можно
считать небольшим subset-ом ASN.1 DER.
https://www.youtube.com/watch?v=wIC-iGDTU40
Клёвый рассказ об особенностях нашего зрения и ламп уличного освещения.
И мне теперь понятно какого чёрта так плохо видно во время сумерек. Не
ночью, а именно во время сумерек -- время когда я *ощутимо* хуже вообще
всё вижу и различаю. Когда за рулём автомобиля, то появляется желание
просто встать и дождаться нормальной темноты. И, действительно, когда
стали "тёплые" натриевые лампы на дорогах заменять на холодные LED-ы,
то это значительно лучше увеличивает видимость ночью.
Sergey Matveev [Mon, 3 Oct 2022 17:45:21 +0000 (20:45 +0300)]
LTT о Technology Connections
https://www.youtube.com/watch?v=foLPX4YTwHk
https://www.youtube.com/channel/UCy0tKL1T7wFoYcxCe0xjN6Q
В выпуске Linus Tech Tips упоминается Technology Connections канал.
Линус говорит что обожает его. Это всего два канала на которые я
подписан в YouTube (на их RSS). Да и то, LTT я посматриваю наверное
только как некое технопорно, где показывают всякие сервера временами.
Sergey Matveev [Mon, 3 Oct 2022 08:44:19 +0000 (11:44 +0300)]
Вышел Linux 6.0
https://habr.com/ru/news/t/691182/
Почему не 5.20? Потому что у Торвальдса закончились пальцы рук и ног.
Потому что он, как программист, начинает счёт с нуля.
Sergey Matveev [Sun, 2 Oct 2022 14:12:29 +0000 (17:12 +0300)]
Debian решил поставлять проприетарные прошивки по умолчанию
https://www.opennet.ru/opennews/art.shtml?num=57859
А у меня и не было сомнений что они такое решение и примут, раз перешли
же на systemd. Столлман то давно их не котировал из-за non-free репозитория.
Но его содержимое всё же было просто где-то там в стороне, просто ссылка
на него присутствовала. А тут прям на установочном диске сразу будет
проприетарщина.
Sergey Matveev [Sun, 2 Oct 2022 09:44:37 +0000 (12:44 +0300)]
USB меняет обозначения поддерживаемых протоколов
https://www.theverge.com/2022/9/30/23378231/usb-rebranding-2022-logos-gbps-wattage-charging-transfer-speeds-simplification-usb4-superspeed
Не исследовал решает ли эту проблему понимания что может передавать
"кабель"/устройство, но с ходу нравится это изменение. Всегда невероятно
бесили все эти "super" speed, "high", "super+", да и просто минорные
циферки рядом с USB. USB "1" -- медленно. "2" -- достаточно для флешек и
периферии. "3" уже достаточно для внешних жёстких дисков. А дальше
начинаются "3.1", "3.2". Я прям принципиально не старался запоминать все
эти обозначения и что именно умеет "3.2" какой-нибудь. Задолбали. Тут
хоть как-то более человечно стало. Хотя всё равно это не отменяет
неизвестности о поддержке alternate mode, плюс USB-C может же и
Thunderbolt с PCIe нести.
Sergey Matveev [Sun, 2 Oct 2022 09:32:29 +0000 (12:32 +0300)]
Бобины катушечных магнитофонов
https://habr.com/ru/company/timeweb/blog/681458/
Вот кстати никогда в жизни нигде и ни у кого не держал в руках бобину и
не слышал подобного магнитофона. Только видел стоячим на столах. У нас
был только на компакт кассетах, на которых, в том числе, и игры для
Спектрума хранились. Ящик с сотнями кассет, кстати, до сих пор у
родителей имеется.
Количество проектов на Си на работе плодится. И в них я использую redo
вместо Make и autoconf. Вообще конечно абсолютно некорректно сравнивать
redo и autoconf, ибо у них по сути не пересекающиеся задачи, но autoconf
это же ведь множество задач/целей, результат выполнения которых
используется, по сути, как зависимость для команд сборки. И кучу всяких
детектов как-раз можно описывать в виде redo целей. Но об этом уже писал
в 401c0f635a1cdfb01068a48a4cdf40791d3db458. Если в autoconf нужно знать
как этот сам framework, так ещё и основы M4, то в redo ничего не нужно
дополнительно: что хочешь, то и используй. Нужно Си программу
проверяющую работоспособность чего то? Делаешь цель, которая может
зависеть от уже имеющихся детектов флагов, компиляторов, других команд,
которая соберёт что нужно. Распараллеливание всех этих детектов из
коробки (ведь известно, что ./configure может выполняться существенно
дольше чем вообще вся сборка программы после него).
Сегодня понял про другой плюс: redo-log команда может показать вывод
связанный только и только с заданной целью. Если ./configure падает, то
это очень не тривиально найти место даже самого последнего падения в
config.log, ибо в конце там вывод далеко не последнего детекта.
Пока просматривал свою старую запись про замену autoconf, то удивился
что ещё проще у меня многое стало. Я полностью избавился от redo-stamp.
Я приводил пример с conf/cmd/cc.do целью, где основное содержание было:
который применим к любой команде (это default цель), которую и через или
переменные окружения или config-файл в корне можно переопределить.
В моём прошлом примере было упоминание pkg-config-based цели. Но на
практике регулярно pkg-config нужен не только для определения одной
библиотеки и все эти цели идентичны и похожи, поэтому вместо
conf/flags/libcrypto.do:
Если мне нужно получить флаги для сборки whatever библиотеки, то
достаточно выполнить redo conf/flags/whatever.pc.rc. whatever станет
вторым аргументом при выполнении этого скрипта, и будет подставлятся по
все эти команды, создавая .rc-файл, который если за-source-ить, то на
руках получим WHATEVER_CFLAGS, WHATEVER_LDFLAGS, и т.д..
Подобные цели я таскаю из проекта в проект без изменений: они just
works. Как в autoconf есть свои библиотеки детектов, так и здесь
подобные цели аналогичную функцию выполняют.
Но зная о default цели, мы же не знаем какие именно команды
предполагается вызывать в проекте? Раньше я делал что-то-там.list файлы
со списком возможных сгенерированных команд. Вот только их приходилось
дублировать в .gitignore файле. Теперь я подобные списки храню в
.gitignore полностью, ведь чем он хуже остальных файлов? А clean.do цель
в директории может подчистить файлы просто делая:
rm -f `sed "s#/##" < .gitignore`
./configure может выдать полный список опций/флагов который пользователь
может задать и переопределить. Если цели для определения команд и флагов
написаны аккуратно, то это и в redo-based проектах выполняется очень
просто, например в conf/vars.list.do:
где факт компилирования с features.h вполне годится. А в других целях я
из этого файла возьму опциональные флаги нужные для ОС с glibc.
Аналогично я делаю Си программы которые уже что-то выводят (xxx.rc.do):
age -- только про (аутентифицированное) шифрование
https://words.filippo.io/dispatches/age-authentication/
Когда смотрел на age (4674ad351dcb1f018d2392bc03fb0692e101e229), то
как-то не обратил внимание на то, что age занимается только шифрованием
указанному получателю, явно не аутентифицируя отправителя. Можно бы было
поверх этого использовать signify какой-нибудь, но тогда не выйдет это
потоково сразу же параллельно обработать. Плюс, как верно заметил автор,
подпись можно отрезать, или наоборот перешифровать на другом ключе
подписанное сообщение. Делать формат, который бы связывал отправителя и
получателя -- вот мы почти и переизобретём OpenPGP. age штука не плохая,
но даже такую задачу как отправку бы зашифрованного и подписанного письма
он не может выполнить в одиночку.
https://www.amazon.com/transparent-bag/s?k=transparent+bag
https://beautymag.com/best-transparent-bags/
Сегодня на остановке увидел девушку с полностью прозрачной сумкой. Не
пакетом, а именно сумкой с ручками. И там было что-то крупно написано
про "privacy", но я так и не смог разглядеть надпись полностью. Если
человек рядом открывает сумку/рюкзак/кошелёк, то я рефлекторно
отворачиваюсь, ибо это смущает (ведь всё же приватное пространство и
действие). А тут прям всё содержимое открыто взору. Привлекает ли это
внимание? Безусловно, как и выглядывающие трусики из под юбки. И с тем и
с другим не понятно как девушка не стесняется.
А ещё не понимаю людей, которые со своими рабочими пропусками, висящими
на шее, ездят в общественном транспорте, всем светя кто он, что он, где
работает. Я понимаю с работы вышел в ближайшее кафе, но ведь они явно из
дома едут продолжительное время с ними. Не понимаю я этого эксгибиционизма.
На днях Сбербанк переехал на CA от Минцифры. И единственный официальный
источник знания об этом сертификате CA есть на сайте Госуслуг "/tls".
Ни один броузер, даже Firefox с включённым JavaScript-ом у меня это не
открывает. В комментариях пишут, что даже и после установки их
сертификата, Сбербанк всё равно в Firefox не откроется. Говорят что по
сути нужно только с Яндекс Броузером его использовать. Сегодня вот
опубликованы документы Минцифры с перечнем специальностей которые не
призывают: тоже их сайт и даже прямая ссылка на PDF нигде у меня не
отдаётся, forbidden-ом мне в рожу тычут. Хотел из любопытства посмотреть
являюсь ли я ценным по специальности, которая у меня никоим образом с ИТ
вообще не связана. Вот, казалось бы, столько всего в правильном
направлении в нашей стране делают, но обязательно что-то да через полную
жопу, никак иначе. И я ведь уверен что всё из-за сисадминов, которые
могут и ICMP пакеты перекрыть, ибо так же безопаснее наверняка.
https://habr.com/ru/post/689636/
Вижу "блокчейн" -- можно сразу закрывать статью. Ни слова про
анонимность людей, про анонимное/тайное голосование. Ни слова
при их приватность. Спасибо, но предпочту оставаться в текущем
мире.
Закрывая страницу со статьёй, внезапно увидел что есть речь про
"шифрование" голосов. То есть, всё же про хоть какую-то тайну.
Но... грамотность терминов и поставленных задач заставляют делать
facepalm. В комментариях и про ЭЦП грамотно отчитали.
https://habr.com/ru/company/timeweb/blog/689804/
Все комментарии, на момент написания, о том, что это первый язык
программирования у людей. У меня тоже. Когда писал dmon.pl
(569cee2631ad9139e0f4d48d28f9ca9553a1f0b5), то всё же массу удовольствия
от писанины на нём получаю до сих пор.
Еще в студенческие годы Ларри Уолл женился, и у них с супругой
появилась одна мечта на двоих: найти где-нибудь на просторах Африки
бесписьменный язык, и создать для него систему письма, над которой
он тогда трудился.
и вот он создал Perl для этого.
Pathologically Eclectic Rubbish Lister. Хотя, как говорит Уолл, название
не было акронимом, а является, действительно, "жемчужиной" и отсылкой к
библии.
Символом созданного им языка Уолл сделал верблюда -- удивительное
животное, которое в отличие от программистов на Perl может не пить
до 30 дней отличается силой и необычайной выносливостью.
(вроде бы, но поверю) Работающая программа на Perl 3:
BEFOREHAND: close door, each window & exit; wait until time.
open spellbook, study, read (scan, select, tell us);
write it, print the hex while each watches,
reverse its length, write again;
kill spiders, pop them, chop, split, kill them.
unlink arms, shift, wait & listen (listening, wait),
sort the flock (then, warn the "goats" & kill the "sheep");
kill them, dump qualms, shift moralities,
values aside, each one;
die sheep! die to reverse the system
you accept (reject, respect);
next step,
kill the next sacrifice, each sacrifice,
wait, redo ritual until "all the spirits are pleased";
do it ("as they say").
do it(*everyone***must***participate***in***forbidden**s*e*x*).
return last victim; package body;
exit crypt (time, times & "half a time") & close it,
select (quickly) & warn your next victim;
AFTERWORDS: tell nobody.
wait, wait until time;
wait until next year, next decade;
sleep, sleep, die yourself,
die at last
http://lists.busybox.net/pipermail/busybox/2022-September/089860.html
http://lists.busybox.net/pipermail/busybox/2022-September/089861.html
Высказанное в рассылке BusyBox. Не сдержался человек. Но в целом всё
понимает куда лучше многих россиян.
Снова у друга попарился в баньке. Какая же это всё же клёвая штука!
Как хорошо после 110 градусов, ~100% влажности, когда уже нечем дышать,
когда тебя отхлестали веником, выйти на улицу под дождь. А когда уже
дрожишь от холода, то снова хорошо назад в парилку.
А ещё поиграл на PlayStation 4. У меня игровых приставок никогда не
было. Знаком с ними был только в гостях у одноклассников. И мне кажется,
что последняя приставка в которую я играл, была PlayStation 1. Ни с чем
более новым никогда не сталкивался более. И ещё вроде бы я первый раз в
жизни в руках держал BluRay диск.
https://www.openbsd.org/images/rack.jpg
https://www.openbsd.org/images/rack2009.jpg
https://www.openbsd.org/images/newrack.jpg
https://marc.info/?l=openbsd-misc&m=139024400731106
Недавно (f84cd7894bd51b0702488a395b0deda547abc857) шла речь про стойки в
домашних условиях. А тут стойки для сборки всего что касается OpenBSD.
А также ведь была история о том, что они могли их вообще прикрыть из-за
нехватки средств на оплату электричества. Выглядит почти возбуждающе!
Когда всё такое гетерогенное, совершенно разных архитектур, а не просто
стойка набитая сплошными ровными однотипными серверами одного бренда.
https://www.realrocks.ru/izmoroz/music/1146971/
https://www.youtube.com/watch?v=tAzqzXup3uI
На концерте Ashen Light (e4a09572c117d8bc3c9f00a71cdd750f339a35a1)
прикупил альбомов Изморози. В целом не моя музыка конечно, но вот на
одном их трэке есть женский вокал, который меня просто безумно зацепил!
Я наверное раз пять подряд его проиграл от начала до конца. А суммарно
уже минимум с полсотни раз его проиграл. Не знаю что в её голосе или
манере исполнения такого, но тащусь. Причём на живом выступлении
вокалистка уже с более оперным (не знаю как это корректно называется)
пением: ничего против не могу сказать, но и не цепляет вовсе.
У меня, как правило, женский вокал или очень цепляет и я только им и
наслаждаюсь (плевать на музыку)
(f9d5ae66c2a5300c83811b746aaab5c48b2c908e -- причём тут то понятно что
банально исключительно просто частота/тембр может нравится, 766b14156e4157c79d546f167ac4fbaf3b6fa51d) или же мне просто на него
пофиг. На прошлых выходных в новостях увидел упоминание Юлии Савичевой.
Помню такое имя, помню что певица молодая попсовая какая-то. Нашёл на
YouTube чтобы просто вспомнить что это, вдруг у меня вкус вообще к
женскому вокалу поменялся? Не, вообще никак: для меня таких десятки
тысячи ничем не примечательных и не отличимых.
Как бы выглядели Фредди Меркури, Курт Кобейн, Джимми Хендрикс, будь живы?
http://www.hitkiller.com/esli-b-vse-byli-zhivy-kak-by-segodnya-vyglyadeli-kurt-kobejn-i-freddi-merkyuri.html
Честно говоря, Кобейна я не узнал. А Меркури и Хендрикс превосходны!
Начался сабж в стране. Так что в любой момент могу пропасть из сети. Для
кого-то это всё вызывает удивление или какой-то ужас. Не понимаю я этого,
ибо уже более восьми лет как НАТО планомерно готовилось к войне с нами,
натаскивало крупнейшую армию в Европе нацисткого государства к этому,
обучая и поставляя вооружение, взращивая поколения нациков. Не понимаю я
также тех, кто считает это ложью о том, что на Украине их мол нет. Да
все знакомые кто там родились, у кого там родственники -- все это
признают и подтверждают. Нацики то есть и у нас, но они не героизируются
и вне закона. Можно ли у нас представить ежегодные факельные шествия в
память о фашистах и коллаборационистах? А на Украине слуга США открыто
поддерживает людей, у которых всюду эмблемы СС и свастика. Вассерман
правильно сказал: нельзя договориться с теми, кто восторгается Бандерой.
Что мы видим после, более чем полугодовалой, СВО? Независимые от США
(достойные самостоятельностью) страны открыто и полностью поддерживают
РФ. Явно не поддерживает только небольшая доля населения Земли.
Остальные подтверждают (очевидное) право РФ на самооборону. Даже недруг,
но сильный и умный политик, Эрдоган. Поддержка нациков есть только со
стороны стран Запада, по сути подконтрольных полностью США, давно
известная своим мировым террором и подобной тактикой ведения войн.
К украинцам у меня вроде бы нет неприязни, хотя и прискорбно, что они
нормально могут смотреть на то, как их власти пытались устроить геноцид
крымчан, перекрыв им пресную воду (факт (я ж в Крыму каждые два года всё
же бываю), который фиг можно найти в зарубежных СМИ), как терроризируют
несогласных с нацистским режимом, как живут рядом с теми, кто неприкрыто
восторгается фашистами. Украине мы почти за бесценок десятилетия
(насколько помню) поставляли газ, что можно считать как нехилым
вливанием денежных средств. За Севастополь, что-то типа под 200M$,
платили ежегодно. И при этом они приглашают строить базы НАТО на своей
территории, прекрасно осознавая что РФ будет обороняться. Хотя террор
штука эффективная: вся история человечества показывают что при нём можно
жить долго, ничего не предпринимая (я никого не трогаю -- меня никто не
трогает). А США умеет устраивать террор, особенно чужими руками и
промытыми мозгами (e04b9f15fa11b60e6e434e589fba6af2d5cf9489). Вот ДНР и
ЛНР, где по сути русские (но граждане Украины (скоро уже нет)), выбрали
путь борьбы против такой гнусной марионеточной власти, разрешающей даже
геноцид. Честь им и хвала!
Какого-то сильного переживания касательно того, что заберут на войну у
меня нет. А тут разве может быть выбор? И почему у меня должны быть хоть
какие-либо сомнения в этом правом деле? Я не обязан защищать свою
Родину? Не должен отдавать долг, как минимум, за достойную и беззаботную
жизнь прошедшую? Не должен быть частью общества и совместно
предпринимать усилия чтобы у нас *было* будущее? Есть люди идущие на
путь предательства и коллаборационизма (собственно, например работая на
страны НАТО), но, благо, родители смогли меня вырастить без подобных
зёрен нечисти. С детства я прекрасно знал, что Запад это не друзья: с
ними можно работать вместе, много чего вместе делать, но при любой
возможности они не прочь будут если и не убить тебя, как представителя
непокорного государства, то, как минимум, изгадить твою жизнь, лишь бы
тебе было хуже чем им. Факт даже подачи заявки на членство в НАТО, со
школы знаю, означает буквально "мы хотим сделать что угодно, лишь бы
навредить (СССР прежде) РФ, сделать их покорными рабами". И я не понимал
ИТшников, соглашающихся работать на них, ведь преобладающая их часть
ценна не своими весомыми познаниями и умениями, а просто тем, что они
более дешёвая рабочая сила, гастарбайтеры обычные. Где самоуважение?
Бывают безусловно исключения: есть уникумы и монстры своего дела,
которым плевать на всё, ибо жизнь у них всецело посвящена только и
только своему делу, которое отлично выходит.
Прекрасно понимаю что толку от меня на фронте будет как от козла молока.
Хотя я в целом меньше остальных всегда болел, на здоровье не жаловался,
но без очков я пистолет от автомата то не отличу. Да никакого опыта,
ведь и на военную кафедру не ходил. И кроме прав на вождение легкового
автомобиля, имеющиеся у многих, не имею никаких полезных для навыков.
Ведь даже "оператор ЭВМ" предполагает умение пользования Word и Excel,
которые я трогал лет двадцать назад. "На гражданке" так и не смог стать
кем-то, кому можно бы было довериться и создать семью. Специалист я
посредственный, коих при желании можно сделать миллионы. Понимаю, что
при отправке я навряд ли уже вернусь, но хотя бы совесть чиста, что
участвовал в попытке хоть как-то помочь своей стране (и русским в других
республиках) в защите и изгнании нечисти, не оставаясь всё это время
бесполезным нахлебником.
К нахлебникам то я отношу и армии бухгалтеров с юристами, которые можно
бы было сократить в разы или порядки. Если бы человек изучил Visual
Basic с макросами для своего Word/Excel, то штат сотрудников уже
сократился бы в разы. Страна достаточно богата и лояльна к подобным
людям с низким КПД, может их содержать, но это всё равно не правильно и
так быть не должно.
http://www.svpvril.com/Jokes/New%20Element%20Discovered,%20Bureaucratium.html
Новый элемент с отрицательным периодом полураспада: со временем он
становится тяжелее.
A new ultra-heavy element was recently accidently synthesized by
political scientists. The new element, now known officially as
Bureaucratium, is electrically neutral, having neither protons nor
electrons, and thus has an atomic number of zero. However, it does
have:
It thus has an atomic mass of -312. The 312 mostly empty particles
are held together by a strong, cohesive bonding force which involves
the continuous exchange of clingon-like elementary particles called
brownoseons.
Since it is electrically neutral, Bureacratium is chemically inert.
However, it can be detected indirectly by its ability to impede
nearly every action with which it comes in contact. In fact it was
precisely this characteristic (and its unexpected appearance) which
led the research team to its serendipitous discovery, when it found
that a certain reaction which is normally exothermic and occurs in
under one millisecond was observed to be endothermic, with an energy
input 3500 times greater than normal, and took four days to
complete.
Bureacratium is a man-made element and does not occur naturally. It
apparently is formed as a by-product of necrotic organizational
processes. It is found in greatest abundance in government agencies,
large corporations, large non-profit organizations and academia. In
extremely minute amounts it may actually serve a useful purpose in
normal reactions by catalyzing the full release and exchange of
energy among the reactive particles. However, in the typical growth
process, Bureacratium seems to self-replicate at an alarming rate,
eventually repelling, although occasionally absorbing, reactive
particles. If left unchecked Bureaucratium will experience runaway
growth and literally feed upon itself and absorb nearby organisms.
Unlike both naturally occurring and man-made radioactive substances
which decay continuously due to their nuclear instability,
Bureaucratium, although also unstable, undergoes self-replication
with a normal doubling time of about nine years. This replication
appears to occur as a discrete process rather than continuously, and
is associated with periodic reorganizations which occur at
more-or-less regular time intervals of approximately three years. At
these times, vice bossions, assistant vice-bossions, and associate
assistant vice-bossions exchange places, and roughly 1/6 of them
generate additional Half-Secretarium particles, which soon quietly
and mysteriously mutate to become Full-Secretarium particles.
Bureaucratium undergoes spontaneous chain reactions once it attains
critical mass, at which point it is no longer controllable and
consumes its host system along with itself. However, unlike nuclear
fission and fusion reactions which are exothermic and release vast
amounts of energy at criticality, Bureaucratium induces an
endothermic process of fractionation and energy diffusion in which
the system spins about itself in ever diminishing circles as it
implodes, consuming vast amounts of energy. At this point, all
productive reactions among non-Bureaucratium particles, as well as
replication and mutation of Bureaucratium itself, cease as the
system slowly disintegrates. Indeed, it has been found that
Bureaucratium apparently cannot exist alone, having been found only
in the presence of active particles from which it absorbs energy not
unlike a parasite.
Research is currently underway to determine how Bureaucratium can be
harnessed or controlled to prevent irreversible damage to productive
host systems.
https://dmitrysnotes.ru/sobstvennyj-vpn-server-za-10-minut
Автор говорит что IPsec лучше чем всё остальное, потому что "IPSec и
IKEv2" поддерживаются всеми ОС и не требуют дополнительного ПО. Я вот не
встречал GNU/Linux дистрибутивов чтобы в них из коробки был хоть
какой-то IKE. С ходу я знаю только OpenBSD, где это, действительно, из
коробки есть. Возможно что-то и поменялось сейчас, но в FreeBSD точно
нету и вроде бы нет планов на это. Кстати, корректное написание это
"IPsec", никак иначе. Более того, как-раз таки WireGuard в FreeBSD
(последних версий) и OpenBSD есть в ядре из коробки. Именно он, выходит,
из коробки единственный кто не потребует ничего дополнительно ставить.
Наверняка и в GNU/Linux-ах каких-нибудь он тоже из коробки будет идти.
И при том, что я очень люблю IPsec экосистему, но в IPv4 мире
использовать бы не порекомендовал, если нормальной прямой связанности
между IP (нет NAT-а). Это вообще не факт что будет всё работать. Сделать
VPN доступный до дома с работы (где я за NAT-ом) -- я не смог. И
возможно я что-то не то настроил в firewall, возможно что-то ещё -- но
даже банально я не могу ответить на вопрос как мне поднять то IP-in-IP
туннель, чтобы при этом его пакеты IPsec-ом защищались. Тогда я плюнул
на это дело и сейчас не хочу возвращаться. В IPv4 мире, с его NAT-ами:
мой выбор это однозначно WireGuard.
https://docs.freebsd.org/en/books/handbook/network-servers/
Есть тут большой образ виртуальной машины, который на моих NVMe не
умещается. Подключал внешний жёсткий диск по USB. И так делал не один
месяц. Почему до меня не дошло то, что раз у меня есть ZFS массивы, на
которых достаточно места, то с них можно прокинуть блочное устройство по
iSCSI? С iSCSI работал на GNU/Linux прежде. Но на FreeBSD, где и target
и initiator реализации есть из коробки в системе, это делается прямо по
примерам из man или handbook. Just works, приятно. Хотя конечно и
медленнее и из-за пропускной способности и из-за задержек, но мне не
критично.
http://www.hitkiller.com/tristania-vse.html
https://ru.wikipedia.org/wiki/Tristania
Группа объявила официально о распаде. В общем то это было ожидаемо
конечно, ибо никакой активности уже давно. Их альбомы всегда были в моих
playlist-ах! Особенно мне нравился их период с вокалисткой Vibeke Stene
(e832d12d8e39d42ed3cc17a321f105dd47d908b3)
https://collinmbarrett.com/block-web-fonts/
Сама идея возможности использования подгружаемых шрифтов мне с самого
начала казалась безумной. И трафик нехилый, и вопрос безопасности (всё
же движки для шрифтов, насколько помню, являются полными по Тьюрингу), и
вопрос приватности (когда качаем шрифты с CDN, то сливаем факт посещения).
WebKit движок, используемом в моём Xombrero GUI броузере, я менял чтобы
он не скачивал все эти шрифты. В tofuproxy я тоже приделал запрет на них.
Всё равно сайты, без регулярного обновления броузеров каждые полгода,
выглядят ужасно, так что неподгрузившиеся шрифты погоды не меняют.
https://www.linuxjournal.com/content/best-command-line-only-video-games
Бесит когда люди мешают понятия "командной строки" и терминала/консоли.
В статье нет ни одной CLI/shell игры, разве что Frotz (запускался
interactive fiction игрушек), но даже он полноэкранные вещи умеет делать.
https://www.opennet.ru/opennews/art.shtml?num=57771
Вспомнил я тут про OpenNet и что не мешало бы на нём публиковать новости
о своих релизах. Комментарии к своим статьям я давно уже не читаю, но
тут зашёл на страницу с ними. И вот почему не стоит читать комментарии в
Интернетах этих? Да потому что соотношение сигнал/шум к чему-то
полезному или шуму там крайне низкое почти во всех ИТ статьях.
Часть людей дальше заголовка явно ничего не пытается прочитать. И в
комментариях задают вопросы которые в документации явно отвечены. И речь
не про мой NNCP, а вообще про любое ПО. Блин, ведь время потраченное на
написание вопроса зачастую будет сравнимо с переходом по ссылке на
документацию и быструю навигацию по меню/TOC с нахождением ответа.
Конкретно в комментариях про NNCP: кто-то упорно пишет про scp, мол
вместо NNCP. Как-будто человек увидел что это что-то про передачу файлов
и на этом всё: scp же умеет передавать файлы, вот и заладил с ним.
Кто-то вообще задаётся вопросом "зачем шифровать, если передача между
F2F?". Ответ краток и полностью ёмок (дан кем-то): MitM. Очевидно. Но
оказывается кому-то это не очевидно. Как так?
Кто-то начал чушь про TCP и UDP писать. Да, человек понимает что TCP
может себя вести не очень на не очень хороших, колбасящихся по некоторым
характеристикам каналам связи. UDP то здесь чем поможет? Аналогично
придётся всё равно поверх UDP придумывать тему про доставку битых или
потерянных пакетов. В комментарии здраво отвечают что TCP используется
именно чтобы не заниматься этим. Может ли быть ситуация когда
самопальный транспорт поверх UDP будет эффективнее TCP? Безусловно!
Будет ли он эффективнее всегда? Очевидно что нет. Всё упирается в
алгоритм congestion control. Именно поэтому для TCP и дают возможность
его выбора и управления. В случае с UDP никто не отменяет что необходимо
всё равно управлять congestion-ом будет. Просто вместо того, чтобы это
делало ядро ОС, это перекладывается на плечи прикладного ПО. Это не есть
что-то плохое, ибо в каких-то задачах это может дать огромный profit,
как например при использовании QUIC и HTTP/3, где множество параллельных
потоков отправляются. Но когда речь про передачу единственного потока,
одного файла, то QUIC не даёт никакого профита (кроме возможно быстрого
установления, а точнее продолжения, TLS сессии). Переключение TCP CC на
какой-нибудь BBR алгоритм может дать колоссальный прирост "скорости".
Поэтому человек пишет лютый бред, игнорируя тот факт, что использование
UDP не отменяет необходимость congestion control, просто перенося его в
прикладное ПО. Если этот CC будет эффективнее на конкретных каналах
связи: будет эффективнее. Но предложения же нет о конкретике. Да и,
более того, не бывает алгоритмов CC которые работают лучше всех
остальных везде. Настройку/управление CC вместо ОС придётся делать
внутри программы. Если бы NNCP параллельно передавал зашифрованные
пакеты, то можно было бы о чём-то таком задумываться.
Кто-то пишет про то, что NNCP на плохих каналах не работает. Неправда,
ибо я на COM-порту его многократно использовал, и в Ethernet
искусственно ограничивая traffic shaper-ом его до десятков Kbps. Есть
только одна загвоздка: его online протокол оперирует 64KiB пакетами, и,
соответственно, все внутренние счётчики тикают и учитывают факты
передачи пакета. Если за 10сек он не успевает передастся, то ПО
посчитает что за 10сек (по умолчанию) timeout ничего не было передано и
значит надо делать disconnect. Тут всё как с TCP CC: не бывает алгоритма
удовлетворяющего все требования и контексты применения транспортного
протокола. TCP Reno алгоритм создавали во времена десятков Kbps каналов
связи в лучшем случае. На канале с 10-100Gbps он не может себя вести
достаточно хорошо. Но в NNCP "проблему" с 64KiB, которая требует, грубо
говоря, ~53Kbps канала как минимум, можно решить одной переменной
окружения, выставив большее время 10сек timeout-а.
И, опять же, NNCP вообще не имел средств online передачи данных
изначально. Это в первую очередь про store-and-forward и переносные
накопители.
Один человек упорно придирался к слову "простота" в описании NNCP. Мол,
настройка TCP CC это не про простоту. Меня это позабавило тем, что я
писал про простоту самой программы, про её "архитектуру", про код. Про
простоту для пользователя в этой части документации не было
предположений. Но согласен что это не очевидно. Например DJB софт
(daemontools, UCSPI) является очень простым, но имеет больший порог
входа для конечного пользователя.
https://habr.com/ru/company/selectel/blog/688162/
Вот очень мне нравятся серверные железки, стойки и вся эта тема! Хочу и
дома иметь что-то подобное, но всё останавливается на вопросе "а зачем?".
Заиметь отказоустойчивые коммутаторы, маршрутизаторы -- неплохо однозначно.
Но за уйму лет хостинга всего и вся дома: у меня никогда не было проблем
с отказоустойчивостью и надёжностью. Два моих сервера: очень маленького
форм-фактора железки, но с серверными компонентами внутри. Работают без
нареканий. И только с появлением Intel NUC они перестали быть самыми
производительными железками.
В одном комментарии перечислили для чего нужна своя серверная:
1. Поднять свой сервер мессенджера, того же джаббера
2. Свой почтовик
3. Хранилка бэкапов
4. Медиабиблиотека: храним в одном месте, пользуемся с любого устройства
5. Сервис синхронизации
6. Локальный гит
7. Сидбокс
8. Домашняя автоматика
9. Домашний VPN, чтобы туда-сюда не передергивать VPN на устройстве
IM, почта, локальный Git: всё это не требует ресурсов вообще. Просто
ноутбук может это всё хостить. Хранение резервных копий, медиа
библиотеки, seedbox -- всё это требует только достаточного места на
дисках. Ну и не совсем дохлое железо (речь про одноядерные процессоры
i386, и пару гигабайт RAM (хотя и с ней будет работать)) чтобы ZFS
хорошо работал. И вот всё просто упирается в кол-во дисков которое можно
подключить. В обычный большой корпус обычного компьютера можно вставить
с дюжину дисков без проблем (возможно докупая корзины 5.25"). Если я
приобрету ещё пару 16TB HDD (для зеркалирования, поэтому и два), то у
меня вообще всё что есть на лентах влезет на диски. И в одном сервере у
меня даже как-раз два слота для них есть свободных.
Многие говорят про запуск виртуальных машин -- для этого нужны мощные
железки. Не поспоришь. Но вот у меня, кроме совсем дохлых ВМ в которых
NetBSD, OpenBSD, какие-нибудь GNU/Linux, где я просто проверяю сборку и
работу некоторого своего софта, в этом году появилась только одна ВМ,
которой я отдаю много ресурсов, где я вожусь с одним огромным C++
проектом. Но он даже не каждую неделю включается и мощность ему нужна
только для ускорения процесса сборки.
У меня до сих пор дома все компьютеры соединяет один единственный 1Gbps
коммутатор на пять портов. И прямо сейчас подключены только три порта.
Just for fun, just proof of concept я бы мог задействовать по два
Ethernet порта для того, что в GNU/Linux называют bond-ом. Но на
практике мне это не требуется вовсе. MPTCP нету в FreeBSD, поэтому и
скорость в 2Gbps я просто так не получу из коробки.
Ну и не дёшево это всё конечно. Я так понимаю, что в первую очередь надо
смотреть на б/у серверы/оборудование, которое может быть существенно
дешевле. Но сразу в голове воспоминания о том, что фиг поймёшь не
обманут ли тебя.
Ну и полноценная, пускай и маленькая, стойка это здорово, но rack
mountable сервера жутко громкие. Для тишины нужные большие вентиляторы:
а это только пъедестальники, значит и никакой стойки (не брать же её
только для пары коммутаторов?). Или размещать на балконе. Но это значит
его надо утеплять, ибо зимой на нём как на улице у меня.
Плюс лично я ещё совершенно не хотел бы связываться с маршрутизаторами,
которые сделаны не на базе обычной ОС, которую ты сам поставил. Просто
угнетает психологически сама мысль о том, что ты полностью ограничен
функционалом встроенного ПО. Я спокоен если это тупой коммутатор. Или
если это коммутатор, который максимум управление VLAN-ами умеет делать,
но не более -- там как бы или он умеет/делает или нет, особо вариантов
больше нет. А вот маршрутизацию я бы хотел уже делать в полноценной ОС.
Или если речь ещё и про firewall. Поэтому у меня никогда не было
маршрутизаторов типа WiFi+ADSL+router+NAT+firewall: это всегда какой-то
обычный ПК с GNU/Linux или FreeBSD внутри. Точнее железки были, но
работавшие в режиме моста. Хотя маршрутизатор, по идее, штука тоже не
хитрая: приходит пакет, смотришь в таблицу куда его дальше отослать,
отсылаешь. Против таких тоже ничего не имею. Но дома такой не нужен,
ведь ещё же и firewall и NAT (к сожалению, пока legacy IPv4 ещё
распространён) понадобятся. Поэтому вместо специализированных
маршрутизаторов у меня бы был yet another сервер, пускай и достаточно
дохленький.
Возможно для всяких Syncthing, NextCloud и подобных штук нужны и
существенные мощности. Но я живу в Unix-friendly мире компьютеров: нужно
получить доступ к NAS, так монтируй его по NFS, который из коробки
встроен в ОС и вообще с ZFS (в FreeBSD) интегрирован. Нужна безопасная
связь для этого? Ну так поднимай WireGuard (в IPv6 мире -- IPsec). Чего
чего, но какого-то дополнительного софта для этого не надо мне.
Ну и я не сисадмин, не сетевик, не devops -- для локальных экспериментов
мне хватает и что имею. Даже 10Gbps сетевые карты я так и не заимел, ибо
мне и 1Gbps хватает, так как я при этом всё равно упрусь в скорость HDD.
https://ru.wikipedia.org/wiki/%D0%9B%D0%B0%D0%B2%D0%BA%D1%80%D0%B0%D1%84%D1%82%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B5_%D1%83%D0%B6%D0%B0%D1%81%D1%8B
С полдюжины рассказов Лавкрафта прослушал
(81b54ddca2c8b87000e557252080c6be628f2eeb). Его манера подачи явно не
каждому понравится. И в основном то только описание мест и чувств
действующих лиц происходит. Но так детально и чётко! Может показаться
нудно и скучно -- но это только ярче создаёт всё происходящее в голове.
Пока это писал, то обратил внимание что в наушниках играет "Умереть --
значит жить вечно!", затем "Простая мелодия безумия" и "Мир пустоты" с
альбома "Кровь апокалипсиса" Ashen Light-а
(e4a09572c117d8bc3c9f00a71cdd750f339a35a1).
В тему, так как некоторые рассказы Лавкрафта уж угнетают фактом
ограниченности человеческого разума.
Приобретя кучу всяких музыкальных альбомов с прошедших концертов, всё
слушаю и слушаю их. И чем дальше, тем больше нравятся они в целом все!
Есть у некоторых проблемы с качеством записи, особенно когда речь про
90-е или начало 2000-х. Но вообще прям нарадоваться не могу как много
у нас талантливых музыкантов. Есть и новые неведомые мне доселе чувства:
из-за русских текстов ещё и слова, хочешь не хочешь, слушаю. И мне они
тоже очень заходят! А то слушать слова всякого нашего популярного
рока (с советских времён начинающийся ещё)... нет уж, извините.
https://www.youtube.com/watch?v=tUdUCHrttkc
Вот очень мне нравятся, чисто эстетически, подобные ноутбуки и
компьютеры как этот. Один из самых классных для меня ПК является
Acer Veriton FP (e40dbd8cc3fcbe0134dbd6c00ff855e99fc73213). Вот
современная техника совершенно не трогает ничем и не манит.
https://ru.wikipedia.org/wiki/%D0%AD%D0%B2%D1%80%D0%B8%D0%BA%D0%B0_(%D1%81%D0%B5%D1%80%D0%B8%D1%8F_%D0%BA%D0%BD%D0%B8%D0%B3)
https://ru.wikipedia.org/wiki/%D0%A5%D0%BB%D0%BE%D1%80%D0%B5%D0%BB%D0%BB%D0%B0
https://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D0%B4%D0%B8%D0%BE%D0%B8%D0%B7%D0%BE%D1%82%D0%BE%D0%BF%D0%BD%D1%8B%D0%B9_%D1%82%D0%B5%D1%80%D0%BC%D0%BE%D1%8D%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D0%B3%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80
В деревне, в которой я проводил регулярно каждое лето своего детства и
подросткового возраста, на чердаке я нашёл несколько книжек "Эврика".
Это такие толстые сборники научно-популярных статей, где про всякие
новинки (ну на тот момент) писалось многое. И какие там только темы не
поднимались! Зачитывал эти книги до дыр, ибо давало тьму пищи для
размышлений. Почему то, в первую очередь, вспоминаю статьи про чудесные
свойства хлореллы (водоросли), которая могла бы стать отличной дешёвой и
богатой веществами едой. И про РИТЭГ я узнал из этих книг.
Оцифрованные архивы есть тут:
https://rutracker.org/forum/viewtopic.php?t=4508487
https://rutracker.org/forum/viewtopic.php?t=4533108
В преобладающем большинстве случаев: контакты -- источник всех проблем
https://ru.wikipedia.org/wiki/%D0%9D%D0%B5%D0%B9%D1%82%D1%80%D0%B8%D0%BD%D0%BE#%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BE_%D0%B2%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE%D0%BC_%D0%BF%D1%80%D0%B5%D0%B2%D1%8B%D1%88%D0%B5%D0%BD%D0%B8%D0%B8_%D1%81%D0%BA%D0%BE%D1%80%D0%BE%D1%81%D1%82%D0%B8_%D1%81%D0%B2%D0%B5%D1%82%D0%B0
Во время возни с компьютерами за всю свою жизнь: уверен что наверное 90%
всех проблем связаны с плохими контактами. Именно поэтому в космических
аппаратах так много им уделяют внимания и так трушно выглядят их разъёмы.
Так вот из-за плохо вставленного оптического кабеля, учёные теряли 73нс
и думали что превышали скорость света.
https://ru.wikipedia.org/wiki/%D0%A2%D1%80%D0%B8_%D1%83%D1%89%D0%B5%D0%BB%D1%8C%D1%8F_(%D1%8D%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D1%81%D1%82%D0%B0%D0%BD%D1%86%D0%B8%D1%8F)#%D0%AD%D0%BA%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D1%81%D1%82%D0%B2%D0%B8%D1%8F
Известно что Земля вращается всё медленнее: 273d4d5a49d90e55fbd5a173cf587fe09f8b03e7
Так оказывается одно только возведение крупнейшей ГЭС в мире, "Три
ущелья" в Китае, подняло 39гт воды на 175м и увеличило момент инерции
планеты, снизив скорость вращения, увеличив сутки на 0.06мкс.
https://www.opennet.ru/opennews/art.shtml?num=57761
Пишут что улучшена степень сжатия. Проверил обновлённую версию: всё
равно проигрывает WavPack-у. Проигрывает по размеру даже если
использовать --exhaustive-model-search. wavpack -hh, сжимая лучше,
почти на порядок быстрее flac -8. А wavpack -hh -x3 всё равно быстрее
flac -8. Ну а поддержка 32-бит форматов, которая мне как-то нужна была,
в WavPack уже давным давно, как и огромные значения частот.
https://sourceforge.net/p/djvu/discussion/103285/thread/623607d5/
DjVu Libre полностью поддерживает DjVu формат. И может кодировать в
него. Вот только не умеет разделять изображение на фон и текст.
Проприетарный кодировщик это умеет делать: в итоге фон сжимается IW44, а
текст отдельно JB2, что делает файлы существенно меньше чем DjVuLibre
сделал бы просто закодировав одним только IW44. С института помню что не
выходило добиться таких же маленьких .djvu файлов, как это делали другие
проприетарными средствами. Хотя преобразуя отсканированное изображение в
PGM, а потом pgmtopbm -threshold/-dither8, можно получить вполне себе
хорошо читаемый PBM, без фона, отлично сжимаемый в JB2. Но скан должен
быть достаточно хорошим. Если это не очень резкая фотография, то будет
нечитабельно.
Но JB2 можно применять только в lossless сжатии, иначе шестёрки в lossy
могут превратиться в восьмёрки (9d4c55eed5c61a2214826129829b7fc3df6d4f3b).
Но cjb2 по умолчанию в lossless и работает.
Но, раз получить хороший PBM не очень тривиальная задача, то с DjVuLibre
остаётся использовать только IW44 (c44 команда) режим. То есть обычное
сжатие фотографии. Попробовал использовать JPEG XL с "-d 3" lossy сжатием.
На глаз оно даже чуть получше (резче) в некоторых местах чем IW44, при
этом чуть меньшего размера. И с лучшей скоростью декомпрессии.
Тогда какой смысл в DjVu? Вот я и не нахожу, ибо Libre версия не умеет
делать так же компактно как проприетарная (нет сегментирования изображения),
а JPEG XL сжимает лучше. Плюс уже есть известный формат Comic Book
Archive, который просто является архивом, внутри которого
пронумерованные отдельные изображения страниц. .cbz -- если это ZIP,
.cbt если tar (хотя для меня CBT это сокращённое название "Cock And Ball
Torture" группы), плюс нередко встречающийся уродский .cbr, использующий
RAR (который проприетарен). И никаких требований к формату изображений
внутри архива нет. Поэтому пронумерованный JPEG XL в ZIP, переименовать
в .cbz и отличная замена DjVu!
https://lenta.ru/news/2022/09/10/koleso/
Пишут что, мол, самое большое в Европе. Вообще, действительно, издалека
оно хорошо видно. Хожу не один месяц пешком до ВДНХ и оно ориентиром
является.
http://www.stargrave.org/photoes/home1.jxl
http://www.stargrave.org/photoes/home0.webp
http://www.stargrave.org/WareHistory.html
А то нет ни одной с NUC-ом обновлённым. Сравнил с прошлой фотографией:
другая клавиатура, другой стример (просто внешний, а не в корпусе от
компьютера), нет позёрства с модемом, нет KVM, появился системник с
корзиной с SAS дисками, другой телефон, другой USB хаб, другой ИБП.
Фотография постановочная конечно: и стример и корзина не подключены,
так как для этого надо открыть корпус верхнего сервера, потому что HBA
контроллер без внешних портов.
Прослушал полностью все книги из сабжевой серии
(5aa0db5e31fd076698f65055f8a97bd89d3ec56b). Снова геморрой с поиском
аудиокниг -- хочется же какой-то большой сборник чтобы на долгие годы
или месяцы хватало. Скачал пока сборник рассказов Говарда Лавкрафта.
https://mailarchive.ietf.org/arch/browse/ietf-announce/
https://en.wikipedia.org/wiki/Zulip
Впервые вообще услышал это слово "Zulip". Оказывается, ещё один клон
Slack-а. Ужас сколько этих IM-ов плодится из года в год! Вот только
лучше от этого ни на йоту не становится, насколько вижу. Только всё
более разобщённые и несовместимые средства связи.
Добавил отображение трафика за 1/5/10сек прошедших, аналогично как это
сделано в iftop. Плюс пиковые и суммарные значения. Всякие оптимизации
как в DTrace скрипте (только агрегации используются), так и Perl-е. Ещё
нужно много DRY сделать, ибо много однотипного кода. Но я уже более чем
удовлетворён результатом. Нагружает незаметно, так же удобен как и iftop
в плане отображения. Возможно получение PTR записей стоит добавить.
Это конечно не полная замена, ибо нет фильтрации например. Хотя в теории
её можно осуществлять на уровне DTrace скрипта. Сейчас dmon может на вход
принимать данные и не из порождённого DTrace процесса.
Напрягает меня кстати идея показывать подобную скорость в битах. Я
понимаю что каналы меряются в ней, но ведь если речь про TCP, то там же
только payload будет учтён. Если он разбит на кучу пакетов, то это ещё
куча overhead-а, которая не будет учтена. И если для IPv6 можно считать,
что заголовок всегда фиксированного размера (насколько понимаю,
расширенные заголовки это очень особые случаи когда их можно встретить),
то у IPv4 он весь из себя варьируемый. Плюс это не учитывает накладные
расходы на канальном уровне. Хотя соглашусь что это наверное быстрее
позволяет прикинуть какую часть канала занимает трафик хотя бы очень
примерно -- ведь канал то уже будет в битах/сек измеряться.
https://www.datagubbe.se/stubborn/
http://helpful.cat-v.org/Blog/2019/12/03/0/
https://jurta.org/en/prog/noblink
Даёшь выбор софта, который просто лучше подходит для выбранной задачи!
Вспоминаю интервью с Вассерманом, где он говорил, что до сих пор
использует старый Word на Windows 95 под виртуальной машиной (иначе ведь
уже не запустить). Просто потому что оно отлично справляется с задачей.
На работе меня окружают всякие техписателели и я со стороны вижу что
документ в сотню страниц уже еле-еле пашет на i7 машинах с десятками
гигабайт оперативной памяти. Плюс постоянная матершина о том, что с
каждой новой версией всё только неудобнее становится и менее гибче,
возможностей customization всё меньше. Ну так и нахрена использовать
инструмент который по полной проигрывает своим предыдущим версиям? Ну
тут очевидно: потому что Microsoft сказала.
Если всякие редиски превращают экосистему GNU/Linux в Windows/macOS,
внедряя systemd, то вот нафига это использовать, страдать и мучиться?
Если оно ничего не делает, кроме как вредит конечному пользователю.
Сколько бы редакторов не изобрели, но лучше Vim/Emacs (ну и для кого-то
Acme) не придумали -- нафига страдать борясь на мощных рабочих станциях
с тормознутыми IDE?
В статье и редакторы упоминаются, и Plan 9, и xterm. А кто-то даже
парится и борется с тем, чтобы курсор не мерцал. Хотя лично я наоборот
добавлял патчи для st терминала чтобы он, как раз таки, мерцал, ибо мне
это удобнее.
Верно замечено в статье, что речь не про то, чтобы на старье
засиживаться, мол и на лошадях ездили и не тужили. Просто далеко не всё
новое, модное и молодёжное лучше справляется с задачами. Нередко бывает
и то, что новый софт так же хорошо решает задачи, но имеет более
качественный код, документацию и usability (типа того, что я не вижу
смысла в procmail, когда есть maildrop). У нас есть и куча старья,
которое бы уже давно надо выжигать и выбрасывать, типа IPv4 и MP3 (хотя
это и не программы). А некоторые вещи, типа SSL/TLS лучше бы и не
появлялись.
https://www.fossil-scm.org/home/doc/trunk/www/fossil-v-git.wiki
Читал сравнение Fossil и Git. В принципе то и был в курсе что такое
Fossil, даже clone/pull делал из какого-то. Но... git is more than good
enough при умелом использовании, поэтому не смотрю в сторону кого либо
другого.
Бросилось в глаза то, что в Git указан SHA1 и SHA256. В Fossil SHA1 и
SHA3. Переход на SHA256 в Git идёт не шибко спешно. Но в glocate
(adca349bb86d9ed357051d2452c1a4f9dff24f7c) репозитории я применил SHA256,
просто чтобы посмотреть работает ли оно. Проблем не заметил с ходу:
Fugitive работает, Web-интерфейс для Git-а тоже. Хотя 100% куча софта,
типа моего codecomm (плагин для Vim) имеет hard-coded ожидание SHA1. Но
по идее это небольшие исправления требует в скриптах.
SHA256-only репозиторий -- единственное что полностью реализовано.
Одновременная/параллельная/transitional работа с SHA1 -- не сделана. В
принципе это может означать что новые проекты можно было бы делать
безопасно в SHA256-only режиме. Но пока до сих пор остаётся надпись в
документации о том, что гарантий о замороженности формата авторы не дают
и поэтому для боя не рекомендуют ещё.
https://www.youtube.com/watch?v=81_NcN7yANM
На работе коллега несколько дней назад сказал что у него дома нет
Ethernet-ов. Ну, видимо, имеется в виду один ноутбук, работающий
только через WiFi. Не выходит это из головы и представляю себя
чуваком, орущим "unpluggable!" как в сценке из фильма "Идиократия".
Только в ней он кричал "unscannable!".
http://www.git.stargrave.org/?p=dmon.git;a=commitdiff;h=0c43c2cb5927fe6ee5619b4726da4c247373c9c9
Не успел сделать первый коммит в dmon (9fe4474ce530fe5e8793160fb9218b36f68bd491)
как дошло то, что если я и не делаю красивый вывод в самом DTrace, то ничто же
не мешает в нём производить агрегацию значений трафика. Только надо
дополнительно будет передавать информацию о количестве прошедших пакетов, раз
Perl-овый скрипт не будет видеть каждый по отдельности.
На гигабите вместо 33% (DTrace) + 28% (Perl) теперь это отжирает 2-3%
одного DTrace-а, а Perl вообще можно не учитывать.
Написал утилиту для мониторинга IP/TCP трафика -- dmon
http://www.git.stargrave.org/?p=dmon.git;a=commitdiff;h=589005ba759ab606ed18b6c6a20a4df76cbaf399
Снова, в очередной раз, как всегда, не нашёл, казалось бы простейшей
утилиты: хочу в real-time в консоли видеть какой сейчас трафик идёт
между какими IP. Просто увидеть, что сейчас вот такой-то хост активно
что-то качает. Из портов перепробовал с десяток утилит, которые мне
выдавал поисковик на эту тему. Часть или не работает под консолью
(строит графики для web-интерфейса), или не собирается (к чёрту
разбираться почему, хочу быстро и прямо сейчас!), или мониторят только
интерфейсы, без конкретики по адресам. А остальная, работающая часть,
просто не поддерживает IPv6.
Ведь нужно же просто узнавать информацию по переданным IP или TCP
пакетам и красиво агрегировать для показа пользователю. И самая сложная
часть это именно отображение. Пришлось написать самому подобное. Для
сбора информации использую DTrace. Банально взял примеры из
man dtrace_ip и man dtrace_tcp, где показано отображение отправленных и
принятых пакетов. Попробовал в самом DTrace сделать и агрегацию и
отображение, но это дело не простое и имеет очень ограниченную гибкость.
А раз я же ещё и захочу на лету генерировать DTrace скрипты, чтобы можно
было "слушать" на разных сетевых интерфейсах (мне интересен трафик
только на некоторых), то надо брать в руки Perl.
DTrace скрипт для каждого IP или TCP пакета генерирует вывод: src, dst,
[<>], size. В случае IP адресов src/dst это просто адреса, а в случае
TCP ещё и порты добавлены. И каждую секунду он выводит "T", сигнализируя
что пользователю можно показать обновлённую информацию. Все размеры по
src/dst суммируются, сортируются по убыванию и показывается только топ
значений. Плюс шапка таблицы содержит суммарное кол-во переданных
пакетов и их размер.
Меняется это всё ежесекундно, очищая экран. Но если хочется что-то
разгледеть попристальнее, то я просто замораживаю вывод tmux-ом.
На гигабитной скорости оно конечно не дешёвое: сам DTrace жрёт треть
ядра, а Perl 28%, да и drop-ы случаются. Но это же миллионы пакетов за
секунды, где каждый "генерирует" текстовую строчку, которую Perl ещё и
парсит. Но мою задачу это решает более чем полностью и более чем удобно.
За последний месяц меня двое друзей спрашивали на эту тему. Мол, хотят
переквалифицироваться в разработчиков ПО. И ведь я искренне и совершенно
не знаю что можно с чистой совестью рекомендовать им.
Во-первых, я простой средний разраб. И возможно я всё делал и считал не
так как следовало бы и поэтому выше уже не поднимусь (не по служебной
лестнице (нафиг мне это надо), а по профессиональным навыкам). Поэтому
вряд ли следует прислушиваться ко мне.
Во-вторых, мой путь существенно отличается от того что ожидали бы эти
люди: я где-то с 2000-го года активно сижу за компьютером целыми днями,
нигде не обучался этому делу, полностью самоучка, смотрящий в сторону
того что нравилось и интересовало, а не на то, что надо было по работе.
И я знаю не мало людей которые за считанные годы достигают точно такого
же уровня как и я. Хотя и не могу сказать что я был упорным и не
отвлекался на компьютерные игры.
У меня никакой базы по алгоритмам и структурам данных нету. Никогда в
жизни не реализовывал ни одного дерева. Первый, и пока единственный,
двусвязный список я использовал впервые в Си где-то пару лет назад,
чтобы иметь в памяти знание о выделенной памяти libgmp, чтобы при
какой-то нештатной ситуации, особенно при отсутствии памяти, программа
бы не падала с abort()-ом (что по умолчанию делает этот GMP), а штатно
шла по этому списку и подчищала информацию. Максимум до чего я сам
додумывался: сортировка пузырьком и двоичный поиск по отсортированным
данным. И по сути я до сих пор нахожусь на уровне сайтописак, возможно
потому что не читал нужные книжки. Кнута листал, но не более. Даже
"понимание" (чёрт его знает как это описать) указателей пришло спустя
многие годы (d026b3c3e20a717c7fd8aad8f5377c4fc4b90d0b).
Я много задрачиваюсь по инструментам: Vim, zsh и всё подобное.
Преобладающее большинство их знают значительно хуже меня, но это же не
делает меня как программиста хоть на йоту весомее.
Главная головная боль: хотеть обучиться программированию побыстрее, типа
курсов на пару недель, и после этого уже стать сайтописакой, или же
побывать на чём-то гораздо более внушительном типа двухгодичных курсов в
МГУ, после которых наверное уже будешь солидным разрабом из коробки. Но
это долго, не факт что выйдет, плюс время и деньги. И тут у меня
подобного опыта нет вообще, поэтому и какой-либо рекомендации дать не
могу. Видел/слышал и самоучек без профильного образования, которых можно
было бы обозвать übertopsenior-ами. И тех кто курсы какие-то заканчивал,
типа ШАДа Яндексового. И тех, кто только в институте вообще командную
строчку увидел, но после него тоже крутой достойный разраб. И тех кто
живёт в компьютерах, трудоголиках, не отвлекающихся месяцами больше ни
на что. И тех, для кого мир компьютеров заканчивается в 19:00 в будние
дни и у него в голове совершенно другие заботы и увлечения, а разработка
ПО это только работа. И все из них могут быть как крутыми, так и
отстойными профессионалами в итоге.
У меня опыт ещё отличается от того, что могло бы быть сейчас: в моё
время не было Интернетов! Да и компьютер то мало у кого был, но чтобы
доступ в Сеть -- вообще редкость. Да и более того: а что там делать то?
Плюс у меня никаких знакомых кто разбирался бы компьютерах и
программировании, кроме дяди, но совесть не позволяла бы его отвлекать
по пустякам. Да и, как то так вышло, что я сначала заинтересовался Unix
системами, а он в них совершенно не шарил на тот момент. Единственный
источник хоть какой-то информации -- книги. Благо что в нашем наукограде
завозили довольно редкие книги, типа вообще пары экземпляров в один
книжный магазин на весь город (как гласит легенда).
* Архитектура компьютера (Таненбаум)
* Компьютерные сети (Таненбаум)
* Современные операционные системы (Таненбаум)
* Распределённые системы (Таненбаум)
* UNIX инструментальные средства
* Системное программирование в UNIX
* Perl для системного администрирования
* какая-то книга про дизайн и устройство файловых систем, купленная в
Евпатории на отдыхе
* тоненькая книжка-справочник по Си
* и так мною любимая A5-формата "Модемы", где был просто сборник статей
про Фидо, модемы, перевод "Как стать хакером" и что-то про базы и
основы Unix-ов
* древняя потрёпанная, купленная на развалах рядом с железнодорожной
станцией, на русском языке, книга по программам Unix SVR4, если память
не изменяет (какой-то SysV точно был). Где я узнал про roff систему, в
которой свою первую курсовую в институте написал
Ну и, так сказать, общесемейная "Самоучитель работы на компьютере"
(9584c0476d4b55e6695a16800b663dbef0539cc4), но это вообще просто книжка
которую каждый пользователь обязан бы был знать на тот момент. Но именно
из неё я услышал про Unix и BeOS.
А ещё моё видение идеального мира отличается от принятого большинством.
Проприетарное ПО, systemd и прочее дерьмо я вообще не рассматриваю как
заслуживающее траты на него времени. И с языками программирования
аналогично. Вот знать или Emacs или Vim -- must-have. Git -- тоже. А
дальше уже и много вкусовщины и разные задачи и отрасли.
http://www.nncpgo.org/nncp_002dack.html
https://www.complete.org/dead-usb-drives-are-fine-building-a-reliable-sneakernet/
https://news.ycombinator.com/item?id=32699261
https://lobste.rs/s/prtnbp/dead_usb_drives_are_fine_building
Удивительно, но я не нахожу у себя в блоге даже намёка на то, что в NNCP
я много месяцев назад добавлял поддержку ACK пакетов. А ведь на ней вон
люди делают всякие какие-то навороченные вещи.
Лично я эти ACK-и вообще не использую, но было интересно реализовать,
ибо не сложно и просто для некоторых use-case-ов явно подойдёт. То
чувство, когда ВООБЩЕ не помнишь что это, даже в общих чертах, а
некоторые люди это активно используют :-)
http://www.nncpgo.org/Release-8_005f8_005f0.html
https://github.com/inetaf/netstack/issues/4
https://news.ycombinator.com/item?id=32699261
Я сижу на самых последних версиях Go. И почти сразу же обновляю
GOST-овый fork (http://www.gostls13.cypherpunks.ru/). Но далеко не весь
софт пересобираю им. Вот и NNCP, который у меня постоянно везде и всегда
трудится -- не обновлялся.
Оказывается он вообще отказывается собираться под Go 1.19. Всё дело в
зависимостях связанных с реализацией TCP/IP стэка, опционально
используемой при работе с Yggdrasil. Когда-то там использовалась gVisor
библиотека (6ed95a2d84010e41e16c5ee891649d470f765241), потом перешёл на
inet.af/netstack -- fork gVisor только с netstack частью, без тьмищи
зависимостей. Кроме того, были какие-то проблемы на 32-х битных системах
у gVisor, а в inet.af было исправлено это.
Но внутри этого inet.af/netstack в ряде файлов явно стоит "!go1.19".
Судя по коммитам, это авторы добавили просто на всякий случай -- мол они
не проверяли всю эту unsafe работу с новыми версиями и явно указывают на
это. Руками удалил эти build тэги -- вроде бы всё работает, хотя и нет
уверенности. Более того, как оказалось, этот inet.af вообще стал
заброшенным проектом, так как Фитцпатрик больше не имеет проблем с кучей
зависимостей gVisor-а после Go 1.17, который умеет делать lazy подгрузку
модулей.
Если сделать "go mod tidy -compat=1.17", то он круто подчищает
зависимости от всяких излишеств. И действительно, проблем с gVisor-ом
больше нет. Снова переехал на него, уже на значительно более новую
версию, где и куча обратно несовместимых изменений API было. Но это же
Go: я буквально не более десяти минут потратил чтобы понять что и как
надо подправить.
Сегодня вновь в неё заглянул и удивился почему я решил перед каждым
блоком явно указывать его размер. Пустые потери места, ведь все блоки
одинаковы, кроме последнего. Пока правил это -- по сути всё с нуля
переписал, существенно упростив код. Я думал что это один из самых
простых и маленьких проектов у меня -- но в нём несколько структур с
кучей полей. О чём я думал?
А ещё захотел добавить явную аутентификацию последнего блока --
сигнализация о том, что да, это действительно конец передачи. Иначе ведь
злоумышленник может просто обрезать данные (по границам блоком) и мы об
этом не узнаем. Захотел использовать идею из NNCP: когда последний блок
будет шифроваться другим ключом. При дешифровании, если получили ошибку,
то пробуем на другом ключе. Я хочу странного? Вроде бы нет. Но обломал
меня интерфейс chacha20poly1305 (почти) родной библиотеки Go.
Я хотел было просто сделать Open(), получить ошибку, сделать Open() над
там же самым буфером с другим ключом. Но шифротекст меняется при этом
процессе. Ступил. Предположил что он дешифрует этот шифротекст,
параллельно скармливая его в Poly1305, и в самом конце просто проверяя
совпадает ли он с предоставленным тэгом. То есть мы бы получили
раскорёженный шифротекст. Но так как ChaCha20 это потоковый шифр, то
снова применив шифрование (на том же ключе) -- мы получили бы
оригинальное содержимое, которое уже дешифровать можно вторым ключом.
Но по непонятной мне причине, в chacha20poly1305 если MAC не валиден, то
он явно просто в цикле обнуляет значение шифротекста. Зачем??? В NNCP я
для дешифрования использовал отдельный буфер в памяти, так как всё равно
там работа с 128KiB блоками и поэтому не страшна такая не экономия. Но в
gohpenc я для каждого параллельного процесса выделяю довольно большие
буферы (по умолчанию в 1MiB) и увеличивать потребление в два раза (в
одном месте plaintext, в другом ciphertext) или, тем более, делать
копирование очень не хотелось бы.
В итоге, в классике жанра Go -- просто скопировал код chacha20poly1305 и
убрал из него обнуление шифротекста при плохом MAC. Это всё равно лишь
несколько строчек вызова Poly1305 и ChaCha20. Но уже в который раз
ощущение что я, как с glocate-ом (adca349bb86d9ed357051d2452c1a4f9dff24f7c),
хочу странного и ищу себе новые проблемы. Зато теперь он ещё более
безопасный.
Человек сдался после 20 лет собственного почтового сервера
https://news.ycombinator.com/item?id=32715437
https://news.ycombinator.com/item?id=32720234
Яростно обсуждаемая статья, где, после двадцати лет, человек забил на
собственный почтовый сервер. И ответ на его статью: что, мол, вообще
сейчас особенно просто запустить всю эту экосистему.
Есть куча людей, которые говорят что email мёртв. Однако, судя по
комментариям, эти же самые люди, как правило, говорят и что RSS мёртв.
Что обесценивает их мнение. Таких полно: если не mainstream -- значит
оно мертво. Точно так же говорят и про то, что рок мёртв, метал мёртв.
Но с email полностью понимаю что есть колоссальные проблемы в виде
корпораций зла, делающих всё, чтобы email был менее работоспособным.
Microsoft (забыл даже уже что за домены у них для почты) мою почту молча
принимает и она пропадает. Писал им в техподдержку (через отдельный
компьютер, на котором ничего кроме броузера, ибо запускает недоверенный
JavaScript код), но та просто молчит. Google стал, как правило, помещать
мою почту в спам, не смотря на то, что с адресатами я регулярно и годами
переписываюсь. Но уже не первый год народ вовсю на своих домашних
страницах предупреждает о том, что Gmail совсем оборзел. Недавно в
рассылку писал, в которой не раз переписывался, с тех же самых IPv4/6
адресов -- моё письмо просто молча пропало.
Или ты живёшь в мире и экосистеме корпораций, или в мире кооперирующих
людей. Другого не дано.
http://greenwoodsoftware.com/less/news.608.html
В новой версии less (а может и раньше, но вроде это не было стабильной
версией) появились цвета. Прежде только курсив/highlight использовался
и для результатов поиска, и для status line и для меток и для всего
остального. Теперь все разные по умолчанию -- удобнее стало, нагляднее.
https://www.youtube.com/watch?v=NvfT28_W1iA
https://www.youtube.com/watch?v=yvrNmpRFPgA
https://www.youtube.com/watch?v=8NTaQYBZ7mI
История компьютерных игр на основе настольных игр из реальной жизни. В
самом начале упоминается "Менеджер" -- аналог Монополии. У меня такой в
детстве был и нравился. Да и сейчас есть аналог от Сбербанка (маме на
работе как-то выдали). А вот в D&D никогда не играл и не видел в живую.
Самое близкое это только настольный Fallout
(4440c0bf998124fa83d5a22156ebf7ddca5a10ef) похоже был. Про MUD-ы много
начитан, наслышан, но на практике тоже дела не имел. Он вроде бы ещё
менее популярен чем например IF игры.
А вообще мы с друзьями в школе любили поиграть по сети или за одним
компьютером во что-нибудь. А сейчас даже не думаем про это: только
настольные игры. У двоюродного брата недавно было день рождения и они
тоже в настольную карточную игру какую-то отрывались, хотя лет на десять
моложе меня.
https://habr.com/ru/post/686172/
Выдержки из лицензионного соглашения говорят о полной несвободности
этого ПО, ибо всякие ограничения на использование.
Есть тут множество файлов, которые надо сжать. И есть три компьютера
мощных дома и поэтому хотелось бы как-то распараллелить этот процесс.
Все они лежат в shared NFS директории, поэтому можно работать по сети.
Думал что в GNU parallel есть из коробки что-то для этого, но нет.
Помню про lockf утилиту, которая могла бы идеально подойти для этой
задачи: взяли lock -- продолжаем работать, иначе выполняем следующую
задачу. Делает lock она путём открытия файла с O_EXLOCK. Но по NFS это
не работает. Не падает, но lock не отрабатывает.
Поэтому решил применить mkdir для этой задачи. Вроде бы, говорят, что он
атомарен на NFS. Хотя даже имитация атомарности мне бы подошла. На
каждой машине делаю:
Делать несколько zstd вместо одного zstdmt эффективнее, так как
распараллеливает работу он по достаточно большим кускам и под конец
сжатия несколько минут может оставаться работать меньшее количество
нитей, не полностью утилизируя все ядра. cpuset уже и прежде использовал
для того, чтобы процесс был прибит к конкретному ядру
(30e51579624d482c2fd13324f0e1d6a5c4db40b6). И с parallel очень приятно
завершать задачи плавно, дожидаясь окончания уже запущенных процессов:
kill -HUP `pgrep -f parallel` (f5ea219cd5f1f8361e48a31d7fc29ee5b2b0fe14).
https://ichip.ru/sovety/ekspluataciya/220-ili-230-volt-kakim-dolzhno-byt-napryazhenie-v-seti-778372
https://elektrik-sam.ru/jelektrosnabzhenie/4107-kakoe-dolzhno-byt-naprjazhenie-220-ili-230-volt.html
Просто обратил внимание на то, что ИБП показывает что на входе у него
230В в моей квартире. У родителей аналогично уже довольно давно.
Оказывается, уже чуть ли не двадцать лет оно по умолчанию и должно у нас
везде быть.
https://old.reddit.com/r/programming/comments/x1kzgx/falsehoods_programmers_believe_about_email/imfksfp/
Люди делятся опытом о том, что многие не корректно вводят свой адрес и
чужим людям приходит корреспонденция. Забавно. Прям даже можно намотать
на ус то, что даже если адрес вида "first"+"last" свободен, то стоит
добавить какую-то соль, чтобы избежать непрошеной почты.
https://beesbuzz.biz/code/439-Falsehoods-programmers-believe-about-email
https://emailisbad.com/
Годный список заблуждений. Но не без юмора.
------------------------ >8 ------------------------
* Everyone has an email address
* Everyone has exactly one email address
* An email address never changes
* Whenever an address does change, it's under that user's control
* Whenever an address does change, it's because the user specifically
requested it to happen
* Whenever an address does change, the old address will continue to work/exist
* Any one email address refers to only one single person
* Unique strings of characters all map to different addresses
* All email is hosted by a centralized system
* When email is sent to a user at a domain, it is delivered to a server
whose address matches that domain
* When email is sent by a user at a domain, it is sent by a server whose
address matches that domain
* All email comes from a .com, .net, .edu, or .org address
* You can filter out email based on the TLD or ccTLD from which it originates
* Having a particular ccTLD means that you prefer to receive
communications in that country's native language (for example, .fr ->
French)
* Email addresses only contain letters
* Email addresses only contain letters and numbers
* Email addresses only contain letters, numbers, and a handful of common
punctuation marks (e.g. ., _, and -)
* Email addresses will have at least one letter in them
* An email address like ^_^@example.com or +&#@example.com is invalid
* Email is a reliable transport
* Email is an instantaneous transport
* Emails will be sent within a few minutes of their scheduling
* Emails will be sent within a few hours of their scheduling
* Emails will be sent within a few days of their scheduling
* Emails will be received soon after they're sent
* When an email is sent it immediately goes to its destination server
* If an email bounces, the address is invalid
* If an email doesn't bounce, the address is valid
* An address which is valid will always be valid, and an address which
is invalid will always be invalid
* All email is sent via SMTP over TCP/IP port 25
* All email is sent via SMTP over TCP/IP
* All email is sent via SMTP over IP
* All email is sent via SMTP
* All email servers support the various vendor extensions by the current
"everyone uses this vendor" vendor (Microsoft, Google, etc.)
* An email can only have one From: address
* The Date: header on a message is legitimate
* The Received: headers will always be no earlier than the Date: header
* All email clients support HTML attachments
* All email clients support HTML message bodies
* All email clients support MIME encoding
* Email is secure
* Encrypted email is secure
* All email is accessed via webmail
* All email is accessed via webmail or IMAP
* All email is accessed via webmail, IMAP, or POP3
* Nobody uses email anymore
* Spam is rampant
Да, не поспоришь. Из-за, так сказать, открытой федерации.
* Running your own server is a major pain
Да. Но кто сказал что боль это плохо?
* If you aren't on gmail, gmail assumes you're sending spam
К сожалению тут не поспоришь. В жопу людей использующих gmail.
* Everyone else is on gmail
Смотря какой круг общения.
* Attachment limits are obnoxious and arbitrary
Ибо нефиг посылать огромные вложения -- email крайне не эффективен тут.
* Nobody knows how to validate addresses
Ну... да. Особенно бесит когда не дают ввести "+".
* Configuring TLS, SPF, DKIM, submission, etc. is confusing
Не поспоришь.
* Random RBLs will blacklist you based on superstitions, and admins of
other email servers will trust RBLs without question.
Полностью согласен. В жопу таких админов.
* Many useful protocol features have been completely forgotten in the
quest to eliminate all spam (retry, MX forwarding, etc.).
Не уверен что понимаю где кто и когда посеял все эти фишки. Вроде бы
это всё активно продолжает работать и использоваться.
* Random things don't understand MIME encoding for some damn reason
Бывает, бывает.
* Many clients don't know how to handle HTML correctly and/or safely
Не поспоришь.
И на нём же причины чем email хорош когда его пытаются заменить на
дерьмо IM-овое всякое:
* You can keep control of your notifications via message filtering, etc.
* Message filtering can be incredibly flexible
Важнейшие аргументы!
* Pretty good search (especially in modern clients, with client-side caching)
Согласен. Плюс вы его сами можете делать, независимо у себя.
* Threaded messages can provide better context for a conversation and
also allow people to self-edit and take more time to think about what
they're going to say
Полностью согласен.
* Writing "bots" and email-based APIs in general is much, much easier
Вот не уверен что возня с MIME приятна. Но библиотек для этого тьма.
* Signatures can add a lot of personality and useful information
Не уверен что это прям плюсом каким-то является.
* A broad choice of clients that satisfy varying accessibility needs
without randomly A/B testing your experience
Полностью согласен -- то, что email это протоколы/форматы, а не
какое-то конкретное ПО. Одно ПО не может удовлетворять всех и вся.
Sergey Matveev [Wed, 31 Aug 2022 18:34:40 +0000 (21:34 +0300)]
LTT выпустил отвёртку
https://www.youtube.com/watch?v=2K5Gqp1cEcM
http://www.stargrave.org/photoes/screw.jxl
Linus Tech Tips чуть ли не в каждом своём ролике рекламирует отвёртку,
которая вот-вот скоро выйдет. Я вот в инструментах вообще не шарю, да и
использую то крайне редко и поэтому ничего особо оценить не могу. Но
помню что на первой работе надо было выбрать отвёртки для себя: массово
их закупали и чтобы даже у программистов был какой-то инструмент, чтобы
не бегали к сборщикам одалживать а потом их выискивать. Помню что цена
на них отличалась на порядок, как минимум. А визуально все одинаковы. Но
когда пару раз помогал крутить серверы, ну и вообще то одно, то другое
приходилось делать: то реально понимал что разница есть ощутимая.
У отца, когда он работал в Интелкоме, инструмент был раз в 20 наверное
дороже того что он покупал (для себя!) домой. Впечатляла обжимка для
Ethernet кабелей, которую можно типа за несколько сотен рублей купить в
магазине, а у него вроде чуть ли не несколько тысяч долларов стоила.
Показ и рассказ о производстве отвёрток LTT мне напомнил об учёбе в МАИ,
где прям воочию тоже показывали как производится из пластика подобные
штуки -- ничего нового в их ролике для себя не узнал по этой теме.
И сейчас вот осознал что я наверное лет 15 уже для 90% всего времени в
компьютерах (а это 95% всего что я кручу) использую одну и ту же
отвёртку, фотографию которой сделал сейчас. Откуда она, почему она
такая: чёрт его знает. Но в ней грубо сточена рукоятка и весь конец.
Зачем? Никогда не задавался вопросом. Но просто по привычке она всегда
рядом и её долгое время брал с собой в рюкзаке если была вероятность что
что-то где-то надо будет крутить. Плюс она всегда лежит на сильном
постоянном магните -- всегда хорошо намагничена. Хотя дома у меня есть
нормальные отвёртки, со сменными битами и всем таким подобным.
Sergey Matveev [Wed, 31 Aug 2022 16:06:17 +0000 (19:06 +0300)]
Утечка персональных данных в ivi?
https://habr.com/ru/news/t/685716/
Не знаю как там всё сейчас устроено, но сервер аутентификации и
авторизации там делал в основном я.
Точно помню что пароли хранились в усиленном виде, то ли в PBKDF2, то ли
ещё в каком более сильном виде. ivi отвечает что одновременно email и
телефон (который я в БД обзывал MSISDN-ом) не указываются -- технически
ничто не мешает в БД их параллельно хранить, но логика frontend-а не
позволяла. Про ФИО не помню.
Говорят что авторизация только через ВКонтакте? Ну при мне были точно и
Facebook и Twitter, который вообще OAuth1, как минимум. Но они же сейчас
экстремистские.
А вот то, что до платёжных данных фиг доберёшься, даже будучи
разработчиком -- это да. Но возможно всё уже переделано стало.
Sergey Matveev [Wed, 31 Aug 2022 10:50:28 +0000 (13:50 +0300)]
CUBIC отстой на моей FreeBSD
В f4856188ed790df92521db94edacf86c6184d57c упоминал что начал
использовать CUBIC алгоритм управления перегрузкой TCP. Сегодня качал
всякое с домашней системы по обычному голому IPv4 на рабочий компьютер
за NAT-ом и заметил что через какое-то время скорость TCP-соединения
(wget) падает даже до нуля. Перезапускаешь wget скачивание -- всё снова
летает, а потом снова деградирует и падает. Переключившись назад на New
Reno -- полнейшая стабильность, никаких падений скорости до нуля. Вообще
всё выглядит так, что на CUBIC я буквально не в состоянии скачать что-то
большое, тогда как на New Reno прекрасно работает.
Но раз все используют CUBIC, то как же так выходит что у меня он почти
неработоспособный на практике? Наверное в моей версии FreeBSD с ним всё
плохо. Судя по https://freebsdfoundation.org/wp-content/uploads/2021/05/TCP-Cubic-is-Ready-to-Take-Flight.pdf
в 13.0 версии сделано много улучшений в нём.
Sergey Matveev [Wed, 31 Aug 2022 08:45:02 +0000 (11:45 +0300)]
Живые выступления Active Stenosis и Dysthymia
https://www.youtube.com/watch?v=BYbDLdrQPcA
https://www.youtube.com/watch?v=eYYDqz4fJk4
Второе видео, Dysthymia -- запись с недавнего Blast Damage Fest preparty
(82ad61dd650a01e72aa3a1c1c8d4f11ba2af20d4). Active Stenosis прям отличный
goregrind из серии Last Days Of Humanity!
Sergey Matveev [Tue, 30 Aug 2022 08:40:17 +0000 (11:40 +0300)]
CAPTCHA? Тогда уходим от вас
https://habr.com/ru/post/685328/
Поддерживаю автора статьи и поступаю аналогично: вижу CAPTCHA -- иду с
сайта и считаю что его и нет. Одна из причин это то, что в преобладающем
большинстве случаев она требует загрузки программы на мой компьютер --
не приемлемо. Но даже если и технологически нормальная CAPTCHA, где
честно только HTML форма и возможно картинка -- тоже идёт нафиг, ибо
сколько раз встречал крайне не тривиальные "задачки" или требующие
знание чуждой культуры (f1c72a42951230da604bbc4b3f7efb54d2eab168). У
Яндекса вообще всё стало нерабочим (хотя и не то, чтобы я часто у него
использовал). Как бы... кому это всё надо? Кому нужен какой-то сайт? Мне
или им? Почему моё время (и, зачастую, безопасность/приватность) не уважают?
Sergey Matveev [Mon, 29 Aug 2022 10:39:27 +0000 (13:39 +0300)]
Немного про архитектуру Яндекс.Облака
https://habr.com/ru/company/yandex/blog/448588/
Как дополнение к a744f8c2a603fda9aa08254c66c4bc4bbdfedb7e.
Все сервисы в control plane написаны на Go. Что-то я вообще
не помню слышал ли про использование Go в Яндексе прежде.
Sergey Matveev [Sun, 28 Aug 2022 19:24:15 +0000 (22:24 +0300)]
Ускорил goredo
http://lists.cypherpunks.ru/archive/goredo-devel/f4cf64d0-4b50-7647-089e-6a6e1fa27113@jnboehm.com/
Добавив кэширование результата проверки существования файла, а также
принятия решений OOD (out-of-date), зверски сократил количество
системных вызовов которые goredo делал на каждый чих.
Потом обнаружил что из трёх секунд у меня две занимает парсинг .rec
файлов, хранящих состояние зависимостей. Точнее под две секунды занимает
работа regexp. Сделал поэтому и новый релиз go.cypherpunks.ru/recfile, в
котором убрал regexp, просто ручками разбирая каждую строчку. В итоге
парсинг .rec-ов стал занимать 800мс. Вроде бы многовато, но это на
данных с 1028 файлами, в которых 88k записей, 293k строк, каждую из
которых надо парсить.
Sergey Matveev [Fri, 26 Aug 2022 14:52:18 +0000 (17:52 +0300)]
Почему сайт должен быть меньше 14KiB
https://habr.com/ru/post/684836/
Рассказ о TCP slow start и что некоторый объём данных в TCP улетает
довольно быстро. А всякие HTTP/2, QUIC, HTTP/3 борятся вовсю с
задержками и лишними round-trip-ами, поэтому важно отправить как можно
больше без ожидания чего-то в ответ.
А я на прошлой неделе как-раз зачитывался про TCP алгоритмы управления
перегрузкой и включил себе уже давно везде (в ОС) использующийся CUBIC.
До сих пор в моей FreeBSD New Reno по умолчанию. Правда разницы нигде не
заметил, но у меня или чистый 1Gbps Ethernet с десятисантиметровыми
расстояниями или 100Mbps Ethernet до провайдера и никаких WiFi.
Sergey Matveev [Fri, 26 Aug 2022 14:27:28 +0000 (17:27 +0300)]
BIRD простота конфига
С настройкой BIRD-а (982b29ed90d9c1e8e39ebb4398e0a4b0f26ad927) у меня
изначально были мысли о том, что как-то многовато строчек в его
конфигурационном файле для такой простой задачи как у меня. Но в
документации хорошо описана его архитектура и всё встало на свои места и
пришло понимание почему kernel и direct являются протоколами точно так
же наравне с BGP и остальными. И особо то ничего лишнего уже и не видно
в нём.
Комментарий о range снова подтолкнул разобраться почему он у меня не
сработал и оказалось что у меня просто недостаточно свежая версия демона
была. С range-ем можно избавиться от явно заданного link-local адреса на
стороне "клиентов". В итоге туннельные интерфейсы на клиентах делаются
просто указывая автоматическое создание link-local-а:
ifconfig iface inet6 -ifdisabled auto_linklocal
Конфиг на моём NUC сейчас выглядит так:
protocol kernel {
ipv6 {
import none;
export filter {
if proto = "direct1" then reject;
accept;
};
};
learn;
}
protocol direct direct1 {
ipv6;
interface "lo0";
}
template bgp gwpeers {
local as our_as;
neighbor fe80::1 as our_as;
direct;
ipv6 {
import all;
export filter {
if net ~ [2000::/3+] then accept;
reject;
};
};
}
protocol bgp gwwg from gwpeers {
interface "wg0";
}
protocol bgp gwipsec from gwpeers {
interface "gif0";
}
template bgp peers {
local as our_as;
local fe80::1;
neighbor range fe80::/64 as our_as;
direct;
passive on;
ipv6 {
import all;
export filter {
if net ~ [2000::/3+] then accept;
reject;
};
};
}
protocol bgp nukewg from peers {
interface "wg0";
}
protocol bgp nukeipsec from peers {
interface "gif_nuke";
}
protocol bgp beta from peers {
interface "gif_beta";
}
Sergey Matveev [Thu, 25 Aug 2022 18:18:46 +0000 (21:18 +0300)]
Использую BGP для домашней сети
Год назад (79484c1dc99bf5d6204202ce27f471a1a88f34c9) трогал BIRD2 демон
и игрался с OSPFv3. Сегодня снова вспомнил про эту тему и уже на практике
начал использовать у себя BGP. Лютый overengineering конечно же, но хочется
что-нибудь подобное поиспользовать.
На втором сервере и на моём NUC используется dual-stack IP. Статические
IPv6 и IPv4 адреса. На трафик между ними и основным сервером я хочу
чтобы был зашифрован в Ethernet сети. Поэтому поднимаю IPsec между ними.
Настраивать отдельные туннели/транспорты по отдельности на IPv6 и IPv4
трафик не хочу. Поэтому делаю gif-туннели, которые передаются поверх
fc00:: IPv6 сети Ethernet-а (link-local адреса тут не поддерживает
strongSwan, поэтому использую site-local сеть). Указать для каждого gif
туннеля что он является point-to-point link-ом между IPv4 адресами можно
без проблем:
и на сервере можно указывать 192.168.20.1 на всех gif-ах. А с IPv6
указанием одного и того же адреса не выходило уже не помню по какой
причине. Из-за этого я делал link-local адреса и создавал статические
маршруты: такой то IPv6/128 доступен через такой то интерфейс. Для дома,
учитывая что у меня считанное число подобных туннелей, это конечно
сойдёт, но мне эстетически не нравилось.
Позже я решил просто указывать надуманный IPv6 адрес на сервере для
каждого туннеля, типа:
Это уже было экономией строчек в rc.conf файлах касающихся маршрутов.
Хотя и эстетически неприятно что я вынужден какой-то надуманный адрес
использовать просто чтобы указать что он в этой же сети.
Другой "проблемой" стало то, что мой NUC бывает на работе и подключается
к дому через WireGuard туннель. Но так как на gif-туннелях IP адрес
NUC-а уже "занят", то на wg-туннеле его не прописать уже. А (опять же,
чисто эстетически) хочется чтобы я мог через разные VPN (IPsec или
WireGuard) подключаться и иметь один и тот же адрес. А сервер просто
должен будет знать где именно сейчас мой IP находится.
OSPF, помню, нравился тем, что никаких явно endpoint-ов демонов
маршрутизации не нужно настраивать -- он по multicast-у сам договорится
и всех найдёт. Но через WireGuard multicast-ы не работают и его на
завести в подобную систему. Поэтому завёл BGP.
Помню комментарии в своей прошлогодней записи о том, что можно и более
простые протоколы использовать, и то, что и статические маршруты, more
than good enough. И ни с чем я тут не поспорю -- всё так и есть. Но
хочется потрогать что-то "боевое". Тем более, что IP4Market туннельный
брокер выдаёт /48 сеть, так что у меня тьма /64 доступно для любых задач.
В отличии от OpenBSD, в FreeBSD из коробки не ставятся никакие BGP
демоны. Поэтому на каждый сервер пришлось явно доставить BIRD2. Опыта по
сути со всем этим никакого, как и понимания есть ли у меня понимание
хотя бы основ. Но моих минимальных познаний хватило чтобы это почти без
проблем всё поднять.
На каждом gif/wg-туннеле у меня link-local адреса только, но среди
которых в обязательном порядке выставлен fe80::1 для удобства на
сервере. BGP демоны связываются поверх этих link-local и обмениваются
всеми своими 2000::/3 сетями. Понравилось что в BIRD2 из коробки шаблоны
поддерживаются, которые мне как-раз пригодились, ибо всё однообразно и
однотипно настраивается. Так как BGP трафик всё равно пойдёт по
аутентифицированным IPsec/WireGuard сетям, то дополнительной
аутентификации не делаю и полностью доверяю переданным маршрутам.
Демон BIRD везде автоматически запускается при старте системы. Когда
какой-либо из туннелей готов работать, то BIRD, время от времени,
пытаясь связаться с противоположной стороной, подключится и все маршруты
установит. Адреса, кроме основного сервера, у меня навешиваются прямо на
loopback интерфейс. А маршрут по умолчанию можно просто указать, сказав
что он идёт не через определённый адрес, а просто через интерфейс.
В итоге, строчек в rc.conf файлах и ручных скриптах поднятия туннелей на
NUC-е стало ещё меньше, плюс исчезли глобальные IPv6 адреса из
туннельных интерфейсов. Исчезли надуманные IPv6 адреса используемые
исключительно для туннелей. Если я добавлю новый адрес: то BGP
автоматически оповестит мой центральный сервер (он же и маршрутизатор) о
нём. Если я добавлю целую /64 сеть, то, опять же, все остальные смогут
до неё сразу же автоматом ходить. Причём самих IP адресов (кроме
статичных link-local) в конфиге BIRD-а нет вообще: он собирает всё что
относится к 2000::/3 (что например исключает Yggdrasil сеть) и
обменивается этим.
Sergey Matveev [Wed, 24 Aug 2022 13:12:40 +0000 (16:12 +0300)]
GitHub и IPv6
https://github.com/orgs/community/discussions/10539
Говорят что уже не мало провайдеров, которые имеют только IPv6, при этом
деля огромный CGNAT с кем-то ещё, что не редко ложится и не работает. И
бывают VPS-ы где берётся дополнительная плата за IPv4 адреса (очевидно),
тогда как IPv6 предоставляются безвозмездно. Поэтому сделать git clone с
GitHub-а требует дополнительных денег (или геморроя).
Кто-то ругает Microsoft, хотя мне казалось ещё 15+ лет назад, что
Microsoft как-раз таки уже тогда очень активно подталкивала сисадминов к
этому не устаревшему протоколу, делая примеры настроек в своей документации
на нём.
И верно замечают, что GitHub-у гораздо важнее переименовывать master в main.
Sergey Matveev [Mon, 22 Aug 2022 14:21:56 +0000 (17:21 +0300)]
Переписал zdns на Tcl
http://www.git.stargrave.org/?p=zdns.git;a=commitdiff;h=bb68fcc5ab280623651b31953e149d364d3f7bf9
Не преследуя никакой практической цели, кроме как потрогать Tcl вновь,
чтобы развеяться. Этот язык я в руки не брал с момента написания
tofuproxy (который тоже почти не трогается, ибо just works -- почти все
HTTP запросы на моём компьютере проходят через него, даже WARC временами
использую).
И вот почти ничего не помня про Tcl, я почти без единого спотыкания и
почти без единой ошибки во время выполнения всё переписал. Только одна
ошибка запомнилась: если закрыть канал, являющийся stdout-ом от другой
команды, не дочитав всё до конца (я читаю OpenPGP ключ и выхожу когда
нужный UID был прочитан), то программа выходит с ошибкой (что ожидаемо)
и Tcl ловит эту ошибку падая. Ну и забыл что глобальные переменные по
умолчанию не видны в процедурах.
Всю документацию, кроме одной базовой книжки в PDF по Tcl, я брал из
man-ов, благо до которых у меня прекрасно работает мой клёвый
настроенный completion в zsh:
% man index<TAB>
[...]
... manual page, section 5 (file formats and conventions)
INDEX portindex
... manual page, section 9 (kernel features)
bhnd_get_core_index ifaddr_byindex
... manual page, section n (new documentation)
auto_mkindex.tcl86 lindex.tcl86 pkg_mkIndex.tcl86
... parameter
ZSH_AUTOSUGGEST_ORIGINAL_WIDGET_PREFIX
И эти man-ы очень понравились, наличием ценнейших простых примеров, где
тот же намёк на использование while {getc} и catch{close} имеется.
Непередаваемое чувство, когда ты пишешь всякий код, много или не очень,
а он просто берёт и выполняется без проблем. Такое у меня только с Go
было. Tcl очень приятен!
Sergey Matveev [Sat, 20 Aug 2022 00:47:44 +0000 (03:47 +0300)]
Мини аудио диски
На прошедшем концерте приобрёл аж 18 дисков всяких. И 7 среди них
формата маленьких CD. С самим форматом я знаком: долгое время всегда с
собой носил mini CD-RW. Формат приятен тем, что умещается в карман. Но
про музыкальные альбомы в таком формате не слышал и не видел. Это всё
правда у меня относится к noisecore-у. Но на 24мин такого диска, группа
типа Anal Cunt легко запишет не один десяток трэков.
Sergey Matveev [Fri, 19 Aug 2022 23:48:36 +0000 (02:48 +0300)]
Сходил на Blast Damage Fest (Moscow preparty)
Вообще этот фестиваль должен быть в Санкт-Петербурге, но типа репетиция
в Москве. Было круто прекруто! Смотрю я на свой список концертов чтобы
вспомнить когда я в последний раз был на настоящем горграйнде, грайндкоре,
но не Napalm Death и не всяком заводном танцующем порнограйнде. Jig-Ai
был в 2017-ом, а перед этим тема была только в 2016-ом. Я уже и забыл
как это всё круто.
Проходило на территории завода инструментов, рядом с цехом по созданию
резьб. В ab593349b33cdd37c668a30114afffbcb2bce6f5 я удивлялся маленькому
клубу "Live Stars". Сегодня концертная площадка была раза в два меньше.
А больше и не надо -- там народу на один не полный автобус соберётся. Но
звук был вполне себе хорош для такой музыки. Но отсутствие кондиционера
и дело под землёй. Даже в свои лучшие годы молодости я бы не смог там
колбаситься -- меня бы пришлось выносить от недостатка кислорода за руки.
Мне кажется за всю историю посещений концертов только один раз, на
Korpiklaani летом в маленьком клубе Релакс было так душно. Но всё же
нет -- я там и колбасился, и к стене потом прислонялся от того что в
глазах темнело, но там двери всё же открывали во двор для проветривания.
А тут никак проветрить нельзя технически. Самое душное место где я был.
Но, так как даже башкой я уже перестал мотать, то нормально.
Первые две группы (Toughguy, Boner) были из Москвы, состоящие из
барабанщика и гитариста только. Ну какая-то грайнда, power violence.
Народ завёлся, всё здорово.
Далее были Bastard Youth из Екатеринбурга. К сожалению всякую ху@#ю
политическую вокалист между песнями пытался нести, что сильно подпортило
впечатление, но играли, я б сказал, прям таки эталонный агрессивный
grindcore каким он и должен быть. Тупой, быстрый, мощный. Napalm Death
например довольно мелодичны. А тут прям понимаешь что grindcore это
штука более близкая к панкам, нежели чем к металлистам (отсюда, видимо,
и херня политическая, поэтому буду считать что это часть культуры). Я
реально уже забыл, кроме Napalm Death, когда я чисто грайндкор
нормальный слышал.
Затем были москвичи Active Stenosis, которые играли, прям опять хочется
применить слово, "эталонный" goregrind. Вот прям просто послушать
Bastard Youth и Active Stenosis чтобы понять разницу между чисто
грайндкором и чисто горграйндом. Последний конечно тоже разный бывает,
но тут игрался похожий (я бы сказал что лучше) на Last Days Of Humanity.
Очень круто! Собственно, эталонного быстрого горграйнда я вообще с
трудом припоминаю в живую.
А закончило сие мероприятие группа Dysthymia. Стиль можно назвать noise
grind-ом. Барабанщик и гитарист, который создавал стену из distortion
шума. Я как-то писал что одна группа на black metal концерте ударяет по
барабанам больше чем все группы doom концерта с Metal Over Russia. Так
вот в Dysthymia в течении только одной "песни", ударяют по барабанам
больше чем наверное на всём Metal Over Russia. В течении одной песни они
ударяют больше, чем многие люди на протяжении нескольких лет слышали бы
барабаны из своих звуковых систем. Я *никогда* не слышал такой дичайшей
скорости молотилова, причём без остановки и достаточно долго. Можно
взять Last Days Of Humanity трэк "Divine Proclamation of Finishing the
Present Existence": https://www.youtube.com/watch?v=ZW6lnrUpX1o
и увеличить скорость процентов на двадцать, бить по тарелкам раза в три
чаще и всё это без остановки раза в полтора дольше. Мне кажется их
барабанщик должен был потреблять кислорода столько же, сколько и все
люди там присутствующие. Что в конце и было видно: он пару минут сидел
просто тяжело дыша, а дальше не мог встать ровно, явно с невидящими по
началу глазами (по себе знаю что значит недостаток кислорода).
В общем, люто здорово было! Видел несколько лиц, которых я знаю по
концертам ещё с 2007-2008-ых годов, уже постаревшие дядьки. Но, благо,
молодёжи тоже не мало ходит.
Sergey Matveev [Wed, 17 Aug 2022 19:28:07 +0000 (22:28 +0300)]
Сделал генератор файлов DNS зон
http://www.git.stargrave.org/?p=zdns.git;a=tree
А то и человеческий фактор и геморрой уже надоели. Думал написать это
просто в виде zsh скрипта всё, а потом обернул в redo default цель.
Наколеночная работа, но задачу выполняет. Так как у меня тьма всего
сделано под одну гребёнку, добавление поддомена, как правило, означает
добавление адресов, SPF записи, CAA, DANE, возможно Yggdrasil адреса, то
всё можно автоматизировать. Например полностью вся зона nncpgo.org:
Sergey Matveev [Tue, 16 Aug 2022 19:39:43 +0000 (22:39 +0300)]
Clang с обновлённым libstdc++
За неделю мне попались две программы, в которых используется C++17
include <filesystem>, где прежде была абстракция из Boost-а. И у меня
оно не компилировалось, ибо не находит этот <filesystem>. Действительно,
при сборке используется штатный /usr/include, который у меня в системе
старый и в нём никаких <filesystem> просто ещё не было реализовано и всё
собрано на Clang 6.x ещё древнем.
Но я использую LLVM/Clang 14.x установленном через GNU Stow в ~/local,
где есть ~/local/include/c++/v1/filesystem. Пробую добавить этот путь
через -I -- ругается на то, что не может найти __config_state. Он есть в
include/x86_64-unknown-freebsd12.0/c++/v1/. Если его добавить в -I, то
дальше лавина ошибок из-за каких-то проблем с define-ами.
Под GNU GCC в GNU/Linux этот <filesystem> работает. Под виртуальной
машиной запускаю FreeBSD 13.1 с Clang-ом 13.x -- тоже всё работает, хотя
filesystem тоже под c++/v1.
Verbose показывает что при компиляции c++ (14.x) не пытается смотреть в
c++/v1 поддиректорию свою, а смотрит только в /usr/include, где старьё
сплошное, и в -I директории. Смотрю на вывод verbose под FreeBSD 13.1.
И разница только у указании "isystem" директории. Пробую повторить
полную команду "clang ... -triple x86_64-... -x c++" у себя локально, но
указывая isystem директорию ~/local/include/c++/v1. Снова падает на
невозможности найти __config_state. Скопировал его, ибо там ничего кроме
простых define-ов нет, и всё компилируется. Выходит что это не тоже
самое что просто добавление -I директории. Благо, в clang в 2019-ом году
добавили опцию -stdlib++-isystem, которая может переопределить эту
isystem.
Компилируется теперь с <filesystem> успешно, но не запускается. Уже
потому что libstdc++ не содержит всего нужного. Пришлось добавить в
LD_LIBRARY_PATH и ~/local/lib/x86_64-unknown-freebsd12.0.
Но перед этим кучу времени потратил на перекомпилирования LLVM-а, думая
что он как-то вообще не так собирает или не собирает вовсе этот
filesystem.
Sergey Matveev [Mon, 15 Aug 2022 20:00:08 +0000 (23:00 +0300)]
Тетрахроматия
https://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D1%82%D1%80%D0%B0%D1%85%D1%80%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%8F
http://www.vasyanovich.com/images/art-facts/kak_razlitchayut_tsveta.jpg
https://www.diets.ru/data/cache/2012jan/24/04/570265_23705nothumb500.jpg
У людей, преимущественно у женщин, бывает такая мутация, при которой
появляется четвёртый тип колбочек в глазах, существенно расширяющий
диапазон видимых оттенков цветов. Я и по жизни видел сколько геморроя
добавляют эти женщины со своей цветовой дифференциацией, и в анекдотах
или картинках сколько про это. А оказывается, действительно биологически
разница в восприятии может быть.
Sergey Matveev [Mon, 15 Aug 2022 07:25:08 +0000 (10:25 +0300)]
Thrash vs death vs black metal
https://www.youtube.com/watch?v=aWfyHmjTALo
На практике показана разница между тремя стилями. У меня придраться не к
чему: действительно показаны отличные яркие представители. Не самые
сложные и техничные, но которые явно можно причислить к соответствующей
категории.
Sergey Matveev [Sun, 14 Aug 2022 15:10:09 +0000 (18:10 +0300)]
Сетевые диаграммы в PlantUML
https://plantuml.com/nwdiag
В новых версиях появилась возможность рисования сетей. Обрисовал все
свои домашние сети и соединения и понравилось что получилось -- реально
понятно через что куда можно пойти.
Sergey Matveev [Sun, 14 Aug 2022 12:34:42 +0000 (15:34 +0300)]
Ртутным градусникам пришёл конец
https://intersgroup.com/nastasya-ivanova-farm-ekspert-kuda-ischezli-rtutnye-gradusniki/
https://en.wikipedia.org/wiki/Mercury-in-glass_thermometer
Коллега сообщил что обычный ртутный градусник уже не купить.
Оказывается, РФ действительно присоединилась к движению против них и
прекращает их производство. Всё бы ничего, наверное, но коллега говорит
что, попробовав несколько моделей, у них дикая погрешность (под полтора
градуса). Работающую простую надёжную штуку заменили, выходит, чем-то
что или не работает, или дорогое. Как всегда в пролёте простой потребитель.
У меня, с переездом от родителей, тоже электронный какой-то градусник. И
мне он всегда не нравился непойми каким разбросом температуры и вообще
непониманием когда и как его надо доставать из подмыхи. В итоге с ним
геморроя и подходов к измерению температуры гораздо больше чем с ртутным.
Sergey Matveev [Sun, 14 Aug 2022 07:50:09 +0000 (10:50 +0300)]
Посмотрел прохождение Deponia
https://en.wikipedia.org/wiki/Deponia_(video_game)
Про эту игру слышал давно (ей уже десять лет), но не играл и имел
немного предвзятое отношение -- мол это уже навряд ли нечто типа
старого доброго квеста (point-and-click adventure). Но был не прав.
Всё выглядит именно так как и должно. Интересные головоломки, хорошее
простое управление, отличная графика и озвучка. Юмор понравился. Даже
есть отсылка к Secret Of Monkey Island, когда говорят про трёхголовое
нечто за спиной.
Sergey Matveev [Sat, 13 Aug 2022 11:32:48 +0000 (14:32 +0300)]
Не грози южному централу, попивая сок у себя в квартале
https://ru.wikipedia.org/wiki/%D0%9D%D0%B5_%D0%B3%D1%80%D0%BE%D0%B7%D0%B8_%D0%AE%D0%B6%D0%BD%D0%BE%D0%BC%D1%83_%D1%86%D0%B5%D0%BD%D1%82%D1%80%D0%B0%D0%BB%D1%83,_%D0%BF%D0%BE%D0%BF%D0%B8%D0%B2%D0%B0%D1%8F_%D1%81%D0%BE%D0%BA_%D1%83_%D1%81%D0%B5%D0%B1%D1%8F_%D0%B2_%D0%BA%D0%B2%D0%B0%D1%80%D1%82%D0%B0%D0%BB%D0%B5
А ещё на днях пересмотрел этот фильм, уж не помню почему захотелось
вспомнить о чём он, ибо смотрел его один раз где-то в начале 2000-х.
Помню что 20 лет назад он мне показался совсем каким-то наркоманским
и не то чтобы хорошим. Сейчас не особо понимаю чего мне там раньше так
не нравилось. Мне кажется среди всех фильмов про нигерское гетто, из
комедий -- это лучший что я видел. Да и из всех фильмов братьев Уэйансов
это лучший.
Sergey Matveev [Sat, 13 Aug 2022 10:56:50 +0000 (13:56 +0300)]
Посмотрел "Я достану тебя, ублюдок" и "Молчание ветчины"
https://ru.wikipedia.org/wiki/%D0%AF_%D0%B4%D0%BE%D1%81%D1%82%D0%B0%D0%BD%D1%83_%D1%82%D0%B5%D0%B1%D1%8F%2C_%D1%83%D0%B1%D0%BB%D1%8E%D0%B4%D0%BE%D0%BA
https://ru.wikipedia.org/wiki/%D0%9C%D0%BE%D0%BB%D1%87%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B2%D0%B5%D1%82%D1%87%D0%B8%D0%BD%D1%8B
Первый фильм пародирует в целом жанр, а второй определённые фильмы.
Очень много смеялся.
safe -- только пользователь имеет доступ
loss -- никто не имеет доступа
leak -- и пользователь и злоумышленник имеют доступ
theft -- только злоумышленник имеет доступ
Sergey Matveev [Wed, 10 Aug 2022 12:19:44 +0000 (15:19 +0300)]
История Lua
https://www.lua.org/history.html
https://en.wikipedia.org/wiki/Grim_Fandango
Не может обойтись без упоминания, возможного лучшего
(https://adventuregamers.com/articles/view/18643), квеста Grim Fandango.
Много где говорили что бОльшая часть всего в этой игре написано на Lua.
У меня довольно тёплое отношение к Lua. Писал исключительно на нём
больше года для SAN системы, в том числе MVC UI LuCI из OpenWRT.
Sergey Matveev [Wed, 10 Aug 2022 11:50:22 +0000 (14:50 +0300)]
Документация рядом с кодом у Альфа-Банка
https://habr.com/ru/company/alfa/blog/680556/
http://www.stargrave.org/InfoRules.html
В ivi мы начали вести документацию, которая в том числе
шла наружу для сторонних разработчиков, в reStructured Text формате, ибо
всё же код на Python был изначально полностью. Каждое изменение API
попадало в отдельный файлик с изменениями в новой версии. Во время
релиза (вроде) запускался скрипт который этот файлик переименовывал в
чётко заданную версию. Во время ревью надо было проверять что все
изменения отражены в документации. И она отдельно собиралась Jenkins
задачей.
У меня было предложение использовать git-notes для хранения кусочков
текста которые должны пойти в changelog, но, действительно, это
требовало большой аккуратности и толком то ничего не упрощало, кроме
того факта, что в репозитории, во время разработки между релизами, не
правился один и тот же changelog файл.
В da160c3c7b3f5393aa37f2d042f9b281264273de писал про мой выбор форматов
документации. Сейчас я reST не использую совсем. Из личных проектов
только PyDERASN с ним остался. Для всего применяю Texinfo с Info и HTML
генерированием. С docstringer.pl скриптом (de290eaa23dc9d16296162f0ff52ed00f506e786):
http://www.git.stargrave.org/?p=dotfiles.git;a=blob;f=bin/bin/docstringer.pl
я собираю документацию из файлов исходного кода. Безусловно только redo
используется, типа:
Почти везде применяется хотя бы для одной-двух диаграмм PlantUML
(https://plantuml.com/). Недавно смотрел на его документацию и поразился
обилием вещей который он может рисовать. Но я почти только для sequence
диаграмм его использую. Искал более легковесные (не Java) альтернативы,
но уже много лет держу Java только и только ради одной этой программы,
ибо хороша.
Sergey Matveev [Wed, 10 Aug 2022 10:18:36 +0000 (13:18 +0300)]
Вокалист Airbourne о важности маленьких музыкальных площадок
https://www.darkside.ru/news/145758/
Согласен с ним полностью: на большую сцену новичок не может попасть,
а где ему развиваться то и где люди о нём узнают в противном случае?
Да и большая сцена это куда меньшее удовольствие чем клуб.
Sergey Matveev [Mon, 8 Aug 2022 19:40:58 +0000 (22:40 +0300)]
Улучшил glocate
В 8e24a68248865cfcd58538871f8b96e6327376d8 я написал glocate. Всё же
жутко напрягает что он жрёт уйму памяти, поэтому повозился над
оптимизацией. Отняло прилично времени, похоже из-за недостатка знаний по
структурам и алгоритмам. Сложности с применением zfs diff-а, который
как-то оттестирован, но наверняка есть крайние случаи и косяки.
Чтобы не есть память, то использую временные файлы. Во время создания
индекса в него пишется прямо на лету почти вся информация о файлах и
директориях. И в памяти запоминаются вычисленные итоговые размеры
директорий (можно и в ещё один временный файл переложить, но и так не
много жрёт (64-бит для каждой директории)). Далее всё это копируется в
ещё один временный файл, на лету заменяя для директорий размеры
сохранённые в памяти.
Это работает вполне себе без проблем и годно. В файле хранится 16-бит
длина имени, имя, 8-бит глубина, 64-бит mtime и размер. Плюс Zstandard
над всем этим, ибо всё равно всё только в потоковом режиме читается и
пишется.
А для применения zfs diff куча кода. По сути я просто создаю
отсортированные списки из файлов для удаления, для добавления и для
изменения. Для каждого добавляемого файла есть запись в списке для
изменения. Записи из БД потоково читаются и смотрится нет ли записи в
списке для удаления. Если есть, то она в новую БД (очередной временный
файл) не попадает. Если есть запись в списке для добавления, и она при
сортировке должна пойти перед прочитанным элементом из БД, то она
вставляется в поток записей. Из списка для изменения берутся данные о
размере и mtime. Если прочитанная запись имеется в списке для изменения,
то у неё обновляется размер и mtime. Так как все списки отсортированы,
то никаких map-ов не используется и смотрятся только верхушки списков.
То есть, имеется поток записей, в котором на лету или удаляются или
изменяются или внедряются новые записи. Всё это идёт во временный файл.
При этом параллельно всё проходит через параллельно работающую горутину
вычисления размеров директорий, такую же как и при создании индекса. И
снова в конце идёт копирование из одного временного в другой, обновляя
размеры директорий.
Дополнительная сложность с переименованием директорий: zfs diff
показывает ровно одну запись, честно. А мне ведь надо всю иерархию, все
элементы изменить. Если есть переименование директорий, то я отдельно
потоково читаю БД, ищу какие файлы надо во что переименовать, и
для каждого элемента создаю отдельную запись в списках удаления,
добавления и изменения.
Таким образом, если есть переименование директорий, то "копирование" БД
(чтение из неё и запись во временный файл) идёт первый раз для узнавания
всей иерархии директорий, второй раз для создания полной БД со всеми
записями, третий раз для актуализации всех размеров директорий. Но
отличное переиспользование кода при этом.
Все эти потоки записей идут через штатные каналы Go, обрабатываются в
горутинах и отлично распараллеливаются. Отдельная горутина для чтеца,
для писателя, для считателя размеров директорий, для модификатора потока
записей. Плюс zstd имеет свои горутины. Я в top-е видел использование
2-3-х ядер без проблем.
Ещё можно было бы останавливать копирование, когда оно уже точно не
нужно (например узнавая иерархию при переименовании директорий, когда
список из задач уже опустошился). Но лень это было делать, да и экономия
на секундах, даже при использовании полугигабайтной (несжатой) БД.
Поиска как такового нет, кроме как возможности указания части иерархии
для вывода, для последующего grep/whatever. И при этом он просто
потоково читает все записи из БД. Но работает вполне себе шустро:
считанные секунды чтобы выдать результаты (для полугигабайтной БД).
Смотрю на формат БД GNU findutils-ов:
https://www.gnu.org/software/findutils/manual/html_node/find_html/LOCATE02-Database-Format.html
и вижу что у них тоже никакой магии для поиска нету: просто компактный
формат, где объединяется общий префикс. Так как я явно храню знания о
директориях отдельно, чтобы у директории был свой mtime/size, то у меня
аналогично бы вышел вырожденный LOCATE02 формат БД, только вместо общей
длины у меня указывается глубина, вероятность переполнения которой
существенно меньше чем длина текстового префикса. Приятно что оказался
на аналогичном пути.
Sergey Matveev [Fri, 5 Aug 2022 11:52:10 +0000 (14:52 +0300)]
Выступление Aspid, Бѣсъ, Sinful, Shadowmoor
https://www.youtube.com/watch?v=EVR3VD1hDrs
Качество записи (как звука, так и видео) конечно несоизмеримо с 3d70a9949cba9d5fbfa8a1f5084e405d7e891cc6, как будто это старый добрый
VHS какой-то.
Слушаю тут альбомы накупленные и очень порадовал Бѣсъ. В том числе
атасными картинками в обложке. Хотя богохульничества там хоть отбавляй,
но забавно из-за этого.
Sinful тоже клёвые, но сильнейший русский акцент на альбоме очень
бросается в уши. Не то, чтобы это было плохо, но скорее забавно звучит.
Sergey Matveev [Wed, 3 Aug 2022 17:10:54 +0000 (20:10 +0300)]
Google Groups то ещё дерьмо
В продолжении b3f6829703cff6d2397a4256c1d3a585f1a02586, сегодня пришло
письмо с битым multipart/signed. Настолько битым, что мой Mutt буквально
только треть его показал где-то, а дальше как будто ничего не написано.
Я ответил на письмо, не подозревая что в нём было что-то ещё.
Но, ничего страшного, ибо моё письмо хоть и было принято сервером
Google, но в web-архиве я его не вижу, как, соответственно, и ответов
возможных на него. Похоже стоит просто отписаться от всего что там
находится, ибо ни прочитать, не ответить.
Sergey Matveev [Wed, 3 Aug 2022 08:12:32 +0000 (11:12 +0300)]
Рок-фестиваль в Атланте отменили потому что мало оружия
http://www.hitkiller.com/nuzhno-bolshe-oruzhiya-rok-festival-v-atlante-otmenili-po-dikoj-prichine.html
Рок-фестиваль запрещает проносить оружие. А недавние законы Атланты
запрещают запрещать оружие в общественных местах, чем фестиваль является.
Ну поэтому и отменили. И смешно и грустно конечно :-)