К слову, subversion воспринимает ^M (\r) как перевод строки, поэтому в отличие от git позволяет писать из коммандной строки многострочные сообщения (^M вводится через Ctrl+V, Enter).
А shell (любой, кроме совсем отмороженных вроде tcsh, которому нужно получить обратную косую черту перед вводом <Enter>) позволяет набирать многострочные сообщения, просто не закрыв кавычку. Zsh, bash и ksh ещё позволяют использовать git commit -m $'Summary\n\nExtended description'.
Некоторые проекты на sourceforge до сих пор живы. У меня там несколько старых (все новые на BitBucket) проектов, tmux, PyPI (только issue tracker для поддержки пользователей (интересно, чем он им так понравился), сам сайт на BitBucket), eix --installed | grep -P 'Homepage:.*[./]sourceforge\.net' | wc -l выдаёт 131 пакет.
Но SF устарел и они с этим практически ничего не делают. Я бы ни за что не стал создавать там новый проект, если только мне опять не понадобятся удалённые bzr, mercurial, subversion и git репозитории одновременно для тестирования (и то, на SF будут репозитории для тестирования, а не сам проект).
Разумеется то, что так можно писать, не означает, что так нужно писать. Но при копипасте на нулевой уровень отступов вам абсолютно без разницы, какие в копипасте отступы. Если при копипасте на некоторый уровень ваш редактор просто добавляет точную копию пробельных символов нужного вам уровня в начало каждой строки копипасты, то код опять будет работать. Код не будет работать, если вы напишете
if True:
True# Four spaces and statement that does nothing
True# Five spaces
Случайно обнаружил: правило эквивалентности (8 пробелов == 1 символ табуляции) из Python-3 никуда не делось, но работает не всегда и как‐то странно.
Ссылку на bugreport.html не в статье про новую сборку, кстати, найти ещё сложнее, чем это было при старой Opera. То ли я тупой, то ли в браузере и в заголовках/footer’ах форума и сайта браузера её просто нет, то ли у вас ужасные дизайнеры.
Мне интересно, а что вы будете делать с argparse, если понадобится man‐страница (а лучше, сразу man page и страница в Sphinx’е)? Я видел pypi.python.org/pypi/sphinx-argparse, но, во‐первых, сгенерированные страницы мне не понравились (usage просто ужас, вёрстка на таблицах, которая в man страницах ещё хуже, чем в HTML), во‐вторых, мне нужно было добавить в создаваемую страницу секцию AUTHORS, причём автоматически созданных, а строки описаний аргументов немного изменить (чтобы не использовать в command --help ReST разметку), а в‐третьих, этот проект использует приватные API.
Интересно, а как с этим справляются остальные? В описании ни одной из альтернатив argparse я не увидел ничего про создание документации, отличной от --help. Есть bugs.python.org/issue14102 тоже для argparse, но прилагаемый код опять использует приватные API. Я же подменяю класс ArgumentParser, т.к. никаких публичных API для вытаскивания данных из argparse парсеров просто нет.
В том месте, что я процитировал, вы говорили про картинки и видео. Т.е. то, что браузер будет отображать сам, а не предлагать загрузить (с последним делать не надо абсолютно ничего, просто убедитесь, что сервер посылает браузеру такие заголовки, которые вынудят последний показать диалог загрузки). Их всегда лучше перекодировать от греха подальше. Если архивы распаковываются и их содержимое отображается, то их нужно распаковать (послав пользователя при неудаче) и перекодировать содержимое. Как раз при распаковке и проверите соответствие MIME типа файлу.
И я предлагал не просто делать preview. А пересоздать (крайне желательно сделать это lossless) и выбросить нафиг оригинал.
Конечно, Magic bytes не дают никаких гарантий, что остальное содержимое файла соответствует формату, но тут уж ничего не поделаешь.
Насколько мне известно, с этим принято справляться путём перекодирования изображения из одного формата в тот же самый. Т.е. само изображение не меняется, а все лишние добавления пропадают. А если ImageMagick (libjpeg конкретно для JPEG, т.к. ImageMagick непременно пересожмёт изображение) не может что‐то перекодировать, то это не изображение и можно смело показывать пользователю ошибку.
Так можно же и на целочисленном типе сделать load factor меньше 1. Вам же не нужна вся точность float, наверняка минимальный load factor = 1/16 или 1/8 достаточен? Вроде разбирательство с переполнениями при откусывании трёх‐четырёх бит должно быть менее затратным, не проверяли?
Кстати, в исходниках у вас вроде size_t load factor, не unsigned int.
Лучше в примерах сразу писать без >, чем объяснять, что его там нет. А то PS2 может быть разным.
cat << EOF интересен не тем, что не нужны «магические» комбинации клавиш (кстати, stty eof $new позволит вам поменять <C-d> на что‐то другое). А тем, что, во‐первых, может быть использован в скриптах (<C-d> нельзя), во‐вторых, использует zle/readline/libedit/…, позволяя вносить правки в текущую строку, и, в‐третьих, полностью сохраняются в истории (т.е. можно вносить правки после запуска команды, хотя работа с многострочным вводом в оболочках не слишком удобна, да и именно код после << EOF сохраняют не все).
Нет. Лог файл сборки OpenOffice сжался 7z -m0=ppmd -mx=9 от 14 МиБ до 430 КиБ. Лучше только zpaq, методами 6, 8 и 8a, но он работает так доооолго (286, 286 и 389 КиБ соответственно, возможно, почитав справку, можно сделать лучше), а также «архиватор» от самих авторов PAQ (работает ещё дольше).
xz -9 выдал всего 564 КиБ (lzma -9 — 515 КиБ), при том был в четыре раза медленнее (на старой машине lzma -9 был на порядок медленнее 7z -m0=ppmd -mx=9). Если интересно, то вот все результаты: yadi.sk/d/YWOMe81KesS4A. Время и использованные команды смотреть в файле txt, но учтите, что сравнивать времена между дефисоминусами‐разделителями смысла нет, так как они от разных конфигураций (или не от разных, но наличие какого‐либо смысла в сравнении я не гарантирую).
Для текстов обычно лучше всего подходут PPMD. 7z умеет сжимать им (при явном указании и с контейнером .7z). Есть отдельная программа, умеющая только PPMD в свой формат, но она какая-то нестабильная (может не расжать).
В PPMD сжатие текстов происходит быстро и с хорошим коэффициентом (насколько я помню, на сжатии лога сборки OpenOffice PPMD превосходили по коэффициенту только PAQ8 и, возможно, xz -9; дойду до своего ПК, посмотрю).
\frac12 читается всяко легче, чем <mfrac><mn>1</mn><mn>2</mn></mfrac>. Кавычек в формулах нет. Теоретически можно использовать Unicode символы вместо всего, но «по‐умолчанию» (с inputenc и babel) много символов не поддерживаются и их приходится явно указывать (для текста мне хватает \DeclareUnicodeCharacter (определена в пакете inputenc), использовать результат одновременно в тексте и математике не пробовал).
Лучше адресовать их как «ёлочки» и „лапки“. В французском кавычками второго уровня являются не «лапки», правила использования (а именно отбивка пробелами) тоже несколько другие.
В комментарии, на который вы отвечаете, кстати, кавычки не названы русскими.
Мобильные клиенты, по большей части, тоже спрашивают. Только, во‐первых, некоторые можно настроить на показ изображений всегда, во‐вторых, бо́льшая часть их пользователей не знают, зачем вообще такие сложности, или думают, что они связаны с расходом трафика. Наверняка и в The Bat и/или Outlook тоже есть такая настройка.
Ну и «давайте положимся на то, что пользователь, знает, чем ему грозят картинки» ≠ «давайте все картинки покажем через себя, чтобы пользователю они ничем не грозили всегда».
Вот если бы автор имел свой аналог ветки «extended-autoload» из VAM (в этой ветке VAM автоматически определяет, когда нужно загружать дополнение; должно работать с командами, практически всеми автокомандами, большинством привязок; сильно тормозит первый запуск), то было бы интересно. А с подсказкой пользователя сделать это корректно очень легко.
<Enter>) позволяет набирать многострочные сообщения, просто не закрыв кавычку. Zsh, bash и ksh ещё позволяют использоватьgit commit -m $'Summary\n\nExtended description'.eix --installed | grep -P 'Homepage:.*[./]sourceforge\.net' | wc -lвыдаёт 131 пакет.Но SF устарел и они с этим практически ничего не делают. Я бы ни за что не стал создавать там новый проект, если только мне опять не понадобятся удалённые bzr, mercurial, subversion и git репозитории одновременно для тестирования (и то, на SF будут репозитории для тестирования, а не сам проект).
Случайно обнаружил: правило эквивалентности (8 пробелов == 1 символ табуляции) из Python-3 никуда не делось, но работает не всегда и как‐то странно.
В Python-2 есть ещё правила, устанавливающие эквивалентность табуляции некоторому количеству пробелов, но в Python-3* это удалили.
Т.е. вот это:(
>с дефисоминусами изображает один символ табуляции)есть валидный код на Python.
Ссылку на bugreport.html не в статье про новую сборку, кстати, найти ещё сложнее, чем это было при старой Opera. То ли я тупой, то ли в браузере и в заголовках/footer’ах форума и сайта браузера её просто нет, то ли у вас ужасные дизайнеры.
command --helpReST разметку), а в‐третьих, этот проект использует приватные API.Т.е. в итоге я писал свой велосипед: (сразу говорю, поддерживает только те возможности argparse, что я использую в powerline) github.com/powerline/powerline/blob/6b0cd3d37c1bcf199bf0eb78752a20de9170797e/docs/source/powerline_automan.py. Большинство, кажется, считают, что man страницы не нужны — тот же pip её не имеет (использует optparse).
Интересно, а как с этим справляются остальные? В описании ни одной из альтернатив
argparseя не увидел ничего про создание документации, отличной от--help. Есть bugs.python.org/issue14102 тоже для argparse, но прилагаемый код опять использует приватные API. Я же подменяю класс ArgumentParser, т.к. никаких публичных API для вытаскивания данных из argparse парсеров просто нет.И я предлагал не просто делать preview. А пересоздать (крайне желательно сделать это lossless) и выбросить нафиг оригинал.
Кстати, в исходниках у вас вроде size_t load factor, не unsigned int.
>, чем объяснять, что его там нет. А то PS2 может быть разным.cat << EOFинтересен не тем, что не нужны «магические» комбинации клавиш (кстати,stty eof $newпозволит вам поменять<C-d>на что‐то другое). А тем, что, во‐первых, может быть использован в скриптах (<C-d>нельзя), во‐вторых, использует zle/readline/libedit/…, позволяя вносить правки в текущую строку, и, в‐третьих, полностью сохраняются в истории (т.е. можно вносить правки после запуска команды, хотя работа с многострочным вводом в оболочках не слишком удобна, да и именно код после<< EOFсохраняют не все).7z -m0=ppmd -mx=9от 14 МиБ до 430 КиБ. Лучше толькоzpaq, методами 6, 8 и 8a, но он работает так доооолго (286, 286 и 389 КиБ соответственно, возможно, почитав справку, можно сделать лучше), а также «архиватор» от самих авторов PAQ (работает ещё дольше).xz -9 выдал всего 564 КиБ (lzma -9 — 515 КиБ), при том был в четыре раза медленнее (на старой машине lzma -9 был на порядок медленнее 7z -m0=ppmd -mx=9). Если интересно, то вот все результаты: yadi.sk/d/YWOMe81KesS4A. Время и использованные команды смотреть в файле txt, но учтите, что сравнивать времена между дефисоминусами‐разделителями смысла нет, так как они от разных конфигураций (или не от разных, но наличие какого‐либо смысла в сравнении я не гарантирую).
В PPMD сжатие текстов происходит быстро и с хорошим коэффициентом (насколько я помню, на сжатии лога сборки OpenOffice PPMD превосходили по коэффициенту только PAQ8 и, возможно, xz -9; дойду до своего ПК, посмотрю).
\frac12читается всяко легче, чем<mfrac><mn>1</mn><mn>2</mn></mfrac>. Кавычек в формулах нет. Теоретически можно использовать Unicode символы вместо всего, но «по‐умолчанию» (с inputenc и babel) много символов не поддерживаются и их приходится явно указывать (для текста мне хватает\DeclareUnicodeCharacter(определена в пакете inputenc), использовать результат одновременно в тексте и математике не пробовал).В комментарии, на который вы отвечаете, кстати, кавычки не названы русскими.
Ну и «давайте положимся на то, что пользователь, знает, чем ему грозят картинки» ≠ «давайте все картинки покажем через себя, чтобы пользователю они ничем не грозили всегда».