Sergey Matveev [Mon, 27 Nov 2017 08:09:49 +0000 (11:09 +0300)]
Вчера день неудач на ИТ фронте системного администрирования
Возился с новоприобретённым дешёвеньким компьютером. Celeron процессор
на 1.6 GHz напаянный на материнской плате, 2 GB RAM. Не, всё работает,
ничего менять не буду, но я очень удивлён был что регулярно упираюсь в
криптографические операции. Насколько же этот процессор слабее Core i5 в
старом (или тем более новом) ноутбуках!
AES-128 не более 27-28 MiB/sec обрабатывает, соответственно IPsec между
компьютерами c гигабитным Ethernet ну очень слабо занимает канал.
Хорошо, попробовал гонять трафик просто через nc по IPv6 link-local
адресам -- скорость 40-60 MiB/sec. Уже лучше, но больше никак не выдаёт.
Пока игрался с буферами, то чуть-чуть поднимал, но это всё-равно даже до
полугигабита не доходит. Или кривые руки или Realtek (re драйвер)
сетевуха и тем как она пристроена на материнской плате уже не
вытягивает.
Шифровать на лету GnuPG с AES и SHA512 (SHA256 медленней, SHA1
deprecated) -- тоже проседает по процессору. Поэтому передавал tarball-ы
зашифрованные по этому nc.
Изначально сделал ZFS для хранилища. Установил Skein хэш, который
существенно быстрее SHA256/512, но просто так записать большой файл и
читать его -- что-то около 60 MiB/sec. Забыл я послушать жёсткий диск --
может быть это из-за малого объёма памяти метаинформация постоянно
считывалась, но навряд ли. То есть, опять-таки, упор был в процессор.
Сделал немыслимое!!! Заиспользовал UFS2 вместо ZFS -- там, само собой,
линейная запись/чтение уже без проблем на полной скорости (140+ MiB/sec).
Ну для раздела с хранилищем ZFS особо не важен, но всё-равно я давно уже
ничего не на нём не делал ибо никогда не упирался даже близко в
криптографию.
Но это всё ничего. Поначалу я копировать файлы хотел по NFS. У меня
везде дома всё по NFS поверх IPsec передаётся. Я СОВЕРШЕННО не понимаю и
не знаю причин, но почему-то NFS на этой машинке по IPsec-у работает со
скоростью... даже менее 1 MiB/sec! top говорит что всё простаивает. Не
смотрел что там по tcpdump-у ходит, ибо хотелось же всё побыстрее
установить и настроить, но если подмонтировать NFS просто по IPv4 без
всяких IPv6 внутри IPsec, то существенно сильно лучше становится. Причём
это почти такая же HardenedBSD что и у меня на рабочей машине, тот же
самый сервер, точно так же настроенный IPsec, IPv6 и NFS -- просто
copy-paste конфигов и команд. Надо будет как-нибудь с этим
разбираться... а то со стороны получается что поднять тривиальную
конфигурацию я разучился.
Вспомнил что когда-то давно хотел попробовать Kerberos в деле, особенно
для NFS, тем более что там вроде как без IPsec можно будет обеспечивать
и аутентификацию и конфиденциальность. По handbook поднял вроде бы всё,
но с ходу NFS по krb5 не заработал. Опять же, в течении часа помучился и
плюнул, хотя надо будет как-то добить эту тему. Скорее всего
какую-нибудь мелочь забыл на NFS сервере.
Просто передать массу данных поверх TCP я не доверяю целостности.
Поэтому делал через tee подсчёт SHA512 налету. Напомню что SHA256 на
amd64 медленнее! Но SHA512 на этой медленной машине хэширует где-то со
скоростью 50-60 MiB/sec. Эх... использовал md5 -- там он жёсткий диск
полностью выжимает. Но надо будет попробовать BLAKE2b, а то MD5 как-то
не солидно, хотя для проверки целостности (в отсутствии злоумышленника)
он годится.
Но, пусть в разы медленнее чем могло бы быть, но накопировал я суммарно
несколько терабайт на машинку по gpg over nc over IPv6 link-local,
назаписывал на ленты.
Sergey Matveev [Sun, 26 Nov 2017 08:15:35 +0000 (11:15 +0300)]
Стал использовать GPT labels
Когда надо просто поставить ОС на ZFS (а на что ж ещё?) по-простому, то
я даже разделы не создаю, а просто dd-шкой устанавливаю загрузчик и
использую ZFS на весь раздел.
Однако бывает необходимость загружаться именно в UEFI режиме, что
накладывает тонны геморроя на то, как можно установить ОС. Приходится
создавать GPT разделы. Иногда разделы нужно создать когда корень и
какое-нибудь хранилище разделены вынужденной мерой: например хранилище
использует Skein хэш. Тут тоже делать GPT.
И в случае с GPT мне понравилось задавать метки, так как любая GELI или
zpool команда понимает вот такое:
zpool create storage gpt/BACKUP-STORAGE
или вот SSD кэш у меня добавлен:
cache
gpt/SSDCACHE.eli ONLINE 0 0 0
Особенно это хорошо, когда нумерация/наименование каких-нибудь ada0p2
сильно меняется.
Sergey Matveev [Sat, 25 Nov 2017 15:56:00 +0000 (18:56 +0300)]
Первые впечатления от LTO стримера
Никогда раньше не доводилось использовать подобные устройства (ну кроме
Spectrum загружающего программы с обычной аудиокассеты).
* Стример здоровый! В имеющийся пьедестальный корпус в 5.25" отсек он не
влазит по длине. Без SAS/питания проводов он упирается в блок питания.
Нужен или большего размера или тот, в котором блок питания находится
снизу
* Он греется! Существенно больше обычного 3.5" жёсткого диска под
нагрузкой. Корпус, во время работы горячий
* Он ШУМНЫЙ! Не даром я видел что пишут уровень громкости.
Не обращал внимание на эту цифру. Лента во время записи/чтения
мотается с большой скоростью и механизм визжит. Оставлял на ночь
записывать -- пришлось закрыть две двери до него в квартире, чтобы не
было его слышно, а то мешает. Соответственно, во время работы рядом с
ним -- музыку тоже проблематично слушать
Нет проблем с совместимостью: родные mt, tar программы из коробки с ним
работают, мотают, стирают, пишут, ставят метки, итд. Пишет на LTO4 ленты
(LTO5 ещё не приобрёл) со скоростью около 113 MiB/sec -- то есть, старый
дохлый жёсткий диск его банально не потянет.
Важно указывать размер блока во время операций с dd, иначе лента
начинает туда-обратно ходить на месте, производя запись/чтение со
скоростью около 5 MiB/sec. Что делает её чуть ли не бесполезной.
Так как в моих серверах для 5.25" отсека нет, места в корпусе тем более,
нельзя вставить не low-profile SAS контроллер, то, чтобы оно не висело
на соплях с проводами и блоком питания наружу, я приобрёл системный блок
подешевле для этого девайса. Материнская плата с несъёмным Celeron, 2 GB
RAM, корпус подешевле -- туда и контроллер, и стример с жёстким диском (с
которого будет производится запись, так как гигабитная сеть даже в
идеальных условиях не вытянет такой поток). Поставил на него HardenedBSD.
Sergey Matveev [Fri, 24 Nov 2017 08:08:11 +0000 (11:08 +0300)]
Единственная фича которой не хватает в Aria2: IPv4 only
С 59862ce0e889b45d6872ba974d906312bfbf0a01 я использую Aria2 программу
как BitTorrent клиент. rTorrent не запустил ни разу, похоже что
полностью она меня удовлетворяет. Также её использую для скачивания
списков файлов.
Но вот единственной фичи которой не хватает, из-за которой я частенько
запускаю Wget, это возможность указать чтобы использовался только IPv4
адрес при скачивании. Или же я в /etc/hosts прибиваю его руками. IPv6
у меня провайдер не предоставляет -- использую Hurricane Electric
туннели, которые медленнее, да и не хочу я их нагружать подобными
штуками тяжёлыми.
Sergey Matveev [Fri, 24 Nov 2017 07:23:44 +0000 (10:23 +0300)]
Сходил на концерт 7 H.Target и Ulcerate
7 H.Target КАЖДЫЙ концерт где я был играют неповторимо и не похоже на
предыдущие. Вот сейчас понимаю что это самая любимая российская группа!
Считаю что сыграли отлично, под впечатлением, хотя не раз на них был.
Приобрёл ещё одну футболку (их футболок у меня больше чем каких-либо
других) и диск.
Ulcerate -- играют круто, особенно барабанщик. Ушёл я пораньше (по
техническим причинам), но вовсю они рубили узнаваемые трэки. С первых
звуков, пару дёрганий струн уже знаю что сейчас будет за трэк. Даже не
подозревал что так хорошо запомнил всё их творчество. Но... всё-равно
воспоминания о 7 H.Target затмевают.
Sergey Matveev [Wed, 22 Nov 2017 08:08:49 +0000 (11:08 +0300)]
Стал владельцем LTO5 стримера
Очень давно себе хотел ленточный накопитель. Цены... не просто кусаются,
а в клочья разрывают. Но приобрёл за вменяемую цену б/у LTO5 внутренний.
Кроме проверки работоспособности, пока ещё не игрался и не возился с ним.
LTO5 это лента на 1.5 терабайта со скоростью записи под 120 мегабайт в
секунду. То есть, даже не факт что один жёсткий диск гарантированно
будет давать необходимый поток данных для записи.
Sergey Matveev [Sat, 18 Nov 2017 13:36:12 +0000 (16:36 +0300)]
Зерелизил PyDERASN 1.6
https://lists.cypherpunks.ru/pipermail/pyderasn-devel/2017-November/000003.html
Сущая мелочь: возможность пропустить сколько-то байт при использовании
утилиты командной строки. Полезно когда надо попытаться декодировать
содержимое OctetString внутри которого может быть очередная DER структура.
Sergey Matveev [Fri, 17 Nov 2017 05:33:02 +0000 (08:33 +0300)]
Будущее уже здесь: как уцелеть в эпоху киберпанка
http://nnm.me/blogs/konelav/budushee-uzhe-zdes-kak-ucelet-v-epohu-kiberpanka/
Статья с которой почти по всем тезисам согласен. В ней правда
преуменьшено многое и упор делается на такие детекторы как сканеры лица
и прочее. А ведь просто сам по себе факт ношения радиомаяка, постоянно
отправляющего координаты, прослушивающего устройства -- куда более
просто и удручающ.
Наша молодёжь сознательно променяла безопасность на тщеславную
самопрезентацию.
Вот это верно. Об этом не раз и Патриарх Кирилл говорил.
Плюс действительно никто из людей продающих свою приватность и
безопасность, как правило, не читал Гибсона или хотя бы 1984. Ведь
каждый рад телекрану в своём кармане.
Sergey Matveev [Thu, 16 Nov 2017 19:14:57 +0000 (22:14 +0300)]
Форматы кодирования данных
В рассылке http://www.metzdowd.com/pipermail/cryptography/2017-November/033025.html
и на работе уже не первый день поднята тема про вообще форматы
кодирования данных. Имеется в виду для отправки по сети между
гетерогенными системами.
Всяких Protocol Buffers, Apache Thrift, MsgPack и прочего -- уйма.
Огромная уйма. Но я уже, видимо старею, но склоняюсь к тому чтобы
использовать семейство возможно чуть ли не самых старых форматов:
ASN.1 либо XDR.
Вот просто по сути своей чем тот же Protocol Buffer отличается от ASN.1
BER? Или MsgPack от BER? Да ничем. Всё это TLV! Одно но: в ASN.1 куча
всяких типов данных которые можно и не реализовывать. Но, в отличии от
многих, в нём есть DATETIME, так необходимый чуть ли не постоянно и
всегда на практике.
Да, ASN.1 BER можно было бы упростить в плане кодирования -- получим
BSON или MsgPack (если без схемы) или Protobuf (если с ней). Но так ли
это должно терзать и мучать людей? Сложность это конечно плохо, но
всё-равно регулярно все безропотно используют XML или JSON. Будь
возможность заменяют на что-то другое, попроще, но ё моё, не каждый же
раз в каждой компании и каждом стартапе писать очередной сериализатор?
liblber из состава OpenLDAP, говорят, может много гигабит спокойно
просасывать. Так что вопрос скорости тут уже не так важен. BER далеко не
самый компактный -- ok, берём ASN.1 PER. Да, сложен, даже сейчас мало
FOSS библиотек для работы с ним. Но я на полном серьёзе склоняюсь к тому
что надо бы взять и допилить или написать! PER ОЧЕНЬ компактен. Если так
волнует трафик -- нефига изобретать велосипед. PER вовсю например во
всей сотовой связи используется -- именно в нём между сотовым и станцией
передаются сообщения, так как там ёмкость канала важно экономить. Есть
aligned PER, где выравнивание произойдёт по байтам -- будет менее
эффективен чем unaligned вариант, зато на обычных
процессорах/компьютерах куда удобнее обрабатывать будет. Есть canonical
вариант PER -- можно будет применять в криптографии.
Недостаток BER в том, что одно и то же представление можно получиться
разными способами и поэтому там где происходит аутентификация или
подпись -- его не поиспользуешь. Для этого есть DER. DER это
подмножество BER -- BER его всегда сможет прочитать. Но он создаёт
другую фигню: его нельзя потоково передавать и обрабатывать. Для решения
этой проблемы есть CER -- почти ничем не отличается от DER, но позволяет
потоково обрабатывать данные. Имея в руках BER кодек, можно легко
сделать и DER и CER из него. PER значительно сложнее, но в компактности
с ним не потягаешься.
Но кроме ASN.1 я однозначно ещё считаю что стоит смотреть в сторону XDR.
Изобретён аж тоже в 80-х Sun Microsystems и почти во всём что они делают
используется этот формат (а также автоматом у всех в NFS и ZFS). Его
главное отличие, как мне кажется, это простота! Реализовать BER -- не
один день работы. А XDR -- пару часов. Выравнивание по четыре байтам,
говорят, ОЧЕНЬ помогает с обработкой данных на 32-бит и старше
процессорах. Очень просто и очень эффективно. Просасывать фигову тучу
гигабит на нём не проблема. Реализовать -- любой сможет с нуля. И лично
я в своих проектах (например NNCP) использую именно его.
Но всё-равно у XDR есть недостатки: нельзя потоково обрабатывать (длину
и количество элементов нужно знать сразу же при посылке), нельзя
передавать большие integer-ы (хотя конечно может быть кто-то и никогда в
жизни не столкнётся с такой задачей) и максимальный объём бинарного
блоба или количества элементов в массиве может быть только 2^32. То
есть, на практике большие файлы просто так одним куском не всегда можно
будет засунуть и придётся городить сверху этого ещё что-то.
Но BER, DER/CER, PER, XDR требуют схемы. Чтобы без схемы жить, то лично
я поклонник bencode. Один экран кода на Python -- вся его реализация.
Типов данных мало. Кодировать списки можно потоково -- остальные
элементы потоково нельзя. Но декодировать можно всё в потоке. Не самый
компактный, но и не жирный, как JSON. Но, что мне очень нравится, так
это то, что у него каноническое представление -- применим в
криптографии! Ну и, в отличии от JSON, в нём можно передавать бинарные
данные.
Есть вот например MsgPack или CBOR или BSON. Ну обычные yet another TLV
кодеки. Да, попроще чем ASN.1, но из-за этого городить таакой зоопарк?
У Google действительно есть объективные причины писать Protobuf или
Cap'n'proto, но Google один и у него свои условия эксплуатации. Это
очередная статья из серии "вы не Google -- не надо делать как Google,
потому-что они так делают". Если они используют сложный распределённый
map-reduce это не значит что для обработки отчётов вам тоже самое надо
делать. 99% подойдёт и просто обычный PostgreSQL какой-нибудь, с набором
скриптов обсчитывальщиков. Если Netflix-ы пилят свои sendfile примитивы,
внедряются в драйвера сетевых карт чтобы сделать DMA доступ, настраивают
хитро прерывания и CPU affinity для сетевых процессов это не значит что
не сделав этого у вас будет всё плохо. Так же как если у вас нет
zero-copy сериализации данных, то возможно вы никогда в жизни на своих
проектах в сериализацию и не упрётесь.
Sergey Matveev [Tue, 14 Nov 2017 11:35:48 +0000 (14:35 +0300)]
Выпилил WiFi чип из ноутбука
WiFi я сам по себе не использую. Если мне нужен доступ в Интернет, то я
всегда в пределах досягаемости нормального Ethernet кабеля. Если на
работе, то там значит нужен SSH зачастую. А WiFi вносит очень осязаемые
задержки при интерактивной работе -- я не понимаю людей которые терпят
уменьшение отзывчивости удалённого доступа. Видимо, отсутствие провода
это им компенсирует всё -- но не мне.
Во-вторых, в текущем ноутбуке WiFi просто не работает, даже если
захотеть, из-за того что нужны проприетарные закрытые прошивки.
В-третьих, когда я вставлял SSD в него, то видел что WiFi то можно
спокойно открутить вообще. Что вот и сделал, раз всё-равно толку в нём
нет, а лишний канал доступа мне не к чему.
Sergey Matveev [Thu, 9 Nov 2017 12:19:58 +0000 (15:19 +0300)]
ivi банит тех кто рекламирует Tor
https://rublacklist.net/33336/
Вот так вот! Работал я в ivi когда-то, а теперь там нет шифропанков :-)
На самом деле я конечно шучу что меня это хоть как-то задевает. В этом
году я существенно переменил свою позицию относительно Tor и никоим
образом его больше не хочу поддерживать.
Sergey Matveev [Wed, 8 Nov 2017 14:43:51 +0000 (17:43 +0300)]
ZFS на GELI и TRIM
Я почему-то думал что единственный серьёзный недостаток (не считая того
что с ZFS ничего не сделаешь без ключа) запуска ZFS поверх
зашифрованного GELI диска это то, что перестанет работать TRIM. Но, в
man geli нашлась опция:
-T Don't pass through BIO_DELETE calls
(i.e., TRIM/UNMAP). This can
prevent an attacker from knowing how
much space you're actually using and
which sectors contain live data, but
will also prevent the backing store
(SSD, etc) from reclaiming space
you're not using, which may degrade
its performance and lifespan. The
underlying provider may or may not
actually obliterate the deleted
sectors when TRIM is enabled, so it
should not be considered to add any
security.
То есть, по-умолчанию, GELI вполне себе прокидывает TRIM команду и это
даже надо отключать (если кому-то не надо). Не устаю радоваться FreeBSD
разработчикам!
Sergey Matveev [Wed, 8 Nov 2017 12:18:55 +0000 (15:18 +0300)]
Высокоэнтропийное передвижение по сцене во время выступления
Скачал с Youtube два видео с митапа 30-го октября: моё выступление и
Дмитрия. Оба из них перекодировал в свободный WebM формат, с чуть
уменьшенным разрешением (ибо не нужно большого). Получившийся WebM файл
на моём выступлении, даже с сильно больше пожатым звуком, урезанным
разрешением -- оказался ощутимо больше по размеру чем оригинал с H.264.
Выступление Дмитрия получилось компактнее, что на практике всегда и
происходило. Я думаю то, что я хожу туда-обратно по сцене, очень плохо
кодируется (движение же), а плохо кодируется то, где много энтропии.
Sergey Matveev [Mon, 6 Nov 2017 17:31:56 +0000 (20:31 +0300)]
Просмотр DVD на свободных ОС -- незаконно в США
https://www.howtogeek.com/138969/why-watching-dvds-on-linux-is-illegal-in-the-usa/
Вообще эта новость не нова, но я что-то всё не осознавал всю
серьёзность. На полном серьёзе просмотр DVD под GNU/Linux (FreeBSD,
whatever) -- незаконно, является преступлением. Даже не могу описать
насколько же рад жить в РФ: нет патентов на математику, нет патентов на
программное обеспечение, нет того что называется fair use, нет вот этого
DMCA (из-за которого просмотр DVD нелегален), нет ужасных стандартов в
которых ужасная криптография типа FIPS (помните Dual ECDRBD?), ваши
выложенные в соцсети (или вообще места третьим лицам) данные принадлежат
вам. И, глядя на этот список которой с ходу написал -- видно что в США
вовсю рулят деньги, корпорации.
И вот ведь кстати меня приглашали работать за границу (например в
Лондон). Знакомых сколько тоже переманивали работать в Германию,
Голландию и подобные страны. И для себя я всегда отмечал что среди всей
подобной заграницы только США вроде бы ещё хоть как-то более менее, а в
Европе... боже упаси мне там оказаться и жить. А тут вот вон какие дела
в США, если задуматься, будучи разработчиком ПО. Всё же нападки на нашу
страну и особенно власть наверняка просто из-за смердящей зависти. Ибо у
нас есть люди (а не только бизнесмены), есть твёрдая рука, а не только
запах денег всё решающий.
И ещё вот вспомнил что в США мне даже задумываться не стоит суваться на
мало ли какую конференцию или тусу. Во-первых, выпускникам МАИ, говорят,
будут вставлять палки в колёса. Во-вторых, когда я размещал свои проекты
на sourceforge.net, то выставлял что в них нету криптографии, поэтому
применять "санкции" против дружественных стран типа Сирии, Ирана и...
Крыма, не надо. Тем самым я, как администратор своих программных
проектов, беру ответственность на себя, а вообще я ведь обманул типа их
судебную систему, сказав не правду. Сейчас на SF меня нет, то долгие
годы я само собой не собирался ставить ограничения своим друзьям.
Sergey Matveev [Mon, 6 Nov 2017 17:27:21 +0000 (20:27 +0300)]
Win8/10 больше не позволяет проигрывать DVD/BluRay
https://www.howtogeek.com/127774/how-to-play-dvds-on-windows-8/
Случайно напоролся на информацию о том что Windows современный хоть
когда-то и умел играть DVD, но это взяли и выпилили. Блин, я вот
поражаюсь как люди вообще могут верить в то, что корпорации (подобные
этим) хоть что-либо делают *действительно* во благо пользователей.
Как-то с коллегой обсуждал и вот вспомнил что из коробки Windows95 (я
такую ещё использовал, застал) предоставляла колоссально больше
возможностей действительно нужных и полезных для работы. А вот несколько
лет назад у знакомой обнаружил что Win7 (или более поздняя) не имели
даже менеджера печати. Из года в год возможности этого семейства ОС
деградируют.
Sergey Matveev [Mon, 6 Nov 2017 14:42:14 +0000 (17:42 +0300)]
Зарелизил PyDERASN 1.5
https://lists.cypherpunks.ru/pipermail/pyderasn-devel/2017-November/000002.html
Чисто всё по-мелочи, даже расписывать особо нечего. Оно вот просто работает!
Sergey Matveev [Mon, 6 Nov 2017 12:25:19 +0000 (15:25 +0300)]
Самая распространённая ОС в мире: MINIX
https://www.networkworld.com/article/3236064/servers/minix-the-most-popular-os-in-the-world-thanks-to-intel.html
Потому-что именно эта свободная ОС находится в Intel Management Engine.
Почему она там имеет полный доступ к центральному CPU и всем шинам с
памятью? Имеет и сетевой стэк? Чтобы Intel могли прямо вот через
Интернет, удалённо делать с компьютером всё что заблагорассудится.
Всё написанное взято из статьи.
Sergey Matveev [Fri, 3 Nov 2017 08:02:07 +0000 (11:02 +0300)]
Against an Increasingly User-Hostile Web
https://www.neustadt.fr/essays/against-a-user-hostile-web/
Статья аналог которой я тоже не раз писал. Современный Web абсолютно,
полностью, унижает и не уважает своих пользователей. Вместо отправки
нескольких килобайт или десятков килобайт полезной информации, самой
статьи, самой сути, современный Web-сайт отправляет более двух-трёх
мегабайт данных (!!!!!!!!!), под 30 мегабайт через минуту, полтысячи
запросов, огромное время ожидания загрузки (вместо того чтобы кликнуть и
увидеть новую страницу, мы ждёёёём), полная деанонимизация, слив кучи
пользовательских приватных данных на более чем сотню сервисов слежки
постоянно в режиме реального времени. Очевидно что *никто* из вменяемых
пользователей не хочет ничего такого -- он хочет получить свою чёртову
страницу чтобы прочитать статью или раздел документации или новость или
ещё чего. Верно замечено что можно менее чем за 10$ купить Raspberry Pi
и хостить свой собственный Web-сайт, без всего этого дерьма.
Sergey Matveev [Thu, 2 Nov 2017 20:26:39 +0000 (23:26 +0300)]
NIST планирует включить 25519 и 448
https://csrc.nist.gov/News/2017/Transition-Plans-for-Key-Establishment-Schemes
Отличные новости! Мне бы конечно важнее услышать что в ГОСТ такое
включать бы собирались, но распространения 25519/448 я очень желаю!
Sergey Matveev [Thu, 2 Nov 2017 19:42:19 +0000 (22:42 +0300)]
Лахта Центр
Зашёл я на одну статью, в итоге прочитал больше дюжины других.
Аж строителем захотелось побывать! Мне, как инженеру, очень
интересно было всё это почитать и хочется дальше, продолжения!
Налитый перед этим чай остыл до комнатной температуры.
https://geektimes.ru/company/lakhtacenter/blog/294667/
https://geektimes.ru/company/lakhtacenter/blog/282584/
https://geektimes.ru/company/lakhtacenter/blog/282940/
https://geektimes.ru/company/lakhtacenter/blog/283360/
https://geektimes.ru/company/lakhtacenter/blog/287194/
https://geektimes.ru/company/lakhtacenter/blog/292675/
https://geektimes.ru/company/lakhtacenter/blog/283836/
https://geektimes.ru/company/lakhtacenter/blog/285152/
https://geektimes.ru/company/lakhtacenter/blog/287304/
https://geektimes.ru/company/lakhtacenter/blog/288997/
https://geektimes.ru/company/lakhtacenter/blog/290795/
https://geektimes.ru/company/lakhtacenter/blog/292019/
https://habrastorage.org/files/7e2/a34/102/7e2a341026b94219b750f4b340981577.png
Sergey Matveev [Wed, 1 Nov 2017 19:08:25 +0000 (22:08 +0300)]
Поругался с Теплицей Социальных Технологий из-за статьи
Статья которая была выложена утром и которая была под вечер --
отличаются. Без каких-либо предупреждений и согласований ТеСТ её
поправила. Вообще в самом начале было многое у меня сказано про OpenBSD
например -- в том что они выдали мне на согласование это полностью
исчезло. Ну OK, я допускаю что иначе бы текст получился очень огромным и
долгим для чтения, но суть оно особо не поменяло, лишь дало окраску что
другого мира кроме GNU/Linux в СПО нет.
Но под вечер они из пункта про недостатки GNU/Linux, отсутствия
современных технологий, убрали вообще упоминание ZFS! Блин, да это чуть
ли не основной пункт приходящий мне в голову если спросят почему бы мне
сейчас не пересесть снова под GNU/Linux. Если бы я говорил о GNU/Linux и
ничего не сказал о недостатках -- то это говно а не статья, потому-что
любой опытный человек обязан видеть и знать недостатки с чем он работает
(идеальных систем нет). Если оставить пункт про отсутствие технологий
только с DTrace-ом или Containers, то это выглядит несерьёзно -- да эти
две технологии пользователь может вообще ни разу в жизни не трогать, они
для своих задач, возможно никогда не возникающих. И пункт можно было бы
посчитать высосанным из пальца. Но ФС, штука обеспечивающая
доступность, сохранность и целостность данных -- САМОГО ценного что есть
на компьютерах, является архиприоритетной. В итоге, убрав это важнейшее
замечание (одного слова "ZFS" достаточно чтобы полностью объяснить
почему кто-то не использует GNU/Linux) статья превратилась в marketing
bullshit где описывается идеальный, без изъянов мир добродушных
линуксоидов у которых всегда всё прекрасно, современно и выше остальных.
Более того, в своём оригинальном ответе на вопрос о недостатках, я
написал что ZFS "отсутствует в качественном виде". Что в корне меняет
оценку этого моего высказывания. "ZFS отсутствует" -- было бы не совсем
правдой, так как, всё же, как-то, в каком-то виде он присутствует. Но
когда добавлено "качественном виде", то это сразу передаёт ещё и
требования к не простому наличию и субъективную оценку.
В любом случае журналист совершил недопустимое, на мой взгляд и именно
из-за этого к ним предвзятое отношение -- уберут одно/два слова,
переставят местами без предупреждения, вот и смысл другой и человек
выглядит как полный пустозвон, а люди будут тыкать пальцами в него, мол
что за херню он спорол во время интервью, поганя репутацию.
В итоге сегодня статья появилась. Больше всего статьи читают вечером,
после работы -- и люди видят что Матвеев какой-то мудак, живущий в мире
бабочек и пони, очередной 15 летний-ий сопляк радующийся pipe-ам в
командной строке. Вот не помню зарекался ли я связываться с журналистами
или нет, но если нет, то начинаю, ибо потом пожалею снова.
Я вот только не понимаю что я такого сделал ТеСТу? Вышли на связь со
мной они сами -- Маша позвала выступить и рассказать про СПО. С Машей
вроде конфликта не было, и вообще она мне очень нравится, глаз не
оторву. А вот с Натальей... Если я пишу не то что хочет видеть их
"линуксоидная" компания, не желающая видеть упоминания СПО, а только
этот open source, то уж проигнорировала бы мой ответ на интервью или
явно бы написала что им надо. Я бы потерял время, но люди хотя бы не
увидели бы то, чего я не говорил (я не мог не упомянуть ZFS и недостатки
GNU/Linux -- это знает любой, кто со мной знаком по технической части).
Что такое операционная система Linux: плюсы и минусы свободной платформы
Заголовок не мой, я бы такого конечно же не написал, но начиная со
второго абзаца уже идёт мой текст. Linux это не ОС и уж точно не
"платформа" (такого понятия не встречал относительно него).
Узнал вот про существование этого дистрибутива. Из интересного:
* защита от утечек по побочным каналам для бедных: просто в фоне
заставлять работать GnuPG что-нибудь делая с какими-нибудь файлами.
Прослушивая электромагнитный спектр, типа не так легко будет понять
где же выполнялась настоящая работа
* вместо ввода парольной фразы напрямую как есть, показывается таблица,
где, введя X и Y координаты нужной буквы, она будет по-настоящему
введена в программу. Сами значения X/Y координат постоянно меняются и
поэтому если идёт прослушка (keylogger в том числе) клавиатуры, то, не
зная вывода экрана, нельзя будет понять что же конкретно введено. Ну
кроме длины парольной фразы
Sergey Matveev [Mon, 30 Oct 2017 08:19:44 +0000 (11:19 +0300)]
Слово "блокчейн" в резюме повышает стоимость работника на 25%
Мне вот не раз предлагали сменить работу и заниматься блокчейном. И
прекрасно понимают и мне то, технарю, по чесноку говорят что на самом
деле 90% что называется блокчейном, на самом деле не имеет никакого
отношения. Сейчас в мире если где-то используется хэш от хэша -- можно
смело употребить слово блокчейн и в 100% случаев это прокатит для
заказчика. Поэтому если закрыть глаза на то, что по-настоящему является
блокчейном, то я заядлый специалист по нему :-)
Sergey Matveev [Sun, 29 Oct 2017 16:35:52 +0000 (19:35 +0300)]
Зарелизил PyDERASN 1.4
https://lists.cypherpunks.ru/pipermail/pyderasn-devel/2017-October/000001.html
Самое главное изменение это возможность проводить автоматическое
декодирование полей, в зависимости от OID-а:
http://pyderasn.cypherpunks.ru/reference.html#defined-by
Такого функционала не было ни в одной библиотеке что я видел.
На работе оно уже используется -- безумно удобно стало.
Sergey Matveev [Sun, 29 Oct 2017 10:32:30 +0000 (13:32 +0300)]
7 H.Target -- Promotional disc
http://technicaldeathmetal.org/7-h-target-promotional-disc-2017/
Два новых трэка от нижегородцев 7 H.Target. Возможно появится новый
альбом или что-то подобное на концерте с Ulcerate в ноябре. Буду ждать!
Sergey Matveev [Fri, 27 Oct 2017 20:36:55 +0000 (23:36 +0300)]
Пообщался со специалистами из КриптоПро
Возникли у меня вопросы о выборе authenticate-then-encrypt решения в
одном из стандартов ТК26, ведь все зарубежные специалисты советуют
делать как можно проще и выбирать encrypt-then-authenticate, так
как это не может быть не правильно. Но КриптоПро убедил что в их
подходе, при их выборе алгоритмов, это действительно даже лучше
получается, лучше противостоит атакам по побочным каналам.
Действительно узнал что-то новое, благодарен их сотрудникам,
потратившим время на объяснение!
Sergey Matveev [Thu, 26 Oct 2017 22:53:08 +0000 (01:53 +0300)]
Mailman 2.1.25 с моими поправками к переводу
https://mail.python.org/pipermail/mailman-announce/2017-October/000230.html
Вышел GNU Mailman с моими поправками к русскому переводу. На
lists.cypherpunks.ru запущена версия более старая, но с моими
поправками. Сейчас, если обновиться, то патчи больше не нужны.
Sergey Matveev [Sun, 22 Oct 2017 22:02:00 +0000 (01:02 +0300)]
Неделя отпуска прошла без единой строчки кода
В этом году возможно единственная неделя на которой я только читал
новости и писал письма. Но отпуск закончен и до конца года такого
безобразия не повторится.
Sergey Matveev [Sat, 21 Oct 2017 18:21:24 +0000 (21:21 +0300)]
Как Yandex деанонимизирует пользователей
https://victor-sudakov.livejournal.com/396946.html
Вот и я с автором солидарен -- само собой никакой подозрительной
активности или чего-то подобного там не было, а просто они под этим
предлогом хотят провести полную деанонимизацию.
Как-то давно я заводил учётную запись в Yandex.Money. Надо было купить
фонарик, оплатив его через этот кошелёк. Положил и перевёл 1k руб. и мне
сказали что мол всё подозрительно, achtung, дуй, короче, к нам в офис с
паспортом. Тогда ещё не было такого массового требования на сотовые
телефоны -- там сразу вон паспорт захотели.
Sergey Matveev [Thu, 19 Oct 2017 18:29:12 +0000 (21:29 +0300)]
Muncausen by Proxy
В расширенной версии фильма "Всегда говори да" (2008-го года с Джимом
Керри) есть четыре полных песни вымышленной сабжевой группы. Это почти
15 минут фильма!
В действительности же это электро-поп группа Von Iva с Зуи Дешанель
(главной героини фильма). Её голос очень нравится, да и, не смотря на
то, что я предпочитаю метал и грайндкор (как и Джим Керри, кстати), но
выступление у них получилось очень здоровское.
Sergey Matveev [Wed, 18 Oct 2017 21:41:17 +0000 (00:41 +0300)]
Митап Теплицы в Москве: что нужно знать про открытый код и лицензии
https://te-st.ru/events/opensource-meetup/
30 октября я совместно с организатором предыдущих мероприятий в te-st.ru
будем рассказывать про свободное ПО. Название митапа, к сожалению про
open source, как и вся тематика te-st.ru, но внутри новости о данном
мероприятии написано и про СПО в том числе.
Sergey Matveev [Wed, 18 Oct 2017 19:31:53 +0000 (22:31 +0300)]
Покатался на современном Mercedes C-класса
И в очередной раз убеждаюсь что хотел бы ездить именно на Мерсах. Всё уж
нравится. Ну кроме цены и долговечности за такую цену. Всерьёз конечно
копить на такую тачку не думаю, ибо для этого нужно в разы бОльшую
зарплату иметь.
Sergey Matveev [Wed, 18 Oct 2017 19:30:16 +0000 (22:30 +0300)]
Впервые увидел-таки Млечный путь
Рядом с Москвой световое загрязнение ужасно и никогда не видел Млечного
пути. А тут вот на несколько дней ездил в Нижегородскую область -- звёзд
на порядок больше видно, ну и, собственно, сама наша галактика.
Sergey Matveev [Mon, 16 Oct 2017 03:14:10 +0000 (06:14 +0300)]
Reasons to not use Gmail
http://www.horsfall.org/gmail.html
Хороший сборник причин почему Gmail является ужаснейшим почтовым
сервисом. По большей части технические SMTP-related причины.
Подтверждаю: особенно в этом году почта до них массово перестала ходить
и никто, абсолютно никто и нигде не может сказать причины -- отказ
в доставке происходит случайным образом. Попадание в спам -- случайным
образом.
Sergey Matveev [Wed, 11 Oct 2017 21:41:26 +0000 (00:41 +0300)]
Вышел альбом Exhumed -- Death Revenge
http://nnm.me/blogs/sid_oi/exhumed-death-revenge-2017/
А я в этом году был на их концерте как-раз:
http://www.stargrave.org/photoes/exhumed.jpg (группа на заднем плане)
Sergey Matveev [Wed, 11 Oct 2017 19:37:54 +0000 (22:37 +0300)]
Написал GEOM Gate демона на Go
https://www.freebsd.org/doc/handbook/geom-ggate.html
У меня была давно хотелка написать свою реализацию полнодискового
шифрования. Не то чтобы текущий GELI или LUKS не устраивал бы, но если
можно с достаточной надёжностью написать своё, то почему бы и нет. Плюс
иметь возможно делать deniable encryption -- например хранить данные
так, что нельзя доказать их наличие. Например по запросу суда/полиции
заставляют отдать ключ дешифрования диска -- отдаём, но также возможно
будут иметься ещё какие-то скрытые данные, факт наличия которых не
доказать.
Идея hidden volume-ов не нова и давно есть в TrueCrypt. Я же пока думаю
делать полнодисковое шифрование не совсем классическими XTS, CBC,
whatever, но добавлять к ним вектор инициализации и именно в нём
возможно хранить дополнительный hidden volume. Если IV будет на самом
деле шифротекстом, то для стороннего наблюдателя он всё-равно не отличим
от шума и выглядит как просто IV, рандомный, как и должен бы быть.
Но это всё откладывал потому-что хочется писать на Go, но чтобы никакого
C. Поэтому применять только сетевую подсистему эмулирующую доступ к
блочным устройствам. Я знал про iSCSI, AoE, NBD. AoE -- сложно и
геморройно и мало где используется. NBD нет под *BSD. iSCSI -- мне
кажется я не осилил прочитать даже всякий introduction в его RFC: с нуля
писать iSCSI target это колоссальное количество работы.
Но вот на днях случайно увидел GEOM Gate -- УБЕР простой протокол
доступа по сети к блочному устройству. Вчера за вечер полностью его
реализовал. Теперь остаётся только криптографическая часть,
Sergey Matveev [Wed, 11 Oct 2017 21:22:39 +0000 (00:22 +0300)]
Бердымухамедов груб с щенком для Путина
https://lenta.ru/news/2017/10/12/putinsdoggy/
Ну вообще я нисколько так не посчитал. Да, можно было бы под мышки её
взять, но у щенков шкирка вполне себе приспособлена для подобных
действий. Вот ни капли никакого возмущения или чего-то кроме умиления
щенком у меня не возникло. Президент Туркмении доволен и нормален.
А вот то что удивляет, так это что в сети видимо нет особо ничего про
сегодняшнюю новость где какая-то женщина на глазах у хозяина переехала
его маленькую собаку. Возможно это вырезано из контекста и мы не знаем
какие были отношения у хозяина с ней. Возможно это несчастный случай и
за своей огромной тачкой она действительно не видела барбоса и поддала
газу испугавших долбящего её машину мужчину. Но если это не так, то мой
приз как самым жестоким, самым бесчеловечным, самым низким существам
отдаётся в очередной раз женщинам -- страшнее них нет никого. Наш
мужской мозг никогда не сможет даже придумать или подумать о том, на что
они способны.
Sergey Matveev [Sun, 8 Oct 2017 20:21:55 +0000 (23:21 +0300)]
Testing Security Keys
https://www.imperialviolet.org/2017/10/08/securitykeytest.html
Продолжение статьи о security keys: https://www.imperialviolet.org/2017/08/13/securitykeys.html
Adam Langley не просто рассматривает базовые характеристики ключей, но
теперь уже щупает их. Что меня удивило и порадовало: ASN.1 DER даже
такие решения делают криво! И... как меня это не удивило -- проблемы с
кодированием целых чисел. Вообще это ужас и позор делать огрехи в таких
вещах как DER (!!!) кодирование -- оно же именно для этого и сделано:
чтобы было только одно представление данных.
Sergey Matveev [Sun, 8 Oct 2017 11:50:09 +0000 (14:50 +0300)]
ipsec интерфейс в FreeBSD
Обновил FreeBSD на своём шлюзе до 11.1 в которой появился ipsec
интерфейс (man if_ipsec). Настолько удобная штука, что вот потратил
прилично времени всё везде обновляя аккуратно.
Выглядит, с точки зрения пользователя, ipsec как gif интерфейс, но с
одним отличием: он автоматически добавляет security policies связанные с
этим интерфейсом. Именно их добавление очень удручало меня всегда в
настройке IPsec-а. А с ipsec интерфейсом теперь поднимать IPsec стало
делом проще некуда.
Предварительно на двух компьютерах убеждаюсь что конфигурационный файл
racoon имеется. У меня он выглядит неизменно как в
http://www.stargrave.org/IPsec-setup.html статье.
К этапу конфигурации я бы не стал это относить.
то есть, адреса просто симметричны. fc00 сеть имеется заранее и она
внутренняя. На этом вся конфигурация туннеля завершена. Указали
endpoint-ы и указали виртуальную сеть. На этом реально всё. ipsec
интерфейс добавляет SP такого рода:
0.0.0.0/0[any] 0.0.0.0/0[any] any
in ipsec
esp/tunnel/fc00::2752-fc00::7a00/unique#16385
spid=1 seq=3 pid=96714 scope=ifnet ifname=ipsec0
refcnt=1
::/0[any] ::/0[any] any
in ipsec
esp/tunnel/fc00::2752-fc00::7a00/unique#16385
spid=3 seq=2 pid=96714 scope=ifnet ifname=ipsec0
refcnt=1
0.0.0.0/0[any] 0.0.0.0/0[any] any
out ipsec
esp/tunnel/fc00::7a00-fc00::2752/unique#16385
spid=2 seq=1 pid=96714 scope=ifnet ifname=ipsec0
refcnt=1
::/0[any] ::/0[any] any
out ipsec
esp/tunnel/fc00::7a00-fc00::2752/unique#16385
spid=4 seq=0 pid=96714 scope=ifnet ifname=ipsec0
refcnt=1
а racoon видя эти SP, автоматически пытается сделать IKE для
согласования ключей и создания SA. Единственное чего пока не хватает,
так это прописать pre-shared ключи аутентификации в psk.txt:
То есть, повторюсь, если забыть про константный racoon.conf, то
достаточно: прописать PSK, указать конечные точки туннеля, сделать любую
соответствующую настройку адресов внутри туннеля. В принципе проще быть
уже не может. if_ipsec очень удобен. Без него, на самом деле, было бы
всё то же самое, но ещё надо было бы руками прописывать эти SP, как это
было в http://www.stargrave.org/IPsec-setup.html
Sergey Matveev [Wed, 4 Oct 2017 08:26:20 +0000 (11:26 +0300)]
Необразованная молодёжь. Ответ бизнеса
https://habrahabr.ru/company/regionsoft/blog/339284/
Ответ на статью про "Необразованную молодёжь": https://habrahabr.ru/post/339022/
Хороший ответ! Вот я со всем написанным в нём полностью согласен и
воочию регулярно видел. То что то, что хотят молодые неопытные
специалисты -- мягко говоря, очень завышено.
Sergey Matveev [Tue, 3 Oct 2017 19:06:18 +0000 (22:06 +0300)]
Посмотрел первый сезон Рика и Морти
https://ru.wikipedia.org/wiki/%D0%A0%D0%B8%D0%BA_%D0%B8_%D0%9C%D0%BE%D1%80%D1%82%D0%B8
И мне очень понравился этот мультсериал! Классно нарисован -- есть что
разглядывать. В меру пошел и чёрноюморен. А главное что интересен и
забавен! Плюс всякая фантастика, так мною обожаемая!
https://lists.suckless.org/dev/1709/32357.html
Anselm Garbe старейший член общества Suckless хорошо отзывается о Go.
Ну собственно все плюсы очевидны: OO сделан как надо (такой можно
использовать), статическая линковка и CSP.
Выводы на будущее после написания тысяч строк Python кода на днях
Не выходил я толком из дома уже неделю и писал писал кучу Python кода.
На работе мы конечно давно исповедуем некоторые мантры, но в очередной
раз убедился в их пользе и для меня уже просто неоспоримом преимуществе:
* рефакторить только после покрытия тестами. После хорошего покрытия,
типа 100%. Лучше сначала дописать как есть, покрыв тестами, а потом
рефакторить
* использовать coverage. Если pylint/flake8/mypy/whatever просто
помогают чуть сократить время нахождения недочётов, если тесты покажут
только те проблемы, что были оформлены явно человеком в этих тестах,
как он их видит и представляет, то coverage это über вещь,
показывающая то, что человек которому этот coverage пальцем тычет в
строчки кода, он всё-равно не поверит что они не покрыты, ведь вот же
прям отдельно для этих случаев специально написан же тест. Что на
работе, что вот в личных проектах -- coverage показывает то, чего
люди, команда людей, в упор не видит. Потрясающая по своей простоте и
эффективности повышения качества кода штука
Отдельно для себя ещё намотал на ус что всякие составные if-ы (if condA
or condB) имеет смысл писать отдельными if-ами, чтобы сделать из этого
два ветвления, два statement. Coverage не раз мне показал что одна из
частей этого условия никогда не покрывается, а я ведь был уверен, так
уверен.
Ну и quickfix-подход, а именно Hypothesis библиотека
(http://hypothesis.readthedocs.io/), очень и очень здорово помогает.
Требуется конечно порог вхождения чтобы научиться писать тесты под неё.
Часто приходится возиться с оптимизацией стратегий, так как могут быть
очень медленными, но оно всё стоит того. Мало того что оно просто
помогает писать меньше тестов, так ещё и как небольшой fuzzer работает.
В добавление к предыдущему посту. Пока рассматривал этот свой t скрипт,
увидел что какая-то $N добавляется к директории заметок:
NOTES_DIR=$HOME/.t/$N
Подумал что какая-то опечатка, больше нигде не используется. Но вспомнил
что это я так когда-то собирался делать namespace-ы! Типа T=arbeit t a
(добавить заметку по поводу работы), T=pyderasn t (посмотреть задачи по
pyderasn), итд. Честно: так как забыл что такое было, то и не
использовал, но удивлён что в таком маленьком скрипте нашлось что-то ещё
более фичастое.
Узнал тут про такую программу как Taskwarrior: https://taskwarrior.org/docs/start.html
Выглядит просто и аппетитно и хорошо б если бы я знал про неё раньше,
когда искал себе TODO management программу. Однако, если не нужно
архивирования выполненных TODO (то есть совсем всякие мелочи), то ничто
не сравнится с моей самописной "t": https://git.stargrave.org/cgit.cgi/t.git/tree/t
Судя по copyright, использую её с 2013-го (а то и раньше) года.
Написана и чистом POSIX shell, в качестве БД использует директорию и
файлы. Пользоваться тривиально:
Добавление новых записей:
% t a не забыть обновить домашнюю страницу
% t a купить хлеба
% t a
запустится $EDITOR, после сохранения файла которого он добавится
Просмотр имеющихся:
% t
[0] sshnm guest@foobar (6)
[1] не забыть обновить домашнюю страницу (1)
[2] купить хлеба (1)
[3] черновик записи в блог (10)
Число в квадратных скобках это порядковый номер записи, её текущий
идентификатор (если удалить [2], то [3] станет [2]). Длинные строки
обрезаются. Число в круглых скобках показывает количество строк в
записи.
Запустить редактор для правки записи:
% t m 3
Удалить запись:
% t d 2
Вывести запись в stdout:
% t 2
Всё. Больше эта штука ничего не умеет. Но мне все эти года большего и не
надо. Я *регулярно* ввожу t<CR>. ВСЁ что нужно запомнить и не забыть
сразу же добавляю "t a"-ом. Практически любая статья или заметка которую
временно надо сохранить или всё что угодно проходит через "t", правится,
ну а когда куда-то надо вставить, то в Vim делаю ":r!t XXX". Чтобы
просто в черновиках где-то создать файл с одной-парой строчек, то нужно
ввести vi а дальше путь, что всегда дольше чем "t a". Эта утилитка
наверное чаще чем vi запускается. А главное что ни надо никакого
интерпретатора типа Python, ничего компилировать.
Всё плохо с существующими ASN.1 библиотеками и книгами
https://github.com/andrivet/python-asn1
Эта библиотека является форком другой. Существует давно. Время от
времени в неё что-то коммитится. Но... она некорректно (невалидно)
кодирует отрицательные целые числа. Если её забросили, то почему
всё-равно коммиты продолжают делать? Или не знают о баге?
http://luca.ntop.org/Teaching/Appunti/asn1.html
Эта документация по ASN.1 на которую ссылается сама Go реализация
encoding/asn1. Как минимум, в ней говорится что формат UTCTime может
быть разнообразным и в DER оно вот тоже в куче разных видов. Это ошибка,
обман (в DER возможна запись только в UTC).
Официальную спецификацию ASN.1 DER тоже читать... мягко говоря
непонятно. Или нужно соответствующее образование программерское, но я ни
черта не понял как надо кодировать отрицательные целые числа. Самое
понятное, ясное и простое по действиям я нашёл просто в реализации Go
encoding/asn1. Go это всё-таки неимоверно крутой язык -- его код
читается на раз два. А Python это просто помойка всяких говн (люто
ненавижу)!
pyasn1 библиотека которую мы используем: под Py27 в ней просто не
работает BitString пустой. Были баги с отсутствием сортировки. Ещё
какие-то по мелочам. Но нельзя её так просто было взять и чтобы всё
работало!
Всё в Python мире меня достало по этой теме и поэтому я решил взять и
написать own ASN.1 library with slots and offsets. Об этом уже упоминал
аж месяцы назад в a8fcb1a8b48f5ff1c74551cdcd4a06c57eb93470, но так и не
находилось время на его реализацию до конца (а ведь это надо сделать вне
рабочее время, чтобы компания, не имея прав, не смогла бы его сделать не
свободным).
Typeset in the future: dedicated to fonts in sci-fi
https://typesetinthefuture.com/
Всегда скорее негативно относился к тому как люди заморачиваются с
шрифтами, но на этом сайте провёл уйму времени! Всё-таки зацепило всё
это смотреть и читать, особенно про всякие факты из фильма Чужой, где
напоминают что одна из миссий на Марс провалилась потому-что одна страна
и пару отщепенцев не считают в стандартных системах мер.
http://www.stargrave.org/Links.html
А то там была какая-то мешанина из всего и вся в одной куче. Кроме
разбиения по секциям, добавил ещё всякие блоки на которые подписан.
Сравнение Protobuf, Cap'n'proto, SBE и FlatBuffers сериализации
https://capnproto.org/news/2014-06-17-capnproto-flatbuffers-sbe.html
Статья довольно старая и возможно что-то уже не актуально, но идея иметь
форматы сериализации с нулевым копированием данных это интересно.
Опасно, сложно, но интересно в плане производительности. Понял, читая
её, что XDR формат, так мне нравящийся, выравнивающий всё по 32-бита,
ещё и для ускорения в виде выравненных структур хорошо подходит.
Я работал с Protobuf-ом на Go в Python -- он создаёт реально очень
компактное представление данных и очень быстр (в Python конечно за счёт
C-шных вставок). Плюс самые разнообразные структуры можно запаковать, то
бишь, он не минималистичен.
http://www.opennet.ru/opennews/art.shtml?num=47251
ZIL конечно приятен своим минимализмом, как BSD или MIT, но тяга не
читать лицензии, такие огромные как GNU GPL, приводит к тому, что
появляется очень много софта не copyleft. Что вредит миру СПО. Если
нужна permissive лицензия с учётов патентов, то для этого есть Apache 2.
Ну а Zero не является свободной лицензией -- нарушает нулевую свободу в
терминах определения СПО. Но является открытой -- вот ещё один пример
того что open != free в контексте ПО.
Речь о том, что на практике уже не раз деанонимизировали людей/серверы.
Те, кто могут смотреть за трафиком на глобальном уровне. Про
сопоставление активности исходящей/входящей я на всех своих выступлениях
говорил всегда и подчёркивал что это сделает Tor нерабочим (против
powerful adversary). Что и подтверждается.
Пора, пора, уже давно пора переезжать на что-то куда более
технологичное. Tor это средство обхода блокировок, цензуры, но не
средство анонимизации серверов или людей от powerful adversary.
https://github.com/golang/go/issues/21956
Я могу сказать одно: понабежали хипстеры, которые НИЧЕРТА не могут и
что-то хотят. Не хочу задеть их профессионализм, но они явно не
занимаются ревью кода. Как бы я не не любил Gerrit, но он однозначно
бесспорно существенно лучше интерфейса Github для ревью. GH вообще
толком не предназначен для этого. Хипстеры хотят коммитить, но
совершенно плюют на удобство ревьюверов, за что кстати в Linux Торвальдс
жёстко может послать.
Они говорят что сложно сделать вклад, типа геморройно. Это говорит о том
что сейчас растёт поколение людей которые не просто не умеют
пользоваться git, а которые умеют пользоваться только GH и больше ничем.
Как-то было дело что я отправлял патч в golang.org/x/crypto/blake2b
библиотеку: и чего чего, но уж точно не припомню что бы где-то был
какой-то геморрой, ну кроме Gerrit требующего JS.
ISO отвергает АНБ алгоритмы шифрования Speck и Simon
https://www.schneier.com/blog/archives/2017/09/iso_rejects_nsa.html
Что очень хорошая новость. Когда я впервые узнал про Speck/Simon, то
очень очень напрягся, думав про себя -- неужели это стандартизуют и оно
будет массово использоваться? Я не криптограф нисколько, но очень уж они
выглядят несерьёзно, с точки зрения порога безопасности. Не везде нужен
высочайший порог -- где-то достаточно и слабенького, лишь бы быстрого и
компактного, но ISO настолько это не приемлет.
http://www.darkside.ru/news/96599/
Две клёвые девахи на одной сцене. Lacuna Coil, как группу, я обожаю, но
вот к Epica очень холоден -- уж очень попсовые, но имеющие хорошую
вокалистку. Но не буду же я слушать группу из-за одной неё, как например
из-за текущей вокалистки Arch Enemy?
XZ из коробки умеет понимать сконкатенированные .xz файлы и разжимать их
как один целый поток байт. Это может пригодиться когда у вас данные
итеративно накапливаются и их можно просто присоединить, как например
mbox файл с почтой. Конечно, это ухудшит сжатие, так как будут два
словаря использованы, но если нужно что-то быстро провернуть или
пересжимать заведомо реже, то самое оно.
Когда-то давно, делая бэкапы, столкнулся с тем, что cpio или tar команда
у меня не смогли сделать архив большого размера и часть имён файлов там
не умещалась. Начитался про разные форматы одного только tar-а, но
позабыл. Решил вспомнить.
В POSIX/UNIX мире можно выделить три команды для работы с архивами: tar,
cpio и pax (ar не в счёт). Вне POSIX мира единственный формат имеющий
самую широкую поддержку это ZIP (какие конкретно версии -- не знаю). Про
него речь тоже не веду.
Лично мне tar мало когда нравился своим интерфейсом. После знакомства с
cpio я для себя сделал вывод что вот именно вот так должен выглядеть
архиватор. Долгое время использовал исключительно cpio, бойкотируя tar,
ибо уж правильно в нём всё с точки зрения интерфейса. Однако его формат
(cpio) имел и имеет существенные ограничения из-за которых им нельзя
просто так брать и архивировать всё что угодно.
После cpio я узнал о существовании pax. Pax создавался POSIX-ом именно
как архиватор всех архиваторов -- подружить ("pax" это "мир", с
греческого, вроде бы) tar и cpio, сделав что-то унифицированное.
Интерфейс pax повторяет cpio-шный: что круто. Формат поддерживаемый
pax-ом это один из tar-ов в котором нет крупных ограничений cpio -- тоже
хорошо. Вроде бы идеальная команда -- интерфейс cpio, формат tar, однако
pax мало популярен и большинстве дистрибутивов его не будет из коробки.
Остаётся tar. Однако форматов tar-а которые сейчас можно увидеть на
практике целых три: GNU tar, UStar, pax, всякое старьё о котором стоит
забыть.
Всякое старьё это между собой не очень совместимые vendor-specific
форматы, которые POSIX решил унифицировать и сделать "Unix standard
TAR". UStar поддерживает длину *полного* имени файла в 256 байт -- это
единственное что на данный момент прям может сильно "ударить" по глазам.
Но, насколько понимаю, UStar поддерживается широко и это формат который
должны открыть все и везде. Ну уж, существуя с 1988 года, не удивительно.
GNU tar, как всегда всё GNU-шное, куда более сложный формат, только с
собой совместимый, но в него можно запаковать всё без ограничений в 256
байт.
Но в POSIX.1-2001 стандарте, Sun предложила обновить UStar, сделав
pax-формат. Это UStar в котором в виде расширений добавлена
дополнительная информация о файлах: точность timestamp-ов хоть до
наносекунд, нет ограничений на длину имён файлов, как и символических
ссылок, пользователей/групп. Нет ограничений по размеру файлов. Сделан
этот архив так, что его отличия от UStar хранятся в виде PaxHeaders
файлов -- открыв такой архив мы увидим эти специфичные файлы, но многое
сможет достать. В FreeBSD версии tar есть restricted-pax формат который,
везде где можно, убирает PaxHeaders, добавляя только при необходимости.
То есть, если можно сделать архив UStar, то он и будет делаться и только
в худшем случае будет создан pax.
pax формат открывают все современные дистрибутивы. И именно его и стоит
использовать. А если точнее, то стоит использовать наверное
restricted-pax -- создавая UStar если это можно. Что забавно: pax
команда не поддерживает pax формат.
Подводя итог (в том числе субъективный, зависящий от моих дистрибутивов):
Формат(ы) cpio: все архаичны и имеют существенные ограничения
Формат UStar: до сих пор может быть часто использован без геморроя
Формат pax: лучший, может быть часто обратно-совместим с UStar
Команда cpio: хороший интерфейс, не может pax
Команда pax: хороший интерфейс, не может pax
Команда tar: плохой интерфейс, может pax
http://darkside.ru/show/9117/
Увидел тут новость что к нам приезжают крутейшие монстры техничного
брутал дет метала из Новой Зеландии: Ulcerate! Кроме того, при поддержке
нижегородцев 7 H.Target, в футболке которых я регулярно хожу.
Вот чего уж точно не ожидал, так это подобного посещения!
Выдержка из анонса:
Тёмный и гнетущий дет-метал, который со временем претерпел ряд
метаморфоз и вобрал в себя всю ярость и напор, выражаемые
музыкантами в сложных звуковых конструкциях, которые вот уже 15 лет
сводят слушателей с ума безумной скоростью ударных и убийственными
гитарными риффами, как дикий хищник беспощадно терзающий свою
добычу.
Популярный эмулятор терминала для macOS сливает приватную информацию
https://gitlab.com/gnachman/iterm2/issues/6050
А именно iTerm2 делает DNS запросы с тем что увидит в выводе своём.
"User experience" почти всегда на противоположной чаше весов с "security".
Я нашла твой профиль В Контакте, а потом и твои сайты. Мы сейчас в
XXX ищем Python developer. Я бы хотела обсудить с тобой это.
Готов пообщаться?
Во-первых, в ВК я даавным давно был зарегистрирован, но не в состоянии
удалить профиль, так как для входа нужно слить им свой сотовый телефон,
а на письма они не отвечают. Профиль там мёртв. Очень паршиво когда
соцсети начинают использовать для спама -- ведь всё это *нежелательная*
корреспонденция, как мне кажется. Если нужно общаться по поводу работы,
то для этого есть специализированные ресурсы со всякими резюме и тому
прочим. Соцсети типа ВК, как мне кажется, это для общения дружеского. Но
да ладно -- меня в соцсетях нет, хотя даже то что осталось даёт о себе знать.
Во-вторых, тут уж без сомнений для меня -- обращаться к совершенно
незнакомому человеку на "ты" это невоспитанно. Я понимаю что возможно
это была попытка сразу перейти на что-то дружественное, подальше от
формализма, но тут перегнута палка. Тем более что работа это вовсе не
место для дружбы (это, конечно же, не исключено, но не является ни
необходимым, ни желательным).
Павел Дуров -- бесстыдный конченный маркетолог с кастрюлями лапши
https://techcrunch.com/2017/09/18/signal-moxie-marlinspike-techcrunch-disrupt-sf-2017-telegram/
Увидел тут в статье что оказывается Дуров говорил:
The encryption of Signal (=WhatsApp, FB) was funded by the US
Government. I predict a backdoor will be found there within 5 years
from now.
и при этом умудряется закрывать глаза на полностью провалившие
криптоанализы его MTProto протокол, *худший* из существующих которые на
деле используются. А говорить такой бред про уже отлично
проанализированный криптографами Signal -- плевок в сторону всех
профессионалов, математиков. Полнейшее бесстыдство -- надо быть
конченный моральным уродом чтобы так нагло врать.
А Moxie верно говорит:
Marlinspike reiterated that the whole point of end-to-end encryption
is that users no longer need to trust anyone if the protocol works --
and Signal does.
Вся суть E2E шифрования в том, что пользователю не надо более никому
доверять, никакой третьей стороне или компании, так как протокол
обеспечивает криптографическую гарантию.
https://triplebyte.com/blog/technical-interview-performance-by-editor-os-language
Статистика говорит о том, что если вы сидите в Vim -- ваши шансы пройти
интервью выше всех. Если вы Ruby, то тоже выше. Если вы пользователь
GNU/Linux, то... ну что особо общаться с людьми из мира где массово
стали переходить на systemd, сделав из когда-то неплохих дистрибутивов
аналог Windows? Не прокатит такое на серьёзную работу. Только
BSD-семейство систем, ну... в том числе macOS. Под все эти критерии
кстати идеально подходит Tim Pope -- создатель крутейших и
must-have-нейших плагинов для Vim.
https://git.stargrave.org/cgit.cgi/codecomm.git/tree/doc/codecomm.txt
Понадобилось мне тут в email отправить комментарии для всякого кода из
Git-репозитория. То есть удобно и явно указать в каком коммите, каком
файле, на каких строках что-то так/не так.
Сделал CodeComm плагин для этой задачи -- по сути, являющийся просто
урезанной версией Gerrvim (https://git.stargrave.org/cgit.cgi/gerrvim.git/),
который, в свою очередь, изначально был написан для комментирования кода
для Redmine в ivi компании.
Работать с ним аналогично как и прежде: открываем файл в репозитории
(возможно через Fugitive, чтобы CodeComm узнал про коммит), выделяем
текстовый блок, жмём \cc или :CodeComm и открывается окно с шаблоном для
комментирования. После его сохранения, он дописывается в /tmp/codecomm.txt.
Надо мне тут было в одной программе массово переименовать множество
функций/переменных. Делать несколько десятков :%s/whatever/another/, а
потом ещё их и в другом файле применить. Хочется Vim для ввода командной
строки иметь. Почему-то смотрел в сторону command line window: q: -- там
действительно можно заниматься редактированием строки, но нельзя
подготовить несколько и сказать исполнить их все.
Оказалось проблема решается тривиально: скопировав заранее
подготовленный текст, например, в стандартный регистр, просто выполнить:
Заметил серьёзную багу/проблему с Tox-ом (или Toxic-ом): после пропажи
сети и её возврата вновь, не всегда Tox понимает что он в online и
известные ему контакты тоже доступны. Отключился Ethernet на минуту,
подключился вновь, а в течении двух часов после этого он всё-равно так и
не видит что контакты стали online.
Не знаю проблема эта Tox-а (библиоеки) или Toxic (клиента), но
действительно неприятна. Перезапуск клиента конечно же сразу же
показывает контакты в online.
Для продувки компьютеров. На одной из работ видел как идеально чисты
становятся сервера после пары минут воздуходува. Мой не такой мощный,
без баллона, но компактный (в виде чемодана) и поток выдаёт достаточно
мощный для продувки.
http://www.nncpgo.org/Integration.html
А именно то, как можно скачивать Web-сайты/страницы, делать и читать
WARC файлы, скачивать множество файлов с hook-ом на их отправку через
aria2c, работать с Git, а также упомянуть про RSS/Atom и youtube-dl.
git bundle это архив веток/коммитов. Если у вас нет прямого подключения
к серверу с репозиторием, то ветки можно передать через этот
store-and-forward метод. Он специально заточен под использование в
условиях флоппинета. Отдавать полностью склонированный репозиторий на
флешке -- может быть огромный overhead.
Кроме того, git протокол не умеет делать докачку данных. Через bundle
можно сделать репозиторий простым файлов, который уже докачивать как
угодно. Например склонировать репозиторий Linux на не очень каналах --
испытание. Получив bundle, который делается раз в неделю, это сделать
легко, потом, подключив репозиторий, докачать накопившиеся за неделю
коммиты.
https://www.kernel.org/cloning-linux-from-a-bundle.html
Как-то в 682f2a0ad02fdad6b80cb861fdf9d73e530e6e4a писал что, из-за
VPN-ов всяких, начал использовать аккселератор скачивания aria2. Сейчас
пригляделся к нему получле и на данный момент полностью заменил им
rTorrent BitTorrent клиент. Из BT клиентов мне всегда нравился ctorrent
-- чисто выполняет свою функцию на отлично. Но в нём нет поддержки UDP
трэкеров и DHT, а это ну очень хочется иметь. Transmission -- невероятно
прожорлив и вообще не рассматриваю как вариант. А rTorrent с задачей
справляется (ну кроме скачивания eXoDOS коллекции, где у него жёстко в
коде вшито ограничение на максимальный размер торрента), но его TUI
интерфейс мне нравился, тем что он TUI, а не CLI. Конечно есть RPC где
из CLI можно бы было дёргать его, но всё-равно не то. А вот aria2
как-раз ctorrent со всеми фичами и возможностью обслуживать много
торрентов сразу, на одном порту, чего ctorrent тоже не мог (один порт --
один торрент). В rTorrent правда было очень много всякой информации о
подключённых пирах, используемых трэкерах, очередях, но... пока на
данный момент решил пожертвовать. Возможно aria2 полностью заменит
rtorrent -- нужно время для окончательной оценки.
За годы существования людей очень мало и, насколько понимаю, если и было
общение, то только со мной (хотя есть более удобные средства). Не люблю
я мёртвый код, мёртвые сервисы и вообще всё что угодно что не
используется. Если это плагин для Vim/whatever и он не использовался в
течении полугода-года -- точно нафиг нужен и не надо жалеть. Про демонов
точно так же всё -- если не используется, то время затрачиваемое на его
поддержку (хотя... мониторинг работает, goircd не падает, автозапуск
есть, ротация логов автоматическая -- особо то делать ничего и не надо,
кроме обновления сертификатов) не стоит того.
https://lenta.ru/news/2017/09/06/tinkov/
Очень точно он сказал обращаясь к "либералам, школьникам и прочим
любителям Дурова". Контингент очень точно описан. Ещё он умолчал
про его бессовестный лживый трёп про его безопасный MTProto протокол:
позорнейший пример того, что сделают те, кто в криптографии не
разбирается, но хватает бессовестности вешать лапшу на уши о его
безопасности. Впрочем... либералы и школьники закрывают глаза на
неоднократные криптоанализы показывающие убожество Telegram.
https://geektimes.ru/post/292667/
Большая статья, начинающаяся с факта о том, что женщинам, как бы они не
хныкали, гораздо проще находить себе пару и не быть одинокой. Ибо
одинокими они могут быть только из-за чертовски высоких требований.
http://leaden.ru/2017/09/100-hidden-game-mechanics/
Очень интересно почитать про дизайнерские мелочи в играх! Ведь все они
очень влияют на то, понравится ли игра или нет, интересно ли в неё,
увлекательно ли будет играть. Очень круто!
Очень понравилась книга! Больше всего, правда, осело то, что Зоя спит с
тем, кого остальные считают тем ещё уродом моральным, из-за дурости
которого погиб не один человек. Даже там -- женщина с самым мерзким
типом вместе. А достойнейшими мужчинами -- "давай будем друзьями", хотя
они уважительно и заболтиво к ней относятся, в отличии от урода который
чуть ли не стыдится их взаимоотношений.
"Лирику" Сектора Газа попсово перепевают на Дорожном радио
В столовой где обедаю, постоянно включено Дорожное радио. Сегодня
услышал как какая-то попсовая певица что-то очень знакомое пела. Я,
вообще, не слушаю слова песен и предпочитаю чтобы их или не было или
вокал был как в горграйнде -- как ещё один музыкальный инструмент. Но
узнал что песня была "Лирика" Сектора Газа. СГ перепевают на всю страну!
Возможно единственная группа у которой я слушаю слова, помню их, трогают.
Многие ставят СГ на одну полочку с каким-нибудь Ленинградом. Никогда НИ
ОДНОЙ песни Ленинграда не понимал в лучшем случае, удивлялся тупости в
худшем. То, о чём поют Ленинград, говорят, должно трогать каждого
русского -- но вот нет, меня никак. А СГ -- полностью наоборот.
Sergey Matveev [Thu, 31 Aug 2017 08:08:38 +0000 (11:08 +0300)]
НЖМД Пратчетта раздавили катком
https://geektimes.ru/post/292515/
Но на то была его воля. Пратчетт -- великий, для меня, писатель, который
существенно повлиял на мировоззрение и отношение к жизни.
Понравился комментарий:
ТЕРРИ, ГЛЯДИ, ВОТ И ТВОЙ ВИНЧЕСТЕР ПРИШЁЛ. МОЖЕШЬ ТЕПЕРЬ ПРОДОЛЖАТЬ РАБОТУ.
Sergey Matveev [Wed, 30 Aug 2017 07:47:06 +0000 (10:47 +0300)]
Почему я не могу крепко спать с blockchain, будучи шифропанком
http://www.stargrave.org/Sleep-blockchain.html
https://lists.cpunks.org/pipermail/cypherpunks/2017-August/039082.html
Написал вот короткое письмо по теме blockchain.