]> Sergey Matveev's repositories - stargrave-blog.git/log
stargrave-blog.git
2 months agoСюжет Bioshock Infinite
Sergey Matveev [Wed, 6 Mar 2024 20:58:57 +0000 (23:58 +0300)]
Сюжет Bioshock Infinite

https://www.youtube.com/watch?v=DiNsCa7QX-I
https://en.wikipedia.org/wiki/Immersive_sim
https://www.youtube.com/watch?v=NWm_EPs9Mv4
https://www.youtube.com/watch?v=9jTvRWZoEoM
Среди того, что называют и причисляют к immersive sim игр, я был знаком
только с System Shock 2. Очень хотел сыграть в Deus Ex в своё время, но
он не шёл на компьютере -- слишком тот был слаб или ещё какая-то
проблема, уж не помню. Помню что Bioshock выглядел чем-то революционным,
жутко интересным, но железа для его запуска даже близко не было. Про
Thief читал в книгах, но не встречал знакомых которые бы в него играли и
у кого можно бы было скопировать его. Про более новые игры вообще речь
не веду.

Смотрел всякие обзоры на Bioshock [12] -- дичайшее удовольствие получаю
от его атмосферы, мира и всего что происходит на экране. Многое
напоминает о Fallout. Весь этот стимпанк. Вообще всё.

А вот про Infinite почти ничего толком и не знал, кроме того, что всё
действие на небесах, всё очень яркое и цветное, без мрака, с кучей
людей. Почти отталкивало даже и мало я слышал хвалебных отзывов об игре
от знакомых. Правда мы все уже, к выходу игры, достаточно выросли чтобы
обзавестись кучей других забот и нехваткой времени :-)

И вот посмотрел двухчасовой разбор игры, где и историю и даже введение в
квантовую физику рассказывают, плюс тьма записей того, что происходит в
игре. Сам не играл, но вообще, похоже, что просто крутейшая игра, с
крутейшим сюжетом, идеей и красивейшей атмосферой. Отличной от
предыдущих подводных частей, но тоже привлекательнейшей.

2 months agoRetro Games Mechanics Explained
Sergey Matveev [Mon, 4 Mar 2024 20:13:19 +0000 (23:13 +0300)]
Retro Games Mechanics Explained

https://www.youtube.com/channel/UCwRqWnW5ZkVaP_lZF7caZ-g
Много видео поясняющего различные механики и баги в ретро игрушках,
которые на игровых приставках.

2 months agoOpus 1.5
Sergey Matveev [Mon, 4 Mar 2024 19:30:21 +0000 (22:30 +0300)]
Opus 1.5

https://opus-codec.org/demo/opus-1.5/
В новой версии Opus всякие ML-related улучшения и нейросети.
В основном всё качается VoIP.

3 months agoCloudinary снова про JPEG XL
Sergey Matveev [Thu, 29 Feb 2024 17:32:31 +0000 (20:32 +0300)]
Cloudinary снова про JPEG XL

https://cloudinary.com/blog/jpeg-xl-and-the-pareto-front
Куча графиков сравнений с JPEG, AVIF, WebP. Короче говоря:

    This consolidates JPEG XL’s position as the best image codec
    currently available, for both lossless and lossy compression, across
    the quality range but in particular for high quality to visually
    lossless quality. It is Pareto-optimal across a wide range of speed
    settings.

3 months agoGNU tar и автоматическое определение декомпрессора
Sergey Matveev [Thu, 29 Feb 2024 09:22:24 +0000 (12:22 +0300)]
GNU tar и автоматическое определение декомпрессора

Его нет. Я уже даже не помню сколько лет я просто отправлял данные в
"tar x" и декомпрессор находился сам, на основе данных на входе. А в
GNU tar, при подаче через stdin, он так не умеет. Более того, он сам
прекрасно при этом понимает что ему подаётся Zstandard и предлагает
использовать --zstd опцию, но автоматом сам её не подставит.

3 months agoСтатистика внедрения IPv6, преимущества и перспективы
Sergey Matveev [Wed, 28 Feb 2024 07:49:50 +0000 (10:49 +0300)]
Статистика внедрения IPv6, преимущества и перспективы

https://www.etsi.org/images/files/ETSIWhitePapers/etsi_WP35_IPv6_Best_Practices_Benefits_Transition_Challenges_and_the_Way_Forward.pdf
https://www.rfc-editor.org/rfc/rfc9386.html
RFC и ETSI документы на эту тему есть. Про SRv6 не раз упоминают в
последнем. Только в прошлом году впервые видел его упоминание.

3 months agoНебезопасности в PDF
Sergey Matveev [Tue, 27 Feb 2024 06:49:12 +0000 (09:49 +0300)]
Небезопасности в PDF

https://web-in-security.blogspot.com/2021/01/insecure-features-in-pdfs.html
Я предполагал что можно бесконечные циклы делать например, для DoS, как
и сам факт запуска JavaScript тоже путь не хороший. Авторы проанализировали
кучу программ. MuPDF, среди standalone реализаций, оказался почти ничему
не подвержен. Его (f5ac4628c014cc4c9fb43f7f15c6bd5cc211d24d) я стал
использовать уже давно.

3 months agoЧем ChaCha20 лучше AES-256
Sergey Matveev [Sun, 25 Feb 2024 15:15:53 +0000 (18:15 +0300)]
Чем ChaCha20 лучше AES-256

https://mailarchive.ietf.org/arch/msg/cfrg/YVVjUaDCCaBndfaokO2m-zNpQRA/
AES-256 использует в 1.5 раза больше операций чем AES-128. Между тем,
замечает DJB, ChaCha20:

* использует в 1.4 раза меньше операций чем AES-128
* не имеет никаких накладных расходов во время подготовки ключа к работе
* имеет бОльшую безопасность PRF чем AES-256
* имеет гораздо больший порог безопасности чем AES-256

Программная реализация ChaCha20 использует "fast addition circuits in
CPUs", сглаживая какие бы то ни было timing утечки как это было в
https://eprint.iacr.org/2019/996, не говоря про кучу утечек у самого AES
из-за применения таблиц поиска.

3 months agoАнализ PQ3 в стиле Хабра
Sergey Matveev [Sun, 25 Feb 2024 12:09:25 +0000 (15:09 +0300)]
Анализ PQ3 в стиле Хабра

https://habr.com/ru/articles/796065/
Просто позорнейшая и постыднейшая статья. Не, я сам недавно упоминал PQ3
алгоритм от Apple (f3f761c7479fc29876ee97502684fd06b74867b8), но только
в том плане, что бросаются громкими словами, но без какой-либо критики в
криптографическом и техническом плане. Это просто некий state-of-art
протокол с постквантовыми алгоритмами, ratcheting и постоянным
добавлением энтропии в ключевой материал эфемерными ключами. Ничего
революционного, но и ничего плохого -- наоборот хорошо что современный и
учитывающий современные реалии, молодцы.

Автор пишет, что подробностей на каком-то ресурсе о деталях протокола не
дали. Пошёл искать дальше на ещё один какой-то сайт. А в чём проблема
зайти на сам Apple? Там не то что полное описание протокола в деталях,
но и криптоанализы есть.

    Это так назвали шифрование поверх обычного RSA, с временными
    ключами? Да его в чистом виде то никогда и не было, всегда совместно
    использовались обычные симметричные ключи и алгоритм Диффи Хеллмана,
    ибо есть свои уязвимости.

Причём тут RSA? Его там и в помине нет.
Почему чистого RSA никогда и не было? Как-раз таки его полным полно
везде и всюду было. Лишь относительно недавно его официально стали
выпиливать из таких протоколов как TLS 1.3.
Какие уязвимости даже при использовании "обычного" RSA? Сложности -- да.
Уязвимости? Нет, не поэтому стараются сейчас DH использовать.

    HTTPS и MTPROTO (Telegram) самые популярные примеры, у Signal
    (Signal и Whatsapp) вроде похожий принцип.

Не HTTPS, а TLS. MTProto лучше бы не позориться, даже его упоминанием.
У Signal похожий принцип? Да именно в нём впервые как-раз и было
популяризованы идеи ratcheting и полной замены подписей для
аутентификации тройным (а дальше и больше) DH.

    Постквантовые ключи? Это тот же RSA, только генерация ключей на
    эллиптических кривых, которые не так просто даются алгоритму Шора и
    выдают ту же стойкость при меньшем размере.

Какой, @#$%, RSA то опять? Его там даже близко нет. Автор считает что
постквантовые ключи это нечто основанное на эллиптических кривых (ECC)?
Что за бред? Конкретно в PQ3 используется Kyber, не имеющий никакого
отношения к ECC, принципиально иной алгоритм
(cc0b820a5564d3ad136183951b882bf31c5ab606). Но он используется гибридно
совместно с ECC -- если один из них поломается, то вся система не летит
к чертям. Кроме того, ECC тривиально ломается на (гипотетическом)
квантовом компьютере, ничуть не сложнее чем RSA.

В общем, автор написал полнейшую х@йню и ждёт комментариев, чтобы ему
рассказали азы прикладной криптографии, и тыкнули в его бред сивой кобылы.

3 months agoЗаценил Borknagar -- 2024 -- Fall
Sergey Matveev [Sun, 25 Feb 2024 08:52:14 +0000 (11:52 +0300)]
Заценил Borknagar -- 2024 -- Fall

https://en.wikipedia.org/wiki/Fall_(Borknagar_album)
https://www.youtube.com/watch?v=Dujno_ftAMk
Обожаю эту группу, ждал её нового альбома. Смесь black, progressive и
folk металов. Альбом продолжает идеи и в духе предыдущего потрясающего
True North. Прям скучал по вокалу Lars A. Nedland
(b21bc97300719af31e38a3cacab42d566d1231c3,
a1f1290c205c48fe52158cc58c03ee3470d20904). Отличнейший альбом!

3 months agoОптимизация поиска в libalias
Sergey Matveev [Sat, 24 Feb 2024 21:05:03 +0000 (00:05 +0300)]
Оптимизация поиска в libalias

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=253912
У меня было много проблем с нагрузкой на CPU в моём ipfw:
f8e2e4dfc6870c4dad7e62be9bb02ae9dd73d180. Всё жутко сильно
упиралось в NAT, а точнее libalias реализацию, используемую
в ipfw. Сегодня снова разбирался во всём этом, ибо у меня
Xeon современный, а у него половина ресурсов занята сетью,
а точнее libalias-ом.

Увереннее, уже рефлекторно стал вводил "netstat -Q" (просмотр очередей
netisr (kernel network dispatch service)), "top -aSH" (где видны
конкретные ядерные модули отнимающие ресурсы), "vmstat -m" (размер
памяти отведённой для libalias там виден), "vmstat -i" (видеть
распределения прерываний по ядрам).

Отчаялся уже, ибо выходило так, что вот ну ни может FreeBSD выжать NAT
для 100Mbps интерфейса, за которым всего 1.5 машины по сути (одна с
BitTorrent активным, а вторая это мой компьютер, иногда часами ничего не
дёргающего из IPv4 Интернета).

Но нашёлся bug по ссылке, с патчем, созданный ещё пару лет назад. И
никто его не мёржит никуда. Прошло пара часов -- полёт отличнейший. На
процессоре смехотворные несколько процентов одного ядра максимум теперь
(и это firewall, NAT и AQM).

    While lookup of outgoing packets uses hash based on both source and
    destination address, for incoming packets only alias address and
    port is used. So when multiple connections from different addresses
    target the same port of redirected address (using redirect_addr or
    redirect_port in IPFW), the link table must be searched sequentially
    - tens of thousand of items for every incoming packet. To make it
    worse, the search is under a lock, so it is forced to run on a
    single core. Consequently just 1000pps from different addresses are
    enough to bring down a server with the fastest CPU available in
    under a minute.

Прям вот ситуация именно как у меня, точь-в-точь. И ведь самая обычная
банальная домашняя. Как-будто крайне редко и мало кто с ней встречается.
Вот тут то и можно бы было сказать что FreeBSD не для дома. Но нет,
всего то маленький патчик нужен.

3 months agoФрагментация пакетов gif-туннеля
Sergey Matveev [Sat, 24 Feb 2024 20:55:14 +0000 (23:55 +0300)]
Фрагментация пакетов gif-туннеля

При использовании gif/gre/stf туннелей в FreeBSD, отправляемые пакеты
форсированно фрагментируются если размером больше минимального MTU IPv6
(1280 байт). sys/netinet6/in6_gif.c:

    [...]
    /*
     * force fragmentation to minimum MTU, to avoid path MTU discovery.
     * it is too painful to ask for resend of inner packet, to achieve
     * path MTU discovery for encapsulated packets.
     */
    return (ip6_output(m, 0, NULL, IPV6_MINMTU, 0, NULL, NULL));

Так как у меня gif-туннель используется для инкапсуляции IPv4 трафика
поверх динамически маршрутизируемого IPv6, который поверх слонокадров
идёт, а MTU gif-туннеля = 1500, то куча пакетов фрагментируется без
какой-либо необходимости. Всё же на пустом месте чуть ли не удваивать
количество пакетов не очень приятно, поэтому можно просто поменять этот
IPV6_MINMTU на ноль.

3 months agoПочему используются ECDH вместо традиционного DH?
Sergey Matveev [Thu, 22 Feb 2024 19:30:29 +0000 (22:30 +0300)]
Почему используются ECDH вместо традиционного DH?

https://mailarchive.ietf.org/arch/msg/cfrg/bGiT7BHITzP6Ir0coceGaeyIROE/
Отвечает DJB. Потому что сильно проще безопасную реализацию делать
именно на эллиптической криптографии. Классический DH или там RSA
могут быть безопасно сделаны и использованы -- просто это сильно
сложнее достичь. И это если не обсуждать производительность и
размеры ключей.

3 months agoОбновил аккумулятор в ИБП
Sergey Matveev [Thu, 22 Feb 2024 16:38:13 +0000 (19:38 +0300)]
Обновил аккумулятор в ИБП

APC ИБПшник совсем перестал держать заряд и переключаться на
аккумулятор. Приобрёл новый, работает без проблем.

3 months agoПоздравительная открытка к 23 февраля на работе
Sergey Matveev [Thu, 22 Feb 2024 16:09:02 +0000 (19:09 +0300)]
Поздравительная открытка к 23 февраля на работе

Коллеги для каждого приготовили QR-коды распечатанные для каждого,
приклеили к дверям. Прилагаю какая картинка досталась мне. Меня
удивляет удивления людей, которые считают что CLI и терминалы это
что-то архаичное и якобы менее удобное. Молодые ещё...

Её я правда не самостоятельно получил, а мне прислали как удалёнщику
типа, так как у меня нет всех этих смартфонов чтобы можно было
декодировать QR-код. Ну точнее я мог бы притащить фотоаппарат, сделать
снимок, дальше на ПК загрузить в QR-декодер. Но это ж сколько времени
надо потратить.

3 months agoСнова долго без Интернета
Sergey Matveev [Thu, 22 Feb 2024 15:15:45 +0000 (18:15 +0300)]
Снова долго без Интернета

4-6 часов не было link-а от провайдера. Сказали что пожарные
всякое проверяли и вырубали электричество у их оборудования.

3 months agoeXoScummVM 2.8.0
Sergey Matveev [Wed, 21 Feb 2024 17:56:35 +0000 (20:56 +0300)]
eXoScummVM 2.8.0

https://www.retro-exo.com/scummvm.html
https://scummvm.org/
Вышла обновлённая версия колоссального сборника всех игр что
поддерживает ScummVM. Этот эмулятор не требует много зависимостей,
работает на большом парке платформ и операционных систем. Не нужны
DOSBox, WineHQ и прочие штуки. За последнее время в ScummVM много
каких игр появилось -- почти все добавились в этот торрент.

3 months agoiMessage PQ3
Sergey Matveev [Wed, 21 Feb 2024 17:37:10 +0000 (20:37 +0300)]
iMessage PQ3

https://security.apple.com/blog/imessage-pq3/
Как понять что статья написана явно в Apple?

    ...we are announcing the most significant...
    ...a groundbreaking post-quantum cryptographic protocol that
    advances the state of the art...
    ...extensive defenses against even highly sophisticated quantum
    attacks...
    ...has the strongest security properties of any at-scale messaging
    protocol in the world...

и это только первый абзац. Читал про сам протокол по диагонали, но
вроде ничего существенно нового нету. Просто применяются относительно
современные алгоритмы и идеи (тьма которых популяризована Signal-ом).
Но 256-бит ECDSA, NIST P... не вяжется с strongest, coolest, greatest.

3 months agoDisney о провале своих фильмов
Sergey Matveev [Tue, 20 Feb 2024 13:52:33 +0000 (16:52 +0300)]
Disney о провале своих фильмов

https://icdn.lenta.ru/images/2024/02/20/16/20240220163234935/owl_detail_620_b02930b05e48c43ee30d8d1a5399e8f7.jpg
https://lenta.ru/news/2024/02/20/disney-ob-yasnil-proval-svoih-filmov-v-prokate-seksizmom-zriteley/
Disney считает, что провал его фильмов в прокате связан со зрителями. Да
достаточно только на кадр из их очередного фильма посмотреть: чисто
белокурая девица, чисто негритянка, чисто азиатка (?) в одном кадре, ну
и конечно же, небось все они лесбиянки... ой, а кто-то наверняка на
самом деле мужчина. Может это они там совсем с ума посходили уже со всей
этой дебильной политикой и маразмом? Хотя их *люто* страшную негритянку
русалочку уже сложно переплюнуть. Адекватность совсем потеряли.

3 months ago"Тайны Блэквуда" и "Проект Послеловие"
Sergey Matveev [Tue, 20 Feb 2024 07:45:42 +0000 (10:45 +0300)]
"Тайны Блэквуда" и "Проект Послеловие"

http://www.stargrave.org/LinksCatAudiobook.html
https://rutracker.org/forum/viewtopic.php?t=6071812
https://rutracker.org/forum/viewtopic.php?t=5325369
Puffin Cafe весь прослушан (79a334426baf1cf9139784c6c721be7891893386),
обновлений на Рутрекере не видно больше. Механиков точно не хочу
продолжать слушать (ab3db371c107c2d582b31e879e82472479227a2f) -- снова,
снова и снова автор будет описывать и разукрашивать автомобили.

Но обнаружил от уже известных мне авторов (озвучки) ещё пару проектов.
Полдюжины книг из "Тайн Блэквуда" уже прослушал -- тема всяких ужастиков,
не sci-fi. Но нравится, тоже такое люблю.

3 months agoПро читерство в играх
Sergey Matveev [Mon, 19 Feb 2024 21:26:07 +0000 (00:26 +0300)]
Про читерство в играх

https://www.youtube.com/watch?v=wPSxXwchiU8
Смотря на ролик рассказывающий про то, какие читерства бывают, понял что
я застрял где-то на 30 лет назад. Если про штатные читы и ArtMoney (даже
пару раз использовал) я ещё был в курсе, то дальше совершенно не в теме.

Вот только не очень понимаю зачем в сетевых играх, где против других
людей или ботов, это всё использовать? Разве играешь не ради интереса,
не ради того, чтобы и свои силы проверить и прокачаться? Просто в играх
(single player) я не раз применял читы -- ибо не хочется например все
эти стрельбы и драки, а хочется глядеть на мир, продвигаться по сюжету,
расслабиться. Посмотреть на все виды оружия -- всегда охота.

Но это если про FPS говорить. А про RPG, MMORPG, где ещё и валюта есть,
grind... ну да, это ещё могу понять. Если соревнования и деньги... там
где деньги, то сразу всё становится понятно.

Забавным для меня стал факт, что нешифрованный трафик между игрой и
сервером может выдавать местоположение (и другую инфу) о противниках.
Даже в таких делах без криптографии никуда.

Бывают даже HvsH сервера: где читеры против читеров. Прямо как в Core
War игре, где вредоносные программы между собой воюют.

Да и я вообще-то ни разу в жизни не играл с кем-то по Интернету. По
COM-порту с нуль-модемным кабелем -- да. По настоящему модему, напрямую
звонив второму человеку -- тоже. По локальной сети конечно же, но вроде
уже только по TCP/IP, IPX не застал. LAN появился у нас дома когда я в
Unix системах уже жил.

3 months agoПервый релиз goredo прогнанный в zwoki
Sergey Matveev [Mon, 19 Feb 2024 18:01:21 +0000 (21:01 +0300)]
Первый релиз goredo прогнанный в zwoki

Пишу я тут CI систему (7e1dbd0539c7ea5c6bd5e8831abeea4796da693e).
Полностью перевёл сборку пакетов на использование redo. Мало того, что
это сократило код за счёт того, что всякими вопросами атомарной записи
файлов не приходится заниматься, что появились честные зависимости между
пакетами при сборке, что из-за lock-ов на выполняемые цели теперь нет
конкурентных попыток установки собранных пакетов, так ещё и внезапно (об
этом вообще не думал) это всё прекрасно начало распараллеливаться. Пока
одна из зависимостей собирается, для другой качается distfile например.

Плюс я почти избавился от zsh кода. Оставил его только в паре скриптов.
Сами .do цели на POSIX shell написаны. Прежде всё было на нём в системе
сборки. С redo вышло неожиданно всё здорово, а то я было вообще сомневался
будет ли от него польза в данном проекте.

Ну и в качестве первого проекта, для которого я на коммиты выполнял бы
тесты, с его сборкой из исходников, стал goredo. Обнаружилось что тесты
в нём зависят и от Python (ибо это тесты apenwarr/redo, без Python не
работающего) и от Git. Сделал коммиты избавляющие от них, запушил, git
hook создал события, task-maker насоздавал $task-ов, task-taker начал их
забирать и выполнять. Часть коммитов упали, из-за недостатка в
зависимостях, оставив tmux-ы со всем окружением упавшим. Последний
коммит успешно прошёл, подчистив за собой. zwoki выполнил задачу для
которой и был создан. redo очень кстати был. Ну и появился goredo 2.6.1
релиз минорный, о котором даже в рассылку не буду оповещать.

3 months agoGitLab и SHA256 репозитории
Sergey Matveev [Sun, 18 Feb 2024 12:25:01 +0000 (15:25 +0300)]
GitLab и SHA256 репозитории

До сих пор GitLab (73555bc7b599082947d066015b3010be9a3e9c5f) не
поддерживает SHA256 репозитории. А мне новый создавать как изволите?
Продолжать новые проекты создавать с SHA1 форматом? На работе у нас
в качестве Git-репозитория как-раз GitLab используется. Я за это не
отвечал, конечно же.

Что-то мне в голову приходит пока только одно решение как бы хранить в
SHA1 репозитории SHA256 данные. Коммитить туда git-bundle (+сжатие) файл
с полным содержимым репозитория. Он будет каждый раз перезаписываться,
но на старые копии уже ссылок не будет и git-gc будет подчищать
неактуальные копии. Ну и где-то в стороне держать нормальный SHA256
репозиторий в качестве remote.

3 months agoНовый проект: zwoki
Sergey Matveev [Sun, 18 Feb 2024 07:41:48 +0000 (10:41 +0300)]
Новый проект: zwoki

Целую неделю ни одной записи в блоге. Точнее была одна несколько дней
назад об исправлении одной баги, но удалил, так как ничего не исправилось.
А всё потому что полностью погружён в написание новой программы на
работе, больше вообще ни на что не отвлекаясь.

У нас работе нет devops-ов, нет достаточного кол-ва админов, вообще
народу не шибко много. Поэтому если хочешь какую-то систему CI для
сборок -- ну бери и делай. Виртуальные машины или железо тебе выделят, а
вот дальше возись сам. И у нас было n-ое кол-во BuildBot установок.
Часть из них уже никем не поддерживается и из-за изменений
инфраструктуры и не в рабочем состоянии. Что-то на них подправить никто
не знает как. На некоторых, к тому же, всё установлено через Nix, к
которому мало у кого есть охота изучения. Даже те, кто прежде его
использовал активно -- плюнули, из-за постоянных изменений в upstream-е,
требующим постоянное обновление правил сборки (либо сидеть на версиях
годовалых давностей и обновлять только собственные пакеты).

Какие CI системы я знаю? В живую имел дело с Jenkins и BuildBot. Первый
-- на Java и монструозен. Просто воспоминания о том как возиться с его
правилами сборки -- отталкивают от одной мысли его использовать. Второй
написан на Python. А это означает: ee3156341baf276877e601325bb9555ce5743fb1
что хрен его поставишь, не скачивая руками все его зависимости и вручную
подсовывая в virtualenv. Если авторы не предоставили vendored
зависимости (чего конечно же из Python разработчиков штатно никогда не
делает (а вот в моём PyDERASN, кстати, все зависимости приложены в
tarball)), то это просто неуважение к своему времени и силам в попытках
это всё развернуть. Кроме того, современные версии BuildBot имеют WebUI
требующий JavaScript -- поэтому если и ставить, то старьё.

И задался вопросом: насколько это сложная задача (CI) и нельзя ли
написать своё, раз нету готового, достаточно простого и удобного?
Честно, то, что я постоянно за последние годы пишу какой-то софт как
(sane) альтернативу имеющемуся -- самого бесит и раздражает. Но что
поделать, если много софта не удовлетворяет, а переписывать выходит?

По большей части новый CI framework уже написан, как и правила сборки
нескольких проектов. К сожалению, делаю это полностью в рабочее время
(благо, срочных задач пока нет, поэтому могу позволить), не обсуждал
можно ли это выложить в виде свободного ПО. Поэтому пока это закрытая
разработка внутри компании. На следующей неделе уже буду разворачивать
на настоящем железе.

Я хотел было сделать что-то похожее на BuildBot. Раздаются задачи,
выполняются, отчитываются о каждом шаге, логируют, показывают кто там
упал. И всё это проецируется в некий HTML dashboard со сводкой. Но сразу
и требования родились:

* оно должно работать на разных платформах: как минимум GNU/Linux
  (Astra, Debian) и FreeBSD
* в идеале, slave выполняющий задачи, должен быть как можно более
  минималистичной ОС из коробки. Вот поставили голую FreeBSD или Astra
  -- и вот она уже должна мочь выполнять задачи раздаваемые. Чтобы можно
  было быстро вводить в строй новые машины для сборок

BuildBot никоим образом не поможет с последним требованием. Если для
сборки нужен PostgreSQL например -- ну или добавляй его сборку/установку
в шаги сборки проекта, или ставь прямо в саму систему slave-а. Последним
админы BuildBot-ов и занимались. Если появляется новый проект с совсем
иными требованиями (например для сборки многого моего софта нужен redo),
то это ставится в slave-ы вручную. Ну или через Nix, Ansible, Puppet,
whatever. Но не средствами BuildBot.

Нужно что-то, что позволяет собирать и устанавливать "пакеты". Хотелось
бы, чтобы сборка проекта на первом шаге просто сказала что мне нужен
"python", "postgres" и это как-то в эту сборку подсунулось. Да, примерно
таким и Docker может заниматься. Nix тот же. Но Nix поддерживает только
GNU/Linux (хотя когда-то давно была поддержка и BSD систем). Docker...
спасибо, но нет, плюс его вроде бы и нет на FreeBSD (лень проверять, как
и возиться с ним).

Поэтому первым шагом я начал писать свой пакетный менеджер по сути.
Правила сборки описываются в shell скрипте, который устанавливает
программу в /well/known/permanent/path/hash-progname. А установка
пакета, которая на практике будет происходить в некой $tmp директории
сборки -- это просто вызов stow для создания symlink-ов из /well/known
пути до программы в $tmp/local поддиректорию. Добавив $tmp/local/bin в
$PATH, директории до библиотек и прочего -- можно удобно заиметь в своём
окружении нужный софт. Всё это очень сильно напоминает то, что делает
Nix. Так и есть. Так вышло, что я самостоятельно к этому пришёл. Но
напомню, что Nix не кроссплатформенный и в нём уродский собственный
функциональный язык для описания сборок. У меня же буквально shell
скрипты выполняющие всё нужное по шагам. Можно ли сторонней программе
легко и точно сказать от кого зависит тот, или иной пакет при сборке? В
Nix можно, а у меня нельзя. Ну и где это создаст проблем? В том то и
дело, что нигде. Как в redo: не запустив .do файлов -- никто не знает от
чего они зависят. Здесь аналогично. Зато никакого нового языка, нового
формата -- пиши как и на чём хочешь.

Установка в /well/known/... путь на любой ОС (GNU, BSD) и создание
$tmp/local stowed директории -- работает одинаково. Если есть
особенности сборки для заданной архитектуры, то внутри правил сборки
всегда есть $ARCH переменная и поэтому можно писать if [ $ARCH = ... ].

Пакет устанавливаться должен из единичного файла. Так я захотел, для
удобства. Думал что можно обойтись просто созданием .tar-а с
hash-progname-version директорией, которую распаковывать в
/well/known/..., но понадобилась возможность хранить run-dependencies
(для работы stow нужен perl, для tmux нужен libevent, и т.д.), точное
имя пакета (чтобы сам пакет имел имя progname-version.tar), информация о
сборке (из какого коммита взяты правила, как минимум).

Поэтому начал рождаться и собственный формат пакетов. Я сначала подумал
и придумал, а только потом пошёл смотреть что из себя представляют
пакеты в Debian, RedHat, Gentoo, и т.д.. Оказалось, что я полностью
схожим образом пришёл к точно такому же решению как и в Gentoo:
https://www.gentoo.org/glep/glep-0078.html
Архив с собранным пакетом находится внутри другого архива, в котором
метаинформационные файлы: name, rundeps, buildinfo, и т.д.. К каждому
файлу можно приложить .blake3 какой-нибудь, .sig/.asc подпись. Очень
просто и удобно. Главное следить за тем, чтобы метаинформационные файлы
находились в начале архива, чтобы до них можно бы было быстро
достучаться при потоковой работе:
    curl http://pkg/progname-version | tar xfO - name | read name_with_hash
Архив с программой, конечно же, может быть (и должен быть!) пожат.
    curl http://pkg/progname-version | tar xfO - bin |
        tar xfC - /well/known/$name_with_hash
Ну а через tee и заранее вычитанные .blake3 файлы можно проверить и
целостность на лету. Внешний архив не стоит сжимать, чтобы можно было бы
быстрее производить поиск по нему.

Машина для сборки пакетов из исходников не должна быть подключена к
Интернету. Может, но не обязана. Поэтому я давно за практику взял
разделение шагов скачивания исходного кода и его сборки. Для скачивания
нужны git, wget и всякое такое. Для сборки они, как правило, не нужны.
На одной машине можно запустить скрипты для скачивания, а на другой уже
использовать результат сформированный в distfiles.

Я не раз писал скрипты скачивания, в которых указывается URL до
tarball-а и криптографический хэш для его "аутентификации". Плюс
скачивал и добавлял в репозиторий и файлы с PGP подписями. Но я
использовал единственный хэш -- SHA512. Было бы здорово указывать хэши,
которые перечислены зачастую на страницах скачивания у проектов. Чаще
всего это SHA256. А вот например для Go 1.4, который нужен для сборок
более новых версий -- вообще только SHA1. Начал добавлять возможность
указывать несколько хэшей... и меня осенило: ведь именно всем этим и
занимается Metalink формат! c3ba3d2f29655d06dffe1ec836c9f0b98daec0c9,
2374b93f88e7a3222c0e91999306b259bd9e276c. Я же сам его уже давно создаю
и выкладываю для всех tarball-ов своего софта. В нём можно указывать
URL-ы для скачивания, разные хэши, встраивать подписи. Плюс он
поддерживается и GNU Wget-ом и Aria2. В итоге для скачивания софта я
просто добавляю в репозиторий .meta4 файлы и натравливаю на них
wget/aria2c. Часть софта есть только в виде VCS репозиториев -- ну тут
просто руками выполняются git fetch/clone/whatever и git-archive для
создания tarball. Для формирования .meta4 я использовать свою
meta4ra/meta4-create утилиту, но всё это можно без проблем проделать и
вручную, ведь это же текстовый XML.

Начал писать это всё на POSIX shell, чтобы на любой ОС можно было
запустить. Я сделал всё что мог, но всё же дошёл до того, что пришлось
для существенного облегчения жизни перейти на Z Shell. У меня много
pipe-ов используется -- поэтому нужен pipefail включённый. Я думал что
он де-факто есть в любом shell (e3a3ccff5507dd83913a0809b9525e3adabd64d2).
Но как оказалось, POSIX ещё не вышел с ним, поэтому и dash (Debian shell
по умолчанию) pipefail не добавляет! Да и если и добавит, на руках же
куча старых версий дистрибутивов. Переписывать pipe-ы на всякие вызовы с
FIFO файлами и прочими неудобствами я не собираюсь. Только из-за этого
dash я вынужден был плюнуть на POSIX shell. А какая альтернатива? GNU
Bash не имеет права на существование. *ksh? rc? fish? Наиболее разумным
и требующим меньшего порога вхождения я считаю только zsh. Либо писать
вообще не на shell, а на Perl, Tcl, whatever. С zsh хотя бы ещё
существенно всё упрощается в плане экранирования аргументов (чего нет в
bash: 30670475d5bc7b8601a555d33fad188602f96712).

А вот скрипты для создания, раздачи, взятия, запуска задач -- всё это
пока вышло написать на POSIX shell. Сами шаги сборки/проверки
конкретного проекта -- можно писать на чём хочешь, как например и .do
redo файлы. Шаги сборки -- просто исполняемые файлы, а значит и shebang
будет прочтён. Если кто-то захочет написать на zsh их, то заранее в
первых шагах достаточно выполнить pkg-install zsh и он появился в
$tmp/local окружении, став доступным для следующего шага сборки
написанного на zsh.

Скрипт запуска задачи занимает примерно экран POSIX shell. А в нём и
создание окружения, и установка stow+perl+zstd через tar xfO вызовы,
чтобы дальнейшие пакеты уже можно устанавливать через pkg-install
скрипт, учитывающий rundeps. Всё это запускается внутри tmux-а, дабы к
упавшей сборке можно было бы подключиться и попасть буквально в её
окружение где все падения и происходили. На самой системе slave-а иметь
tmux не нужно -- он ставится тут же сразу же из самосборных пакетов.

Скрипт запуска шагов сборки тоже занимает один экран. А это и
перенаправления выводов, демон touch alive файла, проверка не слишком ли
долго выполняется шаг (как в BuildBot -- если нет вывода в течении
часа), убийство зависшей задачи, подчистка всего мусора, и т.д.. Скрипт
создания задачи -- полэкрана.

Задача это директория с $TASK_NUM:$PROJNAME:$REVISION:$ARCH[:$HOST]
именем. Внутри есть code.tar и steps.tar. slave-ы не лазят
самостоятельно в git-ы для получения кода который надо проверять. Всё
это, ради разграничения полномочий, делается на абстрактном master.
Результаты выполняющейся задачи это директория с таким же именем, с:
    alive
    01step/
        stderr.txt
        stdout.txt
        exitcode.txt
    ...
и всё в таком духе. Вывод std* конечно же пропущен через tai64n. Если
нужно сохранить какие-то артефакты сборки, то просто кладём файлы в
эту директорию. Jenkins умел понимать особый XML формат с результатами
прогона unittest-ов и умел анализировать эти XML между соседствующими
сборками и показывать diff (стало падать на пять тестов меньше, и т.д.).
Тривиально положить шагам XML-ку, а сторонними утилитами, пробегаясь по
директориям с результатами, выполнять нужные вычисления.

У меня нет ни одного демона (ну кроме shell скриптов крутящихся в while
true аналоге). Абсолютно всё взаимодействие между master и slave
происходит через операции на файловой системе. Соответственно, между
ними поднимается NFS. Создание задачи: наполнение директории
$TASKS/tmp/$task:, а дальше создание $TASKS/tmp/$task:$arch и жёсткие
ссылки в каждую из этих директорий. Атомарное появление задач для
slave-ов: mv $TASKS/tmp/$task:* $TASKS/cur/. Только один slave должен
мочь взять задачу? mkdir $JOBS/$task:$arch -- только одной из машин это
удастся сделать. Никаких RPC/API демонов, никаких curl вызовов -- только
NFS, ФС и mkdir для атомарных операций.

task-maker-ы -- программы срабатывающие на появление событий от git
hook-ов, не обязаны запускаться на одной и той же машине (на master). По
сути, нет такой роли как центральный master сервер. Должен быть общий
NFS куда разные машины могут выкладывать свои разные $task-и. NFS с
$JOBS-ами или с $PKGS -- могут быть и другими машинами, другими
mountpoint-ами. Для удобства я для всех новых задач постоянно
инкрементирую $TASK_NUM счётчик -- что-то типа уникального
идентификатора задачи. Как это сделать атомарно, если всё что у нас есть
это NFS? Проблема в том, что на нём из коробки не работают lock-и:
https://serverfault.com/questions/66919/file-locks-on-an-nfs
Ну точнее из коробки в FreeBSD на NFSv4 у меня они не сработали. Дальше
не стал разбираться. Поэтому задачу с взятием значения счётчика я решаю
через бесконечный цикл с mkdir-ом инкрементированного значения счётчика
-- если это удалось сделать, то значит значение "наше", а другие пускай
снова пробуют mkdir-ить его инкрементирующееся значение.

Я сразу же условился не бояться copy-paste. Если что-то делается shell
скриптами, то очень многое можно выносить, DRYить в разные маленькие
скрипты. Помню, что берёшь какой-нибудь suckless проект, видишь пару
дюжин скриптов -- и как то вот сразу отпадает желание разбираться в нём,
даже просто прочитать названия этой кучи скриптов. Если во всех скриптах
сборки проекта есть общая часть с созданием временной директории,
trap-ом для её очистки, и всяким таким подобным -- я считаю ничего
страшного чтобы это копировать между всеми скриптами. А то откроешь
такой DRY файл: и видишь с десяток вызовов неизвестных тебе скриптов и
функций и начинаешь прыгать по файлам чтобы понять что они делают. А без
DRY ты просто видишь все шаги as-is. Надо стараться соблюдать некий
баланс между удобочитаемостью и минимальным порогом вхождения и
адекватностью объёма copy-paste. Это же касается и большого кол-ва
переменных окружения неявно приходящих в скрипты и функции: ничего
страшного чтобы постоянно писать $SKELBINS/$ARCH/$hsh-$name/bin -- всё
равно за человека это делает текстовый редактор.

Всё готово на 80-90%. Вышло значительнее меньше по коду чем я
предполагал. Нужно конечно ещё делать и делать описания всяких пакетов и
правил сборки того или иного проекта, но это уже рутина не влияющая на
код самого framework-а.

Проект, кстати, называется zwoki. Я начал отталкиваться от "2nd
continuous integration" фразы, в итоге вышла "zwo" (zwei, два), "ki"
(Kontinuierliche Integration, чтобы вышел не "zwoci", который фиг знает
как правильно прочитать). Должно бы быть конечно "zweiteki" (zweite --
второй, 2nd), но уже длинновато. А так получился "цвоки".

К сожалению, только почти через неделю, вчера перед сном, меня осенило
другое: я даже не задумывался о применении redo. А ведь она
обеспечивает и слежение за зависимостями между собираемыми целями и
атомарно сохраняет результат работы. Надо посмотреть насколько это всё
упрощает и возможно переделать сборку пакетов на использование redo. Не
знаю почему мне сразу это в голову не пришло, ведь у меня уже нет
проектов которые бы не использовали redo (или же в них просто shell
скрипты и нет никаких зависимостей между целями сборки).

3 months agoСходили в цирк "Корона"
Sergey Matveev [Sun, 11 Feb 2024 20:21:12 +0000 (23:21 +0300)]
Сходили в цирк "Корона"

https://цирк.рус/
Со вчерашнего дня открылся приехавший на месяц в наш город цирк шапито.
Акробаты, воздушная гимнастка, жонглёр, силач (которого ещё и машина
переезжает), иллюзионист (который ещё и из арбалета стрелял метко). Было
весело, здорово, захватывающе. Очень всем понравилось!

И это вроде бы вообще третий раз когда я бывал в цирке. Один раз в
большой какой-то меня водили, когда был маленький, но мало чего я оттуда
помню. Другой раз я ходил в цирк шапито Дурова. Приезжал вместе с
аттракционами к нам в Королёв (или ещё Калининград?). Так хотел я на
животных посмотреть, что родители дали деньги и отпустили в одиночку
туда. Запомнился мне оттуда заяц барабанщик -- ему подносят барабан, и
он со зверской скоростью по нему молотил (грайндкор ударники позавидуют).

3 months agoВпервые использовал Tesseract OCR
Sergey Matveev [Sun, 11 Feb 2024 20:17:49 +0000 (23:17 +0300)]
Впервые использовал Tesseract OCR

https://en.wikipedia.org/wiki/Tesseract_(software)
В девятом классе (20+ лет назад) я на подработке использовал FineReader
для распознавания текста. С тех пор ни разу не трогал подобный софт. А
тут надо один документ заново "набрать". Установил из портов Tesseract,
сделал на цифровую мыльницу фотографию документа, просто указал путь к
JPEG файлу и .txt файлу, подождал несколько секунд -- получил текст. Не
абсолютно всё распозналось, но почти всё. Существенно сэкономило время,
нежели пришлось бы набирать всё с нуля. Полностью свободное ПО, не много
зависимостей. Приятная штука оказалась, ожидал куда большего геморроя.

3 months agoПоказал "Большой куш" родителям
Sergey Matveev [Sat, 10 Feb 2024 19:53:00 +0000 (22:53 +0300)]
Показал "Большой куш" родителям

Причём в переводе Гоблина. Наверное впервые с ними посмотрел фильм где
не то чтобы мало мата. Фильм им понравился. Оказалось что оба не видели
его прежде, в отличии от "Карты, деньги, два ствола".

3 months agoAV1 и материал с BitTorrent
Sergey Matveev [Sat, 10 Feb 2024 19:39:20 +0000 (22:39 +0300)]
AV1 и материал с BitTorrent

Иногда я нахожу и качаю фильмы с BitTorrent-а. 2-3 гигабайтные с AVC
кодеком дают отличное качество, где, как правило, ни разу не увидишь, ни
одного квадратика, артефакта. Но многие выкладываются только в MPEG4 AVI.
Уже 2024-ый код, но на кой чёрт продолжать кодировать в это? Не, надо
сказать спасибо, что хоть в таком виде можно достать фильм, но всё же.
Или же часто выкладывают просто копию с DVD или BluRay, просто remux.
Занимают они дофига и я поэтому почти никогда не качал подобные
варианты, ибо жалко и каналы нагружать этим и на диске мне как-то жалко
на какой-то обычный фильм по 5-10 гигабайт. Очень немного фильмов, где
хочется сохранять качество картинки/звука на максимуме.

Но уже не раз сталкивался с тем, что или будет очень паршивый AVI или
DVD/BD-remux. Качал последние и перекодировал в AV1+Opus. И в 700-800
мегабайт вполне себе умещается 720p фильм с двумя звуковыми дорожками и
качеством изображения таким, что ни одного артефакта не увидишь. Прям
хоть только так и делай сейчас... а то ведь даже в HEVC кодеке редко
чего выкладывают.

И параметры кодирования FFmpeg для AV1 (SVT-AV1 кодек) у меня:

    -codec:v libsvtav1 -crf 24 -preset 3 -pix_fmt yuv420p10le -svtav1-params tune=0 -g 120

CRF=32 если перекодирую видео podcast-ов. Ну и "-g" зависит от
количества кадров. Всё остальное вообще не трогаю. Кодируется это где-то
со скорость 0.2x для <=720p.

3 months agoВинил папе в подарок
Sergey Matveev [Sat, 10 Feb 2024 19:37:02 +0000 (22:37 +0300)]
Винил папе в подарок

Скоро 23-е февраля. Папе ездил приобретать пластинки для его нового
проигрывателя (50aef4f17e5e3f8f90cb40a4b69e930643d83c64). А то из новых,
не со времён СССР, пластинок у него только одна Kiss. Теперь появился
альбом Pink Floyd и сборник живых выступлений всяких рок звёзд. Качество
звучания на них очень здоровское.

3 months agoДела домашние
Sergey Matveev [Sat, 10 Feb 2024 19:33:32 +0000 (22:33 +0300)]
Дела домашние

С момента заселения в квартиру, когда только только сделан был ремонт,
затирка в туалете и ванной между полом и стенками растрескалась. Вот
заделал эти швы.

А прям в самом конце обнаружилось что умывальник в туалете протекает.
Видимо из-за вибраций или ещё чего, но просто надо было подтянуть одну
штуку с прокладкой.

Везде нужен ремонт время от времени...

3 months agoMarketing bullshit о WireGuard
Sergey Matveev [Mon, 5 Feb 2024 12:54:52 +0000 (15:54 +0300)]
Marketing bullshit о WireGuard

https://vpnmag.ru/wireguard-protocol/
Не перестаю удивляться какую же неграмотную фигню умудряются писать.

    WireGuard использует семейство асимметричных ключей Curve25519,
    обеспечивающие более высокий уровень безопасности, чем ключи RSA и
    AES, используемые в других протоколах VPN. Благодаря асимметричной
    криптографии, WireGuard не требует ресурсоемких операций,
    используемых в других протоколах.

Что за семейство ключей? Как можно сравнивать асимметричный *25519 и
симметричный AES? В асимметричной криптографии, как-раз таки самые
тяжёлые операции всегда и делаются. Асимметричная -- значит ресурсоёмкая.
Плюс никто не запрещает использовать *25519 в IKEv2 для IPsec.

    Протокол WireGuard обеспечивает быстрое VPN-соединение благодаря
    режиму работы ядра, который работает намного быстрее, чем
    пользовательский режим, в котором работают другие протоколы.

Как-будто машинный перевод. Плюс IPsec, с которым сравнивают WG, в ядре
уже давно жил и живёт. Да и вся статья в таком же духе написана, как и
все подобные на "сервисах VPN". Вот как обычному пользователю сделать
грамотный выбор? Чёрт его знает, никак. Так же как и мне, например, при
выборе автомобиля или чего-то подобного.

3 months agoGitHub думает таки добавить IPv6
Sergey Matveev [Mon, 5 Feb 2024 08:34:46 +0000 (11:34 +0300)]
GitHub думает таки добавить IPv6

https://news.ycombinator.com/item?id=39257841
https://news.ycombinator.com/item?id=39099065
https://supabase.com/blog/ipv6
Не прошло и кучи лет, но GitHub намекает на то, что собирается
использовать IPv6. Я думал что уж когда он перешёл к Microsoft,
то это точно должно было свершиться, ибо вроде бы MS давно
агитирует за IPv6, вроде бы и поддержку рабочую давным давно
имеют, а значит и специалистов.

HackerNews я перестал читать давно (сплошная политика, плюс всякое
дерьмо в топе, вместо крутых статей), но иногда на них ведут ссылки.
Увидел что и они, в кой да веки, тоже добавили IPv6. Из сайтов которые я
посещал и посещаю, наверное только Хабр остаётся в числе технологически
позорно отсталых.

Ну и Amazon (c9a5722cd25a2cbacd7d758f498e708200916abb) берёт деньги за
IPv4, что явно должно подстегнуть к ускоренному переходу на актуальный IP
протокол.

3 months agoПосмотрел "Конец славы"
Sergey Matveev [Sun, 4 Feb 2024 18:47:57 +0000 (21:47 +0300)]
Посмотрел "Конец славы"

https://www.kino-teatr.ru/kino/movie/ros/170525/annot/
Сходили в кино на этот фильм. Неплохой. Даже если бы он закончился и на
несколько минут раньше, без happy end -- тоже был бы хорошим, намекающим
на то, что второго шанса мало кому в жизни дают, надо голову включать
раньше и задумываться о своём поведении и отношении к окружающим.

3 months agoИспользование почтовых голубей по сей день
Sergey Matveev [Sun, 4 Feb 2024 08:09:50 +0000 (11:09 +0300)]
Использование почтовых голубей по сей день

https://computer-museum.ru/connect/dovemail.htm
https://golubevod.ru/
http://golubevodstvo.ru/

    И в наше время почтовый голубь используется по своему прямому
    назначению. В Голландии, например, голуби доставляют по назначению
    донорскую кровь в пробирках. Это выгоднее и быстрее, чем автомобилем
    из-за перегруженности магистралей. В Бельгии на небольшие расстояния
    голуби служат для доставки почты, особенно секретной – переносят
    маленькие магнитные пластинки (5x5 мм), которые вмещают информацию,
    равную по объему Библии. В Великобритании голубей используют биржи.
    Японские и немецкие журналисты во время Олимпиады с помощью голубей
    моментально получали сведения о результатах соревнований.

3 months agoAWS может получать более 1млрд$ за IPv4
Sergey Matveev [Sat, 3 Feb 2024 08:20:59 +0000 (11:20 +0300)]
AWS может получать более 1млрд$ за IPv4

https://www.tomshardware.com/networking/amazons-aws-new-charge-for-using-ipv4-is-expected-to-rake-in-up-to-dollar1b-per-year-change-should-speed-ipv6-adoption
Вот, собственно, одна из причин почему не так торопливо внедряют (ну а
точнее стараются предоставлять на последней миле) IPv4 -- это огромные
деньги. А IPv6 так много, что за даром отдают и бизнеса из воздуха не
сделаешь.

3 months agoВ паспортах место рождения должно совпадать со свидетельством
Sergey Matveev [Fri, 2 Feb 2024 20:22:20 +0000 (23:22 +0300)]
В паспортах место рождения должно совпадать со свидетельством

https://lenta.ru/news/2024/02/02/rossiyane-edva-ne-lishilis-otpuska-v-egipte-posle-proverki-pasportov/
Женщина родилась в Свердловске, а в паспорте стоит Екатеринбург. Благо,
таможня пропустила. У меня всю жизнь было всё в порядке по паспорту:
родился в Калининграде, а проживаю в Королёве. До середины 90-х город
был закрытым, а после того как стали всех впускать, то и название поменяли.
Но из-за "Калининграда" приходится не забывать указывать область, а то
многие думают что это далеко от Москвы.

3 months agoОдноразовые вспышки для фотоаппарата
Sergey Matveev [Fri, 2 Feb 2024 17:21:15 +0000 (20:21 +0300)]
Одноразовые вспышки для фотоаппарата

https://www.youtube.com/watch?v=AEm-2giH_zw
Никогда не видел таких устройств в живую, даже в музеях (или не обращал
внимания?). Только почему-то в Симпсонах вспоминаю серию, где Лиза и
Барт нашли древний фотоаппарат и после вспышки они выстреливали горячей
лампочкой. Я не знал что это действительно прям одноразовые лампы.

У родителей во времена СССР была Смена, но уже с электрической вспышкой.
Вообще она вроде бы чуть ли не до начала (и вроде и после) 2000-х нам
прослужила. Потом был куплен Olympus C3050W (точную модель не вспомню,
вроде бы как-то так называлась) цифровой, пишущий на CompactFlash. Вроде
до сих пор должен быть жив. На нём делали фотографии в Иране например.
Дальше родители купили цифровую компактную Sony мыльницу, но она толком
почти не использовалась, в отличии от Olympus. Ну а спустя ещё время у
них хорошие (с неплохими фотоаппаратами) смартфоны появились.

Sony мыльницу я забрал себе. Заряда почти не держит. Как-то на
Савёловском покупал аккумулятор к ней, но он тоже, как оказалось, был по
сути дохлым ещё больше. Но дома что-то щёлкнуть -- годится.

По сути, среди всех цифровых фотоаппаратов, только Olympus, который и
при покупке не был дорогим, ничего около-профессионального, делал лучшие
снимки. Да, не то чтобы высокого разрешения, но зато каждый пиксель нёс
настоящую информацию. Sony, как и смартфоны, делают сильно большего
разрешения фотографии, но только там 10x10 квадрат можно считать за
единичный пиксель полезной нагрузки -- как-будто они просто upscaling
применили. Да и просто качество, вспышка и всё такое -- были более чем
полностью достаточны для наших нужд.

А плёнку они проявляли очень много сами. Огромный чемодан со всей этой
увеличительной техникой был, красные лампы. Реагенты постоянно покупали
и плёнку в туалете без света и под шубой вставляли в коробочку для
проявления. Времени уйма уходила на это конечно. А когда на каждом шагу
уже были будки для проявки, то стали и их использовать. Возможно не
использовали прежде, просто потому что денег не было (а на реагенты с
бумагой хватало).

3 months agoКачество курсов и книг по программированию
Sergey Matveev [Fri, 2 Feb 2024 13:56:35 +0000 (16:56 +0300)]
Качество курсов и книг по программированию

https://habr.com/ru/articles/790758/
За последний месяц мне знакомые скидывали примеры вопросов и ответов на
курсах всяких (бывают открытые/пробные части). На курсе стоимостью в 40k₽
спрашивают какие права доступа будут на файле если сделать umask и сами
же совершенно некорректно высчитывают значение, хотя ведь можно просто
взять и руками выполнить umask+touch например. Показывали книгу, в
которой названы преимущества Go перед Python почти уровня "в нём
фигурные скобочки вместо отступов".

А тут вот статья на Хабре. Знаю что кто-то приемлет, но меня как бесило
использование "golang", так и продолжает, особенно когда люди причисляют
себя к Go-программистам -- при этом не знают официальное название языка
и инструмента (ведь даже сайт официальный уже не "golang.org"). Но это
мелочи, ладно.

С самого начала идёт "лучше избегать defer". Когда-то это точно было так
-- стоимость defer ощутима. Только и прежде нельзя это воспринимать как
мантру и аксиому: если функция редко вызывается, то не стоит вредить
удобочитаемости и простоте кода в угоду мизерной экономии. Но с какой-то
версии Go, defer стал крайне дешёвым и где-то я видел что официально
рекомендуют забыть про его стоимость, не париться, ибо он частенько
помогает человеку избегать ошибок и делать код проще.

    Нужно правильно использовать make. Нужно изначально создавать структуру
    нужного размера, чтобы не требовалось потом выделять для неё место в
    runtime, задерживая тем самым остальные процессы.

"Нужно"? "Нужно" и "желательно" это две большие разницы. В комментариях
статьи сразу же отметили что из-за этого нужно можно сложнее код
написать. Плюс каким процессам make будет мешать? Может горутинам,
нитям? Причём тут runtime? make в любом случае тоже в runtime
выполняется. И я не считаю что придираюсь к словам -- по моему тут
грубейшие ошибки в использовании терминов.

    Лучше использовать буферизированные каналы. Как всем известно, когда мы
    пишем в небуферизированный канал, пишущая горутина блокируется до того
    момента, пока другая горутина не прочитает из этого канала. Чтобы
    избежать этой блокировки, можно использовать буферизированный канал на 1
    элемент.

Тут меня просто бомбит. "Лучше" использовать буферизованные, говорят.
Чтобы избежать блокировок. А... а если канал именно для блокировки и
синхронизации и используется? Буферизованный и небуферизированный канал
это просто тупо две совершенно разные сущности, для разных задач. Это
как "лучше" использовать автомобиль вместо велосипеда?

    for i, v := range slice
    в переменную v попадает копия слайса

Копия slice в переменную? Может быть всё же значение элемента slice?

Чтобы опровергнуть миф о производительности при передачи аргумента в
функцию по значению или по ссылке, они решили просто посмотреть как
меняется производительность передавая один жалкий int. Видят что в этом
случае разницы почти нет и делают вывод это миф. Далее решили
протестировать анонимную функцию для инкремента этого же int-а. Вот
только они в цикле делают функу... но не запускают её вообще. Вот именно
здесь я бы захотел уволить человека за такое. За то как он решил
проверить и какие выводы сделал, а также просто за вообще нерабочий код.

Далее тестируют производительность switch и... map. Я прям вот реально
впервые вообще вижу что сравнивалась структура данных и код для
генерирования if-ов (грубо говоря). Вроде бы можно и вообще не
разбираться в сложности алгоритмов, но чтобы додуматься до тестирования
скорости switch и map...

То ли прежде люди (включая меня) просто не особо интересовались курсами
и книгами и всегда так плохо всё было. То ли на фоне бума тренда и hype
на ИТ сферу, на фоне развития телекоммуникаций особенно после COVID, на
фоне дефицита ИТ-кадров стали учить полнейшей безграмотнейшей дичи. Одно
дело давать мало, немного, поверхностно, а другое дело давать ошибочные,
некорректные и безграмотные вещи.

3 months agoНастройки безопасности Chromium
Sergey Matveev [Fri, 2 Feb 2024 10:52:28 +0000 (13:52 +0300)]
Настройки безопасности Chromium

Чтобы опубликовать статью "Libre/OpenPGP vs OpenSSH/age"
(6df5bfb70dfc25de3344c4a28b307dc6fe4f1807,
1e117f483724c190b2d1cefb20355b910719b07d), пришлось с LiveCD загружать
KNOPPIX, так как в нём Chromium есть из коробки, тогда как под Firefox
не работает даже CAPTCHA для входа на Хабр. Всё это на отдельном старом
ноутбуке.

Прошло более двух недель как мне написали о неправильном окончаним в
одном слове. Достал ноутбук, снова загрузил KNOPPIX, но чтобы исправить
окончание -- нужно мочь вводить на русском языке. И через всякие штатные
меню я не нашёл способа как добавить язык и переключатель ввода на него.

Просто ужас, насколько же современный Web стал неюзабельнейшим говном и
всякие LiveCD GNU/Linux дистрибутивы чёрта с два помогают и позволяют в
нём работать. Стоит конечно окончательно забыть про Хабр для публикации
статей, но раз в год могу и достать ноутбук, хотя теряю прилично времени
на попытку разместить на нём статью.

Сильно позже я понял что можно бы было сделать так: на флешку (или на
статическом сайте выложить .txt) записать изменённое слово и через буфер
обмена скопировать/вставить его в статью. Но одна только мысль о том,
сколько по времени всё это запускать, угнетает ещё как.

Сегодня вот появилась виртуальная машина, где можно было "apt install"-ом
установить Chromium и добавить выбор русского языка. Ради интереса полез
в настройки броузера. Возможно я вообще никогда в жизни не видел как это
делается в этом броузере. Пользовательские интерфейсы, конечно, уже
давно просто убивают: совершенно разные стили оформления на двух
соседних страницах, вообще не видно и не понятно что является элементом
управления/выбора, а что нет. Как тупая макака (или игрок в
point-and-click adventure) должен долбить курсором во всё что кажется
подозрительным на экране.

По умолчанию во вкладке "safe browsing" стоит "standard protection". А
рядом с "enhanced protection" стоит пометка о том, что при этом вся
"browsing data" отсылается в Google. Хм, интересное у них понимание
"enhanced protection". По умолчанию, действительно, у них используется
зашифрованный DNS (то бишь DoH/DoT/хз), конечно же, тоже сливающий это
третьим лицам. По умолчанию включена галочка о том, что периодически
Chrome будет проверять мои пароли напротив списков скомпрометированных
(то есть, снова сливать ещё и пароли (пускай даже и производные от них
-- это тоже ценная информация, чай не zero-knowledge же у них)).

4 months agosetuptools-rust
Sergey Matveev [Thu, 1 Feb 2024 18:01:15 +0000 (21:01 +0300)]
setuptools-rust

Надо было проверить работоспособность GoCheese для загрузки в него
Python пакетов. Обычная утилита для этого в Python -- twine, которую
только и использовал для загрузки. Делаем "pip install twine" и через
несколько минут падаем с тем, что на моей системе нет Rust. Кто-то,
где-то тянет setuptools-rust.

По сути, уже даже самые простейшие пакеты, начали зависеть от Rust-а.
Можно считать что PyPI, как и в целом система пакетов Python, если она
только не полностью под своим контролем -- стала нерабочей и бесполезной.
Никаких аргументов и рекомендаций в сторону Python уже быть не может.

4 months agoЗащищая наши секреты от компьютеров
Sergey Matveev [Tue, 30 Jan 2024 08:05:17 +0000 (11:05 +0300)]
Защищая наши секреты от компьютеров

https://dl.acm.org/doi/10.1145/3623614
Многие работы связанные с криптографией регулярно упоминают Alice и Bob.
Эта же работа начинается с интригующего:
    Bob is in prison and Alice is dead; they trusted computers with secrets.

4 months agoПоиграл в маджонг у друзей
Sergey Matveev [Sun, 28 Jan 2024 14:04:01 +0000 (17:04 +0300)]
Поиграл в маджонг у друзей

https://ru.wikipedia.org/wiki/Маджонг
https://ru.wikipedia.org/wiki/Пасьянс_Маджонг
Как оказалось, на компьютерах я видел не маджонг, а пасьянс-маджонг.
Настоящий же маджонг, как Wikipedia пишет, это штука сродни покеру.
По началу были проблемы с тем, что, уж извините, но я ни одного
иероглифа не знаю, с трудом их отличаю, и даже не знал как цифры то
у них обозначаются. Но дальше полегче пошло. Вообще в целом очень и
очень понравилась игра, хотя полностью честно, не показывая свои кости,
не обсуждая у кого что и что можно сделать -- не успели сыграть. Всё же
порог вхождения не нулевой. Но однозначно хотелось бы повторения!

4 months agoБурк Бурук -- По образу своему
Sergey Matveev [Sun, 28 Jan 2024 11:52:23 +0000 (14:52 +0300)]
Бурк Бурук -- По образу своему

https://author.today/work/129269
Забавная (и не очень) история про троллиху. Описывают её жизнь, быт, как
пришли их убивать и порабощать люди.
    История о том, как стать человеком. И без всякой магии.
Вспомнились "Дикие истории" (1bf88b8b0e5b1e80b1d68700c632e3658c10f7a8) и
слоган книги должен бы быть:
    В каждом тролле есть человек. Не буди его.

4 months agoApple решила уничтожить квадратные checkbox-ы
Sergey Matveev [Sun, 28 Jan 2024 11:44:16 +0000 (14:44 +0300)]
Apple решила уничтожить квадратные checkbox-ы

https://tonsky.me/blog/checkbox/
Действительно, по форме элементов можно понять чем они являются. А
теперь, видимо пользователи смартфонов и macOS настолько отупели, что и
это уже не в состоянии воспринимать и дифференцировать -- поэтому Apple
решила сделать checkbox и radio button неотличимыми. Насколько ж нужно
себя не любить, чтобы использовать всё это дерьмо?

4 months agoБольше про ArVid
Sergey Matveev [Fri, 26 Jan 2024 18:06:28 +0000 (21:06 +0300)]
Больше про ArVid

https://jacobfilipp.com/arvid-vhs/
В ad67e5a0dfca5056d07a782b99250e2c0db31024 я упоминал Арвид: стример,
который использовал обычный видеомагнитофон и видеокассеты для хранения
внушительного объёма данных. В статье ещё и куча снимков экрана есть.

4 months ago{line,character,block}wise, inclusive/exclusive действия
Sergey Matveev [Thu, 25 Jan 2024 20:23:48 +0000 (23:23 +0300)]
{line,character,block}wise, inclusive/exclusive действия

Более двадцати лет я каждый день провожу часами в Vim. А сегодня заметил
что удаление "d%" блока текста занимающего несколько строк и начинающегося
с начала строки, при вставке вставляется как блок из нескольких строк, а
не как многострочный текст сразу после/до места где я нажимаю "p"/"P"
команды. Если же "d%" я делаю не в начале строки (до этого места хотя бы
один не indent символ есть), то при вставке оно ведёт себя уже иначе.

Не одна страница в help-е Vim-а написана про все эти *wise действия и
про *clusive. Но как-будто вообще впервые вижу. Впервые обратил внимание
на колонку с типом текста находящегося в регистрах. И документация прямо
явно намекает как бы делать форсированные character/line-wise действия.
Вот не перестаёт Vim удивлять и даже 20+ летней давности функционал
продолжает открываться.

4 months agoPKCS#12 проблема в OpenSSL
Sergey Matveev [Thu, 25 Jan 2024 18:58:54 +0000 (21:58 +0300)]
PKCS#12 проблема в OpenSSL

https://www.openssl.org/news/secadv/20240125.txt
В очередной раз, на уровне парсинга структуры ASN.1, OpenSSL может упасть.
Вот люто ненавижу этот проект из-за ничтожного качества. Да и PKCS#12 это
одно из самых переусложнённых и монструозных что придумано.

Я уже много лет принципиально ни при каких обстоятельствах не даю ни
примеров, ни намёков на то, как то или иное сделать в OpenSSL. И себе не
позволяю использовать из него ничего, разве что кроме быстрой реализации
хэша через командную строку.

4 months agoYahoogle. Доверие к Gmail "show original"
Sergey Matveev [Thu, 25 Jan 2024 12:02:40 +0000 (15:02 +0300)]
Yahoogle. Доверие к Gmail "show original"

https://wordtothewise.com/2024/01/dont-trust-gmails-show-original/
В Gmail есть возможность показать оригинальное письмо полностью, со
всеми заголовками. Пишут что они всё же некоторые данные вполне себе
меняют и не отображают оригинал.

А ещё услышал про "yahoogle". Прежде только о "faceboogle".

4 months agoБогиня небес
Sergey Matveev [Thu, 25 Jan 2024 11:54:21 +0000 (14:54 +0300)]
Богиня небес

https://www.securitylab.ru/news/545517.php
И не поверишь, что это природа так выдумала туманность.

4 months agoFFV1+Matroska в библиотеке конгресса
Sergey Matveev [Tue, 23 Jan 2024 20:48:58 +0000 (23:48 +0300)]
FFV1+Matroska в библиотеке конгресса

https://blogs.loc.gov/thesignal/2023/12/embracing-ffv1-matroska-container-preferred/
Библиотека конгресса США теперь считает .mkv с FFV1 кодеком
(c2327fd8617a2a200ea75dbd3ab1bb30001891fb94d581df931a13bce7f419069466d52a81b45e78)
предпочтительным для хранения. Это конечно не то чтобы весомым
аргументом где-либо должно быть, ибо среди предпочтительных форматов у
них и проприетарные .xls, .xlsx есть, а среди допустимым даже RAR есть.

4 months agoIPv6 город в Китае. IPv6 в Чехии
Sergey Matveev [Tue, 23 Jan 2024 08:00:15 +0000 (11:00 +0300)]
IPv6 город в Китае. IPv6 в Чехии

https://blog.apnic.net/2024/01/23/the-ipv6-city-xiongan-china/
https://konecipv4.cz/en/
Упоминают о городе, в котором только IPv6 сетевая инфраструктура
(хотя всё же до сих пор остаются шлюзы в устаревший Интернет). А
к 2032-ому госучреждения Чехии должны прекратить предоставлять
доступ через IPv4. 2032... вообще это чуть ли не десять лет. Но
на уровне государств (Белоруссия a641dcab42a75c5de321740567c63c9b4e48f015,
США 2e24ed164b9fc1d8b0c0d5e852245e3fb3c65edc, вся Азия в целом, особенно
Китай) форсирование не только внедрения IPv6, но и выпила IPv4 дело идёт.

4 months agoOpenBSD и UTF-8
Sergey Matveev [Tue, 23 Jan 2024 07:54:23 +0000 (10:54 +0300)]
OpenBSD и UTF-8

В рассылке FreeBSD вот такое письмо прилетело:

    > Which I think leads to one of my big reasons for supporting Rust and
    > something else that needs to be moved to its own thread, Text encoding
    > issues. I think the project needs to follow OpenBSD's lead and
    > deprecate non UTF-8 locales. While I personally can't read or write
    > anything other than English and a few dozen words in Spanish,
    > Portuguese, and French, I can find or create test input data that isn't
    > in basic ASCII and test my string handling against such input. Assuming
    > allowing things like French column names make sense.

    First this is already deprecated, only utf-8 locales and encoding are being
    updated on regular basis! Second, no we will not follow the path of OpenBSD here
    because locales are not only for interactive, but text processing, like
    for example databases (collation, comparison etc) and there are plenty of data
    stored that cannot be converted to unicode for many valid reason, dropping non
    unicode locales will just make sure those data and databases cannot be served
    on FreeBSD anymore! (btw note that OpenBSD, while having deprecated all non UTF-8
    encoding support, do not support unicode collation).

Вот верно заметили, что локализации используются не только для
интерактивных программ (9a7015f648c3b55e1c1ff22f8bfd2958dcf2e255).
И в очередной раз неприятно удивила меня OpenBSD тем, что там нет
Unicode collation. Не, понятное дело что никто не мешает использовать
внешние библиотеки, но если уж вы за Unicode, то без collation многие
web-задачи не выполнимы. Странные эти OpenBSD-шники всё же.

4 months agoТеория игр за 15мин
Sergey Matveev [Mon, 22 Jan 2024 07:59:16 +0000 (10:59 +0300)]
Теория игр за 15мин

https://habr.com/ru/companies/raft/articles/787906/
Я только научно-популярные статьи на тему теории игр читал. Как минимум,
дилемма заключённых упоминается частенько в книгах по криптографии.
Интересная штука. Впрочем, как и по экономике чего научно-популярное
читать, то тоже интересно, особенно про всякие парадоксы (типа
поднимаешь цену на гречку, и её сметают с полок).

4 months agoОбсуждают внедрение Rust в FreeBSD
Sergey Matveev [Sun, 21 Jan 2024 14:44:01 +0000 (17:44 +0300)]
Обсуждают внедрение Rust в FreeBSD

https://lists.freebsd.org/archives/freebsd-hackers/2024-January/002845.html
Пока никто не видит смысла, зато тьму недостатков экосистемы Rust,
не забывая отмечать, что его bootstrap -- тёмная лошадка.

4 months agoПобывал на выставке-форуме "Россия"
Sergey Matveev [Sun, 21 Jan 2024 13:52:11 +0000 (16:52 +0300)]
Побывал на выставке-форуме "Россия"

https://vdnh.ru/russia/
Хоть он идёт уже и не первый месяц, но вот только сейчас выбрались с
родителями на него. Очень понравилось там! Страна то огромна и
разнообразна как нигде и ни у кого. Сколько всяких республик а народов.
И на них можно посмотреть, ознакомиться с их миром. БОльшая часть
информации подаётся в интерактивном виде через сенсорные экраны. Время
от времени там выступают и культурный досуг устраивают то одни, то
другие. Мама вот наконец-то в живую горловое пение услышала (я то не раз
на концертах подобных был). Если разглядывать и читать всё -- то нужно
много часов, информации очень прилично.

После этого родители подустали и поехали домой, а я продолжил просто
гулять по ВДНХ, по морозному воздуху (хотя бы безветренного) при ярком
солнце. Народу просто тьма сколько! Я вообще люблю ВДНХ, но тут его всё
больше и больше украшают, строят новых павильонов и ремонтируют тех, кто
со времён СССР ещё. Очень нравится мне тамошняя атмосфера.

4 months agoПрочитал "Игра головой" Павла Виноградова
Sergey Matveev [Sun, 21 Jan 2024 13:49:34 +0000 (16:49 +0300)]
Прочитал "Игра головой" Павла Виноградова

http://samlib.ru/w/winogradow_p_w/igra_golovoy.shtml
Короткий рассказ, где повествование идёт от лица комментатора
благородной игры в мяч. Но только во времена майа. Очень весело,
хотя и кроваво дико. Люблю подобный чёрный юмор и нормальное
отношение тех народов к нему.

4 months agoПрочитал "Курс выживания для подростков" Ди Снайдера
Sergey Matveev [Fri, 19 Jan 2024 20:25:26 +0000 (23:25 +0300)]
Прочитал "Курс выживания для подростков" Ди Снайдера

https://www.livelib.ru/book/1000318539-kurs-vyzhivaniya-dlya-podrostkov-di-snajder
Отец тут написал о том, что вспомнил как хотел было её мне обязательно
порекомендовать, но мне тогда ещё было всего два года, а потом у него
вылетело из головы.

С один сегодняшний вечер её всю осилил. Сам Ди Снайдер то написал её в
30-летнем возрасте. Я то уже на одну пятую старше.

Хорошая книга! И написана так, как-будто прямо с тобой автор и говорит.
Вот в подростковом возрасте я прям с массой всего не согласился бы или
бы не очень то поверил в книге. Точно такие же заблуждения и мысли как в
книге и были. Сейчас то ничего для себя нового не увидел, не открыл,
разве что подтверждения того, насколько всё же в голове у меня всё по
другому стало устроено и точно по более взрослому.

Собственно, прям вот ни с одной рекомендацией или заявлением не
возникало диссонанса (ну кроме раздела про гомосексуализм, где, пишет,
что 60% парней имели гомопыт... видимо это в США у них так). Прям да --
всё говорит как есть, подправлять нечего. Хотя мой опыт с женщинами
существенно отличался (первый поцелуй только в 20 лет был, а не забыть
свою бывшую я не мог 8 лет), но абсолютно точно к таким же выводам и
мыслям всё равно пришёл.

Название Twisted Sister (плюс их хиты) и имя Снайдера и слышал, но не
более. Не моя музыка. Но Снайдера, хоть он и весь из себя такая
рок-звезда, зауважал, видя и его отношение к сексу и неупотребление ни
курева, ни выпивки, ни наркоты, только дофига кофе (а у меня чая).

Я правда ожидал чего-то гораздо более взрослого, более философских
вопросов и тем, а потом понял, что уж подростку то точно не до них, ибо
голова забита сексом и, действительно, не дай бог свяжется с наркотой
разного рода.

В отличии от Снайдера, я в школе не был никогда изгоем и у нас не
припомню чтобы были деления по группам не общающимся между собой. И
никогда никаких проблем не было с хулиганами какими-нибудь, хоть я и был
тощим дрыщом, да ещё и очкариком -- на меня задираться было бесполезно,
сдачи ещё как мог дать. Да и я всегда заступался за "своих" (если тёрки
между классами или между школами), как и они за меня, если бы чего.
Фингал ровный красивый вокруг глаза, разбитая губа была, но на следующий
день мы, смеясь и похлопывая друг друга, вспоминали все эти наши стычки,
никаких обид или злобы.

Снайдер отмечает, что в его юности (60-е) он мало чего знал о сексе и
его заботами было смазывание бейсбольной перчатки и пополнение коллекции
пластинок. А сейчас (то бишь в 80-е) у подростков проблемы ранней
беременности, наркотики, самоубийства возрастающие в геометрической
прогрессии. Вот и в моей юности: не было Интернета, не было смартфонов
(ну у меня то была FreeBSD и FidoNet, но таких не много встречалось). О
сексе физиология безусловно заставляла думать, но я могу припомнить
только две пары среди трёх старших классов -- вроде бы больше никто ни с
кем не встречался. В лагере (5162408ec89dda8c83b6fa446ff2921abe327264)
вожатые о теме секса не заикались. А от одного знакомого, который всего
на ~3 года помладше, уже слышал что и секс у старшеклассников случался
не редко и, будучи вожатым, они напоминали о важности презервативов
школьникам в лагере (если память не сильно изменяет, то речь была про
7-8 классы).

Пишет, что в свои 30 он ощущает себя подростком всё ещё. Я точно помню
что в 30 говорил что ощущаю себя студентом -- вот как-будто только
совсем недавно закончил институт. Но последние 2-3 года я совершенно
перестал так говорить, ибо видя и общаясь с кучей молодых (10+ лет
разницы) коллег, всё же разница мне становится ощутимой, уже не чувствую
что из одной песочницы с ними. Я реально по своим собственным внутренним
ощущениям чувствую что куда ближе к коллегам 40+.

4 months agoРассказал про redo, daemontools, UCSPI
Sergey Matveev [Fri, 19 Jan 2024 20:22:19 +0000 (23:22 +0300)]
Рассказал про redo, daemontools, UCSPI

Три часа на работе рассказывал с проектором и практической демонстрацией
про redo, недостатки Make, daemontools, UCSPI и вообще DJB-way. Оказалось,
что вовсю уже были проекты (не мои) которые использовали redo. А то я
думал что загорелся так сильно DJB-way-ем только я один.

4 months agoПроблемы Linux с дровами
Sergey Matveev [Thu, 18 Jan 2024 07:58:40 +0000 (10:58 +0300)]
Проблемы Linux с дровами

https://habr.com/ru/news/787162/
Пять суток Торвальдс не имел доступа к Интернету из-за упавшего дерева
на линии электропередач. И поэтому добавить в Git ничего не мог.

4 months agoРаботоспособность Рувики
Sergey Matveev [Tue, 16 Jan 2024 07:21:21 +0000 (10:21 +0300)]
Работоспособность Рувики

https://habr.com/ru/news/786634/
https://ru.ruwiki.ru/wiki/Cryptoparty
Пишут что вышли из стадии тестирования.

Зашёл первым делом на страницу про криптопати, чтобы понять перенесены
ли данные по всяким мелочам из ru.wikipedia.org. Страница есть, текст
есть, а вот ссылок на внешние ресурсы по сути нет, ибо они все выглядят
как URL до страницы с прикреплённым через # Base64. Внутри него
URL-encoded URL плюс ещё бинарщина какая-то. То есть, чтобы мне куда-то
перейти, то надо вручную вызывать внешнюю программу для декодирования
этого безобразия? Ах да, они ожидают что я буду использовать ПО, которое
автоматически с их серверов каждый раз будет скачивать их программы для
выполнения на моём компьютере, чтобы мне было, видимо, удобнее.

Никаких IPv6 адресов. Да, давайте ещё и MD5 по старинке и по привычке
использовать. Условия лицензирования по CC или GNU FDL хотя бы
сохранены. Вовсю предупреждения что все персональные данные отправляются
на сторонние ресурсы.

При регистрации ссылка на "Согласия о распространении и обработке
персональных данных" не работает, никуда не ведёт мой броузер. Ну и
конечно же при попытке зарегистрироваться мне показывают "возникли
проблемы с отправленными данными", без объяснения деталей.

Как там говорят? Хотели как лучше, получилось как всегда.

4 months agoКрасивая графика в играх
Sergey Matveev [Mon, 15 Jan 2024 19:46:22 +0000 (22:46 +0300)]
Красивая графика в играх

https://www.youtube.com/watch?v=RDs-heejPdY
Очень не нравится как говорит автор, но можно смело просто вообще
выключить звук, ибо никакой полезной информации. Я раз в пару лет да
введу в поисковике что-нибудь чтобы мне показали как современные то
дорогущие игрухи могут выглядеть и вау-эффекта не получаю. А тут прям
впечатляюсь тем, что вижу на мониторе (на котором и никаких HDR/WCG
нет). Но нисколько не охота во что либо из этого поиграть.

4 months agoNomadBSD
Sergey Matveev [Mon, 15 Jan 2024 08:46:51 +0000 (11:46 +0300)]
NomadBSD

https://www.youtube.com/watch?v=t51UZTEYnSQ
https://nomadbsd.org/
Из одной рассылки просто увидел ссылку на рассказ про NomadBSD
дистрибутив, основанный на FreeBSD. Видео промотал за 10сек, ибо
неперевариваю подобный способ подачи информации. Но помню своё
знакомство с ним в feaf6a9f904302434e3963f885d5be999049f3d2, где
просто хотелось что-то загружаемое с LiveCD и что могло бы фильмы
показывать через HDMI. Ubuntu и ещё какие-то дистры с этим не
справились.

Вчера публиковал (6df5bfb70dfc25de3344c4a28b307dc6fe4f1807) статью на
Хабре, который конечно же не работает даже с включённым JavaScript в
surf-е. Есть у меня ноутбук на котором установлен для Unreal-а Ubuntu
Ultimate Edition (dd8df75e5426bd556026c16cdb5f46412f299627). В нём
Mozilla Firefox далеко не самый старый. Под ним даже CAPTCHA для входа в
Хабр не работала. Пришлось KNOPPIX запускать, в котором далеко не самый
новый Chromium, но под ним всё заработало. Но статью удалось скопировать
только если использовать "старый" редактор Хабра.

4 months agoLibre/OpenPGP vs OpenSSH/age
Sergey Matveev [Sun, 14 Jan 2024 15:32:30 +0000 (18:32 +0300)]
Libre/OpenPGP vs OpenSSH/age

https://habr.com/ru/articles/786302/
Написал статью на Хабре на тему *PGP и ssh-keygen/age.
В блоге то всё это мнение уже присутствовало и прежде.

4 months agoПосмотрел Крепкого Орешка 3
Sergey Matveev [Sun, 14 Jan 2024 09:30:35 +0000 (12:30 +0300)]
Посмотрел Крепкого Орешка 3

https://ru.wikipedia.org/wiki/%D0%9A%D1%80%D0%B5%D0%BF%D0%BA%D0%B8%D0%B9_%D0%BE%D1%80%D0%B5%D1%88%D0%B5%D0%BA_3:_%D0%92%D0%BE%D0%B7%D0%BC%D0%B5%D0%B7%D0%B4%D0%B8%D0%B5
Какой-то из Die Hard-ов я конечно видел, но уже не вспомню какой. А вот
третью часть точно не видел. Два часа постоянного action-а с приличной
массой ржачных моментов. Давно не видел такого прикольного боевичка!

Последние лет десять очень не люблю негров в американских фильмах, чаще
всего просто отказываясь их смотреть (ну от нечего делать иногда же
что-нибудь охота поставить). Ибо задолбали их сувать просто потому что
так надо. Они прям делают всё, что они начали отталкивать. И обязательно
любой негр теперь должен быть хорошим, с узкоглазым другом. Впрочем
новые западные фильмы то я вообще редко стал смотреть, ещё до СВО.

Но среди всех негров актёров невероятно крут для меня Сэмюэл Джексон,
который как-раз вторую главную роль в этом Орешке сыграл. Не даром его
постоянно Тарантино у себя снимал. Читал тут, что в Джанго-освобождённом
некоторые сцены с ним даже вырезали, ибо он и так настолько
отталкивающим и ненавистным делается, что Тарантино не хотел бы чтобы
его и в реальной жизни порвали как тряпку от неприязни.

Регулярно немецкую речь в фильме можно услышать -- любо ухо. Плюс очень
симпатичная деваха у антагониста. Да и сам он не просто классический
такой плохиш с высокими манерами, как в первом Орешке.

4 months agoSplinternet
Sergey Matveev [Fri, 12 Jan 2024 18:51:10 +0000 (21:51 +0300)]
Splinternet

https://en.wikipedia.org/wiki/Splinternet
https://ru.wikipedia.org/wiki/%D0%91%D0%B0%D0%BB%D0%BA%D0%B0%D0%BD%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BD%D0%B5%D1%82%D0%B0
Увидел тут недавно новый термин для современного Internet,
который вовсю split-ится уже не первый год, балканизируется.

4 months agoПро Wayland и портирование на него
Sergey Matveev [Thu, 11 Jan 2024 18:20:58 +0000 (21:20 +0300)]
Про Wayland и портирование на него

https://blog.tenstral.net/2024/01/wayland-really-breaks-things-just-for-now.html
Мало чего понимаю во всей этой теме и не очень то представляю как всё
работает, но всё равно интересно почитать. Мнение по поводу X11 vs Wayland
у меня сильного никакого нет. Не ломайте мои программы (пускай через
слой совместимости -- пофиг), пускай графика мне отображается и никаких
проблем. Но чую, что Wayland будет поддерживать только Windows мира Unix
(GNU/Linux то бишь), а драйверов будущего железа для X11 не будет. Хотя
бы чтобы UEFI framebuffer бы работал и тоже никаких проблем.

4 months agoСмена OpenDKIM на go-msgauth/cmd/dkim-milter
Sergey Matveev [Thu, 11 Jan 2024 15:03:04 +0000 (18:03 +0300)]
Смена OpenDKIM на go-msgauth/cmd/dkim-milter

https://habr.com/ru/news/785486/
https://datatracker.ietf.org/doc/html/rfc8463
https://github.com/emersion/go-msgauth
Gmail и Yahoo скоро будут в обязательном порядке требовать наличие DKIM,
SPF и DMARC. Это всё у меня уже давно настроено, но решил посмотреть снова
так ли это. Увидел, что ещё в 2018-ом стандартизовали (RFC) ed25519
алгоритм для всего этого DKIM дела. Но OpenDKIM не поддерживает этот
алгоритм.

Нашёлся вот на Go go-msgauth, поддерживающий ed25519, в котором утилиты
и для генерирования ключей и для работы в качестве почтового milter-а.
Без проблем подружился с Postfix, где я просто адрес milter указал на
Unix-сокет. Чтобы сокет был с нужными правами, то проще всего было
запустить его под setuidgid утилитой, сразу же сделав daemontools
службой. И перезапуск сразу будет при падении и ловля логов. Сам milter
и проверять сообщения умеет, вставляя Authentication-Results заголовок
с результатами проверки каждой DKIM подписи. Куда приятнее его
использовать чем OpenDKIM ещё и с отдельным конфигом.

В курсе что ed25519 Gmail проверять не умеет. Но они и TLS сертификаты с
ним не принимают. Идут в жопу. Как внедрять очередную корпоративную
херню ради "блага, experience, приватности и безопасности пользователей
о которых заботимся", то мигом с следующей минорной версии любого их
софта, а как добавить поддержку вменяемых (относительно RSA) алгоритмов,
то тормозят, хотя *25519 куда проще реализовывать чем любые RSA или
ECDSA (и давно реализации на любых языках имеются).

4 months agoschwabrak -- простой issue tracker
Sergey Matveev [Thu, 11 Jan 2024 12:26:56 +0000 (15:26 +0300)]
schwabrak -- простой issue tracker

http://www.git.stargrave.org/?p=schwabrak.git;a=blob;f=README
https://github.com/driusan/PoormanIssueTracker
Чем заняться после новогодних каникул? Работой. Но для этого надо
завести задачу. А это значит идти в броузер и пользоваться чем-то,
что не будет доступно в offline, что нельзя просто так склонировать
локально. Само собой я всю профессиональную жизнь работал за разными
issue tracker-ами: Trac (моим любимым был, администрировал его),
Redmine, да вот собственно и всё. Где-то был проприетарный закрытый не
работающий без JavaScript YouTrack -- но от него, благо, удалось
держаться подальше. ivi, слышал, переходил на Jira, и там коллега писал
TUI инструменты к нему.

А есть ли чего попроще? Ну чтобы пять минут потратить и иметь простую
штуку, которую хотя бы клонировать локально бы было легко. Trac вроде бы
мог с SQLite3 БД жить например, но... он на Python, что сейчас уже
неприемлемо для меня выглядит. Redmine довольно здоровое полноценный
такой Ruby+СУБД сервер. Против Ruby я меньше против чего имею, хотя я
очень давно с ним и не сталкивался. Но точно помню что поднимать Redmine
это не два клика.

Fossil попробовал -- очень понравилась штука, особенно после того, как я
с Tcl всё же уже поимел знакомства положительного. Один бинарь, один
файл SQLite3 и в нём и issue/bug tracker полностью имеется, работающий
без JavaScript. Но Tcl запросто будет других отталкивать так же, как
меня Python.

А можно ли ещё как попроще? Что такое issue/bug tracker? По сути же это
просто какие-то текстовые задачки, к которым нехитрая метаинформация
прикрепляется, где ещё можно зачастую добавлять комментарии с файлами.
Не, ещё 100500 других фич можно понапридумывать конечно же, ибо даже в
Fossil имеется ещё и кроме встроенной Wiki -- чат, что уж точно
совершенное излишество опциональное.

Одной из крайностей issue tracker-а является просто текстовый файл, куда
записываются все задачи и их состояния. Его можно/нужно коммитить в DVCS
и вот появляется возможность простого удобного клонирования и
возможности обновления в offline-е асинхронно. Но автоматизировать
какие-либо действия с ним уже проблематично. Ибо уже нужно делать его
машиночитаемым, превращать в более строгий формат. Как-то на работе
начальник пробовал использовать Org-mode закоммиченный файл, но только
он, с Emacs-ом, мог с ним работать как-то более сложно, чем просто
смотреть и редактировать.

Можно вообще было бы коммитить SQL-dump базы данных со всеми этими
задачами. SQL же в общем-то никто не запрещает использовать без
дополнительного инструментария. SELECT-ить задачи по статусу, датам и
всё такое прочее. Но выглядит не то чтобы очень уж удобно.

А что если один файл с кучей pure-plain-text-only задач разбить на
поддиректории (по директории на задачу?), внутри которых будут текстовые
файлы? По сути у каждой задачи, есть как минимум два поля на практике:
описание и итог/решение/чем закончилась задача. Плюс метаинформация в
виде enumeration значений: по сути просто прикреплённые чётко заданные
метки/тэги. Туда же можно приложить и любые дополнительные файлы, хоть
бинарные. А если это всё положить в Git, то автоматом появляется история
всех изменений связанных с задачей, просто делая "git log -p dir". Там
же можно точно так же хранить комментарии, где вместе с коммитом
автоматом будет добавляться метаинформация кто и когда его добавил.

В suckless рассылке когда-то было обсуждение suckless трэкеров, но кроме
просто текстового файла для очень простых случаев (у меня тоже в каждом
личном проекте по TODO файлу лежит, как правило не добавленному в
репозиторий), они так ни до чего и не дошли. Многим нравилась идея
взаимодействия с bug трэкером через почту, где номер баги в теме письма
идентифицирует задачу, а дальше все сообщения для баги просто хранятся в
одном mbox/maildir файле. Так устроена работа в Debian. mbox-ы можно
скачать и локально, просто натравив MUA, смотреть всё общение в рамках
задачи. Но для этого нужен вменяемый MUA, плюс это не то чтобы легко
автоматизировать можно (работать из командной строки с MIME сообщениями
то ещё удовольствие) и оно всё же именно про bug tracking, когда
анонимные люди могут взаимодействовать, а не чётко заданные разработчики
у которых есть взаимосвязи между задачами, сроки, всякие там возможно
строящиеся диаграммы Ганта и тому подобное. Всё же bug tracker и issue
tracker ощутимо отличаются. И для bug tracker я бы тоже наверное смотрел
в сторону почтовых сообщений и каких-то hook-ов на стороне принимающего
сервера. Возможно debbugs вполне себе не так сложен для администрирования.
Но это всё для bug tracking, а для issue tracking излишне.

Git выглядит как сразу готовая распределённая СУБД где "git log -p"
покажет всю историю изменений связанную с задачей. После всего этого я
нашёл PoormanIssueTracker предложение, даже с презентацией онного на
какой-то конференции. Где все идеи полностью схожи и с тем до чего я
дошёл.

Ну а для упрощения работы с этой простой иерархией задач написал
несколько zsh-скриптов (почему zsh? потому что в нём проще работать не
заботясь об экранировании и подобных штуках, хотелось по быстрому
написать что-то работающее) в schwabrak репозитории. Попытаюсь
поработать в таком духе. Никаких там генераторов отчётов, сводных таблиц
или чего-то подобного -- когда понадобятся, то за пару часов можно всё
что угодно будет написать. Если же zsh нет, то всё настолько тривиально,
что можно и просто руками возиться с файлами. Ведь всё это по сути
просто договорённость об именовании нескольких файлов и директорий,
ничего более. Но зато с этим куда проще проводить автоматизацию и вообще
машинно обрабатывать всё. Всё описано в README.

В отличии от PoormanIssueTracker у меня есть "поддержка" иерархических
проектов, а не просто одного большого списка задач. Конечно, название
проекта может просто входить в часть названия. У меня это часть
поддиректории. Задачи могут зависеть от других. Всякие статусы,
приоритеты, assignment-ы и подобное -- считаю что просто может являться
частью enumeration-ов, которые можно сгруппировать по части названия
("status:open", "status:done", "severity:high", "assigned:stargrave"
(всё равно список людей на которые можно повесить задачу -- относительно
небольшое множество), и т.д.). Комментарии добавляются коммитом меняющим
"comment" файл, поэтому их все можно проглядеть просто сделав "git log"
на него, увидев и даты, и авторов, и добавленные/изменённые связанные
файлы. В ivi например всё рецензирование кода делалось через комментарии
к задаче, никаких отдельных Gerrit или Phabricator. Пробовали, но не
понравилось. С Gerrit я дело имел годами, и так и остался при своём
мнении что не нужен он, комментарии с рецензированием кода более чем
достаточны. Так же как и Gitlab. Просто надо иметь утилиту для удобного
комментирования кода (как я когда-то написал CodeComm и GerrVim). Так
что и тема с рецензированием/review тоже закрывается.

Откуда такое имя? Искал как будет по немецки bug, жук, таракан
(Schwabe). Добавлял "trac", "trak". В итоге и вышел этот "швабрак",
где ещё и "швабра" и "брак".

4 months agoУрок про кирпичики криптографии в Дмитрове
Sergey Matveev [Wed, 10 Jan 2024 14:23:39 +0000 (17:23 +0300)]
Урок про кирпичики криптографии в Дмитрове

В прошлом посте упомянул, что были люди обзывающие Base64 шифрованием. А
было это ещё в 2013-2014-ом, где я с одним знакомым провели факультативные
уроки по теме криптографии десятитиклассникам в одной школе Дмитрова.
Знакомый больше рассказывал про некоторый инструментарий криптографический,
упоминал про засветившихся тогда Сноуденов и Ассанжов. А я про кирпичики
криптографии рассказывал, написал на Python программку визуализирующую
колоду игральных карт на каждой итерации алгоритма Пасьянс
(http://www.cypherpunks.ru/Solitaire.html), чтобы было видно как всё
перемешивается несложным образом даже без ЭВМ. Показывали как выглядит
письмо в Gmail web-интерфейсе зашифрованное при помощи GnuPG, где
как-раз сплошной Base64 и виден.

Для учеников это всё было во внеурочное время и на добровольной основе.
Абсолютно никто из девочек не оставался -- только пацаны были
заинтересованы. И как вот относится к женщинам на равных после этого,
если оно и сами вовсю демонстрируют что совершенно не на равных смотрят
на мир и имеют другие интересы?

И очень запомнилось то, что уже тогда (10+ лет назад!) из 20+ человек
только ровно у одного вообще был email адрес как таковой. Смартфонами
люди уже вовсю пользовались, но ни у кого из учеников не было почтового
ящика (хотя на следующий год им уже в институт отправляться). Всё
общение только через ВКонтакте. Только у этого одного парня с email-ом
был ещё и Facebook. Этот факт был удивителен не только мне.

4 months agoMD5 до сих пор используется у юристов
Sergey Matveev [Wed, 10 Jan 2024 14:03:04 +0000 (17:03 +0300)]
MD5 до сих пор используется у юристов

https://habr.com/ru/companies/ruvds/articles/785444/
https://web.archive.org/web/20081208024210/https://www.forensicmag.com/articles.asp?pid=238
Да что там юристы... даже на работе иногда от кого-нибудь можно в
разговоре услышать "сравни там например md5". Если когда-то, когда
MD5 уже был поломан, но ещё не было BLAKE2/BLAKE3, то его ещё всё
равно применяли из-за скорости, то сейчас то уж давным давно есть
куда более быстрые и безопасные криптографические хэши. Почему до
сих пор в головах людей всё ещё остаётся сам факт памяти об MD5?
Ни в Git, ни в BitTorrent его нет. Просто упоминаний о нём сложно
найти в современном ПО, а в головах людей всё ещё имеется.

Но в статье, а точнее у этих юристов, я совершенно не понимаю фразы:
    да, MD5 поломан в случае шифрования
Какого ещё шифрования? MD5 вообще никоим образом к шифрованию не
относится. В статье Льюиса аналогичный бред из диалога:
    There are multiple uses for hash algorithms. One is cryptography
    (encryption), another is identification, and another is
    authentication.
Я думал что юристы это люди очень придирчивые к терминам и чёткости их
применения. А тут непонятным образом мешаются и authentication и
encryption и cryptography. Вообще не могу понять что у них там в головах
о хэшах. Пугает что по сути они и не используют криптографические
хэш-функции.

Помню что на допросе в ОБЭП (c59c0cb1a2c232978e75e2e81c519dd975e8f6ea) я
употребил "шифрование" и меня сразу спросили что я имею в виду под этим.
"Обеспечение конфиденциальности передаваемых данных" -- "ok, теперь
понятно". Видимо кардинально разное подразумевают под "шифрованием" люди.
Кто прячется по подвалам -- тоже шифруется. И Base64-кодирование обзывали
шифрованием.

4 months agoПрошедшие каникулы
Sergey Matveev [Tue, 9 Jan 2024 05:20:33 +0000 (08:20 +0300)]
Прошедшие каникулы

За полторы недели новогодних праздников я в Vim не открыл не только ни
одного файла с исходным кодом, но даже ни одного конфигурационного.
Только заметки, .texi домашней страницы, .rec с URL закладками и
множество почтовых сообщений. О работе вообще не думал. Давно я так не
отвлекался на такое время. Концерты, встречи с друзьями и родственниками,
настольные и компьютерные игры, книги и музыка. Вчера даже фильм умудрился
посмотреть: расширенную версию "Омерзительной восьмёрки", где несколько
сцен добавлено.

4 months agoПрочитал журнал Ornament о Квентине Тарантино
Sergey Matveev [Mon, 8 Jan 2024 19:16:27 +0000 (22:16 +0300)]
Прочитал журнал Ornament о Квентине Тарантино

Подарили такой movie mag на Новый Год. Масса историй и любопытных фактах
как о самом Тарантино, так и, конечно же, о всех его фильмах. Крайне
любопытно почитать. Я то ведь точно его поклонником являюсь, хоть и не
каждого фильма.

4 months agoРождество с настоящим black metal
Sergey Matveev [Mon, 8 Jan 2024 18:57:18 +0000 (21:57 +0300)]
Рождество с настоящим black metal

Вчера же было рождество. Как его отметить? Ну конечно же концертом black
metal, язычество там, наверное анти-христианство, сатанизм, чёрт его знает.
Клуб Peak Sound находится в подвале. Похоже, не то чтобы отапливаемом,
но более тёплом чем улица. Влажность от дыхания десятков людей давала о
себе знать: на ледяных стенах и потолке быстро конденсировалась и
регулярно капала. Забавно.

Уйма black-а в последнее время на концертах -- к настоящему такому
агрессивному трушному быстрому отношения не имеет. Тот же Хрен
(5311dda3980638549ee6d7501e140d8dcd64fada) или Изморозь. А тут
нормальные все разукрашенные злобные парни, всё как надо.

Начинали Nazgul из Дмитрова. Ничего так, понравилось. Продолжил
Neargoth, тоже был хорош. Волчьи Трупы из Смоленска уже значительно
больше понравились -- клёво пилили на гитаре.

А главные, ради кого все и собрались, доселе мне неизвестные, Vedmak...
мощнейший крутейший убойнейший black из Ижевска! После такого концерта,
где в полуметре от тебя басист, где всё тесно, конденсат от нашего
дыхания капает, мощный отличный звук, пара десятков ценителей добротной
музыки -- понимаешь что это стоит десятков каких-нибудь там heavy metal
Ёлок (ed379bf5da6e95028cf1ab5c3c8324edff7cc95a) в огромных помещениях. У
Ведьмака и свои песни атасны, плюс исполнили каверы на Satyricon,
Immortal и Slayer (хоть он и вообще не в тему), даже с такими же
гитарными проигрышами. Вокалист мне люто понравился, отличный голос!
Причём, как по мне, так он больше подходит для музыки Immortal. Одну
песню на своём родном удмуртском языке исполнили. Крутые у нас всё же
группы есть, настоящий грозный трушный black!

Подобные концерты -- самое пресамое моё любимое времяпрепровождение
(если не встречи с друзьями и родными, конечно же). Где хорошо как никогда!

Ну и конечно же десяток CD-дисков прикупил.

4 months agoСходили в театр на "Счастливый день"
Sergey Matveev [Sun, 7 Jan 2024 10:21:58 +0000 (13:21 +0300)]
Сходили в театр на "Счастливый день"

https://newteatr.ru/
https://newteatr.ru/truppa/artists/kalinichev-mikhail
С родителями сходил на сабжевый спектакль, который даже без антракта.
Лёгкая такая комедия, где приезжает ревизия на не самую благополучную
провинциальную почту.

Мы уже 20+ лет ходим в "Новый драматический театр", ибо и нам удобно до
него добираться (из Королёва едешь по Ярославскому шоссе и сразу после
МКАДа он уже будет по пути), и билеты там частенько даже дешевле 1k₽, и
репертуар разнообразен и интересен. Плюс он небольшой -- если сел в
самом конце зала, то сцена даже нам с мамой, очкарикам, хорошо видна.
Когда люди на работе говорят что в театры невозможно ходить из-за
дороговизны, то постоянно рекламирую сабжевый театр, коих наверное и не
один по Москве разбросано. Как с концертами: сотни небольших и дешёвых
мест, где удовольствия получишь не меньше (а на концертах и зачастую
больше) чем на здоровых дорогих стадионах и Больших Театрах.

Отдельно нам всем нравится ещё и, считай, главный актёр сабжевого театра
Михаил Калиничев. Самый запоминающийся спектакль в моей жизни был "12
разгневанных мужчин", где Калиничев был в главной роли. Как же круто он
играл! Ну и тогда ещё было первое знакомство с "12 мужчин"-ами, по
которым и уйму фильмов же ещё сняли. И ведь это было 20+ лет назад. То
есть тогда этот актёр был ещё 20-30 летним пацаном, а сейчас уже дядька
здоровый, на которого мы вот уже не одно десятилетие ходим.

4 months agoПеребои с электричеством в СВАО Москвы
Sergey Matveev [Fri, 5 Jan 2024 16:40:34 +0000 (19:40 +0300)]
Перебои с электричеством в СВАО Москвы

https://lenta.ru/news/2024/01/05/energosnabzhenie-domov-na-severo-vostoke-moskvy-polnostyu-vosstanovili/
Как-раз в это же время моя VPS для отправки почты перестала быть
доступной. То бишь, их ДЦ где-то там и располагается. Только в обед
всё вернулось в строй.

4 months agoПрошёл Unreal
Sergey Matveev [Fri, 5 Jan 2024 15:43:51 +0000 (18:43 +0300)]
Прошёл Unreal

https://en.wikipedia.org/wiki/Unreal_(1998_video_game)
А то про неё уйму людей говорят и сравнивают с Quake 2. Многие считают
её лучше чем Quake. А я ведь так и не играл полноценно в неё ни разу.
Есть время исправить сие!

Хорошая игра, интересные уровни, сбалансированное вооружение. Отличная
графика, впечатляющие колоссальнейшие пространства. Я надеялся что она
меня втянет и я её полюблю. Но нет... уж извините, но для меня Quake 2
(с которым часто и сравнивают их) всё же на голову выше. В нём меньше
мест где можно запутаться. Мне интереснее его уровни. Интереснее монстры
в нём. Он конечно попримитивнее -- никаких там дружелюбных монстров нет,
но для меня он куда более захватывающая игра.

4 months agoПобывал в караоке
Sergey Matveev [Wed, 3 Jan 2024 22:45:27 +0000 (01:45 +0300)]
Побывал в караоке

Решили тут друзья новогоднюю встречу провести в караоке. Впервые вообще
был в подобном заведении. Что вообще для меня дико, ибо я и про себя
никогда не пел, не пою и не возникало такого желания. Но в итоге попел
немного. Не совсем срамота выходила на Rammstein сплошном -- по-немецки
мне и в кайф и хорошо помню как в оригинале всё поётся, плюс по очкам
чаще было больше чем у опытных друзей любителей караоке. Я ж вообще по
сути впервые жизни пел в микрофон, а не читал лекции или презентации
какие-нибудь.

Была одна песенка от Lindemann, а вот кучу других, которые, по моему,
можно было бы вполне в караоке попеть -- просто нет в принципе, даже
просто в YouTube не выдавалось вообще ничего на хитовейший Praise Abort
и почти всех песенок с первого их альбома (Ladyboy, Cunt, Golden Shower,
и т.д.). Цензура, видимо, или делёж авторских прав и подобного.

Ну и конечно же я нашёл багу, возможно серьёзную. Но текст караоке для
"Links 2-3-4" упорно считал что они поют "links zwei, drei, vier", хотя
там отчётливо с 2001-го года слышно что там не "zwei", а "zwo". Ошибка в
тексте не так ужасна, даже пофиг на отсутствие умляутов, но вот оценка
баллов происходит же просто анализом перепада в голосе. И "цвай" явно
больше "перепадов" содержит из-за "ай", по сравнению с "цво". И если
петь правильно, как в оригинале, то это может не совпасть с ожиданиями
караоке и обломать с дополнительными очками.

4 months agoПоиграл в Таверну "Красный дракон"
Sergey Matveev [Wed, 3 Jan 2024 22:41:40 +0000 (01:41 +0300)]
Поиграл в Таверну "Красный дракон"

https://hobbygames.ru/taverna-krasnij-drakon-category
Подарили мне на день рождения сабжевую настольную игру. Вот наконец-то
нашлись люди и время чтобы поиграть в неё. С друзьями в один день, с
родителями прям перед новогодним обращением Путина сыграли. Очень
понравилась. И интересна, и рандома много, и порог вхождения очень
небольшой. У меня несколько коробок с ней, но пока играли просто в один
набор, без использования сторонних колод, без дополнительных механик,
что ещё должно интереснее сделать игру.

5 months agoСходил с папой на ёлку
Sergey Matveev [Mon, 1 Jan 2024 23:26:20 +0000 (02:26 +0300)]
Сходил с папой на ёлку

В детстве меня водили на новогоднюю ёлку. Сейчас же идём на неё сами.
На главную metal ёлку страны, аж 18-ую по счёту. Как же ещё лучше можно
провести 1-ое января?

Были: Mavr Band (очевидно, где на гитаре Сергей Маврин), Чёрный Обелиск,
Чёрный Кофе, Catharsis и Мастер. Я был не Чёрном Кофе, но с остальными
не пересекался. В общем, плюс-минус везде heavy metal.

Мощнее всех жгли Catharsis, выделяющиеся тем, что куда моложе всех
остальных групп. Много взаимодействовали с залом. Под них народ начал
и волоснёй вертеть.

Мне пожалуй, как и папе, понравились больше Чёрный Обелиск. Хотя эмоций
от Catharsis было больше. Но в целом весь подобный метал -- совершенно
не моё конечно. Но было здорово, громко, много народу, много позитива,
стоило того!

И прикупил 8 дисков, некоторые из которых двойные.

5 months agoКачество Firefox для Windows пользователей
Sergey Matveev [Mon, 1 Jan 2024 08:19:47 +0000 (11:19 +0300)]
Качество Firefox для Windows пользователей

https://habr.com/ru/news/784306/
Был тут у родителей. На их компьютере Windows 7. А а на ней Firefox
когда-то просто с web-сайта установленный. Он работал, но прямо при мне
в один из перезапусков написал что обновляется. После этого стал
выдавать ошибку что, мол, не может запуститься из-за несовпадения
минимальных версий. Короче, ту версию Windows он уже не поддерживает.

Так вот какого хера то ты обновлялся тогда, если ты вообще откажешься
работать впоследствии? Проверка на версию ОС у тебя есть, но при
обновлении её сложно было добавить? Или же это классический ублюдский
потребительский подход когда "или не работает, или обновляй свой
ПК/ОС/whatever"?

Зашёл через Internet Explorer на их сайт для поиска архива со старыми
версиями. Или не нашёл, клацая по ссылкам на их сайте, или нашёл, но мне
IE что-то говорил про ошибки TLS какие-то и из-за этого по некоторым
ссылкам перейти не мог. В общем, штатно обычный пользователь уже ничего
не может сделать. Для меня то Firefox мёртв уже давным давным давно
из-за абсолютно свинского отношения к пользователям, к безопасности, к
приватности, вообще просто говно это стало лютое, но тут в очередной раз
ещё показал своё отвратное наплевательское качество.

5 months agoВмногером
Sergey Matveev [Sat, 30 Dec 2023 19:51:04 +0000 (22:51 +0300)]
Вмногером

https://tat-ti.livejournal.com/1247751.html
Увидел тут в блоге слово "вмногером" (по аналогии с "вдвоём", "втроём").
Как же оно мне понравилось, надо запомнить!

5 months agoУстройство машин для пинбола
Sergey Matveev [Fri, 29 Dec 2023 18:11:58 +0000 (21:11 +0300)]
Устройство машин для пинбола

https://www.youtube.com/watch?v=ue-1JoJQaEg
https://www.youtube.com/watch?v=E3p_Cv32tEo
Впечатляет насколько много механик реализовано в этих машинах
чисто на аналоговых электромеханических переключателях. То что
на ЭВМ делается очередным if/then/else, то тут требует добавления
целых дополнительных цепей. Интересно, сколько уходит человекочасов
на разработку подобного?

5 months agoПознакомился с xxHash, XXH3
Sergey Matveev [Thu, 28 Dec 2023 19:13:52 +0000 (22:13 +0300)]
Познакомился с xxHash, XXH3

https://en.wikipedia.org/wiki/Cyclic_redundancy_check
https://en.wikipedia.org/wiki/List_of_checksum_algorithms
https://fastcompression.blogspot.com/2019/03/presenting-xxh3.html
https://fastcompression.blogspot.com/2019/01/opaque-types-and-static-allocation.html
https://fastcompression.blogspot.com/2019/01/the-type-system_19.html
Понадобилась тут быстрая, простая, приемлемая для (относительно) не
быстрых процессоров, функция проверки целостности данных.
Криптографические хэши и медленные и избыточные для этой задачи. CRC32 в
принципе мог бы быть достаточен. Но он, строго говоря, не является
контрольной суммой, судя по Wikipedia, ибо например перестановка местами
блоков не сыграет роли. Fletcher, который по умолчанию используется в
ZFS, жутко быстрый, является контрольной суммой, но в крайних случаях
(когда сплошные нули или единицы) ведёт себя плохо.

Я помнил что Zstandard использует какой-то быстрый хэш, про который я
оказывается в этом году вспоминал: bd11d713558b26f0c5da3f61b67a252ac6b13698.
Автор LZ4 (а также Zstandard) написал его, ибо был не удовлетворён тем,
что бутылочным горлышком при сжатии данных может оказаться именно хэш,
контрольная сумма. xxHash быстрее CRC32 (без аппаратного ускорения). А
позже он сделал XXH3 -- ещё более быстрый, более надёжный вариант с
512-бит состоянием, из которого можно 64 или 128 бит хэш получить. И
XXH3, в отличии от xxHash-64, хорошо работает и на 32-бит системах. Плюс
проходит все тесты SMHasher как хэш-функция.

Посмотрел на его исходный код. Один из лучших Си кодов которые я только
видел. Не то чтобы я тут большой спец и имею опыт, но по сравнению с
OpenSSL, являющимся просто дерьмодемоном каким-то, этот верх идеала. А
также копался в GNU GMP, GnuTLS -- крайне не нравилось что там очень
упарываются по define-ам, и чёрт поймёшь что конкретно за код будет
компилироваться.

В xxHash автор упарывается по выжиманию производительности и дружбой с
компиляторами. Может показаться что там много define-ами обмазано, но
нет -- они по сути что-то типа как вместо autoconf используются для
определения что у нас за компилятор и какие специфичные для него можно
передать атрибуты и подсказки. А если слишком старый компилятор, то
просто опускать какие-нибудь "static inline". Это всё только в начале,
дальше не мешает. В некоторых циклах даёт подсказки компиляторам, явно
описывая что вот тут GNU GCC себя плохо ведёт, а Clang рвёт его как
Тузик грелку по производительности, и всё в таком духе. Аккуратная
работа с преобразованием типов cast/alias данных, мой Clang -Weverything
ни на что не ругается, что не часто встретишь.

Много заморачивается с выравниванием данных корректным и strict
aliasing-ом. В блоге про это у него несколько статей есть. И да, он
реально делается struct с единственным unsigned char * полем для
хранения сериализованного представления хэша (то что он называет shell
type-ом). Но это всё не мешает. Дробит код на много маленьких аккуратных
static inline функций даже в одну строчку, очень здорово увеличивая
читабельность. В коде можно define-ами выбирать: поменьше размер
бинарника (меньше оптимизаций), или побольше скорость (больше
оптимизаций, больше кода).

И всё это дружелюбно к тому, чтобы встроить xxHash/XXH3 в программу
просто делая include <xxhash.h>, и делать inline. Очень понравился
проект!

5 months agoOutlook/Hotmail более не блокируют почту у парня
Sergey Matveev [Thu, 28 Dec 2023 09:17:18 +0000 (12:17 +0300)]
Outlook/Hotmail более не блокируют почту у парня

https://taoshu.in/net/outlook-delist.html
При этом он с ними связывался, но не получал ответа. А дальше просто в
очередной попытке увидел что почта начала ходить. Ну раз не было ответа,
то это всё равно свинское отношение. Плюс не факт что его разблокировали
из-за обращений, а не просто из-за случайных решений роботов.

Моя почта как-то не проходила, потом стала проходить, потом снова не
проходила. И у меня ничего не менялось при этом. Я связывался с Outlook
админами, но мне тоже ничего не отвечали.

Был единственный человек который мне писал с Hotmail-а. С одного
запасного ящика я ему писал что, чувак, в любой момент снова почту
перестанут принимать без объяснения причин. Но он упорно слал всё с
hotmail, общение вынуждено было закончится, ибо отправлять ответ,
совершенно не зная дойдёт ли до него или нет (а время то на ответ я же
уже потратил) -- плохой вариант.

Но автор статьи верно заметил, что email это единственная успешная
(используемая широко на практике) федеративная система общения. Каждый
может поднять свой почтовый сервер, конечно же понимая что сейчас
Microsoft, Google, Yandex (из тех что мне известны на практике) активно
вредят всему этому и в лучшем случае в спам засунут все ваши сообщения,
либо молча (с успешным кодом возврата) не доставят ничего. XMPP на
практике (089bf4d15b98749dc24ee1bb149c53e080e86837) уже упирается в
любовь людей форсировать TLS и при этом требовать общих якорей доверия.

5 months agoБезграмотные мобильные интерфейсы
Sergey Matveev [Thu, 28 Dec 2023 08:08:29 +0000 (11:08 +0300)]
Безграмотные мобильные интерфейсы

https://habr.com/ru/articles/783640/
Смартфон я в руки пару раз в год на пару минут у родителей беру. И тоже
каждый раз думаю: у людей сейчас конфигурация и геометрия конечностей
изменилась? Просто из уважения к себе я просто не могу, даже если бы
было полностью свободное ПО без слежки, пытаться использовать всё это
говнище неюзабельное, насмешку над людьми созданную садистами.

5 months agoМаленький бурундочок и Herr Mannelig
Sergey Matveev [Wed, 27 Dec 2023 22:04:10 +0000 (01:04 +0300)]
Маленький бурундочок и Herr Mannelig

https://www.youtube.com/watch?v=e9ow6Ac9kQ0
https://www.youtube.com/watch?v=lr5gJlKnUdU
На концерте (76d5bc396b9e22362dcf762641f88a59c8112500) Green Crow две
песенки чего-то тут вспомнились. Одна это кавер на Herr Mannelig-а
(1941cd81d45f0193f3c37562cd8bbc980c029849), а другая про маленького
бурундучка. На концерте очень здоровский был колоссальный диссонанс
между грубым гроулящим голосом вокалиста и детским голосочком вокалистки.
Забавная, конечно, группа.

5 months agoЛенты с mbuffer-ом
Sergey Matveev [Wed, 27 Dec 2023 21:14:09 +0000 (00:14 +0300)]
Ленты с mbuffer-ом

В новом своём сервере я ещё ни разу не работал с ленточным накопителем.
SAS HBA то стоит, часть дисков через него работает, но сам стример не
пробовал. Всё тип-топ, без проблем, но так как в сервере 128GB RAM, то
решил попробовать писать с большой буферизацией в память. Прежде я
частенько отдельно промежуточный tar архив неспешно создавал, чтобы,
линейно его читая, писать на ленты. Ибо если небольших файлов/директорий
много, то из-за диски могли не успевать подавать это всё с достаточной
скоростью. А сейчас да хоть сотню гигабайт можно буферизовать неспешно и
только после этого начинать запись. Например Total DOS Collection
(4d19c66cf2a24f6d1875bb90b2caa70577141875) требует этого (либо
промежуточного архива). Есть сборники которые я на лету пропускаю через
Zstandard сжатие и с десятками гигабайт mbuffer-ом опустошений почти не
случается.

5 months agoДевушкин сон
Sergey Matveev [Wed, 27 Dec 2023 20:40:29 +0000 (23:40 +0300)]
Девушкин сон

https://ru.wikipedia.org/wiki/%D0%94%D0%B5%D0%B2%D1%83%D1%88%D0%BA%D0%B8%D0%BD_%D1%81%D0%BE%D0%BD
https://www.youtube.com/watch?v=hRs-zglxTH0
https://www.youtube.com/watch?v=dXWT4DBcde0
https://www.youtube.com/watch?v=TldrHw3XdZ8
На folk-концерте (76d5bc396b9e22362dcf762641f88a59c8112500) я приобрёл
несколько black metal дисков (ну а что ж ещё на фольке то приобретать?)
(d3d5d7b99e2d76fcedd39cbd643d8b80d7cff2f55311dda3980638549ee6d7501e140d8dcd64fada)
А раз на folk приобретаешь black, то не можешь не спросить продавца про
Moon Far Away (о чём же ещё спрашивать, когда берёшь black metal?) и
взять и пару дисков конкретной попсы ("этереал, дрим-поп, трип-хоп"). Но
продавец -- молодец: я реально альбом "Инопланетянка" прям с
удовольствием от и до прослушал. А затем и "Быстрые сны", где музыка
чуть помрачнее уже будет. Этот Девушкин сон знает как своим голосом и
манерой пения усладить мои центры удовольствия!

В общем то и прежде попсовые исполнительницы типа
Madonna (04bb9ca77c13e423390b3f4f08446395850af0af),
Lenka (4f6820ae046dfddb71e1d26ca524efe90390ca2c) или
Dolores O'Riordan (c12ebe6f969ec3234915ef95a2becfe85697e64d, хотя это
уже рок) мне нравились. Но я ведь ставил в хороших наушниках и других
попсовых исполнительниц, типа той же вызывающей землетрясения
(8411bbc7a1068a87f826e70648ae3c8d92692460) Тейлор Свифт, ставшей
человеком (в США) года недавно, или Адель, или Бейонсе или нашей
Гагариной и других звёзд. Чтобы понять: может мне просто женский вокал
нравится, чисто как сексуальное влечение? А фиг! Вот ничего не вызывают
все эти исполнительницы у меня, ничем не трогают, ничего не задевают.
Многие то наоборот подбешивают.

Мельница мне очень нравится (хотя это уже не про попсу) -- а почти всем
окружающим меня она прямо противоположные чувства вызывает. Nina Hagen
(e03ae603e9a41b89cb0357249191dae1344cd95f) крута своей лютой панковской
энергетикой и владением голоса. Но это уже не про попсу. Да даже среди
типа оперного пения вот от чего то тащишься, типа Therion-овского Son of
the Sun (f9d5ae66c2a5300c83811b746aaab5c48b2c908e), но больше у них нет
ни одного трэка с таким вокалом! Ну а волшебства как у вокалистки Moon
Far Away вообще нигде больше не встречал.

5 months agoГод прошедший
Sergey Matveev [Wed, 27 Dec 2023 20:21:04 +0000 (23:21 +0300)]
Год прошедший

Традиционно резюмирую чего у меня в этом году происходило. Не густо.

* Дома обновил изживший своё сервер. Между компьютерами сделал 10GbE
  сеть. С бесплатных IPv6 туннельных брокеров переехал на /48 VPS-ку
* Получше стал разбираться в firewall, маршрутизации, AQM, играясь со
  всеми этим на протяжении всего года. Заменил IPsec WireGuard-ом везде
* В начале годе немного поигрался с Tcl, но дальше дело затихло. Хотя в
  целом желание его поосваивать удовлетворилось
* Начал вовсю использовать age и ssh-keygen где прежде был GnuPG.
  Когда-то я не то чтобы одобрительно относился к этому, но поменял
  отношение, ещё до разлада между OpenPGP и LibrePGP. Простота превыше!
* Не мало стал слушать фольклорной музыки, как нашей, так и скандинавской
* В личных проектах ничего кроме поддержки толком не делал. NNCP совсем
  забросил -- как-то прям вот нет желания продолжать с ним возиться,
  впадлу, лень, не интересно. Мои задачи выполняет и мне хватает,
  работает -- не трожь
* На работе по объёму кода больше всего писал на Си, причём всё более и
  более сложные программки под Unix, что радует. Затем Go, что не может
  не радовать. И только в первой половине года немного на Python
  пришлось пописать -- радует что к нему почти не притрагиваюсь уже, ибо
  воротит от этого языка, его экосистемы и всего что с ним происходит.
  Даже в отпуске не побывал
* Всё больше участвовал в ряде проектов как научный консультант. Даже на
  LaTeX+TikZ документы уже начал писать. С одной стороны удручает, что
  обращаются ко мне не как к программисту -- не показатель ли это
  увядания моего профессионализма? С другой -- все эти документы
  делались явно не для галочки и оно задействовало весь багаж опыта и
  знаний
* В прошлом году непродолжительные отношения с одной девушкой
  закончились, но благо расстались без ругани. Любовные шуры-муры у меня
  впервые за 10+ лет случились. Но за этот год я понял что точно не хочу
  в них ввязываться вновь. Все эти непонимания друг друга, раздражения,
  конфликты на пустом месте, разговоры на разных языках, различающаяся
  интерпретация слов и действий... Безусловно, были приятные моменты, но
  отсутствие чувства лёгкости перевешивает. Да и прям просто не хочется
  что-либо кардинально менять в своей жизни, ибо я на проторённой
  дорожке детерминированности, предсказуемости и стабильности в жизни
  (ну пока не призовут во время очередной мобилизации). Женщины выводят
  из равновесия и порождают вопросы на которые не получишь ответа

5 months ago"Эээхх!" в женском вокале
Sergey Matveev [Wed, 27 Dec 2023 13:11:59 +0000 (16:11 +0300)]
"Эээхх!" в женском вокале

https://www.youtube.com/watch?v=mwQxagTSLFE
Всё не забуду момент (4d4817ce5008cdddcd11cb45de2aa91142fe42b7) с
neofolk концерта, где ровно один раз за всё выступление вокалистка
Рабора сделала "ээх"/"уух"/фиг-знает-как-это-назвать. Как на видео
по ссылке где-то на 5:10.

Осознанно не скажу с чем связано, но за эту долю секунды, типа дыхание
перехватило от этого. Запомнилось больше то, что впереди меня был мужик
выглядящий как трушный такой black металлист, и в этот момент он резко
руки вскинул и похлопал. Через секунду опустил, ибо песня то не
заканчивалась и больше никто не хлопает. Но было очень забавно видеть
что не только меня явно тронул этот восклик. Я никак отрегировать не
успел, а он похлопал, пусть и не в тему, пропалился. Как же женщинам
легко на нас повлиять, просто выдохнув нужным образом разок :-)

5 months agoЗнание немецкого при приготовлении пищи
Sergey Matveev [Wed, 27 Dec 2023 13:02:34 +0000 (16:02 +0300)]
Знание немецкого при приготовлении пищи

На прошлой неделе делал пару чизкейков. Пластиковая мерная кружка у меня
польского производства (с доисторических времён), где нет русского языка,
а первые метки на ней на немецком. Годами пользовался, но вот взял, да
спутал Zucker и Wasser (сахар и воду), у которых плотность сильно
отличается. В итоге ощутимо меньше сахара насыпал. Плюс взял другую по
размеру пачку Юбилейного печенья, где три ряда, вместо двух. Я помнил
что надо взять весь "столбец" и добавить к нему один ряд -- в итоге
печенья сильно пересыпал, аж в миксер не уместилось и я сообразил почему
только уже после приготовления. Второй чизкейк уже без ошибок вышел.

5 months agoСмена языка программирования с PHP на Go
Sergey Matveev [Wed, 27 Dec 2023 12:01:08 +0000 (15:01 +0300)]
Смена языка программирования с PHP на Go

https://habr.com/ru/articles/783240/
Автор называет себя сеньором, team lead-ом, "квалификации вполне
достаточно". Решил сменить язык на что-то другое. Выбор был из Python
или Go. Выбор пал на последний, потому что... "наличие {}, а не
отступов", "более новый". Во время поиска работы, HR-ы посчитали автора
вообще стажёром. С чем он не согласен, ведь "ты имеешь навыки работы с
базами и можешь разворачивать и настраивать среды". В комментариях же он
назвал Go "функциональщиной". И по его опыту "нет никакого смыла сидеть
по полгода/году и что-то пытаться изучать и кодить", мол опыт можно
только в команде получить. И он обращается к "lead"-ам чтобы они
задумывались о требованиях в резюме, мол негоже такое отношение к таким
как он. Я прям почти был уверен что автор просто троллингом занимается
неприкрытым. Но, судя по длительной активности в комментариях, похоже
что нет.

По паре предложений очевидно что опыта у него с гулькин нос. Суждения на
уровне именно что стажёра, только начинающего разработчика. И да, видно
что 5-6 лет в команде на PHP вообще ничего не дали ему в
профессиональном плане. Очень много видел что PHP-шников не любят. Я
совершенно спокойно относился к PHP как к инструменту. Но если большая
часть PHP-шников вот как автор -- то тогда понятно откуда корни нелюбви.

Жесть конечно что люди годами умудряются работать на таком низком уровне
понимания своей профессии. Хотя и задач то довольно много, которые не
требуют ничего большего. Но называться опытным сеньором и давать вредные
советы... я прям рад за HR-ов, что смогли распознать "переодетого
PHP-шника" и приземлять его, открыто говоря чего он на самом деле стоит.

А ещё я заметил разницу между опытными и неопытными разработчиками ПО в
резюме: последние любят указывать всякую неважную мелочь. Типа
конкретных библиотек использованных им в Python программах, типа
"datetime" какого-нибудь. Не framework, а именно мелочи. Умение работать
с Git, определёнными task tracker, desktop environment, если память не
изменяет. Для начинающих это и нормально и нужно: чтобы сразу понимать
сколько всему придётся обучать человека и ждать когда он сможет работать
с инструментарием. Для опытного же... и так должно быть очевидно что он
всем этим или умеет пользоваться или уж перейти с git на hg/bzr/whatever
не будет какой-то существенной по времени проблемой. Ну и лично я ещё
замечаю что если человек написал "bash", то с высочайшей долей
вероятности он или не знает никакого shell, или не знает отличия между
POSIX shell, bash или zsh. Опытные как правило вообще не указывают
"bash", или укажут что-то типа "shell scripting", "POSIX shell/bash/..."
намекая на понимание разницы между shell-ами и возможно подчёркивая
умение пользоваться этой разницей (я наверное бы явно указал в
дополнение к POSIX shell ещё и zsh, хотя я в нём новичком себя считаю).
Как понять это резюме понимающего junior или непонимающего senior? Если
он указывает сущие мелочи и при этом бьёт пяткой в грудь что он team
lead, архитектор и прочее -- то тут просто явная несостыковка, говорящая
обо всём. Я просто видел резюме с которыми мы на работе расставались
из-за их низкой квалификации и это palm face читать их резюме после.
Бывает пишут "умею решать сложные задачи" -- и это рождает ещё больше
вопросов, ибо "сложная" задача, мягко говоря, у всех по разному
представляется в голове. В общем, акценты автора резюме много чего
говорят. Плюс ещё наблюдал, что чем больше по размеру резюме, тем менее
опытный человек -- каждую мизерную мелочь в него вписывает.

А вообще сложно конечно это всё :-(. Если бы так легко было понять кто
перед тобой на самом деле и чего он стоит. Я, как минимум, несколько
правил заимел: не брать людей без высшего образования (если конечно речь
не об осознанном найме студента с его обучением), не связываться с теми,
кто не шпрехает по английски (come on, ну куда в ИТ в без него!?).

5 months agoПознакомился с Хреновым "Поле чудес в стране дураков"
Sergey Matveev [Wed, 27 Dec 2023 10:01:31 +0000 (13:01 +0300)]
Познакомился с Хреновым "Поле чудес в стране дураков"

https://www.metal-archives.com/albums/%D0%A5%D1%80%D0%B5%D0%BD/%D0%9F%D0%BE%D0%BB%D0%B5_%D1%87%D1%83%D0%B4%D0%B5%D1%81_%D0%B2_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B5_%D0%B4%D1%83%D1%80%D0%B0%D0%BA%D0%BE%D0%B2/736604
От знакомых наслышан был про эту группу, типа как лучшее в black metal
что он слышал российском. На недавнем концерте приобрёл альбом. Блин, ну
по звучанию это конечно black-ом отдаёт, но по сути это такой стёбный
метальчик весёлый, типа Изморози. Хрен-метал, как они его кличут. Но
black разнообразен -- просто для меня он всё же типа Immortal, Ihsahn,
Marduk должен быть.

5 months ago"За гранью времён" Лавкрафта
Sergey Matveev [Wed, 27 Dec 2023 08:51:06 +0000 (11:51 +0300)]
"За гранью времён" Лавкрафта

https://ru.wikipedia.org/wiki/%D0%97%D0%B0_%D0%B3%D1%80%D0%B0%D0%BD%D1%8C%D1%8E_%D0%B2%D1%80%D0%B5%D0%BC%D1%91%D0%BD
Попалось это произведение в сборнике аудиокниг. Неимоверно понравилось
произведение! Лавкрафта я безусловно и прежде любил, но в очередной раз
восторгаюсь тому как он пишет. Уже после прочтения увидел что некоторые
считают эту книгу:

    "самым значительным достижением Лавкрафта в художественной
    литературе", ссылаясь на "её удивительный масштаб и ощущение
    космической бесконечности, а также титанический размах
    повествования". "впечатляющую и внушающую трепет"

5 months agoОписание сути баги в ZFS
Sergey Matveev [Tue, 26 Dec 2023 12:53:42 +0000 (15:53 +0300)]
Описание сути баги в ZFS

https://despairlabs.com/blog/posts/2023-12-25-openzfs-data-corruption-bug/
Описание с картинками поясняющими что за серьёзная бага была в ZFS недавно
(fce114a42d69ac04eb4ece1e5ed5b6f5e9515068).

5 months agoА Мещера ничего так
Sergey Matveev [Tue, 26 Dec 2023 11:09:33 +0000 (14:09 +0300)]
А Мещера ничего так

https://www.metal-archives.com/albums/%D0%9C%D0%B5%D1%89%D0%B5%D1%80%D0%B0/%D0%96%D0%B0%D1%82%D0%B2%D0%B0/1144572
Был на дебютном концерте Мещеры (d514b2e5d735d87fda4999367f4360aec273c82e)
в этом году, но помню что не впечатлился. Приобрёл тут их альбом и он
очень даже ничего так. Женский вокал крайне приятен. Музыка конечно
просто некий симфо-метал, но особенно на фоне прям отлично.

5 months agoСнимок горы на Марсе
Sergey Matveev [Tue, 26 Dec 2023 07:44:06 +0000 (10:44 +0300)]
Снимок горы на Марсе

https://www.securitylab.ru/upload/medialibrary/b27/ze8bi66r40j0gt7erc9k5cu2m999nz9d.png
https://www.securitylab.ru/news/544853.php
Похож на морду медведя.

5 months agoВ очередной раз отпраздновал Йоль
Sergey Matveev [Mon, 25 Dec 2023 10:29:30 +0000 (13:29 +0300)]
В очередной раз отпраздновал Йоль

Как и в прошлом (babd98ef385187672019aa5b89a20bf13425a3d5) году сходил в
тот же клуб, от того же организатора. Два зала, ирландские танцы, всё
как и в прошлом году. Но между перерывами ходил в малый зал, где ни разу
не попал на выступление. Но судя по запаху и количеству людей -- там
особо люди и не колбасились.

Открыли мероприятие Рабор (341b91285d94333cd98c6cf991589e3953616379),
ради которых и пошёл. Как и прежде, отлично сыграли, отличное настроение!

Продолжили Spiritual Seasons. Я был знаком с *каждой* скандинавской или
германской песней! Всё благодаря In Extremo. Кроме северной Европы,
играли много и ирландских песен, в которых я уже не в теме. Очень
понравилась группа, не прочь ещё побывать на них ещё!

Далее зажигали Корни Озёр. Играли хорошо, но уж слишком попсово, мало
фолька. Ничего негативного не скажу, залу нравятся, но не моё, нет
интереса.

Далее вышли Green Crow. Написали что стиль "pub folk". Ну да, так и
есть: что-то на фольк-тематику для пабов. Половина мастросских песенок.
Каверы даже на Herr Mannelig (1941cd81d45f0193f3c37562cd8bbc980c029849)
на русском. Весёлые, озорные, но это чисто на поржать. Всё же не такое я
не собирался.

Заканчивали Лёдъ, которые получили премию как лучшая группа на эту
тематику. Эх, не в восторге. Музыка простовата и незатейлива. Ну да,
инструменты аутентичны, но не более. Вот голос вокалиста очень крут:
местами сильно напоминал Das Letzte Einhorn-а из In Extremo. Но для меня
это всё же выглядело как: взяли попсовую группу, переодели в северные
одеяния, выдачи аутентичные древние инструменты, чуть изменили тексты
под старину. Местами прям попса попсой по своей сути. Но голос вокалиста
по нраву, не без этого.

В общем, только первые две группы мне действительно и понравились.
Которые действительно были настоящим (neo)folk-ом. Но посещение стоило
того!

Ну и прикупил четыре CD-альбома. Пара с darkwave-ом по рекомендации
продавца, пара с black metal.

5 months agoНе в теме сериалов
Sergey Matveev [Sat, 23 Dec 2023 16:10:41 +0000 (19:10 +0300)]
Не в теме сериалов

У меня давно табу на сериалы. Знаю что там отличные сценаристы сейчас,
актёры, ведь доставлять контент благодаря высокоскоростному Интернету
стало тривиально, но принципиально не хочу чтобы с низким КПД
использовали моё время. Делают ведь всё, чтобы удержать меня у экрана.
Последним сериалом для меня был Вавилон-Берлин и Шерлок-Холмс с
Кэмбербэтчем, который я только из большого уважения к мнению друга
посмотрел. Получил удовольствие конечно, но завершения в конце так и не
предвидится.

Особняком стоят сериалы типа "Теории большого взрыва"
(4461fc237445990ecec250c075649b15fbda382a) или там Симпсонов, где каждая
серия и короткая и более-менее независима от остальных. Но и этого я
тоже стараюсь остерегаться и не подсаживаться на их крючок. На флешке
для ТБВ мне хватило места только на два сезона -- вот больше ни одного
не собираюсь смотреть.

На работе вчера с коллегами устроили застолье и настольные игры. Много
обсуждали сериалов, но я вообще ни про один ничего не мог ни сказать, ни
добавить, ибо не в теме. И только когда кто-то упомянул "Зелёного
слоника" (ea6c177863ad872d8d65364622a0a8bce002f29d), то я оказался в
теме. Когда продолжили с него обсуждать Пахома, то я снова в теме. Ведь
так покажется что я только трэш смотрю :-)

5 months agoПосмотрел прохождение Harvester
Sergey Matveev [Thu, 21 Dec 2023 19:10:17 +0000 (22:10 +0300)]
Посмотрел прохождение Harvester

https://en.wikipedia.org/wiki/Harvester_(video_game)
https://www.youtube.com/watch?v=AnSCw3kp3_E
А то в ScummVM всё так и не завозят его поддержку. Куча насилия, крови
(такую расчленёнку я видел только на goregrind альбомах), чёрного юмора,
сексуальных сцен, каннибализма и всего такого. А оказывается, это просто
фабрика по производству серийных убийц. Но типа не понятно что реально, а
что нет, напоминая Downfall (870457cf42b00dd34f6290e0f9e8a4b6e28329e0).
Но концовка тут забавная!