2019-05-05

праздник security и accessibility от Mozilla

5 мая, в 00:00, вероломно, без объявления войны Mozilla Firefox отключил пользователям все подписаные аддоны с всплывающим сообщением "could not be verified for use in Firefox and has been disabled".
 При этом нельзя ни их "вернуть", ни "переставить" - появляются ошибки "download failed. please check your connection" или "addon corrupt".

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

Итог - https://bugzilla.mozilla.org/show_bug.cgi?id=1548973
Самое забавное, что баг открыли досрочно, потому что нашлись пользователи, у которых 5 мая наступило на сутки раньше чем у большинства :)
С другой стороны, по той же причине тысячи пользователей на форумах сразу же принялись делится опытом что нужно оключить что бы все работало, например так: https://www.reddit.com/r/firefox/comments/bk54mu/addonsextensions_broken/

 Паралельно мозилла задеплоила фикс - Hotfix: Update XPI signing intermediate [Bug 1548973]
Конечно же для этого фикс нужно установить.
И конечно же миллионы пользователей сами это сделать не смогут.
И конечно же ради этого делать неплановый релиз, включающий фикс никто не стал.
К счастью это делать и не нужно - у мозиллы есть бекдор специально для таких случаев - Studies.
Но естественно оказалось что: не у всех он есть вообще, а многим не нравятся бекдоры, потому его отключили.
Соответственно те кто оказался "без фикса", и при том сумел проблему диагностировать и нагуглить может фикс скачать своими силами: https://storage.googleapis.com/moz-fx-normandy-prod-addons/extensions/hotfix-update-xpi-intermediate@mozilla.com-1.0.2-signed.xpi

Но очень многие при попытках диагностики проблемы отключили себе `xpinstall.signatures.required` в about:config.  И конечно же забудут включить обратно потом, когда проблема исправится.
 Но этого мало - все отключенные аддоны нужно вручную переставить что бы снять флаг проблемы подписи.
Это можно обойти если восстановить из бекапа "extensions.json" из профиля файрфокса (все ведь делают бекапы, верно?)
Ну или на крайняк исправить в этом файле для каждого аддона свойство "signedState" из значения -1 например в 2. И перезапустить файрфокс.

2019-04-13

реклама хороших библиотек для мини-веб-сервисов на питоне

Пришла рекламка бесплатного курса по библиотеке для мини-веб-сервисов на питоне - Responder, от Michael Kennedy(все видеокурсы Майкла всячески рекомендую)

Библиотечку я когда-то пробовал, потому что ее создатель - Kenneth Reitz - автор requests, record, pipenv, и много чего другого, легендарная в определенных кругах личность. Но втот момент она меня сильно расстроила, потому что несмотря на удобный для быстрого решения задач API, очень много вещей было недоделано

Тем не менее - решил для что для "разрядки" после нервной недели лучше посмототреть интересный курс от Майкла, чем чем-то ну уж совсем бесполезным :)

Начал паралельно с видео самостоятельно переписывать пример (естественно не на Responder:)), и понадобился файлик с данными для примера. И совершенно случайно, когда искал этот файлик movies.csv увидел у среди скачанных с гитхаба репозиториев - репозиторий самого responder (который я выкачивал когда пробовал под него писать), и вообще совершенно случайно решил заглянуть...

$ du -sh responder
32M     responder

Фигасе задался вопросом я, учитывая что проектик довольно новый, плюс в значительной части удобная обертка для других библиотек - что же там такого на 32МБ? Энциклопедия Британника? :)

$ du -sh *
4.0K    CHANGELOG.md
16M     docs
4.4M    ext
12M     .git
4.0K    .gitignore
4.0K    LICENSE
4.0K    MANIFEST.in
4.0K    Pipfile
32K     Pipfile.lock
4.0K    pytest.ini
8.0K    README.md
4.0K    readthedocs.yml
104K    responder
8.0K    setup.py
40K     tests
4.0K    .travis.yml

хммм.... 12МБ - данные гита (что как бы многовато на самом деле), но еще больше - 16МБ - доки... Это ведь наверное хорошо, когда много хорошей документации, правда?

сумма - 28МБ, т.е под 35% - служебные данные, под 45% доки... Но ведь блин! Кода самого проекта - 104КБ! Это ж блин 0.3%!

$ du -h docs/*
4.0K    docs/make.bat
4.0K    docs/Makefile
4.0K    docs/requirements.txt
20K     docs/source/_templates
15M     docs/source/_static/fonts
16M     docs/source/_static
16M     docs/source

ПЯТНАДЦАТЬ МЕГАБАЙТ ФОНТОВ

$ ls -s docs/source/_static/fonts/692185 | sort -nr
756 78DFDCB65B1F55769.css
724 EB335654CC32EEECB.css
664 D3FEA31F226436F7E.css
652 4BB5B4844BF0A1875.css
636 05C79D32FCC9C51A0.css
620 22F9BA1EA3A789050.css
572 FEF51E0A8EF01CA90.css
544 FA5D2C248B6AEC96E.css
492 96D5C750E04949CB8.css
468 BBFEE8CE0B4A78181.css
448 FBA2DF26930B5D39C.css
436 F3359BE670A39380E.css
420 4FC1B9C72E25ACB98.css
404 046446108A9C4012D.css

Причем шрифты в виде CSS-файлов(???).

$ head -c1000 docs/source/_static/fonts/692185/78DFDCB65B1F55769.css

/*
        Copyright (C) 2011-2018 Hoefler & Co.
        This software is the property of Hoefler & Co. (H&Co).
        Your right to access and use this software is subject to the
        applicable License Agreement, or Terms of Service, that exists
        between you and H&Co. If no such agreement exists, you may not
        access or use this software for any purpose.
        This software may only be hosted at the locations specified in
        the applicable License Agreement or Terms of Service, and only
        for the purposes expressly set forth therein. You may not copy,
        modify, convert, create derivative works from or distribute this
        software in any way, or make it accessible to any third party,
        without first obtaining the written permission of H&Co.
        For more information, please visit us at http://typography.com.
        148887-130097-20181011
*/

@font-face{ font-family: "Mercury Text G1 A"; src: url(data:font/truetype;base64,AAEAAAASAQAABAAgR0RFRgAnALEAAGoYAAAAHkdQT1Mvk7+6AABqOAAAMkhHU1VC6g

чужих фонтов, включенных base64 блобами в css стилей для документации....

но ведь и это еще не днище! ведь интересно - какие же такие красивые шрифты?

$ grep  -R -o 'font-family: *"[^"]+";' docs/source/_static/fonts/ | head
docs/source/_static/fonts/692185/A4436C301A663F119.css:font-family: "Mercury Text G1 A";
docs/source/_static/fonts/692185/A4436C301A663F119.css:font-family: "Mercury Text G1 A";
docs/source/_static/fonts/692185/A4436C301A663F119.css:font-family: "Mercury Text G1 A";
docs/source/_static/fonts/692185/A4436C301A663F119.css:font-family: "Mercury Text G1 A";
docs/source/_static/fonts/692185/A4436C301A663F119.css:font-family: "Mercury Text G1 A";
docs/source/_static/fonts/692185/A4436C301A663F119.css:font-family: "Mercury Text G1 A";
docs/source/_static/fonts/692185/A4436C301A663F119.css:font-family: "Operator Mono SSm A";
docs/source/_static/fonts/692185/A4436C301A663F119.css:font-family: "Operator Mono SSm A";
docs/source/_static/fonts/692185/A4436C301A663F119.css:font-family: "Operator Mono SSm A";
docs/source/_static/fonts/692185/A4436C301A663F119.css:font-family: "Operator Mono SSm A";

Гм, да они же повторяются!

$ grep  -R -o 'font-family: *"[^"]+";' docs/source/_static/fonts/ | wc -l
620

ШЕСТСОТ ДВАДЦАТЬ ШРИФТОВ! Да у меня блин в системе столько шрифтов нет!

Стоп, но они ведь они еще и повторяются...

$ grep  -R -o 'font-family: *"[^"]+";' docs/source/_static/fonts/ | sort | uniq | wc -l
140

Ну так намного лучше! "Всего" 140 шрифтов, скопированых примерно по 5 раз каждый. Норм

Ведь мы, программисты, говна не делаем, и всегда тщательно и ответственно относимся к своему продукту.

Примечание: слова про говно в большей степени относятся к принятым в индустрии практикам собирать продукт из готовых костылей, и никогда не проверять что же за говно эти скажем библиотеки для сборки документации, вебпаки, бабели, глиммеры и прочее; никогда не задаваться вопросом почему файлик about.js "весит" 95% от всего проекта и т.д.

2019-01-07

Впечатления YouTube Premium

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

1) YouTube Music
То что на самом деле мог бы использовать (вместо Play Music который пользую сейчас). Но увы YouTube Music - говно на палке:
• нихера не работает без инета,
 - постоянно стучит большому брату что и как я хочу играть,
 - в результате даже офлайн-колекция нормально без инета не играет,
 - потому что задержки на "постучать"  при смене треков.
• на малейший чих - например таймаут соединения к большому брату - останавливается воспроизведение,
 - при этом ничего нельзя сделать, оно изображает что все ок, но кнопка play/pause неактивна,
 - надо или сделать prev/next, или открыть/закрыть,
 - иногда эта срань просто задрачивает остановкой плейбека каждые 10-30сек на нормальном вайфае.
• если где-то открыт play music,
 - или был открыт десять минут назад, но комп ушел в слип или отвалился,
 - (например когда взял ноут,  вышел из дому, и запустил плеер на телефоне),
 - говорит "ты сука заплатил только за 1 сеанс, потому хер тебе на воротник а не музыка",
 - и вместо того что отключить предыдущий плеер как делал PlayMusic - не дает играть пока не вернешься и не отключишь предыдущий сам (знать бы еще как).
• просто задрачивает русскоязычным мусором который я ни за какие деньги слушать не стану,
 - т.е. или нужно играть только то что я выбрал (без рандома, или общих "радио),
 - или хрен вычистишь от мнения ютуба что я должен обожать всю музыку написаную на територии СНГ.
• субьективно работает сильно медленнее чем play music,
 - может потому что качает видео клипов?
 - может просто потому что писали говноеды.

2) YouTube Originals
• вообще ни о чем, прям как "доступ к всем оригинальным видео мухосранской подростковой кинокружке при 12й школе",
 - самое интересное что нашел - cobra kai (поностальгировать по karate kid),
 - и brain field (потому что vsauce), но честно говоря  шоу очень слабым получилось: ощущение что главная цель шоу была 10-минутные сценарии vsauce растянуть на 40минут.
• ютуб вообще блять в принципе не умеет в звуковые дорожки,
 - потому если есть сраный originals на сраном испанском или сраном немецком - его никогда не будет даже на английском,
 - про русский вообще можно забыть.
• субтитры лучше чем для автоматические для рандомных видосиков на ютубе,
 - но скорее всего тот же автомат, только на лучшем качестве аудио,
 - и иногда минимальной редактурой.
• найти или подобрать шоу/сериал вообще нереально,
 - все шоу отображаются во всех категориях,
 - есть только название и кавер, нет ни тегов, ни описания, 
 - нет ни каких-либо фильтров, ни поиска (кроме общего который надет все трейлеры нетфликса)
 - потому ищи где-нить в википедии что есть в originals и потом открывай целенаправлено,
 - или забудь про эту сраную помойку.

3) Ad-free
наверное оно работает.
вот только я 100% видео смотрю на компе, где есть adblock, и из всей рекламы бесит меня только "интеграции" всяких казино и викингов, которые этот adfree вообще никак не убирает.
так что adblock это конечно хорошо, но мимо.

4) Download and go
• даже в голову не приходило это использовать.
• может это сработало бы для фильмов и originals - но тут ютуб никчемное дерьмо и качать просто нечего,
 - сериалы проще качать на рутрекере, с поиском, сортировкой, с нормальным звуком, субтитрами, переводом...
 - и играть нормальным плеером, который не жрет сраные 200% CPU!
• ах да, работает только под оригинальный клиент!
 - т.е. качать только на шваброид/хромос,
 - на компе как был youtube-dl, которому на "premium" просто посрать.
так что вообще мимо кассы.

4) Play in the background
просто никчемная антифича,
• кто бы блять продал разрабам фичу что бы сраный ютуб НЕ ИГРАЛ В ФОНЕ,
 - когда открывает броузер с сохраненными открытыми вкладками,
 - и там начинается сраный концерт с компрометирующими звуками посреди офиса,
 - на одной(слава богу если только одной!) из 100 открытых вкладок(увы их вчера было 473), удачи с поиском как его прикончить.

так что 100% не стоит тратить деньги на это говно.