Sergey Matveev [Sat, 13 Mar 2021 16:48:56 +0000 (19:48 +0300)]
Loom сравнение EGA и VGA графики
http://www.superrune.com/tutorials/loom_ega.php
https://news.ycombinator.com/item?id=26445522
Loom я прошёл всего несколько лет назад
(31e6bee7d9b0f7b5a1c7ad958e37d1eb1a61509c) -- поэтому ностальгии у меня
быть не может. Но игра запомнилась -- один из лучших квестов в какие я
играл. Однозначно в линейке "the best". Отличительная особенность (для
меня) -- она довольно короткая, возможно самая короткая из всех квестов
такого рода что я играл.
Но EGA игры и графику я застал -- первый компьютер был с EGA. И на нём
почти ничего не делалось, кроме как играли в игры с 5.25" дискет.
Sergey Matveev [Sat, 13 Mar 2021 08:13:47 +0000 (11:13 +0300)]
Прочитал "Роза и червь"
https://fantlab.ru/work504376
Обожаю такие книги и эта очень понравилась. Всякие техноштучки-дрючки,
деление людей нульдевов, милитантов, бланков и гильдов. Борьба с
пришельцами, космиков с наземниками, планет с астероидами. Эволюция до
состояний муравьёв. Уничтожение Новой Москвы, жизнь в Руссии и куча
всякого подобного. Ближе всего, мне показалось, книга к "Схизматрице"
Брюса Стерлинга.
Sergey Matveev [Fri, 12 Mar 2021 06:21:36 +0000 (09:21 +0300)]
Миллионы тонн ядерных отходов
https://naked-science.ru/article/nakedscience/milliony-tonn-yadernyh-othodov-krupnejshij-mif-atomnoj-energetiki
Интересная легкочитаемая статья про невероятное количество ужасно
опасных отходов от АЭС. Старые добрые байки от Greenpeace и их умение
выделять только негативные черты без сравнения с альтернативами.
Sergey Matveev [Fri, 12 Mar 2021 05:42:49 +0000 (08:42 +0300)]
OpenBSD недостатки безопасности. Так ли она хороша?
https://madaidans-insecurities.github.io/openbsd.html
https://allthatiswrong.wordpress.com/2010/01/20/the-insecurity-of-openbsd/
https://grsecurity.net/~spender/exploits/exp_moosecox.c
https://networkfilter.blogspot.com/2014/12/security-openbsd-vs-freebsd.html
OpenBSD нацелена на "low level exploit mitigation" в первую очередь. А
сегодня меня осенило что ведь в ней нет такой штуки как Mandatory Access
Control в принципе, ни в каком виде. В FreeBSD то уже давно MAC:
https://docs.freebsd.org/en_US.ISO8859-1/books/handbook/mac.html
Согласен что оно излишне, не нужно и бесполезно если софт написан с
privsep-in-mind и, более того, использует всякие pledge/unveil и прочее.
Но а что делать с софтом который так не написан? Насколько понимаю,
предложение OpenBSD это переписать его, мол исправить. Но нет, не
соглашусь что это годное решение. Я тоже могу доверять и считать что у
меня в сети нет софта который бы что-то по сети на определённым адресам
ничего бы не рассылал, но это не означает что лучше "перебздеть" и всё
равно добавить правило firewall-а. Вот и с MAC-ом аналогично: доверие
доверием, но лучше перестраховаться. pledge/unveil хороши и полезны, но
это не замена MAC. Это точно такой же аргумент как "я проверил этот Си
код и он не имеет проблем и дыр, поэтому и exploit mitigation-ы не нужны".
Само собой MAC (как и SELinux/AppArmor) это штука не для обычного
использования компьютера пользователем. И это правда что их 99.99%
пользователей сразу же отключают. Но когда готовится готовое решение,
заточенное под чёткую задачу, то MAC актуален.
HardenedBSD "has many mitigations OpenBSD does not such as CFI,
SafeStack, SEGVGUARD, a proper W^X implementation"
(5916b1b5c4827dccf0a7ced477a8e7d6de45908f). Это в довесок к тому, что
HardenedBSD имеет и MAC, так как это же FreeBSD. Ну и даже просто такие
sandboxing технологии типа Jail-ов отсутствуют в OpenBSD. Короче FreeBSD
как всегда рулит!
Sergey Matveev [Thu, 11 Mar 2021 09:17:15 +0000 (12:17 +0300)]
netaddr.IP
https://tailscale.com/blog/netaddr-new-ip-type-for-go/
Интересная статья про то, как можно компактно, быстро и эффективно
представлять и работать с IP адресами в Go, вместо родного net.IP,
требующего много аллокаций, не компактного и не везде удобного
(IPv4 vs IPv6).
И меня ещё приятно удивило то, что статья написана Брэдом Фитцпатриком
-- представления не требующий. Смотрю что ещё в блоге этой компании есть
и вижу Avery Pennarun -- того самого, кто сделал apenwarr/redo. Мир тесен!
Sergey Matveev [Thu, 11 Mar 2021 09:05:37 +0000 (12:05 +0300)]
Гурманизируюсь: тар-тар
В прошлом году отметил BBQ соус (d3ff0498cb2ba61e68efa34b9040d8c5f9ff635a),
с которым любое мясо будет вкусно. А сегодня заметил что уже в который
раз беру еду в столовой только потому что там соус тар-тар. Мясо или рыба:
без разницы уже.
Sergey Matveev [Thu, 11 Mar 2021 08:16:59 +0000 (11:16 +0300)]
IRC спустя четыре века
Дочитываю тут одну книгу, где действие происходит в 2300-х годах, где
всякие компьютерные сети на всю Солнечную систему. И там до сих пор
применяется irc:// протокол. И сейчас для меня он действительно является
всё же самым практичным и приятным для использования. У всех IM-ов куча
за и против, но IRC как-то всё равно перевешивает всех.
Sergey Matveev [Wed, 10 Mar 2021 21:39:54 +0000 (00:39 +0300)]
День перебоев
За один день:
* у меня вышел из строя ИБП (d730b7956cc04d2b1b6d6aaff1459579eb78606d)
* динамик впервые начал не просто шуметь/дребезжать
(c4eb9b487099fb52353ddbff000ccdc348a52b8c), а вообще полностью
отключаться. Хотя мне это даже нравится -- ноутбук становится таким
тихим, а от динамика всё равно толку уже нет
* сгорела часть ДЦ OVHCloud: https://www.opennet.ru/opennews/art.shtml?num=54736
* в новостях пишут что Twitter почти отключён в РФ (ничего из него не
читаю, ибо ни RSS/Atom нет, ни без JS он ничего не покажет)
* сам видел что зарубежные сети вовсю были с трудом доступны. Пишут что
Ростелеком напортачил с маршрутизацией. Причём дома у меня то как раз
всё хорошо работало (судя по мониторингу), а вот на работе РТ канал
Sergey Matveev [Wed, 10 Mar 2021 21:27:59 +0000 (00:27 +0300)]
Стал мало в блоге писать о релизах своего софта. NNCP 6.2.0
http://lists.cypherpunks.ru/archive/nncp-devel/2103/0195.html
Заметил что прежде я даже минорнейшие версии PyGOST/GoGOST упоминал. А
сейчас даже релизы NNCP пропускаю от упоминания, ибо ничего интересного,
везде сплошная банальность и скукота. Ну или моё отношение к проектам и
блогу изменилось.
Хотя в NNCP и прилично правок было сделано -- очередной рефакторинг
логирования. В этом проекте ничто так часто не переписывалось, как
эта часть проекта. То structured data поля из RFC syslog. То переход на
recutils. То я передавал словарём, то списком. То я на основе сырых
данных структурированных сообщений формировал человекочитаемую строку
лога, то теперь сразу же на месте её формирую и в лог же и записываю.
А вот что меня приятно удивляет, так это то, что само ядро NNCP -- его
базовые и шифрованные пакеты: не меняются годами. Были правки, но очень
простые и несущественные. И при этом ядро NNCP (toss, tx) покрыто
тестами с самого начала. И ни разу за всю историю проекта у меня (и у
пользователей которые куда активнее и брутальнее меня его используют,
перегоняя на порядки бОльшие объёмы данных) ничего не пропадало и не
корёжилось в данных. Никогда ничего не удалялось пока точно то или иное
действие не доделано до конца с гарантиями всяких fsync-ов. Я считаю что
может случаться всё что угодно, но лишь бы не потери данных и лишь бы не
удаление того, в чём ещё нет точной уверенности (например оповещение
противоположной стороны по online протоколу о том что файл получен) -- и
пока в этом не облажался.
Sergey Matveev [Wed, 10 Mar 2021 21:18:11 +0000 (00:18 +0300)]
Wikipedia и значимость правок
https://en.wikipedia.org/wiki/List_of_mailing_list_software
Когда я перешёл на mlmmj, то в Wikipedia в список maillist софта внёс
ссылку на mlmmj. А то ведь не порядок -- совсем он не упоминается там.
Сейчас вот увидел что правку отменили, мол это не notable.
В Wikipedia я вносил правки наверное раз пять. И насколько помню, все
эти правки всегда отменялись. Я совершенно не понимаю какая информация
может туда (в Wikipedia) попадать, а какая нет. Я совершенно не понимаю
этих оценок notability. Автор хочет сказать что mlmmj имеет меньший вес
чем GroupServer или Organic Groups Mailing List? Про них я вообще вроде
никогда не слышал и не видел в природе. mlmmj я прям осознанно вспоминаю
что прилично где используется (судя по рассылкам на которые я подписан),
в отличии от многих других. Или моё множество мне известных рассылок (а
это сотни!) является non-notable частью всех остальных, которые рулятся
на чём угодно, но только не на mlmmj, Sympa и Mailman?
Просто я вроде видел сотни статей на Wikipedia в которых буквально один
маленький абзац, занимающий на экране несколько строк. Это notable? Я
видел сотни статей там с ссылками на внешние ресурсы/проекты. Совершенно
не понимаю я оценок, даже отдалённо. Собственно и 10+ лет назад я не
понимал и поэтому даже не пытался ничего править -- но раз в несколько
лет всё же что-нибудь да вношу (ну и это отменяют). Причём мои правки
исключительно на технические темы -- никакой политики или истории,
которые всюду и везде спорны. Статьи касающиеся софта -- все удалялись,
хотя я даже примерно не понимаю чем они отличаются от любой из тысяч
статей рассказывающих про то или иное свободное ПО.
Sergey Matveev [Wed, 10 Mar 2021 09:34:54 +0000 (12:34 +0300)]
Снова про разбиение диска в GNU/Linux
https://openzfs.github.io/openzfs-docs/Getting%20Started/Ubuntu/Ubuntu%2018.04%20Root%20on%20ZFS.html
Сколько нужно разрабов чтобы разбить диск: 2e2ddd2329bb3abaa7c4dd842dd6da7a57475298
Но, видимо это всё архаичная фигня была, ибо в документации про "ZFS как
корень для Ubuntu" вообще говорят про какую-то мне прежде невиданную
sgdisk утилиту для разбиения диска.
Sergey Matveev [Wed, 10 Mar 2021 08:53:08 +0000 (11:53 +0300)]
ИБП отказал
Просыпаюсь ночью от писка. ИБПшник циклически пытается включиться, на
секунду запускает серверы, дальше вырубается. В общем, отказал. Хотя
даже год не отслужил ещё (029660df1133b0c78da48bc2ceb4232542fa1931). Но
прежде у меня были только Powerman (как-то так, точно не помню), а в
этот раз какой-то FXP.
Sergey Matveev [Tue, 9 Mar 2021 19:15:56 +0000 (22:15 +0300)]
Симпатичны unveil(2) и pledge(2)
https://man.openbsd.org/unveil
https://man.openbsd.org/pledge.2
https://isopenbsdsecu.re/
Немного познакомился и почитал про всякие seccomp, Capsicum и pledge
штуки, даже что-то начал писать с их использованием. pledge пробовать не
буду, ибо нет под рукой OpenBSD, но выглядит он супер удобно и просто
устроенным! К seccomp даже страшно подходить. Capsicum довольно
специфичен (по сути только про файловые дескрипторы говорит) и не всё в
нём тривиально сделать. А когда гляжу в доки и примеры по pledge, то
слюни текут. Если capsicum-изация софта в FreeBSD идёт единичными
экземплярами софта в базовой поставке ОС, то использование pledge в
OpenBSD это прям десятки программ в день можно переводить. Конечно там
гранулярность правил не такая как в seccomp/Capsicum, но лучше чем
ничего и как же просто!
Теперь уже прям чувствую что понимаю как заморочена OpenBSD в плане
безопасности. Не факт что она там лучше, ибо возможно баги так себе
фиксят, и софт не лучший юзается, вообще древний GCC без всяких
security-aware фич, да и не все известные mitigation-ы внедрены -- но
идеи и течение мыслей в проекте и у Тео идут в нужном русле, сильно
опережая остальных во времени зачастую.
Sergey Matveev [Tue, 9 Mar 2021 18:43:37 +0000 (21:43 +0300)]
А без девок было куда спокойнее
Когда месяцами не вылазишь из дома, кроме как в магазин, где это
максимум где видишь женщин, и то в масках и спецодежде, то и влечение к
ним как-то сходит на нет. В период самоизоляции, прям бывает что вообще
ни разу за день не вспомнишь о них.
А сейчас я почаще стал выбираться на работу, вижу кучу женщин и в
транспорте и на работе и как же это сбивает с рабочего настроя!
Мне кажется я в какой-то мере понимаю монашескую жизнь: когда вокруг не
слышишь и не видишь живых девушек, то оно значительно спокойнее и
подтверждаю что мысли о них вообще могут не приходить. И ещё понимаю
буддийских монахов (или как их там?), которым запрещено прикасаться к
женщинам -- ибо по себе знаю как это выбьет любые мысли из головы. Как
же здорово что в нашем обществе и культуре не принято здороваться за
руку с ними.
Недавно на работе заходил разговор о том, что вот мы (мужчины) же
пялимся на них, отнюдь не не замечаем, но отчего ж не подходим
знакомится? Это женщины задали вопрос, считая что это вполне себе
нормальное явление. Мол где знакомиться? Но во время разговора же сами
же подтвердили что вряд ли согласились дальше пообщаться. А то вот и
чуть ли не хочется снова попытаться как-нибудь где-нибудь с кем-нибудь
познакомиться... но голова быстро напоминает что ничего кроме облома и
негативных эмоций не получишь в итоге.
Sergey Matveev [Tue, 9 Mar 2021 18:07:50 +0000 (21:07 +0300)]
arc4random
http://www.openbsd.org/papers/hackfest2014-arc4random/
Давно слышал про rand() и random() и про то, что они не безопасны. В BSD
системах есть arc4random*(), которые изобрели в OpenBSD. Я сторонился
этого вызова, ибо это же RC4. Но, оказалось, что RC4 в нормальных ОС
давно заменён на что-то более серьёзное, типа ChaCha20.
Reseed происходит на регулярной основе, но не при каждом вызове. А
ChaCha20 я доверяю на 100% что она хороший выхлоп создаёт, без яростного
потребления энтропии. В итоге мне всё больше нравится идея использования
этой функции вместо чтения /dev/urandom, с которым ещё и куча кода
нужна, ведь это же работа с файлами, требующая ещё и соответствующих прав.
Плюс скорость ChaCha20 такая, что её и не для криптографических задач
вполне можно использовать.
Не даром в man-ах советуют её использовать. А в OpenBSD, пишут, что она
де-факто везде и всюду и применяется. И надо читать на ARCFOUR, а
"A Replacement Call for Random".
Ах да, конечно же этот вызов, судя по всяким презентациям, есть везде,
кроме, конечно же, glibc.
Sergey Matveev [Tue, 9 Mar 2021 10:08:28 +0000 (13:08 +0300)]
Thread-safety and POSIX.1
http://www.unix.org/whitepapers/reentrant.html
Хорошая подборка предостережений при использовании POSIX.1 функций,
многие из которых не reentrant, не thread-safe для использования.
Sergey Matveev [Tue, 9 Mar 2021 10:02:29 +0000 (13:02 +0300)]
Недочитал "Аптекаря" Владимира Орлова
https://www.e-reading.life/book.php?book=42959
Осилил половину, но бросил, когда снова как будто всё пошло по кругу с
этой джинихой, хотя вот вот уже ведь и развязке бы быть. Чересчур
растянуто для меня, и понял что не настолько оно мне нравится, чтобы
продолжать чтение.
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)
Всякие супергеройские фильмы, по этим комиксам -- совершенно не любитель
смотреть. Чужда мне эта культура. Но вот этот фильм -- очень понравился!
Правда жутко мрачный, в общем-то ближе к ужастикам даже. Но и Уиллис
крут и Джексон! Опять же, на фоне последнего безумия в США, смотреть
фильмы с неграми можно зарекаться, ибо их будут сувать из-за политики,
но некоторым крутейшим актёрам, типа Джексона, всегда будет исключение!
И подана эта вся супергеройская тема с необычного ракурса, и концовка
ещё более стрёмная.