Tag: perl

linux @ 18 Октябрь 2008, “2 Comments”
Swiftfox - это экстремально скомпилированный Firefox для Linux, он оптимизирован под Ваш процессор и работает заметно быстрее. Единственное что не заработало - русификация. Чёрт с ней.
Больше всего меня порадовала изменившаяся компоновка меню. Насколько я понимаю - она теперь повторяет меню Firefox в Windows. Скорость работы действительно выше, у меня Swiftfox стартовал примерно на 5 секунд быстрее чем Firefox.
Проблем с совместимостью плагинов нет, вроде как.

P.S. Движок блога завис, не могу решить, как сделать возможность добавления комментариев для статичных, генерируемых на стороне страниц.
Есть два варианта, и оба мне не нравятся:
1. Комментарии отправлять на почту, откуда робот будет их забирать и добавлять в базу.
2. Комментарии загружать либо в sqlite либо в небольшую DBM базу данных, и потом как то синхронизировать с локальной машиной.
Может кто предложит идею, как это можно реализовать?

P.P.S. С понедельника ухожу в отпуск. Ура. 2 недели можно спать каждую ночь :) Не удастся к сожалению - курсовик по электродинамике и две контрольные.
linux @ 11 Сентябрь 2008, “6 Comments”
Сегодня ночью задался вопросом, можно ли делать скриншоты и при этом их одновременно загружать в сеть, на свой сервер.
Обыскал сеть, наткунлся на скрипт у Gluek и на его основе и скрипта генерации паролей для того чтобы каждой картинке выдавать уникальное имя.

Вот собственно два скрипта, однако чтобы с ними работать нужно будет поставить два пакета:
sudo aptitude install xclip scrot


pwdgen
#!/usr/bin/perl
chomp($length=8);
$length=~s/\D*//g;
$length||='8';
srand();
@letters=('a'..'z','A'..'Z',0..9,'#','*','_','-','+','=');
for (1..$length){($pass.=$letters[rand(@letters)])};
print "\033[1;31m$pass\033[0;39m\n";


ftpshot
#!/bin/bash
name=`pwdgen | md5sum | awk '{print $1}'`
file=$name.png
scrot $file -e 'mv $f /home/lib/shots/'
url="http://img.librarian.spb.ru/$file"
echo "$url" | xclip -i -l 1
scp /home/lib/shots/$file user@host:/path/to/public_html

В принципе можно поступать как в скрипте Gluek - копировать в tmp, но я предпочитаю данные сохранять.
Комментарии по тексту скриптов:
chomp($length=8);
Тут можно задать длину случайно сгенерированной строки.
name=`pwdgen | md5sum | awk '{print $1}'`
Собственно формируем имя для скрипта, точнее md5 хэш для случайного имени.
scrot $file -e 'mv $f /home/lib/shots/'
Делаем скриншот и сохраняем его в директорию.
url="http://img.librarian.spb.ru/$file"
Так у меня выглядит адрес, куда закачиваются картинки.
echo "$url" | xclip -i -l 1
Собствено копируем в буфер обмена ссылку, которую можно будет вставить нажатием средней клавиши мышки, причём только один раз(опционально).
scp /home/lib/shots/$file user@host:/path/to/public_html
Копируем файл из директории где лежит скриншот на удалённый хост. Внимание, для того, чтобы можно было использовать скрипт в Fluxbox необходимо настроить на удалённом хосте авторизацию по ключу. Почитать про это можно на opennet

Также необходимо скопировать скрипты в /usr/bin тогда не будет необходимости писать путь к ним.

Итак, приступим к главному - добавлению строки в ~/.fluxbox/keys:
None Print :Exec /usr/bin/ftpshot
Перезапускаем Fluxbox - жмём PrintScreen, получаем:
http://img.librarian.spb.ru/c0294556bbae2c0f100e9771891c696d.png

P.S. Можно дописать пару строчек и тогда можно будет сделать скрипт, который бы выдавал данные для вставки на форуме, например. В том числе и с preview, но тут нужно применять ImageMagick.

linux @ 27 Июль 2008, “4 Comments”
Сегодня сходил, забрал по пути на работу две книжки которые примерно неделю назад заказал.
Первая книга которую давно хотел:
Евгений Балдин "Компьютерная типография в LATEX"

[caption id="" align="aligncenter" width="200" caption="Компьютерная типография LATEX"]Компьютерная типография LATEX[/caption]

После краткого ознакомления с ней понял что в LATEX я вообще ничего не знаю :)
В книжке подробно описывается методика работы с TEX, в том числе и методики работы с TEX для математиков, физиков, химиков и биологов. Отдельный раздел посвящён работе с ТЕХ для всяких гуманитариев :)
В общем, если Вам нужно будет сверстать прилично выглядящий документ - покупайте и пользуйтесь!

Вторая книжка: "Основные команды Linux. Карманный справочник." Дэниэла Баррета.
[caption id="" align="aligncenter" width="200" caption="Основные команды Linux"]Основные команды Linux[/caption]
Книжка в общем то полезная, если Вы остались с Linux один на один и английского особо не знаете.
По большому счёту эта книжка лишь краткий перевод man'ов на русский язык.

Есть ещё пара книг, которые я хочу купить в ближайшее время(я их уже читал в электронном варианте, и хочу иметь в бумажном):
Camel Book.Программирование на Perl
Книга очень приятная, читать приятно. А после прочтения приятно программировать на Perl.
Perl Cookbook. Perl. Сборник рецептов. Для профессионалов
В этой книге просто описаны варианты "рецептов" программирования, то есть здесь собраны примеры кода и объяснения почему почему этот код является наиболее оптимальным для Perl. Хорошая штука, в общем.
linux @ 19 Июль 2008, Обсудить
Существует древний сайт: 99 Bottles of Beer, на котором программисты мира выводят на любимых языках различными извращёнными методами, используя особенности языка песенку.
Текст песенки можно почитать на их сайте.
Больше всего мне понравился текст песенки в Perl:
    ''=~(        '(?{'        .('`'        |'%')        .('['        ^'-')
.('`' |'!') .('`' |',') .'"'. '\\$'
.'==' .('[' ^'+') .('`' |'/') .('['
^'+') .'||' .(';' &'=') .(';' &'=')
.';-' .'-'. '\\$' .'=;' .('[' ^'(')
.('[' ^'.') .('`' |'"') .('!' ^'+')
.'_\\{' .'(\\$' .';=('. '\\$=|' ."\|".( '`'^'.'
).(('`')| '/').').' .'\\"'.+( '{'^'['). ('`'|'"') .('`'|'/'
).('['^'/') .('['^'/'). ('`'|',').( '`'|('%')). '\\".\\"'.( '['^('(')).
'\\"'.('['^ '#').'!!--' .'\\$=.\\"' .('{'^'['). ('`'|'/').( '`'|"\&").(
'{'^"\[").( '`'|"\"").( '`'|"\%").( '`'|"\%").( '['^(')')). '\\").\\"'.
('{'^'[').( '`'|"\/").( '`'|"\.").( '{'^"\[").( '['^"\/").( '`'|"\(").(
'`'|"\%").( '{'^"\[").( '['^"\,").( '`'|"\!").( '`'|"\,").( '`'|(',')).
'\\"\\}'.+( '['^"\+").( '['^"\)").( '`'|"\)").( '`'|"\.").( '['^('/')).
'+_,\\",'.( '{'^('[')). ('\\$;!').( '!'^"\+").( '{'^"\/").( '`'|"\!").(
'`'|"\+").( '`'|"\%").( '{'^"\[").( '`'|"\/").( '`'|"\.").( '`'|"\%").(
'{'^"\[").( '`'|"\$").( '`'|"\/").( '['^"\,").( '`'|('.')). ','.(('{')^
'[').("\["^ '+').("\`"| '!').("\["^ '(').("\["^ '(').("\{"^ '[').("\`"|
')').("\["^ '/').("\{"^ '[').("\`"| '!').("\["^ ')').("\`"| '/').("\["^
'.').("\`"| '.').("\`"| '$')."\,".( '!'^('+')). '\\",_,\\"' .'!'.("\!"^
'+').("\!"^ '+').'\\"'. ('['^',').( '`'|"\(").( '`'|"\)").( '`'|"\,").(
'`'|('%')). '++\\$="})' );$:=('.')^ '~';$~='@'| '(';$^=')'^ '[';$/='`';

Просто сохраните его на своей машине с именем 99bottles.pl и запустите:
perl 99bottles.pl
В общем - смотрите, это интересно.
← + Ctrl + →