Эм. Я не говорил, что провайдер подменяет сертификаты. Я говорил, что сайт работает по HTTPS, если игнорировать предупреждение (сертификат выдан на fatcow.com — hosting provider, который, похоже, и держит этот сайт).
OnLime. Bookscan открывается, legalki нет. Способ блокировки не знаю, но traceroute туда идёт, curl скачивать что‐либо отказывается (http). По HTTPS всё работает, если игнорировать предупреждение о неверном сертификате.
Мне бы тоже не пришло в голову исправлять эту проблему этим способом. Но строки «3.1» в начале сообщения было достаточно, чтобы понять, что это уточнение к моему третьему пункту. В третьем пункте говорилось о том, что не надо использовать MC для запуска скриптов, соответственно напрашивается единственное толкование. Предположение о том, что та команда являлась примером скрипта с деструктивным поведением, противоречит контексту беседы: «3.1» в начале и вообще весь мой комментарий, на который, собственно, отвечали, не предполагают возможности данного толкования.
Нет. vlivyur привёл решение, которое, по его мнению должно было запретить запуск чего‐либо по нажатию в MC (для текущего каталога) (во всяком случае, я так понял).
Я указал, что данное решение также запретит использование всех подкаталогов, затем Frosty показал, как можно этого избежать.
Ваш комментарий к ответу Frosty был воспринят как попытка указать на лучший способ решения проблемы (никаких явных указаний, что вы хотите этим способом повредить систему в нём нет, а других причин иметь именно такой комментарий именно к тому ответу я не вижу).
Поэтому sledopit указал, что это просто усугубляет проблему.
Вы, очевидно, не поняли, что sledopit хотел этим сказать, так как указанное им поведение наблюдается при запуске от пользователя.
Поэтому я уточнил, о чём там идёт речь.
Теперь вы говорите, что кто‐то говорил о том, как повредить систему, хотя ни в каком из предшествовавших вашему комментариев это не предполагалось.
Возможно первое правило действительно нуждается в лучшей формулировке. Да, у меня тоже не все скрипты просят подтверждения. Ключевые слова «выполняют действия» — это именно то, что Вы называете деструктивным поведением.
Зачем нужны скрипты, которые не выполняют действия?
То, что я называю «деструктивным поведением» — это поведение, в результате которого безвозвратно теряются данные. Это не bunzip file.bz2/bzip2 file — оно обратимо. Это не загрузка скриншотов на Яндекс.Фотки, отмонтирование, убийство operapluginwrapper, печать файла как книги на принтере или даже удаление сокетов dtach (даже если всех, включая соответствующие рабочим процессам) (dtach — аналог screen, из которого выпилен весь функционал за исключением возможности работы после убийства эмулятора терминала/ssh сессии и возможности переприсоединения).
Я пока не нашел универсального способа именования скриптов… Поделитесь.
Именуйте так, как вам будет понятно. Более универсального принципа я не знаю.
Я пользуюсь mc 12 часов в сутки. И он у меня по Enter не только запускает скрипты, но и открывает почти все файлы. Не говоря обо всех его остальных возможностях. Это такой удобный и естественный инструмент, что мне как-то даже нечего сказать по поводу «автодополнения в консоли».
Естественным он быть не может, равно как и консоль и вообще все интерфейсы.
Относительно удобства — опишите любой use‐case и я скажу, как это сделать быстрее в консоли с автодополнением. Единственный случай, когда mc является удобным — это когда я не помню, что находится в конкретном каталоге. Так как единственные каталоги, про которые я этого не помню — это то куда скачиваются torrent’ы, а все операции сводятся к изредка используемым aplayer /mnt/files/torrent/Series/Common\ series\ prefix\ <->\ *.mkv (можно и просто …/*.mkv, но в этом случае при случайном выходе из mplayer сложнее сказать, что хочешь смотреть все серии, начиная со, скажем, 15‐й. А так <-> заменяется на <15->), то иметь mc ради такого случая мне кажется странным. Кроме того, мне не понятно, как в случае запуска с N‐й серии мне поможет mc.
set -e это очень хорошо, но неиспользование стандартных переменных должно быть условным рефлексом. В данном конкретном примере ничего не будет удалено, поскольку оболочка не будет знать, где искать rm.
Не знаю, откуда вы взяли совет 1. Я бы написал наоборот:
Никогда ничего не спрашивайте, если действие, производимое скриптом, не деструктивно по сути и притом работает с резервной копией. Если деструктивно, но не трогает резервную копию тоже не спрашивайте, при исполнении следующих правил риска никакого, а вопросы раздражают.
Давайте нормальные имена скриптам и всегда добавляйте документацию, если сам скрипт не умещается на экране.
Для того, чтобы запустить именно нужный скрипт, есть консоль и автодополнение в ней. Никогда не запускайте что‐либо по нажатию в MC.
Это соглашение, а не привычка, конкретное направление меняет только знаки в формулах. Когда важно что именно, как и куда двигается, про ток не говорят. Тем более, что такое не движение не является невозможным, если, к примеру, среда, в которой ток проходит — раствор, а носители заряда — положительные ионы.
Про весь kde не скажу, но ktorrent явно показывает «MiB/s».
А вот в той же консоли dd показывает именно MB. Но суффикс «k» в аргументах командной строки значит 1024. Впрочем, десятичные варианты всех двоичных суффиксов тоже есть.
Там же ls, du, df могут выводить информацию с использованием обоих вариантов, но sort использует только двоичный.
Пример (и у вас и у ниже отписавшегося akzhan) не эквивалентен тому, что наверху: в Python range(n, n+k) возвращает [n, n+1, …, n+k-1]. Не […, n+k].
Ipython — просто штука, в которой иногда удобно по‐быстрому проверить работоспособность кода на Python. Ещё хорошо использовать как калькулятор. Возможность вызывать оболочку — просто приятное дополнение.
Соответственно преимущества перед bash — те же, что и у самого Python. Преимущества именно как замены /bin/bash в /etc/passwd — отсутствуют, он даже не дополняет команды из $PATH, только имена файлов.
Ничего не путаю. Я же явно сказал — git можно попросить сделать автоопределение. Похоже, немного ошибся с тем, какие команды делают такое определение по умолчанию (не вспомнил про annotate).
Покажите то же самое, изменив файл полностью. Или явно указав не просто --follow, а «-M100%» (то есть, потребуйте полное сходство). Или просто возьмите исходники git и покажите, где данная информация сохраняется.
Не видел реальных проектов с такими промежуточными изменениями. Обычно этот факт просто игнорируют, так как процент схожести достаточно высок, либо народу всё равно, так как они не знают, что проверка на переименования происходит каждый раз, когда вы запускаете нужную команду (log, diff) и то только если об этом действии попросить (или настроить соответствующий псевдоним). Только commit и merge делают это по‐умолчанию.
А git не мой, мне всегда больше нравился mercurial. В нём вы можете сделать «hg mv» и изменить всё содержимое. Только на этот раз придётся делать «hg mv» или явно запрашивать автоопределение (hg addremove --similarity), «hg log»/«hg diff» возможностью определения переименований не обладают.
Git не сохраняет информацию о переименованиях. Так что либо после рефакторинга переименованные файлы достаточно схожи, либо будьте любезны иметь промежуточное изменение, содержащее только переименование файлов и ещё одно с собственно изменением содержимого.
Интересно, когда это sed успел научиться нежадными множителями? Небольшой опыт показывает, что .*? ничем не отличается от .*. Точнее от (.*)?, за исключением сохранения текста.
В zsh можно такое устроить переопределяя accept-line widget. Тоже правда выглядит как хак, особенно вместе с функцией, которая засовывает в историю исходный текст, а не то, что будет реально выполнено. Как мне кажется, возможность работы echo abc | sudor { read def && echo $def } | read ghi можно обеспечить в обоих случаях если немного заморочиться.
2. Вообще как в git, так и в mercurial можно настроить хуки, которые отправят изменения сразу после их фиксации. И запретят фиксацию, если в центральном репозитории есть новые изменения. В отличие от псевдонимов, будет работать и в gui. Bazaar так вообще поддерживает такой режим «из коробки».
3. Никогда не видел чужих серверов, которые бы не подтормаживали в сравнении с mercurial. Правда это дело привычки — когда команда начинает работать быстрее старая версия начинает заметно тормозить, хотя на самом деле исполняется с той же скоростью.
У меня тоже проекты по большей части развиваются одним мной, но тем не менее мне зачастую нужны ветки для экспериментального кода. Работа с такими вещами в svn, по моему мнению, весьма неудобна.
Subversion создаёт слишком много точек отказа: для работы помимо самого компьютера нужны ещё как минимум сеть (как минимум две точки — от клиента и от сервера, то, что посередине обычно весьма надёжно) и сам сервер.
Кроме того, правка описания изменения неудобна и требует включения некоторых возможностей на стороне сервера, а как быть, если мне нужно поправить само изменение (что‐то забыл включить в коммит или включил что‐то не то) я не представляю (правда если использовать предложенные в п.2 хуки то в git/mercurial обе операции станут ещё более неудобными, а в mercurial на чужом сервере — вообще невозможной без полного удаления репозитория; что с bazaar — не знаю).
Я указал, что данное решение также запретит использование всех подкаталогов, затем Frosty показал, как можно этого избежать.
Ваш комментарий к ответу Frosty был воспринят как попытка указать на лучший способ решения проблемы (никаких явных указаний, что вы хотите этим способом повредить систему в нём нет, а других причин иметь именно такой комментарий именно к тому ответу я не вижу).
Поэтому sledopit указал, что это просто усугубляет проблему.
Вы, очевидно, не поняли, что sledopit хотел этим сказать, так как указанное им поведение наблюдается при запуске от пользователя.
Поэтому я уточнил, о чём там идёт речь.
Теперь вы говорите, что кто‐то говорил о том, как повредить систему, хотя ни в каком из предшествовавших вашему комментариев это не предполагалось.
Вот этот комментарий vlivyur ясно указывает на то, что речь не шла о повреждении системы.
То, что я называю «деструктивным поведением» — это поведение, в результате которого безвозвратно теряются данные. Это не
bunzip file.bz2
/bzip2 file
— оно обратимо. Это не загрузка скриншотов на Яндекс.Фотки, отмонтирование, убийство operapluginwrapper, печать файла как книги на принтере или даже удаление сокетов dtach (даже если всех, включая соответствующие рабочим процессам) (dtach — аналог screen, из которого выпилен весь функционал за исключением возможности работы после убийства эмулятора терминала/ssh сессии и возможности переприсоединения).Относительно удобства — опишите любой use‐case и я скажу, как это сделать быстрее в консоли с автодополнением. Единственный случай, когда mc является удобным — это когда я не помню, что находится в конкретном каталоге. Так как единственные каталоги, про которые я этого не помню — это то куда скачиваются torrent’ы, а все операции сводятся к изредка используемым
aplayer /mnt/files/torrent/Series/Common\ series\ prefix\ <->\ *.mkv
(можно и просто …/*.mkv, но в этом случае при случайном выходе из mplayer сложнее сказать, что хочешь смотреть все серии, начиная со, скажем, 15‐й. А так<->
заменяется на<15->
), то иметь mc ради такого случая мне кажется странным. Кроме того, мне не понятно, как в случае запуска с N‐й серии мне поможет mc.set -e
это очень хорошо, но неиспользование стандартных переменных должно быть условным рефлексом. В данном конкретном примере ничего не будет удалено, поскольку оболочка не будет знать, где искатьrm
.А вот в той же консоли dd показывает именно MB. Но суффикс «k» в аргументах командной строки значит 1024. Впрочем, десятичные варианты всех двоичных суффиксов тоже есть.
Там же ls, du, df могут выводить информацию с использованием обоих вариантов, но sort использует только двоичный.
range(n, n+k)
возвращает[n, n+1, …, n+k-1]
. Не[…, n+k]
.Ipython — просто штука, в которой иногда удобно по‐быстрому проверить работоспособность кода на Python. Ещё хорошо использовать как калькулятор. Возможность вызывать оболочку — просто приятное дополнение.
Соответственно преимущества перед bash — те же, что и у самого Python. Преимущества именно как замены /bin/bash в /etc/passwd — отсутствуют, он даже не дополняет команды из $PATH, только имена файлов.
Покажите то же самое, изменив файл полностью. Или явно указав не просто --follow, а «-M100%» (то есть, потребуйте полное сходство). Или просто возьмите исходники git и покажите, где данная информация сохраняется.
А git не мой, мне всегда больше нравился mercurial. В нём вы можете сделать «hg mv» и изменить всё содержимое. Только на этот раз придётся делать «hg mv» или явно запрашивать автоопределение (hg addremove --similarity), «hg log»/«hg diff» возможностью определения переименований не обладают.
Так что дело ещё и в VCS.
.*?
ничем не отличается от.*
. Точнее от(.*)?
, за исключением сохранения текста.В zsh можно такое устроить переопределяя accept-line widget. Тоже правда выглядит как хак, особенно вместе с функцией, которая засовывает в историю исходный текст, а не то, что будет реально выполнено. Как мне кажется, возможность работы
echo abc | sudor { read def && echo $def } | read ghi
можно обеспечить в обоих случаях если немного заморочиться.3. Никогда не видел чужих серверов, которые бы не подтормаживали в сравнении с mercurial. Правда это дело привычки — когда команда начинает работать быстрее старая версия начинает заметно тормозить, хотя на самом деле исполняется с той же скоростью.
У меня тоже проекты по большей части развиваются одним мной, но тем не менее мне зачастую нужны ветки для экспериментального кода. Работа с такими вещами в svn, по моему мнению, весьма неудобна.
Subversion создаёт слишком много точек отказа: для работы помимо самого компьютера нужны ещё как минимум сеть (как минимум две точки — от клиента и от сервера, то, что посередине обычно весьма надёжно) и сам сервер.
Кроме того, правка описания изменения неудобна и требует включения некоторых возможностей на стороне сервера, а как быть, если мне нужно поправить само изменение (что‐то забыл включить в коммит или включил что‐то не то) я не представляю (правда если использовать предложенные в п.2 хуки то в git/mercurial обе операции станут ещё более неудобными, а в mercurial на чужом сервере — вообще невозможной без полного удаления репозитория; что с bazaar — не знаю).