]> Sergey Matveev's repositories - stargrave-blog.git/log
stargrave-blog.git
4 years agoFlatpak -- security nightmare
Sergey Matveev [Sun, 21 Mar 2021 08:31:11 +0000 (11:31 +0300)]
Flatpak -- security nightmare

http://flatkill.org/2020/
http://flatkill.org/
Целый домен для сайта о том, что Flatpak это ужас с точки зрения
безопасности. Ну для меня это и сразу было понятно что подобное
использовать можно не рассматривать.

4 years agoFreeBSD и Linux подходы к железу
Sergey Matveev [Sun, 21 Mar 2021 07:36:51 +0000 (10:36 +0300)]
FreeBSD и Linux подходы к железу

https://lists.freebsd.org/pipermail/freebsd-questions/2021-March/293472.html
https://lists.freebsd.org/pipermail/freebsd-questions/2021-March/293471.html
https://lists.freebsd.org/pipermail/freebsd-questions/2021-March/293486.html
Огромная нить переросшая в мини OS-holywar "GNU/Linux vs FreeBSD". Всё
началось с того, что у человека проблемы с каким-то USB-контроллером и
он не может установить и работать во FreeBSD из-за него. Бага в трэкере
висит с год и человек очень опечален, вбросив вопрос куда ему переходить
с этой ОС?

Понравились ответы Юрия Гальцева о фундаментальном различии (как мне
видится) в подходах разработки драйверов в Linux и FreeBSD: первые имеют
кучу workaround (читай костылей) чтобы глюкавое железо хоть как-то да
работало. Вторые не занимаются этим. Видел это сам воочию в драйверах
для Intel HDA, которая у меня на ноутбуке не выдаёт звук на внешний jack,
а в Linux вроде бы чуть ли не для конкретной моей модели ноутбука был
какой-то if-чик.

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

А автор нити конечно же не прав, судя по тому что я понял. Его упрёк в
том, что на generic ядре он не может установить систему. А с какой стати
он вообще и откуда взял то, что на generic-е у него должно всё работать?
Даже в Linux я помню уйму раз что приходится где-то ещё собирать
специализированное ядро с особыми драйверами чтобы установить на
какой-то системе. Даже в Windows тебе придётся иметь сторонний компьютер
чтобы скачать драйвера для Ethernet-а/модема/whatever (нужные для того
чтобы скачать драйвера) или иметь компьютер с работающим CD-ROM чтобы на
нём прочитать CD-ROM с драйвером для CD-ROM. Всю жизнь так было. Ещё
помню что при какой-то не совсем стандартной разбивке диска (MBR)
Windows нельзя было поставить, как и удалить этот MBR и пересоздать
заново.

4 years agoEmacs как редактор
Sergey Matveev [Sat, 20 Mar 2021 10:22:01 +0000 (13:22 +0300)]
Emacs как редактор

В 8d0549962697cfa5711a5ae8c71fa3e24bf5b325 писал про видео с
презентацией Emacs плагина (или как это называется в нём?). Забыл
написать что чуть ли не каждый каждый раз когда я смотрю что-то где есть
Emacs, то обязательно увижу, мягко говоря, очень неэффективное
редактирование текста. В этом посте было комментирование нескольких
строчек в блокнот-режиме: перемещаемся на каждую строчку бегая курсором,
вводя символы комментария. Меня самого удивляет, но это так сильно
коробит и бросается в глаза!

В Vim опытный пользователь, по моему, никогда так не сделает, даже в
мыслях не будет: как минимум он просто "повторит действие" (вставки
символов комментария) нажав ".", если забыть про макросы (фиг уж с ними
ради трёх строчек), визуальное выделение для вставки, ":.+2s#^#//" (лень
считать, но возможно тут большее количество нажатий) и т.д.. А в видео
про eev ведь человек который с середины 90-х годов пользуется Emacs-ом!
И опытный в Emacs коллега с работы вроде бы тоже признаёт что *как
редактор* будет немного похуже Vim. В видеороликах я регулярно это отмечал.

4 years agoПоработал с seccomp
Sergey Matveev [Sat, 20 Mar 2021 09:14:22 +0000 (12:14 +0300)]
Поработал с seccomp

https://en.wikipedia.org/wiki/Seccomp
Решил пощупать какого это жить с seccomp подсистемой и насколько сложно
с ней работать. В принципе ничего сложного (если с libseccomp): просто
как-бы задаётся firewall системных вызовов и (опционально) их аргументов.
Можно одной строкой разрешать хоть делать все read(), либо read в
котором определённый аргумент равен какому-то значению -- чётко
фильтровать и файловые дескрипторы так можно например.

Но в целом очень геморройно, ибо на самом деле ты не знаешь какие вызовы
кто и как будет делать. Seccomp-ed программа будет libc-специфична. Ибо
glibc для waitpid() делает wait4() на самом деле, как и на других
вызовах выполняет не то что написано на экране. PCSC-демон... да откуда
я знаю как конкретно и как именно он работает с сокетами и логами?
Только смотреть исходный код всего этого. Вот и у меня всё свелось к
запуску, падению, смотрению в /var/log/audit.log, поиску информации об
убийстве из-за запрещённого syscall-а, поиск syscall-а по номеру чтобы
понять что надо прописать в seccomp-ed программу. А ведь ещё и
какие-нибудь крайние ситуации особые могут быть, которые всплывут в
самый неожиданный момент.

Гранулярность конечно отличная у него. Но, пишут, что обеспечить
фильтрацию по путям до файлов в нём проблематично. Не пробовал.

Capsicum (793966ed64c5a6884e7f1a3d5491a7be4b3eea5f) фильтрует действия
над файловыми дескрипторами только, которые правда могут не только файлы
представлять. Ну и ограничивает множество syscall-ов тоже. Не такой
"сильный" sandbox, но для своих синтетических задач с ним было гораздо
проще работать. pledge имеет ещё меньшую гранулярность, но с ним ещё
проще. Вот и получается дилемма: либо жутко геморройный и сложный
seccomp но с офигенной управляемостью, либо очень поверхностный pledge,
но который тривиально для большинства программ встраивать. С одной
стороны pledge круче, тем что хоть какой-то sandboxing и ограничения
предоставляет очень просто. С другой стороны seccomp круче, тем что всё
на свете можно зарезать в нём и ограничить. Для себя сделал вывод: всё
зависит от потребностей и архитектуры программы. Что-то на seccomp точно
будет не сложно переводить. Что-то на Capsicum совсем не сложно. Но если
архитектура программы совсем далека от privsep подхода, то будет тоже не
просто с ним. А pledge... лучше чем ничего, но в идеале бы что-нибудь
посерьёзнее.

Негатива от Seccomp особо нет. Кроме того, что он libc-specific будет,
как минимум. Но то что я делал на Capsicum в FreeBSD -- с seccomp-ом я
потратил во много раз больше времени, хотя получил ещё более tight
sandbox. И не потому что я поклонник FreeBSD, но Capsicum мне куда
больше понравился -- на нём хочется продолжать делать и писать privsep
программы. А Seccomp не вызывает желания возвращаться к нему. А вот
OpenBSD в целом не то чтобы расстроила, но я сильно охладел к ней.
Рассматривать как платформу для запуска своего софта я бы не стал, хотя
уважение и симпатия ко многим их подходам у меня большие.

4 years agoEmacs'es eev
Sergey Matveev [Sat, 20 Mar 2021 08:59:57 +0000 (11:59 +0300)]
Emacs'es eev

https://emacsconf.org/2019/talks/27/
Рассказ и видео об "executable notes" в Emacs. Мир Emacs-а привлекает
что всюду и везде можно программировать (I put a Lisp in your editor, so
you can learn Lisp for your editor, while you write Lisp with your
editor) и состыковывать всё что угодно между собой.

Но польза от eev мне с ходу не столь понятна. Возможность выполнения
однострочных скриптов/команд... а когда надо на несколько строк, то
использовать "\" какие-нибудь? На практике сплошь и рядом длинные
команды могут встречаться и я уже стал ненавидеть когда их записывают в
длиннющие строки, в основном когда хотят засунуть в какой-нибудь
Makefile -- о чём забыл как страшный сон, благодаря redo. У меня много
всяких текстовых заметок тоже было и есть, из которых я выполнял строчки
в shell-е или ещё где-то -- но со временем все они превращались в
нормальные исполняемые скрипты, ибо так удобнее.

Возможность открывать info/man/whatever/grep и прочее всё равно же в eev
делается через явное написание соответствующих функций. Лично я бы делал
это в виде неких URI, которые тоже одним нажатием Enter в Vim можно было
бы открывать -- видя URI, Vim запустит парсер, который уже будет
запускать что угодно, ведь всё равно как и в eev это придётся руками
описывать. По сути то Vim из коробки и так умеет всякие gd/gf и Netrw
понимает кучу всяких URI типа scp://.

Я само собой не пытаюсь сравнивать Vim vs Emacs, а только мне не очень
понятен eev -- не увидел ни одного близкого или возможного для себя
use-case.

4 years agoПоработал с XDR в Си
Sergey Matveev [Sat, 20 Mar 2021 08:44:49 +0000 (11:44 +0300)]
Поработал с XDR в Си

https://en.wikipedia.org/wiki/External_Data_Representation
Про XDR уже не раз упоминал что он мне нравится как сериализатор.
(Очень) Простой, быстрый. XDR спецификации позволяют делать и union-ы с
массивами. Union -- аналог CHOICE-ов и OPTIONAL полей в ASN.1. В Си и
union и array поддерживаются на уровне удобных функций. Очень
понравилось что довольно тривиально можно одним махом, одним вызовом
распарсить структуру с union-ом и всякими массивами. И сериализовать
назад, точно таким же вызовом -- они все симметричны. Можно и с
файловыми дескрипторами работать напрямую сразу же, как в libnv
(793966ed64c5a6884e7f1a3d5491a7be4b3eea5f).

Вообще я потратил значительно больше времени на разбирательство как с
ним работать. С libnv через 5-10мин всё было сделано. Но libnv это как
JSON -- typeless хранение данных, не столько эффективное. А XDR это
исключительно типизированное представление. ASN.1 -- ни то, ни другое:
что-то можно будет распарить без спецификации, а что-то нет (ANY).

Ещё XDR понравился тем фактом, что в Free/Net/OpenBSD идёт из коробки (в
FreeBSD, как минимум, это в составе libc), как и в glibc тоже штатная
часть, с одинаковым интерфейсом (со времён Sun?). В Python из коробки
есть xdrlib, но которая не умеет автоматом union-ы парсить -- это уже
всё же более высокоуровневая штука: нужно просто самостоятельно писать
код вычитывающий значение enum-а и решающего какой дальше запускать
десериализатор.

4 years agoapply и xe
Sergey Matveev [Fri, 19 Mar 2021 13:49:10 +0000 (16:49 +0300)]
apply и xe

https://victor-sudakov.dreamwidth.org/517262.html
Вот сколько лет я за Unix-системами, но вообще никогда не слышал об
утилитах apply (написанная аж Робом Пайком для BSD4.2) и xe. Выглядят
интересно. xe написан leah@vuxu.org -- тоже мне известным человеком. И
она даже умеет распараллеливать задачи, как и parallel. Но она совсем
новенькая, относительно apply.

Parallel вряд ли буду пробовать заменять: это Perl скрипт, а Perl у меня
всегда есть. ничего против не имею, много чего полезного умеет, хотя и
редко используемого кроме базового функционала.

4 years agoAllesfresser
Sergey Matveev [Thu, 18 Mar 2021 13:44:35 +0000 (16:44 +0300)]
Allesfresser

https://www.darkside.ru/news/130022/
Момент с концерта Lindemann на котором я бы не хотел оказаться там,
будучи очкариком :-). Но это всё равно круто!

4 years agoПрочитал "Застывший огонь" Алекса Орлова
Sergey Matveev [Thu, 18 Mar 2021 09:43:57 +0000 (12:43 +0300)]
Прочитал "Застывший огонь" Алекса Орлова

https://www.litprichal.ru/books/421/
Очень понравилась книга! Именно такую фантастику я и люблю: приключения
друг за другом, разные места и планеты. В этой есть и смешные моменты на
которых не сдерживался улыбаться в общественном транспорте. Это мне всё
же куда больше по душе чем космооперы типа недавно прочтённой (но тоже
понравившейся) "Розы и червя" (dde11729261b366a1f02c2d023951b5f43468070).

4 years agoПоставная фотография программиста
Sergey Matveev [Thu, 18 Mar 2021 07:39:12 +0000 (10:39 +0300)]
Поставная фотография программиста

https://habrastorage.org/getpro/habr/upload_files/ce3/2c5/b4f/ce32c5b4fed67ccdc9cf083bd29d4e18.png
https://habr.com/ru/news/t/547662/
В первую же секунду как же мне бросается в глаза:
* на левом открыт явно какой-то Nano или что-то подобное детское, где
  никто всерьёз не буде работать. Как и уважающий себя администратор
* рука над клавиатурой висит в воздухе, ибо её не положить из-за
  смартфона под ней
* на втором мониторе вообще ничего нет и не запущено. Только пришёл на
  работу типа?

4 years agoИнтерфейс Windows 10
Sergey Matveev [Wed, 17 Mar 2021 20:27:39 +0000 (23:27 +0300)]
Интерфейс Windows 10

Сегодня на работе мне показали интерфейс Win10. Ставили банальные
задачи: поменять чувствительность мышки, указать разделитель чисел с
дробной частью, настроить сеть.

Вот честно -- я даже представить себе не мог насколько бесстыдно погано
всё сделано в этой версии Windows.

* значки закрытия/сворачивания окна где-то видны, а где-то показываются
  только если мышкой навести. Логика не прослеживается
* при нажатии на переходы в другие окна/меню, где-то открываются новые
  окна, а где-то всё открывается в текущем окне. Логика поведения не
  прослеживается
* никаких указателей о том что мы в подменю, в каком-то подразделе, да и
  каком именно
* где-то есть стрелочка назад из менюшек, а где-то нет. Логика не
  прослеживалась
* открываемые окна имеют даже разные шрифты и разного размера. Тыкаешься
  по менюшкам -- и бац у тебя окно с ощутимо меньшими буковками и
  приходится придвигаться чтобы разглядеть
* дойти до пункта с чувствительность мышки было примерно так: какие-то
  там настройки -> сопутствующие -> сопутствующие -> сопутствующие
* поиск по какому-нибудь запросу "ip адрес" ничего не выдаёт
* запуск "персонализации" или "параметров" иногда открывается в новом
  окне настройки, а иногда заменяет содержимое уже открытого окна
* два монитора? да пофиг что вы открываете все окна на одном -- новые
  окна Windows запросто будет открывать на втором мониторе (логика
  прослеживается -- сделать как можно более нелогично)
* самое забавное: настройка разделителя числа и чувствительности мышки
  открывается в классических Win95 окнах с точно такими же tab-ами
  которые я из детства помню. Ощущение (уверенность!) что эти меню с тех
  времён не менялись вообще
* где-то таблицы, где-то "плитки", где-то табы... это в порядке вещей
* если есть ниспадающие менюшки, то это кнопочка с очень маленьким
  значочком намекающим что на него можно нажать. Размер которого сильно
  отличается от окружающих кнопок и я бы даже не понял что это кнопка, а
  не разделитель элементов какой-то
* когда открывается окно настройки сетевого интерфейса, то в нём всего
  два варианта настройки: DHCP или "ручной" режим. Клёво, то есть
  варианта автонастройки IPv6 SLAAC не подразумевается? Если выбрать
  ручной режим, то даже названия полей не умещаются в окне и появляется
  горизонтальный scrollback. То есть, открывается мизерное окошко выбора
  DHCP/manual, и после первого же клика в этом же мизерном окошке
  появляется ряд полей, которые невозможно прочитать, ибо они никуда не
  влезают и нужно руками изменить размеры окна
* возможно не заметил, но я точно помню что глазами искал настройку MTU
  и не нашёл
* стойкое ощущение что вроде бы не было ни одного окна где не появлялись
  бы scrollbar-ы и постоянно всюду и везде не влезающие элементы
* у меня *все* ISP, кроме текущего, предоставляли только PPPoE доступ.
  Получается, с Win10 я бы не смог их использовать, воткнув их кабель в
  свой компьютер?
* видел окна в заголовке которых ничего не было, хотя там чётко можно
  1-2 слова прописать чётко говорящих что это за окно
* видел заголовки внутри окон где есть надписи, но они сделаны что-то
  типа оттенков какого-то коричневого по какому-то коричневому -- почти
  нечитаемо. Явно похоже никто из Microsoft не видел этих окон в живую
* а если там запущен последний Word, то я видел панель с иконками в
  самом заголовке окна, потом просто классическое меню (со своими
  шрифтами, иконками и цветовой схемой), потом ещё два каких-то
  toolbar-а тоже со своими стилями/иконками. Такое ощущение что все эти
  4-5 элементов управления делали совершенно разные группы людей, каждая
  из которых имеет своё видение интерфейса и между собой они никогда не
  связывались чтобы вообще просто посмотреть оно хоть как-то сочетается
  или нет
* говорят что в последних версиях Word даже самые самые старые и
  привычные комбинации клавиш меняются: теперь Ctrl-S не будет работать
  просто так, ибо он стал смотреть на язык и Ctrl-S и Ctrl-Ы это разные
  вещи. А ещё говорят что вообще эту горячую клавишу заменили на
  какое-то сочетание из трёх клавиш типа Ctrl-Shift-F2. Даже самый
  недружелюбный Unix-разработчик будет заботиться об обратной
  совместимости, о сохранении поведения или хотя бы preset-ах (legacy и
  new-wise-one), вместо того чтобы на пустом месте ломать, говорят, все
  горячие клавиши которые использовались не один десяток лет, без
  галочки "сделать как делали деды -- я опытный пользователь"
* в проводнике первым делом идут никому не нужные гвоздями прибитые
  ссылки, только после которых уже реальные диски компьютера. Нельзя ни
  местами поменять, ни удалить. Причём список приличных размеров я точно
  на практике оно может и не влезть на экран и придётся всегда scroll-ить
  до нужного элемента

В целом я просто не могу описать как меня это всё впечатлило. Когда я
говорил "масдай", "windows отстой" и прочее -- это ни в какое сравнение
с тем что я мог бы сказать сейчас. Win95 выглядит как самая консистентная,
продуманная и вылизанная, с точки зрения интерфейса и удобства, система.
Win10... мне до сих пор сложно поверить что ЭТО действительно не шутка,
что это действительно много много лет оттачиваемый и поставляемый
продукт. Он выглядит как уберсырое поделие сотни людей за один вечер,
которые ни разу не скооперировались и даже не смотрели что у них
выходит. Это АБСОЛЮТНО неюзабельная и интуитивно непонятная и нелогичная
вещь. Я ни за что не смогу поверить в то, что у Microsoft нет
огромнейшего отдела занимающегося изощрённым регрессом UI/UX. Это
невозможно сделать без мощнейших умов которые бы могли придумать такие
некачественные изощрения неюзабельности. Ну а больше всего поражает что
реально пипл это хавает. Unbelievable, impossible, incredible,
mind-blowing, life-changing -- но это факт что люди это используют.

Как же надо себя ненавидеть чтобы соглашаться на яростное самобичевание
такой системой? Современными версиями Word-а (да и наверное любого
компонента Office) -- активно борющихся с людьми которые профессионально
пытаются в нём делать документы? И он даже будет тормозить и не
справляться с объёмами которые могли быть сделаны на каком-нибудь Word 97
на 486-ом компьютере.

Вот что значит не следить за современными тенденциями и вообще тем что
творится с массовыми компьютерами! Я просто ошарашен увиденным, с трудом
веря что это всё не шутка и не победитель соревнования на самый убогий и
кривой интерфейс. Одно дело читать новости о том как всё деградирует. А
другое дело воочию увидеть в течении десяти минут это.

Могло бы быть простительно если бы такое увидеть в GNU/Linux -- там
зоопарк и анархия, каждый разработчик имеет своё мнение, своё видение и
принципы. Но тут то речь об одной из самых богатейших компаний в мире с
огромным штатом людей. Ведь даже в теории, как мне кажется, в принципе
можно было бы насчитать наверное несколько сотен окон настроек суммарно:
в чём проблема их все под одну гребёнку сделать, с одной парадигмой и
подходом? Нанять хотя бы одного тестировщика которые бы прокликивал их и
смотрел можно ли в принципе прочитать что там будет показываться? Ведь
ОС для пользователя не так много позволяет всего сделать. Она же даже со
временем только меньше делает функционала, типа выпиливания менеджера
печати.

4 years agoКонцертник Lindemann из Москвы
Sergey Matveev [Wed, 17 Mar 2021 13:30:25 +0000 (16:30 +0300)]
Концертник Lindemann из Москвы

https://darkside.ru/band/16580/n130022.jpg
https://darkside.ru/news/129970/
И концерт у них, видимо, был отличный (52ab03b596ffd133c7f5c9530606e864ea06d8a1)
и даже обложки с коммунистической тематикой клёвые.

4 years agoПознакомился с Capsicum, kqueue, libnv, privsep и privdrop
Sergey Matveev [Mon, 15 Mar 2021 19:31:02 +0000 (22:31 +0300)]
Познакомился с Capsicum, kqueue, libnv, privsep и privdrop

https://en.wikipedia.org/wiki/Capsicum_(Unix)
https://en.wikipedia.org/wiki/Kqueue
https://oshogbo.vexillium.org/blog/42/
https://utcc.utoronto.ca/~cks/space/blog/solaris/SolarisNvpairLibrary
Реализовал программу с честным (как мне кажется) полноценным privsep-ом,
когда она fork-ается, разные процессы занимаются разными вещами и имеют
доступ к разным ресурсам. Общаются между собой по Unix-сокету. Умеют
делать chroot, сбрасывать привилегии root-а после этого. Capsicum
включают, в том числе и устанавливая ограничения на каждый файловый
дескриптор выборочно. Закрывают всё лишнее и ненужное (stdin/out/err
всякие).

С Capsicum работать по сути тривиально, но архитектура программы
выстраивается вокруг использования файловых дескрипторов. Благо, в
отличии от уродского Linux, в FreeBSD даже процессы можно представлять в
виде файлов (pdfork()).

Так как системные вызовы типа waitpid() уже нельзя использовать в
Capsicum окружении, то нужно делать pdfork(), чтобы получить файл. В
man-е присутствует pdwait4(), однако его нет в исходном коде, кроме как
с пометками "ещё не реализовано". Подсмотрел как с этим живут
capsicum-изированные программы в самой ОС. Оказалось что просто
используют kqueue. Пришлось впервые и с ним поработать. Думал будет
сложно. Но... под рукой был ровно один только man kqueue и через
считанные минуты я полностью реализовал код и ожидания события когда в
Unix сокете что-то будет для чтения и когда процесс завершит свою
работу, оповещая об этом через process descriptor файл. Я очень очень
удивлён как просто работать с kqueue и как много он умеет. Можно даже
просто таймер поставить -- что я часто делал в Go языке в select-ах.

А по сокету мне нужно гонять разношёрстные данные. Точнее, не то чтобы
нужно, а хотелось бы. Как вариант можно открыть несколько сокетов и
ошибки и события отправлять по одним, а полезную нагрузку по другим (как
в FTP отдельные TCP соединения для данных и команд). Но попробовал libnv
библиотеку. У меня никогда не возникло бы мысли о том, что
разнотипизированные данные, где могут быть и вложенные словари и
массивы, могут хотя бы в теории быть просты в использовании в Си или Go.
libnv библиотека супер проста! Даже ошибку абсолютно штатно можно
проверять только во время сериализации. Даже в цикле накапливать и
доделывать (append) данные спокойно. Читать всё аналогично просто. Сам
код является схемой. Очень эффективна по использованию памяти: можно
даже брать значения из nv-пар и они сразу же будут очищать из
nv-структур, оставляя заботу о free() на самом пользователе. И добавлять
значения в nv-структуры можно тоже сразу же их очищая. Да я на Go такой
простой работы не встречал наверное нигде. Одно удовольствие работать с
данными в таком виде. Причём она и endianness блюдёт и можно спокойно
сериализовывать всё на диск. И куча типов данных: null, bool, number,
строки, списки вложенных nv структур, файловый дескриптор, бинарь,
массивы bool/number/строк/дескрипторов.

Но корни libnv растут ещё из Sun Microsystems и Solaris. В ZFS nvpairs
используются всюду и везде. libnv это функциональный аналог nvpairs. В
Solaris оно и вне ZFS встречается. Причём реализация Sun сериализует в
XDR формате всё. Который мне уже и так давно нравился, а недавно я
прочувствовал его крутость с 32-х битным выравниваем всего и вся -- это
существенно упрощает работу с ним на системах которым не нравится
невыровненный доступ к памяти. Ну и пускай что bool занимает всё равно
32-бита, но зато какой простой код получается для работы со всем этим!
Бегло поглядел на libnv и там уже не XDR, а что-то своё, без этой
alignment красоты. XDR я на практике ведь в NNCP использую. А nvpairs
сериализованные данные хранятся прямо на диске в ZFS структурах и без
всякой схемы можно выводить их содержимое.

Дальше всё аналогичное я хочу проделать в экосистеме GNU/Linux. Мне
кажется это будет настоящий ад. Seccomp вроде бы мне достаточен в его
strict режиме. Например после входа в Capsicum в FreeBSD я дополнительно
ограничиваю read/write/kqueue возможности на оставшиеся сокеты -- а в
seccomp strict режиме они сразу же будут только в read/write. Но вопросы
сериализации остаются и... как мне waitpid то там сделать? С ходу не
знаю, если в strict. Плюс kqueue там нет. Буду готовиться к страданиям.

4 years agoНе везёт с ИБП
Sergey Matveev [Mon, 15 Mar 2021 11:34:37 +0000 (14:34 +0300)]
Не везёт с ИБП

FSP ИБП недавно вышел из строя. Брал этой компании впервые. Прожил
недолго и отец подтвердил что что-то в электронике -- с аккумулятором
всё хорошо (купил и аккумулятор, чтобы убедиться в этом). Взял в НИКСе
ИБП компании "Импульс". Он в итоге ни на что не реагирует, совсем не
работает. Ездил обменивать на PowerCom, которые чаще всего я и имел дома.

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

4 years agoPython, Go, C++, C, AWK, Forth, Rust и подсчёт слов
Sergey Matveev [Mon, 15 Mar 2021 11:28:21 +0000 (14:28 +0300)]
Python, Go, C++, C, AWK, Forth, Rust и подсчёт слов

https://benhoyt.com/writings/count-words/
Позлорадствую, но в простой задаче Rust почему то из коробки обосрался
при сравнении с Go. Его оптимизированные версии чуть быстрее, но даже и
Go не сильно медленнее Си. Вот это для меня немного удивительно.

4 years agoawk в zsh
Sergey Matveev [Sun, 14 Mar 2021 18:15:01 +0000 (21:15 +0300)]
awk в zsh

Недавно писал что Perl очень удобные опции умеет для прекрасной замены
awk самого частого используемого функционала:
9ac0b9d604908f72855fe120986a102220dd369f. А ведь разбивать строчку по
whitespace-ам в массив можно и в zsh:

    % foo="foo           bar   baz"
    % print ${${=foo}[2]}
    bar

а можно и slice взять:

    % print -l ${${=foo}[1,3]}
    foo
    bar
    baz

А можно разбить не по словам, а по разделителю:

    % print -l ${(s.:.)PATH}
    /home/stargrave/work/gopath/bin
    /home/stargrave/work/go/bin
    /home/stargrave/work/goredo
    [...]

4 years agoОткрытки с ASCII art-ом на 8 Марта
Sergey Matveev [Sun, 14 Mar 2021 06:40:21 +0000 (09:40 +0300)]
Открытки с ASCII art-ом на 8 Марта

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

    Возможно вы в открытках пишете про уровень английского B2 и
    сертификаты по Cisco, чтож, тут остается только посочувствовать
    вашим коллегам

4 years agoЗаказал воду на свидании? Давай, до свидания
Sergey Matveev [Sun, 14 Mar 2021 05:28:39 +0000 (08:28 +0300)]
Заказал воду на свидании? Давай, до свидания

https://lenta.ru/news/2021/03/14/water/
Ещё один способ обосраться перед девушкой, заказав *себе* простую воду.
Я вот ничего алкогольного не пью принципиально, поэтому шампанское, пиво
и всякие коктейли с водкой отпадают. Не люблю вкус кофе -- через силу
могу его выпить, но самостоятельно себе никогда не закажу. А чай я и
дома могу попить. Я себе заказывал или всякие морсы, соки, компоты и
что-то подобное. Квас люблю. Но и в воде проблем не вижу.

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

4 years agoThe Hitchhiker’s Guide to Online Anonymity
Sergey Matveev [Sun, 14 Mar 2021 05:23:40 +0000 (08:23 +0300)]
The Hitchhiker’s Guide to Online Anonymity

https://anonymousplanet.org/guide.html
Большая подборка всякого связанного с обеспечением анонимности в
компьютерах. Такой полной и актуальной, со всякими заметками что Apple
устройства обожают всё равно широковещательно о себе напоминать даже в
выключенном состоянии, не встречал. Хотя уровень там не поднимается выше
рекомендаций использования Tor. Пользу вижу в оглашении всевозможных
каналов утечки данных.

4 years agoLoom сравнение EGA и VGA графики
Sergey Matveev [Sat, 13 Mar 2021 16:48:56 +0000 (19:48 +0300)]
Loom сравнение EGA и VGA графики

http://www.superrune.com/tutorials/loom_ega.php
https://news.ycombinator.com/item?id=26445522
Loom я прошёл всего несколько лет назад
(31e6bee7d9b0f7b5a1c7ad958e37d1eb1a61509c) -- поэтому ностальгии у меня
быть не может. Но игра запомнилась -- один из лучших квестов в какие я
играл. Однозначно в линейке "the best". Отличительная особенность (для
меня) -- она довольно короткая, возможно самая короткая из всех квестов
такого рода что я играл.

Но EGA игры и графику я застал -- первый компьютер был с EGA. И на нём
почти ничего не делалось, кроме как играли в игры с 5.25" дискет.

4 years agoПрочитал "Роза и червь"
Sergey Matveev [Sat, 13 Mar 2021 08:13:47 +0000 (11:13 +0300)]
Прочитал "Роза и червь"

https://fantlab.ru/work504376
Обожаю такие книги и эта очень понравилась. Всякие техноштучки-дрючки,
деление людей нульдевов, милитантов, бланков и гильдов. Борьба с
пришельцами, космиков с наземниками, планет с астероидами. Эволюция до
состояний муравьёв. Уничтожение Новой Москвы, жизнь в Руссии и куча
всякого подобного. Ближе всего, мне показалось, книга к "Схизматрице"
Брюса Стерлинга.

4 years agoМиллионы тонн ядерных отходов
Sergey Matveev [Fri, 12 Mar 2021 06:21:36 +0000 (09:21 +0300)]
Миллионы тонн ядерных отходов

https://naked-science.ru/article/nakedscience/milliony-tonn-yadernyh-othodov-krupnejshij-mif-atomnoj-energetiki
Интересная легкочитаемая статья про невероятное количество ужасно
опасных отходов от АЭС. Старые добрые байки от Greenpeace и их умение
выделять только негативные черты без сравнения с альтернативами.

4 years agoOpenBSD недостатки безопасности. Так ли она хороша?
Sergey Matveev [Fri, 12 Mar 2021 05:42:49 +0000 (08:42 +0300)]
OpenBSD недостатки безопасности. Так ли она хороша?

https://madaidans-insecurities.github.io/openbsd.html
https://allthatiswrong.wordpress.com/2010/01/20/the-insecurity-of-openbsd/
https://grsecurity.net/~spender/exploits/exp_moosecox.c
https://networkfilter.blogspot.com/2014/12/security-openbsd-vs-freebsd.html
OpenBSD нацелена на "low level exploit mitigation" в первую очередь. А
сегодня меня осенило что ведь в ней нет такой штуки как Mandatory Access
Control в принципе, ни в каком виде. В FreeBSD то уже давно MAC:
https://docs.freebsd.org/en_US.ISO8859-1/books/handbook/mac.html

Согласен что оно излишне, не нужно и бесполезно если софт написан с
privsep-in-mind и, более того, использует всякие pledge/unveil и прочее.
Но а что делать с софтом который так не написан? Насколько понимаю,
предложение OpenBSD это переписать его, мол исправить. Но нет, не
соглашусь что это годное решение. Я тоже могу доверять и считать что у
меня в сети нет софта который бы что-то по сети на определённым адресам
ничего бы не рассылал, но это не означает что лучше "перебздеть" и всё
равно добавить правило firewall-а. Вот и с MAC-ом аналогично: доверие
доверием, но лучше перестраховаться. pledge/unveil хороши и полезны, но
это не замена MAC. Это точно такой же аргумент как "я проверил этот Си
код и он не имеет проблем и дыр, поэтому и exploit mitigation-ы не нужны".

Само собой MAC (как и SELinux/AppArmor) это штука не для обычного
использования компьютера пользователем. И это правда что их 99.99%
пользователей сразу же отключают. Но когда готовится готовое решение,
заточенное под чёткую задачу, то MAC актуален.

HardenedBSD "has many mitigations OpenBSD does not such as CFI,
SafeStack, SEGVGUARD, a proper W^X implementation"
(5916b1b5c4827dccf0a7ced477a8e7d6de45908f). Это в довесок к тому, что
HardenedBSD имеет и MAC, так как это же FreeBSD. Ну и даже просто такие
sandboxing технологии типа Jail-ов отсутствуют в OpenBSD. Короче FreeBSD
как всегда рулит!

4 years agonetaddr.IP
Sergey Matveev [Thu, 11 Mar 2021 09:17:15 +0000 (12:17 +0300)]
netaddr.IP

https://tailscale.com/blog/netaddr-new-ip-type-for-go/
Интересная статья про то, как можно компактно, быстро и эффективно
представлять и работать с IP адресами в Go, вместо родного net.IP,
требующего много аллокаций, не компактного и не везде удобного
(IPv4 vs IPv6).

И меня ещё приятно удивило то, что статья написана Брэдом Фитцпатриком
-- представления не требующий. Смотрю что ещё в блоге этой компании есть
и вижу Avery Pennarun -- того самого, кто сделал apenwarr/redo. Мир тесен!

4 years agoГурманизируюсь: тар-тар
Sergey Matveev [Thu, 11 Mar 2021 09:05:37 +0000 (12:05 +0300)]
Гурманизируюсь: тар-тар

В прошлом году отметил BBQ соус (d3ff0498cb2ba61e68efa34b9040d8c5f9ff635a),
с которым любое мясо будет вкусно. А сегодня заметил что уже в который
раз беру еду в столовой только потому что там соус тар-тар. Мясо или рыба:
без разницы уже.

4 years agoIRC спустя четыре века
Sergey Matveev [Thu, 11 Mar 2021 08:16:59 +0000 (11:16 +0300)]
IRC спустя четыре века

Дочитываю тут одну книгу, где действие происходит в 2300-х годах, где
всякие компьютерные сети на всю Солнечную систему. И там до сих пор
применяется irc:// протокол. И сейчас для меня он действительно является
всё же самым практичным и приятным для использования. У всех IM-ов куча
за и против, но IRC как-то всё равно перевешивает всех.

4 years agoДень перебоев
Sergey Matveev [Wed, 10 Mar 2021 21:39:54 +0000 (00:39 +0300)]
День перебоев

За один день:
* у меня вышел из строя ИБП (d730b7956cc04d2b1b6d6aaff1459579eb78606d)
* динамик впервые начал не просто шуметь/дребезжать
  (c4eb9b487099fb52353ddbff000ccdc348a52b8c), а вообще полностью
  отключаться. Хотя мне это даже нравится -- ноутбук становится таким
  тихим, а от динамика всё равно толку уже нет
* сгорела часть ДЦ OVHCloud: https://www.opennet.ru/opennews/art.shtml?num=54736
* в новостях пишут что Twitter почти отключён в РФ (ничего из него не
  читаю, ибо ни RSS/Atom нет, ни без JS он ничего не покажет)
* сам видел что зарубежные сети вовсю были с трудом доступны. Пишут что
  Ростелеком напортачил с маршрутизацией. Причём дома у меня то как раз
  всё хорошо работало (судя по мониторингу), а вот на работе РТ канал

4 years agoСтал мало в блоге писать о релизах своего софта. NNCP 6.2.0
Sergey Matveev [Wed, 10 Mar 2021 21:27:59 +0000 (00:27 +0300)]
Стал мало в блоге писать о релизах своего софта. NNCP 6.2.0

http://lists.cypherpunks.ru/archive/nncp-devel/2103/0195.html
Заметил что прежде я даже минорнейшие версии PyGOST/GoGOST упоминал. А
сейчас даже релизы NNCP пропускаю от упоминания, ибо ничего интересного,
везде сплошная банальность и скукота. Ну или моё отношение к проектам и
блогу изменилось.

Хотя в NNCP и прилично правок было сделано -- очередной рефакторинг
логирования. В этом проекте ничто так часто не переписывалось, как
эта часть проекта. То structured data поля из RFC syslog. То переход на
recutils. То я передавал словарём, то списком. То я на основе сырых
данных структурированных сообщений формировал человекочитаемую строку
лога, то теперь сразу же на месте её формирую и в лог же и записываю.

А вот что меня приятно удивляет, так это то, что само ядро NNCP -- его
базовые и шифрованные пакеты: не меняются годами. Были правки, но очень
простые и несущественные. И при этом ядро NNCP (toss, tx) покрыто
тестами с самого начала. И ни разу за всю историю проекта у меня (и у
пользователей которые куда активнее и брутальнее меня его используют,
перегоняя на порядки бОльшие объёмы данных) ничего не пропадало и не
корёжилось в данных. Никогда ничего не удалялось пока точно то или иное
действие не доделано до конца с гарантиями всяких fsync-ов. Я считаю что
может случаться всё что угодно, но лишь бы не потери данных и лишь бы не
удаление того, в чём ещё нет точной уверенности (например оповещение
противоположной стороны по online протоколу о том что файл получен) -- и
пока в этом не облажался.

4 years agoWikipedia и значимость правок
Sergey Matveev [Wed, 10 Mar 2021 21:18:11 +0000 (00:18 +0300)]
Wikipedia и значимость правок

https://en.wikipedia.org/wiki/List_of_mailing_list_software
Когда я перешёл на mlmmj, то в Wikipedia в список maillist софта внёс
ссылку на mlmmj. А то ведь не порядок -- совсем он не упоминается там.
Сейчас вот увидел что правку отменили, мол это не notable.

В Wikipedia я вносил правки наверное раз пять. И насколько помню, все
эти правки всегда отменялись. Я совершенно не понимаю какая информация
может туда (в Wikipedia) попадать, а какая нет. Я совершенно не понимаю
этих оценок notability. Автор хочет сказать что mlmmj имеет меньший вес
чем GroupServer или Organic Groups Mailing List? Про них я вообще вроде
никогда не слышал и не видел в природе. mlmmj я прям осознанно вспоминаю
что прилично где используется (судя по рассылкам на которые я подписан),
в отличии от многих других. Или моё множество мне известных рассылок (а
это сотни!) является non-notable частью всех остальных, которые рулятся
на чём угодно, но только не на mlmmj, Sympa и Mailman?

Просто я вроде видел сотни статей на Wikipedia в которых буквально один
маленький абзац, занимающий на экране несколько строк. Это notable? Я
видел сотни статей там с ссылками на внешние ресурсы/проекты. Совершенно
не понимаю я оценок, даже отдалённо. Собственно и 10+ лет назад я не
понимал и поэтому даже не пытался ничего править -- но раз в несколько
лет всё же что-нибудь да вношу (ну и это отменяют). Причём мои правки
исключительно на технические темы -- никакой политики или истории,
которые всюду и везде спорны. Статьи касающиеся софта -- все удалялись,
хотя я даже примерно не понимаю чем они отличаются от любой из тысяч
статей рассказывающих про то или иное свободное ПО.

4 years agoСнова про разбиение диска в GNU/Linux
Sergey Matveev [Wed, 10 Mar 2021 09:34:54 +0000 (12:34 +0300)]
Снова про разбиение диска в GNU/Linux

https://openzfs.github.io/openzfs-docs/Getting%20Started/Ubuntu/Ubuntu%2018.04%20Root%20on%20ZFS.html
Сколько нужно разрабов чтобы разбить диск:
2e2ddd2329bb3abaa7c4dd842dd6da7a57475298
Но, видимо это всё архаичная фигня была, ибо в документации про "ZFS как
корень для Ubuntu" вообще говорят про какую-то мне прежде невиданную
sgdisk утилиту для разбиения диска.

4 years agoИБП отказал
Sergey Matveev [Wed, 10 Mar 2021 08:53:08 +0000 (11:53 +0300)]
ИБП отказал

Просыпаюсь ночью от писка. ИБПшник циклически пытается включиться, на
секунду запускает серверы, дальше вырубается. В общем, отказал. Хотя
даже год не отслужил ещё (029660df1133b0c78da48bc2ceb4232542fa1931). Но
прежде у меня были только Powerman (как-то так, точно не помню), а в
этот раз какой-то FXP.

4 years agoСимпатичны unveil(2) и pledge(2)
Sergey Matveev [Tue, 9 Mar 2021 19:15:56 +0000 (22:15 +0300)]
Симпатичны unveil(2) и pledge(2)

https://man.openbsd.org/unveil
https://man.openbsd.org/pledge.2
https://isopenbsdsecu.re/
Немного познакомился и почитал про всякие seccomp, Capsicum и pledge
штуки, даже что-то начал писать с их использованием. pledge пробовать не
буду, ибо нет под рукой OpenBSD, но выглядит он супер удобно и просто
устроенным! К seccomp даже страшно подходить. Capsicum довольно
специфичен (по сути только про файловые дескрипторы говорит) и не всё в
нём тривиально сделать. А когда гляжу в доки и примеры по pledge, то
слюни текут. Если capsicum-изация софта в FreeBSD идёт единичными
экземплярами софта в базовой поставке ОС, то использование pledge в
OpenBSD это прям десятки программ в день можно переводить. Конечно там
гранулярность правил не такая как в seccomp/Capsicum, но лучше чем
ничего и как же просто!

Теперь уже прям чувствую что понимаю как заморочена OpenBSD в плане
безопасности. Не факт что она там лучше, ибо возможно баги так себе
фиксят, и софт не лучший юзается, вообще древний GCC без всяких
security-aware фич, да и не все известные mitigation-ы внедрены -- но
идеи и течение мыслей в проекте и у Тео идут в нужном русле, сильно
опережая остальных во времени зачастую.

4 years agoА без девок было куда спокойнее
Sergey Matveev [Tue, 9 Mar 2021 18:43:37 +0000 (21:43 +0300)]
А без девок было куда спокойнее

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

А сейчас я почаще стал выбираться на работу, вижу кучу женщин и в
транспорте и на работе и как же это сбивает с рабочего настроя!

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

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

4 years agoarc4random
Sergey Matveev [Tue, 9 Mar 2021 18:07:50 +0000 (21:07 +0300)]
arc4random

http://www.openbsd.org/papers/hackfest2014-arc4random/
Давно слышал про rand() и random() и про то, что они не безопасны. В BSD
системах есть arc4random*(), которые изобрели в OpenBSD. Я сторонился
этого вызова, ибо это же RC4. Но, оказалось, что RC4 в нормальных ОС
давно заменён на что-то более серьёзное, типа ChaCha20.

Reseed происходит на регулярной основе, но не при каждом вызове. А
ChaCha20 я доверяю на 100% что она хороший выхлоп создаёт, без яростного
потребления энтропии. В итоге мне всё больше нравится идея использования
этой функции вместо чтения /dev/urandom, с которым ещё и куча кода
нужна, ведь это же работа с файлами, требующая ещё и соответствующих прав.
Плюс скорость ChaCha20 такая, что её и не для криптографических задач
вполне можно использовать.

Не даром в man-ах советуют её использовать. А в OpenBSD, пишут, что она
де-факто везде и всюду и применяется. И надо читать на ARCFOUR, а
"A Replacement Call for Random".

Ах да, конечно же этот вызов, судя по всяким презентациям, есть везде,
кроме, конечно же, glibc.

4 years agoThread-safety and POSIX.1
Sergey Matveev [Tue, 9 Mar 2021 10:08:28 +0000 (13:08 +0300)]
Thread-safety and POSIX.1

http://www.unix.org/whitepapers/reentrant.html
Хорошая подборка предостережений при использовании POSIX.1 функций,
многие из которых не reentrant, не thread-safe для использования.

4 years agoНедочитал "Аптекаря" Владимира Орлова
Sergey Matveev [Tue, 9 Mar 2021 10:02:29 +0000 (13:02 +0300)]
Недочитал "Аптекаря" Владимира Орлова

https://www.e-reading.life/book.php?book=42959
Осилил половину, но бросил, когда снова как будто всё пошло по кругу с
этой джинихой, хотя вот вот уже ведь и развязке бы быть. Чересчур
растянуто для меня, и понял что не настолько оно мне нравится, чтобы
продолжать чтение.

4 years agoCryptology ePrint Archive сайт без JavaScript
Sergey Matveev [Tue, 9 Mar 2021 09:59:31 +0000 (12:59 +0300)]
Cryptology ePrint Archive сайт без JavaScript

https://www.iacr.org/eprint/
Если зайти на этот сайт без включённого JS, то в заголовке будет:

    What a lovely hat
    Is it made out of tin foil?

с ссылкой на https://www.iacr.org/tinfoil.html

4 years agoСнова сходил на концерт Пикника
Sergey Matveev [Mon, 8 Mar 2021 17:56:48 +0000 (20:56 +0300)]
Снова сходил на концерт Пикника

Не поклонник, да и Мельница (c2a00c1252c1c4a0764afbb4048c540061f02a42)
мне точно явно больше по душе, но не сидеть же дома, когда рядом всё
равно хорошая музыка играет в ДК.

4 years agoБукетомешалка
Sergey Matveev [Mon, 8 Mar 2021 17:54:57 +0000 (20:54 +0300)]
Букетомешалка

https://www.youtube.com/watch?v=3Zgq3R-jkRU
А если кто не знает, то это отсылка/кавер на легендарнейшую
"Бетономешалку" группы "Кувалда": https://www.youtube.com/watch?v=7J65pB8f9Qc

4 years agogit gc --aggressive
Sergey Matveev [Sun, 7 Mar 2021 17:02:46 +0000 (20:02 +0300)]
git gc --aggressive

https://gcc.gnu.org/legacy-ml/gcc/2007-12/msg00165.html
Я читал что Торвальдс не советовал никогда использовать gc --aggressive,
вместо этого советуя git repack -a -d --depth=X --window=Y. Он же где-то
говорил и про то, что можно выставить очень большие depth/window, чтобы
ещё лучше всё пожать. Я с того момента и использовал repack с большими
значениями. А сегодня обнаружил что gc --aggressive, мягко говоря, на
несколько десятков процентов лучше сжимает репозиторий, ценой CPU. Для
архивного хранения (где не важно время доступа к конкретным объектам) я
хотел бы максимально эффективно сжимать, поэтому repack больше не буду
использовать.

4 years agoSwap в FreeBSD fstab
Sergey Matveev [Sun, 7 Mar 2021 16:48:07 +0000 (19:48 +0300)]
Swap в FreeBSD fstab

В bf6b90ab6bb513ba86210b5527f4bd10191da228 писал что swap можно сделать
и на ZFS. Это очевидно всё. Уже не помню, но есть и какая-то метка
которая позволяет пометить ZVOL как swap устройство, которое
автоматически может быть использовано FreeBSD. Вот только вроде при этом
нельзя будет намекнуть что нужно использовать .eli устройство с
одноразовым ключом шифрования.

А сейчас узнал (кроме .eli) и другой плюс зачем swap стоит прописывать в
fstab: swapon/swapoff команды имеют "-a" опцию, которая как-раз
позволяет все swap устройства подключать/отключать перечисленные в fstab.

4 years agoВ Швейцарии запрет на скрытие лица
Sergey Matveev [Sun, 7 Mar 2021 16:40:04 +0000 (19:40 +0300)]
В Швейцарии запрет на скрытие лица

https://lenta.ru/news/2021/03/07/referendum/
Вот те на! А у меня, на фоне камер упирающихся в лицо в метро Москвы,
наоборот посещают мысли о том чтобы носить нечто прикрывающее и
закрывающее лицо. Вот что не новость, но в Европе просто какой-то лютый
ад в вопросах приватности и свободы людей или даже свободы слова --
поэтому и понятно почему они громче всех орут на все эти темы.

4 years agoglibc функции и crap
Sergey Matveev [Sun, 7 Mar 2021 09:29:23 +0000 (12:29 +0300)]
glibc функции и crap

В продолжение d9a8dfe35de9fbd81cecefffda022ee42e5e7ce9 ещё вспомнил
эпопею с темой про strcat/strcpy. Для них есть strncat/strncpy варианты
(хотя, говорят они никогда не предназначались для безопасной замены
str*). Но которыми сложно пользоваться правильно. Поэтому OpenBSD
изобрела strlcat/strlcpy версии: https://www.sudo.ws/todd/papers/strlcpy.html
которые и удобны и просты и безопасны и быстры.

Конечно же, glibc отверг предложение включить эти функи, ибо это же "BSD crap":
https://sourceware.org/legacy-ml/libc-alpha/2000-08/msg00053.html
Мол нужно всегда знать длину ваших строк:
https://stackoverflow.com/questions/2114896/why-are-strlcpy-and-strlcat-considered-insecure
С одной стороны, конечно, верно. С другой по ссылке верно заметили что
читаемость strl* версий куда лучше. Так можно и про все str* функи было
сказать что это crap и достаточно циклов с memset-ами всяких.

Вот и выходит что в glibc нет ни _s функций, ни strl* и наверное ещё
тьмищи других, ведь опыта то у меня с гулькин нос ещё. Так как всё равно
BSD функи используются активно даже в GNU проектах, то сделали вот такой
вот проект: https://libbsd.freedesktop.org/wiki/
где заприметил всякие {le,be}*{enc,dec} функции, которые я уже как-то
использовал и споткнулся об их отсутствии в glibc. А выбрал я их, читая
man, как самые удобные для использования. А раз так, то конечно же фиг
будут в glibc. А strl* кстати есть в musl -- молодцы!

4 years agoСписки запрещённых Си функций в git и Microsoft
Sergey Matveev [Sun, 7 Mar 2021 08:54:20 +0000 (11:54 +0300)]
Списки запрещённых Си функций в git и Microsoft

https://news.ycombinator.com/item?id=20792938
https://news.ycombinator.com/item?id=26353025
Вот чего мне не хватало (да и не хватает до сих пор), так это
современного источника мудрости по Си. Открываешь старые книжки по Си и
видишь что там явно плохие практики, очень опасные. Про всякие штуки
типа -ffunction-sections (очень помогающие) или про -fstack-protector-all
узнаю чисто случайно. Хотя... может я узнаю про них когда приходит время?

И вот я мельком где-то просто видел и слышал что всякие strcpy и strcat
являются опасными и не рекомендованными. Но я на Си и не писал прежде.
Но а где мне найти вообще подборку хороших практик? Всё что я видел --
сильно разрозненные и не пересекающиеся множества знаний.

И вот две ссылки на забаненные функции. И мне они очень понравились тем,
что я по сути не узнал ничего нового. Своей головой, читая описания этих
функций в man-ах, понимал что или проблемы с thread-safety/reentrancy
или с возможностями выхода за границы. Получается что яростно
неправильных фунок не так много и я самостоятельно понимал их опасность.
Настроение поднимается.

А ещё Microsoft удивляет. Недавно вот выяснилось что всякие защиты в
софте (5916b1b5c4827dccf0a7ced477a8e7d6de45908f) они применяют очень
давно и вроде как довольно активно, поболее чем FreeBSD. Хотя наверное
тут и нечему удивляться: ведь у них на порядки больше пользователей. А
сейчас приятно удивляет тем, что Microsoft основной потребитель функций
из K-appendix-а C11 (12f6e5616982751e2f14a8c01cd503cb55f238ed): функций
с _s суффиксом, который типа secure. Хотя они же их и разрабатывают. BSD
системы их тоже поддерживают, а в glibc вообще под чистую отсутствует.

4 years agoИспользую DKIM и DMARC на своих доменах
Sergey Matveev [Sun, 7 Mar 2021 08:46:13 +0000 (11:46 +0300)]
Использую DKIM и DMARC на своих доменах

DKIM я не поднимал у себя принципиально: в любом случае считаю не
заслуживающей внимания технологией. Есть OpenPGP. А DKIM... ни рыба, ни
мясо, ни о чём. И меня бесит что вроде как всякие крупные email
провайдеры хотят чтобы он был -- OpenPGP бы требовали лучше с таким же
упорством.

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

Плюс DKIM может совсем не дружить с списками рассылки, которые и тело и
заголовки (в том числе Subject) могут легко поменять:
https://wiki.list.org/DEV/DKIM
Получается что чуть ли не единственный достойный способ работать с
DKIM-подписанными сообщениями в рассылку -- удалять DKIM подпись нафиг.

Но вчитавшись получше в DKIM, всё же вроде вижу что мой Mlmmj не должен
ничего ломать. Subject не меняет, тело не правит -- только добавляет
дополнительные заголовки. Ну и для своих доменов (@stargrave.org,
@cypherpunks.ru) решил DKIM добавить -- не так много геморроя, не надо
заниматься ротацией и обновлением ключа или возиться с PKI. Хотя всё
равно считаю это бесполезной тратой ресурсов. Но да ладно: сделал и забыл.

Ну и DMARC для галочки добавил, раз уж по факту использую и SPF и DKIM.

4 years agoОткрытие концертного сезона! Сходил на Мельницу
Sergey Matveev [Thu, 4 Mar 2021 19:42:36 +0000 (22:42 +0300)]
Открытие концертного сезона! Сходил на Мельницу

https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D0%BB%D1%8C%D0%BD%D0%B8%D1%86%D0%B0_(%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%B0)
Которая приезжала к нам в город. Слушал её впервые. Оказалось что рока
там довольно много -- я думал что там больше фолка всякого. Отличный
барабанщик ещё у них с клёвым drum solo! Очень доволен и пару их дисков
приобрёл.

4 years agoASLR, PIE, RELRO, BIND_NOW, W^X и подобное
Sergey Matveev [Thu, 4 Mar 2021 11:30:57 +0000 (14:30 +0300)]
ASLR, PIE, RELRO, BIND_NOW, W^X и подобное

https://hardenedbsd.org/content/easy-feature-comparison
https://wiki.gentoo.org/wiki/Hardened/Toolchain
https://wiki.ubuntu.com/Security/Features
https://wiki.freebsd.org/Hardening
Ничего из этого нет на FreeBSD. Точнее частично ASLR есть в develop
ветках FreeBSD. В HardenedBSD довольно давно. В OpenBSD вообще раньше
всех ОС появилось почти 20 лет назад.

Только с началом программирования на Си начал хоть как-то понимать про
что это всё и чем оно важно. Точнее под вопросом важен ли ASLR: полно
людей считает что это security by obscurity, значит нафиг нужно, не
серьёзно. Про ASLR не много чего могу сказать, но то что SbO это не
серьёзно -- солидарен. Меня не продолжают удивлять рекомендации менять
порты SSH-а или имена учётных записей чтобы злоумышленник имел чуть чуть
более высокий порог входа. Я не считаю этот геморрой стоящим этого. В
чём проблема с SSH? Если используется аутентификация по ключам, то пусть
хоть об-brute-force-ятся. А если где-то применяются пароли -- то я
считаю вообще не стоит задумываться о безопасности с таким подходом: тут
ничего не поможет.

На деле попробовал использовать SSP:
https://wiki.osdev.org/Stack_Smashing_Protector
включаемый -fstack-protector опцией. В FreeBSD оказывается можно
глобально для портов включить эту опцию. Overhead, говорят, очень
незначительный. А я видел что даже не злонамеренный код может
набедокурить -- и раздражать то будет неясность его поведения и что
вообще происходит.

ASLR+PIE вроде в FreeBSD всё же собираются внедрить. Удивляет что
Windows уже давно в курсе про многие подобные технологии и использует их.

Всякие RELRO и BIND_NOW вроде не касаются статически собранного софта.
Ещё один довод что нафиг динамическую линковку, ибо и PIE и BIND_NOW
имеют очень нехилый overhead, как пишут.
В 5fca611e0f3c79a2985ba04708ecedf960ed7c03 писал что меня удивляло что
на простой FreeBSD всё визуально как будто значительно быстрее стало
работать. Возможно связано как-раз вот со всем этим.

https://hardenedbsd.org/article/shawn-webb/2021-02-28/hardenedbsd-february-2021-status-report
https://cgit.freebsd.org/src/commit/?id=2e1c94aa1fd582fb8ae0522f0827be719ff5fb67
https://www.freebsd.org/news/status/report-2019-07-2019-09/#Kernel-Mapping-Protections
пишут что и работа по W^X ведётся и мержится.

4 years agoПерешёл на UCSPI-TCP вместо inetd
Sergey Matveev [Thu, 4 Mar 2021 09:06:58 +0000 (12:06 +0300)]
Перешёл на UCSPI-TCP вместо inetd

http://cr.yp.to/ucspi-tcp.html
Очередная итерация перехода на DJB-way софт! Как всегда, как и прежде, я
уже видел UCSPI-TCP и смотрел на него, но он казался не очень понятным
зачем и чем лучше inetd. Так со всем софтом DJB, даже забавно.

Сегодня почему-то осознал. Хотя началось всё с того, что мне не
понравился тот факт, что в inetd нельзя задавать на каком адресе он
должен слушать. Можно только глобально всему демону это сказать. А
желания поднимать несколько inetd и менять rc.d скрипты у меня нет.

Каждая служба из inetd заменяется на tcpserver, который слушает по TCP и
запускает указанную команду при соединении. UID/GID-ы выставлять умеет.
Ограничивать кол-во соединений умеет. Слушать на заданных адресах умеет.
Само собой запускается под daemontools. Ну и конечно же нужно патчить
его софт чтобы получить IPv6.

Что мне это дало, кроме возможности запускать нужные службы на нужных
адресах? Независимость каждой службы от другой и возможность их
перезапускать/менять не меняя централизованный конфиг и дёргая
единственного демона. Это конечно не полная замена inetd -- на каждом
порту/адресе слушает отдельная программа, тогда как inetd слушает один
за всех. Но так как демонов не много на практике, то это уж точно не
будет где либо проблемой.

Как же мне нравятся подходы DJB!

4 years agoTelegram Desktop и Fedora/Gentoo
Sergey Matveev [Thu, 4 Mar 2021 06:15:58 +0000 (09:15 +0300)]
Telegram Desktop и Fedora/Gentoo

https://www.opennet.ru/opennews/art.shtml?num=54681
https://lists.rpmfusion.org/archives/list/rpmfusion-developers@lists.rpmfusion.org/thread/5A7MRE3BG66PQXSP263FUZ7XS5PMDNUV/
https://archives.gentoo.org/gentoo-dev/message/d20d6ec5a06582782fcf17291a40d66f
Я ради интереса прочитал переписку maintainer-ов. И вот... вообще
абсолютно *ни одного* не нормального сообщения от ilya-fedin не увидел!
А вот заявы maintainer-ов просто отвратительны! Начиная от того что
предоставляют screenshot-ы с диким разрешением, заканчивая тем, что
вообще ни о какой конкретике не пишут, не читают доки и вообще всё
выглядит только так, что "я тут что-то нажал, оно не заработало, даже
думать не хочу в чём дело, слышь, автор, какую каппу мне нажать?". Илья,
более того, сам же делает и ревью того как собирается это ПО, хотя и не
обязян этого делать -- видно что он реально хочет помочь советом.

В общем, я увидел только отвратительную работу и общение maintainer-ов и
вообще не могу придраться к ilya-fedin. С фига ли он должен разбираться
и помогать с проблемами *дистрибутива*. Да, сборка делается в виде
статической библиотеки -- много раз это повторили. Почему так? Ну вот
так. Почему это кто-то должен бросаться менять или чинить (хотя я считаю
"поломанным" как-раз наоборот возможность только динамической библиотеки)?
Да, стал нужен более новый Qt. Никто никому не обязан поддерживать
старые версии. И вообще в каком месте нашли токсичность у ilya-fedin?
Вот у некоторых maintainer-ов она явно есть ещё какая.

4 years agoДетский плач в музыке
Sergey Matveev [Wed, 3 Mar 2021 20:58:34 +0000 (23:58 +0300)]
Детский плач в музыке

Фильм "Вход в пустоту" заканчивается 807f37ef45d317e44d93ddb47fd493ddf93634f8
детским плачем, который резко резко обрывается. Какая же услада была что
его оборвали. Где-то читал, да и логично само по себе, что детский плач
специально имеет такую высоту и тембры чтобы его заметить среди любых
шумов и чтобы он вызывал массу чувств тревоги. И в общем случае его
совершенно никогда не хочется где либо слышать, ибо раздражает. Прям вот
с ходу могу назвать альбом Ænima (группы Tool), где в одном трэке есть
несколько секунд плача... хотя наверное это и не плач, а просто детский
"разговор" -- когда я забываюсь и не успеваю заранее промотать этот
трэк, то я бросаю всё чем занимался, лишь бы переключить его. У Dream
Theatre на одном альбоме тоже есть детские звуки -- выбивает из колеи и
мчишься в терминале переключать трэк. Если Ænima копирую на флешку/диск
чтобы где-то послушать, то в обязательном порядке удаляю трэк с ребёнком
вообще. Наверное это самый раздражающий звук из всех что с ходу могу
назвать. Причём в жизни то он, если и слышен, то где-то в далеке, в
метрах как минимум. А на музыкальных альбомах оно же чисто сразу в уши
бьёт. Если музыканты хотели вызвать тем самым шквал эмоций, то им это
точно удаётся.

4 years agoПосмотрел "Вход в пустоту"
Sergey Matveev [Wed, 3 Mar 2021 20:44:41 +0000 (23:44 +0300)]
Посмотрел "Вход в пустоту"

https://ru.wikipedia.org/wiki/%D0%92%D1%85%D0%BE%D0%B4_%D0%B2_%D0%BF%D1%83%D1%81%D1%82%D0%BE%D1%82%D1%83
https://ru.wikipedia.org/wiki/%D0%9D%D0%B5%D0%BE%D0%B1%D1%80%D0%B0%D1%82%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D1%8C_(%D1%84%D0%B8%D0%BB%D1%8C%D0%BC)
Ещё одно просмотренное творение Гаспара Ноэ. Первое смотрел более десяти
лет назад -- фильм Необратимость. Который, мягко говоря, своими двумя
сценами очень запоминается. Сцена с Белуччи наверное была самая тяжёлая
что я видел в фильмах. Если целью Гаспара было передать жестокость,
мучительность и долгость "процесса", то у него это получилось как ни у
кого. Не сказал бы что советую это смотреть, но вот язык ещё и не
поворачивается сказать что это было мерзко и отвратительно. Какой-нибудь
Джокер или Муви-43 -- вот это мерзкие фильмы, с отвратительными
персонажами, на которых я бы вышел из кино. Неприятно смотреть на
конченую мразь и падаль или сортирно-сортирнейший юмор. Что может быть
приятного в сценах в Необратимости? Да ничего. Но вот выключать я не
выключал и не проматывал ничего.

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

Такого визуального преподнесения я не вспомню встречал ли прежде.
Настоящее испытание для видеокодеков. Фокус камеры всегда в движении,
всё постоянно мерцает или быстро перемещается, постоянно всё не под тем
углом повёрнуто, крутится и вертится. Вот есть фильмы где нарочито
снимают трясущейся камерой, как будто из глаз героя, который там бежит
например -- ненавижу, бесит, скорее даже фильм смотреть не буду как меня
раздражает тряска изображения!

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

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

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

В общем, Гаспара я бы назвал гением своего дела. Ничего близкого на его
эти два фильма никто не снимал -- даже близко ничего похожего не видел.
Темы поднимали, сценарии относительно банальны, не новы, малоприятно...
но они так преподнесены и показаны... я очень впечатлён!

4 years agoВернер Кох о централизации Интернета
Sergey Matveev [Tue, 2 Mar 2021 13:56:40 +0000 (16:56 +0300)]
Вернер Кох о централизации Интернета

https://media.ccc.de/v/110-we_want_more_centralization_do_we
Точно так же как и я, он считает что:
* Интернет уже прилично времени является удалённым доступом до
  нескольких дата-центров/серверов, нескольких компаний. Как прежде,
  люди подключались к N-ому кол-ву BBS-ок или нескольким mainframe-ам
* Web стал давно неюзабелен из-за JavaScript
* Несколько компаний контролируют какие CA включаются в броузере/ОС, при
  этом PKI failed, ибо это просто бизнес по продаже разноцветных строчек
  URL-ов в броузере (хорошо сказано!)
* Крупные email провайдеры всё больше усложняют возможность поднятия
  собственных серверов... типа прикрываясь борьбой со спамом. Что
  является брехнёй, ибо именно как-раз крупным серверам бороться со
  спамом проще всего
* Федерация это хорошо (cool design!)
* У людей уже въелось что как будто компьютеры всегда подключены к
  "Интернету" и всё делается только через него. А просто использовать
  свой компьютер люди не в состоянии? Собственно, много люди людей может
  теперь работать в air-gap режиме?
* Постоянные обновления софта из сети -- по сути это просто backdoor
  такой для управления вашим компьютером
* Коммуникации не под нашим контролем. Нужно готовиться к тому, что
  устройства перестанут вам подчиняться (я уже об этом писал, когда есть
  WiFi, который без backdoor-а работать не будет, а других средств связи
  в железку не вложат) и работать

Кох считает что email (SMTP) если и будет заменён чем-то (никто в общем
то не против этого), то это займёт лет 50. Решения по борьбе со спамом
до сих пор нет никакого.

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

А также кох не доверяет sandboxing-у броузеров.

4 years agoПосмотрел "Зеркало"
Sergey Matveev [Tue, 2 Mar 2021 13:38:11 +0000 (16:38 +0300)]
Посмотрел "Зеркало"

https://ru.wikipedia.org/wiki/%D0%97%D0%B5%D1%80%D0%BA%D0%B0%D0%BB%D0%BE_(%D1%84%D0%B8%D0%BB%D1%8C%D0%BC,_1974)
Фильмы Тарковского не люблю. Но после этого фильма -- я принципиально
вообще больше не буду ничего у него смотреть. Такое впечатление, что он
принципиально не хочет снимать фильм или что-то говорить: это просто
визуализация какого-то ребуса. Я не любитель ребусов, совсем.

Тарковский о своём фильме:

    антимещанское кино, и поэтому у него не может не быть множества
    врагов. „Зеркало“ религиозно. И, конечно, непонятно массе, привыкшей
    к киношке и не умеющей читать книг, слушать музыку, глядеть
    живопись… Никаким массам искусства и не надо, а нужно совсем другое
    — развлечение, отдыхательное зрелище, на фоне нравоучительного
    „сюжета“»

ok, Андрей, я всегда так и считал что ты принципиально заумный. Для меня
его искусство получается из серии "чёрного квадрата", когда якобы только
некоторым дано познать и ощутить всю прелесть и гениальность этого...
искусства. Smoke On The Water -- невероятно простая мелодия, несколько
нот, но которые узнает любой человек на Земле. Вот это -- действительно
гениальное искусство.

4 years agoTheo de Raadt о Rust и Zig
Sergey Matveev [Mon, 1 Mar 2021 10:34:05 +0000 (13:34 +0300)]
Theo de Raadt о Rust и Zig

https://marc.info/?l=openbsd-ports&m=161449568814043&w=2
https://marc.info/?l=openbsd-misc&m=151233345723889&w=2
Тео в своём духе. Но, как всегда, доля правды безусловно есть в его
словах. Понравилось что Rust это в первую очередь про пропаганду.

4 years agoБорат 2 получил Золотой глобус
Sergey Matveev [Mon, 1 Mar 2021 05:30:00 +0000 (08:30 +0300)]
Борат 2 получил Золотой глобус

https://lenta.ru/news/2021/03/01/borat/
Одобряю, фильм и мне очень понравился (8e5a98097b02279141dd892abde6c30876e304e0).
Его фильмы -- добрые.

4 years agoСброс кэша страниц в FreeBSD
Sergey Matveev [Sun, 28 Feb 2021 13:22:30 +0000 (16:22 +0300)]
Сброс кэша страниц в FreeBSD

Я знал что можно сбросить кэш файловой системы путём её отмонтирования.
Но не знал что кэш всё равно будет сброшен даже если umount не удался
(например ФС занята). Очень удобно.

4 years agoПосмотрел "Кэрри"
Sergey Matveev [Sun, 28 Feb 2021 09:00:46 +0000 (12:00 +0300)]
Посмотрел "Кэрри"

https://ru.wikipedia.org/wiki/%D0%9A%D1%8D%D1%80%D1%80%D0%B8_(%D1%84%D0%B8%D0%BB%D1%8C%D0%BC,_1976)
В целом я не люблю фильмы ужасов, ибо они скучны, нередко с глупым
сюжетом и вообще так себе. Думал что и Кэрри что-то из этой серии.
Но нет -- самих ужасов то в фильме особо толком и нет. Просто показана
жизнь затюканной дочери свихнувшейся на религии матери, которой можно
только посочувствовать. Я бы был наверное холоднее к фильму, ибо много
где смотрел в ускоренном режиме (ну не смотреть же как кружатся люди
пару минут?), если бы не последняя минута фильма, где не хотелось бы
оказаться на месте спящей девушки.

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

4 years agoWasteland 3 soundtrack Марка Моргана
Sergey Matveev [Sat, 27 Feb 2021 09:32:00 +0000 (12:32 +0300)]
Wasteland 3 soundtrack Марка Моргана

https://archive.org/details/wasteland-3-soundtrack
Оказывается есть Wasteland 3 игра. Про Wasteland 2 было много шума, а
про третью даже не слышал. И оказывается что музыку в ней делал снова,
опять же, куда же без него, Марк Морган! Всегда его можно узнать
(1a3127583b1f762a39ee32a9907d68b1fee5d297). На игру пофиг, а soundtrack
достоин прослушивания.

4 years agoПосмотрел "Голодные игры"
Sergey Matveev [Sat, 27 Feb 2021 08:24:23 +0000 (11:24 +0300)]
Посмотрел "Голодные игры"

https://ru.wikipedia.org/wiki/%D0%93%D0%BE%D0%BB%D0%BE%D0%B4%D0%BD%D1%8B%D0%B5_%D0%B8%D0%B3%D1%80%D1%8B_(%D1%84%D0%B8%D0%BB%D1%8C%D0%BC)
С одной стороны не пожалел: нравится мне Лоуренс и наверное только
поэтому в целом положительное впечатление. С другой стороны -- ну это же
вообще ни в какое сравнение с "Королевской битвой"!
ddeff7715d8e6e9e796470386912368344f613d6. "Битва" мне далеко не сразу
зашла и вообще я считал фильм полной фигнёй, до нормального полного
пересмотра, а не отрывками по ТВ.

4 years agoПлохие отзывы и комментарии
Sergey Matveev [Fri, 26 Feb 2021 19:24:39 +0000 (22:24 +0300)]
Плохие отзывы и комментарии

https://textfiles.libsyn.com/the-bad-review-episode
Jason Scott в своём подкасте рассказал как влияют на него негативные
отзывы. Лично мне очень интересно было послушать его мнение и отношение
к ним. Всегда и везде будут люди которым не понравится что ты делаешь.
Это и так понятно -- такова человеческая природа. Но я вот не особо знаю
как другие относятся к негативным отзывам и нередко думаю что я
частенько слишком близко их принимаю. Оказывается, нет. Jason
подтверждает что один комментарий может выбить из колеи надолго. Не
имеет значение сколько было положительных отзывов/комментариев, но
плохие всегда на 100% перекроют хорошие.

Jason не говорит у всех ли так по природе отношение такое, но у него
такое. И у меня такое. Написать комментарий ничего не стоит. Люди и вне
виртуального мира легки на то, чтобы сказать какую-нибудь гадость,
претензию, недовольство, а хорошее... это редкость. Читать
комментарии/отзывы в Интернете на какой-нибудь товар в магазине -- почти
всегда будет полной глупостью, потому что если что-то не нравится в
товаре, то об этом человек не пожалеет время написать (и ты не отличишь
придирается он, или действительно объективен и не зажрался). А если
товар годный и достойный, то... так же и должно же быть, поэтому чего
тратить время на положительный отзыв? Ну конечно есть другое: хороший
отзыв может быть обманом заказным, тогда как плохой отзыв сам магазин
вряд ли будет писать.

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

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

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

Всё это возвращает мои мысли к Догвиллю
(87c6f45f4d084e2b2e5368105d55d9741d3ae8aa). Какой всё же хороший фильм!

4 years agonpm is-odd
Sergey Matveev [Thu, 25 Feb 2021 18:15:34 +0000 (21:15 +0300)]
npm is-odd

http://xahlee.info/comp/npm_disease.html
Библиотека NPM по проверке чётности числа. Аж версии 3.0.1.
Даже содержит 1 dependency.

4 years agoПосмотрел "Нефть"
Sergey Matveev [Thu, 25 Feb 2021 10:51:36 +0000 (13:51 +0300)]
Посмотрел "Нефть"

https://ru.wikipedia.org/wiki/%D0%9D%D0%B5%D1%84%D1%82%D1%8C_(%D1%84%D0%B8%D0%BB%D1%8C%D0%BC)
Очень понравился! Не знаю что хотел донести автор, но у меня отторжение
всяких религиозных деятелей, которые могут лгать и врать, лишь бы
получить какой profit, кто сам не верит во что говорит, что признаёт что
просто лишь устраивает шоу и словоблудит. А самого нефтяника, учитывая
что впахивает поболее чем все в городе/деревне, можно понять почему он
сразу не приемлет и не даёт шансов если его обманули.

4 years agoЕщё одна причина почему не GNU/Linux, а BSD
Sergey Matveev [Wed, 24 Feb 2021 08:21:51 +0000 (11:21 +0300)]
Ещё одна причина почему не GNU/Linux, а BSD

https://www.tomek.cedro.info/why-linux-sux/
Даже хочется поставить "fun" topic, но тут не до смеха под Ubuntu:

    # adduser user
    Adding user `user' ...
    Adding new group `user' (1000) ...
    Adding new user `user' (1000) with group `user' ...
    Creating home directory `/home/user' ...
    Stopped: Couldn't create home directory `/home/user': File exists.

    Removing directory `/home/user' ...
    Removing user `user' ...
    Removing group `user' ...
    groupdel: group 'user' does not exist
    adduser: `groupdel user' returned error code 6. Exiting.

4 years agoДома появился бильярд, аэрохоккей и настольный теннис
Sergey Matveev [Tue, 23 Feb 2021 16:51:23 +0000 (19:51 +0300)]
Дома появился бильярд, аэрохоккей и настольный теннис

На самом деле всё это 3-в-1 и конечно же масштабировано до небольшого
стола, который складывается и мало занимает место вертикально, ничего не
занимая. Но в бильярд отлично можно поиграть (но не русский, ибо тут
лузы совершенно не под него), как и аэрохоккей. А вот для тенниса столик
маловат -- нужна сноровка.

4 years agoGo modules considered harmful
Sergey Matveev [Tue, 23 Feb 2021 16:29:47 +0000 (19:29 +0300)]
Go modules considered harmful

https://www.devever.net/~hl/gomod
Автор то конечно вправе считать как угодно, но я кардинально против его
мнения, как и он кардинально против мнения авторов Go:

* авторы хотят чтобы зависимости в Go прибивались прям жёстко к чётко
  заданной версии. И я полностью поддерживаю это! Я хочу
  детерминированности в поведении. Автор считает что нужно использовать
  семантическое версионирование, но использовать самую последнюю версию
  в пределах совместимости. Потеря детерминированности сборки -- ничто
  не может оправдать. А люди всегда остаются людьми и всё равно рано или
  поздно будут косяки с семантическими версиями
* автор считает что для повторяемой сборки, для детерминированности
  можно и нужно использовать GOPATH просто навсего. Отчасти согласен.
  Точнее я полностью согласен. Но... если нужную версию можно не
  обязательно полностью закоммитить, а указать через хэш в go.mod, то в
  чём проблема? Более того, в чём проблема закоммитить всё что хочешь в
  vendor директорию?
* у меня стойкое ощущение что автор не до конца понял как работать с
  модулями. GOPATH deprecation нисколько не убирает возможность гвоздями
  прибитые версии софта использовать и коммитить рядом, класть через
  submodule или как угодно ещё
* автор много пишет про то, что он не хочет видеть несколько версий
  одной и той же библиотеки у себя в программе. Согласен -- неприятно. А
  что делать? Я так и не увидел его предложение что делать со случаем
  когда A зависит от B версии vX, а C зависит от B версии vY. Хотя он
  упоминает семантическое версионирование gopkg.in-style... которое
  идентично must-have-to-use семантическому версионированию в модулях.
  Автор, так ты прочь или не прочь использовать несколько версий
  библиотеки? С модулями все возможности остаются. А вот в Python
  действительно подобную ситуацию вообще никак не разрешить из коробки
* автор считает что из-за жёстко привязанных версий у package maintainer
  нет средств использовать немного другие версии. Я считаю это хорошо --
  детерминированность это хорошо, и всегда лучше её отсутствия. А если
  кому очень надо что-то поменять -- go ahead и делай правки, накладывай
  патчи, как это было всю жизнь всегда
* всё что автор написал касательно централизации распространения модулей
  -- бред. По мне, так это буквально точно такое же популярное мнение
  что git это значит использовать Github. В Go можно запускать свои
  proxy, вообще их не использовать, делать replace внутри go.mod --
  средств огромная масса чтобы делать всё что угодно и как угодно. Лично
  я вообще не привлекаю нигде инфраструктуру Google при работе с Go
* такое ощущение, что куча хотелок автора решается replace в go.mod,
  что не возбраняется и не запрещается

Я отчасти во многом похож с автором: я активно использовал GOPATH для
предоставления зависимостей в проект. Признаюсь, впервые когда я увидел
GOPATH deprecation, то подумал что как теперь быть то? Как теперь
предоставлять в едином tarball-е всё что нужно? Копнув глубже, понимаешь
что vendoring полностью идеально решает эту задачу, никаких проблем. И
даже поудобнее. И даже никакого дополнительного инструментария не надо
использовать.

4 years agoПечать является бутылочным горлышком
Sergey Matveev [Sun, 21 Feb 2021 11:52:04 +0000 (14:52 +0300)]
Печать является бутылочным горлышком

https://thorstenball.com/blog/2020/09/01/typing-can-be-the-bottleneck/
Согласен тут с автором что аргумент "я больше думаю, будучи
программистом, чем печатаю" -- отвратителен. Ибо кроме самого ввода кода
есть же:

    commit messages, pull request descriptions, emails, tickets,
    comments on tickets, code reviews, documentation, Slack messages,
    notes, journal entries, RFCs, design documents, requirements.

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

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

Качество работы при этом пострадает? Ещё как! Что было причиной? Печать!

4 years agoРадикальный перфекционизм в коде
Sergey Matveev [Sun, 21 Feb 2021 11:23:54 +0000 (14:23 +0300)]
Радикальный перфекционизм в коде

https://habr.com/ru/post/543490/
Вот прям до усрачки не согласен с автором. Такое ощущение, что если
где-то есть правило, то для него это перфекционизм и вообще радикальный.

    В конце каждого файла должен быть перевод строки.
    А если не будет, то кто умрёт?

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

    Нельзя делать несколько statements на одной строке. Если я напишу $x
    = 1; $y = 1; $z = 1;, то читабельность ухудшится на 0.00001% и можно
    закрывать техотдел?

В итоге тьма способов (если и с пробелами до и после "=") написать одно
и то же и это одно сплошное удовольствие делать review кода в котором
нужно выискивать и интерпретировать глазами все эти инициализации
переменных.

Тут он инициализацию на одну строку сделает, тут пробелами красоту
наведёт, тут именование будет "b2c", а в другом месте
"BusinessToClient". В команде где я когда то работал даже уславливались
в тестах о порядке аргументов в assertEquals(): что идёт первым --
ожидаемое значение или сравниваемое. Или какие кавычки в этом Python
использовать (в каком нибудь Go для строк только двойные штатно, а
одинарными передают символы). Или кто в названиях функций/методов идёт
первым: глагол или объект. Ибо даже такие мелочи упрощают и увеличивают
скорость восприятия кода.

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

4 years agoМарс -- вторая планета где компьютеров с Linux больше чем Windows
Sergey Matveev [Sat, 20 Feb 2021 12:09:23 +0000 (15:09 +0300)]
Марс -- вторая планета где компьютеров с Linux больше чем Windows

https://news.ycombinator.com/item?id=26197280
"The GPL will soon infect the whole galaxy".
"Its also 2nd planet that has more machines then people".

4 years agoПосмотрел "Милую Фрэнсис"
Sergey Matveev [Sat, 20 Feb 2021 07:45:44 +0000 (10:45 +0300)]
Посмотрел "Милую Фрэнсис"

https://ru.wikipedia.org/wiki/%D0%9C%D0%B8%D0%BB%D0%B0%D1%8F_%D0%A4%D1%80%D1%8D%D0%BD%D1%81%D0%B8%D1%81
Очень понравился фильм! Причём не как Догвиль
(87c6f45f4d084e2b2e5368105d55d9741d3ae8aa), который заставляет бурлить
мозги от мыслей, а тем что он такой лёгкий и добрый. Добрых фильмов
вообще не шибко то много. А тут вроде провал за провалом у Фрэнсис, а ей
хоть бы хны. Благо всё хорошо заканчивается. И до самого конца необычно
мне смотреть чёрно-белый фильм, но в котором смартфоны и прочие
современности.

4 years agoplocate в Debian по умолчанию
Sergey Matveev [Sat, 20 Feb 2021 07:42:45 +0000 (10:42 +0300)]
plocate в Debian по умолчанию

https://lwn.net/SubscriberLink/846405/25b41ae78f0a761a/
Мне даже немного стыдно, но про существование locate команды я знал, но
никогда в жизни не использовал. Всегда останавливало то, что для неё
нужно куда-то добавлять cronjob и не забывать об этом. А что будет если
надо что-то найти, но оно ещё не в индексе? И если пару раз придётся
сделать locate, а потом всё равно fallback до find-а, то я первый бы
сразу удалил (не использовал). Но это только такие мысли, а практики не
было никакой. Да и в живую не встречал людей которые бы использовали
locate.

4 years agoОпрос про клавишам переключения раскладки
Sergey Matveev [Sat, 20 Feb 2021 07:36:43 +0000 (10:36 +0300)]
Опрос про клавишам переключения раскладки

https://www.linux.org.ru/polls/polls/16021374
Ничего не могу сказать когда языка три, но когда два то,
как у большинства, почему не переключать CapsLock-ом то!?
Всегда удивлялся и не перестаю удивляться что это частое
действие у многих не одной клавишей выполняется.

4 years agoУважение к культуре
Sergey Matveev [Fri, 19 Feb 2021 16:13:18 +0000 (19:13 +0300)]
Уважение к культуре

https://www.youtube.com/watch?v=2m8WI_VM5kQ
Среди гостей в Вечернем Урганте мне очень запомнился Джеки Чан.
Во-первых, очень он там активный и всякие штуки показывает, недоступные
например мне (конкретно по ссылке к посту нет концовки где он с
доспехами и оружием управляется). Очень весёлый, позитивный, не шибко
одобряющий насилие. Во-вторых, очень тронуло в его фильме то, что он
хоть и ворует (сворованные) культурные ценности, но возвращает на свои
исторические родины. В других ещё каких-то китайских фильмах (в том
числе и с Джеки Чаном из 90-х) видел уважение китайцев к культуре. Как
же это идёт вразрез с культурой США, где во всех фильмах и мультиках
(Симпсоны, Футурама) если и можно чего увидеть, то только как пиндосы
перевозят всё что они награбливают к себе в страну! Сотни примеров с
ходу могу вспомнить, но вот ни одного в голову не приходит где бы они
возвращали что-то назад (иногда же причиной называют "на хранение, пока
где-то там что-то там не спокойно"). Как и англичане, у которых
персидских ценностей сколько.

4 years agoАктёры дубляжа у Урганта
Sergey Matveev [Fri, 19 Feb 2021 16:02:30 +0000 (19:02 +0300)]
Актёры дубляжа у Урганта

https://www.youtube.com/watch?v=kOm0TZtYYG0
Честно: когда показали видео в начале то после просмотра у меня даже не
было мысли что озвучка была произведена не в студии. Даже не подумал бы,
если бы в живую в студии Урганта не услышал, что они действительно
такими голосами говорят. Точнее вообще могут говорить. Просто офигенно!

4 years agoМемы в людском общении
Sergey Matveev [Thu, 18 Feb 2021 12:03:37 +0000 (15:03 +0300)]
Мемы в людском общении

https://monsterfeet.com/grue/notes/40
https://habr.com/ru/company/ruvds/blog/542954/
В очередном выпуске подкаста Eaten By A Grue один из ведущих очень
интересное наблюдение заметил: мол у него (хотя это дядя за 40), грубо
говоря, ни одного дня не может пройти чтобы не было от кого-либо отсылки
к Звёздным Войнам или какому-нибудь Доктору Кто. А в игре которые они
рассматривают в выпуске, игре без всяких фантастических тварей, всё
смотрится очень ненатурально и искусственно именно из-за того, что там
люди ни к чему не отсылаются в принципе. Мол человек общается всегда с
учётом культуры где он живёт.

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

А позже я ещё и наткнулся на статью на Хабре о том, что компьютерные
игры заменяют музыку у молодёжи. И оно наверное действительно так:
прежде концерты были местом встречи, а теперь куча всего переехало в
online, появились компьютеры/приставки в куче домов. И вот я, иногда
интересуясь что же там в мире игр появилось -- совершенно не
заинтересован ни в чём. Просто не моё. Последний Doom или GTA хотел
сыграть просто потому что это из времён когда я ещё был в школе.
Регулярно куча отсылок к играм есть про которые я ничего не знаю кроме
названия и как примерно она выглядит и какой жанр.

В статье первым делом идёт картинка с "Кодзимой" -- пришлось искать в
Интернете кто же это такой. Да, оказывается названия половины его игр я
прекрасно знаю, но не более того. Хотя человек явно выдающийся. Даже
посмотрел его в Вечернем Урганте: https://www.youtube.com/watch?v=iHibTVBB8S4

PS: Вспомнил где-то картинку про возраст азиатов: где на протяжении лет
50 они все всегда выглядят одинаково, а потом резко становятся
старичками. Вот и в Урганте Кодзима, ведь уже под 60, но я совершенно не
могу дать ему оценку возраста: вроде бы и 20 летним студентом мог бы
быть. Ну кроме выдающей седины в бороде.

А ещё отмечаю стойкое незнание современных соцсетей. Для меня было
открытием что в Instagram можно просто писать статьи -- я почему то был
убеждён что это исключительно фотографии публиковать. Что Tinder это
поиск кого-нибудь для траха в курсе, но тут уж даже компьютерные игры на
эту тему есть: https://en.wikipedia.org/wiki/Leisure_Suit_Larry:_Wet_Dreams_Don%27t_Dry
Что такое TikTok -- вроде бы обмен видео. Но у людей есть друзья и общий
feed с их like/новостями? Или какие-то suggestion-ы? Или рандомное
что-то подсовывается? Не скажу что интересно, но вот понятия не имею
принцип работы там какой. Смотрю на
https://en.wikipedia.org/wiki/Social_networking_service
QQ -- слышал что как-то связанно с общением. И что это китайская штука.
Douyin, Sina Weibo, QZone, Kuaishou -- понятия не имею что это всё
такое, но судя по названиям первых это относится к Азии. Reddit,
Facebook, YouTube, WhatsApp, Telegram, Twitter, VK, OK -- что-то даже
использовал когда-то, общий смысл вроде знаю. Snapchat, Pinterest --
тоже названия слышал, но без Wikipedia даже примерно не скажу про что
это.

Quora -- а на эту штуку я из поисковиков даже попадал временами. И мне
она запомнилась тем, что там самые бесполезные ответы какие я бы мог
представить. Но у меня и вопросы конечно же технические. stackexchange
для моих запросов мог бы подойти, хотя я вроде только одного человека
знаю кто там бы задавал вопросы (и никого не знаю кто писал бы там
ответы. Кто все эти люди???).

OnlyFans -- по новостям знаю что это обмен порнографией за деньги. В
новостях вот появился ещё Clubhouse... снова пришлось искать что это
такое хотя бы примерно. До конца всё равно не понимаю. А и ладно. Со
следующего месяца у меня открывается концертный сезон!

4 years agoПосмотрел "Ночи в стиле буги"
Sergey Matveev [Thu, 18 Feb 2021 11:54:05 +0000 (14:54 +0300)]
Посмотрел "Ночи в стиле буги"

https://ru.wikipedia.org/wiki/%D0%9D%D0%BE%D1%87%D0%B8_%D0%B2_%D1%81%D1%82%D0%B8%D0%BB%D0%B5_%D0%B1%D1%83%D0%B3%D0%B8
В целом понравился! Хотя пересматривать навряд ли захочу. Смотрится
легко, активненький, но в целом особо никакой идеи интересной не
прослеживаю. Не много я вспомню фильмов с Уоллбергом, но представляется
он исключительно как вспыльчивый, который всегда и везде готов пойти
бить морды. Что, судя по описанию в Wikipedia, не так, но представляю
его в голове исключительно кадрами из "Отступников".

4 years agoПосмотрел "Мой парень -- псих"
Sergey Matveev [Thu, 18 Feb 2021 10:35:18 +0000 (13:35 +0300)]
Посмотрел "Мой парень -- псих"

https://ru.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B9_%D0%BF%D0%B0%D1%80%D0%B5%D0%BD%D1%8C_%E2%80%94_%D0%BF%D1%81%D0%B8%D1%85
Что ж... это второй фильм где я с удовольствием смотрел танец пары!

Дженнифер Лоуренс мне жутко нравится! Как женщина, и как актриса,
особенно в этом фильме (собственно, за него Оскара и получила). Вообще я
вот с ходу много мужиков актёров могу назвать ради которых можно сразу
смотреть фильм, из-за их профессионализма (один Ди Каприо чего стоит),
но вот женщин *с ходу* не назову. Похоже Лоуренс одной из таких станет
запросто. Посмотрел с ней ещё парочку: так себе, но её актёрская игра
крута. Как с Джокером (98f910d92a844b9a7a8cb4aa26f045e634f4e115): актёр
там однозначно круто играет, заслуживает наград, но фильм... если бы я
не сидел с того края кинотеатра, то я бы на четверти или трети фильма бы
уже встал и вышел.

А Лоуренс и чисто внешне жутко нравится (когда она постарше). Вот с ходу
могу назвать Анджелину Джоли и Меган Фокс -- лица которых мне не шибко
хочется рассматривать и наслаждаться. Не говоря про фигуры, которые
просто кричат о том, что что-то у них явно не здорово в организме.
Как и у 99% всех голливудских актрис.

4 years agoПрочитал "Алису в стране чудес"
Sergey Matveev [Thu, 18 Feb 2021 10:32:15 +0000 (13:32 +0300)]
Прочитал "Алису в стране чудес"

http://mds-club.ru/cgi-bin/index.cgi?r=84&lang=rus&sbr=2&user=1684
Я конечно видел мультики и фильмы, но читать не приходилось. Собственно,
ничего нового не открыл, но какая же всё таки это полнейшая
психоделическая история! Неужели детям и правда такое может сниться?

4 years agoUPS, ИБП и синонимы
Sergey Matveev [Thu, 18 Feb 2021 09:50:21 +0000 (12:50 +0300)]
UPS, ИБП и синонимы

gopher://gopher.conman.org/0Phlog:2021/02/16.1
Из phlog-а человека из Бостона: молодое поколение не знает что такое
"UPS". Вообще я чаще сталкивался с тем, что люди не знают "ИБП", но
знают "УПС" (что меня дико бесит). Причём я "УПС" никогда не скажу,
скорее "бесперебойник".

4 years agoИзбавление от Python
Sergey Matveev [Wed, 17 Feb 2021 17:20:47 +0000 (20:20 +0300)]
Избавление от Python

В предыдущем посте избавился от GNU Mailman. Это единственная программа
требующая Py27 и единственная что вообще требовала Python у меня на
сервере. Да даже на рабочем ноутбуке Python остаётся по сути только ради
youtube-dl и редкого использования для PyDERASN-специфичных задач. Куча
утилит, которая могла бы быть на Python
(77ede978e9c24bc8e68ee4e900b9dc5bf94b29f6) -- не используется, так как
аналоги на Go оказываются лучше. apenwarr/redo был на Python, но заменён
goredo. Вот не сказал бы что рьяно рвусь выпиливать всё что с ним связано,
но само как-то так выходит.

4 years agoМоя новая любовь: mlmmj менеджер почтовых рассылок
Sergey Matveev [Wed, 17 Feb 2021 12:36:54 +0000 (15:36 +0300)]
Моя новая любовь: mlmmj менеджер почтовых рассылок

http://mlmmj.org/
http://hypermail-project.org/
Решил посмотреть поближе на mlmmj менеджера рассылок. А то много где в
блогах и статьях вижу что он -- то что надо, вместо GNU Mailman.

Mailman мне казался достаточно простой и минималистичной штукой: просто
некий chroot где достаточно иметь только Python 2.7 интерпретатор и
внутри и web-интерфейс и всё всё всё. Речь про его вторую версию, а не
третью, где уже куча разных компонент и вообще Django. Он пережил у меня
кучу обновлений и переездов. Собственно, с момента запуска его chroot
так и живёт и крутится сам в себе.

Но как же я был не прав! mlmmj это просто идеальный менеджер! Никакого
web-интерфейса: всё конфигурируется через файлы в control директории.
Причём файлы либо просто наличествуют, либо содержат одну строчку, либо
newline-separated массивы. Всё состояние целого списка рассылки ровно в
одной директории. Сообщения хранятся просто отдельно по файлам (не
Maildir, а ещё более простое с порядковыми номерами). Переезд с Mailman
заключался в ручном формировании всех его внутренних структур и файлов,
формат которых настолько простой, что я обошёлся простым shell-ом.

Mailman для меня был чёрным ящиком, в котором как-то там как-то хранятся
какие-то state-ы, куча бинарей, куча утилит. В mlmmj у меня стойкое
ощущение что я тупо понимаю что для чего нужно, как всё хранится и как
устроено. Дружба его с Postfix-ом настраивается очень продуманно и
здорово.

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

Идеально работает с MIME и digest-ами сообщений. Написан на Си и без
зависимостей. Превосходная документация! Возможность правки любых
шаблонов писем. Просто идеальный софт, насколько вижу. В Mailman больше
возможностей... вот только нет ни одной что я бы посчитал действительно
нужной и которую бы я видел в живую действительно используемой.

Но есть одно но: из коробки в нём нет никакого генератора HTML архива. В
общем то и не должно быть, тем более что любое сообщение можно получить
через -get-N@ запрос. И всё как-то не очень здорово в плане выбора
конвертеров mail в HTML. piper из Mailman неюзабелен вне всей
экосистемы. MHonArc из коробки не умеет быть по месяцам. Не знаю
действительно ли это так нужно, но уж больно привычно. Видел всякие
сторонние скрипты для него, но уж хочется чтобы всё тип топ было из
коробки. hypermail вроде бы подходит достаточно хорошо. Их по cron-у и
генерирую.

В общем, перевёл все свои рассылки на mlmmj, перевёл всех подписчиков и
предыдущие сообщения. Конечно же где то должны быть косяки, но пока не
нахожу. Mailman больше ни за что и никогда не буду использовать, ибо
просто нет смысла. Это реально сложнейший монстр. Всякие Sympa с
web-интерфейсами тоже не хотел бы. Хотя для mlmmj есть WebUI сторонний,
но я просто не вижу в нём смысла.

4 years agoДребезжит динамик в ноутбуке
Sergey Matveev [Wed, 17 Feb 2021 07:40:51 +0000 (10:40 +0300)]
Дребезжит динамик в ноутбуке

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

Именно с этим ноутбуком понял что значит плохое качество, ведь
прежде у меня были только ThinkPad-ы (не считая YeeLoong и eeePC 700).

4 years agoПочта через NNCP и Return-Path
Sergey Matveev [Tue, 16 Feb 2021 17:18:44 +0000 (20:18 +0300)]
Почта через NNCP и Return-Path

В mlmmj менеджере рассылок есть mail-команды позволяющие получить письмо
рассылки по его порядковому номеру. Но я задавался вопросом: а откуда ж
я его смогу получить то? Рассматривал заголовки почтовых писем, но там
никакой информации нет.

Оказалось, что информация есть... в информации об envelope sender-е, что
логично. И она попадает в письмо в виде Return-Path заголовка. Вот
только после длительного выяснения, оказалось что Return-Path теряется
когда письмо подаётся в sendmail команду. Что тоже логично. Плюс
теряется уже на этапе формирования письма которое отправляется в NNCP.
Побороть потерю Return-Path (точнее его замену) при вызове sendmail с
ходу не вижу в man-е как, но наверное это и не нормальное желание.

Проблему поборол переименовывая заголовок Return-Path:
    reformail -R Return-Path: X-Original-Return-Path: | sendmail
а в Postfix master.cf на серверной стороне нужно указать в флагах "R"
чтобы он добавлял этот Return-Path:
    flags=FRqhu user=stargrave argv=nncp-exec -quiet $nexthop sendmail $recipient

4 years agoНевероятно сколько времени страдал с man-ами zsh
Sergey Matveev [Mon, 15 Feb 2021 16:32:51 +0000 (19:32 +0300)]
Невероятно сколько времени страдал с man-ами zsh

А оказывается то там вся документация в Texinfo, который без проблем
генерирует Info! Какого чёрта я не смотрел есть ли другой формат кроме
man? Ведь документация по zsh ОГРОМНА и очень сложно в ней находить
многие вещи, когда нет ничего кроме поиска по регулярке.

4 years agoЗарелизил goredo 1.3.0
Sergey Matveev [Mon, 15 Feb 2021 14:06:52 +0000 (17:06 +0300)]
Зарелизил goredo 1.3.0

https://lists.cypherpunks.ru/pipermail/goredo-devel/2021-February/000008.html
Теперь передаю через временный файл список целей для которых OOD уже
вычислен и они априори известны что протухли. Должно помочь при огромном
количестве OOD решений и целей. Ну и добавил redo-sources, redo-targets
и redo-ood команды. Для чего их использовать -- не знаю, но люди как-то
вроде используют. На этом TODO для goredo у меня пуст.

4 years agoПосмотрел "Пассажиров"
Sergey Matveev [Mon, 15 Feb 2021 13:49:33 +0000 (16:49 +0300)]
Посмотрел "Пассажиров"

https://ru.wikipedia.org/wiki/%D0%9F%D0%B0%D1%81%D1%81%D0%B0%D0%B6%D0%B8%D1%80%D1%8B_(%D1%84%D0%B8%D0%BB%D1%8C%D0%BC,_2016)
На самом деле ещё штуки четыре всяких фильмов за последнюю неделю, но о
них и писать не хочется. А Пассажиры понравились даже очень. Конечно,
инженеру болезненно смотреть на многие моменты в фильме, но да и фиг с
этим, всё ж не Гравитация. Особо никакой глубокой мысли то в фильме нет
(кроме главного поступка героя), как и хитрого сюжета, да и череды
абсолютно невероятных совпадений. Но удовольствие большое получил!

Зауважал Криса Прэтта как актёра. Не в том плане, что я к нему негативно
относился прежде, но просто знал его исключительно по комедийным ролям.
И Дженнифер Лоуренс то впервые увидел.

4 years agoПрочитал "Продавца случайных чисел"
Sergey Matveev [Mon, 15 Feb 2021 13:44:47 +0000 (16:44 +0300)]
Прочитал "Продавца случайных чисел"

https://lleo.me/arhive/2014/prodavec.htm
Понравилась основная идея рассказа, про то, что источники энтропии нужно
искать, мол всякие счётчики Гейгера не подходят для больших масштабов. А
сами числа то эти используются в синтезаторах (еды и прочего). Ну и есть
немного антиутопии, когда люди уже не вступают в брак, а подбирают себе
партнёра ровно на один вечер, просто парой кликов.

4 years agoОценка людей полезности и продуманности архитектуры софта
Sergey Matveev [Fri, 12 Feb 2021 13:25:20 +0000 (16:25 +0300)]
Оценка людей полезности и продуманности архитектуры софта

Недавно один знакомый вбросил фразу что типа "vi редактор архитектурно
был непродуман" (в отличии от Emacs или (возможно) Vim). Мол что-то
расширить в vi нельзя, а в Emacs/Vim, в которых есть встроенный язык и
редактор строящийся прямо на нём (про Vim я бы тут поспорил на самом деле).
Фраза и эта мысль меня задела тем, что это как-то не очень честно
обвинять в том, что вообще не предполагалось и каких задач не ставилось.
Вообще обижаться тут не на что само собой -- просто у людей есть
принципиально разный взгляд на мир и вещи в нём.

С одной стороны: есть конкретная текущая задача, которую нужно
выполнить. Это можно сделать быстро и качественно, но решение возможно
совершенно не впишется в чуть изменённые условия/требования
использования в будущем. Можно подумать о расширяемости и гибкости, что
возможно в будущем может помочь. С другой стороны: проектированием и
придумыванием можно заниматься хоть 100% времени, так и не начав делать
работу или так и не предоставляя законченного готового варианта, хорошо
решающего задачу. Как всегда, нужна золотая середина.

Я бы на месте Билла Джоя поперхнулся от заявления об архитектуре vi. Ему
надо в кратчайшие сроки написать удобный и достаточно функциональный
редактор. Не годами пилить какой-нибудь Emacs, а за неделю сделать
редактор (говорят что именно за это время он и был написан) чтобы дальше
заниматься исключительно BSD ОС. Причём редактор достаточно маленький
(говорят, 100-1000 раз меньший по размеру чем Emacs) и не требовательный
к ресурсам. С этой задачей Джой справился так хорошо, что, по сути, до
сих пор именно как редактор всё равно vi(m) с его модальностью мощнее.
Насколько по разному могут смотреть на мир люди из одной отрасли! А ведь
рядом всегда сможет найтись человек который скажет что любая
BSD/whatever это полный непродуманный fail, ибо где тонны прибыли
которые можно грести лопатой?

Но вот GNU/Linux экосистема для меня выглядит в целом именно как
экосистема framework-ов и конструкторов. Почему то на ум первым делом
приходит eBPF, который в теории (ну и по функциональности уже заложенной
в ядре) может больше чем DTrace... но *готовых* решений дотягивающих
хотя бы до DTrace уровня так и нет. Сколько всего придумано касательно
изоляции процессов, но ничего настолько удобного и простого типа Jails
(или Solaris Zones/Containers), говорят, до сих пор так и не было.

Ну и желание постоянно всё делать на будущее, на расширяемость это
запросто ведёт и к такому недугу как "ООП головного мозга". Когда
простейшие вещи в коде превращаются в адовый ад для понимания и
поддержке. Я реально встречал код на PHP где на 200 строк кода, не
считая комментариев, делается GET значения из Redis.

Rust, было время, каждую неделю всё так сильно менял в языке что
буквально hello world бы не собирался. До сих пор в README регулярно
встречаю упоминания что нужна такая и только такая версия Rust для
работы такого то софта. Изначально в Rust был даже garbage collector,
потом не стало. Для меня это пример того, как люди просто пилят и
придумывают ради пиления и придумывания -- без какой-либо цели или
вообще понимания что они хотят.

Тогда как в Go почти 15 лет прошло с момента предложения внедрения
generic-ов до его одобрения. Сейчас вот, программируя на Си, не могу не
удивляться огромному количеству продуманных (сверх продуманных) мелочей
по сравнению с Си. Вчера обнаружил что в Си нельзя делать "a, b = c, d;",
что оказалось дико неудобно и уродует код временными переменными.
Собственно сам Go то это результат трудов ещё с начала 90-х, кучки
хакеров.

OpenSSL своими EVP предполагает простую и лёгкую расширяемость за счёт
нечто похожего на интерфейсы. Идея может быть и хорошая, но по факту
внутри OpenSSL всё равно сплошные сплошные "if algo == ..." исключения,
равномерно распределённые по всему коду. Впечатление что изначально
хотели и планировали как лучше, а потом плюнули на всё и просто лишь бы
как, хоть бы как, но сделать задачу, пускай и не красиво. Наверное
худший из вариантов (среди "всё на коленке, да побыстрее, здесь и
сейчас" и "надо годами подумать, классическим waterfall, только потом
начинать"). Тогда как в Go, другая крайность касательно криптографии и
TLS реализации: никакой расширяемости со стороны библиотеки. И
действительно -- так ли она нужна? Может лучше сделать что-то
*существенно* более простым, экономить годы проектирования, но
удовлетворить 99% пользователей ПО, чем тратить кучу ресурсов ради
оставшихся (для них проще сделать fork или отдельное ПО), и крайне редко
что не испортив в целом всё остальное (как минимум, сложностью).

Хех, чисто случайно сейчас увидел новость
https://lenta.ru/news/2021/02/12/svetlakov_badcomedian/
(про BadComedian ничего не знаю, какие фильмы обсуждаются не знаю, но
наверное комедийные, раз Светлаков), где Светлаков верно заметил что:
    Этот фильм едет на Канны или это хорошее развлекательное кино,
    создающее настроение на праздник?
Ибо тоже не раз слышал критику фильмов, как будто они ориентировались на
Канны(-like). А простая лёгкая комедия тоже нужна. У неё другая задача.
И оценки нужны к ней отдельные.

Или мне этот же знакомый говорил что PyDERASN плохо спроектирован, ибо
он не предусматривает потоковую обработку данных (сейчас это не совсем
так, но только недавно появилось). Мудро конечно просто проигнорировать,
а не оправдываться. Но меня удивляет что человек с опытом продолжает
делать такие оценки (+оценка архитектуры vi). PyDERASN писался так: за
две недели отпуска успеть полностью его сделать и перевести на него
проекты. Если не успеть -- всё насмарку, ибо по вечерам такой проект я
бы не мог пилить, ибо нужно много чего в голове держать и помнить и
поэтому нужно наброситься и растерзать проблему до конца. Если не
перевести проекты, то варианта держать параллельно что-то на pyasn1, а
что-то на pyderasn -- не вариант. Можно PyDERASN вообще было бы не
делать -- но тогда для Python банально просто отсутствовала бы *строгая*
и удобная (с нужным функционалом) DER библиотека. И получается, что или
продолжать бы жить без качественной строгой удобной библиотеки с
некоторыми нужными возможностями без костылей (типа .offset), ибо из-за
проектирования на разработку бы не хватило бы времени (а бизнес не
требует наличия таких библиотек и не стал бы оплачивать время на её
разработку), либо иметь такую, но в которой нет возможности потоковой
обработки... которая до сих пор никому не нужна на практике в решаемых
на работе задачах (ибо размеры данных небольшие и всё всегда в памяти
легко уместится).

Кто-то бы мог заявлять что GoVPN, NNCP, goredo, whatever -- непродуманны
ибо не запустятся, или содержат что-то *принципиально* не совместимое,
на Windows. Я скорее задумаюсь о вопросе возможности их работы на Plan9,
чем о мобильных устройствах и проприетарных системах.

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

Но похоже тут настолько разное мировоззрение у людей и разные подходы,
что состыковаться не получится, компромиссов не найти. Как категорически
разные взгляды в религии, политике, истории и подобном могут быть
непреодолимым барьером. Но если разумные люди на работе не поднимают и
останавливают подобные темы (ибо какое они имеют отношение к работе?
могут только навредить, но не улучшить отношения), то когда встретятся
два человека, один из которых считает что hello world нужно писать как
"master programmer" (bc48396c84d164d4b892a5f833cc738683c22049), а
другой... иначе, то я не знаю как тут можно им будет работать сообща.

4 years agoNewsboat потребление памяти
Sergey Matveev [Fri, 12 Feb 2021 08:40:45 +0000 (11:40 +0300)]
Newsboat потребление памяти

Сегодня внезапно увидел что newsboat после обновления feed-ов у меня
может выедать под полгигабайта оперативной памяти. И оно только растёт и
увеличивается. Особо это не проблема -- можно выйти/войти и всё равно
читать статьи, но держать постоянно его запущенным, чтобы он
автообновлялся, уже не так приятно, ибо приличный объём RAM теряется в
пустую. Возможно более поздние версии и не имеют такой проблемы, но они
написаны на Rust, что автоматом не рассматривается.

4 years agoЧеловек устал от anti-Rust дерьма
Sergey Matveev [Wed, 10 Feb 2021 22:45:11 +0000 (01:45 +0300)]
Человек устал от anti-Rust дерьма

https://www.boringcactus.com/2021/02/09/anti-rust-horseshit.html
Что общего между "anti-vaxxers, flat earthers, 9/11 truthers" и
anti-Rust-er-ами? Начало радует. Но нет, автор, Rust дерьмо.

Нет, не потому что я "spent 5 minutes installing it, realized that
something was — gasp — different than C", а потому что я потратил неделю
на его сборку (и то не вышло под FreeBSD) на машине с 128GB RAM. Ведь
его авторы чихать хотели на то чтобы его можно было собрать из
исходников? Мол качайте бинарники наши. Это дерьмовый подход. Из серии
"и так сойдёт", "на отвали". Собирал то изначально для bootstrap-а
проект вообще сторонних людей mrustc.

И он дерьмо потому что безумно переусложнённый. Какие проблемы Rust
решает? Ой, да пофиг на вашу memory safety. Главная проблема --
сложность. Почти все проблемы в софте -- из-за сложности понимания,
сопровождения, написания, отладки, и т.д.. Вот Go отличный пример
продуманной простоты. А Rust -- пример как взяли перманентно
усложняющийся C++ и ещё круче навернули поверх него всяких фич. Это
дерьмовый fail. Rust это пример как люди совершенно не учатся на своих
ошибках (C++).

А главное что автор не понимает: Rust это замена C++, но никак не C
(откуда он берёт такую идею?). Собственно, почти со всеми аргументами
Drew DeVault-а я и согласен:
https://drewdevault.com/2019/03/25/Rust-is-not-a-good-C-replacement.html
Среди всех хакеров кого читаю, среди любителей suckless и вообще Си,
среди людей из TUHS рассылки: никто не смотрит на Rust, как и почти
никто не смотрит на C++. А вот Go у всех в почёте.

Никто не спорит что в идеале бы вообще писать на формализуемых языках
только, формально доказываемые решения. Coq и прочее. Само собой и
memory safety это тоже хорошо. Вот только в мире нужно решать задачи за
*вменяемую* и разумную цену.

4 years agoПознаю программирование на zsh
Sergey Matveev [Wed, 10 Feb 2021 22:32:39 +0000 (01:32 +0300)]
Познаю программирование на zsh

http://www.git.stargrave.org/?p=dotfiles.git;a=commitdiff;h=d0382ac857db24d7b72bf60c77e347596e9c7e52
Сам zsh то я использую уже давным давно, но как интерактивный shell. Но
со временем скриптов касающихся использования только в его контексте всё
больше становится и надо бы его начать познавать.

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

Конечно скрипты придётся писать на POSIX shell, никуда не деться. Но для
личных и zsh-only нужд, его возможности очень и очень приятны и круты.
Когда люди сравнивают FISH с zsh-ем, то учитывается только какая-то
мизерная интерактивная составляющая от всех возможностей всего shell-а.
Просто нужно явно отмечать, что сравнивается только интерактив, который
в у FISH много чем интересен и его основные фичи в видел плагинов
появились и в zsh, которые я активно использую
(31ee58d93e7e049a4dea93901180b77addb69398).

4 years agoZsh guide юмор
Sergey Matveev [Wed, 10 Feb 2021 19:38:42 +0000 (22:38 +0300)]
Zsh guide юмор

http://zsh.sourceforge.net/Guide/zshguide03.html
Вообще в нём очень много юмора и забавных высказываний и просто хороших
пояснений. Например:

    While we're at it, why do blocks starting with `if' and `then' end
    with `fi', and blocks starting with `case' end with `esac', while
    those starting with `while' and `do' end with `done', not `elihw'
    (perfectly pronounceable in Welsh, after all) or `od'? Don't ask me.

    [...]

    if [[ -z "$var is sqrt(`print bibble`)" ]]; then
        print Flying pig detected.
    fi

    [...]

    The word `clobber', as in the option NO_CLOBBER which I mentioned in
    the previous chapter, may be unfamiliar to people who don't use
    English as their first language. Its basic meaning is `hit' or
    `defeat' or `destroy', as in `Itchy and Scratchy clobbered each
    other with mallets'. If you do:

4 years agoperl -lane
Sergey Matveev [Wed, 10 Feb 2021 16:02:13 +0000 (19:02 +0300)]
perl -lane

У awk удобный способ задания какие колонки текста и как надо
распечатать. cut не будет ему заменой (даже учитывая
162386cf9a9eb0fb4237c48a7e3862f3ef8a8c60), ибо он не может нормально
переставить колонки местами или иметь негативную нумерацию колонок. perl
конечно же всё это может, но я не знал про "-a" опцию, которая автоматом
делает split $_ в @F. А "-l" автоматом позволит сделать newspace на
выходе удобно. В итоге распечатка последней, а дальше со второй по
четвёртую колонки можно сделать так: perl -lane 'print "@F[$#F, 1..3]"'
Я и про возможности указания индексов массива то забыл уже в нём. А
разделитель можно указать через "-F" (-F: например).
Всё же Perl очень крут в плане удобства и возможностей.

Часто стал видеть в разных примерах использование say вместо print. В
книгах которые читал -- say не припомню. Отличается тем, что добавляет
перевод сразу. Но он является некой (тут я уже не понимаю) опциональной
фичей и поэтому просто "-e" не сработает. perl -anE 'say "@F[$#F, 1..3]"'

4 years agoСуровая правда о разработчиках и разработке
Sergey Matveev [Wed, 10 Feb 2021 15:14:31 +0000 (18:14 +0300)]
Суровая правда о разработчиках и разработке

https://habr.com/ru/post/541810/
В принципе солидарен со всем сказанным, что ИТ отрасль тянет многое на
дно. Но мне кажется, что в первую очередь это связано с увеличением
количества в неё вовлечённых, далеко не самого высокого уровня (ага,
даже я впервые связанный список использовал и второй раз в жизни
задумывался о сложности алгоритма -- только вчера). "Моё разочарование в
софте" (bb09bd6fb88009c4db4caf0e8372bbde38a56701) из этой же серии.
Автор статьи, пишет, что работает 15 лет в ИТ сфере. Как и я. Но я не
готов говорить о том что же надо делать.

4 years agoВпервые в жизни использовал связанные списки
Sergey Matveev [Tue, 9 Feb 2021 17:48:45 +0000 (20:48 +0300)]
Впервые в жизни использовал связанные списки

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

4 years agoПро театр безопасности
Sergey Matveev [Tue, 9 Feb 2021 13:12:45 +0000 (16:12 +0300)]
Про театр безопасности

https://soatok.blog/2021/02/09/crackpot-cryptography-and-security-theater/
Различные примеры того, как люди несут всякий бред, а журналисты ещё и
превращают в совершенно несуразные заявления.

4 years agoC editing with Vim HOWTO
Sergey Matveev [Tue, 9 Feb 2021 08:52:47 +0000 (11:52 +0300)]
C editing with Vim HOWTO

http://www.faqs.org/docs/Linux-HOWTO/C-editing-with-VIM-HOWTO.html
Очень короткий howto, но показывающий прям самые базовые команды которые
помогут именно и в первую очередь при редактировании Си кода. Я вот не
сразу догадался использовать "[[" и "]]" в нём. Точно полезный документ
для тех кто не в курсе про ctags, gd и даже "%".

4 years agoПосмотрел "Под кайфом и в смятении"
Sergey Matveev [Sat, 6 Feb 2021 23:37:00 +0000 (02:37 +0300)]
Посмотрел "Под кайфом и в смятении"

https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%B4_%D0%BA%D0%B0%D0%B9%D1%84%D0%BE%D0%BC_%D0%B8_%D0%B2_%D1%81%D0%BC%D1%8F%D1%82%D0%B5%D0%BD%D0%B8%D0%B8
Один из фильмов про которые даже и писать не хотел что посмотрел.
Хорошие отзывы. Сам Тарантино считает что он в 20-ке лучших фильмов. Я
так и не понял где и чем. По сути весь фильм я мог бы только зевать.
Можно сказать что пожалел потерянного времени. Единственное что вызывало
положительные чувства это увидеть молодых Йовович, МакКонахи и
Зеллвегер, которых прежде такими не лицезрел. Особо то и плохого ничего
не могу сказать, кроме того, что и хорошего и интересного нет. Просто ни
о чём фильм для меня. Что хотели показать? Что передать? Что интересного
рассказать? Банальная скукотища.

4 years agoПосмотрел "Догвилль"
Sergey Matveev [Sat, 6 Feb 2021 23:21:05 +0000 (02:21 +0300)]
Посмотрел "Догвилль"

https://ru.wikipedia.org/wiki/%D0%94%D0%BE%D0%B3%D0%B2%D0%B8%D0%BB%D0%BB%D1%8C
Офигеннейший фильм! Хочется написать про то как то, да сё верно, как
крута концовка и размышления в ней. Как точно всё подмечено и показано о
людях, в самую точку. Но, во-первых, много чего можно написать и чуть ли
не пересказать фильм и мысли которые у людей и сами дойдут. А, во-вторых,
у меня что-то нет уверенности что другие воспримут его точно так же как
и я и будет одно мировоззрение и выводы. Те тезисы которые бы были для
меня очевидны -- наверное могут быть восприняты совершенно иначе другими.
В общем -- очень круто! Если множество других фильмов о которых я пишу
мне действительно нравятся, очень (а о тех кто не нравится, даже и не
упоминаю, чаще всего), то это вызывает восторг. Откладывал его, ибо
целых три часа идёт. И на половине фильма были сомнения а не закончится
ли какой-нибудь туфтой. Но нет, три часа стоили того!

4 years agoПосмотрел "Таксиста"
Sergey Matveev [Sat, 6 Feb 2021 10:19:24 +0000 (13:19 +0300)]
Посмотрел "Таксиста"

https://ru.wikipedia.org/wiki/%D0%A2%D0%B0%D0%BA%D1%81%D0%B8%D1%81%D1%82_(%D1%84%D0%B8%D0%BB%D1%8C%D0%BC,_1976)
Очень понравился фильм! Скучно не было нигде. Концовка... неожиданна и
настолько, что, думается, вымышлена в голове таксиста. Но Де Ниро с
ирокезом это круто!

4 years agoВ TUHS рассылке обсуждают ZFS и вообще дизайн Unix систем
Sergey Matveev [Sat, 6 Feb 2021 08:37:37 +0000 (11:37 +0300)]
В TUHS рассылке обсуждают ZFS и вообще дизайн Unix систем

https://minnie.tuhs.org/pipermail/tuhs/2021-January/022797.html
https://minnie.tuhs.org/pipermail/tuhs/2021-February/022981.html
В этой рассылке всякие хакеры есть, включая и Кена Томпсона и Роба
Пайка, временами там что-то пишущих. И куча людей которые даже с 80-х
принимали участие в написании Unix систем.

Дошла речь про ZFS. Все признают и понимают что тема с кэшом и
управлением памятью в ZFS -- особенная. ZFS не "дружит" с page cache
ядра, что приводит к может приводить к двойному использованию памяти при
mmap операциях (часть оседает в page cache ядра, а часть в ZFS ARC). Все
понимают что это не красиво, но это была цена за простоту разработки.
Но, никого не находится кто бы сказал что "ZFS не нужна". Для всех это
единственная ФС которой можно доверить целостность данных. btrfs не
считается пригодной к использованию (стабильность, надёжность). Поэтому
ZFS есть за что не любить, но деваться, мол, некуда -- всё равно это
лучшее. И в принципе то проблема с page cache не является не решаемой --
просто кто-то должен исправить ситуацию кодом. Но, похоже, ZFS
достаточно хорошо удовлетворяет нужды, что особо никто не чешется в эту
сторону.