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 что-то
не в курсе. Но всё остальное -- непревзойдённое по юмору и отлично
проведённому времени.
https://soatok.blog/2024/09/10/invisible-salamanders-are-not-what-you-think/
https://eprint.iacr.org/2020/1491
https://www.youtube.com/watch?v=3M1jIO-jLHI
https://crypto.stackexchange.com/questions/87771/key-committing-aeads
Страшные вещи творятся в мире криптографии: оказывается, популярные AEAD
режимы типа AES-GCM или (X)Salsa20/Chacha20-Poly1305 могут быть небезопасными
в некоторых протоколах. Так как возможно сделать несколько ключей, для
которых MAC сообщения будет вполне себе корректным. И это можно
использовать и для атаки на IKEv1+PSK, OPAQUE, PAKE, Shadowsocks,
Kerberos, age, JOSE, HPKE.
https://tmendez.dev/posts/rng-git-hash-bug/
Меня не много что противет больше, чем YAML формат. Вот и тут у людей
урезанный хэш Git коммита, вставленный в строчку без кавычек, внезапно
превратился в большое число и всё пошло наперекосяк. Можно представить,
как мне когда-то не понравилось письмо в NNCP рассылку с предложением
использовать YAML вместо Hjson, ибо же он является де-факто стандартом
например в ansible, puppet, cloud-init и широко распространён. Это
просто ещё одно доказательство того, что популярные технические решения
часто бывают не вразумительными и не адекватными. Причём меня удивляет
больше то, что все эти ansible/puppet зачастую используются не столь
квалифицированными кадрами, у которых вероятность ошибки, из-за
некорректного типа данных YAML, будет выше.
https://www.youtube.com/watch?v=puK-kHBxGE0
https://www.youtube.com/watch?v=Gt9tWO0Zaxo
Уже второй человек за сутки мне упомянул про одного комментатора и его
работу с турниром по тетрису. Оказалось, что в 2019-ом я уже смотрел его
(aa317f7ddfd0a59bd9827b44a61a295daafddfd9). Но сейчас другой чемпионат
посмотрел. Как же, действительно, он захватывающе, интересно и забавно
комментирует!
Буквально за последние пару дней увидел, что "Wildeberries" стал "WB".
А "Tele 2", "Т2". Коллега сообщил, что Тинькофф банк стал Т-Банком. Это
типа люди настолько деградируют, что эти уже слишком длинные слова для них?
https://habr.com/ru/companies/flant/articles/840448/
Пишут про его технические преимущества. А для меня SourceForge сам себя
убивал планомерно (163277f837f264ad47cc4f8f7952ff599244bcdf). Ведь все
мои проекты там изначально обитали. История с тем, что они меняли
собранные бинари и подкладывали туда рекламу. Потом они уничтожили
возможность подписываться на рассылки (без исполнения закрытого кода) и
скачивать их архивы. А рассылки это же основа основа взаимодействия!
Впрочем... GitHub вообще этого не предлагает. Но сам факт стремительных
изменений из-за которых просто толпами валит народ с платформы.
Sergey Matveev [Sat, 31 Aug 2024 05:58:45 +0000 (08:58 +0300)]
PQC для не криптографов
https://keymaterial.net/2024/08/30/pqc-for-non-cryptographers/
Отличная статья популярно расписывающая что это за новые
стандартизованные NIST-ом постквантовые алгоритмы KEM и подписи.
С пояснениями про размеры и производительность.
Sergey Matveev [Thu, 29 Aug 2024 09:27:20 +0000 (12:27 +0300)]
Включение X25519Kyber768Draft00 для TLS 1.3 в Go
https://www.ietf.org/archive/id/draft-tls-westerbaan-xyber768d00-03.txt
В Go 1.23 появилась поддержка постквантового согласования ключей для TLS
1.3, используя Kyber-768 с X25519. GODEBUG=tlskyber=1 может это включить.
Размер ClientHello при этом довольно внушительного размера становится,
запросто не умещаясь в один TCP сегмент.
Sergey Matveev [Wed, 28 Aug 2024 19:36:25 +0000 (22:36 +0300)]
Журнал "Подводная лодка"
Как-то раз в детстве мне подарили один из номеров сабжевого журнала.
Очередной журнал на тему ИТ. Смутно помню что там было, но для меня
маленького, конечно же, было интересно.
На одном из BitTorrent трэкеров нашёл его подборку. Наобум открыл из
номеров (1998-07). Есть раздел про "бесплатное" программное обеспечение.
Оказалось, что там просто дичайшая лютая мешанина из "свободного", "open
source" и бесплатного. Всё это как синонимы используются. Ужас.
Полистал, напоролся на раздел про "MPEG-3". Оказалось, что это про
"MP3". Правильно вообще-то "MPEG(-1) (Audio) Layer-3". MPEG-1, MPEG-2,
MPEG-4 -- это про видео. MPEG-3 по сути не было. Ужас.
В одном из разделов сказано что "Tcl -- язык скриптов, аналогичный
JavaScript". И, как оказалось, Sun (!) создала его (!) для написания
пользовательских интерфейсов под "X-Windows" (!). Ужас.
В следующем номере журнала появился раздел про "LINUX" (в котором
говорится, что Sun Solaris это клон (!) "UNIX"). Почти к каждому
предложению я мог бы делать face-palm и яростно критиковать. Ужас.
В одном из разделов посвящённых архиваторам, заголовок "архиватор или
протокол V.29bis"? Я думаю "что за V.29"? Знаю про V.42bis, который про
компрессию данных. Про него же они и сами в предыдущем номере упоминали.
Внутри секции речь только про V.42bis, никаких 29. То есть в заголовке
просто от балды набранный номер.
А ведь тогда вполне себе нравилось читать подобные журналы.
Sergey Matveev [Tue, 27 Aug 2024 13:45:44 +0000 (16:45 +0300)]
Где я уже не в теме IPv4
С multicast адресами на практике я работал только в IPv6. Вообще проблем
и неожиданностей у меня не возникало. Коллега упорно продолжал использовать
IPv4. А у меня вообще ничего на IPv4 multicast адресах не завелось, ничего
не работало должным образом. Явно о чём-то не осведомлён, что-то
недопонимаю в нём. Да и чёрт с ним, с этим legacy протоколом! Даже не
собираюсь голову ломать как там пользоваться multicast-ом или что за
загвоздки на моей системе с ним. Но когда люди считают, что если типа
хоть что-то знаешь в IPv6, то автоматом это и подразумевает IPv4 мир --
конечно же не правда, ибо, как минимум, IPv4 банально сложнее.
Sergey Matveev [Tue, 27 Aug 2024 07:38:11 +0000 (10:38 +0300)]
Безопасность Telegram
http://www.cypherpunks.su/FAQ.html#Telegram
https://www.securitylab.ru/news/551491.php
https://dxdt.ru/2024/08/26/13764/
https://dxdt.ru/2024/08/25/13731/
https://lenta.ru/brief/2024/08/25/voenkory-durov/
https://blog.cryptographyengineering.com/2024/08/25/telegram-is-not-really-an-encrypted-messaging-app/
https://blog.thc.org/keep-pavel-durov-locked-up
Вся новостная лента завалена новостями про арест Дурова.
Давным давно известно, что Telegram имел безграмотный алгоритм
шифрования, да ещё и с backdoor-ом по сути (тема про роль сервера в
DH-обмене). Позже вроде что-то поменялось и возможно он уже не настолько
безнадёжно плох (хотя и прежде эпитетами Apple заявляли об ультимативной
защищённости протокола). Он постоянно наезжает на Signal и просто
обманывает людей об уровне своей безопасности, где E2E ещё надо явно
включать. Дуров своими выходками не раз показывал что является моральным
уродом. Но его театр с якобы руганью с ФСБ и уездом из-за этого из РФ, я
считаю отличной пиар-акцией. Если же это не так, то это тем более
говорит о Дурове как о гнилом человеке. Бесчестность, лживость и
гнусность -- вот бизнес-план и реклама этого IM-а.
А вот то, что наши вояки его активно используют -- это конечно же
удручает. С одной стороны, наверное только ФСБ и может читать всю
переписку этого IM-а. Возможно давление на Дурова никак её может и не
вскрыть (если его решения не могут контролировать серверы). А может и
может. Поэтому наших чиновников и вояк просят удалить всякую историю,
которая всё равно на серверах останется?
Безусловно, если выбирать между WhatsApp, Telegram, Viber, то для
граждан РФ выбор всё равно будет в пользу Telegram. Просто ничто из
этого не относится к безопасным IM-ам и выбор идёт между лицами кто
будет тебя читать/слушать.
Sergey Matveev [Mon, 26 Aug 2024 08:50:13 +0000 (11:50 +0300)]
Dozer -- Rust на чистом Си
https://notgull.net/announcing-dozer/
Автор понимает важность bootstrap-а и поэтому решил написать Rust на Си.
А то ведь изначальные версии Rust вообще на OCaml были написаны, который
тоже, в свою очередь, написан сам на себе. mrustc у меня на FreeBSD так
ни разу и не собрался. Если будет вменяемый работающий bootstrap для
Rust, то это сделает уже хоть какую-то допустимость наличия Rust в ОС.
Sergey Matveev [Mon, 26 Aug 2024 05:17:15 +0000 (08:17 +0300)]
Таська с камешками
Наша собака Тася где-то научилась притаскивать камешки нам для обмена.
На ручки её поднять или угостить -- она сбегает за маленьким камешком,
принесёт, положит перед тобой и давай просить поднять/угостить её. Тётя
говорит, что как-то утром, слышит кто-то скребётся в дверь входную.
Открывает, а Таська перед ней кидает камешек и без лишних вопросительных
взглядов бежит к ней на кухню.
Sergey Matveev [Sun, 25 Aug 2024 17:32:08 +0000 (20:32 +0300)]
Остаток отпуска
Провёл на даче с родителями и собаками. Ничего не делал, только валялся
с собаками, ел, иногда смотрел телевизор вместе. Даже книг не читал.
Один день покатался на велосипеде. На велосипед я не садился наверное
минимум пару лет, но выбрал как никогда длинный маршрут. Всего-то, судя
по карте, где-то около 40км. Но у велосипеда не поднимается выше
сиденье (ноги прямо не распрямляются), что было основной причиной жуткой
усталости после такой поездки. Но вновь отмечаю как здорово на
скоростном -- прям качественно по иному. На нём всего три скорости, но я
почти всю жизнь на односкоростных ездил.
Sergey Matveev [Tue, 20 Aug 2024 17:22:48 +0000 (20:22 +0300)]
День рождения музея Дмитрия Бачило
https://16-bits.ru/museum/
Собственно, в Новосибирск (523de9e716dc866f5cf49758a524156de84e427d) я
ездил в первую очередь ради празднования полутора лет музея
ретрокомпьютеров и игровой техники Дмитрия Бачило. Год не праздновался
из-за занятости Бочи и это глухой зимой бы проходило.
Музей находится в институте вычислительной техники. В прошлом посте есть
ссылка на фотографии, на фоне которого я и запечатлён. В нём появилась
первая нода FidoNet в СССР. Не в какой-то Москве, а в Академгородке
Новосиба!
Кроме двух штатных помещений музея, ещё были открыты три других
вместительных, где размещались вкусняшки, вода, чаи, сидячие места.
Народу было не мало. Мы с мамой на глаз не умеем оценивать количество
людей, но наверное не меньше сотни.
В одной из комнат были установлены четыре компьютера, объединённых в
сеть, с ЭЛТ мониторами, наушниками и мышками. Там устраивали deathmatch
по Doom 2 без остановки. В другой комнате с массой ЭЛТ телевизоров и
игровых приставок были матчи по Mortal Kombat. На улице установлены
колонки, здоровый ЖК телевизор и две гитары для Guitar Hero, где тоже
проходили соревнования. Победители получали футболки с музеем.
Был показ очередного выпуска "Кремниевых титанов" (46) -- мы первые кто
его увидел.
Прикоснулся к куче Amiga, Commodore 64, SGI Octane, Sun Microsystems
железу. На одной из Sun рабочих станций поиграл в Quake 2.
Конечно же, сфотографировался с Дмитрием. Он заценил мою "классную
футболку" (по его словам). Её я для особых случаев берегу, а тут прям
идеально в тему, ведь на ней же тоже, по сути, ретро-компьютер.
Сообщил, что приехал из Королёва. А он отвечает, что к нему уже кто-то
из РКК Энергии (из Королёва) приехал! Вот какова вероятность, что в
Сибирь полетят из одного из областных городов, аж два независимых
человека (строго говоря, минимум три, так как я же с мамой был)? Видимо,
наукоград это не просто так, а повышенная концентрация вот таких вот.
Где-то через 1.5-2 часа вынесли торт, в честь ДР то. Это должно было
быть полтора торта. Поэтому вместо одного большого были части какодемона
из Doom! Которых Боча попытался порезать пластиковой электрической
бензопилой (как в Doom). Потом правда притащили нож, ибо пластик не брал
мастику какодемонов. Выложили на поднос с пентаграммой и свечами по
углам. Забавно придумали :-)
До самого конца мы там не стали засиживаться и ушли прежде. Там какая-то
музыкальная программа должна была быть ещё.
В общем, я очень доволен этой поездкой. И как самим Новосибом, так и
музеем, в который мои немалые средства вложены, так и самим праздничным
мероприятием. Мать не планировала со мной в него ехать, ибо ей не
интересно, лучше отдохнёт. Но ближе к делу передумала. И Боча ей
понравился. И особенно, что у всех на лицах улыбки. И маленькие дети с
родителями и большие 40-50 лет дядьки. Все консоли постоянно заняты
кем-то, ничего не простаивает. Молодёжь рассматривает каждый уголок
музея.
Sergey Matveev [Tue, 20 Aug 2024 15:22:02 +0000 (18:22 +0300)]
Побывал в Новосибирске
http://www.stargrave.org/images/202408-NSK/1.page.html
Наконец-то совершилась долгожданная поездка! Билеты были куплены
заранее, когда я решил (b9213c9adc216169c73fa3e0e2feb79b3b6d1e5e) уйти в
отпуск. Но буквально за пару дней я слёг с каким-то недугом.
Расстройство пищеварения, температура и всё в таком духе. Поездка, как и
первые два дня, прошли на всяких таблетках. Благо, потом отошёл. А то и
вообще боялся, что придётся всё отменить.
Позвал и маму с собой, чтобы и она город посмотрела, и вдвоём всё равно
веселее. Но делом принципа было чтобы всё можно было оплатить наличкой,
никаких там банковских карточек. Забронировать отель, оказалось, можно с
оплатой на месте.
Город очень понравился, как и вся поездка! Большой, современный (хотя
некоторые это как недостаток могут воспринимать, ибо мало старых
исторических мест), чистый, опрятный, уютный.
С погодой нам везло почти все дни. Ни разу не попали под дождь.
Синоптики обещали проливные дожди всё это время. Было либо ночью, либо
утром. Первые два дня было очень жарко и постоянно в испарине. Дальше
стало полегче, похолоднее. Много (большинство?) людей в одежде с длинным
рукавом -- сибиряки, собственно? Мы же обливались потом.
Почти всё время ездили на метро. Побывали на каждой станции, выходя
наружу. Лишь одна экскурсия в Академгородок была на машине, и дорога в
аэропорт на автобусе. Многие советовали чуть ли не за 2-3 часа заранее в
него выезжать из-за возможных пробок. Но ни разу не попали в них
абсолютно нигде, чему удивлялись все водители. Тоже тут везло. В
Академгородок ездит удобная отличная электричка.
В первый день, когда совершенно не спали ночью, решили сразу пойти в
зоопарк. На троллейбусе туда легко доехать. Действительно, он огромных
размеров! Точно больше московского. Здорово там. Однако... в Москве всё
же ощутимо больше разнообразия. Хоть и теснее. Мишки там вовсю играли.
У нас только белки могли бы выйти к людям и сновать не боясь между ними.
Там же ещё и много бурундуков. Прям вот выбегают и требуют жрачки.
В течении следующих двух дней гуляли по городу и музеям. Побывали в
краеведческом, в том числе его филиале "физика". В художественной
галерее, где была также выставка на египетскую тему. В галерее Рериха.
Посмотрели все архитектурные достопримечательности. Их колоссальнейшего
размера театр! Набережную с мостами.
Чисто случайно увидели музей связи Новосибирска. Где я получил массу
удовольствия! Столько всяких штук для связи, как ушедших в своём времени
(модемы, пейджеры), так и современных. Ну нравится мне весь этот фетиш!
Большая часть моей жизни посвящена ведь всему, что касается связи.
Импульсивно я предложил в один из дней прогуляться снова по набережной.
Как оказалось, там был большой концерт с Олегом Газмановым. Мне то
конечно пофиг на него, но де факто вот побывал. И как здорово же
посмотреть на столько людей (тысячи!) в атмосфере выходного дня и парка.
Один из дней был посвящён единственной цели поездки в Академгородке.
Туда мы поехали на электричке, что удобно. Погуляли, посмотрели как
живут и работают все эти академики. А прямо на станции расположен музей
железнодорожной техники. От паровозов, до современных электровозов с
разношёрстными по предназначению вагонами.
На следующий день отправились снова в Академгородок, но уже экскурсией.
Захватив и Обское море, и ГЭС и ботанический сад и ещё несколько
достопримечательностей в городе. Я думал, что ГЭС это нечто потрясающее
по размерам, но ихняя только город и обслуживает и вау-эффекта не
производит. Зато посмотрели на хоть какую-то ГЭС в своей жизни. В
Академгородке побывали и рядом с НГУ (здание в форме храма-ракеты), где
относительно не мало людей учатся. Мне кажется, что чуть ли не четверть
всех знакомых программистов были из Новосибирска. А вот из того же
Санкт-Петербурга -- никого. В Академгородке были и рядом, с
запоминающимися своим видом, "гусями", где тьма конференций проходит.
Экскурсоводом был длинноволосый студент. Увидев мою футболку с slamming
brutal death metal-ом из Питера, показал свою в тему. Говорит, что в
Новосибе, к сожалению, по пальцам посчитать death/black метал групп,
поэтому и мой вид им в новинку.
В один день там был "яблочный спас" -- какой-то праздник православный.
Наверное я впервые в жизни услышал не унылую, а реально клёвую игру на
колоколах в церкви в этот день. Как-будто метал-ударника пригласили и
вместо палочек выдали верёвки. Заменить некоторые удары барабанами,
добавить электрогитары перегруженные -- отличный метал бы вышел,
Batushka (838470253d160abd85e5d3f0c5bcb8daad3c93d6) будут отдыхать.
Аэропорт красив. Буквально через пару минут после захода в него, не
попав ни в одну пробку, начался не просто ливень, но и с градом, который
барабанил по крыше. По ночам видели как мерцают у них молнии. Мне
показалось, что грозы у них куда более лютые.
Что там было прям совсем сибирского? Да вот ничего, к сожалению. Своей
кухни они и сами говорили что нет. Хотели зайти к бурятам, но не вышло,
не по пути. Своя природа? Да всё идентично нашей. Возможно количественное
соотношение деревьев иное, возможно больше лиственниц каких-нибудь, но
разница не заметна.
Темп жизни у них явно более медлительный чем в Москве. Хотя с ней вряд
ли какой из городов РФ сравнится, конечно же. Люди вроде бы более
сдержанны, спокойны. Но возможно всё из-за темпа.
А вот что и мне и маме было заметно: женщины там отличаются. Я прям
точно сказал бы, что в целом они более красивы. Мать говорит, что наши
выглядят дороже. Ну да... накладные ресницы, надутые губы, татуировки,
вообще непойми какая одежда, особенно показывающая почти всё -- это всё
дороже, но оно уродует, отталкивает, только уменьшает привлекательность.
Концентрация хорошеньких, без выкрутасов, красивых девушек и женщин, в
не-оторвать-глаз платьицах -- там зашкаливала. Может быть нам
показалось? Вернувшись в Москву, разница снова ощутима!
Я боялся, что там будет много невзрачных новостроек, типа спальных
районов. Боялся, что будут раздолбанные улицы и грязь. Боялся, что это
всё не то чтобы приятное впечатление оставит. Но всё совсем наоборот.
Однако, возвратившись в Москву, ещё больше офигеваешь уже от неё, от
исполинских размеров, на несколько порядков большего количества
достопримечательностей, от развитейшейго транспорта (в Новосибирском
метро всего 14 станций, две ветки, одна пересадка). Новосиб здоровский,
но Москва на его фоне ещё больше впечатляет.
Sergey Matveev [Tue, 13 Aug 2024 09:55:57 +0000 (12:55 +0300)]
Ценность чувства юмора, посмотрел третий сезон Теории большого взрыва
Не было в планах, ибо двух мне достаточно, да и многие говорили, что
дальше уже не так там здорово. Но мне прям вообще ничем не охота
заниматься за компьютером и поэтому решил позволить себя guilty pleasure
(коллега научила этому словосочетанию, ох уж эти женщины :-)).
Дальше смотреть ТБВ не буду точно. Ибо по сути мне весь третий сезон не
понравился. Да, были забавные места, но... целые эпизоды там были скучные.
Однозначно мог бы не советовать этот сезон, в отличии от первых двух.
У Говарда на какое-то время появилась девушка. Некоторым женщинам, с кем
это обсуждал, он неприятен и омерзителен. Я же ему симпатизирую и сам,
как мне кажется, был таки же озабоченным. Но его девушка -- это просто
ужас. Когда в реальной жизни люди говорят, что оно из самых главных в
человеке это чувство юмора, то я не то чтобы всерьёз это воспринимал. Но
девушка Говарда -- прям ярчайший пример того, что ничего не сможет
компенсировать её отсутствие чувства юмора. Она чуть ли не физиологически
вызывала неприязнь и хотело бы, будь это в реальной жизни, держаться
подальше от потенциальных разговоров с ней. И никакой сну-сну не смог бы
компенсировать. Тут я Говарда не мог бы понять.
Много стало какой-то мыльной оперы в этом сезоне. Темы ревности и
отношений. И это мне не очень приятно было смотреть, ибо это уже не то
чтобы забавно, плюс пережито на собственном опыте. В куче серий то одна,
то другая шалава. Какие же это задроты и ботаники? Им лет сильно меньше
чем мне, но относительно регулярная постель имеется, а они всё плачутся
по этому поводу. Да и, судя по разговорам, и проституток не чураются.
Но вот эпизод про то, как Леонард познакомился с Шелдоном -- очень
понравился! Только его и стоит посмотреть из всего сезона.
Sergey Matveev [Sun, 11 Aug 2024 12:27:25 +0000 (15:27 +0300)]
BGP роли
https://ripe85.ripe.net/presentations/3-20220824-wt-RFC9234-RIPE85.pdf
https://habr.com/en/companies/qrator/articles/710420/
BIRD поддерживает RFC 9234, в котором BGP участники могут назначать себе
роли (provider, customer, RS, RS-client, peer) и их BGP демоны автоматом
будут фильтровать протёкшие маршруты.
Попробовал в домашних условиях. У меня же по сути есть мой центральный
сервер (provider), а все остальные являются его customer. А второй
сервер с моим компьютером имеет peering. При этом экспортируют они все
2000::/3 маршруты. Задав все эти роли, действительно, увидел, что
маршрут до провайдера через peering соединение отбрасывается.
Sergey Matveev [Sun, 11 Aug 2024 11:43:47 +0000 (14:43 +0300)]
Web-browser по русски
https://ru.wikipedia.org/wiki/Web-browser
Я долгое время писал (web-)"броузер". Большинство пишет "браузер", но
мне не нравится как оно выглядит и привычка берёт верх. Где-то увидел
сочетание "web-обозреватель" и оно так понравилось, что решил недавно
использовать именно его. Страница на Wikipedia окончательно подтвердила
корректность этого выбора, ибо она тоже предлагает этот вариант перевода.
Sergey Matveev [Sun, 11 Aug 2024 11:27:25 +0000 (14:27 +0300)]
Ввод текста в терминале
https://habr.com/ru/companies/ruvds/articles/834780/
Автор пишет, что ему понадобилось 15 лет, чтобы привыкнуть к
Ctrl-A/Ctrl-E для перехода в начало/конец строки. А я вот даже
и не знаю что это за Ctrl-A/E. Если так не нравятся эти сочетания
из мира Emacs, то зачем себя насиловать?
Он много чего критикует. Типа есть несогласованность между разными
программами. Какие-то программы не поддерживают стрелочки, типа cat, nc.
А с какой стати они должны? Это *не* интерактивные программы. Автор
хочет странного. Но, благо, упоминает rlwrap например.
Он пишет, что являясь пользователем Vim-а, удивляется сочетанием клавиш
в Readline. Поколение людей, которые даже не пытаются читать
документацию. Не нравятся Emacs сочетания? Ну так включи Vi-режим
редактирования в этом Readline или libedit! Любая POSIX-совместимая
оболочка тоже поддерживает как Emacs, так и Vi способы редактирования. У
меня абсолютно везде Vi-режим, поэтому я никогда не пользуюсь Ctrl-A/E
или подобным. Конечно, если документацию не читать, то жизнь будет
сложнее и труднее из-за разных предпочтений людей.
Не раз упоминает про работоспособность стрелочек. Если умеешь
пользоваться Vi-режимом, то зачем и где нужны эти стрелочки? А даже если
и хочется их понажимать, а появляются крякозябры, то зачастую,
действительно, проблемы уже могут быть с терминалом, а точнее с
рассогласованностью настроек всей его экосистемы. Тут да -- это всё тот
ещё геморрой и страшное legacy. Но настроив один раз, годами не
сталкиваешься с проблемами.
Плюс зачастую программы позволяют вызывать внешний редактор. Что psql,
что всё что использует readline например. Популярные web-обозреватели по
умолчанию (в отличии от lynx или xombrero) не умеют редактировать свои
поля ввода в внешнем редакторе, но для них есть плагины для этого.
Sergey Matveev [Sun, 11 Aug 2024 08:47:34 +0000 (11:47 +0300)]
Изучая HTML и Интернет в 1996
http://82mhz.net/posts/2024/08/learning-about-html-and-the-internet-in-1996/
Автор просто демонстрирует книжку из далёких 90-х, где про HTML
рассказывается. Также отметил раздел с предсказаниями:
The rise and rise of the PC, with ever more functionality, leads to
the prediction that with even higher chip integration, thin screens
and lighter power supplies (not yet invented) people will be able to
carry pocket-calculator-size machines with which they can access
information sources and draw on unlimited computing power, using
digital radio links, supported by satellite if necessary, from
anywhere in the world. At the other end of the scale it is argued,
with equal logic, that if computing power, decentralized to nodes
and servers, becomes plentiful and cheap, then the terminal carried
or used by an individual can be as dumb as they used to make them.
If so, it is argued in return, then there will be the problem of
safeguarding the personal information and the programs stored
outside the individual's control.
Оба предсказания сбылись: у нас есть суперкомпьютеры, даже работающие со
спутниками (LTE и Starlink намекают), с гигабитными скоростями доступа к
Интернету, но при этом они остаются в общем-то тупейшими устройствами
для удалённого доступа к службам в "облаках" (а современный web
настолько жутко тяжёл, да).
А у нас в 90-х была книжка "Internet for dummies", где рассматривался, в
том числе, и Lynx броузер. И вот до сих пор я его тоже продолжаю использовать.
Sergey Matveev [Sun, 11 Aug 2024 08:20:08 +0000 (11:20 +0300)]
Время сборки Signal
Так уж вышло, что на фоне его блокировки в РФ, в рассылке FreeBSD
спросили почему он так долго собирается. Говорят, что на современном
ПК это может занять 36 часов. Ведь совсем недавно писал про убогость
(a8bd780832dab15e67ea5d73b28875d293212ab3) современного софта.
Sergey Matveev [Sat, 10 Aug 2024 22:03:36 +0000 (01:03 +0300)]
DEFCON24 срачи
https://old.reddit.com/r/Defcon/comments/1ep00ln/def_cons_response_to_the_badge_controversy/
https://www.entropicengineering.com/defcon-32-statement
Осматривая новости, увидел какой-то срач касающийся DEFCON-а. Перешёл
по ссылке где выражено мнение компании, которая в этом сраче с DEFCON
участвует. В первом же абзаце:
Entropic Engineering was approached in January ‘24 by the DEFCON
Badge Team, who were looking for a small company to partner with.
They expressed that they specifically wanted to work with us as a
woman-owned, queer- and POC-driven engineering firm to develop an
electronic badge with a gaming element for this year’s conference.
DEFCON выразил желание работать с ними, именно потому что компанией
владеет женщина и там работают педики? Всё остальное прям почти
физически противно читать уже. Что за безумие на этом Западе творится?
А потом ещё удивляются почему какие-то недопонимания и тёрки случаются с
компаниями, которые они выбирают по чему угодно, но не по профессиональным
техническим критериям. Омерзительно.
Sergey Matveev [Sat, 10 Aug 2024 18:20:47 +0000 (21:20 +0300)]
Интернет дома работает менее чем наполовину
Дома перестал ходить трафик (даже ping) до моей VPS-ки обеспечивающей
IPv6 доступность. С другой VPS, с рабочей машины -- всё прекрасно ходит.
tcpdump-ом вижу, что ICMP пакеты уходят наружу, но не доходят по VPS-ки
(на неё через промежуточные хосты зашёл).
traceroute на всех трёх машинах показывает совершенно разные пути.
Причём из дома оно пытается идти через Акадо. Не встречал его в наших
путях прежде. Домашний провайдер что ли как-то свои uplink-и поменял?
Так что пока сижу без IPv6. Большая часть Интернета недоступна, как и я
для неё.
Sergey Matveev [Sat, 10 Aug 2024 17:53:42 +0000 (20:53 +0300)]
Снова смена OSPF на BGP
Ради переключения контекста и отдыха, решил снова повозиться с тестовым
кластером на работе, который когда-то (c7e63aec647725b80611c735b34f39474888c6cc)
настраивал стажёр, где был поднят OSPF в стойке. Решил сделать простейшую
задачу: подключать двумя Ethernet хвостами (не только одним) серверы в
коммутатор, чтобы OSPF автоматом понял что есть несколько путей и появился
бы failover (а то и ECMP).
Был уверен, что OSPF весь из себя такой умный и легко сможет понять, что
если он слышит через коммутатор себя самого, то значит просто двумя
хвостами подключён. BIRD пишет сообщения что получен плохой пакет с
таким же идентификатором маршрутизатора как и у него. И как бы типа в
общем-то всё работает, но... маршрут постоянно прыгает и меняется то на
один NIC, то на другой. Так что на практике ничего не работает.
Пошёл к сетевикам, спросить это либо я криворукий, либо от OSPF многого
хочу, либо ещё чего. Говорят, что OSPF такое не дюжит, действительно.
Облом. Удручён. Ну не хочу я с L2 связываться, ибо нефиг.
Додумался только до того, чтобы BGP поднять на них, ибо он уже
point-to-point и коммутатор ему не помеха. Неприятно с ним то, что нет
autodiscovery и нужно прописывать номера автономных систем. Но это мелочи.
Избавился и дома от OSPF, снова, просто ради практики. Но с появлением
10GbE мне надо чтобы трафик до второго сервера, пускай даже с
дополнительным hop-ом, но ходил через 10GbE соединения. В OSPF я это
решал добавляя руками стоимость каналов. А в BGP такого нет. MED
например имеет меньший приоритет чем проверка длины AS-пути.
Вариантов как поменять приоритетность маршрутов в BGP -- масса. Возможно
я творю ещё большую дичь, но пока сделал так: для каждого интерфейса
(WAN, 1GbE или 10GbE) применяется export фильтры, который добавляет
один из трёх community, типа метка по какому каналу он приходит. А в
import фильтрах, если среди community есть только та, которая с меткой
10GbE, то priority увеличивается. До одного и того же хоста мой
компьютер может дойти напрямую через WG туннели поверх 1GbE, через WG
туннели до промежуточного сервера, с которого снова либо через 1GbE,
либо через 10GbE соединения до сервера. В общем, много путей. Но только
тот, кто проходит исключительно через 10GbE, будет иметь ровно один
нужный мне community.
Вроде работает всё как надо. До управления приоритетами в этом BGP, у
меня на одном хосте могли быть выбраны маршруты через один интерфейс, а
на другом через совершенно другой и трафик шёл вообще асимметрично.
В DN42: https://dn42.eu/howto/BGP-communities
community используются чтобы помечать и скорости и задержки и уровень
безопасности каналов между хостами.
Sergey Matveev [Thu, 8 Aug 2024 10:14:41 +0000 (13:14 +0300)]
Go linters
В Python я использовал много linter-ов. pep8, pycodestyle, mypy, pylint
и ещё какие-то. И многие из них приходилось настраивать, ибо что-то
сильно шумит, что-то я не считаю стоящим внимания, и т.д..
В Go же я просто использую staticcheck
(f1d82ecfdd6e17d41af5661a0dee479d7749293f). И нашёл я его когда искал
что-то, что могло бы сказать о deprecated вещах, которые я продолжаю
использовать, а также о ненужных "_" переменных.
Кроме него, у меня, собственно, gopls LSP сервер и Vim с ним работающий.
Вчера заметил, как он выдаёт предупреждение о логически не имеющим смысла
коде типа:
if err != nil {
...
if err != nil { }
}
Я не понимаю как я годами программируя на Go, не задавался особо
вопросом linting-а. Я знаком с golint, помню его дикое количество
проверок и что там многое надо настраивать, чтобы уменьшить шум и
Google-specific предпочтения, поэтому для меня его запуск это какая-то
боль, которую я и не делаю. Видимо, это просто язык/компилятор так
хороши, что и без linter-ов можно жить.
Но LSP показал, что там много интересных онных. Но gopls не использует
чего-то хитрого или своего -- он просто переиспользует родные средства
из golang.org/x/tools/go/analysis. В нём включены почти все, но не все.
Среди крайне приятных и интересных оказался
golang.org/x/tools/go/analysis/passes/shadow, который показывает где
какая переменная "оттеняет" (err, как правило) предыдущее её
определение. Этого мне точно не хватало прежде! Я не раз допускал ошибки
из-за этого оттенения, в том числе в Си. Есть какая-то доля случаев,
когда это осознанный и явный шаг, ради удобства, но их мало. Поэтому в
идеале, даже если это ничему и не мешает, но всё же избавляться по
возможности от этого оттенения. /shadow чётко говорит на какой строке
кто кого оттеняет.
/fieldalignment анализатор говорит насколько компактнее можно сделать
поля в структуре. Безусловно я в курсе, как и в Си, о возможном padding
после полей, но в Go я редко задумываюсь об его оптимизации. Но нередко
не помешало бы. Причём, он не только может сообщить о возможной
оптимизации, но и самостоятельно выполнить её, чтобы не ломать голову. В
tools/go/analysis/passes/fieldalignment/cmd/fieldalignment можно собрать
команду, которой передать fieldalignment -fix ./....
Обожаю, что в Go нередко встречается подход как в suckless проектах,
как в моём web-сервере (bc087ee7e3be4177e83bc39ae3b1497e336ec5da),
встраивания настроек прямо в сам исходный код программы. При любом
изменении надо будет её перекомпилировать, да. Поэтому для штатных
(golang.org/x) linter-ов в Go нет какой-то программы с YAML/JSON/whatever
конфигурационным файлом. Всё делается очень просто:
а дальше эта программа используется вместе с vet:
go vet -vettool=/path/to/that/linter ./...
А ещё я в gopls увидел упоминание mvdan.cc/gofumpt утилиты для
форматирования кода. go fmt хорош. goimports, который я на самом деле и
использую -- ещё лучше, так как почти полностью заставляет забыть о
возне с добавлением/удалением import-ов. Но gofumpt полностью закрывает
все потребности перфекциониста. Например:
var (
foo = ...
)
он преобразует в: var foo = ...
var foo = ...
var bar = ...
наоборот в:
var (
foo = ...
bar = ...
)
Добавит или удалить пустые строки между функциями, где go fmt ничего не
делает. "foo int, bar int" заменит на "foo, bar int". Даже закрывающие
скобочки может детерминированно подправить, как надо.
Или вот все Python программисты которых я видел -- так себе программисты
и поэтому у нас в Python экосистеме всё всегда было плачевно касательно
автоматического форматирования. То ли это просто Python такой дряной. Но
Go почему-то легко закрывает все хотелки моего внутреннего
перфекциониста. Даже в Си всё очень здорово с clang-format-ом, вообще
про форматирование не думаю, кроме как константных таблиц.
Sergey Matveev [Thu, 8 Aug 2024 09:51:35 +0000 (12:51 +0300)]
EVS кодек в VoLTE
https://en.wikipedia.org/wiki/Enhanced_Voice_Services
Пару месяцев назад я обновил себе сотовый телефон, в котором
принципиально хотел видеть работу в VoLTE
(9e9b0a3dd40fc7f049e0a0ca888de42c8b53a72a).
Да, до сих пор всё так и не отказываюсь от сотовой связи, но она хотя бы
стала useable, если не поднимать трубку на незнакомые телефонные номера
(82eec4df2a680c4827e66a8ddae067a6f43acfd0). Это не отменяет того, что он
является радиомаячком, выдающим местоположение, а то и потенциальным
удалённо управляемым подслушивающим устройством. Но для важных
обсуждений его можно просто с собой не иметь или выключить, вынув
батарейку. Ну а с первым пока просто мирюсь, хотя в целом мне не нужна
мобильность (ведь и от ноутбуков отказался).
С некоторым людьми у меня просто потрясающее качество связи. Прям
существенно шире диапазон передаваемых частот, даже приятно общаться,
ибо человек не бубнит в трубку. Но только с некоторыми. Я не на 100%
уверен, но увидел простую корреляцию -- отличное качество голоса только
с другими абонентами Билайна. С МТС и Мегафоном -- бубнёж. У всех на
экране VoLTE, у меня "HD" кодек горит иконочка, но явно не полный
диапазон частот передаётся. И точно не от аппарата (микрофона) зависит,
ибо у двух знакомых одинаковые смартфоны, но только с разными ОПСОСам
(Билайн и МТС).
И на странице Wikipedia написано:
Inter-carrier interoperability is a problem, as calls are by default
routed over narrowband connections which downgrades the voice to
narrowband quality instead of EVS and HD Voice even if the
individual phones and carrier networks all support EVS.
Вот везде мощные CPU, поддержка хороших аудиокодеков, сотни мегабит
радиоканалы, но несколько десятков килобит сжатого аудио не могут
передать между собой, всё равно legacy всякий мешает.
Но зато дозвон моментальный: после нажатия на кнопку дозвона я не
успеваю телефон поднести к уху, как там уже гудки идут и через 1-2
секунды мне человек отвечает.
Sergey Matveev [Thu, 8 Aug 2024 09:40:13 +0000 (12:40 +0300)]
Proton Mail недоступен
В моей рассылке cryptoparty@ давным давно ничего не писалось. Ибо в
основном там всякие оппозиционеры (ну или оппозиционных взглядов)
собирались, а сейчас за это, благо, взялись наши власти, ибо уже перешли
все границы, перерастая в экстремизм. Не в моей рассылке, а вообще.
Пара писем там оказалась из-за оповещения о переезде на cypherpunks.su
домен (e00bdcc6a04229f1d8d56bdb86e9968ddf99feca). "postqueue -p" показал,
что до Proton Mail никакой доступности нет. А с него много людей была
подписана. Тут я только одобрить могу ограждение людей от этого сервиса,
который ну никак не может относится к чему-то безопасному
(3dc4adddc28d3c72c5e8db251c04190731465d11). Иллюзия безопасности -- хуже
чем осознанное и явное отсутствие безопасности.
У многих людей были ящики на @riseup.net. Его web-интерфейс недоступен
уже давно, хотя SMTP/POP3 работает без проблем. Но ящики многих людей
уже удалились.
Sergey Matveev [Thu, 8 Aug 2024 09:17:47 +0000 (12:17 +0300)]
YouTube всё
https://habr.com/ru/news/834706
Действительно, по IPv4 YouTube более не скачивается через yt-dlp.
По IPv6, даже с российских сетей, работает без проблем.
Единственная причина почему я если и искал видео какие именно на нём,
то только потому что он индексируется в поисковиках. Сам сайт YouTube
в броузерах у меня давно не открывается никак, но если в поисковике
вводить "youtube бла-бла-бла", то будет много ссылок на него, которые
можно скопировать для yt-dlp. Всякие VK, которые вроде как основная
альтернатива YouTube, или плохо индексируются (закрытые группы?) или
плохо ищутся. Всякие Boosty -- на нём ничего не скачивается из видео.
Закрытые экосистемы. Может быть есть что-то открытое, downloadable, но
я не пытался толком искать, ибо в моей жизни это всё из серии "жвачки",
чисто развлечение, отсутствие которого почти незаметно.
Меня то это всё не парит. "Учебные" материалы, про которые многие
упоминают: не могу сказать что одобряю факт их существования, ибо люди
(речь про ИТ) не пытаются разобраться в вопросе/задаче, а просто, так
сказать, copy-paste-ят что там увидят. Стажёры не раз сказали что надо
на YouTube посмотреть как ставить тот или иной софт. Даже не мог бы
придумать почему и чем это может быть адекватно в видео-формате, чем в
формате статьи.
Ну и извините, но это платформа с жёсткой цензурой, где если ты
выступаешь против поддержки геноцида россиян, против поддержки
терроризма и нацизма, то тебя оттуда убирают. Остаются только
про-террористические, про-нацистские, профашистские материалы, если речь
не про технические или развлекательные вещи. Как тот же Facebook вообще
открыто в своих правилах поддерживал любые призывы к уничтожению россиян
(военнообязанных, то бишь почти всё мужское население). Разделением
материалов они там не занимаются.
Sergey Matveev [Wed, 7 Aug 2024 05:35:49 +0000 (08:35 +0300)]
Десять лет съёмок Млечного пути
https://www.youtube.com/watch?v=vX6p1H7F9as
https://naked-science.ru/community/979230
Вот с таким видео становится понятно зачем нужны 4K и большие
разрешения монитора. Подобное можно смотреть бесконечно!
Sergey Matveev [Tue, 6 Aug 2024 12:47:37 +0000 (15:47 +0300)]
Всратость софта
https://habr.com/ru/articles/596517/
Статья про то, что в софте всё становится семимильными шагами хуже.
Таких статей -- море. Про то, как приложение фонарика или драйвер для
мышки будут занимать половину компакт-диска и ставиться не одну минуту
(грубо говоря).
Понравилось, что автора бесит "input lag". Я со стороны когда у людей
вижу или Windows или смартфон или любой (desktop/smartphone) web-обозреватель,
то офигеваю от него. Я в zsh даже постоянный вывод текущей ветки Git-а
выключил первым делом из-за input lag-а возможного. Но каждое КАЖДОЕ
действие, каждый щелчок в броузере приводит к задержке видимой, то я
просто отказываюсь даже пытаться это использовать, ибо себя не уважать.
Это реально лютое безумие. "Экономика" -- скажут другие. Но, как
минимум, современный web и связанные с ним технологии идут жёстко нафиг,
как и аргумент "web-приложение зато заработает везде".
Sergey Matveev [Tue, 6 Aug 2024 09:04:51 +0000 (12:04 +0300)]
Lua вместо Rust в FreeBSD
В рассылке всё продолжается обсуждение внедрения Rust в общую систему.
Опытные разрабы не видят ни в этом, ни в Rust смысла. А один прислал
предложение переписывать кучу всего на Lua, который и так уже есть в
базовой системе (для загрузчика), ибо к нему применимы все те же самые
аргументы, что и для Rust:
Most user space tools could be written in lua. This already is in
base, it is memory safe, it is very small and pretty fast, allows
easy C integration for cases most FreeBSD system tools never need.
It can be learned pretty easily, and it is very productive.
It also has the coolness factor of Unix, for example
implements two basic system tools in lua. (They are portable!)
One could also imagine that a basic FreeBSD lua library, one that
makes access to ioctls, sysctls and basic C constants easy, would
benefit FreeBSD, as it seems a not small number of projects /
companies use lua for certain parts of "their thing", like user
interfaces or whatever.
А вообще там самая большая проблема это в том, что Rust это не просто
язык/компилятор, а целая экосистема. И она меняется там чуть ли не
каждый месяц. Если в базовой системе будет Rust, которым можно будет
собрать только софт из /usr/src, но будет бесполезен для системы портов,
то толку от него не много. Говорят, что и Perl из-за этого был убран из
базовой FreeBSD (что ломает мой частый аргумент о том, что Perl из
коробки де-факто есть в любом уважающем себя дистрибутиве).
Sergey Matveev [Mon, 5 Aug 2024 09:05:56 +0000 (12:05 +0300)]
Signal vs XMPP+OMEMO
https://soatok.blog/2024/07/31/what-does-it-mean-to-be-a-signal-competitor/
https://soatok.blog/2024/08/04/against-xmppomemo/
Автор много критики говорит в адрес XMPP+OMEMO решения, противопоставляя
его Signal-у. Не знал что у OMEMO не одна ревизия и многие клиенты
поддерживают только старые. С совместимостью всё не очень хорошо. Да и
есть вопросы к самим криптографическим решениям в протоколе.
Всё это, конечно же, не отменяет централизованную природу Signal.