<?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>Блог Александра Руденко aka ras. &#187; Программное обеспечение</title>
	<atom:link href="http://ras.pl.ua/category/software/feed/" rel="self" type="application/rss+xml" />
	<link>http://ras.pl.ua</link>
	<description>Заметки о себе, семье, городе, профессиональной деятельности...</description>
	<lastBuildDate>Sun, 02 Oct 2011 06:04:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Конвертирование контактов из формата Google в Nokia PC Suite</title>
		<link>http://ras.pl.ua/csv_google_to_nokia/</link>
		<comments>http://ras.pl.ua/csv_google_to_nokia/#comments</comments>
		<pubDate>Thu, 29 Apr 2010 14:19:45 +0000</pubDate>
		<dc:creator>ras</dc:creator>
				<category><![CDATA[Программное обеспечение]]></category>
		<category><![CDATA[6300]]></category>
		<category><![CDATA[activesync]]></category>
		<category><![CDATA[csv]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[nokia]]></category>

		<guid isPermaLink="false">http://ras.pl.ua/?p=172</guid>
		<description><![CDATA[Возникла у меня необходимость перенести контакты из Google в телефон Nokia 6300, который был преобретён на замену старому смарту T-Mobile SDA (на Windows Mobile 6), чтобы звонить через другого оператора. И захотелось держать контакты на обоих телефонах, периодически синхронизировать. Основной телефон у меня &#8212; коммуникатор на основе Windows Mobile 6. Тут всё просто, настроил синхронизацию [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Возникла у меня необходимость перенести контакты из Google в телефон Nokia 6300, который был преобретён на замену старому смарту T-Mobile SDA (на Windows Mobile 6), чтобы звонить через другого оператора. И захотелось держать контакты на обоих телефонах, периодически синхронизировать. Основной телефон у меня &#8212; коммуникатор на основе Windows Mobile 6. <span id="more-172"></span>Тут всё просто, настроил синхронизацию в ActiveSync коммуникатора с сервером Google по этой документации: <a href="http://www.google.com/support/mobile/bin/answer.py?hl=en&amp;answer=138636" target="_blank">Mail, Calendar &amp; Contacts Sync: Setting Up Your Windows Mobile Phone for Google Sync</a>. Дальше попытался сделать то же самое с Nokia 6300 по этой документации: <a href="http://www.google.com/support/mobile/bin/answer.py?answer=98265&amp;topic=15015" target="_blank">Device Set Up Instructions: Nokia 6300</a>. Сначала долго настраивал Интернет, получилось, но синхронизация так и не заработала. Гугление дало понять что я в этом не одинок.</p>
<p style="text-align: justify;">После попыток синхронизировать с чем-то контакты в Nokia PC Suite &#8212; пришло решение написать конвертер, которым я и собираюсь поделиться. Написан он на языке Perl, для работы необходимы библиотеки: Encode, Text::Iconv. Процедура такая. В контактах Google делается экспорт в CSV-файл, этот файл конвертируется моей программой в формат Nokia PC Suite, и далее полученный CSV-файл импортируется в контакты Nokia PC Suite.</p>
<p style="text-align: justify;"><span style="text-decoration: underline;">Программа конвертирует не все поля</span>, прошу обратить на это внимание.</p>
<p><strong>Скачать</strong> (версия 0.3b от 04.02.2011)<strong><br />
</strong></p>
<ul>
<li><a href="/perl/csv_google2nokia.gz">csv_google2nokia.gz</a> (2.6 кб)</li>
</ul>
<p><strong>On-Line конвертирование</strong></p>
<p style="text-align: justify;">On-Line конвертирование на базе данной программы, если не хочется скачивать/устанавливать, доустанавливать модули Perl-а &#8212; выберите файл в формате Google и нажмите &#171;Конвертировать&#187;.</p>
<form method="post" action="/perl/csv_google2nokia.cgi" enctype="multipart/form-data">
<input type="file" name="source">
<input type="submit" value="Конвертировать">
</form>
<p><strong>Сылки<br />
</strong></p>
<ul>
<li><a href="http://www.nokia.ua/" target="_blank">www.nokia.ua</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://ras.pl.ua/csv_google_to_nokia/feed/</wfw:commentRss>
		<slash:comments>33</slash:comments>
		</item>
		<item>
		<title>Установка и настройка transmission-daemon в CentOS 5</title>
		<link>http://ras.pl.ua/install_and_configure_transmission-daemon_in_centos/</link>
		<comments>http://ras.pl.ua/install_and_configure_transmission-daemon_in_centos/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 11:57:59 +0000</pubDate>
		<dc:creator>ras</dc:creator>
				<category><![CDATA[Программное обеспечение]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[torrent]]></category>
		<category><![CDATA[transmission]]></category>
		<category><![CDATA[transmission-daemon]]></category>

		<guid isPermaLink="false">http://ras.pl.ua/?p=150</guid>
		<description><![CDATA[Есть у меня домашний Linux-сервер под CentOS, выполняющий роль шлюза в сеть Интернет, файлового хранилища с FTP и Samba, и другие функции, необходимые системному администратору, которые проблематично реализовать на базе аппаратного маршрутизатора. Вот появилась идея установить и демон torrent-клиент на данный сервер, чтобы качал себе и раздавал необходимые мне файлы. Раньше у меня был опыт [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Есть у меня домашний Linux-сервер под CentOS, выполняющий роль шлюза в сеть Интернет, файлового хранилища с FTP и Samba, и другие функции, необходимые системному администратору, которые проблематично реализовать на базе аппаратного маршрутизатора. Вот появилась идея установить и демон torrent-клиент на данный сервер, чтобы качал себе и раздавал необходимые мне файлы.<span id="more-150"></span></p>
<p style="text-align: justify;">Раньше у меня был опыт работы с <a href="http://mldonkey.sourceforge.net/" target="_blank">MLDonkey</a>, но вспоминая его ужасный web-интерфейс и монстроидальность &#8212; отказался сразу. Далее взгляд пал на <a href="http://libtorrent.rakshasa.no/" target="_blank">rTorrent</a>, знакомый его использовал на маршрутизаторе D-Link DIR-320 с модифицированной прошивкой от Олега. Очень порадовал красивый web-интерфейс, похожий на <a href="http://www.utorrent.com/" target="_blank">µTorrent</a>. Но, т. к. это всё-таки не демон, а консольное приложение, глянув на метод его запуска и связывания с web-интерфейсом &#8212; решено было отказаться и от него.</p>
<p style="text-align: justify;">В итоге выбор пал на <a href="http://www.transmissionbt.com/" target="_blank">Transmission</a>, опять же, тот же знакомый уже его успешно использовал, так же выяснилось, что данный клиент имеет демон для запуска без GUI. Сначала была установлена и настроена старая версия из репозитария EPEL transmission-1.34-1.el5.x86_64, но работать с данной версией было крайне неприятно, многое не поддерживалось, GUI-клиент не совсем корректно работал с данной версией, не была доступна часть функций. Собрать новую версию обычным способом не получалось из-за того, что в CentOS используются более старые версии нужных для сборки transmission библиотек. Ещё одним фактором использования новой версии является поддержка ей списка трекеров. На этом заканчивается лирическое отступление, опишу сборку и настройку.</p>
<p><strong>Сборка</strong></p>
<p>Установка необходимых для сборки пакетов:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">yum install</span> <span style="color: #c20cb9; font-weight: bold;">gcc</span> gcc-c++ <span style="color: #c20cb9; font-weight: bold;">m4</span> <span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #c20cb9; font-weight: bold;">automake</span> libtool <span style="color: #c20cb9; font-weight: bold;">gettext</span> openssl-devel</div></div>
<p>Подготовка каталога, получение исходного кода:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #7a0874; font-weight: bold;">cd</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>src<br />
<span style="color: #c20cb9; font-weight: bold;">mkdir</span> transmission<br />
<span style="color: #7a0874; font-weight: bold;">cd</span> transmission<br />
<br />
<span style="color: #c20cb9; font-weight: bold;">wget</span> http:<span style="color: #000000; font-weight: bold;">//</span>pkgconfig.freedesktop.org<span style="color: #000000; font-weight: bold;">/</span>releases<span style="color: #000000; font-weight: bold;">/</span>pkg-config-<span style="color: #000000;">0.23</span>.tar.gz<br />
<span style="color: #c20cb9; font-weight: bold;">wget</span> http:<span style="color: #000000; font-weight: bold;">//</span>ftp.gnome.org<span style="color: #000000; font-weight: bold;">/</span>pub<span style="color: #000000; font-weight: bold;">/</span>gnome<span style="color: #000000; font-weight: bold;">/</span>sources<span style="color: #000000; font-weight: bold;">/</span>intltool<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">0.40</span><span style="color: #000000; font-weight: bold;">/</span>intltool-0.40.6.tar.gz<br />
<span style="color: #c20cb9; font-weight: bold;">wget</span> http:<span style="color: #000000; font-weight: bold;">//</span>curl.haxx.se<span style="color: #000000; font-weight: bold;">/</span>download<span style="color: #000000; font-weight: bold;">/</span>curl-7.19.7.tar.gz<br />
<span style="color: #c20cb9; font-weight: bold;">wget</span> http:<span style="color: #000000; font-weight: bold;">//</span>mirrors.m0k.org<span style="color: #000000; font-weight: bold;">/</span>transmission<span style="color: #000000; font-weight: bold;">/</span>files<span style="color: #000000; font-weight: bold;">/</span>transmission-<span style="color: #000000;">1.80</span>.tar.bz2<br />
<br />
<span style="color: #c20cb9; font-weight: bold;">tar</span> <span style="color: #660033;">-xzfv</span> pkg-config-<span style="color: #000000;">0.23</span>.tar.gz<br />
<span style="color: #c20cb9; font-weight: bold;">tar</span> <span style="color: #660033;">-xzfv</span> intltool-0.40.6.tar.gz<br />
<span style="color: #c20cb9; font-weight: bold;">tar</span> <span style="color: #660033;">-xzfv</span> curl-7.19.7.tar.gz<br />
<span style="color: #c20cb9; font-weight: bold;">tar</span> <span style="color: #660033;">-xjfv</span> transmission-<span style="color: #000000;">1.80</span>.tar.bz2</div></div>
<p>Сборка:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #7a0874; font-weight: bold;">cd</span> pkg-config-<span style="color: #000000;">0.23</span><br />
.<span style="color: #000000; font-weight: bold;">/</span>configure<br />
<span style="color: #c20cb9; font-weight: bold;">make</span><br />
<span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #c20cb9; font-weight: bold;">install</span><br />
<br />
<span style="color: #7a0874; font-weight: bold;">cd</span> ..<span style="color: #000000; font-weight: bold;">/</span>intltool-0.40.6<br />
.<span style="color: #000000; font-weight: bold;">/</span>configure<br />
<span style="color: #c20cb9; font-weight: bold;">make</span><br />
<span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #c20cb9; font-weight: bold;">install</span><br />
<br />
<span style="color: #7a0874; font-weight: bold;">cd</span> ..<span style="color: #000000; font-weight: bold;">/</span>curl-7.19.7<br />
.<span style="color: #000000; font-weight: bold;">/</span>configure<br />
<span style="color: #c20cb9; font-weight: bold;">make</span><br />
<span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #c20cb9; font-weight: bold;">install</span><br />
<br />
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">PKG_CONFIG_PATH</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>lib<span style="color: #000000; font-weight: bold;">/</span>pkgconfig<br />
<span style="color: #7a0874; font-weight: bold;">cd</span> ..<span style="color: #000000; font-weight: bold;">/</span>transmission-<span style="color: #000000;">1.80</span><br />
.<span style="color: #000000; font-weight: bold;">/</span>configure <span style="color: #660033;">--enable-daemon</span><br />
<span style="color: #c20cb9; font-weight: bold;">make</span><br />
<span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #c20cb9; font-weight: bold;">install</span></div></div>
<p>Настройка web-интерфейса для httpd, файл <u>/etc/httpd/conf/httpd.conf</u>:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Alias /transmission/web /usr/local/share/transmission/web<br />
RewriteEngine on<br />
RewriteRule /transmission[/]?$ /transmission/web [R=permanent]<br />
ProxyPass /transmission http://127.0.0.1:9091/transmission<br />
ProxyPassReverse /transmission http://127.0.0.1:9091/transmission<br />
&lt;Location /transmission&gt;<br />
&nbsp; Options None<br />
&nbsp; Order allow,deny<br />
&nbsp; Allow from 127.0.0.1<br />
&nbsp; &lt;IfModule expires_module&gt;<br />
&nbsp; &nbsp; ExpiresActive On<br />
&nbsp; &nbsp; ExpiresByType image/gif A43200<br />
&nbsp; &nbsp; ExpiresByType image/png A43200<br />
&nbsp; &nbsp; ExpiresByType application/javascript A43200<br />
&nbsp; &nbsp; ExpiresByType text/css A43200<br />
&nbsp; &lt;/IfModule&gt;<br />
&lt;/Location&gt;</div></div>
<p>В &#171;Allow from&#187; укажите IP, с которого вы хотите получить доступ, в своём случае, я использовал &#171;Authtype Basic&#187;, т. е. захожу по паролю. Перезапуск httpd (если возникли ошибки, смотрим каких модулей не хватает, подправляем файл конфигурации):</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">service httpd restart</div></div>
<p>Далее я столкнулся с тем, что не нашёл нормального init-скрипта, написал свой. Он ещё находится в стадии тестирования, но как показала практика работает нормально, запуск демона будет от пользователя root. Да, знаю что это не правильно, но пока так <u>/etc/rc.d/init.d/transmission</u>:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><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;">#</span><br />
<span style="color: #666666; font-style: italic;"># transmission Start/Stop the transmission-daemon daemon.</span><br />
<span style="color: #666666; font-style: italic;">#</span><br />
<span style="color: #666666; font-style: italic;"># chkconfig: 2345 99 01</span><br />
<span style="color: #666666; font-style: italic;"># description: transmission-daemon is a daemon-based Transmission session</span><br />
<span style="color: #666666; font-style: italic;">#              that can be controlled via RPC commands from</span><br />
<span style="color: #666666; font-style: italic;">#              transmission’s web interface or transmission-remote</span><br />
<span style="color: #666666; font-style: italic;"># processname: transmission-daemon</span><br />
<span style="color: #666666; font-style: italic;"># pidfile: /var/run/transmission.pid</span><br />
<br />
<span style="color: #666666; font-style: italic;"># Source function library.</span><br />
. <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>functions<br />
<br />
<span style="color: #007800;">options</span>=<span style="color: #ff0000;">'--allowed 127.0.0.1 --no-auth'</span><br />
<br />
<span style="color: #007800;">processname</span>=<span style="color: #ff0000;">'/usr/local/bin/transmission-daemon'</span><br />
<span style="color: #007800;">lockfile</span>=<span style="color: #ff0000;">'/var/lock/subsys/transmission'</span><br />
<span style="color: #007800;">pidfile</span>=<span style="color: #ff0000;">'/var/run/transmission.pid'</span><br />
<span style="color: #007800;">user</span>=<span style="color: #ff0000;">'root'</span><br />
<span style="color: #007800;">home</span>=<span style="color: #000000; font-weight: bold;">`/</span>bin<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #660033;">-E</span> <span style="color: #ff0000;">&quot;^<span style="color: #007800;">$user</span>:&quot;</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">passwd</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">cut</span> <span style="color: #660033;">-d</span> : <span style="color: #660033;">-f</span> <span style="color: #000000;">6</span><span style="color: #000000; font-weight: bold;">`</span><br />
<br />
start<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span><br />
&nbsp; <span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">HOME</span>=<span style="color: #007800;">$home</span><br />
&nbsp; <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-n</span> $<span style="color: #ff0000;">&quot;Starting <span style="color: #007800;">$processname</span>: &quot;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-e</span> <span style="color: #007800;">$lockfile</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</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: #660033;">-e</span> <span style="color: #007800;">$pidfile</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-e</span> <span style="color: #000000; font-weight: bold;">/</span>proc<span style="color: #000000; font-weight: bold;">/`</span><span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #007800;">$pidfile</span><span style="color: #000000; font-weight: bold;">`</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-n</span> $<span style="color: #ff0000;">&quot;cannot start <span style="color: #007800;">$processname</span>: <span style="color: #007800;">$processname</span> is already running.&quot;</span><br />
&nbsp; &nbsp; &nbsp; failure $<span style="color: #ff0000;">&quot;cannot start <span style="color: #007800;">$processname</span>: <span style="color: #007800;">$processname</span> already running.&quot;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #7a0874; font-weight: bold;">echo</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #7a0874; font-weight: bold;">return</span> <span style="color: #000000;">1</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">fi</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">fi</span><br />
&nbsp; daemon <span style="color: #007800;">$processname</span> <span style="color: #007800;">$options</span><br />
&nbsp; <span style="color: #007800;">RETVAL</span>=<span style="color: #007800;">$?</span><br />
&nbsp; <span style="color: #7a0874; font-weight: bold;">echo</span><br />
&nbsp; <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$RETVAL</span> <span style="color: #660033;">-eq</span> <span style="color: #000000;">0</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #c20cb9; font-weight: bold;">touch</span> <span style="color: #007800;">$lockfile</span><br />
&nbsp; <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$RETVAL</span> <span style="color: #660033;">-eq</span> <span style="color: #000000;">0</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #c20cb9; font-weight: bold;">ps</span> ax <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #660033;">-w</span> <span style="color: #007800;">$processname</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #660033;">-v</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">awk</span> <span style="color: #ff0000;">'{print($1)}'</span> <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #007800;">$pidfile</span><br />
&nbsp; <span style="color: #7a0874; font-weight: bold;">return</span> <span style="color: #007800;">$RETVAL</span><br />
<span style="color: #7a0874; font-weight: bold;">&#125;</span><br />
<br />
stop<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span><br />
&nbsp; <span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">HOME</span>=<span style="color: #007800;">$home</span><br />
&nbsp; <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-n</span> $<span style="color: #ff0000;">&quot;Stopping <span style="color: #007800;">$processname</span>: &quot;</span><br />
&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;">-e</span> <span style="color: #007800;">$lockfile</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span><br />
&nbsp; &nbsp; <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-n</span> $<span style="color: #ff0000;">&quot;cannot stop <span style="color: #007800;">$processname</span>: <span style="color: #007800;">$processname</span> is not running.&quot;</span><br />
&nbsp; &nbsp; failure $<span style="color: #ff0000;">&quot;cannot stop <span style="color: #007800;">$processname</span>: <span style="color: #007800;">$processname</span> is not running.&quot;</span><br />
&nbsp; &nbsp; <span style="color: #7a0874; font-weight: bold;">echo</span><br />
&nbsp; &nbsp; <span style="color: #7a0874; font-weight: bold;">return</span> <span style="color: #000000;">1</span>;<br />
&nbsp; <span style="color: #000000; font-weight: bold;">fi</span><br />
&nbsp; killproc <span style="color: #007800;">$processname</span><br />
&nbsp; <span style="color: #007800;">RETVAL</span>=<span style="color: #007800;">$?</span><br />
&nbsp; <span style="color: #7a0874; font-weight: bold;">echo</span><br />
&nbsp; <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$RETVAL</span> <span style="color: #660033;">-eq</span> <span style="color: #000000;">0</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #660033;">-f</span> <span style="color: #007800;">$lockfile</span><br />
&nbsp; <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$RETVAL</span> <span style="color: #660033;">-eq</span> <span style="color: #000000;">0</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #660033;">-f</span> <span style="color: #007800;">$pidfile</span><br />
&nbsp; <span style="color: #7a0874; font-weight: bold;">return</span> <span style="color: #007800;">$RETVAL</span><br />
<span style="color: #7a0874; font-weight: bold;">&#125;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #007800;">$1</span> <span style="color: #000000; font-weight: bold;">in</span><br />
&nbsp; start<span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
&nbsp; &nbsp; start<br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">;;</span><br />
&nbsp; stop<span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
&nbsp; &nbsp; stop<br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">;;</span><br />
&nbsp; restart<span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
&nbsp; &nbsp; stop<br />
&nbsp; &nbsp; start<br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">;;</span><br />
&nbsp; status<span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
&nbsp; &nbsp; status <span style="color: #007800;">$processname</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">;;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">*</span><span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Usage: $0 start|stop|restart|status&quot;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">;;</span><br />
<span style="color: #000000; font-weight: bold;">esac</span></div></div>
<p>Установка прав на запуск:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">chmod</span> <span style="color: #000000;">755</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>rc.d<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>transmission</div></div>
<p>Добавление в автозапуск:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">chkconfig transmission on</div></div>
<p>Запуск:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">service transmission start</div></div>
<p>Если всё выполнено правильно, демон запущен и работает.</p>
<p><strong>Настройка</strong></p>
<p style="text-align: justify;">Теперь нужно настроить демон, основные настройки доступны с web-интерфейса. Нужно открыть в браузере <u>http://ваш-web-сервер/transmission</u>, слева внизу есть кнопка настроек, выбрать Preferences. Указать путь куда будут сохраняться файлы, номер порта и не забыть открыть его в фаерволле для входящих соединений. На второй вкладке указать ограничение скорости. Всё, можно работать, добавлять torrent-файлы, наблюдать процесс скачивания.</p>
<p style="text-align: justify;">Все настройки сохраняются в каталоге <u>/root/.config/transmission-daemon</u>. Там же хранятся torrent-файлы и информация о текущих загрузках.</p>
<p style="text-align: justify;">Ещё я столкнулся с тем, что со временем демон начинает отъедать много ресурсов процессора, ест память, перезапуск помогает. Поэтому небольшой костыль в <u>/etc/crontab</u>:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">05 3 * * * root /etc/rc.d/init.d/transmission restart &gt;/dev/null 2&gt;&amp;1</div></div>
<p><strong>GUI</strong></p>
<p style="text-align: justify;">Есть неплохой GUI-интерфейс для transmission-daemon кроме родного &#8212; <a href="http://code.google.com/p/transmisson-remote-gui/" target="_blank">Transmission Remote GUI</a>. Данный клиент является кроссплатформенным, есть сборки как под Linux, так и под Windows, написан на <a href="http://www.lazarus.freepascal.org/" target="_blank">Lazarus</a>. Для того, чтобы данный клиент мог подключиться к демону &#8212; я добавил в скрипт запуска, строку параметров после 127.0.0.1, через запятую &#8212; IP-адрес домашнего компьютера.</p>
<p><strong>Итог</strong></p>
<p style="text-align: justify;">В результате проделанной работы я получил довольно удобную систему: демон качает, по самбе получаю доступ к скачанным файлам. При работе с загрузками используется довольно удобный GUI.</p>
<p style="text-align: justify;">Готов выслушать замечания, ваши рекомендации по улучшению скрипта запуска, дополнения, уточнения материала данной статьи.</p>
<p><strong>Ссылки</strong></p>
<ul>
<li><a href="http://www.transmissionbt.com/" target="_blank">www.transmissionbt.com</a></li>
<li><a href="http://trac.transmissionbt.com/wiki/Building" target="_blank">trac.transmissionbt.com/wiki/Building</a></li>
<li><a href="http://code.google.com/p/transmisson-remote-gui/" target="_blank">code.google.com/p/transmisson-remote-gui</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://ras.pl.ua/install_and_configure_transmission-daemon_in_centos/feed/</wfw:commentRss>
		<slash:comments>31</slash:comments>
		</item>
		<item>
		<title>Программа Песенник</title>
		<link>http://ras.pl.ua/songbook/</link>
		<comments>http://ras.pl.ua/songbook/#comments</comments>
		<pubDate>Mon, 23 Mar 2009 15:42:09 +0000</pubDate>
		<dc:creator>ras</dc:creator>
				<category><![CDATA[Программное обеспечение]]></category>
		<category><![CDATA[songbook]]></category>
		<category><![CDATA[аккорды]]></category>
		<category><![CDATA[песенник]]></category>
		<category><![CDATA[песни]]></category>

		<guid isPermaLink="false">http://ras.pl.ua/?p=111</guid>
		<description><![CDATA[Программа предназначена для тех кто играет на гитаре и имеет необходимость хранить много текстов песен с аккордами. Программа позволяет упорядочить архив по алфавиту, удобно просмотреть песни с раскраской аккордов, комментариев, добавить новые, отредактировать существующие. Так же имеется ряд сервисных функций, таких как автоформатирование, автоматическая вставка заголовков. Есть система справки, описывающая все детали работы с программой. [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Программа предназначена для тех кто играет на гитаре и имеет необходимость хранить много текстов песен с аккордами. Программа позволяет упорядочить архив по алфавиту, удобно просмотреть песни с раскраской аккордов, комментариев, добавить новые, отредактировать существующие. <span id="more-111"></span>Так же имеется ряд сервисных функций, таких как автоформатирование, автоматическая вставка заголовков. Есть система справки, описывающая все детали работы с программой. Все песни хранятся в отдельных текстовых файлах в папках (что обеспечивает целостность информации) и могут быть экспортированы и, скажем, пересланы кому-либо.</p>
<p style="text-align: justify;">Программа бесплатна. Набранные песни для песенника можно загрузить с сервера песен: <a href="http://ras.pl.ua/songs" target="_blank">ras.pl.ua/songs</a>, который ведётся одним из первых проявивших внимание к программе пользователей &#8212; Романом Веселовским.</p>
<p style="text-align: justify;">На данный момент разрабатывается новая версия программы другим разработчиком &#8212; Алексеем Шитовым (<a href="http://alexbit.info/" target="_blank">alexbit.info</a>). Официальная страница новой версии программы: <a href="http://song-book.ru/" target="_blank">song-book.ru</a>.</p>
<p><strong>Требования к системе</strong></p>
<ul>
<li>Windows 2000+</li>
<li>Internet Explorer 5+</li>
<li>128+ Мб. оперативной памяти</li>
</ul>
<p><strong>Скриншот</strong></p>

<a href="http://ras.pl.ua/wp-content/gallery/screenshots/songbook.png" title="" class="shutterset_singlepic51" >
	<img class="ngg-singlepic ngg-center" src="http://ras.pl.ua/wp-content/gallery/cache/51__400x300_songbook.png" alt="songbook.png" title="songbook.png" />
</a>

<p><strong>Скачать</strong></p>
<ul>
<li><a href="http://test.ras.pl.ua/files/songbook.zip"></a><a href="http://ras.pl.ua/wp-content/uploads/2009/06/songbook.zip">songbook.zip</a> (639 кб., версия 2.8.14)</li>
</ul>
<p><strong>Инсталяция</strong></p>
<ul style="text-align: justify;">
<li>Распакуйте zip-архив программы в любую папку на диске;</li>
<li>Создайте ярлык для файла &#171;SongBook.exe&#187;, переименуйте его в &#171;Песенник&#187; и поместите в меню &#171;Программы&#187;.</li>
</ul>
<p><strong>Изменения в новой версии</strong></p>
<ul style="text-align: justify;">
<li> Исправлена небольшая ошибка в навигации по дереву.</li>
</ul>
<p><strong>Ссылки</strong></p>
<ul>
<li><a href="http://ras.pl.ua/songs" target="_blank">ras.pl.ua/songs</a></li>
<li><a href="http://song-book.ru/" target="_blank">song-book.ru</a></li>
<li><a href="http://alexbit.info/" target="_blank">alexbit.info</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://ras.pl.ua/songbook/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Просмотр графиков, генерируемых MRTG</title>
		<link>http://ras.pl.ua/ras_mrtg_cover/</link>
		<comments>http://ras.pl.ua/ras_mrtg_cover/#comments</comments>
		<pubDate>Thu, 12 Feb 2009 10:22:42 +0000</pubDate>
		<dc:creator>ras</dc:creator>
				<category><![CDATA[Программное обеспечение]]></category>
		<category><![CDATA[mrtg]]></category>

		<guid isPermaLink="false">http://test.ras.pl.ua/?p=22</guid>
		<description><![CDATA[Представляю вашему вниманию (ras MRTG cover) простой просмотрщик статистики, генерируемой MRTG (multi router traffic grapher), написанный на perl. Программа генерирует индекс всех графиков, отделяет скоростные графики от количественных, приводит единицы отображение скоростей к килобитам, позволяет выполнять сортировку в обоих направлениях по каждому полю. Просмотр графиков также переделан для лучшего восприятия. Написана данная утилита была по [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Представляю вашему вниманию (<strong>ras MRTG cover</strong>) простой просмотрщик статистики, генерируемой MRTG (multi router traffic grapher), написанный на perl. Программа генерирует индекс всех графиков, отделяет скоростные графики от количественных, приводит единицы отображение скоростей к килобитам, позволяет выполнять сортировку в обоих направлениях по каждому полю. <span id="more-22"></span>Просмотр графиков также переделан для лучшего восприятия.</p>
<p style="text-align: justify;">Написана данная утилита была по причине необходимости держать на роутерах небольшой набор графиков, а так как не хотелось для их просмотра постоянно рисовать какую-то индексную страницу &#8212; появилось это решение.</p>
<p><strong>Скриншоты</strong></p>
<p style="text-align: center;">индексная страница<br />

<a href="http://ras.pl.ua/wp-content/gallery/screenshots/ras_mrtg_cover_index.png" title="ras MRTG cover, индексная страница" class="shutterset_singlepic35" >
	<img class="ngg-singlepic ngg-center" src="http://ras.pl.ua/wp-content/gallery/cache/35__400x300_ras_mrtg_cover_index.png" alt="ras_mrtg_cover_index.png" title="ras_mrtg_cover_index.png" />
</a>
</p>
<p style="text-align: center;">страница просмотра графиков<br />

<a href="http://ras.pl.ua/wp-content/gallery/screenshots/ras_mrtg_cover_graph.png" title="ras MRTG cover, страница графиков" class="shutterset_singlepic36" >
	<img class="ngg-singlepic ngg-center" src="http://ras.pl.ua/wp-content/gallery/cache/36__400x300_ras_mrtg_cover_graph.png" alt="ras_mrtg_cover_graph.png" title="ras_mrtg_cover_graph.png" />
</a>
</p>
<p><strong>Скачать</strong> (версия 0.3a1 от 17.06.2009)<strong><br />
</strong></p>
<ul>
<li><a href="/perl/ras_mrtg_cover.gz">ras_mrtg_cover.gz</a> (4 кб.)</li>
</ul>
<p><strong>Установка</strong></p>
<p>Установка и настройка (рассматривается дистрибутив CentOS 5.2):</p>
<ul style="text-align: justify;">
<li>После установки и настройки пакетов mrtg, httpd, распаковать и поместить данный файл в каталог &#171;/var/www/mrtg&#187;, переименовать в &#171;index.cgi&#187;.</li>
<li>Разрешить выполнение CGI-скриптов в каталоге с графиками, для этого в файле &#171;/etc/httpd/conf.d/mrtg.conf&#187;, в разделе &#171;&lt;Location /mrtg&gt;&#187;, добавить строку &#171;Options ExecCGI&#187;.</li>
<li>Добавить в конфигурацию web-сервера индексную страницу &#171;index.cgi&#187;, в файл &#171;/etc/httpd/conf/httpd.conf&#187;, строка &#171;DirectoryIndex&#187;.</li>
</ul>
<p style="text-align: justify;">Переинициализируйте httpd (&#171;service httpd reload&#187;), после этого можно наблюдать индекс графиков по адресу &#171;http://yousite/mrtg/&#187;.</p>
<p style="text-align: justify;">Следует отметить, что описание для индекса и параметры при отображении графика &#8212; берутся из первых двух строк таблицы сгенерированного MRTG html-файла.</p>
<p><strong>Примеры конфигурационных файлов MRTG</strong></p>
<p><span style="text-decoration: underline;">/etc/mrtg/mrtg.cfg</span></p>
<div class="codecolorer-container ini default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="ini codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">HtmlDir: /var/www/mrtg<br />
ImageDir: /var/www/mrtg<br />
LogDir: /var/lib/mrtg<br />
ThreshDir: /var/lib/mrtg<br />
Include: /etc/mrtg/mrtg-local.conf<br />
Include: /etc/mrtg/mrtg-satel.conf<br />
Include: /etc/mrtg/mrtg-satel-ppp.conf<br />
Include: /etc/mrtg/mrtg-vizit.conf<br />
Include: /etc/mrtg/mrtg-zeus.conf<br />
Include: /etc/mrtg/mrtg-cooler.conf<br />
Include: /etc/mrtg/mrtg-temperature_cpu.conf<br />
Include: /etc/mrtg/mrtg-temperature_hdd.conf<br />
Include: /etc/mrtg/mrtg-temperature_sys.conf<br />
Include: /etc/mrtg/mrtg-uptime.conf<br />
Include: /etc/mrtg/mrtg-cpu.conf<br />
Include: /etc/mrtg/mrtg-cpu_ras.conf<br />
Include: /etc/mrtg/mrtg-cpu_ras-netbook.conf<br />
Include: /etc/mrtg/mrtg-cpu_iriska.conf</div></div>
<p><span style="text-decoration: underline;">/etc/mrtg/mrtg-satel-ppp.conf</span></p>
<div class="codecolorer-container html4strict default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Target[satel-ppp]: `/etc/mrtg/scripts/dev.sh ppp0`<br />
MaxBytes[satel-ppp]: 1250000<br />
AbsMax[satel-ppp]: 1500000<br />
Options[satel-ppp]: bits,unknaszero,growright<br />
Title[satel-ppp]: satel-ppp<br />
PageTop[satel-ppp]: <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>Интернет www.satel.net.ua<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h1</span>&gt;</span><br />
&nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">table</span>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">tr</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span>&gt;</span>Интерфейс:<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span>&gt;</span>ppp0<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">tr</span>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">tr</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span>&gt;</span>Максимальная скорость:<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">td</span>&gt;</span>10 Mbps<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">td</span>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">tr</span>&gt;</span><br />
&nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">table</span>&gt;</span></div></div>
<p><strong>Лицензия</strong></p>
<p style="text-align: justify;">You may freely distribute and/or modify this module under the terms of either the GNU General Public License (GPL, <a href="http://www.gnu.org/licenses/gpl.txt" target="_blank">www.gnu.org/licenses/gpl.txt</a>).</p>
<p style="text-align: justify;"><strong>Ссылки</strong></p>
<ul>
<li><a title="MRTG - Tobi Oetiker's MRTG - The Multi Router Traffic Grapher" href="http://oss.oetiker.ch/mrtg/" target="_blank">oss.oetiker.ch/mrtg</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://ras.pl.ua/ras_mrtg_cover/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

