Друзья

если в слове хлеб сделать четыре ошибки...

Записки проperl - Пт, 05/11/2012 - 10:26
то получится слово пиво.br /a name=cutid1/abr /precode # setopt multibyte # touch пиво # print -l (#a4)хлеб пиво # /code/prebr /ulbr / licode#/code mdash; в скобках модификатор/libr / licode4/code mdash; количество шибок, которые можно совершить при поиске/libr //ulbr /pimg src=http://arto.homeunix.org/images/approximate-matching.gif //pbr /br /ps.precode# [[ mislpeld == (#a3)misspelled ]] print yes yes # [[ mislpeld == (#a2)misspelled ]] print yes #/code/prebr /br /a name=cutid1-end/a
Категории: Друзья

Генерация имен хостов для ssh-дополнений

Записки проperl - Чт, 05/10/2012 - 10:19
Перечитал zshexpn, приемы для работы с файлами.br /br /В zsh можно сконфигурировать стиль для дополнений ssh, который по tab генерирует дополнения для, например, имени хоста. Логично брать их из code~/.ssh/config/code и code~/.ssh/known_hosts/code.br /a name=cutid1/abr /Форматы пересказывать не буду, их можно посмотрать по манам.br /1. Разбор ~/.ssh/config, будем брать имена из строки codeHost name/code:br /code${${${(@M)${(f)$(lt; ~/.ssh/config)}:#Host[[:space:]]#[[:alnum:]]#}}##* }/codebr /br /Легенда:br /ulbr / licode$(lt; ~/.ssh/config)/code читаем файл, результат mdash; массив строк, разбитых по пробелам/libr / licode$(lt; ~/.ssh/config)/code, результат mdash; файл, как он есть, без разбивки/libr / licode${(f)$(lt; ~/.ssh/config)}/code mdash; разбиваем контент по строкам, получаем массив строк/libr / licode${(@M)${(f)$(lt; ~/.ssh/config)}:#Host[[:space:]]#[[:alnum:]]#}/code mdash; удаляем все, что не попадает под выражение codeHost[[:space:]]#[[:alnum:]]#/code:br / ulbr / liВ zsh можно использовать классы символов, как code[:space:]/code класс пробелов и code[:alnum:]/code класс алфавитно-цифровых символов. Символ code#/code после класса обозначает повторение, для pcre это совпадает с codeHost\s+\w+/code/libr / licode:#/code удалят из массива совпадающие с паттерном элементы, флаг codeM/code меняет действие на противоположное, удаляет не совпадающие элементы/libr / liФлаг code@/code показывает, что имеем дело с массивом.br / /ulbr / pРезультат:precode # print -l ${${(M@)${(f)$(lt; ~/.ssh/config)}:#Host[[:space:]]#[[:alnum:]]#}} Host roof Host arto Host book Host sut Host ftp2 ... /pre/code/p/libr / licode${${${(M@)${(f)$(lt; ~/.ssh/config)}:#Host[[:space:]]#[[:alnum:]]#}}##* }/code mdash; удаляет в каждом элементе массива подстроку сначала и до последнего пробела, оставляя имя хоста:pcodepre # print -l ${${${(M@)${(f)$(lt; ~/.ssh/config)}:#Host[[:space:]]#[[:alnum:]]#}}##* } roof arto book sut ftp2 ... /pre/code/p/libr /br //ulbr /br /Для perl это будет выглядеть так: codeperl -lne m#Host\s+(\w+)# print $1 ~/.ssh/config/code, но порождается один дополнительный процесс.br /br /2. Разбор code~/.ssh/known_hosts/code, хотим брать нормальные имена хостов, ip-адреса и адреса с портом (code[host]:port/code) брать не будем:br /pprecode# print -l ${${${${(f)$(lt; ~/.ssh/known_hosts)}%%[ ,]*}:#\[*\]:*}:#[0-9]#.[0-9]#.[0-9]#.[0-9]#} roof.***.ru book.***.ru cube.***.ru ftp2.***.ru .../code/pre/pbr /Легенда:br /ulbr / licode$(lt; ~/.ssh/known_hosts)/code mdash; читаем весь файл, с разбивкой по пробелам/libr / licode$(lt; ~/.ssh/known_hosts)/code mdash; весь файл без разбивок/libr / licode${(f)$(lt; ~/.ssh/known_hosts)}/code mdash; разбиваем контент по строчкам/libr / licode${(f)$(lt; ~/.ssh/known_hosts)}/code mdash; экранируем каждый элемент массива (там могут попадаться спецсимволы, например code[/code и code]/code), результат:pprecode# print -l ${(f)$(lt; ~/.ssh/known_hosts)} roof.***.ru,195.***.130 ssh-dss AAAAB3NzaC1kc3MAAAC... book.***.ru,195.***.246 ssh-rsa AAAAB3NzaC1yc2EAAAA... .../code/pre/p/libr / licode${${(f)$(lt; ~/.ssh/known_hosts)}%%[ ,]*}/code mdash; удаляем теги и ключи, всё после пробела или запятой (code%%[ ,]*/code)/libr / licode${${${(f)$(lt; ~/.ssh/known_hosts)}%%[ ,]*}:#\[*\]:*}/code mdash; удаляем (code#:/code) все элементы массива, совпадающие с паттерном (code\[*\]:*/code, например code[www.abc.ru]:22222/code)/libr / licode${${${${(f)$(lt; ~/.ssh/known_hosts)}%%[ ,]*}:#\[*\]:*}:#[0-9]#.[0-9]#.[0-9]#.[0-9]#}/code mdash; удляем элементы массива (code#:/code) совпадающие с ip-адресом (code[0-9]#.[0-9]#.[0-9]#.[0-9]#/code)/libr //ulbr /br /Теперь можно проверить:br /precode # zstyle :completion:*:(ssh|scp|sftp):* hosts ${(o)${${${(f)$(lt; ~/.ssh/known_hosts)}%%[ ,]*}:#\[*\]:*}:#[0-9]#.[0-9]#.[0-9]#.[0-9]#} # ssh lt;TABgt; roof.***.ru book.***.ru cube.***.ru ftp2.***.ru ... /code/prebr /pimg src=http://arto.homeunix.org/images/zshell-mini.png //pbr /a name=cutid1-end/a
Категории: Друзья

JFYI

Записки проperl - Ср, 05/09/2012 - 11:28
В zsh появился новый флаг квалификации глобов mdash; codeF/code, непустой каталог.br /Т. е. теперь можно удалить все пустые каталоги одной командой:br /precode zsh# rmdir *(/N^F) /code/prebr /Легенда:br /ul compact=1br / licode*/code mdash; все файлы в текущем каталоге/libr / licode//code mdash; из них все каталоги/libr / licodeN/code mdash; если ничего не встретилось, то не генерим ошибку/libr / licode^F/code mdash; из оставшегося выбираем только emпустые/em каталоги/libr //ulbr /Удобно.br /Время перечитать внимательно zshexpn и zshcontrib :).br /br /img src=http://arto.homeunix.org/images/from-bash-to-zshell.png /
Категории: Друзья

Яндекс почта

Записки проperl - Ср, 05/02/2012 - 20:17
precode # for i in {1..100}; do HEAD http://mailstatic.yandex.net/neo/1.12.9/v2/page/common.css | \ head -1; done | grep 404 | wc -l; done 20 # /code/pre
Категории: Друзья

О насущном.

rmrfchik - Ср, 04/25/2012 - 22:30
p style=margin-bottom: 0cmОдно из основных понятий в квантовой механике это понятие неопределённости физической величины ndash; скорости, положения, поляризации и проч. Чем точнее мы знаем одну величину, тем менее точно знаем другие, связанные с ней (например, со скоростью связано положение)./pp style=margin-bottom: 0cmЭйнштейн попытался laquo;хакнутьraquo; это утверждение предложив косвенные измерения ndash; после взаимодействия двух частиц, можно померить положение оригинальной частицы, а скорость вычислить по характеристикам другой частицы (закон сохранения импульса никто не отменял)./pp style=margin-bottom: 0cmНа это квантовые физики возразили, что после взаимодействия частицы окажутся laquo;запутаннымиraquo; (span lang=en-USentangled) /spanspan lang=ru-RUи измерения одной частицы окажут непосредственное моментальное влияние на другую независимо от расстояния между ними./span/pp style=margin-bottom: 0cmspan lang=ru-RUВажно отметить, что результаты измерения второй частицы зависят от того, измеряли ли мы первую./span/pp style=margin-bottom: 0cmspan lang=ru-RUДругая интересная особенность это способность частицы вести себя как волна и, классический пример, интерферировать сама с собой. Эксперимент состоит из двух щелей и экрана. Если выпускать по одной частице за раз, то она будет проходить через два экрана одновременно(!) и образовывать на экране интерференционную картину (характерные полосы). Если мы попробуем измерить её положение (узнать, через какую щель проходила частица), то эффект пропадает./span/pp style=margin-bottom: 0cmspan lang=ru-RUБыл предложен интересный эксперимент ndash; laquo;эксперимент с отложенным выборомraquo; (/spanspan lang=en-USWheeler#39;s /spanspan lang=ru-RUdelayed choice experiment/spanspan lang=en-US)/spanspan lang=ru-RU. Он заключается в том, что мы /spanspan lang=ru-RUiсначала/i/spanspan lang=ru-RUspan style=font-style: normal регистрируем картинку на экране, а /span/spanspan lang=ru-RUiпотом/i/spanspan lang=ru-RUspan style=font-style: normal принимаем решение о том, определяем мы или нет, через какую щель прошла частица. Теоретические предсказания говорят, что результат в прошлом (картинка на экране) будет зависеть от измерений в будущем (факт определения пути)./span/span/pp style=margin-bottom: 0cmspan lang=ru-RUВ статье (a href=http://arstechnica.com/science/news/2012/04/decision-to-entangle-effects-results-of-measurements-taken-beforehand.ars rel=nofollowhttp://arstechnica.com/science/news/2012/04/decision-to-entangle-effects-results-of-measurements-taken-beforehand.ars/a) приводится вариант эксперимента с запутыванием фотонов и измерением их поляризации. Эксперимент подтверждает, что события в будущем влияют на события в прошлом./span/pp style=margin-bottom: 0cmspan lang=ru-RUТакие дела./span/p
Категории: Друзья

p align=centera href=http://достало-емс

Coredump - Пт, 03/30/2012 - 16:36
p align=centera href=http://достало-емс.рф/ target=_blank rel=nofollowimg border=0 src=http://достало-емс.рф/files/descr_img3.gif/a/pbr /p align=centera href=http://достало-емс.рф/ target=_blank rel=nofollowimg border=0 src=http://достало-емс.рф/files/descr_img4.gif/a/p
Категории: Друзья

Нахождение простых чисел

Записки проperl - Ср, 02/15/2012 - 00:42
решето эратосфена (числа не больше данного)br /a name=cutid1/abr /precode # perl -le @a = ( 2..$ARGV[0] ); while (@a) { my $a = shift @a; $a ? print $a : next; for (my $i = $a-1; $i lt; $#a+1; $i += $a) { $a[$i] = 0 } } 100 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 # /code/prebr /a name=cutid1-end/abr /br /Прямое вычисление (количество чисел):br /a name=cutid2/abr /precode # perl -le @a = ( $n = 2 ); n: while ($n++, $#a lt; $ARGV[0]-1) { foreach (@a) { next n if ($n%$_ == 0) } push @a, $n } END{ print join \n, @a } 25 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 # /code/prebr /a name=cutid2-end/abr /br /Ну и сравнение производительности:br /Решето:br /codeReal: 0.35s User: 0.32s System: 0.01s Percent: 97%% Cmd: perl -le 102400/codebr /Прямое вычисление:br /codeReal: 17.65s User: 17.56s System: 0.00s Percent: 99%% Cmd: perl -le 9805/codebr /br /img src=http://arto.homeunix.org/images/resheto-eratosfena.jpg /
Категории: Друзья

span style=color: rgb(0, 0, 0); font

Морковка - Вс, 02/12/2012 - 14:50
span style=color: rgb(0, 0, 0); font-family: tahoma, arial, verdana, sans-serif, #39;Lucida Sans#39;; font-size: 11px; line-height: normal; text-align: left; background-color: rgb(255, 255, 255); СТОП я где-то видел все это/spanbr style=color: rgb(0, 0, 0); font-family: tahoma, arial, verdana, sans-serif, #39;Lucida Sans#39;; font-size: 11px; line-height: normal; text-align: left; background-color: rgb(255, 255, 255); /span style=color: rgb(0, 0, 0); font-family: tahoma, arial, verdana, sans-serif, #39;Lucida Sans#39;; font-size: 11px; line-height: normal; text-align: left; background-color: rgb(255, 255, 255); В твоих влажных глазах и обрывках газетных/spanbr style=color: rgb(0, 0, 0); font-family: tahoma, arial, verdana, sans-serif, #39;Lucida Sans#39;; font-size: 11px; line-height: normal; text-align: left; background-color: rgb(255, 255, 255); /span style=color: rgb(0, 0, 0); font-family: tahoma, arial, verdana, sans-serif, #39;Lucida Sans#39;; font-size: 11px; line-height: normal; text-align: left; background-color: rgb(255, 255, 255); В лучах дискоболов, в отвратных парадных/spanbr style=color: rgb(0, 0, 0); font-family: tahoma, arial, verdana, sans-serif, #39;Lucida Sans#39;; font-size: 11px; line-height: normal; text-align: left; background-color: rgb(255, 255, 255); /span style=color: rgb(0, 0, 0); font-family: tahoma, arial, verdana, sans-serif, #39;Lucida Sans#39;; font-size: 11px; line-height: normal; text-align: left; background-color: rgb(255, 255, 255); В залипнувшем небе весенних разрядов/spanbr style=color: rgb(0, 0, 0); font-family: tahoma, arial, verdana, sans-serif, #39;Lucida Sans#39;; font-size: 11px; line-height: normal; text-align: left; background-color: rgb(255, 255, 255); /span style=color: rgb(0, 0, 0); font-family: tahoma, arial, verdana, sans-serif, #39;Lucida Sans#39;; font-size: 11px; line-height: normal; text-align: left; background-color: rgb(255, 255, 255); СТОП так мгновенья взрывают планеты/spanbr style=color: rgb(0, 0, 0); font-family: tahoma, arial, verdana, sans-serif, #39;Lucida Sans#39;; font-size: 11px; line-height: normal; text-align: left; background-color: rgb(255, 255, 255); /span style=color: rgb(0, 0, 0); font-family: tahoma, arial, verdana, sans-serif, #39;Lucida Sans#39;; font-size: 11px; line-height: normal; text-align: left; background-color: rgb(255, 255, 255); Так солнце блестящей фальшивой монетой/spanbr style=color: rgb(0, 0, 0); font-family: tahoma, arial, verdana, sans-serif, #39;Lucida Sans#39;; font-size: 11px; line-height: normal; text-align: left; background-color: rgb(255, 255, 255); /span style=color: rgb(0, 0, 0); font-family: tahoma, arial, verdana, sans-serif, #39;Lucida Sans#39;; font-size: 11px; line-height: normal; text-align: left; background-color: rgb(255, 255, 255); Следит за тобой каждый день каждый вечер/spanbr style=color: rgb(0, 0, 0); font-family: tahoma, arial, verdana, sans-serif, #39;Lucida Sans#39;; font-size: 11px; line-height: normal; text-align: left; background-color: rgb(255, 255, 255); /span style=color: rgb(0, 0, 0); font-family: tahoma, arial, verdana, sans-serif, #39;Lucida Sans#39;; font-size: 11px; line-height: normal; text-align: left; background-color: rgb(255, 255, 255); Срываясь в копилку тысячелетий/spanbr style=color: rgb(0, 0, 0); font-family: tahoma, arial, verdana, sans-serif, #39;Lucida Sans#39;; font-size: 11px; line-height: normal; text-align: left; background-color: rgb(255, 255, 255); /span style=color: rgb(0, 0, 0); font-family: tahoma, arial, verdana, sans-serif, #39;Lucida Sans#39;; font-size: 11px; line-height: normal; text-align: left; background-color: rgb(255, 255, 255); СТОП чаще пульс от неизбежной разлуки/spanbr style=color: rgb(0, 0, 0); font-family: tahoma, arial, verdana, sans-serif, #39;Lucida Sans#39;; font-size: 11px; line-height: normal; text-align: left; background-color: rgb(255, 255, 255); /span style=color: rgb(0, 0, 0); font-family: tahoma, arial, verdana, sans-serif, #39;Lucida Sans#39;; font-size: 11px; line-height: normal; text-align: left; background-color: rgb(255, 255, 255); Звуки пауза звуки звуки звуки/spanbr style=color: rgb(0, 0, 0); font-family: tahoma, arial, verdana, sans-serif, #39;Lucida Sans#39;; font-size: 11px; line-height: normal; text-align: left; background-color: rgb(255, 255, 255); /span style=color: rgb(0, 0, 0); font-family: tahoma, arial, verdana, sans-serif, #39;Lucida Sans#39;; font-size: 11px; line-height: normal; text-align: left; background-color: rgb(255, 255, 255); ШЛЮХИ как вы все заебали/spanbr style=color: rgb(0, 0, 0); font-family: tahoma, arial, verdana, sans-serif, #39;Lucida Sans#39;; font-size: 11px; line-height: normal; text-align: left; background-color: rgb(255, 255, 255); /span style=color: rgb(0, 0, 0); font-family: tahoma, arial, verdana, sans-serif, #39;Lucida Sans#39;; font-size: 11px; line-height: normal; text-align: left; background-color: rgb(255, 255, 255); Люди грязные шлюхи и бляди/spanbr style=color: rgb(0, 0, 0); font-family: tahoma, arial, verdana, sans-serif, #39;Lucida Sans#39;; font-size: 11px; line-height: normal; text-align: left; background-color: rgb(255, 255, 255); /span style=color: rgb(0, 0, 0); font-family: tahoma, arial, verdana, sans-serif, #39;Lucida Sans#39;; font-size: 11px; line-height: normal; text-align: left; background-color: rgb(255, 255, 255); СТОП я где-то видел все это/spanbr style=color: rgb(0, 0, 0); font-family: tahoma, arial, verdana, sans-serif, #39;Lucida Sans#39;; font-size: 11px; line-height: normal; text-align: left; background-color: rgb(255, 255, 255); /span style=color: rgb(0, 0, 0); font-family: tahoma, arial, verdana, sans-serif, #39;Lucida Sans#39;; font-size: 11px; line-height: normal; text-align: left; background-color: rgb(255, 255, 255); СТОП так мгновенья взрывают планеты/spanbr style=color: rgb(0, 0, 0); font-family: tahoma, arial, verdana, sans-serif, #39;Lucida Sans#39;; font-size: 11px; line-height: normal; text-align: left; background-color: rgb(255, 255, 255); /span style=color: rgb(0, 0, 0); font-family: tahoma, arial, verdana, sans-serif, #39;Lucida Sans#39;; font-size: 11px; line-height: normal; text-align: left; background-color: rgb(255, 255, 255); СТОП чаще пульс от неизбежной разлуки/spanbr style=color: rgb(0, 0, 0); font-family: tahoma, arial, verdana, sans-serif, #39;Lucida Sans#39;; font-size: 11px; line-height: normal; text-align: left; background-color: rgb(255, 255, 255); /span style=color: rgb(0, 0, 0); font-family: tahoma, arial, verdana, sans-serif, #39;Lucida Sans#39;; font-size: 11px; line-height: normal; text-align: left; background-color: rgb(255, 255, 255); Давай же сука возьми себя в руки/spanbr /
Категории: Друзья

Вопрос

Flying fish (Хельга) - Чт, 02/09/2012 - 06:14
А вот может мне кто-нибудь объяснить, почему я уже который месяц не могу отправлять комменты в ЖЖ используя сайт ЖЖ на своем лаптопе???? Its pissing me off!!!! Могу отправлять комменты из программки на iPad... Блин, фигня какая-то :(br /br /Ok... Попробую с вами поделиться видео, от которого балдею уже пару месяцев :)br /br /lj-embed id=27 /br /br /Подсели мы конкретно на Джефа :) Очень, ОЧЕНЬ рекомендую :)br /br /И еще один:br /br /lj-embed id=28 /
Категории: Друзья

У нас был мелкий траблешутинг. Меня поп

Coredump - Ср, 02/01/2012 - 17:31
У нас был мелкий траблешутинг. Меня попросили вывод команды, но у меня всё вдруг заработало...... ну я и ответил как есть....br /В ответ пришёл такой ответ:br /br /Первый, первый, вас не понял, повторитеbr /Я не выдел нигде, чтобы при команде ls -la система выдавала ответ Заебись
Категории: Друзья

Задачка

Записки проperl - Ср, 01/25/2012 - 11:26
citeесть 2 бесконечно больших текстовых файла отсортированных лексикографически.br /Нужно найти разницу и записать в файлы./citebr /a name=cutid1/abr /precode open A, shift or die; open B, shift or die; my $h = 0; while (!(eof(A) eof(B)) ) { ( $a, $b ) = $h == 0 ? ( scalar lt;Agt;, scalar lt;Bgt; ) : $h == 1 ? ( $a, scalar lt;Bgt; ) : ( scalar lt;Agt;, $b ); print lt; $a and next unless (defined $b); print gt; $b and next unless (defined $a); $h = $a cmp $b or next; print $h == 1 ? gt; $b : lt; $a; } /code/prebr /в принципе, можно сократить 2 строчки, но было лень разбираться с code$h = $a cmp $b or next;/code...br /img src=http://arto.homeunix.org/cgi/track.pl?diff /br /a name=cutid1-end/a
Категории: Друзья

img alt= height=480 src=http://pics

Морковка - Пнд, 12/12/2011 - 11:39
img alt= height=480 src=http://pics.livejournal.com/mad_fisher/pic/0011bpkg style=border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; width=640 /br /nbsp;окто-мама передает вам всем пламенные осьминожьи приветы)
Категории: Друзья

Чт, 01/01/1970 - 03:00
RSS-материал