Sergey Matveev [Mon, 8 Mar 2021 17:56:48 +0000 (20:56 +0300)]
Снова сходил на концерт Пикника
Не поклонник, да и Мельница (c2a00c1252c1c4a0764afbb4048c540061f02a42)
мне точно явно больше по душе, но не сидеть же дома, когда рядом всё
равно хорошая музыка играет в ДК.
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
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 больше не буду
использовать.
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.
Sergey Matveev [Sun, 7 Mar 2021 16:40:04 +0000 (19:40 +0300)]
В Швейцарии запрет на скрытие лица
https://lenta.ru/news/2021/03/07/referendum/
Вот те на! А у меня, на фоне камер упирающихся в лицо в метро Москвы,
наоборот посещают мысли о том чтобы носить нечто прикрывающее и
закрывающее лицо. Вот что не новость, но в Европе просто какой-то лютый
ад в вопросах приватности и свободы людей или даже свободы слова --
поэтому и понятно почему они громче всех орут на все эти темы.
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 -- молодцы!
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 вообще под чистую отсутствует.
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.
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! Очень доволен и пару их дисков
приобрёл.
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 ведётся и мержится.
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 слушает один
за всех. Но так как демонов не много на практике, то это уж точно не
будет где либо проблемой.
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-ов она явно есть ещё какая.
Sergey Matveev [Wed, 3 Mar 2021 20:58:34 +0000 (23:58 +0300)]
Детский плач в музыке
Фильм "Вход в пустоту" заканчивается 807f37ef45d317e44d93ddb47fd493ddf93634f8
детским плачем, который резко резко обрывается. Какая же услада была что
его оборвали. Где-то читал, да и логично само по себе, что детский плач
специально имеет такую высоту и тембры чтобы его заметить среди любых
шумов и чтобы он вызывал массу чувств тревоги. И в общем случае его
совершенно никогда не хочется где либо слышать, ибо раздражает. Прям вот
с ходу могу назвать альбом Ænima (группы Tool), где в одном трэке есть
несколько секунд плача... хотя наверное это и не плач, а просто детский
"разговор" -- когда я забываюсь и не успеваю заранее промотать этот
трэк, то я бросаю всё чем занимался, лишь бы переключить его. У Dream
Theatre на одном альбоме тоже есть детские звуки -- выбивает из колеи и
мчишься в терминале переключать трэк. Если Ænima копирую на флешку/диск
чтобы где-то послушать, то в обязательном порядке удаляю трэк с ребёнком
вообще. Наверное это самый раздражающий звук из всех что с ходу могу
назвать. Причём в жизни то он, если и слышен, то где-то в далеке, в
метрах как минимум. А на музыкальных альбомах оно же чисто сразу в уши
бьёт. Если музыканты хотели вызвать тем самым шквал эмоций, то им это
точно удаётся.
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 -- вот это мерзкие фильмы, с отвратительными
персонажами, на которых я бы вышел из кино. Неприятно смотреть на
конченую мразь и падаль или сортирно-сортирнейший юмор. Что может быть
приятного в сценах в Необратимости? Да ничего. Но вот выключать я не
выключал и не проматывал ничего.
В этом же фильме почти с самого начала видна рука Гаспара. Постоянный
фоновый монотонный звук, постоянные ритмы сердцебиения -- всё это очень
и очень запомнилось и ассоциируется с Необратимостью в первую очередь.
Теперь ассоциируется просто с этим режиссёром.
Такого визуального преподнесения я не вспомню встречал ли прежде.
Настоящее испытание для видеокодеков. Фокус камеры всегда в движении,
всё постоянно мерцает или быстро перемещается, постоянно всё не под тем
углом повёрнуто, крутится и вертится. Вот есть фильмы где нарочито
снимают трясущейся камерой, как будто из глаз героя, который там бежит
например -- ненавижу, бесит, скорее даже фильм смотреть не буду как меня
раздражает тряска изображения!
В "Пустоте" такого нет, хотя расфокусировка постоянна, отсутствие
резкости или вообще пульсация резкости тоже постоянна, перманентное
перемещение камеры. Но это чем дальше, тем больше к концу фильма мне это
всё даже доставляло реально удовольствие. К концу фильма ещё и
постоянная игра красок, психоделическая. Но это всё дико круто выглядит!
Даже удивляюсь что мне подобное понравилось. Делать "психодел" не мало
кто пытался, но мне никогда не нравилось и было всегда скучно.
Покажи мне отрывок из "Пустоты" прежде, то я бы подумал что я пол фильма
бы только и проматывал и ускорял "переходы" и психоделические видения
героя фильма. Но нет, ни разу на практике.
Оба его фильма показывают жуткое человеческое неприглядное дно. Одна из
сцен в "Пустоте" я даже не представлял как в принципе в жизни выглядела
бы. Везде глушь и мрак, отчаяние. Но не из серии психанутого маньяка, а
дно такое, которое ежеминутно в каждом городе каждой страны происходит.
И не смотря на то, что по сути то показывается только отрицательная
сторона человечества везде, я всё равно смотрю заворожённо.
В общем, Гаспара я бы назвал гением своего дела. Ничего близкого на его
эти два фильма никто не снимал -- даже близко ничего похожего не видел.
Темы поднимали, сценарии относительно банальны, не новы, малоприятно...
но они так преподнесены и показаны... я очень впечатлён!
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 и безопасность -- это проблема.
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 -- невероятно простая мелодия, несколько
нот, но которые узнает любой человек на Земле. Вот это -- действительно
гениальное искусство.
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 это в первую очередь про пропаганду.
Sergey Matveev [Sun, 28 Feb 2021 13:22:30 +0000 (16:22 +0300)]
Сброс кэша страниц в FreeBSD
Я знал что можно сбросить кэш файловой системы путём её отмонтирования.
Но не знал что кэш всё равно будет сброшен даже если umount не удался
(например ФС занята). Очень удобно.
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)
В целом я не люблю фильмы ужасов, ибо они скучны, нередко с глупым
сюжетом и вообще так себе. Думал что и Кэрри что-то из этой серии.
Но нет -- самих ужасов то в фильме особо толком и нет. Просто показана
жизнь затюканной дочери свихнувшейся на религии матери, которой можно
только посочувствовать. Я бы был наверное холоднее к фильму, ибо много
где смотрел в ускоренном режиме (ну не смотреть же как кружатся люди
пару минут?), если бы не последняя минута фильма, где не хотелось бы
оказаться на месте спящей девушки.
А ещё у меня снова возникает вопрос: в христианстве, судя по фильмам и
книгам, секс является грехом номер один. Ну по крайней мере, так
религиозные люди говорят. Но как же они тогда при этом умудряются
заводить детей то? Типа они осознанно идут на грех, осознанно занимаются
обманом, самообманом? Или отмазываются про себя "я ж просто человек, а
не святой"? Это ж обычное настоящее лицемерие. Ответа я вряд ли хочу
знать, но неужели все эти фанатики не замечают неконсистентность в своих
мыслях? Тот факт что само их существование это акт греха? Идиотизм.
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
достоин прослушивания.
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. "Битва" мне далеко не сразу
зашла и вообще я считал фильм полной фигнёй, до нормального полного
пересмотра, а не отрывками по ТВ.
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 тоже
упоминает.
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, кто сам не верит во что говорит, что признаёт что
просто лишь устраивает шоу и словоблудит. А самого нефтяника, учитывая
что впахивает поболее чем все в городе/деревне, можно понять почему он
сразу не приемлет и не даёт шансов если его обманули.
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.
Sergey Matveev [Tue, 23 Feb 2021 16:51:23 +0000 (19:51 +0300)]
Дома появился бильярд, аэрохоккей и настольный теннис
На самом деле всё это 3-в-1 и конечно же масштабировано до небольшого
стола, который складывается и мало занимает место вертикально, ничего не
занимая. Но в бильярд отлично можно поиграть (но не русский, ибо тут
лузы совершенно не под него), как и аэрохоккей. А вот для тенниса столик
маловат -- нужна сноровка.
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 полностью идеально решает эту задачу, никаких проблем. И
даже поудобнее. И даже никакого дополнительного инструментария не надо
использовать.
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/
Согласен тут с автором что аргумент "я больше думаю, будучи
программистом, чем печатаю" -- отвратителен. Ибо кроме самого ввода кода
есть же:
А ещё есть тот факт, что люди которые плохо печатают, частенько приходят
лично пообщаться или звонят по телефону, ибо "мне проще позвонить, чем
печатать". А умел бы он печатать, то и продуктивность бы обоих выросла,
ибо он не будет прерывать работу другого человека. А ещё во время
написания часто приходят новые мысли и переосмысливание написанного и
вообще вопрос может отпасть.
Ну и те, кто не умеют печатать (они же думают больше), зачастую как-раз
наверняка и тикеты и документацию не будут писать, или делать её на
отвали.
Качество работы при этом пострадает? Ещё как! Что было причиной? Печать!
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 для строк только двойные штатно, а
одинарными передают символы). Или кто в названиях функций/методов идёт
первым: глагол или объект. Ибо даже такие мелочи упрощают и увеличивают
скорость восприятия кода.
У меня стойкое ощущение что любой опытный разработчик не то что знает, а
он просто сам по себе понимает всю важность стилистики общей в команде.
У него и вопросов не будет возникать зачем это всё надо. А задаваться
ими могут только новички, для которых все эти правила и рекомендации и
пишутся.
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), который заставляет бурлить
мозги от мыслей, а тем что он такой лёгкий и добрый. Добрых фильмов
вообще не шибко то много. А тут вроде провал за провалом у Фрэнсис, а ей
хоть бы хны. Благо всё хорошо заканчивается. И до самого конца необычно
мне смотреть чёрно-белый фильм, но в котором смартфоны и прочие
современности.
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.
Sergey Matveev [Sat, 20 Feb 2021 07:36:43 +0000 (10:36 +0300)]
Опрос про клавишам переключения раскладки
https://www.linux.org.ru/polls/polls/16021374
Ничего не могу сказать когда языка три, но когда два то,
как у большинства, почему не переключать CapsLock-ом то!?
Всегда удивлялся и не перестаю удивляться что это частое
действие у многих не одной клавишей выполняется.
Sergey Matveev [Fri, 19 Feb 2021 16:13:18 +0000 (19:13 +0300)]
Уважение к культуре
https://www.youtube.com/watch?v=2m8WI_VM5kQ
Среди гостей в Вечернем Урганте мне очень запомнился Джеки Чан.
Во-первых, очень он там активный и всякие штуки показывает, недоступные
например мне (конкретно по ссылке к посту нет концовки где он с
доспехами и оружием управляется). Очень весёлый, позитивный, не шибко
одобряющий насилие. Во-вторых, очень тронуло в его фильме то, что он
хоть и ворует (сворованные) культурные ценности, но возвращает на свои
исторические родины. В других ещё каких-то китайских фильмах (в том
числе и с Джеки Чаном из 90-х) видел уважение китайцев к культуре. Как
же это идёт вразрез с культурой США, где во всех фильмах и мультиках
(Симпсоны, Футурама) если и можно чего увидеть, то только как пиндосы
перевозят всё что они награбливают к себе в страну! Сотни примеров с
ходу могу вспомнить, но вот ни одного в голову не приходит где бы они
возвращали что-то назад (иногда же причиной называют "на хранение, пока
где-то там что-то там не спокойно"). Как и англичане, у которых
персидских ценностей сколько.
Sergey Matveev [Fri, 19 Feb 2021 16:02:30 +0000 (19:02 +0300)]
Актёры дубляжа у Урганта
https://www.youtube.com/watch?v=kOm0TZtYYG0
Честно: когда показали видео в начале то после просмотра у меня даже не
было мысли что озвучка была произведена не в студии. Даже не подумал бы,
если бы в живую в студии Урганта не услышал, что они действительно
такими голосами говорят. Точнее вообще могут говорить. Просто офигенно!
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... снова пришлось искать что это
такое хотя бы примерно. До конца всё равно не понимаю. А и ладно. Со
следующего месяца у меня открывается концертный сезон!
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, не так, но представляю
его в голове исключительно кадрами из "Отступников".
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% всех голливудских актрис.
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
Я конечно видел мультики и фильмы, но читать не приходилось. Собственно,
ничего нового не открыл, но какая же всё таки это полнейшая
психоделическая история! Неужели детям и правда такое может сниться?
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". Вообще я чаще сталкивался с тем, что люди не знают "ИБП", но
знают "УПС" (что меня дико бесит). Причём я "УПС" никогда не скажу,
скорее "бесперебойник".
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. Вот не сказал бы что рьяно рвусь выпиливать всё что с ним связано,
но само как-то так выходит.
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 сторонний,
но я просто не вижу в нём смысла.
Sergey Matveev [Wed, 17 Feb 2021 07:40:51 +0000 (10:40 +0300)]
Дребезжит динамик в ноутбуке
Как минимум, с полгода динамик в ноутбуке дребезжит. Такой
электрический/механический треск. Особенно проявляющийся если
заряжать от ноутбука что-нибудь, нагрузить его процессор или
просто заряжать его. Сейчас он стал настолько частым и сильным,
что по сути уже он просто не пригоден ни для чего.
Именно с этим ноутбуком понял что значит плохое качество, ведь
прежде у меня были только ThinkPad-ы (не считая YeeLoong и eeePC 700).
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
Sergey Matveev [Mon, 15 Feb 2021 16:32:51 +0000 (19:32 +0300)]
Невероятно сколько времени страдал с man-ами zsh
А оказывается то там вся документация в Texinfo, который без проблем
генерирует Info! Какого чёрта я не смотрел есть ли другой формат кроме
man? Ведь документация по zsh ОГРОМНА и очень сложно в ней находить
многие вещи, когда нет ничего кроме поиска по регулярке.
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 у меня пуст.
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)
На самом деле ещё штуки четыре всяких фильмов за последнюю неделю, но о
них и писать не хочется. А Пассажиры понравились даже очень. Конечно,
инженеру болезненно смотреть на многие моменты в фильме, но да и фиг с
этим, всё ж не Гравитация. Особо никакой глубокой мысли то в фильме нет
(кроме главного поступка героя), как и хитрого сюжета, да и череды
абсолютно невероятных совпадений. Но удовольствие большое получил!
Зауважал Криса Прэтта как актёра. Не в том плане, что я к нему негативно
относился прежде, но просто знал его исключительно по комедийным ролям.
И Дженнифер Лоуренс то впервые увидел.
Sergey Matveev [Mon, 15 Feb 2021 13:44:47 +0000 (16:44 +0300)]
Прочитал "Продавца случайных чисел"
https://lleo.me/arhive/2014/prodavec.htm
Понравилась основная идея рассказа, про то, что источники энтропии нужно
искать, мол всякие счётчики Гейгера не подходят для больших масштабов. А
сами числа то эти используются в синтезаторах (еды и прочего). Ну и есть
немного антиутопии, когда люди уже не вступают в брак, а подбирают себе
партнёра ровно на один вечер, просто парой кликов.
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), а
другой... иначе, то я не знаю как тут можно им будет работать сообща.
Sergey Matveev [Fri, 12 Feb 2021 08:40:45 +0000 (11:40 +0300)]
Newsboat потребление памяти
Сегодня внезапно увидел что newsboat после обновления feed-ов у меня
может выедать под полгигабайта оперативной памяти. И оно только растёт и
увеличивается. Особо это не проблема -- можно выйти/войти и всё равно
читать статьи, но держать постоянно его запущенным, чтобы он
автообновлялся, уже не так приятно, ибо приличный объём RAM теряется в
пустую. Возможно более поздние версии и не имеют такой проблемы, но они
написаны на 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 это тоже хорошо. Вот только в мире нужно решать задачи за
*вменяемую* и разумную цену.
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).
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:
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]"'
Sergey Matveev [Wed, 10 Feb 2021 15:14:31 +0000 (18:14 +0300)]
Суровая правда о разработчиках и разработке
https://habr.com/ru/post/541810/
В принципе солидарен со всем сказанным, что ИТ отрасль тянет многое на
дно. Но мне кажется, что в первую очередь это связано с увеличением
количества в неё вовлечённых, далеко не самого высокого уровня (ага,
даже я впервые связанный список использовал и второй раз в жизни
задумывался о сложности алгоритма -- только вчера). "Моё разочарование в
софте" (bb09bd6fb88009c4db4caf0e8372bbde38a56701) из этой же серии.
Автор статьи, пишет, что работает 15 лет в ИТ сфере. Как и я. Но я не
готов говорить о том что же надо делать.
Sergey Matveev [Tue, 9 Feb 2021 17:48:45 +0000 (20:48 +0300)]
Впервые в жизни использовал связанные списки
Знаю что это база для программиста, присутствующая в любой книге, но на
практике я только сейчас столкнулся с этой штукой. Точнее столкнулся с
необходимостью написать свой собственный аллокатор памяти на Си, в
котором связанные списки применяются. Совсем ничего опыта в Си, а уже
надо такими вещами заниматься.
Sergey Matveev [Tue, 9 Feb 2021 13:12:45 +0000 (16:12 +0300)]
Про театр безопасности
https://soatok.blog/2021/02/09/crackpot-cryptography-and-security-theater/
Различные примеры того, как люди несут всякий бред, а журналисты ещё и
превращают в совершенно несуразные заявления.
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 и даже "%".
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-ке лучших фильмов. Я
так и не понял где и чем. По сути весь фильм я мог бы только зевать.
Можно сказать что пожалел потерянного времени. Единственное что вызывало
положительные чувства это увидеть молодых Йовович, МакКонахи и
Зеллвегер, которых прежде такими не лицезрел. Особо то и плохого ничего
не могу сказать, кроме того, что и хорошего и интересного нет. Просто ни
о чём фильм для меня. Что хотели показать? Что передать? Что интересного
рассказать? Банальная скукотища.
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
Офигеннейший фильм! Хочется написать про то как то, да сё верно, как
крута концовка и размышления в ней. Как точно всё подмечено и показано о
людях, в самую точку. Но, во-первых, много чего можно написать и чуть ли
не пересказать фильм и мысли которые у людей и сами дойдут. А, во-вторых,
у меня что-то нет уверенности что другие воспримут его точно так же как
и я и будет одно мировоззрение и выводы. Те тезисы которые бы были для
меня очевидны -- наверное могут быть восприняты совершенно иначе другими.
В общем -- очень круто! Если множество других фильмов о которых я пишу
мне действительно нравятся, очень (а о тех кто не нравится, даже и не
упоминаю, чаще всего), то это вызывает восторг. Откладывал его, ибо
целых три часа идёт. И на половине фильма были сомнения а не закончится
ли какой-нибудь туфтой. Но нет, три часа стоили того!
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)
Очень понравился фильм! Скучно не было нигде. Концовка... неожиданна и
настолько, что, думается, вымышлена в голове таксиста. Но Де Ниро с
ирокезом это круто!
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
достаточно хорошо удовлетворяет нужды, что особо никто не чешется в эту
сторону.
Sergey Matveev [Fri, 5 Feb 2021 20:45:07 +0000 (23:45 +0300)]
Самый страшный монстр -- хриссалид
https://www.ufopaedia.org/index.php/Chryssalid
Что-то вспомнил статью в одном старом журнале про топ самых страшных и
нелюбимых монстров из компьютерных игр. Там и краб из Half-Life был и
Кибердемон из Doom. И где-то в топе был хриссалид. И для меня это
действительно самый самый страшный монстр в играх. Его дикое количество
очков действия, его мощные укусы, от которых и танки сразу же ломаются,
и его способность превращать в зомби трупы, из которых в последствии
новые хриссалиды появятся -- вызывают всегда панику. В XCOM-е всегда
если я завидел эту тварь, но бросал всё всё всё и ломился всеми
доступными людьми и танками чтобы побыстрее угробить её! А он же ещё и
живучий. Помню что применял бластеры, которые выносят полэкрана мощным
взрывом, снося жилые дома и их обитателей, лишь бы прикончить
единственного хриссалида.
Ну и конечно же есть другой монстр -- груй (grue). Тот самый что в
Zork-ах и других interactive fiction играх есть. Он настолько страшен,
что никто не может описать как он выглядит. Ибо если встретился с ним,
то не выживешь. Благо, обитает только в тёмных местах и если есть
источник света, то боятся нечего.
Sergey Matveev [Fri, 5 Feb 2021 15:34:29 +0000 (18:34 +0300)]
Навальный и прочие либералы
В новостях время от времени новости из суда показывают и у меня дежавю
сильнейшее. Читая высказывания этой мрази, у меня в голове вопрос:
причём тут это то? Сильнейшее ощущение что совершенно невменяемый
человек, любой разговор с которым всегда и всегда сводится только к
политике и к тому, что у него, мягко говоря, мания величия, и Путина он
обидел и ему вокруг все козни только и делают. О нём ведут речь об
одном, вообще совершенно толком то не связанном с политикой, а он
умудряется её как-то приплетать.
Почему дежавю? Потому что всё не забуду общение с либертарианской
партией, где каждое моё предложение с их стороны сопровождается "на
самом деле, я (stargrave) хотел сказать..." и понеслась тема того, как
плохи силовики и всё такое прочее. Facepalm и попытка ответить про себя
на вопрос "да при чём тут это и как мы вообще пришли к этому?". Даже
забавно. Неужели страны НАТО не могли кого повменяемее и получше нанять?
Стыдобище и позорище.
Sergey Matveev [Fri, 5 Feb 2021 13:01:52 +0000 (16:01 +0300)]
Ребёнок в снежном туннеле
https://lenta.ru/news/2021/02/04/snow/
http://mds-club.ru/cgi-bin/index.cgi?r=84&lang=rus&sbr=2&user=1688&filter=0&article=0&posits=0&sortby=20&search=
Вчерашняя новость и что забавно: буквально вчера я ведь вечером "читал"
(слушал аудиокнигу) "Снежные ходики", где 12-летний пацан перемещается
во времени и встречается со своим отцом и сыном, где все они заплутали
в снежных туннелях. Ну главное что в жизни у школьника всё благополучно
закончилось!
Sergey Matveev [Fri, 5 Feb 2021 09:04:26 +0000 (12:04 +0300)]
cut -w
Обнаружил что BSD cut утилита имеет "-w" опцию, которая использует
whitespace последовательность, в качестве разделителя. awk был приятен
тем, что колонки могут разделяться разным количеством whitespace-ов, и
он по умолчанию делает "\s+" аналог разделителя. cut -w -- тоже. POSIX,
к сожалению не имеет этой опции.
Ну и GNU cut не имеет. С одной стороны удивлён -- они же любят добавлять
тьму всяких фич не стандартных. С другой стороны -- не удивлён, ибо
удобство пользователя это не про GNU/Linux.
Sergey Matveev [Wed, 3 Feb 2021 13:40:43 +0000 (16:40 +0300)]
Cloudflare и TCMalloc
https://blog.cloudflare.com/the-effect-of-switching-to-tcmalloc-on-rocksdb-memory-use/
Интересная статья про то, что просто смена memory allocator-а (с Glibc
на TCMalloc) может в 2.5 раза сократить потребление памяти. FreeBSD
кстати использует jemalloc, который вроде как дружелюбен к многопоточным
приложениям.
Sergey Matveev [Wed, 3 Feb 2021 09:55:30 +0000 (12:55 +0300)]
Bluetooth trackball
https://blog.jfedor.org/2021/01/bluetooth-trackball-mark-ii.html
https://blog.jfedor.org/2019/06/bluetooth-trackball-with-all.html
Какой интересный трэкбол: состоит только из одного шарика, внутри
которого акселерометры, аккумулятор, Bluetooth передатчик, беспроводная
зарядка. Меня правда смущает симметричность полости и наверняка смещение
центра тяжести начинки. Или она достаточно лёгкая чтобы не замечать
этого. Или всё учтено. Но в любом случае мне нравится. Большой шарик это
тема! У меня Kensington Expert с одним из самых больших шариков -- но я
уверен что не прочь и ещё большего.
Sergey Matveev [Wed, 3 Feb 2021 08:27:14 +0000 (11:27 +0300)]
vim --remote
Я давным давно знал что gvim является сервером к которому можно
отправлять команды через обычные вызовы vim команды. На одной работе
руководитель в urxvt мог клацнуть мышкой на Python traceback или имени
файла:строке и у него отправится команда в его запущенный gvim на их
открытие.
Оказалось, что это прекрасно и без проблем работает и просто с обычным
vim, хоть и использует средства X11 (как и буферы обмена требуют его
поддержки). Как будто открывается тьма новых возможностей, особенно с
учётом возможности fzf выполнять любые команды! Напоминает plumbing из
Plan9. Хотя в Emacs, само собой, всё это (как и fzf-like вещи) есть уже
четверть века.
А в fzf и его vim-плагине просто тьма hardcode-а (даже внутри Go кода)
не только bash-измов, но и вообще вызова bash. Я вот удивляюсь: куча
пользователей fzf, как мне кажется, это всякие хипстеры с zsh-ем. И всем
нормально рядом держать bash монстра? У меня то из-за этого и в Vim fzf
для файлов не работает. Что-то профиксил, а на кучу остального просто
лень уже тратить время.
Sergey Matveev [Wed, 3 Feb 2021 07:55:44 +0000 (10:55 +0300)]
Немецкая полиция имеет право на распространение троянов
https://www.ccc.de/en/updates/2011/staatstrojaner
http://news.dieweltistgarnichtso.net/bin/redo-sh.html
Автор redo.sh у себя делает заметку о том, что у них легально разрешено
вставлять зловред в передаваемую информацию. Поэтому нужно проверять PGP
подписи у скачанного софта.
Sergey Matveev [Tue, 2 Feb 2021 21:26:33 +0000 (00:26 +0300)]
fzf
https://github.com/junegunn/fzf
В дополнении к 77ede978e9c24bc8e68ee4e900b9dc5bf94b29f6 попробовал снова
fzf. Всё же штука похоже будет мною использоваться. Как минимум, для
выбора единственного файла для вставки -- вполне себе быстра, экономит
мышку. Совершенно не помню пробовал ли я fzf с интеграцией с zsh. Но
делается легко, говнокода не вижу особо нигде.
Sergey Matveev [Tue, 2 Feb 2021 19:02:57 +0000 (22:02 +0300)]
RISC-V возможно не так хорош, как вы думаете
https://sporks.space/2021/02/01/risc-v-isnt-as-interesting-as-you-think/
https://lobste.rs/s/icegvf/will_risc_v_revolutionize_computing#c_8wbb6t
https://gist.github.com/erincandescent/8a10eeeea1918ee4f9d9982f7618ef68
https://lobste.rs/s/yqqhxu/llvm_for_m68k_completed_not_merged
Мне вот со школы очень нравилось читать про процессоры, их команды и
прочее. Ещё в школе хотел иметь в будущем Macintosh, потому что в нём
RISC процессор, а не этот CISC уродский. Позже Mac-и стали x86. Теперь
вообще что-то закрытое и страшное.
Всегда нравились MIPS, SPARC. Наслышан про сложность аппаратной
реализации из регистровых окон. Да и есть у многих сомнения в их
реальной пользе и эффективности. ARM-ы никогда не прельщали чисто
эстетически. Хотя я и не прочь бы пересесть на какой-нибудь ARM64, будь
они вовсю доступны и неплохи по производительности. Был под впечатлением
от Alpha, хотя, с точки зрения инструкций, ничего особо выделяющегося.
Не раз читал кучу статей/руководств по MIPS-3D, MDMX, MADMAX, MMX, MAX,
MVI, AltiVec и особенно VIS расширениям. Но особо любимым был и остаётся
IA64. Мне кажется в нём некая крутая золотая середина для рабочих
станций: и RISC, и не шибко минималистичный, и не шибко много чего
имеющий сильно специализированного под узкие задачи, и при этом тьму
команд я могу понять и осознать для чего они и чем могут помочь на
практике, далеко не только в мультимедиа задачах. Всякие его GSR
регистры и аллокации стэка мне красивы. Хотелось бы работать за такой
штукой, только без EPIC/VLIW, которые показали себя на практике
достаточно плохо.
RISC-V один из последних про кого я читал и рассматривал их команды.
И... не раз это делал, но каждый раз в нём не находил ничего интересного
вообще. Его конечно и не должно быть -- это должен быть простой,
скучный, дешёвый, хорошо выполняющий свои задачи процессор. Но никакой
эстетической красоты для меня, хотя у меня совершенно нет никакого
предвзятого отношения и наоборот хочется порадоваться что, мол, может
быть вскоре всё же будут дома RISC-V процессоры подобные, на замену
динозаврам монструозным amd64? Но про себя тоже отмечал, как и в этих
ссылках, что большая раздробленность инструкций (и сразу вспоминается
ARM, где ещё попробуй запустить что-нибудь на разных процессорах). С
одной стороны вроде бы и минимализм есть, в виде даже отсутствия CAS-а
(ему на замену LL/SC) и вообще необязательности (не в "базовом" наборе)
атомарных инструкций. С другой суммарно не мало всего в нём может быть.
Да и минимализм тоже должен быть без крайностей -- говорят что CAS
инструкция всё же дала бы куда больше эффективности для general purpose
компьютера, чем она бы усложнила сам процессор.
Посмотрим в общем. Много пишут о проблемах в отсутствии стандартизации
"обвязки" (привет MIPS). В том что возможно будет множество
проприетарных расширений (привет MIPS и ARM). RISC-V мне в любом случае
более люб чем ARM, но вот чёрт его знает взлетит ли и будет ли штатно
доступен простым смертным как альтернатива вменяемая.
Sergey Matveev [Tue, 2 Feb 2021 18:30:56 +0000 (21:30 +0300)]
Быстрый выбор файла
Наткнулся на Facebook PathPicker утилиту:
https://github.com/facebook/pathpicker/ (fpp)
Давно хотел что-то похожее, но сделал только жалкое подобие в виде qq: 5d2d9f386d547b8e436829db5c6533b17feffe8e. Утилита временами странно себя
ведёт при выборе. Из коробки не работает с zsh, ибо shell скрипты для
неё писал человек явно не сведущий в shell-е совсем. В целом штука
понравилась: захотел выбрать несколько файлов -- вызвал через tmux её
(https://github.com/tmux-plugins/tmux-fpp -- тоже кстати из коробки не
работающий скрипт, бл@, ну bash не стоит на куче систем из коробки, с
чего вы взяли!? да и не используют его опытные пользователи)
интерактивно выбрал, а дальше либо в редактор, либо команду набирай. Но
при выборе всего буфера, всего окна -- она ощутимо медленно работает.
Мне приходится ждать пока она отпарсит окно. Да и ввод команды там не
самый удобный. git add -- ещё терпимо. Но что-то сложнее уже хотелось бы
в shell-е, а результат этой команды добавить к уже набранному тексту.
Нашёл ещё ряд утилит которые интерактивно позволяют что-то выбирать:
* https://github.com/mooz/percol -- не пробовал, ибо на Python, поэтому
не хотелось бы (скорость)
* https://github.com/peco/peco -- тоже самое, только на Go. Попробовал
-- не работает. Точнее вывод в окне показывает, так сказать, первый
кадр, но вообще не реагирует ни на какие нажатия -- делаю kill.
* https://github.com/mptre/pick -- очень минималистичная утилита на Си.
Работает. Но выбирает только один элемент. Для выбора нескольких
файлов для git add (например) не подойдёт
* https://github.com/junegunn/fzf -- fzf вообще известнейшая штука, но
как-то у меня не срастается с ней дружелюбие. Да и несколько элементов
не выбрать
* https://github.com/robbiev/numberwang -- среди вывода просто ищет всё
что похоже на файлы и даёт номерами выбрать интересующие, копируя
результат в буфер обмена. Никакого красивого интерактива, очень всё
примитивно, но... вообще выглядело именно как то что мне надо.
Однако... на большом выводе (буфер tmux) он жутко тормозит! Да и когда
файлов много, то хотелось бы поплотнее умещать в несколько столбцов,
чтобы не прокручивать экран
* https://github.com/edi9999/path-extractor -- штука которая занимается
только выборкой файлов из ввода. Самое главное: поддерживает
"файл:строка" формат. В отличии от numberwang-а, работает очень
быстро. Остаётся только заиметь для неё TUI какой-нибудь
Но мне же по сути достаточен выхлоп numberwang, только бы в колонки в
его. Помню что print команда из zsh, который у меня и так стоит, умеет
делать в несколько колонок. Поэтому я взял и написал на zsh (один из
первых опытов программирования именно на нём) отображение и спрашивание
вариантов выбора:
http://www.git.stargrave.org/?p=dotfiles.git;a=commitdiff;h=62bccf2a97581ed475dd46068621d0dffa21d5c9
Ну и синтегрировал с tmux-ом. Теперь могу где угодно нажать P-o,
отобразиться выбор "файлов", ввожу их номера, enter, и на 20 секунд оно
будет в буфере обмена (если программа полностью закроется, то и у буфера
обмена не будет источника), и я могу вставить в командную строку или ещё
куда результат.
Для git команд это точно будет полезно. А вот выбирать одиночный файл
пока выходит не супер быстро, ибо сырое представление файлов отличается
от разукрашенного и структурированного и не сразу находишь нужный файл,
чтобы ввести его номер. Возможно нужно сделать отдельный popup с выбором
единичного файла на основе pick утилиты. А вообще разукрашенный вывод
fpp, который внешне полностью похож на входные данные -- действительно
помогает для восприятия (только плохо и медленно работает). Может всё же
напишу на Go fpp аналог, тем более что самая сложная часть по
выпарсиванию имён файлов уже есть готовая.
Sergey Matveev [Tue, 2 Feb 2021 06:41:52 +0000 (09:41 +0300)]
Трампа на Нобелевку
https://lenta.ru/news/2021/02/02/nobel/
Ага, после убийства Сулеймани, в самый раз говорить о премии мира.
Впрочем, я офигевал от присуждения этой премии Нельсону Манделе,
который фактически уничтожил одну из передовых стран в мире.
Sergey Matveev [Tue, 2 Feb 2021 06:04:09 +0000 (09:04 +0300)]
Насколько маленьким может быть ядро Linux?
https://habr.com/ru/post/540214/
Кхм, а ведь я использовал какой-то дистрибутив GNU/Linux на двух 3.5"
дискетах, запускаемый на i386, где был и lynx, PPP-клиент, tin, какой-то
почтовый клиент, IRC-клиент. И реально выходил со всем этим в Интернет.
Sergey Matveev [Tue, 2 Feb 2021 05:53:52 +0000 (08:53 +0300)]
GPL, systemd и RedHat
https://unixsheikh.com/articles/the-problems-with-the-gpl.html
https://unixsheikh.com/articles/the-real-motivation-behind-systemd.html
Интересная точка зрения на GPL и его внезапную связь с systemd. Мол,
из-за невозможности творить проприетарное непотребство, RedHat вынуждена
из-за GPL была изобретать systemd. Ну а systemd это поделка созданная
RedHat только и только (что очевидно и ожидаемо) для удовлетворения
собственных нужд, типа hard-code серверов Google, CloudFlare и делания
всего, чтобы избавиться от /etc, ну и иметь удобные backdoor-ы типа
"0day" пользователь получающий root-овые права. Причём тут выпиливание
/etc? Я и сам не понял. Типа отсутствие не hard-coded RedHat-driven
настроек? Как в Fedora документации напрочь отсутствует теперь раздел
(df37da70db7620b53e79b2492c154bc713da78ad) про настройку сети.
Sergey Matveev [Mon, 1 Feb 2021 14:05:57 +0000 (17:05 +0300)]
Исповедь docker hater
https://habr.com/ru/post/467607/
http://www.stargrave.org/www.boycottdocker.org.html
Хорошо отмечено, что принципиально ничего нового docker не изобрёл, ведь
были jail/zone уже. Только популяризировал эту идею. Хотя и далёкой
реализацией и тьмой других проблем. А вообще все проблемы по сути от
незнания людей и неумения использовать свои инструменты.
Раз уж до сих пор есть hater-ы docker, то выложу ка я www.boycottdocker.org
сайт, который в Google выдавался вторым в списке по запросу "docker".
Sergey Matveev [Sun, 31 Jan 2021 14:49:38 +0000 (17:49 +0300)]
Посмотрел "Неуязвимого"
https://ru.wikipedia.org/wiki/%D0%9D%D0%B5%D1%83%D1%8F%D0%B7%D0%B2%D0%B8%D0%BC%D1%8B%D0%B9_(%D1%84%D0%B8%D0%BB%D1%8C%D0%BC,_2000)
Всякие супергеройские фильмы, по этим комиксам -- совершенно не любитель
смотреть. Чужда мне эта культура. Но вот этот фильм -- очень понравился!
Правда жутко мрачный, в общем-то ближе к ужастикам даже. Но и Уиллис
крут и Джексон! Опять же, на фоне последнего безумия в США, смотреть
фильмы с неграми можно зарекаться, ибо их будут сувать из-за политики,
но некоторым крутейшим актёрам, типа Джексона, всегда будет исключение!
И подана эта вся супергеройская тема с необычного ракурса, и концовка
ещё более стрёмная.
Sergey Matveev [Sat, 30 Jan 2021 13:49:52 +0000 (16:49 +0300)]
Data vs datum
https://shkspr.mobi/blog/2021/01/data-is-data-are/
На работе недавно задавался вопросом касательно множественного или
единственного числа "data". Помню что в одно время (какие-то древние
года, судя по всяким stackexchange), "datum" было множественным числом
"data". А потом всё стало наоборот.
Эта статья говорит что data это единственное, точно так же как "рой"
(пчёл) -- рой один. Но рой состоит из множества пчёл, тогда как "data"
состоит из множества "datum"-ов.
Executive summary: delete the procmail port; the code is not safe
and should not be used as a basis for any further work.
Начал использовать maildrop полтора года назад 28e99fadc65dc461009707282a34247b54f51ce9 и очень доволен заменой. Мало
того что правила получаются короче, так ещё и язык довольно интуитивный,
простой и наглядный чтобы, годами не прикасаясь, мочь без документации
быстро добавить ещё не тривиальные хотелки.
Sergey Matveev [Thu, 28 Jan 2021 19:42:17 +0000 (22:42 +0300)]
One True Linux way и десктопы
https://liam-on-linux.livejournal.com/77016.html
Интересная короткая статья с неожиданной, но забавной концовкой.
Все эти taskbar-ы и прочее -- не меняются со времён Windows 95. Куча
desktop environment-ов повторяют поведение Win95 и всё равно это
делают плохо. У GNOME3 -- независим от Win95. Pantheon -- жалкое
подобие Mac OS X. Ещё есть повторюшки NeXTStep. OpenCDE кто-то может
вспомнить.
Разве это всё не "Linux way"? Мы делим людей на дюжину разных групп,
которые ненавидят друг друга. 3/4 из них делают ту же самую работу
что и остальные, реализуя чью-то совсем чужую идею. Другие будут
использовать другую идею. Один безумец будет что-то совершенно
другое изобретать, наполовину доделывая, а дальше прекращая всё
из-за скуки.
А тем временем, кто-то хардкорный будет использовать нечто ужасное
из 1973-го, но любить до смерти, отказываясь от чего либо более
современного.
А тем временем, люди которые делают работу, просто идут и покупают
Macbook.
Последняя фраза веселит. Ибо автор забывает, что люди которым есть чем
заняться и которые хотят это делать эффективно... вообще не
заморачиваются и не используют desktop environment-ы. В принципе.
Вообще. Я не встречал никого, кто бы не отказался от них со временем. Не
потому что чем-то не нравятся, а потому что не нужны и мешают даже одним
своим присутствием.
Серьёзно? Человек, которому есть чем заняться, будет думать об иконочках
в панельках и resize этих панелек? 20 лет назад я тоже сравнивал KDE и
GNOME, смотрел на другие DE, больше всего мне нравился долгое время
WindowMaker. Но с опытом вся эта тема DE как-то улетучивается. Даже я
конечно же могу потерпеть и какое-то время поработать где угодно, ведь
уж с задачей запуска терминала и разворачивания на весь экран даже macOS
наверное справится. Но если дистрибутив сразу из коробки предлагает
какой-то DE, то он автоматом относится к разряду "для новичков", которым
нужны иконки. Debian, Arch Linux, NixOS, Free/Net/Open/DragonFlyBSD,
Gentoo -- все они из коробки не предлагают ничего подобного, и каждый по
своему является синонимом "серьёзного" дистрибутива/ОС.
Sergey Matveev [Wed, 27 Jan 2021 09:07:40 +0000 (12:07 +0300)]
Уязвимость в sudo
https://www.opennet.ru/opennews/art.shtml?num=54474
Я вот никогда в жизни не использовал sudo. Вообще. Ну кроме чужих
систем, где настроено его использование. И на протяжении всей жизни я
только и делаю что регулярно читаю про очередные серьёзные косяки в нём.
Убеждён, что в 99% случаев людям нужен "su -", а не этот огромный
framework по управлению правами. Да и есть же очень маленький и
компактный doas из OpenBSD: 8dcb0aac0444e1c354b65e7fcd20fd75f72685e4.
Вижу sudo -- сразу себе говорю "до свидания", ибо сложным системам
нечего делать в вопросах повышения прав.
Sergey Matveev [Wed, 27 Jan 2021 08:04:17 +0000 (11:04 +0300)]
Посмотрел "Рестлера"
https://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D1%81%D1%82%D0%BB%D0%B5%D1%80_(%D1%84%D0%B8%D0%BB%D1%8C%D0%BC)
Ещё на выходных. И всё из-за Микки Рурка, где тоже говорят он там хорош
как актёр. И фильм хорош, и Микки ещё как!
Sergey Matveev [Sun, 24 Jan 2021 22:47:32 +0000 (01:47 +0300)]
Как начать любить shell script: узнать размер файла
https://unix.stackexchange.com/questions/16640/how-can-i-get-the-size-of-a-file-in-a-bash-script
Возможно сейчас поздно и поэтому голова плохо соображает, но я осознал
что не знаю как кроссплатформенно узнать размер файла в shell-е. Парсить
ls или менять ему формат -- не серьёзно, ведь есть же stat утилита.
Которую я и использовал прежде. А сегодня проверил такой же ли у неё
способ задания формата вывода как и в GNU? Фиг там! И у ls разный, и у stat.
Пошёл по быстрому искать ответ всё ли так плохо. Да, всё плохо. Много
людей умудряются не понимать для чего нужен du. Если у ls всё же
стандартизованный вывод (ага, нужно выставлять POSIXLY_CORRECT для GNU),
то он бы мог быть портируемым вариантом. "wc -c" мне решение тоже
приходило в голову, но... оно не показывает размер файла из иноды, а
действительно считает кол-во символов сколько из него можно прочитать.
В итоге, пока остановился на perl -e 'print -s $ARGV[0]', хотя тут мог
бы быть и *awk и хоть python однострочник.
Удивительно, сколько лет можно жить, работать с shell, но на такие
простейшие вопросы не знать ответа простого и чёткого.
Sergey Matveev [Sun, 24 Jan 2021 22:01:30 +0000 (01:01 +0300)]
sharness радует
https://github.com/chriscool/sharness
https://testanything.org/
В d0ffbdd295c1583abde17388553038f39747b0cc упоминал что я для тестов в
goredo использовал sharness библиотеку. Просто делается её source, и она
предоставляет простой API, который может сделать проверки и вывести ok
или не ok для TAP протокола тестирования. sharness это вынесенная
библиотека тестирования используемая в Git. В прошлом году познакомился
и с TAP протоколом (простейший способ объяснения запускалке тестов всё
ли в порядке). TAP радует своей простотой и тем, что prove утилита
позволяет запускать тесты параллельно автоматом.
sharness до недавнего времени использовал по сути только как штуку
которая выводит нужные TAP сообщения. Но, он автоматически создаёт
временную директорию и подчищает её после завершения теста. В нём есть
"cleanup" функи позволяющие добавлять команды очистки за собой (например
убить процесс). Есть проверки на выставленные зависимости/prerequisites.
Есть возможность запуска с --debug или --verbose-ом. Есть даже
возможность test_pause-ом прямо во время выполнения теста провалится в
shell временной директории, что невероятно удобно оказалось когда у меня
как-раз запущенные процессы в фоне есть. Сплошные мелочи, но очень
приятные для работы и отладки.
* Починил -autotoss работоспособность при работе nncp-daemon в режиме
inetd. Точнее она и не ломалась -- почему то я её просто для этого
режима не добавлял. Причин не было, просто тупил
* Добавил опцию при которой nncp-caller может совершить вызов только
если есть исходящие пакеты. Внезапно, оказалось что cronexpr
библиотека, которую я использую для парсинга cron выражений -- без
проблем поддерживает даже секундны! А это значит что, совмещая с
when-tx-exists опцией, можно сделать autodialler -- который будет хоть
ежесекундно проверять наличие новых пакетов и связываться для их
отправки
* Ну и наконец-то я осуществил своё ещё прошлогоднее желание о том,
чтобы перевести логи в формат recfile-ов. Я популяризатор RFC 3339
формата структурированных логов: в ivi и на текущей работе. Но сейчас
сам же от них отказываюсь. У меня нет полной уверенности в том что
творю, ведь SD-structured логи честно являются одной строкой -- одной
записью. Но в Python софте они не актуальны, ибо traceback-и
выбрасываются на много строчек, что делает такой журнал нифига не
валидным с точки зрения SD. recfile-ы же и гораздо легче парсятся, и
уже есть инструментарий, и куда более человекочитаемы. А ведь логи в
NNCP это всё же не совсем только журнал, но и штука по которой в
теории предполагалось строить отчёты из серии сколько трафика мы
обменяли с такой то нодой в этом месяце, построить графики
какие-нибудь. Сам я это так и не осуществил, ибо потребностей не было,
но с recfile-ами это уже существенно проще будет проделать
Sergey Matveev [Sat, 23 Jan 2021 18:25:34 +0000 (21:25 +0300)]
Преступное быдло Навального
https://lenta.ru/news/2021/01/23/udar/
https://lenta.ru/news/2021/01/23/eye/
https://lenta.ru/news/2021/01/23/39/
https://lenta.ru/news/2021/01/23/kesar_poletel/
https://lenta.ru/news/2021/01/23/4tisyachi/
https://lenta.ru/news/2021/01/23/dalvostok/
Залез в новости, оказывается сегодня поклонники уголовников решили
собраться и побузить. Благо что таких находится даже в Москве
относительно немного. Меня удивляет только мягкость полиции ко всему
этому сброду.
Sergey Matveev [Sat, 23 Jan 2021 10:21:09 +0000 (13:21 +0300)]
Посмотрел "Сердце ангела"
https://ru.wikipedia.org/wiki/%D0%A1%D0%B5%D1%80%D0%B4%D1%86%D0%B5_%D0%B0%D0%BD%D0%B3%D0%B5%D0%BB%D0%B0
Мало чего я видел с Микки Рурком (только комедийный "Четверг" приходит
на ум), но тут вижу какой он крутой актёр! Да и фильмы в целом очень
понравился! Я ничего про него заранее не знал, но, честно говоря, в
первых же минутах фильма, у меня уже проскочила мысль что сам главный
герой это тот, кого ищут.
Sergey Matveev [Sat, 23 Jan 2021 09:52:31 +0000 (12:52 +0300)]
Let's Encrypt на ZFS
https://letsencrypt.org/2021/01/21/next-gen-database-servers.html
https://github.com/letsencrypt/openzfs-nvme-databases
Let's Encrypt опубликовала то, как они живут с ZFS-ом и MariaDB для
своих довольно нагруженных задач. По железу ничего интересного: stripe
из 12 NVMe зеркал -- да там за миллион IOPS-ов должно быть! В памяти
можно ничего не хранить (индексы БД) -- одни IOPS-ы выжмут всё что надо.
А настройка ZFS ничем не примечательна, но грамотна. Именно такой и
должен быть подход и понимание особенностей dataset-ов:
* выставленный ashift -- must-have, для NVMe даже 8KiB поставили
* включённый hotspare -- так держать. Тем более что несколько терабайт
для их NVMe это вопрос очень небольшого времени
* использование простых зеркал в stripe -- разумно, из-за NVMe и малого
времени resilvering-а. Для HDD конечно было бы неразумно
* используют /dev/disk/by-id/ -- если диск честно отдаёт свой id, то
разумно. Нормальные NVMe думаю что такое. Хотя лично я предпочитаю
создавать GPT с label-ом... содержащим серийник диска :-)
* балансировка дисков по контроллерам и шинам -- как минимум понимают
важность (всё ж у меня и не было сомнений что там квалифицированные
специалисты работают) этого
* atime=off -- так держать. Лично у меня только единственный dataset с
Maildir-ом моей почты для Mutt имеет atime=on
* compression=lz4 -- вообще в случае с дюжиной NVMe у меня бы были
сомнения а не упрёмся ли мы в CPU, но видимо что LZ4 и CPU настолько
хороши, что даже с такой дисковой подсистемой это не бутылочное горлышко
* primarycache=metadata -- правильно, учитывая что у СУБД своё неплохое
кэширование (для задач)
* recordsize=128k -- ну это и так default, всё ok
* xattr=sa -- вот с этим, кроме как на Ceph, не сталкивался, но видел
что надо бы. Хотя на FreeBSD эта настройка вообще не используется
InnoDB раздел -- особый. Как минимум в нём fsync:
* logbias=throughput -- разумно, ибо, как верно заметили, все диски и
так одинаковы по производительности, плюс это не HDD где головку надо
перемещать на ZIL и обратно. throughput тут позволяет "вне ZIL" сразу
записывать данные, что для NVMe разумно
* recordsize=16k -- самая главная настройка по сути. В PostgreSQL это 8K.
Это убирает дичайший overhead который бы был с recordsize=128K
* redundant_metadata=most -- убирает необходимость создания некоторых
копий метаданных. Если это сильно вредит, и раз всё равно зеркало
есть, то разумно
В самой MariaDB отключены checksum-ы -- разумно, так как оно есть в ZFS.
Отключён doublewrite -- ибо записи в ZFS атомарны. write ahead log
бессмысленнен на CoW -- выставлены в размер recordsize. Отключён AIO, ну
потому что это Linux и он говно в котором много что работает плохо, это
очевидно. flush_neighbors отключён, ибо это всё равно CoW и NVMe.
У меня придраться не к чему, всё как надо. Хотя я удивлён что sysctl
никак не настраивали. Но видимо современные ZFS версии и так очень
хорошо себя ведут.
Sergey Matveev [Sat, 23 Jan 2021 09:47:07 +0000 (12:47 +0300)]
Go как основной язык
Я никогда бы не подумал что Go всё же может вытеснить Python для многих
задач которые нужно сделать по быстрому на коленке. Типа интерпретируемый
язык это всё же отдельная ниша со своими удобствами. Но когда я,
относительно недавно, написал генератор всяких XML-ек из recfile-а
(df5af37e96c74dedf26d1a2614cb2fe79a7f52ba) не на Python, а сразу же на
Go, то у меня ощущение что что-то не так. А на днях я вообще задачу
которая вполне себе могла бы быть относительно безболезненно выполнена
на pure shell (запустить процессы в фоне, дождаться завершения, сделать
проверки) -- тоже сделал в итоге на Go. Я толком с XML не работал в Go
никогда и не знаю геморройно ли там или нет. Но много работал в Python.
И воспоминания о боли проведённой с ним, даже заблокировали попытки
написать linksexp на нём -- сразу Go в руки. Python-у конечно есть
место, но уже даже не для простых скриптов трансформирующих recfile в
XML-ки всякие. Всё же Go это величайшее творение величайших умов!
Sergey Matveev [Sat, 23 Jan 2021 09:36:54 +0000 (12:36 +0300)]
Цензура в соцсетях
https://lenta.ru/news/2021/01/23/hamenei/
Последние месяцы, такое ощущение, что все эти VK, Telegram, Twitter,
Facebook, США и прочие только и делают что блокируют/цензурируют друга
друга. Трамп закрыл/запретил/удалил одно, его закрыли в другом месте,
третье место в отместку за это зацензурировало первое. Везде только и
делают что удаляют неугодных для текущего руководства (компании или
властей гос-ва).
В общем-то ничего удивительного само собой -- на то это и
централизованные решения, но в последнее время прям чуть ли не каждая
соцсеть уже является официальным сторонником то одних, то других. Хочешь
пропаганду от РФ? Дуй в Telegram. Хочешь от США, без Китая и Трампа? Дуй
в Twitter. И так далее.
Sergey Matveev [Fri, 22 Jan 2021 14:43:44 +0000 (17:43 +0300)]
Про чистоту языка и заимствования
https://phd-ru.dreamwidth.org/337742.html
Не могу не скопировать сюда, то что, одновременно, и улыбает и вызывает
ненависть :-)
Рашн лэнгвидж впитывает форин вордсы как губка
«Кэшбэк, как перманентная выгода в рамках программы лояльности.»
Как звучит! Просто поэма…
Слово "мерч" я энкаунтрирую первый тайм. Я, конечно, прорюхал, что
это кат от "мерчендайзинга", но не знал, что уже и сокращение стало
вордом русского языка. А вот, в вокабулярии есть (в викибулярии?).
Впрочем, мне меньше всех других стоит к этим заимствованиям
придираться. Что, мой профессиональный жаргон лучше, что ли? Анекдот
из 90-ых годов:
Subj: buffer overflow
Ребят, а эксплойты, связанные с сабжем, отдают рутовый шелл только
ли тогда, когда суид рут у дырявой проги??? А если суид отсутствует,
но рут - владелец екзешника?
Sergey Matveev [Fri, 22 Jan 2021 09:31:36 +0000 (12:31 +0300)]
Chromium вон из репозиториев
https://www.opennet.ru/opennews/art.shtml?num=54452
https://16-bits.ru/%d0%ba%d1%80%d0%b5%d0%bc%d0%bd%d0%b8%d0%b5%d0%b2%d1%8b%d0%b5-%d1%82%d0%b8%d1%82%d0%b0%d0%bd%d1%8b-%e2%84%9633/
Мне известен факт что всё больше и больше сайтов (или целых framework-ов)
работают только на Chrome(ium). По факту это уже единственный движок. На
остальных с каждым месяцем всё больше вероятности что что-то не будет
работать. И из самых популярных дистрибутивов, где больше всего "рук",
одну из самых популярных программ, по совместительству единственную
свободную реализацию Chrome движка, хотят выпилить. Web это Chrome, но
свободной версии которого не будет в популярных GNU/Linux дистрибутивах.
Что-то мне это напоминает... ах да, я ж буквально сегодня смотрел
очередной выпуск "Кремниевых титанов", где рассказывали про Flash. Супер
популярную закрытую проприетарную технологию.
А вообще я не понимаю поднятую бучу. Но наверное я потому что уже не
пользователь web-а в современном понимании. Как бы... какое отношение
имеет броузер и возможности какой-то там синхронизации с каким-то там
облаком?
Sergey Matveev [Fri, 22 Jan 2021 07:41:14 +0000 (10:41 +0300)]
Сотовые операторы несуществующих государств
https://nag.ru/articles/article/108076/operatoryi-nesuschestvuyuschih-gosudarstv.html
Интересная статья о сотрудниках сотовых операторов ДНР, ЛНР, Абхазии,
Южной Осетии, Нагорного Карабаха. Аналогично я слышал про Сирию: мол,
там чуть ли не первым делом после боёв (когда они были) восстанавливают
сотовую связь, которая получше чем в Москве.
Sergey Matveev [Thu, 21 Jan 2021 19:28:04 +0000 (22:28 +0300)]
Ускорения GoGOST
http://www.gogost.cypherpunks.ru/News.html#Release-5_002e3_002e0
GoGOST код -- старый. Да и писался когда я не так хорошо понимал
внутренности Go, особенно касательно slice/массивов.
Сделал оптимизации в код Стрибога и Кузнечика:
первый стал быстрее в 15 раз, делая 10.5 MiB/sec, а
второй (проверял Кузнечик-MGM) в 16 раз, выдавая 824 KiB/sec.
В принципе всё очень не шустро, это так.