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% от всего проекта и т.д.

Немає коментарів: