Sergey Matveev [Tue, 3 Jun 2025 08:40:35 +0000 (11:40 +0300)]
Пользователи ChatGPT сходят с ума. Убогость поисковиков
https://habr.com/ru/news/915142/
Знакомые как-то рассказывали о том, как люди увольнялись с работы после
общения с ChatGPT, который убирал у них все сомнения. Слышал, как кто-то
его как психо(терапевта/аналитика/?) использует. Со стороны это звучит
прям пугающе: за тебя решают такие важные вещи. И ладно бы если
бездушная машина, с холодной статистикой внутри, но ведь наверняка же
можно целенаправленно для групп людей заставлять LLM делать уклон в ту
или иную сторону? Например саботировать процессы в РФ, через граждан
пользующихся подобными зарубежными сервисами.
А я же, тем временем, всё чаще и чаще ловлю себя на мысли о том,
насколько хуже стал поиск (в поисковиках типа Google и подобных).
Просто поиск той или иной библиотеки для Go или другого языка, просто
основанное на парсинге README с какого-нибудь GitHub, самое банальное
чем поисковики занимались -- стало просто ужасным. Поиск статей из
IACR, похоже уже проще проводить локально скопированным сайтом
отиндексированным через recoll.
На какие-то запросы я точно помню что годы назад я получал гораздо
гораздо больше вариантов адекватных "ответов" (при этом, те старые сайты
и информация на них никуда не пропала). Уже даже бывало так, что я прям
хотел в поисковик засунуть готовую ссылку из серии "да вот же, вот
именно та страница которую я искал, смотри!". А какие-то ответы я даже
не могу понять каким боком имеют хоть одно из запрошенных ключевых слов.
Грубо говоря, ищешь сатанинский норвежский чёрный метал, а тебе первыми
ссылками предлагают христианских негров рэперов -- ну а фигли, чёрные,
тема религии, музыка же ж?
Чуть ли не все документы/статьи я уже рефлекторно сохраняю в
~/doc/articles, которые попадут в индекс recoll. Ну а рядом с каждым
скачанным .pdf/.html (иногда и .warc) файлом ещё и .url положу с ссылкой
откуда я его взял. Частенько я отмечал, что через поисковик уже не найти
эти документы, хотя по своим старым URL они все живы.
С другой стороны, на фоне всё усугубляющейся бесполезности поисковиков,
не так неприятен будет факт полной их недоступности без исполнения
закрытого кода. Временами (e2e0240847c6fd5a2e9e6f5c29d054c717152f5e)
Brave Search ещё работает у меня, позволяет им пользоваться. А без него
остаются только SearX instance-ы, дни которых тоже будут сочтены. Но
такими темпами деградации качества их поиска, я скорее уже
самостоятельно перестану ими пользоваться. В этом году несколько раз
запускал JS-capable GUI обозреватель, ради поиска в Google, ибо нигде
нужные мне статьи/страницы не находились -- и Google ни разу не спас и
не помог, хотя прежде был эталоном качественного/полного поиска.
Sergey Matveev [Tue, 3 Jun 2025 08:28:10 +0000 (11:28 +0300)]
Фотографии спрайтов
https://naked-science.ru/community/1085348
https://ru.wikipedia.org/wiki/Спрайт_(молния)
https://en.wikipedia.org/wiki/Sprite_(lightning)
https://en.wikipedia.org/wiki/File:Sprite_over_Southeast_Asia_from_ISS.jpg
https://en.wikipedia.org/wiki/File:Sprite_seen_from_space.jpg
https://en.wikipedia.org/wiki/File:ISS-44_Red_Sprites,_northwest_Mexico.jpg
https://en.wikipedia.org/wiki/File:BigRed-Sprite.jpg
https://i.redd.it/h8hdgwj97qrb1.jpg
https://www.space.com/red-lightning
https://www.almanac.com/what-are-lightning-sprites-magic-skies
https://explorersweb.com/natural-wonders-sprite-lightning/
Как же это всё и красиво и немного пугающе. Чего только в природе нет!
Sergey Matveev [Mon, 2 Jun 2025 11:59:11 +0000 (14:59 +0300)]
txtar формат
https://pkg.go.dev/golang.org/x/exp/cmd/txtar
Давно видел в Go коде упоминание txtar формата архивов.
Недавно вот использовал в одном месте, где надо множество
текстовых файлов записать, но не хочется возиться с работой
с ФС, а просто выплюнуть текст в stdout, который уже в txtar
утилиту перенаправить.
go doc golang.org/x/tools/txtar
Package txtar implements a trivial text-based file archive format.
The goals for the format are:
- be trivial enough to create and edit by hand.
- be able to store trees of text files describing go command test cases.
- diff nicely in git history and code reviews.
Non-goals include being a completely general archive format, storing binary
data, storing file modes, storing special files like symbolic links, and so on.
# Txtar format
A txtar archive is zero or more comment lines and then a sequence of file
entries. Each file entry begins with a file marker line of the form "-- FILENAME
--" and is followed by zero or more file content lines making up the file data.
The comment or file content ends at the next file marker line. The file marker
line must begin with the three-byte sequence "-- " and end with the three-byte
sequence " --", but the enclosed file name can be surrounding by additional
white space, all of which is stripped.
If the txtar file is missing a trailing newline on the final line, parsers
should consider a final newline to be present anyway.
There are no possible syntax errors in a txtar archive.
Sergey Matveev [Mon, 2 Jun 2025 10:05:26 +0000 (13:05 +0300)]
BASS и goredo кто-то использует и во вне
Недавно, кстати, получил обратную связь от человека, который BASS и
goredo использует для сборки всякого софта, названия которого я даже
и не слышал. Причём на Ubuntu и ALT Linux всё это происходит, под
управлением s6. При написании POSIX shell скриптов я стараюсь не
забывать про совместимость, но, честно говоря, пока CI не настроена на
работе, я кроме как на FreeBSD и Astra Linux мало что проверяю на
практике. Хотя какие-то вещи коллеги на своих Ubuntu конечно пробуют.
Sergey Matveev [Fri, 30 May 2025 18:29:00 +0000 (21:29 +0300)]
Самые продаваемые видеоигры
https://habr.com/ru/articles/914422/
Super Mario Bros, Ведьмак 3, Skyrim, Red Dead Redemption 2, PUBG, Mario
Kart 8, Wii Sports, GTA 5, Minecraft, Тетрис.
Играл в Тетрис. Пару часов у друга в GTA 5. Только первый уровень Mario
проходил у кого-то в гостях. Про остальных я только название слышал.
Sergey Matveev [Fri, 30 May 2025 15:27:18 +0000 (18:27 +0300)]
Декодирование URL-encoded
С ходу не очень понял, но когда я копирую ссылки из web-обозревателей,
то они бывают как в URL-encoded представлении, так и в виде Unicode.
Лень искать закономерность когда что получается.
А вот тот факт, что URL-encoded кириллические уже не прочитать, не
понять куда ты перейдёшь -- напрягает. Раньше я в блоге как попало
вставлял их. Какое-то время назад начал стараться не забывать
декодировать их.
Sergey Matveev [Fri, 30 May 2025 15:13:28 +0000 (18:13 +0300)]
Гоппа то советский/русский математик
https://ru.wikipedia.org/wiki/Гоппа,_Валерий_Денисович
https://en.wikipedia.org/wiki/Binary_Goppa_code
https://classic.mceliece.org/
Classic McEliece, который активно пытаются внедрять и популяризировать
всякие DJB (да и я только за), основан на кодах Гоппа. Так Гоппа
отказывается наш математик. Как тесен мир.
Sergey Matveev [Fri, 30 May 2025 05:26:15 +0000 (08:26 +0300)]
Как IM-ы шифруют сообщения на самом деле
https://habr.com/ru/articles/914118/
Ужасная статья вводящая в заблуждение. В ней показан банальнейший подход
к шифрованию, не имеющий к реальной практике никакого отношения. Даже в
Telegram защита сообщения существенно более сложная, не говоря про
WhatsApp, Signal, OMEMO.
Что что, но на самом деле IM-ы так не шифруют сообщения.
Sergey Matveev [Thu, 29 May 2025 20:01:06 +0000 (23:01 +0300)]
Развлечение криптографов на Rump sessions
https://rump.cr.yp.to/music.html
Есть и ссылки на видеозаписи происходящего (правда только на YouTube, но
на работе он у меня доступен). Сложно поверить, что это действительно
тот самый DJB на сцене участвует в подобном.
Sergey Matveev [Thu, 29 May 2025 19:50:13 +0000 (22:50 +0300)]
github.com/aead/chacha20
http://www.keks.cypherpunks.su/cm/dem/xchacha-krmr.html
Не раз возникали задачи где использование ChaCha20-Poly1305 избыточно и
хочется чистого ChaCha20. В "почти" стандартной golang.org/x/crypto
библиотеке есть и chacha20poly1305 и просто chacha20. Вот только последний
вариант в разы медленнее chacha20poly1305 на amd64, ибо без оптимизаций.
А использовать chacha20poly1305 просто отрезая/игнорируя MAC не выйдет:
весь процесс оптимизированных вычислений объединён.
Увидел вот сабжевый репозиторий, где вроде нормальный код написан. И он
в разы быстрее golang.org/x/crypto/chacha20. В KEKS/CM, в xchapoly-krmr
DEM-е я поэтому использовал ChaCha20-Poly1305, хотя над всем
получившимся шифротекстом всё равно ещё и HMAC высчитывался. Poly1305
излишен, но чисто из-за особенностей Go библиотеки решил закрыть глаза
на эти 16 байт лишних. Да и всё равно пока ещё реализации этого DEM нет.
Но теперь переименовал в xchacha-krmr, оставляя чистый ChaCha20.
Sergey Matveev [Thu, 29 May 2025 19:37:21 +0000 (22:37 +0300)]
Noise hfs, PQNoise
https://github.com/noiseprotocol/noise_hfs_spec
https://eprint.iacr.org/2022/539
Откладывал я чтение PQNoise предложения. А тут вот обнаружил, что
PQNoise действительно буквально заменяет традиционные алгоритмы на PQ.
Причём KEM не может заменить DH -- его API иной. И они используют
статический ключевой материал в качестве random во время KEM операции,
позволяя как бы делать всякие ee/es/ss операции. Тако вот хак. И вот
как-то это мне не нравится всё -- типа уже ощутимое отхождение от очень
консервативных подходов классического Noise.
Но также я обнаружил и документ от самого создателя Noise, предлагающий
KEM-based hybrid forward secrecy. А вот это уже штука по мне: просто
навсего в handshake подмешивается передача эфемерных публичных ключей
KEM, и выполнение KEM операции, штатно подмешивая получающийся ключ к ck
state. Чисто гибридная криптография, где даже мне понятно, что она, как
минимум, не менее безопасна, чем чистый Noise.
Более того, github.com/katzenpost/noise Go библиотека содержит fork
github.com/flynn/noise, в котором как-раз и добавлен hfs cipher suite.
Но только с Kyber1024 вариантом. Заюзал в VoRS -- будет PQ-friendly.
Sergey Matveev [Thu, 29 May 2025 19:32:29 +0000 (22:32 +0300)]
Каждый из нас по своему робот
https://vgiv.livejournal.com/150099.html
Понравилась заметка у человека:
Вчера не смог понять, кто со мной разговаривает по телефону: живая
девушка или хорошо сделанный ИИ. На прямой вопрос "Робот ли вы?" она
ответила "Все мы в колл-центре немножко роботы".
Sergey Matveev [Thu, 29 May 2025 19:29:01 +0000 (22:29 +0300)]
Почему так много безумия типа punnycode создаётся?
Увидел в микроблоге DJB такую фразу:
2022.11.03 12:46:15: 20 years ago, when the IETF was building
Punycode instead of mandating UTF-8, I thought they were being
remarkably stupid, and said so publicly. Later I started
understanding the basic incentives. Simple, boring, working systems
mean less money for standardization organizations.
Точнее наверное и не скажешь. И это грустно: ибо столько всего люто
переусложнённого насоздавали, только ради того, чтобы люто
переусложнённое (а это долгий процесс) создать для создания видимости
бурной деятельности.
Sergey Matveev [Thu, 29 May 2025 19:15:29 +0000 (22:15 +0300)]
PQConnect
https://eprint.iacr.org/2024/2092
https://www.pqconnect.net/
https://www.pqconnect.net/pqconnect-20241206.pdf
https://www.pqconnect.net/20241227.pdf
Очередное творение DJB. Конечно же интересное. Штука смотрит на DNS
трафик. Если видит домены с CNAME-ом где зашит, по аналогии с DNSCurve,
отпечаток публичного ключа, то пытается установить VPN (over UDP)
туннель до указанного IP адреса, прозрачно защищая весь IP трафик.
Чем-то напоминает IPsec+IKE, которые тоже прозрачны для userspace.
Протокол свой: Похож (они это и не скрывают, явно давая отсылку) на
Noise, где в качестве DH/KEM алгоритмов идут Classic McEliece
(04fdcfcadd708acfc6cda69161ccd2df71bbf53f, d0120e47839413c5e3a04c9c6e31bab5f3996de9)+X25519 для долгоживущих
ключей, Streamlined NTRU Prime+X25519 для эфемерных. McEliece публичный
ключ занимает более мегабайта, поэтому он скачивается через дерево
Меркла, где размеры листьев достаточно маленькие, чтобы уместиться в IP
пакете. Симметричная криптография вовсю применяет key ratcheting. В
общем, state of art штука, mono-protocol, без ада из crypto agility.
Даже есть опция по выполнению PoW против DoS.
DJB писал, что чуть ли не все свои сайты сделал PQConnect-friendly.
Проверить не смогу, ибо софт только для Linux. Выглядит очень интересно.
Sergey Matveev [Thu, 29 May 2025 08:32:36 +0000 (11:32 +0300)]
ВЦИОМ посчитал гиков в России
https://habr.com/ru/articles/913798/
На днях меня на работе причислили к работнику инфобеза. Не, с одной
стороны это так (защита информации же ж). Но у меня инфобезник это тот,
кто обновляет антивирусы на компьютерах и форсированно всем ставит
аутентификацию через SMS, даже не зная что такое PKI.
Встречал настоящих крутых инфобезников -- где я и половины не понимаю о
чём они ведут речь, которые могут выдавать настоящие нормальные задачи
таким как я. Но их так же мало как и нормальных хороших сисадминов,
сетевиков, devops.
Поэтому и "сисадмин" и "devops" это полуобидные ругательные слова. Как и
инфобезник. Один коллега, не очень шарящий в ИТ, думал что я сисадмин.
Наша HR, недавно появившаяся, думала, что я devops. Как-то меня и
"линуксоидом" обозвали. После одной конференции я услышал, как меня
запомнили как "чувака из ivi пишущем на JavaScript".
А тут статья про учёт гиков в РФ. Да со школы я вроде бы всегда им был.
Даже geek code на домашней странице, чуть ли не с начала времён, существовал!
В статье людей поделили на категории: технологические активисты,
умеренные пользователи, пассивные пользователи, технологические скептики.
Какие же там вопросы? Чем я НЕ пользуюсь:
Социальными сетями или мессенджерами
Мобильным банкингом
Мобильным интернетом
Сервисами или сайтами для получения государственных услуг, записи в поликлинику
Навигацией в телефоне или автомобиле
QR-кодами для получения информации или оплаты
Облачным хранением данных
Стриминговыми сервисами по подписке
VPN-сервисами
Голосовыми помощниками
Трекерами активности
Умными колонками
Устройствами умного дома
Общественным wi-fi
Сервисами доставки продуктов, готовой еды или товаров
Биометрией для идентификации личности или совершения платежей
Нейросетями
Игровыми приставками
Каршерингом
Телемедициной
Криптовалютным кошельком
Электромобилем или гибридным автомобилем
Чем я пользуюсь? Ровно одним пунктом из всего опроса (и то без WiFi):
Домашним интернетом (проводным или через wi-fi-роутер)
Причём я когда то (ещё до блога) всё же пользовался:
Социальными сетями
Мобильным интернетом
Сервисами или сайтами для получения государственных услуг, записи в поликлинику
Навигацией в телефоне или автомобиле
VPN-сервисами
Какие технологии я бы хотел использовать, но пока не умею? Варианты:
Нейросеть
Умный дом
Искусственный интеллект
Криптовалютный кошелек
Умная колонка с голосовым помощником
Электромобиль
Робот-пылесос
Вообще то я только не против электромобилей. Не выяснял, но терзают
смутные сомнения, что все они слишком умные (smart) и без всяких
Интернетов и подписок работать не будут. Поэтому, даже если бы появилась
надобность в автомобиле (когда-то, когда была бывшая, я не мало проводил
времени за рулём), были бы средства на электромобиль, была бы
возможность его зарядки (гараж с электричеством), то навряд ли бы я мог
его использовать.
Выходит, что я не только не гик, но даже не дотягиваю до
технологического скептика :-)
Sergey Matveev [Wed, 28 May 2025 20:13:51 +0000 (23:13 +0300)]
Снова накатывают удручающие думы про работу
Вроде только вышел из отпуска, всего три дня работы, воспоминания про
учёбу в институте, а снова накатывает...
Ещё в прошлом году посрался (ну а что я ещё умею делать хорошо?) с одним
отделом и уже более полугода почти ничего не делал по проекту с ними.
Вроде бы и не держу зла, хотел бы продолжать, но один только переход в
директорию с проектом -- руки опускаются. Спрашивал начальство: может,
мол, не так приоритетен проект? Говорят, что высший приоритет. И я вот
впервые серьёзно просираю все разумные сроки.
Вспоминаю другой проект, где я много чего понаделал, в том числе систему
сборки (BASS). Сколько я негатива только не услышал в её сторону. С
одной стороны, все вокруг ошибаться же не могут: наверное я сделал говно
неюзабельное. С другой стороны у меня с негодованием возникает
контр-аргумент к коллегам: а ваши какие предложения? Я хоть что-то
рабочее, reproducible, deterministic предложил, не curl|bash, сам же
занимался опакечиванием почти всего. Часть коллег говорила, что под
Астру вот ту или иную штуку вообще не удастся собрать. Я и собрал и
опакетил в BASS. Но нет, летят упрёки и недовольства. Предложили бы
обсудить как это всё получше сделать, но нет, не было. И вот не понимаю:
то ли я говно сделал, то ли я всё же, но выполнил задачи.
В том же проекте жёстко разосрался с другим, с тех пор вообще не
контактируем. От меня какая-то документация требовалась, и я, опять же,
наверное впервые за профессиональную карьеру, сделал её на отъебись.
Понимаю что это вредит всему проекту, всем участникам, а не только мне и
второй стороне конфликта. Один раз я сделал одну часть задач -- этот
коллега начал придираться к тому, к чему прежде никогда не обращал
внимание. Вот и никакого желания уже делать по совести.
Планировалось продолжение этого же проекта. И с прошлого года со мной не
было ни одной встречи проведено по обсуждению хоть чего-либо в нём в
техническом плане. Почти два месяца назад я написал большое детальное
предложение об использовании в нём KEKS/CM, делая в спешке, ибо
совещание планировалось со дня на день. С тех пор тема вообще не
поднимается. Очевидно, предложение отвергнуто. Что печально, ибо тогда
KEKS как бы только в одном проекте и остаётся (а возможно и оттуда
захотят выпилить, кто знает). Тоже, выходит, не один месяц потратил
полностью впустую. И создаётся впечатление, что в продолжении проекта
меня точно не хотят видеть, но не знают как это сказать.
И вот лично мне то и BASS и KEKS жутко нравятся какими вышли (хотя в
KEKS реализациях то ещё много работы всякой, много кода надо
дописывать), а реакция коллег обратно пропорциональна.
Предлагал для ведения wiki (ba169c2948c9d80fee2ad63a11fbe46a6a371b32)
использовать zk.zsh (точнее, теперь он называется SWG (simple wiki
generator)), вместо несуществующих Markdown или более сложных reST,
Texinfo, Org и всякого подобного. Думал что уж тут то проще решение
вообще некуда, а покрывает 99% потребностей на практике. Но похоже, что
начальство я только убедил в ценности использования Texinfo (который я
то тоже люблю и главный популяризатор его, как когда-то был
популяризатором reST/Sphinx).
Явное недовольство коллег тому, что я даю задачи связанные с KEKS
стажёру. Ok, понимаю, ибо судьба KEKS/* на работе ещё до сих пор в
подвешенном состоянии. Но какие их предложения что дать стажёру, кроме
априори бесполезных для работы (полностью, так сказать, синтетических)
задач? Никаких. И вот какие мне выводы в голове делать? Или я чего-то
упорно не вижу и не замечаю? Смотрю не через призму, а турмалин, что-то
полностью скрывающий?
Попросили дать задачу одному студенту и сделать review. Отправил два
review по почте. И вот уже вроде как месяц о нём ничего не слышно.
Сегодня, уже повторно, хотели мне дать один проект на Си написать. С
темой там хорошо знаком. Но... и "нет" не хочу говорить. Но и "да" не
поддаётся, ибо я прям уверен что всё плохо закончится, очередными
срачами. А если я с конца прошлого года уже переходил в такие режимы
работы как на отвали и просирать все мыслимые сроки, ибо руки
опускаются, то добром дело не завершится. Но только это равносильно
отказу от выполнения служебных обязанностей и, соответственно, какого
фига я там вообще делаю.
Не помню была ли у меня апатия настоящая к чему-либо. Но вот к работе, в
общем и целом, полностью апатичное отношение стало. "Будь что будет".
Пока у меня в планах встретиться с друзьями, съездить к родственникам в
нижегородскую область, а летом в оставшуюся часть отпуска.
Но в целом уже начинает бесить весь этот расколбас от "я точно не на
своём месте" до "ну возможно отдохну и всё дальше как по маслу пойдёт",
вся эта неопределённость, непонятность, и даже не понимание как мне
относится к критике моей работы, хотя и альтернативных предложений по
выполнению задач не дают (или же не понимаю что их дают).
Вроде бы я уже лет десять как стал гораздо спокойнее и на порядки менее
конфликтнее, но с прошлого года, как будто, всё наверстал, плюс сам
превратился в полнейшего бессовестного лодыря.
А также всё вновь стало запутанно касательно женщин. Одним из толчков к
тому, чтобы я решился сделать предложение в прошлом году, была фраза от
отца "ведь ты ж нормальный парень". Я и поверил. Отказ, конечно же с
обязательным дополнением "дело не в тебе" (дословно уж не помню), вновь
всё вернул на свои места. Снова диссонанс. Чему верить? Какому мнению,
какого человека?
В ivi мне один уважаемый мною коллега сказал, что я где-то там баклуши
бил. Меня это жутко задело, ибо хуже лодыря, лентяя на работе быть не
может человека. А в ivi я реально вроде бы полностью честно отрабатывал
все человеко-часы. Какое-то время я не особо с ним разговаривал, был
обижен. На текущем месте работы, после нескольких лет участия в одном
проекте, мне заявили что я вредительствовал -- это задело просто ужас
как, ибо это же даже ещё хуже чем ничегонедаланье. Собственно, я
полностью и отстранился от проектов той команды (ну точнее меня выгнали
к чертям). Затем был случай, когда снова употребили по отношению ко мне
термин "вредительство", после чего от негодования у меня 15мин руки
тряслись. А сейчас я похоже уже и сам склоняюсь к тому, что, по всем
признакам, моя работа, действительно, геморрой людям приносит. Но всё
равно не понятно: задачи же я вроде бы выполнял, не видел чтобы после
меня переделывали/переписывали что-то. Как этот факт состыковать? Хз.
Плюс во время моего мощнейшего прошлогоднего конфликта, "оппонент" ещё
добавил, что моя работа вообще нихера ничего не стоит.
Короче, какое-то полное говно (C) ДМБ. Ничего не понимаю. Не понимаю что
мне делать (очевидно, задачу с прошлого года) или что не делать (ага, не
конфликтовать). И состояние апатии -- как будто как предохранитель. Будь
что будет. Хотя такое отношение к работе -- хуже некуда. И совесть
гложет без останова.
А сегодня ведь вспоминал каким я был когда оканчивал институт, о чём
тогда мечтал, кем себя представлял к 40 годам. Не, точно не начальником
или что-то подобное -- мне нафиг такое не нужно. Но точно не лодырем и
вредителем. Даже после разрыва с бывшей, я уйму лет считал, что вся эта
работа, накопление средств, приобретение недвижимости и подобное -- оно,
как минимум, для увеличения веса в глазах женщин, увеличение шансов
положительной обратной связи от них (точнее, от той самой единственной),
создание семьи и всего сопутствующего. Это что-то типа цели. Было
понятно зачем работаю. Шансов нет. Весить стал в полтора раза больше :-)
В столовке (кафе?) третьего корпуса какое-то время продавали сабж.
34₽. Треть обычной буханки хлеба, прорезанную пополам. Между половинками
клали в микроволноке размороженные полуфабрикатные котлеты, обильно
политые кетчупом. Как же мне он нравился! За такие деньги, такую сытную
вкуснотищу нигде не получишь более. Вот только кусать её надо ещё было
приноровиться, так как в рот по высоте не влезет, а кетчуп после надкуса
будет капать. У девочек с ним были трудности, чтобы не запачкаться.
Sergey Matveev [Wed, 28 May 2025 13:10:07 +0000 (16:10 +0300)]
Сгорел 38-ой
https://msk1.ru/text/incidents/2025/05/25/75500432/
https://www.rbc.ru/society/25/05/2025/6833137f9a7947e3ae9eaff7
Более века назад был построен "38-ой" магазин. Не знаю как он назывался,
ибо все в городе его знают только по номеру. По возвращению из Белоруссии
поехали к родителям домой -- там из окна я как-раз видел дым из него. И
все близлежащие улицы перекрыли. Из-за чего таких пробок по узеньким
улицам прежде не встречали прежде. Как и запах дыма на сотни метров.
Sergey Matveev [Wed, 28 May 2025 11:44:21 +0000 (14:44 +0300)]
Форсированная установка ПО для слежения в смартфоны мигрантов
https://www.schneier.com/blog/archives/2025/05/location-tracking-app-for-foreigners-in-moscow.html
https://www.bleepingcomputer.com/news/government/russia-to-enforce-location-tracking-app-on-all-foreigners-in-moscow/
https://roskomsvoboda.org/en/post/spying-on-foreigners-via-smartphone/
http://duma.gov.ru/news/61435/
У нас вот хотят заставлять устанавливать ПО на личный смартфон, которое
будет передавать местоположение. По сути форсированная отдача полного
управление над личным устройством. Так то оно, конечно, и так управляет
компаниями из США. Да и отслеживание через сотовую связь никто не
отменял, но там вроде юридические палки в колёса. Исключения для граждан
Белоруссии. А если у человека нет смартфона? Ему выдадут и накажут если
сигнал с электропитанием будут утеряны? Впрочем... та же Европа куда
раньше подобными anti-privacy вещами занималась.
Sergey Matveev [Wed, 28 May 2025 09:10:09 +0000 (12:10 +0300)]
Инцидент с BGP 2025-05-27
https://blog.benjojo.co.uk/post/bgp-attr-40-junos-arista-session-reset-incident
https://blog.benjojo.co.uk/post/bgp-path-attributes-grave-error-handling
Истории про то, как баги в обработке не совсем корректных BGP пакетов
могут приводить к почти катастрофическим последствиям. Чаще то мы слышим
про людские кривые руки/настройки.
Sergey Matveev [Wed, 28 May 2025 08:54:49 +0000 (11:54 +0300)]
МАИfest95
https://vk.com/video-50409684_456241023
На выходных было сабжевое мероприятие. Но я за границей был, а так бы
не прочь был сходить. На видео показывали третий корпус... я бы его не
узнал изнутри, ибо при нас он не чинился наверное с начала постройки.
Вот правда если бы я остался на музыкальную программу... ну это бы было
наверное самое зашкварное где я был :-)
А что мне дал МАИ? Умение пользоваться головой и хорошего друга! Это
первое что приходит в голову. Да наверное и первую любовь можно
добавить, хотя закончилось всё плохо, но уже после окончания института.
Георгия Берегового, пары по двигательным установкам и ТРИЗу вряд ли
когда смогу забыть, регулярно про них вспоминаю и кому-нибудь оттуда
что-нибудь да рассказываю. Как и мои родители про времена в Бауманке
отзываются, так и я: студенческие годы -- лучшие в жизни. И МАИ я ни на
какой другой вуз не хотел бы променять.
Да и даже просто массу интересных аэрокосмических фактов и знаний мне
приятно иметь. Наша семья десятилетиями была связана с космосом.
Sergey Matveev [Wed, 28 May 2025 08:51:49 +0000 (11:51 +0300)]
NIL то от латинского
https://en.wiktionary.org/wiki/nil
Никогда не задумывался об этимологии слова nil, нередко используемого в
языках программирования. А оно от латинского. Отсюда же и nihil. NIL у
меня и в KEKS кодеке используется.
Sergey Matveev [Mon, 26 May 2025 18:17:24 +0000 (21:17 +0300)]
Отдохнул в Белоруссии
Символично, в день моей возни и недовольством о ситуации с IPv6 в РФ,
я отпросился с работы отдохнуть в РБ, где вроде бы IPv6 обязывают чтобы
ISP предоставлял.
Более недели не прикасался к клавиатуре и не смотрел ни в один монитор.
Даже сотовый был выключен за ненадобностью.
В первый же день обгорело лицо и шея -- всем же известно палящее минское
солнце :-), после московского то. Далее уже было попрохладнее и морось.
По возвращению, уже наоборот Московская область встречала ярким солнцем
и жарой за 24°C.
Ездил с папой. У мамы цветы и деревья на даче важнее оказались.
В первый же день, просто бродя и разъезжая по городу, увидели
половину достопримечательностей Минска. Обзорная экскурсия не
существенно больше информации нам дала, не считая исторических сводок.
Как и говорили, центральная часть города это прям СССР, конструктивизм и
всякая подобная архитектура. Мне она очень нравится. Однако, поездив по
окраинам, на конечных станциях метро, видели и огромные микрорайоны,
активно застраиваемые современные высотными жилыми зданиями.
Как и сам Минск, так и другие города которые проезжали -- чисты,
опрятны, ухожены, очень приятное впечатление оставляют.
Однако, по яркости Минск совершенно не может сравниться с Москвой. Мы
были и в тёмное время суток и ночью ехали на автобусе от вокзала.
Светодиодных фонарей много, подсветки на зданиях много, но вот мощность
излучения явно существенно меньшая, чем возможно даже в Королёве. Дорога
видна, основные здания, как ориентир, тоже, но не более того. Минск это
как 30Вт лампочка, а Москва как 100-120Вт. Это прям бросалось в глаза.
Автобусы, электробусы и троллейбусы по городу ходят регулярно, проезд
более чем в два раза дешевле Москвы или Королёва. Метро ходит реже. Мы
попадали в часы пик и зайти не всегда было возможно в вагон. Метро не
европейское (железобетонная коробка), а чисто из времён СССР, кроме их
новой строящейся зелёной ветки (которая как современные московские
станции).
Чего не хватало, так это карт местности на остановках и выходах из
метро. В Москве везде есть карта радиусом в сотни метров -- можно понять
где ты и сориентироваться. Тут же ни разу такого не увидели. Бумажная
карта постоянно была в наших руках.
Народу ощутимо меньше. В будние дни так вообще в течении минут можно ни
одного прохожего не увидеть на проспекте Победителей. Там и президент
работает и достопримечательности есть, парки, жилые дома, гостиницы --
совсем не пустынное место. Тоже самое и про автомобильные дороги -- даже
в Королёве только на отшибах могут минуту-две отсутствовать машины.
Площадь рядом с вокзалом в Москве в 07:00 гораздо более людная чем в
часы пик их жилые или центральные районы.
Сперва я был сильно удивлён тому, что белорусский можно только на
указателях встретить было. В течении всего дня мы нигде не услышали
белорусскую речь, кроме объявлений об остановках в общественном
транспорте, которые ещё и на русском дублировались. Экскурсоводы
подтвердили, что 97% жителей, даже в деревнях, общаются на нашем обычном
русском. Достаточно в Нижний Новгород приехать и услышать ощутимое
отличие в произношении -- но Минск неотличим от центральной РФ будет.
За всё время мы встретили не раз аистов на полях. Один раз автобус
остановился, вышел водитель и руками донёс переходящего дорогу ежа на
тротуар. Вот и все встречи с местной фауной. В Новосибирске мы например
много видели бурундуков, которых тут отродясь не видывали. Ну и зайцев,
которые бесплатно проезжают в автобусах.
Побывали в Залесье, Сморгонь, Солы, Гервяты, Астравец, Мир, Несвиж.
Проезжали Молодечно, Дзержинск и ещё какие-то города, без выхода из
автобуса. Издалека видели работающую АЭС с двумя огромными градирнями
недалеко от границы с Литвой. Я даже издалека никогда прежде не видел АЭС.
В Мире видели старый замок. Где даже пыточная камера (ну... Европа же,
демократия, свобода и всё такое :-)) в подвале была. "Жить в Мире" там
особо воспринимается, так как вокруг их центральной площади уживались и
евреи, и мусульмане, и католики, и православные.
Также замок и множество усадьб посещали и в других местах. В одном даже
был мастер-класс по танцам. Видели с десяток костёлов. В одном даже
играл орган (правда, электро), а в другом на наших глазах началось
крещение ребёнка.
Это всё интересно, красиво, но не то чтобы вызывало восторг. В отличии
от посещения "Великое Княжество Сула". Ну как там мне могло не
понравится, когда нас встречали живой музыкой на дуде (волынка такая) и
барабане? И во всём этом парке средневековой истории в спрятанных по
территории колонках играла волынка? Весь этот парк состоит из замка и
множества строений с ремесленниками. Которые что-то показывали,
рассказывали. Были там и языческие места, идолы, славянские божества.
Проплыли на драккаре здоровом. Посмотрели на литовские замки и историю.
А ещё там овцы и козы бегают. Можно подойти и погладить их.
Были на коротком представлении кукольного театра, на белорусском языке.
Я не уверен что когда-либо был в кукольном театре.
Изначально нам рассказывали на русском всё. Но в помещении, где была
речь про учёбу, про обучение в те времена, учительница всё нам
рассказала на белорусском. Кто-то говорил, что мало что понял. Я же
преобладающую часть, и полностью, если учитывать контекст и предыдущие
предложения. Вообще напряга не возникло в понимании их языка. Дальше мы
его больше уже слышали и встречали.
Экскурсовод сказал, что белорусский, украинский, чешский, польский и
литовский очень близки между собой. А вот русский существенно дальше. Я
вот украинский почти не понимаю (слышал по ТВ в Крыму), да и раздражал
он меня своим звучанием (чисто вкусовщнина). Белорусский же для меня
показался чем-то средним между русским и украинским, значительно более
понятном. В некоторых городах/костёлах были тексты на польском -- его я
вроде тоже получше понимаю, чем украинский.
Школьников обучают и русскому и белорусскому. Большинство из них сдаёт
экзаменом белорусский, так как он проще. Но вот всё равно в быту
общаются на русском. За неделю я вроде только два раза слышал
белорусскую речь у людей просто на улицах/магазинах.
В Минске были на тракторном заводе. Экскурсию проводил какой-то один из
главных их конструкторов. В самом конце мы с ним даже чуть пообщались,
как три инженера. Очень понравилось смотреть на всю эту промышленность.
Когда заходили в цех металлообработки, то сразу же запах моих
студенческих лет, когда мы тоже бывали много раз в цехах. А вот на Белаз
экскурсии не было, как и времени уже на него.
А ещё побывали в Дудутках. Это такой музей под открытым небом. Тоже
всякие ремесленники и развлекалово. Впервые я увидел разъяснение про
детали шагов как выдёлывали лён, пряли, ткали, работали с соломой и
глиной. Очень понравилось. Уйму всяких любопытных фактов. А ещё там
много животных: страусы, гуси, петухи, куры, лошади (некоторые громко
ржали), кабаны, ослы, олени, индейки (забавные звуки издающие), павлины,
утки. Они уже за изгородями, но осёл, заприметив наше приблежение, сам
подошёл к ограде и дал погладить/почесать. А рядом нас начал прогонять
гусь, так что пришлось ретироваться. Там же были и внутри настоящей
мельницы.
В общем, Сула и Дудутки мне понравились как никто! Просто ходить по
музеям и усадьбам... ни в какое сравнение.
Девки там везде и всюду хороши, очень. Вроде бы только одну увидел с
надутыми (увеличенными) губами. Почти не встречал с татуировками. От
губастых просто воротит, коих пруд пруди в Москве. Но одеваются гораздо
более открыто чем в Новосибирске. Типа всё как в Москве.
Никакой особенной или незнакомой еды не видели и не пробовали. Драники и
у нас можно попробовать в магазинах. Там их пару раз взяли -- но по нам
уж лучше пюре или просто жареная. Но чаще всего подавали на обед, да и
мы брали, купаты всяческие. Не раз заходили в их "Васильки" -- ресторан
местной кухни. Не дешёвый, но кормят очень вкусно, с хорошими порциями.
Привёз из разных мест три куклы. Вязаный (вроде, не разбираюсь) аист
одетый не по нашенскому. Соломенный домовой в ярком одеянии. Набитая
пахучими травами кукла (не помню как называется) оберег.
А вообще у меня прям стабильное ощущение того, что минчане от москвичей
гораздо меньше отличаются чем новосибирцы. По атмосфере Новосиб вроде бы
и просто как современная Москва, но всё же для меня там больше отличий
на уровне ощущений было.
Sergey Matveev [Mon, 26 May 2025 16:18:39 +0000 (19:18 +0300)]
Пропуск длинной строки в less
https://greenwoodsoftware.com/less/news.678.html
https://github.com/gwsw/less/issues/560
Уже писал про это в 326789bf9b523d8924509a09f4d31cfb935153c8, но в новой
версии less, наконец то, появилась встроенная возможность без хаков
пропускать screen line или text line.
Sergey Matveev [Fri, 16 May 2025 19:07:32 +0000 (22:07 +0300)]
die, croak, carp, confess and *mess
В Perl я знал и использовал функцию die() постоянно, типа как exception
выкидывал ею. Но вот в Perl Best Practices рекомендуют croak. Люблю я
когда с юмором подходят к разработке и именованию.
NAME
Carp - alternative warn and die for modules
SYNOPSIS
use Carp;
# warn user (from perspective of caller)
carp "string trimmed to 80 chars";
# die of errors (from perspective of caller)
croak "We're outta here!";
# die of errors with stack backtrace
confess "not implemented";
# cluck, longmess and shortmess not exported by default
use Carp qw(cluck longmess shortmess);
cluck "This is how we got here!"; # warn with stack backtrace
$long_message = longmess( "message from cluck() or confess()" );
$short_message = shortmess( "message from carp() or croak()" );
Sergey Matveev [Fri, 16 May 2025 11:47:55 +0000 (14:47 +0300)]
Рассказывал на работе про синхронизацию времени
NTP, PTP, цезиевые, рубидивевые, оптические, кварцевые часы, TCXO,
OCXO, PTP, водородные мазеры, навигация на основе эффекта Допплера,
гиперболическая навигация, DCF77, GNSS, SBAS, TWSTFT. Сказали, что
это была самая интересная "лекция" от меня.
Sergey Matveev [Fri, 16 May 2025 11:18:21 +0000 (14:18 +0300)]
Как будто у людей пропал spellchecker
За последние несколько месяцев, мне прям стало бросаться в глаза, как у
многих в блогах или письмах стали постоянно возникать или опечатки или
недостающие буквы. Вот реально: как-будто никогда годами таких проблем
не было, как будто работал spellchecker, а потом внезапно прекратил и
понеслись ошибки. И когда люди в блогах подобно пишут, то прямо хочется
прекратить их читать, ибо уж сильно больно бьёт по глазам небрежность и
отсутствие пары минут на то, чтобы через spell прогнать какой-нибудь. Но
не удивлюсь, что это связано с каким-нибудь очередным обновлением
проприетарного ПО (Android, Chrome, Firefox и всё такое прочее), где
поломался функционал.
Sergey Matveev [Fri, 16 May 2025 11:16:23 +0000 (14:16 +0300)]
Как человек боролся с LLM/botnet загрузкой
https://sanctum.geek.nz/presentations/self-hosting-self-defense.pdf
Держит банальный cgit, а трафика на сотни гигабайт в месяц. Он смог
определить, что TLS client signature у всех плохих запросов один и тот
же, поэтому можно блокировать только по анализу TLS.
Sergey Matveev [Thu, 15 May 2025 07:26:17 +0000 (10:26 +0300)]
HowIVim.com
http://howivim.com/
Узнал вот про существование сайта, где разные разработчики рассказывают
про то, как они используют Vim. И antirez там есть (создатель Redis) и
Damian Conway. Но без Tim Pope.
Чёткая корреляция продолжает прослеживаться: если человек использует
какие-нибудь NERD* плагины, то это чисто такой новичок, только делающий
первые шаги. Ни у кого из матёрых пользователей подобные не стоят. Как и
Ctrl-P, кстати, насколько помню. Те, кто пишут на всяких JavaScript --
всегда нубы.
Sergey Matveev [Tue, 13 May 2025 08:17:27 +0000 (11:17 +0300)]
NAT mess vs clean IPv6 routing
https://blog.apnic.net/wp-content/uploads/2025/05/image.jpg
https://blog.apnic.net/2025/05/13/lets-talk-about-cgnat-and-ipv6-again/
https://www.f5.com/resources/white-papers/the-myth-of-network-address-translation-as-security
https://www.ripe.net/publications/docs/ripe-690/
https://blog.apnic.net/2023/04/04/ipv6-architecture-and-subnetting-guide-for-network-engineers-and-operators/
Понравилась картинка. Route when you can, bridge when you must, but if
you are thinking NAT... just route IPv6 and walk away with dignity.
Sergey Matveev [Mon, 12 May 2025 18:40:48 +0000 (21:40 +0300)]
zk научился выводить в Info формате
В ba169c2948c9d80fee2ad63a11fbe46a6a371b32 писал о том, что ещё больше
стал использовать переписанную на Perl утилиту работы с крайне простым
текстовым форматом.
А сегодня добавил возможность генерирования .info файла, вместо HTML
директории. Info оказался довольно простым форматом. В отличии от Info
сгенерированного из Texinfo, у меня нет "next" и "prev" ссылок на
страницах -- только "up". Но вполне себе работает всё. Каждая страница
это отдельная node. Есть индекс со всеми нодами, что позволяет искать
штатными средствами Info по ним.
Sergey Matveev [Mon, 12 May 2025 08:32:51 +0000 (11:32 +0300)]
Скорость запуска современных web-обозревателей
https://habr.com/ru/companies/yandex/articles/907440/
В комментарии пишут, что на компьютере с i5 и SSD, Яндекс.Браузер
запускается 30сек, а автозаполнение сайтов чуть ли не через минуту.
Свой старый ThinkPad, тоже с i5, но HDD, отдавал родителям. У них, что
Firefox, что Chrome(ium?) -- тоже минимум минуту приходится ждать, пока
хотя бы даже статический сайт по указанному URL загрузится.
Sergey Matveev [Sun, 11 May 2025 12:04:47 +0000 (15:04 +0300)]
gqap
За последние пару месяцев аж два человека с удивлением для себя узнали
про возможность автоматического форматирования (по ширине строки)
параграфа в Vim. :help gqap
Я был этому удивлён, особенно учитывая что один из них годами активно
использовал Vim. А как же можно набирать plaintext без подобного
функционала? Не руками же разбивать строчки! Для этого есть машина. К
тому же Vim и учитывает наличие комментариев и списков. В общем, без
такого функционала было бы непросто жить.
Sergey Matveev [Sun, 11 May 2025 06:42:34 +0000 (09:42 +0300)]
Ian Lance Taylor уходит из Google и Go
https://www.airs.com/blog/archives/670
Почти 20 лет там проработал. Точно помню, что его решения в Go были
очень хороши и обдуманы. Достойный разработчик. Надеемся, что Go не
будет деградировать от его ухода, как это стремительно происходило
с Python.
Sergey Matveev [Fri, 9 May 2025 07:12:12 +0000 (10:12 +0300)]
Заблокировал Facebook роботов
https://news.ycombinator.com/item?id=23490367
https://drewdevault.com/2025/03/17/2025-03-17-Stop-externalizing-your-costs-on-me.html
В (b662785f950c6385144283d022deb5c38f016ac2) писал про то, что круто
стал забиваться Интернет канал из-за всяких роботов. Это не то чтобы
создаёт проблемы, но доставляет неудобства. Я надеялся, что уж через
несколько дней то должно прекратиться.
Присмотревшись, вижу что по сути то запросы массово идут от User-Agent
представляющегося Facebook-ом. Причём за одну секунду на один и тот же
ресурс по несколько десятков запросов может приходить. Это совсем уж
бессовестно. Нет rate-limit-а -- допустим. Но дублировать запросы, не
кэшировать ответ -- это уже приравнивается к DoS. Само собой никто им
не запрещает использовать другой User-Agent, но тут пока всё честно.
Я за сетевой нейтралитет, всё такое, но откровенно бессовестное и
неуважительное поведение к другим участникам сети не позволительно.
Поэтому отдаю 429, проверяя User-Agent. Да и, к тому же, у нас Facebook
и так заблокирован, что я всецело поддерживаю, так как сам воочию видел,
как в их правилах было указано поощрительное одобрение сообщений с
призывом уничтожать россиян. Даже на уровне своих web-роботов делают
всё, чтобы их блокировали.
Sergey Matveev [Thu, 8 May 2025 21:16:33 +0000 (00:16 +0300)]
Подборка не моих статей про NNCP
gemini://gemini.ucant.org/heterodox-tech/nncp.gmi
https://complete.org/nncp
gopher://alexschroeder.ch/02024-07-16-minimal-nncp-setup
gemini://jsreed5.org/log/2024/202408/20240807-robs-mostly-comprehensive-nncp-guide.gmi
gopher://thelambdalab.xyz/0/offline.txt
gemini://complete.org/quux-org-nncp-public-relay/
gemini://complete.org/quux-org-usenet-nntp-and-nncp-peer/
gemini://thelambdalab.xyz/phlog/2024-08-16-Offline-BBSing.txt
gemini://jsreed5.org/log/2024/202408/20240813-sneakernets-revisited.gmi
gopher://178.209.50.237:70/02024-08-10-offline-reader
gopher://178.209.50.237:70/02024-08-09-nncp-automation
gopher://178.209.50.237:70/02024-07-16-why-nncp
gopher://178.209.50.237:70/02024-07-12-sending-files-via-nncp
gopher://178.209.50.237:70/02024-06-29-nncp
gopher://178.209.50.237:70/02024-06-28-nncp
gemini://gemini.ucant.org:1965/heterodox-tech/index.gemini
Случайно напоролся на подборку ссылок по теме NNCP. В целом приятно
видеть, что там люди статьи даже большего чем я размера пишут о DTN
сетях, floppynet-ах и подобном, вовсю настраивают почтовые системы
работающие через NNCP (вот только сплошной Exim, который я даже и
не трогал в этом контексте). А я свой задор растерял уже, даже лень
добавлять постквантовую криптографию в NNCP, не говоря про перевод
на KEKS формат вместо XDR.
Sergey Matveev [Thu, 8 May 2025 15:29:04 +0000 (18:29 +0300)]
Нет предела минимализму. Переписал zk.zsh на Perl, доку KEKS с Texinfo
http://www.git.stargrave.org/?p=zk.git;a=blob;f=zk
http://www.keks.cypherpunks.su/
Когда-то (b1ac320825bc6653f09ad75359b5a97fc1692f8c) я написал утилитку
на zsh, которая из текстовых файлов с [ссылками] доставала, собственно,
сам список ссылок и могла отвечать кто на кого ссылается. Плюс
преобразовывала их в HTML, позволяя в web-обозревателях просматривать,
кликая по []-ссылкам.
Почему бы не использовать это всё для документации к софту? Когда не
нужно кучу форматирования красивого. Например для KEKS проекта. Texinfo
мне нравится -- считаю лучшим форматом для документации. Но для простых
проектов нельзя бы что-то попроще, с куда меньшим порогом входа и
зависимых програм? zk.zsh как-раз подходит для этого, как мне кажется.
Для Texinfo есть только одна реализация. Info не так удобно смотреть без
info-обозревателя, которых тоже не много. Сам я в доку KEKS подглядываю
регулярно за криптографией, но оформление в Texinfo формате ничем не
помогает и бОльшая часть текста там в verbatim-блоке расположена.
Решил переписать на Perl. Так как zsh всё же не у всех людей из коробки
стоит, а Perl почти наверняка. Плюс он работает ощутимо быстрее и я не
реализовывал кэширование как это было в zsh реализации из-за много
мегабайтных текстовых файлов.
Не хватает в zk утилите поддержки обычных ссылок, не внутренних [].
Пытаться преобразовывать всё что похоже на URI -- высока вероятность
ошибок всяких. Пришёл в решению как в gemtext, gopher. Не, gemtext мне
не нравится, как и почти всё что связано с gemini-протоколом. Как
минимум из-за его использования длинных строк. Плюс он не может быть
заменой простейших HTML с изображениями. Никто не обязывает
автоматически подгружать img, но нужно уметь подсказывать обозревателю
разницу между изображениями и остальными ссылками. Но я согласен с тем,
что (как и в gopher) -- можно обойтись ссылками просто на отдельных
строках. Как минимум, это позволит облегчить парсинг и использовать
URI/URL любой сложности. Ссылки на изображения -- тем более легко смогут
прожить по отдельности на разных строчках.
Но меня всё равно напрягает вероятность ложного срабатывания на
каких-нибудь "=> URL" строках. Нужно же чтобы эти строчки были и
дружелюбными к человеку, чтобы он мог и без zk утилиты всё это клепать и
использовать. Решил поступить так: добавлять \r в конце. Не на 100%
уверен в том, что мне это нравится, но и контраргументов пока не могу
придумать хороших. Это на 100% избавляет от вероятности ложного
срабатывания: по сути все "\r\n" строчки автоматом сигнализируют о своей
особенности zk утилите. Если их просто вывести в терминале: то они
вообще визуально ничем не будут отличаться от "\n" нормальных.
Предполагаю, что в любом нормальном редакторе "\r" символ тоже будет
виден, выделяться, легко искаться. В vi(m) это так.
Возможность автоматического создания списка ссылок на страницу позволяет
создавать категории/каталоги/индексы. Типа динамический автоматический
создаваемый список.
Перевёл всю документацию (сайт) KEKS-а на этот новый формат. Просто
масса plaintext файлов. Причём, в отличии от Info, найти нужный
раздел/страницу можно просто открыв файл с её названием.
Sergey Matveev [Wed, 7 May 2025 12:32:20 +0000 (15:32 +0300)]
Python Ruff и uv
https://habr.com/ru/companies/ru_mts/articles/907622/
В экосистеме Python всё настолько удручающе плохо, что уже даже linter-ы
и пакетные менеджеры люди вынуждены писать на Rust. Как я когда-то
GoCheese писал для него на Go, хотя там и на родном Python с
производительностью не было бы проблем. Это всё говорит об уровне
среднестатистического Python программиста, уже не способного писать себе
инструментарий для работы.
Sergey Matveev [Wed, 7 May 2025 11:25:34 +0000 (14:25 +0300)]
Regexp парсинга URI
https://datatracker.ietf.org/doc/html/rfc2396
В RFC 2396 есть прям даже пример POSIX регулярного выражения для
парсинга URI. В том же Perl можно использовать напрямую.
Вот ты и твоя пропаганда рассказываете, что в России "фашизм", "рашизм"
и прочий "Путлер". Ну так ответь мне на несколько простых вопросов. Вы
же уверены, что несёте правду, да? Тогда вам будет не сложно на них
ответить.
Вот вы рассказываете, что есть некая идеология "рашизм". А где про неё
можно почитать? Гитлер писал "Майн Кампф", Розенберг писал расовую
теорию, для Муссолини тоже какой-то миланский профессор за "сто долярив"
накропал доктрину (бредовую до жути, но безграмотным селюкам юга Италии
заходило). Есть ли книги по "рашизму"? Кого почитать? И кто и когда из
официальных российских лидеров или чиновников озвучивал данную доктрину?
Только давайте конкретику, без ваших привычных визгливых истерик -- имена
авторов, названия книг, цитаты Путина или Лаврова. Чтобы там хотя бы раз
прозвучало "рашизм".
Она ведь есть, эта идеология, да? Не только в вашей больной пропаганде,
а и в реальности?
Или вот если "русские фашисты" и "были союзниками Гитлера", как вы
рассказываете, то почему русские празднуют День Победы, а украинцы не
празднуют?
Ведь "Было четыре украинских фронта, а русских фронтов не было ни
одного" (хоспеди, какой тупой идиотизм!). А почему тогда не "День
Победы", а "День памяти"?
И если "УПА боролась с немцами", то где можно почитать ХОТЯ БЫ ПРО ОДИН
бой бандеровцев против Вермахта? Ну хоть один... и почему в архивах этого
самого Вермахта никто так и не смог найти ни одного указания на это?
Почему у свидомых украинцев гвардейская ленточка, много лет бывшая
символом Победы, вызывает такие истерики, что они кидаются на людей,
брызжут слюной от бессильной злобы и пытаются её сорвать? Причём такая
реакция была ещё задолго до 2014 года, до крымских событий и отделения
Донбасса.
Если это наша общая победа (а когда-то так и было), то почему вы
дебильно хрюкаете про "дидывоевали" и "победобесие"? Потому что ВАШИ
диды воевали с другой стороны, их вождём был Адольф Гитлер? И для вас
факт поражения нацистов нестерпим до сих пор?
Кстати, почему большинство новоявленных "героев украины", в честь
которых называют улицы и которым ставят памятники последние десятилетия,
служили в ваффен-СС?
Почему Зеленский грозит терактами именно 9 мая? Почему его так корёжит
от этой даты?
Почему, если вы не нацисты, не провести собственный парад в Киеве,
пользуясь предложенным перемирием?
Почему вас так корёжит от всего, связанного с нашей великой Победой?
Это нормально с вашей точки зрения, что потомок нацистского недобитка
Фридрих Мерц (его дед был шнапсшвайнфюрером СС, это известный факт)
пытается запрещать потомкам победителей участие в праздничных
мероприятиях?
Когда австриец Штефан Бандера стал "украинцем"? Як "никогда"?!
Когда хауптман ваффен-СС Роман Шухевич отказался от этого звания?
Як "никогда"?!
Кто убивал львовян 30 июня 1941 года? Кто убивал женщин и детей в Бабьем Яру?
Кто сжигал заживо одесситов 2 мая 2014 года? Почему "это другое"?
Если Зеленский не диктатор, а Путин диктатор, то почему после начала СВО
в России выборы были (и президента, и в Госдуму, и в местные органы
власти), а на "демократической" украине нет?
Почему из "рабской России" можно свободно уехать, а из "свободной
украины" нет?
Почему из "свободной украины" в "рабскую Россию" только за последнее
время сбежало свыше 150 тысяч человек?
Почему в Шереметьево приходится фильтровать бегущих из украины
"свободных украинцев", а в Борисполе очереди из бегущих из "российской
разрухи" в "процветающую украину" (смешная шутка, одна из моих любимых) нет?
Почему Залужный ходит с браслетом со свастикой, а Герасимов нет?
Почему охрана Зеленского ходит с нацистской символикой, а охрана Путина нет?
Почему российская армия за три года ни одного магазина не разграбила
(ну, кроме дебильных рассказов про украденные унитазы, в которые верят
только слабоумные), а ВСУ в Судже разграбили "Пятёрочку" и об этом знает
вся планета?
Кстати, где эти миллионы изнасилованных украинок? Почему ни одной не
нашлось, с кем бы реально такое случилось? И где Денисова?
Сколько килограмм картошки можно купить на базовую российскую пенсию и
сколько на базовую украинскую? Хотя это уже удар ниже пояса...
Кто пытается строить моноэтничное и одноязычное государство -- Россия
(в которой под двести народов и два десятка государственных языков)
или Украина?
У кого официальный лозунг государственной пропаганды "Айн райх, айн
фюрер"? Ой, извините, "Айн мова, айн вира, айн армия"?
И кто скандирует "Хрюканина убер аллес"? Ой, извините, "украдина
понадусёр"?
Почему на российских танках нет балкенкройцев, а на украинских есть?
Почему украинские солдаты массово зигуют, а российские нет? Почему у нас
речёвка "Бандера и Власов -- герои пидорасов", а укровояки заключают
однополые браки?
И кто, кстати, тогда "пидоры" на фронте? Где гей-парады проводят -- в
Москве или в Киеве?
Почему русские никогда не скандируют "Хохляку на гыляку" или "Рагулей на
ножи"?
Так почему для русских победа над нацизмом -- священный праздник, а для
свидомых украинцев -- "день памяти"? Почему бесов корёжит?
Sergey Matveev [Wed, 7 May 2025 09:14:24 +0000 (12:14 +0300)]
История векторно нарисованного Beastie
http://phk.freebsd.dk/sagas/vectorbeastie/
Кстати, действительно, в FreeBSD в /usr/share/examples/BSD_daemon он так
и лежит. Вот что значит полноценная ОС!
Sergey Matveev [Wed, 7 May 2025 08:23:11 +0000 (11:23 +0300)]
AI scrappers добрались и до меня
Второй день подряд мой домашний 100Mbps канал забит полностью на
максимум, даже для BitTorrent остаются только десятки процентов.
Качают всё что есть доступного через HTTP. И это именно роботы,
судя по User-Agent.
Ну и GNSS не работает второй или уже третий день подряд, по понятным
причинам.
Sergey Matveev [Tue, 6 May 2025 13:05:50 +0000 (16:05 +0300)]
Ещё один человек переходит из Python в Go
https://habr.com/ru/articles/907360/
Что-то меня последнее время прям бомбит от начинающих "программистов".
Этот вот написал, что работает уже третий (!) год.
Почему язык не может просто начать выполнять файл с первой строки?
То есть, как минимум, разницу между компилируемыми и интерпретируемыми
даже близко не представляет? За три года то работы в ИТ?
В Python пишешь a = 5, потом a = "текст" — и всё нормально
Нет, это даже в Python не нормально. Но работать будет, да.
Оказалось, := — это когда переменную создаёшь. А = — когда она уже
есть. Почему нельзя просто одно оставить?
Хочется только palm-face делать.
Зачем я должен писать одну и ту же проверку в каждом вызове функции?
Зачем проверять произошла ли ошибка, действительно?
Разницу между слайсами и массивами и прочие тонкости реализации
очень любят спрашивать на собеседованиях, рассчитывая отсеить людей
без высшего образования.
Ого, то есть высшее образование это когда "программист" хоть как-то
понимает что за кардинально разные типы данных у него на руках?
В Python я часто писал:
for i in range(len(arr)):
print(arr[i])
... ну и зачем ты это так писал? Выбить деньги на более мощное железо?
А в Go так нельзя, так как это парадигменный язык. Там пишут через
range сразу:
for i, val := range arr {
fmt.Println(val)
}
Узнал новый термин: парадигменный язык. Буду на собеседованиях
спрашивать. Ну и да: в Go можно и как в Python, как и в Python как в Go.
Искренне недоумеваю: что можно было делать три года с таким пониманием ЯП?
А в Go классов нет. Есть struct, и ты к ним можешь привязать функции.
А ещё есть масса других типов данных, к которым ты тоже можешь привязать
функции. Чем struct особенен?
Там надо через func (s *MyService) Do() писать. Звездочка - означает
что ты берешь данные из оперативной памяти.
Это надо навсегда будет запомнить! Звёздочка -- означает что данные
берутся из оперативной памяти. Такого ещё не слышал. Ржал в слух. После
чего, конечно же, сомнения что это не по приколу написано.
Sergey Matveev [Tue, 6 May 2025 10:19:06 +0000 (13:19 +0300)]
Такие разные лицензии на ПО
https://habr.com/ru/articles/798777/
https://en.wikipedia.org/wiki/Beerware
https://github.com/benlk/misc-licenses
https://github.com/ErikMcClure/bad-licenses
Много забавных лицензионных условий на использование ПО. Beerware
лицензия, кстати, является и GPL совместимой и FSF (но не OSI!) одобренной.
Sergey Matveev [Tue, 6 May 2025 09:13:02 +0000 (12:13 +0300)]
IPv6 в Starlink
https://www.starlink.com/support/article/1192f3ef-2a17-31d9-261a-a59d215629f4
Оказывается, в Starlink теперь есть полноценный IPv6, даже с честной /56
выдачей сети через DHCPv6-PD.
Но вот SMTP у них заблокирован, насколько понимаю по "Outbound ports
TCP/25 (SMTP) and TCP/445 (SMB) are blocked for all customers". А как
почту то отправлять? Ожидать что submission порт будет принимать? Сервер
то, понятное дело, не поднять.
Sergey Matveev [Mon, 5 May 2025 10:54:59 +0000 (13:54 +0300)]
FSF хочет провести хакатон
https://habr.com/ru/news/906858/
Совсем я перестал следить за новостями FSF*. После их бучи с бросанием
каках в RMS -- резко разонравились. FSFE выпилили перевод на русский (ну
типа для поддержки геноцида россиян) со всех своих сайтов, к которому я
в своё время тоже прикладывал руку. Но там уже давно было ясно, что это
то ещё сборище не очень честных людей. А после включения ML-KEM при
установке соединения TLS 1.3 в tofuproxy, сайты FSF стали единственными
с кем обламывается TLS handshake. Они бы лучше на хакатоне свои
HTTPS-сервера починили. Их libreplanet-discuss почтовая рассылка с
начала СВО стала тоже недоступна. В курсе что и магазин они прикрыли для
россиян, но тут как бы нареканий нет -- их законы обязывают. Да и
напрягали меня их последние увиденные материалы с нарочито подчёркнутыми
чернокожими и женщинами в ИТ мире. Тоже стали подчиняться "повесточке".
Sergey Matveev [Mon, 5 May 2025 10:15:29 +0000 (13:15 +0300)]
Ян Лекун, создатель DjVu и адвокат open-source
https://habr.com/ru/companies/ruvds/articles/903640/
https://en.wikipedia.org/wiki/History_of_PDF
Зацепились глаза за фразу о том, что PDF до 2008-го года был
проприетарным форматом. Ну да, до 2008-го года он (PDF 1.7) не был ISO.
Но что-то не нахожу где-то упоминаний о том, что было проблематично
доставать описания формата и реализовывать софт. Собственно, тот же Xpdf
уже в 1996 имел релизы. Уж извините, но ISO это как бы тоже не то что
что-то хорошее: зачастую из него не получить бесплатно документа. Что
есть ISO, что нет -- всё равно ты не получишь описание формата, как
например нет описание формата DVD до сих пор (в отличии от CD).
Не раз встречал нелюбовь людей к PDF и выкладыванием PostScript. Но это,
похоже, во времена когда не было свободных реализаций PDF. Всё же
PostScript это полноценная программа, поэтому "просмотр" .ps это
равносильно запуску программы. PDF без JavaScript не является
Тьюринг-полным (я тут диванный эксперт, но не нашёл опровержений), что
перевешивает выбор в его пользу.
Встречал я и советы по выбору DjVu вместо PDF. Если речь про
отсканированные документы, сплошной растр, то ничего против не имел
(хотя и сильных "за" DjVu тоже). Но PDF это же и просто про векторный
полноценный полиграфический текст/документ. DjVu тут его не может заменить.
А в 16839bedba2a4311bfee299c83cd5b8cfeb0f9c2 уже писал о том, что только
проприетарная реализация DjVu умеет декомпозировать изображение на слои
и применять разные алгоритмы сжатия к ним. Ян Лекун типа борец на
open-source? Ну вот такие они open-source-ники (а не последователи free
software): только слова, а на деле как не было свободного крутого
(сравнимого с проприетарной версией) DjVu кодировщика, так и нет. Ну а с
изобретением JPEG XL я смысла в DjVu или JPEG2000 уже не вижу (если речь
только про растр).
Sergey Matveev [Mon, 5 May 2025 10:04:55 +0000 (13:04 +0300)]
Сбой сотовых операторов и МЦК
https://lenta.ru/news/2025/05/05/v-rossii-proizoshel-sboy-u-operatorov-svyazi/
https://dxdt.ru/2025/04/29/15461/
Пишут о сбое у операторов сотовой связи. А я вот где-то полчаса, если не
больше, простоял никуда не двигаясь в поезде МЦК. Интересно, связаны ли
эти события? Или это просто очередные атаки на все виды инфраструктуры?
В Европе недавно был большой blackout. Кто-то даже перед этим накаркал
им: мол, в IT-облаках начнут небось хранить экосистему управления
электрическими сетями. Что, похоже, и случилось. Так что нехватка
здравомыслящих специалистов есть не только у нас.
А ещё не раз читал про факты отключения львиной доли инфраструктуры
городов, если рядом с ними серьёзно начать глушить сигналы ГНСС. Типа
из-за этого и время перестаёт синхронизироваться должным образом и это
уже будут проблемы с сотовой связью. На которой куча других вещей
наверняка завязаны.
На днях коллеге рассказывал, что в "старые добрые времена" наши обычные
проводные телефоны даже от электрической розетки не питались. Если
случались какие аварии, дома выключался свет, то телефон всегда работал.
Раньше один человек мог "тащить" весь проект от и до, говорят. И я
соглашусь: раньше ты был человеком-оркестром зачастую, а теперь куча
разделения обязанностей. Вот только толку никакого от этого, когда нет
понимания что и для чего делается. Конечно, когда проект большой, то там
уже все детали сложно охватить. Но только когда большой.
Сам в телекоммуникациях не работал, но, судя по всему о чём читаю,
что я вижу с VPS-ками и Интернет провайдерами: там точно с квалификацией
проблемы.
Касательно ведения всего проекта от и до. До сих пор самый лестный отзыв
о себе я услышал от бывшего начальника, уже много лет спустя как
разошлись с ним. Не, мне всякие благодарности не раз выражали, но всегда
это люди которые не очень то программисты и разработчики ПО -- поэтому
их мнение и оценка не то чтобы объективна. Ну вот мама считает что я
хороший специалист. Она никогда не программировала, не разрабатывала
софт -- поэтому как они объективно может судить об этом? Но бывший
начальник перечислил всего нескольких известных ему людей, которые от и
до могут спроектировать, распланировать, выполнить, сопроводить,
декомпозировать, протестировать, итд программный проект. Среди них был
назван и я. А вот его мнение для меня уже имеет ощутимый вес. Впрочем, я
также слышал, что он меня считал вредителем, что уже прямо
противоположные думы вызывало. Но только из-за него я решил всё же
повременить с уходом с работы в прошлом году. Опять же из-за веса его
мнения.
А сейчас все ленты ИТ новостей завалены статьями касающимися AI. Почти
ничего не читаю, ибо не интересно. Но пугает, пугает тот факт, что везде
пишут о 90% студентов использующих ежедневно AI/ИИ/LLM. С одной то
стороны ничего против не имею -- yet another инструмент, почему бы и
нет? Но доверие этих молодых людей к любой информации полученной из
поисковиков или LLM, отсутствие критического мышления -- пугает.
Особенно с учётом политической подоплёки, особенно учитывая бессовестные
попытки правки истории англосаксами, LLM которых все и используют.
Пишут о том, что 95% кода в startup-ах пишется LLM-ом. Что это означает?
Что 95% кода вообще возможно даже не читалось людьми, не говоря о его
понимании. Это означает кучу софта, который никто не знает как устроен,
как работает, как спроектирован, почему были приняты те или иные
решения. А ведь это в нашу жизнь будет просачиваться и наша жизнь будет
зависеть от этих ублюдков, которые обманывают окружающих, делая вид, что
это именно они написали программу. А как мне ещё относится к людям,
которые, так сказать, слепо списали. Если бы они открыто, прямо и сразу
же говорили: я ни черта не знаю как это всё работает, но вроде задачу
выполняет, так что можете использовать на свой страх и риск. Но они же
так не скажут, а будут делать вид или убеждать, что они точно такие же
разработчики типа меня.
Два раза уже было на работе, как предложили AI-generated небольшой
кусочек кода использовать для решения пары проблем. Нет спору -- они
были рабочими, но крайне переусложнёнными. Задаю вопрос: почему именно
так было сделано, почему именно вот так написано, почему именно вот так
та или иная конструкции применены? Ответа предлагающие дать не могут.
Если бы это было закоммичено, но это значит был добавлен
неподдерживаемый жутко переусложнённый, наполовину бессмысленный код.
А тут ещё вот новости о том, что ещё больше хотят "оцифровать" все
аспекты школьного обучения. Типа вообще заменить людей голосовыми
роботами, которые с полной уверенностью будут давать неграмотные ответы.
Sergey Matveev [Mon, 5 May 2025 05:30:52 +0000 (08:30 +0300)]
Квантовый хохол. Альтернативная история
https://sponsr.ru/nosikov/94874/Den_Pobedy_ikvantovyi_hohol/
https://awas1952.livejournal.com/10838844.html
Неоднократно мне попадалась статья в новостных лентах про "квантового
хохла". Собственно, к таким же мыслям я и пришёл самостоятельно о них.
Даже если не смотреть СМИ, а последить за ними в обычной жизни, то
поймёшь что они похлеще англосаксов будут. И, аналогично, первая мысль о
новостях, что лидеры поддерживающие Украину не приедут на празднование --
наверняка какую-нибудь заподлянку готовят всем скопом. А Путин всё
продолжает жалеть хохлов как никто.
Ещё в новостях мелькает новость о том, как Трамп сообщил о победе США
во Второй Мировой. С одной стороны это даже забавно: в скольких фильмах
или даже мультсериалах высмеивают сами же себя американцы, признавая,
что ни в одной из войн (хотя, вроде бы, полная бомбёжка Ирака наверное
считается) они не выиграли. Но уже на протяжении лет 20 неоднократно от
разных людей читал/слышал факт: большинство американцев даже не в курсе
что во Второй Мировой СССР вообще принимал участие. Теперь уже не
стесняются заявлять об отсутствии нашего значимого вклада в победу над
фашизмом.
Что дальше? Через год заявят, что бравая Европа совместно с Гитлером
объединились против напавшей на них СССР? Oh wait, судя по новостям, в
молдавских учебниках уже пишут что Вторую Мировую начала СССР. И именно
поэтому (очередные новости) неонацисты (ВСУшники) будут принимать
участие в параде в Англии.
Sergey Matveev [Fri, 2 May 2025 08:50:54 +0000 (11:50 +0300)]
Восстанавливают АОН
https://habr.com/ru/companies/timeweb/articles/830218/
Я только у одного человека видел подобный телефон со встроенным АОНом. У
нас же, после появления USRobotics Courier V.everything с "русской"
прошивкой, сам модем стал поднимать трубку и показывать на экране кто
звонит, отвечая сигналом модема через десятки секунд. Недостаток АОНов
был в том, что они поднимают трубку, а значит сразу же начинают капать
деньги у собеседника.
Sergey Matveev [Fri, 2 May 2025 08:48:39 +0000 (11:48 +0300)]
Redis снова свободен
https://www.opennet.ru/opennews/art.shtml?num=63175
С момента перехода Redis на несвободную лицензию я ни разу его нигде так
и не трогал. Задач пока для него не было. А теперь, с возвращением
Salvatore Sanfilippo, он снова стал свободным ПО. Нравится мне этот
человек, ибо столько интересного понаписал, плюс качественный софт
делает, плюс реально думает о свободном ПО.
Sergey Matveev [Thu, 1 May 2025 10:32:18 +0000 (13:32 +0300)]
OSF/1 в эмуляторе
https://habr.com/ru/articles/906226/
Я только читал про OSF/1, SVR4 и всякие подобные Unix-ы. Если это GUI,
то почти всегда CDE, Motif или OPEN LOOK (от Sun). И с 90-х и до сих пор
нравятся они как выглядят эстетически. OSF/1 особо приятивала, хотелось
пощупать её, ибо Mach микроядро, родная ОС для DEC Alpha
(7d58fbec9e870a02eb290e505633390fa4ff66cd). Даже последующее название
"Tru64 UNIX" звучит и пишется трушно.
Но... я понимаю что трогать это будет неприятно. Слишком всё старое.
Никаких IPv6. Сплошная проприетарщина.
Мониторинг сегодня показал резкий скачок разницы между моими часами и
ntp.ix.ru в 300мс. Смотрю на cgps:
┌───────────────────────────────────────────┐┌──────────────────Seen 9/Used 9┐
│ Time 2025-04-30T05:13:29.000Z (18)││GNSS PRN Elev Azim SNR Use│
│ Latitude 55.91352290 N ││GL 3 67 13.0 281.0 29.0 Y │
│ Longitude 38.03610780 E ││GL 4 68 22.0 330.0 27.0 Y │
│ Alt (HAE, MSL) 1656.683, 1614.475 ft ││GL 5 69 8.0 17.0 30.0 Y │
│ Speed 89.55 mph ││GL 11 75 14.0 123.0 31.0 Y │
│ Track (true, var): 213.6, 11.6 deg ││GL 12 76 74.0 113.0 31.0 Y │
│ Climb -16.54 ft/min ││GL 13 77 53.0 308.0 31.0 Y │
│ Status 3D FIX (48 secs) ││GL 21 85 37.0 39.0 29.0 Y │
│ Long Err (XDOP, EPX) 0.65, +/- 32.0 ft ││GL 22 86 63.0 139.0 31.0 Y │
│ Lat Err (YDOP, EPY) 0.59, +/- 28.9 ft ││GL 23 87 26.0 185.0 30.0 Y │
│ Alt Err (VDOP, EPV) 1.18, +/- 15.0 ft ││ │
│ 2D Err (HDOP, CEP): 0.88, +/- 11.9 ft ││ │
│ 3D Err (PDOP, SEP): 1.47, +/- 91.6 ft ││ │
│ Time Err (TDOP): 0.71 ││ │
│ Geo Err (GDOP): 1.63 ││ │
│ ECEF X, VX n/a n/a ││ │
│ ECEF Y, VY n/a n/a ││ │
│ ECEF Z, VZ n/a n/a ││ │
│ Speed Err (EPS) +/- 0.7 mph ││ │
│ Track Err (EPD) +/- 61.3 deg ││ │
│ Time offset -0.131075473 s ││ │
│ Grid Square KO95av49 ││ │
└───────────────────────────────────────────┘└─────────────────────────────────┘
Все девять (ограничение моего приёмника)спутников ГЛОНАССа идеально
видны, с отличным сигналом, с "ошибкой" по времени (TDOP) в 0.71 (что
означает идеальнейшую геометрию условий приёма). Такого, конечно же,
быть не может, учитывая, что у меня приём в окне, загороженном с одной
стороны стеной дома, иногда и в течении часа не может 3D координаты свои
узнать. Явно spoofing. И координаты меня на десятки километров ошибочны,
в другом городе. Фигово, конечно, такие часы иметь, которые могут
внезапно на треть секунды сместиться.
Galileo за полчаса вообще не смог ни от одного спутника сигнал получить.
Его, видимо, полностью шумом глушили.
https://habr.com/ru/articles/904664/
Да уже много лет назад я говорил, что переведя конфигурирование на
рельсы redo-целей, мы можем автоматически получить и распараллеливание.
На работе это вовсю используется -- теперь меньше секунды некоторые
проекты на аналог "configure+make+make install" могут потратить.
А в комментариях кто-то умудряется писать, что сама компиляция занимает
больше времени. Субъективно по ощущениям -- как-раз таки, зачастую,
наоборот, если речь про Си. Ждём 10сек ./configure, секунду саму сборку.
https://habr.com/ru/companies/wunderfund/articles/905400/
Совершенно не одобряю я его мерзкий "/usr/bin/env bash", но одобряю
желание писать скрипты для подобных простых команд. Его "g status"
идентичен "git status", но вот "g status foo" уже не будет работать
из-за "$@" подстановки, в отличии от alias.
В целом солидарен с аргументами в пользу написания скриптов. У меня
обычных alias-ов почти нет. Почти всё это "alias -g", которые могут
в pipeline вставляться (чего не сделать просто скриптами). А ещё
многое сделано в виде функций zsh.
https://habr.com/ru/companies/ruvds/articles/902018/
Статья упоминает адекватные современные алгоритмы сжатия звука,
изображений и вообще произвольных данных. Я уже наверное лет 20
не понимаю отчего всё ещё продолжают использовать MP3. Vorbis
куда лучше звучал. Сейчас уже давно есть Opus, потрясающий по
качеству (ну или степени сжатия).
Не соглашусь с тем, что вообще стоит переходить на lossless. Если
слушать что-то с портативного плеера, со смартфона, в говняных
наушниках, то зачем с собой таскать десятки гигабайт музыки или
передавать её по сетям? У преобладающего большинства людей нет ни
техники, ни ушей, которые бы оценили lossless. Всё же в пустую
расходовать место на дисках или пропускную способность каналов
тоже хорошо.
Но при возможности, конечно же, lossless не помешает. Сегодня у тебя
нет приемлемого оборудования, а завтра появится. Конкретно тебе lossy
сгодится, но со знакомым им уже не поделиться, ибо его такое качество
может не устроить. Я частенько предпочту вообще не слушать что-либо
(дома, в достойных наушниках), если оно есть только в lossy. Или
идеально или никак. Не будет расстройства от того, что музыка может
быть хороша, но ты знаешь, что добудешь её в достойном качестве, это
постоянно будет напоминать о себе.
Аналогично и про JPEG формат с PNG. Хотя разница в паршивости между JPEG
и современным кодеками не такая разительная как между MP3 и Vorbis/AAC/Opus.
Причём к PNG то претензия не на уровень сжатия (хотя и он далёк от того
же JPEG XL), а на скорость. Всякие gzip -- ну блин, ANS алгоритмы для
кого изобрели, которые и являются основной массы современных кодеков? А
в gzip же ещё и половина времени тратится на один только CRC32.
О выступлении группы, альбомы которой заслушиваю до дыр, узнал за
несколько дней. Не мог не пойти, конечно же.
Начиналось мероприятие с Cultustepean -- два синтезаторщика, один из них
на вокале. Всякие органные и мрачные инструменты, drum-machine. Не моё,
индиффирентен к выступлению был.
Далее шли, уже знакомые, Illt. Ну black как black. Не плохо, но и ничего
запоминающегося.
Потом был Nedrugh. Всё выступление были проблемы со звуком. То
микрофонный эффект от вокалиста, то от их гитар, то гитар толком не
слышно. Это сильно опечалило их выступление. Но... ну метал как метал,
если на разогреве, то отличный.
Ну а Всполох, были, конечно же, на высоте! К сожалению, долбанный звукач
всё равно плохо всё настроил и самая первая их песня была почти без
гитар и вокала -- их почти не слышно на фоне барабанов с басом. Не один
человек из толпы сказали о проблемах с гитарами. Вторая песня началась
уже с добротным звучанием.
Одно из первых что приходит на память из их выступления: запах. Перед
началом они прошли и благовониями какими-то повоняли во все стороны. Они
там, видимо, продолжали тлеть и поэтому запах был до конца выступления.
Приятный, но очень уж необычный для концерта.
Одеты участники группы в какое-то серое рваное тряпьё. Разукрашены как
уже почерневшие трупы. Почему-то хочется сравнить с ghoul-ами из Fallout.
Выглядит здорово.
Играли идеально. Отличный вокал. Мощный ударник. Из-за проблем со
звуком, их главный гитарист-вокалист подходил вплотную к мониторам,
видимо, чтобы себя лучше слышать когда играет соло.
Мощно, атмосферно! Хтонически, как они бы сказали. Именно то, что я и
хотел услышать. Про себя я многие слова их песен знаю и, так сказать,
подпевал. А кто-то и вслух это делал. Не смотря на экстремальный вокал,
у них очень хорошо различаются слова. Всё же, лучше добротного black,
ничего нет!
В какие месяцы и годы чаще всего хожу на концерты?
Недавно сконвертировал список концертов из Texinfo в recfile. Из него
zsh-скриптом генерирую Texinfo. Переписываясь с одним человеком, брякнул
факт о том, что летом мало концертов проходит. И теперь можно моментально
подтвердить это
Похоже, только сейчас я обратил внимание на то, что whitespace-ы которые
добавляет "wc -l" удобно сочетаются с "echo -n" выводом и вот так красиво
автоматически всё выравнивается.
Удивительно, но 2000-ые мне запомнились тем, что я там очень часто ходил
на всякие грайндовые концерты. А статистика говорит, что самый массовый
год был 2023-ий, да и вообще после начала СВО. Сейчас в этом списке есть
и оперы, но их по пальцам посчитать. В общем, неожиданные для меня данные.
Уже больше месяца (564930f08277a2813bcf84b4b58001dbeafa400c) я на новой
VPS-ке с другой /48 сетью. Полёт отличный. Ни к скорости, ни к каким то
другим неожиданностям придраться не могу.
Но также заметил, что при обновлении различных Git зеркал, полностью
исчезли ошибки недоступности. Почти 200 различных репозиториев, многие
из которых доступны по IPv6, некоторые даже только по нему. И где-то с
полдюжины, иногда штук 20, но не могут они обновиться -- отрубают через
какое-то время с ошибкой по прикладному протоколу (Git/HTTP) что всё
медленно, плохо и timeout. С новой сетью если что-то и не получалось, то
когда реально сами Git хосты лежат. Но зато на нём не работает YouTube,
в отличии от прошлого. На работе он (по IPv6) доступен, но тратить там
трафик на скачивание видосиков на тему компьютерных игр я не буду.
Но и в мире IPv4 всё аналогично: что-то где-то доступно и работает
исправно, а на другом провайдере уже нет.
https://arxiv.org/abs/1904.06525
Вот есть предложение с анализом по использованию Стрибога в SPHINCS+
(ae09a56ab4c40b8a377821678c929e32ef2a0c0d). С ним, как и с SHA2-256
сложнее, ибо они не XOF функции, как SHAKE, но типа просто замена хэша
более чем достаточна. Чем SPHINCS+ и прекрасен.
Побывал на концерте ансамбля Центрального Дома Российской Армии
https://cdra.ru/
Не целенаправленно ходил, но была возможность посетить "за компанию".
Как по одиночке пели, так и небольшим хором. Пляски, музыкальные номера.
Ну... не скажу что пожалел, но всё же совсем не моё. По сути мне больше
всего то только танцы и понравились, но наверное потому что я редко когда
их вообще видел в живую. В целом это было крайне близко к эстраде и
попсе, разве что тексты были ожидаемой тематики. Казачий хор, на котором
был днями раньше -- куда более серьёзный.
https://code.mendhak.com/gpl-v2-address-letter/
Некто прошёл квест по отправке материального настоящего письма в FSF,
чтобы получить от них тоже настоящее письмо с распечатанной GPL лицензией.
Вот только ему прислали GPLv3, а не GPLv2, которая у него была указана.
Раз в пару недель проскакивает новость о том, как люди то тут, то там
ставят "защиту" от AI-роботов, типа Anubis. На сайте написано, что он
заставляет обозревателя делать proof-of-work. Детали на сайте больше не
прочитать: он бросает redirect-ами на один и тот же URL со слэшом и без
него (видимо, это та самая "защита"?). На GitHub только можно посмотреть
документацию. Ну так и есть: всякие cookie, PoW. То есть, теперь уже не
корпорации (типа Cloudflare), но сами люди заставляют других запускать
код и сжигать немалое кол-во ресурсов для доступа уже к обычным HTML
сайтам (не web-приложениям).
https://ru.wikipedia.org/wiki/Кубанский_казачий_хор
В целом понравилось, но повторно вряд ли бы пошёл. Всё же далеко от меня.
Ни одна женская солистка не тронула, не впечатлила (ну кроме мощью голоса),
в отличии от мужских солистов. Были и танцевальные вставки. И чисто
музыкальные, которые мне, похоже, больше всего понравились. Сходить,
считаю, стоит -- удовольствие получаешь.
http://blog.cr.yp.to/20250423-mceliece.html
DJB рассказывает о том, насколько всё сложно, не красиво и фигово и
странно с NIST стандартизацией алгоритмов.
На днях коллега был удивлён количеству разнообразных систем установки
пакетов для Python. Кроме pip это всякие poetry и прочее. Сегодня я
полчаса пытался создать venv внутри которого хотя бы python-dateutil
установить, плюс ещё несколько зависимостей на чистом Python.
Устанавливал из полностью замороженного состояния pip-а. На двух разных
версиях Python. Даже предварительно устанавливая setuptools. Ничего уже
не сделать: упорно всё равно пытается установить setuptools новейших
версий, падает на этом, ничего не ставит. Пришлось править код проекта,
удалять временно часть зависимых библиотек, другие ставить чисто руками,
третьи подкладывать через PYTHONPATH. Если нет директории с полным
слепком всех пакетов, то через PyPI это уже почти нереально что-то
установить. В полнейшей деградации вся экосистема. Не проверял только на
супер-пупер новейших версиях. Но зато хотя бы никто не пытался
подтягивать Rust зависимости.
В кои то веки вспомнил про "Женщина. Учебник для мужчин"
Как-то недавно одна знакомая рассказывала, как готовила в общежитии еду,
чтобы с ней и с нерешённой задачей из института пойти к знакомому за
помощью. Я думал что давно уже меня не могут задеть или возбудить старые
воспоминания подобные темы. Но смогли. Опять я вспомнил, что аж два
диплома делал девушкам (оставалось только оформить, всякую воду с ОБЖ и
экономической частями добавить), но никогда никто не благодарил (ну ok,
одиночное "спасибо" всё же было), или тем более превентивно не приносил
еду или что-либо подобное. А тут чувак ещё ничего не успел сделать, не
выставил условия, но уже в profit. Теперь то, кстати, понимаю: если я
уже и так всё сделал, то смысл меня благодарить, ибо и так всё получено.
Когда были отношения с бывшей, то я был уверен, что красиво одевалась
она, в том числе, чтобы типа и мне тоже нравилось, как парню.
Самоуверенности, конечно, хоть отбавляй. Уже после её измены, начинало
доходить, что одёжка то запросто и для мужчины была, но для другого.
Сколько то лет назад вроде ко мне проявляла одна особа симпатию, но там
вообще не понятно что в голове у неё было, параллельный мир и не долго
всё продлилось, относительно шустро прекратившись, более не пересекаясь.
Умён, не умён -- роли вообще никакой не играет (про ум просто чаще всего
женщины говорят как о наиболее важной черте). Видел я как и на умных
вешаются, так и умнейших полностью игнорируют. С дебилами не связывающими
два слова вместе -- вот у них, судя по тому что вижу на улицах, всегда
есть пара. Если ли хорошая (по зарплате) работа или нет -- тоже никакой
роли не играет. Ну если речь не про очень высокооплачиваемую. Когда то я
получал больше чем все друзья вместе взятые. Результата никакого. Сейчас
я меньше многих junior-ов получаю (судя по информации из первых уст), но
и не пытаюсь кому-либо понравится. Хорошо ли одеваешься или нет -- тоже
роли не играет. Я не один год ходил только в костюмах. А сейчас вот на
днях решил новые джинсы всё же открыть, ибо на старых появилась уже
дырка :-) (но до дырки то они же выполняли свою функцию!). Если я забил
на то, чтобы кому-то понравится, то почему же в прошлом году позвал
замуж одну? Опять, чтоб её, лютая самоуверенность, хотя не одну неделю
обдумывал всё и прикидывал.
И вот и вспомнилась сабжевая книжка. Где чётко мужчин можно разделить на
тех, кому "дадут" (не обязательно секс) за-просто-так; кому дадут в обмен
на что-то (еду за помощь, с чего заметка моя и мысли и начались); кому
не дадут ни при каких обстоятельствах (разве что если с головой не лады
или какие-то безвыходные ситуации с вопросом о жизни/смерти). Изначально
книжка мне понравилась. Потом я, скорее, считал её далёкой от реальности,
где всё не так просто и однозначно. Сейчас что-то из ностальгии вновь в
неё посмотрел и... её точно мне надо было прочитать до знакомства с
бывшей, где на каждой второй строчке указывалось насколько всё было
паршиво и не правильно.
Но спустя уйму лет с момента создания этого "блога", у меня уже
преобладают другие мысли по поводу (сильно) теоретически знакомств с
женщинами. Практически сразу возникает в голове напоминание о факте
моего возраста. Ещё немного и мне уже будет сорок! А (не)понимание
женщин у меня на уровне 13-летнего пацана, у которого после общежития (в
которых я никогда и не был) в институте уже никаких проблем не было бы.
И когда мне друзья предлагают познакомиться со знакомыми выпускницами
институтов... я больше удивляюсь как им вообще такие идеи приходят в
голову? Я же не рок- или теле- звезда, чтобы было нормально иметь
разницу в возрасте в полвека :-) Объективно это полнейшая фигня. Её
сверстники вовсю начинают (или уже вовсю идут) подниматься на холмы
успеха и развития, тогда как после сорока у большинства, насколько мне
кажется, в лучшем случае будет только плато стабильности, после которого
всё равно только спад возможностей и умений.
Ну и в целом к женщинам у меня с начала СВО ощутимо поубавилось
уважения и спокойного отношения. Так как, видя как они обсуждают тех,
кто буквально их жизни защищает, можно только порадоваться что такой вот
нет дома, ибо не представляю как с ней жить то или разговаривать можно
будет. И детей страшно оставлять, ибо воспитает таких, что уж лучше бы и
не рождались. Видимо, феминизм у нас настолько развит в стране, что
(настоящих, которые защитники) мужчин у нас настолько презирает женский
пол, что они только и ждут как получат выплаты за гибель мужа. Он же
просто очередным будет, вообще ничего не стоящей (кроме выплат) единицей.
Конечно, не все такие, даже не уверен что больше половины, но расслоение
между "отвратительными" и "нормальными" женщинами ещё шире стало в моей
призме мировосприятия.
А ещё мне из года в год сильнее и сильнее кажется, что с молодёжью не
выйдет найти общий язык в быту. Люди всю жизнь росли со смартфонами и
сплошным проприетарными ПО и удалёнными сервисами в Сети. Всё на свете,
каждая мысль ими сразу же вбивается в Google/whatever. А теперь в LLM
системы, судя по всему. По моему это всё кардинально иное мышление
должно быть, принципиально иные принципы решения проблем/задач. Плюс
иные "протоколы" общения/взаимодействия с людьми (ну кому в голову может
прийти мысль об отправке голосовых сообщений!? (исключая инвалидов, тут
всё оправдано)).
Добавил аутентифицированное шифрование на основе публичных ключей
http://www.keks.cypherpunks.su/Authcrypt.html
Аутентификация отправителя зашифрованного сообщения без подписи мало кем
предоставляется. Ни в CMS, ни в PGP такого нету например. А было бы
полезно: может работать быстрее, нет non-repudiability свойства, которое
кому-то может не нравится.
По идее, достаточно просто сделать ещё один DH между статическими
ключами (DH(s,s)), а не только один DH(e,s). Засада в том, что у меня
не-ГОСТовые KEM-ы -- гибридные, из традиционных и постквантовых
алгоритмов. А PQC KEM-ы не предоставляют API которым бы можно было
выполнить аналог DH(s,s). Поэтому решил его делать без участия PQC, ведь
это не повлияет на конфиденциальность, только аутентификацию, причём
deniable/repudiable. Результат просто подмешивается HKDF-ом.
Но это всё просто. А вот в чём настоящая засада, так это проблема
нескольких получателей. Дешифровать сообщение может каждый из
получателей. Соответственно и перешифровать сообщение, так как CEK
ключ же один на всех.
Начитался про всякие message franking, про key commitment (снова), про
committing AEAD и ccAEAD (compactly committing). Многие статьи и люди в
рассылках предлагают использовать ccAEAD, commitment которого использовать
в KDF при шифровании CEK-а. Всё это красиво, да, но не применимо к тому
как KEKS/CM шифрует: потоково, разделяя на независимые 128KiB блоки.
В итоге остановился на практически простейшем решении, как это также
сделали и в Saltpack (f9e33af95af9179a24c5539e9e9661d60d0a3c0b).
Добавлять MAC над хэшом от шифротекста для каждого получателя по
отдельности. Хэш от шифротекста -- чтобы один раз его можно было дорого
посчитать, а MAC уже делать над короткой строкой, чисто оптимизация.
Пока всего этого ещё нет в коде, но хотя бы практически поставлена точка
над этой единственной оставшейся задачей. Месяцами время от времени
обдумывал и прикидывал всякие за и против.
https://norton.fandom.com/ru/wiki/Королева_Солнца_(серия_книг)
Лёгкое прелёгкое приключенческое чтиво. В конце, правда, уж
слишком по-детски наивное, чуть оставляя осадок. Но в целом
с большим удовольствием всё прочитал.
Какие CA доверяются создателями web-обозревателей?
В рассылке задали вопрос: Why aren't any browser makers also CA's?
На что дали исчерпывающий ответ:
Apple is a CA, at least according to themselves.
Google is a CA, at least according to themselves, Microsoft and Mozilla.
Microsoft is a CA, according to themselves, Apple, Google and Mozilla.
Mozilla is the only one that doesn't seem to be trusted as a CA by any
of the major browser makers, but I won't rule out that I'm searching
for the wrong thing.
I'm pretty sure as someone controlling a host name you can get an
actual TLS certificate at least from Google.
Apple's list of currently trusted CAs: https://support.apple.com/en-us/121672
linked from https://support.apple.com/en-us/103272
Google's: https://chromium.googlesource.com/chromium/src/+/main/net/data/ssl/chrome_root_store/root_store.md
linked from https://pkic.org/ltl/
Microsoft's: https://ccadb-public.secure.force.com/microsoft/IncludedCACertificateReportForMSFT
linked from https://learn.microsoft.com/en-us/security/trusted-root/participants-list
Mozilla's: https://ccadb.my.salesforce-sites.com/mozilla/CACertificatesInFirefoxReport
linked from https://wiki.mozilla.org/CA/Included_Certificates
https://blog.trailofbits.com/2025/04/18/sneak-peek-a-new-asn.1-api-for-python/
Ну вот как относится к авторам (судя по всему) библиотеки декодирования
DER, но которые заявляют, что: DER is a self-describing and
self-delimiting encoding: A given DER message can be fully and soundly
parsed without prior reference to a schema or format description beyond
the encoding rules of DER themselves. Можно только одно сказать: они
вообще не работали хоть сколько-то широко с DER-ом, с ASN.1 и выдумывают
полный бред. Достаточно встретиться с массой IMPLICIT TAG-ов со
структурами и фиг твой декодер справится. Именно поэтому в PyDERASN есть
--allow-expl-oob флаг, который позволяет пытаться декодировать "выходящий
за пределы" (якобы) EXPLICIT TAG и пытаться влезать дальше по структуре.
https://habr.com/ru/companies/ru_mts/articles/902244/
как заявляет автор статьи. Типа программист. Который сравнивает скорость:
из БД извлекается 100 тестовых пользователей; создается экземпляр класса
для каждой строки, преобразуя объект datetime в строку формата ISO и
шифруя одно из полей с помощью шифра Цезаря; результат сериализуется в JSON.
Это просто прекрасно сравнивать при наличии СУБД, и при наличии JSON в
Python, который сериализуется Сишным кодом. Ну а если применить Numba,
то Python становится сравним по скорости!
Мне удалось разобраться с циклами, функциями, пакетами, но впереди
еще постижение интерфейсов, работы с файлами и параллелизма.
На самом деле, человеку ещё уйму просто базовых вещей по программированию
познавать. И ещё понять тот факт, что в Go придётся не "параллелизм" изучать,
а конкурентность.
https://sphincs.org/
К KEKS/CM форматам добавил возможность создания подписей SPHINCS+
алгоритмом, который стал стандартом SLH-DSA (stateless hash-based
digital signature algorithm) в NIST, наравне с ML-DSA.
Чем мне очень понравился SPHINCS? Тем, что он полностью основан
исключительно на хэш-функциях и я в общем и целом понимаю его
устройство, понимаю принцип работы. Не в таком понимании как
эллиптические кривые и простое доверие что всё так и есть, когда
объясняют на пальцах, а такое, что я прям осязаю что вся сложность
задачи сводится к свойствам хэшей криптографических. Ну и в его
создании участвовал DJB.
Активно пытаются стандартизовать XMSS алгоритм подписей. Тоже всё на
хэшах, но он stateful -- каждая подпись это изменение состояния
"приватного ключа". Что не шибко то удобно, но зато точно работает. Так
вот SPHINCS это как-бы надстройка над XMSS, делающая его stateless. Но
ценой вычислительных мощностей и размера подписи.
Если взять самый параноидально безопасный вариант SPHINCS+: 256s-robust,
то создание ключевой пары, создание и проверка подписи занимают
несколько секунд. Но позже в SPHINCS+ предложили "simple" вариант,
который в разы легче по затратам процессора и более чем удовлетворяет
безопасностью. SLH-DSA выбрал вообще только этот вариант.
"256f" ("s" -- small, "f" -- fast) вариант гораздо более быстрее, ценой
размера подписи большим на 10 килобайт (~30 vs ~40). Это компромисс, но
я выбрал более быстрый вариант, ибо место довольно дёшево и это не
вопрос 1K (который влезет в один IP-пакет) vs 10K.
Подпись можно делать детерминированной (без использования случайных
данных) или randomised. Изначально я слепо выбрал детерминированную, ибо
это убирает требование наличия хорошего PRNG. По аналогии с
детерминированными подписями в Ed25519 vs ECDSA/ГОСТ. И SPHINCS+ и NIST
намекают, что randomisation полезно для борьбы с fault-injection атаками.
Но позже я осознал свою неправоту: хороший PRNG вовсе не требует. Даже
если PRNG будет константой, то это просто станет детерминированной
подписью, без каких-либо рисков для утечки приватного ключа. Поэтому он
либо ничего не даст (если PRNG плохой), либо приятные свойства против
fault-injection атак.
Да, размер подписи большой, но всё же более чем пригодный для применения
на практике, плюс точно очень безопасный, даже против квантовых
компьютеров. Пока мне видится использование SPHINCS+ (или SLH-DSA
варианта) как предпочтительного для долговременных документов. Не там
где подпись используется для интерактивной аутентификации (TLS тот же),
а для подписей рядом с файлами. И то, для интерактивных протоколов стоит
не подписи, а DH использовать.
Уже со вчерашнего дня. Теперь у меня остались только stargrave.org,
cypherpunks.su и nncpgo.org домены, более никаких .ru. Содержимое
cryptoparty.ru переехало на cryptoparty.cypherpunks.su, но с уходом
всяких либералов, экстремистов, оппозиционеров и сепаратистов,
криптопати больше как-то никто и не устраивает :-)
На работе провели сабж между службами. На 90% всё сплошные фильмы времён
СССР, где я не силён, как и более молодые коллеги. Я где-то 1/3 или 1/2
вопросов мог бы ответить. Коллеги бы справились и без меня, но кроме
одного вопроса, где я дал правильный и уверенный ответ на тему фильма
"Убить дракона" (afef111c5fedb37d00145abaedc2ff3feed28418). Заняли
второе место с отрывом в одно очко.
https://habr.com/ru/articles/900778/
Какие критерии успешного обновления ПК? Как гласит статья:
* "Веб-браузер больше не тормозит" -- вот да, теперь surf-ить просторы
Паутины это уже как Crysis запустить по ресурсам. Безумие, которое не
останавливается
* "Однако "мгновенной загрузки любой программы" о чем я мечтал нету.
Софт хоть и стартует пошустрее, но ждать приходится все равно ощутимое
время" -- я поэтому и люблю адекватное ПО и не переношу ожидания или
задержки при интерактивное работе
CA/B форум решил сократить срок действия сертификатов до 47 дней
https://dxdt.ru/2025/04/14/15371/
https://www.opennet.ru/opennews/art.shtml?num=63069
Как верно заметил автор:
Сертификаты превращаются в квитанции, разрешающие доступ. Что-то
вроде тикетов в каком-нибудь Kerberos. Короткие сертификаты
означают, что веб-узлам придётся плотно привязаться к внешней
централизованной системе. Всякий веб-узел должен будет постоянно и в
автоматическом режиме отмечаться на центральном сервере, который
станет выдавать (или не выдавать) подтверждение, что браузерам всё
ещё разрешено к этому веб-узлу подключаться.
А так как WWW рулится де-факто всего одним CA, под юрисдикцией США, то у
них (ещё более) офигенный инструмент цензуры.
Идея emoji для меня выглядит полнейшим безумием, в контексте Unicode.
Это же не просто символы/картинки, а реально штуки которые на лету
рендерятся и могут комбинироваться между собой. Твёрдо убеждён что этому
не место в Unicode. А многие превращаются из-за этого в каких-то макак
безграмотных, которые только символы могут друг другу показывать, и
гадай что они хотели своими ребусами сказать.
Графический Links у меня не рендерит их, как и многое из Unicode тоже.
Не проблема. А вот терминал прекрасно отображает. Не нравится мне это.
Надо пропатчить терминал.
К сожалению, emoji не расположены в одном диапазоне значений Unicode.
Поэтому пришлось написать Perl программку, которая парсит emoji-data.txt
из Unicode стандарта, интерпретирует диапазоны, выводит готовый Си код с
полным списков всего что касается emoji. А сам терминал bsearch-ем
напротив этого списка проверяет выводимые руны и заменяет на невалидную,
если нашёл emoji. Благо, код в suckless terminal мало и место для
вставки находится моментально.
Как-то на работе во время парного программирования, у человека git stash
выдавал ошибку: мол, обломались, ничего не смог сделать. Эмпирически
выяснили, что если git stash делать в SHA256 репозитории, то всё плохо.
Версия Git 2.43.0. Не разбирались до конца в чём же дело, но понадеялись,
что это просто бага в самой 2.43 версии. Собрал сегодня её и никаких
проблем не обнаружил. А так как у человека самая обычная vanilla Ubuntu,
почти голая, без настроек персональных, то, судя по всему, это именно
они умудрились как-то собрать Git таким образом, что поломали stash. Ну
и как под этим разработчику работать?
Услышал тут мнение от человека, который когда-то проходил наши
собеседования на начинающего разработчика. Он был на собеседованиях в
Сбере, в Яндексе, обсуждал со своими знакомыми, тоже куда-то
устраивавшимися.
Я был полностью уверен, что наши собеседования чрезвычайно просты и,
скорее, даже постыдно несерьёзны и запросто отталкивающими от того, что
мы мало чего спрашиваем и проверяем. Опыта в нашей команде не много по
этому вопросу.
Оказалось, что для стороннего человека они были полной жестью и
ужасом в плане сложности. Выходя после собеседования, у него
криптография чуть ли не из ушей лилась (как он примерно так и
выражался). Вроде приходил устраиваться на место Python-разработчика,
но с ходу начали спрашивать то по сетям, то по Unix-ам, то по базам
данных, то по архитектуре распределённых решений. И только после этого
начался Python. А человек готовился только к нему, ничего иному. В
Сбере, мол, вопросы только по нему и были.
Я был реально удивлён, совершенно не ожидая, что всё как-раз наоборот,
чем я представлял.
https://habr.com/ru/news/899812/
Типа он отъедает половину всего времени работы декомпрессора. А я по
статьям из dffa894abeab4eaec509b95af9d23b51e4e0f844 уже наслышан, что
автору LZ4/Zstandard пришлось изобретать более быстрый алгоритм контроля
целостности, ибо CRC32 слишком медленным оказался.
https://habr.com/ru/articles/898958/
Ох, насколько же у меня всё было похоже на описанное в статье! Правда,
Mandrake был 7.x, на двух дисках. Запомнилось, что там применялся EGCS,
вместо чистого GNU GCC. Ну и у меня AMD K6-2 III был, никогда никаких
Pentium-ов.
http://lists.cypherpunks.su/archive/nncp-devel/87ecy76f5v.fsf@complete.org/T/
https://lobste.rs/s/gzuzyp/email_over_nncp_via_exim
Тут люди чего-то изобретают, создают какие-то сети почтовые поверх NNCP.
Вот только ни одна ссылка с salsa.debian.org у меня не открывается.
Поэтому вообще никаких деталей не знаю.
http://www.keks.cypherpunks.su/Schemas.html
С самого начала появления YAC/KEKS проекта я откладывал такую тему как
валидация структур данных. Сам по себе кодек должен быть schemaless: для
декодирования ничего дополнительного не нужно. Но схема всё же нужна для
задания какие поля, какого типа, какой длины, каких значений должны же
быть. Для JSON есть JSON Schema как пример.
Соответственно, нужно и понять как задавать схемы, а потом понять как их
применять и валидировать данные напротив них. JSON Schema или CDDL,
конечно, не вариант для Си -- слишком тяжеловесно. Генерировать код
декодирования или проверки из этих схем -- я не потяну такую задачу,
уверен что не простая, особенно когда, в отличии от ASN.1/protobuf,
порядок следования элементов не всегда априори известен.
Более чем полгода откладывал, но менее чем за неделю всё придумал и
реализовал. 90% всех проверок -- очень однообразны и просты. Можно
значит написать какие-то простые правила описывающие как проводить
проверки. Так сказать, сделать некую validation (virtual) machine,
которой управлять через подаваемые команды валидации. Предполагая, что
сама реализации такой верификации по командам/правилам/спецификациям
должна быть очень простой для реализации даже для Си.
В итоге реализовал подобное для Си и для Go. В Си это, если убрать
огромный код связанный с проверкой точности TAI полей и всякие
красивости поясняющие где и какая валидация не прошли -- это займёт
где-то 200-300 строк кода.
На вход нужно подавать команды валидации. Как их передать, как
закодировать? Конечно же использовать сам KEKS! В итоге имеем функцию
валидации, на вход которой подаются декодированные произвольные данные и
декодированные схемы. Каждая схема это просто последовательность команд
валидации.
Некоторые команды принимают n-ое кол-во аргументов, какие-то без них
вообще. Команды реализовал: ". k" -- "взять" элемент словаря или списка;
"E" -- проверить что взятый элементы существует; "!E" -- не существует;
"*" -- применить последующую команду для каждого элемента выбранного
словаря/списка; "T t0 [t1 ...]" -- проверить что тип выбранного элемента
находится в множестве (t0[, t1 ...]); "> n" -- проверить что значение
int или длина списка/словаря больше указанного числа; "< n" -- меньше;
"S s" -- проверить выбранный элемент напротив схемы s; "TMP p" -- time
maximal precision, проверить что точность выбранного поля со временем не
превышает указанную; "= v" -- проверить что выбранная строка равна v.
Например проверка такой CDDL схемы:
ai = text .gt 0
fpr = bytes .size 32
our = {a: ai, v: bytes/text, fpr: fpr, ?comment: text}
По сути это такой встроенный интерпретатор. Но достаточный для 90%+ всех
задач связанных с проверкой напротив схем. А если чего сильно будет не
хватать, то можно и новые команды добавить.
Как их генерировать? Я написал реализацию на Tcl, в которой множество
вспомогательных коммандочек имеется. В итоге содержимое файла с полным
описанием правил валидации публичного ключа (который может быть
подписан, который является и cm/signed структурой):
SCHEMAS {
av {
{HAS a}
{TYPE= a {STR}}
{!EMPTY a}
{HAS v}
{TYPE= v {BIN}}
}
{HAS sub}
{TYPE= sub {MAP}}
{!EMPTY sub}
{TYPE* sub {STR}}
}
}
Что, с моей точки зрения, не сильно и не существенно отличается от
описаний ASN.1 или CDDL. Я их писал просто с ходу, без запинок, без
особых раздумий. В самой Tcl утилитке, например STR= (убедиться что k
является строкой со значением v) описан вот так:
где более низкоуровневые TAKE, TAKE, EQ команды описаны так:
proc TAKE {v} {
if {[string is digit $v]} {set v [list INT $v]} {set v [list STR $v]}
subst {{LIST {{STR .} {$v}}}}
}
proc EQ {v} {subst {{LIST {{STR =} {STR $v}}}}}
proc TYPE {vs} {
set l {{STR T}}
foreach v $vs {lappend l "STR $v"}
subst {{LIST {$l}}}
}
что затем уже через LIST/STR/INT команды кодируется в KEKS.
Соответственно, пишем на Tcl подобные схемы, преобразуем их в KEKS
файлы, через go:embed встраиваем во время компиляции в Go код, где
декодируем и передаём в функции валидации. Аналогично и для Си. А так
как схемы, в общем то, являются самыми обычными Tcl программами, то там
всякого можно понапридумывать для сокращения писанины.
По моему вышло здорово. Пока функции валидации ещё не покрыты тестами,
но это явно не сложная задача, ибо команд не много. Зато теперь можно
настоящие схемы писать, а не то что я на сайте показываю, чисто для
человеков. И свои Go утилитки у меня уже используют это всё для
валидации файлов с ключами, подписанных и зашифрованных контейнеров.
Я тут далёк от всей темы, но не Тьюринг-ли полный у меня язык вышел?
А то наслышан, что нечаянно сделать подобное -- относительно легко. Но
это не должно быть проблемой, ибо не предполагается что схемы из
недоверенных источников могут приходить.
Добровольно-принудительно на работе нам выдают банковские карты одного
банка. Говорю что не использую сотовый телефон, могу дать городской.
Обращаются к старшей: мол, тут человек без сотового. На меня оборачиваются
пять человек, вся комната. "Как же так, ни один банк без сотового не
выдаст карту". Отвечаю, что "со Сбером проблем не было". После этого
сказали, что пускай напишу городской, выдали карту. Хотя там в анкете
явно есть пункт "нет мобильного телефона".
Пару недель назад я криво подстригся. Сделал одну глупость и у меня
что-то типа чёлки появилась. Конечно же временно, пока волосы на
несколько сантиметров не дорастут. Был тут на дне рождения у друзей и
мне сказали что с ней я похож на Винсента (Траволта) из Криминального
Чтива (действительно так и есть) и помолодел лет на пять.