<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>СетевойГибитобой</title>
	<atom:link href="http://www.dimio.org/category/seo/xitrosti/feed" rel="self" type="application/rss+xml" />
	<link>http://www.dimio.org</link>
	<description>Понемногу и обо всем, что приходит в голову или кажется интересным. Личный опыт и наработки. Linux, perl, AutoCAD, интернет и заработок в нём, туризм, путешествия и прочее.</description>
	<lastBuildDate>Mon, 06 Feb 2012 15:22:47 +0000</lastBuildDate>
	<language>ru</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Знакомство с компьютерным форумом IT-talk</title>
		<link>http://www.dimio.org/znakomstvo-s-kompyuternym-forumom-it-talk.html</link>
		<comments>http://www.dimio.org/znakomstvo-s-kompyuternym-forumom-it-talk.html#comments</comments>
		<pubDate>Mon, 06 Feb 2012 15:21:26 +0000</pubDate>
		<dc:creator>dimio</dc:creator>
				<category><![CDATA[Интернет]]></category>
		<category><![CDATA[Новости]]></category>
		<category><![CDATA[it]]></category>
		<category><![CDATA[программинг]]></category>
		<category><![CDATA[форум]]></category>

		<guid isPermaLink="false">http://www.dimio.org/?p=605</guid>
		<description><![CDATA[Года полтора назад я писал заметку про анонимайзеры &#8211; Анонимайзер как замена прокси. Проверка анонимайзеров на валидность, посвященную использованию публичных анонимайзеров вместо &#8220;классических&#8221; прокси. Поднять эту тему я решил после знакомства с публикацией Еще немного про Google Hack, размещенной в блоге Александра &#8220;afiskon&#8221;. Собственно именно с неё и началось моё знакомство с его блогом, я [...]]]></description>
			<content:encoded><![CDATA[<p>Года полтора назад я писал заметку про анонимайзеры &#8211; <a href="http://www.dimio.org/anonimajzer-kak-zamena-proksi-proverka-anonimajzerov-na-validnost.html"><strong>Анонимайзер как замена прокси. Проверка анонимайзеров на валидность</strong></a>, посвященную использованию публичных анонимайзеров вместо &#8220;классических&#8221; прокси. Поднять эту тему я решил после знакомства с публикацией <a href="http://eax.me/google-hack/" ><strong>Еще немного про Google Hack</strong></a>, размещенной в блоге Александра &#8220;afiskon&#8221;. Собственно именно с неё и началось моё знакомство с его блогом, я подписался на <a href="http://www.dimio.org/rss-wordpress-kak-zapretit-indeksaciyu-ssylok-v-vidzhete.html">RSS-канал</a> и с тех пор регулярно его читаю.</p>
<p>Не так давно выяснил, что есть у Александра и свой форум на компьютерную тематику &#8211; <a href="http://it-talk.org/" >IT Talk</a> &#8211; который сейчас переживает второе рождение после объединения с security-teams.net. Процитирую описание тематитки с самого форума: &#8220;Форум о программировании, операционных системах, безопасности, сайтостроении, железе, девайсах, сетях и тп&#8221;.<br />
<span id="more-605"></span></p>
<p>Из всего вышеперечисленного я пролистал раздел о программировании (как ни странно &#8211; отдельного раздела по Perl не нашел, хотя Александр довольно тесно с ним связан), ветку с <noindex><a rel="nofollow" target="_blank" href="http://www.dimio.org/e3f466/URBFQw1KSV1HSRJWXlMaWxEGTlZZQhNcCgEaWRcJCA==/">архивом исходников различных скриптов</a></noindex> (сюда однозначно рекомендую заглянуть до начала изобретения разнообразных велосипедов) и раздел, посвященный <noindex><a rel="nofollow" target="_blank" href="http://www.dimio.org/e3f466/URBFQw1KSV1HSRJWXlMaWxEGTlZZQhNcCQEaWRcJCA==/">созданию, раскрутке и монетизации сайтов</a></noindex> (в отличае от раскрученных форумов веб-мастеров здесь весьма доброжелательная атмосфера в общении, можно заглядывать за советом по продвижению сайта. И касаясь тематики SEO-спама &#8211; ссылки в профилях закрыты от индексации <img src='http://www.dimio.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ).</p>
<p>Судя по времени отправления сообщений &#8211; форум достаточно живой, отвечают часто. Понравился шаблон оформления &#8211; глаз не напрягает, страницы грузятся быстро, нет буйства красок (вспомнил Античат и вздрогнул). Подводя итог &#8211; если возникла потребность в живом, но не слишком перегруженном модерацией и строгими правилами форуме, есть смысл познакомиться с <a href="http://it-talk.org/" >компьютерным форумом  IT Talk</a> поближе!</p>
<p>P.S. Обзор форума я решил написать по двум причинам &#8211; во-первых, мне интересно читать блог eax.me, а во-вторых &#8211; кризис тем для заметок заставляет радоваться любому подходящему поводу написать что-то полезное. Not for money, just like IT Talk <img src='http://www.dimio.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

	Метки:<a href="http://www.dimio.org/tag/it" title="it" rel="tag nofollow">it</a>, <a href="http://www.dimio.org/tag/internet" title="Интернет" rel="tag nofollow">Интернет</a>, <a href="http://www.dimio.org/tag/programmirovanie" title="программинг" rel="tag nofollow">программинг</a>, <a href="http://www.dimio.org/tag/forum" title="форум" rel="tag nofollow">форум</a><br />

	<h4>Еще на похожие темы:</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.dimio.org/anonimajzer-kak-zamena-proksi-proverka-anonimajzerov-na-validnost.html" title="Анонимайзер как замена прокси. Проверка анонимайзеров на валидность (27/08/2010)">Анонимайзер как замена прокси. Проверка анонимайзеров на валидность</a></li>
	<li><a href="http://www.dimio.org/avtomaticheskaya-proverka-gotovnosti-zagranpasporta.html" title="Автоматическая проверка готовности загранпаспорта (03/02/2011)">Автоматическая проверка готовности загранпаспорта</a></li>
	<li><a href="http://www.dimio.org/mojolicious-znakomstvo-s-vebom-iz-korobki.html" title="Mojolicious &#8211; знакомство с &#8220;вебом из коробки&#8221; (22/04/2011)">Mojolicious &#8211; знакомство с &#8220;вебом из коробки&#8221;</a></li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.dimio.org/znakomstvo-s-kompyuternym-forumom-it-talk.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>D-Link DIR-620 и dd-wrt &#8211; подключение flash, установка программ, настройка NAS</title>
		<link>http://www.dimio.org/d-link-dir-620-i-dd-wrt-podklyuchenie-flash-ustanovka-programm-nastrojka-nas.html</link>
		<comments>http://www.dimio.org/d-link-dir-620-i-dd-wrt-podklyuchenie-flash-ustanovka-programm-nastrojka-nas.html#comments</comments>
		<pubDate>Sat, 24 Dec 2011 14:20:18 +0000</pubDate>
		<dc:creator>dimio</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Интернет]]></category>
		<category><![CDATA[Технократия]]></category>
		<category><![CDATA[ddwrt]]></category>
		<category><![CDATA[dir620]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[nas]]></category>
		<category><![CDATA[гаджет]]></category>

		<guid isPermaLink="false">http://www.dimio.org/?p=557</guid>
		<description><![CDATA[Итак, после установки на роутер DIR-620 прошивки dd-wrt, можно подключить к нему флешку или внешний диск по USB, установить нужные программы и получить помимо самого роутера &#8211; NAS с закачкой торрентов. Монтирование внешнего диска в dd-wrt Для начала нужно включить поддержку USB на роутере через веб-интерфейс: Services &#8211; USB &#8211; USB Support &#8211; Core USB [...]]]></description>
			<content:encoded><![CDATA[<p>Итак, после <a href="http://www.dimio.org/d-link-dir-620-i-dd-wrt-byudzhetnyj-nas-i-torrentokachalka.html">установки на роутер DIR-620 прошивки dd-wrt</a>, можно подключить к нему флешку или внешний диск по USB, установить нужные программы и получить помимо самого роутера &#8211; NAS с закачкой торрентов.</p>
<h3>Монтирование внешнего диска в dd-wrt</h3>
<p>Для начала нужно включить поддержку USB на роутере через веб-интерфейс: <em>Services &#8211; USB &#8211; USB Support &#8211; Core USB Support + USB Storage Support</em>. После подключения внешнего диска проверить успешность при помощи вызова <code class="codecolorer bash default"><span class="bash"><span style="color: #c20cb9; font-weight: bold;">dmesg</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> scsi</span></code>, где строки вида <code class="codecolorer text default"><span class="text">/dev/scsi/host2/bus0/target0/lun0: p1 p2</span></code> укажут на подключенный диск (в данном случае мой диск подключен к третьему порту USB-хаба &#8211; <strong>host2</strong> и имеет два раздела &#8211; <strong>p1 p2</strong>.<br />
<span id="more-557"></span></p>
<h4>Монтирование на прошивке с поддержкой файловых систем</h4>
<p>Поскольку при каждой загрузке роутера его состояние обнуляется до того, что штатно позволяет прошивка, монтирование USB-дисков, применение нужных настроек и запуск требуемых программ следует прописать в startup-скрипте (<em>Administration &#8211; Commands &#8211; Startup</em>) через веб-интерфейс:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:100%;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">switch reg w 90 10007f7f<br />
insmod jbd.ko<br />
insmod mbcache.ko<br />
insmod ext3.ko<br />
sleep 10<br />
mount -t ext3 -o noatime,nodiratime /dev/scsi/host0/bus0/target0/lun0/part1 /jffs<br />
mount -o bind /jffs/opt /opt<br />
mount -o bind /opt/etc/profile /etc/profile<br />
mount -t ext3 /dev/scsi/host1/bus0/target0/lun0/part1 /mnt<br />
/opt/bin/busybox swapon /mnt/routerswap.swp<br />
sleep 1<br />
/opt/bin/transmission-daemon -g /opt/etc/transmission</div></td></tr></tbody></table></div>
<p>О некоторых строках расскажу подробней сразу, другие рассмотрены дальше в заметке. Первая &#8211; исправляет ошибку невключения LAN-порта, возникующую в dd-wrt 17201. Вторая-четвертая &#8211; загрузка модулей для поддержки работы с файловыми системами, модули находятся в <em>/lib/modules/версия_ядра</em>, если прошивка без модулей поддержки ФС &#8211; см. ниже. Шестая и девятая строки отвечают за монтирование внешних дисков (флешки для установки софта и USB-HDD, выступающего в роли NAS). Седьмая &#8211; монтирование каталога с флешки в каталог ФС роутера, восьмая &#8211; замена штатного <em>/etc/profile</em> на измененный (см. ниже). Десятая &#8211; подключение своп-файла, создание которого подробно рассмотрено ниже. Последняя &#8211; запуск <em>transmission</em> с указанным каталогом в качестве рабочего (в частности там хранится файл настроек).</p>
<h4>Монтирование при отсутствии встроенной поддержки файловых систем</h4>
<p>Если установленная прошивка не имеет в комплекте модулей поддержки файловых систем &#8211; можно поступить следующим образом &#8211; записать поблочно <noindex><a rel="nofollow" target="_blank" href="http://www.dimio.org/e3f466/URBFQw1KSVxcCQMZWVlGWgYXAFwYUxweCQUFAVFWVAAWAkIdUB8=/">архив</a></noindex> с нужными модулями <a href="http://www.dimio.org/pamyatki-po-rabote-v-linux.html">при помощи dd</a> на <a href="http://www.dimio.org/nizkourovnevoe-formatirovanie-flash-pod-linux.html">отдельный раздел флешки</a> (достаточно раздела размером в 1 Мб) и прописать их распаковку и подгрузку при старте роутера, изменив соответствующим образом startup-скрипт (<noindex><a rel="nofollow" target="_blank" href="http://www.dimio.org/e3f466/URBFQw1KSUNEE0hTVhVDRhdPAl9bHxFYU1wbWA0AAU8XFFlDGCgJQV0QD1lVZ2FnIT4FQl9GA25PXEBZDBEQaFULUlJDAAJrXAoEWFNKUGsFEj5dWVQTXV1G/">подробная инструкция на английском</a></noindex>):</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:100%;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">mkdir /var/lib/fs<br />
cd /var/lib/fs<br />
tar -zxvf /dev/scsi/host0/bus0/target0/lun0/part2<br />
insmod jbd.ko<br />
insmod mbcache.ko<br />
insmod ext3.ko</div></div>
<p>После этого ext3 монтируется без проблем. Кстати поддержки ext4 я в dd-wrt не обнаружил (по крайней мере на их ftp модулей нет), обратная конвертация из ext3 в ext4 судя по всему невозможна &#8211; стоит учесть это заранее.</p>
<h3>Включение SWAP на роутере с dd-wrt</h3>
<p>Если установлена прошивка с поддержкой swap, то нужно выделить отдельный раздел под него на внешнем диске или создать своп-файл, как поступил я (можно воспользоваться Linux-машиной, можно установить расширенную версию <em>busybox</em> на роутер):</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:100%;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">dd if=/dev/zero of=/mnt/myswap.swp bs=1k count=16000<br />
/opt/bin/busybox mkswap /mnt/myswap.swp<br />
/opt/bin/busybox swapon /mnt/myswap.swp</div></div>
<p>где <strong>count=16000</strong> &#8211; 16 тысяч блоков размером по одному килобайту, т.е. размер своп-файла составит 16 мегабайт. Советую сделать не меньше 32-х мегабайт, при большом количестве закачек в <em>transmission</em> легко используется по 20-25 Мб подкачки.</p>
<h3>Установка программ в dd-wrt</h3>
<p>Для установки софта из репозиториев под dd-wrt применяются следующие команды:</p>
<ul>
<li><strong>ipkg-opt update</strong> &#8211; обновить список пакетов, доступных в репозитории;</li>
<li><strong>ipkg-opt upgrade</strong> &#8211; обновить установленные пакеты;</li>
<li><strong>ipkg-opt install</strong> &#8211; установить пакет;</li>
<li><strong>ipkg-opt remove</strong> &#8211; удалить пакет;</li>
<li><strong>ipkg list</strong> &#8211; показать список всех доступных пакетов.</li>
</ul>
<h3>Настройка NFS для доступа к NAS</h3>
<p>Из вариантов сетевого доступа к внешнему диску я выбрал доступ по NFS &#8211; samba медленней и сложней в настройке, большинство машин у меня дома &#8211; с Linux или Android, а кроме того &#8211; для Windows XP есть официальный NFS-клиент (точнее &#8211; клон mount), доступный на сайте Microsoft, а Vindows Vista и старше &#8211; поддерживают NFS изначально.<br />
Настройка NFS на роутере производится следующим образом &#8211; устанавливаем пакеты portmap (для динамического выделения портов) и unfs3 (NFS-демон). В созданные после установки файлы <strong>/opt/etc/init.d/S56unfsd</strong> и <strong>/opt/etc/init.d/S55portmap</strong> добавляем строку <code class="codecolorer text default"><span class="text">LD_LIBRARY_PATH=/opt/lib:${LD_LIBRARY_PATH}</span></code> &#8211; путь к дополнительным библиотекам на внешнем диске. Создаем файл настроек для NFS-демона <strong>/opt/etc/exports</strong>:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:100%;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">/mnt/точка_монтирования_внешнего_диска &nbsp; &nbsp; &nbsp; 192.168.0.1/255.255.255.0(rw,sync,no_subtree_check,no_root_squash)</div></div>
<p>Точку монтирования NAS-диска и маску подсети надо естественно изменить на свои. При перезагрузке роутера portmap и unfs будут стартовать автоматически.<br />
Затем я на <a href="http://www.dimio.org/kak-ya-xotel-menyat-noutbuk.html">ноутбуке</a> установил пакет <em>nfs-client</em>, после чего можно монтировать NAS:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:100%;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">mount -t nfs 192.168.0.1:/mnt /media/NAS</div></div>
<p>В каталог /mnt примонтирован на роутере внешний HDD. </p>
<h3>Небольшие настройки для удобства работы в ash</h3>
<p>Штатно в dd-wrt используется оболочка командной строки ash. Конечно можно установить из репозитория bash или любую другую и прописать ее в автозагрузку, но фактически возможностей ash более чем достаточно для роутера. Единственное реальное неудобство, которое возникло у меня при работе с ней &#8211; невозможность прописать свои алиасы в конфиге, поскольку при каждой загрузке роутера все системные файлы откатываются к исходному состоянию. Выход &#8211; монтировать поверх штатного конфига командной оболочки (<strong>/etc/profile</strong>) свой, расположенный на внешнем диске (например у меня &#8211; <strong>/opt/etc/profile</strong>)  и дополненный нужными опциями, дописав в startup скрипте такую строку:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:100%;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">mount -o bind /opt/etc/profile /etc/profile</div></div>
<p>Мой <strong>profile</strong> дополнен следующими командами:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:100%;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">alias vim='vim -u /opt/etc/vim/.vimrc'<br />
alias top='htop'<br />
alias transmission='/opt/bin/transmission-daemon -g /opt/etc/transmission'<br />
alias halt='/opt/sbin/shutdown'<br />
alias ll='ls -lh'<br />
alias la='ls -lha</div></div>
<p>Полезно сделать <em>shutdown-скрипт</em>, копирующий содержимое секции shutdown (<em>Administration &#8211; Commands &#8211; Shutdown</em>) из веб-интрефейса, которое выполняется при перезагрузке роутера. Скрипт будет точно также выгружать определенные процессы и отмонтировать внешние диски для последующего безопасного выключения роутера. Мой скрипт выглядит так:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:100%;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">killall transmission-daemon<br />
killall unfsd<br />
sleep 1<br />
/opt/bin/busybox swapoff /mnt/routerswap.swp<br />
umount /dev/scsi/host1/bus0/target0/lun0/part1</div></div>

	Метки:<a href="http://www.dimio.org/tag/ddwrt" title="ddwrt" rel="tag nofollow">ddwrt</a>, <a href="http://www.dimio.org/tag/dir620" title="dir620" rel="tag nofollow">dir620</a>, <a href="http://www.dimio.org/tag/how-to" title="how-to" rel="tag nofollow">how-to</a>, <a href="http://www.dimio.org/tag/nas" title="nas" rel="tag nofollow">nas</a>, <a href="http://www.dimio.org/tag/gadzhet" title="гаджет" rel="tag nofollow">гаджет</a><br />

	<h4>Еще на похожие темы:</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.dimio.org/d-link-dir-620-i-dd-wrt-byudzhetnyj-nas-i-torrentokachalka.html" title="D-Link DIR-620 и dd-wrt &#8211; бюджетный NAS и торрентокачалка (05/12/2011)">D-Link DIR-620 и dd-wrt &#8211; бюджетный NAS и торрентокачалка</a></li>
	<li><a href="http://www.dimio.org/pohodniy_istochnik_pitanija_na_solnechnih_batarejah_svoimi_rukami.html" title="Походный источник питания на солнечных батареях своими руками. (10/09/2009)">Походный источник питания на солнечных батареях своими руками.</a></li>
	<li><a href="http://www.dimio.org/povyshaem-bytovoj-komfort.html" title="Повышаем бытовой комфорт &#8211; кофеварка (30/03/2011)">Повышаем бытовой комфорт &#8211; кофеварка</a></li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.dimio.org/d-link-dir-620-i-dd-wrt-podklyuchenie-flash-ustanovka-programm-nastrojka-nas.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Изменить имя сетевого интерфейса в Debian/Ubuntu Linux</title>
		<link>http://www.dimio.org/izmenit-imya-setevogo-interfejsa-v-debianubuntu-linux.html</link>
		<comments>http://www.dimio.org/izmenit-imya-setevogo-interfejsa-v-debianubuntu-linux.html#comments</comments>
		<pubDate>Wed, 07 Dec 2011 08:50:36 +0000</pubDate>
		<dc:creator>dimio</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[памятка]]></category>

		<guid isPermaLink="false">http://www.dimio.org/?p=571</guid>
		<description><![CDATA[Задался целью домашнюю wi-fi сеть перевести на современный протокол шифрования &#8211; wpa2. Вроде всё предельно просто должно быть даже в линуксе &#8211; ставишь wpa-supplicant, прописываешь имя точки, тип шифрования и ключ в /etc/network/interfaces &#8211; и всё работает. Но нет &#8211; бился часа четыре, пробовал по-разному &#8211; не подключается ноут мой к сети, хотя нетбук и [...]]]></description>
			<content:encoded><![CDATA[<p>Задался целью домашнюю wi-fi сеть перевести на современный протокол шифрования &#8211; wpa2. Вроде всё предельно просто должно быть даже в линуксе &#8211; ставишь <em>wpa-supplicant</em>, прописываешь имя точки, тип шифрования и ключ в /etc/network/interfaces &#8211; и всё работает. Но нет &#8211; бился часа четыре, пробовал по-разному &#8211; не подключается ноут мой к сети, хотя нетбук и <a href="http://www.dimio.org/elektronnyj-kombajn-razmerom-s-ladon.html">смартфоны</a> легко её подхватывают.</p>
<p>Оказалось, что wi-fi карточка в <a href="http://www.dimio.org/kak-ya-xotel-menyat-noutbuk.html">ThinkPad T40</a> не поддерживает wpa2 (и wpa тоже) на аппаратном уровне. Я думал, что это исключительно программные решения и даже не догадывался покопать в сторону аппаратной поддержки. В итоге пришлось карточку поменять, благо на e-bay их продаётся много.<br />
<span id="more-571"></span></p>
<p>Но это всё предыстория. Новая карточка в итоге встала нормально, выглядит в выводе <code class="codecolorer text default"><span class="text">dmesg</span></code> и <code class="codecolorer text default"><span class="text">lspci</span></code> как <em>Intel PRO/Wireless 2200BG Mini-PCI Adapter</em>, <noindex><a rel="nofollow" target="_blank" href="http://www.dimio.org/e3f466/URBFQw1KSUNEE0hDWlFaXxQIClkYXxRWF0JdWgpLLUdOVgMDBw==/">драйвера под Linux для неё имеются</a></noindex>, но она автоматически прописалась под именем <em>eth2</em>, а у меня в скриптах и в <em>conky</em> беспроводной интерфейс прописан как <em>eth1</em>. Соответственно встал вопрос &#8211; <strong>как в Linux переименовать сетевой интерфейс</strong>?</p>
<p>Для <em>Debian</em> (и соответственно <em>Ubuntu</em>) подходит такой рецепт: в файле <strong>70-persistent-net.rules</strong>, находящемся по адресу <code class="codecolorer text default"><span class="text">/etc/udev/rules.d/</span></code>, в спецификации нужной сетевой карты изменяем в конце строки параметр <code class="codecolorer text default"><span class="text">NAME=</span></code>, вписывая туда нужное имя интерфейса для сетевой карты с нужным MAC-адресом. Например я вписал вместо <code class="codecolorer text default"><span class="text">NAME=eth2</span></code> &#8211; <code class="codecolorer text default"><span class="text">NAME=eth1</span></code>, а строку с конфигурацией старой wi-fi карты просто закомментировал.</p>

	Метки:<a href="http://www.dimio.org/tag/how-to" title="how-to" rel="tag nofollow">how-to</a>, <a href="http://www.dimio.org/tag/linux" title="linux" rel="tag nofollow">linux</a>, <a href="http://www.dimio.org/tag/pamyatka" title="памятка" rel="tag nofollow">памятка</a><br />

	<h4>Еще на похожие темы:</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.dimio.org/cvetovaya-indikaciya-xoda-zagruzki-linux.html" title="Цветовая индикация хода загрузки Linux (21/09/2009)">Цветовая индикация хода загрузки Linux</a></li>
	<li><a href="http://www.dimio.org/fajl-nastrojki-vim-vimrc-dlya-linux-i-windows.html" title="Файл настройки vim &#8211; .vimrc (для Linux и Windows) (21/12/2009)">Файл настройки vim &#8211; .vimrc (для Linux и Windows)</a></li>
	<li><a href="http://www.dimio.org/podklyuchenie-cherez-vpn-v-debianubuntu-linux.html" title="Подключение через VPN в Debian/Ubuntu Linux (11/10/2011)">Подключение через VPN в Debian/Ubuntu Linux</a></li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.dimio.org/izmenit-imya-setevogo-interfejsa-v-debianubuntu-linux.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>D-Link DIR-620 и dd-wrt &#8211; бюджетный NAS и торрентокачалка</title>
		<link>http://www.dimio.org/d-link-dir-620-i-dd-wrt-byudzhetnyj-nas-i-torrentokachalka.html</link>
		<comments>http://www.dimio.org/d-link-dir-620-i-dd-wrt-byudzhetnyj-nas-i-torrentokachalka.html#comments</comments>
		<pubDate>Mon, 05 Dec 2011 15:58:09 +0000</pubDate>
		<dc:creator>dimio</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Интернет]]></category>
		<category><![CDATA[Технократия]]></category>
		<category><![CDATA[ddwrt]]></category>
		<category><![CDATA[dir620]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[nas]]></category>
		<category><![CDATA[гаджет]]></category>

		<guid isPermaLink="false">http://www.dimio.org/?p=566</guid>
		<description><![CDATA[Давно подумывал о необходимости сделать дома NAS (сетевой диск), чтобы иметь общее для всех домашних компьютеров (а теперь &#8211; и смартфонов) хранилище музыки, фильмов, резервных копий и каких-то общих файлов, которые нужно синхронизировать между несколькими машинами. Идея собрать еще один компьютер на чём-нибудь типа Атома после размышлений была отброшена &#8211; получается долго и относительно дорого, [...]]]></description>
			<content:encoded><![CDATA[<p>Давно подумывал о необходимости <a href="http://www.dimio.org/d-link-dir-620-i-dd-wrt-podklyuchenie-flash-ustanovka-programm-nastrojka-nas.html">сделать дома NAS (сетевой диск)</a>, чтобы иметь общее для всех домашних компьютеров (а теперь &#8211; и смартфонов) хранилище музыки, фильмов, <a href="http://www.dimio.org/o-polze-rezervnogo-kopirovaniya.html">резервных копий</a> и каких-то общих файлов, которые нужно <a href="http://www.dimio.org/sinxronizaciya-tekstovyx-fajlov-prostoj-skript-na-perl.html">синхронизировать между несколькими машинами</a>. Идея собрать еще один компьютер на чём-нибудь типа Атома после размышлений была отброшена &#8211; получается долго и относительно дорого, хотя конечно интересно. Поэтому решил посмотреть в сторону готовых устройств с возможностью перепрошивки, конкретно &#8211; роутеры, поддерживающие dd-wrt/openwrt и т.п.</p>
<p>Сначала остановился на D-Link DIR320 &#8211; ставший уже классическим вариант для создания домашнего NAS, организации небольшой полноценной сети и решения других подобных задач. Плюсы &#8211; весьма умеренная цена, давно на рынке и уже плотно оброс всевозможными руководствами по переделке и доработке. Однако получилось так, что в магазине его не оказалось и я купил DIR-620 &#8211; более современную версию 320-го. В остальном особой разницы нет &#8211; DIR-620 также имеет возможность перепрошивки сторонними прошивками, оборудован USB-выходом (USB-хостом, если быть точным) и стоит примерно тех же денег (в моём случае он даже оказался на 70 руб. дешевле).<br />
<span id="more-566"></span></p>
<h3>Альтернативные прошивки для DIR-620</h3>
<p>Поскольку положительных отзывов о штатной прошивке роутера я не обнаружил (в моём шла версия 1.21), а нашел, напротив, &#8211; немало отрицательных (о всех версиях до 1.21 включительно), я даже не стал её настраивать и сразу начал искать альтернативные прошивки для DIR-620. Таковых обнаружилось достаточно, я остановился на трёх &#8211; <em>dd-wrt</em>, <em>zyxel keenetic</em> и <em>openwrt</em>. После ознакомления с теорией себе установил только dd-wrt, ей и пользуюсь. OpenWRT нашел слишком поздно &#8211; просто почитал о ней, но пробовать не стал. Zuxel Keenetic думал поставить на случай, если не разберусь с dd-wrt &#8211; не пригодилось. Сборник прошивок, обновление загрузчика и инструкции по перепрошивке собраны на сайте <noindex><a rel="nofollow" target="_blank" href="http://www.dimio.org/e3f466/URBFQw1KSUNEE0hTV1lQV1MFBB5ERUk=/">deadc0de.ru</a></noindex>.</p>
<h4>Прошивка Zyxel Keenetic под DIR-620</h4>
<p>Zyxel Keenetic по железу практически аналогичен D-Link DIR-620 и потому последний может быть прошит прошивкой от первого (оригинальной в случае небольшой переделки &#8211; нужно впаять резистор на плату или модифицированной &#8211; переделки в этом случае не требуется). К достоинствам этой прошивки можно отнести <noindex><a rel="nofollow" target="_blank" href="http://www.dimio.org/e3f466/URBFQw1KSV1HAQoZUVdZGhYATlVbRQpQTFxbXxBLD1JcClRHXgZJXV0AA08cUEBZ/">очень приятный веб-интерфейс</a></noindex>, где всё просто и понятно; <noindex><a rel="nofollow" target="_blank" href="http://www.dimio.org/e3f466/URBFQw1KSU5KHANbHEpBGwgDTgIHAF8=/">поддержку USB-принтера с простой установкой драйверов</a></noindex>, наличие встроенного torrent-клиента (<em>transmission-daemon</em>) и dlna-сервера (<em>minidlna</em>). Сразу скажу, что последний не нужен, если различный медиа-контентс с NAS будет открываться на компьютере и нужен, если есть желание подключить к NAS например телевизор (который естественно должен dlna поддерживать). Почему я не стал прошиваться этой прошивкой? Во-первых &#8211; красота веб-интрефейса нужна только во время настройки, т.е. в идеале &#8211; один раз (а я и вовсе предпочитаю настраивать через консоль), во-вторых &#8211; хотя <noindex><a rel="nofollow" target="_blank" href="http://www.dimio.org/e3f466/URBFQw1KSVdcAAMZVVdbUw8ET1NZXUlBF09NSQYISVxcAV9WQwwFGUMFBVxTX1FHTBYIW18fMVRUVltcBg==/">устанавливать софт через пакетный менеджер</a></noindex> и есть возможность (только для &#8220;полноценного&#8221; Keenetic) &#8211; пакетов достаточно мало, в-третьих &#8211; прошивка эта закрытая и с ней связана достоточно неприятная история &#8211; в последнее время много DIR-620, прошитых в Keenetic, <noindex><a rel="nofollow" target="_blank" href="http://www.dimio.org/e3f466/URBFQw1KSUNEE0hTVhVDRhdPAl9bHxZZSHd2A0wSDVJOEF5DXgZIRFsUWUMPAAMFW1BHEwYDXgpIWkdFBwUdRARUFxAHVl4PQwsVQ11KUFERXABDVRZFAQsND0IXBRZDBF0BBg==/">вышли из строя</a></noindex> (а также не ясно, не сделают ли проверки на оригинальность железа в будущем &#8211; всё зависит от доброй воли Zyxel). Так что я остановился на <em>dd-wrt</em>.</p>
<h4>Прошивка dd-wrt под DIR-620</h4>
<p>Для DIR-620 подходит сборка прошивки от роутера с аналогичным железом &#8211; Asus RT-N13U. Основные достоинства &#8211; открытый исходный код, что влечёт за собой возможность самостоятельной сборки прошивки и наличие большого сообщества, где всегда можно получить помощь. Богатство настроек, доступное как через веб-интерфейс, так и из консоли (ssh установлен из коробки), возможность простой установки дополнительного софта через пакетный менеджер из репозитариев (торрен-клиент, dc++ клиент, samba, <a href="http://www.dimio.org/perl-practical-extraction-and-report-language.html">perl</a>, <a href="http://www.dimio.org/php-personal-home-page-tools.html">php</a>, <a href="http://www.dimio.org/tor-the-onion-router-luchshij-iz-besplatnyx-proksi.html">tor</a> и например <a href="http://www.dimio.org/videoregistraciya-v-linux.html">motion</a>, что вкупе с USB-хабом и/или свободными LAN-портами даст возможность подключить к роутеру <a href="http://www.dimio.org/sozdanie-infrakrasnoj-kamery-nochnogo-videniya-iz-veb-kamery.html">камеры для видеонаблюдения</a>). К минусам можно причислить достаточно аскетичный веб-интерфейс разве что, других проблем за месяц использования не встретил. Заочно познакомиться с dd-wrt можно при помощи <noindex><a rel="nofollow" target="_blank" href="http://www.dimio.org/e3f466/URBFQw1KSUNEE0hTVhVDRhdPAl9bHwJUVVob/">веб-эмулятора прошивки</a></noindex>.</p>
<h3>Как прошить DIR-620 прошивкой dd-wrt</h3>
<p>Под описываемые задачи (закачка торрентов, сетевой диск, DC++) на мой взгляд лучше всего подходит следующий порядок прошивки (для устройства с заводской прошивкой):</p>
<ul>
<li>Сначала <noindex><a rel="nofollow" target="_blank" href="http://www.dimio.org/e3f466/URBFQw1KSUNEE0hTV1lQV1MFBB5ERUlEWlpbRU0MEFpV/">обновить загрузчик uboot</a></noindex>, чтобы иметь возможность заливать на роутере прошивки через tftp, не занимаясь их конвертацией;</li>
<li>Затем взять <a href="http://www.dimio.org/wp-content/uploads/soft/dir-620-to-ddwrt-fs-swap.fwz">прошивку от Asus RT-N13U</a>, имеющую встроенную поддержку ext2, ext3, fat, NTFS и swap (без swap-раздела transmission работает очень нестабильно и нужно постоянно контролировать, чтобы закаче было не больше двух-трёх штук);</li>
<li>Эту прошивку и загрузить на роутер, <noindex><a rel="nofollow" target="_blank" href="http://www.dimio.org/e3f466/URBFQw1KSUNEE0hTV1lQV1MFBB5ERUlcWVtBUA9KDENUCBJVQBcDR0cLFA==/">используя tftp</a></noindex> (заодно и проверить, что этот способ работает) или веб-интерфейс стандартной прошивки (вкладки Система -> Обновление ПО), после чего можно будет спокойно подключать флешку для установки софта и хранения настроек (её лучше <a href="http://www.dimio.org/nizkourovnevoe-formatirovanie-flash-pod-linux.html">отформатировать</a> в ext2 или ext3) и USB-HDD, который будет выступать в роли NAS.</li>
</ul>
<p>Как видно &#8211; ничего особо сложного. После установки веб-интерфейс для настройки dd-wrt доступен по адресу <strong>192.168.1.1</strong>, ssh можно включить в нём же (логин &#8211; root, пароль совпадает с паролем от веб-интерфейса). А я про <a href="http://www.dimio.org/d-link-dir-620-i-dd-wrt-podklyuchenie-flash-ustanovka-programm-nastrojka-nas.html">подключение флешки и внешнего диска, а также про установку пакетов и включение swap расскажу в следующей заметке</a>.</p>

	Метки:<a href="http://www.dimio.org/tag/ddwrt" title="ddwrt" rel="tag nofollow">ddwrt</a>, <a href="http://www.dimio.org/tag/dir620" title="dir620" rel="tag nofollow">dir620</a>, <a href="http://www.dimio.org/tag/how-to" title="how-to" rel="tag nofollow">how-to</a>, <a href="http://www.dimio.org/tag/nas" title="nas" rel="tag nofollow">nas</a>, <a href="http://www.dimio.org/tag/gadzhet" title="гаджет" rel="tag nofollow">гаджет</a><br />

	<h4>Еще на похожие темы:</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.dimio.org/d-link-dir-620-i-dd-wrt-podklyuchenie-flash-ustanovka-programm-nastrojka-nas.html" title="D-Link DIR-620 и dd-wrt &#8211; подключение flash, установка программ, настройка NAS (24/12/2011)">D-Link DIR-620 и dd-wrt &#8211; подключение flash, установка программ, настройка NAS</a></li>
	<li><a href="http://www.dimio.org/pohodniy_istochnik_pitanija_na_solnechnih_batarejah_svoimi_rukami.html" title="Походный источник питания на солнечных батареях своими руками. (10/09/2009)">Походный источник питания на солнечных батареях своими руками.</a></li>
	<li><a href="http://www.dimio.org/povyshaem-bytovoj-komfort.html" title="Повышаем бытовой комфорт &#8211; кофеварка (30/03/2011)">Повышаем бытовой комфорт &#8211; кофеварка</a></li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.dimio.org/d-link-dir-620-i-dd-wrt-byudzhetnyj-nas-i-torrentokachalka.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Памятки по работе в Linux</title>
		<link>http://www.dimio.org/pamyatki-po-rabote-v-linux.html</link>
		<comments>http://www.dimio.org/pamyatki-po-rabote-v-linux.html#comments</comments>
		<pubDate>Fri, 18 Nov 2011 10:04:09 +0000</pubDate>
		<dc:creator>dimio</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.dimio.org/?p=538</guid>
		<description><![CDATA[Накопилось несколько простых рецептов работы в Linux, которые в силу низкой частоты использования наизусть не помню. Пока лежали в черновиках &#8211; некоторые по несколько раз успел перечитать, чтобы вспомнить, как и что делать &#8211; польза налицо. Порядок вывода аргументов в xargs Как-то раз столкнулся с проблемой порядка подстановки аргументов в xargs. И man вроде почитал, [...]]]></description>
			<content:encoded><![CDATA[<p>Накопилось несколько простых рецептов работы в Linux, которые в силу низкой частоты использования наизусть не помню. Пока лежали в черновиках &#8211; некоторые по несколько раз успел перечитать, чтобы вспомнить, как и что делать &#8211; польза налицо.</p>
<h4>Порядок вывода аргументов в xargs</h4>
<p>Как-то раз столкнулся с проблемой порядка подстановки аргументов в <em>xargs</em>. И man вроде почитал, и погуглил, и встретил нужный ключ <em>-I</em>, но ни из мана, ни из гугля не понять было точно, что он делает именно то, что надо. Итак, ключ <em>-I</em> задаёт нужный порядок вывода аргумента в <em>xargs</em>, используя подстановку.<br />
<code class="codecolorer text default"><span class="text">xargs -I arg_name command arg1 arg_name arg3</span></code> &#8211; аргументы при вызове команды <em>command</em> будут выведены именно в таком порядке, тогда как в обычном случае <em>arg_name</em> будет подставлен в конец строки вызова команды.</p>
<h4>Чтение N строк из начала файла</h4>
<p>Совместно с предыдущим решением удобно использовать чтение из файла неких строк, которые затем и преобразовывать в набор аргументов. Банальный <em>cat</em> известен думаю всем. Обратный порядок &#8211; <em>tac</em>. Прочитать N строк с конца: <code class="codecolorer text default"><span class="text">tail -n N</span></code>. Аналогично, но с начала файла: <code class="codecolorer text default"><span class="text">head -n N</span></code>  (возм. head отсутствует в BSD-системах). И прочтитать строки с X по Y: <code class="codecolorer text default"><span class="text">awk 'NR &gt;=X &amp;&amp; NR &lt;=Y'</span></code><br />
<span id="more-538"></span></p>
<h4>Прокси через SSH (ssh-туннель)</h4>
<p>Банальная вещь, которую использую довольно редко (и потому приходится гуглить каждый раз) &#8211; прокси чеез SSH. Особенно помогает при необходимости скачать что-то с разных файлопомоек типа депозита, которые считают закачки по IP всей сети и регулярно предлагают подождать 7 часов.<br />
<code class="codecolorer text default"><span class="text">ssh user@host -D portN</span></code><br />
Затем в программе, которую надо пропустить через прокси (напр. браузер) указать SOCKS-прокси с адресом <em>localhost</em> и портом <em>portN</em>.</p>
<h4>Сохранение ключей SSH в памяти</h4>
<p>Еще SSH: <em>ssh-agent</em> &#8211; хранит ключи (не требуется каждый раз вводить код от ключа), добавить ключ в агент: <code class="codecolorer text default"><span class="text">ssh-add /путь/до_ключа</span></code>. Чтобы все процессы, запущенные из-под иксов, использовали ключи из <em>ssh-agent</em>, нужно запустить сессию WM через него <em>ssh-agent</em>, например (для Debian): в <em>~/.xinitrc</em> дописать <code class="codecolorer text default"><span class="text">exec ssh-agent openbox-session</span></code>.</p>
<h4>Создание образа CD-диска</h4>
<p>Задача для меня тоже не слишком частая, поэтому с ходу решения не вспоминаются. Первое решение &#8211; банальное &#8211; использовать dd, указав на выход нужный файл, а на вход свой cd-rom, с которого образ снимается: <code class="codecolorer text default"><span class="text">dd -if=/dev/sr0 of=/tmp/my.iso</span></code>, CD должен быть отмонтирован; скопирует всё поблочно (т.е. если на диске реально записан 1 Мб данных, образ будет равен объёму всего диска).<br />
Второе &#8211; использовать genisoimage, в Debian идёт из коробки, не факт, что так же везде. Создаёт &#8220;правильный&#8221; образ, диск должен быть примонтирован, на вход подавать точку монтирования диска: <code class="codecolorer text default"><span class="text">genisoimage -V 'disk label' -r -o /tmp/my.iso /mnt/cdrom</span></code></p>
<h4>Прогресс работы dd</h4>
<p>В дополнение к предыдущему или к <a href="http://www.dimio.org/nizkourovnevoe-formatirovanie-flash-pod-linux.html">форматированию флешки под Linux</a>. При использовании dd на больших объемах (напр. когда флешку 16 Гб форматируешь) бывает полезно. Нужно передать сигнал <em>USR1</em>: <code class="codecolorer text default"><span class="text">kill -USR1 dd_PID</span></code> &#8211; выведет прогресс записи и ее скорость. Если процесс dd один или не важно узнать прогресс конкретного, можно поступить проще: <code class="codecolorer text default"><span class="text">killall -USR1 dd</span></code>.</p>

	Метки:<a href="http://www.dimio.org/tag/how-to" title="how-to" rel="tag nofollow">how-to</a>, <a href="http://www.dimio.org/tag/linux" title="linux" rel="tag nofollow">linux</a><br />

	<h4>Еще на похожие темы:</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.dimio.org/cvetovaya-indikaciya-xoda-zagruzki-linux.html" title="Цветовая индикация хода загрузки Linux (21/09/2009)">Цветовая индикация хода загрузки Linux</a></li>
	<li><a href="http://www.dimio.org/fajl-nastrojki-vim-vimrc-dlya-linux-i-windows.html" title="Файл настройки vim &#8211; .vimrc (для Linux и Windows) (21/12/2009)">Файл настройки vim &#8211; .vimrc (для Linux и Windows)</a></li>
	<li><a href="http://www.dimio.org/podklyuchenie-cherez-vpn-v-debianubuntu-linux.html" title="Подключение через VPN в Debian/Ubuntu Linux (11/10/2011)">Подключение через VPN в Debian/Ubuntu Linux</a></li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.dimio.org/pamyatki-po-rabote-v-linux.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>О пользе тестирования, блин!</title>
		<link>http://www.dimio.org/o-polze-testirovaniya-blin.html</link>
		<comments>http://www.dimio.org/o-polze-testirovaniya-blin.html#comments</comments>
		<pubDate>Wed, 09 Nov 2011 13:34:09 +0000</pubDate>
		<dc:creator>dimio</dc:creator>
				<category><![CDATA[Кодинг]]></category>
		<category><![CDATA[Новости]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://www.dimio.org/?p=556</guid>
		<description><![CDATA[Напоролся на неприятную ошибку в модуле Time::Local (по-моему даже в кукбуке описан) &#8211; похоже, что номер месяца подставлялся в индкес элемента массива напрямую, вопреки тому, что нумерация начинается с нулевого элемента и вместо января выдавалось количество дне для февраля и т.д. Соответственно какие-то месяца обрабатывались корректно, а какие-то &#8211; вызывали ошибку вида Day &#8217;31&#8242; out [...]]]></description>
			<content:encoded><![CDATA[<p>Напоролся на неприятную ошибку в модуле Time::Local (по-моему даже в <a href="http://www.dimio.org/biblioteka">кукбуке</a> описан) &#8211; похоже, что номер месяца подставлялся в индкес элемента массива напрямую, вопреки тому, что нумерация начинается с нулевого элемента и вместо января выдавалось количество дне для февраля и т.д. Соответственно какие-то месяца обрабатывались корректно, а какие-то &#8211; вызывали ошибку вида <em>Day &#8217;31&#8242; out of range 1..30</em>, которую в силу редкости трудно было обнаружить.</p>
<p>А ведь что мешало автору проcтейшим образом сгенерировать тестовый календарь и прогнать на нём модуль? Ладно бы &#8211; &#8220;для себя&#8221; делал, так модуль на CPAN лежит, в литературе упомянут &#8211; и такие детские баги. Причём <noindex><a rel="nofollow" target="_blank" href="http://www.dimio.org/e3f466/URBFQw1KSVdDBQhRXUpBWU0CDl0ZRA5DXVRQQkxWXA8I/">сообщение об ошибке на форуме CPAN</a></noindex> было еще для версии 1.13, к версии 1.20 ничего не изменилось &#8211; так же перебирает с первого элемента&#8230;</p>

	Метки:<a href="http://www.dimio.org/tag/perl" title="perl" rel="tag nofollow">perl</a><br />

	<h4>Еще на похожие темы:</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.dimio.org/sravnenie-proizvoditelnosti-setevyx-bibliotek-v-perl.html" title="Сравнение производительности сетевых библиотек в Perl (07/04/2011)">Сравнение производительности сетевых библиотек в Perl</a></li>
	<li><a href="http://www.dimio.org/software" title="Софт (02/10/2009)">Софт</a></li>
	<li><a href="http://www.dimio.org/sinxronizaciya-tekstovyx-fajlov-prostoj-skript-na-perl.html" title="Синхронизация текстовых файлов &#8211; простой скрипт на Perl (09/07/2010)">Синхронизация текстовых файлов &#8211; простой скрипт на Perl</a></li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.dimio.org/o-polze-testirovaniya-blin.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Низкоуровневое форматирование flash под Linux</title>
		<link>http://www.dimio.org/nizkourovnevoe-formatirovanie-flash-pod-linux.html</link>
		<comments>http://www.dimio.org/nizkourovnevoe-formatirovanie-flash-pod-linux.html#comments</comments>
		<pubDate>Tue, 01 Nov 2011 16:19:38 +0000</pubDate>
		<dc:creator>dimio</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Полезности]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[памятка]]></category>

		<guid isPermaLink="false">http://www.dimio.org/?p=546</guid>
		<description><![CDATA[Несколько раз приходилось форматировать флешки, а поскольку происходит это довольно редко &#8211; вынужден был лезть в гугл. Конспективная памятка по форматированию флешек под Linux: Проверить подключение flash fdisk -l Выведет список подключенных дисков и их разделов. Обычно флешка &#8211; /dev/sdb Проверить, примонтирована ли флешка df -h Если флешка примонтирована &#8211; покажет это и точку монтирования. [...]]]></description>
			<content:encoded><![CDATA[<p>Несколько раз приходилось форматировать флешки, а поскольку происходит это довольно редко &#8211; вынужден был лезть в гугл. Конспективная памятка по форматированию флешек под Linux:</p>
<h4>Проверить подключение flash</h4>
<p><code class="codecolorer text default"><span class="text">fdisk -l</span></code><br />
Выведет список подключенных дисков и их разделов. Обычно флешка &#8211; <em>/dev/sdb</em></p>
<h4>Проверить, примонтирована ли флешка</h4>
<p><code class="codecolorer text default"><span class="text">df -h</span></code><br />
Если флешка примонтирована &#8211; покажет это и точку монтирования. Перед форматированием &#8211; отмонтировать: <code class="codecolorer text default"><span class="text">umount /dev/sdb</span></code></p>
<h4>Проверить защиту от записи и геометрию</h4>
<p>При желании &#8211; можно проверить защиту от записи и геометрию (защита от записи в линуксе не важна):<br />
<code class="codecolorer text default"><span class="text">hdparm /dev/sdb</span></code></p>
<h4>Если нужно низкоуровневое форматирование &#8211; забить нулями</h4>
<p><code class="codecolorer text default"><span class="text">dd if=/dev/zero of=/dev/sdb</span></code><br />
В выводе покажет объем флешки (должен соответствовать заявленному), скорость и время записи. Также покажет, сколько было записано байт на флешку, что полезно при проверке флешки на физические ошибки (см. ниже).</p>
<h4>Проверить на физические ошибки</h4>
<p><code class="codecolorer text default"><span class="text">head -c N /dev/sdb | md5sum</span></code><br />
<code class="codecolorer text default"><span class="text">head -c N /dev/zero | md5sum</span></code><br />
где N равно числу байт, записанных на флешку при помощи <strong>dd</strong>. Если контрольные суммы не совпадают &#8211; флешка &#8220;битая&#8221; или были ошибки записи (в реальности сталкивался с форматированием microSD через плохой кард-ридер &#8211; даже когда не выскакивали ошибки ввода-вывода при операциях &#8211; контрольные суммы не совпадали, с заменой кард-ридера проблема ушла).<br />
<em>Пример:</em></p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:100%;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">dimio@ibm $ dd if=/dev/zero of=/dev/sdb<br />
dd: запись в «/dev/sdb»: На устройстве кончилось место<br />
3932161+0 записей считано<br />
3932160+0 записей написано<br />
&nbsp;скопировано 2013265920 байт (2,0 GB), 1010,99 c, 2,0 MB/c<br />
dimio@ibm $ head -c 2013265920 /dev/zero | md5sum<br />
5d0fd6273bed1c500c6fc22d86a59630 &nbsp;-<br />
dimio@ibm $ head -c 2013265920 /dev/sdb | md5sum<br />
5d0fd6273bed1c500c6fc22d86a59630 &nbsp;-</div></div>
<p><em>Ну и для полного счастья при желании:</em></p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:100%;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">dimio@ibm $ perl -we '<br />
&gt; print &quot;OK&quot; if q{5d0fd6273bed1c500c6fc22d86a59630} <br />
&gt; eq q{5d0fd6273bed1c500c6fc22d86a59630};'<br />
OK</div></div>
<h4>Разбиваем на разделы при помощи fdisk</h4>
<p><code class="codecolorer text default"><span class="text">fdisk /dev/sdb</span></code><br />
Опции: <strong>m</strong> &#8211; справка, <strong>d</strong> &#8211; удалить раздел, <strong>p</strong> &#8211; просмотреть список разделов, <strong>n</strong> &#8211; создать раздел, <strong>t</strong> &#8211; поменять тип раздела, <strong>w</strong> &#8211; сохранить изменения.</p>
<h4>Последний шаг &#8211; создать файловые системы на разделах флешки</h4>
<p><code class="codecolorer text default"><span class="text">mkfs.ext{2,3,4} /dev/sdbX</span></code><br />
где X &#8211; порядковый номер раздела, на котором нужно создать файловую систему.<br />
Также полезны: <strong>mkfs.msdos</strong>, <strong>mkfs.vfat</strong>.</p>
<p><a href="http://moskva.sravni.com/" ><img src="http://www.dimio.org/wp-content/uploads/2011/11/create_usb_flash_on_linux.jpg" alt="каталог интернет магазинов Москвы" title="Сравнение цен на электронику, бытовую технику, сайт sravni.com" width="150" height="126" class="aligncenter size-full wp-image-547" /></a></p>

	Метки:<a href="http://www.dimio.org/tag/how-to" title="how-to" rel="tag nofollow">how-to</a>, <a href="http://www.dimio.org/tag/pamyatka" title="памятка" rel="tag nofollow">памятка</a><br />

	<h4>Еще на похожие темы:</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.dimio.org/izmenit-imya-setevogo-interfejsa-v-debianubuntu-linux.html" title="Изменить имя сетевого интерфейса в Debian/Ubuntu Linux (07/12/2011)">Изменить имя сетевого интерфейса в Debian/Ubuntu Linux</a></li>
	<li><a href="http://www.dimio.org/rc-link-redirector-i-ssylki-v-tekstovom-vidzhete.html" title="RC Link Redirector и ссылки в текстовом виджете (12/04/2011)">RC Link Redirector и ссылки в текстовом виджете</a></li>
	<li><a href="http://www.dimio.org/cygwin-besplatnaya-realizaciya-unix-podobnogo-okruzheniya-dlya-windows.html" title="Cygwin &#8211; бесплатная реализация unix-подобного окружения для Windows (29/09/2009)">Cygwin &#8211; бесплатная реализация unix-подобного окружения для Windows</a></li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.dimio.org/nizkourovnevoe-formatirovanie-flash-pod-linux.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Халявная реклама на twite.ru</title>
		<link>http://www.dimio.org/xalyavnaya-reklama-na-twite-ru.html</link>
		<comments>http://www.dimio.org/xalyavnaya-reklama-na-twite-ru.html#comments</comments>
		<pubDate>Thu, 20 Oct 2011 10:01:40 +0000</pubDate>
		<dc:creator>dimio</dc:creator>
				<category><![CDATA[seo]]></category>
		<category><![CDATA[Блоггинг]]></category>
		<category><![CDATA[twite]]></category>
		<category><![CDATA[заработок]]></category>
		<category><![CDATA[программинг]]></category>
		<category><![CDATA[реклама]]></category>
		<category><![CDATA[скрипт]]></category>

		<guid isPermaLink="false">http://www.dimio.org/?p=503</guid>
		<description><![CDATA[Про сервис рекламы (и набора фолловеров) в твиттере, ЖЖ и фейсбуке &#8211; twite.ru &#8211; знают, полагаю, уже многие. Немало встречается заметок о том, как заработать в твайте (заработок в твайте сравни заработку в GoGetLinks, только вместо ссылок &#8211; перепосты и ретвиты). Проблема только в одном &#8211; там присутствует постмодерация и в момент вывода средств &#8220;наружу&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p><noindex><a rel="nofollow" target="_blank" href="http://www.dimio.org/e3f466/URBFQw1KSUNEE0hDRVFAUU0TFB8JQgNXXUdGUA9ZVgYOVAA=/"><img src="http://www.dimio.org/wp-content/uploads/2011/10/dengitwitter-200x200-150x150.jpg" alt="Рекалама на twite.ru бесплатно!" title="Рекалама на twite.ru бесплатно!" width="150" height="150" class="alignleft size-thumbnail wp-image-525" /></a></noindex></p>
<p>Про сервис рекламы (и набора фолловеров) в твиттере, ЖЖ и фейсбуке &#8211; <noindex><a rel="nofollow" target="_blank" href="http://www.dimio.org/e3f466/URBFQw1KSUNEE0hDRVFAUU0TFB8JQgNXXUdGUA9ZVgYOVAA=/">twite.ru</a></noindex> &#8211; знают, полагаю, уже многие. Немало встречается заметок о том, как заработать в твайте (заработок в твайте сравни <a href="http://www.dimio.org/zarabatyvaj-s-gogetlinks-publikaciya-ssylok-zametok-i-kartinok-za-dengi.html">заработку в GoGetLinks</a>, только вместо ссылок &#8211; перепосты и ретвиты). Проблема только в одном &#8211; там присутствует постмодерация и в момент вывода средств &#8220;наружу&#8221; администрация проверит ваш блоггерский аккаунт. Значит, придётся или раскручивать аккаунт под рекламу, или портить рекламой свой личный блог. Ни того, ни другого мне делать не захотелось.</p>
<p>Существует еще одна возможность распорядиться своими средствами на twite.ru &#8211; их можно перекинуть на свой &#8220;аккаунт рекламодателя&#8221;, при этом не нужно проходить проверку модераторами, средства остаются в системе. Вывод простой &#8211; можно зарабатывать средства на рекламу своего сайта при помощи ботов. И если твиттер-аккаунт для добавления в систему в качестве рекламной площадки нужно минимально раскрутить, то ЖЖ добавляется элементарно и без всяких проверок (хотя для раскрученного ЖЖ-аккаунта естественно выдаются более привлекательные рекламные предложения).<br />
<span id="more-503"></span></p>
<h4>Итак, способ получения халявной рекламы через twite.ru прост:</h4>
<ul>
<li>регистрируем новый аккаунт в ЖЖ, при желании &#8211; <a href="http://www.dimio.org/lj-mass-add-remove-friends">набираем для него друзей</a>;</li>
<li>регистрируемся на <noindex><a rel="nofollow" target="_blank" href="http://www.dimio.org/e3f466/URBFQw1KSUNEE0hDRVFAUU0TFB8JQgNXXUdGUA9ZVgYOVAA=/">twite.ru</a></noindex> (просто введя имя своего ЖЖ-аккаунта и подтвердив авторизацию по OpenID);</li>
<li>устанавливаем плагин iMacros (есть версии под Firefox, Chrome, InternetExplorer, по заверениям авторов плагина, макросы полностью переносимы между поддерживаемыми браузерами);</li>
<li>создаём новый макрос, открываем его на редактирование и копируем туда текст приведенного ниже макроса для автоматического репоста записей из twite.ru в ЖЖ (кстати создание его заняло всего 20 минут и пока он делает своё дело &#8211; можно подумать на тему скриптового бота для твайта);</li>
<li>в макрос нужно вписать имя и пароль от своего рекламного ЖЖ-аккаунта (вместо <em>lj_username</em> и <em>lj_password</em> соответственно), после логина в твайте из ЖЖ лучше выйти &#8211; всё равно через некоторое время выполнится автовыход, а так макрос каждый раз публикует репост без проблем с логином;</li>
<li>находясь на странице с рекламными предложениями twite.ru (советую открыть новое окно браузера и оставить в нём только одну вкладку) &#8211; делаем тестовый запуск макроса, настраиваем по вкусу величину пауз между действиями, проверяем работоспособность;</li>
<li>если всё в порядке &#8211; запускаем цикличное выполнение макроса нужное число раз.</li>
</ul>
<p>Ничего сложного, под Firefox у меня работает без проблем и в Linux, и в Windows, если покопаться в справке на сайте iMacros &#8211; можно найти ключи для запуска из <a href="http://www.dimio.org/bash-born-again-shell-obolochka-komandnoj-stroki.html">командной строки</a> (или через планировщик заданий Windows). За выходные на нулевом бросовом ЖЖ-аккаунте макрос у меня набивает до 50 рублей, на которые можно сделать несколько неплохих ретвитов нужных материалов. </p>
<h4>А вот и сам текст макроса для автоматического заработка на twite.ru:</h4>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:100%;height:400px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">VERSION BUILD=7400919 RECORDER=FX<br />
SET !ERRORIGNORE YES<br />
'<br />
TAB T=1<br />
URL GOTO=http://www.twite.ru/blogger/livejournal<br />
TAG POS=1 TYPE=A ATTR=TXT:репост<br />
'<br />
TAB T=2<br />
'WAIT SECONDS=#DOWNLOADCOMPLETE#<br />
WAIT SECONDS=5<br />
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:updateForm ATTR=ID:altlogin_username CONTENT=lj-username<br />
SET !ENCRYPTION NO<br />
TAG POS=1 TYPE=INPUT:PASSWORD FORM=NAME:updateForm ATTR=ID:altlogin_password CONTENT=lj-password<br />
TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:updateForm ATTR=ID:formsubmit<br />
WAIT SECONDS=5<br />
TAB CLOSE<br />
'<br />
TAB T=1<br />
WAIT SECONDS=35<br />
TAG POS=2 TYPE=SPAN ATTR=TXT:Нажмите&lt;SP&gt;сюда&lt;SP&gt;после&lt;SP&gt;написания&lt;SP&gt;поста.<br />
WAIT SECONDS=15</div></div>
<p><strong>UPD</strong></p>
<h4>И скрипт для автоматического ретвита на twite.ru:</h4>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:100%;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">SET !ERRORIGNORE YES<br />
TAB T=1<br />
TAG POS=1 TYPE=SPAN ATTR=TXT:Обновить<br />
WAIT SECONDS=3<br />
TAG POS=1 TYPE=IMG ATTR=SRC:/images/icons/retweet.png&amp;&amp;ALT:Разместить&lt;SP&gt;рекламный&lt;SP&gt;ретвит<br />
TAG POS=1 TYPE=IMG ATTR=SRC:/images/icons/ok.png&amp;&amp;ALT:Разместить&lt;SP&gt;рекламный&lt;SP&gt;твит<br />
<br />
WAIT SECONDS=1<br />
TAB T=2<br />
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:update-form ATTR=VALUE:Твитнуть<br />
WAIT SECONDS=3<br />
TAB T=1<br />
WAIT SECONDS=10<br />
TAG POS=1 TYPE=SPAN ATTR=TXT:сюда<br />
WAIT SECONDS=5</div></div>

	Метки:<a href="http://www.dimio.org/tag/seo" title="seo" rel="tag nofollow">seo</a>, <a href="http://www.dimio.org/tag/twite" title="twite" rel="tag nofollow">twite</a>, <a href="http://www.dimio.org/tag/zarabotok" title="заработок" rel="tag nofollow">заработок</a>, <a href="http://www.dimio.org/tag/programmirovanie" title="программинг" rel="tag nofollow">программинг</a>, <a href="http://www.dimio.org/tag/reklama" title="реклама" rel="tag nofollow">реклама</a>, <a href="http://www.dimio.org/tag/skript" title="скрипт" rel="tag nofollow">скрипт</a><br />

	<h4>Еще на похожие темы:</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.dimio.org/sravnenie-proizvoditelnosti-setevyx-bibliotek-v-perl.html" title="Сравнение производительности сетевых библиотек в Perl (07/04/2011)">Сравнение производительности сетевых библиотек в Perl</a></li>
	<li><a href="http://www.dimio.org/software" title="Софт (02/10/2009)">Софт</a></li>
	<li><a href="http://www.dimio.org/sozdanie-sajta-kak-pervyj-shag-k-zarabotku-v-internete.html" title="Создание сайта как первый шаг к заработку в интернете (19/05/2011)">Создание сайта как первый шаг к заработку в интернете</a></li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.dimio.org/xalyavnaya-reklama-na-twite-ru.html/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Openbox+sbxkb: переключение раскладок клавиатуры</title>
		<link>http://www.dimio.org/openboxsbxkb-pereklyuchenie-raskladok-klaviatury.html</link>
		<comments>http://www.dimio.org/openboxsbxkb-pereklyuchenie-raskladok-klaviatury.html#comments</comments>
		<pubDate>Wed, 12 Oct 2011 10:45:16 +0000</pubDate>
		<dc:creator>dimio</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[openbox]]></category>
		<category><![CDATA[sbxkb]]></category>

		<guid isPermaLink="false">http://www.dimio.org/?p=514</guid>
		<description><![CDATA[Cлегка подустав от ставших довольно заметными тормозов Gnome с Metacity и Nautilus в компании (ноут у меня довольно старый по современным меркам &#8211; IBM ThinkPad T40 с Pentium M 1,5 ГГц и 1 Гб ОЗУ на борту), решил попробовать Openbox. Создал тестового пользователя, прописал ему Openbox в качестве WM, немного настроил, попользовался час и перевёл [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.dimio.org/wp-content/uploads/2011/10/openbox-wm-logo.png"><img src="http://www.dimio.org/wp-content/uploads/2011/10/openbox-wm-logo-150x150.png" alt="Openbox WM logo" title="Openbox - лекговесный Window Manager" width="150" height="150" class="alignleft size-thumbnail wp-image-515" /></a></p>
<p>Cлегка подустав от ставших довольно заметными тормозов <em>Gnome</em> с <em>Metacity</em> и <em>Nautilus</em> в компании (ноут у меня довольно старый по современным меркам &#8211; <a href="http://www.dimio.org/kak-ya-xotel-menyat-noutbuk.html">IBM ThinkPad T40</a> с Pentium M 1,5 ГГц и 1 Гб ОЗУ на борту), решил попробовать Openbox. Создал тестового пользователя, прописал ему Openbox в качестве WM, немного настроил, попользовался час и перевёл основную учётку на него.</p>
<p>Разница в скорости отклика по субъективным ощущениям (что впрочем и важно в данном случае) оказалась просто колоссальной &#8211; эмулятор терминала (<a href="http://www.dimio.org/nastrojka-rxvt-cherez-xdefaults.html"><strong>rxvt</strong></a>) открывается в пределах секунды, против 7-10 сек. в гноме. Окна сворачиваются-разворачиваются также в пределах секунды, в гноме Firefox с десятком открытых вкладок мог разворачиваться из панели 3-5 секунд, при этом постоянно треща HDD, который у меня тоже не казённый. В Openbox же индикатор обращения к жесткому диску срабатывает довольно редко (вообще стало казаться, что гном с его &#8220;реестром&#8221; всё ближе к windows &#8211; уже и тормоза накапливать за время эксплуатации научился).</p>
<p>Даже Google Chrome по ощущениям из-под Openbox заработал быстрее (и стал быстрее Firefox, чего не было под Gnome), хотя может это уже самообман на волне общей эйфории от легковесности и скорости WM.<br />
<span id="more-514"></span></p>
<p>В общем в процессе настройки Openbox встал вопрос о переключателе раскладок клавиатуры. Можно было использовать гномовский, но хотелось нативного решения. По итогам изучения интернетов в качестве такового был признан <noindex><a rel="nofollow" target="_blank" href="http://www.dimio.org/e3f466/URBFQw1KSUdcERRUV15bRgQET15TRElBSlpeVAAQFxhKEFBKVQoeG1UNClJBFw==/"><strong>sbxkb</strong></a></noindex> &#8211; простая маленькая переключалка-индикатор, умеющая запоминать раскладки для окон и поддерживающая отображение флагов-значков для раскладок. Основан <em>sbxkb</em> на библиотеке GTK2 и только она нужна ему для работы.</p>
<p>Минусом переключалки оказалось ее отсутствие в репозиториях дебиана, а на пару найденных deb-пакетов вели мёртвые ссылки (кроме того, по обеим <em>sbxkb</em> был младше текущей версии 0.7.6). В общем-то собирается из исходников он не долго и не сложно, но всё равно надо ставить кучку различных *-dev библиотек и утилит. Поэтому я собрал .deb-пакет с последней на данный момент версией: <a href="http://www.dimio.org/wp-content/uploads/soft/sbxkb_0.7.6-1_i386.deb" title="Скачать .deb пакет sbxkb_0.7.6"><strong>sbxkb_0.7.6-1_i386.deb</strong></a>. Проверил на 3 системах (Debian, Ubuntu) &#8211; везде установка прошла без проблем (<code class="codecolorer bash default"><span class="bash"><span style="color: #c20cb9; font-weight: bold;">dpkg</span> <span style="color: #660033;">-i</span> .<span style="color: #000000; font-weight: bold;">/</span>sbxkb_0.7.6-<span style="color: #000000;">1</span>_i386.deb</span></code>).</p>
<p>После установки для автоматической загрузки достаточно в <code class="codecolorer text default"><span class="text">~/.config/openbox/autostart.sh</span></code> добавить строку <code class="codecolorer bash default"><span class="bash"><span style="color: #c20cb9; font-weight: bold;">sleep</span> <span style="color: #000000;">3</span> <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>sbxkb <span style="color: #000000; font-weight: bold;">&amp;</span></span></code>.<br />
Чтобы задать горячие клавиши для переключения раскладок, можно использовать след. команду:<br />
<code class="codecolorer bash default"><span class="bash">setxkbmap <span style="color: #660033;">-model</span> pc104 <span style="color: #660033;">-layout</span> us,ru <span style="color: #660033;">-variant</span> &nbsp;,winkeys <span style="color: #660033;">-option</span> grp:alt_shift_toggle <span style="color: #000000; font-weight: bold;">&amp;</span> sbxkb</span></code><br />
Опции вполне прозрачны, а более никаких шагов для настройки <em>sbxkb</em> предпринимать не нужно!</p>

	Метки:<a href="http://www.dimio.org/tag/debian" title="debian" rel="tag nofollow">debian</a>, <a href="http://www.dimio.org/tag/how-to" title="how-to" rel="tag nofollow">how-to</a>, <a href="http://www.dimio.org/tag/linux" title="linux" rel="tag nofollow">linux</a>, <a href="http://www.dimio.org/tag/openbox" title="openbox" rel="tag nofollow">openbox</a>, <a href="http://www.dimio.org/tag/sbxkb" title="sbxkb" rel="tag nofollow">sbxkb</a><br />

	<h4>Еще на похожие темы:</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.dimio.org/cvetovaya-indikaciya-xoda-zagruzki-linux.html" title="Цветовая индикация хода загрузки Linux (21/09/2009)">Цветовая индикация хода загрузки Linux</a></li>
	<li><a href="http://www.dimio.org/fajl-nastrojki-vim-vimrc-dlya-linux-i-windows.html" title="Файл настройки vim &#8211; .vimrc (для Linux и Windows) (21/12/2009)">Файл настройки vim &#8211; .vimrc (для Linux и Windows)</a></li>
	<li><a href="http://www.dimio.org/podklyuchenie-cherez-vpn-v-debianubuntu-linux.html" title="Подключение через VPN в Debian/Ubuntu Linux (11/10/2011)">Подключение через VPN в Debian/Ubuntu Linux</a></li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.dimio.org/openboxsbxkb-pereklyuchenie-raskladok-klaviatury.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Ответы@Mail.Ru &#8211; мечта спамера</title>
		<link>http://www.dimio.org/otvetymail-ru-mechta-spamera.html</link>
		<comments>http://www.dimio.org/otvetymail-ru-mechta-spamera.html#comments</comments>
		<pubDate>Wed, 28 Sep 2011 11:14:30 +0000</pubDate>
		<dc:creator>dimio</dc:creator>
				<category><![CDATA[Интернет]]></category>
		<category><![CDATA[Новости]]></category>
		<category><![CDATA[mail.ru]]></category>
		<category><![CDATA[парсер]]></category>

		<guid isPermaLink="false">http://www.dimio.org/?p=502</guid>
		<description><![CDATA[С удивлением заметил, что e-mail адреса пользователей сервиса &#8220;ответы&#8221; на mail.ru хранятся в коде страниц в открытом виде, как на заре интернетов прямо. Никаких попыток скрыть адреса &#8211; даже странно в наше время. Можно легко и непринуждённо сграбить базу email для дальнейшего брутфорса паролей к ним или например спама (поскольку на сервисе есть категории &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p>С удивлением заметил, что e-mail адреса пользователей сервиса &#8220;ответы&#8221; на mail.ru хранятся в коде страниц в открытом виде, как на заре интернетов прямо. Никаких попыток скрыть адреса &#8211; даже странно в наше время. Можно легко и непринуждённо сграбить базу email для дальнейшего брутфорса паролей к ним или например спама (поскольку на сервисе есть категории &#8211; вероятно и целевую аудиторию можно прикинуть по ним).</p>
<p>В общем всё делается предельно примитивно, в старом добром шелле, без разных модных многопоточных грабберов из облака (для брутфорса кстати облако наверное очень интересным может быть):</p>
<div class="codecolorer-container bash default" style="border:1px solid #9F9F9F;width:100%;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp;<span style="color: #c20cb9; font-weight: bold;">wget</span> <span style="color: #660033;">-q</span> <span style="color: #660033;">-O</span> - http:<span style="color: #000000; font-weight: bold;">//</span>otvet.mail.ru<span style="color: #000000; font-weight: bold;">/</span>open<span style="color: #000000; font-weight: bold;">/</span>?<span style="color: #007800;">pg</span>=<span style="color: #7a0874; font-weight: bold;">&#123;</span><span style="color: #000000;">1</span>..<span style="color: #000000;">10</span><span style="color: #7a0874; font-weight: bold;">&#125;</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #660033;">-ioE</span> <span style="color: #ff0000;">'\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b'</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">sort</span> <span style="color: #660033;">-ui</span> <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> .<span style="color: #000000; font-weight: bold;">/</span>otveti_email.txt</div></div>
<p>Как видно из примера &#8211; я сграбил для проверки первые 10 страниц открытых ответов получив в итоге 197 уникальных адресов. В принципе для скорости и удобства можно каждую категорию в отдельном процессе выкачивать, с сортировкой результатов уже после загрузки, непосредственно из файла.</p>
<p>Напоследок <noindex><a rel="nofollow" target="_blank" href="http://www.dimio.org/e3f466/URBFQw1KSUNEE0hFV19BWAITTFVOQBRUS0ZdXg0XSl5XAl4cUggHXV9KDkNfVA==/">ссылка</a></noindex> для тюнинга регулярки под grep по поиску email-адресов.</p>
<p><strong>UDP</strong>: Под катом для примера выложил простой скрипт на <a href="http://www.dimio.org/bash-born-again-shell-obolochka-komandnoj-stroki.html">bash</a>, который парсит некоторые страницы раздела &#8220;Компьютеры и интернет&#8221; с Ответы@Mail.ru и раскладывает полученные e-mail адреса по категориям. Его несложно дополнить всё теми же штатными средствами оболочки чтобы автоматически обходить дерево разделов и парсить e-mail адреса из всех категорий.</p>
<p><span id="more-502"></span></p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:100%;height:400px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;">#!/bin/bash</span><br />
<span style="color: #666666; font-style: italic;"># v.0.22</span><br />
<span style="color: #666666; font-style: italic;"># Простой скрипт парсинга e-mail адресов с сервиса Ответы@Mail.ru</span><br />
<span style="color: #666666; font-style: italic;"># с разбиением по тематическим категориям</span><br />
<span style="color: #666666; font-style: italic;"># dimio (http://www.dimio.org), 2011</span><br />
<br />
<span style="color: #666666; font-style: italic;">#Путь к каталогу, в котором будут храниться адреса</span><br />
<span style="color: #007800;">PWD</span>=<span style="color: #ff0000;">'.'</span><br />
<span style="color: #666666; font-style: italic;">#Сколько страниц в каждом разделе парсить (max = 50)</span><br />
<span style="color: #007800;">PG_LIM</span>=<span style="color: #ff0000;">&quot;$1&quot;</span><br />
<br />
<span style="color: #666666; font-style: italic;">#Пример:</span><br />
<span style="color: #666666; font-style: italic;">#Раздел 'it' - компьютеры и интернет. Названия категорий берутся из соответствующих ссылок сервиса ответов</span><br />
<span style="color: #000000; font-weight: bold;">for</span> SECTION <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #ff0000;">'hardware'</span> <span style="color: #ff0000;">'internet'</span> <span style="color: #ff0000;">'programming'</span> <span style="color: #ff0000;">'software'</span> <span style="color: #ff0000;">'pc_other'</span><br />
<span style="color: #666666; font-style: italic;">#for SECTION in &quot;$@&quot;; do</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #000000; font-weight: bold;">!</span> <span style="color: #660033;">-d</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$PWD</span>/<span style="color: #007800;">$SECTION</span>&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">then</span> <span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$PWD</span>/<span style="color: #007800;">$SECTION</span>&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Create directory: <span style="color: #007800;">$PWD</span>/<span style="color: #007800;">$SECTION</span>&quot;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">fi</span><br />
<br />
&nbsp; &nbsp; <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Parsing <span style="color: #007800;">$SECTION</span>&quot;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">for</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #007800;">PAGE</span>=<span style="color: #000000;">1</span>; PAGE <span style="color: #000000; font-weight: bold;">&lt;</span>= PG_LIM; PAGE++<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>; <span style="color: #000000; font-weight: bold;">do</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #c20cb9; font-weight: bold;">wget</span> <span style="color: #660033;">-q</span> <span style="color: #660033;">-O</span> - <span style="color: #ff0000;">&quot;http://otvet.mail.ru/<span style="color: #007800;">$SECTION</span>/?pg=<span style="color: #007800;">$PAGE</span>&quot;</span> <span style="color: #000000; font-weight: bold;">|</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #660033;">-ioE</span> <span style="color: #ff0000;">'\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b'</span> <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$PWD</span>/<span style="color: #007800;">$SECTION</span>/emails.txt&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-n</span> <span style="color: #ff0000;">'.'</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">done</span>;<br />
<br />
&nbsp; &nbsp; <span style="color: #c20cb9; font-weight: bold;">sort</span> <span style="color: #660033;">-ui</span> <span style="color: #660033;">-o</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$PWD</span>/<span style="color: #007800;">$SECTION</span>/emails.txt&quot;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$PWD</span>/<span style="color: #007800;">$SECTION</span>/emails.txt&quot;</span><br />
&nbsp; &nbsp; <span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$PWD</span>/<span style="color: #007800;">$SECTION</span>/emails.txt&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$PWD</span>/summary_emails.txt&quot;</span><br />
&nbsp; &nbsp; <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;<br />
<span style="color: #007800;">$SECTION</span> (<span style="color: #007800;">$PG_LIM</span> pages): parsing done&quot;</span><br />
&nbsp; &nbsp; <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">'Unique e-mails: '</span> <span style="color: #000000; font-weight: bold;">`/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">wc</span> <span style="color: #660033;">-l</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$PWD</span>/<span style="color: #007800;">$SECTION</span>/emails.txt&quot;</span><span style="color: #000000; font-weight: bold;">`</span><br />
&nbsp; &nbsp; <span style="color: #7a0874; font-weight: bold;">echo</span><br />
<span style="color: #000000; font-weight: bold;">done</span>;<br />
<br />
<span style="color: #666666; font-style: italic;"># Для повторных запусков (если не было вручную уничтожено созданное</span><br />
<span style="color: #666666; font-style: italic;">#дерево каталогов с адресами) - сохранять только уникальные вновь добавленные адреса</span><br />
<span style="color: #c20cb9; font-weight: bold;">sort</span> <span style="color: #660033;">-ui</span> <span style="color: #660033;">-o</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$PWD</span>/summary_emails.txt&quot;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$PWD</span>/summary_emails.txt&quot;</span><br />
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">'Total unique e-mails: '</span> <span style="color: #000000; font-weight: bold;">`/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">wc</span> <span style="color: #660033;">-l</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$PWD</span>/summary_emails.txt&quot;</span><span style="color: #000000; font-weight: bold;">`</span></div></div>
<p>P.S.:</p>
<pre>
  .-´¯¯¯`-.
,´         `.
|            \
|             \
\           _  \
,\  _    ,´¯,/¯)\
( q \ \,´ ,´ ,´¯)
 `._,)     -´,-´)
   \/         ,´/
    )        / /
   /       ,´-´
</pre>

	Метки:<a href="http://www.dimio.org/tag/mail-ru" title="mail.ru" rel="tag nofollow">mail.ru</a>, <a href="http://www.dimio.org/tag/internet" title="Интернет" rel="tag nofollow">Интернет</a>, <a href="http://www.dimio.org/tag/parser" title="парсер" rel="tag nofollow">парсер</a><br />

	<h4>Еще на похожие темы:</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.dimio.org/anonimajzer-kak-zamena-proksi-proverka-anonimajzerov-na-validnost.html" title="Анонимайзер как замена прокси. Проверка анонимайзеров на валидность (27/08/2010)">Анонимайзер как замена прокси. Проверка анонимайзеров на валидность</a></li>
	<li><a href="http://www.dimio.org/chto-takoe-socialnaya-set.html" title="Что такое социальная сеть? (17/10/2009)">Что такое социальная сеть?</a></li>
	<li><a href="http://www.dimio.org/xoroshij-akkaunt-vkontakte-nachinaetsya-s-interesnoj-avatarki.html" title="Хороший аккаунт Вконтакте начинается с интересной аватарки! (25/04/2011)">Хороший аккаунт Вконтакте начинается с интересной аватарки!</a></li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.dimio.org/otvetymail-ru-mechta-spamera.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Поиск по мобильным проложениям от Яндекса (Андройд и Айфон)</title>
		<link>http://www.dimio.org/poisk-po-mobilnym-prolozheniyam-ot-yandeksa-androjd-i-ajfon.html</link>
		<comments>http://www.dimio.org/poisk-po-mobilnym-prolozheniyam-ot-yandeksa-androjd-i-ajfon.html#comments</comments>
		<pubDate>Fri, 16 Sep 2011 05:28:13 +0000</pubDate>
		<dc:creator>dimio</dc:creator>
				<category><![CDATA[Гаджеты]]></category>
		<category><![CDATA[Интернет]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[yandex]]></category>

		<guid isPermaLink="false">http://www.dimio.org/?p=486</guid>
		<description><![CDATA[Яндекс порадовал недовно (а именно &#8211; 13 сентября с.г.) запустив сервис поиска по мобильным приложениям (для андройд маркета и аппсторе под айфон &#8211; Как найти «ну-вот-это-как-его-там» мобильное приложение?). Попользовался &#8211; остался доволен, действительно удобно. На маркете тематического поиска как такового нет &#8211; можно только ходить по категориям, листая всё подряд. Поэтому чтобы найти какую-то тематическую [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.towerdefence.ru/game/23/vector-tower-defence-2.html" ><img src="http://www.dimio.org/wp-content/uploads/2011/09/yandex-mobile-apps-search_screen4.png" alt="master of defence" title="master of defence" width="498" height="374" class="aligncenter size-full wp-image-492" /></a></p>
<p>Яндекс порадовал недовно (а именно &#8211; 13 сентября с.г.) запустив <noindex><a rel="nofollow" target="_blank" href="http://www.dimio.org/e3f466/URBFQw1KSVVDFBUZS1laUAYZT0JD/">сервис поиска по мобильным приложениям</a></noindex> (для <a href="http://www.dimio.org/samsung-galaxy-spica-kak-ya-obzavyolsya-android-kommunikatorom.html">андройд</a> маркета и аппсторе под айфон &#8211; <noindex><a rel="nofollow" target="_blank" href="http://www.dimio.org/e3f466/URBFQw1KSU1SCgJSShZYXRUEC19DQghQVBtXXg5LVQEMVgYHGQ0SWV8=/"><strong>Как найти «ну-вот-это-как-его-там» мобильное приложение?</strong></a></noindex>). Попользовался &#8211; остался доволен, действительно удобно.</p>
<p>На маркете тематического поиска как такового нет &#8211; можно только ходить по категориям, листая всё подряд. Поэтому чтобы найти какую-то тематическую софтину я шел на форумы 4pda и искал там, затем вбивал название или баркод в телефон и только тогда получал искомое.</p>
<p>Сервис поиска использует HTML5 и поэтому заработает не во всех браузерах (в Opera Mini например работать отказался, только в штатном браузере андройда). Модель телефона определяет автоматически, что удобно. Для выбранного приложения будут показаны описание, отзывы и скриншоты с маркета. После выбора установки перебрасывает на маркет и весь процесс идёт как обычно, затем следует возврат к окну поиска.</p>
<p>Не имея айфона &#8211; не могу сказать, насколько оправдан такой поиск для него. Под андройд сейчас он оказался для меня достаточно удобен, но вот сколь долго подобный функционал не будет реализован средствами маркета &#8211; вопрос.<br />
<a href="http://www.dimio.org/wp-content/uploads/2011/09/yandex-mobile-apps-search.gif"><img src="http://www.dimio.org/wp-content/uploads/2011/09/yandex-mobile-apps-search.gif" alt="Поиск по мобильным приложениям для андройд и айфон" title="yandex-mobile-apps-search" width="124" height="124" class="aligncenter size-full wp-image-487" /></a></p>

	Метки:<a href="http://www.dimio.org/tag/android" title="android" rel="tag nofollow">android</a>, <a href="http://www.dimio.org/tag/yandex" title="yandex" rel="tag nofollow">yandex</a>, <a href="http://www.dimio.org/tag/internet" title="Интернет" rel="tag nofollow">Интернет</a><br />

	<h4>Еще на похожие темы:</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.dimio.org/registraciya-v-google-plus-invajt-ne-nuzhen.html" title="Регистрация в Google plus: инвайт не нужен! (22/09/2011)">Регистрация в Google plus: инвайт не нужен!</a></li>
	<li><a href="http://www.dimio.org/bolt-brauzer-dlya-android.html" title="BOLT &#8211; браузер для Android (21/10/2011)">BOLT &#8211; браузер для Android</a></li>
	<li><a href="http://www.dimio.org/chto-takoe-socialnaya-set.html" title="Что такое социальная сеть? (17/10/2009)">Что такое социальная сеть?</a></li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.dimio.org/poisk-po-mobilnym-prolozheniyam-ot-yandeksa-androjd-i-ajfon.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NO WAY</title>
		<link>http://www.dimio.org/no-way.html</link>
		<comments>http://www.dimio.org/no-way.html#comments</comments>
		<pubDate>Mon, 20 Jun 2011 09:27:49 +0000</pubDate>
		<dc:creator>dimio</dc:creator>
				<category><![CDATA[Гаджеты]]></category>
		<category><![CDATA[Технократия]]></category>
		<category><![CDATA[гаджет]]></category>
		<category><![CDATA[жизненное]]></category>
		<category><![CDATA[роисся вперде]]></category>
		<category><![CDATA[самодел]]></category>

		<guid isPermaLink="false">http://www.dimio.org/?p=475</guid>
		<description><![CDATA[Не так давно рассказывал про свою переделку автомобильного компрессора Беркут R17 (приделывал к нему &#8220;дистанционное управление&#8221;, которое создатели по какой-то причине проигнорировали, хотя конструкция компрессора прямо-таки кричит о его необходимости &#8211; Дистанционное управление для автомобильного компрессора Беркут). А вот в процессе дальнейшего монтажа компрессора непосредственно на автомобиль &#8211; столкнулся с мелкой, но весьма неприятной проблемой. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ecocomfort.ru/catalog/multisplit/" ><img src="http://www.dimio.org/wp-content/uploads/2011/06/0-011-82-superseal-connector-2.8mm-female-pin-housing-2-way-2448-p-150x150.jpg" alt="сплит система panasonic" title="сплит системы, мульти сплит системы" width="150" height="150" class="alignleft size-thumbnail wp-image-474" /></a></p>
<p>Не так давно рассказывал про свою переделку автомобильного компрессора Беркут R17 (приделывал к нему &#8220;дистанционное управление&#8221;, которое создатели по какой-то причине проигнорировали, хотя конструкция компрессора прямо-таки кричит о его необходимости &#8211; <a href="http://www.dimio.org/distancionnoe-upravlenie-dlya-avtomobilnogo-kompressora-berkut.html"><strong>Дистанционное управление для автомобильного компрессора Беркут</strong></a>). А вот в процессе дальнейшего монтажа компрессора непосредственно на автомобиль &#8211; столкнулся с мелкой, но весьма неприятной проблемой.</p>
<p>Помешало закончить начатое банальное отсутствие в продаже нужных силовых разъёмов &#8211; на две жилы, сечением до 2.5 квадратов каждая. К тому, что различный инструмент и снаряжение нужно покупать напрямую из-за границы, я уже давно привык &#8211; выходит намного дешевле и без мучений с обзвоном бесконечных &#8220;интернет-магазинов&#8221;, где нужная вещь присутствует в прайсе и отсутствует по факту. Но с электроникой до сей поры всё было довольно неплохо &#8211; хоть и дороже, чем у тех же китайцев напрямую, но если что-то срочно надо &#8211; можно пойти и купить. Как оказалось &#8211; далеко не всё. Такой банальной вещи, как разъемы, найти не удалось.</p>
<p>Во время бесплодных поисков посетил два авторынка, несколько магазинов автозапчастей и магазинов электроники. Нашел в интернете сайты фирм, якобы торгующих нужными разъемами &#8211; по электронной почте ответить не соизволили &#8211; звонить уже не хотелось. В итоге нужные разъемы были за 20 минут обнаружены за границей и ещё за 5 минут заказаны. Если бы я не пытался поддержать отечественного &#8220;производителя&#8221;-импотента, а сразу бы обратился к тем, кого мы давно &#8220;догнали и перегнали, оставив далеко позади&#8221; &#8211; давно бы получил нужное и закончил апгрейд машины. Морали не будет, всё вполне очевидно&#8230;</p>

	Метки:<a href="http://www.dimio.org/tag/gadzhet" title="гаджет" rel="tag nofollow">гаджет</a>, <a href="http://www.dimio.org/tag/zhiznennoe" title="жизненное" rel="tag nofollow">жизненное</a>, <a href="http://www.dimio.org/tag/roissya-vperde" title="роисся вперде" rel="tag nofollow">роисся вперде</a>, <a href="http://www.dimio.org/tag/samodel" title="самодел" rel="tag nofollow">самодел</a><br />

	<h4>Еще на похожие темы:</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.dimio.org/sozdanie-infrakrasnoj-kamery-nochnogo-videniya-iz-veb-kamery.html" title="Создание инфракрасной камеры ночного видения из веб-камеры (13/08/2010)">Создание инфракрасной камеры ночного видения из веб-камеры</a></li>
	<li><a href="http://www.dimio.org/pohodniy_istochnik_pitanija_na_solnechnih_batarejah_svoimi_rukami.html" title="Походный источник питания на солнечных батареях своими руками. (10/09/2009)">Походный источник питания на солнечных батареях своими руками.</a></li>
	<li><a href="http://www.dimio.org/povyshaem-bytovoj-komfort.html" title="Повышаем бытовой комфорт &#8211; кофеварка (30/03/2011)">Повышаем бытовой комфорт &#8211; кофеварка</a></li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.dimio.org/no-way.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Как я ремонтировал шланг горелки Kovea 0211L</title>
		<link>http://www.dimio.org/kak-ya-remontiroval-shlang-gorelki-kovea-0211l.html</link>
		<comments>http://www.dimio.org/kak-ya-remontiroval-shlang-gorelki-kovea-0211l.html#comments</comments>
		<pubDate>Fri, 10 Jun 2011 08:18:00 +0000</pubDate>
		<dc:creator>dimio</dc:creator>
				<category><![CDATA[Путешествия]]></category>
		<category><![CDATA[жизненное]]></category>
		<category><![CDATA[отдых]]></category>
		<category><![CDATA[путешествия]]></category>

		<guid isPermaLink="false">http://www.dimio.org/?p=467</guid>
		<description><![CDATA[Давно пользуюсь горелкой от Kovea, но на одной из последних охот не уследили за шлангом (поставили баллон с газом на котёл, чтобы подогревался и газ лучше выходил) &#8211; перегорел от факела горелки, причём металлическая оплётка осталась цела, а во внутренней резиновой трубке прогорело отверстие &#8211; снаружи не заклеить. Способ ремонта довольно тривиальный &#8211; вырезать повреждённый [...]]]></description>
			<content:encoded><![CDATA[<p>Давно пользуюсь горелкой от Kovea, но на одной из последних охот не уследили за шлангом (поставили баллон с газом на котёл, чтобы подогревался и газ лучше выходил) &#8211; перегорел от факела горелки, причём металлическая оплётка осталась цела, а во внутренней резиновой трубке прогорело отверстие &#8211; снаружи не заклеить.</p>
<p>Способ ремонта довольно тривиальный &#8211; вырезать повреждённый участок и срастить шланг через штуцер. Однако поиски по интернету показали, что штуцеры под такие газовые шланги хоть и есть (теоретически) в продаже, но стоят довольно дорого (а сами шланги и того дороже) и ждать их доставки тоже придётся довольно долго. Прогулки по автозапчастям тоже результата не принесли &#8211; слишком мал внутренний диаметр газопроводного шланга горелки. Собственно решению проблемы с отсутствием подходящих запчастей и посвящена заметка, поскольку в интернете на эту тему ничего толкового накопать не удалось.<br />
<span id="more-467"></span></p>
<p>Итак, для ремонта шланга горелки <strong>Kovea 0211L</strong> идеально подошёл кусочек использованного стержня от шариковой ручки! Входит в шланг внатяг и обеспечивает достаточную герметичность соединения сам по себе даже. Я посадил его на силиконовый клей-герметик, при этом при сближении концов шланга лишний герметик заполнил шов стыка. В результате &#8211; работоспособность горелки восстановлена, шланг гибкость не утратил (штуцер не слишком длинный, а герметик эластичен даже после вулканизации), стык нигде не травит. И самое приятное &#8211; ремонт занимает 10 минут и практически ничего не стоит (если герметик есть в хозяйстве).<br />
<a href="http://www.dimio.org/wp-content/uploads/2011/06/IMG_20110610_093250.jpg"><img src="http://www.dimio.org/wp-content/uploads/2011/06/IMG_20110610_093250-300x225.jpg" alt="Ремонт шланга горелки Kovea 0211L" title="Ремонт шланга горелки Kovea 0211L" width="300" height="225" class="aligncenter size-medium wp-image-468" /></a></p>

	Метки:<a href="http://www.dimio.org/tag/zhiznennoe" title="жизненное" rel="tag nofollow">жизненное</a>, <a href="http://www.dimio.org/tag/otdyx" title="отдых" rel="tag nofollow">отдых</a>, <a href="http://www.dimio.org/tag/puteshestviya" title="путешествия" rel="tag nofollow">путешествия</a><br />

	<h4>Еще на похожие темы:</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.dimio.org/puteshestvie-po-ukraine.html" title="Путешествие по Украине (27/05/2011)">Путешествие по Украине</a></li>
	<li><a href="http://www.dimio.org/podmoskove-dlya-puteshestvennika.html" title="Подмосковье для путешественника (25/05/2011)">Подмосковье для путешественника</a></li>
	<li><a href="http://www.dimio.org/malenkij-sekret-xoroshego-snimka.html" title="Маленький секрет хорошего снимка (18/03/2011)">Маленький секрет хорошего снимка</a></li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.dimio.org/kak-ya-remontiroval-shlang-gorelki-kovea-0211l.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Perl YAPC::Russia &#8211; no threads + новинки Perl 5.14</title>
		<link>http://www.dimio.org/perl-yapcrussia-no-threads-novinki-perl-5-14.html</link>
		<comments>http://www.dimio.org/perl-yapcrussia-no-threads-novinki-perl-5-14.html#comments</comments>
		<pubDate>Wed, 25 May 2011 09:44:53 +0000</pubDate>
		<dc:creator>dimio</dc:creator>
				<category><![CDATA[Новости]]></category>
		<category><![CDATA[Технократия]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[многопоточность]]></category>
		<category><![CDATA[программинг]]></category>

		<guid isPermaLink="false">http://www.dimio.org/?p=444</guid>
		<description><![CDATA[Две презентации (под катом) с недавно прошедшей конференции YAPC::Russia (посвящённой языку Perl), которые мне захотелось сохранить для памяти. no threads &#8211; обзор многопоточности (реализованной через модуль threads) в Perl с замерами скорости выполнения однопоточного и многопоточного приложения. Выводы &#8211; многопоточность через threads &#8211; не выход, время исполнения больше. Приводятся модули и краткие рецепты для реализации [...]]]></description>
			<content:encoded><![CDATA[<p>Две презентации (под катом) с недавно прошедшей конференции YAPC::Russia (посвящённой языку <a href="http://www.dimio.org/perl-practical-extraction-and-report-language.html">Perl</a>), которые мне захотелось сохранить для памяти.</p>
<ul>
<li><strong>no threads</strong> &#8211; обзор многопоточности (реализованной через модуль <em>threads</em>) в Perl с замерами скорости выполнения однопоточного и многопоточного приложения. Выводы &#8211; многопоточность через <em>threads</em> &#8211; не выход, время исполнения больше. Приводятся модули и краткие рецепты для реализации многопоточных элементов приложения, специфичные для каждого из возможных случаев распараллеливания вычислений &#8211; <a href="http://www.dimio.org/sravnenie-proizvoditelnosti-setevyx-bibliotek-v-perl.html">повышение производительности Perl-приложения при работе с сетью</a>; при выполнении большого количества дисковых операций; при ограниченных вычислительных ресурсах (один процессор).</li>
<li><strong>Что нового в Perl 5.14</strong> &#8211; обзор новинок Perl версий 5.12 и 5.14 &#8211; самое заметное сжато и в примерах. Неплохая памятка, позволит не отстать от жизни <img src='http://www.dimio.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Самое заметное на мой взгляд &#8211; поддержка Unicode 6.0 и добавление в связи с этим новых модификаторов работы с регулярными выражениями. Ознакомиться и использовать по крайней мере &#8220;для себя&#8221; &#8211; полезно.</li>
</ul>
<p><span id="more-444"></span></p>
<div style="width:425px" id="__ss_8079174"> <strong style="display:block;margin:12px 0 4px"><noindex><a rel="nofollow" target="_blank" href="http://www.dimio.org/e3f466/URBFQw1KSUNEE0hEXlFQURAJAEJTHghUTBpQRBFJFlZXAFhBGAsJGUcMFFJTXEc=/" title="No threads">No threads</a></noindex></strong> <iframe src="http://www.slideshare.net/slideshow/embed_code/8079174" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
<div style="padding:5px 0 12px"> View more <noindex><a rel="nofollow" target="_blank" href="http://www.dimio.org/e3f466/URBFQw1KSUNEE0hEXlFQURAJAEJTHghUTBo=/">presentations</a></noindex> from <noindex><a rel="nofollow" target="_blank" href="http://www.dimio.org/e3f466/URBFQw1KSUNEE0hEXlFQURAJAEJTHghUTBpQRBFJFlZXAFhB/">dur-randir</a></noindex> </div>
</p></div>
<div style="width:425px" id="__ss_7976715"> <strong style="display:block;margin:12px 0 4px"><noindex><a rel="nofollow" target="_blank" href="http://www.dimio.org/e3f466/URBFQw1KSUNEE0hEXlFQURAJAEJTHghUTBpVXwcdSkRRS0FWRQlLAQJQ/" title="Что нового в Perl 5.14">Что нового в Perl 5.14</a></noindex></strong> <iframe src="http://www.slideshare.net/slideshow/embed_code/7976715" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
<div style="padding:5px 0 12px"> View more <noindex><a rel="nofollow" target="_blank" href="http://www.dimio.org/e3f466/URBFQw1KSUNEE0hEXlFQURAJAEJTHghUTBo=/">presentations</a></noindex> from <noindex><a rel="nofollow" target="_blank" href="http://www.dimio.org/e3f466/URBFQw1KSUNEE0hEXlFQURAJAEJTHghUTBpVXwcdSkRR/">andy.sh</a></noindex> </div>
</p></div>

	Метки:<a href="http://www.dimio.org/tag/perl" title="perl" rel="tag nofollow">perl</a>, <a href="http://www.dimio.org/tag/mnogopotochnost" title="многопоточность" rel="tag nofollow">многопоточность</a>, <a href="http://www.dimio.org/tag/programmirovanie" title="программинг" rel="tag nofollow">программинг</a><br />

	<h4>Еще на похожие темы:</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.dimio.org/sravnenie-proizvoditelnosti-setevyx-bibliotek-v-perl.html" title="Сравнение производительности сетевых библиотек в Perl (07/04/2011)">Сравнение производительности сетевых библиотек в Perl</a></li>
	<li><a href="http://www.dimio.org/software" title="Софт (02/10/2009)">Софт</a></li>
	<li><a href="http://www.dimio.org/sinxronizaciya-tekstovyx-fajlov-prostoj-skript-na-perl.html" title="Синхронизация текстовых файлов &#8211; простой скрипт на Perl (09/07/2010)">Синхронизация текстовых файлов &#8211; простой скрипт на Perl</a></li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.dimio.org/perl-yapcrussia-no-threads-novinki-perl-5-14.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Быстрая индексация страниц Яндексом</title>
		<link>http://www.dimio.org/bystraya-indeksaciya-stranic-yandeksom.html</link>
		<comments>http://www.dimio.org/bystraya-indeksaciya-stranic-yandeksom.html#comments</comments>
		<pubDate>Fri, 13 May 2011 10:59:50 +0000</pubDate>
		<dc:creator>dimio</dc:creator>
				<category><![CDATA[seo]]></category>
		<category><![CDATA[Блоггинг]]></category>
		<category><![CDATA[Хитрости]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[индексация]]></category>
		<category><![CDATA[поисковики]]></category>
		<category><![CDATA[трюки]]></category>

		<guid isPermaLink="false">http://www.dimio.org/?p=417</guid>
		<description><![CDATA[Решил вернуться, так сказать, к истокам ненадолго и снова поднять тему про быструю индексацию сайта в поисковиках, о чём уже писал почти два года назад. Теперь надобность непосредственно в индексации сайта целиком уже отпала &#8211; он и так давно в индексе, а вот ускорение индексации новых страниц может быть полезным. Уже рассказывал про социальные закладки [...]]]></description>
			<content:encoded><![CDATA[<p>Решил вернуться, так сказать, к истокам ненадолго и снова поднять тему про <a href="http://www.dimio.org/bystraya-indeksaciya-sajta-v-poiskovikax.html"><strong>быструю индексацию сайта в поисковиках</strong></a>, о чём уже писал почти два года назад. Теперь надобность непосредственно в индексации сайта целиком уже отпала &#8211; он и так давно в индексе, а вот ускорение индексации новых страниц может быть полезным.<br />
Уже рассказывал про социальные закладки (в заметке <a href="http://www.dimio.org/prodvizhenie-socialnymi-zakladkami.html"><strong>Продвижение социальными закладками</strong></a>), на тот момент они действительно ускоряли индексацию, а в последнее время стал замечать, что в отношении Яндекса закладки стали совершенно неэффективны &#8211; никакого ускорения индексации не происходит. Стал искать другой способ и вспомнил, что среди прочего, при регистрации почты на Яндексе появляется возможность вести свой блог. Его и решил попробовать в качестве ускорителя индексации Яндексом.<br />
<span id="more-417"></span></p>
<p>Не стану утверждать, будто бы это эксклюзивная находка &#8211; уверен, что далеко не я один додумался до этого. Впрочем, если зациклиться на вторичности, то лучше вовсе ничего не делать, ведь как известно &#8211; &#8220;всё уже придумано до нас&#8221; <img src='http://www.dimio.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>В самом способе нет никакой тайны &#8211; при необходимости ускорить индексацию какой-то страницы я делаю анонс в яндекс-блоге (от пары коротеньких абзацев текста до полноценной заметки) со ссылкой на эту страницу. Поскольку блог-движки постоянно посещаются и быстро индексируются <a href="http://www.dimio.org/bystrorobot-chto-eto-takoe.html">быстророботом Яндекса</a>, а тут ещё и платформа принадлежит самому же Яндексу &#8211; так же быстро индексируются ссылки из анонсов в блоге. Всё весьма несложно, времени требует не много (во время перерыва на чай анонс накидать вполне можно успеть) и весьма эффективно &#8211; проиндексированные быстророботом ссылки попадают в основной индекс спустя двое суток.</p>
<p>В заключение &#8211; некоторые наблюдения: запись в Яндекс-блоге индексируется от тридцати минут до полутора часов, после чего страница по ссылке индексируется в промежуток от двух до двенадцати часов (если ссылок в анонсе несколько &#8211; они могут проиндексироваться партиями, например две могут &#8211; за 2 часа, а еще две &#8211; за 8). Обратил внимание, что на скорость индексации может повлиять дата публикации страницы (в WordPress можно сделать &#8220;отложенную публикацию&#8221; как вперёд, так и назад по времени) &#8211; &#8220;старые&#8221; записи индексируются медленней.</p>
<p>Кстати, проиндексированные быстророботом ссылки не оплачиваются в <a href="http://www.dimio.org/zarabatyvaj-s-gogetlinks-publikaciya-ssylok-zametok-i-kartinok-za-dengi.html">GoGetLinks</a> до их индексации основным роботом Яндекса и отмечены соответствующим статусом, однако они участвуют в расчете процента проиндексированных ссылок для площадки.</p>

	Метки:<a href="http://www.dimio.org/tag/how-to" title="how-to" rel="tag nofollow">how-to</a>, <a href="http://www.dimio.org/tag/seo" title="seo" rel="tag nofollow">seo</a>, <a href="http://www.dimio.org/tag/indeksaciya" title="индексация" rel="tag nofollow">индексация</a>, <a href="http://www.dimio.org/tag/poiskoviki" title="поисковики" rel="tag nofollow">поисковики</a>, <a href="http://www.dimio.org/tag/tryuki" title="трюки" rel="tag nofollow">трюки</a><br />

	<h4>Еще на похожие темы:</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.dimio.org/prodvizhenie-socialnymi-zakladkami.html" title="Продвижение социальными закладками (05/03/2010)">Продвижение социальными закладками</a></li>
	<li><a href="http://www.dimio.org/bystraya-indeksaciya-sajta-v-poiskovikax.html" title="Быстрая индексация сайта в поисковиках (15/08/2009)">Быстрая индексация сайта в поисковиках</a></li>
	<li><a href="http://www.dimio.org/registraciya-sajta-v-katalogax-avtomaticheski-progon.html" title="Регистрация сайта в каталогах &#8211; автоматический прогон (07/05/2011)">Регистрация сайта в каталогах &#8211; автоматический прогон</a></li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.dimio.org/bystraya-indeksaciya-stranic-yandeksom.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Стандартные пароли для устройств &#8211; большой список</title>
		<link>http://www.dimio.org/standartnye-paroli-dlya-ustrojstv-bolshoj-spisok.html</link>
		<comments>http://www.dimio.org/standartnye-paroli-dlya-ustrojstv-bolshoj-spisok.html#comments</comments>
		<pubDate>Wed, 11 May 2011 11:01:18 +0000</pubDate>
		<dc:creator>dimio</dc:creator>
				<category><![CDATA[Гаджеты]]></category>
		<category><![CDATA[гаджет]]></category>
		<category><![CDATA[железо]]></category>
		<category><![CDATA[закладки]]></category>
		<category><![CDATA[памятка]]></category>

		<guid isPermaLink="false">http://www.dimio.org/?p=418</guid>
		<description><![CDATA[Ссылка на память &#8211; список стандартных паролей для большого числа различных устройств: Default Password List. Стандартные пароли для роутеров, МФУ и т.п. устройств. Указаны протоколы доступа для авторизации (telnet, http и т.д.) Метки:гаджет, железо, закладки, памятка Еще на похожие темы: Как я хотел менять ноутбук Создание инфракрасной камеры ночного видения из веб-камеры Продвижение социальными закладками]]></description>
			<content:encoded><![CDATA[<p>Ссылка на память &#8211; список стандартных паролей для большого числа различных устройств: <noindex><a rel="nofollow" target="_blank" href="http://www.dimio.org/e3f466/URBFQw1KSUNEE0hHWl1aWwYNCEQbRRUfV0dTHgcUCBhdFF0dXxELWA==/">Default Password List</a></noindex>. Стандартные пароли для роутеров, МФУ и т.п. устройств. Указаны протоколы доступа для авторизации (telnet, http и т.д.)</p>

	Метки:<a href="http://www.dimio.org/tag/gadzhet" title="гаджет" rel="tag nofollow">гаджет</a>, <a href="http://www.dimio.org/tag/zhelezo" title="железо" rel="tag nofollow">железо</a>, <a href="http://www.dimio.org/tag/zakladki" title="закладки" rel="tag nofollow">закладки</a>, <a href="http://www.dimio.org/tag/pamyatka" title="памятка" rel="tag nofollow">памятка</a><br />

	<h4>Еще на похожие темы:</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.dimio.org/kak-ya-xotel-menyat-noutbuk.html" title="Как я хотел менять ноутбук (29/03/2011)">Как я хотел менять ноутбук</a></li>
	<li><a href="http://www.dimio.org/sozdanie-infrakrasnoj-kamery-nochnogo-videniya-iz-veb-kamery.html" title="Создание инфракрасной камеры ночного видения из веб-камеры (13/08/2010)">Создание инфракрасной камеры ночного видения из веб-камеры</a></li>
	<li><a href="http://www.dimio.org/prodvizhenie-socialnymi-zakladkami.html" title="Продвижение социальными закладками (05/03/2010)">Продвижение социальными закладками</a></li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.dimio.org/standartnye-paroli-dlya-ustrojstv-bolshoj-spisok.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TOR NEWNYM &#8211; автоматическая смена IP в TOR</title>
		<link>http://www.dimio.org/tor-newnym-avtomaticheskaya-smena-ip-v-tor.html</link>
		<comments>http://www.dimio.org/tor-newnym-avtomaticheskaya-smena-ip-v-tor.html#comments</comments>
		<pubDate>Thu, 05 May 2011 15:40:47 +0000</pubDate>
		<dc:creator>dimio</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Интернет]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[tor]]></category>

		<guid isPermaLink="false">http://www.dimio.org/?p=406</guid>
		<description><![CDATA[Время от времени использую в качестве прокси сеть TOR, недавно вот пригодилось при проверке готовности загранпаспорта через интернет, когда постоянно получал ошибку о превышении числа запросов к серверу &#8211; пришлось сделать макрос на lynx, который через TOR периодически проверял готовность загранпаспорта (Автоматическая проверка готовности загранпаспорта). Удобство TOR не только в том, что это рабочий бесплатный [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://ht-news.com/" ><img src="http://www.dimio.org/wp-content/uploads/2011/05/the_onion_router-300x235.png" alt="Высокие технологии" title="Автоматическая смена IP-адреса в TOR" width="300" height="235" class="aligncenter size-medium wp-image-409" /></a></p>
<p>Время от времени использую в качестве прокси  сеть <a href="http://www.dimio.org/tor-the-onion-router-luchshij-iz-besplatnyx-proksi.html">TOR</a>, недавно вот пригодилось при проверке готовности загранпаспорта через интернет, когда постоянно получал ошибку о превышении числа запросов к серверу &#8211; пришлось сделать макрос на <em>lynx</em>, который через <em>TOR</em> периодически проверял готовность загранпаспорта (<strong><a href="http://www.dimio.org/avtomaticheskaya-proverka-gotovnosti-zagranpasporta.html">Автоматическая проверка готовности загранпаспорта</a></strong>). Удобство <em>TOR</em> не только в том, что это рабочий бесплатный прокси (с шифрованием трафика кстати) &#8211; <em>TOR</em> это сеть и прокси-серверы, а значит и IP-адреса, можно легко менять при необходимости, даже автоматически.</p>
<p>Под <em>Windows</em> сменить прокси и IP-адрес совершенно несложно &#8211; в составе дистрибутива <em>TOR</em> для Windows присутствует графическая оболочка <em>Vidalia</em> и для получения нового IP-адреса достаточно нажать в ней кнопку &#8220;<em>Новый Ним / Новая личина / New NYM</em>&#8220;. Под <em>Linux</em> всё не так очевидно, хотя тоже несложно, как выяснилось &#8211; сделать автоматическую смену IP в <em>TOR</em> можно при помощи простого скрипта.</p>
<p><span id="more-406"></span></p>
<p>Когда мне в очередной раз надо было поменять &#8220;ним&#8221; в TOR из-под Linux, я решил попробовать разобраться в вопросе, поскольку привычное <code class="codecolorer bash default"><span class="bash"><span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>tor restart</span></code> перестало устраивать: во-первых нужно постоянно использовать root-доступ, во-вторых на время перезагрузки сервиса TOR он становится недоступен, а в-третьих &#8211; это просто как-то неправильно &#8211; перезагружать весь сервис ради получения новго IP-адреса.<br />
Полез в документацию к TOR и выяснил, что демон может открывать управляющий порт, на который возможно подключение при помощи <em>telnet</em> с последующей отправкой команд демону TOR.</p>
<h3>Смена НИМа / IP в TOR при помощи telnet</h3>
<p>Чтобы передавать команды демону TOR (и в частности &#8211; команду на смену &#8220;нима&#8221;/IP-адреса), нужно раскомментировать в <strong>/etc/tor/torrc</strong> следующие строки:</p>
<div class="codecolorer-container dot default" style="border:1px solid #9F9F9F;width:100%;"><div class="dot codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">## The port on which Tor will listen for local connections from Tor</span><br />
<span style="color: #339933;">## controller applications, as documented in control-spec.txt.</span><br />
ControlPort <span style="color: #cc66cc;">9051</span></div></div>
<p>После чего перезагружаем TOR, подключаемся к нему: <code class="codecolorer bash default"><span class="bash">telnet 127.0.0.1 <span style="color: #000000;">9051</span></span></code>, вводим команду <strong>AUTHENTICATE</strong> и затем <strong>signal NEWNYM</strong>. В Windwos действия по смене IP аналогичные (при создании скрипта для автоматической смены IP в TOR нужно помнить, что перевод строки для Windows будет выглядеть как <strong>\r\n</strong>).<br />
Несложно заметить, что способ не самый безопасный &#8211; подключиться может любой локальный пользователь. Конечно на домашней машине это не так страшно, но лучше сразу сделать правильно, без скидок на &#8220;тепличные условия&#8221;. Я выбрал вариант подключения к TOR с авторизацией по паролю (telnet-трафик впрочем никак не шифруется, так что под Windows вряд ли это вообще имеет смысл &#8211; практически всегда у пользователя там есть административные права, а значит и возможность использовать сниффер).</p>
<p>Для авторизации по паролю там же в <em>torrc</em> нужно сделать вот такие изменения:</p>
<div class="codecolorer-container dot default" style="border:1px solid #9F9F9F;width:100%;"><div class="dot codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">## If you enable the controlport, be sure to enable one of these</span><br />
<span style="color: #339933;">## authentication methods, to prevent attackers from accessing it.</span><br />
HashedControlPassword <span style="color: #cc66cc;">16</span>:B55A3F6B52F34E55609F6676DDBCEF4FD2BA7E318D9AF45AF878DB8A30<br />
<span style="color: #339933;">#CookieAuthentication 1</span><br />
<span style="color: #339933;">## Включение CookieAuthentication заставит tor создавать служебный файл,</span><br />
<span style="color: #339933;">## а подключаться на управляющий порт смогут только процессы, знающие содержимое этого файла.</span></div></div>
<p>Хэш-сумма пароля получается следующим образом: необходимо выполнить команду <code class="codecolorer bash default"><span class="bash">tor <span style="color: #660033;">--hash-password</span> <span style="color: #ff0000;">'new_tor_password'</span></span></code> &#8211; в ответ получим сгенерированный хэш-код пароля</p>
<div class="codecolorer-container bash default" style="border:1px solid #9F9F9F;width:100%;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">ibm: $ tor <span style="color: #660033;">--hash-password</span> <span style="color: #ff0000;">'new_tor_password'</span><br />
May 04 <span style="color: #000000;">19</span>:<span style="color: #000000;">29</span>:<span style="color: #000000;">14.173</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>notice<span style="color: #7a0874; font-weight: bold;">&#93;</span> Tor v0.2.1.29 <span style="color: #7a0874; font-weight: bold;">&#40;</span>r318f470bc5f2ad43<span style="color: #7a0874; font-weight: bold;">&#41;</span>. This is experimental software. Do not rely on it <span style="color: #000000; font-weight: bold;">for</span> strong anonymity. <span style="color: #7a0874; font-weight: bold;">&#40;</span>Running on Linux i686<span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
<span style="color: #000000;">16</span>:B55A3F6B52F34E55609F6676DDBCEF4FD2BA7E318D9AF45AF878DB8A30</div></div>
</p>
<p>Теперь процесс подключения на управляющий порт TOR через telnet и получения нового &#8220;нима&#8221;/IP-адреса будет выглядеть следующим образом:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:100%;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">ibm: $ telnet 127.0.0.1 <span style="color: #000000;">9051</span><br />
Trying 127.0.0.1...<br />
Connected to 127.0.0.1.<br />
Escape character is <span style="color: #ff0000;">'^]'</span>.<br />
AUTHENTICATE <span style="color: #ff0000;">&quot;new_tor_password&quot;</span><br />
<span style="color: #000000;">250</span> OK<br />
signal NEWNYM<br />
<span style="color: #000000;">250</span> OK<br />
quit</div></div>
</p>
<h3>Shell скрипт для автоматической смены IP в TOR</h3>
<p>Конечно, постоянно руками лазать и менять &#8220;ним&#8221; &#8211; не очень интересно. Упростить и автоматизировать этот процесс можно при помощи скрипта, выполнение которого в дальнейшем повесить например на <em>alias</em> для <a href="http://www.dimio.org/bash-born-again-shell-obolochka-komandnoj-stroki.html">bash</a> или кнопку-ярлык в <em>Gnome</em>. Скрипт использует утилиту для автоматизации интерактивных приложений <em>expect</em> (я воспользовался <em>empty-expect</em> чтобы не ставить еще и <em>tcl</em> вдобавок):</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:100%;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;">#!/bin/sh</span><br />
<span style="color: #666666; font-style: italic;"># Автоматическая смена НИМа в TOR</span><br />
empty <span style="color: #660033;">-f</span> <span style="color: #660033;">-i</span> torin <span style="color: #660033;">-o</span> torout telnet 127.0.0.1 <span style="color: #000000;">9051</span><br />
empty <span style="color: #660033;">-s</span> <span style="color: #660033;">-o</span> torin <span style="color: #ff0000;">&quot;AUTHENTICATE <span style="color: #000099; font-weight: bold;">\&quot;</span>new_tor_password<span style="color: #000099; font-weight: bold;">\&quot;</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><br />
empty <span style="color: #660033;">-s</span> <span style="color: #660033;">-o</span> torin <span style="color: #ff0000;">&quot;signal NEWNYM<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><br />
empty <span style="color: #660033;">-s</span> <span style="color: #660033;">-o</span> torin <span style="color: #ff0000;">&quot;quit<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span></div></div>
</p>
<p>
<a name="perl-tor-newnym"></a><br />
<h3>Perl скрипты для автоматической смены IP в TOR</h3>
<p>Такой же скрипт можно реализовать на <a href="http://www.dimio.org/perl-practical-extraction-and-report-language.html">Perl</a> с использованием модуля <em>Expect</em> (поскольку лично у меня ни этот модуль, ни утилита <em>empty</em> в системе установлены не были &#8211; особой разницы, что поставить, нет):</p>
<div class="codecolorer-container perl default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:100%;"><div class="perl codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">use</span> Expect<span style="color: #339933;">;</span><br />
<br />
<span style="color: #666666; font-style: italic;"># запуск команды в процессе-потомке</span><br />
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$exp</span> <span style="color: #339933;">=</span> Expect<span style="color: #339933;">-&gt;</span><span style="color: #006600;">spawn</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;telnet 127.0.0.1 9051&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #666666; font-style: italic;"># таймаут на отстутствие действий = 3 сек.</span><br />
<span style="color: #0000ff;">$exp</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">expect</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#91;</span> <span style="color: #009966; font-style: italic;">qr/Escape \s char .* \n/x</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000000; font-weight: bold;">sub</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #0000ff;">$exp</span><span style="color: #339933;">-&gt;</span><span style="color: #000066;">send</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'AUTHENTICATE &quot;new_tor_password&quot;'</span><span style="color: #339933;">.</span><span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;exp_continue<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#91;</span> <span style="color: #009966; font-style: italic;">qr/250 \s OK/x</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000000; font-weight: bold;">sub</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #0000ff;">$exp</span><span style="color: #339933;">-&gt;</span><span style="color: #000066;">send</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;signal NEWNYM<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #0000ff;">$exp</span><span style="color: #339933;">-&gt;</span><span style="color: #000066;">send</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;quit<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;exp_continue<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><br />
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
</p>
<p>Аналогичным образом можно воспользоваться например модулем <em>Net::Telnet</em>, который опять же не является core-модулем Perl, &#8211; он не тянет за собой никаких зависимостей, в отличает от <em>Expect</em>:</p>
<div class="codecolorer-container perl default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:100%;height:400px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br /></div></td><td><div class="perl codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">use</span> Net<span style="color: #339933;">::</span><span style="color: #006600;">Telnet</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$tnet</span> <span style="color: #339933;">=</span> Net<span style="color: #339933;">::</span><span style="color: #006600;">Telnet</span><span style="color: #339933;">-&gt;</span><span style="color: #000000; font-weight: bold;">new</span><span style="color: #009900;">&#40;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># Host указывать не обязательно</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># по умолчанию исп. localhost</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; Host &nbsp; &nbsp; &nbsp; <span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">'127.0.0.1'</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; Port &nbsp; &nbsp; &nbsp; <span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">'9051'</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; Timeout &nbsp; &nbsp;<span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">3</span><span style="color: #339933;">,</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># Раскомментировать чтобы получать</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># сообщения на станд. вывод</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">#Input_log &nbsp; &nbsp;=&gt; *STDOUT,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">#Output_log &nbsp; &nbsp;=&gt; *STDOUT,</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #666666; font-style: italic;"># Вариант первый - использовать методы print</span><br />
<span style="color: #666666; font-style: italic;"># (для отправки команд) и waitfor (для получения</span><br />
<span style="color: #666666; font-style: italic;"># ответов).</span><br />
<span style="color: #0000ff;">$tnet</span><span style="color: #339933;">-&gt;</span><span style="color: #000066;">print</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">q/AUTHENTICATE &quot;new_tor_password&quot;/</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #0000ff;">$tnet</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">waitfor</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'/^ 250 \s OK $/x'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #0000ff;">$tnet</span><span style="color: #339933;">-&gt;</span><span style="color: #000066;">print</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">q/signal NEWNYM/</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #0000ff;">$tnet</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">waitfor</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'/250 \s OK $/x'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #0000ff;">$tnet</span><span style="color: #339933;">-&gt;</span><span style="color: #000066;">print</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">q/quit/</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #0000ff;">$tnet</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">waitfor</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'/250 \s closing \s connection $/x'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #666666; font-style: italic;"># Вариант второй - передавать команды каждый раз,</span><br />
<span style="color: #666666; font-style: italic;"># как получено приглашение на ввод (prompt).</span><br />
<span style="color: #666666; font-style: italic;"># Prompt можно определить при создании $tnet</span><br />
<span style="color: #0000ff;">$tnet</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">prompt</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'//'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #0000ff;">$tnet</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">cmd</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">q/AUTHENTICATE &quot;new_tor_password&quot;/</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #0000ff;">$tnet</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">cmd</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">q/signal NEWNYM/</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #0000ff;">$tnet</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">cmd</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">q/quit/</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div></p>

	Метки:<a href="http://www.dimio.org/tag/how-to" title="how-to" rel="tag nofollow">how-to</a>, <a href="http://www.dimio.org/tag/linux" title="linux" rel="tag nofollow">linux</a>, <a href="http://www.dimio.org/tag/perl" title="perl" rel="tag nofollow">perl</a>, <a href="http://www.dimio.org/tag/proxy" title="proxy" rel="tag nofollow">proxy</a>, <a href="http://www.dimio.org/tag/tor" title="tor" rel="tag nofollow">tor</a><br />

	<h4>Еще на похожие темы:</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.dimio.org/cvetovaya-indikaciya-xoda-zagruzki-linux.html" title="Цветовая индикация хода загрузки Linux (21/09/2009)">Цветовая индикация хода загрузки Linux</a></li>
	<li><a href="http://www.dimio.org/fajl-nastrojki-vim-vimrc-dlya-linux-i-windows.html" title="Файл настройки vim &#8211; .vimrc (для Linux и Windows) (21/12/2009)">Файл настройки vim &#8211; .vimrc (для Linux и Windows)</a></li>
	<li><a href="http://www.dimio.org/podklyuchenie-cherez-vpn-v-debianubuntu-linux.html" title="Подключение через VPN в Debian/Ubuntu Linux (11/10/2011)">Подключение через VPN в Debian/Ubuntu Linux</a></li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.dimio.org/tor-newnym-avtomaticheskaya-smena-ip-v-tor.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>rsync &#8211; отличная замена scp!</title>
		<link>http://www.dimio.org/rsync-otlichnaya-zamena-scp.html</link>
		<comments>http://www.dimio.org/rsync-otlichnaya-zamena-scp.html#comments</comments>
		<pubDate>Thu, 28 Apr 2011 08:44:49 +0000</pubDate>
		<dc:creator>dimio</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[rsync]]></category>
		<category><![CDATA[жизненное]]></category>

		<guid isPermaLink="false">http://www.dimio.org/?p=389</guid>
		<description><![CDATA[Довольно смешно, но впервые воспользовался rsync только три недели назад. До этого пытался один раз, не разобрался с ключами и забросил. Зря, как оказалось! Главное достоинство rsync по сравнению с scp &#8211; показывает прогресс загрузки. Также рекурсивно загружает директории. Немаловажно &#8211; поддерживает докачку в обе стороны. Попользовался и сделал себе для bash алиас в bashrc [...]]]></description>
			<content:encoded><![CDATA[<p>Довольно смешно, но впервые воспользовался <em>rsync</em> только три недели назад. До этого пытался один раз, не разобрался с ключами и забросил. Зря, как оказалось!<br />
Главное достоинство <em>rsync</em> по сравнению с <em>scp</em> &#8211; показывает прогресс загрузки. Также рекурсивно загружает директории. Немаловажно &#8211; поддерживает докачку в обе стороны.</p>
<p>Попользовался и сделал себе для <a href="http://www.dimio.org/bash-born-again-shell-obolochka-komandnoj-stroki.html">bash</a> алиас в <em>bashrc</em> <code class="codecolorer bash default"><span class="bash"><span style="color: #007800;">rsync</span>=<span style="color: #ff0000;">&quot;rsync -P&quot;</span></span></code>, теперь всё время его использую для загрузки на хостинг. Авторизацию по ключам тоже настроил, так что можно делать бэкапы.<br />
Основной синтаксис вызова: <code class="codecolorer text default"><span class="text">rsync логин@хост:/откуда/что логин@хост:/куда/что</span></code>. В случае локальной машины логин и хост указывать естественно не нужно, достаточно только пути.<br />
Основные опции, которыми пользуюсь: <strong>-P</strong> &#8211; выводит прогресс-бар, <strong>-r</strong> &#8211; рекурсивная загрузка.</p>
<p>Если кто ещё тоже до сих пор не знаком с <em>rsync</em> и пользуется <em>scp/sftp</em> &#8211; самое время попробовать!</p>

	Метки:<a href="http://www.dimio.org/tag/linux" title="linux" rel="tag nofollow">linux</a>, <a href="http://www.dimio.org/tag/rsync" title="rsync" rel="tag nofollow">rsync</a>, <a href="http://www.dimio.org/tag/zhiznennoe" title="жизненное" rel="tag nofollow">жизненное</a><br />

	<h4>Еще на похожие темы:</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.dimio.org/obnovil-ubuntu-do-9-10.html" title="Обновил Ubuntu до 9.10 (06/11/2009)">Обновил Ubuntu до 9.10</a></li>
	<li><a href="http://www.dimio.org/cvetovaya-indikaciya-xoda-zagruzki-linux.html" title="Цветовая индикация хода загрузки Linux (21/09/2009)">Цветовая индикация хода загрузки Linux</a></li>
	<li><a href="http://www.dimio.org/xochesh-sdelat-xorosho-sdelaj-sam.html" title="Хочешь сделать хорошо &#8211; сделай сам (01/11/2011)">Хочешь сделать хорошо &#8211; сделай сам</a></li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.dimio.org/rsync-otlichnaya-zamena-scp.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Mojolicious &#8211; знакомство с &#8220;вебом из коробки&#8221;</title>
		<link>http://www.dimio.org/mojolicious-znakomstvo-s-vebom-iz-korobki.html</link>
		<comments>http://www.dimio.org/mojolicious-znakomstvo-s-vebom-iz-korobki.html#comments</comments>
		<pubDate>Fri, 22 Apr 2011 08:41:58 +0000</pubDate>
		<dc:creator>dimio</dc:creator>
				<category><![CDATA[Интернет]]></category>
		<category><![CDATA[Кодинг]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[mojolicious]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[программинг]]></category>

		<guid isPermaLink="false">http://www.dimio.org/?p=393</guid>
		<description><![CDATA[Что такое Mojolicious. Введение Благодаря заметке на Хабре (в кэшэ Google) наконец-то решил познакомиться с набирающим популярность фреймворком для веб-разработки на Perl под названием Mojolicious. В общем-то я взял пример скрипта из этой заметки и сделал его чуть более интересным для себя, чтобы охватить немного больше документации по фреймворку (результат вполне работоспособен, его можно посмотреть [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.dimio.org/wp-content/uploads/2011/04/mojolicious.jpg"><img src="http://www.dimio.org/wp-content/uploads/2011/04/mojolicious.jpg" alt="Mojolicious - веб из коробки" title="Mojolicious - a Perl web framework" width="348" height="206" class="aligncenter size-full wp-image-397" /></a></p>
<h2>Что такое Mojolicious. Введение</h2>
<p>Благодаря <noindex><a rel="nofollow" target="_blank" href="http://www.dimio.org/e3f466/URBFQw1KSVxSBhRWWllWRk0TFB9UXAlWSxpEVBEISwYIUwcKBEo=/">заметке на Хабре</a></noindex> (<noindex><a rel="nofollow" target="_blank" href="http://www.dimio.org/e3f466/URBFQw1KSUNWBgVWUVBRGgQODldaVRNCXUdXXg0QAVlNSlJcWkoVUVIWBV8NSQlXAgIJVQxvVFdqAlFmACU1QHNeWVJVFwdcUgYUGUBNG1YPDgZDGUADQ1QaBQBUUl0EFk9cXF0KCl1QDQlCQR4XBFBZWlNSDVUXGwUHCVgMCApLERcQB1ZeD1AQW1ReVl8SQFFSCA1XCgxKQBISU1dcDEoLREFUAFtDRBNIUF1XU1gGTxNF/">в кэшэ Google</a></noindex>) наконец-то решил познакомиться с набирающим популярность фреймворком для веб-разработки на Perl под названием <strong><noindex><a rel="nofollow" target="_blank" href="http://www.dimio.org/e3f466/URBFQw1KSVlcDglbW1tdW00UEh8=/">Mojolicious</a></noindex></strong>. В общем-то я взял пример скрипта из этой заметки и сделал его чуть более интересным для себя, чтобы охватить немного больше документации по фреймворку (результат вполне работоспособен, его можно посмотреть <a href="http://www.dimio.org/cgi-bin/dev/mojo-test.cgi">здесь</a>, а код и скриншот выложены в конце заметки). Сразу отмечу, что ни пример с Хабра, ни мой практически не отражают возможностей фреймворка, а только лишь иллюстрируют простоту его использования.</p>
<p>Итак, <strong>Mojolicious</strong> &#8211; фреймворк для разработки веб-приложений, основанный на &#8220;фреймворке для разработки фреймворков&#8221; <em>Mojo</em>, написанный на языке <a href="http://www.dimio.org/perl-practical-extraction-and-report-language.html">Perl</a> человеком по имени <em>Sebastian Riedel</em>, одним из авторов Perl-веб-фреймворка <em>Catalyst</em>, фактически для его замены.</p>
<p>Чем мне показался особенно интересен <strong>Mojolicious</strong>? Во-первых тем, что он имеет <a href="http://www.dimio.org/mojolicious-znakomstvo-s-vebom-iz-korobki.html#apprun">встроенный веб-сервер</a>, что в перспективе позволяет не только удобно разрабатывать и проверять приложение, но и распространять его для локального использования. При этом приложение получается универсальным и будет одинаково работоспособным как на локальной машине, так и на сервере. Во-вторых &#8211; <strong>Mojolicious</strong> зависит только от Perl, что также говорит в пользу &#8220;во-первых&#8221;. В-третьих &#8211; наличием модуля <strong>Mojolicious::Lite</strong>, позволяющего создать лёгкие, маленькие, но полноценные приложения. И в-четвёртых &#8211; автоматической поддержкой разных режимов запуска (CGI, FastCGI, mod_perl, встроенный сервер и т.д.).<br />
<span id="more-393"></span></p>
<h2>Установка фреймворка Mojolicious</h2>
<p>Установить фреймворк можно используя <em>cpan</em> или его производные типа <em>cpan+</em> (<code>cpan Mojolicious</code>), загрузив дистрибутив и установив как любой Perl-модуль при помщи <em>make</em> или же воспользоваться системой управления пакетами своей ОС. Я пробовал первый и третий способы, устанавливал <strong>Mojolicious</strong> под <em>Debian</em> и под <em>Windows XP</em> и нигде проблем не возникло, так что об установке сказать особо нечего. Она проста и не нуждается в пояснениях.</p>
<p>После установки <strong>Mojolicious</strong> в системе становится доступной команда <code class="codecolorer text default"><span class="text">mojo</span></code>, при помощи которой можно создавать, изменять и запускать приложения. Аналогичные действия можно выполнять, вызывая обычным образом любой perl-скрипт, в котором подключен <strong>Mojolicious</strong> (<code class="codecolorer perl default"><span class="perl"><span style="color: #000000; font-weight: bold;">use</span> Mojolicious<span style="color: #339933;">;</span></span></code>).
</p>
<h2>Документация по Mojolicious</h2>
<p>Документация к фреймворку начинает появляться, основная масса естественно доступна на домашнем сайте в разделах <noindex><a rel="nofollow" target="_blank" href="http://www.dimio.org/e3f466/URBFQw1KSVlcDglbW1tdW00UEh9GVRRdXFpX/">Documentacion</a></noindex> и <noindex><a rel="nofollow" target="_blank" href="http://www.dimio.org/e3f466/URBFQ0RfSRtUDRJfR1oaVwwMTltEUQ9ZF1hbWwxLE15SDQ==/">Wiki</a></noindex>. Лучше всего пользоваться именно ей, поскольку не смотря на то, что версия фреймворка является стабильной (1.16 на момент написания заметки), интерфейс всё же иногда меняется и русскоязычная документация за ним не поспевает.
</p>
<p>Самый лучший источник документации на русском (представляет собой перевод официальной документации), который мне встретился, <noindex><a rel="nofollow" target="_blank" href="http://www.dimio.org/e3f466/URBFQ0RfSRtUDRJfR1oaVwwMTkhZXQceakBHQgoFChpNFlBdRAkHQFZJCVEfdVteDA0IU19fE0IVUkFYBwEX/">расположен тут</a></noindex>. Остальные по-моему просто переписаны с него. Также на русском можно отыскать различные примеры использования Mojolicious, особенно в блогах. Некоторые из них иллюстрируют работу с устаревшими версиями фреймворка &#8211; соответственно и методы работы в них приводятся неверные.
</p>
<h2>Создание приложения</h2>
<p>Создать новое приложение с использованием <strong>Mojolicious</strong> можно двумя путями &#8211; обычным образом создать файл скрипта и вписать в него нужный код или же воспользоваться встроенным генератором приложений фреймворка. Второй путь удобней <img src='http://www.dimio.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h3>Новое приложение Mojolicious</h3>
<p>Новое приложение <strong>Mojolicious</strong> создаётся командой <code>mojo generate app AppName</code>. Такой способ пригоден для создания больших проектов с возможностью простого масштабирования. При этом будет создан каталог, носящий имя <em>app_name</em> со следующей структурой (на примере приложения <em>TestApp</em>):</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:100%;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">test_app<br />
|<br />
|-- lib<br />
|   |-- TestApp<br />
|   |   |-- Example.pm<br />
|   |-- TestApp.pm<br />
|<br />
|-- log<br />
|-- public<br />
|   |-- index.html<br />
|<br />
|-- script<br />
|   |-- test_app*<br />
|<br />
|-- t<br />
|   |-- basic.t<br />
|<br />
|-- templates<br />
&nbsp; &nbsp; |-- example<br />
&nbsp; &nbsp; |   |-- welcome.html.ep<br />
&nbsp; &nbsp; |<br />
&nbsp; &nbsp; |-- layouts<br />
&nbsp; &nbsp; |-- default.html.ep</div></div>
<p><strong>lib</strong> &#8211; здесь будут расположены библиотеки приложения;<br />
<strong>log</strong> &#8211; логи (если каталог отстутствует &#8211; выводятся на экран);<br />
<strong>public</strong> &#8211; статика (статические страницы, java-скрипты и т.п.);<br />
<strong>script</strong> &#8211; само приложение;<br />
<strong>t</strong> &#8211; тесты для приложения;<br />
<strong>templates</strong> &#8211; содержит шаблоны страниц и шаблоны макетов (в <strong>layouts</strong> &#8211; это шаблоны, применяемые на большинстве страниц &#8211; например &#8220;шапка&#8221;, &#8220;подвал&#8221;, &#8220;сайдбар&#8221;).</p>
<h3>Новое приложение Mojolicious::Lite</h3>
<p>Приложение <strong>Mojolicious::Lite</strong> создаётся похожей командой: <code>mojo generate lite_app AppName</code>.<br />
Основное различие между ними &#8211; в данном случае создаётся только один исполняемый файл, шаблоны будут содержаться непосредственно в нём, в разделе <em>__DATA__</em>, структура каталогов создаваться не будет. Такой вариант подходит для небольших, буквально &#8220;одностраничных&#8221; приложений. В дальнейшем, если возникнет необходимость разделить шаблоны и логику обработки данных &#8211; достаточно вызвать приложение с параметром <em>inflate</em> &#8211; шаблоны будут вынесены в отдельные файлы в директории <strong>templates</strong>.</p>
<h2>Встроенный шаблонизатор EmbeddedPerl</h2>
<p><strong>Mojolicious</strong> предоставляет обработчик шаблонов &#8211; <em>Embedded Perl</em> (отсюда и расширение <em>.ep</em> у файлов шаблонов). Для встраивания Perl-кода в html используется четыре вида специальных тегов (в примере приложения я некоторые из них продемонстрировал):</p>
<ul>
<li><code class="codecolorer text default"><span class="text">&lt;% %&gt;</span></code> или <code class="codecolorer text default"><span class="text">%</span></code> &#8211; строка Perl без вычисления результата;</li>
<li><code class="codecolorer text default"><span class="text">&lt;%= %&gt;</span></code> или <code class="codecolorer text default"><span class="text">%=</span></code> &#8211; выражение Perl, вычисленный результат возвращается в экранированном виде;</li>
<li><code class="codecolorer text default"><span class="text">&lt;%== %&gt;</span></code> или <code class="codecolorer text default"><span class="text">%==</span></code> &#8211; выражение Perl, вычисленный результат возвращается без обработки (не экранирован);</li>
<li><code class="codecolorer text default"><span class="text">&lt;%# %&gt;</span></code> или <code class="codecolorer text default"><span class="text">%#</span></code> &#8211; комментарий, строка пропускается;</li>
</ul>
<p><strong>Mojolicious</strong> автоматически экаранирует символы <, >, &#038;, &#8216; и &#8220;, добавляет ; в конце строки и выставляет границы начала и конца строки в регулярных выражениях внутри своих методов (например &#8211; при создании маршрутов).<br />
Кроме использования встроенного шаблонизатора, можно подключить любой желаемый сторонний шаблонизатор используя метод <em>add_handler</em>.
</p>
<p><a name="apprun"></a></p>
<h2>Запуск приложения</h2>
<p>Фреймворк <strong>Mojolicious</strong> имеет встроенный <em>http(s)</em> сервер, с помощью которого можно как проверять работоспособность приложения, так и эксплуатировать его. Для запуска сервера используется следующая команда: <code class="codecolorer bash default"><span class="bash"><span style="color: #c20cb9; font-weight: bold;">perl</span> myapp.pl daemon</span></code>.</p>
<p>Во время разработки очень полезно будет запускать сервер с ключём <code class="codecolorer text default"><span class="text">--reload</span></code> &#8211; с его использованием приложение будет перезагружаться &#8220;на лету&#8221; после каждого изменения, таким образом вручную перезапускать скрипт не нужно, достаточно запустить с этим ключом в фоне один раз. В процессе эксплуатации приложения можно добиться подобного &#8220;горячего обновления&#8221; приложения, запустив несколько копий веб-сервера с указанием одного и того же сокета и PID-файла блокировки, т.е. реализуется схема: <em>работающий сервер &#8211;> обновление приложения &#8211;> параллельный запуск сервера с обновлённым приложением &#8211;> мягкое выключение &#8220;старого&#8221; сервера (активные подключения не будут разорваны)</em>.</p>
<p>Кроме того, встроенный сервер из коробки поддерживается TLS с включенным сертификатом разработчика, так что можно запустить https-сервер, использовав ключ <code class="codecolorer text default"><span class="text">--listen</span></code>. Тогда полная команда для запуска сервера может выглядеть так:<br />
<code class="codecolorer bash default"><span class="bash"><span style="color: #c20cb9; font-weight: bold;">perl</span> myapp.pl daemon <span style="color: #660033;">--reload</span> <span style="color: #660033;">--listen</span> https:<span style="color: #000000; font-weight: bold;">//</span>localhost:PORT</span></code></p>
<p>Если веб-сервер планируется применять не только для разработки/локального использования &#8211; можно увеличить его производительность, запустив с опцией <code class="codecolorer text default"><span class="text">daemon prefork</span></code> &#8211; на каждое соединение будет создаваться свой процесс-обработчик (как в Apache), ключ <code class="codecolorer text default"><span class="text">--clients N</span></code> позволяет изменить это число, задав максимальное количество клиентских подключений к одному обработчику.
</p>
<h2>Пример простого приложения на Mojolicious::Lite</h2>
<div class="codecolorer-container perl default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:100%;height:550px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br />73<br />74<br />75<br />76<br />77<br />78<br />79<br />80<br />81<br />82<br />83<br />84<br />85<br />86<br />87<br />88<br />89<br />90<br />91<br />92<br />93<br />94<br />95<br />96<br />97<br />98<br />99<br />100<br />101<br />102<br />103<br />104<br />105<br />106<br />107<br />108<br />109<br />110<br />111<br />112<br />113<br />114<br />115<br />116<br />117<br />118<br />119<br />120<br />121<br />122<br />123<br />124<br />125<br />126<br />127<br />128<br />129<br />130<br />131<br />132<br />133<br /></div></td><td><div class="perl codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;">#!/usr/bin/perl</span><br />
<br />
<span style="color: #000066;">require</span> <span style="color: #cc66cc;">5.008</span>_008<span style="color: #339933;">;</span><br />
<span style="color: #666666; font-style: italic;"># при подключении Mojolicious::Lite автоматически подключаются warnings и strict</span><br />
<span style="color: #666666; font-style: italic;"># но лучше перебдеть ;)</span><br />
<span style="color: #000000; font-weight: bold;">use</span> warnings<span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">use</span> strict<span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">use</span> utf8<span style="color: #339933;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">use</span> Mojolicious<span style="color: #339933;">::</span><span style="color: #006600;">Lite</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">use</span> Mojo<span style="color: #339933;">::</span><span style="color: #006600;">UserAgent</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #0000ff;">$ENV</span><span style="color: #009900;">&#123;</span><span style="color: #ff0000;">'MOJO_MODE'</span><span style="color: #009900;">&#125;</span> <span style="color: #339933;">=</span> <span style="color: #ff0000;">'production'</span><span style="color: #339933;">;</span><br />
<br />
<br />
get <span style="color: #ff0000;">'/'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000000; font-weight: bold;">sub</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$self</span> <span style="color: #339933;">=</span> <span style="color: #000066;">shift</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># адреса сайтов берутся из адресной строки, очистки нет поскольку</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># ссылки пойдут транзитом к поисковикам. При печати Mojolicious</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># по умолчанию экранирует символы &lt; &gt; &amp; ' &quot; против XSS-атак.</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$sites</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span> <span style="color: #000066;">map</span> <span style="color: #009900;">&#123;</span> <span style="color: #000066;">lc</span> <span style="color: #0000ff;">$_</span><span style="color: #339933;">,</span> <span style="color: #339933;">+</span><span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span> <span style="color: #009900;">&#125;</span> <span style="color: #000066;">split</span> <span style="color: #009966; font-style: italic;">/\r\n/</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">$self</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">param</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'site_url'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$sites</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># метод client устарел, нужно использовать метод ua,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># или создать объект UserAgent явно и с нужными настройками.</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># устарел: &nbsp;$self-&gt;client-&gt;get($g_req_url)-&gt;res-&gt;dom-&gt;at('div#resultStats');</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># работает: $self-&gt;ua-&gt;get($g_req_url)-&gt;res-&gt;dom-&gt;at('div#resultStats');</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># Создаем объект UserAgent</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$ua</span> <span style="color: #339933;">=</span> Mojo<span style="color: #339933;">::</span><span style="color: #006600;">UserAgent</span><span style="color: #339933;">-&gt;</span><span style="color: #000000; font-weight: bold;">new</span><span style="color: #009900;">&#40;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; max_redirects &nbsp; <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; name &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">'Mozilla/5.0 (Windows; Windows NT 6.1; rv:2.0)'</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000066;">keys</span> <span style="color: #0000ff;">%$sites</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># GOOGLE</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># запрашиваем страницу по адресу</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># &quot;http://www.google.com/search?q=site%3A$site&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># и из полученной страницы берем содержимое</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># блока &lt;div id=&quot;resultStats&quot;&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># at - ищет элемент по html-тегу</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$g_req_url</span> <span style="color: #339933;">=</span> <span style="color: #ff0000;">'http://www.google.ru/search?q=site%3A'</span><span style="color: #339933;">.</span><span style="color: #0000ff;">$_</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">$sites</span><span style="color: #339933;">-&gt;</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#123;</span>google<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#123;</span>req_url<span style="color: #009900;">&#125;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$g_req_url</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">$sites</span><span style="color: #339933;">-&gt;</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#123;</span>google<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#123;</span>result<span style="color: #009900;">&#125;</span> <span style="color: #339933;">=</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">$ua</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">get</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$g_req_url</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">res</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">dom</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">at</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'div#resultStats'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">text</span> <span style="color: #339933;">=~</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009966; font-style: italic;">m/[\w:]+ \s ([\d\s]+)$/msx</span> <span style="color: #339933;">?</span> <span style="color: #0000ff;">$1</span> <span style="color: #339933;">:</span> <span style="color: #ff0000;">'---'</span><span style="color: #339933;">;</span><br />
<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># YANDEX</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># извлекает содержимое &lt;strong class=&quot;b-head-logo__text&quot;&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$y_req_url</span> <span style="color: #339933;">=</span> <span style="color: #ff0000;">'http://yandex.ru/yandsearch?text=site%3A'</span><span style="color: #339933;">.</span><span style="color: #0000ff;">$_</span><span style="color: #339933;">.</span><span style="color: #ff0000;">'&amp;lr=2'</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">$sites</span><span style="color: #339933;">-&gt;</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#123;</span>yandex<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#123;</span>req_url<span style="color: #009900;">&#125;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$y_req_url</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">$sites</span><span style="color: #339933;">-&gt;</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#123;</span>yandex<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#123;</span>result<span style="color: #009900;">&#125;</span> <span style="color: #339933;">=</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">$ua</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">get</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$y_req_url</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">res</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">dom</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">at</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'strong.b-head-logo__text'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">text</span> <span style="color: #339933;">=~</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009966; font-style: italic;">m/^Наш(?:лось|ёлся) ([\d\w\s\.]+) \s \w+$/msx</span> <span style="color: #339933;">?</span> <span style="color: #0000ff;">$1</span> <span style="color: #339933;">:</span> <span style="color: #ff0000;">'---'</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #0000ff;">$self</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">render</span><span style="color: #009900;">&#40;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># название шаблона</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; template &nbsp; &nbsp;<span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">'index'</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">format</span> &nbsp; &nbsp; &nbsp;<span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">'html'</span><span style="color: #339933;">,</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; sites &nbsp; &nbsp; &nbsp; <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">$sites</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #666666; font-style: italic;"># Секретная фраза - используется для подписания кукисов,</span><br />
<span style="color: #666666; font-style: italic;"># по умолчанию равна названию скрипта (имени приложения)</span><br />
app<span style="color: #339933;">-&gt;</span><span style="color: #006600;">secret</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'P@r0L-dl!a_MoJ0!'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
app<span style="color: #339933;">-&gt;</span><span style="color: #006600;">start</span><span style="color: #339933;">;</span><br />
<br />
<br />
<span style="color: #666666; font-style: italic;"># ниже в этом же файле объявляем шаблон index.html.ep</span><br />
<span style="color: #666666; font-style: italic;"># index - название шаблона</span><br />
<span style="color: #666666; font-style: italic;"># html - формат шаблона (кроме html - напр. text)</span><br />
<span style="color: #666666; font-style: italic;"># ep - обработчик шаблона (от EmbeddedPerl, ещё - epl)</span><br />
<span style="color: #666666; font-style: italic;"># название, формат и обработчик могут быть переданы методу render</span><br />
<span style="color: #666666; font-style: italic;"># template =&gt; 'название', format =&gt; 'формат', handler =&gt; 'обработчик'</span><br />
<br />
<span style="color: #000000; font-weight: bold;">__DATA__</span><br />
<br />
<span style="color: #339933;">@@</span> <span style="color: #000066;">index</span><span style="color: #339933;">.</span>html<span style="color: #339933;">.</span>ep<br />
<span style="color: #339933;">%</span> layout <span style="color: #ff0000;">'default'</span><span style="color: #339933;">;</span><br />
<span style="color: #339933;">%</span> title <span style="color: #ff0000;">'Mojolicious::Lite test'</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #339933;">&lt;</span>table cols<span style="color: #339933;">=</span><span style="color: #ff0000;">&quot;3&quot;</span> cellpadding<span style="color: #339933;">=</span><span style="color: #ff0000;">&quot;2&quot;</span> cellspacing<span style="color: #339933;">=</span><span style="color: #ff0000;">&quot;4&quot;</span> width<span style="color: #339933;">=</span><span style="color: #ff0000;">&quot;350px&quot;</span><span style="color: #339933;">&gt;</span><br />
<span style="color: #009999;">&lt;thead&gt;</span><br />
<span style="color: #009999;">&lt;tr&gt;</span> <span style="color: #339933;">&lt;</span>th colspan<span style="color: #339933;">=</span><span style="color: #ff0000;">&quot;3&quot;</span><span style="color: #339933;">&gt;</span>Количество страниц в индексе поисковиков<span style="color: #339933;">&lt;/</span>th<span style="color: #339933;">&gt;</span><br />
<span style="color: #009999;">&lt;tr&gt;</span> <span style="color: #009999;">&lt;th&gt;</span>Сайт<span style="color: #339933;">&lt;/</span>th<span style="color: #339933;">&gt;</span><span style="color: #009999;">&lt;th&gt;</span>Google<span style="color: #339933;">&lt;/</span>th<span style="color: #339933;">&gt;</span><span style="color: #009999;">&lt;th&gt;</span>Yandex<span style="color: #339933;">&lt;/</span>th<span style="color: #339933;">&gt;</span> <span style="color: #339933;">&lt;/</span>tr<span style="color: #339933;">&gt;</span><br />
<span style="color: #339933;">&lt;/</span>thead<span style="color: #339933;">&gt;</span><br />
<span style="color: #009999;">&lt;tbody&gt;</span><br />
<span style="color: #339933;">%</span> <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000066;">sort</span> <span style="color: #000066;">keys</span> <span style="color: #0000ff;">%$sites</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
<span style="color: #009999;">&lt;tr&gt;</span><br />
&nbsp; &nbsp; <span style="color: #339933;">&lt;</span>td align<span style="color: #339933;">=</span><span style="color: #ff0000;">&quot;center&quot;</span><span style="color: #339933;">&gt;&lt;%=</span> <span style="color: #0000ff;">$_</span> <span style="color: #339933;">%&gt;&lt;/</span>td<span style="color: #339933;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #339933;">&lt;</span>td align<span style="color: #339933;">=</span><span style="color: #ff0000;">&quot;center&quot;</span><span style="color: #339933;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #339933;">&lt;</span>a href<span style="color: #339933;">=</span><span style="color: #ff0000;">&quot;&lt;%= $sites-&gt;{$_}-&gt;{google}-&gt;{req_url} %&gt;&quot;</span><span style="color: #339933;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #339933;">&lt;%=</span> <span style="color: #0000ff;">$sites</span><span style="color: #339933;">-&gt;</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">-&gt;</span><span style="color: #009900;">&#123;</span>google<span style="color: #009900;">&#125;</span><span style="color: #339933;">-&gt;</span><span style="color: #009900;">&#123;</span>result<span style="color: #009900;">&#125;</span> <span style="color: #339933;">%&gt;&lt;/</span>a<span style="color: #339933;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #339933;">&lt;/</span>td<span style="color: #339933;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #339933;">&lt;</span>td align<span style="color: #339933;">=</span><span style="color: #ff0000;">&quot;center&quot;</span><span style="color: #339933;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #339933;">&lt;</span>a href<span style="color: #339933;">=</span><span style="color: #ff0000;">&quot;&lt;%= $sites-&gt;{$_}-&gt;{yandex}-&gt;{req_url} %&gt;&quot;</span><span style="color: #339933;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #339933;">&lt;%=</span> <span style="color: #0000ff;">$sites</span><span style="color: #339933;">-&gt;</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">-&gt;</span><span style="color: #009900;">&#123;</span>yandex<span style="color: #009900;">&#125;</span><span style="color: #339933;">-&gt;</span><span style="color: #009900;">&#123;</span>result<span style="color: #009900;">&#125;</span> <span style="color: #339933;">%&gt;&lt;/</span>a<span style="color: #339933;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #339933;">&lt;/</span>td<span style="color: #339933;">&gt;</span><br />
<span style="color: #339933;">&lt;/</span>tr<span style="color: #339933;">&gt;</span><br />
<span style="color: #339933;">%</span> <span style="color: #009900;">&#125;</span><br />
<span style="color: #339933;">&lt;/</span>tbody<span style="color: #339933;">&gt;</span><br />
<span style="color: #339933;">&lt;/</span>table<span style="color: #339933;">&gt;</span><br />
<br />
<span style="color: #339933;">&lt;%</span><span style="color: #666666; font-style: italic;"># вспомогательная функция dumper - использует Data::Dumper %&gt;</span><br />
<span style="color: #339933;">&lt;%</span><span style="color: #666666; font-style: italic;">#= dumper($sites) %&gt;</span><br />
<span style="color: #009999;">&lt;hr&gt;</span><br />
<br />
<span style="color: #339933;">&lt;</span>form action<span style="color: #339933;">=</span><span style="color: #ff0000;">&quot;./&lt;%= $0 %&gt;&quot;</span><span style="color: #339933;">&gt;</span><br />
URL<span style="color: #339933;">&lt;</span>br <span style="color: #339933;">/&gt;</span><br />
<span style="color: #339933;">&lt;</span>textarea rows<span style="color: #339933;">=</span><span style="color: #ff0000;">&quot;5&quot;</span> cols<span style="color: #339933;">=</span><span style="color: #ff0000;">&quot;65&quot;</span> name<span style="color: #339933;">=</span><span style="color: #ff0000;">&quot;site_url&quot;</span><span style="color: #339933;">&gt;</span><br />
<span style="color: #339933;">&lt;%=</span> <span style="color: #000066;">join</span> <span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span> <span style="color: #000066;">sort</span> <span style="color: #000066;">keys</span> <span style="color: #0000ff;">%$sites</span> <span style="color: #339933;">%&gt;</span><br />
<span style="color: #339933;">&lt;/</span>textarea<span style="color: #339933;">&gt;</span><br />
<span style="color: #339933;">&lt;</span>br <span style="color: #339933;">/&gt;</span><br />
<span style="color: #339933;">&lt;</span>input type<span style="color: #339933;">=</span><span style="color: #ff0000;">&quot;submit&quot;</span> <span style="color: #339933;">/&gt;</span><br />
<span style="color: #339933;">&lt;/</span>form<span style="color: #339933;">&gt;</span><br />
<span style="color: #339933;">&lt;</span>br <span style="color: #339933;">/&gt;</span><br />
<br />
<br />
<span style="color: #339933;">@@</span> layouts<span style="color: #339933;">/</span>default<span style="color: #339933;">.</span>html<span style="color: #339933;">.</span>ep<br />
<span style="color: #339933;">&lt;!</span>doctype html<span style="color: #339933;">&gt;</span><span style="color: #009999;">&lt;html&gt;</span><br />
&nbsp; <span style="color: #009999;">&lt;head&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009999;">&lt;title&gt;</span><span style="color: #339933;">&lt;%=</span> title <span style="color: #339933;">%&gt;&lt;/</span>title<span style="color: #339933;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #339933;">&lt;%=</span> javascript <span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'http://dimio.org/cgi-bin/js/liveinternet-counter.js'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">%&gt;</span><br />
&nbsp; &nbsp; <span style="color: #339933;">&lt;</span>meta http<span style="color: #339933;">-</span>equiv<span style="color: #339933;">=</span><span style="color: #ff0000;">&quot;Content-Type&quot;</span> content<span style="color: #339933;">=</span><span style="color: #ff0000;">&quot;text/html; charset=utf-8&quot;</span> <span style="color: #339933;">/&gt;</span><br />
&nbsp; &nbsp; <span style="color: #339933;">&lt;</span><span style="color: #000066;">link</span> rel<span style="color: #339933;">=</span><span style="color: #ff0000;">&quot;favicon&quot;</span> href<span style="color: #339933;">=</span><span style="color: #ff0000;">&quot;http://www.dimio.org/favicon.ico&quot;</span> type<span style="color: #339933;">=</span><span style="color: #ff0000;">&quot;image/x-icon&quot;</span> <span style="color: #339933;">/&gt;</span><br />
&nbsp; <span style="color: #339933;">&lt;/</span>head<span style="color: #339933;">&gt;</span><br />
&nbsp; <span style="color: #009999;">&lt;body&gt;</span><span style="color: #339933;">&lt;%=</span> content <span style="color: #339933;">%&gt;&lt;/</span>body<span style="color: #339933;">&gt;</span><br />
<span style="color: #339933;">&lt;/</span>html<span style="color: #339933;">&gt;</span></div></td></tr></tbody></table></div>
<h4>Результат работы скрипта-примера</h4>
<p><a href="http://www.dimio.org/cgi-bin/dev/mojo-test.cgi"><img src="http://www.dimio.org/wp-content/uploads/2011/04/mojo-test.png" alt="" title="mojo-example-script" width="341" height="356" class="aligncenter size-full wp-image-396" /></a></p>

	Метки:<a href="http://www.dimio.org/tag/how-to" title="how-to" rel="tag nofollow">how-to</a>, <a href="http://www.dimio.org/tag/mojolicious" title="mojolicious" rel="tag nofollow">mojolicious</a>, <a href="http://www.dimio.org/tag/perl" title="perl" rel="tag nofollow">perl</a>, <a href="http://www.dimio.org/tag/internet" title="Интернет" rel="tag nofollow">Интернет</a>, <a href="http://www.dimio.org/tag/programmirovanie" title="программинг" rel="tag nofollow">программинг</a><br />

	<h4>Еще на похожие темы:</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.dimio.org/generaciya-captcha-na-perl-pri-pomoshhi-authencaptcha.html" title="Генерация CAPTCHA на perl при помощи Authen::Captcha (07/10/2009)">Генерация CAPTCHA на perl при помощи Authen::Captcha</a></li>
	<li><a href="http://www.dimio.org/anonimajzer-kak-zamena-proksi-proverka-anonimajzerov-na-validnost.html" title="Анонимайзер как замена прокси. Проверка анонимайзеров на валидность (27/08/2010)">Анонимайзер как замена прокси. Проверка анонимайзеров на валидность</a></li>
	<li><a href="http://www.dimio.org/perl-practical-extraction-and-report-language.html" title="Perl [Practical Extraction and Report Language] (28/03/2010)">Perl [Practical Extraction and Report Language]</a></li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.dimio.org/mojolicious-znakomstvo-s-vebom-iz-korobki.html/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Настройка Rxvt через Xdefaults</title>
		<link>http://www.dimio.org/nastrojka-rxvt-cherez-xdefaults.html</link>
		<comments>http://www.dimio.org/nastrojka-rxvt-cherez-xdefaults.html#comments</comments>
		<pubDate>Tue, 19 Apr 2011 11:30:15 +0000</pubDate>
		<dc:creator>dimio</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[.rc]]></category>
		<category><![CDATA[console]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[manual]]></category>
		<category><![CDATA[rxvt]]></category>

		<guid isPermaLink="false">http://www.dimio.org/?p=379</guid>
		<description><![CDATA[С некоторых пор стал пользоваться эмулятором терминала urxvt (unicode-версия rxvt) вместо gnome-terminal. Причина простая &#8211; на старом ноуте разница в скорости заметна и эта разница &#8211; в пользу urxvt (особенно если запускать его при старте GUI в режиме демона). В остальном отличий в общем-то нет, urxvt тоже поддерживает именованные вкладки (табы), обработку гиперссылок, копирование и [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.dimio.org/wp-content/uploads/2011/04/urxvt.jpg"><img src="http://www.dimio.org/wp-content/uploads/2011/04/urxvt.jpg" alt="Настройки Rxvt черезе Xdefaults" title="Настройка эмулятора терминала Rxvt" width="525" height="290" class="aligncenter size-full wp-image-392" /></a></p>
<p>С некоторых пор стал пользоваться эмулятором терминала <strong>urxvt</strong> (unicode-версия <strong>rxvt</strong>) вместо <em>gnome-terminal</em>. Причина простая &#8211; на старом ноуте разница в скорости заметна и эта разница &#8211; в пользу <strong>urxvt</strong> (особенно если запускать его при старте <em>GUI</em> в режиме демона).</p>
<p>В остальном отличий в общем-то нет, <strong>urxvt</strong> тоже поддерживает именованные вкладки (табы), обработку гиперссылок, копирование и вставку мышью. Кроме того, он имеет поиск по выводимым в терминал данным (по Alt+S &#8211; очень удобно) и поддерживает цветной вывод <em>man</em>-страниц. Также <strong>urxvt</strong> существует и для <em><a href="http://www.dimio.org/cygwin-besplatnaya-realizaciya-unix-podobnogo-okruzheniya-dlya-windows.html" title="Cygwin – бесплатная реализация unix-подобного окружения для Windows">cygwin</a></em>.</p>
<p>На этом вводную часть закончу и ниже просто на память, чтобы не перечитывать ман при необходимости настроить терминал, выложу конфиг для <strong>urxvt</strong>, выполненный в виде отдельного файла, подключаемого из <em>.Xdefaults</em>.</p>
<p><span id="more-379"></span></p>
<h3>Содержимое .Xdefaults для подключения настроек rxvt</h3>
<p><div class="codecolorer-container dot default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:100%;"><div class="dot codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">!</span>Перечитать файл и применить настройки<br />
<span style="color: #66cc66;">!</span><span style="color: #66cc66;">&#40;</span>при наличии ошибок выведет отчёт<span style="color: #66cc66;">&#41;</span>:<br />
<span style="color: #66cc66;">!</span>xrdb <span style="color: #66cc66;">-</span>load <span style="color: #66cc66;">~/</span>.Xdefaults<br />
<br />
<span style="color: #66cc66;">!</span>Подключение файла нстроек для URxvt<br />
<span style="color: #66cc66;">!</span><span style="color: #66cc66;">&#40;</span>расположен в $HOME<span style="color: #66cc66;">&#41;</span><br />
<span style="color: #339933;">#include &quot;.rxvtrc&quot;</span></div></div>
</p>
<h3>.rxvtrc с комментариями &#8211; конфиг для rxvt</h3>
<p><div class="codecolorer-container dot default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:100%;height:400px;"><div class="dot codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">!</span> Для использования добавить в $HOME<span style="color: #66cc66;">/</span>.Xdefaults строку:<br />
<span style="color: #66cc66;">!</span><span style="color: #339933;">#include &quot;.rxvtrc&quot;</span><br />
<br />
<br />
<span style="color: #66cc66;">!===</span> ВИЗУАЛЬНЫЕ НАСТРОЙКИ <span style="color: #66cc66;">===</span><br />
<span style="color: #66cc66;">!</span> Настройки цветовой схемы<br />
URxvt<span style="color: #66cc66;">*</span>background: <span style="color: #339933;">#212121</span><br />
URxvt<span style="color: #66cc66;">*</span>foreground: <span style="color: #339933;">#C0C0C0</span><br />
URxvt.color0: &nbsp; &nbsp; rgb:00<span style="color: #66cc66;">/</span>00<span style="color: #66cc66;">/</span>00<br />
URxvt.color1: &nbsp; &nbsp; rgb:e0<span style="color: #66cc66;">/</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">/</span><span style="color: #cc66cc;">10</span><br />
URxvt.color2: &nbsp; &nbsp; rgb:<span style="color: #cc66cc;">20</span><span style="color: #66cc66;">/</span>ad<span style="color: #66cc66;">/</span><span style="color: #cc66cc;">20</span><br />
URxvt.color3: &nbsp; &nbsp; rgb:d4<span style="color: #66cc66;">/</span>c2<span style="color: #66cc66;">/</span>4f<br />
URxvt.color4: &nbsp; &nbsp; rgb:<span style="color: #cc66cc;">23</span><span style="color: #66cc66;">/</span>1b<span style="color: #66cc66;">/</span>b8<br />
URxvt.color5: &nbsp; &nbsp; rgb:9c<span style="color: #66cc66;">/</span><span style="color: #cc66cc;">38</span><span style="color: #66cc66;">/</span><span style="color: #cc66cc;">85</span><br />
URxvt.color6: &nbsp; &nbsp; rgb:1d<span style="color: #66cc66;">/</span>bd<span style="color: #66cc66;">/</span>b8<br />
URxvt.color7: &nbsp; &nbsp; rgb:fe<span style="color: #66cc66;">/</span>fe<span style="color: #66cc66;">/</span>fe<br />
URxvt.color8: &nbsp; &nbsp; rgb:6a<span style="color: #66cc66;">/</span>6a<span style="color: #66cc66;">/</span>6a<br />
URxvt.color9: &nbsp; &nbsp; rgb:e8<span style="color: #66cc66;">/</span>3a<span style="color: #66cc66;">/</span>3d<br />
URxvt.color10: &nbsp; &nbsp;rgb:<span style="color: #cc66cc;">35</span><span style="color: #66cc66;">/</span>e9<span style="color: #66cc66;">/</span><span style="color: #cc66cc;">56</span><br />
URxvt.color11: &nbsp; &nbsp;rgb:ff<span style="color: #66cc66;">/</span>ff<span style="color: #66cc66;">/</span>2f<br />
URxvt.color12: &nbsp; &nbsp;rgb:3a<span style="color: #66cc66;">/</span><span style="color: #cc66cc;">53</span><span style="color: #66cc66;">/</span>f0<br />
URxvt.color13: &nbsp; &nbsp;rgb:e6<span style="color: #66cc66;">/</span><span style="color: #cc66cc;">28</span><span style="color: #66cc66;">/</span>ba<br />
URxvt.color14: &nbsp; &nbsp;rgb:1c<span style="color: #66cc66;">/</span>f5<span style="color: #66cc66;">/</span>f5<br />
URxvt.color15: &nbsp; &nbsp;rgb:ff<span style="color: #66cc66;">/</span>ff<span style="color: #66cc66;">/</span>ff<br />
<br />
<span style="color: #66cc66;">!</span> Будет ли курсор мигать<br />
URxvt.cursorBlink: &nbsp; &nbsp; &nbsp;<span style="color: #993333;">true</span><br />
<span style="color: #66cc66;">!</span> Цвет курсора<br />
<span style="color: #66cc66;">!</span>URxvt.cursorColor: &nbsp; &nbsp; <span style="color: #b1b100;">yellow</span><br />
<span style="color: #66cc66;">!</span> Цвет текста, находящегося под курсором<br />
URxvt.cursorColor2: &nbsp; &nbsp; <span style="color: #b1b100;">red</span><br />
<br />
<span style="color: #66cc66;">!</span> Псевдопрозрачность <span style="color: #66cc66;">-</span> в кач<span style="color: #66cc66;">-</span>ве фона<br />
<span style="color: #66cc66;">!</span> поставить обои рабочего стола<br />
<span style="color: #66cc66;">!</span>URxvt<span style="color: #66cc66;">*</span>transparent: &nbsp; &nbsp; <span style="color: #993333;">true</span><br />
<span style="color: #66cc66;">!</span> Яркость прозрачного фона <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">-</span><span style="color: #cc66cc;">100</span> .. <span style="color: #cc66cc;">100</span><span style="color: #66cc66;">&#41;</span><br />
<span style="color: #66cc66;">!</span>URxvt<span style="color: #66cc66;">*</span>shading: &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #cc66cc;">40</span><br />
<span style="color: #66cc66;">!</span> Та же псевдопрозрачность, без настройки яркости<br />
<span style="color: #66cc66;">!</span>URxvt.inheritPixmap: &nbsp; &nbsp; <span style="color: #993333;">true</span><br />
<span style="color: #66cc66;">!</span> Цвет окрашивания прозрачного фона<br />
<span style="color: #66cc66;">!</span>URxvt<span style="color: #66cc66;">*</span>tintColor: &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">blue</span><br />
<br />
<span style="color: #66cc66;">!</span> Иконка окна терминала<br />
URxvt<span style="color: #66cc66;">*</span>iconFile: <span style="color: #66cc66;">/</span>usr<span style="color: #66cc66;">/</span>share<span style="color: #66cc66;">/</span>pixmaps<span style="color: #66cc66;">/</span>gnome<span style="color: #66cc66;">-</span>terminal.xpm<br />
<br />
<span style="color: #66cc66;">!</span> Настройки шрифтов<br />
URxvt<span style="color: #66cc66;">*</span>font:<span style="color: #66cc66;">-</span>xos4<span style="color: #66cc66;">-</span>terminus<span style="color: #66cc66;">-</span>medium<span style="color: #66cc66;">-</span>r<span style="color: #66cc66;">-</span>normal<span style="color: #66cc66;">--</span><span style="color: #cc66cc;">14</span><span style="color: #66cc66;">-*-*-*-*-*-</span>u<br />
<span style="color: #66cc66;">!</span> Горячие клавиши для изменения размера шрифта <span style="color: #ff0000;">&quot;на лету&quot;</span><br />
<span style="color: #66cc66;">!</span> <span style="color: #66cc66;">&#40;</span>Ctrl<span style="color: #66cc66;">-</span><span style="color: #cc66cc;">1</span> <span style="color: #66cc66;">-</span> норма, Ctrl<span style="color: #66cc66;">-</span><span style="color: #cc66cc;">2</span> <span style="color: #66cc66;">-</span> увеличить до <span style="color: #cc66cc;">24</span><span style="color: #66cc66;">&#41;</span><br />
URxvt.keysym.C<span style="color: #66cc66;">-</span><span style="color: #cc66cc;">1</span>: command:\033<span style="color: #66cc66;">&#93;</span><span style="color: #cc66cc;">710</span>;<span style="color: #66cc66;">-</span>xos4<span style="color: #66cc66;">-</span>terminus<span style="color: #66cc66;">-</span>medium<span style="color: #66cc66;">-</span>r<span style="color: #66cc66;">-</span>normal<span style="color: #66cc66;">--</span><span style="color: #cc66cc;">14</span><span style="color: #66cc66;">-*-*-*-*-*-</span>u\007\033<span style="color: #66cc66;">&#93;</span><span style="color: #cc66cc;">711</span>;<span style="color: #66cc66;">-</span>xos4<span style="color: #66cc66;">-</span>terminus<span style="color: #66cc66;">-</span>bold<span style="color: #66cc66;">-</span>r<span style="color: #66cc66;">-</span>normal<span style="color: #66cc66;">--</span><span style="color: #cc66cc;">14</span><span style="color: #66cc66;">-*-*-*-*-*-</span>u\007<br />
URxvt.keysym.C<span style="color: #66cc66;">-</span><span style="color: #cc66cc;">2</span>: command:\033<span style="color: #66cc66;">&#93;</span><span style="color: #cc66cc;">710</span>;<span style="color: #66cc66;">-</span>xos4<span style="color: #66cc66;">-</span>terminus<span style="color: #66cc66;">-</span>medium<span style="color: #66cc66;">-</span>r<span style="color: #66cc66;">-</span>normal<span style="color: #66cc66;">--</span><span style="color: #cc66cc;">24</span><span style="color: #66cc66;">-*-*-*-*-*-</span>u\007\033<span style="color: #66cc66;">&#93;</span><span style="color: #cc66cc;">711</span>;<span style="color: #66cc66;">-</span>xos4<span style="color: #66cc66;">-</span>terminus<span style="color: #66cc66;">-</span>bold<span style="color: #66cc66;">-</span>r<span style="color: #66cc66;">-</span>normal<span style="color: #66cc66;">--</span><span style="color: #cc66cc;">22</span><span style="color: #66cc66;">-*-*-*-*-*-</span>u\007<br />
<br />
<span style="color: #66cc66;">!</span> Цвета в man<span style="color: #66cc66;">-</span>страницах<br />
URxvt.colorMode: &nbsp; &nbsp; &nbsp; &nbsp; on<br />
URxvt.boldColors: &nbsp; &nbsp; &nbsp; &nbsp;on<br />
URxvt.dynamicColors: &nbsp; &nbsp; on<br />
URxvt.colorULMode: &nbsp; &nbsp; &nbsp; on<br />
URxvt.underLine: &nbsp; &nbsp; &nbsp; &nbsp; off<br />
URxvt.colorBDMode: &nbsp; &nbsp; &nbsp; on<br />
URxvt.colorBD: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">cyan</span><br />
<br />
<span style="color: #66cc66;">!</span> Скроллинг <span style="color: #66cc66;">+</span> скроллбар<br />
URxvt<span style="color: #66cc66;">*</span>scrollBar: &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #993333;">false</span><br />
URxvt<span style="color: #66cc66;">*</span>scrollBar_right: &nbsp;<span style="color: #993333;">true</span><br />
URxvt<span style="color: #66cc66;">*</span>scrollstyle: &nbsp; &nbsp; &nbsp;rxvt<br />
<br />
<span style="color: #66cc66;">!</span> Отображать символ табуляции как один широкий символ<br />
<span style="color: #66cc66;">!</span> <span style="color: #66cc66;">&#40;</span>иначе <span style="color: #66cc66;">-</span> как перемещения курсора<span style="color: #66cc66;">&#41;</span><br />
URxvt.pastableTabs: &nbsp; &nbsp; <span style="color: #993333;">true</span><br />
<br />
<br />
<span style="color: #66cc66;">!===</span> НАСТРОЙКИ ОБРАБОТКИ ССЫЛОК <span style="color: #66cc66;">===</span><br />
<span style="color: #66cc66;">!</span> Внешняя программа для открытия ссылок<br />
URxvt.urlLauncher: &nbsp; &nbsp; &nbsp;firefox<br />
<span style="color: #66cc66;">!</span> Кнопка мыши, которая открывает ссылку<br />
URxvt.matcher.button: &nbsp; <span style="color: #cc66cc;">1</span><br />
<span style="color: #66cc66;">!</span> Горячие клавиши для выделения ссылок <span style="color: #66cc66;">&#40;</span>Alt<span style="color: #66cc66;">+</span>U<span style="color: #66cc66;">&#41;</span>,<br />
<span style="color: #66cc66;">!</span> после выделения ссылка открывается по Enter<br />
URxvt.keysym.M<span style="color: #66cc66;">-</span>u: &nbsp; &nbsp; &nbsp; perl:url<span style="color: #66cc66;">-</span>select:select_next<br />
<span style="color: #66cc66;">!</span> Выделять ссылки голубым цветом<br />
URxvt.colorUL: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #339933;">#86a2be</span><br />
<span style="color: #66cc66;">!</span> Подчеркивать ссылки<br />
URxvt.underlineURLs: &nbsp; &nbsp;<span style="color: #993333;">true</span><br />
<span style="color: #66cc66;">!</span>URxvt.underlineColor: &nbsp; <span style="color: #b1b100;">yellow</span><br />
<br />
<br />
<span style="color: #66cc66;">!===</span> НАСТРОЙКИ ФУНКЦИОНАЛА <span style="color: #66cc66;">===</span><br />
<span style="color: #66cc66;">!</span> Сколько строк хранить в памяти<br />
URxvt<span style="color: #66cc66;">*</span>saveLines: &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #cc66cc;">5000</span><br />
<span style="color: #66cc66;">!</span> Настройки табов<br />
URxvt.tabbed.new<span style="color: #66cc66;">-</span>button: &nbsp; &nbsp;no<br />
URxvt.tabbed.tabbar<span style="color: #66cc66;">-</span>fg: &nbsp; &nbsp; <span style="color: #cc66cc;">15</span><br />
URxvt.tabbed.tabbar<span style="color: #66cc66;">-</span>bg: &nbsp; &nbsp; <span style="color: #cc66cc;">0</span><br />
URxvt.tabbed.tab<span style="color: #66cc66;">-</span>fg: &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #cc66cc;">0</span><br />
URxvt.tabbed.tab<span style="color: #66cc66;">-</span>bg: &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #cc66cc;">14</span><br />
<span style="color: #66cc66;">!</span> Оболочка<br />
URxvt.geometry: &nbsp; &nbsp; &nbsp; &nbsp; 130x25<br />
URxvt.loginShell: &nbsp; &nbsp; &nbsp; <span style="color: #993333;">false</span><br />
URxvt.meta: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ignore<br />
URxvt.utmpInhibit: &nbsp; &nbsp; &nbsp;<span style="color: #993333;">true</span><br />
<br />
<br />
<span style="color: #66cc66;">!===</span> НАСТРОЙКИ РАСШИРЕНИЙ <span style="color: #66cc66;">===</span><br />
<span style="color: #66cc66;">!</span> Путь для поиска пользовательских расширений<br />
URxvt.perl<span style="color: #66cc66;">-</span>lib: &nbsp; &nbsp; &nbsp; &nbsp; $HOME<span style="color: #66cc66;">/</span>.config<span style="color: #66cc66;">/</span>urxvt<span style="color: #66cc66;">/</span>perl<span style="color: #66cc66;">/</span><br />
<span style="color: #66cc66;">!</span> Загружаемые по умолчанию расширения<br />
<span style="color: #66cc66;">!</span> Основные; расширенные табы <span style="color: #66cc66;">&#40;</span>без кнопки NEW, можно устанавливать<br />
<span style="color: #66cc66;">!</span> заголовок окна: https:<span style="color: #808080; font-style: italic;">//github.com/stepb/urxvt-tabbedex);</span><br />
<span style="color: #66cc66;">!</span> регэкспы для выделения ссылок в тексте; выбор ссылок горячими<br />
<span style="color: #66cc66;">!</span> клавишами<span style="color: #66cc66;">&#41;</span>; копирование в буфер обмена<br />
URxvt.perl<span style="color: #66cc66;">-</span>ext<span style="color: #66cc66;">-</span>common: &nbsp;default,tabbedex,matcher,url<span style="color: #66cc66;">-</span>select,clipboard<span style="color: #66cc66;">-</span>osc</div></div>
</p>
<h3>Горячие клавиши rxvt</h3>
<p>После применения всех указанных выше настроек, <strong>rxvt</strong> будет реагировать на следующие сочетания клавишей:</p>
<ul>
<li><strong>Shift+Down</strong> (стрелка вниз) &#8211; создать новую вкладку (таб);</li>
<li><strong>Shift+Up</strong> (стрелка вверх) &#8211; задать имя вкладке (Esc &#8211; отмена);</li>
<li><strong>Shift+Left/Right</strong> (стрелки влево/вправо) &#8211; переключение между вкладками (можно мышью кликать на нужную вкладку);</li>
<li><strong>Ctrl+Left/Right</strong> &#8211; перемещение текущей вкладки влево/вправо;</li>
<li><strong>Ctrl+D</strong> &#8211; закроет вкладку (если командная строка пустая &#8211; защита от случайного нажатия);</li>
</ul>

	Метки:<a href="http://www.dimio.org/tag/rc" title=".rc" rel="tag nofollow">.rc</a>, <a href="http://www.dimio.org/tag/console" title="console" rel="tag nofollow">console</a>, <a href="http://www.dimio.org/tag/linux" title="linux" rel="tag nofollow">linux</a>, <a href="http://www.dimio.org/tag/manual" title="manual" rel="tag nofollow">manual</a>, <a href="http://www.dimio.org/tag/rxvt" title="rxvt" rel="tag nofollow">rxvt</a><br />

	<h4>Еще на похожие темы:</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.dimio.org/bash-born-again-shell-obolochka-komandnoj-stroki.html" title="BASH [born again shell] &#8211; оболочка командной строки (15/02/2011)">BASH [born again shell] &#8211; оболочка командной строки</a></li>
	<li><a href="http://www.dimio.org/fajl-nastrojki-vim-vimrc-dlya-linux-i-windows.html" title="Файл настройки vim &#8211; .vimrc (для Linux и Windows) (21/12/2009)">Файл настройки vim &#8211; .vimrc (для Linux и Windows)</a></li>
	<li><a href="http://www.dimio.org/nastrojka-grub2.html" title="Настройка GRUB2 (11/11/2009)">Настройка GRUB2</a></li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.dimio.org/nastrojka-rxvt-cherez-xdefaults.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RC Link Redirector и ссылки в текстовом виджете</title>
		<link>http://www.dimio.org/rc-link-redirector-i-ssylki-v-tekstovom-vidzhete.html</link>
		<comments>http://www.dimio.org/rc-link-redirector-i-ssylki-v-tekstovom-vidzhete.html#comments</comments>
		<pubDate>Tue, 12 Apr 2011 17:53:51 +0000</pubDate>
		<dc:creator>dimio</dc:creator>
				<category><![CDATA[Блоггинг]]></category>
		<category><![CDATA[Хитрости]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[памятка]]></category>

		<guid isPermaLink="false">http://www.dimio.org/?p=383</guid>
		<description><![CDATA[На правах мини-совета для тех, кто тоже использует плагин RC Link Redirector для закрывания от индексации посторонных ссылок. Изначально плагин умеет оборачивать ссылки в записях, на страницах, в цитатх, в комментарих и текстах комментариев и т.д., но не умеет обрабатывать текстовые виджеты, в которые удобно ставить свои кнопки, баннеры и прочие подобные штуки. Чтобы плагин [...]]]></description>
			<content:encoded><![CDATA[<p>На правах мини-совета для тех, кто тоже использует плагин <noindex><a rel="nofollow" target="_blank" href="http://www.dimio.org/e3f466/URBFQw1KSUNEE0hUWllaXRAJF1laWUheSlIbQwBJFlJdDUNWVBEJRhw=/">RC Link Redirector</a></noindex> для закрывания от индексации посторонных ссылок. Изначально плагин умеет оборачивать ссылки в записях, на страницах, в цитатх, в комментарих и текстах комментариев и т.д., но не умеет обрабатывать текстовые виджеты, в которые удобно ставить свои кнопки, баннеры и прочие подобные штуки.</p>
<p>Чтобы плагин научился закрывать ссылки в виджетах, надо добавить в него две строки (можно через <em>Плагины->Редактор</em>, если нет специального редактора для <a href="http://www.dimio.org/php-personal-home-page-tools.html">PHP</a>).</p>
<p>Первую &#8211; внутрь функции <code>rcr_adminpage</code>, например после <strong>187</strong> строки &#8220;<code class="codecolorer php default"><span class="php"><span style="color: #339933;">&amp;</span>nbsp<span style="color: #339933;">;</span><span style="color: #0000ff;">&quot;Оборачивать&quot;</span> ссылки в <span style="color: #339933;">&lt;</span>strong<span style="color: #339933;">&gt;</span>блогролле<span style="color: #339933;">&lt;/</span>strong<span style="color: #339933;">&gt;&lt;/</span>label<span style="color: #339933;">&gt;&lt;/</span>td<span style="color: #339933;">&gt;&lt;/</span>tr<span style="color: #339933;">&gt;</span></span></code>&#8221; добавить строку:</p>
<div class="codecolorer-container php default" style="border:1px solid #9F9F9F;width:100%;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp;&lt;tr&gt;&lt;td&gt;&lt;label&gt;&lt;input name='rcr_txt_widgets' type='checkbox' value='1' <span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$rcr_opt</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'rcr_txt_widgets'</span><span style="color: #009900;">&#93;</span> ? <span style="color: #0000ff;">'checked'</span> <span style="color: #339933;">:</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span> /&gt;<br />
&nbsp; &nbsp; &amp;nbsp;&quot;Оборачивать&quot; ссылки в &lt;strong&gt;виджетах&lt;/strong&gt;&lt;/label&gt;&lt;/td&gt;&lt;/tr&gt;</div></div>
</p>
<p>Вторую &#8211; внутри <code>rcr_redirector_hook</code>, например после строки <strong>241</strong> &#8220;<code class="codecolorer php default"><span class="php"><span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$rcr_opt</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'rcr_comment'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> add_filter<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'comment_text'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'rcr_encode'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></span></code>&#8221; вставить строку:</p>
<div class="codecolorer-container php default" style="border:1px solid #9F9F9F;width:100%;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$rcr_opt</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'rcr_txt_widgets'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> add_filter<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'widget_text'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'rcr_encode'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
</p>
<p>Теперь осталось в админке плагина поставить галку на опции <em>&#8220;Оборачивать&#8221; ссылки в виджетах</em> и наслаждаться результатом <img src='http://www.dimio.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
P.S. Кому лень редактировать файл плагина &#8211; можно <a href="http://www.dimio.org/wp-content/uploads/soft/rc_redirector.zip">скачать обновлённый</a> и просто заменить старый в папке <em>/wp-content/plugins/rc_redirector</em></p>

	Метки:<a href="http://www.dimio.org/tag/how-to" title="how-to" rel="tag nofollow">how-to</a>, <a href="http://www.dimio.org/tag/plugin" title="plugin" rel="tag nofollow">plugin</a>, <a href="http://www.dimio.org/tag/seo" title="seo" rel="tag nofollow">seo</a>, <a href="http://www.dimio.org/tag/wordpress" title="wordpress" rel="tag nofollow">wordpress</a>, <a href="http://www.dimio.org/tag/pamyatka" title="памятка" rel="tag nofollow">памятка</a><br />

	<h4>Еще на похожие темы:</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.dimio.org/unikalizator-kontenta-wordpress-unikalizator.html" title="Уникализатор контента WordPress Unikalizator (27/09/2009)">Уникализатор контента WordPress Unikalizator</a></li>
	<li><a href="http://www.dimio.org/sozdanie-statej-dlya-satellita-article-clone-easy-rukovodstvo.html" title="Создание статей для сателлита &#8211; Article Clone Easy (15/09/2009)">Создание статей для сателлита &#8211; Article Clone Easy</a></li>
	<li><a href="http://www.dimio.org/pishem-plagin-dlya-wordpress-funkcionalnaya-sostavlyayushhaya-chast-5.html" title="Пишем плагин для WordPress. Функциональная составляющая (часть 5) (19/10/2009)">Пишем плагин для WordPress. Функциональная составляющая (часть 5)</a></li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.dimio.org/rc-link-redirector-i-ssylki-v-tekstovom-vidzhete.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Сравнение производительности сетевых библиотек в Perl</title>
		<link>http://www.dimio.org/sravnenie-proizvoditelnosti-setevyx-bibliotek-v-perl.html</link>
		<comments>http://www.dimio.org/sravnenie-proizvoditelnosti-setevyx-bibliotek-v-perl.html#comments</comments>
		<pubDate>Thu, 07 Apr 2011 10:46:26 +0000</pubDate>
		<dc:creator>dimio</dc:creator>
				<category><![CDATA[Интернет]]></category>
		<category><![CDATA[Кодинг]]></category>
		<category><![CDATA[curl]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[wget]]></category>
		<category><![CDATA[многопоточность]]></category>
		<category><![CDATA[парсер]]></category>
		<category><![CDATA[программинг]]></category>
		<category><![CDATA[скрипт]]></category>
		<category><![CDATA[тиц]]></category>

		<guid isPermaLink="false">http://www.dimio.org/?p=364</guid>
		<description><![CDATA[Когда задумал сделать парсер тИЦ для LJ Add/Remove Fiends &#8211; решил для начала проверить, какой способ загрузки страниц с показателями тИЦ из скрипта окажется быстрее, поскольку это в любом случае окажется самым узким местом в производительности парсера (любая обработка уже полученных данных, если она сделана без грубых ошибок типа бесконечного цикла, происходит гораздо быстрее загрузки [...]]]></description>
			<content:encoded><![CDATA[<p>Когда задумал сделать парсер тИЦ для <a href="http://www.dimio.org/lj-mass-add-remove-friends">LJ Add/Remove Fiends</a> &#8211; решил для начала проверить, какой способ загрузки страниц с показателями тИЦ из скрипта окажется быстрее, поскольку это в любом случае окажется самым узким местом в производительности парсера (любая обработка уже полученных данных, если она сделана без грубых ошибок типа бесконечного цикла, происходит гораздо быстрее загрузки этих данных по сети).</p>
<p>Для начала проверил на локальной машине (первый тест), затем на сервере (второй тест). Воспользовался модулем <code>Benchmark::Timer</code>, по сути он ставит метки начала и конца, после чего вычисляет разницу между ними (то же самое несложно получить с использованием <code>Time::HiRes</code>). У <code>Benchmark::Timer</code> правда есть дополнительная возможность &#8211; он может гонять тест до получения результата с заданной обеспеченностью и заданным процентом ошибки.</p>
<p>Третьим тестом, уже из чистого любопытства (поскольку результат был предсказуем) был тест многопоточной загрузки. Естественно этот вариант оказался быстрее любого из однопоточных, в среднем в два раза (при 15 потоках).</p>
<p><strong>Выводы</strong> &#8211; библиотеки <em><a href="http://www.dimio.org/perl-practical-extraction-and-report-language.html">Perl</a></em> не только выгодней с точки зрения безопасности, но и работают стабильно быстрее вызовов системных утилит. <strong>Самую медленную загрузку показал <em>Wget</em></strong>, основывать парсер на нём &#8211; явно плохая идея. Многопточность естественно вне конкуренции. Подробности ниже.</p>
<p><span id="more-364"></span></p>
<h3>Объекты и условия тестирования</h3>
<ul>
<li>Модули Perl:
<ul>
<li>LWP::UserAgent 6.02</li>
<li>LWP::Curl 0.07-1</li>
<li>WWW::Curl::Easy 4.15</li>
<li>LWP::Parallel::UserAgent 2.57 (15 потоков)</li>
</ul>
</li>
<li>Внешние загрузчики:
<ul>
<li>Wget 1.12</li>
<li>Curl 7.21.3</li>
</ul>
</li>
</ul>
<p>На локальной машине каждым способом загружалось по 200 страниц, с сервера &#8211; 100. Тесты выполнял по 5 раз, результаты усреднил (меня интересовали отношения результатов между собой, а не абсолютные значения). Ссылки передавались скрипту из файла, содержащего запрос тИЦ для 400 различных адресов, например:<br />
<code>http://bar-navig.yandex.ru/u?ver=2&show=32&url=http://nadonenado.livejournal.com</code></p>
<h3>Результаты тестирования скорости загрузки страниц в Perl</h3>
<table cellpadding="10" cellspacing="8" cols="4">
<tr>
<th colspan="4">200 запросов с локальной машины:<br /> tail -n 200  www-get-speed-data.txt | perl www-get-speed.pl</th>
</tr>
<tr>
<td rowspan="5">Trails:<br />200</td>
<td width="50">LWP-UA</td>
<td>9.523s total</td>
<td>47.615 ms/trial</td>
</tr>
<tr>
<td>LWP-Curl</td>
<td>8.500s total</td>
<td>42.499 ms/trial</td>
</tr>
<tr>
<td>Wget 1.12 qx{}</td>
<td>15.392s total</td>
<td>76.958 ms/trial</td>
</tr>
<tr>
<td>WWW-Curl-Easy</td>
<td>9.081s total</td>
<td>45.405 ms/trial</td>
</tr>
<tr>
<td>Curl 7.21.3 qx{}</td>
<td>13.340s total</td>
<td>66.698 ms/trial</td>
</tr>
<tr>
<th colspan="4">100 запросов с сервера (США):<br /> tail -n 100  www-get-speed-data.txt | perl www-get-speed.pl</th>
</tr>
<tr>
<td rowspan="5">Trails:<br />100</td>
<td>LWP-UA</td>
<td>42.861s total</td>
<td>428.611 ms/trial</td>
</tr>
<tr>
<td>LWP-Curl</td>
<td>41.762s total</td>
<td>417.615 ms/trial</td>
</tr>
<tr>
<td>Wget 1.10.2 qx{}</td>
<td>46.554s total</td>
<td>465.543 ms/trial</td>
</tr>
<tr>
<td>WWW-Curl-Easy</td>
<td>40.748s total</td>
<td>407.476 ms/trial</td>
</tr>
<tr>
<td>Curl 7.20.0 qx{}
<td>45.750s total),
<td>457.500 ms/trial</tr>
<tr>
<th colspan="4">Параллельные запросы с сервера (100, по 15 одновременных):<br /> tail -n 100  www-get-speed-data.txt | perl lwp-parallel-ua.pl</th>
</tr>
<tr>
<td>100 trial</td>
<td>LWP-PUA</td>
<td>22.967s total</td>
<td>229,670 ms/trial</td>
</tr>
</table>
<h3>Код тестов для проверки скорости выгрузки страниц на Perl</h3>
<h4>Загрузка страниц из Perl в один поток (LWP, CURL, Wget)</h4>
<p><a href='http://www.dimio.org/sravnenie-proizvoditelnosti-setevyx-bibliotek-v-perl.html#SID364_1_tgl' title='навестить блог, чтобы проверить этот интерцептор'>[[навестить блог, чтобы проверить этот интерцептор]]</a></p>
<h4>Многопоточная загрузка страниц из Perl (15 потоков)</h4>
<p><a href='http://www.dimio.org/sravnenie-proizvoditelnosti-setevyx-bibliotek-v-perl.html#SID364_2_tgl' title='навестить блог, чтобы проверить этот интерцептор'>[[навестить блог, чтобы проверить этот интерцептор]]</a></p>

	Метки:<a href="http://www.dimio.org/tag/curl" title="curl" rel="tag nofollow">curl</a>, <a href="http://www.dimio.org/tag/perl" title="perl" rel="tag nofollow">perl</a>, <a href="http://www.dimio.org/tag/wget" title="wget" rel="tag nofollow">wget</a>, <a href="http://www.dimio.org/tag/mnogopotochnost" title="многопоточность" rel="tag nofollow">многопоточность</a>, <a href="http://www.dimio.org/tag/parser" title="парсер" rel="tag nofollow">парсер</a>, <a href="http://www.dimio.org/tag/programmirovanie" title="программинг" rel="tag nofollow">программинг</a>, <a href="http://www.dimio.org/tag/skript" title="скрипт" rel="tag nofollow">скрипт</a>, <a href="http://www.dimio.org/tag/tic" title="тиц" rel="tag nofollow">тиц</a><br />

	<h4>Еще на похожие темы:</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.dimio.org/anonimajzer-kak-zamena-proksi-proverka-anonimajzerov-na-validnost.html" title="Анонимайзер как замена прокси. Проверка анонимайзеров на валидность (27/08/2010)">Анонимайзер как замена прокси. Проверка анонимайзеров на валидность</a></li>
	<li><a href="http://www.dimio.org/software" title="Софт (02/10/2009)">Софт</a></li>
	<li><a href="http://www.dimio.org/sinxronizaciya-tekstovyx-fajlov-prostoj-skript-na-perl.html" title="Синхронизация текстовых файлов &#8211; простой скрипт на Perl (09/07/2010)">Синхронизация текстовых файлов &#8211; простой скрипт на Perl</a></li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.dimio.org/sravnenie-proizvoditelnosti-setevyx-bibliotek-v-perl.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Вставка PHP кода в WordPress записи и виджеты</title>
		<link>http://www.dimio.org/vstavka-php-koda-v-wordpress-zapisi-i-vidzhety.html</link>
		<comments>http://www.dimio.org/vstavka-php-koda-v-wordpress-zapisi-i-vidzhety.html#comments</comments>
		<pubDate>Thu, 31 Mar 2011 09:15:03 +0000</pubDate>
		<dc:creator>dimio</dc:creator>
				<category><![CDATA[Блоггинг]]></category>
		<category><![CDATA[Хитрости]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[блог]]></category>
		<category><![CDATA[программинг]]></category>
		<category><![CDATA[трюки]]></category>

		<guid isPermaLink="false">http://www.dimio.org/?p=359</guid>
		<description><![CDATA[Давно подумывал над тем, чтобы вставлять исполняемый код в посты, страницы и виджеты WordPress. Поскольку сам движок написан на PHP &#8211; логично вставлять именно его, хотя можно попробовать встроить например Perl, воспользовавшись CPAN-модулем PHP::Interpreter или PECL-модулем PHP под названием perl. Но PHP вставить естественно проще . Итак, как же вставить в WordPress PHP? Как и [...]]]></description>
			<content:encoded><![CDATA[<p>Давно подумывал над тем, чтобы вставлять исполняемый код в посты, страницы и виджеты <em>WordPress</em>. Поскольку сам движок написан на <em><a href="http://www.dimio.org/php-personal-home-page-tools.html" title="PHP – Personal Home Page Tools">PHP</a></em> &#8211; логично вставлять именно его, хотя можно попробовать встроить например <em><a href="http://www.dimio.org/perl-practical-extraction-and-report-language.html">Perl</a></em>, воспользовавшись <em>CPAN</em>-модулем <code class="codecolorer text default"><span class="text">PHP::Interpreter</span></code> или <em>PECL</em>-модулем <em>PHP</em> под названием <code class="codecolorer text default"><span class="text">perl</span></code>. Но <em>PHP</em> вставить естественно проще <img src='http://www.dimio.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>Итак, как же вставить в <em>WordPress</em> <em>PHP</em>? Как и в большинстве других случаев, когда надо модифицировать движок &#8211; просто воспользоваться подходящим плагином.<br />
Плагинов находится множество, я попробовал 4 штуки и остановился на <strong>Exec-PHP</strong>.<br />
Он умеет всё, что мне было надо:</p>
<ul>
<li>Вставлять исполняемый <em>PHP</em> код в посты (и соответственно &#8211; в страницы)</li>
<li>Втавлять код в виджеты</li>
</ul>
<p>Прейдём к настройке плаина.
</p>
<p>Настройка может оказаться не совсем очевидной &#8211; с административной страницы плагина всё сделать не получится. Чтобы исполнение <em>PHP</em>-кода в WordPress заработало, нужно убедиться в следующем:</p>
<ul>
<li>Что пункт <code class="codecolorer text default"><span class="text">&quot;WordPress должен исправлять некорректный XHTML код автоматически&quot;</span></code> в меню <em>Настройки->Написание</em> <strong>неактивен</strong></li>
<li>Что выключен &#8220;графический&#8221; редактор в меню <em>Пользователи->Ваш профиль</em> (стоит галка на <code class="codecolorer text default"><span class="text">&quot;Отключить «визуальное редактирование» при написании&quot;</span></code>)</li>
<li>Что нужной группе пользователей (в <em>WordPress</em> это называется &#8220;ролью&#8221;) разрешено исполнение <em>PHP</em>-кода (для роли &#8220;<em>Administrator</em>&#8221; должно быть разрешено по умолчанию)</li>
</ul>
<p>При выполнении вышеперечисленных условий втавленный в записи, страницы и виджеты код должен успешно исполняться. Например мой <a href="http://www.dimio.org/lj-mass-add-remove-friends">скрипт для массового добавления друзей в ЖЖ</a>, будучи вставленным в страницу <em>WordPress</em>, успешно работает!</p>
<p>Считаю не лишним напомнить про опасность исполнения неочищенного кода. Не знаю, поддерживает ли <em>PHP</em> какую-то аналогичую <code class="codecolorer text default"><span class="text">perl -T</span></code> опцию, поэтому нужно просто помнить про очистку пользовательского ввода (использование недопустимых символов, размеры аргументов опций и т.п.), экранирование всех передаваемых в <em>shell</em> команд и их аргументов и так далее.</p>
<p>В остальном польза от встроенного в WordPress PHP кода очевидна &#8211; это полная свобода действий с содержимым блога, помноженная на простоту выполнения этих действий!</p>

	Метки:<a href="http://www.dimio.org/tag/php" title="php" rel="tag nofollow">php</a>, <a href="http://www.dimio.org/tag/wordpress" title="wordpress" rel="tag nofollow">wordpress</a>, <a href="http://www.dimio.org/tag/blog" title="блог" rel="tag nofollow">блог</a>, <a href="http://www.dimio.org/tag/programmirovanie" title="программинг" rel="tag nofollow">программинг</a>, <a href="http://www.dimio.org/tag/tryuki" title="трюки" rel="tag nofollow">трюки</a><br />

	<h4>Еще на похожие темы:</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.dimio.org/biblioteka-dlia-wordpress-kak-sdelat-svoe-failohranilische.html" title="Библиотека для WordPress. Как сделать своё файлохранилище (15/12/2009)">Библиотека для WordPress. Как сделать своё файлохранилище</a></li>
	<li><a href="http://www.dimio.org/plagin-dobavleniya-podpisi-pod-soobshheniyami-wordpress-wordpress-rss-signaturer.html" title="Плагин добавления подписи под сообщениями WordPress &#8211; WordPress RSS Signaturer (02/10/2009)">Плагин добавления подписи под сообщениями WordPress &#8211; WordPress RSS Signaturer</a></li>
	<li><a href="http://www.dimio.org/pishem-plagin-dlya-wordpress-funkcionalnaya-sostavlyayushhaya-chast-5.html" title="Пишем плагин для WordPress. Функциональная составляющая (часть 5) (19/10/2009)">Пишем плагин для WordPress. Функциональная составляющая (часть 5)</a></li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.dimio.org/vstavka-php-koda-v-wordpress-zapisi-i-vidzhety.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Замена стандартной Windows-консоли. Вкладки-табы и выбор оболочки</title>
		<link>http://www.dimio.org/zamena-standartnoj-windows-konsoli-vkladki-taby-i-vybor-obolochki.html</link>
		<comments>http://www.dimio.org/zamena-standartnoj-windows-konsoli-vkladki-taby-i-vybor-obolochki.html#comments</comments>
		<pubDate>Wed, 23 Mar 2011 10:05:30 +0000</pubDate>
		<dc:creator>dimio</dc:creator>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[console]]></category>
		<category><![CDATA[cygwin]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.dimio.org/?p=340</guid>
		<description><![CDATA[Стандартная консоль Windows XP (та, что вызывается командой cmd) &#8211; весьма бедна возможностями. Основное, от чего я страдал, пользуясь ей или консолью из состава cygwin &#8211; отсутствие вкладок (табов), без которых приходится открывать несколько окон, занимающих место на рабочем столе. После gnome-terminal дома или screen на хостинге &#8211; очень неудобно. Впрочем, такие &#8220;мелочи&#8221;, как невозможность [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.dimio.org/wp-content/uploads/2011/03/console-win.jpg"><img src="http://www.dimio.org/wp-content/uploads/2011/03/console-win-300x163.jpg" alt="Альтернативная консоль для Window с поддержкой табов/вкладок и оболочек" title="Сonsole-win" width="300" height="163" class="aligncenter size-medium wp-image-341" /></a></p>
<p>Стандартная консоль <em>Windows XP</em> (та, что вызывается командой <code class="codecolorer text default"><span class="text">cmd</span></code>) &#8211; весьма бедна возможностями. Основное, от чего я страдал, пользуясь ей или консолью из состава <em><a href="http://www.dimio.org/cygwin-besplatnaya-realizaciya-unix-podobnogo-okruzheniya-dlya-windows.html">cygwin</a></em> &#8211; отсутствие вкладок (табов), без которых приходится открывать несколько окон, занимающих место на рабочем столе. После <em>gnome-terminal</em> дома или <em>screen</em> на хостинге &#8211; очень неудобно. Впрочем, такие &#8220;мелочи&#8221;, как невозможность изменить ширину окна растягиванием (надо лезть в настройки окна) тоже не добавляют удовольствия от работы с консолью.</p>
<p>И вот случайно наткнулся в интернете на замечательный проект с незамысловатым названием <strong>Console</strong> (<noindex><a rel="nofollow" target="_blank" href="http://www.dimio.org/e3f466/URBFQw1KSUdcERRUV15bRgQET15TRElBSlpeVAAQFxhaC19AWAkDGw==/">домашняя страница</a></noindex>) &#8211; альтернативную консоль для <em>Windows</em>. Она мне понравилась, так что решил поделиться с читателями.<br />
Перечислю основные достоинства:</p>
<ul>
<li>лаконичный интерфейс</li>
<li>сохраняются настройки геометрии окна после выхода из программы</li>
<li>поддержка табов</li>
<li>для каждого таба можно настроить внешний вид, иконку и главное &#8211; задать оболочку (<em>shell</em>), с которой будет открываться данная вкладка (например &#8211; тот же <em><a href="http://www.dimio.org/bash-born-again-shell-obolochka-komandnoj-stroki.html">bash</a></em> из состава <a href="http://www.dimio.org/cygwin-besplatnaya-realizaciya-unix-podobnogo-okruzheniya-dlya-windows.html"><em>cygwin</em></a>)</li>
<li>для таба/консоли задаётся каталог запуска по умолчанию</li>
<li>удобный скроллинг</li>
</ul>
<p>В общем <strong>Console</strong> не требует долгого и подробного описания &#8211; это приятная глазу альтернативная консоль для Windows с поддержкой табов (вкладок) и оболочек. Рекомендую просто попробовать!</p>

	Метки:<a href="http://www.dimio.org/tag/console" title="console" rel="tag nofollow">console</a>, <a href="http://www.dimio.org/tag/cygwin" title="cygwin" rel="tag nofollow">cygwin</a>, <a href="http://www.dimio.org/tag/windows" title="windows" rel="tag nofollow">windows</a><br />

	<h4>Еще на похожие темы:</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.dimio.org/adaptaciya-cygwin-shred-dlya-windows.html" title="Адаптация Cygwin shred для Windows (10/11/2010)">Адаптация Cygwin shred для Windows</a></li>
	<li><a href="http://www.dimio.org/cygwin-besplatnaya-realizaciya-unix-podobnogo-okruzheniya-dlya-windows.html" title="Cygwin &#8211; бесплатная реализация unix-подобного окружения для Windows (29/09/2009)">Cygwin &#8211; бесплатная реализация unix-подобного окружения для Windows</a></li>
	<li><a href="http://www.dimio.org/nastrojka-rxvt-cherez-xdefaults.html" title="Настройка Rxvt через Xdefaults (19/04/2011)">Настройка Rxvt через Xdefaults</a></li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.dimio.org/zamena-standartnoj-windows-konsoli-vkladki-taby-i-vybor-obolochki.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Дистанционное управление для автомобильного компрессора Беркут</title>
		<link>http://www.dimio.org/distancionnoe-upravlenie-dlya-avtomobilnogo-kompressora-berkut.html</link>
		<comments>http://www.dimio.org/distancionnoe-upravlenie-dlya-avtomobilnogo-kompressora-berkut.html#comments</comments>
		<pubDate>Sat, 05 Mar 2011 12:18:57 +0000</pubDate>
		<dc:creator>dimio</dc:creator>
				<category><![CDATA[Авто]]></category>
		<category><![CDATA[Технократия]]></category>
		<category><![CDATA[путешествия]]></category>
		<category><![CDATA[самодел]]></category>
		<category><![CDATA[техника]]></category>

		<guid isPermaLink="false">http://www.dimio.org/?p=326</guid>
		<description><![CDATA[Решил в рамках подготовки к сезону поменять автокомпрессор на более мощный (с Беркут R15 на Беркут R17), чтобы не испытывать проблем с подкачкой колес после травления. Однако не обратил внимания в магазине на тот факт, что производитель не предусмотрел возможности включать компрессор дистанционно, не смотря на то, что он укомплектован шлангом длиной 7,5 м. Шланг [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.dimio.org/wp-content/uploads/2011/03/compressor-brekut-17.jpg"><img src="http://www.dimio.org/wp-content/uploads/2011/03/compressor-brekut-17-300x253.jpg" alt="общий вид компрессора до модернизации" title="Компрессор Беркут R17" width="300" height="253" class="alignleft size-medium wp-image-335" /></a><br />
Решил в рамках подготовки к сезону поменять автокомпрессор на более мощный (с <em>Беркут R15</em> на <em>Беркут R17</em>), чтобы не испытывать проблем с подкачкой колес после травления. Однако не обратил внимания в магазине на тот факт, что производитель не предусмотрел возможности включать компрессор дистанционно, не смотря на то, что он укомплектован шлангом длиной 7,5 м. Шланг в данном случае получается бесполезным &#8211; всё равно нужно компрессор таскать с собой (не выключив его невозможно точно померить давление в колесе). Также не особо удобным оказалась конструкция наконечника шланга &#8211; его нужно наворачивать на ниппель, хотя R15 был оборудован быстросъемным наконечником. Соответственно перечисленные минусы нужно было устранять. С наконечником всё понятно &#8211; его можно только заменить на более удобный (я использовал пневмопистолет с манометром), а вот для использования потенциала длинного шланга есть несколько путей:</p>
<ul>
<li>Установить ресивер (аккумулятор давления) с реле давления, компрессор будет по необходимости давление нагнетать. <strong>Плюсы установки ресивера</strong> &#8211; можно подключать пневмноинструмент, легко забортировать колесо, есть возможность смонтировать пневматический ревун, пневмоблокировки, при большом объеме ресивера &#8211; быстро накачивать объемных потребителей типа надувной лодки. <strong>Минусы</strong> &#8211; необходимость тянуть пневмосистему, ресивер объемом менее 10 л полезен только для пневмоблокировок, а под большой объем ресивера нужно место, которого у меня не так много.</li>
<li>Врезать в шланг возле манометра трехходовй кран, который после переключения будет выпускать воздух в окружающую среду. <strong>Плюсы</strong> &#8211; дёшево и сердито. <strong>Минусы</strong> &#8211; компрессор работает вхолостую, расходует ток, греется и изнашивается.</li>
<li>Смонтировать на компрессор дистанционное управление, чтобы не бегать к нему каждый раз, как будет нужно его включить или выключить. <strong>Плюсы</strong> &#8211; простота исполнения, минимум материальных затрат, не нужно искать дополнительное место, поставленные задачи решаются в полном объеме. <strong>Минусы</strong> &#8211; для решения возможных доп. задач (ревун, инструмент, блокировки) компрессор (мой <em>Беркут R17</em>) без ресивера в силу малой мощности не подойдет.</li>
</ul>
<p>Я, как не сложно догадаться из заголовка заметки, избрал третий путь и оснастил компрессор системой дистанционного включения питания, о чем и расскажу ниже.</p>
<p><span id="more-326"></span></p>
<h3>Элементы схемы дистанционного управления питанием компрессора</h3>
<p><a href="http://www.dimio.org/wp-content/uploads/2011/03/compressor_scheme1.jpg"><img src="http://www.dimio.org/wp-content/uploads/2011/03/compressor_scheme1-300x250.jpg" alt="схема дистанционного управления автокомпрессором Беркут" title="Электрическая схема системы дистанционного управления" width="300" height="250" class="aligncenter size-medium wp-image-328" /></a></p>
<table border="1" cellpadding="7" cellspacing="0" cols="2">
<tr>
<th colspan="2"><big>Переключатели</big></th>
</tr>
<tr>
<td align="center"><strong>COMP. SW</strong></td>
<td align="left">Штатный двухпозиционный переключатель компрессора (Вкл/Выкл)</td>
</tr>
<tr>
<td align="center"><strong>Без имени</strong></td>
<td align="left">Прожимная кнопка на 12В без фиксации (смонтирована в рукоятке пистолета)</td>
</tr>
<tr>
<td align="center"><strong>RELAY</strong></td>
<td align="left">Реле электромагнитное TR90-12VDC-SC-A.<br />
Коммутируемая линия: до 30 А, 240 В; управляющая линия: 12 В, ~ 7 мА</td>
</tr>
<tr>
<th colspan="2"><big>Предохранители</big></th>
</tr>
<tr>
<td align="center"><strong>30А</strong></td>
<td align="left">Штатный 30-ти амперный предохранитель компрессора (&#8220;автомобильный&#8221; плоский)</td>
</tr>
<tr>
<td align="center"><strong>0.25А</strong></td>
<td align="left">Предохранитель в цепи кнопки на ток 250 мА (смонтирован в рукоятке пистолета)</td>
</tr>
<tr>
<th colspan="2"><big>Прочее</big></th>
</tr>
<tr>
<td align="center"><strong>COMPRESSOR</strong></td>
<td align="left">Автомобильный компрессор Беркут R17</td>
</tr>
<tr>
<td align="center"><strong>Выводы питания</strong></td>
<td align="left">&#8220;+&#8221; и &#8220;-&#8221; автомобильной АКБ, номинальное напряжения 12 В</td>
</tr>
</table>
<h3>Алгоритм работы дистанционного управления питанием компрессора</h3>
<ol>
<li>При переводе штатной кнопки питания компрессора в положение &#8220;<em>ВКЛ</em>&#8221; в управляющей цепи реле возникает ток, управляющая цепь разорвана кнопкой в рукояти пистолета</li>
<li>При нажатии на гашетку пистолета в нем открывается пневмоклапан и одновременно кнопкой замыкается управляющая цепь реле</li>
<li>После поступления питания в управляющую линию реле замыкает коммутируемую линию и компрессор начинает работать</li>
<li>При отжимании гашетки пистолета размыкается управляющая цепь реле, реле размыкает коммутируемую линию, компрессор прекращает работу, пневмоклапан закрывается</li>
<li>При переключении кнопки питания компрессора в положение &#8220;<em>ВЫКЛ</em>&#8221; система управления и компрессор обесточены</li>
</ol>
<h3>Монтаж системы дистанционного управления автокомпрессором</h3>
<p>Первым делом нужно слегка модифицировать стандартный шланг компрессора, который зачем-то сделали с несъемным наконечником. Этот самый наконечник убираем и вместо него ставим фиттинг для быстрого подключения пистолета (или какого-нибудь пневмноинструмента).<br />
<a href="http://www.dimio.org/wp-content/uploads/2011/03/2011-02-20-19.08.23.jpg"><img src="http://www.dimio.org/wp-content/uploads/2011/03/2011-02-20-19.08.23-300x161.jpg" alt="шланг компрессора Беркут R17" title="Модифицированный шланг" width="300" height="161" class="aligncenter size-medium wp-image-329" /></a></p>
<p>Штатный наконечник снимается довольно легко, а вот закрепить на шланге пружинку после установки фиттинга не так-то просто. Мне пришлось надевать ее поэтапно, продвигая по 2-3 витка, уперев в них отвертку, по которой я стучал молотком. Герметичность проверяем мыльным раствором. В итоге должен получиться вот такой шланг:<br />
<a href="http://www.dimio.org/wp-content/uploads/2011/03/2011-02-20-19.42.54.jpg"><img src="http://www.dimio.org/wp-content/uploads/2011/03/2011-02-20-19.42.54-300x143.jpg" alt="модернизация шланга автокомпрессора Беркут" title="Модифицированный шланг" width="300" height="143" class="aligncenter size-medium wp-image-331" /></a></p>
<p>Далее следует подготовить пистолет &#8211; вмонтировать в него кнопку, предохранитель (если нужен) и сделать выпуски проводки. Отверстие под кнопку я сверлил шестеркой и затем немного расширил по месту.<br />
<a href="http://www.dimio.org/wp-content/uploads/2011/03/2011-02-20-20.47.401.jpg"><img src="http://www.dimio.org/wp-content/uploads/2011/03/2011-02-20-20.47.401-225x300.jpg" alt="монтаж кнопки в пневмопистолет" title="Установка кнопки в пневматический пистолет" width="225" height="300" class="aligncenter size-medium wp-image-332" /></a></p>
<p>После всех издевательств над пистолетом он обзавелся кнопкой для включения компрессора, расположенной в рукояти, предохранителем в цепи кнопки и выпуском проводки из рукояти:<br />
<a href="http://www.dimio.org/wp-content/uploads/2011/03/2011-02-20-22.49.29.jpg"><img src="http://www.dimio.org/wp-content/uploads/2011/03/2011-02-20-22.49.29-300x114.jpg" alt="Кнопка в пневмопистолете" title="Кнопка в пневмопистолете" width="300" height="114" class="aligncenter size-medium wp-image-333" /></a><br />
<a href="http://www.dimio.org/wp-content/uploads/2011/03/2011-02-21-20.13.02.jpg"><img src="http://www.dimio.org/wp-content/uploads/2011/03/2011-02-21-20.13.02-300x225.jpg" alt="монтаж предохранителя в пистолетную рукоять" title="Предохранитель в пистолете" width="300" height="225" class="aligncenter size-medium wp-image-334" /></a></p>
<p>Теперь необходимо пропустить питание компрессора через реле, подключенное к кнопке в рукояти пистолета. Мое реле внутрь кожуха компрессора не влезло, так что я вывел проводку наружу и закрепил реле на кожухе. Кнопка включения компрессора находится на минусовой (земляной) линии, соответственно реле будет висеть на ней же. При снятии кожуха столкнулся с проблемой очень мягких головок винтов &#8211; один даже пришлось высверливать (при том, что они еще и на фиксаторе резьбы судя по всему). Нужна отвертка, которая точно попадет в пазы. Со снятым кожухом компрессор выглядит так:<br />
<a href="http://www.dimio.org/wp-content/uploads/2011/03/2011-02-24-19.46.14.jpg"><img src="http://www.dimio.org/wp-content/uploads/2011/03/2011-02-24-19.46.14-297x300.jpg" alt="снятие кожуха с компрессора Беркут" title="Компрессор Беркут со снятым кожухом" width="297" height="300" class="aligncenter size-medium wp-image-336" /></a></p>
<p>Закрепленной на кожухе с помощью термокля реле (справа &#8211; ноги управляющей линии, слева &#8211; коммутируемой):<br />
<a href="http://www.dimio.org/wp-content/uploads/2011/03/2011-02-24-22.44.19.jpg"><img src="http://www.dimio.org/wp-content/uploads/2011/03/2011-02-24-22.44.19-300x295.jpg" alt="монтаж управляющего реле на автокомпрессор" title="Компрессор со смонтированным реле" width="300" height="295" class="aligncenter size-medium wp-image-337" /></a></p>
<p>После сборки контакты реле и выпуск проводов тоже залил термоклеем, хвосты от управляющей линии пропущены по ручке компрессора и шлангу.<br />
<a href="http://www.dimio.org/wp-content/uploads/2011/03/2011-02-25-20.19.35.jpg"><img src="http://www.dimio.org/wp-content/uploads/2011/03/2011-02-25-20.19.35-279x300.jpg" alt="завершение монтажа реле" title="Окончание работы над компрессором" width="279" height="300" class="aligncenter size-medium wp-image-338" /></a></p>
<p>Теперь остается только пустить провода к кнопке в пистолете, приклеив их к шлангу компрессора. Я использовал телефонный провод &#8211; он достаточно гибкий и в прочной изоляции.</p>
<h3>Итоги монтажа дистанционного управления на компрессор</h3>
<p>После окончательной сборки вся конструкция по-прежнему влезает в штатную сумку от компрессора. Для проверки давления не нужно вынимать целиком компрессор (как например на <em>Беркут R15</em> и аналогаи) или шланг с манометром (тот же R17 или R20). Достаточно достать пистолет с манометром и с его помощью проверить давление или стравить колёса.<br />
Сам компрессор летом установлю стационарно на крыло, что избавит от необходимости ходить с ним к аккумулятору, останется только легко и непринужденно бегать со шлангом к колесам <img src='http://www.dimio.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Затраты на создание системы дистанционного управления получились около 350 руб. (с учетом покупки реле в далеко не дешевом Чип и Дипе) и 3 вечера свободного времени. Результатом доволен очень!<br />
<a href="http://www.dimio.org/wp-content/uploads/2011/03/2011-03-04-10.49.44.jpg"><img src="http://www.dimio.org/wp-content/uploads/2011/03/2011-03-04-10.49.44-300x225.jpg" alt="автокомпрессор Беркут после монтажа дистанционного управления" title="Окончательный вид после сборк" width="300" height="225" class="aligncenter size-medium wp-image-339" /></a></p>

	Метки:<a href="http://www.dimio.org/tag/puteshestviya" title="путешествия" rel="tag nofollow">путешествия</a>, <a href="http://www.dimio.org/tag/samodel" title="самодел" rel="tag nofollow">самодел</a>, <a href="http://www.dimio.org/tag/texnika" title="техника" rel="tag nofollow">техника</a><br />

	<h4>Еще на похожие темы:</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.dimio.org/sozdanie-infrakrasnoj-kamery-nochnogo-videniya-iz-veb-kamery.html" title="Создание инфракрасной камеры ночного видения из веб-камеры (13/08/2010)">Создание инфракрасной камеры ночного видения из веб-камеры</a></li>
	<li><a href="http://www.dimio.org/pohodniy_istochnik_pitanija_na_solnechnih_batarejah_svoimi_rukami.html" title="Походный источник питания на солнечных батареях своими руками. (10/09/2009)">Походный источник питания на солнечных батареях своими руками.</a></li>
	<li><a href="http://www.dimio.org/videoregistraciya-v-linux.html" title="Видеорегистрация + видеонаблюдение для дома в Linux (11/08/2010)">Видеорегистрация + видеонаблюдение для дома в Linux</a></li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.dimio.org/distancionnoe-upravlenie-dlya-avtomobilnogo-kompressora-berkut.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Автоматическая проверка готовности загранпаспорта</title>
		<link>http://www.dimio.org/avtomaticheskaya-proverka-gotovnosti-zagranpasporta.html</link>
		<comments>http://www.dimio.org/avtomaticheskaya-proverka-gotovnosti-zagranpasporta.html#comments</comments>
		<pubDate>Thu, 03 Feb 2011 11:26:03 +0000</pubDate>
		<dc:creator>dimio</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Интернет]]></category>
		<category><![CDATA[Кодинг]]></category>
		<category><![CDATA[Полезности]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[программинг]]></category>
		<category><![CDATA[скрипт]]></category>
		<category><![CDATA[трюки]]></category>

		<guid isPermaLink="false">http://www.dimio.org/?p=322</guid>
		<description><![CDATA[Гос. органы идут в массы, постоянно вводят новые, удобные для граждан (по крайней мере на первый взгляд), формы взаимодействия. К такому нововведению можно отнести и сервис проверки готовности загран. паспорта на сайте УФМС, расположенный по адресу http://www.ufms.spb.ru/checkzp.php. С помощью сервиса можно быстро узнать, готов ли загран. паспорт или еще находится в процессе оформления, введя в [...]]]></description>
			<content:encoded><![CDATA[<p>Гос. органы идут в массы, постоянно вводят новые, удобные для граждан (по крайней мере на первый взгляд), формы взаимодействия.<br />
К такому нововведению можно отнести и сервис проверки готовности загран. паспорта на сайте УФМС, расположенный по адресу <em>http://www.ufms.spb.ru/checkzp.php</em>. С помощью сервиса можно быстро узнать, готов ли загран. паспорт или еще находится в процессе оформления, введя в поля формы данные своего гражданского паспорта (также доступна проверка по данным из свидетельства о рождении).</p>
<p>Всё в принципе хорошо и удобно кроме одной мелочи &#8211; чтобы воспользоваться проверкой готовности &#8211; нужно периодически вспоминать о ней и заходить на сайт. По-моему, приделай УФМС автоматическое оповещение о готовности паспорта по электронной почте &#8211; сервис выглядел бы законченным и действительно удобным в использовании.</p>
<p>Но раз УФМС не идет на встречу гражданину, значит гражданин должен сам облегчить себе жизнь. Я решил сделать это используя три простых и доступных инструмента: консольный браузер <strong>lynx</strong> (для отправки данных формы POST-запросом), планировщик заданий <strong>cron</strong> (для периодической проверки готовности загран. паспорта) и утилиту поиска по тексту <strong>grep</strong> (для поиска нужной строки в дампе страницы), для чего написал простенький скрипт, который закинул в <em>cron</em>. Скрипт с указанным в кроне периодом проверяет готовность моего паспорта и присылает мне отчет на электронную почту (которая указана в настройках крона).</p>
<blockquote><p>
#!/bin/sh</p>
<p>echo &#8220;checkser=p&#038;seriap=<strong>XXXX</strong>&#038;numberp=<strong>YYYYYY</strong>&#038;submit=%CF%F0%EE%E2%E5%F0%E8%F2%FC&#8221; | lynx -post_data -dump http://www.ufms.spb.ru:80/checkzp.php | grep &#8216;Ваш заграничный&#8217;
</p>
</blockquote>
<p>Вместо <strong>ХХХХ</strong> нужно подставить серию своего гражданского паспорта (макс. 7 символов, что, как я понимаю, позволяет использовать серии старых паспортов, с римскими цифрами), а <strong>YYYYYY</strong> заменить соотв. на его номер (макс. 6 символов). Если запускать скрипт из-под английской локали, то шаблон для <em>grep</em> надо изменить с <em>&#8216;Ваш заграничный&#8217;</em> на <em>&#8216;Vash zagranichnyj&#8217;</em>, поскольку скрипт отдаст страницу в латинице.</p>
<p>При желании естественно можно прописать переменные отдельно и даже сделать проверку на локаль, но на мой взгляд это будет уже избыточно для решения такой простой задачи.</p>
<p><big><strong>Дополнение:</strong></big><br />
Если сайт проверки готовности загранника постоянно &#8220;радует&#8221; сообщением о превышении числа запросов, можно пропустить их через <em><a href="http://www.dimio.org/tor-the-onion-router-luchshij-iz-besplatnyx-proksi.html" title="TOR — the onion router. Лучший из бесплатных прокси">tor</a></em>. В этом случае удобно будет воспользоваться другим способом отправки форм POST-методом из <em>lynx</em> &#8211; записать автоматический скрипт, который и будет осуществлять проверку.</p>
<p>Посутпаем следующим образом:</p>
<ol>
<li>вызываем <em>lynx</em> с ключем <em>cmd_log</em>=имя_файла_куда_сохранить_скрипт:<br />
<code class="codecolorer text default"><span class="text">lynx -cmd_log=script_name http://www.ufms.spb.ru:80/checkzp.php</span></code>,<br />
вводим серию и номер паспорта, отправляем запрос, дожидаемся загрузки страницы с ответом и закрываем браузер.</li>
<li>в дополнение к <em>tor</em> устанавливаем <em>torsocks</em> &#8211; утилита несколько сырая, но дело своё делает исправно, перенаправляя траффик на <em>tor</em> (можно естественно использовать любой понравившийся <a href="http://www.dimio.org/anonimajzer-kak-zamena-proksi-proverka-anonimajzerov-na-validnost.html">прокси</a>, указав его в качестве умолчального <code class="codecolorer text default"><span class="text">export http_proxy=&quot;address:port&quot;</span></code>).</li>
<li>вызываем <em>lynx</em> через <em>torsocks</em> или выбранный прокси с указанием использовать для автоматизации отправки данных формы записанный ранее файл скрипта с передачей результатов работы на разбор в <em>grip</em>:<br />
<code class="codecolorer text default"><span class="text">torsocks lynx -cmd_script=script_name http://www.ufms.spb.ru:80/checkzp.php | grep &quot;Ваш заграничный&quot;</span></code> </li>
</ol>
<p></p>
<p>Всё, автоматизация проверки готовности заграничного паспорта успешно проведена! Пока скрипт работает за человека, человек может расположиться у <a href="http://irr.ru/electronics-technics/tv-audio-dvd/tv/" >lcd телевизора</a> и спокойно отдохнуть <img src='http://www.dimio.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

	Метки:<a href="http://www.dimio.org/tag/linux" title="linux" rel="tag nofollow">linux</a>, <a href="http://www.dimio.org/tag/internet" title="Интернет" rel="tag nofollow">Интернет</a>, <a href="http://www.dimio.org/tag/programmirovanie" title="программинг" rel="tag nofollow">программинг</a>, <a href="http://www.dimio.org/tag/skript" title="скрипт" rel="tag nofollow">скрипт</a>, <a href="http://www.dimio.org/tag/tryuki" title="трюки" rel="tag nofollow">трюки</a><br />

	<h4>Еще на похожие темы:</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.dimio.org/anonimajzer-kak-zamena-proksi-proverka-anonimajzerov-na-validnost.html" title="Анонимайзер как замена прокси. Проверка анонимайзеров на валидность (27/08/2010)">Анонимайзер как замена прокси. Проверка анонимайзеров на валидность</a></li>
	<li><a href="http://www.dimio.org/avtomaticheskoe-opredelenie-kodirovki-terminala-v-perl-skripte.html" title="Автоматическое определение кодировки терминала в perl-скрипте. (25/12/2009)">Автоматическое определение кодировки терминала в perl-скрипте.</a></li>
	<li><a href="http://www.dimio.org/xalyavnaya-reklama-na-twite-ru.html" title="Халявная реклама на twite.ru (20/10/2011)">Халявная реклама на twite.ru</a></li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.dimio.org/avtomaticheskaya-proverka-gotovnosti-zagranpasporta.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Небольшое обновление генератора XML для WordPress</title>
		<link>http://www.dimio.org/nebolshoe-obnovlenie-generatora-xml-dlya-wordpress.html</link>
		<comments>http://www.dimio.org/nebolshoe-obnovlenie-generatora-xml-dlya-wordpress.html#comments</comments>
		<pubDate>Thu, 25 Nov 2010 12:22:29 +0000</pubDate>
		<dc:creator>dimio</dc:creator>
				<category><![CDATA[seo]]></category>
		<category><![CDATA[WPXMLCreator]]></category>
		<category><![CDATA[Сервисы]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[онлайн]]></category>
		<category><![CDATA[сателлит]]></category>
		<category><![CDATA[скрипт]]></category>

		<guid isPermaLink="false">http://www.dimio.org/?p=320</guid>
		<description><![CDATA[WordPress XML Creator Online (онлайн версия генератора XML файлов для импорта и автоматического наполнения блогов на wordpress) получила небольшое, но достаточно полезное, по-моему, дополнение &#8211; возможности добавления картинок к записям. Ссылки на картинки берутся случайным образом из списка, указанного пользователем (если список оставить пустым &#8211; ничего к записям добавлено не будет) и добавляются в начало [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.dimio.org/cgi-bin/wpxmlcreator.cgi">WordPress XML Creator Online</a> (онлайн версия генератора XML файлов для импорта и автоматического наполнения блогов на wordpress) получила небольшое, но достаточно полезное, по-моему, дополнение &#8211; возможности добавления картинок к записям.</p>
<p>Ссылки на картинки берутся случайным образом из списка, указанного пользователем (если список оставить пустым &#8211; ничего к записям добавлено не будет) и добавляются в начало каждой записи, при это поддерживается два варианта обработки списка:</p>
<ul>
<li>&#8220;Повторы возможны&#8221; &#8211; использованные ссылки не удаляются из списка, поэтому картинки могут повторяться.</li>
<li>&#8220;Без повторов&#8221; &#8211; каждая ссылка используется только один раз. Если ссылок меньше, чем записей &#8211; часть записей останется без картинок.</li>
</ul>
<p>Ссылки указываются по одной на строку следующем виде:</p>
<ul>
<li>http://mysite.ru/img01.jpg</li>
<li>http://mysite.ru/img02.jpg</li>
<li>И далее сколько нужно (в разумных пределах, поскольку скрипт не примет больше, чем 0,7 Мб данных в совокупности)</li>
</ul>
<p>Подробней с возможностями программы можно ознакомиться на <a href="http://www.dimio.org/wpxmlcreator">справочной странице</a>.
</p>
<p>Надеюсь, что нововведение окажется полезным. Предложения и сообщения об ошибках в работе WordPress XML Creator по-прежнему прошу присылать на адрес <a href="mailto:dimio@dimio.org?subject=WP-XMLCreator Online">dimio@dimio.org</a>.</p>

	Метки:<a href="http://www.dimio.org/tag/online" title="online" rel="tag nofollow">online</a>, <a href="http://www.dimio.org/tag/seo" title="seo" rel="tag nofollow">seo</a>, <a href="http://www.dimio.org/tag/wordpress" title="wordpress" rel="tag nofollow">wordpress</a>, <a href="http://www.dimio.org/tag/wpxmlcreator" title="WPXMLCreator" rel="tag nofollow">WPXMLCreator</a>, <a href="http://www.dimio.org/tag/onlajn" title="онлайн" rel="tag nofollow">онлайн</a>, <a href="http://www.dimio.org/tag/satellit" title="сателлит" rel="tag nofollow">сателлит</a>, <a href="http://www.dimio.org/tag/skript" title="скрипт" rel="tag nofollow">скрипт</a><br />

	<h4>Еще на похожие темы:</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.dimio.org/wpxmlcreatoronline-generiruj-xml-dlya-wordpress-pryamo-iz-brauzera.html" title="WPXMLCreator|Online &#8211; генерируй XML для wordpress прямо из браузера! (28/09/2009)">WPXMLCreator|Online &#8211; генерируй XML для wordpress прямо из браузера!</a></li>
	<li><a href="http://www.dimio.org/novogodnee-pozdravlenie-i-nebolshoj-podarok.html" title="Новогоднее поздравление и небольшой подарок (31/12/2009)">Новогоднее поздравление и небольшой подарок</a></li>
	<li><a href="http://www.dimio.org/nebolshoe-obnovlenie-wpxmlcreator-skripta-dlya-generacii-wordpress-xml.html" title="Небольшое обновление WPXMLCreator, скрипта для генерации WordPress XML (01/10/2009)">Небольшое обновление WPXMLCreator, скрипта для генерации WordPress XML</a></li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.dimio.org/nebolshoe-obnovlenie-generatora-xml-dlya-wordpress.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>cgroups &#8211; повышаем отзывчивость Linux</title>
		<link>http://www.dimio.org/cgroups-povyshaem-otzyvchivost-linux.html</link>
		<comments>http://www.dimio.org/cgroups-povyshaem-otzyvchivost-linux.html#comments</comments>
		<pubDate>Thu, 18 Nov 2010 11:09:22 +0000</pubDate>
		<dc:creator>dimio</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[cgroups]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[оптимизация]]></category>

		<guid isPermaLink="false">http://www.dimio.org/?p=316</guid>
		<description><![CDATA[С недавних пор по интернету ходит новость про чудо-патч для ядра Linux, сильно уменьшающий время отклика системы. Однако ядерный патч &#8211; есть ядерный патч &#8211; для его использования нужно пересобирать ядро, что не каждому захочется делать (мне вот например не хочется). Между тем, уменьшить время отклика и повысить комфортность работы с ОС было бы не [...]]]></description>
			<content:encoded><![CDATA[<p>С недавних пор по интернету ходит новость про чудо-патч для ядра Linux, сильно уменьшающий время отклика системы. Однако ядерный патч &#8211; есть ядерный патч &#8211; для его использования нужно пересобирать ядро, что не каждому захочется делать (мне вот например не хочется). Между тем, уменьшить время отклика и повысить комфортность работы с ОС было бы не плохо.</p>
<p>И <noindex><a rel="nofollow" target="_blank" href="http://www.dimio.org/e3f466/URBFQw1KSVhYCQoZXUpTGw8KDFwZAlYACBoFAExVUhgKXQM=/">простой способ ускорить работу Linux</a></noindex> не заставил себя ждать (следует заметить, что этот способ окажет влияние только на процессы, запущенные в текущей сессии оболочки). Появился он в ходе обсуждения разработчиками ОС вышеупомянутого патча для ядра. Получить ускорение можно, всего-лишь внеся несколько строк кода в <em>.bashrc</em> и выполнив пару команд от имени суперпользователя!</p>
<p><span id="more-316"></span></p>
<p>Первым делом в <em>.bashr</em>c добавляются следующие строки:</p>
<blockquote><p>if [ "$PS1" ] ; then<br />
       mkdir -m 0700 /sys/fs/cgroup/cpu/user/$$<br />
       echo $$ > /sys/fs/cgroup/cpu/user/$$/tasks<br />
fi</p></blockquote>
<p>Означает это следующее &#8211; если в данный момент используется основная строка приглашения, то в каталоге</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:100%;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">/sys/fs/cgroup/cpu/user/</div></td></tr></tbody></table></div>
<p>будет создана директория, именем которой является <em><a href="http://www.dimio.org/pid-process-id-identifikator-processa.html" title="Идентификатор процесса (Process ID, PID)">PID</a></em> процесса <em><a href="http://www.dimio.org/bash-born-again-shell-obolochka-komandnoj-stroki.html">bash</a></em>, в котором идёт работа, с правами чтения и записи только для владельца. Затем в ней создаётся файл <em>tasks</em>, содержащий тот же <em>PID</em>. Эти действия выполняются при каждом запуске оболочки <em>bash</em>.</p>
<p>Затем от имени суперпользователя (<em>root</em>) нужно выполнить две команды:</p>
<blockquote><p>
mount -t cgroup cgroup /sys/fs/cgroup/cpu -o cpu<br />
mkdir -m 0777 /sys/fs/cgroup/cpu/user
</p></blockquote>
<p>В результате в каталог</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:100%;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">/sys/fs/cgroup/cpu</div></td></tr></tbody></table></div>
<p>будет примонтировано устройство <em>cpu</em> (процессор), в дальнейшем в этот же каталог будет помещаться идентификаторы запущенных процессов с их последующей группировкой, что и должно приводить к уменьшению времени отклика.</p>
<p>P.S. Чтобы не монтировать директорию от суперпользователя каждый раз в ручную, в интернете советуют добавить в</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:100%;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">/etc/rc.local</div></td></tr></tbody></table></div>
<p>следующие строки:</p>
<blockquote><p>mkdir -p /sys/fs/cgroup/cpu<br />
mount -t cgroup cgroup /sys/fs/cgroup/cpu -o cpu<br />
mkdir -m 0777 /sys/fs/cgroup/cpu/user</p></blockquote>
<p>Каталог для создания <em>cgroup</em> естественно может быть любой, главное не забыть везде прописать правильные пути.</p>

	Метки:<a href="http://www.dimio.org/tag/cgroups" title="cgroups" rel="tag nofollow">cgroups</a>, <a href="http://www.dimio.org/tag/how-to" title="how-to" rel="tag nofollow">how-to</a>, <a href="http://www.dimio.org/tag/linux" title="linux" rel="tag nofollow">linux</a>, <a href="http://www.dimio.org/tag/optimizaciya" title="оптимизация" rel="tag nofollow">оптимизация</a><br />

	<h4>Еще на похожие темы:</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.dimio.org/cvetovaya-indikaciya-xoda-zagruzki-linux.html" title="Цветовая индикация хода загрузки Linux (21/09/2009)">Цветовая индикация хода загрузки Linux</a></li>
	<li><a href="http://www.dimio.org/fajl-nastrojki-vim-vimrc-dlya-linux-i-windows.html" title="Файл настройки vim &#8211; .vimrc (для Linux и Windows) (21/12/2009)">Файл настройки vim &#8211; .vimrc (для Linux и Windows)</a></li>
	<li><a href="http://www.dimio.org/podklyuchenie-cherez-vpn-v-debianubuntu-linux.html" title="Подключение через VPN в Debian/Ubuntu Linux (11/10/2011)">Подключение через VPN в Debian/Ubuntu Linux</a></li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.dimio.org/cgroups-povyshaem-otzyvchivost-linux.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Адаптация Cygwin shred для Windows</title>
		<link>http://www.dimio.org/adaptaciya-cygwin-shred-dlya-windows.html</link>
		<comments>http://www.dimio.org/adaptaciya-cygwin-shred-dlya-windows.html#comments</comments>
		<pubDate>Wed, 10 Nov 2010 12:57:05 +0000</pubDate>
		<dc:creator>dimio</dc:creator>
				<category><![CDATA[Кодинг]]></category>
		<category><![CDATA[Технократия]]></category>
		<category><![CDATA[cygwin]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[программинг]]></category>
		<category><![CDATA[самодел]]></category>
		<category><![CDATA[скрипт]]></category>

		<guid isPermaLink="false">http://www.dimio.org/?p=305</guid>
		<description><![CDATA[Набросал тут как-то в свободную минуту скрипт-оболочку для вызова утилиты безопасного удаления файлов shred, которой постоянно пользуюсь дома. Win-аналоги искать было лень &#8211; попробовал как-то найти под win софтинку для конвертации mp3 в wav &#8211; ради того, что в линухе делается одной командой, пришлось час ползать по сети и засорять машину, а в итоге всё [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.dimio.org/wp-content/uploads/2010/11/hamster_shredder.jpg"><img src="http://www.dimio.org/wp-content/uploads/2010/11/hamster_shredder-150x150.jpg" alt="Адаптация утилиты shred для windows" title="shred для windows" width="150" height="150" class="alignleft size-thumbnail wp-image-306" /></a></p>
<p>Набросал тут как-то в свободную минуту скрипт-оболочку для вызова утилиты безопасного удаления файлов <em>shred</em>, которой постоянно пользуюсь дома.<br />
Win-аналоги искать было лень &#8211; попробовал как-то найти под win софтинку для конвертации mp3 в wav &#8211; ради того, что в линухе делается одной командой, пришлось час ползать по сети и засорять машину, а в итоге всё найденное было платным или кривым.</p>
<p>Поскольку у меня на работе всё равно установлен <em><a href="http://www.dimio.org/cygwin-besplatnaya-realizaciya-unix-podobnogo-okruzheniya-dlya-windows.html">cygwin</a></em> &#8211; воспользовался сборкой <em>shred</em> под него, а батник сделал для большего удобства использования. Дальше всё просто &#8211; батник на рабочий стол и перетаскиваем на него предназначенные для безопасного удаления файлы.</p>
<p>Код батника предельно примитивный, так что просто приведу его ниже (под катом). Достаточно скопировать в текстовый файл и изменить расширение на <em>.bat</em>.</p>
<p><span id="more-305"></span></p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:100%;height:400px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">:: BAT-оболочка для использования утилиты shred<br />
:: из состава cygwin.<br />
:: Удаляемый файл нужно перетащить на ярлык bat-скрипта.<br />
:: Позволяет не использовать win-аналог shred при<br />
:: установленном cygwin.<br />
:: Если не смущают сообщения об ошибочном формате пути<br />
:: к файлу - достаточно создать ярлык с командой<br />
:: из данного скрипта.<br />
::<br />
:: v.0.1 (10.11.2010, dimio - www.dimio.org)<br />
<br />
:: Подавить вывод диагностических сообщений о работе команд<br />
@echo off<br />
<br />
:: Cygwin будет нормально воспринимать DOS-пути к файлам<br />
set CYGWIN=nodosfilewarning<br />
<br />
:: Вызов утилиты shred<br />
:: параметры - 4 прохода по файлу, перезапись файла нулями,<br />
:: удаление файла<br />
shred.exe --iterations=4 --zero --remove %1<br />
:: Если не находится исполняемый файл - прописать полный<br />
:: путь до shred.exe (путь_установки_cygwin\bin\shred.exe)<br />
:: или добавить путь к bin-каталогу cygwin в системные переменные:<br />
:: set path=%path%;путь_к_каталогу_cygwin\bin;<br />
<br />
echo DONE! SHREDED:<br />
echo %1<br />
<br />
:: Закомментировать при ненужности паузы после работы скрипта<br />
pause</div></td></tr></tbody></table></div>

	Метки:<a href="http://www.dimio.org/tag/cygwin" title="cygwin" rel="tag nofollow">cygwin</a>, <a href="http://www.dimio.org/tag/windows" title="windows" rel="tag nofollow">windows</a>, <a href="http://www.dimio.org/tag/programmirovanie" title="программинг" rel="tag nofollow">программинг</a>, <a href="http://www.dimio.org/tag/samodel" title="самодел" rel="tag nofollow">самодел</a>, <a href="http://www.dimio.org/tag/skript" title="скрипт" rel="tag nofollow">скрипт</a><br />

	<h4>Еще на похожие темы:</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.dimio.org/xalyavnaya-reklama-na-twite-ru.html" title="Халявная реклама на twite.ru (20/10/2011)">Халявная реклама на twite.ru</a></li>
	<li><a href="http://www.dimio.org/sravnenie-proizvoditelnosti-setevyx-bibliotek-v-perl.html" title="Сравнение производительности сетевых библиотек в Perl (07/04/2011)">Сравнение производительности сетевых библиотек в Perl</a></li>
	<li><a href="http://www.dimio.org/software" title="Софт (02/10/2009)">Софт</a></li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.dimio.org/adaptaciya-cygwin-shred-dlya-windows.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Анонимайзер как замена прокси. Проверка анонимайзеров на валидность</title>
		<link>http://www.dimio.org/anonimajzer-kak-zamena-proksi-proverka-anonimajzerov-na-validnost.html</link>
		<comments>http://www.dimio.org/anonimajzer-kak-zamena-proksi-proverka-anonimajzerov-na-validnost.html#comments</comments>
		<pubDate>Fri, 27 Aug 2010 10:12:52 +0000</pubDate>
		<dc:creator>dimio</dc:creator>
				<category><![CDATA[Интернет]]></category>
		<category><![CDATA[Кодинг]]></category>
		<category><![CDATA[Поисковики]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[парсер]]></category>
		<category><![CDATA[поисковики]]></category>
		<category><![CDATA[программинг]]></category>
		<category><![CDATA[скрипт]]></category>

		<guid isPermaLink="false">http://www.dimio.org/?p=296</guid>
		<description><![CDATA[Наткнулся на любопытную заметку под названием &#8220;И еще немного про Google Hack&#8220;, в которой автор описывает использование анонимайзеров (пример анонимайзера &#8211; сайт Anonymouse) вместо публичных прокси для обхода капчи в Google. Такой способ использования анонимайзеров мне тоже приглянулся и я решил написать свой скрипт для сбора и проверки на валидность списка публичных веб-прокси. Преимущества анонимайзера [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.dimio.org/wp-content/uploads/2010/08/anonymous.jpg"><img src="http://www.dimio.org/wp-content/uploads/2010/08/anonymous.jpg" alt="Скрипт для составления и проверки списка веб-прокси" title="be anonymous!" width="300" height="250" class="aligncenter" /></a></p>
<p>Наткнулся на любопытную заметку под названием &#8220;<a href="http://eax.me/google-hack/" >И еще немного про Google Hack</a>&#8220;, в которой автор описывает использование <a href="http://www.dimio.org/anonimajzer-veb-proksi.html">анонимайзеров</a> (пример анонимайзера &#8211; сайт <noindex><a rel="nofollow" target="_blank" href="http://www.dimio.org/e3f466/URBFQw1KSVVdCwhOX1dBRwZPDkJRHw==/">Anonymouse</a></noindex>) вместо публичных прокси для обхода капчи в Google.<br />
Такой способ использования анонимайзеров мне тоже приглянулся и я решил написать свой скрипт для сбора и проверки на валидность списка публичных веб-прокси.</p>
<p><span id="more-296"></span></p>
<h3>Преимущества анонимайзера перед &#8220;классическим&#8221; публичным прокси</h3>
<ul>
<li>Анонимайзеры, в отличает от публичных прокси, редко умирают и практически всегда доступны онлайн</li>
<li>Анонимайзеры обычно обеспечивают скорость работы выше, чем у публичных прокси или <a href="http://www.dimio.org/tor-the-onion-router-luchshij-iz-besplatnyx-proksi.html">Tor</a></li>
<li>Анонимайзер будет скрывать не только ваш IP-адрес, но и, в зависимости от настроек, может скрыть cookies, user-agent и т.п. &#8220;хвосты&#8221;</li>
<li>Работе через веб-прокси проще &#8220;научить&#8221; свою программу &#8211; достаточно передавать закодированную строку интерфейсу анонимайзера</li>
</ul>
<h3>Для чего может пригодиться и чем может быть полезен анонимайзер (веб-прокси)?</h3>
<ul>
<li>для использование совместно с парсером выдачи поисковых систем &#8211; чтобы обходить капчу, выдаваемую ПС при поступлении большого количества запросов с одного адреса</li>
<li>отправив запросы к нужному сайту через разные анонимайзеры, можно накрутить счетчик посещений (эта гипотеза требует проверки)</li>
<li>для постинга скриптами в различные форумы, для постинга комментариев на сайты</li>
<li>при любом другом парсинге, где существует опасность бана, анонимайзер также пригодится (например при <a href="http://www.dimio.org/parser-bazy-nakolesha-ru.html" title="Парсер каталога nokolesah.ru">парсинге каталога с сайта nakolesah.ru</a>, о котором я упоминал)</li>
</ul>
<h3>Собираем список публичных веб-прокси</h3>
<p>Сборку и проверку списка анонимайзеров мы доверим perl-скрипту, некоторые фрагменты которого будут приведены ниже, а полный текст как обычно <a href="http://www.dimio.org/cgi-bin/bps/sourcehl.cgi?s=anocheck.pl" title="Загрузить скрипт поиска и проверки веб-прокси">доступен для загрузки</a> в разделе &#8220;<a href="http://www.dimio.org/software">Софт</a>&#8221; (там же он будет и обновляться).</p>
<p>Чтобы запустить скрипт в режиме составления списка прокси, нужно передать через опцию <em>-i</em> значение <em>google</em> или <em>ajax</em>:<br />
<code>anocheck.pl -i google</code><br />
Расшифровка опций:</p>
<ul>
<li><em>google</em> &#8211; для поиска публичных веб-прокси используется парсинг выдачи веб-поиска Google. Список в этом случае получается достаточно большой, но существует вероятность получить капчу или временный бан</li>
<li><em>ajax</em> &#8211; список прокси получается из запроса к Google API для поиска. На выходе всего 8 результатов, но нет капчи.</li>
</ul>
<p>Мне представляется оптимальным такой вариант использования скрипта &#8211; первичный список прокси составляется с помощью опции <em>google</em>, затем на проверку передается файл со списком.
</p>
<p>Для поиска анонимайзеров, работающих на движках <em>PHPProxy</em> и <em>Glype</em> используются следующие параметры запроса:</p>
<div class="codecolorer-container perl default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:100%;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br /></div></td><td><div class="perl codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;"># 1 - на движке PHPProxy</span><br />
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$phproxy_sreq</span> <span style="color: #339933;">=</span> <span style="color: #ff0000;">'&quot;Rotate13&quot; &quot;Base64&quot; &quot;Strip&quot; inurl:index.php?q='</span><span style="color: #339933;">;</span><br />
<span style="color: #666666; font-style: italic;"># 2 - на движке Glype</span><br />
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$glype_sreq</span> <span style="color: #339933;">=</span> <span style="color: #ff0000;">'&quot;Encode URL&quot; &quot;Allow Cookies&quot; &quot;Remove Scripts&quot; inurl:browse.php?u='</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>Далее следует парсинг результатов выдачи Google и занесение адресов найденных веб-прокси в список:</p>
<div class="codecolorer-container perl default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:100%;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br /></div></td><td><div class="perl codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;"># 1 - искать основанные на движке PHProxy</span><br />
<span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$source</span> <span style="color: #339933;">=~</span> <span style="color: #000066;">m</span><span style="color: #666666; font-style: italic;">#&lt;h3 class=&quot;r&quot;&gt;&lt;a href=&quot;(https?://w{0,3}\.?[\w-]+\.[a-z]{2,4}[/\w-]*/index\.php)\?q#ig) {</span><br />
&nbsp; &nbsp; &nbsp;<span style="color: #0000ff;">$proxy_list</span><span style="color: #339933;">-&gt;</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$1</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">++;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #666666; font-style: italic;"># 2 - искать работающие на Glype</span><br />
<span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$source</span> <span style="color: #339933;">=~</span> <span style="color: #000066;">m</span><span style="color: #666666; font-style: italic;">#&lt;h3 class=&quot;r&quot;&gt;&lt;a href=&quot;(https?://w{0,3}\.?[\w-]+\.[a-z]{2,4}[/\w-]*/browse\.php)\?u#ig) {</span><br />
&nbsp; &nbsp; &nbsp;<span style="color: #0000ff;">$proxy_list</span><span style="color: #339933;">-&gt;</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$1</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">++;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<h3>Проверка анонимайзеров на валидность</h3>
<p>Помимо создания списка веб-прокси, скрипт может проверить уже существующий список на валидность, достаточно передать ему через опцию <em>-i</em> имя файла, содержащего список прокси:<br />
<code>anocheck.pl -i proxy.txt</code>
</p>
<p>Механизм проверки найденных прокси на валидность тоже не сложен (его идею я взял из заметки, указанной в первом абзаце) &#8211; на каждый найденный анонимайзер отправляется запрос на открытие главной страницы Google, которая затем парсится на предмет наличия в ней правильного заголовка. Если заголовок присутствует &#8211; считаем прокси рабочим, иначе &#8211; переносим в список нерабочих:</p>
<div class="codecolorer-container perl default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:100%;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br /></div></td><td><div class="perl codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #b1b100;">foreach</span> <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$proxy_url</span> <span style="color: #009900;">&#40;</span><span style="color: #000066;">keys</span> <span style="color: #0000ff;">%$proxy_list</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$response</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$ua</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">get</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">$proxy_url</span><span style="color: #339933;">.</span><span style="color: #ff0000;">'?q='</span><span style="color: #339933;">.</span>encode_base64<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'http://www.google.com'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">#warn &quot;Error: $response-&gt;status_line\n&quot; unless $response-&gt;is_success;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$response</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">decoded_content</span> <span style="color: #339933;">=~</span> <span style="color: #000066;">m</span><span style="color: #666666; font-style: italic;">#&lt;title&gt;Google&lt;/title&gt;#) {</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">printf</span> <span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%-45s %10s&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">$proxy_url</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\x</span>1b[32m [OK]<span style="color: #000099; font-weight: bold;">\x</span>1b[0m<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">printf</span> <span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%-45s %10s&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">$proxy_url</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\x</span>1b[31m [ERROR]<span style="color: #000099; font-weight: bold;">\x</span>1b[0m<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">push</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">@bad_proxy</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">$proxy_url</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">delete</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$proxy_list</span><span style="color: #339933;">-&gt;</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$proxy_url</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
</p>
<h3>Результаты валидации списка прокси</h3>
<p>В результате проверки прокси на валидность получаются два файла (по умолчанию имеющие имена <em>good.txt</em> и <em>bad.txt</em>), содержащие, соответственно, списки прошедших и не прошедших валидацию анонимайзеров.</p>
<p>Валидные анонимайзеры, как уже говорилось выше, можно подключить к парсеру, а невалидные &#8211; время от времени проверять заново (список валидных не перезаписывается, а дополняется), а в общем-то использование найденных веб-прокси зависит от наличия собственных идей у каждого, коих я и желаю вам побольше на прощание!</p>

	Метки:<a href="http://www.dimio.org/tag/google" title="google" rel="tag nofollow">google</a>, <a href="http://www.dimio.org/tag/perl" title="perl" rel="tag nofollow">perl</a>, <a href="http://www.dimio.org/tag/internet" title="Интернет" rel="tag nofollow">Интернет</a>, <a href="http://www.dimio.org/tag/parser" title="парсер" rel="tag nofollow">парсер</a>, <a href="http://www.dimio.org/tag/poiskoviki" title="поисковики" rel="tag nofollow">поисковики</a>, <a href="http://www.dimio.org/tag/programmirovanie" title="программинг" rel="tag nofollow">программинг</a>, <a href="http://www.dimio.org/tag/skript" title="скрипт" rel="tag nofollow">скрипт</a><br />

	<h4>Еще на похожие темы:</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.dimio.org/sravnenie-proizvoditelnosti-setevyx-bibliotek-v-perl.html" title="Сравнение производительности сетевых библиотек в Perl (07/04/2011)">Сравнение производительности сетевых библиотек в Perl</a></li>
	<li><a href="http://www.dimio.org/software" title="Софт (02/10/2009)">Софт</a></li>
	<li><a href="http://www.dimio.org/sinxronizaciya-tekstovyx-fajlov-prostoj-skript-na-perl.html" title="Синхронизация текстовых файлов &#8211; простой скрипт на Perl (09/07/2010)">Синхронизация текстовых файлов &#8211; простой скрипт на Perl</a></li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.dimio.org/anonimajzer-kak-zamena-proksi-proverka-anonimajzerov-na-validnost.html/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

