Sergey Matveev [Sat, 30 Nov 2024 20:42:52 +0000 (23:42 +0300)]
Сходил на "Реквием" Дж.Верде
https://en.wikipedia.org/wiki/Requiem_(Verdi)
Дико понравилось! Теперь я точно понимаю, что я реально поклонник оперы.
Не каждой (411cc4cd20be6c375c0cbb101330d1aa2fd7fae8), но на всём, что
было в "Новой опере" мне очень понравилось. Реквием -- это полностью
забитая сцена с кучей музыкантов (духовые, струнные, ударные), десятками
людей хора и четырьмя солистами разных тембров. Когда все хоры
(мальчиков и девочек) одновременно все вместе поют со всеми
инструментами, то это лютейшая мощь!
У меня уже взято несколько билетов на будущие выступления. Жду с таким
же нетерпением как и метал всякий.
Sergey Matveev [Fri, 29 Nov 2024 11:16:33 +0000 (14:16 +0300)]
Резка трафика до Hetzner
https://www.linux.org.ru/forum/admin/17790021
https://ntc.party/t/недоступность-hetzner/12845
https://www.linux.org.ru/forum/talks/17445997/
Не разбирался с 368af62f2ebf5bc933a4bd275cde01554defdb30, но увидел на
ЛОРе описание проблемы. Похоже это первая блокировка от РКН, которая
меня (ну точнее ресурсы которыми пользуюсь) затронула. Насколько помню,
абсолютно все остальные недоступности связаны с блокировкой на
противоположной стороне (не считая YouTube). Особенно в Германии любили
блокировать в первую очередь. Собственно, позже нашёл и новость о том,
что со всеми кто из РФ, в Hetzner перестанут иметь дело.
https://zips.z.cash/zip-0215
https://github.com/hdevalence/ed25519consensus
https://github.com/crpt/go-ed25519consensus-sha3-512
В 61da829407c441ca19642b915388999e21e2c739 упоминал, что с правилами
валидации ed25519 всё как в Linux -- зоопарк. А тут для Zcash они и
правила написали и свои библиотеки блюдут. Впрочем, "честно" сделанные
подписи везде корректно будут валидироваться, так что и без этого можно
прожить.
Sergey Matveev [Thu, 28 Nov 2024 12:53:14 +0000 (15:53 +0300)]
Monocypher о нужности Ed448
https://github.com/LoupVaillant/Monocypher/issues/127
В прошлой записи упоминал Monocypher, где мне не нравится его решение о
не строгой проверке подписей ed25519. Но у него увидел мнение об Ed448.
Оно полностью совпадает с моим: 25519 достаточно для долговременных
секретов, ибо пока нет прецендентов к его серьёзной поломке.
Единственное что его на данный момент, как ожидается, может поломать,
так это гипотетические квантовые компьютеры. Но если они появятся и
смогут поломать 256-бит ECC, то и Ed448 не долго останется существовать.
То есть, если с *25519 будут проблемы, то и с *448 тоже.
https://github.com/LoupVaillant/Monocypher/issues/248
https://loup-vaillant.fr/articles/monocypher-4
https://hdevalence.ca/blog/2020-10-04-its-25519am
https://cryptologie.net/article/497/eddsa-ed25519-ed25519-ietf-ed25519ph-ed25519ctx-hasheddsa-pureeddsa-wtf/
Существует много вариаций ed25519 алгоритма. EdDSA, Ed25519-IETF, RFC
8032, PureEdDSA, Ed25519ph, HashEdDSA, ContextEdDSA, Ed25519ctx. Зоопарк.
А ещё существует много конечных реализаций. Посмотрел на Monocypher.
Автор в своём блоге и GitHub issues размышляет о строгости проверок ed25519 и решает не делать очень строгих, в отличии от libsodium, из-за
которого не все подписи проверяются в каких-то там криптовалютах. Вообще
жесть конечно: используя другую реализацию ed25519, не все подписи,
казалось бы такой ответственной задаче как криптовалюты, будут валидны.
Мне Monocypher стал неприятен этим решением и подобными рассуждениями.
Автор хвалится, что у неё высокая совместимость.
Как по мне, так это из той же серии как и вопросы кодирования данных и
проверки напротив схемы. Куда ни посмотришь из ASN.1 DER декодеров --
строгих не видно. Или схемы не строгие дальше пойдут. Тоже, небось,
хвалятся высокой совместимостью? В мире криптографии, по моему, всё это
просто недопустимо. Невалидно? Идёт нафиг, иначе какой смысл проверок?
Sergey Matveev [Wed, 27 Nov 2024 10:08:18 +0000 (13:08 +0300)]
Более вдумчиво прочитал "Design and Implementation of the FreeBSD OS"
https://www.oreilly.com/library/view/design-and-implementation/9780133761825/
Книга то у меня эта давно, но просматривал по диагонали. А сейчас прям
что-то захотелось уже больше конкретики узнать о внутреннем устройстве и
алгоритмах FreeBSD ядра. Не потому что именно эта ОС так интересует, а
чтобы получше понимать как устроен современный матёрый не простой софт.
Вообще очень интересное чтиво, которое проливает больше света на
различное поведение конкретно FreeBSD. Бросается ещё в глаза то, что это
не просто 4.3/4.4BSD, но в ней здоровая часть (хотя, как пишут, почти
полностью переписанная) от Mach микроядра (типа вся подсистема
виртуальной памяти), плюс очень много всего из Solaris, даже без учёта
ZFS и DTrace подсистем. И я бы сказал что красиво разделено на всякие
слои их подсистемы (тот же CAM, GEOM).
Про Linux я мало чего читал (да и нет желания), лишь просматривал,
активно работая scroll wheel-ом, но не припомню чтобы там так же красиво
всё было бы спроектировано. Но, возможно не потому что так пристально,
возможно недопонял, и вообще даже не помню про какую именно версию ядра
читал (может вообще 2.4 или древнее).
Sergey Matveev [Wed, 27 Nov 2024 09:17:23 +0000 (12:17 +0300)]
Познакомился с щенком корги. Чувство времени у собак
У знакомых появился щенок корги. Никогда их не видел прежде, только
взрослых. Какие же щенки милые!
Почти каждый день по пути на работу, проезжая на автобусе до железной
дороги, у одного дома есть собака, которая вылазит (длина цепи позволяет)
за ворота и просто сидит, рассматривая весь проезжающий автотранспорт.
Не только я поворачиваюсь к окну, чтобы поглядеть не глядит ли на нас пёс.
Ещё слышал о таком факте, как отсутствие чувства времени как у нас. Типа
собаки не очень понимают прошло ли пять минут или пять часов. Поэтому,
вернувшись домой через пару минут, они будут рады тебе точно так же, как
если прошло пять долгих дней.
Sergey Matveev [Wed, 27 Nov 2024 08:38:03 +0000 (11:38 +0300)]
Продолжение истории с ru.NTPPool.org
https://habr.com/ru/companies/yandex/articles/861538/
https://habr.com/ru/articles/434422/
https://en.wikipedia.org/wiki/NTP_server_misuse_and_abuse 6d288158c77c3572a4550eac074000a833911971
Как оказалось, во всём виноват Yandex, а точнее их "Яндекс Станции".
Но я не очень понимаю тучу наездов на них в комментариях. Да,
облажались, но о них выражаются как о конченых нахлебниках. У меня нет
сомнений, что тот же mirror.yandex.ru, это огромная помощь Рунету.
Я вот что-то не могу найти точную статистику и информацию о том сколько
потребляют подобные зеркала софта, но судя по тому что пишут об NTP,
судя по тому как я какое-то время держал (и не выдержал :-)) BitTorrent
tracker, это всё довольно весомые нагрузки.
Sergey Matveev [Tue, 26 Nov 2024 19:28:28 +0000 (22:28 +0300)]
Топ игровых soundtrack-ов
https://www.youtube.com/watch?v=HlhUrvipnIk
Я вот музыку очень люблю, постоянно она в ушах. Но ни в фильмах, ни в
играх я её вроде бы особо не замечаю. Когда люди говорят про музыку в
фильмах, то я, как правило, даже примерно не помню была ли там какая.
Конечно есть исключения, типа "Беги, Лола, беги"
(a60cf2f9630808ac988185b0bcfd5478f74311df), где без музыки фильм будет
совершенно иначе восприниматься.
Но я так много играл в Fallout 2, что там каждую миллисекунду каждого
трэка знаю наизусть. И даже имя композитора помню (Марк Морган) и даже
узнаю его почерк и в других играх (1a3127583b1f762a39ee32a9907d68b1fee5d297).
Но один soundtrack для меня выделяется среди всех. Тот, что стоит у меня
уже который год в качестве ringtone -- заглавная тема серии point and
click adventure про Monkey Island. Вот прямо сейчас с ходу и кучу других
композиций оттуда могу вспомнить. b07c5380bed92966503f78db27a662683863e659
Sergey Matveev [Mon, 25 Nov 2024 18:32:09 +0000 (21:32 +0300)]
Закалка стекла и капля Руперта
https://habr.com/ru/articles/861216/
https://www.youtube.com/watch?v=4yjNbj7nJk0
Не знал про такое явление как "каплю Руперта". Любопытная штука.
Очень мне нравилось материаловедение в институте -- очень было
интересно, но "проходили" мы конечно в основном только конструкционные
металлы.
Sergey Matveev [Mon, 25 Nov 2024 09:54:23 +0000 (12:54 +0300)]
Почему Solene'% ушла с OpenBSD
https://dataswamp.org/~solene/2024-11-15-why-i-stopped-using-openbsd.html
https://flatkill.org/
Этот человек довольно известен в определённых кругах, там где всякий
минимализм, suckless и подобное. Но она ушла с OpenBSD.
* (не)поддержка всякого железа -- ну тут всё понятно и ясно. Но лично
мне, вопрос работоспособности Bluetooth или игровых контроллеров,
выглядит странным
* Solene говорит про то, что во время крахов системы, которые случаются
не то чтобы редко, происходит потеря и порча данных на ФС. Я вот
прежде регулярно удивлялся: почему и как у людей этого не происходило
раньше, ибо в OpenBSD FFS же ни журналирования, ни soft updates.
Видимо, потому что люди дают разные задачи и нагрузку. Кто-то говорил
что у него и на ext2/3/4 ничего не терялось, что полностью противоречит
моему опыту. Кто-то говорил, что на UFS данные терял постоянно. Я за
более чем 10 лет ни разу ничего на ней не терял, но там хотя бы soft
updates был. То что FFS может быть надёжной -- никогда не поверю,
чисто технически. Solene подтверждает
* Далее говорит про контейнеризацию и возможность изоляции процессов.
Да, OpenBSD ничего из этого не имеет, в отличии от FreeBSD. Этот
недостаток я и сам прежде замечал. Нет ничего похожего на auditd и
SELinux -- с чем тоже согласен. И всё это вызывало недоумение про
постоянно читаемую мантру о безопасности OpenBSD. DOS тоже куда более
безопасен может быть, спору нет
* Она правда считает flatpack благом, как и systemd
Я уже давно убедился, что OpenBSD ни в коем случае не мог бы
рекомендовать с чистой совестью. Когда начинал писать на Си и хоть
как-то разбираться в средствах защиты типа ASLR, pledge и вообще всех
тем рядом с этим, то много чего начитался про OpenBSD, и попробовал. Не
то чтобы они где-то врут или недоговаривают, но даже их банальный "only
two remote holes in default install" говорит только про default install,
в котором sendmail MTA. Ну блин, да первым же делом многие будут менять
этот MTA на что-то более человечное -- и вот уже и не default install.
Средства защиты процессов имеются, спору нет, но нет firewall-а
системных вызовов или других подобных "ограничителей" для программы. Нет
контейнеризации. То есть, их софт -- безопасен, но вот сторонний (не
обязательно сразу же проприетарный или закрытый) при негожем поведении
может больше проблем сделать чем под FreeBSD или GNU/Linux. Как уже выше
было сказано, нет ничего типа AppArmor, SELinux, MAC (из FreeBSD). Нет
даже надёжной ФС, что для меня, скорее, является первой проблемой в этой
ОС. Даже фиг с потерянной производительностью, которая в разы может быть
хуже чем в других ОС (проверено на практике, чисто прикладном
многопроцессном софте). Я много и часто слышу аргументы про безопасность
OpenBSD, где не раскрываются деталей как именно, где и в чём она
безопаснее. И в то же время не слышу аргументов против FreeBSD или
NetBSD. Их, как правило, просто не рассматривают и сравнивают только
"GNU/Linux vs OpenBSD". Да, FreeBSD кодовая база куда больше -- ну так и
умеет куда больше. Один ZFS это колоссальный по размерам пласт кода.
Лишний? Ну да, давайте надёжную ФС считать лишней. Опять же, спору нет:
для маршрутизатора, который может и ничего не писать на протяжении почти
всего времени жизни -- это может быть и допустимо. Но так можно дойти и
до того, что и сетевой стэк тоже может оказаться лишним, ведь без него
уж явно куда безопаснее. DragonFly BSD вообще выпилила IPsec например.
Я много что уважаю в OpenBSD, она невероятно ценна была идеями, но
пригодна всерьёз только для ряда узкоспециализированных задач.
Sergey Matveev [Sun, 24 Nov 2024 11:38:48 +0000 (14:38 +0300)]
Почти нет серверов в ru.NTPPool.org
https://habr.com/ru/articles/860828/
А я вот давным давно перестал использовать ru.NTPPool.org, ибо в нём
постоянно, судя по (PTR) имени IP адресов, попадались всякие VPS-ки в
зарубежных облаках. Я хочу только российские IP, чтобы внутри наших
сетей были. Ну и тоже задавался вопросом: а почему наши провайдеры то у
себя NTP не поднимают? Я проверял нет ли в DHCP ответах намёков на них
(например на работе наш DHCP указывает предпочитаемый NTP).
Sergey Matveev [Sun, 24 Nov 2024 11:36:49 +0000 (14:36 +0300)]
RIP BGP
https://habr.com/ru/articles/860790/
Статья о том, что и без всяких SRv6, "классическим" подходами можно
обходится. В конце автор убеждает, что и RIP протокол более чем тоже
пригоден. Вот только, в нём нет возможности из коробки передавать IPv6.
Sergey Matveev [Fri, 22 Nov 2024 11:56:55 +0000 (14:56 +0300)]
Поаудиофилил на работе
Коллега задал какие-то вопросы про неведомые для меня Grado наушники,
ЦАПы и всю эту тему. Всё это было у него на работе. Я напросился
послушать как это всё звучит, на моей музыке. У меня то, как я считаю,
звуковая система consumer grade, ибо ЦАП от Asus, усилитель и наушники
от Beyerdynamic, который на слуху.
И... был разочарован, ибо ни в какое сравнение с моим звуком оно всё не
шло. Предложил своё принести для сравнения. Больше часа провели,
перетыкая мои, двое Grado, через два усилителя, два ЦАПа. На Joe
Satriani, Metallica St.Anger (8bcb37d67722216274ff337c6d5f59a6a0e4f0dc),
Meshuggah, ещё каком-то металле, Рахманинове.
Выводы все сделали такие: ЦАП не главное (или не такая существенная
разница), главное -- усилитель. Всё упёрлось в него. И мой A1 и
встроенный в Asus (но тянущий 600Ом) -- хорошо и там и там, но главное
чтобы они были.
А ещё колоссальная разница была на Grado от смены амбушюр, который
подальше держат динамики от ушей. 500₽ и качественный gain к качеству :-)
Sergey Matveev [Fri, 22 Nov 2024 11:47:47 +0000 (14:47 +0300)]
ReiserFS, Bcachefs, драйвера Tuxedo в Linux
https://www.opennet.ru/opennews/art.shtml?num=62276
https://www.opennet.ru/opennews/art.shtml?num=62274
https://www.opennet.ru/opennews/art.shtml?num=62251
Полный новостей день. Удалили ReiserFS из Linux. Ну тут то ok -- если
никто не поддерживает (Ганс всё ещё сидит, в любом случае), то понятно.
А разраба Bcachefs забанили в Linux, потому что всякие нажаловались на
его "Get your head examined. And get the fuck out of here with this shit".
И будущее этой ФС теперь под вопросом. Лично я то не то чтобы переживаю
за Linux или, тем более, файловые системы в нём, где всё плачевно (и
вроде бы за всю историю именно только ReiserFS и был достойной штукой,
написанной для Linux), но накалы страстей...
А ещё в Linux, как было, так и остаётся полно бинарных блобов (что стоит
считать закрытым ПО). Linux-libre проект старается решить эту проблему.
Но вылезла другая: драйвера для ноутбуков Tuxedo не то что свободны, но
вообще под GPLv3, что я яростно одобряю, особенно для драйверов.
А ещё кто-то предложил не самый свежий микрокод считать "уязвимым". Это
вообще тот ещё бред: типа новые прошивки априори более безопасны? Да,
так считают поставщики всякого этого проприетарного ПО, а наивные им и
верят.
Sergey Matveev [Fri, 22 Nov 2024 07:56:28 +0000 (10:56 +0300)]
Мой провайдер режет трафик до Германии
Где-то с неделю назад, что-то типа двух дюжин блогов (Atom) из дома у
меня не доступны. А на работе без проблем. Причём ping-и идут (судя по
времени -- вроде бы честные), но TCP до какого-либо порта уже нет.
traceroute показывает, что дальше первого же hop-а провайдерского ничего
не идёт. А whois-ом увидел, что какой из недоступных сайтов (точнее их
IPv4 (с IPv6 проблем не было)) не возьму, то он в Германии находится.
Sergey Matveev [Wed, 20 Nov 2024 09:02:07 +0000 (12:02 +0300)]
pedantic.software
https://pedantic.software/
Ещё одна философия создания ПО про простоту и минимализм. Топят за C89,
где объявление переменных в начале функций это фича, а не бага. А я вот
вовсе не хочу писать в таком виде -- это бесчеловечно.
Sergey Matveev [Tue, 19 Nov 2024 19:11:41 +0000 (22:11 +0300)]
Качество ответов ChatGPT
https://habr.com/ru/companies/sberbank/articles/859628/
В статье выкладывается теория о том, что бОльшую часть информации в
Интернете делают машины.
За последние недели мне неоднократно кидали ответы ChatGPT на самые
разные вопросы, по ИТ теме. По сути ни на один вопрос нормально ответа
не было дано. Скорее попахивало чем-то правдивым и вменяемым, но детали
люто искажены и лживы. И первым делом хотелось сказать что он выдаёт
статьи уровня паршивых на Хабре, когда, как будто, по паре предложений
из Wikipedia, человек пишет здоровую статью, но с таким лютым бредом, с
такой неразберихой и путаницей в деталях, что ничего, кроме как делать
palmface не приходит на ум.
Sergey Matveev [Tue, 19 Nov 2024 19:03:15 +0000 (22:03 +0300)]
Посмотрел "Любовное настроение"
https://ru.wikipedia.org/wiki/Любовное_настроение
Ещё на прошлой неделе. Здорово и необычно снят, очень много медленных
сцен, но которые вовсе не хочется проматывать. В отличии от скачущих
коней в "Властелине колец". Конец я правда не особо понял, не уверен.
Интересно и на быт китайцев посмотреть.
Sergey Matveev [Mon, 18 Nov 2024 09:12:11 +0000 (12:12 +0300)]
Сон про неуспеваемость
Жесть как я на нервах в последнее время. А сегодня приснился такой сон.
Я в квартире родителей. Их дом выстроен как-бы неким полукругом, с
большим пространством во дворе. В нём стоит огромная (Rammstein
позавидует!) сцена, на которой уже начали играть Tristania с Vibeke
Stene (66808d71341e0318adbec1ad9cc1ac4bddd58d4f). Почему именно эта
группа? Потому что днём назад я переслушивал их альбомы. У меня есть
билет на их концерт и билет я подарил тёте. Почему ей? Потому что
позавчера я для неё взял билет на один концерт в Королёве. Концерт уже
как с полчаса идёт и я тороплюсь спустится на первый этаж и дойти эти
несколько сот метров до концерта. Как оказалось, концертный зал на
территории какого-то предприятия, где, как издалека гласит плакат,
передвижение разрешено только на самокатах электрических. Прям вот таких
как в Москве полно. Я про себя думаю: то есть, без смартфона, я не могу
дойти до зала, ибо запрещено пешком? Билет у меня есть, никто не
предупреждал о такой засаде. Подхожу к КПП. Проверяют билет. Проверяют
одежду. Ведут дальше куда-то проверять. Сканируют какими-то
устройствами. Я как-бы немного на взводе, ибо концерт уже с полчаса как
идёт, охрана прекрасно это знает, но крайне неспешно всё проверяет.
Далее девушка, которая проверяет билет, снова по каким-то коридорам
ведёт на очередные проверки. Я стараюсь спокойной спросить, мол долго ли
ещё, много ли ещё проверок? Ответила, что 34. Я понимал: терроризм,
массовое собрание людей, безопасность, всё понимаю, но не... 34 проверки
же! Пока идём, она неспешно какие-то удлинители подключает, какой-то там
свет, явно не нужный ни для чего связанного со мной. Я начинаю
заводиться, но без грубых слов намекаю, что, может быть она побыстрее со
мной разделается, а удлинители можно будет отложить на потом, концерт то
уже идёт, тётя не раз звонила узнать когда я приду то. Ну и проснулся, с
негодованием от того, что эта девушка явно специально тормозила,
задерживала меня.
А у меня как-раз в пятницу подкинули крайне срочную работу. В
воскресенье целый день работал, но это даже не треть от выполненного
объёма. Сегодня подходил коллега с вопросом "сегодня не будет ли
готово?. Плюс ещё наложилось, что даже из другой компании один человек
неоднократно выразил сомнения в моей компетенции и квалификации как
программиста. Новости про современные собеседования и условия труда
(4cc592ae341b800dc36b7b904c4175abb0fc5bd1). А ещё коллеги сомневаются в
том, что ответ на мой частый вопрос на собеседованиях "по каком
протоколу работает Интернет" типа "IP", "TCP/IP", "IPv4/IPv6" является
корректным. И буквально через несколько минут после этого, другой
коллега отметил, что в одном из коммитов я вообще забыл добавить .[ch]
файлы, которые упорно у меня в git status вполне себе показывались. То
есть 4 дня я был настолько невнимателен, что даже забывал закоммитить
код, хотя всё это время находился внутри проекта. В общем, я на полном
взводе и уже уверен, что в ИТ мне делать более нечего. Я уже совершенно
не пригоден для выполнения задач. И в серьёзном конфликте месячной
давности (34780e342dd2489e684bab3bc927c1eae632d554) мне коллега тоже
сообщил, что моя работа нихуя ничего не стоит.
Sergey Matveev [Sun, 17 Nov 2024 07:58:10 +0000 (10:58 +0300)]
Собеседования на работу
https://www.youtube.com/watch?v=KSU36bAPYWM
Недавно один знакомый в пять компаний проходил собеседования. Везде было
только удалённое общение. Про себя я делаю вывод, что без проприетарного
ПО это не пройти. Но я не задавался вопросом, не проводят ли они и в живую
их, или это уже не вариант. Знакомый про какие-то "скрининги" и
"лайвкодинги" упоминает. Если второе по названию я ещё наверное могу
представить что такое, то первое для меня не ведомо. То есть, я даже не
понимаю о чём речь и что это за этапы собеседования. 10 лет назад ни о
чём подобном не слышал и как-то собеседовали же людей.
Где-то разрешено только за их ноутбуками с их установленной ОС работать.
Я бы понял чтобы такое было в оборонке, там где секретность и прочее. Но
речь про просто торговую компанию. Я вот вряд ли бы смог себя пересилить
и согласиться на такое. На другом железе -- ну ok, ладно. Но чтобы чисто
под чётко заданную ОС (типа наверное какой-нибудь Ubuntu), которые
меньшинство умеют администрировать и вообще понимают их устройство? Не
бывает инструментов одинаково или приемлемо удобных для всех людей.
Я понимаю, что на одной чаше весов -- гомогенные системы, где если у
одного что-то завелось, то и у другого из-за идентичности окружения тоже
должно. Но тот факт, что за всё время использования тебе будет яростно
неудобно и из-за этого эффективность будет страдать? Посидеть за
Блокнотом (VSC, whatever) пять минут ещё можно, допустим даже день, если
оказался в дерьмовой ситуации. Но не целыми же днями работать за
неудобными? Опять же, если не отталкиваться от секретности и подобных
вещей, где и пишущие машинки вместо ПК станут адекватным решением.
Я конечно не знаю как мой собеседник отвечал на вопросы, какие они были.
Без деталей. Но где-то его мурыжили и в итоге отказывали без объяснения
причин (хотя и не спорю, что и не обязаны их оглашать). И речь и про
крупные известные компании и какие-то маленькие. Создалось впечатление,
что как-будто специально строят преграды, чтобы ты расхотел к ним идти
работать. А потом ещё ноют, что не найти работников.
Или же это последствия того, как много стало в ИТ сфере нечестных
претендентов? Как-то мне скидывали видео на болтовню (не слушал, а
распознал и читал текстом, а то это длится 2ч) про, так называемых,
волков. Где платные услуги по тому, чтобы ты прошёл собеседование, а
потом пускай хотя бы n-месяцев продержишься, пока тебя с трудом не
уволят (ибо это дело не простое для работодателя).
Такая вот мысль проскакивает: а не дофига ли поблажек и плюшек дают
ИТшникам, из-за чего всякие "волки" создают лютый шум и проблемы
работодателям, из-за чего им приходится отсеивать хоть что-то
соображающих разработчиков (а я вообще бы не попал на собеседование,
судя по всему)? Сделали ИТ сферу лакомым кусочком, теперь не знают как
отбиться от роя налетевших прихлебателей, создавая барьер и так для
немногочисленных специалистов? Впрочем... мой знакомый таки устроился, и
именно в компанию где "будешь работать за чем скажем". Так что, видимо,
проблемы не в компаниях, а том, что современный ИТ всем отличается что
было 10+ лет назад. Даже зарплаты: в некоторых местах за junior-а платят
в разы больше чем за senior-а в мне известных (российских) компаниях.
Sergey Matveev [Sun, 17 Nov 2024 07:51:38 +0000 (10:51 +0300)]
Про "лучшие практики"
https://www.arp242.net/best-practices.html
Недавно в одной переписке с другом тоже упоминались лучшие практики. И я
почти то же самое написал что и автор этой статьи. К ним можно/нужно
прислушиваться, но нельзя брать на слепую веру. Новички по началу могут,
но вообще должны учиться пользоваться головой и понимать, что где-то
могут быть куда более разумные исключения. "Не используйте глобальные
переменные" (простые небольшие программки бывает быстрее и проще
написать с ними), "не используйте GOTO" (который при правильном
использовании может существенно улучшить читабельность кода, поэтому в
Go его не выкинули), "DRY" (примеров, когда проще скопировать кусок
кода -- полно), "SOLID" (не редко приводит к необратимым последствиям
недуга "ООП головного мозга", когда пара строчек простейшего кода может
превратиться в двести, без какого-либо profit-а, кроме усложнения на
пустом месте), "12 factor app" (даже не слышал про такое прежде, но,
вижу что сборник, действительно, адекватных рекомендаций, аналогично
SOLID).
Sergey Matveev [Thu, 14 Nov 2024 20:33:39 +0000 (23:33 +0300)]
Quake 2: Зов машины
https://www.youtube.com/watch?v=fi2INJJbNFo
Крайне (почти нет) мало игр которые меня захватывают во время просмотра.
Просмотрел абсолютно все уровни проходимые этим человеком. Играет на
nightmare, очень хорошо. Конкретно эта ссылка -- самый финал. Ничего
кроме адреналина нет, особо больше нечего смотреть. Но в предыдущих
эпизодах ОЧЕНЬ интересные уровни! Прям наслаждался как они спроектированы
и как выглядят. Интересные трюки и механики. Хотя я не и за "рулём".
Автор ролика говорит, что 10/10 оценку игре поставил бы. Однозначно
солидарен с ним, хоть я и не играл, но оценить могу, ведь всё же в
подобные FPS я играл много.
Sergey Matveev [Thu, 14 Nov 2024 19:50:52 +0000 (22:50 +0300)]
Новый механизм подписей на PyPI
https://www.opennet.ru/opennews/art.shtml?num=62234
https://blog.pypi.org/posts/2024-11-14-pypi-now-supports-digital-attestations/
https://blog.trailofbits.com/2024/11/14/attestations-a-new-generation-of-signatures-on-pypi/
https://peps.python.org/pep-0740/
https://blog.trailofbits.com/2022/11/08/sigstore-code-signing-verification-software-supply-chain/
В прошлом году они убрали (b3b47ad4d00d6daefad47943d8f4eaafadfd4bed)
поддержку PGP подписей, сделав невозможным "передачу" доверия напрямую
от автора конечному пользователю пакета. Теперь же они сделали систему,
построенную вокруг X.509, Certificate Transparency и OpenID Connect
третьего лица.
Sergey Matveev [Thu, 14 Nov 2024 09:36:15 +0000 (12:36 +0300)]
SMB хранилище на Astra Linux
https://habr.com/ru/articles/858080/
Автор хочет развернуть SMB-хранилище на Astra. И даже для такой задачи,
лучше ZFS, не нашлось. Недавно (80a3d2a50fcd3ee4172e43c2547b7fd019fdc1d9)
я хотел было пробовать ZFS на ней, но ядро просто паникует после загрузки.
В статье автор написал, что на не самом свежем ядре у него заработало.
Касательно его настройки ZFS: немного недоумеваю от его выбора
recordsize, в 16 и 8 KiB. Речь же про хранение файлов, а не СУБД или
виртуальных машин. Очень странный выбор такого маленького размера, что
вообще сильно негативно должно сказаться на производительности.
Впрочем... включение дедупликации ещё сильнее, скорее всего, её убьёт.
Sergey Matveev [Wed, 13 Nov 2024 08:09:21 +0000 (11:09 +0300)]
Форматы тезисов на открытой конференции ИСП РАН
https://www.isprasopen.ru/
Хочешь выступить -- отправь им тезис. Но для него предоставляется только
Microsoft Word шаблон. Который, очевидно (и благо!), в нашей стране нельзя
легально как-то приобрести. При этом, для докладов на английском языке
есть LaTeX шаблоны.
Sergey Matveev [Mon, 11 Nov 2024 12:46:15 +0000 (15:46 +0300)]
Ещё больше комнат в квартире
В 2a901a3bc832f0936979328c6527ccdc493cbaa7 я писал о том, что мне не раз
снилось, как у меня в квартире внезапно появляются новые комнаты. Так
вот после конфликта на работе, буквально через считанные дни, мне вновь
приснилось. На балконе внезапно для себе обнаружил шторки. Не мог понять
почему я их раньше не замечал и где они скрывались? Гляжу, а между окном
и стеной есть проём, в котором они прежде и прятались. Но он достаточно
широк оказался, чтобы я мог протиснутся в него. Проделав это, обнаружил...
ну конечно же ещё одну здоровую такую комнату пустую. Если в ряде снов
комнаты были полностью меблированы, то тут абсолютно голая.
Вообще, пытаюсь вспомнить есть ли у меня регулярно повторяющиеся темы в
снах. С ходу вспоминаю, что в детстве, когда был в детском саду, то мне
не раз снилось как я в одном и том же магазине на пр-те Королёва
потерялся и не мог найти маму, просыпаясь от страха. В подростковом
возрасте я очень много летал. Говорят, что если летаешь во сне, то это
типа растёшь.
На протяжении последних 10+ лет, мне гарантированно 2-3 раза в год
снится одна девушка, с которой я полжизни провёл вместе: на дошкольных
подготовительных занятиях, на протяжении всей школы от начальных до
старших классов, на дополнительных занятиях по английскому. С момента
выпуска, наши пути разошлись и в течении 5-6 лет мы случайно в
транспорте пересекались наверное от силы пару раз с того момента.
Ну и сейчас вот зачастившая тема с дополнительными комнатами в моём жилье :-)
Sergey Matveev [Mon, 11 Nov 2024 12:14:45 +0000 (15:14 +0300)]
Треть SIM-карт дают доступ к чужим учётным записям
https://xakep.ru/2024/11/08/sim-danger/
На практике показали ущербность идеи аутентификации через SMS.
Ибо за одним номером может стоять далеко не один человек.
Sergey Matveev [Mon, 11 Nov 2024 12:13:13 +0000 (15:13 +0300)]
go.work
https://go.dev/doc/tutorial/workspaces
Уже который месяц использую "go work" функционал в Go. Безумно удобно,
если есть подходящий use-case. Например использование ещё не готового
для go get модуля. Это как git worktree -- не всегда есть use-case, но
когда он появляется, то нарадоваться не можешь удобству.
Sergey Matveev [Sun, 10 Nov 2024 18:41:21 +0000 (21:41 +0300)]
Сходил на Баха с Вивальди
Снова (6dfb34781bc52cf88db6db7a4c08c4fb176afcc4) сходили на "Виртуозов
Москвы" Владимира Спивакова. В этот раз исполняли Баха и Вивальди. С
почти выключенным светом, специально концерт в темноте.
Понял что подобная симфоническая музыка -- не моё. Слишком "мало звука".
Нет ударный, мощных инструментов. Не чета тому, что на операх. И ни в
какое сравнение с музыкой Рихарда Вагнера там.
Sergey Matveev [Sun, 10 Nov 2024 18:36:49 +0000 (21:36 +0300)]
Поиграл в "Эпичную схватку боевых магов"
Подарили сабжевую карточную игру. "Битва на горе черепламени".
Поборолись вчетвером. Интересная штука. Порог вхождения очень низкий.
Просто из карт надо составлять заклинания, дальше оценивать очерёдность
хода и применять что написано на картах, чтобы побить остальных и
полечить себя.
Sergey Matveev [Sun, 10 Nov 2024 11:56:59 +0000 (14:56 +0300)]
Проверка пустоты списка по PEP8
https://blog.codingconfessions.com/p/the-pythonic-emptiness
Что-то я не помню чтобы в PEP8 были такие вещи. Советует
if arr, вместо if len(arr). У нас было принято как-раз
if len(arr) == 0 писать, ибо это ясно, чётко и явно.
Sergey Matveev [Fri, 8 Nov 2024 08:08:03 +0000 (11:08 +0300)]
Cloudflare, ECH, РКН
https://habr.com/ru/news/856928/
https://habr.com/ru/news/856354/
Чего все так разорались по поводу проблем с доступностью Cloudflare?
РКН конечно те ещё редиски, ибо блокируют не технологию/протокол обхода
блокировок, а технологию повышения приватности. Tor -- вот это обход
блокировок. А ECH это костыль к TLS (который тоже по сути является
костылём созданным из-за недостаточно быстрого внедрения IPsec с IPv6).
Проблема не с ECH, а с TLS, который исторически отсылает SNI в открытом
виде. Как, собственно, и SNI это ведь тоже костыль, связанный с не очень
быстрым внедрением IPv6.
Но ECH мне как не нравился, так и не нравится. Хочется зашифровать
handshake? Ну так поменяй протокол, сделай как старом древнем IKEv2, где
почти всё, сразу же после первого roundtrip, зашифровано. А не городи
костыль на костыле, ещё и с привлечением DNS, DNSSEC небось (лень
проверять). Ведь TLS 1.3 существенно отличается от всех предыдущих --
почти полностью иным образом устроен. Впилили же без проблем? Не
проблема же поменять его кардинально?
Но и Cloudflare та ещё параша. Почти всё что за ним размещается:
становится недоступно для web-обозревателей -- зачастую нужен
JavaScript, cookie, прохождение CAPTCHA. Если же он не даст тебе доступ
к ресурсу по этим техническим причинам, то не допустит из-за того что ты
из РФ/РБ. Плюс это, просто навсего, банальный такой большой MitM от США.
Если кто-то использует Cloudflare, то он и так уже давным давно
недоступен по одной из вышеназванных причин. Поэтому чего переживать?
Кто-то, кто из наших стран использует MitMed систему, позволяя скачивать
и выполнять произвольный код на своём ПК, потеряет возможность это делать.
Я вижу в этом перевешивающие плюсы. Много говорят о бесплатности Cloudflare.
Забывая, что бесплатный сыр только в мышеловке бывает. Не РКН отрубает
первым делом доступ к ресурсам, а сам Cloudflare уже задолго до СВО это
делает. Видимо, всё что остаётся -- это какие-нибудь явные анти-РФ/РБ
ресурсы, которые РКН и затронет.
Другой новостью было то, что РКН собирается что-то типа своего RPKI
делать. И опять же: не он первый начал рубить маршруты и всячески
вредительствовать нашим странам. Не он балканизирует Интернет, а Запад
уже много лет назад. Вроде бы, единственную блокировку которую я
встречал от РКН, был rutracker.org, наверняка из-за Михалкова
какого-нибудь. Все остальные ограничения -- со стороны сочувствующих
нацистам. РКН же в данном случае, как и в случае с нашей системой DNS,
просто заранее подстилает соломку и старается минимизировать ущерб от
очередных атак и зловредных действий.
Sergey Matveev [Thu, 7 Nov 2024 21:02:45 +0000 (00:02 +0300)]
На работе всё получше
Пару недель назад произошёл мощный конфликт на работе, как никогда.
И была серьёзная вероятность и готовность чтобы уходить. За это время,
пообщавшись с толковыми людьми, стало понятно, что конфликт был
катализатором других процессов в моей голове. Это не отменяет его
серьёзности и что меня с оппозиционной стороной рассадят подальше,
конечно же.
Но вопросы и думы о том, что делать дальше, чем заниматься, боязнь ряда
вещей -- это уже, как мне сказали, ближе к теме кризиса среднего
возраста, выгорания и всякого подобного. Убедили, неопровержимыми
аргументами, что уйдя отсюда -- почти гарантированно не будет лучше и в
любом другом месте при моём текущем состоянии. Предупредили, что дальше
будет ещё хуже и тяжелее (в голове моей) какое-то время.
Посоветовали повременить с какими-либо действиями бесповоротными. Но
оказалось, что речь не про 1-2 недели, как я подозревал, а про полгода.
Так сказать, санкции ко мне не применили, но убедительно попросили не
вестись на провокации. Что в наше время, действительно, крайне важно. Я
стал куда сдержаннее и спокойнее на два порядка чем был десять лет назад
(знакомые подтверждают), но ещё не до предпочтительной степени.
Sergey Matveev [Thu, 7 Nov 2024 08:25:32 +0000 (11:25 +0300)]
Устаканился формат кодирования YAC
Время от времени какие-то правки в формат кодирования этого кодека я
вносил чуть ли не каждую неделю. Чем дальше, тем меньше, ибо формат
более чем удовлетворителен в каждой мелочи.
Вот только кодирование int-ов меня напрягало. А ведь, казалось бы, самая
такая простая и базовая вещь в компьютерах, которые с числами и работают.
Закодировать фиксированной длиной: может быть большой overhead.
Закодировать с выбором длины (8, 16, 32, ...): тоже неплохо, но нет
bigint-ов. В тэге есть много места и напрашивается возможность вшивания
и длины и маленьких значений int-ов в него. И так у меня долгое время и
было: длины int-ов от 1 до 16 вшивались, и значения до 32-х тоже.
Не давала покоя мысль о том, что берёшь Tcl, берёшь Python -- и там
везде int-ы без ограничений по умолчанию. В MessagePack bigint-ов нет.
В CBOR они эмулируются через тэг добавленный к строке (тоже по сути нет).
Но раз YAC заявляет, что может заменить прозрачно JSON, то значит bigint
обязателен. Ввёл ещё 8 и 64-бит кодирование его длины. Вышло так, что
для кодирования int-а есть аж четыре разных способа в итоге. Перебор и
безумие. Хотя, да, компактно.
Всё это надоело и пришёл к следующему: оставляю только bigint
кодирование, сделанное в виде обычной уже существующей бинарной строки,
перед которой тэг указывает что это положительный или отрицательный int.
По факту -- как в CBOR, но только у меня нет тэгов, а это просто особое
кодирование int-ов. Тэги CBOR ой как не все поддерживают. 0/-1
кодируются двумя байтами. До 256 -- тремя. Не так компактно как было, не
так как в MessagePack или CBOR. Но схоже с ASN.1 BER. Зато экономнее
всего по коду, плюс появились bigint-ы, прозрачные для использования в
Tcl/Python.
И вот сейчас я полностью удовлетворён кодированием. Надо только тестами
уже покрыть это всё.
Sergey Matveev [Tue, 5 Nov 2024 18:08:26 +0000 (21:08 +0300)]
CMS от ФНС
Получил по почте один документ от налоговой. К которому приложена CMS-ка
(.p7s). И... один из сертификатов в ней не валиден с точки зрения ASN.1
X.509 схемы. Ну не работает ни X.509, ни ASN.1! Либо вы делаете не
строгие DER декодеры и схемы без кучи условий, либо у вас то тут, то там
не будут валидироваться документы/форматы, созданные всяким дрянным ПО.
Sergey Matveev [Tue, 5 Nov 2024 07:32:22 +0000 (10:32 +0300)]
Удобство Сбербанка
Сегодня, при оплате квартиры, после ввода PIN-а, банкомат
поприветствовал меня, показав большими буквами моё имя. Вот какого чёрта
им надо выдавать эти данные обо мне, чтобы окружающие могли с экрана
увидеть? При этом, если они так хотят сделать удобно, то:
* какого чёрта, учитывая что я через банкомат оплачиваю ежемесячно
квартиру, пополняю изредка сотовый и Интернет, ещё реже оплачиваю
домены, то среди им предлагаемых услуг/организаций *никогда* нету
кварплаты?
* при вводе номера квитанции, он не переключает клавиатуру на цифры,
хотя кроме них ничего не допустимо в этом контексте
А если вспомнить все мои предыдущие истории общения с ним
(2d02e4957900946c6ca10ea0b8ac8162ededc40f, 11dbf22326811dc02a84e89fcba25afa195d0454, 71d4d1391ad542b1c2ae9d8c976ac4f769303abc).
Ещё я что-то в блоге не нашёл наиболее запомнившуюся мне историю.
Заставили нас на работе получить банковские карты Сбербанка, чтобы
отказаться от выдачи зарплаты наличкой. Я был одним из последних кто её
получал таким образом. Приехали их сотрудники и засели в одном из
кабинетов. Вызвали людей к ним. Простоял час в очереди. И это на рабочем
месте же по сути. Когда подошла моя очередь, то сел к их сотруднику и
вижу, что на A4 листке со списком ФИО, моё имя подчёркнуто/обведено.
Сказали что что-то не в порядке с моими паспортными данными и пускай я
дую к ним в отдел. Полтора часа времени потрачено впустую и ещё мне
куда-то надо переть чтобы получить карту нафиг мне не нужную. А перед
этим ещё надо было, кстати, заполнить бланк, где присутствовал пароль.
В другой день явился к ним отделение. Проблем не было, кроме того, что
про бланк с паролем они ничего не знают и давай-ка я на месте его снова
буду придумывать.
Через какое-то время снова к нам являлись сотрудники Сбербанка и все мы
проходили через них. Что-то я уже вообще не помню зачем и чего они
спрашивали. Один только вопрос запомнился: мой номер телефона. Диктую:
+7-495-.... Сотрудник попросил сотовый. Говорю что нет. Его лицо
выразило искреннюю полную растерянность. Он встал и пошёл к старшему,
сидевшему неподалёку. Говорили они тихо, но всё равно слышал что "у него
нет ...", "ну а что поделать? отпускай так". С того дня я уже мог бы
сбиться со счёта сколько раз коллегам названивали оттуда со всякой
рекламой и предложениями.
Sergey Matveev [Mon, 4 Nov 2024 07:34:09 +0000 (10:34 +0300)]
Итераторы в Go
https://eli.thegreenplace.net/2024/ranging-over-functions-in-go-123/
Сам я только читал в нескольких статьях про них, но не пробовал
использовать и ещё не видел в чужом коде (впрочем, как и generic-и,
кроме родной библиотеки). В этой статье очень просто и понятно описано
что это и как пользоваться.
Sergey Matveev [Mon, 4 Nov 2024 07:13:14 +0000 (10:13 +0300)]
Kerberized NFS
https://blogsystem5.substack.com/p/demystifying-secure-nfs
Как-то (8c06f231834997791621ae1bc3efae3dbb29956d) я пытался настроить
NFS с использованием Kerberos. По факту я ни разу в жизни не использовал
Kerberos, кроме как поднимания центра и получения билетов (tickets), но
не более того. С NFS у меня ничего не вышло. Я грешил на то, что у меня
была 12.x версия, которая была с массой багов на тот момент (я годами не
обновлялся). Но я вроде бы точно ничего не делал касательно GSS, как это
указано в статье. А в ней и написано про скудность документации по этой
теме. Из-за отсутствия опыта и очевидности того, что ядерный NFS как-то
должен общаться с Kerberos (по аналогии с IPsec↔IKE), я и не вспоминал
про GSS-демона.
Не уверен что я снова хочу повторять попытку сдружить NFS с Kerberos,
так как я просто ограничиваю firewall-ом IPv6 сеть которой дозволено
ходить к NFS. И трафик этой сети может ходить только через WireGuard
(IPsec когда-то). Факт возможности обмениваться трафиком из этой сети
означает что машина аутентифицировалась в VPN-е, что авторизует её
доступ к NFS. Не скажу что я доволен этим решением, оно не изящно, нужно
помнить о корректности настроек firewall и маршрутизации. Но для меня
удовлетворительно.
Sergey Matveev [Sat, 2 Nov 2024 18:24:26 +0000 (21:24 +0300)]
Arch Wiki пакет
https://archlinux.org/packages/extra/any/arch-wiki-docs/
Единственное ценное в Arch Linux для меня -- это их wiki.
Действительно очень много полезной информации там находил.
Отнюдь не GNU/Linux специфичной.
Оказывается, есть даже статическая версия этой wiki в виде пакета.
Sergey Matveev [Sat, 2 Nov 2024 18:04:43 +0000 (21:04 +0300)]
Подкаст-выпуск про беспилотные автомобили
https://linkmeup.ru/podcasts/2710/
Вот тема беспилотных автомобилей меня как-то вообще не интересовала.
Ну типа надо, не без этого, пускай люди развивают, пускай больше таких
машин становится, но как бы вот и все мысли. А тут один из самых
интересных выпусков (для меня) на linkmeup.ru был. Понравилась история
про то, как робот остановился послушать музыканта. И как попросили
увеличить скорость света.
Sergey Matveev [Sat, 2 Nov 2024 13:22:02 +0000 (16:22 +0300)]
Работа за ещё более мощным железом
В 80a3d2a50fcd3ee4172e43c2547b7fd019fdc1d9 я радовался как приятно было
поработать с 38 ядрами на Xeon Gold и 192GB RAM. Сегодня взял железку с
56 ядрами (*2, если учитывать SMT) и 2TB RAM. Если 192GB RAM я ещё
понимаю чем можно бы было забить даже дома, то 2TB уже перебор :-)
Впрочем, когда у нас появился 600MB HDD дома, то мы тоже не знали чем
его можно бы было заполнить.
Sergey Matveev [Sat, 2 Nov 2024 13:17:47 +0000 (16:17 +0300)]
Метал признали самым интеллектуальным музыкальным жанром
https://naked-science.ru/article/psy/metal-priznali
Ну дык, конечно, редко можно встретить тех же программистов,
которые бы увлекались рэпом например :-)
Sergey Matveev [Wed, 30 Oct 2024 07:45:41 +0000 (10:45 +0300)]
Бан maintainer-а в почтовой рассылке LKML
http://lists.suckless.org/dev/2410/35774.html
Пишут, что одного из maintainer-ов Linux забанили в LKML рассылке. Судя
по его прошлым сообщениям, которые выдаёт поисковик, чувак довольно
конфликтный. Но он тоже не одобрял Rust, напоминая о проблемах с его
сборкой.
Sergey Matveev [Sun, 27 Oct 2024 12:15:46 +0000 (15:15 +0300)]
Предотвращая коллапс цивилизации
https://www.youtube.com/watch?v=ZSRHeXYDLko
Очень понравилось данное выступление! Не могу оценить действительно ли
всё так упирается в передачу умений/знаний другим поколениям. Но очень
понравились примеры постоянно глючащего софта, при этом большинство
считает это допустимым и нормальным. Вот почему сама мысль об
использовании смартфонов или JS-based приложений просто омерзительна и
безумна для меня? Потому что я вижу со стороны насколько это всё паршиво
сделано, насколько сбоит и ведёт ненадёжно. Мне, как человеку не
"обитающему" в мире "современных ИТ-технологий", просто бьёт в глаза как
всё паршиво и ненадёжно сделано. Всегда считал что это "на отвали"
подход к работе, но понимаю что нет -- просто люди по другому не то что
не умеют, но даже не задумываются о том, что это просто не нормально
когда программа ведёт себя насколько ненадёжно и некачественно.
Свои страхи о том, что непонятно а много ли где можно работать
программистом (34780e342dd2489e684bab3bc927c1eae632d554), у меня как-раз
именно, из-за ставшей нормой, переусложнённостью (на пустом месте) софта.
Как в выступлении показывается: вместо того, чтобы установить/перенести
приложение просто копированием .exe файла, теперь люди просто не в
состоянии даже подумать как можно обойтись без какого-нибудь docker.
Написать pure-HTML страничку без JS+CSS+IDE-ramework-ов.
Не раз в выступлении произносится слово "безумие". А также
"переусложнённость". А также "простота", за которые в этом году я топлю,
похоже, особенно много.
Мне хочется просто передать звук из одного места в другое -- это лютое
безумие использовать для этого WebRTC, исходный код который я вдоль и
поперёк смотрел и даже правил. Это безумное по сложности решение для
простой VoIP задачи. Поэтому родился мой VoRS клиент, где я даже от
X.509+TLS избавился как от ненужной сложности (хотя это скорее уже
just-for-fun было). Недавно я YAC формат сделал, тоже, можно сказать как
ответ на переусложнённый CBOR. BASS систему сборки, в которой и CI часть
есть. Всё это про тему борьбы с переусложнённостью.
Sergey Matveev [Fri, 25 Oct 2024 20:53:22 +0000 (23:53 +0300)]
Наличка на концерте
Забыл к предыдущей записи добавить. Я пришёл запоздало, так что наверное
80% зала уже была на месте. При входе написана стоимость. Я приготовил
наличные. Даю девушке проверяющей билет. Она спрашивает "а что это такое?".
Объясняю что наличные деньги, вход же платный, стоимость вы написали.
Спросил я один что ли на данный момент ей оплатил? Получил утвердительный
ответ. Я вот только не понял: молодая девушка удивилась факту оплаты
наличными или она их никогда не видела прежде? :-)
Sergey Matveev [Fri, 25 Oct 2024 20:30:58 +0000 (23:30 +0300)]
Сходил на Grima
В 960b8df5f90859c7d1629b47bc04c082869ff1fa упоминал впервые услышанную
Grima из Красноярска, которая сейчас вот колесит с выступлениями.
Сегодня было совершенно не то, что на видео по ссылке. Декорации
деревьев, тьма всякого светового оборудования активно постоянно
работающего, море дымовой завесы со снегом сыпящимся. Я наверное даже
такой никогда и не видел прежде. Причём он осаждается на вокалисте,
который одет и выглядит как дерево -- очень эффектно!
Здоровски, здоровски сыграли! Медлячки в тему. Кач имеется. Яростные по
скорости партии и целые песни -- тоже. Чисто медленный head bang -- тоже.
Народ начал слэмиться с первой же песни. Так и надо, молодцы! Черепа там
всякие на сцене есть, фигуры с рогами. В общем, куча позитива и весёлого
настроения!
Grima, действительно, очень и очень достойны в живую. Уважаю за такое
внимание к созданию атмосферы, всему этому свету и костюмам. Приобрёл
футболочку и три компакт диска. Но ещё даже не вскрывал, не то что слушал.
Sergey Matveev [Thu, 24 Oct 2024 18:00:35 +0000 (21:00 +0300)]
Лютейше говёный день
Так вышло, что с коллегой разосрался в пух и прах довольно быстро
перейдя на личности. Ни на йоту не стыдно, извиняться не за что, ибо...
затронуты темы, которые он не имеет права затрагивать и критиковать.
Особенно учитывая специфику где мы работаем. А он пошёл требовать чтобы
меня отсадили. И вот встала уже этическая проблема передо мной. Если
меня отсадят, то значит руководство/организация приняли решение против
меня, как-будто я в чём-то виноват.
Затронь мать родную или что-то подобное святое, то меня совесть не будет
мучить, если я обложу хуями этого человека. Если его отсадят, то значит
он, конечно же, будучи уверенным в своей непоколебимой правоте, тоже
вряд ли сможет свыкнуться с этим.
Но во втором случае организация рискует потерять ценнейшего сотрудника и
это типа будет напрямую связано со мной. У меня уже были случаи, когда
наказывали (за дело) плохо выполнивших свою работу -- а мне как бы пофиг
наказали ли или нет, лишь бы работа продолжала идти дальше.
А сделать так, чтобы никого не задеть -- я не знаю как можно. А вместе
мы находится в одном помещении не сможем. Поэтому пошёл говорить с
начальством, объяснив ситуацию и что я не вижу иных вариантов, кроме как
покинуть компанию. Особенно учитывая, что в ней уже не в первый раз с
руганью от меня избавляется команда. Как говорят, один раз --
случайность, но два раза -- уже закономерность.
В своей правоте не сомневаюсь (и здесь речь не про личные неприязни или
вкусы), но чтобы организация рисковала терять ценного сотрудника, пускай
и позволяющего говорить недозволенное, тоже не хочу (специалистов и так
нехватка). Меня попросили дать несколько дней на размышления, мол, может
быть компромисс какой-то возможен будет.
Ну и оставшаяся часть дня забила голову мыслями -- а что же делать
дальше? В планах у меня как бы не было увольнения. Да и после отпуска
мне сильно лучше стало. И эти мысли очень удручают.
Такое впечатление, что толком во всех конторах программистам надо
работать со всяким дерьмом типа Docker, качать сплошные бинари,
JavaScript-application как интерфейс для любой программы, и без
вариантов использовать прочую дрянь типа GNU/Linux. В каких-то узких
специализациях я не шарю. Или вообще пойти на СВО? Но там, судя по куче
знакомых которые подавались добровольцами -- развернут меня с моим
зрением, да и отсутствием физических данных, что даже не знаю как будет
болезненно. На этой работе мне давали относительную свободу в экосистеме
того что я использую, не мешая мне писать ПО выполняющее поставленные
задачи. Но так здесь то я почти десять лет уже проработал. В планах
работ у меня были только вещи связанные с криптографической темой, но в
ней скудное кол-во предприятий задействовано.
В общем, та ещё задача, жопа.
Sergey Matveev [Tue, 22 Oct 2024 17:06:43 +0000 (20:06 +0300)]
Linux выпиливает maintainer-ов из РФ
https://www.opennet.ru/opennews/art.shtml?num=62090
https://habr.com/ru/news/852632/
https://www.linux.org.ru/news/linux-general/17766938
https://habr.com/ru/news/852962/
https://lore.kernel.org/all/CAHk-=whNGNVnYHHSXUAsWds_MoZ-iEgRMQMxZZ0z-jY4uHT+Gg@mail.gmail.com/
https://www.opennet.ru/opennews/art.shtml?num=62100
https://lenta.ru/news/2024/10/24/rossiyskih-spetsialistov-otstranili-ot-raboty-nad-yadrom-linux/
https://lore.kernel.org/all/CADnvcf++bWv=Ohwc=dwSA-Hy5_G3jNS5hjWgA_-yx5HSiS1f4A@mail.gmail.com/T/
https://lore.kernel.org/netdev/2m53bmuzemamzc4jzk2bj7tli22ruaaqqe34a2shtdtqrd52hp@alifh66en3rj/T/
И был получен комментарий от Торвальдса, где он чётко говорит про
санкции и про то, что возврат патчей от русских это равносильно
*поддержке* (пунктуация автора сохранена) какой-то там "Russian
aggression". Он -- фин, говорит, а русских кличет только троллями.
Причём труды этих .ru людей он не удалил, а только упоминание. То
есть, патч от .ru-people это акт "агрессии", но, будучи ворьём, всё
равно труды примем. Линус уже не впервые это делает и целиком называет
ОС именно "Linux", не отдавая никакого credit проекту GNU, без которого
его творение было бы бесполезно с самых первых дней существования.
Вот и вся суть человека с запада.
Sergey Matveev [Tue, 22 Oct 2024 16:50:12 +0000 (19:50 +0300)]
FLAC ограничения
В одной рассылке обсуждения lossless форматов для архивирования,
отметили, что FLAC не держит более 8 каналов, не умеет DSD кодирование
(которое в SACD например). Я сталкивался с тем, что мне нужно 32-бит
float бы пожать, чего он тоже не умел.
Ну вот нафиг его. А я давным давно перешёл на WavPack. Хотя, конечно,
CPU он немного побольше ест.
Sergey Matveev [Tue, 22 Oct 2024 09:27:57 +0000 (12:27 +0300)]
IEEE не публикует документы в общественном достоянии
http://cr.yp.to/writing/ieee.html
DJB рассказывает, как одному студенту отказали в публикации работы,
так как он не передал на неё авторское право, а сделал public domain.
Sergey Matveev [Tue, 22 Oct 2024 08:01:35 +0000 (11:01 +0300)]
Снова про решения при разработке на Си
В прошлых проектах я всегда для всех структур и enum-ов делал typedef-ы.
Мне казалось, что без них как-то не очень отображаются человекочитаемые
имена в LLDB. Но то ли времена поменялись, то ли я чего напутал, но
сейчас проблем нигде не заметил. И стал указывать просто "struct XXX" и
"enum XXX".
В 5f1645eb510d76ffb07c07fa09bffdea01959c03 и 81768895c53201dd862f7164ded5c7a90de6c55b как-то заходила речь про тип
переменных для указания индексов в массивах и размерах данных. С одной
стороны много говорят про то, что с знаковым типом сильно проще, ибо при
переполнении он станет отрицательным. С беззнаковым будет использоваться
арифметика с модулями. И я склонялся к этому варианту и решению,
использованию каких-нибудь ptrdiff_t.
Однако, переполнение signed числа является undefined behaviour! Тогда
как переполнение unsigned чётко и понятно определено. На практике, так
как у нас 2's complement, поведение *скорее всего* будет определено, но
компилятор из-за UB может и проблем подкинуть из-за оптимизации которую
он решил проделать. Есть -fwrapv (3f2f2ebd3ca7c13eaa4f4bdb0043032d0daeac03)
опция, которая позволяет форсировать строгое поведение при переполнении
signed, но оно закрывает путь к некоторым возможным оптимизациям
(судя по тому что пишут).
Во многих случаях, что с signed, что с unsigned -- надо проверять не
произошло ли переполнение. Это в любом случае if-ы. Так что у меня выбор
свёлся либо к: использовать -fwrapv, либо без него. Без него означает
меньше требований к флагам компиляции и это даёт возможность
использовать на один бит больше. Так что для размеров я уже точно без
сомнений считаю, что в Си нужен size_t, не забывая про проверки
переполнения. В ЯПах без UB для signed переполнений, типа Go,
использовать signed тип, если не критично что один бит теряется.
Собственно, Go и использует int для len() и индексов массивов.
Sergey Matveev [Mon, 21 Oct 2024 08:31:33 +0000 (11:31 +0300)]
Проект "Глубина" и Олег Булдаков
https://akniga.org/series/Глубина/
https://vk.com/olbul
Уже приличное время слушаю недавно открытый цикл аудиокниг "Глубина".
Не сразу они представляли его в intro, а потом заметили что идея проекта
от Олега Булдакова. У него я тьму книг переслушал! По продолжительности
он идёт следующим после Влада Коппа из Модели Для Сборки. А в "глубине"
самые разные независимые чтецы собрались.
Sergey Matveev [Thu, 17 Oct 2024 07:41:01 +0000 (10:41 +0300)]
Пахом мне перезвонит
https://rockgig.net/img/poster/701931-21500.jpg
https://ru.wikipedia.org/wiki/Пахомов,_Сергей_Игоревич
Последний раз был на концерте аж в начале лета. С сентября они
начинают лавиной идти, каждую неделю и грайнда и метала через
край. А я вот всё не выбирался.
Вчера сходил на "Пахом вам перезвонит". Пахома я видел в "Зелёном
слонике", а дальше только наслышан о его участии в шоу экстрасенсов.
Ну и то, что он любит death metal.
В целом очень понравилось, сходил бы ещё раз! Играет у них
психоделический авангард, панк, как они говорят. Длинные довольно
однообразные композиции, с колбасанием Пахома на сцене. Не могу сказать
что моя музыка, но мне однозначно понравилось с самого начала. В кой да
веки, скрипку подключили ко всяким электрическим прибамбасам, в том
числе distortion. Звука много -- гитара постоянно шумит и создаёт мощный
фон... на фоне постоянной долбёжки drum machine. Всё это ближе к
плотному такому noise. Заключительная песня про сердце человека, с
проигрышем на скрипке не выходила у меня из головы и на это утро.
Приобрёл пару их альбомов, плюс живую запись первого Japanoise концерта
в underground клубе в РФ в 1990-х.
Sergey Matveev [Tue, 15 Oct 2024 06:45:35 +0000 (09:45 +0300)]
Кулинарные видео
Когда-то у нас на работе разослали список web-ресурсов запрещённых к
которым доступ будет ограничен. Десятки сайтов про автомобили, про
казино. Всякие IM-ы, в том числе Tox, pidgin.im и подобные (что, конечно
же вызывает вопросы адекватности, ведь тот же Telegram разрешён). А
также десятки сайтов связанных с кулинарией. И я тогда удивлялся: а что,
мол, так много людей смотрит про еду и готовку?
И с того момента я уже с полсотни раз видел в транспорте, как и мужчины
и женщины вовсю следят за процессом приготовления. И такое впечатление,
что это чуть ли не каждый четвёртый. Удивительное рядом.
Sergey Matveev [Fri, 11 Oct 2024 09:54:15 +0000 (12:54 +0300)]
История Git
https://habr.com/ru/companies/sravni/articles/849150/
Никогда не видел прежде такой богатой истории возникновения Git-а.
Интересно почитать. Ведь Git это лучшее что сделал Торвальдс.
Sergey Matveev [Thu, 10 Oct 2024 19:49:27 +0000 (22:49 +0300)]
Посмотрел "Антихриста"
https://ru.wikipedia.org/wiki/%D0%90%D0%BD%D1%82%D0%B8%D1%85%D1%80%D0%B8%D1%81%D1%82_(%D1%84%D0%B8%D0%BB%D1%8C%D0%BC,_2009)
У Ларса фон Триера я прежде видел только Догвилль
(87c6f45f4d084e2b2e5368105d55d9741d3ae8aa), который я считаю одним из
самых крутейших фильмов виденных мною за всю жизнь. Не скажу что
Антихрист меня так же впечатлил, но однозначно понравился без сомнений!
По мне, так он смотрится легче Догвилля, хотя наверное вряд ли их имеет
смысл сравнивать. Особо нечего тут написать, ибо подобные фильмы надо
самому смотреть и делать выводы. Антихрист показывает как могут сходить
с ума женщины, а Догвилль -- насколько мерзки и черны в целом люди.
Sergey Matveev [Mon, 7 Oct 2024 13:55:32 +0000 (16:55 +0300)]
Полдня аудиокниг
Пораньше встал, чтобы на работе подольше побыть. Но в городе лютая
пробка, как никогда -- из него больше часа выезжал на маршрутке. Почти
дошёл до работы, как вспомнил, что забыл пропуск. Поехал назад. Забыв,
что в электричках есть перерыв, в который я как-раз попал. В общем, кучу
времени провёл прокатавшись туда-сюда. Как же хорошо, что есть аудиокниги!
Sergey Matveev [Sat, 5 Oct 2024 18:58:33 +0000 (21:58 +0300)]
Major Parkinson -- A Night At The Library
https://www.youtube.com/watch?v=6PIP36aczlg
Запись концерта одной из любимейших групп. Не видел прежде.
С удовольствием бы побывал на таком концерте, пускай там даже
и нет гитар с distortion-ом.
Sergey Matveev [Sat, 5 Oct 2024 15:03:42 +0000 (18:03 +0300)]
Выложил YAC
http://www.yac.cypherpunks.su/
Но работы, конечно же, ещё дофига. Пока реализации черновые, но код для
формирования и проверки криптографических сертификатов с ГОСТ 34.10 уже
имеется.
Sergey Matveev [Wed, 2 Oct 2024 21:41:17 +0000 (00:41 +0300)]
Отец реляционных баз данных
https://habr.com/ru/companies/serverspace/articles/847372/
Не знаю отец он или нет, насколько именно его вклад весом, но не знал
что один и тот же человек (Майкл Стоунбрейкер) причастен и к Ingress
СУБД, и к Postgres (Post Ingres), а потом ещё и к колоночной БД Vertica,
с которой в ivi сталкивался и поражался насколько в подобной БД можно
ряд задач на порядки быстрее решать. Как тесен этот мир.
Sergey Matveev [Wed, 2 Oct 2024 20:10:55 +0000 (23:10 +0300)]
Yet Another Codec. YAC is Ain't CBOR
Возня с форматом сериализации данных
(54996a124bd917fbe7a000bfd578030401ab40f2) затянулась ещё на неделю.
Это оказалась ну очень кропотливая работа с тьмой мелочей и постоянных
взвешиваний решений. Речь не только про само кодирование, но и форматы
созданные поверх него, форматы-альтернативные X.509 сертификатам, CMS и
подобному.
Начальство по факту отреагировало вопросом: ну а чем принципиально CBOR
не устраивает? Согласен -- он лучше чем любой ASN.1, наименьшее из зол.
Но в нём два способа кодирования длин (indefinite vs definite), есть
поддержка тэгированных значений. Всё это -- дополнительное усложнение
кодека. Потоковое кодирование упрощает кодирование, уменьшает код. Но
возможно звучит не очень убедительно?
На Wikipedia есть большой список библиотек реализаций CBOR. Я проверил
все Си-шные: ни одна из них не делает хоть какой-либо валидации формата
на тему его детерминированного кодирования. Я взял четыре Go реализации,
среди которых есть хвалящиеся что их используют чуть ли не половина
крупных компаний мира. Ни одна из них не делает хотя бы тривиальные
проверки что тот же integer/length закодированы в минимальном формате.
Дальше я уже проверять ничего не стал. За уйму лет существования CBOR:
проверив кучу реализаций с Wikipedia -- ни одной нет пригодной для
применения в криптографии. CBOR идёт в жопу как вариант для таких задач.
Я не хочу сказать что ASN.1 чем-то лучше: все ASN.1 реализации что я
видел -- в них тоже не все проверки на корректность DER кодирования
имелись. Но, многие хотя бы пытались проводить их! CBOR же создал
впечатление того, что вокруг него только какие-то хипстеры делающие это
всё на коленке. Может быть он просто не для темы криптографии? Возможно.
Видел draft RFC на то, чтобы X.509 сертификаты переложить на CBOR кодек.
Вовсю используются тэгированные значения, но например где поля validity:
просто голые integer-ы UNIX timestamp-ов. Причём многие библиотеки CBOR
что я видел -- не поддерживают тэгированные значения. То бишь... или не
полностью такие сертификаты будут декодированы, либо не декодированы
вовсе. Лень уже было разбираться.
После этого, начальство одобрило попытку применения YAC-а в ряде
проектов. Я долго думал над названием, но ничего лучше чем "Yet Another
Codec", "Yet Another enCoding" не пришло. А потом ещё увидел, что это
можно и как "YAC is Ain't CBOR", с которым я в первую очередь делаю
сравнение.
Также одобрили его публикацию как свободный проект. Пока настолько нет
времени, что руки ещё не доходят, но yac.cypherpunks.su уже вот вот
появится.
Написал реализации на Си, Go, Python (фу, бе, как же почти физически
неприятно было на нём писать, уже аллергия на этот язык). Тестов пока
нет, но есть тестовые вектора, которые у всех у них должны совпасть.
Когда пишешь на Си или Go, то понимаешь насколько он прост или не прост
выходит. А также какие решения по кодированию стоят или не стоят того.
Но вот пока со всем этим возился, то хотелось какой-то инструмент, чтобы
можно было написать "LIST[INT(123) STR("привет")]" и он бы мне выплюнул
YAC-закодированное представление этих данных. Хотел было написать штуку,
которая на вход бы приняла JSON, а на выходе YAC. Но в JSON нет
datetime, нет UUID, плюс дифференциации между разными integer-ами и
float-ами.
И вспомнил про Tcl. На нём у меня по сути только один проект написан, на
полтора экрана кода. Больше я для этого языка применений хороших пока
ещё не находил (ну кроме Tk). А очень хотел. И вот почти ничего не помня
из этого языка, за несколько часов у меня готов YAC encoder. Я могу
написать:
и у меня будет сформирована структура со всеми этими словарями,
списками, разными числами, TAI64-датами и прочими вещами. Вовсю это
использовал, жутко доволен насколько легко это получилось сделать и
удобно мне было с этим работать. Формировать произвольные структуры
в Си или Go -- не так тривиально быстро.
Сам кодек YAC-а уже по сути заморожен. Вообще никаких планов что-то
менять. Сложно сравнивать сложность реализации кодека для него и для
CBOR, но из-за отсутствия тэгов и только применяя потоковое кодирование
-- YAC должен быть попроще. Сама спецификация кодека для него --
считанные страницы. Во многих случаях его формат будет покомпактнее чем
у deterministic CBOR.
Понимаю что многовато форматов данных наизобретено. Но реально
schemaless онных -- не так уж и много. Чтобы детерминированно
кодировались, чтобы можно было в криптографии применять -- ещё меньше.
CBOR шёл правильной дорогой, имел правильные цели, но мне кажется что
они как-будто резко не туда свернули и пошли по пути усложнения формата,
причём не решив проблему с передачей datetime объектов. Делали, делали,
но не доделали. Плюс запрещают потоковое формирование при использовании
детерминированного кодирования.
YAC же, кроме форматов поддерживаемых JSON-ом (как бы он мне не
нравился, но хотелось бы иметь возможность прозрачно его заменять на
более быстрый/компактный кодек, как это можно сделать с MessagePack и
BSON), ещё имеет datetime (в виде TAI64[N[A]]), UUID, int-ы вплоть до
int128, float16 -- float256, бинарные строки. Что покрывает массу
возможных контекстов применения.
https://jmmv.dev/2023/07/ldd-untrusted-binaries.html
Оказывается, ldd загружает программу как процесс, выполняет её, а уж
потом печатает чего там в памяти linker-ом загрузилось. В man-е
GNU/Linux и написано, что его нельзя применять для недоверенного кода.
В man FreeBSD тоже явно сказано, что он запускает исполняемый файл в
дочернем процессе.
https://blog.init7.net/en/overbooking-how-providers-divide-up-the-bandwidth/
Показывают как скачкообразно повышается ping и задержки, если через
каналы провайдера домашние пользователи ломятся слишком активно. На этой
неделе у себя как-раз наблюдал такое: то ping-и в пределах 8-10мс, а то
фигак и на два порядка больше могут стать. Через какое-то время, ни с
того, ни с сего (я вообще компьютеры не трогаю, грубо говоря), снова
возвращается назад.
https://www.securitylab.ru/news/552424.php
Отказ от практики регулярной смены паролей. Убрано требование иметь
спецсимволы в них. Абсолютно поддерживаю данные рекомендации, ибо они
просто вредны при использовании парольных фраз -- единственного чего
стоит применять.
А то что-то их маловато, конечно же. Вообще всё началось с вопроса:
какой формат есть пригодный для криптографии (где детерминированное
кодирование данных бы было), при этом как можно более простой в плане
реализации, при этом бы ещё и довольно компактный по получающемуся
бинарю. И сразу откидываем форматы требующие схему. Я не против них,
protobuf мне нравился, они компакты, быстры и эффективны, но это тот ещё
геморрой работать с ними в действительно гетерогенных средах, где не всё
под твоим контролем, когда не всё касается твоей экосистемы. Ну и
хочется чтобы им можно было бы заменить, грубо говоря, JSON -- то есть
достаточное количество типов данных бы поддерживал.
Изначально я смотрел на мои любимые Netstring-и. Думал из серии: пускай
это будут только NS-ы, вложенные друг в друга, пускай где-то
интерпретируемые как пары из ключ-значение, и всё в таком духе. Да, сам
кодек будет простой, но после него ещё нужно делать постообработку, в
которой по сути тоже будет вшиваться схема что дальше надо и как
декодировать.
Смотрел на bencode, который тоже использовали на работе, прелесть
которого в детерминированном кодировании (если не забывать про
дополнительное требование к integer-ам). Большим минусом bencode точно
можно назвать неотличимость человекочитаемых строк от бинарных.
Насколько понял, это же было основной причиной создания fork-а от
MessagePack в виде CBOR. Если мы хотим без схемы декодировать
произвольные данные, то да, декодировать то сможем, но всё же
переваривать это глазами человеку уже будет проблематично. Различие
между UTF-8 и чисто бинарями обязано быть.
И мы с коллегой и CBOR формат строго также не хотим иметь дело с ASCII
decimal значениями, которые в NS/bencode для кодирования длины. Они
несут определённое удобство, безусловно, но всё же в условиях написания
кода для смарт-карт каких-нибудь -- это слишком лишний код и не очень
компактное использование места, особенно учитывая частоту использования
строчек. В криптографических форматах например вообще нет integer-ов
(serial в X.509 сертификатах -- анахронизм от которого надо бы
избавляться).
Поэтому начали думать в сторону замены этих decimal на бинарные
представления. Не один день ломал я голову и переделывал то так, то сяк.
И только после этого снова вчитался в CBOR. Изначально я его отбросил
из-за его заметки в самом начале RFC, о том что он прям явно не
собирается блюсти детерминированное кодирование данных, что нас не
устраивает. Потом я всё же увидел раздел про Canonical CBOR, как-раз
решающий эту проблему. В общем всё это время мы почти изобретали CBOR.
Прежде я к нему надменно относился -- мол, очередной хипстерский формат.
Но поменял своё мнение -- я сам пришёл к очень и очень похожему формату.
Даже подумал чтобы просто использовать (Canonical) CBOR. Но... нет. В
нём есть опциональные (многие кодеки не реализуют их поддержку) тэги
прикрепляемые к данным. Выглядит интересно, но нам точно не хотелось бы
с этим иметь дела. Это избыточно в данном кодеке. Но это мелочь. А что
серьёзно не понравилось: именно Canonical CBOR не позволяет потоково
формировать объекты. Он как ASN.1 DER -- везде должна быть заранее
известна длина. Я же хочу как бы аналог ASN.1 CER, где по сути
SEQUENCE*/SET* имеют indefinite length, плюс все бинари представлены в
виде indefinite length, после которой идут килобайтные фиксированные
кусочки данных, где только последний может быть меньшего размера,
закрывающим. В Canonical CBOR потоковости нет. Плюс в моём получившемся
кодеке может выходить более компактное представление integer-ов и строк
недлинных. В моём кодеке я явно поддерживаю как просто строки, так и
потоковые blob-ы. Если потоковость не нужна, то можно использовать
непрерывные бинари как и прежде.
Понравилось, что и я и CBOR отметают variable length кодирование чисел,
где высшим битом показывается есть ли у него продолжение. Это ужасно
неудобно декодировать. И это более сложный код. В моём кодеке код по
идее должен быть не сложнее, а скорее проще из-за отсутствия тэгов.
Преобладающая часть данных в нём, для аналога всяких X.509/PKCS#7 нужд
кодируется вообще без затрат на байты отводимые под длину. Он ощутимо
компактнее ASN.1 DER/CER. Его реализацию кодирования/декодирования с
валидацией я за пару часов на Python реализовывал. По сути он компактнее
CBOR, должен быть чуть проще в реализации. Его спецификация сильно
проще: ибо по сути есть ровно одна таблица расписывающая все возможные
значения первого байта и как дальше после них парсить данные, почти
всегда известной (по значению типа данных) длины. Исключение, как и в
CBOR -- строки, которые у меня можно до 59-байт без дополнительных
байтов на длину закодировать, тогда как в CBOR всего-лишь 20 с чем-то.
Я добавил (ну по сути забронировал значения для типов данных) и
128-битные integer и float256, ибо для них уже есть спецификации. Чисто
на будущее.
В отличии от CBOR, JSON, MessagePack и кучи других -- я добавил
TAI64(N(A)) поддержку в качестве datetime базового типа. Регулярно при
использовании любых форматов сериализации -- приходилось добавлять
поддержку datetime для удобства. Я убеждён, что TAI64 формат (ну и его
TAI64N и, чисто для галочки, TAI64NA) более правильным для хранения
времени. Преобразовать из него в UTC -- легко. Зато не надо парсить, в
отличии от каких-нибудь ISO-строк, которые ещё и существенно длиннее.
Мне казалось, что, в принципе, это не сложное дело спроектировать
бинарный формат-аналог JSON (очень грубо говоря). Но если хочется и
компактности и эффективности и простоты, то оказалось не раз приходилось
и так и сяк его переделывать.
Но на мой взгляд, вышло очень здорово. Настолько здорово, что даже если
начальство не одобрит его применение вместо ебучего говёного уродского
мерзкого ASN.1 DER (тем более BER), то я всё-равно других задач буду
использовать. Изначально предполагалось только для криптографических
задач. Например не предполагались null/nil/none значения. Как и float.
Потом добавил из-за тривиальности. А потом я вижу, что из-за
компактности представления даже integer-ов, его вполне себе вообще для
чего угодно произвольного использовать. Хотя прежде надо реализовать на
Си, но я уже видел как это не сложно делают для CBOR-а.
Я даже добавлял такие отдельные типы данных как UUID и IPv4/IPv6 адреса.
Ибо они фиксированного размера. Но потом всё же решил убрать.
Кодирование любого из них тоже будет занимать всего 1-байт избыточности.
По сути это выходит как просто подсказка как интерпретировать эти
бинарные строки, для чего тэги в CBOR могут использоваться (сказать что
это URI, а не просто так строчка, например). То есть остались базовые
для всяких языков программирования типы, плюс TAI64* (который по сути
тоже же ведь бинарная строка фиксированной длины, но datetime уж очень
часто нужен много где).
Но из-за отсутствия схемы, в его структурах уже придётся помнить о
длинах ключей в словарях. Один коллега как-то говорил, что когда
начнутся однобуквенные ключи в словарях, то это уже пройденная граница
адекватности. С одной стороны -- верно. Но с другой вот есть словарик:
"sig": {"algo" "gost3410-256A", "v": b"..."}
ведь по контексту тут точно понятно что "v" это value, значение подписи.
Вместо OID-ов мы все однозначно за использование человекочитаемых строк.
Даже просто использование "id-tc26-..." названий OID-ов уже было бы куда
лучше, пускай и немного поболее места займёт. Вместо "notBefore" я бы
использовал "since", вместо "notAfter" -- "till". Коротко и ясно.
Кроме длин ключей ещё придётся помнить про то, что они при кодировании
должны быть отсортированы. Поэтому если надо, чтобы в потоке данных
что-то шло раньше из словаря, то надо имя ключа делать лексикографически
"меньшим". Но это уж сущие мелочи, по сравнению с удобством от
отсутствия схем.
Выступление Grima на швейцарском Black Hole Fest V
http://www.heavymusic.ru/news/32227/
https://www.youtube.com/embed/OsXM4-miORI
Внезапно, но россиян из Красноярска всё же пустили в западную страну.
Наши клёвые black metal-исты выступили на Black Hole Fest V. Они недавно
и контракт с Napalm Records подписали и сейчас в туре колесят. В октябре
тоже на них собираюсь в Москве.
https://github.com/pgul/binkd
https://huskyproject.github.io/
https://github.com/golded-plus/golded-plus
https://github.com/askovpen/gossiped
Решил таки я всё же посмотреть вновь на Фидо, в котором был ~20 лет
назад в последний раз. binkd собирается, софт из состава проекта husky
тоже (ну я только базовый, плюс hpt с msged). GoldEd даже можно собрать.
Но... ни один редактор на практике не заработал. GoldEd просто выходит.
Судя по truss-у даже не понимаю почему -- как-будто просто штатно это
заложено в его программе ничего не делать дальше. msged запускается, но
потом виснет и ни на что не реагирует. Возможно можно mapping-ами
поиграться его keybinding-ов, но готовых для FreeBSD и современных UTF-8
терминалов не нашёл. gossiped проект, написанный на Go, даже
запускается, даже позволяет что-то прочитать из эх, но при попытке
написать сообщение, а точнее при попытке его сохранить -- падает с
паникой. И я и пытался менять форматы баз в hpt и ещё всякие шаманства,
но всё равно падает.
Кроме того, я так и не смог нигде получить ответа на вопрос: собственно,
это всё вообще может работать под Unicode терминалом то? А то, похоже,
что всё же заточено под работу под однобайтные, где KOI8-R например.
Собственно, под FreeBSD 20+ лет назад я так и использовал всё это.
Понимаю что придётся перекодировать KOI8-R↔CP866, с этим сталкивался, но
про UTF-8 ответа нигде нет. Среди современных руководств по
использованию и введению в FidoNet, речь только про web-based решения и
вообще для смартфонов. Это конечно же, не вариант. Плюс backend софт
регулярно вижу написанный на JavaScript.
https://github.com/fmang/opustags
opusenc форсированно любит сувать ENCODER комментарий в производимые им
файлы. Не то чтобы это много места, но меня раздражает лишняя ненужная
метаинформация. Убрать можно "opustags -D" командой. К сожалению, она не
в штатном составе opus-tools, а сторонний проект.
Про производство/устройство Li-ion батарей и встраивание взрывчатки
https://www.bunniestudios.com/blog/2024/turning-everyday-gadgets-into-bombs-is-a-bad-idea/
Процесс создания Li-ion батарей относительно не дорогой и доступный.
Встроить взрывчатку -- тоже не большая проблема, в отличии от
возможности её определить. Террористическая страна в мире N2 открыла
ящик Пандоры и показала как можно вести терроризм подрывая договорённости,
ожидания и доверие в обществе (собственно, это же и отличает терроризм?).
https://www.securitylab.ru/news/552203.php
Пишут, что ранее считалось, что такие атаки невозможны против Tor.
Вообще-то, всегда, с самого начала появления сети, было известно, что,
как раз таки, против этой атаки Tor бессилен и ничего не делает для
защиты, кроме как стараться выбирать узлы из разных автономных систем.
Ну и в лучшем случае, дополнять сообщение до 512-байт, насколько помню.
Это одна из причин, почему я не верю что Tor это там про анонимность и
всякие благие цели. За 20+ лет существования, он ничего не делают для
усиления защиты от мощных злоумышленников. Это исключительно сеть для
обхода цензуры, для всяких там сепаратистов в странах вне США.
Цифровые подписи и как от них избавиться. Подписи Шнорра
https://neilmadden.blog/2024/09/18/digital-signatures-and-how-to-avoid-them/
Замечательнейшая статья про то, как люто злоупотребляют таким примитивом,
как асимметричная подпись. В огромном кол-ве случаев это избыточно и
добавляет кучу головной боли, проблем и потенциальных уязвимостей, тогда
как можно куда более простыми способами осуществить (особенно)
интерактивные протоколы.
А также рассказано про устройство подписей Шнорра, которые так элегантно
просты и понятны.
Сакис Толис будет доволен если прослушают полностью весь альбом
https://www.youtube.com/watch?v=hW_Fv-zwbIg
Его очень удручает, что сейчас люди перестали слушать музыкальные
альбомы, только одиночные трэки. Для него уже большая часть и радость,
его ему сообщат, что слушают его альбом от и до.
Я никогда, абсолютно никогда не останавливал его альбомы, только
прослушивая целиком и полностью. А как иначе? И да, они "делают мой
день".
Выглядит приятным человеком, ибо честен и полностью отдаётся своим идеям
и тому во что верит.
Использование IDENTITY типа вместо SERIAL в PostgreSQL
https://www.naiyerasif.com/post/2024/09/04/stop-using-serial-in-postgres/
Не то чтобы я разбирался в СУБД, но всё равно стыдно, что я совершенно
не знал про IDENTITY. Пишут, что масса причин где он лучше себя ведёт
чем SERIAL, который (точнее BIGSERIAL) я по привычке продолжаю использовать.
https://lenta.ru/news/2024/09/18/nazvan-samyy-razdrazhayuschiy-millenialov-i-zumerov-sleng/
Для начала, мне пришлось пойти в очередной раз искать кто такие
"миллениалы" (это я, как оказалось) и "зумеры", ибо вообще в голове не
удерживается кто есть кто.
Миллениалов раздражают:
* "краш" -- впервые слышу. Crush? Но даже и не хочу знать к чему в
очередной раз используют иностранное слово (если это так)
* "кринж" -- слышал, жутко не нравится. Нет наших слов?
* "лойс" -- вообще не знаю что такое, не слышал
* "зашквар" -- на работе как-то объясняли этот тюремный жаргон. Зачем
использовать тюремные жаргоны? Впрочем... я и сам не редко цитирую
"Джентльменов удачи" с их словечками
* "шер" -- чего? Тоже не слышал, чёрт знает что это
Им нравятся:
* "вайб" -- вроде бы слышал или где-то в статьях встречах, но мне снова
придётся лезть в словарь чтобы понять что это значит. Почему по
человечески нельзя сказать?
* "база" -- ммм... база? Я видимо не в теме где это слово используется?
* "пруф" -- похоже я и сам иногда употреблял это слово, но точно вне
всяких сомнений в контексте работы, заменяя "proof" по время
вербального общения. В текстовом виде никогда не напишу ничего
подобного
* "изи" -- люто бесит это слово. "Легко" -- это так сложно?
Зумеров раздражают:
* "нормис" -- впервые слышу/вижу, хз что такое
* "альтушка" -- где-то встречал, даже помню что это такое. Говно, а не
слово, по степени неприязни
* "глэк" -- что это? Опять же не встречал, не подозреваю что
* "симп" -- чего???
* "ливать" -- WAT???
* "кринге" -- я сдаюсь. Как-будто обезьянки просто генерируют наборы звуков
Зумерам нравятся:
* "вайб", "база", "краш" -- уже было выше
* "бэсти" -- то бишь "busty", пышногрудый, грудастый? Я только в
порнографии это слово встречал
* "мэтч" -- match? Даже не представляю в каком контексте могло бы
использоваться это слово, если речь не про программирование. Видимо,
что-то другое
* "муд" -- мудак, мудя ещё знаю. А тут "mood"? Совсем русский начали
забывать?
Пишут, что зумеры чаще не понимают слэнг. Ну так конечно, если у нас
прям соревнование по придумыванию всякой херни. Мир соцсетей это прям
всё более далёкая от меня экосистема и мир. О чём ни на йоту не жалею.
Не забуду про "шипперить" (4cf766670eaa6ab7eb0a5fb06609ac60fb777772) и
про "райс" (d73e406f07ab9df35eab080ccf9a30cb2420349f). Зато я застал во
всей красе тему про холодильник (f5b1ebddf811eb35d626d63e80a8c7830c9c097c).
Про курочку Рябу тоже, но мне это и тогда и сейчас не кажется смешным.
Распознавал (46e4d23a23a10eb1c05e5a20f0ceeebd5ff31016) тут один подкаст
на английском языке, но нечаянно указал "ru" whisper.cpp-у
(94cf819e49d4e1f78279ef001bd2a9556b8004f3). И как оказалось, он вообще
начал его переводить. Вот уж чего не ожидал, ведь среди опций была
только --translate translate from source language to english.
https://habr.com/ru/articles/844124/
Забавно было почитать. Честное слово, но когда я прочитал вопрос "Зачем
нужны ТВЭЛы в реакторе РБМК?", то у меня сразу странное чувство
появилось... странности. Как написали ниже, действительно, в РБМК, про
который я читал не мало, ТВЭЛов нет. А у меня чувство странности, видимо
от того, что я не встречал упоминания этих двух терминов вместе.
Впрочем, я считал все виды стержней для реакторов ТВЭЛами.
А в ivi меня спрашивали про эффект кавитации. Но я про него знал.
Вспомнилось собеседование из фильма "Постал":
- Назовите ваше самое большое достоинство
- Я прекрасно работаю в команде
- Не верно!
- Назовите ваш самый большой недостаток
- Слишком много работаю
- Не верно!
- Расскажите, как вы свернёте гору с помощью ложки
- Ложки?
- Если бы вы были ограничены, опишите мышление без границ
- Эээ... ну это... если...
- Не верно! Последний вопрос. В чём разница между уткой?
https://www.securitylab.ru/news/552104.php
https://dxdt.ru/2024/09/15/13904/
Люто бесит когда пишут лютую бредовщину, как-будто выдумывая всё на ходу.
"Устаревший алгоритм Kyber уступает место..."
В каком это месте Kyber уже успел устареть?
"совмещающим устаревший алгоритм X25519 и постквантовый алгоритм Kyber"
В каком это месте X25519 уже успел устареть?
Грамотная новость, как пример, по второй ссылке. Между ML-KEM и Kyber
почти нет технических отличий (ну, конечно же, кроме как ослабления).
Конечно же отличается идентификатор для TLS протокола.
Или я чего-то не углядел в документации к less, или нет простого способа
пропустить текущую длиннющую строку. Всякие пробелы, "j" команды --
проматывают виртуальную часть настоящей длинной строки: делается wrap,
который разбивает настоящую строку на множество по ширине экрана.
Результаты grep-а могут выдать файлы состоящие из одной строки, но
мегабайтных размеров.
Пока нашёл только такой способ: прямо в интерактивном режиме выполнить
"-S", чтобы включить chop опцию и обрезать длинные строки. Засада в том,
что там, где я находился прежде, станет одной длинной строкой и будет
включён горизонтальный scrolling. Если перейти на другие строки (j/k),
то я их не увижу, так как горизонтальный scroll находится где-то там
далеко от их конца. И тут надо нажать Esc-{, чтобы scroll вернуть на
первый символ строки. "-S" позволяет делать toggle, так что можно
вернутся в прежний режим снова.
https://lenta.ru/news/2024/09/15/ekspert-nazval-alternativy-telegram-v-rossii/
Серьёзно, эксперт считает, что альтернативой могло бы быть поднимание
собственного федеративного решения? Админов которые бы это могли
провернуть -- с гулькин нос. Кто мог, уже давно поднял.
Мы можем говорить о таких изначально защищенных мессенджерах, как
Element, Jabber и Briar...
Это в каком это месте Matrix и XMPP являются защищёнными? Не, очевидно
у всех разное понимание что такое "защищённый", но XMPP как бы не про
защищённость (не говорю что её там нельзя достичь).
Да и что такое "Element"? Нет такого IM-а. Есть Matrix, где Element --
всего-лишь один из его клиентов.
Ну и кроме того, я уже не считаю XMPP (Jabber) возможным глобальным
федеративным решением, ибо на практике вижу, что многие серверы хотят
чтобы напротив ИХ точек доверия проверялись сертификаты серверов. И,
конечно же, это только США/НАТО доверенные. Многие не будут общаться по
plaintext протоколу, fallback невозможен. Все эти решения возможны
только на корпоративном уровне.
В 194bca6d16cdf98274580aad5714ad8e286fdd0c упоминал BitTorrent v2 и то,
что github.com/anacrolix/torrent не качает v2-only торренты. Вчера
поставил пример сабжевого торрента из блога libtorrent, а сегодня утром
обнаружил, что он таки скачался. Так что как-то, но всё же v2 работает.
Хотя у меня seeder-ом не получилось ничего раздать, но может что-то не
уследил в своих настройках/сети.
В этом торренте много всяких творений с демосцен. С удовольствием
посмотрел их. Всё же здоровский это фетиш для глаз! Снова вспомнил про
Mind's Eye (f8e17220d2c45effc0f48124a6cc85c5d1913c4f).
Третью ночь у меня бессонница и расстройство пищеварения. На всякие
нервные переживания у меня такая реакция регулярно (экзамены (когда-то),
свиданки (когда были)). Но не ожидал, что не будет отпускать столько
времени, хотя ведь вероятность отказа, понимал, что будет высока.
В 18 лет, когда впервые гулял с девушкой, три дня почти не ел, после
того, как меня отшили (заявили, что мне, небось, только постель нужна,
после чего я слиняю -- от чего офигеваю до сих пор, неужели создаю такое
впечатление?). Под конец, я на 10-15кг (не помню уж точно) похудел со
своей бывшей.
По поводу нервных переживаний: кто-то как-то спросил, что наверное и
на собеседования на работу аналогичная реакция? Вовсе нет. Никогда не
переживал, когда ходил на собеседования. Видимо, хоть какая-то
уверенность в своей квалификации имеется, поэтому и спокоен.
https://blog.libtorrent.org/2020/09/bittorrent-v2/
https://github.com/anacrolix/torrent/issues/175
https://en.wikipedia.org/wiki/Comparison_of_BitTorrent_clients
Начал посматривать в сторону использования BitTorrent v2 торрентов, ибо
от последнее что остаётся штатно с SHA1. Кроме основного изменения в
виде замены SHA1 на SHA256, в нём используются деревья Меркла, листья
которых могут прозрачно использоваться в самом BitTorrent протоколе, с
16 KiB кусочками. Кроме того, для каждого файла отдельно строится это
дерево, прозрачно добавляя между файлами padding файлы, что существенно
упрощает обновление торрентов и использование перемежающихся данных.
Также в нём более строгий bencode, без двоякого интерпретирования
некоторых случаев (типа leading zeros у integer).
Поддержка в разных библиотеках и клиентах, особенно популярных, уже
более менее хорошая. Хотя под "поддержкой", судя по задаче в
github.com/anacrolix/torrent, говорит про то, что разное
подразумевается.
Поддержка в этой Go-шной библиотеке пока ещё в прогрессе. Можно добавить
торрент, проверить его, оно всё не падает, но вот скачивать его (как
минимум, v2 only) не удаётся. Но, похоже, что бОльшая часть работы уже
проделана.
libtorrent/examples утилитами можно сделать как v2 only, так и гибридные
торрент файлы. Теперь начну делать гибридные, хоть их размер и ощутимо
больший.
https://soatok.blog/2024/09/13/e2ee-for-the-fediverse-update-were-going-post-quantum/
Хорошая статья поясняющая что именно необходимо делать для того, чтобы
использовать PQ-устойчивыми алгоритмами.
https://lists.gnupg.org/pipermail/gnupg-announce/2024q3/000485.html
Теперь (214287599168cd5eca2e2b7bd49f7666778433cc) GnuPG уже в штатном
режиме поддерживает постквантовую криптографию, а точнее Kyber/ML-KEM.
Добавил в свой основной ключ ещё и ky768_cv25519 подключ.
Знаю что по умолчанию GnuPG предлагает Kyber-768 с Brainpool-256
эллиптическими кривыми. Я не нашёл причины почему не используется
cv25519, ну кроме удобства Для Коха, который немец, а это всё
используется их немецкими госорганизациями, не признающим NIST-овские
эллиптические кривые. Поэтому сделал Kyber+25519.
Теперь у меня и TLS почти для всех исходящих соединений использует
X25519Kyber768Draft00 (59894d5d7e31354f5b7225cb82811246827778bc), и
OpenSSH уже давным давно использует Streamlined NTRU Prime, и теперь вот
GnuPG. Пока вот только штатная Go-реализация age ещё не поддерживает PQC.
WireGuard, при использовании PSK, в принципе устойчив к квантовым атакам.
Родители уезжали в отпуск, собак оставив мне. Почти две недели с ними.
Муха второй раз у меня. Первый раз поносила, волновалась. Сейчас же как
будто никакой разницы между моим домом и родительским. Отлично ели,
гуляли, не ссорились, спали только со мной. Обожаю их!
Из-за отсутствия железа, я так и не поиграл в HL Episodes. Точнее один
начал, но дальше там глюки (9b041b1dd9ff14a0eb311083cb4013ad0baa97fb)
из-за которых дальше не пройти. И, будучи любителем, исключительно
адреналиновых Quake 3 или Unreal Tournament, никогда не любил
Counter-Strike.
https://habr.com/ru/articles/842962/
Сказано же, что на 256-ой день года. Но программисты и люди тут совсем
запутались и вот недоумевают: то ли 12/13 сентября, то ли 13/14-го.
Maniac Mansion со всеми комментариями, секретами и концовками
https://www.youtube.com/watch?v=5CEf52NBSoQ
В a0e355d62a95945486bf996c582380db1caf4a2d я сказал, что в сабжевую игру
не играл. Но решил "пройти" по YouTube-у. Исключительно потому, что
знаю, что там большая реиграбельность, поэтому, не проверив всё, я бы не
считал что её закончил.
Очень здоровская игра, продуманная и интересная. На фоне остальных,
которые в то время существовали, понятно почему она так выстрелила.
https://habr.com/ru/companies/first/articles/842076/
Статья о том, чтобы вспомнить программистов из фильмов. Перед тем, как
её открыть, попытался вспомнить каких я видел. В голову только Томас
Андерсон из Матрицы пришёл. Потом вспомнил про жутко часто упоминаемый
"Хакеры" (bb765d36d72954efb52dee3c302f3d8416415a2c), но это такая туфта,
что делать вид, что типа там якобы какие-то программисты/хакеры были --
не смогу. А вообще я только половину фильмов из этого топа видел.
В прошлом месяце после разговоров с разными близкими людьми, после
отпуска в Новосибирске, у меня появились сомнения: а может быть я всё же
как-то не совсем адекватно оцениваю себя и женщин? Была не была, но
вчера решился сделать давно обдумываемое предложение выйти за меня. С
которой я не один год знаком, не ровно дышу и мысли/мечты о возможной
семье с ней посещали регулярно. Ответила, что нужно время на обдумать.
Сегодня получил отказ. Так что, мои оценки и ожидания остаются всё так
же корректны, я не заблуждаюсь. Даже полегчало, ибо подвешенные вопросы
"согласится или нет?", "возможно ли это или нет?" отвечены и не терзают.
https://www.youtube.com/watch?v=4R-fjYEBN2w
Вот это самые самые мои любимые игры. Я правда так и не поиграл в первый
Maniac Mansion. Dig -- скучная фигня, как по мне. Про Labyrinth что-то
не в курсе. Но всё остальное -- непревзойдённое по юмору и отлично
проведённому времени.