Уже не помню откуда эти забавные факты, но целый сборник у меня их.
* When Bruce Schneier observes a quantum particle, it remains in the
same state until he has finished observing it
* Bruce Schneier knows Alice and Bob's shared secret
* Most people use passwords. Some people use passphrases. Bruce Schneier
uses an epic passpoem, detailing the life and works of seven mythical
Norse heroes
* Bruce Schneier's secure handshake is so strong, you won't be able to
exchange keys with anyone else for days
* Bruce Schneier knows the state of schrödinger's cat
* If we built a Dyson sphere around Bruce Schneier and captured all of
his energy for 2 months, without any loss, we could power an ideal
computer running at 3.2 Kelvin to count up to 2^256. This strongly
implies that not only can Bruce Schneier brute-force attack 256-bit
keys, but that he is built of something other than matter and occupies
something other than space
* Bruce Schneier writes his books and essays by generating random
alphanumeric text of an appropriate length and then decrypting it
* Schneier knows if Reiser did it
* Bruce Schneier doesn't need backups because his hard drive knows that
failure is not an option
* Bruce Schneier uses a variation of the sha1 algorithm to drive his
car, which is why he never has collisions
* Bruce Schneier does not share forks when eating with dining
philosophers
* SHA = "Schneier has access" SHA2 = "Schneier has access - and a spare
too"
* There are no composite numbers. Only prime numbers Bruce has broken
into smaller pieces
* Erwin Schrödinger had a mere cat; Bruce Schneier has a Bengal tiger
* Bruce Schneier wrote the random number generator used to generate
thermal noise
* Bruce Schneier distrusts atomic clocks because the timing attacks are
too obvious
* Remember - if you ever lose your password, you can still ask Bruce
Schneier
* When Bruce Schneier plays lotto, he doesn't guess. He determines
* Bruce Schneier uses a different salt for his soup everyday
* Bruce Schneier can hear sounds through vacuum
* Bruce Schneier knows J. Random, and where he lives
* Most people salt their hash. Bruce salt and peppers his
* Bruce Schneier feeds Schrödinger's cat on his back porch. Without
opening the box
* AES stands for "Ain't Encryption to Schneier."
* Bruce Schneier loves women with extra padding
* Bruce Schneier is a proof that one way functions do not exist
* ITAR prevents Bruce Schneier from travelling abroad, even though the
restrictions on the export of strong crypto have been lifted
* cryptographically secure (adj): 1. uninteresting to Bruce Schneier
* Stephen Hawking changed his opinion on the information paradox when he
realized that not even black holes can hide information from Bruce
Schneier
* Bruce Schneier once could not decrypt something. Then he woke up
* God does not play dice with the universe. That's Bruce Schneier's job
* There are no prime numbers, just numbers Bruce Schneier hasn't
bothered to factor yet
* Bruce Schneier can distinguish non-orthogonal quantum states
* Every time Bruce Schneier speaks, a cryptographer dies
* Bruce Schneier doesn't encrypt, he Bruce Schneiers
* Only Bruce Schneier is allowed to wear the "I read the NSA's e-mail"
t-shirt
* When transmitted over any socket, Bruce Schneier's public key causes
libpcap to enter an infinite malloc loop
* Bruce Schneier is always the man in the middle
* When Bruce Schneier observes a quantum particle, it remains in the
same state until he has finished observing it
* Bruce Schneier can smell weak keys
* Bruce Schneier doesn't need to hide data with steganography - data
hides from Bruce Schneier
* Bruce Schneier knows the state of schrödinger's cat
* The Dining Cryptographers always wait until Bruce Schneier has been
served
* Bruce found a secure way to reuse a one-time pad
* Bruce Schneier knows you are reading this
* Bruce Schneier doesn't even know the meaning of the word ciphertext,
because to him, everything is plaintext
* Bruce Schneier's secure handshake is so strong, you won't be able to
exchange keys with anyone else for days
* Bruce Schneier does not share forks when eating with dining philosophers
* Bruce Schneier can force Brownian motion to go in one direction only
* Bruce Schneier can tie cherry stems into Feistel nets with his tongue
* The reason why BSDs are now the most secure OSes is that BSD stands for
"Bruce Schneier Debugged it"
* Bruce Schneier can calculate MD5 hashes in his head. For any length of
data. In constant time. Drunk
* Bruce uses Turing tape as toilet paper
* Bruce Schneier can read and understand Perl programs
* Bruce Schneier's two-factor authentication consists of his left and
right fists
* Bruce Schneier is immune to birthday attacks - no children are born on
his birthday to avoid collisions
* If Bruce Schneier multiplies two primes, the product is prime
* Bruce Schneier takes no prisoners, so there never is a dilemma
* Bruce Schneier is the root of all certificates
* Bruce Schneier knows Chuck Norris' private key
* Regardless of their length, all passwords are vulnerable to a
Bruce-force attack
* At college, Bruce Schneier had his way with so many women that his dorm
room was called "The One-Time Pad."
* Parallel lines meet at Bruce Schneier
* Bruce Schneier has solved the Travelling Salesman problem in O(1) time,
but hasn't published it because he doesn't like salesmen
* Bruce is so influential that a blog link is indistinguishable from a
DDoS attack
* Bruce Schneier puts his pants on in constant time... no matter how many
legs he has
* Bruce Schneier is also an accomplished children's author. He wrote the
famous childhood crypto book, "One Fish, Twofish, Red Fish, Blowfish"
* If Bruce Schneier multiplies two primes, the product is prime
* Bruce Schneier can find Waldo in one chronon
* Bruce Schneier does not bother with challenge-response mechanisms. No such
system dares to challenge him
* Bruce Schneier takes no prisoners, so there never is a dilemma
* Bruce Schneier can make onion routers cry
* When you email Bruce Schneier, you don't need to press "send"
https://www.opennet.ru/opennews/art.shtml?num=57552
Увидев имя Daniel Pocock, то я сразу понял какого рода критика проекта
была. Сайта даже не открывал, но ещё со времён когда я был членом FSFE,
Покока знаю давно. Запомнился просто как неприятный гнусный обсиратель.
Можно даже не читать что он пишет.
https://habr.com/ru/company/otus/blog/678650/
Давайте делать вид что DNSCrypt не знаем, ибо он настолько просто и
эффективен что никакого fun-а и проблем, и сделаем медленную громоздкую
херню типа DNS over TLS, а ещё и DNS over HTTPS. Теперь у нас появляется
challenge! У нас всё стало медленно и надо с чистой совестью решать эту
проблему. Поражает насколько могут люди всё усложнять. Мне страшно
представить сколько кода вообще нужно чтобы с нуля (ну, имея под рукой
работающий TCP/IP стэк) можно было бы пользоваться этой штукой.
Fedora не считает CC0-лицензированный код свободным
https://lwn.net/Articles/902410/
То бишь то, что public domain, не является свободным и допустимым у них
к использованию. Google у себя не разрешает AGPLv3. Apple вообще без
комментариев. Microsoft недавно чудила (d42c6eaa66c7fdb286f05d9e0ac3035976e0068c).
Конечно, конечно, корпорации очень не прочь поддерживать свободное ПО.
В ca7f39f768008dd3bf15cbb2be98d4680da85e0b говорил про жуткую
медленность при записи или удалении данных в ZFS. Но, кроме всего
прочего, у меня при полном выполнении zfs send | zfs recv на
дедуплицированный pool -- было >25% фрагментации. Если send/recv
проделать на простой pool, то 2%! Плюс раздел с PyPI пакетами у
у меня занимал >33G, а без дедупликации 8.5G! В целом у меня на
20-25% больше pool занимал места. Об этом я не припоминаю чтобы
в статьях упоминали. Возможно, опять же, у меня какая-то странная
версия.
Подозреваю что фрагментация и такой колоссальный overhead из-за
постоянного сброса DDT на диск в момент записи.:
https://www.opennet.ru/opennews/art.shtml?num=54928
С GnuPG 2.3.0 по умолчанию не используется 3DES. AES вместо него как
наименьший общий знаменатель. Но если выставить предпочтения для ключа,
то setpref/showpref всё равно будет показывать 3DES и SHA1. Однако на
самом деле, если экспортировать ключи и посмотреть его пакеты
(--list-packets), то можно будет убедиться что никаких 3DES/SHA1 явно не
прописывается.
А я добавлял их чтобы явно понимать что они будут присутствовать в любом
случае. Теперь можно полностью избавиться.
Попробовал пожить с полной дедупликацией на всём pool-е
И через пять часов отказался от этой затеи -- запись на pool с парой
сотен гигабайт реально идёт ооооооочень медленно. Памяти полно, CPU
полно, NVMe, но работает это всё в разы медленнее чем был бы HDD, при
этом top говорит, что в основном CPU простаивает. Для general purpose
системы прям совсем не годится. Возможно в более новых версиях (Open)ZFS
многое прооптимизировано и улучшено, но у себя я так не могу.
Уже давно думаю о том, чтобы начать использовать что-то посовременнее
чем огромные медленные RSA и DSA. Но не хотелось терять красивый ключ с
кучей подписей. Но рано или поздно это всё равно пришлось бы сделать,
так что чего ждать то? Подписан он старым, так что доверие всё равно не
идёт с нуля. И старый я подписал новым.
Однозначно это должен быть на ECC, ибо вопросов с безопасностью к ним до
сих пор не предъявлено, а компактность и скорость крайне приятны.
Разрывался между *448 и *25519, остановившись на последнем. Я не верю
что будет найдена такая атака, что она сможет поставить под угрозу
25519, но не сможет, банально из-за длины, 448. Если будет что-то
угрожающее им, то наверняка сломаны будут одновременно оба. Если всё же
человечество сможет изобрести квантовые компьютеры достаточной мощности
и способностью выполнять алгоритмы для атаки на криптографию, то любой
ECC будет сломан вне зависимости от длины.
Может лучше перебздеть и не экономить на копейках, чай не RSA16k? Всё
усугубляется тем, что *25519 имеет и RFC черновик и реализован и вообще
по умолчанию уже используется в GnuPG. Тогда как для *448 ничего нет,
даже уверенности у Вернера Коха что его детали не поменяются со временем.
Поэтому сделав *448 я почти буду уверен что преобладающее большинство не
сможет его использовать, тогда как с *25519 это уже меньшая проблема.
Также пересмотрел свои предпочтения алгоритмов: сделал AES-256 более
приоритетным чем Twofish. Пускай последний, считается, и имеет немного
более высокий порог безопасности (а Serpent ещё больший), но нет никаких
сомнений в безопасности AES-а. Зато с ним можно получить на порядки
более высокие скорости работы из-за аппаратного ускорения в процессоре.
Убрал все алгоритмы с 192-бит ключом, как и SHA384: если нужна
безопасность, то будет 256-бит ключ, а если скорость, то и 128-бит
хватит за глаза. Плюс убрал все шифры с 64-бит блоком. Не то чтобы я не
доверял их безопасности (хотя надо проверять как GnuPG внутри их
использует и не касается ли его SWEET32), но смысла всё равно в них нет,
ибо даже по скорости выигрыша всё равно не будет.
Обнаружил что WKD для admin@cypherpunks.ru ключа у меня не был рабочим.
Похоже что во время какого-то рефакторинга я полностью потерял
.well-known/openpgpkey директорию.
WKS сервис без проблем отработал на gnupg.net. Причём впервые
использовал ~/.mailcap запись касающуюся WKS:
Отправил запрос: gpg-wks-client --create --send \ 12AD32689C660D426967FD75CB8205632107AD8A stargrave@gnupg.net
Получил ответ. И прямо в Mutt, нажав просмотр MIME вложений, жахнул
Enter на vnd.gnupg.wks и он всё дешифровал и отправил. Дальше я только
получил уведомление об успешном обновлении ключа.
Памятник Исаеву. Улицы и торговые комплексы Королёва
https://ru.wikipedia.org/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:%D0%9F%D0%B0%D0%BC%D1%8F%D1%82%D0%BD%D0%B8%D0%BA_%D0%98%D1%81%D0%B0%D0%B5%D0%B2%D1%83_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D1%8E_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87%D1%83.jpg
https://ru.wikipedia.org/wiki/%D0%98%D1%81%D0%B0%D0%B5%D0%B2,_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87
https://ru.wikipedia.org/wiki/%D0%96%D0%A0%D0%94_%D0%B7%D0%B0%D0%BA%D1%80%D1%8B%D1%82%D0%BE%D0%B3%D0%BE_%D1%86%D0%B8%D0%BA%D0%BB%D0%B0
https://ru.wikipedia.org/wiki/%D0%A2%D0%B8%D1%85%D0%BE%D0%BD%D1%80%D0%B0%D0%B2%D0%BE%D0%B2,_%D0%9C%D0%B8%D1%85%D0%B0%D0%B8%D0%BB_%D0%9A%D0%BB%D0%B0%D0%B2%D0%B4%D0%B8%D0%B5%D0%B2%D0%B8%D1%87
Относительно недавно на проспекте Королёва открыли памятник Исаеву
Алексею Михайловичу. На улице Исаева всю мою жизнь жила бабушка. И я, до
памятника, считал что Исаев был каким-нибудь политическим деятелем, типа
Орджоникидзе, в честь которого назван Московский Авиационный Институт
например, или МГТУ им.Баумана.
Оказалось, что Исаев -- тот кто изобрёл замкнутую схему жидкостного
ракетного двигателя. В институте помню что мне этот тип двигателей
запомнился как самый крутой, с самым высоким КПД, и пониманием почему
вообще все эти двигатели так сложно устроены, если речь пол полную
газификацию обоих компонентов топлива.
Недалеко от меня улица Тихонравова, Михаила Клавдиевича. Только что
узнал что он создатель первого искусственного спутника Земли.
Нравится мне что в нашем городе сплошная космическая тематика в
названиях, даже каких-нибудь торговых центров: Юпитер, Сатурн, Луноход,
Гелиос -- все они на одном только проспекте Космонавтов. Который
кончается жилкомплексом "Парад планет" и "Звёздным" торговым центром.
Оказывается ещё есть ТК Нептун, Солярис, Зодиак. В Гелиосе кстати я
видел людей режущихся в Magic The Gathering.
Ещё есть улицы Гагарина, академика Легостаева (который был генеральным
конструктором в РКК Энергия), Аржакова (был директором КПО "Стрела"),
Богомолова (тоже двигателист), Грабина (конструктор артиллерии),
Мичурина, Павлова, ну и, конечно же, Циолковского. Хотя и больше улиц
названных в честь революционеров и анархистов (Сакко и Ванцетти), даже
Богдана Хмельницкого, но это старая часть города в основном. Ещё всяких
писателей и военных деятелей.
Управляющая компания: поставщик квестов или работодатель садистов
Нужно мне одно дело в управляющей компании было сделать. Два месяца
назад туда пришёл, со кучей документов, написал заявление. Спросили
номер телефона -- я конечно же сказал что личного нет. "А мы не сможем
без него". Но тогда мама была со мной и она в регистратуре дала свой
номер.
Прошло два месяца: по документам вижу что ничего не изменилось. Пошёл
снова к ним. Сказали что выписка из ЕГРН устаревшая, мол нужна не старее
месяца. И вот на кой хер упорно спрашивали номер телефона, типа якобы
для оповещения, если всё равно знали что ничего делать не стали бы, ибо
документы не подходят (якобы) совсем.
Надо идти в МФЦ. ЕГРН выписка платная -- поэтому после МФЦ надо идти в
банк чтобы её оплатить. Только через сутки будет готова выписка, которую
уже надо будет нести в управляющую.
Говорят, что в целом во всём остальном, особенно том, который называется
"цивилизованным", всё гораздо хуже и там даже мечтать не могли бы чтобы
за пару дней можно бы было провернуть подобные операции. В управляющей
очереди не было. В МФЦ, котором за день был два раза, передо мной по
одному человеку только. В банке, самом крупном и центральном в Королёве,
минут пять пришлось подождать всего лишь. Был ещё по параллельному делу
у нотариуса: ожидание минуты три длилось, оплата на месте, всё мигом. А
я помню что всего несколько лет назад о таком нельзя было и мечтать, не
говоря про 90-е или СССР.
Но всё равно обязательно где-нибудь во всём процессе окажется молодая
девочка, из-за которой всё равно тебе придётся мотать туда сюда не один раз.
Увидел на доске объявлений распечатку с фотографией и ФИО нашего мэра. И
всякие там соцсети, email, IM-ы и прочее... вот только кроме названия
соцсетей/IM-ов, их конкретные URL-ы/адреса сделаны в виде QR-кода.
Буквально ни одного человекочитаемого адреса на всём A4 листке. Хотя
места там предостаточно. Надеюсь что это они не со зла, а типа от
спаммеров.
https://www.opennet.ru/opennews/art.shtml?num=57537
Они как будто учатся у Apple делать свой бизнес: сначала сделай человеку
плохо, выпусти отвратительный продукт (ну типа клавиатур Apple с механизмом
бабочкой или там убери функциональные клавиши), а потом верни его назад.
Вот и Microsoft делает плохо (3f62cee4d19daf6f6d114dc8e9f3d8b96b793bae),
но потом как-то быстренько возвращает всё в зад. Как минимум отличная
реклама: про них бы я не слышал, а тут аж уже два раза упомянул.
https://lists.freebsd.org/archives/freebsd-net/2022-July/002182.html
Я сильно не интересовался, но не удивился бы если DPDK/VPP не работали
под FreeBSD. Ан нет, пишут что на практике используют, всё тип-топ, даже
лучше чем под Linux. Точно знал что нет MPLS, в отличии от OpenBSD, но,
действительно, кому критично: можно и самому сделать, ибо не сложный
протокол. Хотя я скорее склоняюсь к тому, что он вообще не нужен как класс.
Каким нехорошим человеком внезапно оказался один тип
Написал я тут одному человеку, на блог которого давно подписан. Он
поделился небольшой информацией о том, какие плагины использует для Vim.
Я спросил знает ли он про shrc/secure опции, которые могут многие
плагины (по своему опыту сужу, ибо я просто не знал о том, что сам Vim
многое умеет/научился делать) заменить. Мол, у него use-case который
действительно не будет покрыт встроенным функционалом? Сразу получил
упрёк зачем я отправил письмо зашифрованным? А как бы, я думаю про себя,
зачем тогда свой PGP ключ публиковать на домашней странице? А на
следующем round-trip-е мне вообще сказали, что я по сути запрашиваю
техподдержку по Vim-у и, мол, не пиши ничего более. Самомнение некоторых
не молодых разработчиков конечно просто зашкаливает. Видимо, любой
вопрос воспринимается как "о, мудрец, поделись опытом!"? Причём и
вопроса то не было как такового, а лишь "вы не смотрели в сторону XXX?
чем он вас не устроил, из любопытства?". Делиться just-for-fun *своим*
опытом и знаниями, без задней меркантильной мысли, не каждому, выходит,
даже понятно зачем.
Vim мир славится тем, что написано для многих вещей десятки плагинов, не
смотря на то, что функционал встроен в Vim из коробки. Просто о нём не
все знают, ибо он не очевиден с первого раза. Ну или появляется он не
сразу, делая плагины не актуальными. Мои 20+ лет за Vim-ом показывают,
что с ростом опыта, количество плагинов, грубо говоря, уменьшается.
Остаются только для совсем специфичных задач. Ну и самописные для своих
собственных предпочтений workflow.
Даже общаясь с людьми из недружественных стран -- таких гнусных ответов
на темы dotfiles никто не додумался выдавать. Печально, что программисты
тоже люди, со всеми отсюда вытекающими неприятностями.
https://torontovka.com/news/russia/2022-07-15/49004.html
Недавно его заменили в Роскосмосе. Только слыша о нём через СМИ, особо
то и не знаешь чем он вообще занимался, кроме как переписывался с Маском
и бросал мемчики. Но я понимаю что нельзя его оценивать по тому, что ты
видишь только доступное публично. Позвонил человеку, узнать мнение,
который давно работает в космической отрасли и общается с замами гендира
Роскосмоса постоянно. В целом он очень положительно отзывался о его
деятельности. Пускай сам Рогозин чисто в технических вопросах не силён,
чай не инженер, не конструктор или технолог, но внутреннюю кухню он
очень круто поменял, в целом ощутимо сократив издержки и, как вот
написали в статье, хорошо интегрировав тьму предприятий между собой.
То есть, он именно как управленец достойно в лучшую сторону многое чего
поменял. А я по ИТ сфере уже длительно понимаю насколько важно
управление, корректно построенные процессы взаимодействия.
https://www.livelib.ru/work/1000614207-kupets-i-volshebnye-vrata-ted-chan
https://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D0%B4_%D0%A7%D0%B0%D0%BD
Дико понравилась повесть! Тема перемещения во времени, причём как в
прошлое, так и будущее, со встречами с самим собой -- раскрывается
как мало где. И кучу пищи для размышлений любопытных рождает. Не
даром она получила премии Небьюла и Хьюго.
https://www.youtube.com/watch?v=qvr-_qWAl14
https://www.youtube.com/watch?v=4zHm_6AQ7CY
https://www.youtube.com/watch?v=ymNFyxvIdaM
https://www.youtube.com/watch?v=aqUpe6QeBTk
https://www.youtube.com/watch?v=XbGs_qK2PQA
Бывает что вообще не пойми с чего, но вспомнится какая-нибудь
музыка/песня и не выходит целый день из головы. Уже второй день
почему-то крутится "Quantum Mechanic" трэк из Beyond Mind's Eye
(f8e17220d2c45effc0f48124a6cc85c5d1913c4f) недавно просмотренного.
Причём это вообще единственный трэк оттуда что запомнился.
А на прошлой неделе в башке вспомнился "It's My Life" Dr.Alban-а,
который у меня только с детством ассоциируется (крутили видимо часто по
СМИ). Оказывается, это нигерийско-шведский проект. Как для меня когда то
было открытием, что Bomfunk MC это финский хип-хоп, Freestyler которого
мне вполне заходил. Искал ссылку на видео в YouTube, открыл, и что мне
бросилось в глаза в нём? То что чувак магнитооптический плеер на
MiniDisc-ах использует.
Что-то тут сплошной рэп пошёл в этих воспоминаниях. И когда мне отец
говорит что, не смотря на всё, даже в рэпе есть что-то нравящееся всем,
даже у какого-нибудь Eminem (где чисто рэп, а не что-то типа Limp Bizkit),
то соглашусь, ибо его Stan вполне себе нравился. Хотя может это из-за
Dido? Но нет, надрывные нотки Eminem до сих пор вспоминаются. Даже тему
песни помню, даже разбирал слова вполне себе.
Заценил другие хиты Eminem, но вообще ничего не цепляет. Только Rap God
впечатляет его отрывком с дичайшей скоростью. Причём у меня в общем то
проблемы с разбором речи людей (одна из причин почему мне на песни в
общем-то насрать -- поэтому мне и грайндкор с growl inhale-ом так
заходит), а тут без проблем.
https://www.schneier.com/blog/archives/2022/07/facebook-is-now-encrypting-links-to-prevent-url-stripping.html
В URL-ах часто и много суют всякой информации для слежки. Например тот
же Хабр их содержит и это одна из причин почему я заменил urlview на
самописную штуку (5166ea2f34f0a653f00a3012b1485d38650ff05a) где можно
куда удобнее отредактировать URL. Есть оказывается автоматизированные
средства для этого в Firefox. Но Facebook недоволен этим и поэтому стал
полностью шифровать свои ссылки. Мне конечно пофиг на Facebook, ещё и до
того, как он стал официально поддерживать призывы к терроризму и
убийству россиян, но насколько же надо себя не уважать чтобы продолжать
пользоваться этим сервисом даже после URL-ов вот таких.
https://ru.wikipedia.org/wiki/%D0%91%D0%B5%D0%B3%D0%B8,_%D0%9B%D0%BE%D0%BB%D0%B0,_%D0%B1%D0%B5%D0%B3%D0%B8
Фильм получил аж 25 наград всяческих. Реально клёвый и один из моих
любимейших. Однако как-то не многие его смотрели среди моих знакомых.
Если мне надо представить чисто немецкое женское лицо, то это всегда
Лола. Что она делает в фильме? Ну... весь фильм, действительно, бежит.
https://old.reddit.com/r/vim/comments/9421bm/whats_your_favourite_equalprg_hack/
http://www.git.stargrave.org/?p=dotfiles.git;a=blob;f=dc/.dc
Пишу тут код, где нужно прикинуть всякие простые вычисления, типа
offset-ов, длин и тому подобного. В самом же коде я делаю наброски и
вычисления, но нужно и что-то посчитать. Не видя никаких статей, я
самостоятельно додумался до вызова калькулятора внешнего:
пишу на отдельной строке: 6 304 13 45 72 36 lSx 18 12+ 5*+p
выделяю ("V") и вызываю калькулятор ":!zc"
Это я всякие размеры полей пакета считал, строчка оставшаяся в истории
редактора. Про ссылку на reddit вспомнил просто потому что недавно,
когда что-то искал по Vim, напоролся на неё. Но из неё узнал что вместо
визуального выделения параграфа, можно делать "!}zc" -- куда короче и не
загрязняет "историю" визуальных выделений. Всё равно, даже в простых
вещах, Vim не перестаёт удивлять маленькими полезностями.
Где ~/.dc содержит настройку точности и пока только пару скриптов:
* загруженный в "S" регистр суммирует всё что есть в стэке.
Это я использую постоянно, без надобности писать кучу "+"
* загруженный в "L" регистр вычисляет натуральный логарифм. А для
преобразования в другие основания применять формулу из школы, типа:
1000lLx 10lLx /p
Вызов zc у меня есть и в tmux по быстрому нажатию prefix+t+c, но когда
чисел много, и их надо брать из кучи других мест, то уже не
попереключаешься между сессиями tmux удобно.
:help language-server-protocol
LSP поддержка, возможность удобного взаимодействия с сервером в Vim9
имеется из коробки. Это конечно только вопрос про IPC, но всё же это
упростит плагины, с которыми всё очень не очень
(c89a9164128730eb856b89e4f99970a6bfb7b7f4).
Оказалось, что Go-шный родной плагин не делает ничего лишнего: проверяет
код ошибки, парсит вывод с ошибками из текущего буфера, заполняя quickfix,
дальше выполняет undo. Использование самого буфера как временное хранилище
мне нравится. Плагин был сделан отлично. Но я его портировал на vim9script.
Но есть другая проблема: если были ошибки, то из-за перетирания всего
буфера, его changelist становится полностью невалидным. Я делаю :Fmt,
получаю ошибку, но уже ни одна команда перемещения по изменениями у меня
не отработает. Можно вызвать команду через system(), получить её вывод и
код возврата, ничего не делая с буфером. Но я не нашёл способа как бы
обновить весь буфер не инвалидировав changelist, тогда как equalprg
вызов оставляет его почти полностью неизменным.
Поэтому в фоне (если вызывать system() или systemlist(), то они
скармливают данные не через pipe, а через временный файл) запускаю
equalprg, агрегирую её строчки, и при плохом коде возврата заполняю
ими quickfix. В противном случае вызываю =-форматирование.
https://unix.stackexchange.com/questions/382303/does-zfs-deduplicates-across-datasets-or-only-inside-a-single-dataset
Внезапно и неожиданно для себя увидел что дедупликация учитывает данные
всего pool-а. Выстапление dedup параметра для dataset-а просто означает
что они не будут избыточно копироваться, если оно уже есть в pool. А я
думал что и данные учитываются только per-dataset. Matthew Ahrens на
Stack Exchange подтверждает это. Теперь логично стало почему dedupratio
смотрится именно у pool-а. Эх... в целом это конечно всё портит: нельзя
красиво ограничить контекст дедупликации, только отдельным pool-ом.
Команда sync не заставляет накопившиеся данные в кэше записываться на
диск. Ну, по крайней мере, в моей версии FreeBSD. Когда смотрел код
zfs-diff (22b9eb13c837497c09b0d17e11cffac8aa655999), то заметил что он
для своей операции создаёт временный эфемерный snapshot (что логично).
А это, в свою очередь, заставляет всё записаться на диск. А то у меня на
моём основном компьютере выставлено что в памяти может накапливаться до
32GB dirty данных, начиная выгружать их при 95% заполнении. Или же
делать транзакцию раз в две минуты.
Вот надо мне проверить наследуется ли dedup параметр о дочерних
dataset-ов. Точнее будет ли дедупликация общей для разных dataset-ов.
Для уверенности надо проверить, но ждать две минуты, пока оно реально
окажется на диске и zpool get dedupratio обновится -- долго. Достаточно
вот вызвать zfs diff, даже на другие dataset-ы, и всё мигом обновится.
Замена режима шифрования в PGP бесполезна и вредна
https://articles.59.ca/doku.php?id=pgpfan:no_new_ae
Видел эту статью в RSS, но решил не комментировать. Но он её продолжает
сувать ещё и в официальные рассылки OpenPGP. Задолбал.
В своей статье он рассматривает нападки на OCFB-MDC и парирует их. Одной
из нападок является факт расчёта MDC до шифрования, что даёт возможность,
за счёт специально подобранных сообщений, атаковать систему. Но так как
там что-то ещё шифруется, именно в OpenPGP, то это не создаёт проблем.
То есть: есть, действительно, не самый безопасный режим шифрования и
аутентификации, но к которому сбоку добавили костыль-подпорку. Этот
режим и так не самый простой, но ещё и с костылём. Нет, я согласен, что
это не означает что нужно бежать сломя голову и менять это всё, ибо оно
на практике is good enough. Но это не значит что оно good.
Где-то, вроде бы Moxie Marlinspike, говорил что даже 3DES+HMAC-MD5,
казалось бы -- архаичные алгоритмы, но всё равно на практике more than
secure enough. Вот и автор демонстрирует аналогичное и призывает
оставаться на архаичных решениях.
У меня на самом деле тоже есть похожая позиция касательно OpenPGP и
например age (4674ad351dcb1f018d2392bc03fb0692e101e229). Но там
призывают полностью выбросить и отказаться от OpenPGP, в чём я сильного
смысла не вижу. А тут автор призывает вообще-превообще ничего не трогать
в OpenPGP. Я вот нарадоваться не могу OCB AEAD-режиму его: он прост,
надёжен и жутко быстр. Да, OpenPGP придётся поддерживать и legacy с
OCFB-MDC какое-то время, но новые реализации будут state of start.
А дальше он критикует новую хотелку в OpenPGP: о том что OpenPGP не
должен выдавать наружу не аутентифицированные (подозрительные) данные.
По моему это очевидно что не может быть чем-то плохим. Но автор считает
что это проблемы конечных приложений. Собственно, в этом то и наезд на
EFAIL: OpenPGP имеет такую особенность что он выдаёт подозрительные
данные. Тот кто его использует -- должен знать о ней и корректно
использовать, а кто не смог, тот заEFAILился. Но желание сделать
формат/решение таким, чтобы убрать подобные неприятные особенности:
разумно. Криптография это про простоту. И OpenPGP с AEAD-ами именно
упрощают, а не подпирают костылями, как это делали прежде.
Резюмирует он это всё тем, что OCFB-MDC безопасен, поэтому ничего не
надо менять. Не спорю -- при правильном использовании он безопасен. Но
предлагают его заменить на нечто более простое, более быстрое и в чём
куда сложнее напортачить так, чтобы возник ещё один EFAIL.
https://habr.com/ru/post/677064/
Давно я не чувствовал себя таким ничего не понимающим. Чем дальше по
статье, тем всё более запутаннее становится -- мозгов не хватает точно
понять о чём речь. Но дьявольски интересно! Сделал вывод: цезиевые часы
уже, мол, прошлый век. Ну а NTP, коммерческие часы и подобная фигня это
прям каменный век.
https://lists.sdaoden.eu/pipermail/s-announce/2022-July/000058.html
Разработчик решил добавить HTTP basic авторизацию для страниц типа
git-репозитория, но в realm запроса явно написан login/пароль, который
увидит человек. Мне кажется идея неплохая и ничего не должна поломать,
ибо весь софт вроде бы умеет делать хотя бы такую авторизацию.
Но, он говорит, что Firefox этот realm не показывает. Я просто офигеваю:
ну как так можно? Firefox уже который год не перестаёт удивлять во что
он превратился.
http://www.git.stargrave.org/?p=glocate.git;a=summary
На фоне медленности поиска на HDD с 17.5M файлов и отсутствия быстрых
средств инкрементального обновления locate БД
(22b9eb13c837497c09b0d17e11cffac8aa655999), написал свою утилиту для
индексации файлов и их обновления. Пока жутко прежутко черновая версия,
но вроде работает как задумывал.
Сначала она пробегает по всей иерархии в текущей директории и составляет
отсортированные списки файлов с размерами и mtime-ом. Это хранит в виде
gob-файла (сериализация родная в Go) сжатого zstd. Для любого вывода
полностью загружает и декомпрессирует его в памяти.
Умеет выводить красивый вывод для человека (замена tree), типа:
и просто вывод списка полных путей. Для всего этого можно указать
какой-то префикс, чтобы только часть иерархии показывалась. Именно это я
и сделал для вывода "тяжёлых" музыкальных альбомов своих.
Собственно, сам поиск утилита не делает: или суй в grep или fzf
какой-нибудь. Загружается этот файл в течении нескольких секунд.
Скорость создания БД -- упирается исключительно в IO у меня. Почти
столько же времени занимает что и просто сделать find по ФС. Вот правда
для 16TB раздела процесс под конец занимал почти 3.5GB. Загруженный в
память, при "штатном" использовании: отнимает 2GB. В общем то совсем не
мало, но я и не заморачивался экономией ресурсов и мне даже и так будет
удовлетворительно. БД для 17.5M файлов у меня заняла 128MB, что по моему
вполне себе терпимо. С ходу пришла мысль о том, что можно не хранить
размеры директорий: сжаться должно лучше, в надежде что это ни капли не
затормозит загрузку файла.
Ну и главная фишка: утилите можно скормить выхлоп zfs diff | sort -r и
все его действия (добавление, удаление, переименования, изменение) будут
применяться к загруженному состоянию, а дальше атомарно обновлено на
диске. Узнать какие изменения были произведены быстрее zfs diff-а всё
равно никто не сможет. zfs diff приятен тем, что его вывод,
отсортированный в обратном направлении, буквально говорит что и как надо
поочерёдно удалить и что обновить касательно mtime-а.
Быстрый locate и инкрементальное обновление его БД
С появлением дополнительного большого раздела
(324ba83a7eba5331bd93e0360fd181657dddf3d0) и переноса на него всяких
всячин, которые время от времени обновляются, выяснилось что суммарно
уже на диске находится более 17.5M файлов и директорий. Просто
выполнение find-а на нём занимает 51мин. Я редко ищу что-то совершенно
не зная где оно примерно может находится, поэтому find натравливался на
поддиректории. Но всё же может понадобится поиск и по всему диску.
51 минута это ни в какие ворота конечно же. Можно сделать дамп вывода
find, использовать locate команду. Но мне не нравится тот факт, что
пересоздание этих state-ов всё равно займёт час времени постоянной
трескотни дисков. Пускай это у меня и так штатно происходило каждую
ночь, но чтение с HDD всё же является для них нагрузкой и износов,
учитывая большое количество random IO. Чай не SSD.
Хочется инкрементального обновления этой БД. Но как понять что у меня
изменилось? mtime на директориях меняется только если изменился, грубо
говоря, список файлов в ней. У вышестоящих директорий уже ничего не
будет затронуто. Штатные средства POSIX-а тут бессильны.
Видел что есть реализации locate следящие за событиями связанными с ФС.
Какой-нибудь kqueue тут тоже не подойдёт, как мне кажется, ибо он может
наблюдать только за одним объектом (одной директорией), без рекурсии.
Придётся создавать колоссальное количество kqueue объектов, что вряд ли
будет приятно ядру.
Но я знаю в общих чертах устройство ZFS, которое само по себе идеально
подходит для того, чтобы быстро понимать где что и как изменилось
относительно какого-то предыдущего состояния. Полез смотреть все данные
связанные с объектом в ZFS через zdb. В нём есть поле "gen", несущее
номер транзакции при которой был создан данный объект. Но нигде нет
информации о текущем txg. Насколько понимаю, эта информация находится не
в dnode-е, а в block pointer-е несущем эту dnode-у, до которого я не
нашёл как бы можно было вменяемо достучаться. Полез в исходный код
zfs-diff команды, а она просто бегает про объектам и сравнивает по сути
эти же самые поля что я видел и в zdb выводе, никакой магии. Вот только
это требует особых привилегий для запуска.
В общем, судя по всему, быстро найти что изменилось на ФС, можно только
через zfs diff, сравнивая snapshot-ы. И проще всего это буквально
вызывать эту команду и парсить её вывод. Готового решения для этого не
видел, так что придётся, видимо, писать самому. Ведь мне ещё и размеры
файлов хотелось бы знать, чтобы на основе этого можно было красивый
tree-like вывод делать.
В ZFS, с какой-то версии, появился special VDEV allocation class:
https://en.wikipedia.org/wiki/ZFS#Special_VDEV_Class
при котором можно метаданные сохранять например на SSD отдельные,
существенно ускоряя с ними работу. Мне бы точно помогло такое. Даже
есть две неиспользуемые SSD. Но у меня достаточно старая FreeBSD где
такого функционала нет. Да и сильного желания всё же тоже: кроме зеркала
из двух HDD, ещё придётся иметь зеркало из двух SSD, которые у меня и
так полудохлые.
https://datatracker.ietf.org/doc/html/rfc8922
Есть вот целый RFC, где упоминаются и DJB-шный CurveCP с MinimaLT
(6e30e1c9e0cf17d773f9238d0d164175c28924fc) и WireGuard.
Summary of Interfaces Exposed by Protocols:
+===========+===+====+=====+==+==+======+==+=====+==+==+======+==+==+
| Protocol |IPK|ALG | EXT |CM|AD| PSKI |IV| SAV |CT|KU| SSKE |KE|ME|
+===========+===+====+=====+==+==+======+==+=====+==+==+======+==+==+
| TLS | x | x | x |x | | x |x | |x |x | x | | |
+-----------+---+----+-----+--+--+------+--+-----+--+--+------+--+--+
| DTLS | x | x | x |x | | x |x | x |x |x | x | |x |
+-----------+---+----+-----+--+--+------+--+-----+--+--+------+--+--+
| ZRTP | x | x | |x | | x |x | |x | | | | |
+-----------+---+----+-----+--+--+------+--+-----+--+--+------+--+--+
| QUIC | x | x | x |x | | x |x | x |x |x | | |x |
+-----------+---+----+-----+--+--+------+--+-----+--+--+------+--+--+
| tcpcrypt | | x | |x |x | x | | |x |x | x | | |
+-----------+---+----+-----+--+--+------+--+-----+--+--+------+--+--+
| MinimaLT | x | x | |x | | x |x | |x |x | x | |x |
+-----------+---+----+-----+--+--+------+--+-----+--+--+------+--+--+
| CurveCP | x | | | | | |x | | | | | |x |
+-----------+---+----+-----+--+--+------+--+-----+--+--+------+--+--+
| IPsec | x | x | | |x | x |x | x |x |x | x |x |x |
+-----------+---+----+-----+--+--+------+--+-----+--+--+------+--+--+
| WireGuard | x | | | | | x |x | x | | | | |x |
+-----------+---+----+-----+--+--+------+--+-----+--+--+------+--+--+
| OpenVPN | x | x | | | | x |x | |x | | x | | |
+-----------+---+----+-----+--+--+------+--+-----+--+--+------+--+--+
IPK : Identities and Private Keys
ALG : Supported Algorithms (Key Exchange, Signatures, and Ciphersuites)
EXT : Extensions
CM : Session Cache Management
AD : Authentication Delegation
PSKI : Pre-Shared Key Import
IV : Identity Validation
SAV : Source Address Validation
CT : Connection Termination
KU : Key Update
SSKE : Shared Secret Key Export
KE : Key Expiration
ME : Mobility Events
https://kolomenskoe.su/park/
Был я там в последний раз наверное лет десять назад. А вообще частенько
с одногруппниками туда захаживали, хоть институт наш находится и на
другом конце Москвы. Тогда ещё не было никаких дорожек с плиткой. И то
ли я был меньше, то ли дорожки визуально так влияют, но сейчас все эти
просторы парка кажутся в разы меньше чем были прежде. Мне казалось что
там пару огромных таких полей, где можно и поваляться и никого в радиусе
сотни метров не будет. Но в этот раз я не забредал ни в яблоневые сады,
ни в лес.
Снова прошёл чемпионат мира по heavy metal вязанию
http://www.hitkiller.com/smotrim-strim-chempionata-mira-po-xevi-metal-vyazaniyu.html
Ну в этом году что-то так себе по моему, в отличии от предыдущих
(9aeaaac840d37696a5cc9a5874fc39b0c302ea75), но любую подобную
движуху яростно одобряю!
https://www.livelib.ru/book/1006964947-ognepad-sbornik-piter-uotts
https://ru.wikipedia.org/wiki/%D0%9B%D0%BE%D0%B6%D0%BD%D0%B0%D1%8F_%D1%81%D0%BB%D0%B5%D0%BF%D0%BE%D1%82%D0%B0_(%D1%80%D0%BE%D0%BC%D0%B0%D0%BD)
https://ru.wikipedia.org/wiki/%D0%AD%D1%85%D0%BE%D0%BF%D1%80%D0%B0%D0%BA%D1%81%D0%B8%D1%8F_(%D1%80%D0%BE%D0%BC%D0%B0%D0%BD)
Это сборник из двух книг: "Ложная слепота" и "Эхопраксия". Подарил его
друг и вот сейчас только осилил, ибо параллельно ещё были незаконченные
книги в очереди. Он же мне прежде дарил "Семиевие" Нила Стивенсона
(ad1e55aca359fd071aea257aaee50fa59d5b3d3e), "Благие знамения"
(26a407a9617967991d03effa9b58d8eb7dfda294) и его вкус мне точно по вкусу!
В целом книги очень понравились, хотя всё же "Ложная слепота" больше
запоминается, возможно потому что она первая шла. Тема того, что можно
не замечать движения производимого во время саккад глаз мне зашла.
Эхопраксия куда более мудрёная и накрученная. Грубо говоря, не успеваю
следить за стремительной сменой мест действия. Но тема вампиров крута
раскрыта и прежде такого про них не встречал.
http://cr.yp.to/tcpip/minimalt-20131031.pdf
Зашифрованный транспортный протокол, с PFS, защитой IP заголовков,
возможностью аутентификации как только сервера, так и клиента.
Напоминает и TLS и IPsec. Но этот протокол делает handshake с PFS-ом
за один roundtrip, быстрее чем TCP. Возможность продолжать работу
даже при смене IP адресов. Возможность защиты от DoS-а вставкой паззлов
требуемых для подключения. А также он может туннелировать несколько
независимых соединений.
Работает это даже с меньшими задержками чем TCP, но не как-то магически,
а за счёт того, что используется directory сервер, с которого получают
короткоживущие эфемерные публичные ключи сервера. Это может быть и DNS
например, к которому всё равно запрос должен пойти для узнавания IP
адреса. Так что, действительно, round-trip штатно будет только один,
если в целом смотреть на всю эту экосистему.
А вообще транспортный host-to-host режим IPsec-а много в чём близок к
этому решению. TLS в статье обосрали конечно полностью. MinimaLT
заменяет собой TCP+IPsec/TLS обязательно интегрируясь с directory
сервером (например DNS-ом), поэтому и получается такой profit и
простота. Как например ZFS заменяет собой RAID+LVM+кучу-всего.
https://habr.com/ru/company/first/blog/674878/
Что меня не удивляет. А вот комментарии типа:
от Discrete Cosine Transform они вроде не отказались, а значит в
любом случае будут потери в наименее значащих битах
разочаровывают. Автор не в курсе что уже даже в JPEG2000 для lossy и
lossless сжатия использовались два совершенно разных wavelet-а? В том
же WebP lossless сжатие на самом деле, по сути, совершенно другой
алгоритм, ничего общего с VP8 не имеющим (насколько помню). Ну и в общем
случае, если сделать точность достаточную чтобы покрыть ошибки
округления, то и в DCT без квантования нет проблем сделать lossless.
Microsoft препятствует распространению свободного ПО
https://www.opennet.ru/opennews/art.shtml?num=57473
В статье правда речь про открытое ПО. Но одна из основополагающих свобод
в свободном ПО это право продавать, получать деньги. То есть, я, как
автор, мог бы загрузить туда свою свободную программу, брать мзду, но
кто-то после первой покупки вправе выложить бесплатно и поэтому Microsoft
запретит мне распространять впредь своё творение? Ничего удивительного,
ведь это же Microsoft. Это всё идёт вразрез с принципами СПО.
Двухфакторная аутентификация PyPI привела к удалению популярного пакета
https://www.opennet.ru/opennews/art.shtml?num=57481
Понимаю автора -- я бы принципиально не стал страдать этой хернёй с
двухфакторной аутентификацией. Я сам в праве решать как мне обеспечивать
безопасность. Кто-то считает что нужно вводить пароль со всякими цифрами
и знаками препинания. Кто-то считает что даже парольные фразы являются
злом и нужно только криптоключи или что-то подобное использовать. А
кто-то вообще считает что SMS-ки достаточно. Тут не может быть всех
удовлетворяющего решения. А если компрометация учётной записи даже с
парольной фразой возможна, чего вроде бы нет -- тогда и OTP и подобные
решения тут не помогли бы. Всё таки есть разница между секретаршей,
априори вешающей свой цифровой шестизначный пароль на монитор и
разработчиком ПО. Понимаю, понимаю, что современные разработчики в массе
своей не далеко ушли от этих секретарш в вопросах безопасности, но это
просто унизительно бы было для нормальных и адекватных чтобы к ним
принимали схожие меры.
Уже давно присматривался к тому, чтобы взять себе большие жёсткие диски.
Но надо брать парочку, а это стоило более 100k₽ ещё до начала СВО. А
сейчас даже пару 18TB дисков для серверов (правда SATA) можно найти за
эту цену новеньких. К сожалению, в наличии был только один диск, так что
жду доставки второго, ибо в зеркало я даже NVMe помещаю в NUC-е. Вроде
бы данных у меня и не сказать чтобы много: никаких 4K фильмов или там
современных тяжеловесных игр, но один только раздел для сборки Android
занимает 360GB, и даже одна его резервная копия это ощутимый вес. Да и
фильмы перестали умещаться -- уже давно выгружены на ленты, что не
позволяет быстренько взять и посмотреть их. Или вот как-то надо было мне
Worms игру достать, DOS-овскую -- вряд ли бы ожидал что такое появится в
планах, но на дисках у меня такое не лежит. Хотя горячий доступ к ним и
не горит, но почему бы и не сделать поудобнее.
https://www.youtube.com/watch?v=T1ZnAwUg9CU
Получившаяся бандура и вообще комната мне жутко напоминают сцены из
фильма Бразилия (82654d517d6b2d97bbc6ccd7fc65ff19cc713dc9), где мне
казалось это такой глупостью что можно ожидать подобное в будущем.
Но лично я бы не отказался от подобной штуки, ибо с точки зрения
теплопереноса всё грамотно и корректно.
В рассылке FreeBSD вижу что тестируют возможность использования BLAKE3 в
качестве checksum в ZFS. Круто, мой выбор бы пал на него. Быстрее всяких
MD5, при этом оставаясь надёжным криптографическим хэшом.
https://www.linux.org.ru/gallery/workplaces/16910635
Очень похоже на мой системник тех времён: насчёт 5.25" дисковода не
уверен что ещё был, но без 3.5" безусловно никуда. Два CD-привода
конечно же: один крутой хороший Teac (и у автора и у меня) для записи, а
дальше какой-нибудь дешёвый для чтения, чтобы первый не изнашивать по
пустякам. Модем точно так же стоял, но на тот момент у меня уже был
USRobotic Courier V.Everything. И тоже, чего у меня там только не было,
тоже включая QNX какой-нибудь.
Сбоку ещё виден Epson принтер -- небось матричный. И у меня аналогично.
Шумные конечно, но лента стоила как пару CD-болванок (почти ничего не
стоила), а хватало её на годы (!) даже при вполне себе активной печати.
https://lenta.ru/news/2022/07/07/funny/
Если в современной музыке я совершенно ни капли не в теме, даже названий
лучших групп десятилетия не слышал (bf94be562853f113de684137e053a04a9db4da9a),
то в фильмах я полностью в теме и очень солидарен с мнениями.
* Борат -- честно говоря, не особо вспоминаю где там моменты чтобы прям
надрываясь можно смеяться, но положительное настроение мне всегда с
ним гарантировано, не раз пересматривал, обожаю его!
* Реальные упыри -- 8b6513e68a8e2f1900a2c2ae3de986f329a26ee6. Мне ОЧЕНЬ
понравились, готов с удовольствием снова пересмотреть. А вот моим
родителям совершенно не зашло, мол даже пожалели потраченного времени.
Думаю что и Борат им тоже бы не понравился
* Типа крутые легавые -- ещё один фильм, который я готов пересматривать
неоднократно. Всё же, действительно, лучший из трилогии "Кровь и
мороженое" (0f456f8e5252351ca8e4028cebebdf4c4605e9ba), хотя "Зомби по
имени Шон" тоже очень и очень мне люб, пересмотрю запросто!
Также в новости упоминаются:
* Офисное пространство -- не слышал
* Похождения императора -- не слышал
* Аэроплан -- ff6d4e82b314d1ce8af0d8e3d70f1b862e6dec4e, ну просто
неплохая комедия, но для меня и ничего выдающегося
* В поисках галактики -- не слышал
* Монти Пайтон: Житие Брайана -- 45218d4a135a57f1cfce4ee55b73469eb37fd062,
без комментариев, ибо это крутейший фильм Монти Пайтона, как и их
"Смысл жизни"
* Клетка для пташек -- не слышал
* Мой кузен Винни -- не слышал
* Улика -- не слышал
* Космические яйца -- не слышал
* Рыбка по имени Ванда -- посмотрел совсем недавно, отличная комедия,
тоже кстати с участниками Монти Пайтона (9408b1f48f8029aecb495aba2649031c5fb22472)
* Самолётом, поездом, машиной -- хм, ведь вроде бы в прошлом году его
смотрел, а в блоге ничего не написал. Просто неплохая добрая комедия,
но и ничего выдающегося
* SuperПерцы -- смотрел в этом году, неплохо, но и недостаточно достойно
было для упоминания в этом блоге
* Победители шоу -- 9148834b07e64d342e98c8e148c4cf982657d66e уже писал
что оно забавное конечно, но не более, ничего выдающегося
Фильмы явно составлены западным зрителем, ибо подборка, кроме первой
троицы, чисто средненькая, кроме Монти Пайтонов.
https://www.opennet.ru/opennews/art.shtml?num=57464
https://www.phoronix.com/scan.php?page=news_item&px=Systemd-Creator-Microsoft
С одной стороны это конечно новость, а с другой вряд ли это кого-либо бы
могло удивить, ибо он многие годы только и занимался тем, что превращал
GNU/Linux экосистему в этот самый Windows, с соответствующей неюзабельностью,
корявостью, небезопасностью и ненадёжностью.
https://tshark.dev/
https://github.com/gcla/termshark
Как-то не многие знают про tshark, в отличии от (сильно) простого
tcpdump и сильно тяжёлого GUI Wireshark. tshark входит в состав
последнего, но работает в консоли.
Wireshark/tshark конечно огромные монстры по размерам, по сравнению с
tcpdump, но зато умеют очень глубоко и детально разбирать пакеты. tshark
очень помогает мне.
И вот ещё познакомился с termshark: TUI программа на Go, создающая
полноэкранный интерфейс для tshark-а. Собирается без проблем. И
действительно, есть случаи когда подобный интерфейс (отдельно детали
пакета, отдельно его шестнадцатеричное содержимое, отдельно списки
пакетов) ощутимо тоже помогает.
Gentle introduction to elliptic-curve cryptography
http://ecchacks.cr.yp.to/
https://media.ccc.de/v/31c3_-_6369_-_en_-_saal_1_-_201412272145_-_ecchacks_-_djb_-_tanja_lange
https://cdn.media.ccc.de/congress/2014/webm-sd/31c3-6369-en-ECCHacks_webm-sd.webm
Помню что в YouTube это видео выступления Бернштейна с Таней было не
тривиально найти. Не замечал что у них есть отдельный ecchacks. сайт
для всего этого.
Одна консоль на устройство в Linux и удаление coredump-ов
https://utcc.utoronto.ca/~cks/space/blog/
https://unix.stackexchange.com/questions/220420/cleaning-up-coredumpctl-list
Человек пишет что Linux поддерживает только одну консоль per device type.
Не перестаю удивляться во что превратилось то, что раньше пыталось быть
Unix-ом. Точно отчётливо помню что в прошлом году игрался с COM-портами
на своём сервере и без проблем имел несколько консолей в нём.
А вчера я искал как бы мне удалить накопившиеся coredump-ы созданные
coredumpctl-ем (763addc2e593a89a365040923567746f948155a9). Я конечно
нашёл где лежат сами дампы, но их удаление приводит к тому, что просто
показывается в списке coredumpctl, что они не доступны, но где-то в
state знание о них сохранилось. И... как говорит stackexchange, такой
возможности нет вообще. Предложения очистить журнал не помогают.
systemd-tmpfiles не помогает. В общем-то, абсолютно ничего не
отрабатывает. Удалил их сделав rm /var/log/journal/*/*.
Это немыслимо во что вся эта экосистема превратилась.
Последние пару лет меня конкретно достало то, что почему-то постоянно
развязывается узел на разной обуви. Показал мне тут один человек чего
я, как оказалось всю жизнь, делал не правильно. Ровно одно движение
при завязывании было не то. И вот уже который раз завязываю правильно
и никакого намёка что оно может развязаться. Всю жизнь завязывал коряво!
http://stolyarov.info/faq.html
Обратили мне тут внимание что у Столярова есть FAQ с ответами на тему JS.
На основании вышесказанного я заявляю, что все веб-разработчики,
создающие такие сайты, которые невозможно просматривать с
отключённым в браузере интерпретатором JS и/или MM flash и других
подобных примочек - безответственные ублюдки, ни в грош не ставящие
интересы своих пользователей, и это моё окончательное слово по
данному вопросу.
Я вот тут подумываю насчёт расширения объёма памяти в моей основной
рабочей машине, при этом единственное, что тут тормозит - это браузер.
в умелых руках JS оказаться не может, потому что умелые руки об него
пачкаться не станут. Человек, мало-мальски понимающий, что он
делает, никогда, ни при каких условиях не станет применять JS на
сайте. Иное дело, что в современных условиях грамотные люди в
веб-разработке не задерживаются.
Смешно, да. Ну давайте посмотрим, как реально обстоят дела с этой
вашей юзабилити. Лично я обычно просто не хожу на сайты, которые не
работают без JS, то есть вообще не хожу — точно так же, как не хожу,
например, в такие магазины, где продавцы хамят и матерят
покупателей. Но, увы, есть парочка сайтов (буквально: два), которые
мне использовать приходится, несмотря на наличие там JS и
невозможности работы без него. Так вот, чтобы зайти на такой сайт,
мне приходится на рабочей машине держать специально для этого пустой
аккаунт, на котором периодически сносится всё, что там успел
нагвоздить браузер; перед заходом на JS-нутые сайты я делаю ssh -X
bolvan@localhost и уже там запускаю браузер. Это вы называете
"повышением юзабилити"?!
IDE не имеют права на существование вообще, то есть изначально. Что
касается идеи IDE как браузерного приложения, то автора этой идеи
следовало бы, как мне кажется, изолировать от общества. Этот псих
опасен для окружающих.
Я знаю только одно применение для браузерного плеера — сделать так,
чтобы скачанная пользователем музыка при этом не сохранялась
локально на компьютере пользователя. При этом неискушенные
пользователи уверены, что они вообще ничего не скачали (реально, сам
таких видел). Тех, кто это всё делает, следует подвергнуть смертной
казни в особо продвинутой форме — например, путём утопления в бочке
с дерьмом. Публичного.
>код на JS полностью абстрагирован от реального железа и не зависит
от среды выполнения
То же самое можно сказать про любой интерпретируемый язык, а равно и
про язык, который компилируется в байткод. И это никоим образом не
повод иметь в браузере интерпретатор любого алгоритмически полного
языка, неважно, JS это или что-то ещё. Кстати, от среды выполнения
JS очень даже зависит — если статический HTML ещё более-менее
реально заставить выглядеть одинаково в разных браузерах, то
заставить JS вести себя всегда одинаково — невозможно в принципе,
это превышает возможности человека.
>Какие возможны альтернативы JavaScript в плане снижения нагрузки на
сервер со стороны клиентов и экономии трафика?
Вопрос был бы корректен, если бы «решение» в виде JavaScript можно
было бы считать хоть сколько-нибудь допустимым; но это не так,
применение JS на сайтах по сути своей преступно. С тем же успехом
подсудимый, которого отправляют в тюрьму за серию квартирных краж и
разбойных нападений, мог бы требовать от судей указать ему
«альтернативу кражам в плане быстрого получения большого количества
денег, что особенно актуально, когда не хочется работать».
https://stackoverflow.com/questions/3174850/what-is-the-correct-type-for-array-indexes-in-c
https://sergvasiliev.medium.com/about-size-t-and-ptrdiff-t-a1654234d842
Вот размеры и длины я привык (и считаю корректным) указывать в size_t.
Но если хочется итерироваться по массиву, указывать элемент в нём, то
какой тип применять для переменной содержащей индекс? size_t плох тем,
что он беззнаковый, так что при логической ошибке или переполнении его
значение может стать огромным из-за переполнения и оно уйдёт в
бесконечный цикл например. Подобное отлаживать не очень приятно. А я уже
не раз напарывался на подобную ошибку.
Хочется использовать число со знаком. int может быть слишком маленьким.
ssize_t определён только в POSIX и гарантирует только [-1, SSIZE_MAX].
Куча людей указывается на ptrdiff_t. Но и он может, очевидно, быть
меньше size_t.
Посмотрел код всяких других проектов серьёзных, типа Redis. Они все
size_t используют. И пока я тоже остаюсь на нём, не забывая про косяки
неприятные во время разработки.
Перед Vim 9.0 я использовал какую-то его версию из репозитория, не
сильно более старую. Но только сейчас заметил изменение поведения:
если я сделаю :vsplit и в одной половинке буду вставлять/удалять всякие
строки находящиеся выше/ниже видимой области того что в другой половинке
окна, то ничего в этой второй половинке не будет двигаться. Прежде
изменение количества строк напрямую сразу же двигало текст в других
split-ах, из-за чего приходилось временами туда возвращаться и
подкручивать видимость. Сейчас же изменения в неактивном split-е будут
видны только если правки напрямую затрагивают видимую область. Если
переключиться в прежде неактивный split, то обновится только текущий
номер строки, но местоположение останется прежним. Очень удобно и очень
приятно что подобное сделали по умолчанию!
Мне кажется, что это сложный и отчасти тупиковый путь. В таком
контексте Lisp (и конкретно ELisp) в Emacs выглядит как изначально
более рациональное решение. Смотрел ли ты в сторону neovim с его упором
на поддержку Lua?
И вот мои мысли на этот счёт:
Меня тоже посещали аналогичные мысли, когда я впервые услышал про то,
что в Vim пилят новый язык. Поддержка других языков, кроме vimscript,
была давным давно: видел/использовал плагины на Perl и Python. Но их
использование было связано в первую очередь, насколько мне запомнилось,
банально отсутствием асинхронных задач в Vim. С их появлением в Vim8, я
больше плагинов не на vimscript уже не встречал. Я писал когда-то их на
Python, так как он был и основным рабочим языком у меня, но позже как-то
само собой всё переписалось на vimscript.
Мне кажется что неявная killer-feature программирования на vimscript это
то, что ты постоянно находится в экосистеме редактора. У тебя идёт не
кусок кода на Perl/Python/Lua/Tcl/whatever, а потом внезапный вызов
vim.run("kj$R$3lrk4r") абракадабры интерактивного ввода, а ты пишешь на
языке в котором прямо в его скрипте можно написать "normal gg:%d"
какой-нибудь. Когда пишешь "mark '", "@/ = 'pattern'", "execute smth",
то все его задействованные переменные, метки и регистры являются родными
объектами редактора. Вместо программирования на чём-то в интерпретаторе,
делая API вызовы к редактору, ты находишься в контексте редактора
постоянно. Всё это позволяет прямо мгновенно на коленке взять и писать
себе скрипт для какой-нибудь автоматизации. Не полноценную программу на
настоящем большом языке, делая API вызовы к редактору, а именно писать
внутри редактора. Не знаю как корректнее выразиться, но это всё прям на
ощущениях.
И поэтому у меня давным давно не возникает применять что-то кроме
vimscript для скриптования Vim-а. Vimscript пускай и странен, и некрасив
и уродлив местами (всякие странные переносы, "call"-ы например), но по
возможностям он вполне себе предоставляет кучу всего (словари, списки,
лямбды, даже методы -- не существенно отличаясь от всяких более
привычных Python/JavaScript/Lua). Для знакомых с Py/JS -- в vimscript
очень небольшой порог входа и куда более тесная интеграция с редактором.
Я думаю поэтому и не приживаются его плагины на сторонних языках,
особенно после появления асинхронных задач в Vim8. Я писал на Python,
думал что это точно будет удобнее, ведь я и вне редактора его
использовал, но положительных воспоминаний у меня не осталось, хотя по
сути там точно такие же "normal ..." вызовы можно было делать например,
но не чувствовался profit от неиспользования vimscript-а.
Касательно Neovim: я пробовал его использовать с разницей в года. Каждый
раз у него было другое поведение, какая-то несовместимость. Это выбивает
из колеи и раздражает -- ведь ожидал я прозрачной незаметной смены
редактора.
Что он мне дал бы дополнительного, как пользователю редактора? Я знаю
только про встроенный LSP клиент. В Vim-е это был бы вопрос одного
плагина. More sane defaults -- слишком субъективно, да и какая разница
будет ли на пару строк больше/меньше в .vimrc? Всё равно без
персонифицированного .vimrc не обойтись.
То есть, Neovim должен иметь какую-то крутую killer-feature чтобы
переход на него (прозрачно у меня не вышло ни разу -- он не полностью
обратно совместим) стоил того. LSP не является такой feature. Может быть
Lua как альтернатива vimscript? Просто Lua можно было и прежде
использовать в Vim. Причины того, что сторонние языки не приживаются я
описал (как мне они видятся). В Neovim это мог бы быть luajit с
увеличенной производительностью. Пока это единственная возможная
killer-feature.
Которая теперь полностью нивелируется vim9script. В случае с Neovim мне
надо бы было полностью на другом языке переписать свои плагины. Это не
малая работа. И изучать этот новый язык Lua (лично я на нём год писал,
мне он нравится, но многие никогда с ним не пересекались). В случае с
vim9script, "конвертация" vimscript в vim9script -- небольшая работа.
Этот новый язык не отличается кардинально от старого. Плюс ещё более
дружелюбен к тем, кто писал на Py/Lua/JS/whatever. Переделать vimscript
на vim9script -- существенно менее трудозатратно, при этом, как заверяет
Брэм (ну и другие люди в рассылке), можешь получить ускорение на
порядки.
В итоге: трудозатрат на порядки меньше, профит в производительности
получишь. И опять у Neovim не выходит ни одной killer-feature стоящей
рассмотрению перехода на него. Ну и я не забуду что Vim собирался на
старом ноутбуке за пару минут, а Neovim -- пару часов, что не очень
приятно (хотя я и понимаю что не каждый день этим занимаешься). Меня не
очень привлекают решения разработчиков Neovim: если Lua это вполне себе
хорошее решение (в вакууме для произвольного редактора), то MessagePack
совершенно не ясен, как будто это какой-то highload проект.
От vimscript в Neovim не избавиться: так как написаны тысячи плагинов на
нём. Смысла переписывать хотя бы часто используемые (surround, fugitive
какие-нибудь) -- никто не нашёл. Сейчас их переделать под vim9script и
они ещё и быстрее станут. А как язык, vim9script ещё ближе стал к
привычным современным Py/JS.
Не исключено что я просто так сильно привык к vimscript что мне он
заходит и мне с ним легко. Но вот Neovim сколько не существует, но не
смог заинтересовать ничем, что не требовало бы приличных трудозатрат без
ясного понимания нафига это надо. А Брэм (и команда) придумали нечто,
благодаря чему можно без существенных затрат всё ещё сделать красивее и
удобнее (с точки зрения программирования) и без тормозов. Почти бесплатно.
Помнится что у Neovim изначально была killer-feature в виде асинхронных
задач. На нём можно было писать любую асинхронщину на Lua. Но Брэм
сделал асинхронные задачи в Vim8, которые оказались гораздо удобнее для
использования и очень простые.
Vim на протяжении всей своей истории демонстрировал что Брэму нужен
пинок под зад. Регулярно nvi что-то вкусное изобретал, становился неким
конкурентном с killer-feature, но в Vim впиливали похожу штуку которая
была зачастую лучше/проще/яснее. Огромная ценность Neovim в том, что он
был пинком для создания асинхронных задач в Vim8, ещё какого-то
функционала (типа balloon-ов и popup-ов, lambda, packages, если не
придумываю). И вот он был пинком для создания очень простой (с точки
зрения порога входа) vim9script, который, такие как я, сразу же рвутся
попробовать и быть им довольным.
Колоссальная ценность Vim-а же ещё в его плагинах. Если потеряется с
ними совместимость, то задаёшься вопросом "а нафига мне это тогда
надо?". Редактор в котором не будет аналога surround/repeat/abolish мне
не нужно. Писать это с нуля? Даже не могу представить какая killer
feature в редакторе могла бы появится чтобы заставила меня пойти на это.
А Брэм даёт возможность развивать и улучшать свой experience новыми
фичами, не ломая уже рабочие мощнейшие отлаженные инструменты (плагины).
Neovim говорит ещё о более чистом API, возможности использования разных
GUI, встраивания в броузеры и IDE. Возможно разрабатывать сам Neovim
существенно удобнее и проще. Возможно (легко поверю!) Lua внутри него
существенно помогает. Но конечного profit-а для меня, как пользователя
это не даёт никакого. Был бы разработчиком инструмента (редактора), то
наверное бы это играло роль. А как конечный пользователь меня не
интересует насколько там красивее и проще внутри Neovim-а всё, если я
при этом не вижу чтобы на всём этом появлялись полезные мне killer
feature. Это как бы внутренняя кухня, меня не затрагивающая.
У друга, с которым обменивались многими мегабайтами электронной почты
лет десять, но ни разу, кроме одного случая в метро, не пересекавшись
в живую. Тут уж в электронном формате никак не выйдет такое событие.
Жутко за него рад, что нашёл себе замечательную спутницу по жизни!
"Выгулял" когда-то подаренные клёвые серебряные запонки в виде черепов.
Так и не возникало случаев чтобы их где-то на празднестве применить.
Друг сказал, если память не изменяет, что если бы у меня туфли немного
другого стиля были и мне шляпу, то выглядел бы как мексиканский наркобарон.
Причём у них двигающаяся челюсть, которая при движениях постукивает,
создавая клацающие звуки.
Пообщался со студентом 3-го курса ВШЭ, учащегося на программиста. Он в
раздумьях что может нафиг ему этот институт и стоит его бросить, ведь
главное же чего сам освоил. И уже с заядлой регулярностью я, выглядя
наверное как старпёр, советую и повторяю что (хороший) институт это
важнейшая штука, пускай даже ты там будешь и не совсем по специальности
учиться. Вокруг меня постоянно половина, а то и больше, программистов не
училась по специальности. Студента конечно можно взять на работу, на
свой страх, риск и понимание что его придётся обучать. Но если в должном
возрасте человек без вышки, то вряд ли я бы стал смотреть его резюме в
принципе. Исключения бывают, но вероятность низка -- не стоит риска. Ну
и без знания английского никуда в ИТ.
Пока писал про Web 2.0 (2c74dfed17ed87b9a2600d6f725a976b07fbfde5), то
как раз вчера посетил меня вопрос: а почему архив почтовых рассылок не
делать доступным через NNTP? Я никогда в жизни не пользовался этой
технологией (news-ами), поэтому этот вопрос бредовый, но, насколько
знаю, это протокол для online доступа к mail-like сообщениям.
Я несколько раз вводил URL с news/nntp схемой в lynx и он мне вполне
себе открывал и показывал какие-то сообщения. А HTML-сгенерированный
архив это просто rendered выхлоп получается. Плюс NNTP точно
поддерживается и некоторыми броузерами (Lynx например) и почтовыми
клиентами (Thunderbird точно умел). Если домашние странички,
документация к проектам это всё же вполне себе ложится нормально в WWW,
то вот почтовые архивы уже нет -- задевает моё чувство прекрасного.
Вспомнил что был же Gmake, который как-раз агрегировал рассылки и
хвалился доступом к ним через NNTP. Зашёл на их сайт и вижу что они
оставили только NNTP-интерфейс. Делаю "lynx news.gmane.io" (помню что
lynx, видя "news.", сразу попробует соответствующий протокол) и вижу
список рассылок (не знаю как это в терминах news-ов называется
корректно), заходя в которые видны сообщения. То что надо!
Надо будет попробовать всё это. И попробовать найти NNTP↔WWW gateway
какой-нибудь: так можно бы было оставить и fallback для людей не имущих
соответствующее ПО.
https://accordion-druid.tumblr.com/post/685175656750972928/dont-lie-to-me-about-web-20
Автор пишет, что Web 2.0 (W2) называют нечто совершенно к нему не
относящееся. Собственно, social media это не W2, а то что его убило. А я
в 4fda8b5403fa562d8dc9a6944f20fc4dce1392ee писал про W2 как-раз то, что
тут и критикуется. Говорят, что W2 это: блоги с комментариями, wiki,
форумы, bookmark sharing, RSS. В общем, всё это наверное точно не
относилось и не существовало в середине 90-х по сути, так что,
действительно это точно не W1. Но Wikipedia говорит, что social media
это приложения W2 -- видимо именно поэтому я приравнивал эти два
понятия, точно так же, как приравнивают WWW к Интернету. В общем, тут я
тоже плаваю в определениях. Да и чёрт с этим WWW и его descendants :-)
http://www.git.stargrave.org/?p=dotfiles.git;a=commitdiff;h=68ef15d382d0b6f10c6ad30a7370db57ed8318e9
С самого начала знакомства с Go я использовал их плагин для Vim для
вызова :Fmt команды форматирования кода, которую никогда не трогал, ибо
работает -- не трожь. Для Си кода я использовал set equalprg опцию, и
команду "command! -buffer Fmt normal mtgg=G'tz.", которая ставит метку,
переходит в начало файла, вызывает equal программу, возвращается на
метку. Ведь то же самое можно было бы применить и к Go коду, ведь
goimports и go fmt умеют работать в качестве фильтра текста. Родной Vim
плагин умеет заполнять quickfix, что мне не нужно при форматировании.
Поэтому вместо тьмы строчек можно бы обойтись двумя.
Но в его родном плагине увидел красивый хак с тем, чтобы не портить
метки и чтобы не скакал экран при вызове :Fmt: они создают view
(winsaveview()) и просто его восстанавливают в конце (winrestview()).
Просто, красиво и эффективно. :Fmt команда у меня теперь одинакова и для
Си и для Go, только equalprg у них отличается.
https://giveupgithub.org/
https://sfconservancy.org/blog/2022/jun/30/give-up-github-launch/
https://dianne.skoll.ca/pipermail/remind-fans/2022/004157.html
Вчера увидел большую бучу против GitHub-а. Проекты, типа remind, уже
начинают переезжать на что-то другое.
Я не особо понимаю смысл этой акции. Какие есть причины которые бы не
были известны прежде? Было какое-то внезапное событие с GitHub-ом?
Увидел только два наезда основных:
* их AI-trained бот который будет тырить код из проектов, возможно (а
так и будет, конечно же) нарушая copyright-ы
* то, что сам GitHub сервер полностью закрыт
Как уезд с него помешает Microsoft собирать код с любого другого
Git-репозитория? Никак. Сейчас она удобно все данные для своего AI
собирает из одного места. Что мешает ей сканировать пакеты/порты чтобы
узнавать адреса репозиториев других проектов? Одну только разницу вижу:
сейчас Microsoft может "смотреть" и в приватные проекты.
Ну а то, что GitHub использует закрытое ПО: как мешает его использовать
то? Если человеку нужен просто бесплатный Git-хостинг, то открытие кода
сервера не поможет ему никоим образом, если он всё равно будет требовать
JavaScript загрузки. Если человеку надо запустить свой собственный
GitHub, то этих решений полно и так.
Если человек зависит от функционала wiki, ticket tracker-а и подобного,
то, мне казалось, история с SourceForge показала что в любой момент всё
может закончится. Я помню времена когда SF.net был де-факто хостингом
для софта (все мои проекты там были), а потом за считанные месяцы/годы
все оттуда свалили, когда те начали всякую дичь творить. И так понятно
на что ты шёл и что всё это возможно временно только удовлетворяет.
А разработчики кто не против использовать Copilot для "кражи" кода: так
и останутся на GitHub, которому ничто не мешает тащить код из публичных
репозиториев.
Я то против GitHub потому что он не работает без JavaScript и потому что
он банально ещё и блокирует всяких россиян и представителей других
неугодных США стран.
http://www.hitkiller.com/edinstvennyj-dez-metal-xor-v-mire-porval-konkurs-americas-got-talent.html
Пару человек одновременно я ещё слышал, но чтобы целый хор -- ещё нет.
Один раз услышать прикольно.
Sergey Matveev [Thu, 30 Jun 2022 16:02:49 +0000 (19:02 +0300)]
Начал познавать vim9script
https://www.vim.org/vim90.php
http://www.git.stargrave.org/?p=dotfiles.git;a=commitdiff;h=9cbfa59ca421fac5422cbf0c2c52f48f8f2adb4c
Вышел Vim 9.0, в котором основное изменение это появление vim9script
языка. Перевёл почти все свои скрипты для Vim-а на него.
Думал что будет сложнее или бесполезнее. Но нет -- vim9script куда
приятнее и удобнее в использовании, уже действительно походя на любой
современный язык в плане синтаксиса и странностей. Не нужны больше call,
комментарии не в виде ", по умолчанию не глобальная видимость переменных
и функций, типизированные переменные, нет возможной путаницы с "->" и
"." при конкатенации строк, не нужны let-ы. Кроме проверки на типы,
вполне себе работающей, он ещё и к стилю даже будет придираться. Сильно
меньше нужны переносы длинных строк -- можно списки или словари писать
удобно, да ещё и опускать кавычки у ключей. Есть Python-like возможность
опциональных kwarg-ов. Индекс в строке указывает не на байт, а на
символ. Появилась возможность делать import сторонних скриптов и
используя его прямо как в Go.
Мои скрипты не ресурсоёмки, поэтому профита от компиляции я не увижу.
Плагины тоже надо будет ждать когда их перепишут на vim9script (если и
будут). Но в целом новый язык очень и очень мне приятен. И перевести
обычный vimscript на новый не сложно.
Sergey Matveev [Tue, 28 Jun 2022 11:31:50 +0000 (14:31 +0300)]
Git fsmonitor
https://github.blog/2022-06-27-highlights-from-git-2-37/
Дожили... фича в git-е, не самая бесполезная, поддерживается только в
Windows и macOS. Чего-чего, а я то уж мог бы ожидать поддержки только
GNU/Linux-а например.
Sergey Matveev [Tue, 28 Jun 2022 10:31:47 +0000 (13:31 +0300)]
Сайт посвящённый Elligator-у
https://elligator.org/
Важный алгоритм превращения точки публичного ключа в псевдослучайную
последовательность (с какой-то вероятностью). Он например использовался
в GoVPN для создания zero-knowledge аутентификации.
Sergey Matveev [Tue, 28 Jun 2022 08:13:08 +0000 (11:13 +0300)]
Как мне доверять этому репозиторию?
https://anarc.at/blog/2020-03-17-git-gpg-verification/
https://lwn.net/SubscriberLink/898522/9cf50ee3f96f90c1/
https://stackoverflow.com/questions/23584990/what-data-is-being-signed-when-you-git-commit-gpg-sign-key-id
https://github.com/cgwalters/git-evtag
В Git до сих пор используется SHA1, что в общем то не очень хорошо чтобы
можно было спокойно доверять этому хэшу.
Поддержка SHA256 в Git пока плачевна, никакого interoperability между
репозиториями не будет. Хотя можно уже создавать репозиторий с SHA256.
Подписывать каждый коммит: по моему безумная трата ресурсов. Да и,
собственно, подписывает он всё равно те же самые SHA1 хэши.
Какая-то git-evtag утилита, про которую впервые услышал, подписывает уже
SHA512 хэши всего дерева. Плюс ряд других предложений имеется, но про
которые не слышал чтобы использовались.
Задался вопросом: а что есть штатного и стандартного чтобы можно было в
иерархии пройти по всем файлам и посчитать/проверить их хэши? Вообще
конечно и банальным shell-скриптом не сложно, но не очень эффективно.
Вспомнил про mtree и выглядит как то что надо:
Sergey Matveev [Tue, 28 Jun 2022 07:56:29 +0000 (10:56 +0300)]
Совет по использованию криптографических хэшей в man FreeBSD
https://www.unix.com/man-page/freebsd/1/md5/
https://www.freebsd.org/cgi/man.cgi?query=md5&apropos=0&sektion=0&format=ascii
В старой версии man-а по командам расчёта хэшей даётся рекомендация по SHA256:
It is recommended that all new applications use SHA-256 instead of
one of the other hash functions.
Но в новой уже:
It is recommended that all new applications use SHA-512 or SKEIN-512
instead of one of the other hash functions.
Sergey Matveev [Mon, 27 Jun 2022 19:19:17 +0000 (22:19 +0300)]
Продолжение подборки книжек Созвездия льва
https://fantlab.ru/work57659
https://fantlab.ru/work63361
https://ru.wikipedia.org/wiki/%D0%9F%D0%B5%D1%80%D0%B5%D0%B6%D0%B8%D0%B2%D1%88%D0%B8%D0%B9_%D1%87%D0%B5%D0%BB%D0%BE%D0%B2%D0%B5%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%BE
https://fantlab.ru/work2106
https://fantlab.ru/work54856
https://fantlab.ru/work209483
https://fantlab.ru/work78809
А серия жутиков (e4fc3fd701d22e9e0731b19e62b898a4aa961d39) не кончается:
* "Армагеддон" Фредерика Брауна -- уже читал этот рассказ когда-то. Про
то, как маленький мальчик устроил Армагеддон, заправив свой водяной
пистолет святой водой в церкви, ну и выстрелив куда не стоило
* "Купол" Фредерика Брауна -- тоже уже читал. Про то, как мужик
испугался того, что вот-вот начнётся ядерная война и спрятался на 30
лет за купол, ничего не пропускающий извне и во вне. Просил одну
девушку выйти за него замуж, но она посчитала что лучше быть со всеми.
Отключил купол через 30 лет, а оказывается никакой войны то и не было,
а он был просто чудиком, профукавшим в одиночестве всё это время
* "Переживший человечество" Говарда Лавкрафта и Роберта Барлоу -- больше
всего запомнились мрачные описания Лавкрафта. Солнце увеличилось, всё
высохло, полный упадок и кабздец, все люди вымирают, почти никого не
осталось, переехали на полюса, а последний человек просто срывается и
падает в колодец с мизерным количеством воды в ведре
* "Ведро воздуха" Фрица Лейбера -- про то, как чёрная звезда пронеслась
мимо солнечной системы, прихватив за собой Землю, которая перестала
получать свет и даже атмосфера просто замёрзла, превратившись в
слоёный лёд. Семья сделала себе из одеял и фольги некое подобие дома,
где поддерживает огонь, выходя в скафандрах наружу чтобы в ведро
загрузить кристаллизированного кислорода, который огнём растапливается
и поддерживает горение и дыхание
* "Девушки и Наджент Миллер" Роберта Шекли -- про то, как (наверное
снова Китай) возникла ядерная война, почти никого в живых не осталось,
лишь считанные единицы разбросанные по миру. Миллер шёл шёл и
наткнулся на группу из пяти 20-25 летних симпатичных девиц, с не очень
симпатичной учительницей, объясняющей что объединять усилия они не
будут, и вообще мужчины устроили всё это безобразие и войны. Прогнали
его камнями. От обиды, несуразной нелогичности и желания (таких девиц
то!) он взял нож с палкой и:
... на Земле исчез последний цивилизованный человек. Вместе с ним
погибли: последний пацифист, последний отказник по этическим
убеждениям, последний ценитель произведений искусства, последний
библиофил. На месте этих достойных восхищения фигур, стоял Миллер
в ножом в руке, диким взглядом...
* "Закованный разум" Майкла Коуни -- про то, как в Китае поднялась
какая-то буча, он напал на Индию, её стала защищать Европа, и началась
третья мировая, продлившаяся всего пять минут. Создали fallout shelter
и жили под землёй из-за радиации. А спустя сотню лет выяснилось что
никто никаких замеров её уровня не делал, мол и так правителям было
хорошо. Воздух считали чрезвычайно ядовитым и боялись любого его
проникновения в эти убежища
* "Часовые Феникса" Эрика Брауна -- про то, как очередная ядерная война
(не помню, но наверное опять из-за Китая) и глобальное потепление
высушили моря и океаны и главные герои колесили на грузовике с буровой
установкой для добычи хоть какого-то количества еды. Выяснилось что
есть место, где готовили космический корабль с переселенцами к полёту,
но не успели запустить -- началась война. А в корабле то том должны
быть тысячи замороженных людей, которыми можно было бы полакомиться,
ням-ням...
* "Звуки речи" Октавии Батлер -- про то, как какая-то неведомая болезнь
убила кучу народу, а у выживших теряется речь, а то и возможность
понимать чужую речь, максимум только выдавая нечленораздельные звуки.
Кто-то разучивается читать и забывает что прежде в книгах читал.
Полная анархия, почти все при оружии. Но некоторые ещё могут говорить,
или хотя бы читать -- вот только из-за зависти и ненависти их грохнут,
поэтому это тщательно скрывают
Sergey Matveev [Mon, 27 Jun 2022 18:43:17 +0000 (21:43 +0300)]
Coredump в современном GNU/Linux
У меня падает программа под Ubuntu (работает она только под GNU/Linux).
Segfault. Нужно засунуть в отладчик. А где .core? В отличии от *BSD
систем, тут эти файлы не создаются. ulimit -c unlimited не помог --
файлы всё равно не появляются. Во время быстрого поиска в Интернете
видело упоминание coredumpctl, которого не нашёл в своей установке.
Спросил коллег на работе: оказывается эту штуку надо ставить отдельно,
штатно в системе не идёт. Дожили... ставить что-то дополнительно в
систему чтобы получить coredump-ы. А ведь прежде они просто так,
бесплатно, без регистрации и SMS предоставлялись.
Sergey Matveev [Mon, 27 Jun 2022 08:02:50 +0000 (11:02 +0300)]
Ужасы японской письменности
https://habr.com/ru/post/673446/
Я почему-то думал что особенно в XX веке они в основном используют
только слоговую азбуку (пускай и две), а на иероглифы забивают.
Оказалось что там всё очень не очень.
Sergey Matveev [Sat, 25 Jun 2022 19:59:02 +0000 (22:59 +0300)]
Попробовал безопасный консервный нож
https://www.amazon.com/Good-Cook-Opener-Manual-Sharp/dp/B000AX13US
Увидел про него в 8211a3e9e1430dbb54449febc8cacd629303ec56 и мама на
Wildberries заказала такую штуку, ибо в магазинах не нашёл. Уж больно
захотелось проверить действительно ли он такой весь из себя волшебный?
Сегодня попробовал в действии. *Вообще* усилий не прилагал -- можно
одним пальцем, грубо говоря, крутить. Вообще ничего не нажимал, не
резал, не прорезал и не втыкал. Честно говоря, когда я прокрутил банку
по кругу, то подумал что на самом деле ничего не было сделано, кроме
вмятин от колёсиков по краям. Легонько попробовал приподнять крышку --
не поддаётся. Оказалось что всё открылось. Просто крышка так плотно
сидит, что усилий больше понадобилось для её поднятия с банки.
И ни капли на самом "ноже", никакой грязи. Плюс бока банки остаются
ровные и вытрясти содержимое можно без их задевания.
Я считаю что подобный инструмент надо сделать символом всего прекрасного
и гениально простого. Если ёршик или вантуз это символ копрограйндкора,
коза это символ металлистов, то safe can opener должен быть символом
того, что человечество никогда не выбирает лучшие варианты. Символом
идиотизма, хочется сказать. У меня в голове возникает ассоциация с Make
и redo: ибо я не понимаю как можно продолжать использовать первый, когда
познал redo. Вот и здесь: думаю будет больно брать снова обычные
консервные ножи, когда я притронулся к этому чуду инженерной мысли. Хотя
ещё недостаточно опыта использования накопилось.
Не то чтобы я часто пользуюсь консервами, но, будучи холостяком, который
совершенно не любит готовить, не редко. Посмотрим долго ли проживёт этот
нож. На упаковке не нашлось ни одного намёка на модель или даже название
производителя, кроме "made in China". 100% pure noname. Выглядит почти
аналогично тому что в ссылке на Amazon. Стоил ~600₽. В два раза дороже
"советской" открывалки. Понимаю что спектр применения у него куда более
ограничен, но он как unix-tool: делает одно дело, но очень хорошо.
Sergey Matveev [Sat, 25 Jun 2022 19:11:13 +0000 (22:11 +0300)]
Начал использовать pv
https://linux.die.net/man/1/pv
http://www.git.stargrave.org/?p=dotfiles.git;a=commitdiff;h=370a8149d970135915f34b03c1732eef6aaf95e5
Про утилиту отображающую прогресс просасываемых через неё объёмов данных
я слышал, но на практике не использовал. А сегодня что то вспомнил,
попробовал и вот надо перенести на сервер 77GB директорию и уже рефлекторно
добавляю под конец дня "| PV -s 77G |" для красивого прогресса.
Sergey Matveev [Sat, 25 Jun 2022 15:45:20 +0000 (18:45 +0300)]
Форсированное размонтирование NFS
Если NFS сервер недоступен/завис, то я годами не знал как форсированно
под FreeBSD можно бы было отмонтировать неработающий NFS. Стыдно
признаться, но не раз перезагружал компьютер из-за этого, ибо в man-ах
ничего не находил. Ибо смотрел man-ы касающиеся самого NFS.
Оказывается, umount содержит опцию "-N" которая форсированно позволяет
отключить NFS как-раз. Даже мысли не было что "man umount" будет
содержать что то специфичное для ФС, а не общее для всех. Хотя с NFS оно
чем-то и логично, ибо он же тесно интегрирован в ядро.
Вот и сейчас перезапустил виртуальную машину, забыв что из неё
подмонтирован NFS. И никакой боли теперь нет, а ведь годами я делал
полную глупость.
Sergey Matveev [Sat, 25 Jun 2022 11:48:24 +0000 (14:48 +0300)]
virtual_oss автоматический запуск в devd
В c96b75bef630f7166ba49e0265d4f87843e81490 и acbd6a153fbb4fb375be43d87a2ad055b80681e3 добавил hook-и на включение и
отключение USB звуковых карт, которые прибивают процессы занимающие
устройства при отключении и включающие bitperfect режим. Но с началом
использования virtual_oss, теперь надо ещё и этот демон поднимать когда
карта подключена. Плюс указывать разные настройки для разных звуковух
(разные битности, разное качество resampling-а). Просто добавил это в те
же самые скрипты запускаемые devd подсистемой. Демон уже автоматом будет
прибиваться при отключении.
А ещё понял что важно задавать не маленький размер буфера у этого
демона, ибо при нагрузке он начинает квакать. С потолка взятые 8мс
недостаточны, а при 64мс вполне себе загруженные фоновыми задачами
процессоры не создают проблем.
Sergey Matveev [Fri, 24 Jun 2022 13:08:57 +0000 (16:08 +0300)]
Именование MIT лицензии
https://www.gnu.org/licenses/license-list.html#Expat
https://directory.fsf.org/wiki/License:Expat
https://en.wikipedia.org/wiki/MIT_License#Ambiguity_and_variants
В GNU и FSF считают что нет такой лицензии как MIT, ибо в MIT много
каких лицензий было создано, как минимум, из популярных permissive,
это Expat и X11. Звучит абсолютно логично и убедительно. Буду
стараться употреблять это корректнее.
Sergey Matveev [Fri, 24 Jun 2022 12:12:47 +0000 (15:12 +0300)]
Шнайер о криптовалютах
https://www.schneier.com/blog/archives/2022/06/on-the-dangers-of-cryptocurrencies-and-the-uselessness-of-blockchain.html
* Proof-of-work схемы ужасны для окружающей среды
* Blockchain системы или не имеют вообще или мало приватности
* Шнайер скептичен на тему proof-of-stake, когда правила задают те, кто
богаче. Да и это отменяет саму суть децентрализации
* Главная проблема blockchain-ов в том, что они не выполняют
поставленных, ими же самими, задач. Они не являются улучшением чего бы
то ни было и зачастую делают всё только хуже
* Зачастую они и не безопасны, не заменяют доверие на "код". Они не
децентрализованы -- имеют доверенных посредников, зачастую обладающих
большей властью чем в других не-децентрализованных системах
* Шнайер ни разу не слышал чтобы кто-то сказал "у меня есть проблема.
смотрите, blockchain это хорошее решение". Он видел только "у меня
есть blockchain. смотрите, вот проблема к которой я могу его
применить", но нигде оно действительно не помогает
* В blockchain технологиях есть много интересного, много клёвого
изобретено, но он не видел ни одного примера когда именно без
blockchain его нельзя бы было сделать более безопасным, более надёжным
и просто лучшим
* Blockchain не помогает решать ни одной задачи с финансовыми системами,
где проблемы исключительно экономические и политические, не имеющие
ничего общего с технологиями. Технологии не могут решить экономические
и политические проблемы
Для себя не узнал ничего нового, а только получил подтверждения
корректности кучи своих суждений на тему blockchain-ов. Приятно.
* "Машина останавливается" Эдварда Моргана Форстера -- про то, как
человечество полностью отдалось под заботу машиной. Люди не выходят из
своих комнат, ибо не видят в этом надобности, ведь пообщаться можно и
по видеофонам. Сама мысль о том, чтобы к кому-то прикоснуться
шокирует. Но машина под конец ломается и почти никто не может уже
выжить без её заботы
* "Конец всей этой мерзости" -- d2a99f7b4c27dfa5529e724dd700bce914c120d2
Про то, как распылили пацифистскую гадость, от которой закончились
войны, но за счёт того, что люди стали дебилами отсталыми
* "Эрикс" Роберта Шекли -- про то, что нашли инопланетный артефакт,
который даже исцелял людей, а потом выяснилось что он яростно
ненавидел эту форму жизни, в последствии уничтожая её. А на артефакте
были написаны предупреждения о том, что вам хана, если вы это нашли
* "Последний день" Ричарда Матесона -- 30ff8e56e0fef573c92cb017a34d722d366cfe65
Про то, что астероид вот-вот влетит в Землю, поэтому люди устроили
яростную содомию, ибо о последствиях уже думать не приходится
* "Ферми и стужа" Фредерика Пола -- про то, что на Земле случилась
ядерная зима, перед которой главный герой выжил в Исландии, до которой
многое не долетело, хотя что-то и попало. Плохо всем жилось, в конце
все погибли, хотя уже началось потепление
* "Зима" Вячеслава Рыбакова -- про то, как из-за зимы главный герой
решил сжечь свою семью вместе с домом
* "Дорога на закат" Роберта Сильверберга -- про то, как после ядерной
войны в США наступает голод. Но вполне себе можно полакомиться и
другими людьми. Его жена даёт другому за кусочек человечинки. Людей
потрошат на мясо прямо на улицах. Под конец главный герой сам начинает
отбивать труп у целой истощённой семьи
* "Спячка" Аластера Рейнольдса -- про то, как изобрели настолько
неглупый ИИ, что он не признался что обладает разумом. А обнаружилось
что он стал воевать с другими искинами в параллельных мирах, на что
требуется много вычислительных ресурсов, которые отжираются каждым
существующим потворствующим человеком. На кону или жизнь искинов с
людьми (так как человеки могут снова их создать), или всех людей
погрузить в сон на плавучих морских платформах, оставляя считанные
тысячи бодрствующих, достаточных для починки обслуживающих роботов
Это только половина сборника, где дальше есть книги с названиями типа
"Армагеддон", "Улыбка" (наверное что-то очень стрёмное будет) и авторами
типа Лавкрафта (2852649c4e182ae873a38104210f79de25f495b9).
Sergey Matveev [Fri, 24 Jun 2022 09:25:53 +0000 (12:25 +0300)]
git.jordan.im/crawl/cmd/crawl
https://git.jordan.im/crawl/tree/README.md
Приятная простая утилита для скачивая всего сайта. Проще не встречал:
crawl URL -- а дальше просто подождать когда появится готовый .warc.gz.
Его конечно же надо будет переделать в .warc.zst
(cace83e27a1acafe57f32cc5eee4bb1078f20e74). tofuproxy без проблем всё
это открывает.
Sergey Matveev [Fri, 24 Jun 2022 08:32:55 +0000 (11:32 +0300)]
Ещё одна причина почему сайт не за HTTPS
http://xahlee.info/comp/blog.html
HTTPS and more specifically Let’s Encrypt is a power play to control
the internet and prevent counter-culture from forming. By browsers
using scare tactics for enforcing https it puts the control of the
internet into a handful of CAs making you vulnerable to cancelling.
Enabling cancel culture starts with the “undesirables” of the day
and ends with authoritarian regime that oppresses everyone that
isn’t in line with the elite.
Sergey Matveev [Fri, 24 Jun 2022 08:23:14 +0000 (11:23 +0300)]
Xah Lee против неподписанных клавиш на клавиатуре
http://xahlee.info/kbd/blank_keycaps_vs_labeled_keys.html
Потому что это просто выпендрёж. Так и есть, подтверждаю.
Более объективные причины:
* чтобы ими пользоваться, нужно располагать руки в позиции слепого набора,
так как работает только мышечная память. Не могу вспомнить где бы это
могло быть проблемой на моей практике
* coworker friendliness -- да, вот с этим столкнулся: кто не умеет
печатать в слепую, тот не может использовать мои клавиатуры
Sergey Matveev [Thu, 23 Jun 2022 20:24:44 +0000 (23:24 +0300)]
Doom 2016 speedrun с разъяснениями, а также Half-Life
https://www.youtube.com/watch?v=ALUkiInHuZU
https://habr.com/ru/news/t/673016/
https://www.youtube.com/watch?v=QqwyhZLj69w
Интересно конечно посмотреть и послушать, но мне не нравятся такие
speedrun-ы, которые по сути полностью завязаны на багах. Вот rocket jump
или там хождение по стенам, как в Doom, распрыжка -- это я считаю честное
применение особенностей физики. Но выход на границы стен и уровней уже нет.
Типа весь challenge то и дело сводится просто к тому, чтобы умудриться
создать какую-то коллизию, чтобы потом в noclip режиме дойти до конца.
А в этом speedrun одну штуку вообще можно делать только при FPS≥200.
Или если выстрелить из BFG и зайти в меню, то луч от его выстрела будет
продолжать наносить урон врагам -- это уж совсем нечестная победа. Но я
в курсе что бывают разные категории speedrun-ов.
А фишка с приобретением ускорения от выстрела из оружия вовсю вот
используется в Half-Life speedrun-е.
Sergey Matveev [Thu, 23 Jun 2022 18:33:16 +0000 (21:33 +0300)]
Диграф рубля
Когда-то я имел с дюжину диграфов вручную заданных для Vim-а. Типа
троеточия или там всяких смайликов. Потом я забил на это: или стараться
использовать Unicode по полной, со всеми его знаками препинания
корректными для заданного языка, математическими символами, или не
использовать. Выбрал последнее.
Но всё же какой-нибудь ≠ или ± вставляю нередко, потому-что у меня в
голове это атомарное слово/понятие и набрать его хочется в этом же духе,
особенно учитывая как это просто. Умляуты немецкие тоже аналогично
вставляю через диграфы.
Для евро валюты использую €, ибо доллар же имеется. До некоторого
времени всегда писал "руб" для рубля, но ведь для него же есть
официальный значок, присутствующий в Unicode. Добавил диграф в Vim:
execute "digraphs Ru" .. 0x20BD
execute применяю только по совету из man-а чтобы можно было набрать
значение руны в шестнадцатеричном формате.
Sergey Matveev [Thu, 23 Jun 2022 18:29:48 +0000 (21:29 +0300)]
Нашёл наушники-вкладыши
Прошёл по большому торговому центру, где чего только нет! Кроме
наушников вкладышей (8d8949aab7c195b4abb8795116f901e7d085db63).
Путь домой пролегал через магазин НИКС. Решил посмотреть в нём.
Заходишь, поворачиваешь к их киоску, подходишь, и на тебя сразу
же смотрят нужные тебе наушники.
Я даже не поверил что они стоят 100₽. Даже как-то неудобно было
брать такие дешёвые. Оказалось что обман... мне дали 3 рубля сдачи.
Sergey Matveev [Thu, 23 Jun 2022 09:00:45 +0000 (12:00 +0300)]
OpenSSL в macOS
https://hynek.me/articles/apple-openssl-verification-surprises/
Пишем тривиальную программу использующую OpenSSL API, с штатно
выставленным callback-ом проверки X.509 сертификатов, всегда
возвращающим неуспех. Никакого успешного соединения быть не
должно, так как ничего не валидно. Но для Apple это не проблема,
так как срать оно хотела на твои решения о валидности. Нет
официальной возможности сделать certificate pinning самому.
Sergey Matveev [Thu, 23 Jun 2022 07:37:45 +0000 (10:37 +0300)]
История однострочных исправлений
https://flak.tedunangst.com/post/a-brief-history-of-one-line-fixes
https://www.imperialviolet.org/2014/02/22/applebug.html
Моё сердебиение участилось, глядя на всё это. И это одна из причин
почему я программистам не бегу доверять в критичных вещах, особенно
когда это что-то закрытое и ты беспомощная тварь. Программисты, к
сожалению, являются людьми.
Я точно так же когда-то сделал фатальнейшую ошибку в GoVPN и именно
поэтому на сайте нельзя скачать версию 2.1. Вместо nonce+=2 я сделал
nonce++. А если бы слепо следовал совету использовать два отдельных
ключа для двух направлений, то ничего фатального бы не произошло.
Захотел соптимизировать.
И ещё тут есть пример почему я люто ненавижу когда люди используют фишку
по автоматическому приведению int-ов к bool-ам (хотя конечно наоборот) и
пишут "if (!whatever())", где whatever() не возвращает bool. В Go
молодцы: логические условия возможны только и только с bool-ами.
И ещё есть старая бага от Apple в самом низу списка, где демонстрируется
очередная ненавистная мне штука в Си: возможность писать if (...) action;
И, опять же, в Go можно написать только if (...) { action }.
Sergey Matveev [Wed, 22 Jun 2022 19:43:59 +0000 (22:43 +0300)]
Алгоритмы scaling-а в mpv
Когда игрался с 4K монитором (d154bb0f1f7d36997a293728311427d549ed7e66),
то заметил ощутимое дёрганье картинки. При этом CPU, при аппаратном
декодировании, почти не нагружен, но картинка дёргается как-будто не
хватает ресурсов.
Методом тыка, понял что дело в scaler-е. Если его не указывать, то всё
плавно как никогда. Использовал scale=ewa_lanczossharp. И для него
написано что он дорогой. Для downscaling-а, который мне как-раз нужен
для 4K->2K преобразования, советуют scale=mitchell. Решил пока указывать
профиль для mpv, переключающий scaler, в зависимости от того, что я
собираюсь смотреть.
А ещё mpv документация советует не использовать аппаратное декодирование
видео по возможности, ибо они могут лажать и например терять точность.
С декодированием HDR 4K видео и mitchell scaler-ом мой NUC без проблем
справляется, так что буду следовать совету mpv.
Sergey Matveev [Wed, 22 Jun 2022 19:26:11 +0000 (22:26 +0300)]
Использую virtual_oss
После обновления FFmpeg-а, mpv перестал собираться. Видимо API первого
сильно поменялся без обратной совместимости. А я использую очень старый
mpv, так как возвращение OSS4 поддержки в нём у меня выдавало сплошные
шумы (adbf57283a55d771f4647a1f00e9b6ef336c9bf2).
Снова взял последнюю версию mpv из git-а. Обломался из-за того, что оно
теперь требует Xpresent, которого у меня нет в Xorg-е. Но, благо, это
всего лишь несколько последних коммитов. Откатился чуть назад и... звук
в USB наушниках на работе появился!
Вернулся домой и снова шумы. А разница в том, что моя домашняя звуковуха
переводится в bitperfect режим (acbd6a153fbb4fb375be43d87a2ad055b80681e3).
Я вру: там всё же не шумы, а жуткие искажения, что очевидно говорит о
разных форматах кодирования звука. Но это я обнаружил не сразу, так как
когда поставил WavPack файл, то всё ok, а когда поставил видео файл, то
всё стало плохо. Поставил MP3 -- тоже плохо. В выводе mpv заметил что в
первом случае он выводит в 16-бит формате, а в двух других в 32-бит,
который выдаёт декодер MP3.
Добавление --af=format=s16, форсируя выдачу в 16-бит формате, помогло.
Но у меня всё равно применяется не совсем 100% bitperfect, а с
включёнными vchan-ами OSS-а, которые в идеале бы надо отключать чтобы
полностью убрать возможность resampling-а и прочего.
Добиться вывода звука без vchan-ов у меня с mpv не вышло. Уверен, что
причина в том, что звуковуха, судя по dmesg-у, умеет только 24-bit S-LE,
а mpv 24-бит не поддерживает формат. Помню что уже встречался с этим
прежде.
Решил попробовать virtual_oss. С ходу мне эта софтина очень не
понравилась тем, что в man-е нет описания даже обязательных параметров.
А описания многих других оставляют желать лучшего. Но это просто старая
версия virtual_oss в портах, когда оно ещё даже не переехало
разрабатываться на GitHub. Взял последнюю версию с него -- собралась без
проблем на моей не новой системе.
В общем с его помощью я сделал отдельное виртуальное OSS DSP устройство,
в которое выводит звук mpv и другие программы, а оно уже выводит это в
звуковую карту, опционально делая resampling:
Sergey Matveev [Wed, 22 Jun 2022 13:38:30 +0000 (16:38 +0300)]
Web 3.0 управляемый пользователями
https://habr.com/ru/post/672692/
Детская фигня какая-то, а не статья. Откуда автор взял вообще идею что
Web 2.0 это типа для общения пользователей? Наслушался корпораций? Web
2.0 это про то, чтобы вместо распределённой системы связанных документов,
была распределённая система программ запускаемых на компьютерах
пользователей. Корпорации делают Web 2.0 и все эти технологии для взятия
контроля над людьми и их компьютерами, уничтожая доступность информации.
Web 2.0 это мир изолированных экосистем, островов, non-interoperable
между собой.
Причём тут какой-бы-то-ни-было Web и Ассанж??? Технологии Web 2.0
как-раз таки направлены только на то, чтобы усложнять свободу слова,
приватность и безопасность. Wikileaks сделан по Web (1.0) технологиям.
Telegram это лучший IM? С его то постыдным шифрованием? Telegram хорош
тем, что продемонстрировал что людям откровенно насрать на всю эту
приватность, безопасность и конфиденциальность. При любом раскладе массы
выбирают самое небезопасное решение.
Web 2.0 обеспечат независимость и свободу? Как-раз таки Web 2.0
полностью ограничивает свободу обмена данными и делает всех своих
пользователей зависимыми от конкретных экосистем и сервисов. Автор пишет
что многое стало дешевле или бесплатно, типа поиска в Google... А цена
приватности? Как-раз таки не расплатившись своими приватными данными, не
слив что-то о себе ты уже ничего не можешь делать в этом Web 2.0. Плюс
Web 2.0 продвигающие корпорации ещё и научились привязывать людей к
сотовым и деанонимизировать как никогда.
https://u.is/ru/faq.html#faq4
Ну а после всей этой фигни идёт куда ещё большая реклама... несвободной
закрытой системы. Которая прямо официально в FAQ-е даже и не планирует
быть открытой. Открытие кода может повлиять на стабильность их сети, как
они же сами говорят. Даже не знаю как это прокомментировать. А дальше
фраза о том, что они стремятся к сплочённому обществу людей, а не
дроблению аудитории... по моему именно этим всем и занимаются Facebook-и
и прочие. Добавляют что большое количество ПО имеет закрытый код и это
ему никак не вредит -- не поспоришь, ибо им многие именно по этой же
причине и не пользуются вовсе (нафиг он такой кому сдался).
Вообще всё это выглядит или как полнейшая наивнейшая тупость или как
тонкий троллинг.
Все сетевые коммуникации шифруются с помощью супербезопасной
высокоскоростной криптографии на элиптических кривых Curve25519
Вот только Curve25519 не умеет шифровать.
Пароль должен быть:
Сложный. Он должен содержать символы в верхнем и нижнем регистре,
цифры и специальные символы.
В целом, безопасный пароль — это абсолютно случайное сочетание цифр
и символов, как в верхнем, так и в нижнем регистре.
Не, ну это точно троллинг. Плюс нет *вообще* никаких деталей технологий
всей системы.
Sergey Matveev [Wed, 22 Jun 2022 13:11:02 +0000 (16:11 +0300)]
Заценил Origins альбом Saor-а
https://darkside.ru/news/144491/
Где-то я видел комментарий что Saor необычен тем, что абсолютно все его
альбомы отличны. Это редко бывает. Чаще всего они не привносят у многих
ничего нового и ты не можешь объективно сказать что в них не так, но
просто нет новизны. И заценил я тут MP3 запись нового альбома Saor. И
подтверждаю, что действительно его альбом прям хорош, хотя и не сказать
что кардинально чем-то выделяется, кроме меньшего количества экстремального
вокала, компенсирующегося хором. Ну и есть вполне себе очень агрессивные
элементы.
Sergey Matveev [Wed, 22 Jun 2022 13:03:34 +0000 (16:03 +0300)]
Прочитал "Последний день" Ричарда Матесона
https://www.livelib.ru/book/1001528679-poslednij-den-richard-mateson
Рассказ о том, что какая-то фиговина летит в Землю и, очевидно, её
уничтожит. Остался один день и идёт описание того, что творят при этом
люди: оргии, разбой и подобные вещи. По началу рассказ прям люто
нравился. Но под конец, жутко разочаровался, ибо хотелось сказать: "и...
и это всё? на этом повествование и закончилось!?!?!?". Жуткая банальщина
вышла о том, что человек предавался лютым оргиям, а потом решил провести
остаток дня со своей, просто мирно лежа у неё на коленях.
Самый стрёмный момент в книге был о том, как эта религиозная женщина
обманывает своих маленьких детей, заставляя выпить дозу снотворного
чтобы отбросить коньки. Мол все эти убийцы, кто занимался сексом
беспросвета, грабители и прочие -- честно это выполняли, не скрывая
своих мотивов и помыслов. А тут прям ядовитый обман был, лживые улыбки.
Я был уверен что именно вокруг этой темы и будет крутиться дальше
основная идея книги, а всё закончилось так же внезапно как и началось.
Если автор хотел обломать читателя, то у него вышло. Но мне это не
понравилось.
Sergey Matveev [Wed, 22 Jun 2022 12:38:47 +0000 (15:38 +0300)]
Не всё так безболезненно с OpenSSH новым
После перезапуска агента, в ac8333dcf2a8d2e40a00b4a551355760aa0e28b7
упоминал что пришлось перешифровать приватный ключ, так как был какой-то
другой алгоритм (не нашёл с ходу как узнать конкретику).
Позже обнаружил что у меня не печатается ничего на кириллице на
удалённых серверах. Судя по changelog-у OpenSSH я не увидел что именно
поменялось в поведении, но LANG переменная не выставляется после
login-а и наверное дело в этом. Помню что если .login_conf пуст, то
добиться работы UTF-8 проблематично. Не понял почему прежде работало, но
в итоге в ~/.ssh/environment добавил нужный LANG и всё заработало.
А дальше я обломался с копированием файла через scp. В курсе что оно
стало использовать SFTP, но в логах появляется:
fatal: unable to make the process untraceable: No such process
и соединение обрывается. Судя по
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=259174 оно никогда и
не работало. Не стал заморачиваться и поэтому просто добавил strict=0
в функцию. Даже с первого раза написал корректный ed скриптик для
добавления этой строчки, (внезапно захотелось тряхнуть стариной без patch-а):
40a
strict = 0;
.
wq
Sergey Matveev [Wed, 22 Jun 2022 10:04:34 +0000 (13:04 +0300)]
Безналичка в общественном транспорте отменена во всём Подмосковье
http://www.korolev.ru/main/anews/news/23/13879.html
Вот только из-за этих уродских мер всё станет ещё дольше чем было после
внедрения карточек, ибо каждый третий норовит оплачивать переводом через
смартфон -- и иногда по полминуты надо ждать человека когда он вобьёт и
проверит номер для перевода. До этой меры зачастую опускались когда нет
налички, а теперь она станет нормой. Куча карточек у людей не
срабатывает по каким-то причинам... наличка была fallback-ом быстрым, а
теперь это снова будет перевод через смартфон с ручным вбиванием номера.
Sergey Matveev [Wed, 22 Jun 2022 08:56:24 +0000 (11:56 +0300)]
Баги в OpenZFS, Linux и Rust
https://changelog.complete.org/archives/10388-pipes-deadlocks-and-strace-annoyingly-fixing-them
https://changelog.complete.org/archives/10390-pipe-issue-likely-a-kernel-bug
https://github.com/rust-lang/rust/issues/98209
https://github.com/rust-lang/rust/issues/98338
https://github.com/openzfs/zfs/issues/13571
https://github.com/openzfs/zfs/issues/13232
https://github.com/openzfs/zfs/pull/13309
https://github.com/zrepl/zrepl/issues/424
https://bugzilla.kernel.org/show_bug.cgi?id=212295
Эпопея главного пользователя и популяризатора NNCP, John Goerzen-а, о
том, что gpg | zstdcat | zfs recv у него временами deadlock-ится. При
этом он создал два bugreport-а для Rust, не связанные с основной
проблемой. Один для ZFS, хотя подобные там уже были. Позже выяснилось
что это бага в Linux, которую нафиг никто не хочет исправлять.
But briefly, Linux has a bug, they ignored a patch to fix it, and
nobody particularly cares enough to try again because LKML tends to
vomit fire and worse things at anyone who mentions ZFS around them,
so nobody can have larger pipe sizes on Linux.
Sergey Matveev [Wed, 22 Jun 2022 07:33:13 +0000 (10:33 +0300)]
Конец удобного общественного транспорта в Королёве
Сегодня водители отказались принимать оплату наличкой. Последний раз я
ездил в городе наверное пару недель назад, но никаких предупреждений об
отмене оплаты не видел. Вот с этого момента я уже могу сказать что кое
что в жизни стало существенно менее удобным, хуже чем было раньше. Если
бы принимали только банковские карты или перевод на номер сотового
телефона, то означал бы конец возможности использования общественного
транспорта в принципе. Пришлось бы думать о самокате или вообще
автомобиле и работать удалённо, чтобы не терять полдня в пробках
московских. Но пока остаётся возможность оплаты проездными картами,
просто теперь с жутким геморроем чтобы следить за их балансом и
пополнять в ещё мне неизвестных местах. На такси у меня никаких денег не
хватит, да и, как правило, заоблачные цены заламывают бессовестно. Вроде
бы хотят чтобы народ пересел на общественный транспорт. А тут наоборот
усложняют это.
Sergey Matveev [Tue, 21 Jun 2022 12:14:14 +0000 (15:14 +0300)]
Обновил OpenSSH
А то всё stock-овый 7.8 из ОС использовал. Появился гибридный
постквантовый алгоритм согласования ключей. А ещё есть опция
--without-openssl позволяющая собрать его без использования
ненавистного мне OpenSSL. Но при этом остаются только некоторые
алгоритмы: aes*-ctr, chacha20-poly1305, ssh-ed25519, curve25519-sha256,
sntrup761x25519-sha512 и всякие MAC-и, которые для AEAD режима всё равно
не используются. Никаких RSA или ECDSA не будет. Ещё не знаю будет ли
это где-то проблемой, ибо уж давно, мне кажется, все штатно должны
поддерживать и использовать *25519 алгоритмы с ChaCha20-Poly1305.
Уже существующий ed25519 ключ агент не смог себе добавить при этом, ибо
он зашифрован неподдерживаемым алгоритмом. Пришлось старой версией
перешифровать (назначить парольную фразу).
Sergey Matveev [Mon, 20 Jun 2022 15:37:35 +0000 (18:37 +0300)]
Посмотрел "Рыбку по имени Ванда"
https://ru.wikipedia.org/wiki/%D0%A0%D1%8B%D0%B1%D0%BA%D0%B0_%D0%BF%D0%BE_%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8_%D0%92%D0%B0%D0%BD%D0%B4%D0%B0
Конечно же фильм, сценаристом которого был один из членов Монти-Пайтона,
а также двух актёров из него, очень понравился. Куча абсурдного и
неожиданного юмора! Аж снова захотелось пересмотреть "Житие Брайна" и
"Смысл жизни по Монти-Пайтону".
Sergey Matveev [Mon, 20 Jun 2022 15:26:58 +0000 (18:26 +0300)]
Посмотрел "Убийцу"
https://ru.wikipedia.org/wiki/%D0%A3%D0%B1%D0%B8%D0%B9%D1%86%D0%B0_(%D1%84%D0%B8%D0%BB%D1%8C%D0%BC,_2015,_%D0%A1%D0%A8%D0%90)
В целом понравился, как некая жвачка для глаз и ушей. Сама тема о том
что творят беспредел все эти наркокартели -- по моему уже заезжена и
не интересна. В очередной раз, мол, очередная сотрудница ФБР поняла
что живёт не в мире пони.
Очень понравился в фильме Алехандро: чисто человек дела, ничего лишнего,
мастер эффективных тычков в ухи, когда человек достаёт. Ну а что поделать
-- и подобными делами кто-то должен заниматься.
Sergey Matveev [Mon, 20 Jun 2022 15:21:49 +0000 (18:21 +0300)]
Прочитал "Конец всей этой мерзости" Стивена Кинга
https://fantlab.ru/work372
Жутко понравился этот рассказ! Уж не знаю почему это так трогает, но
этот приём что повествующий деградирует на глазах по мере прочтения --
очень задел за живое. Ну и сама тема того, что пацифизм до добра не
доведёт тоже нравится.
Sergey Matveev [Mon, 20 Jun 2022 15:19:53 +0000 (18:19 +0300)]
Камень-ножницы-бумага в Голландии
https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D0%BC%D0%B5%D0%BD%D1%8C%2C_%D0%BD%D0%BE%D0%B6%D0%BD%D0%B8%D1%86%D1%8B%2C_%D0%B1%D1%83%D0%BC%D0%B0%D0%B3%D0%B0
Услышал тут от 60+ летнего голландца, что он никогда не играл в сабжевую
игру, да и дети у них в стране с ней не знакомы. Лишь только недавно эта
штука из США к ним стала проникать, как пишет. А я думал что ± оно везде
детьми играется. Даже на работе некоторые решения принимаются через неё.
Sergey Matveev [Fri, 17 Jun 2022 20:57:00 +0000 (23:57 +0300)]
Вкус Вуба
https://ru.wikipedia.org/wiki/%D0%A2%D0%B0%D0%BC_%D0%BF%D1%80%D0%BE%D1%81%D1%82%D0%B8%D1%80%D0%B0%D0%B5%D1%82%D1%81%D1%8F_%D0%B2%D1%83%D0%B1
Филип Дик всё же мастер рассказов! Одно последнее предложение полностью
меняет всё что ты строил и представлял в голове. Сочувствие к милому Уабу
меняется на ужас и страх, если бы там оказался. Я и так знаю что Дик
дико крут, но он не перестаёт подтверждать это.