Комментарии kstep
kstep 22.10.2009 11:13 Python — Пузомерка для welinuxоида
0
Можешь — сделай.
Кроме того курл универсален и везде работает одинаково. Зачем что-то выдумывать?
Чем? Курл даёт очень большой задел на будущее. То же управление куками в случае если я захочу прикрутить здесь логин и доставать данные, видимые только данному юзеру (типа новый ЛС).
Замечены баги:
1) в коде программы добавлены лишние двойные кавычки в регексп, из-за чего при прямом копипасте из поста код не работает. Это не есть хорошо.
2) нумерация строк «плывёт» в ff3.5, т.е. номера строк не соответствуют реальным.
Вот тут: http://p-nut.info/blog/karring_v_pitone.html пример реализации отлаженной нумерации строк (очень долго подгонял под разные браузеры).
1) в коде программы добавлены лишние двойные кавычки в регексп, из-за чего при прямом копипасте из поста код не работает. Это не есть хорошо.
2) нумерация строк «плывёт» в ff3.5, т.е. номера строк не соответствуют реальным.
Вот тут: http://p-nut.info/blog/karring_v_pitone.html пример реализации отлаженной нумерации строк (очень долго подгонял под разные браузеры).
я бы порыл в сторону mpg123, mplayer и amixer (опция -c в частности для выбора карты, которой управлять) в этом плане, хотя никогда с таким не сталкивался.
Забавная игрушка. Баланс сделан неплохо, хотя есть ещё над чем работать в плане фич, да и багов мелких хватает, но в основном в интерфейсе, да и шоу-стопперов нет. Вполне себе ничего на общем фоне.
Современный комплект Lotus — первый ОпенОфис обработанный напильником в IBM.
По крайней мере такое впечатление он произвёл при запуске.
По крайней мере такое впечатление он произвёл при запуске.
Может у тя как-то хитро zsh настроен?
Например на суффиксы стоят алиасы?
alias -s чтоб проверить.
Например на суффиксы стоят алиасы?
alias -s чтоб проверить.
Просто чел этим на жизнь зарабатывает, книжки пишет.
Видимо боится, что так доход упадёт. Его право в конце концов,
он автор. Так что мешает самим написать подобное =)
Видимо боится, что так доход упадёт. Его право в конце концов,
он автор. Так что мешает самим написать подобное =)
Привычка. Привык к курлу за долгое с ним общение в перле и пхп.
Какая ось? Шел? Ибо сиё зело странно есть.
Без прав на выполнение всегда и везде выдавало ошибку доступа.
Может ты запущаешь через «. ./filename»?
Без прав на выполнение всегда и везде выдавало ошибку доступа.
Может ты запущаешь через «. ./filename»?
find . blablabla -print0 | xargs -0 blablabla
спасёт отцов русской демократии
спасёт отцов русской демократии
map <C-n> конечно. Съело как тег =(
map set number!
(см. восклицательный знак) освободит комбинацию для более нужных дел.
set option! переключает булеву опцию option в противоположное значение.
(см. восклицательный знак) освободит комбинацию для более нужных дел.
set option! переключает булеву опцию option в противоположное значение.
chmod = change mode (изменить режим файла, то есть права на файл),
a+x = to all allow (+) execute (всем пользователям разрешить выполнять).
a+x = to all allow (+) execute (всем пользователям разрешить выполнять).
Не пугай человека =) Пусть привыкнет хотя бы к скриптам на шелле. Может ему больше и не нужно =)
.sh добавляется в конце в качестве традиции, чтобы указать что это скрипт, написанный для шеллы (sh от shell, «оболочка», а точнее командная оболочка, программа обслуживающая терминал и дающая запускать другие программы).
Эту часть никто писать не заставляет =)
Главное не забыть две вещи:
1) первой строчкой в скрипте должно идти
#!/bin/sh
(или #!/usr/bin/bash, #!/usr/bin/perl, #!/usr/bin/zsh,
в общем полный путь к программе, которая должна выполнить этот скрипт).
2) скрипт должен иметь права на выполнение. То есть после того, как скрипт
положен в файл, то нужно выполнить команду:
chmod a+x имяфайла
Вот после этого и можно писать
./имяфайла
.sh добавляется в конце в качестве традиции, чтобы указать что это скрипт, написанный для шеллы (sh от shell, «оболочка», а точнее командная оболочка, программа обслуживающая терминал и дающая запускать другие программы).
Эту часть никто писать не заставляет =)
Главное не забыть две вещи:
1) первой строчкой в скрипте должно идти
#!/bin/sh
(или #!/usr/bin/bash, #!/usr/bin/perl, #!/usr/bin/zsh,
в общем полный путь к программе, которая должна выполнить этот скрипт).
2) скрипт должен иметь права на выполнение. То есть после того, как скрипт
положен в файл, то нужно выполнить команду:
chmod a+x имяфайла
Вот после этого и можно писать
./имяфайла
export LESS="-R"
позволит обойтись без алиаса на less.
позволит обойтись без алиаса на less.
Это декоратор.
Строго говоря, строчки
означают реально:
То есть декоратор — это функция, позволяющая «на лету» модифицировать
другую функцию (или метод), чаще всего «обернуть» ещё в некую обёртку.
Функция декоратор должна принимать на вход функцию как единственный
параметр и возвращать другую функцию (или ту же самую, главное — фукнцию).
Здесь, например, метод karma() оборачивается в проверку на нахождение
результатов его работы в кеше, и если она уже была вызвана (и данные
закешированы), то второй раз она не вызовется.
Советую попробовать написать пару своих декораторов. Там всё реально просто =)
Строго говоря, строчки
@cached
def karma(self):
означают реально:
def karma(self):
...
karma = cached(karma)
То есть декоратор — это функция, позволяющая «на лету» модифицировать
другую функцию (или метод), чаще всего «обернуть» ещё в некую обёртку.
Функция декоратор должна принимать на вход функцию как единственный
параметр и возвращать другую функцию (или ту же самую, главное — фукнцию).
Здесь, например, метод karma() оборачивается в проверку на нахождение
результатов его работы в кеше, и если она уже была вызвана (и данные
закешированы), то второй раз она не вызовется.
Советую попробовать написать пару своих декораторов. Там всё реально просто =)
Присоединяюсь. Всё здорово, но кат был бы очень уместен.
wget --referer=http://myzuka.ru ... не спасёт?
kill -CONT ${pidof cp}
За то так лучше и надольше запоминается.
Ты прав, конечно. Я тоже делал подобные функции с файндом и грепом (только вместо текста $2 =).
Только одна беда, ИМХО: страдает выразительность, а я её люблю =)
Собственно мне нравится выразительность запросного «языка» findа,
и хотелось его просто расширить новыми командами, так что их можно использовать
не только как новые команды, но и в составе других поисковых файнд выражений (find /usr/local/bin -executable -grep "bin/bash" -all какой-нить например.)
В общем весь пост — моё ИМХО. Я пробовал разные подходы к упрощению своей работы,
но этот пережил генетический отбор и до сих пор используется =)
Только одна беда, ИМХО: страдает выразительность, а я её люблю =)
Собственно мне нравится выразительность запросного «языка» findа,
и хотелось его просто расширить новыми командами, так что их можно использовать
не только как новые команды, но и в составе других поисковых файнд выражений (find /usr/local/bin -executable -grep "bin/bash" -all какой-нить например.)
В общем весь пост — моё ИМХО. Я пробовал разные подходы к упрощению своей работы,
но этот пережил генетический отбор и до сих пор используется =)
Кстати, специально для пугливых я написал короткий вариант приглашения без разукрасок.
Могу расписать в общеобразовательных целях =)
%{\e<1;32m%} - включаем зелёный цвет,
%n@ - имя текущего юзера с собакой в конце (kstep@),
%{\e<1;34m%} - включаем синий цвет,
%m: - короткое имя текущего хоста с двоеточием в конце (kstepbox:),
%{\e<1;35m%} - включаем малиновый цвет =),
%l - имя текущего терминала без префикса /dev/tty (pts/2),
%{\e<1;31m%} - включаем красный цвет,
%5(~.<.)%4~ - условный оператор: если глубина текущего каталога более 5 элементов, то отображаем последние четыре каталога, иначе отображаем полный путь к текущему каталогу (~/.config/awesome, ~/work/new-blogs), при этом домашний каталог заменяется на тильду,
%{\e<0;36m%} - циановая расцветка =),
`vcs_head` - отображаем текущую ревизию с помощью описанной функции (master, home-config и т.д.),
%{\e<0m%} - сбрасываем цвета,
%{\e<1;36m%} - включаем ярко-циановый цвет,
%# - отображаем процен если мы обычный пользователь (%), или решётку, если мы под рутом (#),
%{\e<0m%} - окончательный сброс цвета.
Кстати, заодно обнаружил лишний сброс цвета =)
Давно сам это дело не разбирал, как написал когда-то.
Надеюсь стало более понятно и менее страшно?
%{\e<1;32m%} - включаем зелёный цвет,
%n@ - имя текущего юзера с собакой в конце (kstep@),
%{\e<1;34m%} - включаем синий цвет,
%m: - короткое имя текущего хоста с двоеточием в конце (kstepbox:),
%{\e<1;35m%} - включаем малиновый цвет =),
%l - имя текущего терминала без префикса /dev/tty (pts/2),
%{\e<1;31m%} - включаем красный цвет,
%5(~.<.)%4~ - условный оператор: если глубина текущего каталога более 5 элементов, то отображаем последние четыре каталога, иначе отображаем полный путь к текущему каталогу (~/.config/awesome, ~/work/new-blogs), при этом домашний каталог заменяется на тильду,
%{\e<0;36m%} - циановая расцветка =),
`vcs_head` - отображаем текущую ревизию с помощью описанной функции (master, home-config и т.д.),
%{\e<0m%} - сбрасываем цвета,
%{\e<1;36m%} - включаем ярко-циановый цвет,
%# - отображаем процен если мы обычный пользователь (%), или решётку, если мы под рутом (#),
%{\e<0m%} - окончательный сброс цвета.
Кстати, заодно обнаружил лишний сброс цвета =)
Давно сам это дело не разбирал, как написал когда-то.
Надеюсь стало более понятно и менее страшно?
У локейта есть два больших минуса:
1) он ищет не по живой фс, а по индексам, то есть не по актуальным данным. Он хорош, когда нужен глобальный поиск по всей фс, в особенности по той её части, которая редко меняется (установленные пакеты, глобальные конфиги и мануалы-доки например), если нужен поиск по небольшой ветке каталогов и критична актуальность файлов (например при разработке ПО), то лучше find, т.к. он всегда акутален (не будешь же каждые две секунда запускать updatedb на каталоге, в котором всё меняется каждую секунду? А скорость поиска find'ом по такому малому дереву вполне себе огромна.
2) он не даёт такой гибности поиска, как find. Попробуй с помощью локейта исключить файлы по их mode'у. Или искать только симлинки. Или ещё скомбинировать несколько разных сложных фильтров. Без дополнительного find/grep-а не обойдёшься. Если нужен сложный поиск по множеству критериев, то опять же find лучше, locate разве что может сузить область такого поиска.
В общем это два разных инструмента и нельзя предпочесть один другому во всех случаях. Не будешь же ты забивать гвозди отвёрткой?
1) он ищет не по живой фс, а по индексам, то есть не по актуальным данным. Он хорош, когда нужен глобальный поиск по всей фс, в особенности по той её части, которая редко меняется (установленные пакеты, глобальные конфиги и мануалы-доки например), если нужен поиск по небольшой ветке каталогов и критична актуальность файлов (например при разработке ПО), то лучше find, т.к. он всегда акутален (не будешь же каждые две секунда запускать updatedb на каталоге, в котором всё меняется каждую секунду? А скорость поиска find'ом по такому малому дереву вполне себе огромна.
2) он не даёт такой гибности поиска, как find. Попробуй с помощью локейта исключить файлы по их mode'у. Или искать только симлинки. Или ещё скомбинировать несколько разных сложных фильтров. Без дополнительного find/grep-а не обойдёшься. Если нужен сложный поиск по множеству критериев, то опять же find лучше, locate разве что может сузить область такого поиска.
В общем это два разных инструмента и нельзя предпочесть один другому во всех случаях. Не будешь же ты забивать гвозди отвёрткой?
Дело привычки, наверное.
За то очень информативно: всегда видно кто я, где я, с какой консоли и в какой ревизии.
Собственно это скорее пример того, как можно писать функции в zsh и использовать их для расширения приглашения командной строки. А цвета — тут какждый сам за себя =)
За то очень информативно: всегда видно кто я, где я, с какой консоли и в какой ревизии.
Собственно это скорее пример того, как можно писать функции в zsh и использовать их для расширения приглашения командной строки. А цвета — тут какждый сам за себя =)
В последних версиях aptitude upgrade заменён на aptitude safe-upgrade.
Можно ещё делать aptitude full-upgrade, но тут нужно быть внимательным, т.к. 1) будет качать реально ВСЕ обновления, даже возможно не совсем стабильные, 2) так можно что-то случайно поломать =)
Можно ещё делать aptitude full-upgrade, но тут нужно быть внимательным, т.к. 1) будет качать реально ВСЕ обновления, даже возможно не совсем стабильные, 2) так можно что-то случайно поломать =)
Если блок реально физически битый, то всё лечение может быть только в том, чтобы пометить его как «плохой», чтоб он больше не использовался. В строй вернуть не получится =(