Sergey Matveev [Sun, 3 Jan 2021 11:07:25 +0000 (14:07 +0300)]
Цифровое завещание
https://vitus-wagner.dreamwidth.org/2218336.html
На днях умер известнейший фидошник qkowlew. К сожалению, я не знаю кто
это и только сужу по многочисленным feed-ам людей на кого подписан. Но в
этой статье речь про то, что в случае внезапной гибели, неплохо бы иметь
"завещание". Если у человека хостилось множество чего-то чужого, да и
вообще имелась информация ценная на компьютере, то было бы неплохо иметь
возможность доверенным людям это всё разгрести и, как минимум, получить
к этому доступ. Конверт, доверенные люди, базовые пароли и всё такое.
Мне это не ново. У меня уже чуть ли не десять лет есть запечатанный и
хорошо спрятанный конверт у доверенных людей, которые только знают о его
существовании, но не видели воочию и не знают содержания. На котором и
написано что вскрывать в случае гибели. "Учений" не было, но чисто
теоретически его должно быть достаточно для доступа ко всем моим
данным/серверам. Хотя для этого должен привлекаться умелый Unix
пользователь.
Sergey Matveev [Sun, 3 Jan 2021 10:52:15 +0000 (13:52 +0300)]
Мама про Андрея Ткачёва и православие
Два года назад я писал гневную запись про этого популярного протоиерея
(5c784c73a7666dc58c323ab71e586f6ce494a867), статья которого "Лишние
люди" в открытую говорила что подобные мне -- лишние люди. У родителей
что-то зашёл разговор на эту тему и я упомянул эту статью. Мама, которая
что-то иногда смотрит/слушает на тему нашей религии, сказала что
наверное даже знает про кого именно я. Она не читала этой статьи, но
видела выступления этого протоиерея и у неё полностью аналогичные мысли
и впечатления были о том что, мол, её сына, дай волю этим церковным
работникам, сразу бы в печь, как нацисты, засунули бы, раз бесполезный
человек. Ну и какого ей слышать тот факт что она в пустую прожила жизнь,
раз вырастила пустышку?
Только у неё вопросы: а монахи, которые отказывают от семьи, вообще не
редко становятся даже святыми. Что ты на это скажешь, Андрей? А тот факт
что любое существо и любой человек, пускай даже инвалид, не просто так
существует в этом мире (чисто теоретически с точки зрения религии)?
Меня радует тот факт что это не я не правильно или коряво
интерпретировал его статью -- вот совершенно независимо от меня мама
точно также аналогично интерпретирует слова этого Ткачёва, тоже
соглашаясь что он как нацист, видящий во мне только топливо для печей
или начинку для адских котлов. А мать сказала что после его речей даже
мелькали мысли о том чтобы порвать с этим православием.
Для меня религия это страшная штука по сути -- она невероятно разобщает
людей. Аналогично политическим взглядам например. Видел и слышал не раз
как и православие и любые другие проклинают рок Beatles или любой метал.
Видел как относятся к любому (с элементами черноты) юмору или
воспринимают *любое* слово независимо от мотивов или контекста
применения. Если при (действительно) верующем человеке ляпнуть "убил бы
тебя" (как родители часто говорят с горяча непослушным детям), то он это
буквально воспримет, никак иначе.
Sergey Matveev [Sun, 3 Jan 2021 10:47:37 +0000 (13:47 +0300)]
Ctags с git-ом
https://tbaggery.com/2011/08/08/effortless-ctags-with-git.html
Рецепт от Tim Pope в виде hook-ов git-а чтобы автоматически запускать
ctags индексирование файлов под управлением VCS (git ls-files). Хороший.
Хотя лично для меня не удовлетворительный. Во-первых, мне нужна
индексация не только на файлы под git-ом -- я часто делаю символические
ссылки на исходный код зависимостей, чтобы и они под индексацию попадали.
Во-вторых, работа над файлами может идти днями без помещения их в git.
В-третьих, опять же скорость -- при ± каждом изменении в git-е делать
переиндексацию может быть дорого, ибо на больших проектах секунд 5-10
можно ждать её.
Sergey Matveev [Sat, 2 Jan 2021 15:30:41 +0000 (18:30 +0300)]
Новый год с животными по ТВ
Почти два дня я не притрагивался к клавиатуре вообще. Встретил новый год
с родителями. До четырёх утра смотрел National Geographic у них по ТВ. А
затем играли вместе в настольные игры и смотрели фильмы.
Sergey Matveev [Sat, 2 Jan 2021 15:27:15 +0000 (18:27 +0300)]
Похудел ещё на 3кг
За ещё полмесяца (3b93c354be492e15048f634c360a16d8698a8774) похудел ещё.
С праздниками конечно это компенсируется, но меня очень радует что вес
уже меньше 80кг. Причём последнее время я вообще не заморачивался с
соблюдением режима питания.
Sergey Matveev [Wed, 30 Dec 2020 13:12:41 +0000 (16:12 +0300)]
Сон с лишней комнатой
В этом году (или уже даже с прошлого?) уже 5-6-ой раз мне снится как я в
квартире внезапно вспоминаю о наличии очередной комнаты. На днях был
очередной такой сон. Причём квартиры в общем-то разные и во сне как
будто бы хорошо знакомые, но внезапно я случайно или вспоминаю или
замечаю дверь в ещё одну комнату. Открываю её а там реально ещё одна
здоровая нормальная хорошая комната. Один раз такой сон в этом году был
настолько реалистичным, что у меня даже после пробуждения закралась идея
а нет ли у меня "забытой" комнаты дома?
Но во всех случаях, кроме последнего, эта комната заполнена всяким
каким-то хламом. Что-то типа полно всякой мебели навалено. И первая
мысль после лицезрения всего этого -- нужен минимум целый день чтобы это
всё расчистить и вынести из неё и тогда ещё чуть ли не треть площади в
квартире новой появится, огромное раздолье! А на днях приснилась комната
уже не так сильно заваленная, но отчётливо помню что тоже первой мыслью,
после открывания двери, было "надо бы тут это всё расчистить и будет
отличное помещение!". А было в ней куча телевизоров старых больших
ЭЛТшных. Ну или возможно компьютеров, но у большинства диагональ уже
больно очень большая.
Причём сны то эти не страшные, не удручающие -- в самом сне то даже
скорее радость у меня от того что "вот я олух, забыл про треть
площади!", но и небольшая тяжесть от того, что нужно их предварительно
разгребать от устаревшего и ненужного хлама.
Причём моя текущая квартира, из которой я в этом году вообще не вылезаю,
ни разу вроде бы не снилась. Хотя уже не один год в ней.
Sergey Matveev [Wed, 30 Dec 2020 13:07:37 +0000 (16:07 +0300)]
Танцующие роботы
https://www.youtube.com/watch?v=fn3KWM1kuAw
Впечатляет подвижность и шустрость этих здоровых тяжёлых механизмов! Я и
половины то не смогу станцевать как они. Вообще даже немного пугающе они
двигаются. Другую текстуру на такого нацепить и вот очередной опасный
монстр из какого-нибудь Doom/Quake.
Sergey Matveev [Tue, 29 Dec 2020 20:21:20 +0000 (23:21 +0300)]
Сделал автогенерирование страницы с ссылками
http://www.stargrave.org/Links.html
http://www.git.stargrave.org/?p=linksexp.git;a=tree
https://copia.posthaven.com/xoxo-versus-atom-versus-xbel-for-web-feed-lis
Ссылок стало что-то много и меня уже начало пугать что знания о URL до
feed-ов находятся в JSON state файле rss2email, а знания о ссылке для
человека совершенно отдельно и несвязанно. Самое геморройное это
засунуть это в какую-нибудь БД, а не руками набиваемый Texinfo файл.
Само собой это recfile, где каждая ссылка это что-то подобное:
Title: cr.yp.to
Note: D. J. Bernstein's blog
URL: http://blog.cr.yp.to/
Category: Crypto
Category: IT
Feed: http://blog.cr.yp.to/feed.application=xml
Title: Cretaria's blog
URL: http://blog.cretaria.com/posts/
Category: IT
Feed: http://blog.cretaria.com/rss.xml
Title: Crypto discussion list
URL: https://lists.randombit.net/mailman/listinfo/cryptography
Category: Crypto
Category: Maillist
Ну и написал на Go быстренько конвертер из этого файла (с
соответствующей сортировкой и группировкой) в Texinfo, а потом ещё и
XBEL с OPML добавил. Про два последних формата я только слышал название
и что OPML для обмена URL-ами feed-ов используется. XBEL понравился
(меньшее из зол, так то, будучи XML, нет конечно) простотой и ничем
лишним для выполнения задачи по передачи закладок. А OPML... с трудом
всё же решил сделать выхлоп и в нём, ибо всё восстаёт во мне против
формата в котором эти уродские пиндосские даты используются, вместо
человеческих. Это простительно для 80-х годов. Но простота OPML такова,
что чёрт с ним, пускай и он будет.
Но ещё предстоит работа по категоризации более нормальной всего этого.
Sergey Matveev [Mon, 28 Dec 2020 11:00:13 +0000 (14:00 +0300)]
Dungeons of OpenSSL
Вчера полдня провёл не вылазя из lldb. Я понял почему меня не так сильно
тянет к IF-играм: я в них и так играю, путешествуя по лабиринтам
костылей OpenSSL кишок и смежных engine-ов. И интерфейс lldb как в
IF-ах: up, up, s, s, n, n, f и т.д.. И пазлов полно -- пойди пойми какая
зараза меняет что-то неположенное.
lldb очень радует: заюзал впервые его watchpoints -- очень удобная
штука, в первую очередь помогавшая в обнаружении проблемы одной. Я уже
наверное весь основной функционал потрогал.
Но так как он использует libedit, то надо явно включить vi-клавиши
через: echo bind -v > ~/.editrc.
Sergey Matveev [Mon, 28 Dec 2020 09:06:21 +0000 (12:06 +0300)]
Intermediate Vim
https://www.hillelwayne.com/post/intermediate-vim/
Начал я читать эту статью и чувствую что снова ничего нового для себя не
открываю и не узнаю. Хотя про q:, q? и q/ я узнал относительно недавно
(38eda50c5490f806cf9430568c45a3c567ca3c09). Но в этой статье для себя
открыл возможность ввода "_o" для прыжка на другой конец визуального
выделения. Не знаю часто ли мне это бы пригождалось, но выглядит
полезно, ибо, как автор и заметил, бывает что ошибаешься с выбором
начала выделения.
Sergey Matveev [Mon, 28 Dec 2020 08:00:49 +0000 (11:00 +0300)]
Посмотрел "3 идиота"
https://ru.wikipedia.org/wiki/3_%D0%B8%D0%B4%D0%B8%D0%BE%D1%82%D0%B0
Забавный понравившийся индийский фильм. И легко понять что индийский,
ибо время от времени, да обязательно все споют и потанцуют. Но есть и
смущающее: как-то он уж очень местами слишком наивен и простоват. Так и
хочется сказать что тут ребёнка маленького что ли посадили писать
сценарий? Однако я ведь тоже самое про наивность уже говорил про другой
индийский фильм "Случайный доступ" (e97f809e8485b8f1c2def6bb5b533694c98ee58f).
Да и прежде у меня такая мысль была и по поводу более старых их фильмов.
Явно это разница культур, требований (?), а может быть целевой аудитории?
Но, как и прежде, не могу не заметить как нравится актриса (внешне) что
и в "доступе" были (Карина Капур).
Я уж не знаю правда ли в фильме не сильное преувеличение, но в нём
упорно показывается и подчёркивается что в инженерном институте
преподаватель хочет слышать определения из учебника, а на простом
человеческом понятном языке не вариант. Я слышал подобное про китайцев
когда-то -- что у них в культуре гвоздями прибито повторение, зубрёжка,
а не выдумывание нового. Сейчас то в Китае я думаю уже всё преобразовано
или в процессе -- не даром они всюду в мире выходят по технологиями
вперёд. А вот индийских специалистов это понимание наверное ещё не
коснулось. У нас в институте как-раз было наоборот: прочитаешь
зазубренные определения или хоть целые главы книги -- преподавателю
насрать. Он будет задавать вопросы чтобы понять понимаешь ли ты что сам
только что сказал (вызубрил) или нет. Ведь зубрилам дай вопрос чуть в
стороне или иначе сформулированный и он уже теряется и не в состоянии
ответить, что выводит его на чистую воду. Ты можешь ответить когда надо
продувать ракету азотом, а когда гелием и где располагаются баки с
окислителем (выше/ниже) и если бы ты писал тест, то дал бы правильные
ответы и "зачёт". Но у нас, благо, не было тестов, а преподаватель
задаст вопрос "почему?" чтобы понять что ты не просто знаешь справочную
информацию, а понимаешь причину почему всё так.
Sergey Matveev [Mon, 28 Dec 2020 07:42:38 +0000 (10:42 +0300)]
Generics в Go
https://groups.google.com/forum/print/topic/golang-nuts/LEEuJPOg0oo
Недавно тут начали войнушку против потенциальной идеи включения
generic-ов в Go. Мол после этого придётся fork-ать язык, ибо смерть
для него.
С одной стороны, если надо проголосовать, то я не долго думая, сразу же
тоже скажу что generic-и не нужны. Живём уже десять лет без них и это
САМЫЙ прекрасный, клёвый и офигенный язык. Потому что все решения в нём
взвешены крутейшими хакерами и ничего не делается и не добавляется
просто потому что могут, потому что у других есть, потому что здесь и
сейчас это было бы удобно. Тот же Python уже не первый год уродуется
только так вовсю, ещё больше отталкивая от себя. Не говоря про C++ и
прочие ужасы этого мира. А generic-и для меня это открытие ворот в ад:
возможности лёгкого написания сложного кода.
Собственно, зачинщик этой темы в рассылке про это же всё и говорит.
Однако, ещё до этого спора в рассылке, у меня в голове другое отношение
существует: чуть ли не с самого начала были идеи добавить generic-и в
Go, но никто и никогда нигде не говорил что их быть не должно, что они
не нужны -- их не добавляли потому что пока не могли придумать и решить
как это сделать правильно. Ведь ООП однозначно принёс миру больше вреда
чем пользы, но то как его подобие реализовано в Go -- это очень
продуманно и однозначно полезно. А раз крутейшие хакеры 10+ лет не могут
придумать как сделать generic-и, то задача не проста. Но раз они
"справились" с "текущей" версией Go, то почему не доверять что и
generic-и которые они придумают будут решением хуже чем придуманные
интерфейсы например? Вот и автор темы даже принёс извинения Ian Lance
Taylor-у, ибо уж кто кто, но этот человек точно понимает ценность
простоты и опасность сложности.
Я перестал следить за этой темой уже. В данном случае у меня полностью
нет своего мнения, ибо я ни капли не человек который мог бы принимать
решения по дизайну языков программирования. Но я полностью доверяю
решениям core хакеров, которые 10+ лет занимаются "проблематикой"
generic-ов. Это как в Linux -- если эти ребята что-то реализовали, то
стоит подождать ещё несколько релизов чтобы хотя бы начать пробовать и
то не факт что оно когда-либо будет рабочее. А FreeBSD долго вынашивают
идеи и код и если сказали что ready to use, значит ready to use. Вот и в
Go аналогично. Они ни разу не подводили своими решениями -- одни только
модули (относительно) недавно добавленные чего стоят!
Sergey Matveev [Sun, 27 Dec 2020 11:26:21 +0000 (14:26 +0300)]
Посмотрел "11:14"
https://ru.wikipedia.org/wiki/11:14
Про фильм слышал ещё более десяти лет назад, но только сейчас вспомнил
про него, что надо бы посмотреть. Очень понравился! Видимо, мне просто
очень нравится когда в фильме параллельные истории, которые сойдутся в
одном месте самым неожиданным образом. А вообще там история про то, как
одна шлюха испоганила жизнь кучи людям, которые правда тоже не шибко
далеки умом. Но забавно в целом, могу рекомендовать.
Sergey Matveev [Sun, 27 Dec 2020 08:35:51 +0000 (11:35 +0300)]
Посмотрел "Бассейн"
https://ru.wikipedia.org/wiki/%D0%91%D0%B0%D1%81%D1%81%D0%B5%D0%B9%D0%BD_(%D1%84%D0%B8%D0%BB%D1%8C%D0%BC,_1969)
У меня такое впечатление что я вообще не видел ни одного фильма с Аленом
Делоном. Совершенно не могу вспомнить видел ли я его лицо где-нибудь
кроме исторических роликов. Отец посоветовал этот фильм с ним. Фильм
хорош, как и игра Алена. Надо ещё чего-нибудь с ним будет заценить.
Sergey Matveev [Sat, 26 Dec 2020 08:17:13 +0000 (11:17 +0300)]
Lego и конструкторы
https://grumpygamer.com/lego
Рон Гилберт приобрёл себе в подарок самый большой набор Lego. А я
вспомнил про детство своё. Особенно про три конструктора.
* Железная дорога, где на батарейках был паровоз и переключаемые
стрелки. Не такая большая как в фильмах показывают с полкомнаты,
конечно же. Но помню что играл в неё, даже когда родители ещё утром не
просыпались.
* Металлический конструктор со всякими винтами, гайками, колёсиками,
блоками и рычагами. Такой конструктор много у кого был и все
вспоминают с большой теплотой о нём. Причём даже по схеме я не всё мог
собрать.
* Лиго. Именно "Лиго", а не "Лего". По сути одно и то же, но Лиго стоил
значительно дешевле, запросто являясь вообще нелегальной подделкой.
Качество пластика конечно было ощутимо хуже, но ребёнка это разве
волнует? Тем более что Лего бы родители не смогли бы позволить купить.
А Лиго это огромная такая коробка с тьмой самых разных деталей, среди
которых и куча валов с зубчатыми колёсами. Вот из Лиго я делал тьму
всего. Особенно почему-то запомнилось что я делал модель Вавилона-5,
который тогда показывали (хотя я поклонником точно никогда не был
этого сериала). И Лиго наверное больше любит потому что в ней быстрее
можно воплощать идеи и всё менять, чем в металлическом конструкторе
где ещё нужно всё постоянно крутить и крутить.
https://habrastorage.org/getpro/geektimes/comment_images/c95/f88/e08/c95f88e082e1406ef84abdae3bd9c850.jpg
Офигеннейшее изобретение человечества эти конструкторы!
Sergey Matveev [Sat, 26 Dec 2020 08:10:12 +0000 (11:10 +0300)]
Ещё кто-то использует NNCP
https://changelog.complete.org/archives/10163-rehabilitating-asynchronous-communication-with-nncp-a-cross-between-tor-ssh-and-uucp
Внезапно в своих feed-ах увидел как человек описывает своё использование
NNCP. Причём именно для чего он и предназначен: store-and-forward
передача больших объёмов данных. А сам человек из тех кто использует ZFS
и даже ленты. Приятно что отметили хорошую документацию проекта.
Sergey Matveev [Fri, 25 Dec 2020 17:52:08 +0000 (20:52 +0300)]
Cthulhu merge в git
https://www.destroyallsoftware.com/blog/2017/the-biggest-and-weirdest-commits-in-linux-kernel-git-history
Статья про причудливые коммиты в Linux.
Merge коммит с 66 родителями. Это уже не octopus merge.
Sergey Matveev [Fri, 25 Dec 2020 16:12:20 +0000 (19:12 +0300)]
Год прошедший
Уже традиционно надо подвести итоги года моей жизни.
Этот год меня удручил больше прошлых.
* Профессиональное выгорание. И "восстановления" сейчас до сих пор нет
(некоторые говорят что у них и спустя годы возврат производительности
так и не происходит). Настолько бесполезного года в плане работе у
меня не было никогда. Буквально никогда: я вообще ничего не сделал за
этот год весомого полезного, хотя задачи интересные и желанные.
* От бывшего коллеги, мнение которого было ценно, неожиданных
нелицеприятных вещей узнал, после чего почти ни с кем из прошлой
команды не общаюсь. Пересмотрел своё отношение к людям в целом
* Научился ли я вообще хоть чему-нибудь в этом году? Единственное что
приходит в голову -- redo. И goredo это единственное что новенькое
написал из личных проектов. Наверное можно сказать что это год redo.
* Плюс начал программировать на Си. Что в целом нравится. Но пока ещё
никакого полезного выхлопа (чтобы написанное начало использоваться
где-либо).
* Обнаружилось что зрение дико упало, причём с сильной разницей по
глазам. Сменил очки, а то даже минимума, формально необходимого для
жизни, не было.
* Из-за карантина, только в начале года был на нескольких концертах.
Жутко скучаю по ним! Да и за билеты вряд ли увижу деньги, что не малые
потери.
* И никуда не ездил -- не то чтобы в Крым какой-нибудь, но даже в Нижний
Новгород не вышло. Только в Москву и выбирался.
* Пару недель пожил с собаками. И неделю с кошками -- что для меня было
совершенно новым опытом.
* Ставил себе условие чтобы пройти AMFV и Planetfall игры, но после
первой части в AMFV так и не сдвинулось дело.
Но в целом и не сказать что что-то сильно плохо, кроме выгорания (ведь
профессиональные умения это единственное чем я ценен был). Родные и
друзья здоровы, барбосы здоровы -- это главное. Путин здоров, новое
правительство работает, работа для инженеров есть, импортозамещение идёт
нешуточными шагами. Третья мировая из-за террористических атак со
стороны США и Израиля не началась.
Sergey Matveev [Thu, 24 Dec 2020 11:31:59 +0000 (14:31 +0300)]
ExFAT не позволяет использовать " в имени файла
https://en.wikipedia.org/wiki/ExFAT
Внезапно сегодня открыл для себя для exfat не даст записать файлы с
двойными кавычками в имени файла. Коих у меня прилично среди аудиокниг.
А ещё файлы с двоеточием тоже не прокатят (тоже полно). Microsoft всё
равно найдёт возможность поднасрать людям.
Sergey Matveev [Thu, 24 Dec 2020 09:51:21 +0000 (12:51 +0300)]
Что ненавижу в Си
1) Когда записывают if/for без фигурных скобок. Да, это 1-2 строки
экономит, но когда надо вставить ещё какую-нибудь команду, например
print для отладки, то начинаются пляски с добавлением. А ещё не всегда
замечаешь что фигурных скобок нет, вставляешь print, и только он после
if срабатывает, а штатная, следующая после него команда, уже находится
вне if.
2) В целом ненавижу как возвращается успех/не успех выполнения функи.
Такое впечатление, что половина людей/фунок считают int=0 успехом
выполнения, а половина int≠0, и ещё меньше нуля отдельная категория. И,
как правило, по названию функи не поймёшь что от неё ожидать. Вот если
cmp, то скорее всего 0 означает равенство. Вот только фиг -- есть и
исключения. Если функа называется is_equal, то точно стоит ожидать что
возвращает 1 при равенстве, чтобы можно было записать if(is_equal), но
это редкость встретить такие говорящие названия. Ну и лично я, когда
вижу, восклицательные знаки, то это ассоциируется с чем-то негативным,
отрицательным, хотя 100500 мест уже видел где if (!...) это проверка на
успешность выполнения. Плюс бесит отсутствие ЯВНЫХ указаний что
ожидается от проверки (==0, >-1, !=0, и т.д.) -- но это касается также и
кода для Python, где видел тьму ошибок совершаемых из-за этого. А ведь в
Unix return code = 0 это успех, хотя в Сях оно eval-ится в false.
После этого понимаю насколько Go всё же молодец тем, что if проверяет
только и только булевы выражения, а не эти неявные преобразования в них.
Если какие-то функи возвращают NULL, то это значит что не успех. А в чём
ошибка? Или глобальные переменные смотри или в, указанную отдельным
аргументом, переменную с результатом смотри. Или >0 -- успех, ==0 --
такая-то ошибка, <0 -- другие такие-то ошибки.
После этого особо стал ценить задумку с error типом в Go. Вообще в Сях я
по сути пишу как на Go. Практически все функи возвращают структуру
которая как-бы является error-ом, внутри которого есть .code возможно
говорящий что ошибки не было. Все функи возвращают error этот, почти без
исключений. Это и возможность кучу дополнительной информации передать
сопутствующей ошибки. Код везде становится очень простым из серии:
err=MyFunc, if(HasErr(err)).
Ещё я всюду и везде делаю не просто указатели на массивы, но и рядом с
ними size_t размер данных. А в идеале вообще можно и нужно бы было
делать struct из указателя и размера, по сути делая недо-slice из Go.
Для входных read-only данных это const size_t, а для выходных это
size_t*, куда записывается кол-во данных записанных, или возвращается
ошибки и записывается сколько данных в dst нужно иметь, но не хватает.
Особенно видя OpenSSL код, я ужасаюсь кучей потенциальных проблем
которые может вызвать всё это отсутствие указания явных размеров и как
нужно доверять разработчику. Собственно, понимаю что с таким кодом
ненавидеть Си -- благое дело и здоровая реакция.
Отдельная боль это конечно очистка данных при выходе из функи, при
ошибках. Если в Go хотя бы есть garbage collector, то в Си нужно не
забывать освобождать память. В Go хотя бы есть defer или, как минимум,
анонимные функции. В Сях нужно очень аккуратным быть. Я делаю
int needCleanup = 0 переменную, а дальше с каждым действием требующим
"очистки"/освобождения, её инкрементирую (if (malloced == NULL);
needCleanup++). А при очистке декрементирую (free(...); needCleanup--) и
вставляю assert(needCleanup == 0) перед каждым return-ом. Костыль,
недоверие к самому же себе, но этот подход не раз уже окупился у меня на
практике.
Sergey Matveev [Thu, 24 Dec 2020 08:03:09 +0000 (11:03 +0300)]
LLDB нравится
http://lldb.llvm.org/
Последние много использую LLDB и с ним очень приятно работать!
Во-первых, любо что не надо ставить GDB, имея полностью non-GNU
окружение. Во-вторых, в LLDB синтаксическая подсветка и куча всего
разукрашенного, что помогает работе. Не знаю схожи ли они по
возможностям или GDB всё же мощнее, но LLDB для моих нужд хватает с
лихвой. Нет правда интеграции с Vim-ом -- GDB протокол общения в LLDB не
заложен.
Есть некоторые неприятные вещи, типа необходимости указывать номера
строк и смещения (для memory read команд) через аргументы к функции. Как
программист я понимаю что это упрощает парсер, но удобству чуть вредит.
Но чтобы расставлять breakpoint-ы, то для Vim просто сделал штуку
самостоятельно высчитывающую строку для LLDB:
http://www.git.stargrave.org/?p=dotfiles.git;a=blob;f=vim/.vim/plugin/whereami.vim;h=8c55eded5f032db1fed06e8819392f70a01c70a3;hb=HEAD#l8
Sergey Matveev [Wed, 23 Dec 2020 19:57:22 +0000 (22:57 +0300)]
Кот там
https://www.yaplakal.com/forum7/topic2069077.html
На Модели для Сборки в том числе такие короткие рассказы на несколько
минут читают. Нравится мне когда забавно смешивают и что-то очень старое
(домовых) и современное. И ведь кстати домового я сам повесил (не
самого, а за верёвочку) при входе. У родителей домовой в квартире тоже
водится в коридоре.
Относительно недавно даже спорил что домовой и барабашка это нифига не
одно и то же. И всякая Wikipedia говорит что я прав. Барабашка не
позитивная штука, более того, вообще в XX веке в СССР появившаяся. А
домовой, как и Леший -- не обязательно добрый, не обязательно злой.
Sergey Matveev [Wed, 23 Dec 2020 16:53:13 +0000 (19:53 +0300)]
Toshiba НЖМД NAS N300
Временно в руках оказался сабжевый диск. Собственно, его я заполнял
рандомом (cd2aaf4bf3c195d45e6ffcd59145decc4e9d7a5f), чистил и проверял.
Первый диск дома который более 200 MBps последовательной записи/чтения
скорость имеет. SMART его смотреть одно удовольствие: столько всего есть!
Очень приятное впечатление оставляет.
Сейчас я для себя даже делаю заметку что присматриваться стараться к
Toshiba дискам бы, ибо с ними у меня только самый положительный опыт
был. Hitachi/HGST до этого были моим кумиром, но, говорят, что сейчас
они уже не те пошли, хотя на практике у меня с ними проблем ещё не было.
Так то я штатно покупал Western Digital (главное не Green!), но и
Toshiba не сильно дороже, зато один SMART какой приятный! Главное чтобы
не Seagate.
Sergey Matveev [Wed, 23 Dec 2020 12:04:41 +0000 (15:04 +0300)]
vi то оказывается поддерживает тэги тоже
Я вообще стараюсь дифференцировать vi и vim когда упоминаю какие-то
фичи. Большинство забывает что есть масса vi версий, а не этого жирного
монстра vim. И в FreeBSD именно (n)vi стоит, никаких vim. И я на работе
как-то даже был удивлён что некоторые не могут работать в vi, ибо отдают
исключительно vim-specific команды. Хотя у меня даже не сразу приходит
осознание что я не в vim -- работаю, значит, "канонично". Так вот nvi
оказывается поддерживает ctags tags из коробки (который тоже идёт из
коробки в FreeBSD).
Sergey Matveev [Wed, 23 Dec 2020 07:39:28 +0000 (10:39 +0300)]
Бесшумный мощный ПК
https://fabiensanglard.net/tb3/index.html
https://fabiensanglard.net/the_beautiful_machine/index.html
Не часто встречаю интересные компьютерные установки чтобы глаз зацепился
за них. И сам ПК интересен своей радиаторной системой и отсутствием
вентиляторов (хотя мне казалось что вентиляторы с большим диаметров
бесшумны -- или такой уровень шума всё равно не считает отсутствием?). И
как всё подвешено везде и спрятаны провода.
Sergey Matveev [Tue, 22 Dec 2020 21:26:56 +0000 (00:26 +0300)]
Быстрое заполнение диска рандомом
Если нужно заполнить диск рандомом (перед тем как отдать, сделав
заполнение нулями или просто для проверки), то dd if=/dev/urandom делать
не стоит для больших скоростей, ибо под FreeBSD используется полноценная
Fortuna PRNG, потребление и ротирование энтропии и у меня скорость
работы где-то 70-80 MBps, что не может насытить современный SATA диск.
Можно использовать (go)hpenc утилиты для генерирования более быстрого
рандома, но я делаю проще:
это конечно не запишет рандом в начало, так как там будет заголовок
GELI, но это уже можно "по старинке" перезаписать. При этом по сути всё
будет упираться в скорость AES-XTS (по умолчанию), который на
современных Intel процессорах и ускоряется ещё (поэтому в CPU не
упереться). А рандом будет по всему диску, так как хоть данные и ключ
одни и те же, но XTS в качестве tweak-а принимает порядковый номер
сектора, который везде будет разный. Вообще и размер GELI сектора можно
выставить большего размера, что ещё сократит нагрузку на CPU.
Sergey Matveev [Tue, 22 Dec 2020 19:32:22 +0000 (22:32 +0300)]
Шпионаж амишей
https://textfiles.libsyn.com/the-amish-shareware-episode
У Jason Scott интереснейший выпуск подкаста где, как выяснилось (хотя и
нет 100% уверенности, возможно это даже был розыгрыш), в коммуне амишей
выделили человека для того, чтобы он дал прослабление себе и начал
работать с компьютерами. Он даже поднял BBS-ку и общался с людьми, плюс
собирал кучу shareware. И каждый год, встречаясь со старейшинами,
докладывал и показывал как общаются и чем живут люди в окружающем мире.
Амишевская разведка. А когда его "служба" шпионская закончилась, то он
Jason Scott-у решил отдать все свои накопления ИТшные.
Sergey Matveev [Tue, 22 Dec 2020 19:26:05 +0000 (22:26 +0300)]
broot заменяет TOML на Hjson
https://dystroy.org/blog/hjson-in-broot/
Что такое broot я понятия не имею, но со всем остальным прошёл
аналогичный путь как и автор: JSON, INI, YAML, TOML... И точно также
аналогично, даже переписав NNCP на TOML (где конфиги далеко не в
несколько строек могут быть), убедился что TOML не для людей. Он прост
для работы компьютером, но для человека... нет уж. Hjson действительно
отличнейший компромисс во всём что я видел.
Sergey Matveev [Tue, 22 Dec 2020 10:51:41 +0000 (13:51 +0300)]
Как индексируется исходный код?
https://lobste.rs/s/ujr9mg/how_do_you_index_code_your_projects
Автор вопроса описывает свой use-case:
* Fuzzy find and open a file in the project (FZF :Files or Ctrl+P)
* Fuzzy find and jump to line in the open buffer (FZF :Lines)
* Grep the project and jump to line (FZF :Rg)
но прыгать на нужные "символы" (определения фунок и прочего) было бы
очень здорово. Когда-то он использовал vim-gutentags, но это медленно
для больших проектов и нужно не забывать про файл с тэгами.
Да, создание тэгов для больших проектов может занять время (у меня
наверно самые большие проекты по 10-15сек индексировались), но делается
это ведь достаточно редко. Даже с активно разрабатываемым проектом не
факт что за целый день я запущу переиндексацию (инкрементально вообще
никогда не пробовал). Так что это терпимо. Меня больше напрягает размер
этого файла по несколько мегабайт в лёгкую. И когда мне надо работать с
OpenSSL и libtasn1 кодом, то я просто делаю символические ссылки на их
исходник в своём проекте и ctags их отлично индексирует тоже.
Зато его простота, возможно генерировать хоть руками и интеграция в Vim
из коробки -- это стоит того! Достаточно узнать несколько команд для
навигации по тэгам и вот уже из коробки можно удобно работать с тьмой
языков программирования, не ставя для каждого свои уникальные плагины
или ожидать наличия LSP (в котором и прыжки по определениям не факт что
будут), который у меня в любом случае (ну кроме Go) ещё и медленнее
будет работать. Даже при наличии работающего goto-definition в LSP я всё
равно не использую его возможности (1ae39d6ffa08741a2564f3e095508ce49b11bf03),
как минимум, ради скорости (интерактивного перехода).
Для Python я ни у одного человека с Vim-ом не видел чтобы их
language-aware плагины достойно прыгали на определения. Даже знакомый с
Emacs-ом всё равно "путешествует" по коду через тэги. Конечно, всё ещё
зависит и от программы которой создаются эти тэги. Я недавно перешёл на
Universal Ctags (31a56f5de0234738b454049f5a18a8d8b65a11a3) потому что
Exhuberant не знал ничего про Go.
Для управления tags файлом я давным давно написал функу помощник и
никаких плагинов никогда не использовал за ненадобностью:
http://www.git.stargrave.org/?p=dotfiles.git;a=blob;f=vim/.vim/plugin/ctags.vim;h=a76e736dc4f8528ee3ca7d9ae4569dcbc3ff80ed;hb=HEAD
Где-то в корне проекта надо самостоятельно создать "tags" файл (touch
flags), а дальше вызвать ":Ctags ЯЗЫКИ" ("C,C++", "Go", "Python", и т.д.).
Вот и всё что у меня есть на эту тему. А дальше штатные встроенные
команды для тэгов.
Автор использует FZF для поиска файлов. Не приживались у меня как-то все
эти fuzzy finder-ы. Но мне очень нравилось как работает дополнение пути
в zsh-е и я использую самописный плагин для вызова zsh, осуществления
дополнения в нём: 72bfea8fec7934c5c70a6a6795e48b8c8c9e920c
http://www.git.stargrave.org/?p=dotfiles.git;a=blob;f=vim/.vim/plugin/zshfe.vim;h=fd5e5b14616596802f7eaf01e804e34e0eadb936;hb=HEAD
http://www.git.stargrave.org/?p=dotfiles.git;a=blob;f=vim/.vim/plugin/zshfe.zsh;h=0dfcd68e96761bff887a860988e5ad7b1338322a;hb=HEAD
Выглядит ужасно (vim запускает subprocess zsh, который в свою очередь
запускает pty внутри которого другой zsh, скармливая ему искомую строку
и tab, как будто это пользователь ввёл), но работает очень хорошо,
регулярно использую.
Для открытия FILE:LINE:COL строк использую самопереписный:
http://www.git.stargrave.org/?p=dotfiles.git;a=blob;f=vim/.vim/plugin/file_line.vim;h=65962d2f9fc8d2c0e77aec4f1bc0c5149020032b;hb=HEAD
Для открытия выхлопа команд (в вышеуказанном формате) в консоли:
http://www.git.stargrave.org/?p=dotfiles.git;a=blob;f=bin/bin/qq;h=250645a664e6476d699ad4ae135a2e5ee943207d;hb=HEAD
Для перехода между буферами в которых FILE:LINE есть: родные возможности
когда можно ввести только часть имени буфера, через одно нажатие tab-а:
http://www.git.stargrave.org/?p=dotfiles.git;a=blob;f=vim/.vimrc;h=f26cf6ef1857670c6695eb36a7f7bdad19e6ea65;hb=HEAD#l162
Ну и поиск по директориям/проекту через вызов :vimgrep или git grep, но
через удобные самописные обёртки, сразу же делающие и экранирование
нужное и открывающие quickfix:
http://www.git.stargrave.org/?p=dotfiles.git;a=blob;f=vim/.vim/plugin/grep.vim;h=e0878e7e2186e0fad352054a25b88cb79244b270;hb=HEAD
http://www.git.stargrave.org/?p=dotfiles.git;a=blob;f=vim/.vim/plugin/ggrep.vim;h=7b52921113ff525e61bca15bf3c45828d7fa4f9a;hb=HEAD
Sergey Matveev [Sun, 20 Dec 2020 15:05:28 +0000 (18:05 +0300)]
Old-games.ru в музее ретрокомпьютеров Яндекса
https://www.old-games.ru/news/96192.html
Узнал что в музей ретрокомпьютеров Яндекса даже вовсю школьников
регулярно водили (до карантина). Тоже первая мысль -- а будет ли им
интересно? Но говорят что всегда найдутся с горящими глазами. А то у
многих школьников музей это синоним скуки.
Чаще всего ломаются конечно конденсаторы, потом память, ну и, очевидно,
винчестеры. Насчёт современных конденсаторов ничего не знаю, ну а то что
первым делом летят диски и память это и в современных аналогично.
Sergey Matveev [Sat, 19 Dec 2020 17:50:02 +0000 (20:50 +0300)]
Похудел
Уже которую неделю я ем мало, так что вечером урчит (но терпимо). Вес
конечно всё равно далёк до того каким я обычно был (дрыщом), но сегодня
мама сказала что у меня пропали щёки. В общем, какая никакая, но сила
воли у меня есть и вес получается сбрасывать.
Sergey Matveev [Sat, 19 Dec 2020 11:06:34 +0000 (14:06 +0300)]
Вакцина "Чувак"
https://lenta.ru/news/2020/12/19/chuvak/
https://ria.ru/20120330/609056634.html
https://ru.wikipedia.org/wiki/%D0%A1%D0%BB%D0%BE%D0%B2%D0%B5%D1%81%D0%BD%D1%8B%D0%B5_%D0%BD%D0%B0%D0%B7%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_%D1%80%D0%BE%D1%81%D1%81%D0%B8%D0%B9%D1%81%D0%BA%D0%BE%D0%B3%D0%BE_%D0%BE%D1%80%D1%83%D0%B6%D0%B8%D1%8F
"Чумаков" + "вакцина". А мне нравится как у нас названия строятся. Шифр
Кузнечик: Кузнецов, Нечаев и компания. Шифр Магма. Хэш Стрибог. Когда-то
была шифровальная машина "Фиалка".
В статье на ria.ru упомянули про "лимонку", но без подробностей. А я вот
знаю что она в честь капитана Лемона, а не потому что похожа на лимон,
как граната на гранат.
Вот назвать вооружение всякими Пантерами, Гепардами и Тиграми каждый
может. А у нас цветочки любят. Всякие миномёты, пулемёты, пушки, гаубицы:
Гиацинт, Тюльпан, Пион, Гвоздика, Акация, Василек. Обидно, наверное,
быть "накрытым" Тюльпаном, а не каким-нибудь "Тигром".
На грани чёрного юмора, как мне кажется, Волнение (термобарический
снаряд), радиопеленгатор Улыбка и Позитив, кассетный снаряд Украшение,
химический снаряд Ласка. Садизм какой-то уже, но у меня уважение к тем
кто придумал эти названия.
С названиями животных уже всё как-то понятно. Но вот "бесшумный
автоматно-гранатометный комплекс" названый Канарейкой это странно: они
слышали канареек то? У нас много лет они жили в квартире. Они легко
закладывают уши от громкости (хм, да, после этого уже всё плохо слышно).
* "Полуфинал" — неконтактный взрыватель
* ручной огнемет "Приз"
* тяжелая ТРС станция "Диагноз"
* бронетранспортер "Буйность"
* программно-технический комплекс "Тонус"
* медицинская машина для ВДВ "Травматизм"
* 40-миллиметровый выстрел "Подкидыш"
* "Газетчик-Е" — средство защиты радиолокационных станций
* "Подзаголовок" — комплекс обеспечения радиоэлектронной совместимости
* "Абзац" — 220-миллиметровый агитационный реактивный снаряд
* "Курьер" — подвижный грунтовой ракетный комплекс
* "Стюардесса" — автономный радиолокатор
* 30-миллиметровая авиационная автоматическая пушка "Балеринка"
* МБР "Молодец"
* 55-миллиметровый корабельный семиствольный гранатомет "Огонек"
* тяжелая огнеметная система "Солнцепек"
* 220-миллиметровая тяжелая огнеметная система "Буратино"
* бронежилет "Гжель", "Визит"
* контрольно-проверочная аппаратура "Буковица"
* 40-мм гранатомет-лопата "Вариант"
* пехотная лопата "Азарт"
* наручники "Нежность"
* автомобиль УАЗ "Шалун"
* светозвукошумовая граната "Экстаз"
Sergey Matveev [Sat, 19 Dec 2020 10:55:47 +0000 (13:55 +0300)]
Символические ссылки и CWD/PWD
https://unix.stackexchange.com/questions/79571/symbolic-link-recursion-what-makes-it-reset/79621#79621
http://harmful.cat-v.org/software/symlinks
Для goredo мне отправили патч
http://www.git.cypherpunks.ru/?p=goredo.git;a=commitdiff;h=79b9219363d2f69f8fd209ec5ee3794759fa7396
чтобы использовать os.Getwd() вместо системного вызова getwd(), ибо,
когда рабочая директория находится в иерархии с символическими ссылками,
то, из-за того что getwd() возвращает физический путь, вычисление
относительного пути до целей начинает содержать массу ../../ всяких.
Насколько понял, когда есть символические ссылки, то всё может
происходить недетерминированно, ибо появляется не чёткая иерархия в
файловой системе, а граф, где есть не один путь "следования". Ссылка на
stackexchange содержит описание работы getwd() и того, что внутри
shell-а запросто есть и своё понимание "логического" пути, с которым и
идёт работа для удобства пользователя. Вне shell всё может быть совсем
по другому.
Опять же, насколько понял, для redo действительно лучше просто
использовать os.Getwd() и дальше уж "как повезёт". Среди тестов взятых
из apenwarr, ровно в одном ровно одну проверку я закомментировал,
связанную с хождением по иерархии где есть символические ссылки. Немного
повозился с этим тестом снова, но... в интерактивном режиме zsh
redo-ifchange ведёт себя одним образом, не в интерактивном уже другим.
/bin/sh работа тоже как-то отличалась. В общем, тест явно делает
ожидания от поведения именно shell-а, а не реализации redo (ну или
совокупности какого-то поведения shell и реализации). Чёрт с ним.
Sergey Matveev [Sat, 19 Dec 2020 10:31:12 +0000 (13:31 +0300)]
Посмотрел кучу фильмов за последние месяцы
Как писал прежде, далеко не о всех хочется упоминать, но почему бы и нет.
* Аэроплан
https://ru.wikipedia.org/wiki/%D0%90%D1%8D%D1%80%D0%BE%D0%BF%D0%BB%D0%B0%D0%BD!
Я любитель комедий с Лесли Нильсоном (Голые пистолеты и прочее), хотя
они и на любителя. А в этом фильме его роль очень небольшая. Но мне
фильм понравился. Ведь и режиссёры тут которые снимали "пистолеты"
* Суп с капустой
https://ru.wikipedia.org/wiki/%D0%A1%D1%83%D0%BF_%D1%81_%D0%BA%D0%B0%D0%BF%D1%83%D1%81%D1%82%D0%BE%D0%B9_(%D1%84%D0%B8%D0%BB%D1%8C%D0%BC)
Ну... просто добрая комедия с Луи де Фюнесом. Где он с другом улетел
вообще на другую планету
* Татуированный
https://ru.wikipedia.org/wiki/%D0%A2%D0%B0%D1%82%D1%83%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9
Ещё одна комедия с Луи де Фюнесом. Но в ней у меня остался осадок
того, что как-то уж больно быстро этот торгаш искусством проникся
спокойно жизнью и покончил со своей старой
* Большая прогулка
https://ru.wikipedia.org/wiki/%D0%91%D0%BE%D0%BB%D1%8C%D1%88%D0%B0%D1%8F_%D0%BF%D1%80%D0%BE%D0%B3%D1%83%D0%BB%D0%BA%D0%B0
Ещё один фильм с ним. 42 года этот фильм был лидером проката во
Франции, до выхода "Бобро поржаловать" (571a2b18f78cdb93b3c642e2595d9c6eaa326a3d)
* Маленькая мисс счастье
https://ru.wikipedia.org/wiki/%D0%9C%D0%B0%D0%BB%D0%B5%D0%BD%D1%8C%D0%BA%D0%B0%D1%8F_%D0%BC%D0%B8%D1%81%D1%81_%D1%81%D1%87%D0%B0%D1%81%D1%82%D1%8C%D0%B5
Хорошая комедия о семье, где у каждого проблемы с головой, грубо говоря.
Но я бы не отнёс это к yet another тупой американской комедии. Не плоха
* Закон есть закон
https://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%BA%D0%BE%D0%BD_%D0%B5%D1%81%D1%82%D1%8C_%D0%B7%D0%B0%D0%BA%D0%BE%D0%BD
Понравилась комедия, но... больше добавить ничего и не могу
* Гангстеры
https://en.wikipedia.org/wiki/Les_Tontons_flingueurs
Комедия про жизнь мафиозной семьи. В целом не плохо, но скорее не
одобряю когда романтизируют бандитов. Хотя какой-нибудь "Крёстный
отец" конечно очень крут, как фильм
* Сбрось маму с поезда
https://ru.wikipedia.org/wiki/%D0%A1%D0%B1%D1%80%D0%BE%D1%81%D1%8C_%D0%BC%D0%B0%D0%BC%D1%83_%D1%81_%D0%BF%D0%BE%D0%B5%D0%B7%D0%B4%D0%B0
Неплохая комедия с Дени Де Вито
* Мужской стриптиз
https://ru.wikipedia.org/wiki/%D0%9C%D1%83%D0%B6%D1%81%D0%BA%D0%BE%D0%B9_%D1%81%D1%82%D1%80%D0%B8%D0%BF%D1%82%D0%B8%D0%B7_(%D1%84%D0%B8%D0%BB%D1%8C%D0%BC)
Только сейчас увидел как много наград и номинаций у этого фильма.
Понравилась комедия. Бросается в глаза цветовая гамма (ну и то, что
действие в промышленных районах Англии) очень напоминающая фильм
Разрыв или Большой куш какой-нибудь. Чисто по английский! Но...
впечатлил меня не так, чтобы я отдельно для него брался писать в
блоге. А вот Разрыв (a8f94961c18cb59d5ae10b72815bfda3e256521a)
атаснейшая комедия, ещё раз которую с удовольствием пересмотрел бы!
* А в душе я танцую
https://ru.wikipedia.org/wiki/%D0%90_%D0%B2_%D0%B4%D1%83%D1%88%D0%B5_%D1%8F_%D1%82%D0%B0%D0%BD%D1%86%D1%83%D1%8E
Запомнился фильм по игре Джеймса МэкВойа, который прежде у меня
ассоциировался только и только с "Особо опасен". И не только по игре,
но и просто по персонажу, вроде бы и молодой оторве, но понимающей в
людях больше многих других. Фильм хорош!
Sergey Matveev [Sat, 19 Dec 2020 10:28:13 +0000 (13:28 +0300)]
Посмотрел Уолл-стрит
https://ru.wikipedia.org/wiki/%D0%A3%D0%BE%D0%BB%D0%BB-%D1%81%D1%82%D1%80%D0%B8%D1%82_(%D1%84%D0%B8%D0%BB%D1%8C%D0%BC,_1987)
А то много где он упоминается (именно этот, а не с ДиКаприо), но я так и
не смотрел. Хотя в нём же Майкл Дуглас -- крутейший актёр! Фильм хорош!
Хотя его основная суть о том что там как волки все грызутся между собой
и так предполагалась и открытием ничего не было. "Волк с Уолл-Стрит"
куда более жёстче. Понравился, но не так что особо в восторге от него.
Sergey Matveev [Sat, 19 Dec 2020 10:14:52 +0000 (13:14 +0300)]
Посмотрел "Если..."
https://ru.wikipedia.org/wiki/%D0%95%D1%81%D0%BB%D0%B8..._(%D1%84%D0%B8%D0%BB%D1%8C%D0%BC)
Первый фильм где снялся Малкольм Макдауэлл. Подобные роли явно ему
подходят! Собственно, я только в подобных его и знаю: Заводной апельсин,
Калигула (404e4af5155e1b8a7f7c46921554f4e4a5ba64e6), Переход.
А "Если..." сейчас бы точно запретили показывать, ибо в конце вообще же
начинается массовая бойня/перестрелка с кучей трупов в школе.
И ещё Макдауэлла сложно представить в фильме чтобы он не катался по полу
с обнажённой девицей, как это было в этом фильме, Калигуле или Заводном
апельсине. А в "Если..." это была идея, судя по Wikipedia, самого
Малькольма увидеть хорошенькую актрису обнажённой.
Sergey Matveev [Sat, 19 Dec 2020 10:09:02 +0000 (13:09 +0300)]
Броузеры добавили УЦ всея Казахстана в blacklist
https://www.opennet.ru/opennews/art.shtml?num=54284
С одной стороны возмущение: какого хрена и кто они такие чтобы влиять на
решения чужих стран? Ведь точно так же Let's Encrypt это УЦ всея США. С
другой стороны -- все эти броузеры и компании США и в праве делать в
*своём* софте что хотят. Лицемерие и двойные стандарты конечно
зашкаливают, но это же США, в которой по другому дела никогда не делались.
А пользователи этих броузеров сами выбрали софт США. Я то конечно
считают что CA сертификатами должен (обязан!) управлять сам пользователь,
но этот софт решил иначе. А кому не нравится, то СПО броузеры можно
поправить.
Sergey Matveev [Sat, 19 Dec 2020 08:45:40 +0000 (11:45 +0300)]
Интервью с барабанщиком Евгением Рябченко
http://www.hitkiller.com/intervyu-yutuber-prepodavatel-barabannogo-masterstva-drammer-fleshgod-apocalypse-evgenij-ryabchenko-velikij-barabanshhik-ne-obyazatelno-dolzhen-byt-xoroshim-ispolnitelem.html
Оказывается этот барабанщик был в куче групп, живьём на которых бывал:
Belphegor, Decapitated, Vital Remains, Fleshgod Apocalypse и наверное
его не раз видел. Эх... как же хочется на концерты!
Sergey Matveev [Fri, 18 Dec 2020 14:00:49 +0000 (17:00 +0300)]
Unix beards
http://www.usenix.org.uk/content/unix_beards.html
Facial hair that all Unix experts are mysteriously compelled to
grow. The length, bushiness, and unkemptness of the Unix beard are
all directly proportional to the owner's expertise.
programming languages designed by guys with facial hair become
popular (C, C++, Basic, PERL) while languages designed by
smooth-shaven guys don't (Smalltalk, Eiffel, Scheme, Haskell,
Erlang).
Блин, а я всё бреюсь. Хотя у меня пару сантиметровая растительность на
всём лице когда-то была. Чешется (по началу), растёт криво -- поэтому и
решил сбривать.
Sergey Matveev [Fri, 18 Dec 2020 13:02:49 +0000 (16:02 +0300)]
OpenSSL -lssl библиотека
Копаюсь тут, кое чего добавляя, в -lssl. Прежде я только -lcrypto трогал
(1a696ac6c369da1e70a15ba52006f05012934df6). Не могу сдерживаться, но это
сущее адовое говно! Это Вавилонская башня из костылей. Новые алгоритмы
не просто так добавляются через всякие EVP_* -- нужно ещё и в десятках
других местах библиотеки обмазать знаниями о новом алгоритме (и речь не
про его согласование, не про id-шники, а про конкретные криптографические
действия). Весь TLS в нём это просто нагромождение if-ов друг друга
погоняющих.
Я видел устройство crypto/tls в Go. Да, там TLS 1.3 и всё остальное
сильно разделены и не много где пересекаются -- можно сказать что две
независимых реализации. Но и одна и другая довольно аккуратно и просто
расширяются новыми алгоритмами (например). Все эти EVP_CIPHER в -lssl
являются же типа интерфейсами, идея то здравая. Но только вот почему
толку от неё никакого и всё равно весь код покрыт слоем if такой-то
алгоритм, то делаем вот так, ибо потроха реализации этого алгоритма
таковы.
Sergey Matveev [Thu, 17 Dec 2020 21:18:01 +0000 (00:18 +0300)]
Github перестал использовать cookie banner
https://github.blog/2020-12-17-no-cookie-for-you/
Пишут что "никто не любит их, как же мы их убрали?". Ну должны же были
начать с того что "мы заботимся о приватности, анонимности и ради вас
только больше не следим". Но нет, сразу же после этого пишут "ЕС
требует...". То есть... только потому что кто-то начал что-то заставлять
делать со всеми этими слежками через cookie, вы (github) начали чесаться
по этому поводу? А, не, потом вы всё же пишете "we want to protect
privacy...". Так а где же раньше были, до того как вас ЕС начал
заставлять предупреждать пользователей о слежке? "После поиска, мы нашли
решение: просто не использовать cookie". Вот и у меня ощущение что
современные web-разработчики просто даже не подозревают что можно не
использовать tracking технологии или можно делать web, показывать
пользователю странички, без 100500 технологий изобретённых после HTML.
"Developers should not have to sacrifice their privacy to collaborate on
GitHub" -- эээ, а для "коллаборации" то как раз придётся
логиниться/регистрироваться и это потребует использовать cookie. Как
приватность и реальное использование (а не read-only surfing) связаны у
них?
И вот у корпораций почти всегда подобный bullshit а-ля Apple с громкими
и, главное, нужными словами, хотя это просто лапша на уши.
Sergey Matveev [Thu, 17 Dec 2020 18:03:57 +0000 (21:03 +0300)]
Uriel.cat-v.org
https://suckless.org/people/Uriel/
https://wiki.installgentoo.com/wiki/Uriel
https://wiki.installgentoo.com/wiki/Harmful_software
https://groups.google.com/forum/print/topic/comp.os.plan9/xEb4wYzfaBc
Я знал что этого человека уже нет. Но не знал что ему было всего 30 и
что он, оказывается, покончил с собой. Работал над Plan9, любил Go,
заядлый suckless.org участник, автор известнейшей страницы
http://harmful.cat-v.org/software/
На wiki.installgentoo.com не красиво написали что вот такие (harmful)
вещи могут убить человека. Но меня напрягла картинка, ибо табличка в ней
издалека пугающе выглядит в той же цветовой гамме что и мой
http://www.stargrave.org/Harmful.html а я ведь помню что текущий
cat-v.org имеет другие цвета. Но просто совпадение. Я то цвета нагло
тырил из Silicon Graphics тем.
Sergey Matveev [Thu, 17 Dec 2020 17:56:34 +0000 (20:56 +0300)]
Oh Shit, Git!?!
https://ohshitgit.com/
https://ohshitgit.com/ru
https://github.com/bsdimp/freebsd-git-docs/blob/main/doc-cvt.md
Официальная дока по миграции FreeBSD на Git содержит ссылку на ohshitgit
сайт. У него есть даже русский перевод... далёкий от цензурного, но
близкий к тому что люди говорят/думают когда обучаются git-у.
Но у всего этого есть версия и без ругательств:
https://dangitgit.com/en
https://dangitgit.com/ru ("Чёрт побери, Git" vs "Ёбаный Git")
Sergey Matveev [Thu, 17 Dec 2020 16:52:31 +0000 (19:52 +0300)]
Чистка очков
Прошлые очки я просто мыл с мылом (как можно более простым) и вытирал
чистым полотенцем (специально для них используемом). А вот с новыми
(479f6242d8a4d5e07139545c983e27f565ca5534) видно что мыло вовсю остаётся
на поверхности и полотенце лишь равномерно это распределяет. Сегодня
нашёл способ идеально их сделать прозрачными -- используя шампунь вместо
мыла и простые салфетки вместо полотенца. Пластик что ли другой совсем
в этих используется что старый способ не годится?
Sergey Matveev [Thu, 17 Dec 2020 15:34:48 +0000 (18:34 +0300)]
Косплееры
https://habr.com/ru/company/tuturu/blog/533486/
https://www.youtube.com/watch?v=lScjwHHN-NY
https://habr.com/ru/company/smileexpo/blog/410281/
Впервые посмотрел интервью, да и вообще что-то почитал про косплееров.
Такое забавное занятие, такое гиковское. Если что-то попадается на эту
тему, то бывает погляжу -- девочки то там хороши, как правило. Но это и
так забавно полной нелепостью костюмов, их непрактичностью.
А вот Анна Молева это единственное имя которое я знаю/узнаю. Ибо когда
что-то про Bioshock смотрел, то напоролся на её известнейшую фотографию
Элизабет и глаз реально зацепился глазом крутостью. И реально был
удивлён что это настоящая фотография, настоящего человека.
А в интервью тоже подчеркнула что сейчас общество потребления и
популярность это всё. Причём пофиг как хорошо ты делаешь, если не
делаешь это ещё и достаточно быстро (каждый день, грубо говоря, надо
что-то новое выстреливать). И из соцсетей выпиливалась, ибо из-за
отсутствия приватности всякие неадекватные (опасные) люди её стали
находить.
А сам кстати тоже один раз косплеил в "костюме" Бората. Практичен и не
стесняет движений.
Sergey Matveev [Thu, 17 Dec 2020 11:28:29 +0000 (14:28 +0300)]
Путин о Навальном
https://lenta.ru/news/2020/12/17/navalny/
Вот коротко и ясно он ответил, аналогично как и я считаю:
По словам Путина, «пациент берлинской клиники» пользуется поддержкой
спецслужб США. «Но это не значит, что его травить нужно. Кому он
нужен? Если бы хотели — довели бы до конца».
Sergey Matveev [Thu, 17 Dec 2020 09:26:10 +0000 (12:26 +0300)]
Торрент клиенты для Linux
https://losst.ru/luchshie-torrent-klienty-dlya-linux
10 программ и 9 GUI-шных! Linux уже не тот что был прежде :-)
rTorrent я тоже когда-то использовал... пока не наткнулся на то, что у
него в коде было жёсткое ограничение на максимальный размер то ли
торрента, то ли файла и я не мог скачать нужное. Причём торрентов
большого размера вполне себе предостаточно. После этого им не пользуюсь.
ctorrent давным давно использовал. Но он чисто классический BitTorrent.
Нет ни UDP трэкеров, ни DHT. Хотя во всём остальном нравился. Даже самой
идеей управления через простую HTML-форму генерируемую Perl-овым скриптом.
Sergey Matveev [Thu, 17 Dec 2020 08:34:44 +0000 (11:34 +0300)]
Опять в Go баги специфичные только для этого Linux
https://github.com/golang/go/issues/1435
А BSD системы ведут себя как ожидается.
Но вообще выглядит страшно: проблема известна почти 10 лет назад! И куча
ссылок на то, как много проектов имеет проблемы с демонизацией из-за
этого. Но раз это Linux-specific, то нафиг торопиться Go-шникам :-)
Хотя теперь то, после daemontools, я знаю что не нужно самостоятельно
демонизироваться, а надо запускаться под superviser-ами.
Sergey Matveev [Thu, 17 Dec 2020 08:30:17 +0000 (11:30 +0300)]
goredo замораживает систему
Забавный факт мне написали. Если в .do файл поместить Python код, но не
сделать его исполняемым, то goredo (как и redo-c и apenwarr/redo)
запустит его через /bin/sh, который проигнорирует python-shebang, увидит
import и честно запустит эту команду. Которая, из ImageMagick, делает
снимок экрана.
Sergey Matveev [Wed, 16 Dec 2020 11:18:12 +0000 (14:18 +0300)]
Датасатанисты
https://habr.com/ru/company/ruvds/blog/519522/
Уже который раз, видя заголовки о "дата сайентистах", читаю как "дата
сатанистов". А в целом задолбали использовать зарубежные слова транслитом.
Уже проще на английском сразу писать статью.
Sergey Matveev [Wed, 16 Dec 2020 08:03:58 +0000 (11:03 +0300)]
Второму свиданию "нет" из-за сумки для телефона на ремне
https://lenta.ru/news/2020/12/16/second_date/
Я всё мог бы понять почему с человеком не захочется больше встречаться
после некоторых действий, но телефон на ремне в специальном чехле/сумке
то тут причём!? И если речь про смартфон, которые все из себя здоровые
лопаты, то я скорее задаюсь вопросом про себя об удобстве его носки
просто в карманах, которые у всех или оттопыриваются или в них не сесть.
Видел наременной чехол у одного коллеги для смартфона-лопаты -- первая
же мысль об удобстве была и удивлении почему другие так не носят.
Мой Philips сотовый довольно маленького размера и его можно засовывать в
карманы джинс без проблем. Но люди уже отвыкли от таких маленьких
форм-факторов и тётя, когда надо было поговорить по моему, даже, смеясь,
спрашивала как его держать и куда говорить.
Ещё знаю что большинство женщин сразу скажет нет из-за носков с
сандалиями: 6f5406f8b42ce6f557ec3578e2541270aabd19b9
И ещё 100500 причин о которых не догадаться и не понять. Это как
программирование на Си, как минное поле по которому заставляют бежать.
Обязательно допустишь оплошность. Но Си хотя бы даёт ещё шансы исправить
программу и перекомпилировать, в отличии от женщины или мины!
Sergey Matveev [Wed, 16 Dec 2020 07:34:41 +0000 (10:34 +0300)]
Зарплата в конвертах
https://lenta.ru/news/2020/12/16/grey/
О налогах я не думаю (работа за меня занимается ими), но получать в
конверте зарплату я бы тоже хотел ради удобства: тебе сразу выдают
деньги и никуда не надо идти за ними, тем более на территорию вне
работы, зачастую ещё и с "чужими" людьми. А ещё и банкоматы бывают не
могут выдать сразу всю зарплату целиком.
Sergey Matveev [Wed, 16 Dec 2020 07:25:30 +0000 (10:25 +0300)]
Про устройство GPON в Москве
http://blog.stargrave.org/russian/bdd304a51771bf6dfabdbf31d748877112178406#comment0
Интересный, короткий и чётко описывающий принципы работы GPON-а
комментарий. Возможно я не корректно называю это GPON-ом. Возможно речь
далеко не только про Москву, но, судя по статьям, вроде именно в ней это
сильно распространено.
Sergey Matveev [Tue, 15 Dec 2020 20:41:49 +0000 (23:41 +0300)]
SONET нравится
https://computer.rip/2020-10-02%20so%20net.html
https://en.wikipedia.org/wiki/SONET
Хотел было написать какой SONET/SDH милый (so net): 81c7c6557af89e79e480b21f12a4ea97c01679cb, но это не по английски.
Только спустя несколько дней после прочтения статьи с computer.rip, до
меня дошло почему SONET так устроен и как это красиво! По сути во всех
статьях всё одно и то же написано что и тут, но иногда нужно немного
другими словами преподнести и оно раскроет тебе глаза. Уже давным давно
в мире телекоммуникаций параллельно рулили два мира: телефонистов и
компьютерщиков. Изначально последним конечно приходилось жить в мире
телефонов и их сетей, но сейчас победили компьютерщики и в LTE и 5G
используются и IPv6 несущие голос (а не как в GSM и прочих сетях: каналы
заточенные под голос передают, как уж получится, данные) и HTTP/2 вместо
SCTP придуманного телефонистами. Поэтому и SONET уже можно отнести к
истории. Но своим компьютерным умом я не мог сразу понять почему он так
устроен.
Цифровые АТС, само собой, передают звук оцифрованным. А с ISDN и сразу
из дома он идёт уже в цифре. Для хорошей по чёткости передачи речи
достаточно акустического канала в 3-4 кГц, поэтому при оцифровке частоту
дискретизации достаточно иметь 8kHz. Один канал, с глубиной в 8бит:
64Kbps для хорошей несжатой передачи речи в одну сторону. ISDN поэтому
имеет два 64Kbps канала для двусторонней связи. Сжатие не применяют в
нём, ибо усложняет железо, а значит и цену повышает.
Эти 64Kbps каналы затем мультиплексируются и передаются по всяким E1 (T1
в паре стран), которые, в свою очередь, тоже мультиплексируются,
агрегируются и передаются уже дальше вплоть до оптоволокна. Передача
данных в E1 идёт кадрами, длительностью 125мкс (те самые 8000kHz), где
находится по одному байту от/для каждого из 32-х 64Kbps каналов. Пара
каналов используется для синхронизации и управления. Очень просто,
значит и дёшево. Но, в отличии от компьютеров, тут реально льются потоки
ото всех каналов каждые 125мкс. Никаких эти заголовков, или
произвольного времени возможности передачи пакета, как в компьютерных
сетях.
А дальше это суётся в SONET. В нём тоже передача идёт кадрами каждые
125мкс. Всегда передаётся, чётко и жёстко кадр всегда будет передан. Но,
в отличии от компьютерных сетей, кадр передаётся не в виде заголовка,
после которого идут данные, а он буквально параллельно с данными идёт.
Кадр SONET поэтому удобно представлять в виде таблицы, где сколько-то
столбцов каждой строки передают данные заголовка, а остальные столбцы
несут сами данные. Часть заголовка, конечно же, содержит биты для
синхронизации, поэтому зная что каждые 125мкс мы должны видеть одну и ту
же фиксированную последовательность, мы можем ссинхронизироваться.
Зачем так? Полезная нагрузка, весь этот поток байт, перемешенный с
байтами заголовка, делится на virtual circuit-ы (VC). И заголовок несёт
информацию о них. Если у нас имеются данные для передачи, при этом мы
уже прямо сию микросекундно передаём кадр (а мы всегда их передаём,
постоянно, пускай и "пустышки" без полезной нагрузки), то мы на лету
может вставить в следующие строки кадра, в столбцы заголовка, данные о
нашем VC и передавать его. То есть, кадр буквально формируется на лету
(ведь всё же 125мкс это довольно продолжительное время!) и заголовок в
нём формируется на лету, как и данные засовываемые.
Если бы это был компьютерный кадр, то пришлось бы в буфер в памяти
накапливать данные, после этого формировать заголовок и только после
этого отправлять. Пока отправляется текущий кадр, то ещё нужно иметь
память для формирования параллельно нового. Новые приходящие данные
будут отправлены только с следующим кадром. SONET и дешевле (за счёт
отсутствия буферов) и задержки от ожидания передачи кадра нет.
Но, чтобы всё работало хорошо, тикало как часы, каждый из 8000kHz, нужно
чтобы все устройства хорошо были синхронизированы по времени. Поэтому в
SONET используются атомные часы, GPS-приёмники и подобное. С одной
стороны конечно геморрой, а с другой хороший QoS и меньшая цена
оборудования из-за ненужности буферизации кадров.
Но это (для меня) не самое интересное было и открывающее глаза. У нас
идёт оптоволоконный провод от АТС до какого-то дома. В нём много
телефонов. Так как оптоволокно очень информационно ёмкое, то от этого
дома и дальше будет идти волокно до следующего на улице. В одном кабеле
от АТС будет идти много сотен каналов (VC) несущих оцифрованный звук до
поднятых телефонных аппаратов. В дом заходит SONET кабель с кучей этих
каналов внутри, но только лишь небольшая часть из них "интересна" этому
дому, только некоторые из них предназначены для аппаратов в нём. И тут
самая красивая часть SONET: add-drop multiplexer (ADM), в который входит
кабель. Интересующие для него каналы внутри кадра(ов) являются по сути
входящим трафиком, который он копирует на внутренние E1/ISDN/whatever
каналы. Дальше передавать эти VC внутри кадра не имеет смысла, так как
больше они никому не интересны. Получается, что внутри кадра на выходе
имеются слоты вакантные. Но раз речь про телефонную связь, то она
дуплексная и симметричная -- нужен исходящий канал симметричной ёмкости.
И вакантные места исходящего кадра как-раз заполняются исходящим
трафиком с устройств этого дома. Входящие кадры, некоторые слоты в них,
немного изменяются на этом ADM, в основном на лету копируясь, даже не в
буфер, а сразу же в оптический канал в формируемый кадр (SONET --
поэтому и называется синхронной сетью). И так каждый дом, на пути
следования этого единственного кабеля, имеет ADM который "забирает"
некоторые слоты каналов и добавляет свои исходящие.
Если этот кабель замкнуть кольцом на этой же самой АТС, то она по сути
на вход получит кадры с агрегированным исходящим трафиком всех домов. По
моему очень красиво с инженерной точки зрения! И высочайший QoS и
стабильность. Чтобы не ждать пока исходящий трафик дойдёт через все
hop-ы через всё кольцо до АТС снова, можно бросить ещё одно волокно, но
с трафиком в противоположную сторону. Тогда кол-во hop-ов до и от
каждого дома будут симметричны, как и задержки для каждой стороны
трафика. А если одно из колец "порвётся", то оно автоматом просто
деградирует до первого варианта с полным проходом кольца для ответного
трафика.
Все компоненты (дискретизация звука, кадры E1/T1, кадры SONET) живут по
одному таймингу, симметричные, полнодуплексные, не требуют буферизации
(E1 буквально байты каждого канала отправляет в каждом кадре). Лучшее
качество в обслуживании для телефонных разговоров (как мне кажется, в
теории и, судя по статьям, на практике) и достаточно низкая цена для
перехода на всё это ещё уже в 80-е. Но со временем всё понижающаяся цена
компьютерных систем, их информационная ёмкость и гибкость конечно
сделали своё дело и убили телефонные технологии. И для компьютеров SONET
уже не очень, ибо, как минимум, на часто в Интернете трафик симметричный
в обе стороны и в нём просто навсего сложнее утилизировать в полной мере
ёмкость канала. А объёмы чисто компьютерных данных куда сильнее растут
чем телефонных разговоров.
Мне SONET ещё приятен тем, что он точь-в-точь похож на идею
store-and-forward NNCP сети где одну флешку передают по кругу по рукам,
где каждый забирает пакеты предназначенные для него (остальные он всё
равно дешифровать не сможет) и записывает свои исходящие для других
(собственно, первая команда в NNCP только на это и рассчитывалась --
никакой поддержки сети изначально даже не планировалось). Хотя и тут
идея, само собой, не нова, ибо Token Ring по кругу передавал токен. Но
SONET не обязан быть в кольце -- для него это одна из опций.
Sergey Matveev [Tue, 15 Dec 2020 20:37:43 +0000 (23:37 +0300)]
Итоги использования tmux popup-ов
которые я понаделал в e5f0b69a0821e3ceccc83530aea066be9a84f03b. Сегодня
понял что я постоянно ими пользуюсь. Не десятки, а возможно под сотню
раз в день. Управление музыкой, парольный менеджер, словарь (хотя это не
каждый день используется), калькулятор, календарь. Хотя календарь
вызывается относительно редко, но я с ходу не помню опции чтобы он мне
показывал начало недель с понедельника и при этом сразу три месяца
(прошедший и следующий) -- поэтому вызываю через popup ибо там сразу как
надо. В общем, menu+popup мне очень нравятся и они реально удобны тем
что не надо переключаться куда-то, да ещё открывать pane и вводить
короткие команды.
Sergey Matveev [Tue, 15 Dec 2020 20:31:07 +0000 (23:31 +0300)]
Милый
Я был уверен что "net" также переводится как "милый" или что-то из этой
серии. Смотрю в словарь чтобы убедиться, но ничего подобного. Но, благо
что у меня словарь и в немецком сразу ищет! Действительно, "nett" это
как-раз милый, славный, приятный. Удивительно как всё же немецкий я до
сих пор ещё помню, даже сам не осознавая этого.
Sergey Matveev [Tue, 15 Dec 2020 16:17:12 +0000 (19:17 +0300)]
DragonFlyBSD выпилила SCTP
https://www.dragonflybsd.org/release42/
Недавно (bbc574bb0ef6fc7eb0fbf37e3b5782d1cdd2597e) увидел что эта BSD
выпилила IPsec. Так оказывается она ещё и от SCTP избавлялась. Очень,
очень странная ОС. Хотя я и одобряю убирать и выпиливать то, что не
поддерживается автором.
Sergey Matveev [Tue, 15 Dec 2020 14:28:54 +0000 (17:28 +0300)]
Современный SQL
https://modern-sql.com/
Я вот даже не знал (да и не задавался вопросом) что сколько стандартов и
каких годов есть на тему SQL. Оказывается, большинство пишут по сути на
SQL-92, как и я. А с того времени стандарт раздулся на порядок по объёму.
Даже JSON стал его частью, в 2016-ом. Вот только бесплатно получить не
представляется возможным. Только SQL-99:
https://crate.io/docs/sql-99/en/latest/index.html
Но вообще объёмы этого пугают. Небось опять комитеты собирались и каждый
участник давай свой use-case продвигать и внедрять в стандарт. А ведь
большие размеры стандартов/спецификаций приводят и к невозможности
полной вменяемой реализации (тот же OpenXML от Microsoft, слышал, даже
они сами не реализовывают) и их использования со стороны разработчиков.
Но во вступительном ролике на сайте понравилось что SQL это вполне себе
хороший API для данных, вместо этих REST/GraphQL, с чем солидарен.
Sergey Matveev [Tue, 15 Dec 2020 13:11:30 +0000 (16:11 +0300)]
goredo 0.6.0 с apenwarr/redo тестами
http://www.git.cypherpunks.ru/?p=goredo.git;a=blob;f=t/apenwarr/README;h=ae5e7e0a23cfae6835d5ac5b49695d04e588a6e7;hb=HEAD
Вчера добавил тесты из dieweltistgarnichtso.net/redo-sh, но сегодня
решил добить тему с ними и добавить apenwarr/redo тесты. Добавил все
базовые, которые основной redo функционал проверяют. А всё остальные по
большей части apenwarr специфичны и заточены под него. Похоже что
покрывают они вообще всё что касается самого redo. Так что, goredo,
можно считать вполне себе покрытым функциональными тестами.
Sergey Matveev [Tue, 15 Dec 2020 11:28:46 +0000 (14:28 +0300)]
Дополнение zsh для *(
Очень часто использую модификаторы для путей, чтобы например только
директории, исполняемые, пустые файлы показать, отсортировать и тому
прочее (a706ddd8826b001990c7488a128862ace64924e3). Сейчас вот нужно было
отфильтровать по символическим ссылкам. Набрал "*(", а дальше не помню
как он там указывается, но нечаянно нажал tab, и мне заботливый zsh
показал возможные модификаторы. Хотя штатно я completion по сути отрубил
его мощнейший, оставив самописный вариант. Но это, видимо, его не
касается и оказалось очень удобно!
Sergey Matveev [Mon, 14 Dec 2020 19:24:35 +0000 (22:24 +0300)]
Deathspell Omega снова рулит!
https://en.wikipedia.org/wiki/Deathspell_Omega
Два года назад упоминал эту французскую black metal группу: 97bdd4d894c82ef016339178af55e4b027fdbe34. После всех альбомов Death
(97952e82afeef2d66621bdb3a0fac8f3fe35a795), среди списка директорий
увидел её и всю дискографию заслушал снова до дыр. Мало на кого похожи,
чисто авангардный black metal! Люк Лемей (frontman Gorguts) всегда их
упоминал среди любимых современных групп.
Sergey Matveev [Mon, 14 Dec 2020 19:05:05 +0000 (22:05 +0300)]
goredo 0.5.0
Вот и первый релиз goredo в котором уже настоящие баги поправлены. Из
проекта http://news.dieweltistgarnichtso.net/bin/redo-sh.html я взял
тесты, сделал обёртку над ними для запуска через github.com/chriscool/sharness.
Обнаружил неприятные баги. Все они данные бы не попортили, не обманывали
бы тем что собрали что должны -- ничего страшного. Но в некоторых
случаях просто падали бы с ошибками о не найденных .do например.
Вот только автор этого redo-sh считает что redo-always буквально всегда
превсегда должен пересобирать цель. Мол например TeX может
неопределённое количество раз пересобирать документ, пока не будут
разрешены все ссылки и номера ссылок/страниц. Люто несогласен с его
позицией. Собственно, как и apenwarr/redo реализация. Это по сути
делает always цели совершенно неюзабельными/бесполезными. Например у
меня все .c файлы зависят от .h, в котором проставляется версия кода,
которая, в свою очередь, берётся из выхлопа git-describe. Да, из-за
checksum (или redo-stamp) зависимые цели пересобираться не будут, но сам
git-describe то вызовется же. А он очень не лёгкий. В итоге простенький
Си проектик всегда будет собираться уйму времени из-за кучи git вызовов.
И я даже не представляю как в redo-sh можно хотя бы костылями сделать
желаемое поведение (при сборке "проверять" версию, но делать только один
раз). И с ходу я даже не понимаю как он использует redo-always для
сборок TeX-а... ведь в redo нет таких вещей как повтори сборку или пойми
выполнена ли она. С TeX-ом проблем вообще нет никаких и я прям недавно
как-раз делал .do цели для сборки LaTeX документа где те самые несколько
итераций пересборки нужны. apenwarr/redo предлагает просто обернуть
содержимое .do в while. Логично, разумно. И я так же сделал:
redo-ifchange report.tex
exec >&2
pdflatex report.tex
while grep -q "Rerun to get" report.log ; do
pdflatex report.tex
done
mv report.pdf $3
Возможно не супер элегантно, но и не сказать что шибко страшно, зато
никаких проблем с always целью. В любом случае я убеждён что сборка
LaTeX документа это одна атомарная цель, с точки зрения системы сборки.
А то что LaTeX-у действительно бывает нужно буквально говорить
"собирайся, пока ..." (условия о bibtex-ах, номерах страниц, ссылках и
прочем).
В общем, как всегда always цели плодят много проблем и
недоговорённостей. Лучше держаться от них подальше. Но в apenwarr/redo
(+redo-stamp) с ними жить получается, как и в goredo, само собой. Да и
redo-c благодаря checksum-ам. Но redo-sh в моих проектах был бы
неюзабелен (хотя он и так не юзабелен и не работает у меня, ибо требует
именно GNU утилиты (stat тот же) для работы).
Sergey Matveev [Mon, 14 Dec 2020 18:45:24 +0000 (21:45 +0300)]
Как Россия 20 лет развивала Интернет
https://lenta.ru/articles/2020/12/14/internet/
А я вот не застал времена описываемые в начале статьи. Точнее застал, но
сам в них не участвовал. Я никогда не был в Интернет-клубах, хотя чуть
ли не все одноклассники бывали и регулярно даже прогуливали там уроки.
Никогда не сидел в чатах и мне и сейчас не очень понятно как можно
часами там было просиживать в *real-time* общении? Я понял бы когда это
без оплаты времени (GPRS) хотя бы. Я никогда не был подключён к
локалкам, хотя видел их у знакомых и видел что там подъездами и домами
могли играть в игрушки и обмениваться всяким между собой.
Тогда я тратил время на GNU/BSD системы, изучению программирования и,
позже, попаданию в FidoNet. Первый Интернет появился через GPRS
соединение. Даже консольный mICQ тогда был. Но никакой речи о
существенном трафике не могло идти (дорого). И тогда я вовсю только
FidoNet использовал по сути. Только ближе к институту появился ADSL. К
этому времени вроде бы локалки уже начали отмирать, как и Интернет
клубы, ибо компьютеры стали сильно доступнее, вместе с домашним
Интернетом (поэтому и мы себе смогли его позволить).
Sergey Matveev [Mon, 14 Dec 2020 13:27:24 +0000 (16:27 +0300)]
Death и Чак Шульдинер
http://www.hitkiller.com/remember-the-fallen-chuck-schuldiner-na-foto-i-v-citatax.html
https://www.youtube.com/watch?v=MHkMjX2W5RMo
Сегодня день памяти Чака и его группы Death. Чак, как и преобладающее
большинство металлистов, дет-металлистов, против всякой вражды, насилия
между людьми и прочего дерьма. Любитель животных. Вообще самые приятные
и добрые люди о которых слышал в музыке это в основном всякие из
death-близких групп и грайндкора (Барни из Napalm Death чего стоит!).
Любителей бухла, наркоты, насилия в музыке конечно полно, но в кругах
вне тяжёлого метала. Под тяжёлым я не подразумеваю heavy metal (он то
самый простецкий). Вот на heavy metal концертах стереотипных пропитых
людей, которым музыка это просто предлог выбраться -- полно. Мне не
очень там комфортно было. А как дома, в максимальной безопасности,
чувствуешь только на death/grind.
Sergey Matveev [Sun, 13 Dec 2020 20:28:16 +0000 (23:28 +0300)]
Не идите дети в программисты
https://habr.com/ru/post/532794/
Если тебе не нравится программировать, то и нефиг учиться на
программиста и вообще суваться в эту сферу. Такой посыл автора. Но у
меня сразу же вопрос: а к другим профессиям это разве не относится?
Мне кажется везде лучше когда болеешь за своё дело, когда оно тебе
приносит удовольствие. Как там говорят, что в идеале работа должна быть
хобби и тебе не пришлось бы работать, а только заниматься любимым делом.
ИТ выделяется просто своей относительной молодостью и тем, что совсем
недавно только действительно заинтересованные в этой теме люди шли в
программисты. Плюс из-за (относительной) новости профессии/индустрии,
специалистов было мало и платили очень хорошо сразу же. Но это было
актуально, как мне кажется, 20-30 лет назад. А сейчас программист это
уже самая обычная рутинная профессия. Хочу подчеркнуть: в большинстве
случаев. Само собой интереснейшие проекты и задачи особенно у крутых
разрабов имеются, но это мизерное меньшинство.
Я видел не раз программистов для которых эта работа -- просто работа,
ничего более. Про неё они забывают когда уходят домой. И при этом они
отлично могут выполнять свои обязанности. Не хуже "горящих" и "болеющих".
Меня вот только возмутил комментарий где человек удивляется как
программирование может нравится, мол враки это, ведь:
Потому что программирование — это сплошная боль. От постоянных
«сражений» с машиной, которая в очередной раз ведёт себя «не так».
До сражений с «собой», потому что тяжело быть тупым, но надо хотя бы
стараться не быть им.
Отчасти безусловно всё так! Особенно если ещё и иметь дело с
проприетарным ПО, которое и по качеству паршиво и ничего с ним не
поделать, ибо, раз проприетарно, то по определению человек должен
страдать. Много чего бесит и не нравится. Но лично я получаю дичайшее
удовольствие! Не от боли, а от результата. От того что что-то делаю,
выполняю, решаю задачи (пускай даже которые сам себе ставлю (ну типа
redo на Go лучше остальных написать)). Мне нравится что я что-то творю,
чаще всего полезное. Как это всё может не нравится?
У меня вот руки из жопы растут и всё что бы я не делал руками --
корявое, сикось-накось, переделывать придётся. И вот от ручного труда у
меня никакого удовольствия. Хотя оно конечно пользу приносит в быту, но
это мучение. Наверное у автора комментария аналогично с программированием?
Возможно мне нравится, потому что у меня оно как-то да получается? Мне
нравится причёсывать код, делать его красивым, аккуратным. Чисто даже
ради эстетического удовольствия. А вот в быту -- работает и ладно, лишь
бы надёжно, а дальше забыть. Хотя вот у меня выходит делать чизкейк. И
всем нравится каким он получается. Но удовольствия процесс этот мне не
приносит. Делаю только ради других, чтобы их порадовать. Но процесс
любой готовки еды мне не люб совершенно. Зато вот например
разбирать/перебирать какие-нибудь вещи (в шкафах, инструментах, на даче
там) -- нравится сам процесс, хотя и времени отнимает и скоро опять надо
будет перебирать. А на компьютере бесконечно можно всё приводить в
порядок и улучшать. Наверное мне просто нравится сам факт приведения
вещей в порядок, чтобы на месте всё было, чтобы красиво, аккуратно.
Компьютерный мир, в отличии от материального, хорош тем что можно многое
переделывать не тратя ресурсы кроме своего времени и чутка электричества.
Слышал от одного верстальщика что ему реально просто нравится делать все
эти CSS-ы и HTML-и, ибо он сразу видит как и что выходит, аккуратно,
красиво (с его точки зрения, верстальщической, а моему Lynx-у зачастую
больно :-)). Я осознаю что это может нравится (как и готовка еды), но
сам я прочувствовать это не могу. Вёрстка для меня это боль и страдания,
без какой-либо компенсации, ибо... да насрать уже как оно выглядит,
когда пришлось ненавистью пробиваться через эти уродские технологии
Web-а, чтоб их! Короче... кому что. Но от всего можно получать
удовольствие. Те же музыканты это тоже в массе своей сплошная рутинная
работа.
Или я вот никогда не понимал удовольствие в сборке пазлов. Невероятное
количество времени на монотоннейший труд. Причём вот какой-нибудь бисер
или там рисование -- это создание с нуля всё же. А пазл это когда кто-то
взял и сломал картину, а ты её собирай. А целой нельзя было оставить?
Если совместить это с прослушиванием аудиокниги -- то можно считать что
это хотя бы время потраченное на чтение. Но я бы предпочёл просто
прогуляться на улице (проветриться), слушая книгу -- ибо пазл всё равно
к полезному делу не отнесу, а прогулка полезна для проветривания. Ровно
один пазл доставил удовольствие (на заднем плане):
http://www.stargrave.org/photoes/hezbsy.webp
Потому что 1) мне нравится pixel-art сам по себе и во время сборки его
пристальнее рассматриваешь; 2) его очень легко и быстро можно было
собрать из-за тьмы уникальных деталей и отсутствия рандомного перебора
кусочков.
Sergey Matveev [Sun, 13 Dec 2020 15:25:01 +0000 (18:25 +0300)]
Bombadillo и Gemini
https://bombadillo.colorfield.space/
https://gemini.circumlunar.space/docs/faq.html
Свеженький, UTF-8 aware, броузер gopher://, gemini://, finger. Да ещё и
на Go написанный, без проблем у меня собираясь. Мой phlog работает в нём
отлично.
С одной стороны мне конечно нравится что gopherspace не умирает, даже в
общем-то разрастается (но это наверное связано с возрастающей
доступностью компьютеров и Интернета). С другой стороны, gopher протокол
чисто технически, чисто формально, не юзабелен, так как его RFC не
разрешает что-то кроме 7-бит ASCII. Встречал strict броузеры которые
действительно UTF-8 не показывают.
Gemini, с точки зрения протокола, "закрывает" недостатки Gopher:
* non-ASCII поддержка
* MIME-типы вместо item type Gopher-а. Я это одобряю, ибо, хоть и не
компактно, но рабочий вариант по чёткому понимаю что за контент
* Добавлены коды ошибок. По идее действительно нужно и важно, чтобы
машина могла понять успешен ли был запрос
* вставка URL без хаков. Действительно, в gopher нет штатного способа
указать URL или сделать ссылку на него. Де-факто многие делают
HTML-like ответ с redirect-ом, но это костыль
* redirect-ы. Полезно, когда что-то переместилось
* domain-based virtual hosting. Ну... тут не уверен одобряю ли. Зачем на
один IP вешать несколько ресурсов? Пора забыть про IPv4 мир, пинать
кто не может из него выбраться. Адресов в IPv6 даже конечной квартире
дают уйму
* Gemini старается уйти от древовидной структуры директорий/файлов
Gopher-а. В целом мне это нравится, ибо, как и в Texinfo, оно не
всегда удобно
Основные цели Gemini это сделать нечто для тех, кто не любит слежку (web
tracking), кто устал от баннеров и кто устал ждать загрузки страниц на
своём мощном многогигабайтном amd64 компьютере.
Форматы запроса/ответа Gopher/Gemini очень простые и по сути просто
представляют отправку URI некого. Чем это отличается от "GET URI HTTP/X"?
Иметь возможность качать большие файлы (большие -- значит должна быть
докачка) я считаю необходима. Если не необходима, то рядом держать
HTTP-ноду для раздачи больших файлов? Что Gemini предлагает? Что плохого
в том, чтобы к запросу (да и ответу) можно было опционально добавить
key-value дополнительные данные, которые можно будет проигнорировать,
если не поддерживается? Чем кардинально HTTP тут не устраивает? Точнее
подмножество HTTP, которое даже на Си не сложно написать для задач
Gopherspace?
Как HTTP и HTML заставляют людей вставлять баннеры, кучу дерьма и
следить за людьми? Никто из них не заставляет. Всё это можно
использовать приватно, почти без overhead-а относительно gopherspace.
Мне нравится жёсткий минималистичный формат страниц gopher, и
text/gemini. Но что мешает передавать их поверх HTTP?
Но автор даже в FAQ имеет целый раздел "почему бы просто не использовать
подмножество HTTP/HTML"? И его ответ меня не устраивает. Он просто
говорит, что видя gemini://, точно можно быть уверенным что сейчас будет
всё открываться без говн. Но кто мешает использовать броузер без говн,
который бы не отправлял User-Agent, не загружал эти CSS и прочее? Такой
броузер реально написать за вменяемое, особенно для (X?)HTML подмножества.
Мне просто не нравится что HTTP тут не рассматривается. Уж для этих
задач он вполне себе хорош и приятен. Сам по себе со всеми chunked
encoding, pipelineing-ом и кучей других фич он конечно громоздок, но
никто не заставляет их реализовывать. Если я хочу выложить PDF-ку, то
она может занимать много мегабайт и докачка обязательна.
text/gemini одобряю в целом, хотя ещё не пробовал. Отсылка к Markdown
мне не нравится (da160c3c7b3f5393aa37f2d042f9b281264273de), но ладно уж,
там über маленький subset. Возможно добавлю в SGBlog его поддержку и это
будет ещё и gemlog-engine. Just-for-run.
А вот что мне яростно не нравится, так это обязательное использование
TLS. Пускай даже и TOFU, но обязательное использование. Нет, это ни в
коем случае не могу одобрять.
FAQ говорит что осознанно нет ничего подобного Content-Length, ибо
появление одного "расширения" сразу приведёт к другим. А тут всё так
урезано, что соблазна не будет. Опять же, не согласен. Некоторые люди
превратили HTTP/HTML в адовый ад, согласен. Но кто заставляет
"тусоваться" вместе с ними и быть как они? Нет уж, но я хочу знать качаю
я 20 мегабайтную фотографию, потому что какая-то редиска не умеет
масштабировать изображения, или это нормальная фотография на 100-200
килобайт? FAQ предлагает дать ссылку на HTTP/BitTorrrent/whatever. Снова
для меня это говорит о том, что ничто не мешает использовать HTTP.
Также в FAQ явно сказано что осознанно нет версии протокола. Типа чтобы
никогда не расширять. Я так же мог бы подумать лет 10-15 назад. Но я
давно уяснил что ВСЕГДА её надо добавлять (в протоколы). ВСЕГДА, пускай
даже и не сменится. Но у меня никогда не было случая чтобы всё равно она
да не возросла, ибо не всё можно продумать и не всё предусмотреть (это
вообще невозможно). Так и хочется сказать что это какой-то детский аргумент.
Вот для меня и вырисовывает картина такая: gopher создавали тогда,
когда, можно сказать, многих best-practices не было, да и таких вещей
как URL/URI. Им, в общем-то, всё простительно. А вот Gemini как будто
ребёнок писал с подобной аргументацией. Ведь вовсю делали и поддерживали
Gopher+, в котором всё равно появились generic key-value сущности.
И заметки https://gemini.circumlunar.space/docs/best-practices.html по
поводу TLS: пожалуйста используйте ECDHE, AES/ChaCha20 и SHA2/3...
только подтверждают это. DHE это хорошо. А *25519 было бы ещё лучше,
кроме того оно и поддерживается. ECDHE зачем рекомендовать? Вот упомянул
бы DHE и промолчал бы насчёт ECDHE -- было бы лучше. AES/ChaCha20...
допустим, упомянул, хорошо. Но писать про SHA2/3 для целостности
сообщений? Серьёзно? Не использовать AEAD? Если бы автор промолчал бы,
то было бы куда лучше.
Ну и его ответы в рассылке на тему замены TLS тоже не лучше, хотя там
Drew DeVault пришёл. Gemini это типа про "здесь и сейчас". Ну ok, он
здесь и сейчас уже не актуален одной только темой про TLS. Здесь и
сейчас требует громоздкий и сложный софт для одного только TLS. Здесь и
сейчас требует (ok, советует) ECDSA, что без комментариев.
И хочется им написать, но желания никакого ввязываться, ибо это будет
точно априори впустую, видя ответы автора Gemini. Я в блоге поэтому про
Gemini и не упоминал даже, ибо нефиг время на это тратить. Хотя написать
пару строчек всяким людям из сотен блогов на которые подписан -- делаю
регулярно. Но тут прям точно в бестолку.
Sergey Matveev [Sun, 13 Dec 2020 13:20:23 +0000 (16:20 +0300)]
Работа в Яндексе
https://habr.com/ru/post/530228/
У меня и знакомые из Яндекса есть и полно людей оттуда перешедших в
ivi, да и сам я там не раз в гостях был. Там безусловно есть
офигеннейшие специалисты (без них бы просто Яндекс не существовал).
Одного крутого спеца знаю ушедшего из ivi туда -- но там ему, вроде как,
самое место с его головой было. Они хорошо получают. А вот всем
остальным, среднячкам -- платят сильно меньше остальных мест. Студентом
там быть наверное хорошо -- ибо деньги не так ещё важны, а энергию будет
куда деть работая там безвылазно, набираясь опыта. Но, кроме крутых
спецов, никто из моих знакомых там возможность работы уже давно не
рассматривает.
Sergey Matveev [Sun, 13 Dec 2020 10:41:36 +0000 (13:41 +0300)]
RSS vs Atom
https://nullprogram.com/blog/2013/09/23/
Хотел было написать чисто от себя, но тут статья с аналогичным моей
голове содержанием. Я совершенно не понимаю почему RSS до сих пор
существует и даже более популярен чем Atom. Как минимум, я его искренне
ненавижу и не хочу, как технарь, признавать из-за грёбаного сраного
пиндосского формата дат (RFC 822). Ничего против него не имею когда оно
создавалось во времена холодной войны и вообще на заре компьютеров в США.
Но сейчас то, какой человек в своём уме его выберет? А RSS даже первой
версии создавался в конце 90-х уже.
Автор статьи ещё говорит про GUID-ы. Которые не обязательны и вообще не
GUID-ы в RSS. Поэтому понимать видел ли ты запись или нет -- запросто
вообще не выйдет, ибо для этого нет регламентов. И это RSS 2.0. А более
старые так вообще ужас, ибо item-ы находятся вне channel.
А тему возможностей (разные языки, всякие Base64 содержимые) не затрагиваю.
Sergey Matveev [Sun, 13 Dec 2020 10:28:10 +0000 (13:28 +0300)]
Попробовал UDT протокол
https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%BB_%D0%BF%D0%B5%D1%80%D0%B5%D0%B4%D0%B0%D1%87%D0%B8_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_%D0%BD%D0%B0_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%B5_UDP
https://udt.sourceforge.io/
https://tools.ietf.org/html/draft-gg-udt-03
Нашёл Go wrapper над этой библиотекой. Впервые собирал Go с C и даже кое
какого C кода в этой обёртке написал (настраивал MSS, размеры буферов).
Понравилось что пользоваться этим легко: самый обычный io.ReadWriter
сокет, который вполне себе работает. UDT4 полностью на UDP основан,
никакого TCP управляющего соединения (хотя я и не против него).
Но... одни документы/презентации говорят что UDT творит чудеса, там где
FTP при небольших потерях пакетов проседает до неюзабельного состояния.
А https://scialert.net/fulltext/?doi=itj.2009.600.604 говорит что UDT
очень далёк до насыщения даже гигабитного канала связи. И да, даже с
большим MSS и буферами, на lookpack UDT передача у меня более чем на
порядок медленнее простого TCP соединения. Лень проверять что будет на
канале с большой задержкой или потерями, но наверное будет конечно же
лучше. Но это значит что применим он только к очень особым каналам
связи, как они и заявляют. А вот http://tsunami-udp.sourceforge.net/
даже в теории должен творить чудеса, как тесты в статье и показывают. Но
я с ходу не смог собрать ни саму библиотеку, ни ничего на Go не нашёл
для неё.
Тема очень интересная в целом. Может эти UDT/Tsunami и прочее не так
популярно потому что современные TCP CC алгоритмы и возможности их
настроек в ядрах ОС достаточно хороши?
Ещё нашёл KCP библиотеку/протокол: https://github.com/xtaci/kcp-go
Который тоже предоставляет UDP надёжный ordered протокол. Но он заточен
на низкие задержки и поэтому в нём добавляется избыточность и коды
Рида-Соломона. Тоже интересная тема (хотя это же всё уже обмуслёкано в
QUIC и HTTP/3) и приятно что на pure Go всё есть.
Sergey Matveev [Sun, 13 Dec 2020 09:56:42 +0000 (12:56 +0300)]
FTP, SIP, RTMP протоколы
https://computer.rip/2020-05-25%20more%20weird%20protocols.html
https://computer.rip/2020-05-20%20file%20transfer%20pseudoprotocol.html
Все эти протоколы рассчитывались на то, что Интернет будет работать как
задумывался -- у компьютеров есть связанность между собой. Поэтому все
они используют несколько соединений (для управления и для данных). В
целом это просто, здорово, эффективно, красиво. Но так как нехорошие
люди сильно тормозят переход на IPv6, то у нас полно NAT-а, отсутствие
связанности и поэтому эти протоколы в Интернете не распространены и не
очень хорошо работают.
И поэтому у нас есть полный лютый звездец в виде HLS, DASH, WebSockets,
WebRTC и подобное. Даже не смешно что подобные задачи отправляются по
HTTP и TCP (хотя с фильмами немного спорно, ибо конечный пользователь
всё же иногда хочет видеть идеальную картинку). Автор считает что нужно
забыть про нормальные, простые и эффективные сети. Ну а я считаю что
свыкаться с этим нельзя и нужно настойчиво требовать IPv6 как минимум.
Хотя к FTP всё написанное я не отношу. Ибо FTP предполагает что
компьютеры могут по эфемерным портам протоколов связываться между собой.
А вот это я не приемлю -- ибо с какой стати, как мне firewall то
настраивать при этом? Одно дело связанность между компьютерами, а другое
дело совершенно эфемерные транспорты. Хочется SIP? В firewall говорим
про связь по чётко заданным протоколам/портам. А с FTP засада. Хотя, с
другой стороны, для FTP можно выделить отдельный IPv6 адрес (их же,
можно сказать, бесконечно) и firewall-ом разрешать на нём всё что
угодно: так что с ним вообще тоже можно решить задачу, просто для неё
всё равно без IPv6 никак.
Sergey Matveev [Sat, 12 Dec 2020 13:49:23 +0000 (16:49 +0300)]
Протоколы обмена файлами, IPsec, удалённый доступ
В моём идеальном мире между компьютерами должен быть IPsec.
Аутентифицированный, всё такое. А не костыли транспортного уровня типа
TLS per-application. Мне поэтому жутко не нравится когда протоколы
делают без возможности использования TLS (ну вроде HTTP/2 хотели же) или
когда говорят что FTP это не безопасно. Если поверх аутентифицированного
доверенного IPsec, то какие проблемы?
Кроме IPsec у меня на моих машинах гоняется и SSH. Вот зачем он мне? Для
управления компьютерами вне IPsec (его же тоже нужно как-то настроить
предварительно) конечно нужен, а в общем случае нет. Могу ли
использовать старый добрый telnetd для этого? Попробовал -- могу, вроде
бы всё терминальное (tmux там) работает. А вот все утилиты типа rlogin,
rsh, rcp убраны уже в моей версии FreeBSD. Ну и нужно думать как бы
автоматизировать telnet вход.
А если чуть подольше подумать, то вообще аутентификация по ключам (для
которых локально можно требовать парольную фразу) была бы в любом случае
полезна. telnet намекает на то, что нужно Kerberos использовать. Но у
меня с ним мало что выходило и я его боюсь. То есть SSH поверх IPsec был
бы хорош всем, если бы можно было отключить шифрование трафика, ибо
IPsec это делает. Такой опции из коробки нет. И вообще SSH это про
удалённый доступ, а это значит мало трафика, ибо интерактив для
человека. Поэтому плюнул на telnet+Kerberos идею. SSH всё равно будет
для управления out-of-band IPsec и это уже рабочая инфраструктура,
пускай и с overhead-ом, но для интерактивных сессий не страшного.
А как быть с передачей файлов? NFS работает, но это кардинальное большое
решение, не во всех случаях удобное. scp/sftp не хочется, так как это
уже серьёзный overhead на шифрование, избыточное в IPsec сети. Один файл
можно передать и просто по TCP сокету через netcat. Но продолжить
прерванную передачу нельзя, если не считать руками байты и указать их
для какого-нибудь dd при повторном запуске. python -m SimpleHTTPServer
на одной стороне и fetch/wget/curl позволит продолжить докачку.
tftp сервер просто и быстро поднимается, но всё же это уже больно не
эффективный протокол. Да и, из-за ограничений размеров счётчиков, в нём
только небольшие файлы можно передать. Хотя простота подкупает.
А какие протоколы есть для передачи нескольких файлов, для получения
списка директорий/файлов? FTP -- мамонт, не рассматриваю, хотя он
подходит. Он должен уже не одно десятилетие назад вымереть. Его два TCP
соединения -- та ещё заноза для firewall-а, да и много архаичного в нём,
совершенно не актуального и избыточного для современного мира. lftp
утилита позволяет одной командой зеркалировать целые FTP
серверы/директории. SFTP -- подходит, но, как уже писал, ненужный
overhead в IPsec сети.
Я надеюсь что 9P на практике окажется очень здоровским протоколом,
который бы и NFS наверное заменил. Но в FreeBSD его поддержка будет
только в следующем релизе.
Вспомнил про WebDAV. Который даже позволял из коробки в Windows 98
монтировать удалённые директории. Работало это на Windows у родителей не
очень -- уже не помню конкретики, но вроде просто нестабильно. Но WebDAV
чисто в теории мне нравится относительной простотой, возможностью
использовать без WebDAV клиента (curl хватит или даже броузера), всякими
докачками. В принципе годное решение. Да и всякие lighttpd/apache имеют
из коробки webdav модуль.
rsync ещё могу вспомнить, который по своему собственному протоколу может
работать, без всяких SSH. В отличии от FTP, SFTP, WebDAV -- с большим
количеством файлов/директорий он очень эффективен для зеркалирования.
Никогда не пробовал, но man говорит что и докачивать файлы может
(--append). Тоже годное решение, особенно учитывая что rsync часто есть
на компьютерах и его демон настраивается куда проще чем HTTP-серверы.
FISH https://en.wikipedia.org/wiki/Files_transferred_over_shell_protocol
мог бы быть интересен, но отдельного клиента с ходу для него не увидел.
lftp поддерживает fish://, но при этом запускает его поверх SSH насильно.
UUCP мог бы отправлять/докачивать файлы в обе стороны -- в нём есть
возможность не копировать файл в spool область. NNCP может только через
копирование. Но это уже настройка знаний между компьютерами (хотя UUCP
может и анонимным быть).
Kermit решение вспомнил. http://www.columbia.edu/kermit/ckututor.html
И Zmodem вместе с ним: https://ohse.de/uwe/software/lrzsz.html
В lrzsz даже есть сразу поддержка TCP сервера-клиента и протоколов без
коррекции ошибок (IPsec же!). Списка файлов нет. Но... по IPv4 оно у
меня заработало, а по IPv6 нет -- ругается на какой-то format3, наверное
адреса. Kermit, судя по исходникам, аналогично с IPv6 не должен дружить,
но в нём хотя бы уже и списки файлов можно было бы получать. Но так
можно накопать уже тьму другую софта, особенно ориентированного для
быстрой передачи данных (из единственного TCP соединения сложно выжать
скорость).
Sergey Matveev [Sat, 12 Dec 2020 12:42:18 +0000 (15:42 +0300)]
NFSv4.1
https://lists.freebsd.org/pipermail/freebsd-fs/2020-December/028505.html
https://lists.freebsd.org/pipermail/freebsd-fs/2020-December/028509.html
Оказывается, есть огромная между NFSv4.0 и v4.1. Мол это существенно
отличающиеся протоколы. Я то думал что там только pNFS, опциональный.
Вот разница между NFS 4.2 и предыдущими я помню что небольшая. В 4.1
вроде как меньше проблем можно ожидать. Стал у себя дома использовать
4.1 везде (minorversion=1 добавить к опциям надо). Хотя и прежде то меня
всё устраивало и всё работало, но надо будет запомнить про эту
особенность. GNU/Linux, пишут, по умолчанию автоматом последнюю версию
пытается использовать.
На v4 я давно перешёл. С одной стороны напрягает TCP, но его можно
tune-ить. С другой стороны, мне как пользователю, v4 сильно приятнее тем
что это просто TCP по одному порту и один демон. А не куча RPC, демонов,
портов в случае с NFSv3: cfbfcb542d56cd20b49d506e9f4356eafa75a286. Плюс,
сразу же в протокол встроенные возможности работы с lock-ами, что для v3
отдельно надо было поднимать. В v4 удобнее иерархию директорий в exports
настраивать.
Хотя в целом NFS конечно выглядит как монструознейший по сложности
протокол. Полтысячи страниц RFC. Тогда как какой-нибудь 9P можно по
памяти вспомнить.
Sergey Matveev [Sat, 12 Dec 2020 12:07:20 +0000 (15:07 +0300)]
Vim creep
https://rudism.com/vim-creep/
Забавная история (вымышленная, без какой-либо конкретики) про то, как
вначале человек услышал "Vim." и это изменило его жизнь. Конечно тут всё
сильно преувеличено. Хотя факт того, что даже у меня уже чуть ли не
каждая интерактивная программа имеет vi-like клавиши -- это правда.
Пользоваться Firefox без Pentadactyl стало невыносимо. Одна из причин
почему я перестал (когда ещё пользовался им) обновлять FF это то, что
этот плагин перестал бы работать, из-за регулярной смены API броузера.
В комментариях на тему Vim люди постоянно разбиваются на лагеря. Один
лагерь не понимает что в Vim такого клёвого и мощного, ведь вот в
Atom/Sublime/whatever можно сделать вот так то. А другой лагерь,
Vim-fan-ов, не может привести хорошие примеры где показать мощь Vim.
Atom/whatever любителей можно понять, ибо ресурсов, статей, сайтов
которые бы показывали тьму возможностей и финтов -- почти нет. 99% всего
что я видел по Vim это чуть ли не vimtutor. На этой работе я в Vim чего
только не вытворял с коллегами, но об этом даже в блоге не писал, ибо...
ну да, Vim, там можно круто проворачивать многие вещи -- всё это есть в
документации по сути. Нужно просто понять где и когда уместно применить
то или иное сочетание действий.
It all started out innocently enough. You experimented with it once
or twice in your first year of college, but Nano and Pico were
easier—closer to what you had already been using during high school
on the Windows machines and Macs. But as time went on and you got
more experience under your belt in the college-level computer
science courses, you started to notice something: All of the really
great programmers—the kind who churned out 4 line solutions for an
assignment that took you 10 pages of code to complete; the kind who
produced ridiculously over-featured class projects in a day while
you struggled with just the basics for weeks—none of them used Nano
or Pico.
Staying late one night to finish an assignment that was due at
midnight, you happened to catch a glimpse over one of the quiet
uber-programmer’s shoulders. Your eyes twinkled from the glow of
rows upon rows of monitors in the darkened computer lab as you
witnessed in awe the impossible patterns of code and text
manipulation that flashed across the screen.
"How did you do that?" you asked, incredulous.
The pithy, monosyllabic answer uttered in response changed your life
forever: "Vim."
At first you were frustrated a lot, and far less productive. Your
browser history was essentially a full index to the online Vim
documentation; your Nano and Pico-using friends thought you were
insane; your Emacs using friends begged you to change your mind; you
paid actual money for a laminated copy of a Vim cheat sheet for easy
reference. Even after weeks of training, you still kept reaching for
your mouse out of habit, then stopped with the realization that
you’ll have to hit the web yet again to learn the proper way to
perform some mundane task that you never even had to think about
before.
But as time went on, you struggled less and less. You aren’t sure
when it happened, but Vim stopped being a hindrance. Instead, it
become something greater than you had anticipated. It wasn’t a mere
text editor with keyboard shortcuts anymore—it had become an
extension of your body. Nay, an extension of your very essence as a
programmer.
Editing source code alone now seemed an insufficient usage of Vim.
You installed it on all of your machines at home and used it to
write everything from emails to English papers. You installed a
portable version along with a fine-tuned personalized .vimrc file
onto a flash drive so that you could have Vim with you everywhere
you went, keeping you company, comforting you, making you feel like
you had a little piece of home in your pocket no matter where you
were.
Vim entered every part of your online life. Unhappy with the meager
offerings of ViewSourceWith, you quickly graduated to Vimperator,
and then again to Pentadactyl. You used to just surf the web. Now
you are the web. When you decided to write an iPhone application,
the first thing you did was change XCode’s default editor to MacVim.
When you got a job working with .NET code, you immediately purchased
a copy of ViEmu for Visual Studio (not satisfied with the offerings
of its free cousin, VsVim).
Late one night, as you slaved away over your keyboard at your
cubicle, working diligently to complete a project that was due the
next morning, you laughed to yourself because you knew no ordinary
programmer could complete the task at hand before the deadline. You
recorded macros, you moved entire blocks of code with the flick of a
finger, you filled dozens of registers, and you rewrote and
refactored entire components without even glancing at your mouse.
That’s when you noticed the reflection in your monitor. A wide-eyed
coworker looking over your shoulder. You paused briefly, to let him
know that you were aware of his presence.
"How did you do that?" he asked, his voice filled with awe.
You smile, and prepare to utter the single word that changed your
life. The word that, should your colleague choose to pursue it, will
lead him down the same rabbit hole to a universe filled with
infinite combinations of infinite possibilities to produce a form of
hyper-efficiency previously attainable only in his wildest of
dreams. He reminds you of yourself, standing in that darkened
computer lab all those years ago, and you feel a tinge of excitement
for him as you form the word.
Sergey Matveev [Sat, 12 Dec 2020 09:42:12 +0000 (12:42 +0300)]
Неадекватный человек
https://habr.com/ru/post/532620/
Во-первых, подобную статью компании всё же наверное не стоило бы писать.
Бывают странные и не адекватные люди, хамы, невоспитанные -- но что на
них время то тратить и прелюдно, пускай и обезличенно, выносить эти
тёрки? Не хорошо когда человек плохо говорит на новой работе (тем более
во время собеседования) о старой. Как и когда вспоминает бывшую при
"новой". Также нехорошо, мне кажется, когда компания про кандидатов
своих это делает. Забавные случаи или совсем отрешённые от реальных
людей описания -- это уже другое. Хотя половина статьи это дельные
советы/выводы.
Но меня статья задела тем, что я за свою жизнь знал ровно одного
человека который бы *полностью* подходил под всё описанное тут! Сложно
поверить что такие люди бывают, что это не преувеличения, но подтверждаю
что бывают. Даже ответы этого человека (которые там в виде картинки
прилагаю) как будто написаны моим знакомым. Общение с ним --
незабываемый опыт! Поверить что есть два настолько похожих человека --
не просто, но учитывая что речь про PHP-разработку, то приходится.
Действительно существует прям такой отдельный редкий типаж.
Я вот себя вижу чрезвычайно токсичным человеком, но до этого типа мне
(надеюсь) ещё далеко. Да и вообще с годами я вроде гораздо более
сдержаннее и спокойнее становлюсь. Да и конфликты у меня, как мне
кажется, только из-за переживаний по работе (не)сделанной, а не потому
что хочется самоутвердится, кого-либо унизить или что-то из этой серии.
Sergey Matveev [Sat, 12 Dec 2020 09:27:48 +0000 (12:27 +0300)]
Интернет-кочевники
https://habr.com/ru/post/532648/
У большинства возникают вопросы к таким "кочевникам": есть ли семья
(ответ очевиден), тем более дети. У других вопрос о том, возможно ли
вообще хоть какие-то сбережения при таком образе жизни накопить -- даже
указанные автором цифры говорят что о них можно забыть. Ну и это конечно
удел только молодых, у которых ещё ничего нет, которым, как бы, нечего
терять и нечем рисковать. Вот только когда стукнет за 30, то придёт
осознание что (взято из комментария): нет семьи, нет пенсии, нет места
жительства, нет постоянных друзей.
Но у меня то первым в голове возникает другой вопрос/претензия: работа
за ноутбуком это нормальная работа? Не, я сам то исключительно за
ноутбуком проработал 8 лет, но теперь то вырос (человек резко взрослеет
после приобретения тактильной клавиатуры :-)) и понимаю что в laptop-only
режиме можно только перекантоваться временно, но не полноценно и долго
работать. Учитывая всё удручающее качество ноутбуков и их клавиатур. Это
ещё не говоря про рабочий стол/место (в комментариях верно заметили что
в кафе это всё равно не то) и музыку (один только ЦАП и усилитель у меня
весят наверное под 10кг, плюс объёмные наушники в чехле).
Sergey Matveev [Sat, 12 Dec 2020 09:18:53 +0000 (12:18 +0300)]
Посмотрел "Бобро поржаловать"
https://ru.wikipedia.org/wiki/%D0%91%D0%BE%D0%B1%D1%80%D0%BE_%D0%BF%D0%BE%D1%80%D0%B6%D0%B0%D0%BB%D0%BE%D0%B2%D0%B0%D1%82%D1%8C
А то грех не посмотреть то, что имеет невиданный успех во Франции (где
много хороших фильмов снято), обходя рекорды десятилетий. Забавный
конечно, но удивительно чем именно он так превзошёл всех остальных.
Думаю что нам, не франкоговорящим, просто не настолько понятна вся
забавность выговора и поэтому не дано это прочувствовать. Но
рекомендовать точно бы смог, есть особо смешные запоминающиеся моменты.
Sergey Matveev [Sat, 12 Dec 2020 08:10:59 +0000 (11:10 +0300)]
Посмотрел "Дед Мороз -- отморозок"
https://ru.wikipedia.org/wiki/%D0%94%D0%B5%D0%B4_%D0%9C%D0%BE%D1%80%D0%BE%D0%B7_%E2%80%94_%D0%BE%D1%82%D0%BC%D0%BE%D1%80%D0%BE%D0%B7%D0%BE%D0%BA
Выбитые мозги в телефонной будке, застреленные люди, расчленёнка,
скармливание трупа животным в зоопарке, побои беременных, драки,
суициды, секс перед животными, гомосексуальные приставания... в общем
отличная новогодняя комедия! Причём снятая ещё в далёком 1982-ом. И пишу
всё без сарказма -- мне действительно комедия очень понравилась, хотя по
сути то она довольно чёрная.
Sergey Matveev [Fri, 11 Dec 2020 07:39:24 +0000 (10:39 +0300)]
Cyberpunk 2077 бьёт рекорды
https://habr.com/ru/news/t/532448/
https://habr.com/ru/news/t/532296/
Пишут что Cyberpunk игра бьёт массу рекордов по деньгам, предзаказам и
даже на трафик неплохо повлияла. В этом году, слыша что куча знакомых
если и играет, то во всякие сетевые игры, подумал что "а не умирает ли
жанр одиночной игры, как таковой?". Ведь целые жанры исчезали из
mainstream-а игродела (квесты, IF-ы, как минимум). Делают то, что
приносит деньги, а всё остальное становится "indie" и подобным. Но
Cyberpunk намекает что рано хоронить не сетевые игры.
Впечатлён размерами игры: 100 гигабайт скачивать надо. У меня несколько
лет была 100GB SSD, сейчас несколько лет живёт 120GB. И больше то и не
нужно. А вот для игрушки бы не хватило. А если бы был HDD, то наверное
не один час бы заняла установка с него на него же. И в комментариях люди
описывают тормозит ли или нет на разрешениях в 38xx-на-что-то-там. А я
вроде так и не играл в FPS игры на разрешениях больше 800x600, ибо
железа не хватало. Doom3, как одна из последних сыгранных, игралась на
640x480 только и то, на уровне в туннелях с маской произошёл какой-то
баг и у меня показывалась картинка 50x100 пикселей наверное и играть
было невозможно (я включал god mode и просто напролом куда-то пёр, пока
не вышел из них).
Хотя Call of Duty: Modern Warfare занимает почти 250GB:
https://www.pcgamesn.com/call-of-duty-modern-warfare/install-size-200-gb
Да и остальные нехило весят тоже:
https://www.gamesradar.com/biggest-ps4-install-size-games/
Ясно где для дома NVMe пригодится.
Sergey Matveev [Thu, 10 Dec 2020 10:29:04 +0000 (13:29 +0300)]
Первый день весны
https://fantlab.ru/work204563
http://www.mds.cypherpunks.ru/Dmitrij_Gradinar-Pervyj_denj_vesny.opus
Внезапно я легко нашёл книгу о погасшем солнце, которую прежде никак не
мог вспомнить: da7fc085eee25f089ddd0bd6af5bca38afdd63cd
Sergey Matveev [Thu, 10 Dec 2020 09:07:34 +0000 (12:07 +0300)]
Mantar запись московского концерта
https://www.youtube.com/watch?v=lSrGQT8_nWk
https://www.youtube.com/watch?v=2xdze-aqK8s
https://www.youtube.com/watch?v=R1QsMZJ77FM
https://www.youtube.com/watch?v=jaSA7j4PePM
Внезапно увидел что в YouTube есть запись (всего?) концерта Mantar
(5443aff12e760fd58eb15b0d0c325b4f380d88f3). Одного из лучших и
незабываемых концертов в моей жизни.
Sergey Matveev [Wed, 9 Dec 2020 08:59:15 +0000 (11:59 +0300)]
Не привет
https://neprivet.ru/
https://gist.github.com/ValdikSS/570631cca891719a770c
https://valdikss.org.ru/smart-questions.html
https://www.nohello.com/
При обсуждении 6855f1c4e5ade25cfd4a97941ce6dab32cedb18a, вспомнились
ссылки с рекомендациями как задавать вопросы в электронной переписке. У
ValdikSS взял все эти ссылки. Вообще чуть ли не в каждом крупном проекте
ПО есть похожие рекомендации и даже шаблоны где человека *сразу* просят
рассказать суть проблемы, что было предпринято, и т.д..
Как грамотно задавать технические вопросы, чтобы эффективно общаться
и получать ответы (версия ValdikSS):
Многие молодые люди привыкли к синхронному тет-а-тет общению в
интернете, никогда не писали бумажных писем, из-за чего не умеют или
не осознают, как эффективно задавать вопросы технического толка.
Если вы хотите задать вопрос, пишите так, чтобы собеседнику всё было
понятно без дополнительного расспрашивания:
* Начните с короткой формулировки проблемы. Ёмко опишите, что не
работает или не получается сделать.
* Опишите проблему в деталях. Разъясните в сообщении, какой
результат вы получаете, а какой должен быть на самом деле. Укажите
ваше оборудование и версии ПО. Лучше написать больше информации,
чем что-то упустить.
* Опишите ваши действия, которые вы предприняли для решения
проблемы. Специалисты часто ожидают, что вы проделывали какие-то
действия для решения проблемы до того, как задаёте вопрос. Если вы
совсем не разбираетесь в теме, что даже не знаете, с чего начать —
так и напишите, чтобы не складывалось ложного впечатления, что вы
просто ленивый.
* Отправляйте сообщение и ожидайте ответа. Некоторые проблемы
требуют раздумий и длительной подготовки ответа, будьте терпеливы.
* Помните: чем точнее и полнее вы сформулируете вопрос, тем больше
шансов, что вам ответят. Уважайте собеседника, и собеседник будет
уважать вас.
И вот хорошо сказано что это реально всё не понятно людям привыкшим к
синхронному общению. Кто ничего из списка из коробки делать не будет. В
итоге эффективность работы/общения/кооперации явно невероятно низкая. И
дав таким людям email, они же и в нём будут так же писать.
И я неоднократно получал вопросы по PyGOST/ещё чему то в духе описанном
на neprivet.ru: "можно задать вопрос?", я отвечаю, через полдня мне
придёт вопрос. Меня просто даже удивляет мотивация задавать вопрос о
вопросе. Мне кажется шансы что человек вас пошлёт, не будет общаться,
будет слишком занятым, куда меньшие чем то что он пойдёт навстречу и
выслушает. Поэтому почти с 100% вероятностью инициатору придётся всё
равно написать свой вопрос. А раз всё равно писать, то зачем этот лишний
round-trip? Более того, часто бывает что инициатор думает что у него
большая проблема, требующая долгого объяснения/решения, хотя она на
самом деле такая мелочная глупая, что её решение сразу же понятно у
ответчика и не займёт много времени, как бы он ни был занят.
me: "Hi"
them: "Hello"
me: "How's your day been?"
them: "fine"
me: "Crazy weather"
them: "yeah"
me: "Do you have a second to chat about ABC"?
them: "Just a sec"
me: "Ok"
them: "Ok, shoot"
me: "Do you if PDQ about ABC?"
them: "Oh yeah, it's 123"
Sergey Matveev [Wed, 9 Dec 2020 08:32:41 +0000 (11:32 +0300)]
Как же тут не любят Ruby
http://harmful.cat-v.org/software/ruby/
Забавное собрание цитат про Ruby:
Ruby is Scheme mated with Perl in such a way that the best genes of
both failed to exert a phenotype.
ruby is what happens when some kid learns java then looks at perl
and thinks ‘I can fix this!’.
Everything you heard about Ruby being slow is not true. It’s about
twice as slow as that
Ruby performance tuning really feels like trying to get the best
miles per gallon out of a tricycle.
Ruby performance tuning also feels like trying to bail out the ocean.
At least Perl is hilarious. Ruby does not have the redeeming quality
of being funny.
irb(main):003:0> ''.methods.length
=> 176
А я ведь в 2000-х писал на Ruby и Ruby On Rails. В принципе то жить
можно было, хотя и казалось что это тоже такой Perl, где вот 176 методов
только для пустой строки. Небольшая скорость тоже запомнилась. Но особо
негатива не осталось, хотя я тогда ещё и совсем молодой был. Но когда я
увидел Django и Python, то тогда Ruby полностью забросил и забыл про него.
Sergey Matveev [Wed, 9 Dec 2020 08:27:27 +0000 (11:27 +0300)]
Посмотрел "После прочтения сжечь"
https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D1%81%D0%BB%D0%B5_%D0%BF%D1%80%D0%BE%D1%87%D1%82%D0%B5%D0%BD%D0%B8%D1%8F_%D1%81%D0%B6%D0%B5%D1%87%D1%8C
С одной стороны, это конечно не шибко то и комедия, ибо куча людей
мёртвых, сплошные измены и страшная деятельность ЦРУ. Но с другой, такая
глупость, с точки зрения стороннего наблюдателя (ЦРУ), такая фигня
выходит, просто потому что люди оказывались не во время не в том месте,
что выходит очень забавно! Собственно, чёрная комедия. Очень понравилась!
Sergey Matveev [Tue, 8 Dec 2020 19:41:14 +0000 (22:41 +0300)]
AirPods Max
https://habr.com/ru/news/t/532008/
Безусловно только Apple может предоставить наушники за 62 тыс. руб., но
даже не показать АЧХ. Ладно, даже не написано какие частоты то
воспроизводит уж. Вообще ничего про звук... ведь это же наушники, кому
он нужен? Think different! Мне казалось что начиная с 2-х тыс. руб. для
наушников это уже всё будет указываться.
Плюс ещё очень важен вес. Каждые десятки грамм, по своему опыту, знаю
что сильно влияют на возможность долгого ношения. Мои Байеры 290г
весят, а AirPods на сотню грамм больше. В них конечно и электроника и
аккумуляторы, ничего удивительного, но это точно не для долгого ношения.
Sergey Matveev [Tue, 8 Dec 2020 19:21:21 +0000 (22:21 +0300)]
Почему Vi использует hjkl клавиши, а в JS месяц с нуля?
https://www.hillelwayne.com/post/always-more-history/
Просто любопытное копание в истории почему так всё устроено. Про vi я
знал. Также ещё и факт что Esc на клавиатуре находился на месте Tab и
поэтому легче нажимался чем сейчас. Про даты я конечно догадывался что
для оптимизации, но не знал что они так заморочено хранятся в памяти.
Sergey Matveev [Tue, 8 Dec 2020 14:08:32 +0000 (17:08 +0300)]
github.com/agl/xmpp-client XMPP клиент на Go
У меня уже прилично времени нет установленного XMPP клиента. Давным
давно, я пользовался mcabber и был им полностью доволен. Одно с ним
большое но: он не поддерживает несколько учётных записей -- нужно
запускать несколько программ.
Когда Google, Facebook, ВКонтакте прикрыли возможность его
использования, то почти все люди исчезли из мира Jabber.
На работе его использовали, но из-за желания использовать мобильные
устройства, он тоже отпадает, ибо, насколько понимаю, нету для мобильных
ничего нормально работающего, кроме централизованной проприетарщины. И
на работах всех Jabber исчез. Но для всяких решений типа Mattermost и
Slack есть мосты для IRC. В ivi какое-то время были попытки использовать
IRC. На следующей работе тоже, даже использовали, так как связь с
XMPP-сервером паршивила.
В итоге я уже много лет использовал irssi и bitlbee, который снёс когда
Jabber полностью пропал даже на работах. Но всё же учётные записи у меня
остались и есть люди с которыми крайне редко, но нужно связаться через
него.
И вот попробовал xmpp-client -- для супер частого постоянного
активного использования (которого в IM-ах у меня уже много лет нет в
принципе) он наверное не очень удобен, но в остальном имеет всё что
надо. Все базовые фичи Jabber поддерживает, управляет ростером,
статусами, показывает изменение статусов собеседников, даёт
многострочные сообщения вводить, из коробки сразу же OTR автоматический.
Состоит ровно из одного бинарника, без Си зависимостей. Один JSON
конфиг, автоматом создаваемый. OTR ключ в нём же хранится, как и
отпечатки ключей собеседников. SMP OTR поддерживается. Редактируемая
строка ввода, разукрашенный вывод. В общем, для себя взял на заметку что
если нужно быстро и просто поднять клиент, то это отличный вариант. Если
не нужен MUC (тут уж другие клиенты нужны), передача файлов и подобное.
MCabber ещё надо ставить, собирать зависимости, да и конфиг править.
Bitlbee аналогично, плюс вспоминать как пользоваться, ибо его help-ы и
дока запомнились не лучшей точностью, болью и страданиями при работе с
MUC. Но bitlbee приятен тем, что для всего используется один irssi
(например), а он уже является мостом и можно несколько учётных записей
использовать.
Sergey Matveev [Tue, 8 Dec 2020 11:34:25 +0000 (14:34 +0300)]
Хлеб в холодильнике
У некоторых людей я видел такое, когда вместо хлебницы хранят в
холодильнике. И мне не нравилось что он холодный -- хотелось хотя бы
комнатной температуры. Но в итоге, с переездом, как стал жить один, сам
стал так делать. Ибо он хранится существенно дольше. Один я не съедают
батон чтобы он не успел начать портится.
Sergey Matveev [Tue, 8 Dec 2020 07:36:37 +0000 (10:36 +0300)]
Клетки Фарадея для дома
https://habr.com/ru/news/t/531850/
Люди покупают эти клетки для защиты от "вредоносного" 5G, но жалуются
что что-то сигнал плохо и ничего не работает. Ну эту новость не
переплюнет ранее написанная с амулетами супротив 5G: 19f39a3de479bc9ab31c12f2d4ff79b5d65dad41.
А вообще если нужно действительно оградить себя от как-то оказавшегося в
квартире какого-нибудь iPhone-а, который и не выключить и аккумулятор не
вынуть, то клетка бы пригодилась. Но вот у меня дома "из коробки" ни
одного места нет где бы сотовый не работал: микроволновка идеально
пропускает GSM (конечно, если её включить, то через некоторое время
сотовый точно не будет ничего передавать). Отец предложил холодильник,
но там у меня не было сомнений что дохлый номер. Коробка полностью
металлическая из под чая, закрывающаяся плотно -- ухудшает сигнал, но
всё равно он работает.
Раньше были проездные от электрички и метро -- помещал их в
собственноручно сделанный чехол с кучей фольги. Дело ещё с института
было. И вот через несколько слоёв фольги ни Bluetooth устройства, даже
вплотную к USB-приёмнику, не работали, ни сотовые, ни, соответственно,
RFID/NFC карты. А с переездом на электричке стал ездить так редко, что
использую одноразовые билеты. И с коронавирусом в метро тоже по
одноразовым стал, ибо редко вылажу.
Sergey Matveev [Sun, 6 Dec 2020 15:00:48 +0000 (18:00 +0300)]
Новая коллекция GNU проекта о запланированном устаревании
https://www.gnu.org/proprietary/proprietary-obsolescence.html
Как и ожидалось, Apple, Google, Samsung и их устройства в которые
заложены тормоза и просто неработоспособность после какого-то времени.
Не забуду свой Panasonic CD-плеер, который подарили на день рождения,
тогда же он, соответственно, был включён первый раз, а ровно через год,
буквально на следующий ДР, он просто так перестал включаться совсем
(хотя его не били и был в отличном состоянии).
Sergey Matveev [Sun, 6 Dec 2020 14:58:51 +0000 (17:58 +0300)]
Статья про квантовые компьютеры, в том числе и про криптографию
https://habr.com/ru/post/480480
В тему b9198692a94e3f931bee4b7411a84ca0a9577a02 статья о квантовых
компьютерах интересная с попытками разъяснить это на пальцах.
Sergey Matveev [Sun, 6 Dec 2020 11:44:42 +0000 (14:44 +0300)]
В Prey серверы с VGA и жёсткими дисками
В добавок к d62cebfa50b82f8e2f859ce94ee9c78e44511ae2: в одном месте там
видны стоечные серверы и их задницы. И RJ45 и VGA до сих пор всё точно
так же используются. А то находятся люди которые считают что VGA уже
сейчас умер -- надо постараться найти сервер без него! Хотя меня тоже
удивляет, что, в казалось бы, весь из себя цифровом компьютере,
продолжают использовать аналоговый сигнал для визуализации информации.
HDMI всё же дороже чем ЦАП? DisplayPort, в виду своей природы, насколько
понимаю, ощутимо сложнее устроен и требует больше "мозгов". Или HDMI всё
же действительно в целом паршиво работает, как вот у меня в ноутбуке
(да, до сих пор его иногда приходится подключать по VGA!)? Или лицензии
какие-нибудь стоять на HDMI/DP так, что проще ЦАП засовывать? Или просто
тот факт что и мониторов много только с VGA до сих пор, а их, в свою
очередь, потому что серверов/компьютеров? У меня дома ни дома, ни на
работе нет никого где бы ни было VGA. Хотя нет и ни одного монитора где
бы не было, в добавок, и DVI, в который зачастую можно HDMI конвертировать.
Sergey Matveev [Sun, 6 Dec 2020 10:28:18 +0000 (13:28 +0300)]
Может нам всё же не нужен децентрализованный web?
https://withblue.ink/2020/11/12/maybe-we-shouldnt-want-a-fully-decentralized-web.html
https://news.ycombinator.com/item?id=25312854
Человек был увлечён IPFS, хостил в нём свои творения, что-то писал,
ратовал за свободу слова, а потом решил забить на всё это и прекратить
поддерживать IPFS и связанное с ним. Мне статья понравилась тем, что
пересекаются мысли в ней с моими во многих отношениях.
Автор, по моему, всё же мешает цензуру/свободу с
централизацией/децентрализацией. Связь между ними конечно есть, но всё
же натянутая зачастую. И в централизованной системе можно обеспечивать
анонимность, конфиденциальность, безопасность. И в децентрализованной
устраивать цензуру. Но буду считать что он просто вот так эти термины
решил использовать.
Его мысли близки к моим относительно Tor-а, выходную ноду которого, не
говоря про релейную, я держал не один год. Уже не раз писал, но
повторюсь что Tor-у, как проекту, я просто не доверяю что их мотивом
является свобода/анонимность/бла-бла-бла: чисто технически у них
централизованная БД нод, централизованное управление поведением сети и
её участниками (собственно, тоже цензура), при этом нет защиты
анонимности от злоумышленника государственного уровня и ничего для этого
не предпринимается. Ответом на последнее могло бы быть: используйте I2P,
если нужна более сильная и надёжная анонимность. Но а Tor тогда что и
для чего? Я его вижу и воспринимаю исключительно как инструмент для
обхода цензуры сетевой. И исключительно для целей (ведь никто и не
скрывает что оно и создавалось и спонсировалось ВС США) пропаганды США.
Любое творение может использоваться и во вред и для блага. А основной
прогресс делают для военных целей, потом уже применяя в быту и для
благих. Tor тоже можно использовать и для благих целей, как, банально,
например просто для создания относительно доступной тогда входа для
своей ноды, которая может быть за NAT-ом и быть мобильной. Но есть
решения более для этого приспособленные -- Tor излишен. Его можно
использовать *в теории* и для многих других вещей, о которых у них пишут
на сайте. Но... для всего этого чисто технически куда лучше использовать
кучу других технологий (если забыть про размер anonymity set), типа
Freenet, I2P, GNUnet (в теории). А Tor имеет и цензуру и ничего не
делает для улучшения анонимности/whatever, ведь свою основную (как я её
воспринимаю) задачу он выполняет: обход сетевых ограничений вражеских
государств, для пропаганды и помощи оппозиционерам и сепаратистам.
Помогая Tor-у, запуская свои релейные или выходные ноды, я безусловно
помогаю честным людям, которые используют для благих целей. Но при этом
я автоматом помогаю и куда большему кол-ву людей свободословить и
подрывать стабильности гос-в, вешая лапшу на уши, промывая мозги, сея
дезинфу и распространяя слухи. И я убеждён что этих людей *значительно*
больше. В этом абзаце речь только про Tor, про ситуацию на данный момент
(ok, на момент "несколько лет назад", когда я его поддерживал).
Хорошо, возможно я заблуждаюсь и преувеличил и на самом деле людей там
больше которые его используют например для доступа к заблокированным
BitTorrent трэкерам каким-нибудь. А вот тут я считаю что нужно или
переносить по человечески BitTorrent/whatever ресурсы в overlay
цензуроустойчивые сети, или бороться со всякими уродами которые
блокируют подобные ресурсы. Ведь в основном все эти блокировки из-за
сверхбогатых корпораций которым проще просто заблокировать весь трэкер
из-за наличия на нём нескольких нелегально скопированных творений, чем
думать о том какой вред это наносит остальному. Проще заблокировать
львиную долю CDN-ов из-за наличия на них одного ресурса, забывая (и
никогда не зная, на самом деле) про то, что на них тысячи других никак
не связанных.
И вот тут мне цензура не нравится, как осуществляется. Может она совсем
не нужна? Дай волю рыночным отношениями, и "товар" будет предоставляться
теми у кого больше денег/возможностей. Сейчас вон в каждом экспортном
фильме или компьютерной игре из США (да, немного преувеличиваю)
обязательно будет черножопый пидарас трансвестит. Нужно вдолбить что это
нормально. Нужно вдолбить что семейные ценности, честь людей не стоят
ничего и нужно жить только по "рынку". Нужно вдолбить что центром мира
была, есть и всегда будет США. Вдолбить что нужно за всё мстить, есть
только сила и ничего кроме, она всем правит, а темы по доброту,
сострадание и прочее нужно табуировать. Это и сейчас льётся, хотя и не в
таких кол-вах из-за хоть какого-то, но контроля/цензуры. Сколько у нас
народу считает что COVID19-а нет на самом деле и это просто заговор. А
сколько считает что он есть? Сколько уверены что будут "чипированы"?
Сколько уверены что США выиграла Вторую Мировую? Сколько миллионов
уверены в том, что Земля плоская? За считанные дни/недели можно взять и
заставить ненавидеть всех мусульман в мире, как делает Макрон. И список
можно продолжать до бесконечности.
По хорошему конечно же людей надо учить критически мыслить, просто
мыслить, не верить домыслам, неподтверждённым фактам и прочему. Говорить
об этом легко, только сделать сложно, почти невозможно. И делать нужно
заранее, до того как им через соцсети/Tor-ы/whatever начнут вливаться
эти потоки убедительного бреда. Армию нужно вооружить, никто не спорит,
но делать это надо до того, как на неё нападут. А цензура является некой
обороной, сожжённым мостом по которому враг может пройти, которая может
хотя бы оттянуть подготовку. Я вижу как легко молодёжь "заражается"
либеральными взглядами. Вижу что людям проще поступать нечестно и
обманывать корпорации используя Tor, делая jailbrake своих Android/iOS,
вместо того, чтобы не спонсировать и бить "рублём" обнаглевшим Apple и
другим проприетарным корпорациям. Я то помню что даже файл не
скопировать штатными средствами, пока или не поставишь недешёвую софтину
(извините, я отдал XXX тыс.руб., но мне из коробки не дают "проводник"?)
или не сделаешь jailbrake. Tor проще, пару кликов, и вот ты уже смотришь
нелегально скопированное нечто. Jailbrake -- пару кликов и твой девайс
становится юзабельным. Везде есть простые решения: снять проститутку,
своровать что плохо лежит, просто отнять/ограбить у более беззащитного,
купить SIM-ку на вокзале чтобы зарегаться и общаться в VK/Telegram/whatever.
В итоге я и сам не понял какая точно моя позиция. Она точно не бинарная,
поэтому и не могу её точно назвать. С одной стороны цензура мало кому
нравится и это плохо. С другой стороны -- без неё нельзя. Tor я
однозначно бойкотирую и считаю инструментом созданным и, в первую
очередь, используемым для пропаганды. Нужна анонимность -- для этого
есть более достойные, с технической точки зрения, инструменты. Тут для
меня важны мотивы. И если мотивы изначально явно не благие (или я им не
верю, не верю в честность), то тут всё понятно. Пистолет можно
приобрести для убийства, для защиты, для колки орехов, охоты ради еды
или ради забавы. Сейчас Tor это инструмент пропаганды США. А почему бы
его не превратить в инструмент пропаганды РФ, для подрыва и
дестабилизации США? В теории можно. И тогда, поддерживая его, я
поддерживаю техникой страну. И это вроде бы хорошо. Но пока в
информационной войне, как минимум с Tor-ом, мы не так сильны, как наши
враги и поддержка Tor-а это как покупка акций военной компании США
делающей оружие для бомбёжки РФ. Но то, что Tor это инструмент для
пропаганды -- это бесспорно, как и пистолет это точно инструмент не для
колки орехов. И вот у автора статьи про IPFS что-то похожее на всё это.
Ему не нравится пропаганда РФ, пропаганда против геев, ЛГБТ, призывы к
нацизму или против ислама. Мне наоборот не нравится пропаганда США, за
геев/ЛГБТ, но с остальным солидарен. Но он как-то может выразить
(не)поддержку инструментов для этого. Я вот полностью согласен с:
I have seen, and I am seeing every day, the dangers of completely
unrestricted speech, and I don’t want to be the one enabling that.
Я видел не раз во что превращается место в Сети где полностью нет
никакой модерации. Общение с людьми почти невозможно проводить если нет
модерации (что тоже является цензурой). Даже в маленькой рассылке
cryptoparty@ не может не появится срачь, который надо останавливать и
включать модерацию. Люди так устроены. И автор статьи приводит примеры
во что свободословие превращается де-факто всегда.
Некоторые вещи, изначально с плохими/спорными мотивами, могут стать и
благом в будущем, или наоборот. Атомная энергия. FidoNet изначально же
вообще создавался голубыми для общения между собой, а потом вон чем
клёвым стал. И там кстати сильнейшая цензура/модерация по факту.
Возможно первые смартфоны создавались действительно для блага людей, а
теперь это, в первую очередь, крутейший инструмент для слежки и
уничтожения приватности людей. Список, опять же, можно до бесконечности
продолжать. Ну и, как всегда, то что для одного благо -- обязательно
найдётся кто-то другой кому это будет во вред.
Sergey Matveev [Sun, 6 Dec 2020 10:20:28 +0000 (13:20 +0300)]
Распределённый Github
http://radicle.xyz/
http://blog.vmsplice.net/2020/12/understanding-peer-to-peer-git-forges.html
https://news.ycombinator.com/item?id=25313010
Blockchain, какие-то новые транспортные протоколы, потому что NAT
мешает, и куча ещё всяких каких-то идей и задумок. Про себя думаю: что
только люди не придумают, лишь бы не пользоваться email и git-ом
научиться.
Sergey Matveev [Sun, 6 Dec 2020 09:30:59 +0000 (12:30 +0300)]
С отцом затарились в магазине для скейтеров
https://www.dcrussia.ru/mens-collection-acdc/
Кто бы мог подумать что или я или папа по какой-либо причине пойдём в
магазин одежды для скейтеров? Но ради коллекции AC/DC поехали. Я давно,
наверное со школы, никогда не любил спортивную обувь чисто эстетически.
Просто не моё. Но один раз как-то, когда уже и институт закончил, решил
попробовать походить в чём-то не сильно напоминающем спортивную обувь,
но с мягкой подошвой (кеды, кроссовки? не знаю как это называлось). И с
того момента летом стал носить только с мягкой (сильно мягкой) подошвой,
даже не обращая внимание что это и спортивное и не сочетается с
джинсами, кожаной жилеткой, grindcore-футболками и прочим. Удобство
такого уровня что остальное не имеет значения (это только женщины могут
променять удобство на что-то другое)! И вот папе уже наверное с год
советовал попробовал что-то мягкое надеть, ибо ноги существенно меньше
устают. Вот на AC/DC кеды он уговорился.
Sergey Matveev [Sun, 6 Dec 2020 08:57:00 +0000 (11:57 +0300)]
Посмотрел прохождение Prey (2017)
https://en.wikipedia.org/wiki/Prey_(2017_video_game)
Изредка смотрю на современные игры из любопытства. Ну и чтобы просто
быть в теме хоть как-то, чтобы отдалённо представлять что такое FarCry
(хотя первая часть вышла когда я был ещё в школе, но у самого железа не
было чтобы поиграть), Crysis, Halo, Battlefield, Gears Of War,
Unchanted, Dishonoured, Metro 20xx и т.д.. И вот толком сильно ничего не
захватывает. Безусловно смотреть на игру и играть самому это очень
разные вещи! Поэтому против игр ничего не хочу сказать. Bioshock
смотрел, ибо это же как игра из серии System Shock, которую (2-ую) я
обожал! Но... смотреть это одно, а играть -- другое. И смотреть мне
особо не доставляло удовольствия.
Но вот начал смотреть Prey (2017) и меня засосала тематика, сюжет и всё
всё всё. Почти ни разу не промотав в проигрывателе, от начала и до конца
просмотрел, пока ел, пока по мелочам что-то делал рутинное. Вот это
"продолжение" System Shock 2 каким оно и должно быть! Хотя ведь чуть ли
не всё уже реально было изобретено в SS2. Хаки техники, починка,
производство вещей (в SS2 из нанитов), пси, RPG система и прочее. Но в
Prey так всё выглядит сбалансированным, богатым и варьируемым по
возможностям. Музыка атасная для атмосферы этой игры. Модификаций оружия
в SS2 я с ходу не помню, но там была УЖАСНО бесящая порча этого оружия,
возможность его сломать и что оно заклинит. В Prey убрали -- это одобряю.
И сам сюжет жутко интересен. Разнообразные и не шибко мрачные места
действия. SS2 мне запомнился сильно угнетающей атмосферой. А тут и
звуков море и постоянно с тобой разговаривают.
Вовсю надо слушать аудиозаписи и читать чужую почту -- и для получения
кодов и вообще для понимания происходящего. В Doom3 не забуду что это
тоже было, но когда играл в первый раз, то забивал, ибо лень, хочется
бегать и стрелять. И в целом это и никто не заставлял делать -- всё
добровольно. Но на самом деле, без этого будет *крайне* мало амуниция
попадаться. В принципе можно и фонариком бить по голове и считанные
патроны для пистолета считать, но сильно проще всё же читать логи и из
них получать коды доступа к сейфам, где амуниция. Я бы даже сказал что
только так и можно играть по человечески, чтобы не превращать игру в
stealth-partisanen с "ударил, убежал, спрятался, переждал, снова ударил".
Нравится что даже в отдалённом будущем люди всё равно используют именно
email, ибо им нужно работать и использовать подобающий для этого
инструмент. Но не понравилось что даже в этом будущем, нажимая на иконки
интерфейса появляется анимация раскрытия разделов, вместо того, чтобы
быстро и сразу показать запрошенное. Программисты так и не научились там
писать быстрый софт :-)
Sergey Matveev [Fri, 4 Dec 2020 19:14:47 +0000 (22:14 +0300)]
Собаки расстреливают людей
https://lenta.ru/news/2019/10/08/dog/
https://lenta.ru/news/2018/05/10/dog/
https://lenta.ru/news/2017/12/01/friendlyfire/
Новость за новостью о том как собаки то из пистолетов, то из ружей
стреляют в своих хозяев.
Sergey Matveev [Fri, 4 Dec 2020 12:34:27 +0000 (15:34 +0300)]
Moxie не особо понимает как можно доверять одному корню DNSSEC
https://moxie.org/2011/04/11/ssl-and-the-future-of-authenticity.html
https://www.theregister.com/2011/02/18/fed_domain_seizure_slammed/
Намекая что, так как это в США (да и к любой другой стране это также бы
относилось, просто США уже показали свою суть), то в любой момент они
могут заставить сделать всё что угодно. Проблемы CA, как он описывает: и
в том что непонятно откуда у человека появляется доверие к XXX CA, и то,
что даже если Comodo и обосрётся (что уже произошло), то доверие к нему
никуда не денется и его CA сертификаты всё равно останутся в trust
anchor-ах. Причём с DNSSEC-ом всё гораздо хуже, ибо CA для TLS можно
менять, их много, а DNSSEC корень один.
Sergey Matveev [Fri, 4 Dec 2020 11:31:38 +0000 (14:31 +0300)]
О доверии к Apple железу
https://sneak.berlin/20201204/on-trusting-macintosh-hardware/
Оказывается у всего последнего Apple железа нельзя очистить диск/ОС и
установить всё с нуля, пока по Интернету не получить одобрение от Apple,
в виде подписанного сообщения. То есть, без их разрешения, каждый раз
одобряемого, не дозволено на их компьютерах ставить что захочешь.
То есть, для безопасных компьютеров с воздушным зазором (air-gapped),
для тех кто блюдёт криптографическую целостность (полностью очищаемые и
переустанавливаемые системы с доверенного носителя), те кто находятся
вне зоне доступа к Интернету (корабли, как минимум) -- Apple компьютеры
не могут использоваться по определению.
Я вот не сильно против чего имел того, что в ФСБ бумажки делают в Word,
на Windows, но эти компьютеры хотя бы изолированы и не подключены к
Интернету. А с Apple не перестаёшь удивляться их безумным задумкам. И
ещё больше удивляться что пипл это всё равно продолжает хавать.