<?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>Bappoy&#039;s blog &#187; советы</title>
	<atom:link href="http://bappoy.pp.ru/tag/%d1%81%d0%be%d0%b2%d0%b5%d1%82%d1%8b/feed" rel="self" type="application/rss+xml" />
	<link>http://bappoy.pp.ru</link>
	<description>Линуксоид на велосипеде с моторчиком</description>
	<lastBuildDate>Mon, 06 Feb 2012 08:28:29 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Небольшой костыль для мониторинга ресурсов</title>
		<link>http://bappoy.pp.ru/2008/06/23/crutch.html</link>
		<comments>http://bappoy.pp.ru/2008/06/23/crutch.html#comments</comments>
		<pubDate>Mon, 23 Jun 2008 08:24:15 +0000</pubDate>
		<dc:creator>bappoy</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[советы]]></category>

		<guid isPermaLink="false">http://bappoy.pp.ru/?p=284</guid>
		<description><![CDATA[<p>На одном высоконагруженном сервере постоянно возникала нехватка ресурсов: то httpd расплодится и забьёт таблицу процессов, то место закончится, то память&#8230; Поэтому необходимо было мониторить несколько разных параметров. Разумеется, впоследствии тут не обошлось без Nagios&#8217;а, а в качестве  срества дополнительного контроля мы сделали мелкий скриптик <code>/usr/local/bin/hh</code>, в который написали несколько строчек вида:</p>
<pre>#!/bin/sh
df -h /usr/ | awk '$6~/^\/usr$/ {print $4" space available on /usr"}'
ps ax | grep httpd | grep -v grep | wc -l | awk '{print $1,"httpd processes running"}'
</pre>
<p>Запуск скриптика поместили в <code>~/.cshrc</code> (дело было под FreeBSD) каждого заинтересованного пользователя, после чего, входя на сервер, админы получали необходимую информацию о состоянии системы и, если что, предпринимали действия по устранению неполадок.</p>
<p>Сейчас почти то же самое у меня работает на Asus EEE PC &#8212; в условиях крайне ограниченного места необходимо время от времени его мониторить, а захламлять панель (и память) апплетами очень не хочется. Поскольку я постоянно использую консоль, то посчитал логичным выводить информацию о свободном месте при каждом логине. Одна лишняя строчка при входе в шелл совсем не напрягает, а пользы от нее очень много.</p>
]]></description>
		<wfw:commentRss>http://bappoy.pp.ru/2008/06/23/crutch.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Организация рабочих файлов по неделям</title>
		<link>http://bappoy.pp.ru/2008/04/28/weekly-folders.html</link>
		<comments>http://bappoy.pp.ru/2008/04/28/weekly-folders.html#comments</comments>
		<pubDate>Mon, 28 Apr 2008 13:38:12 +0000</pubDate>
		<dc:creator>bappoy</dc:creator>
				<category><![CDATA[lifehack]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[советы]]></category>

		<guid isPermaLink="false">http://bappoy.pp.ru/2008/04/28/weekly-folders/</guid>
		<description><![CDATA[<p>Ежедневно в моей рабочей папке появлялось от одного до полутора десятков и более файлов &#8212; документов, патчей, скриптов, отчётов и прочих продуктов рабочей деятельности. Однажды настал момент, когда найти нужный файл среди этого бардака стало довольно затруднительно, и чаша моего терпения переполнилась. Файлы нужно каким-нибудь организовать, подумал я. Изобретать систему меток для организации файлов по <strike>фэн-шую</strike> GTD было лень, поэтому я просто остановился на принципе &laquo;одна неделя &#8212; одна папка&raquo;, т.е. все файлы хранятся в папках вида ~/work/week18, к текущей и предыдущей неделе можно обратиться по ссылкам ~/work/current и ~/work/prev.</p>
<p>Для начала я соорудил скрипт для раскидывания файлов по папкам, создающий в текущей директории папки с именами в нужном формате, если их не существует, и перемещающий туда файлы:</p>
<blockquote>
<pre><font color="#444444">#!/usr/bin/perl -w</font>
<strong>use</strong> File::<font color="#a52a2a"><strong>stat</strong></font>;
<strong>use</strong> POSIX <font color="#a52a2a"><strong>qw</strong></font><font color="#4444ff"><strong>(</strong></font>strftime<font color="#4444ff"><strong>)</strong></font>;
<strong>use</strong> strict;
<strong>foreach</strong><font color="#4444ff"><strong>(</strong></font>`find . -maxdepth 1 -type f |sed <font color="#008000">'s/</font><font color="#77dd77">\ </font>/<font color="#77dd77">\\</font> /g;'`<font color="#4444ff"><strong>)</strong></font><font color="#4444ff"><strong>{</strong></font>
<font color="#a52a2a"><strong>    chomp</strong></font>;
<strong>    my</strong> <font color="#2040a0">$st</font>=<font color="#a52a2a"><strong>stat</strong></font><font color="#4444ff"><strong>(</strong></font><font color="#2040a0">$_</font><font color="#4444ff"><strong>)</strong></font>||<strong>die</strong> <font color="#008000">"Could not stat </font><font color="#2040a0">$_</font>: <font color="#2040a0">$!</font><font color="#77dd77">\n</font>";
    <strong>my</strong> <font color="#2040a0">$week</font>=strftime<font color="#4444ff"><strong>(</strong></font><font color="#008000">"</font><font color="#2040a0">%W</font>",<font color="#a52a2a"><strong>localtime</strong></font><font color="#4444ff"><strong>(</strong></font><font color="#2040a0">$st</font>-&gt;mtime<font color="#4444ff"><strong>)</strong></font><font color="#4444ff"><strong>)</strong></font>;
    <strong>unless</strong><font color="#4444ff"><strong>(</strong></font>-d <font color="#008000">"week</font><font color="#2040a0">$week</font>"<font color="#4444ff"><strong>)</strong></font><font color="#4444ff"><strong>{</strong></font><font color="#a52a2a"><strong>mkdir</strong></font> <font color="#008000">"week</font><font color="#2040a0">$week</font>";<font color="#4444ff"><strong>}
</strong></font><font color="#a52a2a"><strong>    rename</strong></font><font color="#4444ff"><strong>(</strong></font><font color="#008000">"</font><font color="#2040a0">$_</font>",<font color="#008000">"week</font><font color="#2040a0">$week</font>/<font color="#2040a0">$_</font>"<font color="#4444ff"><strong>)</strong></font>||<strong>warn</strong> <font color="#008000">"Could not rename </font><font color="#2040a0">$_ to week$week/$_</font>: <font color="#2040a0">$!</font><font color="#77dd77">\n</font>";
<font color="#4444ff"><strong>}</strong></font></pre>
</blockquote>
<p>Затем создал скриптик для еженедельного создания новой папки и переименования ссылок current и prev:</p>
<blockquote>
<pre>
<font color="#0000ff"><strong>#!/bin/sh</strong></font>
<font color="#2040a0">current_week</font>=week`/bin/date <font color="#008000">"+%W"</font>`
test -L ~/work/prev &amp;&amp; rm ~/work/prev
mkdir -p ~/work/<font color="#2040a0">$current_week</font>
pushd ~/work
test -L current &amp;&amp; /bin/mv current prev
ln -s <font color="#2040a0">$current_week</font> current
popd</pre>
</blockquote>
<p>Запуск скриптика в первый день каждой недели (нулевой &#8212; воскресение, по американским традициям) поместил в свой crontab (если кто еще не в курсе, у каждого пользователя есть свой crontab, аналогичный общесистемному /etc/crontab; редактируется с помощью команды crontab -e, просматривается командой crontab -l; подробнее см. man 1 crontab):</p>
<blockquote>
<pre># crontab -l
1   0   *   *   1   ~/bin/weekly.sh</pre>
</blockquote>
<p>Ссылки на ~/work/current и ~/work/prev впоследствии была добавлены в в favorite folders в Gnome, а также во все места, где требуется быстрый доступ к рабочим материалам. Кроме того, в начале каждой новой недели при написании еженедельного отчета стало на порядок проще делать обзор работы за предыдущую неделю (конечно, список рабочих активностей не исчерпывается появившимися файлами; есть же еще и почта, и bug-tracker, и другие средства организации информации)Недостаток у данного скрипта пока один &#8212; нужно ежегодно архивировать накопившиеся 52 папки, иначе снова возникнет бардак :) Но и это исправляется при наличии желания и умения.</p>
]]></description>
		<wfw:commentRss>http://bappoy.pp.ru/2008/04/28/weekly-folders.html/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Как научить Firefox открывать Gmail для написания писем при нажатии на ссылки mailto:</title>
		<link>http://bappoy.pp.ru/2007/11/07/firefox-gmail-mailto.html</link>
		<comments>http://bappoy.pp.ru/2007/11/07/firefox-gmail-mailto.html#comments</comments>
		<pubDate>Wed, 07 Nov 2007 18:46:54 +0000</pubDate>
		<dc:creator>bappoy</dc:creator>
				<category><![CDATA[firefox]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[советы]]></category>

		<guid isPermaLink="false">http://bappoy.pp.ru/2007/11/07/firefox-gmail-mailto/</guid>
		<description><![CDATA[<p>Задача: при нажатии на ссылки типа <a href="mailto:dedushke@naderevnyu.com">mailto:dedushke@naderevnyu.com</a> должно открываться окно создания письма gmail, при этом в поле &laquo;Кому&raquo; должен попасть адресат из исходной ссылки, &laquo;Тема письма&raquo; также заполняется автоматически, если соответствующий параметр был в ссылке. Прочие вкусности по желанию. Браузер &#8212; Firefox, ОС &#8212; Linux.</p>
<p>Для Windows и MacOS <a href="http://mail.google.com/support/bin/answer.py?answer=10966&amp;topic=1543">Гугл рекомендует</a> установить программу Gmail notifier и в её настройках отметить галку &laquo;Использовать Gmail для отправки электронной почты из Интернета&raquo;. Она что-то правит в реестре и всё работает.</p>
<p>У линуксоидов как всегда свой, особый путь с многочисленными развилками и перекрёстками.</p>
<p>Во-первых, создадим скрипт запуска firefox с открытием окна создания нового письма и сохраним его в ~/bin/gmail-launcher.sh. Из <a href="http://www.howtogeek.com/howto/ubuntu/set-gmail-as-default-mail-client-in-ubuntu/">этого обсуждения</a> наиболее приемлемым мне показался такой вариант:</p>
<blockquote><p><code>#!/bin/sh<br />
gmailargs=`echo $1 | sed -e "s/mailto:/to=/" -e "s/\?subject=/\&amp;su=/" -e "s/\?cc=/\&amp;cc=/" -e "s/\?bcc=/\&amp;bcc=/" -e "s/\?body=/\&amp;body=/"`<br />
firefox -remote "openurl( https://mail.google.com/mail?view=cm&amp;$gmailargs, new-tab )"</code></p></blockquote>
<p>Первая (нумерация строчек начинается с нуля) строчка преобразует параметры subject, cc, bcc, body в вид, понятный gmail&#8217;у.<br />
Вторая открывает нужный адрес со сформированными параметрами в новой вкладке.</p>
<p>Во-вторых, настроим систему на использование этого скрипта как программы составления писем по умолчанию. По уже упоминавшейся <a href="http://www.howtogeek.com/howto/ubuntu/set-gmail-as-default-mail-client-in-ubuntu/">ссылке</a> приводится иллюстрированное описание  этого процесса. У меня в русифицированном гноме это делается так: параметры &#8212; дополнительные параметры &#8212; предпочтительные приложения &#8212; раздел &laquo;почтовая программа&raquo;.</p>
<p>Но у данного способа есть существенный недостаток &#8212; иногда необходимо, чтобы системным почтовиком по умолчанию был offline-клиент (например, thunderbird), а в firefox&#8217;е для всех mailto-адресов открывался gmail. Кроме того, иногда firefox &laquo;забывает&raquo;, чем надо открывать почту. В таком случае необходимо приложить дополнительные усилия для разъяснения firefox&#8217;у, ху из ху.</p>
<p>В редакторе конфигурации about:config вводим строчку &laquo;mailto&raquo; для поиска параметров, содержащих в названии mailto. Если вы раньше ничего не трогали, то  показываются три параметра (о том, что они означают, можно (и нужно) прочитать на странице <a href="http://kb.mozillazine.org/About:config_entries">About:config entries</a> в <a href="http://kb.mozillazine.org">MozillaZine Knowledge Base</a>):</p>
<p>network.protocol-handler.warn-external.mailto=false<br />
network.protocol-handler.external.mailto=true<br />
network.protocol-handler.expose.mailto=false</p>
<p>Чтобы для mailto: в firefox&#8217;е запускался созданный скрипт, необходимо добавить еще один строковой параметр network.protocol-handler.app.mailto, присвоить ему значение ~/bin/gmail-launcher.sh, и изменить значение ключа network.protocol-handler.expose.mailto на true.</p>
<p>После этого можно протестировать работу данной фичи, нажав на <a href="mailto:bpp@bappoy.pp.ru?subject=thanks%20for%20the%20article&amp;body=subj">эту ссылку</a>. Должна открыться форма для создания мне письма :)</p>
<p><strong>Upd.</strong> в английской версии интерфейса gmail, которая, к слову, значительно отличается от русской, вышеприведённая строчка запуска не работает. Как подсказывает Кирилл Горелов в комментарии к этому посту, необходимо запускать gmail вот так:</p>
<blockquote><p><code>firefox -remote "openurl( https://mail.google.com/mail/?fs=1&amp;tf=1&amp;source=ig&amp;view=cm&amp;$gmailargs, new-tab )"</code></p></blockquote>
]]></description>
		<wfw:commentRss>http://bappoy.pp.ru/2007/11/07/firefox-gmail-mailto.html/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>

