Sergey Matveev [Sat, 23 May 2020 20:07:11 +0000 (23:07 +0300)]
Посмотрел "Стрингер"
https://ru.wikipedia.org/wiki/%D0%A1%D1%82%D1%80%D0%B8%D0%BD%D0%B3%D0%B5%D1%80_(%D1%84%D0%B8%D0%BB%D1%8C%D0%BC,_2014)
Необычная история про отмороженного мужика, хотя формально ничего
нелегального не делающего. Но фильм является фантастикой, либо полиция
там не сильно образована, ибо полиция не нашла вырезанный кусок видео с
его камеры. Видео у него записывалось на CompactFlash флешку. По сюжету
фильма, полиция довольно быстро пришла к нему домой утром и он новые
записи не делал в течении нескольких часов, поэтому наверняка на флешке
остаётся снятое видео которое он не хотел показывать полиции. Удалив
файл или просто подправив метаинформацию, само видео останется, просто
не будет видно на уровне файловой системы. Ну или он об этом всё же
подумал и спрятал эту флешку, записав обрезанное видео или делал secure
erase...
Sergey Matveev [Sat, 23 May 2020 11:46:24 +0000 (14:46 +0300)]
Про простой workflow в git
>Какой workflow нужно использовать, если я хочу просто отслеживать свежие
>изменения в remote репозитории >и чтобы при этом держать свои локальные патчи
>(отдавать их наверх не собираюсь).
Одному человеку вот написал моё видение workflow для этого случая:
>Вот склонировал я репозиторий, периодически делаю "git pull" - всё хорошо. А
>как комиттить свои локальные патчи? В интернете пишут - в master ничего не
>коммитить (WTF, это моя копия master). А тогда как?
Workflow в git-е тьму всяких используют и единого или рекомендуемого
нет. Но это и так очевидно. Очень сильно разнятся советы по
использованию git-а в зависимости от человека который его будет
использовать: опытный или нет например. В одной компании где я работал,
git cherry-pick или git rebase -i -- были табу, запрещены к
использованию в одном отделе. Потому что в нём работали не очень опытные
с git-ом разработчики, а git штука мощная и позволяет коверкать и изменять
историю множеством способов и эти разработчики её коверкали так, что фиг
потом разберёшься что как и откуда шло/росло и как посмотреть разницу и
историю между рядом правок. В умелых же руках все эти rebase,
cherry-pick -- к месту творят хорошие вещи. Я не пользовался Mercurial,
но знакомые с ним и с git, говорят, что в Mercurial сложнее выстрелить
себе в ногу, но он и менее гибок/мощен -- git же наоборот.
>git-rebase - Reapply commits on top of another base tip
>
>Не, я точно не хочу такую хрень. Где-то в гите перемудрили. По-твоему это
>понятно звучит? [...]
Дока в нём не везде и не всегда понятна -- это точно. Но в ней
(git-rebase) вот например есть такая картинка:
Assume the following history exists and the current branch is "topic":
A---B---C topic
/
D---E---F---G master
From this point, the result of either of the following commands:
git rebase master
git rebase master topic
would be:
A'--B'--C' topic
/
D---E---F---G master
которая, по моему, очень понятно объясняет суть rebase.
>А нельзя просто мержить из мастера в свою ветку, без rebase и прочих
>модификаций истории?
1) Ваш вариант: вы постоянно находитесь на ветке master. Сделали в ней
свой коммит. А дальше, если сделаете git pull, то, так как верхушка
вашей ветки не совпадает с верхушкой origin/master ветки, потому что
появился ваш коммит, то git не может просто переставить указатель вашего
master на коммит на который указывает origin/master (это называется
fast forward). Git вынужден будет сделать "искусственный" (чисто
технически это обычный коммит конечно же, просто он неявно создан не
человеком) merge-коммит в котором будут два родителя: origin/master
коммит и ваш коммит.
git pull это на самом деле синоним к:
$ git fetch
$ git merge origin/master
предполагая что текущая master ветка прописана в .git/config что связана
с origin/master и предполагая что fetch автоматически подставляет
"origin" remote. По умолчанию это всё так. Так вот команда merge, по
умолчанию, делает fast-forward (если может), в противном случае
merge-commit. Например ваш master указывает на commit2, а origin/master
(который обновляется после git fetch) на commit 3
commit2 <- master
commit1
commit3 <- origin/master
commit2
commit1
Находясь в master ветке, делая git merge origin/master, git просто
передвинет/обновит master указатель на commit3, сравнявшись с
origin/master. Если же в вашем master есть ваш коммит, то fast-forward
невозможен и будет создан промежуточный искусственный коммит:
в рандомно взятом репозитории git log покажет это так:
* 903bdfe Update vendor 42wim/mm-go-irckit
* 50a0ba8 Bump version
* f8394da Merge branch 'master' of github.com:42wim/matterircd
|\
| * ad4a8f0 readme: Add a "Guides" section and one guide (#194)
* | f7cf55c (tag: v0.18.2) Release v0.18.2
|/
* a0ab000 Update vendor nlopes/slack
* 755960e Bump version
* 1886628 (tag: v0.18.1) Release v0.18.1
* 1aea3b8 Add support for mattermost 5.x
Каждый раз когда вы будете делать git-pull, будут создаваться эти "merge
branch" коммиты, так как в вашей ветке верхушка никогда не совпадает
(хэш отличается) с origin/master.
Проблема ли это? Зависит от. Так вы каждый раз видите когда сделали git
pull. Если это делать каждые пять минут, то с появлением коммита в
origin, у вас будет создаваться merge-коммит, объединяющий вереницу
коммитов вашей истории и удалённой. На мой субъективный взгляд, чаще
всего это делает историю некрасивой, загромождает ненужной для человека
информацией (мусорными коммитами) и сложнее разобраться может быть как
что откуда и как растёт.
аналогичен 1), но у вас локально master ветка будет всегда полностью
соответствовать ветке с origin. Хотя, по факту эта информация всё равно
содержится в origin/master.
rebase это простая операция: она берёт коммит(ы) и меняет их родителя.
Как-бы отрывает и прикрепляет к другому. Безусловно все хэши всех эти
коммитов поменяются (в вырезке из man-а они поэтому со штрихами). Но,
тогда, вместо:
* f8394da Merge branch 'master' of github.com:42wim/matterircd
|\
| * ad4a8f0 readme: Add a "Guides" section and one guide (#194)
* | f7cf55c (tag: v0.18.2) Release v0.18.2
|/
* a0ab000 Update vendor nlopes/slack
если бы "readme: Add a "Guides"" коммит имел родителя не "Update vendor
nlopes", а "Release v0.18.2", то тогда произошёл бы fast-forward и
история превратилась в:
* XXXXXXX readme: Add a "Guides" section and one guide (#194)
* f7cf55c (tag: v0.18.2) Release v0.18.2
* a0ab000 Update vendor nlopes/slack
и в вашем случае бы ваш mybranch всегда выглядел как:
последний коммит в master это 7c53a13, а над ним два постоянно
rebase-ящихся коммита ветки "links". На мой взгляд, это очень удобно для
человека, для его восприятия. Но всегда зависит от. Rebase это изменение
цепочки хэшей и моя ветка "links" после каждого rebase никогда не может
быть запушена на удалённый репозиторий просто так, потому что fast
forward невозможен. Если это лично ваша ветка/ваш репозиторий, то уверен
что это не проблема.
4) Вариант с rebase-ом вашей master ветки (с вашим коммитом) на
origin/master:
$ git pull -r
что равносильно:
$ git fetch
$ git rebase origin/master
Так вы будете иметь master полностью совпадающий с origin/master, за
исключением того, что его верхним коммитом будет ваш. На мой взгляд это
самый удобный способ. Я вот использую suckless terminal (st), а в нём
вся конфигурация зашивается на момент компиляции. Я просто делаю rebase
своего master на удалённый и моя история всегда линейна, без
ответвлений:
* b5a4ee2 (HEAD -> master) My config
* 92cc580 Coloured italics
* 43a395a (tag: 0.8.3, origin/master, origin/HEAD) bump version to 0.8.3
* 72e3f6c Update XIM cursor position only if changed
Но! При любом раскладе возможны конфликты в файлах (origin поправил тоже
место что и вы). В случае с merge-коммитами, один раз разрешив конфликт,
он как-бы зафиксирован и сохранён в истории и three way merge алгоритм
его всегда учитывает и если в origin в том же месте снова что-то
поменяется, то большая вероятность что three way merge автоматически всё
сам разрулит. В случае с rebase, three way merge перестаёт работать.
rebase, можно сказать, это просто:
ну и дальше выставление текущего указателя ветки на то, что получилось.
Никакой магии в rebase нет и его можно делать вручную cherry-pick-ами.
Но когда делается cherry-pick, то это равносильно просто попытке
применения какого-то патча. То есть это буквально two way merge, где
отсутствует ancestor информация и если конфликт постоянно возникает в
каком-то месте, то после каждого rebase это может происходить. Проблема
ли это на практике и часто ли такое может быть? Зависит от. Я не помню
когда последний раз с этим сталкивался.
Но! С какой-то версии в git-е появилась технология rerere: man
git-rerere, которая запоминает разрешения конфликтов и если встречает
аналогичные конфликты, то автоматически применяет сохранённое разршение.
Это в отдельной поддиректории в .git сохраняется всё и может быть
удалено когда угодно. Достаточно просто включить rerere и он начнёт
работать и он спасёт от постоянно одинаково разрешающихся конфликтов,
которые могут во время rebase возникнуть.
А также надо быть очень осторожным с git pull командой, если не уверены
что remote репозиторий не делает форсированных (не fast-forward)
обновлений. Например Gitlab по умолчанию вообще запрещает не
fast-forward push в репозиторий, но всё зависит от настройки конкретного
репозитория и людей в него пушающих. Если человек сделал git push
--force, то у всех кто сделает git pull -- возникнет merge-коммит между
их историей и насильно форсированно изменённой историей удалённого
репозитория. Поэтому говорят что делать push --force чудовищно плохое
действие. И ваш master после такого git pull уже никогда не будет
совпадать с origin/master-ом. Тут только можно сделать (откатив все ваши
изменения, конечно же):
$ git reset --hard origin/master
Лично я, *никогда* pull не использую, ну кроме личных репозиториев про
которые помню, а всегда делаю fetch чтобы увидеть обновился ли
репозиторий как fast-forward (и я могу сделать git merge origin/) или же
нет, он был насильно изменён и тут... уже смотреть по месту надо что
делать дальше.
Если резюмировать, то лично я бы (сам бы так и делал) для вашего
use-case советовал git pull --rebase в master ветке, где ваш коммит
будет всегда наверху.
Sergey Matveev [Sat, 23 May 2020 10:17:37 +0000 (13:17 +0300)]
Посмотрел Гаттаку
https://ru.wikipedia.org/wiki/%D0%93%D0%B0%D1%82%D1%82%D0%B0%D0%BA%D0%B0
Хорош, понравился! Любителям антиутопий можно посоветовать.
Наверняка в фильме даже не думали о взаимосвязи, но тема космических
полётов и уборщика с шваброй в high-tech помещениях у меня вызывает
воспоминания только о Space Quest и Planetfall играх. Да и Space Quest
то является отсылкой к Planetfall-у.
Статистику не веду, но вот интересно много ли фильмов показывают как
видят сильноблизорукие люди? В этом попытались показать как он без
очков/линз пытался перейти оживлённую автомобильную дорогу и
действительно реалистично. Я ему прям искренне мог посочувствовать.
Sergey Matveev [Sat, 23 May 2020 10:10:36 +0000 (13:10 +0300)]
История популярности C: история GCC/Cygnus
https://minnie.tuhs.org/pipermail/tuhs/2020-May/021225.html
Джон Гиллмор (один из основателей EFF, крутейший хакер, известнейший
шифропанк) рассказывает историю разработки GCC в Cygnus software. Если
по простому, то просто они за нормальные деньги нанимали нормальных
(толковых) программистов и те писали GCC. То тут, то там получали
спонсирование от каких-нибудь Sun даже, ибо тем важно чтобы была
выполнена работа, а не то, чтобы её ещё и надо было закрывать.
Всё аналогично и в Linux. Точных цифр не назову и лень искать, но
энтузиастов, которые только на своей воле делают бесплатно там правки,
не так много -- почти всё в ядре это обычная полноценная оплачиваемая
работа. Вот и с GCC аналогично, хотя, безусловно, начальный и основной
толчок дал Столлман и Ко, привлекая внимание к разработке GCC.
Sergey Matveev [Sat, 23 May 2020 10:03:16 +0000 (13:03 +0300)]
Превосходнейшая статья про парольные фразы
http://theworld.com/~reinhold/diceware.html
http://theworld.com/~reinhold/dicewarefaq.html
Из комментариев в блоге узнал вот про такие статьи про парольные фразы.
Очень толковые и понятно объясняющие что это, для чего это и как их
делать. Точно можно посоветовать любому, ибо от паролей надо избавляться
в этом мире!
Sergey Matveev [Thu, 21 May 2020 16:53:28 +0000 (19:53 +0300)]
Теперь в блоге есть отдельные Atom для комментариев
http://blog.stargrave.org/russian/comments.atom
У главной страницы блога есть feed для всех поступающих комментариев.
А у каждого поста есть свой собственный отдельный feed для комментариев
только его касающихся.
Sergey Matveev [Thu, 21 May 2020 16:50:49 +0000 (19:50 +0300)]
Посмотрел первый сезон "Кремниевой долины"
https://ru.wikipedia.org/wiki/%D0%9A%D1%80%D0%B5%D0%BC%D0%BD%D0%B8%D0%B5%D0%B2%D0%B0%D1%8F_%D0%B4%D0%BE%D0%BB%D0%B8%D0%BD%D0%B0_(%D1%82%D0%B5%D0%BB%D0%B5%D1%81%D0%B5%D1%80%D0%B8%D0%B0%D0%BB)
Если коротко, то понравилось, но другие сезоны смотреть не буду. Всё не
мог понять буду ли продолжать просмотр или нет.
Я принципиально сторонюсь сериалов, ибо очень низкий КПД использования
моего времени и постоянная эксплуатация психики людей которые хотят
законченной истории. Но, сказав что этот сериал короткий как и Рик и
Морти, уговорили, хотя всё же он в разы больше и за один день не
просмотришь все сезоны.
Я в голове его ещё и путал с IT crowd. Видел из последнего только
отрывки и там стереотип на стереотип, чего в жизни не будет. А также
думал что это собрание просто забавных IT-related забавных случаев
будет. Оказалось что нет и IT, по больше части, там только в шутках, а
сам сериал про взаимоотношения людей.
Каждая серия заканчивается на самом интересном месте, за что и ненавижу
сериалы. Например Симпсоны, Футурама, Рик и Морти, Чёрное зеркало -- в
них каждая серия никак не связана с предыдущими, плюс они короткие.
Чёрное зеркало то это вообще просто набор фильмов объединённых одним
названием, грубо говоря, где фильмы очень разнятся по интересности
(лично для меня). В "Долине" классические сериальный подход. На самом
деле я первую серию второго сезона ради интереса открыл и увидел что там
суды, делёж, другое начальство... в общем всё это можно продолжать до
бесконечности и поэтому нафиг.
Понравилось что особо то никто не переигрывает и никто не недоигрывает
-- выглядят все (ну кроме "фронт-мена") как нормальные IT-шники.
Понравилось что в принципе то придраться к технике особо нельзя. Не,
конечно, когда шпендель грохнул их DDL, то... оно что, не коммититься в
репозитории что ли? Но да ладно с этим. Когда не раз упоминают сжатие
Хаффмана, Лемпеля-Зифа применительно к JPEG/MP3/ZIP/FLAC/etc, то... для
ZIP, lossless сжатия это всё актуально, безусловно, но вот суть
JPEG/MP3/видео сжатия совсем не в этом, а в DCT/DWT преобразованиях для
откидывания высокочастотных компонент -- это главное что обеспечивает
существенный выигрыш, а Хаффман/whatever это уже самая весомая часть. Но
это придирки.
А последняя серия, сцена с обсуждением дрочева... она многого стоит! И
очень понравился момент когда они вышибли дверь закрытую. Я на 100%
уверен что если бы это были не IT-шники, то обязательно бы подошли к
сосредоточенно работающему в наушниках парню! А любой IT-шник знает
насколько готово выпрыгнуть сердце от неожиданно попавшей в поле зрения
чужой руки или прикосновения, когда ты отключён от внешнего мира. Это
сильно выбивает из колеи и злит! Никогда, никогда нельзя прерывать так
человека. И были бы там обычные люди, то обязательно бы его выбили из
колеи бесполезным вопросом "что ты закрылся?". В общем, реалистично
сделали в фильме, уважаю.
Sergey Matveev [Thu, 21 May 2020 14:19:18 +0000 (17:19 +0300)]
Открытие исходного кода C&C
https://www.opennet.ru/opennews/art.shtml?num=52994
Это конечно всегда хорошие новости! Но я вот и в 90-х и в 2000-х пытался
играть в Red Alert, но что-то совсем не заходило. Warcraft 2 -- обожал!
Age Of Empires -- обожал! А вот C&C серия вообще как-то совсем что-то не
моё. Помню ещё была https://en.wikipedia.org/wiki/Total_Annihilation --
тоже очень нравилась.
И ещё незабываемая https://en.wikipedia.org/wiki/Z_(video_game)
а незабываема тем, что я даже первый уровень не смог пройти. А потом,
годы спустя, где-то прочитал что первый уровень там проходится буквально
в два клика мышкой: выделяются все юниты и просто тупо отправляются на
самый верх карты, либо по левой, либо по правой стороне. Там что-то типа
надо было занимать клетки игрового поля и как только занял больше чем
враг, то выиграл. И в той же статье написано было что многие не могут
пройти этот первый уровень. Ну, на мой взгляд, не смотря на простоту,
это всё же прокол дизайнеров игры, ведь дальше её уже не запускаешь.
Sergey Matveev [Wed, 20 May 2020 15:49:12 +0000 (18:49 +0300)]
Изменения в macOS Server 5.7.1
https://support.apple.com/en-us/HT208312
FTP Removed in Server 5.4
Server Docs Removed in Server 5.4
DHCP UI tools removed in Server 5.7.1
DNS Removed in Server 5.7.1
VPN Removed in Server 5.7.1
Firewall UI tools removed in Server 5.7.1
Mail Server Removed in Server 5.7.1
Calendar Removed in Server 5.7.1
Wiki Removed in Server 5.7.1
Websites UI tools removed in Server 5.7.1
Contacts Removed in Server 5.7.1
NetBoot/NetInstall UI tools removed in Server 5.7.1
Messages Removed in Server 5.7.1
Radius Removed in Server 5.7.1
AirPort Management Removed in Server 5.7.1
Не, я понимаю конечно что альтернативы наверняка лучше по качеству и
поддерживаются лучше, а macOS это всё же не для сервера и поэтому не
стоит особо усердствовать с поддержкой собственных решений. Но выглядит
всё равно забавно что что всё выпилено. Да и кому захочется что-либо
серверное делать на этой ОС учитывая f19e0f25f0bf0c1563602d922e9cdf0c1f5ff00b
Sergey Matveev [Wed, 20 May 2020 15:38:38 +0000 (18:38 +0300)]
Медсестра в бикини
https://lenta.ru/news/2020/05/19/zachto/
Наверняка те, кто её наказали, это женщины которым просто завидно стало
что хорошенькая медсестра засветилась в соцсетях. И тоже первая мысль:
им нужно чтобы дела делали или соблюдали все правила, которые вряд ли
учитывают пребывание 100% времени в защитном жарком костюме.
Sergey Matveev [Wed, 20 May 2020 15:31:38 +0000 (18:31 +0300)]
Собаку за долги на аукцион
https://lenta.ru/news/2020/05/20/sobaka/
Насколько слышал, в РФ вроде тоже животные являются точно таким же
предметом как какая-нибудь стиральная машинка и это конфисковать могут.
И по мне так депутатское предложение "Если собака во дворе элитной
породы, то она может ее продать в любой момент и спокойно оплатить",
равносильно "У тебя хорошенькая дочь, отдай её сексуальных утех и всё
оплатишь". Ну или там в рабство сдать на время. Отличные предложения от
"слуг народа" как и законы наши.
Sergey Matveev [Tue, 19 May 2020 16:58:45 +0000 (19:58 +0300)]
Штрафов на 40k сидя дома
https://moslenta.ru/news/zhilcy-doma-na-granice-moskvy-i-podmoskovya-poluchali-shtrafy-sidya-v-kvartire-19-05-2020.htm
И жильцы предполагают потому что меняется сота при выходе на балкон.
Прям мой случай: у меня в одной комнате одна сота, в другой -- другая.
Если во время разговора перейти в другую комнату, то зачастую связь
обрывается.
Sergey Matveev [Tue, 19 May 2020 16:04:40 +0000 (19:04 +0300)]
Клуб любителей хрюш
https://www.babai.ru/articles/
Масса фотографий и рассказов о жизни минипигов. Даже когда они
вырастают: мне очень нравятся и внешне и поведением (на видео).
А ещё у них самые умные глаза среди всех животных что я видел.
Когда приезжал в деревню, то среди всех животных всегда хотел
к хрюшкам в первую очередь наведаться. Хотя огромные хряки там
страшноваты. Среди историй на сайте есть и грустные, когда всякие
мрази умудряются выбрасывать их на улицу (ну аналогично нелюдям
выбрасывающим собак, кошек, и т.д.). Ну а так как хрюшки такие
прекрасные создания, то у них обязательно есть чему людям поучиться:
https://www.youtube.com/watch?v=3FpFkazuUmo
https://www.youtube.com/watch?v=SCMMz98SvGI
В своё время у меня подобный вокал очень неплохо получался.
Sergey Matveev [Tue, 19 May 2020 13:17:05 +0000 (16:17 +0300)]
ack утилита
https://habr.com/ru/post/502734/
Когда-то тоже использовал ack, даже ставил Vimack (вроде так назывался)
плагин для Vim чтобы он ack использовал для поиска. На тот момент
единственная причина почему использовал: скорость. Буквально на порядок
оно могло быстрее работать GNU grep (не говоря уже про BSD grep).
Однако, с какой-то определённой версии GNU grep очень круто
прооптимизировал свои алгоритмы поиска и стал даже быстрее ack-а
работать. На тот момент (сейчас не смотрел) ack был по сути обёрткой над
Perl-ом. Тогда ещё был ag, который компилировался и был ещё быстрее, но
имел проблемы с Unicode.
Однако, привычки от ack-а у меня остались по удобству работы. Сразу
скажу что BSD grep использовать яростно не рекомендую: наверное он
проще, suckless, компактнее, но он тупо в разы или порядки медленнее
(как и BSD sed). Быстрый вызов быстрого GNU grep-а я сделал вот так:
всегда цветной, всегда рекурсивный, показывающий имена файлов и строки
(чтобы это сразу можно было vim-ом открыть, если поиск шёл вне него) и
всегда показывающий это в less-е. "GS" появился относительно недавно и
добавляет числовую сортировку имён файлов. Находясь где угодно я могу
сделать "g whatever" и будет ack-like поведение по умолчанию.
Опции про границы слов (-w) и счётчика (-c) имеются и в GNU grep
современном. Также как и -A/-B. Так что это к ack не относится.
Вся тема по типам файлов... по моему полубредова. Хочется искать только
по JS-ам? В моём случае, это "g whatever **.json". Понимаю, в Bash не
выйдет всего этого, но и не надо перекладывать эту задачу и вести БД
типов файлов на grep/ack/ag/whatever утилиты (ух совсем не Unix-way!).
Больше профита будет от установки zsh-а на сервере!
А остальные плюсы ack-а связаны с Perl-овым поиском. Соглашусь это жутко
и невероятно бесит, что приходится помнить отличия в регулярках в
grep/sed и perl/python и Vim-ом ещё в довесок. В GNU grep вроде есть
какая-то поддержка PCRE, но не уверен что этим можно осилить range
поиск. Да, это могло бы быть плюсом, но... я вот совсем не припомню
когда бы мне нужен был такого уровня поиск по кучи файлам. Ради крайне
редкого случая держать постоянно на готове ack я точно не стал бы, тем
более, привыкнув к нему, париться с установкой на рабочие машины. И ради
этого крайнего случая я просто на месте напишу что-нибудь прямо с самим
perl-ом.
Для git-а, опять же, мало что сравнится по скорости с git grep-ом
родным. И есть колоссальная разница между "приходится, пускай даже
чуть-чуть, ждать" и "не ждать совсем" (десятки миллисекунд, сотня).
А вот поведение vimack плагина для Vim мне нравилось: :Ack whatever и у
меня открывается quickfix окно с результатами поиска. И для эмуляции его
поведения для Vim-а написал тривиальную функу:
function! s:Vim(pattern)
let ignorecase_bak=&ignorecase
set noignorecase
execute "vimgrep /" . a:pattern . "/ **/*"
copen
let &ignorecase=ignorecase_bak
let g:pylint_disable=1
endfunction
command! -nargs=* -complete=file Vim call s:Vim(<q-args>)
которая использует встроенный функционал Vim-а, который медленный, но
это достаточно редко чтобы можно было потерпеть. А при работе в
Git-репозиториях, нужно использовать git grep. Так как в Vim я всегда
ставлю Fugitive плагин, то :Ggrep для вызова git-grep из Vim всегда
имеется. Но от него я тоже хочу получить поведение :Ack:
И всё это я сверхчасто использую. Для FreeBSD в любом случае придётся
поставить GNU grep (ради скорости), а в остальном это всё без
зависимостей и сторонних утилит.
Sergey Matveev [Tue, 19 May 2020 09:45:52 +0000 (12:45 +0300)]
Неттопы вместо ноутбука
https://nasse.livejournal.com/1893670.html
Человек вот ищет неттоп вместо ноутбука. Перед моим текущим Dell я точно
таким же вопросом задавался. После тактильной клавиатуры, использовать
что-либо другое -- уже невозможно. Класть клаву на ноутбук -- неудобно и
может задевать трэкпад или кнопки ноутбука. Класть перед ним -- значит
его монитор будет далеко стоять и я уже не увижу текста. Можно увеличить
шрифт, но две половинки Vim-а (~80 колонок) уже не влезут. Значит надо
внешний монитор. И тут я понял что ноут то мне как таковой и не нужен, а
нужен системник. И неттоп без проблем можно было бы с собой таскать как
и ноутбук.
Но друг всё же отговорил хорошим аргументом: пускай крайне редко, но
может понадобится мобильность и где-нибудь может не оказаться внешнего
монитора с клавиатурой. Стоимость "консоли" (устройств ввода/вывода для
человека) в дешёвых ноутбуках (у меня всегда были не дороже 40 тыс. руб.)
не самая весомая часть, судя по всему. Немного переплачиваю, но
несколько раз в год иметь удобство от мобильности может этого стоить.
Ещё я не мало времени игрался с маленькими одноплатными компьютерами,
типа GuruPlug. Но, как и автор статьи, всегда был удручён
стабильностью/надёжностью, плюс производительностью. В RaspberryPi,
насколько помню, то ли Ethernet вообще через USB был подключён, то ли
SATA отсутствовал и тоже через USB накопитель подключать (лень искать).
Последнее -- худшее с чем я всегда сталкивался: никогда в жизни не было
чтобы он не "отваливался". Плюс производительность не самая высокая
всего этого. А если хочется SATA, плюс нормальный Ethernet, то и цена
подобных решений уже приближается к x86-неттопам. А их плюс в том, что
можно просто пойти в магазин, купить, выбрать любой из сотен
дистрибутивов и поставить его. Переставив жёсткий диск в другой --
знать что он просто заработает и там. А с RPi/GuruPlug и прочими не всё
так просто в плане установки. И как бы я не не любил этот сраный x86, но
его цена и знание что его легко заменить чем угодно из ближайшего
магазина решают. Надеюсь что и ARM-ы дойдут до такого же состояния.
Sergey Matveev [Tue, 19 May 2020 08:56:46 +0000 (11:56 +0300)]
Про мышечную память и клавиатуры
В комментариях тут зашла тема про мышечную память (на пальцах). С ней, с
её чудовищной силой, не считая слепого метода печати, я столкнулся после
поездки в Иран. Почему-то в блоге не нашёл про это упоминания, а ведь
событие в моей жизни важнейшее.
Две недели находился вдалеке от компьютеров, не притрагиваясь ни к одной
клавиатуре. И когда ехал в электричке домой, уже в Московской области,
то начал думать про бытовые дела. Как я дома включу компьютер (хотя он
наверное и не выключался, чтобы помогать distributed.net), введу свои
парольные фразы... и тут я начал вспоминать свои парольные фразы. Две
основные у меня: одна на ~100, другая на ~120 символов. И в электричке
осознаю что я толком не помню ни одной. Бросает в пот, ведь у меня же по
большей части всё зашифровано, а потеря "ключа" равносильна потери
информации всей. Моё настроение резко упало ниже плинтуса.
Но сев за клавиатуру, я просто отрубил свой мозг, не стал задумываться о
конкретных символах вводимых, и с первого же раза ввёл все эти 120
символов. Пальцы сами делали своё дело. Выдохнул, потому что, как
минимум, я уже мог делать бэкапы данных, после ввода пароля, если
считать что мне просто повезло и я только один раз это смог успешно
ввести. Несколько раз введя фразу ещё, уже вспомнил (глядя на клавиатуру
и что на ней нажимают пальцы) и конкретные символы/фразы. С остальными
фразами тоже проблем не возникло. Сознание/мозг не помнят, а пальцы
набрать могут. У коллег тоже встречал такое что они не знают пароля (не
могут его сказать), но могут залогиниться без проблем.
Брюс Шнайер относительно недавно признавал что рекомендация о частой
смене паролей является плохой:
https://www.schneier.com/blog/archives/2017/10/changes_in_pass.html
https://www.schneier.com/blog/archives/2014/03/choosing_secure_1.html
https://www.schneier.com/blog/archives/2016/08/frequent_passwo.html
точнее эта рекомендация актуальна была именно для "паролей", тогда как
сейчас, уже давно, необходимо использовать парольные фразы. Если фраза
сильна, имеет много энтропии, то не надо париться. Смена фразы может
обернутся её потерей (забыли, как я почти) или сильным упрощением
(ослаблением) или утечкой (где-нибудь записали) -- риски неоправдано
высоки, опять же, если фраза является хорошей и сильной. Или, как
показывают исследования в его ссылках, люди для галочки могут чуть-чуть
изменять существующий пароль/фразу, делая это для галочки, но не внося
никакой дополнительной энтропии, превращая это в бессмысленное занятие.
Sergey Matveev [Tue, 19 May 2020 08:52:59 +0000 (11:52 +0300)]
Показывание большего кол-ва строчек в less при поиске
https://git.stargrave.org/cgit.cgi/dotfiles.git/commit/?id=fa342a4f7a19749f9ff94ce1e78341165b74cc25
Годами использую less и только сегодня задумался о том, что искомое
слово он показывает на самой первой строке экрана и я часто отматываю
чуть-чуть наверх чтобы понять контекст где это слово применяется. Пора с
этим кончать и почитать man. Секунд 20 на поиск нужного и опция
управляющая показом кол-ва строк перед искомой найдена. Решил показывать
всего две строки, как это настроено в Vim -- вроде бы достаточно на практике.
Sergey Matveev [Mon, 18 May 2020 12:57:51 +0000 (15:57 +0300)]
sc-im табличный процессор
https://github.com/andmarti1424/sc-im
https://www.youtube.com/watch?v=K_8_gazN7h0
Иногда какой-нибудь человек возьмёт, да пошлёт XLSX документ
(современный Excel формат). SC-IM консольная программа отлично (при
наличии библиотеки) с ними работает (проверял только на чтение). Сегодня
попробовал в принципе поработать с таблицами в ней -- очень удобная
штука! Особо ничего не смыслю в табличных процессорах, но если нужно
забить таблицы, тасовать колонки, делать формулы и экспортировать это в
каком-то удобоваримом для компьютера формате, то по моему в SC-IM всё
отлично для этого сделано.
Sergey Matveev [Mon, 18 May 2020 08:07:37 +0000 (11:07 +0300)]
Mantar -- выступление на Hellfest 2019
https://www.youtube.com/watch?v=yxttZ4EFZ14
Полное выступление с отличным качеством звука. Про Mantar писал в 5443aff12e760fd58eb15b0d0c325b4f380d88f3 3a3d68bdf87e73911707963bd9c9466771042b16
как никто прежде они меня впечатлили своим прошлогодним концертом в
маленьком клубе. Хочется машину времени и снова оказаться на нём!
Sergey Matveev [Mon, 18 May 2020 07:45:13 +0000 (10:45 +0300)]
Посмотрел Traceroute
https://en.wikipedia.org/wiki/Traceroute_(film)
Довольно интересный документальный фильм. Начинается с истории детства
автора, его взрослении и увлечениями компьютерами, а дальше он
становится художником (в широком смысле) и в свои 40 лет решает проехать
от одного до другого побережья США и посетить всякие nerd-овские места.
По началу его жизнь очень похожа на мою, но дальше уже совсем нет. Да и
в целом по фильму я не могу сказать что мне очень близка вся его тема
посещения исторических мест. Вообще на фильм вышел потому что в нём
снялся Jason Scott -- вот этот мне близок безумно. Документалки Скотта
мне жутко близки, понятны, приятны. Ну кроме DEFCON-а, но даже он всё же
понятен чем интересен. А вот в Traceroute некоторые скорее бесят, так же
как и я, будучи computer-geek-ов бешу других. Не все персонажи приятны,
типа наличия "секс работника" (проститутки) в фильме, говорящей что
"hacker and hookers" близки. Круто было увидеть Брюса Стерлинга. В
общем... задротов/ботаников много всяких и в фильме собраны самые
разнообразные, компьютерных там не шибко много.
Sergey Matveev [Sun, 17 May 2020 19:17:00 +0000 (22:17 +0300)]
QWERTY раскладка
https://habr.com/ru/post/502384/
Только вступление в статье прочитал:
... можете переключить раскладку клавиатуры на «dvorak». Печать
ускорится в разы, в то время как обучение займёт лишь неделю.
Вот что это за лютый бред? Я думал как-то переходить на Дворака-Дилея и
искал людей на просторах Интернета опытных в этом деле, чтобы понять
стоит ли оно этого. В разы ускорится печать? Автор в своём уме? Если бы
ускорение было хотя бы в полтора раза, то я бы не думая пошёл
переучиваться и да хоть таскал бы с собой клавиатуру. Все кого я нашёл,
кто имеет стаж 10+ лет с Двораком, могут подтвердить что ускорение будет
ну например на 10% при ЛИТЕРАТУРНОМ тексте. И речь про английский язык.
Русский ЙЦУКЕ, в отличии от QWERTY создавался уже with efficiency in
mind, ибо проблемы с машинками уходили на момент создания. А будучи
программистом, я всё же больше делаю редактирования, в чём Дворак не
поможет. "Обучение займёт неделю"? Я даже не понимаю как такое можно
сказать, ибо, по моему, люди годами работают за клавиатурами и только
после этого времени начинают более-менее шустро набирать. Не, наверное
есть продвинутые насильственные курсы, где это можно ускорить, вбить
мышечную память. Переход на другую раскладку, очевидно, займёт годы,
чтобы сравнять производительность с тем что имеется у человека сейчас.
В итоге отказался от идеи перехода на другую раскладку, ибо стоить оно
того будет если я много литературного текста набираю, ну или мне бы
пришлось учиться с нуля.
А вот, например, переход с "обычной" клавиатуры на тактильную --
практически сразу же повышает производительность минимум на треть, без
какого-либо переучивания.
Sergey Matveev [Sun, 17 May 2020 09:29:44 +0000 (12:29 +0300)]
Фильмы Marvel и DC
https://lenta.ru/news/2020/05/17/kidsareallright/
Венсан Кассель считает все эти супергеройские фильмы детскими.
Оказывается ещё и Мартин Скорсезе с Фрэнсис Форд Копполой аналогичное
заявляли, что это не искусство кино. Полностью всех их поддерживаю!
Сделана картинка очень круто в этих фильмах, но... на этом всё.
Скучнейшее времяпрепровождение после которого не остаётся ничего: ни
переживаний, ни даже просто хотя бы запомненного сюжета. Я многие фильмы
подобные видел (последний раз по ТВ в Абхазии в отеле), и я совершенно
ничего от них не могу припомнить, кроме факта наличия спецэффектов.
Иногда хочется что-нибудь дома посмотреть и просто идёшь на сайты типа
ivi вообще поинтересоваться что сейчас есть из фильмов, что вышло
нового. И уже давно (а выходят то они регулярно (или уже нет?)) фильмы
по комиксам подобным -- просто игнорирую, вообще не рассматриваю как
вариант для потери времени... типа лучше пересмотрю какой-нибудь старый
фильм, засмотренный до дыр.
Sergey Matveev [Sat, 16 May 2020 17:08:56 +0000 (20:08 +0300)]
Прозрачные корпуса компьютеров и лампочки
Заметил моду (или она уже проходит) на прозрачные корпусы для ПК. Когда
хотя бы одна сторона прозрачна. Видел что многие комплектующие с RGB
подсветкой: материнки, видеокарты (там вообще светомузыка), даже модули
памяти. Но я вот этого не понимаю. Ну то есть кому нравится -- пускай
конечно делает. Если будет корпус с прозрачной крышкой, то мне конечно
это не вариант не брать. Если память/видюха (хм, последняя покупка
видеокарты, наверное ещё моим отцом, была лет 12 назад) с подсветкой, то
хуже конечно не сделает, ибо стоимость подсветки я думаю ничтожная. Но
просто у меня вообще никаких чувств не вызывает: ни восторга, ни
интереса, ни отвращения, только немного удивления.
С другой стороны, я обожаю лампочки! Мне кажется об этом должен был
писать, но что-то не нахожу. И тенденция убирать многие лампочки
(особенно на ноутбуках) меня бесит! Лампочка питания: блин, как без неё
узнать компьютер/сервер/whatever (хотя я с серверами то проблем не
бывает в плане лампочек) включён и просто повис и не реагирует (или
элементы ввода отрублены) или он выключен? Лампочка link-а сетевой
карты... блин, тут вообще по моему без комментариев, но я был шокирован
увидев у кого-то в ноутбуке порт без неё. Ё моё! Да в моём Dell-е то
как-раз оно так и есть, но благо дома у меня коммутатор всегда виден и
link на нём -- просто повезло что он в визуальной доступности. Лампочка
скорости сети... не знаю крайне ли важна или нет, но отсутствие гигабита
часто говорит о проблемах в контакте или ОС драйвере. Лампочка жёсткого
диска... вообще абсолютно полностью не понимаю как это то можно было
убрать? Опять же, когда система ушла в глубокий swap и, очевидно, вряд
ли на что-то сможет прореагировать, да ещё X11 грохнет, то как понять
что не так то с ней? Да мне кажется это чуть ли не основная лампочка на
которую я РЕАЛЬНО смотрю, реально выдающую информацию (банально даже
просто нагрузка понятна или что вообще нагрузка на диск пошла). Если
забыть про swap, то можно же вывести индикатор/мониторинг? В полноценно
загруженной ОС -- да, а если это какая-нибудь установка, если сервер без
GUI? Идти в отдельный терминал или не забывать запускать tmux в консоли
чтобы иметь возможность запуститься какой-нибудь systat -iostat? Без
лампочек компьютер работает, не спорю -- но удобство теряется. Кроме
диска, лампочка передачи по сети -- сверх мега удобнейшая штука для
понимания что происходит. WiFi я у меня выкручен из ноутбука, но
наверное и его мигание лампочки при передаче было бы полезным. В прошлых
ноутбуках я WiFi не использовал, но помню что в ThinkPad он мигал и
постоянно загорался когда был подключён к сети.
В сервере лампочка напротив каждого диска -- must-have, без
комментариев, но это вроде никто не покушается. У меня в сервере на HBA
контроллере есть лампочка просто означающая что он включён и работает, а
есть мигающая при реальной передаче данных и в целом это мне помогало
ощутимо. Хм... но чтобы её увидеть, как-раз был бы полезен прозрачный
корпус (в сервере у меня есть картонка через которую видно)... похоже я
сам себя переубеждаю, но в серверах прозрачных корпусов не делают, а SAS
HBA контроллеры вряд ли дома используются. Лампочки на материнской
плате, говорящие о наличии питания, загрузки BMC -- тоже без
комментариев что нужны. На USB3 коммутаторе у меня для каждого порта
есть кнопка отключения порта, с лампочкой. Лампочки питания каждого
компонента звуковой системы -- must-have. На ИБП аналогично. Ночью у
меня вообще компьютерный угол освещает комнату достаточно ярко чтобы я
без очков мог открывать нужные дверцы в шкафах и брать оттуда нужные
вещи. А вот берёшь какой-нибудь современный ноутбук и... ну ах@#$%ть!
лампочка у web-камеры и может быть, возможно питание будет. Не забуду
восхитительную подсветку ThinkPad-а: просто тупо LED в крышке, который
освещает не только клавиатуру, но и часть пространства вокруг ноутбука
-- невероятно полезнейшая штука (у меня жёлтого цвета была). А сейчас? В
самой клавиатуре подсветка... полезная только чтобы по клавишам попасть,
но ничем более не помогающая. Не, лучше чем ничего, но LED в крышке это
killer-feature!
Возвращаясь к основной теме: а вот RGB мне наверное не понятны тем, что
они не несут никакой полезной информации. Лампочка на материнке, просто
постоянно горящая зелёным говорит что есть питание. Приходя домой после
работы, сняв верхнюю одежду, я заворачиваю в комнату с компьютерами и
первым делом смотрю на моргание коммутаторов. Не моргает гигабитный, но
моргает 100Mbps? Значит основной сервер, подключённый к Интернету жив,
что-то не так с другим -- разберусь как переоденусь, поем и всё такое.
Не моргает коммутатор с Интернетом? Сдох сервер главный наверное, если
при этом есть link на Интернет. Сразу сажусь выяснять. По лампочкам
жёстких дисков понимаю развалился ли массив/сдох ли диск. В серверах
стоечных -- да половину времени они экономят чтобы понимать подалось ли
куда нужно питание и что смогло запуститься. А RGB... наверняка (вроде
видел в видео) есть программируемые, особенно на вентиляторях, но это
всё будет работать когда ОС и весь софт в ней функционируют штатно.
Когда-то на компьютерах была лампочка и переключатель turbo. Конечно,
это уже не актуально и я даже ни разу не застал надобность выключения
турбо. Нахождение компьютера в спящем режиме... уже не помню насколько
полезно, ибо я уже уйму лет их (ноутбуки) в него не переводил. Менять
цвет лампочки питания -- вариант, главное что информацию оно передаёт.
Ещё помню что удивлялся CD/DVD-приводам внешним без индикатора
активности... блин, очень не редка ситуация когда он шумит, крутится, но
это не означает что есть какое-то действие. Или наоборот: он неспешно
записывает на минимальных оборотах, что его даже не слышно и захочется
отключить от компьютера. Короче чем больше, тем лучше, хуже не будет,
лишь бы несли информацию, и не от ОС получаемую, в первую очередь.
Apple наверное имеет минимум лампочек и, наверняка, её ответом будет:
наши компьютеры не ломаются, не повисают, just works, и т.д.. Всё просто
не могу забыть их ответ на то, почему в APFS нет проверки ошибок (уж
молчу что нет компрессии): потому что их накопители сами по себе надёжны!
А ещё в ThinkPad-ах помню что многие лампочки продублированы на нижней
части крышки открытой и на боку копуса -- офигенно! И во время работы за
ним, тот же заряд или сеть/диск видны и когда он рядом находится,
особенно с закрытой крышкой. У моего Dell только питание, зарядка
(когда он заряжен, то нельзя сказать подключён ли он к электросети или
нет -- даже здесь придётся глазами искать воткнут ли провод) -- и всё
только на боку.
Sergey Matveev [Sat, 16 May 2020 09:03:28 +0000 (12:03 +0300)]
Психология IPv6
https://www.youtube.com/watch?v=GK6vl5z-8NY
В моей статье про IPv6 (https://habr.com/ru/post/490378/) снова начались
дебаты в комментариях и там появился ссылка на такой вот доклад с YouTube.
По идее ничего нового и этот доклад можно отнести чуть ли не к любой
технологии новой, но он прям реально показывает какие люди встречаются
по отношению к IPv6. Например:
* Haters, trolls -- находят только недостатки. Что с ними делать?
Игнорировать, тем более они из IPv4 мира свою ненависть изливают :-)
* Те, кто просто игнорирует статистику по IPv6 (Google пользователи, то
что современные ОС по умолчанию предпочитают IPv6, то, что в мобильных
сетях по большей части всё поверх IPv6, а в LTE вообще это
единственный транспорт)
* Те кто постоянно сравнивает идеальный мир и реальность, идеальный мир
и итерацию (внедрения). Но с ними не всё так плохо и можно вести
беседы
Преобладающая часть комментариев, как мне показалось, на Хабре это про
то, что люди удивлены тому, что есть firewall-ы. Причём в IPv4 мире
firewall-ы вроде как никто никогда не отменял и они по умолчанию имеются
всюду и везде. И людям и правила firewall-а показывают на несколько
строчек которые делают NAT-like связанность сети и как-бы аналогичный
эффект "безопасности" -- то есть никаких проблем с безопасностью для
домохозяек нет даже в принципе, но... тут я дальше уже перестаю
читать/воспринимать человека, если даже такие доводы и практические
примеры его всё равно ни в чём не убедят.
Sergey Matveev [Fri, 15 May 2020 09:34:59 +0000 (12:34 +0300)]
Потрясающая кладезь знаний про компьютерные ДЦ сети
Я много литературы перечитал и перевидал, в основном рассчитанной на
сдачи экзаменов в Cisco и прочее. Но я видел статьи от Яндекса на Хабре
про построение сетей и... я половину терминов там вообще не понимал, тем
более в целом о чём он говорит и о каких проблемах. И особо не мог найти
информации а где бы просвятить себя во всей этой теме построения ДЦ.
https://linkmeup.ru/sdsm -- вот ответ! Просто потрясающее количество
интереснейшего и понятно разжёванного материала! Вышел на него через
часть их статей выложенных на nag.ru. Например очень понравились:
https://nag.ru/articles/reviews/106886/pamyat-seti-kak-sohranit-paket.html
https://linkmeup.ru/blog/312.html
https://linkmeup.ru/blog/365.html
https://linkmeup.ru/blog/480.html
https://linkmeup.ru/blog/482.html
Вся эта подборка даже в открытом виде в исходниках выложена:
https://github.com/eucariot/SDSM/
А ещё через неё вышел на вот такие доклады, после которых, я как-будто
прозрел и начал вообще всё понимать (не то что я бы это мог делать, но
хотя бы уже понимаю о чём речь и какие проблемы):
https://www.youtube.com/watch?v=iZavvatyDb8
https://www.youtube.com/watch?v=xcGa-q5MA0s
https://www.youtube.com/watch?v=U86Xjx1rcHY
А также ещё одно отличное чтиво: https://tools.ietf.org/html/rfc7938
Плюс в этих статьях хоть что-то узнал про устройство всех этих
маршрутизаторов и коммутаторов, где 64-128 100GbE портов и у меня не
очень укладывалось как это всё вообще можно переваривать на таких
скоростях то? Про ASIC конечно слышал и точно был уверен что на них всё
строится, но вот про память CAM/TCAM не знал.
Sergey Matveev [Fri, 15 May 2020 07:27:01 +0000 (10:27 +0300)]
Проприетарное ПО и удалённое обучение
https://www.fsf.org/blogs/community/remote-education-does-not-require-giving-up-rights-to-freedom-and-privacy
То, что люди выбирают несвободное ПО для взаимодействия и учёбы я в
курсе. Но, то что оказывается они ставят себе софт на свои персональные
компьютеры для того, чтобы он следил за микрофонами, клавиатурой и всем
остальным, типа для предотвращения "списывания" -- для меня это новость.
Студенты показывают камерой своё помещение где они находятся даже. Такое
ощущение, что 1984 наступил буквально за пару месяцев.
Sergey Matveev [Thu, 14 May 2020 17:26:47 +0000 (20:26 +0300)]
Что лучше: большие или маленькие буферы?
https://nag.ru/articles/reviews/106886/pamyat-seti-kak-sohranit-paket.html
https://nag.ru/articles/reviews/106515/intellekt-seti-kak-peredat-paket.html
https://linkmeup.ru/sdsm
Интереснейшая статья про буферы в коммутаторах, а также её первая часть.
Для меня вся эта тема совершенно неизведанна. "Отбросы -- санитары сети".
"... OSPF и ISIS (запрещённый в Российской Федерации протокол маршрутизации)"
Sergey Matveev [Thu, 14 May 2020 09:01:35 +0000 (12:01 +0300)]
Обсуждение регистраторов доменных имён и Gandi.net
https://habr.com/ru/post/501860/
https://news.ycombinator.com/item?id=22001822
https://news.ycombinator.com/item?id=22001959
На Хабре предупреждают о плохом поведении nic.ru. Да, у меня тоже с ними
были неприятные моменты из-за которых ушёл. Но речь зашла про Gandi и
вот новость этого года про них увидел на Hacker News. И в комментариях
народ тоже пишет что их просили предоставлять идентификацию (сканы
паспортов) как я в c31f6098d68cde8ca765e916fb58e4cb7ce93a69. И тоже
говорят что есть неплохой шанс потерять свой домен.
Sergey Matveev [Thu, 14 May 2020 08:23:45 +0000 (11:23 +0300)]
UFS2 Soft Updates vs ZFS
Есть у меня две директории с сотнями тысяч файлов. И нужно несколько
сотен тысяч файлов из одной директории удалить и на их месте сделать
символические ссылки на другую директорию (дедуплицировать, так
сказать). То есть 400k remove+symlink операций выполнить (из Go).
Под ZFS эта операция длилась... уж точно не помню, но речь вроде о двух
или более часах. Под UFS2+SU операция заняла... секунд 10. Но! Ещё
полчаса я всё же видел моргающую лампочку НЖМД, которая, насколько
понимаю, коммитила как-раз все эти сотни тысяч изменений. Сколько это
окончательно заняло я не знаю, ибо ушёл спать. Но поведение конечно
разительно отличается от ZFS-шного и выглядит так, что ZFS на несколько
порядков медленнее работает. Хотя, конечно это не так: ибо прервав
работу ZFS, мы всё равно остановимся на каком-то проценте выполненных
операций, а прервав коммит SU... я не знаю, но или прервётся всё или,
аналогично, только часть как в ZFS или может быть вообще ничего не
применится? Но с ZFS-ом, после выполнения команды, можно быть уверенным
что всё на диске (ну... после создания checkpoint, минуту подождать), а
с SU я даже с ходу не знаю что надо дёргнуть или посмотреть чтобы понять
что всё засинхронизировалось. Повторять уж лень, но возможно "sync"
команда банально (и на два часа её ждать :-))?
Sergey Matveev [Wed, 13 May 2020 15:20:12 +0000 (18:20 +0300)]
Why AES sucks? Сраный стыд!
https://soatok.blog/2020/05/13/why-aes-gcm-sucks/
Полная ахинея, а не статья. Всё начинается в ней с того, что у AES-128
заявляются безопасность в 128-бит. Но у AES 128-бит размер блока и через
2^64 начинаются коллизии в AES-CBC режиме! Поэтому...
This is significantly smaller than the 2^128 you expect from AES.
@#$! Какая взаимосвязь то? То, что CBC имеет ограничение на кол-во
обрабатываемых блоков... известно как-бы десятилетиями и всюду и везде в
любом протоколе (нормальном) о них предупреждают. Как решить эту
проблему? Менять ключ не реже чем 2^64 блоков. Проблема решена. Тем
более, что на практике это достаточно большое число чтобы не приходилось
менять чересчур уж часто, как это нужно с 64-бит блочными шифрами. А
автор статьи мешает: безопасность шифра с безопасностью CBC и мешает
сложность атаки и пределы *безопасной* применимости. Да и вообще это
прям что-то явно новое: приравнивать безопасность алгоритма шифрования к
кол-ву блоков которые он может обработать.
Дальше он продолжает развивать свою идею. Оставим это.
Придирается к GHASH конструкции, даже картинку как в Wikipedia поместил
и говорит что сообщения аутентифицируются зашифрованным на ключе нулевым
блоком. Автор наверное слеп и не замечает в самом конце XOR-а с
зашифрованным nonce-ом. А ссылку он приводит на nonce-reuse атаку, не
связанную с проблемой GHASH-а. Да, GCM это не nonce-misuse-resistant
режим, как и тьма других, как это известно с самого их появления. Nonce
должен быть nonce-ом! Если у тебя режим работы и условия использования
такие, что ты не можешь обеспечить его уникальность, то GCM неприменим,
точка. Просто в 99% случаев применения шифрования -- nonce можно сделать
гарантированно неповторяемым.
Далее раздел про короткие nonce. Да, они короткие, делая AES-GCM
применимым только к сессионным достаточно часто меняющимся ключам. Опять
же, это известно любому и в чём проблема то? Хочешь использовать
long-term ключи? Ну так не притворяйся дураком и вырабатывай (HKDF хотя
бы) ключи из long-term-а, а на выработанных уже шифруй в GCM-е. Не, не
спорю что короткие nonce-ы не везде удобны, но так и GCM никто не
предлагает применять для любой задачи на свете.
Ещё автор радуется наличию double ratcheting в Signal. Да, это
действительно хорошая штука. И даже против side-channel атак помогает. И
я осознанно написал "даже", так как это не основное его предназначение.
Но в конце статьи автор умалчивает что XChaCha20-Poly1305 то никакого
ratcheting не содержит... мне кажется что автор считает что у ChaCha20
не возможны side-channel атаки, а ratcheting нужен только для их
предотвращения.
Далее он ведёт речь про "message franking". Я вообще не понимаю какое
это имеет отношение к AEAD режиму и задаче передачи сообщений? Мягко
говоря, это совершенно отдельная задача и на кой чёрт её нам тут решать
то? Ещё автор, похоже, считает что многие любят выбирать ENC + HMAC
конструкции глядя на Signal... мягко говоря, от этой конструкции все
отходят и используют только AEAD, как минимум из-за производительности,
не говоря про удобство (простоту и значит безопасность) и прочее.
В общем заканчивается предложением использовать XChaCha20-Poly1305 "for
encrypting messages under a long-term key". То есть, всё же AES-GCM
обсирался с точки зрения long-term key usage? Об этом явно говорится
только в самом конце статьи. А разве кто-то предлагает использовать
AES-GCM для этой задачи? Но про 2^64 уровень безопасности это полная
ахинея конечно.
Единственное в чём я безоговорочно поддерживаю автора, так это в
предложении использовать *ChaCha20-Poly1305, ибо отсутствие Sbox-ов,
скорость и уровень безопасности там превосходны и, если есть выбор, то
AES я бы тоже не выбрал бы ни за что. Только у меня нет ни одного
сомнения в его безопасности. Сомнения в его корректном применении? Могут
быть. Точно так же, как и могут быть при использовании XChaCha20-Poly1305.
Абсолютно точно такой же не-nonce-misuse-resistant алгоритм. Или автор
предлагает использовать всегда именно X-версию и рандомно генерировать
nonce для каждого пакета?
Sergey Matveev [Wed, 13 May 2020 13:10:27 +0000 (16:10 +0300)]
Дистанционное голосование
https://lenta.ru/news/2020/05/13/distance/
Чего-то я не понял. Голосование же вроде как анонимное должно быть? А
как мне, собственно, подпись сделать с этими Госуслугами? Типа факт
авторизации? То бишь, будучи админом... заходи в БД госуслуг и твори что
хочешь с голосами? Или предполагается что будет ЭЦП у всех? Это та
самая, которая потребует в любом случае установки проприетарного ПО
(закрытой .so-шки в том числе) на компьютер? А закрыто то оно будет
потому, очевидно чтобы скрыть явно что-то нехорошее. Просто о других
сертифицированных ЭЦП я не слышал. Текст поправок я не осилил: там
ссылка на ссылке, ссылкой на другие документы погоняет.
Sergey Matveev [Wed, 13 May 2020 08:36:58 +0000 (11:36 +0300)]
Современные CPU затачивают под видеоигры, как говорит DJB
https://moderncrypto.org/mail-archive/noise/2016/000699.html
Интересный его ответ аж из 2016-го, где он описывает что для
криптографии и простой арифметики современные x86 процессоры
так себе заточены.
Sergey Matveev [Wed, 13 May 2020 07:45:44 +0000 (10:45 +0300)]
SSD вместо RAID
https://megaobzor.com/chto-takoe-sovremennyy-server-.html
Судя по статье, RAID вымирает, так как есть SSD, ибо его
производительность куда выше. Авторы никогда не задумывались
и не любопытствовали о том, что первая буква в "RAID" означает
redundant, а не performance/speed/whatever?
Sergey Matveev [Mon, 11 May 2020 19:27:41 +0000 (22:27 +0300)]
Основные команды в "Linux"
https://habr.com/ru/post/501442/
Ну придираться то я могу там почти к каждому предложению, но за что
больше всего зацепился глаз?
* архив с двумя JPEG-ами сжимают gzip-ом! Why, why???
* рассказывают только про дополнение имён/путей через tab. Насколько же
жизнь прекрасна с настроенным zsh-ом когда, если мне надо перейти в
Funeral_Mist-2018-Hekatomb, то я просто наберу: heka<TAB>. Но в Bash,
насколько знаю, так нельзя
* ну и... проще искать, оплатить и поднимать машину где-то в облаке чем
запустить в виртуалке какой-нибудь дистрибутив??? Я видел что многие
дистрибутивы даже готовые образы предоставляют, без необходимости установки
Эх, но когда автор НЕ рекомендует читать документацию, а рекомендует
гуглить...
Sergey Matveev [Mon, 11 May 2020 17:22:41 +0000 (20:22 +0300)]
UTF-8 везде!
https://habr.com/ru/company/1cloud/blog/501408/
Судя по комментариям, люди до сих пор откуда-то считают и взяли что
символ в UTF-16 всегда занимает фиксированное количество байт. А так
всем читать https://utf8everywhere.org/ надо, похоже.
Sergey Matveev [Mon, 11 May 2020 16:47:07 +0000 (19:47 +0300)]
Funeral Mist -- Cockatrice
https://www.youtube.com/watch?v=4SypJy4s3C4
Уже писал про альбом Hekatomb этой группы: e214fe14c62f7a230300894a462e891d075d17f5
и всё равно он продолжает впечатлять после далеко не первого прослушивания!
Cockatrice трэк наверное мне нравится больше всего с альбома, хотя и
первый трэк, особенно будучи первым, тоже крут. Но Cockatrice такая
атмосферная штука и black metal вот должен звучать именно так!
Sergey Matveev [Mon, 11 May 2020 13:22:22 +0000 (16:22 +0300)]
В Европе запретили использовать "стену cookie"
https://nag.ru/news/newsline/106921/v-evrope-zapretili-ispolzovat-stenu-cookie-.html
Меня терзают смутные сомнения насколько вообще такие законы
работоспособны, но после относительно недавних их последних законов,
действительно, я много на сайтах вижу предупреждений о cookie. И,
действительно, я много раз видел эту "стену". Ну, то бишь, это
безусловно хорошо что стали предупреждать о том, что они используют
cookie, но пользователь, получается, всё равно должен дать на это
согласие и закон ни капли не помогает против слежки, а только
предупреждает о ней. Посмотрим что выйдет с запретом "стены".
Sergey Matveev [Mon, 11 May 2020 09:24:50 +0000 (12:24 +0300)]
Использую ли я цифровой блок на клавиатуре?
https://habr.com/ru/post/501142/
Дома и на работе у меня Filco Majestouch 2. Вот только дома с цифровым
блоком, а на работе без. И я домой собирался без него покупать, но их
просто тупо не было в наличии. И я вообще абсолютно полностью никогда
его не использую. Мне кажется что только если нужно включить NumLock,
то тогда бы и прикоснулся к нему, но я уже не помню когда мне такое
могло бы понадобится. Первое что во всех магазинах мне бросается в
глаза, так это как-раз то, что продавец тянется к цифровому блоку для
ввода.
Sergey Matveev [Mon, 11 May 2020 09:21:50 +0000 (12:21 +0300)]
HISTORY_IGNORE в zsh
Некоторые команды я не хочу сохранять в истории интерпретатора. Как
минимум, просто чтобы не спалиться на том, что я качал какой-нибудь
видеоклип или прочее. Достаточно поставить пробел в начале и она не
будет сохранена. Но годы спустя я заметил что например команда ytdl
вообще всегда у меня набирается с пробелом. Как оказалось,
HISTORY_IGNORE переменная в zsh спокойно позволяет задавать шаблоны
чего надо игнорировать. zsh нарадоваться не могу всё же -- крайне
удобнейший shell 100% стоящий перехода на него.
Sergey Matveev [Sun, 10 May 2020 12:59:32 +0000 (15:59 +0300)]
Посмотрел "Разрыв"
https://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D0%B7%D1%80%D1%8B%D0%B2_(%D1%84%D0%B8%D0%BB%D1%8C%D0%BC,_2003)
Офигеннейшая комедия! Как-будто посмотрел фильм такого же уровня как
какие-нибудь "Карты, деньги, два ствола". Вроде весь фильм просидел с
улыбкой, хотя... Колин Фаррел играет конченого отморозка. Однозначно
рекомендовать могу каждому!
Sergey Matveev [Sun, 10 May 2020 12:56:19 +0000 (15:56 +0300)]
Посмотрел "Убийство священного оленя"
https://ru.wikipedia.org/wiki/%D0%A3%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%BE_%D1%81%D0%B2%D1%8F%D1%89%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%BB%D0%B5%D0%BD%D1%8F
Очень страшный и стрёмный фильм! Причём пугало в нём больше не то, что
происходит, а то какие вещи говорят все эти дети и как говорят. Затянут
правда, на мой взгляд, но как страшилка офигеннен.
Sergey Matveev [Sat, 9 May 2020 13:34:00 +0000 (16:34 +0300)]
Вспоминая установку Quake3 под FreeBSD
В Quake3 я очень много в своё время и однозначно и точно мог считаться
"отцом" в нём. Но по началу происходила игра у меня под Windows. Позже я
образумился и у меня появилась FreeBSD. Помню что это был AMD K6-2 233Mhz
компьютер. Quake3 на CD-ROM купить то можно было без проблем, но для
Windows. Для FreeBSD версии официально не было, но эта ОС вполне себе
хорошо умеет эмулировать Linux, для которого существовала версия q3.
Высокоскоростного Интернета штатно дома ни у кого не было и попасть в
него можно было через dialup. Сам q3 для Linux занимал 20 с чем-то
мегабайт -- это сам исполняемый файл, движок игры, к которому
самостоятельно надо было подкладывать карты, текстуры и тому прочее, но
это уже можно взять из Windows версии.
Телефонная линия у меня тогда была ужасна. Но всё же карточки РОЛ я
приобретал время от времени. В итоге пришлось качать этот q3 почти всю
ночь: тогда и качество связи получше, и дозвониться проще. Но сидеть
приходилось рядом и наблюдать, так как могли быть обрывы, timeout-ы
довольно большие чтобы человек раньше мог понять что всё обломалось и
проще перезапустить ftp скачивание (докачивание). Тогда я ещё в школе
учился и уже пора было выходить, уже утро наступило. И как-раз за минут
десять до выхода этот файлик в 20+ метров у меня докачался. Особо я
иллюзий не питал что оно просто так возьмёт и запуститься под FreeBSD,
но оно именно так и произошло без проблем -- радости не было предела. А
потом ещё и обнаружил что эмулированный Linux файл под FreeBSD выдаёт
где-то на 10% больше FPS-ов (уже тогда Linux был какахой).
Годами позже я и в Doom3 играл тоже в Linux версию. Когда я приобрёл
ThinkPad T420, то в нём был процессор с интегрированной графикой,
которой по мощности хватало для этой игры. В день покупки я всю ночь до
самого утра просидел проходя этот Doom3. Чуть ли не спустя десять лет
после его выхода я всё же поиграл :-). Видеокарты отдельной мощнее чем
GeForce MX200 у меня никогда не было, но её хватало для GTA3 и Half-Life 2:
одни из последних игр в которые я вообще играл у себя. А потом желание
во всякие новинки играть как-то пошло на убыль, да и на железо тратиться
дорогущее жалко было. Были мысли чтобы сделать себе отдельный ПК чисто
для игр, но в 0c3bab7434eb5c44e921932e6b22169622f99267 уже поминал что
поиграв как-то у друга в GTA5 и Doom4, получив удовольствие, я всё же
понимаю что мне хватает несколько раз в них поиграть, а дальше уже не
захотелось бы.
Sergey Matveev [Sat, 9 May 2020 13:30:49 +0000 (16:30 +0300)]
Огромный список откуда взялись различные имена для софта
https://wiki.debian.org/WhyTheName
Интереснейшее чтиво! "caca", как и ожидается, действительно означает
какаху по французски. Описания очень забавные у многих в списке!
Sergey Matveev [Fri, 8 May 2020 13:58:22 +0000 (16:58 +0300)]
xz не всегда сжимает лучше gzip
Есть тут один сертификат, который хочется компактно сохранить (хотя он и
так не шибко большой). xz сжал (-9 и всё такое) чуть чуть хуже. bzip2
ещё хуже. Zstd лучше:
В общем, не всегда стоит слепо использовать xz. Хотя я почти везде уже
перехожу на zstd, ибо уж очень хорош и у меня реально полно мест где я
прям замечаю разницу по скорости декомпрессии.
Sergey Matveev [Fri, 8 May 2020 13:29:55 +0000 (16:29 +0300)]
Указание профилей для mpv
https://git.stargrave.org/cgit.cgi/dotfiles.git/commit/?id=e4ad1f1ad2808104f569c2e8ecb20f3c33af9a75
Со времён mplayer у меня было три use-case для многих вещей которые я
проигрываю: вывод на внешнюю звуковую карту, включение нормализации
громкости звука и включение аппаратного ускорения видео.
Для mplayer я в итоге делал: mplayervo.sh, mplayervoaf.sh скрипты
которые запускали mplayer с ускоренным видео и тоже самое, но с
нормализацией звука. В основном вывод на внешнюю звуковую я использую
для музыки и просто в zsh истории у меня сохранялся вызов mplayer -ao ...
В mpv появились работающие профили (в mplayer то ли не работало, то ли я
криворук и нетерпелив) и все эти случаи можно включать как --profile=...
Видеоускорение случай отпадает: mpv автоматически его сам включит. Но
вот задавать --profile=volnorm, --profile=extaudio геморройно. Писать
скрипты .sh как я делал для mplayer тоже как-то не трушно совсем.
В итоге написал простую обёртку ("mp"), которая заглавные двухбуквенные
аргументы заменяет на --profile=...:
И я могу написать mp AO ... и будет вывод на внешнюю звуковуху, хочу при
этом нормализацию звука: mp AO VN ... Идея тупейшая, но я не понимаю
почему я за столько лет не додумался до неё сразу же. Да и "mp" набирать
куда быстрее.
Sergey Matveev [Fri, 8 May 2020 08:23:47 +0000 (11:23 +0300)]
Going NoPhone
https://libreplanet.org/wiki/Going_NoPhone
https://replicant.us/freedom-privacy-security-issues.php
Вот такое вот движение/проект есть -- перестать носить с собой
радиопередатчики с проприетарными прошивками. А страница на Replicant
очень хорошо поясняет про проблемы даже если установлена СПО ОС.
Sergey Matveev [Thu, 7 May 2020 17:53:06 +0000 (20:53 +0300)]
Моя жизнь в институте и движение свободного ПО
Разбираясь в документах, увидел фотографию со Столлманом
(сфотографировал в 33195d60e850934e49f0d4514a08df544ce40257).
Вспомню свою историю учёбы в институте как борца за свободное ПО.
К продвижению СПО это не относится, но свою первую курсовую (не уверен
была ли это курсовая, так как первый семестр) делал в Groff (GNU troff),
используя и eqn, и tbl (до сих пор отличнейшая штука: f445f28611aafab4883fd15795498f45bf5ca239) и pic. В итоге запомнилось что
я не смог подключить/сделать не моноширинный шрифт кириллический в нём и
сдавал моноширинным, что выглядело уж очень old-school, но я не специально.
Следующая курсовая уже содержала кучу формул (теормех). Я взялся её
делать в OpenOffice, но довольно быстро рехнулся от набора математики в
нём. Тогда я слышал про TeX/LaTeX, но, как и полагается классическому
студенту раздолбаю, начинал делать я её запоздало и времени на изучение
новой системы у меня не было. Поэтому я в TeX набирал только формулы,
рендерил это, делал screenshot страницы с кучей формул и в виде картинок
вставлял в OpenOffice документ. Ад, но это реально было быстрее чем
набирать по "родному" в OpenOffice. Благо, так я обосрался только один
раз. До конца института дальше я делал всё только в LaTeX полностью.
Диплом мой состоял из кучи Makefile-ов, каких-то скриптов и вовсю
используемого LaTeX со всякими BibTex и прочим. За всю свою жизнь я не
сделал ни одной презентации не в Beamer, не считая плагинов для Vim-а
где я сделал несколько работ:
https://git.stargrave.org/cgit.cgi/vimslides.git/tree/README.slides
Само собой, я не сдал ни один Word или Excel документ. PDF-ки и исходный
текст который я показывал особо любопытствующим преподавателям, поясняя
что если им надо что-то отредактировать и поправить -- пожалуйста. Кроме
того, в МАИ есть своё издательство, в котором официальным форматом в
котором принимаются книги для печати был (La?)TeX. К сожалению, в 2000-х
начали принимать и в Word формате.
Так как я инженер-технолог, частично и конструктор, то у нас была тьма
чертежей (и два года инженерной графики!). На инженерной графике нужно
было делать всё от руки. Но вне неё, безусловно, любой человек будет
делать на компьютере. Абсолютно все чертежи делал в QCad. Открывать DWG
файлы, штатно производимые AutoCAD-ом он не мог, но поддерживал DXF, в
который AutoCAD мог экспортировать. В итоге особо проблем с обменом
чертежей не было.
Программирование было только на первом курсе (вроде) и это был Fortran.
Вообще язык для своей задачи неплохой: инженер, не особо смыслящий в
ЭВМ, должен мочь с его помощью сказать какие расчёты (численные методы
например) он хочет произвести, чисто инженерные числодробления. И
Fortran реально очень здорово подходит для этой задачи. C не вариант --
слишком низкоуровевый. Если кто-то считает что так можно и про Python
было бы сказать что он хорошо подходит инженеру, но его не выберут
потому что он в тысячи раз медленнее C, то к Fortran-у этот аргумент не
относится: тупейший простейший код перемножения матриц (несколько
циклов, простая арифметика) GNU Fortran-ом компилируется в программу
которую я не смог обогнать написав её на чистом C. Безусловно мои
познания и сейчас в C не очень велики, но как бы я не пытался что-то
сделать, но gfortran всё равно уделывал по скорости gcc программу.
Причём нам конечно же рассказали про F77, где фиксированные отступы и
заточенность под перфокарты, но в основном потом писали на куда более
человеческо удобоваримом F90. Серьёзно, если бы сейчас мне нужно было бы
сделать быструю (и это главное) числодробилку, то я бы снова взял в руки
Fortran, хотя с первого курса и не брав его в руки, но меня это не
пугает ибо он простой.
Дальше нас учили и показывали Mathcad, Maple, Matlab, Simula (если
правильно помню название). Mathcad с самого начала не понравился. Maple
с самого начала понравился, ибо нормальный ввод хотя бы, а не вовсю
визуальный как в Mathcad. Насколько помню, Maple штатно вообще в
программу не входил и это личное желание расширить кругозор студентов
преподавателя Алябьева было. Имени не помню (я вообще на имена плох),
все его по фамилии называли между собой. Безгранично уважал этого
человека, поклон ему! Maple умел символьно решать интегралы и нам,
студентам, это было очень кстати.
Но тогда я уже заразился движением СПО! Использовать всё вышеназванное
не мог по двум причинам: у меня не было Windows, оно всё не свободное.
Как и AutoCAD аналогично и всё остальное. В итоге для Maple была
отличная СПО замена в виде Maxima. Полноценной замены на тот момент
современному Matlab не было, но GNU Octave даже обратно совместим с его
более старыми версиями. Вся работа по Mathcad проходила в классе и дома
ничего по нему выполнять не надо было -- поэтому у меня проблем с его
сдачей не было. Maple вообще чисто факультативный и тоже вроде только в
классе достаточно его было использовать. А вот по Matlab были задания.
Делал я всё в GNU Octave и какого-то функционала там не хватало и
приходилось самостоятельно писать из её компонентов (на самой Octave)
недостающие части. Выполнение работы занимало гораздо больше времени чем
у одногруппников, но я принципиально, используя только СПО, делал нужные
работы (в принципе, являющиеся Matlab-compatible).
Был курс по какой-то экономике и там были задачи оптимизации. Нам
выдавали на дом их решать с помощью Excel-а, в котором какой-то
функционал для этих задач имелся. В OpenOffice я уже не помню, но вроде
функционала не было такого. Но мне же надо выполнить задание? В Excel
оно выполняется быстро: нужно просто грамотно составить таблицу исходных
данных, запустить оптимизацию, дальше правильно интерпретировать
результат -- за полчаса вроде всё спокойно делалось. Я же писал
программу на Python (одна из первых на этом языке) со всякими numpy
(scipy?). Заняло это не один день в итоге, но задачу выполнил. А кроме
этого, ещё написал на несколько страниц документ о том, почему
заставлять (хотя он и не заставлял, просто предлагал, но у меня и не
было наезда как такового) использовать проприетарное ПО в учебных
заведениях не есть хорошо. Думал что будет срачь с преподавателем
немолодым (выскочек то они особо не любят), но... он с интересом
прочитал его, уважил мою мнение и в целом согласился, не знал про всю
эту тему свободного ПО.
Причём, для этой задачи оптимизации надо было визуально построить...
даже не знаю как это называется, но какие-то схемы с кучей
кружочков/квадратиков с заполненными рассчитанными значениями. Что тоже
требовало время. Я этой программой генерировал исходник для GraphViz-а
который это отлично рисовал. На вход программа принимала CSV. В итоге в
него достаточно было внести значения любого человека, через секунды
получить картинку на экране которую перерисовать и сдавать работу.
Одногруппникам и делал их задачи ею.
Был у нас курс по аэрогазодинамике. Интереснейший предмет! В конце надо
было сделать курсовую с расчётом какого-то момента для спускаемого
аппарата: вроде бы понять под каким углом он должен заходить в атмосферу
чтобы всё было тип-топ. Уж тупо не помню под каким софтом преподаватель
это предлагал нам сделать, но вроде бы Ansys Fluent. Задача в следующем:
нужно сделать модель аппарата, дальше итеративно рассчитывать для неё
какие-то параметры (ух, совсем не помню какие) в зависимости от того,
под каким углом он как бы войдёт в атмосферу. Ну и проанализировать
результаты и сделать вывод как его надо вводить в атмосферу. Цифровую
модель аппарата нам дали. В общем делать расчёты красивые как вот на
этих картинках в статье: https://en.wikipedia.org/wiki/Computational_fluid_dynamics
Ну не буду же я это делать в богомерзком несвободном ПО? Хотя задача уже
совсем узкоспециализированная -- это не замена какого-нибудь там Matlab
или Word. Но нашёл я OpenFOAM, ParaView. 3D модель аппарата в каком-то
проприетарном формате, поэтому мне пришлось ещё и как-то её "рисовать",
да ещё чтобы это можно было в этот OpenFOAM засунуть для расчётов. А ещё
у меня не было всех этих параметров атмосферы, которую преподаватель в
виде некоего preset-а (насколько помню) выдал. Это тоже пришлось с нуля
в ручную моделировать. Это не очень правильно, но вообще сдать курсовую
было легко, просто введя данные в некую выданную blackbox-программу и по
результатам построить графики в Excel. Мне же пришлось реально понимать
и вдаваться в подробности работы всего этого, ведь OpenFOAM это очень
такая низкоуровневая штука которая не является софтом для расчёта
спускаемых аппаратов, а софтом для расчёта аэро и гидродинамики в целом.
Это была САМАЯ адовая с точки зрения потраченного времени а нагрузки
работа! Мне приходилось писать тысячи строк на Perl, сколько-то на C++,
чтобы выразить в этом OpenFOAM что я от него хочу, чтобы смоделировать
вход СА в атмосферу, указать как его разбить на сетку, как производить
вычисления, что из себя представляет газ и как он воздействует на
аппарат. Дикое количество расчётов я делал на Perl, конвертирования
данных, преобразования и прочее. Штатно вообще многое можно и нужно было
делать на C++, но для меня это чересчур было большим порогом вхождения и
если я мог хоть какие-то тучи чисел получить для каждой "клеточки" сетки
аппарата, то я делал кучу postprocessing-а уже на Perl-е. И ещё мне
запомнилось что сам по себе OpenFOAM штука ресурсоёмкая и у меня
некоторые операции занимали по паре суток расчётов.
Как уже сказал, это была самая адовая работа, которой мне кажется я
занимался весь семестр, где я не раз до 4-5 утра не ложился спать, но в
итоге работу выполнил. Хотя это была и не та самая модель атмосферы, и
спускаемый аппарат не совсем такой формы (она у него вообще не очень
тривиальная, но у меня уже не было времени на создание её точной 3D
модели -- было нечто очень приближённое и похожее), но препода этот
весь труд впечатлил и он много расспрашивал про OpenFOAM и его
устройство и прочее, хотя я на многое не мог ответить, ибо сам ни черта
не понимал (всё же это профессиональный инструмент для профессионалов в
области аэрогазогидродинамики, а я всего-то один или два семестр учился
этому поверхностно (ибо для нас это только поверхностная тема)). Но
единственный получил пятёрку за эту курсовую. Было адски сложно, ночи
бессонные, но мне понравилось, реально очень понравилось. Хотя наверное
мог бы и за час все вычисления в проприетарном выданном ПО выполнить, а
дальше за денёк оформить результаты, но нет! проприетарное ПО
принципиально не вариант!
Это всё было до четвёртого курса включительно. Дальше аэрогазодинамики
или подобного не было, ибо всё больше уже по специальности технолога.
Тогда я открыл такой замечательный софт как SAGE (он тогда относительно
недавно только и появился). Это такой комбайн из десятка самого разного
софта математического и связанного между собой Python-ом. Я могу на
Python этому SAGE задать какие-нибудь вычисления для проделки в Octave,
её результаты засунуть в Maxima (а на самом деле я могу и не знать что
именно там внутри будет запущено), потом как-то визуализировать и ещё
постобработать где-нибудь, а между всем этим и на самом Python с данными
что-нибудь поделать. Кроме этого, SAGE умел интегрироваться с LaTeX. В
итоге, штатно многие курсовые (например по строймеху, сопромату) это
было очень очень много вычислений, формул, уравнений, интегрирования и
прочего. С SAGE-ем я мог абсолютно всё всё всё проделывать прямо внутри
LaTeX документа. То есть я прям буквально в LaTeX ввожу какие-то
формулы, данные, а когда напишу "в результате получаем", то SAGE сразу
же мог подставить результаты в это место. Причём можно было выводить и
промежуточные результаты. И речь не просто про числа, а про
промежуточные результаты решения уравнений или символьного
интегрирования -- и все эти интегралы и диффуры выводились в LaTeX
формате, красиво, символьно. Это было потрясающе круто и удобно.
Помню что было и много чертежей или эпюр для сопромата на которых всякие
эти результаты надо предоставить. По сути они очень похожи и однотипны.
Я делал SVG внутри которого прям буквально менял геометрию на основе
результатов вычислений SAGE-а. Помню что строймех в итоге моя программа
делала для многих одногруппников: достаточно было внести какие-то
начальные данные (числа), ФИО студента, а дальше через минуту на выходе
получить PDF-ку со ВСЕМИ расчётами, даже символьными, графиками,
картинками (и все они для каждой своей задачи правильно отрисованы) и
прочим. Преподаватель удивлялся чего это куча работ выглядит прям
слишком уж одинаково (именно выглядит -- расчёты то везде совершенно
разные).
Ноутбук очень помогал со всем этим делом! Всегда и везде будут придирки
к работам, и их прямо на месте или в библиотеке можно всегда было
поправить. Когда я учился, то у нас были люди которые в Word только
текст вводили, а дальше оставляли много пустого пространства для того
чтобы от руки там математику написать. Многие работы вообще от руки
делались полностью. Я уже тогда ненавидел что-либо делать от руки и
только всё в цифре. Сколько я чертил Thinkpad R60e, eeePC, и Lemote
Yeeloong ноутбуках! Последней штукой я особо гордился: ноутбук с
полностью свободным ПО, MIPS64 процессором -- SAGE, LaTeX, QCad всё на
нём отлично работало! Но для черчения мышку с собой главное было не
забыть. Но я после первого курса, с лета, уже полноценно работал и мог
себе позволить покупать эти дорогостоящие штуки, тогда как ноутбуки у
немногих были.
Для тьмы действий по автоматизации всего этого я писал тьму "маленьких
скриптиков на Perl". Что-то где-то подправить, подставить... ещё один
"маленький скриптик на Perl". Один одногруппник со смехом уже постоянно
говорил что "сейчас ... ещё один маленький скриптик на Perl напишет" --
это стало прям нарицательным.
Один семестр у нас был AutoCAD где-то на начальных курсах. И в конце
нужно было именно в AutoCAD сдать какую-то работу. Преподавали нам его в
учебных компьютерных классах конечно же. Но работу для сдачи делать
предполагалось делать дома. У меня тогда что-то типа конфликта возникло
(что у меня нету AutoCAD дома и точка), но мне выделили один раз время
после занятий в учебном классе, чтобы я там на их компьютерах выполнил
задание. Ведь, в общем случае, я и компьютер не обязан иметь дома. Тем
более i386 архитектуры. Тем более с Microsoft Windows. Тем более с
Microsoft Office, AutoCAD и прочим. Для студентов у Microsoft были вроде
программы по бесплатному получению их софта для образовательной цели. Но
компьютер же мне бесплатно никто не выдаст. Да и AutoCAD у меня сомнения
что можно было бы получить бесплатно студенту. То бишь, я же не
отказывался выполнять задания в проприетарных программах, раз этого
хотят -- просто у меня нет этих небесплатных (и вообще очень недешёвых)
проприетарных программ. Но требование показать умение работы именно в
конкретной программе было лишь один раз с этим AutoCAD-ом.
Один знакомый вкинул как-то конкурс на создание виртуального музея...
чего-то там, уже не помню чего. Мне не понравилось что этот конкурс
требовал приёма документов в виде (вроде бы) Photoshop файлов. Я им
письмо что это типа неправильно требовать для такого дела использования
несвободного ПО. Мне ответ. От меня ещё письмо. В общем, дошло до того,
что я со своим другом (а он любит и шарит в дизайне и всём таком)
приняли участие в конкурсе, сделали что-то на Plone CMS и получили призы
за "лучшее решение по наполнению сайта", за техническую реализацию (или
что-то типа того). В качестве приза я получил ноутбук нехилый, который
продал (у меня был свой ThinkPad получше) другу: в прошлом году он
сообщал, что ноутбук до сих пор используется и жив.
Одна знакомая предложила подработку по написанию каких-то сайтов. Ну а
для начала надо было написать CMS под ним. Тогда я трогал PHP и...
говорил что за AJAX технологией будущее и сайт активно использовал этот
AJAX, а также какой-то XML движок/парсер броузера. Я этот движок даже
выкладывал на SourceForge и у меня возник конфликт потому что заказчик
не думал что это будет свободным ПО. Короче два часа (насколько помню) у
нас были переговоры где он упрашивал меня не делать его свободным. Ибо
вообще-то ему нужны готовые сайты, а как уж они там будут созданы,
используя уже имеющиеся CMS, свою наработку или ещё какие инструменты,
его не должно было волновать. В итоге работа продолжилась, но оказалось
что нас в любом случае хотели с другом кинуть (не заплатить за работу),
так что тот человек остался ни с чем, а мир получил крайне быстрый и
эффективный по трафику движок CMS, а я с другом много опыта. Даже не
помню использовал ли его кто, кроме меня, но сейчас движок я конечно уже
удалил за неактуальностью.
На работу меня заставили пойти из-за того, что на первом же курсе сдал
матан на два. Предполагалось что я поработаю только лето. Когда
устраивался, то договорился о зарплате в $300. В итоге я за месяц
написал (m0n0wall проект был в основе web-интерфейса) прошивку для
криптомаршрутизатора, который в итоге активно продавался и был
сертифицирован (ФСБ/ФСТЭК/whatever для криптографии). Но свои $300 я не
получил -- видя как идёт у меня работа, мне сразу же стали платить $700.
Само собой, на работе я остался и проработал и после окончания
института, став под конец начальником отдела RnD. При этом, гендиректор
очень уважал open-source и хотел вносить вклад в него: почти всё что
было разработано в компании становилось свободным ПО, что мне тоже
крайне радовало что я вносил в СПО вклад.
Вообще время в институте -- лучшая часть моей жизни! И успешная работа
программистом, и любимая девушка (с начала второго курса и до получения
диплома я с ней был) и десятками посещение грайндкорных концертов, и
попытка поступления на службу в ФСБ (а это уйму времени!), борьба за
использование свободного ПО, куча времени проведённого с друзьями
одногруппниками (куда с ними только не ходил и не проводил досуг
(нередко и прогуливая работу)!). Мне кажется я был на порядки добрее,
веселее и интереснее как человек. Хотя... написав всё это, может я и
прежде был всё таки, в первую очередь, дичайшим занудой и упёртым
беспринципным бараном :-)? А да и ладно -- я себе тогда нравился!
Sergey Matveev [Thu, 7 May 2020 17:37:39 +0000 (20:37 +0300)]
Сон в режиме самоизоляции и wavelet-ы
Больше месяца я вот считанное количество раз выходил из дома только до
магазина и банкомата. То бишь вне квартиры был суммарно наверное меньше
часа времени. Отметил что вот последнее чем занимался перед сном, то и
снится. Причём это мог быть сущий бред мелочной какой-нибудь, но
впечатление что мне всю ночь снится как я в FreeCiv делаю торговые
маршруты, или расставляю assert-ы в C коде. А недавно перед сном я читал
кучу статей про wavelet сжатие изображений (особенно
https://habr.com/post/168517/ понравилась понятностью и простотой) и
мне, как будто, всю ночь снилось что я занимаюсь расчётами этого
преобразования Хаара. Даже грустно стало: неужели при самоизоляции
настолько мало что ли поступает в голову информации что ему нечем больше
заняться как об этом думать и вертеть в голове?
А ещё заметил что о женщинах стал думать поменьше. Но с этим уже
сталкивался когда был в Иране. Они там хороши и красивы. Но только
одеваются не вызывающе и скрывают свои прелести (хотя формы то сквозь
облегающую одежду всё равно видны). А так как постоянно на экскурсиях,
постоянно всякие новинки и впечатления и отсутствие поступающей
сексуальной информации, то это были две недели самой чистой головы (от
женщин) в моей жизни. Как только мы вернулись и вышли в аэропорт, то
меня прям удар хватил когда я нашу таможенницу в юбке (ну и потрясающими
ногами!) увидел. Я прям совсем забыл про всё это. Сейчас вот больше
месяца я не езжу в транспорте и поэтому не вижу всех этих прелестей о
которых не забыть.
Но в целом сон у меня плохой. Последнее время я по два часа не могу
заснуть -- вот просто не спится и всё тут, сплошные мысли и глаза не
закрываются. Благо что не надо вставать по будильнику и в итоге всё же
высыпаюсь.
Sergey Matveev [Thu, 7 May 2020 16:02:49 +0000 (19:02 +0300)]
Продолжение зависания сетевухи
Очередное продолжение b323c605bb9e31b2807dc3769ddb208c5032dbb4. Сейчас у
меня уже не было большого трафика, но было много параллельных HTTP
запросов наружу. Ну и начал re0 DOWN/UP с link-ом делать. А ведь
буквально вчера меня посещали мысли какие же всё таки клёвые сервачки у
меня: сколько им уж лет, работают постоянно 24/7, но ВООБЩЕ никогда
ничего ни разу с ними не происходило нештатного. Ok, кроме плохих
контактов SATA backblane (или кабелей до них), но это, так сказать,
штатное и я туда не раз лазил в эти места.
Sergey Matveev [Thu, 7 May 2020 15:59:25 +0000 (18:59 +0300)]
Обновил irssi и добавил пару скриптов
В новом irssi OTR плагин идёт уже из коробки. Хотя... я не помню уже
когда последний раз (было ли это за последние два года то?) с кем-либо
переписывался с его использованием. Ещё добавил скрипт:
https://github.com/irssi/scripts/blob/master/scripts/go.pl который очень
просто позволяет по названию окна (хотя бы части) прыгнуть сразу на него
(у меня окон бывает более 20 открыто иногда). И ещё
https://github.com/irssi/scripts/blob/master/scripts/logresume.pl
который показывает из лога с жёсткого диска последние строки истории.
Sergey Matveev [Thu, 7 May 2020 14:23:06 +0000 (17:23 +0300)]
Фотографии подписей Брюса Шнайера и визитки Ричарда Столлмана
http://www.stargrave.org/photoes/sign-liars.webp
http://www.stargrave.org/photoes/sign-goliath.webp
http://www.stargrave.org/photoes/card-rms.webp
http://www.stargrave.org/photoes/sign-rms.webp
Книжки Шнайера у него же прямиком и заказывал. Столлмана перехватил в
одном месте, дал ему свою визитку (с OpenPGP отпечатком) ну и он вскоре
подписал мой PGP ключ.
Sergey Matveev [Thu, 7 May 2020 09:16:03 +0000 (12:16 +0300)]
Нашим военным запретили пользоваться гаджетами на службе
https://habr.com/ru/post/500790/
https://roskomsvoboda.org/58084/
Так и хочется сказать: "давно пора!". Я воспринимаю все эти смартфоны
(или другие устройства в которых тот же самый Android может стоять),
как некий акт предательства, когда набортный Android с кучей софта
упорно занимается передачей всего чего только можно. А в довесок к
этому, пользователи ещё и всяких WhatsApp-ов и Telegram-ов наставят, где
уж вообще кирдык в плане безопасности.
Безусловно, если в смартфоне стоит какая-нибудь система с полностью
свободным ПО, без привязки и использования Google учётных записей, то
это уже куда лучше. Остаются только аппаратные backdoor-ы, но они,
в лучшем случае, будут доступны только местным сотовым операторам и
нашим спецслужбам, что уже хотя бы не сливает на сторону данные. Но...
у кого такие аппараты без spyware есть? Я по пальцам могу посчитать
знакомых мне людей с подобными. Apple устройства вообще можно не
рассматривать, ибо не слышал чтобы туда ставили какое-то свободное ПО.
Sergey Matveev [Tue, 5 May 2020 13:20:24 +0000 (16:20 +0300)]
bpfTrace -- наконец, полноценная замена Dtrace в Linux
https://habr.com/ru/company/oleg-bunin/blog/500456/
Даже в статье написали что это всё спустя 15 лет появилось (наконец то)
в GNU/Linux. В FreeBSD DTrace с начала 2008-го года уже есть. В
GNU/Linux... ну ждать ещё несколько лет пока оно (bpfTrace) прососётся в
дистрибутивы и станет хоть как-то популярным.
Sergey Matveev [Tue, 5 May 2020 12:52:53 +0000 (15:52 +0300)]
Критика статьи с "подвальчика хакера"
https://hacker-basement.ru/2019/08/23/kryptografia-dlay-hakerov-algorytmy-shifrovaniy/
Написал тут письмо автору лживого вброса на тему Кузнечика:
Увидел вашу статью: [...]
и бросилось в глаза ваше описание алгоритма Кузнечик, с явно искажённым
и не достоверными фактами.
В том же году была доказана его неустойчивость к методу обратного проектирования
Что такое "метод обратного проектирования" я, как хоть как-то
разбирающийся в криптографии человек, не знаю, но наверное речь про то,
что таблицы перестановок (Sbox) не были сгенерированы случайным образом,
как заявлялось. Это действительно так. Но... какое это имеет отношение к
безопасности шифра и было ли хоть где-то доказано что оно негативно
сказывается на безопасности? Более того, Sbox-ы в общем случае и не
обязаны быть случайными -- это просто часто удобнее, но не более, а
часто даже будет вредить безопасности (подробнее можно в книгах Брюса
Шнайера про это прочитать). Почему метод генерирования Sbox-а не был
открыт и сообщён? Да, неприятно, косяк/раздолбайство, но какое это имеет
влияние на стойкость шифра?
алгоритм генерации S-блока перерисован с Белорусского шифра BelT разработанного в 2007 году
На что влияет данный факт? Огромное количество блочных шифров использует
сеть Фейстеля. Огромное количество хэш функций строится на основе
Merkle–Damgård, у которого есть неприятные особенности и при не
правильном обращении будут проблемы (поэтому есть HMAC конструкция из-за
этих особенностей), но это не мешает столь распространённым SHA1/2 его
использовать. Но ведь к безопасности SHA2 нет нареканий?
Ещё чуть позже его же взломали атакой “встреча посередине”.
А это уже сильнейшее искажение фактов. Во-первых, просто даже судя по
странице Wikipedia, взломали не его, а 5 раундов. Из 10. При этом
сложность 2^140, требующую памяти 2^153 и 2^113 данных. У кого-либо
могут возникнуть опасения что любое из этих чисел достаточно мало чтобы
сомневаться об уровне безопасности этого... 5-раундового шифра? Напомню
снова, что в Кузнечике 10 раундов.
А то ваше описание этого алгоритма выглядит как: создали какое гос-говно
которое за пару лет вообще сломали, что, мягко говоря, далеко от
истины и плохо пахнет. Почему вы не упоминаете тогда о тьме атак на
AES, Blowfish, Twofish? Практически все блочные (тем более
потоковые!) шифры взломаны. С точки зрения криптографии они именно
взломаны -- существуют атаки более быстрые чем простой brute force.
Насколько помню для AES (опять же, лень искать) есть атака которая в
несколько раз позволяет быстрее атаковать 128-битные ключи, то есть...
уровень безопасности вместо 128-бит становится 126.5 бит (насколько
помню). Взломан? Да. Стоит ли об этом париться? Очевидно что при таком
уровне атаки -- нет.
Почему упомянули Кузнечика, но не упомянули Магму, которая в том же
самом стандарте вместе с ним сразу же и идёт (Кузнечик обзывается
128-бит шифром, а Магма 64-бит)? Она по сути тот же самый ГОСТ 28147-89
шифр, который ещё в 70-х годах был разработан. Подчеркну: 70-80-е года,
когда в США ещё и 3DES не было, а Магма/28147-89 имела 256-бит ключ.
Взломана ли она? Безусловно! Насколько помню, лучшая атака имела
сложность более чем 2^200 (про требования памяти и прочего не помню). До
сих пор Магма остаётся алгоритмом с одним из высочайших уровней
безопасности среди всех алгоритмов что стандартизовывались.
Дальше ещё всякого написал, но и это то автор наверняка проигнорирует.
У нас много народу любит поливать дерьмом всё отечественное.
Sergey Matveev [Tue, 5 May 2020 08:29:17 +0000 (11:29 +0300)]
CACert.org вновь выдаёт подписи
http://blog.cacert.org/2020/05/signer-is-working-again/
Но я пожалуй оставлю всё как есть у меня сейчас. Что-то лень снова всё
менять, а сейчас shiny ECC алгоритмы везде.
Sergey Matveev [Mon, 4 May 2020 15:35:53 +0000 (18:35 +0300)]
Впервые прочистил клавиатуру (полностью)
Одна кнопка стала не всегда срабатывать. Пока снимал клавишу, то решил
уж вообще и всю клавиатуру продуть и прочистить. Оказывается в ней
столько волос может накопиться! Помню, мать говорила что ещё в течении
полугода из ковров мои волосы выпылесошивала, когда я съехал. Клавиатуре
этой где-то лет пять -- только сейчас вот возникла хоть одна проблема.
Прочистил -- всё снова нормально. Filco конечно не дешёвые, но сама
надёжность и качество. Полностью стоит своих денег. Это единственный
компонент без которого нельзя работать.
А ведь на вопрос:
- Откуда вы взяли, что три великих добродетели программиста это Лень,
Гордыня и Нетерпение?
- От "Верблюда" -- вполне содержательный ответ.
Sergey Matveev [Sat, 2 May 2020 18:54:05 +0000 (21:54 +0300)]
baresip сборка
В 1f9f27df65faff2aff2cc88de0cb2aac9de3f88c писал что pkg-config выглядит
как ./configure-killer. baresip на практике демонстрирует что без
проблем собирается на чистых Makefile (GNU) внутри которых тьма опций
автоматически определяется pkg-config-ом. У него 2-3 десятка зависимостей,
многие опциональны -- без проблем всё pkg-config-ом определяется.
Sergey Matveev [Sat, 2 May 2020 14:08:55 +0000 (17:08 +0300)]
Прочитал "Убийство на улице Морг" Эдгара По
Короткая но захватывающе интересная детективная история! Хотя, на 2/3
книги мне уже почти самому было полностью понятно что могло стоять за
убийством, но поимка всё равно была крайне интересна.
Sergey Matveev [Fri, 1 May 2020 10:11:34 +0000 (13:11 +0300)]
Кодирование 5.1 звука фильма в Opus
Если сделать дамп аудио ffmpeg-ом (теперь только им занимаюсь темой
кодирования!) в PCM файл, потом его сжать opusenc-ом, то после сведения
в контейнер с видео, каналы явно на слух становятся другими,
перетасоваными. С ходу у меня так и не получилось ffmpeg заставить
дампить в другом виде (перевернуть, чтобы после Opus-а всё встало на
свои места). С ходу я не очень понял как конкретно они тасуются, чтобы
каким-нибудь sox-ом поменять их вручную местами.
Но потом плюнул и вспомнил что FFmpeg же может родной libopus
использовать для кодирования. Немного шаманства каналами всё равно
придётся сделать, но кодирует он теперь без проблем в нужном порядке:
При этом Opus определяет (и вне FFmpeg) что четыре канала типа
полноценных, а два не особо и применяет какую-то оптимизацию: в итоге
оно существенно экономит битрейт для двух каналов.
Sergey Matveev [Fri, 1 May 2020 10:08:40 +0000 (13:08 +0300)]
Final Fantasy: The Spirits Within
https://en.wikipedia.org/wiki/Final_Fantasy:_The_Spirits_Within
Пока разбирался в дисках, то наткнулся на DVD копию (откуда она у меня?)
сабжевого фильма, аж 2001-го года. Пересмотрел немного: очень графика
впечатляет и анимация. Даже спустя чуть ли не 20 лет, всё равно
невероятно круто выглядит, местами реально фиг отличишь от фотографии.
Да и главная героиня, худовата конечно (ну а что взять с японцев?), но
очень и очень мила и симпатична, в отличии от кучи других компьютерных
женщин типа Лары Крофт, лично меня вообще не привлекающей никогда.
Sergey Matveev [Fri, 1 May 2020 10:06:21 +0000 (13:06 +0300)]
CD-диски изменившие мою жизнь
http://www.stargrave.org/photoes/fbsd-45.webp
http://www.stargrave.org/photoes/fbsd-5x.webp
Разбирался тут в дисках и решил сфотографировать ещё сохранившиеся
дистрибутивы FreeBSD 4.5, а также парочки чуть более поздних версий.
Ещё есть диски Linux Mandrake 7.2, с которой я вообще начал знакомство
не Windows систем, сделал фотографии, но там просто чёрная надпись на
синем фоне и ничего интересного.
Sergey Matveev [Fri, 1 May 2020 09:58:29 +0000 (12:58 +0300)]
Сумо -- интереснейшая штука
https://youtu.be/_rIcoQkyUdk
На днях, так получилось, но посмотрел несколько турниров по сумо. Плюс
записи всяких ёкодзун (величайших борцов). Основная масса поединков
заканчиваются за 2-3 секунды -- типа 5% от всего времени выхода и ухода
на "ринг". Но бои крутейших выглядят очень здорово, интересно и
захватывающе!
Посмотрел подборки лучших бойцов и заметил что большинство то на самом
деле не настолько уж жирны. Бицуха и плечи -- там видна у всех гора
сплошных мышц. А если где-то во время боя пробегает волна по телу или
напрягается какая-нибудь нога, то там видны десятки килограмм сплошных
накачанных мышц. Полно видео где более мелкие побеждают тех, кто на 50+
килограмм больше весит. Так что для себя сделал вывод что сумоисты это в
первую очередь буквально гора мышц.
А ещё отметил что, видя себе в зеркале, уже не так тошнит от того что
наблюдаешь... если представить что ты начинающий сумоист :-)
Но и начитался про их жизнь и быт. Не позавидуешь. Пол жизни посвятить
этому, по сути ничем другим не имея возможности заниматься. И везде
сплошные традиции и традиции -- даже машину им водить нельзя. Но
уважение у меня большое к ним.
Sergey Matveev [Fri, 1 May 2020 09:01:10 +0000 (12:01 +0300)]
Ещё не позавтракал, но чинил lists.cypherpunks.ru
После того как проснулся, задумался почему у меня с моих рассылок раз в
месяц не приходят уведомления, ведь же глобально для своей учётной
записи, как минимум, включал. В общем, я забыл добавить cron записи. Уж
не знаю точно сколько это времени отсутствовало, но похоже что речь о
годах. Стыдоба? Безусловно. Но вот напрочь забыл о cron почему то, думал
что раз процессы mailman-а запущены, то они наверняка всю работу
подобную и делают.
https://www.youtube.com/watch?v=e1mJv9pxm7M
Вначале кривляния (хотя, насколько понимаю, это стало нормой и
стандартом записи видео для Интернет аудитории) бесят, но дальше идёт
хорошее понятное разъяснение в чём разница между этими двумя форматами.
Как бы я не любил Sony за их постоянное стремление делать всё своё
несовместимое, но +R всё же проще, дешевле, лучше, красивее.
https://www.youtube.com/watch?v=OorZcOzNcgE
Сегодня решил послушать старый добрый рок. Всегда не любил Deep Purple
за их отвратительные записи, по сравнению с Led Zeppelin, но играют,
конечно хорошо. В YouTube вот видео "Child in Time" есть, где гораздо
лучше музыка записана, чем на альбоме. Да и здорово поглядеть на великих
музыкантов когда они такие пацаны молодые и хипповые ещё.
Отвратительная запись ассоциируется с виниловыми пластинками. И вспомнил
я тут как один раз, когда был у родителей, отец поставил Deep Purple
альбом. И вот когда это не сборник хитов, а целый законченный альбом, то
совершенно по другому я воспринял некоторые их композиции и прям
зауважал ещё больше.
А ещё как-то было, что отец взял и поставил альбом Чёрного Кофе. И мы с
ним просидели на кровати слушая его и обсуждая. Ничего не делали, кроме
как слушали пластинку, иногда перебрасываясь словами. Было здорово! Без
музыки жизни нет!
https://habr.com/ru/post/499150/
Так как в начале следующего года явно буду вынужден менять свой хостинг
(на текущем у меня уже какой месяц так и не отвеченный тикет об
удалённом доступе к KVM, который не работает у меня), то вот мог бы
рассмотреть и вот такой. Лично мне всегда приятнее знать что за этим,
пускай и более дорогом (±2kруб/год роли не играет) стоит один человек.
Вот только напрягло с ходу одно: https://lite.host/vds/mercury
за IPv6 отдельный адрес по 10руб. То есть, там не выдают /64 сеть? Это
неприемлемый подход, я бы даже сказал не честный, ведь даже домой людям
выдают /64, как минимум. В IPv6 мире выдаются СЕТИ, а не конечные
единичные адреса!
Я совершенно не помню как проверял заведётся ли web-камера на ноутбуке,
или даже не делал, будучи уверенным что наверняка потребуются
проприетарные прошивки, но тут что-то моча в голову ударила и проверил.
webcamd запускается, создаёт /dev/video*, mpv av://v4l2:/dev/video0
показывает. Без проблем или хитростей.
https://ru.wikipedia.org/wiki/%D0%90%D0%BA%D0%B0%D0%B4%D0%B5%D0%BC%D0%B8%D1%8F_%D0%A0%D0%B0%D1%88%D0%BC%D0%BE%D1%80
Очень понравился этот фильм. Но главный герой крайне бесит своим
поведением. Типа везде суётся, но ничего не умеет, кроме постановок. Но
и получает по заслугам, благо начинает думать о других и фильм
заканчивается очень хорошо. Но вот никогда не понимал этой пиндосской
возможности окончить институт, например хорошо занимаясь спортом и это
способно компенсировать полное неумение варить головой. А тут даже берут
в школу за умение ставить пьесы.
https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%BB%D0%BD%D1%8B%D0%B9_%D0%BE%D0%B1%D0%BB%D0%BE%D0%BC_(%D1%84%D0%B8%D0%BB%D1%8C%D0%BC,_2006)
https://ru.wikipedia.org/wiki/%D0%A0%D1%83%D0%BA%D0%B8-%D0%BD%D0%BE%D0%B3%D0%B8_%D0%B7%D0%B0_%D0%BB%D1%8E%D0%B1%D0%BE%D0%B2%D1%8C
Полный облом -- офигенная комедия! Чем дальше, тем кирдык за кирдыком в
фильме происходят.
Руки-ноги за любовь -- чёрная комедия (но я не против подобных) про
любовь и как её добивается один человек немного необычным способом.
Фильм понравился, но вряд ли бы мог рекомендовать -- не настолько хорош,
в отличии от "Полного облома".
https://www.e-reading.life/book.php?book=44344
Растянулось прослушивание этой аудиокниги из-за изоляции надолго. Книга
понравилась: держит в напряжении, неведении, к концу прям очень
интересно чем же всё закончится.
Основатель Void Linux уходит из проекта и заблокирован на Github
https://www.opennet.ru/opennews/art.shtml?num=52809
Я Void не использовал, но наслышан что он очень трушный и правильный
(никаких этих сраных systemd и подобного). Если бы пришлось использовать
GNU/Linux, то Void наверное был бы в первой тройке кого я мог бы
рассматривать. Не знаю, может и правда этот человек стал менее
адекватен, а может и действительно вокруг него сплошные идиоты
собрались, но вряд ли это хорошо отразиться на проекте. Насколько
понимаю, началось то с предложения о ревью как в FreeBSD проекте (явно
успешной штуке).
FFmpeg нравится, жалею что раньше не стал с ним знакомиться
Теперь абсолютно все действия, что я раньше делал через mencoder или вот
через mpv, умею делать через ffmpeg. Причём многие действия раньше я
делал за несколько итераций. А тут тупо удобнее. Хотя, документация
далека до совершенства, особенно описание многих параметров. Кодирование
VP8/VP9 через libvpx делается почти полным mapping-ом опций, но не всех.
Мне проще запускать уж отдельно vpxenc. И двухпроходную Theora тоже не
выходит делать, хотя явно нигде не указано что она не может (или явно
может).
В 8cd23c81f604fa104584e08643c2e88cca1f91cd я говорил про вырезание
метаданных. Например вот у меня на входе есть MP4, в котором несколько
звуковых дорожек, которые хочу сохранить, субтитры (тоже сохранить),
видео дорожка, дорожка с картинками (обложка). Последние не хочу. Само
собой никакого MP4 контейнера и метаинформации. Субтитры в MP4TT
формате, которые в Matroska не влезут (надо конвертировать),
перекодируем в ASS. Вообще это делается и mkvmerge без проблем, но
ffmpeg-ом тоже вполне себе просто:
https://habr.com/ru/company/ruvds/blog/498924/
Ох, сколько же ненависти у меня вызывает подобная писанина, приводящая к
мифам и глупостям в головах людей.
При прочих равных условиях, IKEv2 будет всегда быстрее OpenVPN.
IKEv2 возможно один раз в день, а то и реже, будет отрабатывать. Пофиг
какой handshake быстрее. IKEv2 это handshake, ничего более. Ни байта
сетевого транспортного трафика IKE не шифрует.
По моим субъективным ощущениям IKEv2 на Windows 10 работает заметно
отзывчивее чем OpenVPN.
Опять сравнивается IKEv2, вместо IPsec.
Все современные операционные системы (кроме Android) поддерживают
IPsec IKEv2 прямо из коробки.
IPsec поддерживают все. IKEv2... GNU/Linux-ы большинство известных мне
дистрибутивов -- нет. FreeBSD -- нет. OpenBSD -- няша, да. Windows, я
слышал что нет, ну может самые распоследние версии.
Но как клиенту проверить, что подключение не прослушивается, не
подменяются данные и сервер действительно тот, за кого себя выдает?
Для этого используются обычные SSL-сертификаты, которые мы привыкли
использовать для веб-сайтов и HTTPS.
Придираюсь, но это не единственный способ, и далеко не самый безопасный.
Шаг 2: Установка Strongswan
Если все современные ОС имеют IKEv2 из коробки, то зачем ставить этого
демона то? Ответ очевиден.
Не заставляйте своих пользователей устанавливать лишние программы,
если все необходимое уже есть на их компьютере.
Эээ, вы же сами только что что-то скачали и установили strongswan!
Я очень люблю и IKEv2 и IPsec. И я только IPsec у себя и использую. И
считаю что его стоит использовать. Но, когда нету прямой нормальной
связанности компьютеров (IPv6 с глобальными адресами), то, мягко говоря,
проблематично заставить это всё работать за NAT-ом. Плюс, порог
вхождения в IPsec мир существенно выше. Когда понимаешь что там к чему и
зачем: всё легко и просто и удобно и здорово. Но когда это IPv4, где
нельзя на каждый чих по адресу выделить для задачи... нет, IPsec это ад.
ffmpeg похоже годится для тьмы задач которые я делал mplayer/mencoder.
mpv совсем не нужен ни для чего кроме проигрывания. Декодировать
ALAC/APE -- ffmpeg может. Аналог -ao pcm тоже. Из example его
документации увидел как делается просто запись экрана. Сразу задаюсь
вопросом во что кодировать? Хочется же чтобы потом можно было хорошо
сжать, а источник в идеале должен быть без потери качества.
Об опыте lossless кодеков писал в 748a0008be8dd4408f9366e02a71144acec766a7.
YUV4MPEG2 слишком круто забивает диск. FFV1 очень жрёт CPU. ffvhuff
хорошо подходит: и жмёт вполне себе лучше чем голый YUV4MPEG2 (у меня на
ZFS уйдёт процессорное время всё) и в real-time вполне себе справляется.
Теперь хочется сжать в VP9 lossless, просто ради поиграться. Но хочу
vpxenc утилиту использовать. ffmpeg-ом делаю yuv4mpegpipe вывод и меня
посылают, ибо надо задать формат пикселя. Задаю такой, какой vpxenc
берёт по умолчанию: I420. Да, закодировался lossless, но цвета явно
покорёжены и унылы. Очевидно из-за I420. Указываю I444, ffmpeg опцию
соответствующую, vpxenc ругается что при текущем профиле не
поддерживается этот формат пикселей. Пошёл в исходный код, потом в
Wikipedia: https://en.wikipedia.org/wiki/VP9#Profiles
Действительно, есть разные профили (ну как и в MPEG стандартах) и мне
нужен явно profile 1. Благо в vpxenc это можно указать и всё
закодировалось, действительно без потерь. 800-1000Kbps при всяких top-ах
и переключениях рабочих столов оно где-то тратит битрейта на FullHD.
https://wiki.xiph.org/Opus_Recommended_Settings
5+1 канала в WAV хотел вот закодировать в Opus. Начал прикидывать и
искать официальные советы какой bitrate желателен при этом. А думать не
надо. opusenc сам сразу по умолчанию для такого количества каналов
делает 320Kbps -- именно то, что и я запланировал. Документация говорит
что там и особые фишки для объёмного звука имеются.
Выяснилось что YUV4MPEG который делает mpv, имеет корявый FPS и
libtheora encoder_example такое принимать не хочет. ffmpeg-ом можно
выправить (явно указав руками FPS). Похоже что для темы кодирования
пора полностью мне переходить на ffmpeg. Абсолютно мне его не понятные
опции, но... оно зато работает уж точно (пока только example-ы находил
мне нужные из документации).
Началось с того, что пытался закодировать в Theora. Не удалось. Точнее
Theora файлы то он делает, но 100Kbps и никак опции влияющие на это
никакие не прокидывает. При этом тот же самый ffmpeg работает. Затем
начал проверять работу VP8 кодировщика. Уже лучше, уже заработал. Но...
когда я пытаюсь сделать двухпроходное кодирование, то он снова не видит
хотя бы опции bitrate и делает плохое качество.
Ладно, чёрт с ним, попробую хотя бы выводить сырое видео для подачи его
напрямую в vpxenc утилиту. Сработало, без проблем. Затем захотел
сбросить звук в WAV PCM файле для кодирования отдельно... и он
coredump-ится. Точнее, если указать --end, то не до конца сбрасывает
содержимое (assert где-то там в коде аллокатора памяти). Если не
указывать, то файл целёхонький, хотя .core всё равно будет. А подобная
штука (--ao=pcm) мне нужна хотя бы для того чтобы декодировать ALAC-и
или какие-нибудь Monkey's Audio (я даже не знаю есть ли для них
отдельные утилиты для работы).
Пошёл в их репозиторий и просто собрал master. Ура! Теперь не падает.
Ради интереса пошёл читать их git log. Encoder теперь deprecated. Ладно,
терпимо, ибо он всё равно не работал у меня, годился только для вывода
сырого видео. Но вот что не ладно, так это то, что они удалили поддержку
OSS! В коммите сказано что SDL будут юзать. Зашибись, а как в нём
выбрать аудиоустройство то хотя бы? В mpv не нашёл для этого ручек. То
есть, уже текущий master mpv не способен у меня проигрывать звук.
Поэтому обновляться до следующего релиза уже бесполезно будет. В
принципе, так наверное жить вполне себе можно, ведь mplayer вообще лет
десять наверное не обновлялся как проигрыватель и мне хватало. Сейчас
mpv добавляет крутые фичи типа VAAPI (дающего VP8 аппаратного) и gapless
playback, но этого мне достаточно. Как кодировшик mencoder я полноценно
не использовал тоже давно: только для вывода сырого изображения или
-oac/-ovc copy, без которых, с наличием Matroska, можно жить. mpv как
полноценный кодировщик уже не работает и уже в master deprecated. Профит
сейчас однозначно уже есть. mplayer я обновлял только ради более новых
кодеков. mpv и сейчас просто использует libavcodec библиотеки, так что
это тоже можно просто будет обновлять независимо.
https://en.wikipedia.org/wiki/Mpv_player
В продолжении вчерашнего bc7954cf5910fb3fdf35af90597c04880eb9d227.
mpv полностью весь нужный мне функционал как проигрыватель, пока
удовлетворяет. Даже больше и лучше:
* mplayer по расширению файла мог только автоматически подключить опции
по аппаратному декодированию видео. mpv же просто автоматически это
умеет делать -- теперь это вообще не забота пользователя
* однако для этого требуется настройка: надо аппаратное декодирование
включать, плюс добавлять туда кодеки которые ради безопасности
выключены
* теперь не нужен VDPAU и прослойка для него до VAAPI! Это привело к
тому, что у меня аппаратно декодируется VP8 (но не VP9, который
реально был бы полезнее, ибо FullHD на нём я не могу в real-time
декодировать). 71154f45d9f366207838a37a870434857d0652a0: остаётся
только VAAPI который в конфиге включить и забыть
* gapless проигрывание аудио -- ради этого я уже мог бы перейти
* реально более быстрая перемотка
Главная проблема: непривычно всё после mplayer. Но если бы изучать все
эти сотни опций с нуля, то в mpv они все логичнее, аккуратнее сделаны.
Кодировать ещё не пробовал, но по сути там просто пробрасываются опции
до ffmpeg и нижестоящих кодеков (типа libvpx). Но вроде всех фильтров и
опций хватает.
Dell ноутбук точно не тянет на удалённую работу на нём
Ибо время от времени после самой обычной штатной перезагрузки он во
время загрузки показывает красивое окошко о том что никаких аппаратных
проблем не найдено. И нужно тыкнуть на continue. То есть, сделаешь на
нём reboot и больше систему загруженную уже не увидишь, если физически
не перезапустить или тыкнуть на кнопку.
https://habr.com/ru/company/globalsign/blog/498592/
Автор пишет что "Другая версия PGP с открытым исходным кодом -- OpenPGP".
Могу дальше не читать, ибо автор даже не понимает о чём говорит что
такое OpenPGP, а ещё пытается что-то делать с ним. Уж хотя бы Wikipedia
бы открыл он что ли.
Каждый открытый ключ должен быть подписан, прежде чем сообщения от
владельца этого открытого ключа можно будет расшифровать.
Эээ, что? С какой стати?
Я дважды запускал генерацию ключей, потому что не был уверен, этот
результат означает наличие пары открытого/закрытого ключей или
только одного ключа.
Ну... может читать что означает --list-keys и не задаваться вопросом а
есть ли тут ещё приватные ключи? Он выводит список публичных: чего
жаловаться на непонимание если команда очевидно не может дать на это
ответ?
Открытый ключ нужно отправить каждому, кому вы отправляете
зашифрованное письмо, чтобы он мог его расшифровать.
Блядь, что??? Автор, иди ка лучше почитай пару минут основы
асимметричной криптографии и что такое приватный и публичный ключи. Всё
абсолютно наоборот понял и твои ожидания поэтому не удовлетворяются.
-passphrase my-pass-phrase
мягко говоря, очень странное и не безопасное он делает, ну да ладно.
Я не смог найти никакой информации, как самому расшифровать свой
собственный шифротекст, поэтому пришлось отправить его ей, не зная,
правильно ли я его зашифровал
Потому что это основа любой темы начинающей асимметричную криптографию.
Автор точно совершенно не понимает для чего нужны приватные и публичные
ключи, иначе бы не задавался вопросом как расшифровать. А вообще, можно
указать несколько получателей, среди которых указать себя самого --
тогда можно будет расшифровать, вот только тогда уже два ключа можно
будет скомпрометировать для прочтения.
Если вы знаете о более простом способе шифрования почты, пожалуйста,
подумайте о том, чтобы оставить комментарий.
если хочется шифровать почту, то всё же стоит использовать почтовый
клиент который это поддерживает. Если автор шифровал просто текст,
отправляя его внутри armored сообщения, то это всё же шифрование
файла/произвольного набора данных и это не самый удобный способ общения.
Но тоже приемлемый.
Если вы знаете о более простом способе шифрования почты, пожалуйста,
подумайте о том, чтобы оставить комментарий.
Да, я знаю, но только он в любом случае потребует понимания что такое
публичный и приватный ключи и для чего они нужны. Без этого никак. Этой
базы у автора нет, поэтому он просто тупо не понимал что пытался делать.
Сегодня я для C-шной библиотеке своей думал и смотрел как делать
конфигурирование сборки. Ну, как минимум, найти где заголовочные файлы
для зависимых библиотек и какие опции нужны. Собственно, что ./configure
делает, генерируя Makefile-ы. Так как я люблю минимализм, красоту,
простоту, то autoconf... наверное последнее на что стоит обращать
внимание. Так говорят все кто хоть как-то в теме всяких Plan 9,
suckless, Go и прочего. В основном говорят про то, что современный
хорошо и добротно по современному написанный софт и ОС с дистрибутивами,
не нуждаются в тоннах всего что есть в autoconf, типа это legacy
сплошной.
Так вот suckless проекты не чураются использовать pkg-config. Да и я с
ходу вижу что изначально эта система вообще на shell была простом.
Оказалось что, как такового, pkg-config у меня в системе и нет, а есть
вполне себе не супер громоздкий pkgconf. С ним Makefile-ы становятся
удивительно простыми, как в suckless.
И чисто совпадение, но я сегодня восхитился pkg-config-ом ещё раз, когда
собирал mpv из предыдущего поста. mpv использует waf сборочную систему.
Сталкиваюсь с ней возможно впервые. Я не хочу глобально в систему
ставить ffmpeg, поэтому его установил просто в ~/tmp/куда-то. Очевидно,
waf ffmpeg там найти не сможет самостоятельно. Раньше в ./configure
(autoconf) принято было добавлять разные --with-ffmpeg опции чтобы
указать и намекнуть флаги для его нахождения. В waf ничего этого не
увидел, но в его логе нашлась простая строка: pkg-config не нашёл ничего
касательно ffmpeg. man pkgconf, быстро нахожу PKG_CONFIG_PATH
переменную, добавляю в неё директорию с ~/tmp/ffmpeg/..., ведь в нём же
есть автоматически сгенерированный .pc файл, который должен указывать
куда надо. После добавления в PKG_CONFIG_PATH, всё обнаружилось и
прекрасно собралось.
Вообще это первый опыт подсовывания pkg-config файлов, но ведь в них
действительно все нужные опции имеются! И они достаточно просты чтобы
использовать pkg-config-compatible утилиты на несколько экранов C-шного
кода. Похоже что использование pkg-config-а это очень правильное и для
моего рабочего проекта направление!
https://en.wikipedia.org/wiki/Mplayer#Forks
Заприметил сегодня что в mpv есть gapless проигрывание, плюс VAAPI из
коробки. Удалили mencoder, но при этом всё равно какое-то кодирование
есть прямо в самом mpv. Решил попробовать. Собирается непривычно, но
удалось. Вывести звук через OSS на внешнюю звуковуху получилось.
Использовать VAAPI тоже. Gapless есть. Очень много непривычного в
опциях, надо переучиваться, но... если это сильно более чистое изделие,
да и в котором единственный существенный для меня недостаток mplayer --
gapless проигрывание, решено, то почему бы и не пересесть? Насколько
понял, mencoder -ovc copy -oac copy он сделать не может, поэтому
полноценной заменой, возможно, не станет. Но у меня и задач для такого
copy всё меньше и меньше. В общем пока буду использовать mpv стараться:
надо понять как делать -vf crop/cropdetect, как выводить сырьё для
vpxenc, как делать -ao pcm, -vo yuv4mpeg, делать +/- (управлять
sync-ом), -framedrop, -af volnorm, -endpos, -ss, изменять скорость.
Пробегаясь глазами по доке, вроде почти всё это видел.
Снова как и в e7b2b9026150fa2c3032e3aa2e8afce6537ab994 раз позвонил
робот по поводу Интернета. Сразу, после того как сказали про Интернет,
спросил робот ли, и точно такой же ответ что "да, только никому не
говорите".
Мне много чего не нравится в C, ибо почти всё что не нравится исправлено
в Go -- грустно использовать инструмент, зная что рядом есть очень
похожий но с кучей убранных мин для отрыва ног, в котором всё проще,
понятнее, яснее и удобнее. Я не касаюсь таких вещей как GC и map-ы с
интерфейсами. Но вот пока больше всего что выбешивает: объявление
переменной не обнуляет её значение! Да, я понимаю что и не должно, но я
к этому так во всех языках прежних привык, что постоянно совершаю
ошибку, считая что int foo будет равно нулю изначально, как и объявление
указателя куда-нибудь.
А вот что нравится, так это тернарный оператор. Да, опять же, понимаю
что с ним можно тривиально сделать нечитаемый код, особенно два
тернарных оператора подряд использовав. Но мне их всё равно постоянно не
хватает в Go. В Python я X if Y else Z часто использую, но на протяжении
долгих лет меня всё-равно это каждый раз коробило, ибо и длинно и
условие в середине. Это должно говорить о том, что нефиг использовать,
но этот грешок меня постоянно преследует.
Форматирование C кода: фигурные скобки после сигнатуры функции
Уже какую неделю я страдал от того, что в vi команды [[ и ]] не прыгают
по функам, как это сделано для Python или Go. В этих двух языках это
возможно банально просто из-за наличия "func", "def", "class" и подобных
слов, по которым превосходно можно делать навигацию. В C же, разбитое
на множество строк объявление функи, невозможно просто так регуляркой
выцепить.
Для форматирования кода я использую clang-format, у которого очень много
ручек настройки этого форматирования. Руками я вообще ничего не делаю. И
меня осенило что [[ и ]] прыгают по фигурным скобкам на начале строки и
clang-format-у можно сказать чтобы он все функи вот так и форматировал:
int main()
{
...
}
Я много видел странного форматирования и такое вот меня бесило. Ладно,
самое странное и безумное что я видел -- GNU стиль. Хотя наверное там не
просто так всё. Вот и тут эти фигурные скобки бьют по глазам, но зато
теперь навигация по коду стала невероятно простой. До этого хака я вовсю
использовал https://github.com/jeetsukumaran/vim-indentwise плагин, но с
ним приходилось глазами понимать где находится мой курсор и какую
команду надо дать чтобы прыгнуть на основе indentation в начало функи.
Для просмотра изображений я использую sxiv: https://github.com/muennich/sxiv
А он в свою очередь imlib2 для декодирования изображений. Только начиная
с версии 1.6 эта библиотека из коробки поддерживает WebP.
Чтобы Mutt корректный выставлял MIME-тип, то пришлось добавить:
echo image/webp webp >> ~/.mime.types
Поездка на общественном транспорте Москвы будет деанонимизирована
https://lenta.ru/news/2020/04/20/propsk/
За всё последнее время я в Москву ещё не наведывался на работу, хотя
пропуск есть. Но правило привязки карты Тройка к персональному пропуску
удручает. Если очень понадобится на работу поехать, то мне сильно
повезло что я за час смогу дойти до неё от ВДНХ.
Больше всего пугает то, что это наверняка оставят и после того, как
настанут рабочие дни. Хотя, возможность получения кода по SMS всё же
оставили, так что возможно и тут одумаются. Не, погода сейчас не
холодная и грязи нет, но тратить по четыре часа, в лучшем случае, вместо
двух-трёх, каждый день на поездку не очень приятно.
https://en.wikipedia.org/wiki/Free_Lossless_Image_Format
В предыдущей заметке говорил про WebP. А ведь есть ещё вот и FLIF,
использующий MANIAC (вариант CABAC), судя по описанию ещё сильнее должен
превзойти в lossless сжатии. Но это только для локального хранения может
подойти, ибо броузер то уж такое не будет показывать, в отличии от WebP.
BPG и HEIF ещё есть, использующие алгоритмы из HEVC-а. Однако их я бы не
стремился даже пробовать, ибо это всё патентованные не свободные
технологии, в противовес VP8 (хотя lossless WebP сжатие (VP8L), вроде
как, отношения к VP8 не имеет). Apple заявляла что HEIF будет вместо
JPEG использоваться... ну раз Apple сказала, то эту технологию точно не
стоит брать в руки, ибо максимально несвободно, патентованно и с DRM-ом
будет.
https://en.wikipedia.org/wiki/WebP
Про этот формат сжатия изображений я слышал очень давно, но почему то
никогда не трогал и не игрался с ним. Пересжал я им lossless PNG-шки,
обработанные pngcrush-ем (я все PNG им переделываю) с сайта PyDERASN:
http://pyderasn.cypherpunks.ru/download/iamgoing.jpg (локально PNG версия)
http://pyderasn.cypherpunks.ru/_images/browser.png
http://pyderasn.cypherpunks.ru/_images/pprinting.png
Делал просто cwebp -lossless, проверял потом декодируя в PPM формат
оригинал и WebP и считал хэш получившийся.
iamgoing.png на самом деле изначально вроде JPEG-ом был.
Он сжался на: 157316 -> 107258 (~32%)
browser.png: 50989 -> 24978 (~51%)
pprinting.png: 50795 -> 19838 (~61%)
50-60%! Офигеть! Да и даже мой древненький webkit-based Xombrero броузер
из коробки его отображает. Похоже, я буду полностью переходить с PNG на
этот формат. Всё же более половины экономии это очень не хило.
Всё это я писал не используя -z/-m опции, которые позволяют торговать
CPU и уровнем сжатия. С -z 9 сжатие ещё на 1-2% лучше будет.
https://www.youtube.com/watch?v=f2pyAiACP-w
У этих финнов сплошная толкиеновская тематика, заводная музыка, отлично
под которую работается. На некоторых трэках их альбомах отличнейший гроул!
В 69f3f2c6ca8d8f2800343f27fc4daef02bd89fc2 писал, что на работе в
качестве IM-а используется Mattermost. Использую его через matterircd:
демон выступающий в роли IRC сервера и как клиента Mattermost.
Количество каналов за это время существенно выросло где я являюсь
участником и я заметил что очень ко многим я не подключаюсь почему то.
Иногда выходит, иногда нет. В качестве костыля, я запрещал в конфиге
matterircd подключаться самому, а дальше в irssi задавал JOIN команды
после подключения к серверу. Вчера выяснял в чём же всё таки дело.
Оказалось, что серверу на работе не нравится кол-во запросов от
matterircd и он включает защиту от flood. Пришлось в кишках демона
покопаться и выставить различные sleep-ы. Проблему поборол. Вот только
если на работе ещё какие-нибудь ручки подкрутят, то снова жди
каких-нибудь проблем. Чего только люди не придумают как бы посложнее
организовать общение между собой. Инструменты оттачиваются
десятилетиями, но нет... все перейдут на какую-нибудь новую платформу
(типа macOS или смартфонов), а на ней, само собой, ничего вменяемого не
будет.