]> Sergey Matveev's repositories - stargrave-blog.git/log
stargrave-blog.git
4 years agoio/ioutil будет deprecated в Go 1.16
Sergey Matveev [Tue, 19 Jan 2021 14:23:28 +0000 (17:23 +0300)]
io/ioutil будет deprecated в Go 1.16

https://www.srcbeat.com/2021/01/golang-ioutil-deprecated/
Всецело одобряю! И яркий тому пример: ReadAll находится в ioutil,
ReadFull в io? ReadFile вне os? Как и TempFile аналогично вне os?
Разумно это всё распихать по нужным местам.

4 years agoGitlab неюзабельное говно
Sergey Matveev [Tue, 19 Jan 2021 11:50:08 +0000 (14:50 +0300)]
Gitlab неюзабельное говно

Как же я его ненавижу, искренне. На работе в одном проекте попробовали
им пользоваться для отправки merge request-ов и их обсуждения.

Он совершенно рандомно (или не понятно для нас как именно) присылает
уведомления на почту о комментариях к коду. Короче что то присылает, а
что-то нет.

Ладно, чёрт с почтой -- я захожу в merge request и нигде не показывается
что у текущего diff-а есть комментарии над куском какого-то файла. Более
того, многие большие файлы свёрнуты. Если нажать на expand all чтобы
раскрыть колоссальные портянки текста, то... опять же, рядом с
комментариями нигде нет никаких слов "comment" или подобного -- текст я
могу искать только по дате или имени автора комментария (или тексту
комментария), которые, очевидно, я не могу знать заранее. В итоге мы в
почту пишем о том что написали там комментарий.

Отвечаю на комментарий и хочу отформатированный текст вставить (кусок
кода). Его предложение через меню о вставке "``" не поможет для
многострочного вывода. Никаких предложений об использовании <pre> нет --
догадался сам. Ввёл их -- жмакнул "edit comment" и вижу что ничего не
обновилось. Точнее он показалась что "edited just now", но
форматирование не обновлено. Ok, снова редактирую, жмакаю "preview",
вижу что всё ok, нажимаю снова edit и снова ничего не обновляется. Снова
повторяю, но уже добавляя просто случайный текст в конец, а не только
<pre> тэги -- помогло.

Когда мне надо вмёржить не default ветку своего репозитория в не default
ветку другого, то интерфейс позволяет выбрать src/dst ветки и
репозитории. Вот только при выборе dst ветки целевого репозитория -- моя
src сбрасывается. А при выборе src, после выбора dst, сбрасывается dst.
Что делать, как быть? А в момент git push Gitlab выдаёт ссылку, где в
GET параметрах указана src ветка (она то уж точно известна ему). Если
использовать именно эту ссылку для создания merge request, то появится
интерфейс вбивания комментария к merge запросу, но в котором если нажать
на change branches, то появится точно такое же меню выбора src/dst
веток, но которое уже будет работать!

Вмержить только часть коммитов -- неа, нельзя. Если только не руками,
конечно же. Про сам интерфейс просмотра изменений, где нельзя увидеть
всю историю push-ей и изменений коммитов -- молчу. Точнее вроде бы в
теории может быть и можно, видя что в URL-е есть всякие start_sha
параметры есть, но мне использовать его GET параметры как CLI что ли
какой-то?

Я уж понятия не имею Github такой же или это Gitlab такой неюзабельный и
корявый (или наш instance такой), но... работать с этим нельзя. Как бы
мне не нравился Gerrit своей Java-природой, дикими тормозами (хотя...
меньшими чем Gitlab) из-за JS-а, но в нём можно делать ревью по
человечески (c6f4f67e4f265306dfc762acfc0a22580c690cc5). Я то вообще
написал плагин для Vim-а чтобы ещё сильнее упростить и сделать этот
процесс более удобным. Но таких глюков и неработоспособностей как в
Gitlab в Gerrit нету.

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

4 years agogoredo на YouTube канале Kai Hendry
Sergey Matveev [Mon, 18 Jan 2021 09:40:36 +0000 (12:40 +0300)]
goredo на YouTube канале Kai Hendry

https://www.youtube.com/watch?v=2qGyn8RGYxY
Ну что ж... короткое видео от Kai Hendry, который с каждым моим письмом в
личной переписке всё больше убеждается что он "sold" этой системе сборки.
Он же сделал пакет для Arch и macOS и использует goredo. А ведь в прошлом
тоже советовал использовать Make.

4 years agoIn Extremo -- Palästinalied 2
Sergey Matveev [Mon, 18 Jan 2021 08:44:49 +0000 (11:44 +0300)]
In Extremo -- Palästinalied 2

https://en.wikipedia.org/wiki/Pal%C3%A4stinalied
https://www.youtube.com/watch?v=hVRPGChBoY0
Понятия не имею о чём они поют (судя по Wikipedia -- оправдание крёстных
походов, ибо только христианская религия единственно трушная), но
красиво звучит. Тётя мне как-то говорила что всю жизнь считала
французский язык всем из себя таким красивым, но позже, особенно после
командировок во Францию, поняла что чёрта с два оно так. Как и я замечал
что ничего в нём нет красивого на практике, видя французские фильмы где
слышна родная речь. Это не Милен Фармер со стихами. Вот и с немецким
аналогично похоже -- в стихах очень даже красиво!

4 years agoВсю жизнь не правильно бил жёсткие диски
Sergey Matveev [Mon, 18 Jan 2021 08:22:55 +0000 (11:22 +0300)]
Всю жизнь не правильно бил жёсткие диски

Ещё в школе я знал что пропускная способность жёсткого диска на внешних
цилиндрах -- выше. Ближе к центру -- хуже, но время поиска тоже ниже.
Поэтому, ещё в школе, я старался размещать разделы диска так: для
хранения -- ближе к внешним цилиндрам, для swap/ОС ближе к центру.

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

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

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

Как же долго может занимать осознание и складывание двух простых фактов!

4 years agoСанкции из-за посаженного преступника
Sergey Matveev [Mon, 18 Jan 2021 08:04:40 +0000 (11:04 +0300)]
Санкции из-за посаженного преступника

https://lenta.ru/news/2021/01/18/nav/
Ага, РФ посадила преступника, мошенника, лжеца, иностранного работника
по попыткам подорвать стабильность в стране и просто редиску -- не хорошая она.

4 years agoОбсуждение WKD в GnuPG рассылке
Sergey Matveev [Mon, 18 Jan 2021 07:43:09 +0000 (10:43 +0300)]
Обсуждение WKD в GnuPG рассылке

https://lists.gnupg.org/pipermail/gnupg-users/2021-January/064567.html
Уже не первую неделю идёт обсуждение применения WKD на Github pages.
Которые не работают, потому что Github для sub.sub.github.com домена
выдаёт sub.github.com X.509 сертификат. Уже давно по диагонали
проглядываю письма в этом треде и всё до сих пор почти каждый день я
вижу: "это валидный сертификат", "нет не валидный", "нет валидный", "нет
не валидный". Старожили просто перестали отвечать на это, раз не доходит
до человека.

А сегодня увидел хорошее замечание, что раз Sequoia (реализация OpenPGP
на Rust) успешно работает с WKD и Github-ом, то это как-раз прям анти
реклама этой реализации. Явно не валидный setup с Github pages -- с ней
работает, когда должен падать.

4 years agoРелиз NNCP 5.6.0
Sergey Matveev [Sun, 17 Jan 2021 19:16:08 +0000 (22:16 +0300)]
Релиз NNCP 5.6.0

http://www.nncpgo.org/Release-5_002e6_002e0.html
Добавлены -autotoss опции, которые ежесекундно запускают тоссер при
наличии работающего соединения. Проверка наличия пакетов довольно
лёгкая, хотя, конечно же, не мешало бы и прооптимизировать всё это, ведь
сам NNCP знает что пришёл новый пакет.

Плюс перевёл NNCP на использование vendor директории, раз минимальная
версия Go стала в нём 1.12. Вообще я и GoGOST с gostls13 уже перевёл на
это тоже, как надо бы и все остальные свои проекты. Ибо удобно создавать
эту директорию (174173f91e592f40199e39e9b5aea51911f2f45f) и не нужны
GOPATH хаки.

4 years agoРелиз goredo 1.0.0
Sergey Matveev [Sun, 17 Jan 2021 19:14:00 +0000 (22:14 +0300)]
Релиз goredo 1.0.0

http://www.goredo.cypherpunks.ru/News.html#Release-1_002e0_002e0
Учитываю размер файла теперь. Из-за этого формат state recfile-ов
изменился и поэтому это мажорная, не совместимая, версия. Плюс перенёс
redo-whichdo тест из apenwarr/redo и сделал так, чтобы поведение моего
-whichdo было аналогичным (на самом деле -- более корректным). Плюс
добавил возможность забить на сравнение ctime-а, если нет доверия к
низлежащей ФС, заставляя явно проверять хэш файла.

4 years agoParler системные требования
Sergey Matveev [Sun, 17 Jan 2021 14:07:50 +0000 (17:07 +0300)]
Parler системные требования

https://habr.com/ru/news/t/537702/
Понятия не имею что это за Parler (видел только то, что их отключили от
AWS), но требования впечатляют:

* не менее 40 высокопроизводительных instance (типа i3.metal AWS), в
  каждом 64 vCPU, 512 ГБ ОЗУ, система хранения 14 ТБ nVME (Scylla
  Cluster);
* от 70 до 100 instance для кластера БД, в каждом 96 vCPU, 768 ГБ ОЗУ,
  система хранения 4 ТБ nVME (PSQL Cluster);
* 300-400 простых инстантов, в каждом 8-16 vCPU, 32-64 ГБ ОЗУ.

и это всё для... 8млн. пользователей всего лишь. Так и хочется сказать
что вот они современные модные разработчики. Даже хоть я и писал на
Python, но подобные требования выглядят уж точно как перебор чересчур.

4 years agoШирина строк в 90 символов
Sergey Matveev [Sat, 16 Jan 2021 11:50:01 +0000 (14:50 +0300)]
Ширина строк в 90 символов

В newsboat (4f59f723102f30f7449779e511b4f523cb88e909), можно указать
ширину текста во время рендеринга HTML. Поставил ради эксперимента 90,
ведь примерно столько я выставляю в linter-ах исходного кода. Не думал
что я вообще это замечу, но мне реально очень неудобно и непривычно
читать текст чуть вот шире "обычного". Через пару недель вот вернул на
80. В исходном коде 90 это граница когда за 80 можно ещё чуть-чуть
вылезти, но 95% перцентиль умещается в 80 символах. В newsboat
получается что почти 100% всего находится в 90 символах. Возможно это
такая сильная привычка конечно, но уж очень замечаю эту ширину.

4 years agoМысли про слежение за зависимостями в redo
Sergey Matveev [Thu, 14 Jan 2021 16:40:38 +0000 (19:40 +0300)]
Мысли про слежение за зависимостями в redo

https://groups.google.com/g/redo-list/c/I_BLZJcutCA
Michael Raitza написал хорошие мысли про всю тему с слежением за
зависимостями в redo. А я свои вылил. Я всё же ещё больше стал уверен в
правильности подхода (хотя сомнений и не было) использования контрольных
сумм. Всех не удовлетворить (иначе будет монструозный framework и,
скорее всего, не удобный и/или с большим порогом входа), а подход в
goredo (да и redo-c в целом) максимально удобен и гибок для
преобладающего большинства задач.

Но там в рассылке и всяких хотелок на тему redo-ood, redo-targets,
redo-sources понабросали. Приделаю уж, вроде не сложно. Хотя до конца
всё равно не очень вижу надобности в них, но точно так же как и с
redo-dot, который было просто интересно написать.

4 years agogoredo в macOS и на arm64
Sergey Matveev [Thu, 14 Jan 2021 16:33:38 +0000 (19:33 +0300)]
goredo в macOS и на arm64

https://github.com/Homebrew/homebrew-core/blob/master/Formula/goredo.rb
Нет, я не прикован наручниками в подвале под присмотром, где я только
macOS-ом я могу сообщить что со мной что-то не так, добив ещё и тем,
что надо было повозиться чтобы оно и под arm64 заработало. Просто тот
же Kai Hendry что и добавил порт в AUR, решил и в macOS запилить
поддержку.

Install страница goredo намекает что это на 100% хипстерское поделие, с
macOS-ом и AUR-ом то. А я даже так и не начал готовить порт в FreeBSD...

4 years agoNNCP в тикетах про проблемы с Go
Sergey Matveev [Thu, 14 Jan 2021 08:47:23 +0000 (11:47 +0300)]
NNCP в тикетах про проблемы с Go

https://github.com/golang/go/issues/42772
Что-то в последних версиях Go проблема на FreeBSD последних версиях.
Зато реклама NNCP :-)

4 years agoСоздание vendor директории в Go
Sergey Matveev [Wed, 13 Jan 2021 13:11:34 +0000 (16:11 +0300)]
Создание vendor директории в Go

https://github.com/golang/go/issues/30329
https://github.com/goware/modvendor
В своих tarball-ах для Go программ я обычно создавал src/ иерархию
директорий как в $GOPATH/src и говорил что собирать надо просто указав
GOPATH на текущую директорию. Прелесть этого в том, что будет работать и
на старых версиях Go (не знающих про модули) и на новых.

Но GOPATH собираются полностью выпиливать. В принципе ничего страшного:
"поставлять" зависимости в vendor директориях можно было уже давно. Но
придётся отказаться от Go <1.12. Но, насколько вижу, у меня по сути все
зависимости и мой софт именно эту версию минимально и требуют. Так что
смысла поддерживать GOPATH совместимость нет.

Поэтому в goredo начал делать полноценную vendor директорию. go mod
vendor позволяет создать её. Но она не включает кучу файлов, возможно
нужных для поставки (тесты и сопутствующие файлы):
ff602609469a5830b0c9be1f24d2d519dbb84561. Я поэтому писал на много
десятков строк адские скрипты копирующие зависимости. Но сегодня нашёл
modvendor утилиту, которая копирует в vendor указанные glob-ы файлов от
каждого модуля. Это у меня заменило целый экран уродливого shell-а.
Теперь только так и буду готовить vendor директорию. Ручной труд всё
равно остаётся, но сильно упрощается.

4 years agoГрайнд-молодость
Sergey Matveev [Wed, 13 Jan 2021 09:40:46 +0000 (12:40 +0300)]
Грайнд-молодость

https://www.youtube.com/watch?v=y7s8fhsveHc
https://www.youtube.com/watch?v=NNruFoV0NDE
https://www.youtube.com/watch?v=MoTaCR7J6FE
https://www.youtube.com/watch?v=AVrWuoA7vGI
https://www.youtube.com/watch?v=NbQ_ZCv-nLA
https://www.youtube.com/watch?v=QwTqWGbykMg
Вспомнил сегодня что-то про Тверских крутых порнограйндеров
Duodildo Vibrator и Septicopyemia ребят из столицы горграйнда нашей
страны (Иваново) -- даже видеозаписи с концертов есть в YouTube.

4 years agoЗакадровый перевод фильмов мало где известен
Sergey Matveev [Wed, 13 Jan 2021 08:39:27 +0000 (11:39 +0300)]
Закадровый перевод фильмов мало где известен

https://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%BA%D0%B0%D0%B4%D1%80%D0%BE%D0%B2%D1%8B%D0%B9_%D0%BF%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4
https://en.wikipedia.org/wiki/Voice-over_translation
https://en.wikipedia.org/wiki/Dubbing_(filmmaking)
Оказывается, закадровый перевод фильмов популярен только в Восточной
Европе, Монголии, Вьетнаме и Камбоджи. Переписываюсь с европейцем,
старше меня, и он знаком только с dubbing (дублированным). А у нас целые
поколения выросли на вот таком: https://www.youtube.com/watch?v=pZVSbzA4cm4
И я больше всего предпочитаю именно закадровый (в топку дублирование!) и
желательно одноголосый перевод (2e94b72b12b80b04d00e6b983f193a9ce652a4e9).

4 years agoGoogle Groups... впечатляют неюзабельностью
Sergey Matveev [Tue, 12 Jan 2021 20:51:13 +0000 (23:51 +0300)]
Google Groups... впечатляют неюзабельностью

Даже не помню толком когда последний раз что-то писал в рассылки на
Google Groups, но сегодня пообменивался там письмами. Тело PGP-MIME
сообщений там насильно меняется, инвалидируя подпись, что делает
невозможным нормальную подписанную отправку писем. Очень удобно и
безопасно, Google! Digest-ы там не в MIME виде и не содержат никаких
Message-ID, поэтому получая их невозможно ответить в трэд. Очень удобно,
Google! Плюс я уж не знаю почему, но все норовят меня поставить и в
копию и в список рассылки отправить сообщение, из-за чего мне по два
раза прилетает. Очень удобно и надёжно: не долетит одним путём, дойдёт
хотя бы вторым. А ещё видно что сообщения из рассылки вырезают огромные
куски цитат, тогда как в оригинале (то что на мой сервер прилетает
напрямую) оно в разы может отличаться по размеру.

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

4 years agoСмерть от вентилятора
Sergey Matveev [Tue, 12 Jan 2021 19:03:14 +0000 (22:03 +0300)]
Смерть от вентилятора

https://ru.wikipedia.org/wiki/%D0%A1%D0%BC%D0%B5%D1%80%D1%82%D1%8C_%D0%BE%D1%82_%D0%B2%D0%B5%D0%BD%D1%82%D0%B8%D0%BB%D1%8F%D1%82%D0%BE%D1%80%D0%B0
Какие же только не бывают поверья! В закрытой комнате вентилятор может убить.
Но только в Южной Корее.

4 years agoКак сделать красивые текстовые таблицы ещё проще и лучше?
Sergey Matveev [Tue, 12 Jan 2021 14:23:06 +0000 (17:23 +0300)]
Как сделать красивые текстовые таблицы ещё проще и лучше?

В f445f28611aafab4883fd15795498f45bf5ca239 писал про tbl, который
отлично умеет рисовать сложные таблицы в консоли. Вот только на момент
написания той записи я не знал что он не разбивает автоматом длинные
строки. И не умеет этого. В итоге... решение так себе. Куча решений для
рисования таблиц не умеют объединять строки/столбцы, что бывает нужно,
не говоря про управление положением текста в ячейке.

Снова вернулся к этой теме сегодня и вспомнил про w3m броузер. Как
замену lynx-у он для меня не катит: не удобное управление как минимум.
Нужна возможность навигации по нумерованным ссылкам. Да и, глядя на
документацию, вроде бы ещё каких-то полезностей не хватает. Но, он
офигенно, как оказалось, рендерит таблицы. Пока похоже это чуть ли не
лучшее решение похоже. HTML таблицы вроде бы все умеют рисовать -- даже
не надо вспоминать ничего будет. И он отлично всё масштабирует, бьёт
строки, учитывает rowspan/colspan, <center> и border=1. Плюс достаточно
сделать w3m table.html > out для дампа отрендеренной таблицы,
опционально задав -cols XXX.

4 years agoAdvanced editing on UNIX (1993)
Sergey Matveev [Mon, 11 Jan 2021 18:21:42 +0000 (21:21 +0300)]
Advanced editing on UNIX (1993)

http://maibriz.de/unix/ultrix/etc/ae.pdf
В первую очередь, документ призван помочь секретарям.
А то совсем неумело тогда ed-редактором пользовались, позорище.

И ведь на самом деле, ed вполне себе мощный редактор. Не какой-нибудь
там блокнот. А если кому нужна история ввода и возможность
редактирования его строки, то просто запустить с rlwrap ed.

4 years agoBTC на дедушкином ноутбуке
Sergey Matveev [Mon, 11 Jan 2021 16:18:04 +0000 (19:18 +0300)]
BTC на дедушкином ноутбуке

https://lenta.ru/news/2021/01/11/bitcoins/
На старом ноутбуке деда нашли 127 BTC, что дофигище денег. А ведь и у
меня когда-то был 0.1 BTC, где-то полученный просто так, раздаваемый
ради тестирования. Тогда 1 BTC стоил чуть менее 30 руб. вроде. Помню
что, когда понял что BitCoin -- фуфло неработающее (с шифропанковской
точки зрения), то rm -r директории со всем этим сделал.

4 years agorsync проблемы
Sergey Matveev [Mon, 11 Jan 2021 13:18:20 +0000 (16:18 +0300)]
rsync проблемы

Вот уже много лет замечаю что rsync с некоторыми серверами в Интернете
отказывается работать нормально: спустя несколько минут, без разницы что
передаётся (много маленьких файлов или середина какого-то большого), он
просто зависает. Ничего не делает, пока remote peer не отрубит
соединение и пока не сработают timeout-ы rsync-а чтобы он вышел. Пытался
на днях синхронизировать Project Gutenberg библиотеку, но на больших
файлах (.iso) оно по сути просто неюзабельно. Пытался обновляться,
пытался использовать "--whole-file" опцию, которая у многих на всяких
stackexchange помогает, но ничего не помогает. Парой лет прежде я тоже
пытался побороть и вроде даже в truss залазил смотреть что не так, но до
сих пор решения не знаю. Прежде я думал что возможно это у меня с сетью
что-то не так, ибо при PPPoE MTU был ≠1500, но сейчас у меня 1500.

В итоге уже не первый раз я делаю rsync на машине со старой FreeBSD в
совершенно другой (не домашней) сети с куда более древними версиями
rsync-а из портов.

4 years agoUSB4 vs Thunderbolt 4
Sergey Matveev [Mon, 11 Jan 2021 08:07:10 +0000 (11:07 +0300)]
USB4 vs Thunderbolt 4

https://fabiensanglard.net/nousb/index.html
Наслышан про сложности USB Type-C и Thunderbolt 3
(6d75cc7b8003ded7a8431fc78569bd24a3b42296), но с USB4, судя по
картинкам, ещё больший зоопарк. Верно автор заметил что прежде у
компьютеров была тьма разных портов, потом много из них заменилось USB,
затем ещё и USB2 (USB1 то всё же слишком медленный для многих задач). А
с USB4 выглядит так, что снова у нас радуга разных портов, отличающихся
визуально только приписками над ними. А Thunderbolt 4 заявляет что будет
"один", как старый добрый USB.

4 years agoОтдельные страницы категорий к ссылкам
Sergey Matveev [Sun, 10 Jan 2021 17:55:51 +0000 (20:55 +0300)]
Отдельные страницы категорий к ссылкам

http://www.stargrave.org/Links.html
Недавно я приделал категории к коллекции ссылок
(df5af37e96c74dedf26d1a2614cb2fe79a7f52ba), а сейчас они отображаются на
отдельных страницах. Добавил множество статических, поправил кучу всяких
ошибок и недочётов.

4 years agogoredo в AUR и 0.11.0 релиз
Sergey Matveev [Sun, 10 Jan 2021 15:19:44 +0000 (18:19 +0300)]
goredo в AUR и 0.11.0 релиз

https://aur.archlinux.org/packages/goredo/
http://www.goredo.cypherpunks.ru/News.html#Release-0_002e11_002e0
Kai Hendry взял и запилил AUR порт goredo для Arch Linux. А мне пока
влом делать порт для FreeBSD. Очень уж меня напрягает тот факт, что
порты похоже нужно регулярно и постоянно собирать на всё обновляемых
версиях FreeBSD, что тот ещё геморрой (точнее бремя maintainer-а).
Даже NNCP и GoVPN за меня делают другие люди по сути а я и не знаю
откуда они берут всю эту информацию и прочее.

А ещё сделал 0.11.0 релиз, где поправил корявое поведение при указании
кол-ва параллельных задач: REDO_JOBS перебивал -j опцию и мне
приходилось делать REDO_JOBS= redo -j... пока перестал это терпеть. Ну и
заодно взял и добавил BLAKE3, вместо BLAKE2b. Вряд ли у кого упор был бы
в хэш, но всё же почему бы побыстрее штуку не впилить, потенциально
вскоре ещё и получающую (конкретная реализация) неограниченное
распараллеливание из-за Меркле деревьев. Тем более что тут нужна
проверка именно целостности только.

Но я взял не github.com/zeebo/blake3
(4c02094d684f2a9ac2736a67532a8f97eeec527c), а lukechampine.com/blake3,
хотя код последнего мне меньше нравится. Но у zeebo среди зависимых
библиотек есть пара без какой-либо лицензионной информации, что
автоматом является не свободным ПО. Хотя они используются и только для
внутри тестов, но геморрой возиться с созданием fork-а без них. Скорость
lukechampine.com/blake3 всё равно в два раза выше у меня чем у
golang.org/x/blake2b.

4 years agoТермоядерное технопорно
Sergey Matveev [Sun, 10 Jan 2021 11:12:34 +0000 (14:12 +0300)]
Термоядерное технопорно

https://habr.com/ru/post/536642/
В отличии от фотографий где показывают всякие элементы ракет, КЛА,
самолётов, тут вообще не понимаю даже назначения половины систем которые
строятся. Но интересно посмотреть на всю эту технику!

4 years agoСнова рабочие места с ЛОРа
Sergey Matveev [Sun, 10 Jan 2021 10:20:12 +0000 (13:20 +0300)]
Снова рабочие места с ЛОРа

https://www.linux.org.ru/gallery/screenshots/16088342
https://www.linux.org.ru/gallery/workplaces/16092031
Вот два ярких примера того, что люди считают настоящим рабочим местом.
Кто-то считает что оно должно быть засрано, а всё где чистенько это
только показуха и позёрство, где настоящей работы не происходит. Я с
этим не согласен, но на первой фотографии всё же наверное нельзя
однозначно сказать что место засрано: поверю что всё на своих местах и
коробочки из под килек... ну просто вот такие вот коробочки.

Но по моему место должно быть удобным. Если человеку с первой фотографии
удобно работать в пространстве его подстилки под манипуляторы (видел что
многих это устраивает), то ok. Если человеку удобно дотянуться до рации
на столе или не приподнимая попы вставить что-то в розетку на столе под
монитором -- ok. Но лично для меня вторая фотография это пример
действительно удобного места.

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

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

Звукопоглощающие панели -- крутая идея! Я заметил что в новых домах звук
куда лучше проходит по менее полым материалам стен, чем было во времена
СССР. И в спальне я соседей вполне себе слышу и были мысли о ещё лучшей
звукоизоляции (хотя она у меня имеется, при мне покупали рулоны
какого-то пористого материала).

Лично меня ещё смущает прозрачный корпус, но про это уже писал:
0fe54563cd0a99b823d5fd41c55560068e2d83ca. Но подобное место само собой
дорогого стоит, как минимум достаточной площади в квартире и в шкафах
чтобы хранить всё что вывалено на стол на первой фотографии. Никто не
будет спорить что лучше иметь большую квартиру чем маленькую
однокомнатную -- кто бы дал средств на это.

И ещё мне просто приятно что у человека один монитор. Знаю тех у кого по
4-5. Я пытался за свою жизнь жить с двумя или хотя бы с ноутбуком рядом
с открытой крышкой, но так и не нашёл use-case-ов для этого. За
последние лет пять только один момент вспомнил когда я использовал
ноутбук как монитор рядом -- отлаживал http://www.gostipsec.cypherpunks.ru/
где в ноутбуке был вывод tshark в котором мне надо было все эти
считанные байты сравнивать. Хотя дома второй монитор то есть -- но
только он на тумбочке рядом, чтобы подключить к нему какой
компьютер/ноутбук/сервер без затрагивания основного рабочего места.

4 years agogoredo 0.10.0 tarball
Sergey Matveev [Sat, 9 Jan 2021 20:38:09 +0000 (23:38 +0300)]
goredo 0.10.0 tarball

https://lists.cypherpunks.ru/pipermail/goredo-devel/2021-January/000000.html
Один человек изъявил желание опакетить goredo для Arch Linux. А я знаю
насколько неудобно собирать Go программы без наличия всех зависимостей
рядом. Поэтому goredo теперь стал иметь и Info/Texinfo документацию и
сайт, с моим "фирменным" стилем и tarball со всеми зависимостями. Плюс
рассылку сделал для него.

А вообще сегодня обнаружил что goredo не очень корректно высчитывал
зависимости для default.do целей который находятся не рядом и выполняют
цели в поддиректориях. И ни один из apenwarr/redo и redo.sh-tests тестов
не покрыл этот use-case. Причём всё в целом работало... просто постоянно
пересобирало что не требуется.

4 years agoСтало трудно вспоминать с кем общаюсь в почте
Sergey Matveev [Sat, 9 Jan 2021 16:27:49 +0000 (19:27 +0300)]
Стало трудно вспоминать с кем общаюсь в почте

За последние несколько месяцев у меня что-то стало так много
собеседников (относительно того что было прежде), round-trip-ы общения с
которыми занимают несколько дней или недель. И мне трудновато вспоминать
кто есть кто. Со всех концов Земного шара и самые разные имена, по
которым не дифференцирую людей. Да и среди русскоговорящих это тоже не
помогает. Прям вот хочется завести уже recfile в котором делать пометки
кто есть кто, какие особенности человека (ну в плане кто что попробовал,
у кого какие проблемы, что обсуждали, что надо бы спросить/ответить).
Раньше я например мог запомнить что у "этого вот чешское ФИО", про себя
запоминаю как "чех" и этого хватало. Но сейчас чешских имён стало не
одно. Среди русскоговорящих есть и россияне и украинцы и москвичи: то
что можно упомянуть/вспомнить москвичу, не будет понятно не местным или
зарубежным.

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

4 years agoБезопасность биометрии
Sergey Matveev [Sat, 9 Jan 2021 13:12:01 +0000 (16:12 +0300)]
Безопасность биометрии

https://shkspr.mobi/blog/2021/01/falsehoods-programmers-believe-about-biometrics/
Ничего нового (65d0e16b4a4135c6a98941fd8612d14afb550805), но снова
повторение того, что как сейчас массово любят использовать биометрию --
ужаснейшая небезопасность. Её нельзя сменить, в отличии от пароля или
токена какого-нибудь. Она публична и её везде люди "оставляют" и вполне
себе успешно всё регулярно копируется злумышленниками. Она подходит для
идентификации хорошо, не более. Либо только как ещё один фактор
аутентификации низкоэнтропийный.

Но в этой статье порадовало то, что дочка научилась разблокировать
телефон пальцем спящего отца... он поэтому теперь спит в перчатках.

4 years agoРелиз goredo
Sergey Matveev [Fri, 8 Jan 2021 14:23:51 +0000 (17:23 +0300)]
Релиз goredo

http://www.git.cypherpunks.ru/?p=goredo.git;a=commitdiff;h=14398260feaf14dac68b9bdb1c810ccba7d1e768
Ещё в прошлом году один товарищ убедил что не помешает бы вкинуть про
redo/goredo куда-нибудь. В рассылку apenwarr/redo мне не удобно (по сути
ведь чисто реклама), а вот в dev@suckless.org вбросил, продолжая тему
которая там была поднята ещё в 2013-ом году. Тогда Uriel
(c2aa39a4a2db937c177b2b196eda52acbc51d2a8) сказал, что пока оно не будет
написано на Си или Go -- смотреть не будет ничего Python-овского. Ну как
раз вот моя реализация на Go появилась, как и redo-c за это время. С
того времени там и вкидывали на review .do файлы и сегодня уже лично со
мной связались с этой темой. Как минимум, с той рассылки, несколько
человек но заинтересовались и начали пробовать redo.

Оказывается, goredo то мой вроде как и никогда и не мог собираться на
GNU/Linux системах. Я использовал syscall для определения ctime файла, а
эта структура разнится на FreeBSD и Linux (в FreeBSD/NetBSD/Solaris она
одна, в OpenBSD/DragonFlyBSD/Linux другая). Сегодня починил (использовал
golang.org/x/sys/unix) и заодно прогнал все имеющиеся тесты на Ubuntu
какой-то там последней -- всё тип топ. А то ведь прежде я даже собирать
не пытался на этой ОС.

4 years agoРелиз NNCP
Sergey Matveev [Fri, 8 Jan 2021 14:01:38 +0000 (17:01 +0300)]
Релиз NNCP

https://lists.cypherpunks.ru/pipermail/nncp-devel/2021-January/000178.html
На днях начал реализовывать деревья Меркле, чтобы можно было частями их
обновлять. В NNCP думал что это пригодится для того чтобы, не зная
точного размера передаваемого файла, в конце обновить заголовок и быстро
пересчитать дерево с результирующим хэшом. Но не доделал, ибо прежде
обнаружил что у меня есть случаи когда файл шифруется потокового сразу в
несколько "обёрток", что так сильно всё усложняет, что плюнул на идею.
Но вот вот почти почти я заиспользовал бы Меркле на практике.

В итоге в NNCP так толком ничего и не сделал, кроме простых bugfix-ов.
Но конечно же это тоже приятно. Обнаружилось что на Go 1.10 оно уже не
будет собираться, так как есть golang.org/x зависимости где используется
GOOS=aix, а 1.10 ничего про это не знает и поэтому не игнорирует файл.

А ещё тут описали свой use-case NNCP (be88dfcd96ff0a7c75ccd803b8e72ad15629e7f6):
https://lists.cypherpunks.ru/pipermail/nncp-devel/2021-January/000159.html
человек прогоняет куда бОльшие объёмы данных чем я, через NNCP. Хотя у
меня больше разнообразия в используемых фичах. Есть баги с сетевыми
программами, но данные не искажаются и не пропадают -- это самое главное.

4 years agoТехнологии очков виртуальной реальности
Sergey Matveev [Thu, 7 Jan 2021 17:06:22 +0000 (20:06 +0300)]
Технологии очков виртуальной реальности

https://youtu.be/LQwMAl9bGNY
Вообще ничего не знаю про подобные очки, кроме того что там внутри линзы
и дисплей. А тут куча всего интересного рассказано и показано.

4 years agoГировозы
Sergey Matveev [Wed, 6 Jan 2021 19:41:25 +0000 (22:41 +0300)]
Гировозы

https://habr.com/ru/post/536306/
Ух какие только не придумали транспортные средства! В космосе про
маховики, являющиеся аккумулятором энергии, я в курсе что используется.
Но вот на Земле не слышал что даже целые вагоны перевозят такими.

4 years agoПопробовал github.com/zeebo/blake3
Sergey Matveev [Wed, 6 Jan 2021 13:49:48 +0000 (16:49 +0300)]
Попробовал github.com/zeebo/blake3

И вообще впервые попробовал BLAKE3, более детально вчитываясь в его
спецификацию.

Очень нравится то, что и в самой спецификации и в zeebo/blake3, Rust
реализации и github.com/lukechampine/blake3 очень простой интерфейс:
либо хэшируй, либо хэшируй с ключом, либо ещё и учитывай контекст (то
что в других хэшах было personalization string, application context).
BLAKE2 вообще предоставлял возможность указывать контекст использования,
но это мало кто из реализаций предоставляет в виде API. В BLAKE3 все
реализации попробованные это дают. Длину хэша какую надо? А вот сколько
прочитаешь из io.Reader выхлопа, столько и будет. Нужен XOF? Аналогично
просто вычитывай. В общем API и простота использования и необходимая
гибкость (ключи, контекст, длина хэша, XOF) -- всё очень нравится.

Без ассемблерных оптимизаций (amd64), скорость BLAKE2b-256 и BLAKE3 на
pure Go у меня примерно схожи. Но, zeebo/blake3 не делает никакого
распараллеливания. А если ассемблерные оптимизации использовать, то
BLAKE3 быстрее раза в два чем BLAKE2b (тоже с ассемблером). А ведь у
него и потенциально неограниченный простор для распараллеливания из-за
хэш деревьев.

4 years agoТорвальдс критикует Intel за ECC память
Sergey Matveev [Wed, 6 Jan 2021 09:59:35 +0000 (12:59 +0300)]
Торвальдс критикует Intel за ECC память

https://habr.com/ru/news/t/536260/
А мне вот с ходу было сложно поверить что AMD прям реально просто так
даёт на простых процессорах поддержку ECC хоть в простые домашние
компьютеры. Я ведь привык к тому что ECC это удел минимум Xeon-ов, грубо
говоря, поэтому для домашних ПК про неё можно забыть. Я ж поэтому и
покупал себе серверы чтобы там был Xeon только и только из-за моего
желания иметь ECC память, а не ради какой-то там производительности или
подобного. А AMD показывает что это вовсе не роскошь.

4 years agodd с conv=fsync в Linux
Sergey Matveev [Wed, 6 Jan 2021 09:52:22 +0000 (12:52 +0300)]
dd с conv=fsync в Linux

https://abbbi.github.io/dd/
Про себя я был уверен что dd работает минуя подсистему ФС, как минимум
её кэш, ведь речь же не про ФС, а про блочное устройство (если речь про
работу с ним). В FreeBSD это так, никаких conv=fsync у нас нет. А вот в
Linux фиг -- всё равно будет при больших блоках кэш использован и
поэтому нужно пользователю явно руками указывать fsync/direct опции.
Плюс старая история о проблемах PostgreSQL с fsync-ами на Linux:
51b598a5b096892b8156da48dfb386ab755fff14 и здесь проявляется.

4 years agoGithub снимает ограничения для Ирана
Sergey Matveev [Wed, 6 Jan 2021 09:36:33 +0000 (12:36 +0300)]
Github снимает ограничения для Ирана

https://www.opennet.ru/opennews/art.shtml?num=54360
Ну конечно же, как только один из тупиц натовских (потому что не знал
про особенности работы натовских Интернет служб в ряде стран) напоролся
на проблему, так сразу сняли все ограничения. Часть РФ, Сирия тоже у них
на подходе. А Судан, КНДР? Приглашать очередного ноющего натовца? А так
есть список относительно регулярно обновляющийся кто не будет работать в
Иране: https://gist.github.com/alibo/dfd7c258bcc44a0e8c9f7c5bfd3bd2c3 ну
и автоматом, насколько понимаю, в Сирии и запросто Крыму. В Сирии помню
что Go сайты не работают.

4 years agoprintf лучше echo?
Sergey Matveev [Tue, 5 Jan 2021 14:12:31 +0000 (17:12 +0300)]
printf лучше echo?

https://unix.stackexchange.com/questions/65803/why-is-printf-better-than-echo
Большая развёрнутая подборка того, как отличается поведение echo в
разных ОС, в зависимости от входных данных. Если коротко, то echo точно
работает только с данными чётко и явно контролируемыми программистом
(echo foo), но не получаемыми извне (echo $foo).

4 years agoIBM PC/AT
Sergey Matveev [Tue, 5 Jan 2021 14:07:19 +0000 (17:07 +0300)]
IBM PC/AT

https://habr.com/ru/post/536184/
Насколько помню, наш первый ПК дома (кроме клона ZX Spectrum) был прям
буквально как на фотографиях в статье. Точно такой же корпус,
индикаторы, два дисковода и даже такой же монитор с клавиатурой. Это
наверное прям чисто PC/AT как он есть.

4 years agoПро подкасты и vlog-и
Sergey Matveev [Tue, 5 Jan 2021 13:54:39 +0000 (16:54 +0300)]
Про подкасты и vlog-и

https://avva.livejournal.com/3337341.html
Солидарен с автором поста о том что сабжевые способы подачи информации
-- крайне медленные, не поддаются "чтению по диагонали", поиску в них
информации и быстрому анализу (глазами).

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

Когда в новостных агрегаторах идут ссылки на YouTube, то зачастую я даже
не буду открывать это, ибо просто жалко тратить на это время (со столь
низким КПД получения информации).

4 years agoПрочитал "Я возьму сам"
Sergey Matveev [Tue, 5 Jan 2021 13:47:18 +0000 (16:47 +0300)]
Прочитал "Я возьму сам"

https://ru.wikipedia.org/wiki/%D0%AF_%D0%B2%D0%BE%D0%B7%D1%8C%D0%BC%D1%83_%D1%81%D0%B0%D0%BC
Кроме книг про Ходжу Насреддина, ничего прежде не читал близкого к
восточному миру (иранскому, арабскому). Хотя книга то написана в 1998
харьковскими писателями. Очень необычно (для меня), но понравилось, хотя
и без восторга. Довольно активные приключения. Книга хоть и является
"началом" Кабирского цикла книг, но я всё ж вряд ли буду продолжать читать.

4 years agoПробую возвратиться на newsboat
Sergey Matveev [Sun, 3 Jan 2021 11:20:12 +0000 (14:20 +0300)]
Пробую возвратиться на newsboat

https://newsboat.org/
http://www.git.stargrave.org/?p=linksexp.git;a=commitdiff;h=e546208d84c0c241b16503539dc9070814d063c4
На фоне создания БД с ссылками (df5af37e96c74dedf26d1a2614cb2fe79a7f52ba),
пробовал newsboat (то что раньше называлось newsbeuter) для проверки OPML.
И очень уж приглянулся мне этот newsboat снова. Помню что rss2email в
первую очередь я ставил чтобы абсолютно изолированно получать новости и
читать их, без нужды использования ноутбука подключённого к Интернету
для скачивания этих новостей. Но вот уже какой год я крайне редко куда
выезжаю и как-правило я вообще не беру с собой технику, находясь в
offline.

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

Плюс добавил поддержку генерирования urls файла с категориями для него.

4 years agoЦифровое завещание
Sergey Matveev [Sun, 3 Jan 2021 11:07:25 +0000 (14:07 +0300)]
Цифровое завещание

https://vitus-wagner.dreamwidth.org/2218336.html
На днях умер известнейший фидошник qkowlew. К сожалению, я не знаю кто
это и только сужу по многочисленным feed-ам людей на кого подписан. Но в
этой статье речь про то, что в случае внезапной гибели, неплохо бы иметь
"завещание". Если у человека хостилось множество чего-то чужого, да и
вообще имелась информация ценная на компьютере, то было бы неплохо иметь
возможность доверенным людям это всё разгрести и, как минимум, получить
к этому доступ. Конверт, доверенные люди, базовые пароли и всё такое.

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

4 years agoМама про Андрея Ткачёва и православие
Sergey Matveev [Sun, 3 Jan 2021 10:52:15 +0000 (13:52 +0300)]
Мама про Андрея Ткачёва и православие

Два года назад я писал гневную запись про этого популярного протоиерея
(5c784c73a7666dc58c323ab71e586f6ce494a867), статья которого "Лишние
люди" в открытую говорила что подобные мне -- лишние люди. У родителей
что-то зашёл разговор на эту тему и я упомянул эту статью. Мама, которая
что-то иногда смотрит/слушает на тему нашей религии, сказала что
наверное даже знает про кого именно я. Она не читала этой статьи, но
видела выступления этого протоиерея и у неё полностью аналогичные мысли
и впечатления были о том что, мол, её сына, дай волю этим церковным
работникам, сразу бы в печь, как нацисты, засунули бы, раз бесполезный
человек. Ну и какого ей слышать тот факт что она в пустую прожила жизнь,
раз вырастила пустышку?

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

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

Для меня религия это страшная штука по сути -- она невероятно разобщает
людей. Аналогично политическим взглядам например. Видел и слышал не раз
как и православие и любые другие проклинают рок Beatles или любой метал.
Видел как относятся к любому (с элементами черноты) юмору или
воспринимают *любое* слово независимо от мотивов или контекста
применения. Если при (действительно) верующем человеке ляпнуть "убил бы
тебя" (как родители часто говорят с горяча непослушным детям), то он это
буквально воспримет, никак иначе.

4 years agoCtags с git-ом
Sergey Matveev [Sun, 3 Jan 2021 10:47:37 +0000 (13:47 +0300)]
Ctags с git-ом

https://tbaggery.com/2011/08/08/effortless-ctags-with-git.html
Рецепт от Tim Pope в виде hook-ов git-а чтобы автоматически запускать
ctags индексирование файлов под управлением VCS (git ls-files). Хороший.

Хотя лично для меня не удовлетворительный. Во-первых, мне нужна
индексация не только на файлы под git-ом -- я часто делаю символические
ссылки на исходный код зависимостей, чтобы и они под индексацию попадали.
Во-вторых, работа над файлами может идти днями без помещения их в git.
В-третьих, опять же скорость -- при ± каждом изменении в git-е делать
переиндексацию может быть дорого, ибо на больших проектах секунд 5-10
можно ждать её.

4 years agoНовый год с животными по ТВ
Sergey Matveev [Sat, 2 Jan 2021 15:30:41 +0000 (18:30 +0300)]
Новый год с животными по ТВ

Почти два дня я не притрагивался к клавиатуре вообще. Встретил новый год
с родителями. До четырёх утра смотрел National Geographic у них по ТВ. А
затем играли вместе в настольные игры и смотрели фильмы.

4 years agoПохудел ещё на 3кг
Sergey Matveev [Sat, 2 Jan 2021 15:27:15 +0000 (18:27 +0300)]
Похудел ещё на 3кг

За ещё полмесяца (3b93c354be492e15048f634c360a16d8698a8774) похудел ещё.
С праздниками конечно это компенсируется, но меня очень радует что вес
уже меньше 80кг. Причём последнее время я вообще не заморачивался с
соблюдением режима питания.

4 years agoСон с лишней комнатой
Sergey Matveev [Wed, 30 Dec 2020 13:12:41 +0000 (16:12 +0300)]
Сон с лишней комнатой

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

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

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

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

4 years agoТанцующие роботы
Sergey Matveev [Wed, 30 Dec 2020 13:07:37 +0000 (16:07 +0300)]
Танцующие роботы

https://www.youtube.com/watch?v=fn3KWM1kuAw
Впечатляет подвижность и шустрость этих здоровых тяжёлых механизмов! Я и
половины то не смогу станцевать как они. Вообще даже немного пугающе они
двигаются. Другую текстуру на такого нацепить и вот очередной опасный
монстр из какого-нибудь Doom/Quake.

4 years agoСделал автогенерирование страницы с ссылками
Sergey Matveev [Tue, 29 Dec 2020 20:21:20 +0000 (23:21 +0300)]
Сделал автогенерирование страницы с ссылками

http://www.stargrave.org/Links.html
http://www.git.stargrave.org/?p=linksexp.git;a=tree
https://copia.posthaven.com/xoxo-versus-atom-versus-xbel-for-web-feed-lis
Ссылок стало что-то много и меня уже начало пугать что знания о URL до
feed-ов находятся в JSON state файле rss2email, а знания о ссылке для
человека совершенно отдельно и несвязанно. Самое геморройное это
засунуть это в какую-нибудь БД, а не руками набиваемый Texinfo файл.
Само собой это recfile, где каждая ссылка это что-то подобное:

    Title: cr.yp.to
    Note: D. J. Bernstein's blog
    URL: http://blog.cr.yp.to/
    Category: Crypto
    Category: IT
    Feed: http://blog.cr.yp.to/feed.application=xml

    Title: Cretaria's blog
    URL: http://blog.cretaria.com/posts/
    Category: IT
    Feed: http://blog.cretaria.com/rss.xml

    Title: Crypto discussion list
    URL: https://lists.randombit.net/mailman/listinfo/cryptography
    Category: Crypto
    Category: Maillist

Ну и написал на Go быстренько конвертер из этого файла (с
соответствующей сортировкой и группировкой) в Texinfo, а потом ещё и
XBEL с OPML добавил. Про два последних формата я только слышал название
и что OPML для обмена URL-ами feed-ов используется. XBEL понравился
(меньшее из зол, так то, будучи XML, нет конечно) простотой и ничем
лишним для выполнения задачи по передачи закладок. А OPML... с трудом
всё же решил сделать выхлоп и в нём, ибо всё восстаёт во мне против
формата в котором эти уродские пиндосские даты используются, вместо
человеческих. Это простительно для 80-х годов. Но простота OPML такова,
что чёрт с ним, пускай и он будет.

Но ещё предстоит работа по категоризации более нормальной всего этого.

4 years agoDungeons of OpenSSL
Sergey Matveev [Mon, 28 Dec 2020 11:00:13 +0000 (14:00 +0300)]
Dungeons of OpenSSL

Вчера полдня провёл не вылазя из lldb. Я понял почему меня не так сильно
тянет к IF-играм: я в них и так играю, путешествуя по лабиринтам
костылей OpenSSL кишок и смежных engine-ов. И интерфейс lldb как в
IF-ах: up, up, s, s, n, n, f и т.д.. И пазлов полно -- пойди пойми какая
зараза меняет что-то неположенное.

lldb очень радует: заюзал впервые его watchpoints -- очень удобная
штука, в первую очередь помогавшая в обнаружении проблемы одной. Я уже
наверное весь основной функционал потрогал.

Но так как он использует libedit, то надо явно включить vi-клавиши
через: echo bind -v > ~/.editrc.

4 years agoIntermediate Vim
Sergey Matveev [Mon, 28 Dec 2020 09:06:21 +0000 (12:06 +0300)]
Intermediate Vim

https://www.hillelwayne.com/post/intermediate-vim/
Начал я читать эту статью и чувствую что снова ничего нового для себя не
открываю и не узнаю. Хотя про q:, q? и q/ я узнал относительно недавно
(38eda50c5490f806cf9430568c45a3c567ca3c09). Но в этой статье для себя
открыл возможность ввода "_o" для прыжка на другой конец визуального
выделения. Не знаю часто ли мне это бы пригождалось, но выглядит
полезно, ибо, как автор и заметил, бывает что ошибаешься с выбором
начала выделения.

4 years agoПосмотрел "3 идиота"
Sergey Matveev [Mon, 28 Dec 2020 08:00:49 +0000 (11:00 +0300)]
Посмотрел "3 идиота"

https://ru.wikipedia.org/wiki/3_%D0%B8%D0%B4%D0%B8%D0%BE%D1%82%D0%B0
Забавный понравившийся индийский фильм. И легко понять что индийский,
ибо время от времени, да обязательно все споют и потанцуют. Но есть и
смущающее: как-то он уж очень местами слишком наивен и простоват. Так и
хочется сказать что тут ребёнка маленького что ли посадили писать
сценарий? Однако я ведь тоже самое про наивность уже говорил про другой
индийский фильм "Случайный доступ" (e97f809e8485b8f1c2def6bb5b533694c98ee58f).
Да и прежде у меня такая мысль была и по поводу более старых их фильмов.
Явно это разница культур, требований (?), а может быть целевой аудитории?
Но, как и прежде, не могу не заметить как нравится актриса (внешне) что
и в "доступе" были (Карина Капур).

Я уж не знаю правда ли в фильме не сильное преувеличение, но в нём
упорно показывается и подчёркивается что в инженерном институте
преподаватель хочет слышать определения из учебника, а на простом
человеческом понятном языке не вариант. Я слышал подобное про китайцев
когда-то -- что у них в культуре гвоздями прибито повторение, зубрёжка,
а не выдумывание нового. Сейчас то в Китае я думаю уже всё преобразовано
или в процессе -- не даром они всюду в мире выходят по технологиями
вперёд. А вот индийских специалистов это понимание наверное ещё не
коснулось. У нас в институте как-раз было наоборот: прочитаешь
зазубренные определения или хоть целые главы книги -- преподавателю
насрать. Он будет задавать вопросы чтобы понять понимаешь ли ты что сам
только что сказал (вызубрил) или нет. Ведь зубрилам дай вопрос чуть в
стороне или иначе сформулированный и он уже теряется и не в состоянии
ответить, что выводит его на чистую воду. Ты можешь ответить когда надо
продувать ракету азотом, а когда гелием и где располагаются баки с
окислителем (выше/ниже) и если бы ты писал тест, то дал бы правильные
ответы и "зачёт". Но у нас, благо, не было тестов, а преподаватель
задаст вопрос "почему?" чтобы понять что ты не просто знаешь справочную
информацию, а понимаешь причину почему всё так.

4 years agoGenerics в Go
Sergey Matveev [Mon, 28 Dec 2020 07:42:38 +0000 (10:42 +0300)]
Generics в Go

https://groups.google.com/forum/print/topic/golang-nuts/LEEuJPOg0oo
Недавно тут начали войнушку против потенциальной идеи включения
generic-ов в Go. Мол после этого придётся fork-ать язык, ибо смерть
для него.

С одной стороны, если надо проголосовать, то я не долго думая, сразу же
тоже скажу что generic-и не нужны. Живём уже десять лет без них и это
САМЫЙ прекрасный, клёвый и офигенный язык. Потому что все решения в нём
взвешены крутейшими хакерами и ничего не делается и не добавляется
просто потому что могут, потому что у других есть, потому что здесь и
сейчас это было бы удобно. Тот же Python уже не первый год уродуется
только так вовсю, ещё больше отталкивая от себя. Не говоря про C++ и
прочие ужасы этого мира. А generic-и для меня это открытие ворот в ад:
возможности лёгкого написания сложного кода.

Собственно, зачинщик этой темы в рассылке про это же всё и говорит.
Однако, ещё до этого спора в рассылке, у меня в голове другое отношение
существует: чуть ли не с самого начала были идеи добавить generic-и в
Go, но никто и никогда нигде не говорил что их быть не должно, что они
не нужны -- их не добавляли потому что пока не могли придумать и решить
как это сделать правильно. Ведь ООП однозначно принёс миру больше вреда
чем пользы, но то как его подобие реализовано в Go -- это очень
продуманно и однозначно полезно. А раз крутейшие хакеры 10+ лет не могут
придумать как сделать generic-и, то задача не проста. Но раз они
"справились" с "текущей" версией Go, то почему не доверять что и
generic-и которые они придумают будут решением хуже чем придуманные
интерфейсы например? Вот и автор темы даже принёс извинения Ian Lance
Taylor-у, ибо уж кто кто, но этот человек точно понимает ценность
простоты и опасность сложности.

Я перестал следить за этой темой уже. В данном случае у меня полностью
нет своего мнения, ибо я ни капли не человек который мог бы принимать
решения по дизайну языков программирования. Но я полностью доверяю
решениям core хакеров, которые 10+ лет занимаются "проблематикой"
generic-ов. Это как в Linux -- если эти ребята что-то реализовали, то
стоит подождать ещё несколько релизов чтобы хотя бы начать пробовать и
то не факт что оно когда-либо будет рабочее. А FreeBSD долго вынашивают
идеи и код и если сказали что ready to use, значит ready to use. Вот и в
Go аналогично. Они ни разу не подводили своими решениями -- одни только
модули (относительно) недавно добавленные чего стоят!

4 years agoПосмотрел "11:14"
Sergey Matveev [Sun, 27 Dec 2020 11:26:21 +0000 (14:26 +0300)]
Посмотрел "11:14"

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

4 years agoПосмотрел "Бассейн"
Sergey Matveev [Sun, 27 Dec 2020 08:35:51 +0000 (11:35 +0300)]
Посмотрел "Бассейн"

https://ru.wikipedia.org/wiki/%D0%91%D0%B0%D1%81%D1%81%D0%B5%D0%B9%D0%BD_(%D1%84%D0%B8%D0%BB%D1%8C%D0%BC,_1969)
У меня такое впечатление что я вообще не видел ни одного фильма с Аленом
Делоном. Совершенно не могу вспомнить видел ли я его лицо где-нибудь
кроме исторических роликов. Отец посоветовал этот фильм с ним. Фильм
хорош, как и игра Алена. Надо ещё чего-нибудь с ним будет заценить.

4 years agoLego и конструкторы
Sergey Matveev [Sat, 26 Dec 2020 08:17:13 +0000 (11:17 +0300)]
Lego и конструкторы

https://grumpygamer.com/lego
Рон Гилберт приобрёл себе в подарок самый большой набор Lego. А я
вспомнил про детство своё. Особенно про три конструктора.

* Железная дорога, где на батарейках был паровоз и переключаемые
  стрелки. Не такая большая как в фильмах показывают с полкомнаты,
  конечно же. Но помню что играл в неё, даже когда родители ещё утром не
  просыпались.
* Металлический конструктор со всякими винтами, гайками, колёсиками,
  блоками и рычагами. Такой конструктор много у кого был и все
  вспоминают с большой теплотой о нём. Причём даже по схеме я не всё мог
  собрать.
* Лиго. Именно "Лиго", а не "Лего". По сути одно и то же, но Лиго стоил
  значительно дешевле, запросто являясь вообще нелегальной подделкой.
  Качество пластика конечно было ощутимо хуже, но ребёнка это разве
  волнует? Тем более что Лего бы родители не смогли бы позволить купить.
  А Лиго это огромная такая коробка с тьмой самых разных деталей, среди
  которых и куча валов с зубчатыми колёсами. Вот из Лиго я делал тьму
  всего. Особенно почему-то запомнилось что я делал модель Вавилона-5,
  который тогда показывали (хотя я поклонником точно никогда не был
  этого сериала). И Лиго наверное больше любит потому что в ней быстрее
  можно воплощать идеи и всё менять, чем в металлическом конструкторе
  где ещё нужно всё постоянно крутить и крутить.
  https://habrastorage.org/getpro/geektimes/comment_images/c95/f88/e08/c95f88e082e1406ef84abdae3bd9c850.jpg

Офигеннейшее изобретение человечества эти конструкторы!

4 years agoЕщё кто-то использует NNCP
Sergey Matveev [Sat, 26 Dec 2020 08:10:12 +0000 (11:10 +0300)]
Ещё кто-то использует NNCP

https://changelog.complete.org/archives/10163-rehabilitating-asynchronous-communication-with-nncp-a-cross-between-tor-ssh-and-uucp
Внезапно в своих feed-ах увидел как человек описывает своё использование
NNCP. Причём именно для чего он и предназначен: store-and-forward
передача больших объёмов данных. А сам человек из тех кто использует ZFS
и даже ленты. Приятно что отметили хорошую документацию проекта.

4 years agoCthulhu merge в git
Sergey Matveev [Fri, 25 Dec 2020 17:52:08 +0000 (20:52 +0300)]
Cthulhu merge в git

https://www.destroyallsoftware.com/blog/2017/the-biggest-and-weirdest-commits-in-linux-kernel-git-history
Статья про причудливые коммиты в Linux.
Merge коммит с 66 родителями. Это уже не octopus merge.

4 years agoГод прошедший
Sergey Matveev [Fri, 25 Dec 2020 16:12:20 +0000 (19:12 +0300)]
Год прошедший

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

* Профессиональное выгорание. И "восстановления" сейчас до сих пор нет
  (некоторые говорят что у них и спустя годы возврат производительности
  так и не происходит). Настолько бесполезного года в плане работе у
  меня не было никогда. Буквально никогда: я вообще ничего не сделал за
  этот год весомого полезного, хотя задачи интересные и желанные.
* От бывшего коллеги, мнение которого было ценно, неожиданных
  нелицеприятных вещей узнал, после чего почти ни с кем из прошлой
  команды не общаюсь. Пересмотрел своё отношение к людям в целом
* Научился ли я вообще хоть чему-нибудь в этом году? Единственное что
  приходит в голову -- redo. И goredo это единственное что новенькое
  написал из личных проектов. Наверное можно сказать что это год redo.
* Плюс начал программировать на Си. Что в целом нравится. Но пока ещё
  никакого полезного выхлопа (чтобы написанное начало использоваться
  где-либо).
* Обнаружилось что зрение дико упало, причём с сильной разницей по
  глазам. Сменил очки, а то даже минимума, формально необходимого для
  жизни, не было.
* Из-за карантина, только в начале года был на нескольких концертах.
  Жутко скучаю по ним! Да и за билеты вряд ли увижу деньги, что не малые
  потери.
* И никуда не ездил -- не то чтобы в Крым какой-нибудь, но даже в Нижний
  Новгород не вышло. Только в Москву и выбирался.
* Пару недель пожил с собаками. И неделю с кошками -- что для меня было
  совершенно новым опытом.
* Ставил себе условие чтобы пройти AMFV и Planetfall игры, но после
  первой части в AMFV так и не сдвинулось дело.

Но в целом и не сказать что что-то сильно плохо, кроме выгорания (ведь
профессиональные умения это единственное чем я ценен был). Родные и
друзья здоровы, барбосы здоровы -- это главное. Путин здоров, новое
правительство работает, работа для инженеров есть, импортозамещение идёт
нешуточными шагами. Третья мировая из-за террористических атак со
стороны США и Израиля не началась.

4 years agoExFAT не позволяет использовать " в имени файла
Sergey Matveev [Thu, 24 Dec 2020 11:31:59 +0000 (14:31 +0300)]
ExFAT не позволяет использовать " в имени файла

https://en.wikipedia.org/wiki/ExFAT
Внезапно сегодня открыл для себя для exfat не даст записать файлы с
двойными кавычками в имени файла. Коих у меня прилично среди аудиокниг.
А ещё файлы с двоеточием тоже не прокатят (тоже полно). Microsoft всё
равно найдёт возможность поднасрать людям.

4 years agoЧто ненавижу в Си
Sergey Matveev [Thu, 24 Dec 2020 09:51:21 +0000 (12:51 +0300)]
Что ненавижу в Си

1) Когда записывают if/for без фигурных скобок. Да, это 1-2 строки
экономит, но когда надо вставить ещё какую-нибудь команду, например
print для отладки, то начинаются пляски с добавлением. А ещё не всегда
замечаешь что фигурных скобок нет, вставляешь print, и только он после
if срабатывает, а штатная, следующая после него команда, уже находится
вне if.

2) В целом ненавижу как возвращается успех/не успех выполнения функи.
Такое впечатление, что половина людей/фунок считают int=0 успехом
выполнения, а половина int≠0, и ещё меньше нуля отдельная категория. И,
как правило, по названию функи не поймёшь что от неё ожидать. Вот если
cmp, то скорее всего 0 означает равенство. Вот только фиг -- есть и
исключения. Если функа называется is_equal, то точно стоит ожидать что
возвращает 1 при равенстве, чтобы можно было записать if(is_equal), но
это редкость встретить такие говорящие названия. Ну и лично я, когда
вижу, восклицательные знаки, то это ассоциируется с чем-то негативным,
отрицательным, хотя 100500 мест уже видел где if (!...) это проверка на
успешность выполнения. Плюс бесит отсутствие ЯВНЫХ указаний что
ожидается от проверки (==0, >-1, !=0, и т.д.) -- но это касается также и
кода для Python, где видел тьму ошибок совершаемых из-за этого. А ведь в
Unix return code = 0 это успех, хотя в Сях оно eval-ится в false.

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

Если какие-то функи возвращают NULL, то это значит что не успех. А в чём
ошибка? Или глобальные переменные смотри или в, указанную отдельным
аргументом, переменную с результатом смотри. Или >0 -- успех, ==0 --
такая-то ошибка, <0 -- другие такие-то ошибки.

После этого особо стал ценить задумку с error типом в Go. Вообще в Сях я
по сути пишу как на Go. Практически все функи возвращают структуру
которая как-бы является error-ом, внутри которого есть .code возможно
говорящий что ошибки не было. Все функи возвращают error этот, почти без
исключений. Это и возможность кучу дополнительной информации передать
сопутствующей ошибки. Код везде становится очень простым из серии:
err=MyFunc, if(HasErr(err)).

Ещё я всюду и везде делаю не просто указатели на массивы, но и рядом с
ними size_t размер данных. А в идеале вообще можно и нужно бы было
делать struct из указателя и размера, по сути делая недо-slice из Go.
Для входных read-only данных это const size_t, а для выходных это
size_t*, куда записывается кол-во данных записанных, или возвращается
ошибки и записывается сколько данных в dst нужно иметь, но не хватает.
Особенно видя OpenSSL код, я ужасаюсь кучей потенциальных проблем
которые может вызвать всё это отсутствие указания явных размеров и как
нужно доверять разработчику. Собственно, понимаю что с таким кодом
ненавидеть Си -- благое дело и здоровая реакция.

Отдельная боль это конечно очистка данных при выходе из функи, при
ошибках. Если в Go хотя бы есть garbage collector, то в Си нужно не
забывать освобождать память. В Go хотя бы есть defer или, как минимум,
анонимные функции. В Сях нужно очень аккуратным быть. Я делаю
int needCleanup = 0 переменную, а дальше с каждым действием требующим
"очистки"/освобождения, её инкрементирую (if (malloced == NULL);
needCleanup++). А при очистке декрементирую (free(...); needCleanup--) и
вставляю assert(needCleanup == 0) перед каждым return-ом. Костыль,
недоверие к самому же себе, но этот подход не раз уже окупился у меня на
практике.

4 years agoLLDB нравится
Sergey Matveev [Thu, 24 Dec 2020 08:03:09 +0000 (11:03 +0300)]
LLDB нравится

http://lldb.llvm.org/
Последние много использую LLDB и с ним очень приятно работать!
Во-первых, любо что не надо ставить GDB, имея полностью non-GNU
окружение. Во-вторых, в LLDB синтаксическая подсветка и куча всего
разукрашенного, что помогает работе. Не знаю схожи ли они по
возможностям или GDB всё же мощнее, но LLDB для моих нужд хватает с
лихвой. Нет правда интеграции с Vim-ом -- GDB протокол общения в LLDB не
заложен.

Есть некоторые неприятные вещи, типа необходимости указывать номера
строк и смещения (для memory read команд) через аргументы к функции. Как
программист я понимаю что это упрощает парсер, но удобству чуть вредит.
Но чтобы расставлять breakpoint-ы, то для Vim просто сделал штуку
самостоятельно высчитывающую строку для LLDB:
http://www.git.stargrave.org/?p=dotfiles.git;a=blob;f=vim/.vim/plugin/whereami.vim;h=8c55eded5f032db1fed06e8819392f70a01c70a3;hb=HEAD#l8

4 years agoКот там
Sergey Matveev [Wed, 23 Dec 2020 19:57:22 +0000 (22:57 +0300)]
Кот там

https://www.yaplakal.com/forum7/topic2069077.html
На Модели для Сборки в том числе такие короткие рассказы на несколько
минут читают. Нравится мне когда забавно смешивают и что-то очень старое
(домовых) и современное. И ведь кстати домового я сам повесил (не
самого, а за верёвочку) при входе. У родителей домовой в квартире тоже
водится в коридоре.

Относительно недавно даже спорил что домовой и барабашка это нифига не
одно и то же. И всякая Wikipedia говорит что я прав. Барабашка не
позитивная штука, более того, вообще в XX веке в СССР появившаяся. А
домовой, как и Леший -- не обязательно добрый, не обязательно злой.

4 years agoToshiba НЖМД NAS N300
Sergey Matveev [Wed, 23 Dec 2020 16:53:13 +0000 (19:53 +0300)]
Toshiba НЖМД NAS N300

Временно в руках оказался сабжевый диск. Собственно, его я заполнял
рандомом (cd2aaf4bf3c195d45e6ffcd59145decc4e9d7a5f), чистил и проверял.
Первый диск дома который более 200 MBps последовательной записи/чтения
скорость имеет. SMART его смотреть одно удовольствие: столько всего есть!
Очень приятное впечатление оставляет.

Сейчас я для себя даже делаю заметку что присматриваться стараться к
Toshiba дискам бы, ибо с ними у меня только самый положительный опыт
был. Hitachi/HGST до этого были моим кумиром, но, говорят, что сейчас
они уже не те пошли, хотя на практике у меня с ними проблем ещё не было.
Так то я штатно покупал Western Digital (главное не Green!), но и
Toshiba не сильно дороже, зато один SMART какой приятный! Главное чтобы
не Seagate.

4 years agovi то оказывается поддерживает тэги тоже
Sergey Matveev [Wed, 23 Dec 2020 12:04:41 +0000 (15:04 +0300)]
vi то оказывается поддерживает тэги тоже

Я вообще стараюсь дифференцировать vi и vim когда упоминаю какие-то
фичи. Большинство забывает что есть масса vi версий, а не этого жирного
монстра vim. И в FreeBSD именно (n)vi стоит, никаких vim. И я на работе
как-то даже был удивлён что некоторые не могут работать в vi, ибо отдают
исключительно vim-specific команды. Хотя у меня даже не сразу приходит
осознание что я не в vim -- работаю, значит, "канонично". Так вот nvi
оказывается поддерживает ctags tags из коробки (который тоже идёт из
коробки в FreeBSD).

4 years agoБесшумный мощный ПК
Sergey Matveev [Wed, 23 Dec 2020 07:39:28 +0000 (10:39 +0300)]
Бесшумный мощный ПК

https://fabiensanglard.net/tb3/index.html
https://fabiensanglard.net/the_beautiful_machine/index.html
Не часто встречаю интересные компьютерные установки чтобы глаз зацепился
за них. И сам ПК интересен своей радиаторной системой и отсутствием
вентиляторов (хотя мне казалось что вентиляторы с большим диаметров
бесшумны -- или такой уровень шума всё равно не считает отсутствием?). И
как всё подвешено везде и спрятаны провода.

4 years agoБыстрое заполнение диска рандомом
Sergey Matveev [Tue, 22 Dec 2020 21:26:56 +0000 (00:26 +0300)]
Быстрое заполнение диска рандомом

Если нужно заполнить диск рандомом (перед тем как отдать, сделав
заполнение нулями или просто для проверки), то dd if=/dev/urandom делать
не стоит для больших скоростей, ибо под FreeBSD используется полноценная
Fortuna PRNG, потребление и ротирование энтропии и у меня скорость
работы где-то 70-80 MBps, что не может насытить современный SATA диск.
Можно использовать (go)hpenc утилиты для генерирования более быстрого
рандома, но я делаю проще:

    # geli onetime -s 4K /dev/disk
    # dd if=/dev/zero of=/dev/disk.eli bs=1M

это конечно не запишет рандом в начало, так как там будет заголовок
GELI, но это уже можно "по старинке" перезаписать. При этом по сути всё
будет упираться в скорость AES-XTS (по умолчанию), который на
современных Intel процессорах и ускоряется ещё (поэтому в CPU не
упереться). А рандом будет по всему диску, так как хоть данные и ключ
одни и те же, но XTS в качестве tweak-а принимает порядковый номер
сектора, который везде будет разный. Вообще и размер GELI сектора можно
выставить большего размера, что ещё сократит нагрузку на CPU.

4 years agoШпионаж амишей
Sergey Matveev [Tue, 22 Dec 2020 19:32:22 +0000 (22:32 +0300)]
Шпионаж амишей

https://textfiles.libsyn.com/the-amish-shareware-episode
У Jason Scott интереснейший выпуск подкаста где, как выяснилось (хотя и
нет 100% уверенности, возможно это даже был розыгрыш), в коммуне амишей
выделили человека для того, чтобы он дал прослабление себе и начал
работать с компьютерами. Он даже поднял BBS-ку и общался с людьми, плюс
собирал кучу shareware. И каждый год, встречаясь со старейшинами,
докладывал и показывал как общаются и чем живут люди в окружающем мире.
Амишевская разведка. А когда его "служба" шпионская закончилась, то он
Jason Scott-у решил отдать все свои накопления ИТшные.

4 years agobroot заменяет TOML на Hjson
Sergey Matveev [Tue, 22 Dec 2020 19:26:05 +0000 (22:26 +0300)]
broot заменяет TOML на Hjson

https://dystroy.org/blog/hjson-in-broot/
Что такое broot я понятия не имею, но со всем остальным прошёл
аналогичный путь как и автор: JSON, INI, YAML, TOML... И точно также
аналогично, даже переписав NNCP на TOML (где конфиги далеко не в
несколько строек могут быть), убедился что TOML не для людей. Он прост
для работы компьютером, но для человека... нет уж. Hjson действительно
отличнейший компромисс во всём что я видел.

4 years agoКак индексируется исходный код?
Sergey Matveev [Tue, 22 Dec 2020 10:51:41 +0000 (13:51 +0300)]
Как индексируется исходный код?

https://lobste.rs/s/ujr9mg/how_do_you_index_code_your_projects
Автор вопроса описывает свой use-case:

    * Fuzzy find and open a file in the project (FZF :Files or Ctrl+P)
    * Fuzzy find and jump to line in the open buffer (FZF :Lines)
    * Grep the project and jump to line (FZF :Rg)

но прыгать на нужные "символы" (определения фунок и прочего) было бы
очень здорово. Когда-то он использовал vim-gutentags, но это медленно
для больших проектов и нужно не забывать про файл с тэгами.

Да, создание тэгов для больших проектов может занять время (у меня
наверно самые большие проекты по 10-15сек индексировались), но делается
это ведь достаточно редко. Даже с активно разрабатываемым проектом не
факт что за целый день я запущу переиндексацию (инкрементально вообще
никогда не пробовал). Так что это терпимо. Меня больше напрягает размер
этого файла по несколько мегабайт в лёгкую. И когда мне надо работать с
OpenSSL и libtasn1 кодом, то я просто делаю символические ссылки на их
исходник в своём проекте и ctags их отлично индексирует тоже.

Зато его простота, возможно генерировать хоть руками и интеграция в Vim
из коробки -- это стоит того! Достаточно узнать несколько команд для
навигации по тэгам и вот уже из коробки можно удобно работать с тьмой
языков программирования, не ставя для каждого свои уникальные плагины
или ожидать наличия LSP (в котором и прыжки по определениям не факт что
будут), который у меня в любом случае (ну кроме Go) ещё и медленнее
будет работать. Даже при наличии работающего goto-definition в LSP я всё
равно не использую его возможности (1ae39d6ffa08741a2564f3e095508ce49b11bf03),
как минимум, ради скорости (интерактивного перехода).

Для Python я ни у одного человека с Vim-ом не видел чтобы их
language-aware плагины достойно прыгали на определения. Даже знакомый с
Emacs-ом всё равно "путешествует" по коду через тэги. Конечно, всё ещё
зависит и от программы которой создаются эти тэги. Я недавно перешёл на
Universal Ctags (31a56f5de0234738b454049f5a18a8d8b65a11a3) потому что
Exhuberant не знал ничего про Go.

Для управления tags файлом я давным давно написал функу помощник и
никаких плагинов никогда не использовал за ненадобностью:
http://www.git.stargrave.org/?p=dotfiles.git;a=blob;f=vim/.vim/plugin/ctags.vim;h=a76e736dc4f8528ee3ca7d9ae4569dcbc3ff80ed;hb=HEAD
Где-то в корне проекта надо самостоятельно создать "tags" файл (touch
flags), а дальше вызвать ":Ctags ЯЗЫКИ" ("C,C++", "Go", "Python", и т.д.).
Вот и всё что у меня есть на эту тему. А дальше штатные встроенные
команды для тэгов.

Автор использует FZF для поиска файлов. Не приживались у меня как-то все
эти fuzzy finder-ы. Но мне очень нравилось как работает дополнение пути
в zsh-е и я использую самописный плагин для вызова zsh, осуществления
дополнения в нём: 72bfea8fec7934c5c70a6a6795e48b8c8c9e920c
http://www.git.stargrave.org/?p=dotfiles.git;a=blob;f=vim/.vim/plugin/zshfe.vim;h=fd5e5b14616596802f7eaf01e804e34e0eadb936;hb=HEAD
http://www.git.stargrave.org/?p=dotfiles.git;a=blob;f=vim/.vim/plugin/zshfe.zsh;h=0dfcd68e96761bff887a860988e5ad7b1338322a;hb=HEAD
Выглядит ужасно (vim запускает subprocess zsh, который в свою очередь
запускает pty внутри которого другой zsh, скармливая ему искомую строку
и tab, как будто это пользователь ввёл), но работает очень хорошо,
регулярно использую.

Для открытия FILE:LINE:COL строк использую самопереписный:
http://www.git.stargrave.org/?p=dotfiles.git;a=blob;f=vim/.vim/plugin/file_line.vim;h=65962d2f9fc8d2c0e77aec4f1bc0c5149020032b;hb=HEAD
Для открытия выхлопа команд (в вышеуказанном формате) в консоли:
http://www.git.stargrave.org/?p=dotfiles.git;a=blob;f=bin/bin/qq;h=250645a664e6476d699ad4ae135a2e5ee943207d;hb=HEAD
Для перехода между буферами в которых FILE:LINE есть: родные возможности
когда можно ввести только часть имени буфера, через одно нажатие tab-а:
http://www.git.stargrave.org/?p=dotfiles.git;a=blob;f=vim/.vimrc;h=f26cf6ef1857670c6695eb36a7f7bdad19e6ea65;hb=HEAD#l162

Ну и поиск по директориям/проекту через вызов :vimgrep или git grep, но
через удобные самописные обёртки, сразу же делающие и экранирование
нужное и открывающие quickfix:
http://www.git.stargrave.org/?p=dotfiles.git;a=blob;f=vim/.vim/plugin/grep.vim;h=e0878e7e2186e0fad352054a25b88cb79244b270;hb=HEAD
http://www.git.stargrave.org/?p=dotfiles.git;a=blob;f=vim/.vim/plugin/ggrep.vim;h=7b52921113ff525e61bca15bf3c45828d7fa4f9a;hb=HEAD

4 years agoВизантийская проституция
Sergey Matveev [Mon, 21 Dec 2020 17:21:13 +0000 (20:21 +0300)]
Византийская проституция

https://habr.com/ru/post/533866/
Главным образом радует комментарий:

    Хабр — ведущий IT ресурс в рунете. Можно обсуждать и столбняк, и
    косплей и вот теперь — проституток.
    Главное, чтобы не политика.

Но интересно, почему бы и нет.

4 years agoOld-games.ru в музее ретрокомпьютеров Яндекса
Sergey Matveev [Sun, 20 Dec 2020 15:05:28 +0000 (18:05 +0300)]
Old-games.ru в музее ретрокомпьютеров Яндекса

https://www.old-games.ru/news/96192.html
Узнал что в музей ретрокомпьютеров Яндекса даже вовсю школьников
регулярно водили (до карантина). Тоже первая мысль -- а будет ли им
интересно? Но говорят что всегда найдутся с горящими глазами. А то у
многих школьников музей это синоним скуки.

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

4 years agoПохудел
Sergey Matveev [Sat, 19 Dec 2020 17:50:02 +0000 (20:50 +0300)]
Похудел

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

4 years agoВакцина "Чувак"
Sergey Matveev [Sat, 19 Dec 2020 11:06:34 +0000 (14:06 +0300)]
Вакцина "Чувак"

https://lenta.ru/news/2020/12/19/chuvak/
https://ria.ru/20120330/609056634.html
https://ru.wikipedia.org/wiki/%D0%A1%D0%BB%D0%BE%D0%B2%D0%B5%D1%81%D0%BD%D1%8B%D0%B5_%D0%BD%D0%B0%D0%B7%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_%D1%80%D0%BE%D1%81%D1%81%D0%B8%D0%B9%D1%81%D0%BA%D0%BE%D0%B3%D0%BE_%D0%BE%D1%80%D1%83%D0%B6%D0%B8%D1%8F
"Чумаков" + "вакцина". А мне нравится как у нас названия строятся. Шифр
Кузнечик: Кузнецов, Нечаев и компания. Шифр Магма. Хэш Стрибог. Когда-то
была шифровальная машина "Фиалка".

В статье на ria.ru упомянули про "лимонку", но без подробностей. А я вот
знаю что она в честь капитана Лемона, а не потому что похожа на лимон,
как граната на гранат.

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

На грани чёрного юмора, как мне кажется, Волнение (термобарический
снаряд), радиопеленгатор Улыбка и Позитив, кассетный снаряд Украшение,
химический снаряд Ласка. Садизм какой-то уже, но у меня уважение к тем
кто придумал эти названия.

С названиями животных уже всё как-то понятно. Но вот "бесшумный
автоматно-гранатометный комплекс" названый Канарейкой это странно: они
слышали канареек то? У нас много лет они жили в квартире. Они легко
закладывают уши от громкости (хм, да, после этого уже всё плохо слышно).

* "Полуфинал" — неконтактный взрыватель
* ручной огнемет "Приз"
* тяжелая ТРС станция "Диагноз"
* бронетранспортер "Буйность"
* программно-технический комплекс "Тонус"
* медицинская машина для ВДВ "Травматизм"
* 40-миллиметровый выстрел "Подкидыш"
* "Газетчик-Е" — средство защиты радиолокационных станций
* "Подзаголовок" — комплекс обеспечения радиоэлектронной совместимости
* "Абзац" — 220-миллиметровый агитационный реактивный снаряд
* "Курьер" — подвижный грунтовой ракетный комплекс
* "Стюардесса"  — автономный радиолокатор
* 30-миллиметровая авиационная автоматическая пушка "Балеринка"
* МБР "Молодец"
* 55-миллиметровый корабельный семиствольный гранатомет "Огонек"
* тяжелая огнеметная система "Солнцепек"
* 220-миллиметровая тяжелая огнеметная система "Буратино"
* бронежилет "Гжель", "Визит"
* контрольно-проверочная аппаратура "Буковица"
* 40-мм гранатомет-лопата "Вариант"
* пехотная лопата "Азарт"
* наручники "Нежность"
* автомобиль УАЗ "Шалун"
* светозвукошумовая граната "Экстаз"

4 years agoСимволические ссылки и CWD/PWD
Sergey Matveev [Sat, 19 Dec 2020 10:55:47 +0000 (13:55 +0300)]
Символические ссылки и CWD/PWD

https://unix.stackexchange.com/questions/79571/symbolic-link-recursion-what-makes-it-reset/79621#79621
http://harmful.cat-v.org/software/symlinks
Для goredo мне отправили патч
http://www.git.cypherpunks.ru/?p=goredo.git;a=commitdiff;h=79b9219363d2f69f8fd209ec5ee3794759fa7396
чтобы использовать os.Getwd() вместо системного вызова getwd(), ибо,
когда рабочая директория находится в иерархии с символическими ссылками,
то, из-за того что getwd() возвращает физический путь, вычисление
относительного пути до целей начинает содержать массу ../../ всяких.

Насколько понял, когда есть символические ссылки, то всё может
происходить недетерминированно, ибо появляется не чёткая иерархия в
файловой системе, а граф, где есть не один путь "следования". Ссылка на
stackexchange содержит описание работы getwd() и того, что внутри
shell-а запросто есть и своё понимание "логического" пути, с которым и
идёт работа для удобства пользователя. Вне shell всё может быть совсем
по другому.

Опять же, насколько понял, для redo действительно лучше просто
использовать os.Getwd() и дальше уж "как повезёт". Среди тестов взятых
из apenwarr, ровно в одном ровно одну проверку я закомментировал,
связанную с хождением по иерархии где есть символические ссылки. Немного
повозился с этим тестом снова, но... в интерактивном режиме zsh
redo-ifchange ведёт себя одним образом, не в интерактивном уже другим.
/bin/sh работа тоже как-то отличалась. В общем, тест явно делает
ожидания от поведения именно shell-а, а не реализации redo (ну или
совокупности какого-то поведения shell и реализации). Чёрт с ним.

4 years agoПосмотрел кучу фильмов за последние месяцы
Sergey Matveev [Sat, 19 Dec 2020 10:31:12 +0000 (13:31 +0300)]
Посмотрел кучу фильмов за последние месяцы

Как писал прежде, далеко не о всех хочется упоминать, но почему бы и нет.

* Аэроплан
  https://ru.wikipedia.org/wiki/%D0%90%D1%8D%D1%80%D0%BE%D0%BF%D0%BB%D0%B0%D0%BD!
  Я любитель комедий с Лесли Нильсоном (Голые пистолеты и прочее), хотя
  они и на любителя. А в этом фильме его роль очень небольшая. Но мне
  фильм понравился. Ведь и режиссёры тут которые снимали "пистолеты"
* Суп с капустой
  https://ru.wikipedia.org/wiki/%D0%A1%D1%83%D0%BF_%D1%81_%D0%BA%D0%B0%D0%BF%D1%83%D1%81%D1%82%D0%BE%D0%B9_(%D1%84%D0%B8%D0%BB%D1%8C%D0%BC)
  Ну... просто добрая комедия с Луи де Фюнесом. Где он с другом улетел
  вообще на другую планету
* Татуированный
  https://ru.wikipedia.org/wiki/%D0%A2%D0%B0%D1%82%D1%83%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9
  Ещё одна комедия с Луи де Фюнесом. Но в ней у меня остался осадок
  того, что как-то уж больно быстро этот торгаш искусством проникся
  спокойно жизнью и покончил со своей старой
* Большая прогулка
  https://ru.wikipedia.org/wiki/%D0%91%D0%BE%D0%BB%D1%8C%D1%88%D0%B0%D1%8F_%D0%BF%D1%80%D0%BE%D0%B3%D1%83%D0%BB%D0%BA%D0%B0
  Ещё один фильм с ним. 42 года этот фильм был лидером проката во
  Франции, до выхода "Бобро поржаловать" (571a2b18f78cdb93b3c642e2595d9c6eaa326a3d)
* Маленькая мисс счастье
  https://ru.wikipedia.org/wiki/%D0%9C%D0%B0%D0%BB%D0%B5%D0%BD%D1%8C%D0%BA%D0%B0%D1%8F_%D0%BC%D0%B8%D1%81%D1%81_%D1%81%D1%87%D0%B0%D1%81%D1%82%D1%8C%D0%B5
  Хорошая комедия о семье, где у каждого проблемы с головой, грубо говоря.
  Но я бы не отнёс это к yet another тупой американской комедии. Не плоха
* Закон есть закон
  https://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%BA%D0%BE%D0%BD_%D0%B5%D1%81%D1%82%D1%8C_%D0%B7%D0%B0%D0%BA%D0%BE%D0%BD
  Понравилась комедия, но... больше добавить ничего и не могу
* Гангстеры
  https://en.wikipedia.org/wiki/Les_Tontons_flingueurs
  Комедия про жизнь мафиозной семьи. В целом не плохо, но скорее не
  одобряю когда романтизируют бандитов. Хотя какой-нибудь "Крёстный
  отец" конечно очень крут, как фильм
* Сбрось маму с поезда
  https://ru.wikipedia.org/wiki/%D0%A1%D0%B1%D1%80%D0%BE%D1%81%D1%8C_%D0%BC%D0%B0%D0%BC%D1%83_%D1%81_%D0%BF%D0%BE%D0%B5%D0%B7%D0%B4%D0%B0
  Неплохая комедия с Дени Де Вито
* Мужской стриптиз
  https://ru.wikipedia.org/wiki/%D0%9C%D1%83%D0%B6%D1%81%D0%BA%D0%BE%D0%B9_%D1%81%D1%82%D1%80%D0%B8%D0%BF%D1%82%D0%B8%D0%B7_(%D1%84%D0%B8%D0%BB%D1%8C%D0%BC)
  Только сейчас увидел как много наград и номинаций у этого фильма.
  Понравилась комедия. Бросается в глаза цветовая гамма (ну и то, что
  действие в промышленных районах Англии) очень напоминающая фильм
  Разрыв или Большой куш какой-нибудь. Чисто по английский! Но...
  впечатлил меня не так, чтобы я отдельно для него брался писать в
  блоге. А вот Разрыв (a8f94961c18cb59d5ae10b72815bfda3e256521a)
  атаснейшая комедия, ещё раз которую с удовольствием пересмотрел бы!
* А в душе я танцую
  https://ru.wikipedia.org/wiki/%D0%90_%D0%B2_%D0%B4%D1%83%D1%88%D0%B5_%D1%8F_%D1%82%D0%B0%D0%BD%D1%86%D1%83%D1%8E
  Запомнился фильм по игре Джеймса МэкВойа, который прежде у меня
  ассоциировался только и только с "Особо опасен". И не только по игре,
  но и просто по персонажу, вроде бы и молодой оторве, но понимающей в
  людях больше многих других. Фильм хорош!

4 years agoПосмотрел Уолл-стрит
Sergey Matveev [Sat, 19 Dec 2020 10:28:13 +0000 (13:28 +0300)]
Посмотрел Уолл-стрит

https://ru.wikipedia.org/wiki/%D0%A3%D0%BE%D0%BB%D0%BB-%D1%81%D1%82%D1%80%D0%B8%D1%82_(%D1%84%D0%B8%D0%BB%D1%8C%D0%BC,_1987)
А то много где он упоминается (именно этот, а не с ДиКаприо), но я так и
не смотрел. Хотя в нём же Майкл Дуглас -- крутейший актёр! Фильм хорош!
Хотя его основная суть о том что там как волки все грызутся между собой
и так предполагалась и открытием ничего не было. "Волк с Уолл-Стрит"
куда более жёстче. Понравился, но не так что особо в восторге от него.

4 years agoПосмотрел "Если..."
Sergey Matveev [Sat, 19 Dec 2020 10:14:52 +0000 (13:14 +0300)]
Посмотрел "Если..."

https://ru.wikipedia.org/wiki/%D0%95%D1%81%D0%BB%D0%B8..._(%D1%84%D0%B8%D0%BB%D1%8C%D0%BC)
Первый фильм где снялся Малкольм Макдауэлл. Подобные роли явно ему
подходят! Собственно, я только в подобных его и знаю: Заводной апельсин,
Калигула (404e4af5155e1b8a7f7c46921554f4e4a5ba64e6), Переход.

А "Если..." сейчас бы точно запретили показывать, ибо в конце вообще же
начинается массовая бойня/перестрелка с кучей трупов в школе.

И ещё Макдауэлла сложно представить в фильме чтобы он не катался по полу
с обнажённой девицей, как это было в этом фильме, Калигуле или Заводном
апельсине. А в "Если..." это была идея, судя по Wikipedia, самого
Малькольма увидеть хорошенькую актрису обнажённой.

4 years agoБроузеры добавили УЦ всея Казахстана в blacklist
Sergey Matveev [Sat, 19 Dec 2020 10:09:02 +0000 (13:09 +0300)]
Броузеры добавили УЦ всея Казахстана в blacklist

https://www.opennet.ru/opennews/art.shtml?num=54284
С одной стороны возмущение: какого хрена и кто они такие чтобы влиять на
решения чужих стран? Ведь точно так же Let's Encrypt это УЦ всея США. С
другой стороны -- все эти броузеры и компании США и в праве делать в
*своём* софте что хотят. Лицемерие и двойные стандарты конечно
зашкаливают, но это же США, в которой по другому дела никогда не делались.

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

4 years agoИнтервью с барабанщиком Евгением Рябченко
Sergey Matveev [Sat, 19 Dec 2020 08:45:40 +0000 (11:45 +0300)]
Интервью с барабанщиком Евгением Рябченко

http://www.hitkiller.com/intervyu-yutuber-prepodavatel-barabannogo-masterstva-drammer-fleshgod-apocalypse-evgenij-ryabchenko-velikij-barabanshhik-ne-obyazatelno-dolzhen-byt-xoroshim-ispolnitelem.html
Оказывается этот барабанщик был в куче групп, живьём на которых бывал:
Belphegor, Decapitated, Vital Remains, Fleshgod Apocalypse и наверное
его не раз видел. Эх... как же хочется на концерты!

4 years agoUnix beards
Sergey Matveev [Fri, 18 Dec 2020 14:00:49 +0000 (17:00 +0300)]
Unix beards

http://www.usenix.org.uk/content/unix_beards.html

    Facial hair that all Unix experts are mysteriously compelled to
    grow. The length, bushiness, and unkemptness of the Unix beard are
    all directly proportional to the owner's expertise.

    programming languages designed by guys with facial hair become
    popular (C, C++, Basic, PERL) while languages designed by
    smooth-shaven guys don't (Smalltalk, Eiffel, Scheme, Haskell,
    Erlang).

Блин, а я всё бреюсь. Хотя у меня пару сантиметровая растительность на
всём лице когда-то была. Чешется (по началу), растёт криво -- поэтому и
решил сбривать.

4 years agoOpenSSL -lssl библиотека
Sergey Matveev [Fri, 18 Dec 2020 13:02:49 +0000 (16:02 +0300)]
OpenSSL -lssl библиотека

Копаюсь тут, кое чего добавляя, в -lssl. Прежде я только -lcrypto трогал
(1a696ac6c369da1e70a15ba52006f05012934df6). Не могу сдерживаться, но это
сущее адовое говно! Это Вавилонская башня из костылей. Новые алгоритмы
не просто так добавляются через всякие EVP_* -- нужно ещё и в десятках
других местах библиотеки обмазать знаниями о новом алгоритме (и речь не
про его согласование, не про id-шники, а про конкретные криптографические
действия). Весь TLS в нём это просто нагромождение if-ов друг друга
погоняющих.

Я видел устройство crypto/tls в Go. Да, там TLS 1.3 и всё остальное
сильно разделены и не много где пересекаются -- можно сказать что две
независимых реализации. Но и одна и другая довольно аккуратно и просто
расширяются новыми алгоритмами (например). Все эти EVP_CIPHER в -lssl
являются же типа интерфейсами, идея то здравая. Но только вот почему
толку от неё никакого и всё равно весь код покрыт слоем if такой-то
алгоритм, то делаем вот так, ибо потроха реализации этого алгоритма
таковы.

4 years agoGithub перестал использовать cookie banner
Sergey Matveev [Thu, 17 Dec 2020 21:18:01 +0000 (00:18 +0300)]
Github перестал использовать cookie banner

https://github.blog/2020-12-17-no-cookie-for-you/
Пишут что "никто не любит их, как же мы их убрали?". Ну должны же были
начать с того что "мы заботимся о приватности, анонимности и ради вас
только больше не следим". Но нет, сразу же после этого пишут "ЕС
требует...". То есть... только потому что кто-то начал что-то заставлять
делать со всеми этими слежками через cookie, вы (github) начали чесаться
по этому поводу? А, не, потом вы всё же пишете "we want to protect
privacy...". Так а где же раньше были, до того как вас ЕС начал
заставлять предупреждать пользователей о слежке? "После поиска, мы нашли
решение: просто не использовать cookie". Вот и у меня ощущение что
современные web-разработчики просто даже не подозревают что можно не
использовать tracking технологии или можно делать web, показывать
пользователю странички, без 100500 технологий изобретённых после HTML.

"Developers should not have to sacrifice their privacy to collaborate on
GitHub" -- эээ, а для "коллаборации" то как раз придётся
логиниться/регистрироваться и это потребует использовать cookie. Как
приватность и реальное использование (а не read-only surfing) связаны у
них?

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

4 years agoUriel.cat-v.org
Sergey Matveev [Thu, 17 Dec 2020 18:03:57 +0000 (21:03 +0300)]
Uriel.cat-v.org

https://suckless.org/people/Uriel/
https://wiki.installgentoo.com/wiki/Uriel
https://wiki.installgentoo.com/wiki/Harmful_software
https://groups.google.com/forum/print/topic/comp.os.plan9/xEb4wYzfaBc
Я знал что этого человека уже нет. Но не знал что ему было всего 30 и
что он, оказывается, покончил с собой. Работал над Plan9, любил Go,
заядлый suckless.org участник, автор известнейшей страницы
http://harmful.cat-v.org/software/

На wiki.installgentoo.com не красиво написали что вот такие (harmful)
вещи могут убить человека. Но меня напрягла картинка, ибо табличка в ней
издалека пугающе выглядит в той же цветовой гамме что и мой
http://www.stargrave.org/Harmful.html а я ведь помню что текущий
cat-v.org имеет другие цвета. Но просто совпадение. Я то цвета нагло
тырил из Silicon Graphics тем.

4 years agoOh Shit, Git!?!
Sergey Matveev [Thu, 17 Dec 2020 17:56:34 +0000 (20:56 +0300)]
Oh Shit, Git!?!

https://ohshitgit.com/
https://ohshitgit.com/ru
https://github.com/bsdimp/freebsd-git-docs/blob/main/doc-cvt.md
Официальная дока по миграции FreeBSD на Git содержит ссылку на ohshitgit
сайт. У него есть даже русский перевод... далёкий от цензурного, но
близкий к тому что люди говорят/думают когда обучаются git-у.
Но у всего этого есть версия и без ругательств:
https://dangitgit.com/en
https://dangitgit.com/ru ("Чёрт побери, Git" vs "Ёбаный Git")

4 years agoЧистка очков
Sergey Matveev [Thu, 17 Dec 2020 16:52:31 +0000 (19:52 +0300)]
Чистка очков

Прошлые очки я просто мыл с мылом (как можно более простым) и вытирал
чистым полотенцем (специально для них используемом). А вот с новыми
(479f6242d8a4d5e07139545c983e27f565ca5534) видно что мыло вовсю остаётся
на поверхности и полотенце лишь равномерно это распределяет. Сегодня
нашёл способ идеально их сделать прозрачными -- используя шампунь вместо
мыла и простые салфетки вместо полотенца. Пластик что ли другой совсем
в этих используется что старый способ не годится?

4 years agoКосплееры
Sergey Matveev [Thu, 17 Dec 2020 15:34:48 +0000 (18:34 +0300)]
Косплееры

https://habr.com/ru/company/tuturu/blog/533486/
https://www.youtube.com/watch?v=lScjwHHN-NY
https://habr.com/ru/company/smileexpo/blog/410281/
Впервые посмотрел интервью, да и вообще что-то почитал про косплееров.
Такое забавное занятие, такое гиковское. Если что-то попадается на эту
тему, то бывает погляжу -- девочки то там хороши, как правило. Но это и
так забавно полной нелепостью костюмов, их непрактичностью.

А вот Анна Молева это единственное имя которое я знаю/узнаю. Ибо когда
что-то про Bioshock смотрел, то напоролся на её известнейшую фотографию
Элизабет и глаз реально зацепился глазом крутостью. И реально был
удивлён что это настоящая фотография, настоящего человека.

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

А сам кстати тоже один раз косплеил в "костюме" Бората. Практичен и не
стесняет движений.

4 years agoПутин о Навальном
Sergey Matveev [Thu, 17 Dec 2020 11:28:29 +0000 (14:28 +0300)]
Путин о Навальном

https://lenta.ru/news/2020/12/17/navalny/
Вот коротко и ясно он ответил, аналогично как и я считаю:

    По словам Путина, «пациент берлинской клиники» пользуется поддержкой
    спецслужб США. «Но это не значит, что его травить нужно. Кому он
    нужен? Если бы хотели — довели бы до конца».

4 years agoТоррент клиенты для Linux
Sergey Matveev [Thu, 17 Dec 2020 09:26:10 +0000 (12:26 +0300)]
Торрент клиенты для Linux

https://losst.ru/luchshie-torrent-klienty-dlya-linux
10 программ и 9 GUI-шных! Linux уже не тот что был прежде :-)

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

ctorrent давным давно использовал. Но он чисто классический BitTorrent.
Нет ни UDP трэкеров, ни DHT. Хотя во всём остальном нравился. Даже самой
идеей управления через простую HTML-форму генерируемую Perl-овым скриптом.

А после rTorrent перешёл уже не первый год на aria2:
59862ce0e889b45d6872ba974d906312bfbf0a01

Кстати консольный transmission вроде бы пробовал, но запомнилось что он
всё равно очень прожорливый и имел кучу зависимостей.

4 years agoОпять в Go баги специфичные только для этого Linux
Sergey Matveev [Thu, 17 Dec 2020 08:34:44 +0000 (11:34 +0300)]
Опять в Go баги специфичные только для этого Linux

https://github.com/golang/go/issues/1435
А BSD системы ведут себя как ожидается.

Но вообще выглядит страшно: проблема известна почти 10 лет назад! И куча
ссылок на то, как много проектов имеет проблемы с демонизацией из-за
этого. Но раз это Linux-specific, то нафиг торопиться Go-шникам :-)

Хотя теперь то, после daemontools, я знаю что не нужно самостоятельно
демонизироваться, а надо запускаться под superviser-ами.

4 years agogoredo замораживает систему
Sergey Matveev [Thu, 17 Dec 2020 08:30:17 +0000 (11:30 +0300)]
goredo замораживает систему

Забавный факт мне написали. Если в .do файл поместить Python код, но не
сделать его исполняемым, то goredo (как и redo-c и apenwarr/redo)
запустит его через /bin/sh, который проигнорирует python-shebang, увидит
import и честно запустит эту команду. Которая, из ImageMagick, делает
снимок экрана.

4 years agoДатасатанисты
Sergey Matveev [Wed, 16 Dec 2020 11:18:12 +0000 (14:18 +0300)]
Датасатанисты

https://habr.com/ru/company/ruvds/blog/519522/
Уже который раз, видя заголовки о "дата сайентистах", читаю как "дата
сатанистов". А в целом задолбали использовать зарубежные слова транслитом.
Уже проще на английском сразу писать статью.

4 years agoВторому свиданию "нет" из-за сумки для телефона на ремне
Sergey Matveev [Wed, 16 Dec 2020 08:03:58 +0000 (11:03 +0300)]
Второму свиданию "нет" из-за сумки для телефона на ремне

https://lenta.ru/news/2020/12/16/second_date/
Я всё мог бы понять почему с человеком не захочется больше встречаться
после некоторых действий, но телефон на ремне в специальном чехле/сумке
то тут причём!? И если речь про смартфон, которые все из себя здоровые
лопаты, то я скорее задаюсь вопросом про себя об удобстве его носки
просто в карманах, которые у всех или оттопыриваются или в них не сесть.
Видел наременной чехол у одного коллеги для смартфона-лопаты -- первая
же мысль об удобстве была и удивлении почему другие так не носят.

Мой Philips сотовый довольно маленького размера и его можно засовывать в
карманы джинс без проблем. Но люди уже отвыкли от таких маленьких
форм-факторов и тётя, когда надо было поговорить по моему, даже, смеясь,
спрашивала как его держать и куда говорить.

Ещё знаю что большинство женщин сразу скажет нет из-за носков с
сандалиями: 6f5406f8b42ce6f557ec3578e2541270aabd19b9
И ещё 100500 причин о которых не догадаться и не понять. Это как
программирование на Си, как минное поле по которому заставляют бежать.
Обязательно допустишь оплошность. Но Си хотя бы даёт ещё шансы исправить
программу и перекомпилировать, в отличии от женщины или мины!

4 years agoЗарплата в конвертах
Sergey Matveev [Wed, 16 Dec 2020 07:34:41 +0000 (10:34 +0300)]
Зарплата в конвертах

https://lenta.ru/news/2020/12/16/grey/
О налогах я не думаю (работа за меня занимается ими), но получать в
конверте зарплату я бы тоже хотел ради удобства: тебе сразу выдают
деньги и никуда не надо идти за ними, тем более на территорию вне
работы, зачастую ещё и с "чужими" людьми. А ещё и банкоматы бывают не
могут выдать сразу всю зарплату целиком.

4 years agoПро устройство GPON в Москве
Sergey Matveev [Wed, 16 Dec 2020 07:25:30 +0000 (10:25 +0300)]
Про устройство GPON в Москве

http://blog.stargrave.org/russian/bdd304a51771bf6dfabdbf31d748877112178406#comment0
Интересный, короткий и чётко описывающий принципы работы GPON-а
комментарий. Возможно я не корректно называю это GPON-ом. Возможно речь
далеко не только про Москву, но, судя по статьям, вроде именно в ней это
сильно распространено.

4 years agoSONET нравится
Sergey Matveev [Tue, 15 Dec 2020 20:41:49 +0000 (23:41 +0300)]
SONET нравится

https://computer.rip/2020-10-02%20so%20net.html
https://en.wikipedia.org/wiki/SONET
Хотел было написать какой SONET/SDH милый (so net):
81c7c6557af89e79e480b21f12a4ea97c01679cb, но это не по английски.

Только спустя несколько дней после прочтения статьи с computer.rip, до
меня дошло почему SONET так устроен и как это красиво! По сути во всех
статьях всё одно и то же написано что и тут, но иногда нужно немного
другими словами преподнести и оно раскроет тебе глаза. Уже давным давно
в мире телекоммуникаций параллельно рулили два мира: телефонистов и
компьютерщиков. Изначально последним конечно приходилось жить в мире
телефонов и их сетей, но сейчас победили компьютерщики и в LTE и 5G
используются и IPv6 несущие голос (а не как в GSM и прочих сетях: каналы
заточенные под голос передают, как уж получится, данные) и HTTP/2 вместо
SCTP придуманного телефонистами. Поэтому и SONET уже можно отнести к
истории. Но своим компьютерным умом я не мог сразу понять почему он так
устроен.

Цифровые АТС, само собой, передают звук оцифрованным. А с ISDN и сразу
из дома он идёт уже в цифре. Для хорошей по чёткости передачи речи
достаточно акустического канала в 3-4 кГц, поэтому при оцифровке частоту
дискретизации достаточно иметь 8kHz. Один канал, с глубиной в 8бит:
64Kbps для хорошей несжатой передачи речи в одну сторону. ISDN поэтому
имеет два 64Kbps канала для двусторонней связи. Сжатие не применяют в
нём, ибо усложняет железо, а значит и цену повышает.

Эти 64Kbps каналы затем мультиплексируются и передаются по всяким E1 (T1
в паре стран), которые, в свою очередь, тоже мультиплексируются,
агрегируются и передаются уже дальше вплоть до оптоволокна. Передача
данных в E1 идёт кадрами, длительностью 125мкс (те самые 8000kHz), где
находится по одному байту от/для каждого из 32-х 64Kbps каналов. Пара
каналов используется для синхронизации и управления. Очень просто,
значит и дёшево. Но, в отличии от компьютеров, тут реально льются потоки
ото всех каналов каждые 125мкс. Никаких эти заголовков, или
произвольного времени возможности передачи пакета, как в компьютерных
сетях.

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

Зачем так? Полезная нагрузка, весь этот поток байт, перемешенный с
байтами заголовка, делится на virtual circuit-ы (VC). И заголовок несёт
информацию о них. Если у нас имеются данные для передачи, при этом мы
уже прямо сию микросекундно передаём кадр (а мы всегда их передаём,
постоянно, пускай и "пустышки" без полезной нагрузки), то мы на лету
может вставить в следующие строки кадра, в столбцы заголовка, данные о
нашем VC и передавать его. То есть, кадр буквально формируется на лету
(ведь всё же 125мкс это довольно продолжительное время!) и заголовок в
нём формируется на лету, как и данные засовываемые.

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

Но, чтобы всё работало хорошо, тикало как часы, каждый из 8000kHz, нужно
чтобы все устройства хорошо были синхронизированы по времени. Поэтому в
SONET используются атомные часы, GPS-приёмники и подобное. С одной
стороны конечно геморрой, а с другой хороший QoS и меньшая цена
оборудования из-за ненужности буферизации кадров.

Но это (для меня) не самое интересное было и открывающее глаза. У нас
идёт оптоволоконный провод от АТС до какого-то дома. В нём много
телефонов. Так как оптоволокно очень информационно ёмкое, то от этого
дома и дальше будет идти волокно до следующего на улице. В одном кабеле
от АТС будет идти много сотен каналов (VC) несущих оцифрованный звук до
поднятых телефонных аппаратов. В дом заходит SONET кабель с кучей этих
каналов внутри, но только лишь небольшая часть из них "интересна" этому
дому, только некоторые из них предназначены для аппаратов в нём. И тут
самая красивая часть SONET: add-drop multiplexer (ADM), в который входит
кабель. Интересующие для него каналы внутри кадра(ов) являются по сути
входящим трафиком, который он копирует на внутренние E1/ISDN/whatever
каналы. Дальше передавать эти VC внутри кадра не имеет смысла, так как
больше они никому не интересны. Получается, что внутри кадра на выходе
имеются слоты вакантные. Но раз речь про телефонную связь, то она
дуплексная и симметричная -- нужен исходящий канал симметричной ёмкости.
И вакантные места исходящего кадра как-раз заполняются исходящим
трафиком с устройств этого дома. Входящие кадры, некоторые слоты в них,
немного изменяются на этом ADM, в основном на лету копируясь, даже не в
буфер, а сразу же в оптический канал в формируемый кадр (SONET --
поэтому и называется синхронной сетью). И так каждый дом, на пути
следования этого единственного кабеля, имеет ADM который "забирает"
некоторые слоты каналов и добавляет свои исходящие.

Если этот кабель замкнуть кольцом на этой же самой АТС, то она по сути
на вход получит кадры с агрегированным исходящим трафиком всех домов. По
моему очень красиво с инженерной точки зрения! И высочайший QoS и
стабильность. Чтобы не ждать пока исходящий трафик дойдёт через все
hop-ы через всё кольцо до АТС снова, можно бросить ещё одно волокно, но
с трафиком в противоположную сторону. Тогда кол-во hop-ов до и от
каждого дома будут симметричны, как и задержки для каждой стороны
трафика. А если одно из колец "порвётся", то оно автоматом просто
деградирует до первого варианта с полным проходом кольца для ответного
трафика.

Все компоненты (дискретизация звука, кадры E1/T1, кадры SONET) живут по
одному таймингу, симметричные, полнодуплексные, не требуют буферизации
(E1 буквально байты каждого канала отправляет в каждом кадре). Лучшее
качество в обслуживании для телефонных разговоров (как мне кажется, в
теории и, судя по статьям, на практике) и достаточно низкая цена для
перехода на всё это ещё уже в 80-е. Но со временем всё понижающаяся цена
компьютерных систем, их информационная ёмкость и гибкость конечно
сделали своё дело и убили телефонные технологии. И для компьютеров SONET
уже не очень, ибо, как минимум, на часто в Интернете трафик симметричный
в обе стороны и в нём просто навсего сложнее утилизировать в полной мере
ёмкость канала. А объёмы чисто компьютерных данных куда сильнее растут
чем телефонных разговоров.

Мне SONET ещё приятен тем, что он точь-в-точь похож на идею
store-and-forward NNCP сети где одну флешку передают по кругу по рукам,
где каждый забирает пакеты предназначенные для него (остальные он всё
равно дешифровать не сможет) и записывает свои исходящие для других
(собственно, первая команда в NNCP только на это и рассчитывалась --
никакой поддержки сети изначально даже не планировалось). Хотя и тут
идея, само собой, не нова, ибо Token Ring по кругу передавал токен. Но
SONET не обязан быть в кольце -- для него это одна из опций.

4 years agoИтоги использования tmux popup-ов
Sergey Matveev [Tue, 15 Dec 2020 20:37:43 +0000 (23:37 +0300)]
Итоги использования tmux popup-ов

которые я понаделал в e5f0b69a0821e3ceccc83530aea066be9a84f03b. Сегодня
понял что я постоянно ими пользуюсь. Не десятки, а возможно под сотню
раз в день. Управление музыкой, парольный менеджер, словарь (хотя это не
каждый день используется), калькулятор, календарь. Хотя календарь
вызывается относительно редко, но я с ходу не помню опции чтобы он мне
показывал начало недель с понедельника и при этом сразу три месяца
(прошедший и следующий) -- поэтому вызываю через popup ибо там сразу как
надо. В общем, menu+popup мне очень нравятся и они реально удобны тем
что не надо переключаться куда-то, да ещё открывать pane и вводить
короткие команды.