<?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>Келег`s homepage</title>
	<atom:link href="http://www.keleg.info/feed" rel="self" type="application/rss+xml" />
	<link>http://www.keleg.info</link>
	<description>Обработанные мысли</description>
	<lastBuildDate>Fri, 25 Jun 2010 15:37:33 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Теперь Ubuntu 10.04</title>
		<link>http://www.keleg.info/hardsoft/dns-clevo-ubuntu-10-04</link>
		<comments>http://www.keleg.info/hardsoft/dns-clevo-ubuntu-10-04#comments</comments>
		<pubDate>Fri, 25 Jun 2010 15:33:23 +0000</pubDate>
		<dc:creator>keleg</dc:creator>
				<category><![CDATA[Hard&Soft]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.keleg.info/?p=233</guid>
		<description><![CDATA[Решился изменить немного мандриве/MagOS и посмотреть на Убунту. Задача &#8211; поставить на DNS-овский дешевенький нетбук, что идет без системы, что-то работающее и красивое, для знакомой девушки.
Пробуем нетбук-едишн последней убунты. Инсталляция проходит совсем без проблем &#8211; пишем скачанный исошник на CD, загружаемся на рабочем ноутбуке, вставляем флэшку и делаем ее загрузочной стандартной убунтовой утилиткой &#8220;Создание загрузочного диска&#8221;. [...]]]></description>
			<content:encoded><![CDATA[<p>Решился изменить немного мандриве/MagOS и посмотреть на Убунту. Задача &#8211; поставить на DNS-овский дешевенький нетбук, что идет без системы, что-то работающее и красивое, для знакомой девушки.</p>
<p>Пробуем нетбук-едишн последней убунты. Инсталляция проходит совсем без проблем &#8211; пишем скачанный исошник на CD, загружаемся на рабочем ноутбуке, вставляем флэшку и делаем ее загрузочной стандартной убунтовой утилиткой &#8220;Создание загрузочного диска&#8221;. Потом загружаемся с флэшки на нетбуке, несколько кликов &#8211; и убунту стоит и работает. Красота! Но нужно подключить мой знаменитый и не любимый линуксами модем AnyData Adu-500A чтоб интернет был.</p>
<p>Штатная переключалка его традиционно не берет, потому выключим ее: переименуем /lib/udev/modem-modeswitch или вообще его удалим. А поставим мы правильную переключалку, без проблем подключившись через резервный GPRS верной моторолы</p>
<p>sudo apt-get install usb-modeswitch</p>
<p>Пара кликов в графической настройке интернет-соединения и мои модем и телефон без проблем дают мне доступ в сеть просто при втыкании в usb-разъем. Красота!</p>
<p>Через часик заметилось, что винчестер слишком часто головками стучит, выключается при неактивности в 5 секунд а потом снова ему раскручиваться приходится. Немного форумов и решение найдено -пишем в /etc/hdparm.conf</p>
<p>/dev/sda {<br />
spindown_time=60<br />
}</p>
<p>Перегружаемся &#8211; все, винт в норме! (60- это пять минут, можно поиграться если есть желание оптимизации) Два дня полета &#8211; убунта очень нравится, как-то все просто работает  так, как нужно &#8211; быстро, умно и красиво. Надо подкинуть ДНС-овцам идейку продавать с уже установленной убунтой. Главный плюс линукса на нетбуке &#8211; не нужно антивируса, без которого в сети, для которой нетбук предназначен, не выживешь и который съедает половину и так скудных ресурсов машинки.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.keleg.info/hardsoft/dns-clevo-ubuntu-10-04/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Говорят, японское</title>
		<link>http://www.keleg.info/makeself/%d0%b3%d0%be%d0%b2%d0%be%d1%80%d1%8f%d1%82-%d1%8f%d0%bf%d0%be%d0%bd%d1%81%d0%ba%d0%be%d0%b5</link>
		<comments>http://www.keleg.info/makeself/%d0%b3%d0%be%d0%b2%d0%be%d1%80%d1%8f%d1%82-%d1%8f%d0%bf%d0%be%d0%bd%d1%81%d0%ba%d0%be%d0%b5#comments</comments>
		<pubDate>Thu, 27 May 2010 08:04:43 +0000</pubDate>
		<dc:creator>keleg</dc:creator>
				<category><![CDATA[Путь к себе]]></category>
		<category><![CDATA[афоризмы]]></category>

		<guid isPermaLink="false">http://www.keleg.info/?p=231</guid>
		<description><![CDATA[Если проблему нельзя решить, она не существует
]]></description>
			<content:encoded><![CDATA[<p>Если проблему нельзя решить, она не существует</p>
]]></content:encoded>
			<wfw:commentRss>http://www.keleg.info/makeself/%d0%b3%d0%be%d0%b2%d0%be%d1%80%d1%8f%d1%82-%d1%8f%d0%bf%d0%be%d0%bd%d1%81%d0%ba%d0%be%d0%b5/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Рубиновая плазма. Часть 2.</title>
		<link>http://www.keleg.info/programming/plasmoid-ruby-2</link>
		<comments>http://www.keleg.info/programming/plasmoid-ruby-2#comments</comments>
		<pubDate>Sun, 06 Dec 2009 07:32:22 +0000</pubDate>
		<dc:creator>keleg</dc:creator>
				<category><![CDATA[Программирование]]></category>
		<category><![CDATA[kde]]></category>
		<category><![CDATA[plasma]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://www.keleg.info/?p=217</guid>
		<description><![CDATA[
Постановка
Есть такая, очень полезная программка &#8211; vnstat. Она показывает сетевой трафик по выбранным интерфейсам. Для меня, у которого дневной лимит &#8211; 150 мб жизни, очень нужная вещь.
Устанавливаем, если ее еще у вас нет, набираем в консоли vnstat -u -i ppp0 для начальной инициализации (если будете смотреть интерфейс модема ppp0, если нужен другой, можно выбрать и [...]]]></description>
			<content:encoded><![CDATA[<p><!-- p, li { white-space: pre-wrap; } --></p>
<h3 style="margin: 0px; text-indent: 0px;"><span style="font-weight: 600;"><!--StartFragment-->Постановка</span></h3>
<p style="margin: 10px; text-indent: 0px;">Есть такая, очень полезная программка &#8211; vnstat. Она показывает сетевой трафик по выбранным интерфейсам. Для меня, у которого дневной лимит &#8211; 150 мб жизни, очень нужная вещь.</p>
<p style="margin: 10px; text-indent: 0px;">Устанавливаем, если ее еще у вас нет, набираем в консоли vnstat -u -i ppp0 для начальной инициализации (если будете смотреть интерфейс модема ppp0, если нужен другой, можно выбрать и другой, тот же eth0 для сетевой карты)</p>
<p style="margin: 10px; text-indent: 0px;">Теперь запускаем vnstat &#8211; получаем информацию о трафике.</p>
<p style="margin: 10px; text-indent: 0px;">Только вот одна незадача, информация есть в консоли,  в текстовом виде. Каждый раз запускать консоль и набирать vnstat чтоб узнать, сколько интернета осталось?</p>
<p style="margin: 10px; text-indent: 0px;">Увольте! Самое время написать красивый плазмоид!</p>
<h3 style="margin: 0px; text-indent: 0px;"><span style="font-weight: 600;">Что говорит vnstat?</span></h3>
<p style="margin: 10px; text-indent: 0px;">Сначала разберемся с выводом vnstat</p>
<blockquote>
<p style="margin: 0px; text-indent: 0px;">ppp0 since 11/05/09</p>
<p style="margin: 0px; text-indent: 0px;">
<p style="margin: 0px; text-indent: 0px;">rx:  3.37 GiB      tx:  252.77 MiB      total:  3.61 GiB</p>
<p style="margin: 0px; text-indent: 0px;">
<p style="margin: 0px; text-indent: 0px;">monthly</p>
<p style="margin: 0px; text-indent: 0px;">rx      |     tx      |    total    |   avg. rate</p>
<p style="margin: 0px; text-indent: 0px;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p style="margin: 0px; text-indent: 0px;">Nov &#8216;09      2.63 GiB |  197.18 MiB |    2.82 GiB |    9.12 kbit/s</p>
<p style="margin: 0px; text-indent: 0px;">Dec &#8216;09    756.73 MiB |   55.59 MiB |  812.32 MiB |   13.79 kbit/s</p>
<p style="margin: 0px; text-indent: 0px;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p style="margin: 0px; text-indent: 0px;">estimated      4.10 GiB |     305 MiB |    4.40 GiB |</p>
<p style="margin: 0px; text-indent: 0px;">
<p style="margin: 0px; text-indent: 0px;">daily</p>
<p style="margin: 0px; text-indent: 0px;">rx      |     tx      |    total    |   avg. rate</p>
<p style="margin: 0px; text-indent: 0px;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p style="margin: 0px; text-indent: 0px;">yesterday    124.79 MiB |   15.33 MiB |  140.12 MiB |   13.29 kbit/s</p>
<p style="margin: 0px; text-indent: 0px;">today    148.93 MiB |    6.63 MiB |  155.55 MiB |   25.21 kbit/s</p>
<p style="margin: 0px; text-indent: 0px;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p style="margin: 0px; text-indent: 0px;">estimated       253 MiB |      10 MiB |     263 MiB |</p>
</blockquote>
<p style="margin: 0px; text-indent: 0px;">
<p style="margin: 10px; text-indent: 0px;">Столько много нам не нужно, нам бы сегодняшний интернет&#8230; его легко получить командой vnstat | grep today</p>
<p style="margin: 10px; text-indent: 0px;">Получим строчку &#8220;today    148.94 MiB |    6.63 MiB |  155.58 MiB |   24.97 kbit/s&#8221; которую уже легко отпарсить.</p>
<h3 style="margin: 0px; text-indent: 0px;"><span style="font-weight: 600;">Создание нового плазмоида</span></h3>
<p style="margin: 10px; text-indent: 0px;">Теперь можно заняться созданием плазмоида. Копируем из примера <a href="http://www.keleg.info/programming/plasmoid-ruby-1" target="_blank">предыдущей статьи </a>структуру папок вместе с файлами, переименовываем папку plasmatest в, например, wnetstat. Создаем новый проект geany, открываем файлы metadata.desktop и main.rb  и также изменяем там название plasmatest на wnstat.</p>
<p style="margin: 10px; text-indent: 0px;">Человеко-читаемое название в metadata.desktop тоже лучше изменить на что-то более осмысленное, например</p>
<blockquote>
<p style="margin: 0px; text-indent: 0px;">Name=Трафик Интернета</p>
<p style="margin: 0px; text-indent: 0px;">Comment=Интерфейс для vnstat</p>
</blockquote>
<p style="margin: 0px; text-indent: 0px;">
<p style="margin: 10px; text-indent: 0px;">Проверяем все ли сделали правильно,  запускаем проект.</p>
<p style="margin: 10px; text-indent: 0px;">Все хорошо?</p>
<p style="margin:10px; text-indent: 0px;">Теперь можно и программировать.</p>
<p style="margin: 0px; text-indent: 0px;">
<h3 style="margin: 0px; text-indent: 0px;"><span style="font-weight: 600;">Получение информации от внешней программы</span></h3>
<p style="margin: 0px; text-indent: 0px; font-weight: 600;">
<p style="margin: 10px; text-indent: 0px;">Напишем на ruby метод для получения информации от vnstat</p>
<p style="margin: 0px; text-indent: 0px;">
<blockquote>
<p style="margin: 0px; text-indent: 0px;">def updateStat</p>
<p style="margin: 0px; text-indent: 0px; padding-left: 30px;">IO.popen(&#8221;vnstat -u&#8221;).close</p>
<p style="margin: 0px; text-indent: 0px; padding-left: 30px;">pipe = IO.popen(&#8221;vnstat | grep today&#8221;)</p>
<p style="margin: 0px; text-indent: 0px; padding-left: 30px;">stat = pipe.gets</p>
<p style="margin: 0px; text-indent: 0px; padding-left: 30px;">pipe.close</p>
<p style="margin: 0px; text-indent: 0px; padding-left: 30px;">if stat!=nil then</p>
<p style="margin: 0px; text-indent: 0px; padding-left: 60px;">@stat=stat.split(&#8217; &#8216;)</p>
<p style="margin: 0px; text-indent: 0px; padding-left: 30px;">end</p>
<p style="margin: 0px; text-indent: 0px;">end</p>
</blockquote>
<p style="margin: 10px; text-indent: 0px;">Теперь в переменной объекта @stat лежит распарсенная строка вывода нашего vnstat.</p>
<p style="margin: 10px; text-indent: 0px;">Осталось ее вывести на экран. Для этого напишем еще один мааленький метод, он будет говорить нам суммарный трафик за день.</p>
<blockquote>
<p style="margin: 0px; text-indent: 0px;">def view</p>
<p style="margin: 0px; text-indent: 0px; padding-left: 30px;">@stat[7]+&#8221;\n&#8221;+@stat[8]</p>
<p style="margin: 0px; text-indent: 0px;">end</p>
</blockquote>
<p style="margin: 0px; text-indent: 0px;">
<p style="margin: 10px; text-indent: 0px;">Если теперь заменим наш тестовый &#8220;Hello world&#8221; на вызов этой функции, не забыв предварительно вызвать updateStat, получим при выполнении количество мегабайт!</p>
<h3 style="margin: 0px; text-indent: 0px;"><span style="font-weight: 600;">Обновление по таймеру</span></h3>
<p style="margin: 10px; text-indent: 0px;">Сейчас у нас всего два вызываемых системой метода, куда можно вклиниться &#8211; init и paintInterface</p>
<p style="margin: 10px; text-indent: 0px;">Соответственно, если вставить туда наш updateStat, информация о трафике будет обновляться или при старте системы, или при перерисовке виджета-плазмоида. И то, и другое  &#8211; не самый лучший выход, было бы правильнее обновлять информацию по таймеру, например раз в 30 секунд. И это очень просто сделать!</p>
<p style="margin: 10px; text-indent: 0px;">Достаточно в методе init инициализировать таймер</p>
<p style="margin: 10px; text-indent: 0px;">startTimer(30000)</p>
<p style="margin: 10px; text-indent: 0px;">и написать новый метод, который будет вызываться при срабатывании таймера, обновлять информацию о статистике Интернета и перерисовывать наш плазмоид.</p>
<blockquote>
<p style="margin: 0px; text-indent: 0px;">def timerEvent(event)</p>
<p style="margin: 0px; text-indent: 0px; padding-left: 30px;">updateStat</p>
<p style="margin: 0px; text-indent: 0px; padding-left: 30px;">update</p>
<p style="margin: 0px; text-indent: 0px;">end</p>
</blockquote>
<h3 style="margin: 0px; text-indent: 0px;"><span style="font-weight: 600;">Итог</span></h3>
<p style="margin: 10px; text-indent: 0px;">В общем-то все. Полный текст программы будет таков</p>
<p style="margin: 0px; text-indent: 0px;">
<blockquote>
<p style="margin: 0px; text-indent: 0px;">require &#8216;plasma_applet&#8217;</p>
<p style="margin: 0px; text-indent: 0px;">module Wnetstat</p>
<p style="margin: 0px; text-indent: 0px;">
<p style="margin: 0px; text-indent: 0px; padding-left: 30px;">class Main &lt; PlasmaScripting::Applet</p>
<p style="margin: 0px; text-indent: 0px; padding-left: 30px;">
<p style="margin: 0px; text-indent: 0px; padding-left: 60px;">def initialize parent</p>
<p style="margin: 0px; text-indent: 0px; padding-left: 90px;">super parent</p>
<p style="margin: 0px; text-indent: 0px; padding-left: 60px;">end</p>
<p style="margin: 0px; text-indent: 0px; padding-left: 60px;">
<p style="margin: 0px; text-indent: 0px; padding-left: 60px;">def init</p>
<p style="margin: 0px; text-indent: 0px; padding-left: 90px;">self.has_configuration_interface = false</p>
<p style="margin: 0px; text-indent: 0px; padding-left: 90px;">updateStat</p>
<p style="margin: 0px; text-indent: 0px; padding-left: 90px;">startTimer(30000)</p>
<p style="margin: 0px; text-indent: 0px; padding-left: 60px;">end</p>
<p style="margin: 0px; text-indent: 0px; padding-left: 60px;">
<p style="margin: 0px; text-indent: 0px; padding-left: 60px;">
<p style="margin: 0px; text-indent: 0px; padding-left: 60px;">def updateStat</p>
<p style="margin: 0px; text-indent: 0px; padding-left: 90px;">IO.popen(&#8221;vnstat -u&#8221;).close</p>
<p style="margin: 0px; text-indent: 0px; padding-left: 90px;">pipe = IO.popen(&#8221;vnstat | grep today&#8221;)</p>
<p style="margin: 0px; text-indent: 0px; padding-left: 90px;">stat = pipe.gets</p>
<p style="margin: 0px; text-indent: 0px; padding-left: 90px;">pipe.close</p>
<p style="margin: 0px; text-indent: 0px; padding-left: 90px;">if stat!=nil then</p>
<p style="margin: 0px; text-indent: 0px; padding-left: 120px;">@stat=stat.split(&#8217; &#8216;)</p>
<p style="margin: 0px; text-indent: 0px; padding-left: 90px;">end</p>
<p style="margin: 0px; text-indent: 0px; padding-left: 60px;">end</p>
<p style="margin: 0px; text-indent: 0px; padding-left: 60px;">
<p style="margin: 0px; text-indent: 0px; padding-left: 60px;">def view</p>
<p style="margin: 0px; text-indent: 0px; padding-left: 90px;">@stat[7]+&#8221;\n&#8221;+@stat[8]</p>
<p style="margin: 0px; text-indent: 0px; padding-left: 60px;">end</p>
<p style="margin: 0px; text-indent: 0px; padding-left: 60px;">
<p style="margin: 0px; text-indent: 0px; padding-left: 60px;">
<p style="margin: 0px; text-indent: 0px; padding-left: 60px;">def timerEvent(event)</p>
<p style="margin: 0px; text-indent: 0px; padding-left: 90px;">updateStat</p>
<p style="margin: 0px; text-indent: 0px; padding-left: 90px;">update</p>
<p style="margin: 0px; text-indent: 0px; padding-left: 60px;">end</p>
<p style="margin: 0px; text-indent: 0px; padding-left: 60px;">
<p style="margin: 0px; text-indent: 0px; padding-left: 60px;">
<p style="margin: 0px; text-indent: 0px; padding-left: 60px;">def paintInterface(painter, option, rect)</p>
<p style="margin: 0px; text-indent: 0px; padding-left: 90px;">painter.save</p>
<p style="margin: 0px; text-indent: 0px; padding-left: 90px;">painter.pen = Qt::Color.new Qt::white</p>
<p style="margin: 0px; text-indent: 0px; padding-left: 90px;">painter.draw_text rect, Qt::AlignVCenter | Qt::AlignHCenter,view</p>
<p style="margin: 0px; text-indent: 0px; padding-left: 90px;">painter.restore</p>
<p style="margin: 0px; text-indent: 0px; padding-left: 60px;">end</p>
<p style="margin: 0px; text-indent: 0px; padding-left: 30px;">end</p>
<p style="margin: 0px; text-indent: 0px;">end</p>
</blockquote>
<p style="margin: 10px; text-indent: 0px;">Запускаем, если все нормально &#8211; инсталлируем и кидаем в системный лоток. Теперь мегабайты от нас далеко не убегут! В следующей статье нам осталось разобраться с изменением вывода в зависимости от размера, настройкой виджета и выводом напоминаний о превышенном лимите. А пока &#8211; мягкой плазмы!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.keleg.info/programming/plasmoid-ruby-2/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Рубиновая плазма. Часть 1.</title>
		<link>http://www.keleg.info/programming/plasmoid-ruby-1</link>
		<comments>http://www.keleg.info/programming/plasmoid-ruby-1#comments</comments>
		<pubDate>Sat, 05 Dec 2009 15:06:10 +0000</pubDate>
		<dc:creator>keleg</dc:creator>
				<category><![CDATA[Программирование]]></category>
		<category><![CDATA[kde]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[plasma]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://www.keleg.info/?p=174</guid>
		<description><![CDATA[Введение
Наверное, самое привлекательное для меня свойство linux &#8211; возможность достаточно быстро переделать систему под свои запросы. Причем практически всегда есть возможность дописать то, чего нет, структура системы &#8220;из небольших кусочков&#8221; легко позволяет это. Интересную возможность для кодирования представляют появившиеся в KDE4 празмоиды (plasmoids) &#8211; небольшие приложения рабочего стола, которые можно писать как на C++, так [...]]]></description>
			<content:encoded><![CDATA[<h3 style="-qt-block-indent: 0; text-indent: 0px; margin: 0px;"><!--StartFragment--><span style="font-weight: 600;"><strong>Введение</strong></span></h3>
<p style="-qt-block-indent: 10; text-indent: 0px; margin: 10px;">Наверное, самое привлекательное для меня свойство linux &#8211; возможность достаточно быстро переделать систему под свои запросы. Причем практически всегда есть возможность дописать то, чего нет, структура системы &#8220;из небольших кусочков&#8221; легко позволяет это. Интересную возможность для кодирования представляют появившиеся в KDE4 празмоиды (plasmoids) &#8211; небольшие приложения рабочего стола, которые можно писать как на C++, так и на скриптовых языках, например на Ruby.</p>
<p style="-qt-block-indent: 10; text-indent: 0px; margin: 10px;">Простейшие-то они простейшие, но весь рабочий стол KDE (от корзины до кнопки &#8220;пуск&#8221;) состоит из них, и поэтому сделать приложение, которое будет достойным представителем рабочего  стола, всегда интересно и полезно.</p>
<h3 style="-qt-block-indent: 0; text-indent: 0px; margin: 0px;"><span style="font-weight: 600;"><strong>Что такое скриптовый плазмоид?</strong></span></h3>
<p style="-qt-block-indent: 10; text-indent: 0px; margin: 10px;">Это zip-файл, минимально содержащий следующую структуру:</p>
<blockquote>
<ul style="-qt-list-indent: 2;">
<li style="margin-top: 12px; margin-bottom: 0px; margin-left: 10px; margin-right: 0px; -qt-block-indent: 10; text-indent: 0px;">metadata.desktop &#8211; XML-файл настроек плазмоида
<ul>
<li>contents  &#8211; папка, в которой содержится все содержимое плазмоида.
<ul>
<li style="margin-top: 0px; margin-bottom: 12px; margin-left: 0px; margin-right: 0px; -qt-block-indent: 0; text-indent: 0px;">code  &#8211; папка с кодом</li>
</ul>
</li>
</ul>
</li>
</ul>
</blockquote>
<p style="-qt-block-indent: 10; text-indent: 0px; margin: 10px;">Подробнее можно прочитать в <a href="http://techbase.kde.org/Projects/Plasma/Package " target="_blank">документации(eng)</a></p>
<p style="-qt-block-indent: 10; text-indent: 0px; margin: 10px;">Скриптовые плазмоиды можно писать на C#, Python, Javascript, Ruby.</p>
<p style="-qt-block-indent: 10; text-indent: 0px; margin: 10px;">Здесь мы помучаем <a href="http://ru.wikipedia.org/wiki/Ruby" target="_blank">Руби</a>. Почему? Возможно, потому что попробовав программировать на Ruby, уже не хочется программировать ни на чем другом. Очень приятный язык.  Если C позволяет написать программу, совершенную с точки зрения процессора, который будет ее исполнять, то Ruby дает возможность написать программу, совершенную с точки зрения алгоритма.</p>
<h3 style="-qt-block-indent: 0; text-indent: 0px; margin: 0px;"><span style="font-weight: 600;"><strong>Все, что нужно для работы</strong></span></h3>
<p style="-qt-block-indent: 10; text-indent: 0px; margin: 10px;">Чтобы заработал наш ruby-плазмоид, нужно чтоб в системе был установлен ruby и пакеты для его поддержки в плазме.</p>
<p style="-qt-block-indent: 10; text-indent: 0px; margin: 10px;">В моей мандриве это ruby, ruby-kde4, ruby-qt4</p>
<p style="-qt-block-indent: 10; text-indent: 0px; margin: 10px;">Также в будущем нам понадобится qtdesigner, чтоб рисовать интерфейс.</p>
<h3 style="-qt-block-indent: 0; text-indent: 0px; margin: 0px;"><span style="font-weight: 600;"><strong>Среда разработки</strong></span></h3>
<p style="-qt-block-indent: 10; text-indent: 0px; margin: 10px;">Среда разработки для плазмоидов еще не написана, ее обещают в KDE 4.4 (<a href="http://techbase.kde.org/Projects/Plasma/PlasMate" target="_blank">PlasMate</a>), мы же пока обойдемся подручными средствами. Понадобится редактировать файлы скриптов и XML-файлы, т.е. нужна универсальная среда к которой можно подключить внешние сборщики-интерпретаторы.</p>
<p style="-qt-block-indent: 10; text-indent: 0px; margin: 10px;">Я использовал <a href="http://www.geany.org/" target="_blank">geany</a>, она позволяет сделать все, что необходимо.</p>
<p style="-qt-block-indent: 10; text-indent: 0px; margin: 10px;">Нужно только добавить в систему скриптовый файл для инсталляции</p>
<p style="-qt-block-indent: 10; text-indent: 0px; margin: 10px;">Назовем его <em>installPlasmoid.sh </em>и скопируем в папку для выполнения, например <em>usr/bin</em></p>
<blockquote>
<p style="-qt-block-indent: 0; text-indent: 0px; margin: 0px;">#!/bin/sh</p>
<p style="-qt-block-indent: 0; text-indent: 0px; margin: 0px;">plasmapkg -r &#8220;$1&#8243; # удаляем уже установленный плазмоид из системы</p>
<p style="-qt-block-indent: 0; text-indent: 0px; margin: 0px;">rm &#8220;$1&#8243;.plasmoid # удаляем его исходный пакет</p>
<p style="-qt-block-indent: 0; text-indent: 0px; margin: 0px;">cd &#8220;$1&#8243; # переходим в папку с искходым кодом</p>
<p style="-qt-block-indent: 0; text-indent: 0px; margin: 0px;">zip -r ../&#8221;$1&#8243;.plasmoid * # пакуем новый плазмоид</p>
<p style="-qt-block-indent: 0; text-indent: 0px; margin: 0px;">cd ..</p>
<p style="-qt-block-indent: 0; text-indent: 0px; margin: 0px;">plasmapkg -i &#8220;$1&#8243;.plasmoid # устанавливаем</p>
<p style="-qt-block-indent: 0; text-indent: 0px; margin: 0px;">plasmoidviewer &#8220;$1&#8243; # смотрим результат</p>
</blockquote>
<h3 style="-qt-paragraph-type: empty; -qt-block-indent: 10; text-indent: 0px; margin: 10px;"><strong>Тестовый плазмоид</strong></h3>
<p style="-qt-block-indent: 10; text-indent: 0px; margin: 10px;">Создаем необходимую для плазмоида структуру папок. Для нас она будет такой:</p>
<ul>
<li>plasma &#8211; папка плазма-проектов geany
<ul>
<li style="-qt-block-indent: 0; text-indent: 0px; margin: 0px;">plasmatest
<ul>
<li> content
<ul>
<li>code</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<p style="margin-top: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-block-indent: 0; text-indent: 10px;">Запускаем geany, создаем новый проект со следующими настройками.</p>
<p style="margin-top: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-block-indent: 0; text-indent: 0px;"><img class="alignnone size-full wp-image-205" title="geany-settings" src="http://www.keleg.info/wp-content/uploads/2009/12/snapshot1.png" alt="geany-settings" width="533" height="357" /></p>
<p style="-qt-block-indent: 10; text-indent: 0px; margin: 10px;">Создаем и сохраняем в папке <em>plasmatest</em> файл <em>metadata.desktop</em> следующего содержания:</p>
<p style="-qt-paragraph-type: empty; -qt-block-indent: 0; text-indent: 0px; margin: 0px;">
<blockquote>
<p style="-qt-block-indent: 0; text-indent: 0px; margin: 0px;">[Desktop Entry]</p>
<p style="-qt-block-indent: 0; text-indent: 0px; margin: 0px;">Encoding=UTF-8</p>
<p style="-qt-block-indent: 0; text-indent: 0px; margin: 0px;">Name=Плазма тест</p>
<p style="-qt-block-indent: 0; text-indent: 0px; margin: 0px;">Comment=Тестируем рубиновую плазму</p>
<p style="-qt-block-indent: 0; text-indent: 0px; margin: 0px;">Type=Service</p>
<p style="-qt-block-indent: 0; text-indent: 0px; margin: 0px;">ServiceTypes=Plasma/Applet</p>
<p style="-qt-block-indent: 0; text-indent: 0px; margin: 0px;">Icon=applications-utilities</p>
<p style="-qt-paragraph-type: empty; -qt-block-indent: 0; text-indent: 0px; margin: 0px;">
<p style="-qt-block-indent: 0; text-indent: 0px; margin: 0px;">X-Plasma-DefautSize=150,150</p>
<p style="-qt-block-indent: 0; text-indent: 0px; margin: 0px;">X-Plasma-API=ruby-script</p>
<p style="-qt-block-indent: 0; text-indent: 0px; margin: 0px;">X-Plasma-MainScript=code/main.rb</p>
<p style="-qt-block-indent: 0; text-indent: 0px; margin: 0px;">X-KDE-PluginInfo-Author=keleg</p>
<p style="-qt-block-indent: 0; text-indent: 0px; margin: 0px;">X-KDE-PluginInfo-Email=keleg@mail.ru</p>
<p style="-qt-block-indent: 0; text-indent: 0px; margin: 0px;">X-KDE-PluginInfo-Name=plasmatest</p>
<p style="-qt-block-indent: 0; text-indent: 0px; margin: 0px;">X-KDE-PluginInfo-Version=0.1</p>
<p style="-qt-block-indent: 0; text-indent: 0px; margin: 0px;">X-KDE-PluginInfo-Website=http://www.keleg.info/</p>
<p style="-qt-block-indent: 0; text-indent: 0px; margin: 0px;">X-KDE-PluginInfo-Category=Examples</p>
<p style="-qt-block-indent: 0; text-indent: 0px; margin: 0px;">X-KDE-PluginInfo-Depends=</p>
<p style="-qt-block-indent: 0; text-indent: 0px; margin: 0px;">X-KDE-PluginInfo-License=GPL</p>
<p style="-qt-block-indent: 0; text-indent: 0px; margin: 0px;">X-KDE-PluginInfo-EnabledByDefault=true</p>
</blockquote>
<p style="-qt-block-indent: 10; text-indent: 0px; margin: 10px;">Осталось только создать сам файл кода <em>main.rb</em> типа &#8220;Hello world!&#8221;</p>
<p style="-qt-paragraph-type: empty; -qt-block-indent: 0; text-indent: 0px; margin: 0px;">
<blockquote>
<p style="-qt-block-indent: 0; text-indent: 0px; margin: 0px;">require &#8216;plasma_applet&#8217;</p>
<p style="-qt-block-indent: 0; text-indent: 0px; margin: 0px;">module Plasmatest</p>
<p style="-qt-block-indent: 0; text-indent: 0px; margin: 0px;">
<p style="text-indent: 0px; padding-left: 30px; margin: 0px;">class Main &lt; PlasmaScripting::Applet</p>
<p style="text-indent: 0px; padding-left: 30px; margin: 0px;">
<p style="text-indent: 0px; padding-left: 60px; margin: 0px;">def initialize parent</p>
<p style="text-indent: 0px; padding-left: 90px; margin: 0px;">super parent</p>
<p style="text-indent: 0px; padding-left: 60px; margin: 0px;">end</p>
<p style="text-indent: 0px; padding-left: 60px; margin: 0px;">
<p style="text-indent: 0px; padding-left: 60px; margin: 0px;">def init</p>
<p style="text-indent: 0px; padding-left: 90px; margin: 0px;">self.has_configuration_interface = false</p>
<p style="text-indent: 0px; padding-left: 60px; margin: 0px;">end</p>
<p style="text-indent: 0px; padding-left: 60px; margin: 0px;">
<p style="text-indent: 0px; padding-left: 60px; margin: 0px;">def paintInterface(painter, option, rect)</p>
<p style="text-indent: 0px; padding-left: 90px; margin: 0px;">painter.save</p>
<p style="text-indent: 0px; padding-left: 90px; margin: 0px;">painter.pen = Qt::Color.new Qt::white</p>
<p style="text-indent: 0px; padding-left: 90px; margin: 0px;">painter.draw_text rect, Qt::AlignVCenter | Qt::AlignHCenter, &#8220;Hello world!&#8221;</p>
<p style="text-indent: 0px; padding-left: 90px; margin: 0px;">painter.restore</p>
<p style="text-indent: 0px; padding-left: 60px; margin: 0px;">end</p>
<p style="text-indent: 0px; padding-left: 30px; margin: 0px;">end</p>
<p style="-qt-block-indent: 0; text-indent: 0px; margin: 0px;">end</p>
</blockquote>
<p style="-qt-paragraph-type: empty; -qt-block-indent: 0; text-indent: 0px; margin: 0px;">
<p style="-qt-block-indent: 10; text-indent: 0px; margin: 10px;">Обратите внимание на одну тонкость:</p>
<p style="-qt-block-indent: 10; text-indent: 0px; margin: 10px;">папка проекта должна совпадать по имени с <em>X-KDE-PluginInfo-Name,</em> а имя модуля должно быть с тем же именем, только с большой буквы.</p>
<p style="-qt-paragraph-type: empty; -qt-block-indent: 0; text-indent: 0px; margin: 0px;">
<p style="-qt-block-indent: 10; text-indent: 0px; margin: 10px;">Ну вот в общем-то и все. Теперь, если нажать F5, запустится выполнение и на экране появится новый плазмоид.</p>
<p style="-qt-block-indent: 10; text-indent: 0px; margin: 10px;">Пока он почти совершенно бесполезен, разве что сигнализирует нам, что все работает и уже можно делать что-то посерьезнее. Но об этом &#8211; в <a href="http://www.keleg.info/programming/plasmoid-ruby-2">следующей статье.</a></p>
<p><!--EndFragment--></p>
]]></content:encoded>
			<wfw:commentRss>http://www.keleg.info/programming/plasmoid-ruby-1/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Задача жизни</title>
		<link>http://www.keleg.info/makeself/%d0%b7%d0%b0%d0%b4%d0%b0%d1%87%d0%b0-%d0%b6%d0%b8%d0%b7%d0%bd%d0%b8</link>
		<comments>http://www.keleg.info/makeself/%d0%b7%d0%b0%d0%b4%d0%b0%d1%87%d0%b0-%d0%b6%d0%b8%d0%b7%d0%bd%d0%b8#comments</comments>
		<pubDate>Tue, 25 Aug 2009 03:30:22 +0000</pubDate>
		<dc:creator>keleg</dc:creator>
				<category><![CDATA[Путь к себе]]></category>
		<category><![CDATA[афоризмы]]></category>

		<guid isPermaLink="false">http://www.keleg.info/?p=146</guid>
		<description><![CDATA[Задача жизни не в том, чтобы быть на стороне большинства, а в том, чтобы жить согласно с внутренним, сознаваемым тобой законом.
(Марк Аврелий)
]]></description>
			<content:encoded><![CDATA[<p class="jstxt"><strong>Задача жизни не в том, чтобы быть на стороне большинства, а в том, чтобы жить согласно с внутренним, сознаваемым тобой законом.<br />
<span style="font-size: xx-small;"><em>(Марк Аврелий)</em></span></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.keleg.info/makeself/%d0%b7%d0%b0%d0%b4%d0%b0%d1%87%d0%b0-%d0%b6%d0%b8%d0%b7%d0%bd%d0%b8/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AnyData ADU-500A под Linux Mandriva 2009.1 KDE 4.2</title>
		<link>http://www.keleg.info/hardsoft/anydata-adu-500a-%d0%bf%d0%be%d0%b4-linux-mandriva-20091-kde-42</link>
		<comments>http://www.keleg.info/hardsoft/anydata-adu-500a-%d0%bf%d0%be%d0%b4-linux-mandriva-20091-kde-42#comments</comments>
		<pubDate>Sun, 12 Jul 2009 12:56:18 +0000</pubDate>
		<dc:creator>keleg</dc:creator>
				<category><![CDATA[Hard&Soft]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.keleg.info/?p=161</guid>
		<description><![CDATA[Линуксоид я очень даже начинающий, потому очень горд тем, что удалось прикрутить к моему Acer One 110  капризный модем  AnyDATA модели ADU-500A
В чем его капризность? Корейские конструкторы для облегчения инсталляции этого модема под Windows сделали внутри него флэшку с драйверами. Он подключается, тут же инсталлирует драйвера, они переключают его в нормальный режим и все работает. [...]]]></description>
			<content:encoded><![CDATA[<p>Линуксоид я очень даже начинающий, потому очень горд тем, что удалось прикрутить к моему Acer One 110  капризный модем  AnyDATA модели ADU-500A</p>
<p>В чем его капризность? Корейские конструкторы для облегчения инсталляции этого модема под Windows сделали внутри него флэшку с драйверами. Он подключается, тут же инсталлирует драйвера, они переключают его в нормальный режим и все работает. Под Windows. А под линуксом фирмовые драйвера, понятно, не запускаются и ничего не переключают. И видит Linux нечто среднее между флэшкой и CD-ROM, к подключению в качестве модема совершенно непригодное.</p>
<p>Итак, что нужно сделать?</p>
<p>Сначала нужна программка, которая переключает модем в нужный режим. Называется она usb_modeswitch и качается с <a href="http://www.draisberghof.de/usb_modeswitch/">http://www.draisberghof.de/usb_modeswitch/</a></p>
<p>На момент написания статьи в официальных репозиториях Мандривы этой программки не было, а из исходников она не собиралась, потому я просто взял из скачанного архива выполнимый модуль и скопировал в /bin</p>
<p>(для чайников типа меня &#8211; чтобы скопировать что-то в эту папку, нужно обладать правами rootа &#8211; суперпользователя. Для этого хорошо бы запустить файловый менеджер под админскими правами. Это делается так &#8211; запускаете консоль и набираете</p>
<p>su -</p>
<p>Вводите пароль, а потом название запускаемой программы</p>
<p>konqueror</p>
<p>В нем уже копируем файл usb_modeswitch в /bin</p>
<p>Теперь нужно создать соединение с интернетом. Запускаем Интернет/KPPP (если нет &#8211; инсталлируем!) и создаем там модем и соединение со своим провайдером. Для меня это BWC, номер телефона для всех SkyLink подобных сетей #777, пароль и имя обычно неважны, для меня это bwc/bwc</p>
<p>Модем нужно подключить на порт /dev/ttyUSB0 (если не пойдет &#8211; возможна другая циферка)</p>
<p>А теперь самое сложное и важное. Переключать модем в правильный режим нужно перед самым соединением, это бесполезно делать, например, при старте системы &#8211; ведь USB-модем может быть еще не подключен! Нужно сначала подключить модем, потом переключиться, а потом уже соединять с Интернетом.</p>
<p>Эту задачу я решил с помощью пакетного файла запуска, его нужно создать в любом редакторе, например KWrite (если вы не закрыли консоль &#8211; запустите его оттуда набрав kwrite)</p>
<p>Наш запускаемый скрипт будет таков. (три строчки! первая, которая здесь в две строки перенеслась &#8211; это одна команда!)</p>
<p>usb_modeswitch -v 05c6 -p 1000 -V 16d5 -P 6502 -m 08 -M 5553424312345678000000000000061b000000020000000000000000000000<br />
sleep 5<br />
kppp -cBWC</p>
<p>Первой командой переключаем режим устройства (выглядит страшно, но работает), потом немного ждем, пока все переключится и соединяем с интернетом по подготовленному соединению. Вместо BWC поставьте имя соединения, которое вы создали.</p>
<p>Сохраните скрипт запуска в файл, например anyconnect.sh. Куда? Я использовал папку /sbin чтоб можно было соединяться с модемом из-под любого пользователя.</p>
<p>Теперь осталась еще одна работка для KWrite &#8211; нужно добавить в файл /etc/modprobe.conf строчку</p>
<p>options usb-storage option_zero_cd=2</p>
<p>Осталось сделать файл запускаемым. Вы еще не закрыли админский konqueror? Щелкните на файле anyconnect.sh правой кнопкой и установите права для запуска!</p>
<p>Ну а теперь можно перетащить ярлык на рабочий стол, чтоб можно было быстро входить в Интернет.</p>
<p>Перезагрузимся, чтоб все изменения вступили в силу.</p>
<p>Теперь подключаем модем, ждем пока он подключится, потом запускаем наш скрипт.</p>
<p>Все <img src='http://www.keleg.info/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>P.S. Есть еще одна фишка  &#8211; при запуске этот модем, может спрашивать PIN-код. Я его давно отключил еще в родной программке для Windows, но если этого не сделать, модем может не подключиться и ничего не спросить. Если вдруг такое произойдет &#8211; проще сходить до знакомого с виндой и отключить. Если же винда далеко, можно выполнить переключение usb в консоли, а kppp запустить как положено, из меню. Народ утверждает, что тогда PIN код спрашивается и под Linux.</p>
<p>P.P.S. Для модемов AnyDATA 520 AnyData 540 все аналогично, кроме, возможно, строки переключения.Если моя не пойдет &#8211; поищите, в гугле &#8220;usb_modeswitch -v 05c6 -p 1000&#8243; для вашего модема</p>
<p>P.P.P.S Последний найденный,наиболее корректный способ  &#8211; найти в репозиториях или через RPMSearch пакет usb_modeswitch и установить его</p>
<p>потом открыть файл /etc/udev/rules.d/91-usb_modeswitch.rules и прописать там параметры</p>
<p>RUN+=&#8221;/usr/sbin/usb_modeswitch -v 05c6 -p 1000 -V 16d5 -P 6502 -m 08 -M 5553424312345678000000000000061b000000020000000000000000000000&#8243;</p>
<p>и устанавливать соединение без всякого kppp через значок в tray-настройка соединения-аналоговый телефонный модем.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.keleg.info/hardsoft/anydata-adu-500a-%d0%bf%d0%be%d0%b4-linux-mandriva-20091-kde-42/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Калькулятор &#8211; блокнот 1.2.1</title>
		<link>http://www.keleg.info/programming/notecalc1_2_1</link>
		<comments>http://www.keleg.info/programming/notecalc1_2_1#comments</comments>
		<pubDate>Mon, 06 Jul 2009 14:34:14 +0000</pubDate>
		<dc:creator>keleg</dc:creator>
				<category><![CDATA[Программирование]]></category>
		<category><![CDATA[notecalc]]></category>

		<guid isPermaLink="false">http://www.keleg.info/?p=154</guid>
		<description><![CDATA[Наконец-то я добрался до парсера выражений и хорошенечко его перелопатил. Оно, конечно, жара за окном, отдыхать нужно &#8211; но я же знаю, что вы меня ждете и в меня верите!
+ Добавлены функции arcsin() arccos() arctan()
+ Теперь тригонометрию можно считать и в градусах (например sin(30d))
+ Появились операции с процентами!
* Точка, разделяющая разряды, теперь меняется на запятую
* [...]]]></description>
			<content:encoded><![CDATA[<p>Наконец-то я добрался до парсера выражений и хорошенечко его перелопатил. Оно, конечно, жара за окном, отдыхать нужно &#8211; но я же знаю, что вы меня ждете и в меня верите!</p>
<p>+ Добавлены функции arcsin() arccos() arctan()<br />
+ Теперь тригонометрию можно считать и в градусах (например sin(30d))<br />
+ Появились операции с процентами!<br />
* Точка, разделяющая разряды, теперь меняется на запятую<br />
* Увеличена вдвое точность вычислений (пока только сложение, вычитание, умножение и деление с процентами)<br />
! NumLock должен теперь переключаться как положено</p>
<p>В ближайшее время обещаю всяческую шестнадцатиричность. Пока же очень прошу потестировать.</p>
<p><a href="http://www.keleg.info/files/notecalc/NoteCalc.application">Установка из IE </a><br />
<a href="http://www.keleg.info/files/notecalc/setup.exe">Установка из других браузеров (скачать и запустить)</a><br />
<a href="http://www.keleg.info/files/notecalc/NoteCalc.zip">Не требующая установки версия (распаковать и запустить)</a></p>
<p><a href="http://www.keleg.info/files/notecalc/NoteCalcSrc.zip">Исходники</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.keleg.info/programming/notecalc1_2_1/feed</wfw:commentRss>
		<slash:comments>104</slash:comments>
		</item>
		<item>
		<title>Счетчик траффика</title>
		<link>http://www.keleg.info/hardsoft/networx</link>
		<comments>http://www.keleg.info/hardsoft/networx#comments</comments>
		<pubDate>Sun, 21 Jun 2009 16:14:34 +0000</pubDate>
		<dc:creator>keleg</dc:creator>
				<category><![CDATA[Hard&Soft]]></category>
		<category><![CDATA[бесплатные программы]]></category>

		<guid isPermaLink="false">http://www.keleg.info/?p=149</guid>
		<description><![CDATA[Когда месяц назад у меня дома появился быстрый интернет (CDMA БайкалВестКом), вплотную встал вопрос о программе-счетчике траффика. План у меня предусматривает только 150 мб интернету в день, дальше дорого, так что приходится считать.
После долгих  поисков бесплатной программы, которая бы работала с моей конфигурацией, был найден без малого шедевр. Встречайте &#8211; SoftPerfect NetWorx!
Программка умеет очень многое. [...]]]></description>
			<content:encoded><![CDATA[<p>Когда месяц назад у меня дома появился быстрый интернет (CDMA БайкалВестКом), вплотную встал вопрос о программе-счетчике траффика. План у меня предусматривает только 150 мб интернету в день, дальше дорого, так что приходится считать.</p>
<p>После долгих  поисков бесплатной программы, которая бы работала с моей конфигурацией, был найден без малого шедевр. Встречайте &#8211; <a href="http://www.softperfect.com/products/networx/" target="_blank">SoftPerfect NetWorx</a>!</p>
<p>Программка умеет очень многое. Кроме измерения траффика и сбора статистики по нему, она следит за ежедневной (в моем случае) квотой, показывает скорость или текущее состояние линии, (прозрачным окном или даже в tray-иконке), показывает список программ, которые сейчас лазят в интернет, есть даже Ping и TraceRoute. Есть макросы, можно, например, если скорость низкая, переподключаться.</p>
<p>За месяц использования замечены только два недостатка. Первый &#8211; английский интерфейс(впрочем, можно поставить <a href="http://msilab.net/rus.5284" target="_blank">русификатор</a>), а второй &#8211; при превышении квоты просто выдается сообщение, хотелось бы в этом случае иметь возможность &#8220;жесткого&#8221; отрубания интернета (вдруг пользователя нет на месте?).</p>
<p>В остальном же программка выше всяких похвал работает! <a href="http://www.softperfect.com/products/networx/" target="_blank">Качайте.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.keleg.info/hardsoft/networx/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Калькулятор-блокнот 1.1.2</title>
		<link>http://www.keleg.info/programming/notecalc11-2</link>
		<comments>http://www.keleg.info/programming/notecalc11-2#comments</comments>
		<pubDate>Sat, 06 Jun 2009 15:31:52 +0000</pubDate>
		<dc:creator>keleg</dc:creator>
				<category><![CDATA[Программирование]]></category>
		<category><![CDATA[notecalc]]></category>

		<guid isPermaLink="false">http://www.keleg.info/?p=142</guid>
		<description><![CDATA[Вышла новая версия, еще раз побеждена непокорная кнопка  
+ Вызов по NumLock
+ Активация NumLock при вызове
Установка из IE 
Установка из других браузеров (скачать и запустить)
Не требующая установки версия (распаковать и запустить)
Исходники
]]></description>
			<content:encoded><![CDATA[<p>Вышла новая версия, еще раз побеждена непокорная кнопка <img src='http://www.keleg.info/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>+ Вызов по NumLock<br />
+ Активация NumLock при вызове</p>
<p><a href="http://www.keleg.info/files/notecalc/NoteCalc.application">Установка из IE </a><br />
<a href="http://www.keleg.info/files/notecalc/setup.exe">Установка из других браузеров (скачать и запустить)</a><br />
<a href="http://www.keleg.info/files/notecalc/NoteCalc.zip">Не требующая установки версия (распаковать и запустить)</a></p>
<p><a href="http://www.keleg.info/files/notecalc/NoteCalcSrc.zip">Исходники</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.keleg.info/programming/notecalc11-2/feed</wfw:commentRss>
		<slash:comments>39</slash:comments>
		</item>
		<item>
		<title>Проповедь</title>
		<link>http://www.keleg.info/makeself/%d0%bf%d1%80%d0%be%d0%bf%d0%be%d0%b2%d0%b5%d0%b4%d1%8c</link>
		<comments>http://www.keleg.info/makeself/%d0%bf%d1%80%d0%be%d0%bf%d0%be%d0%b2%d0%b5%d0%b4%d1%8c#comments</comments>
		<pubDate>Wed, 03 Jun 2009 23:45:53 +0000</pubDate>
		<dc:creator>keleg</dc:creator>
				<category><![CDATA[Путь к себе]]></category>
		<category><![CDATA[афоризмы]]></category>

		<guid isPermaLink="false">http://www.keleg.info/?p=139</guid>
		<description><![CDATA[Проповедью должны быть наши жизни, а не слова.
(Томас Джефферсон)
]]></description>
			<content:encoded><![CDATA[<p class="jstxt"><strong>Проповедью должны быть наши жизни, а не слова.<br />
<span style="font-size: xx-small;"><em>(Томас Джефферсон)</em></span></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.keleg.info/makeself/%d0%bf%d1%80%d0%be%d0%bf%d0%be%d0%b2%d0%b5%d0%b4%d1%8c/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
