<?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>Чудо{вищные} заметки &#187; Uncategorized</title>
	<atom:link href="http://miracle.rpz.name/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://miracle.rpz.name</link>
	<description>Sorry for my terrible english. My native language is PHP.</description>
	<lastBuildDate>Thu, 12 Jan 2012 20:42:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4-alpha-19719</generator>
		<item>
		<title>Adobe AIR и linux</title>
		<link>http://miracle.rpz.name/2010/03/23/adobe-air-and-linux/</link>
		<comments>http://miracle.rpz.name/2010/03/23/adobe-air-and-linux/#comments</comments>
		<pubDate>Tue, 23 Mar 2010 08:22:00 +0000</pubDate>
		<dc:creator>MiRacLe</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://miracle.rpz.name/?p=331</guid>
		<description><![CDATA[Разумеется все заинтересованные уже в курсе, что Adobe AIR уже давно имеется под linux. И так же все давно в курсе, что установить runtime можно на rpm и deb-based дистрибутивы (читай red hat и bubuntu). Остальным приходилось запускать приложения, установив adobe air sdk. И делать это, прямо скажем, было не слишком удобно. Но кой-чего, как [...]]]></description>
			<content:encoded><![CDATA[<p>Разумеется все заинтересованные уже в курсе, что Adobe AIR уже давно имеется под linux. И так же все давно в курсе, что установить runtime можно на rpm и deb-based дистрибутивы (читай red hat и bubuntu).</p>
<p align="center" ><img src="http://miracle.rpz.name/shared/2010/adobe-air-requirements.png" alt="" />
<p>
Остальным <a href="http://forums.adobe.com/thread/23483">приходилось запускать приложения, установив adobe air sdk</a>. И делать это, прямо скажем, было не слишком удобно.</p>
<p>Но кой-чего, как оказалось, сделать всё-таки можно &#8211; можно индусский инсталятор нае^Wобмануть. Можно прикинуться красной шапочкой например.</p>
<p>
<a rel="tn" href="http://miracle.rpz.name/shared/2010/adobe-air-installer.png"><img src="http://miracle.rpz.name/shared/2010/adobe-air-installer-tn.png" alt="" align="right" /></a><br />
И так имеем &#8211; <a href="http://www.slackware.com/changelog/current.php?cpu=i386">Slackware-current</a> (13+),<a href="http://airdownload.adobe.com/air/lin/download/latest/AdobeAIRInstaller.bin"> AdobeAirInstaller </a>и горячее желание всё это заставить работать вместе, без песен и плясок народов крайнего севера.<br />
Нужно создать базу rpm-пакетов и &#8220;установить&#8221; пакеты rpm (и как оказалось ещё gtk2), после чего <strong>air</strong> установится без сучка и задоринки.
</p>
<div style="clear: both;"> </div>
<h3>Как это сделать?</h3>
<pre class="c">rpm --initdb
RPM_VERSION=`rpm --version|awk '{print $3}'`
cat &lt;&lt;ENDSPEC&gt;&gt;rpm.spec
Summary: The RPM package management system
Name: rpm
Version: ${RPM_VERSION}
Release: 1
Group: System Environment/Base
Url: http://www.rpm.org/
License: GPLv2+
BuildArch: noarch
Provides: /bin/sh

%description
The RPM Package Manager.

%files
ENDSPEC

BUILD=`rpmbuild -ba rpm.spec|grep 'noarch.rpm'|awk '{print $2}'`

rpm -ivh $BUILD

GTK2_VERSION=`gtk-query-immodules-2.0|grep 'Created by'|awk '{print $6}'|sed 's/gtk+-//'`

cat &lt;&lt;ENDSPEC&gt;&gt;gtk2.spec
Summary: The GIMP ToolKit (GTK+), a library for creating GUIs for X
Name: gtk2
Version: ${GTK2_VERSION}
Release: 1
License: LGPLv2+
Group: System Environment/Libraries

%description
GTK+ is a multi-platform toolkit for creating GUI.

%files
ENDSPEC

BUILD=`rpmbuild -ba gtk2.spec|grep 'i386.rpm'|awk '{print $2}'`

rpm -ivh $BUILD
</pre>
<p>Выполнив этот нехитрый скрипт под рутом, можете запускать инсталятор &#8211; спросив пароль рута, он безропотно установится.</p>
<p>Думаю этот метод подойдёт для любого дистрибутива, про который не слыхом не слыхивали &#8220;специалисты&#8221; из адоба.</p>
<p><a rel="tn" href="http://miracle.rpz.name/shared/2010/adobe-air-installer-root.png"><img src="http://miracle.rpz.name/shared/2010/adobe-air-installer-root-tn.png" alt="" align="right" /></a><br />
<strong>P.S.</strong><br />
Единственное что &#8211; при установке приложений инсталятор спрашивает пароль root-а. Нет, не sudo, а именно su&#8230; Я не знаю ведёт ли он себя так же на &#8220;родных&#8221; для себя дистрибутивах, но мне это жутко не нравится&#8230; В остальном всё работает хорошо &#8211; приложения устанавливаются из браузера, иконки в меню и т.п.</p>
]]></content:encoded>
			<wfw:commentRss>http://miracle.rpz.name/2010/03/23/adobe-air-and-linux/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Рубиновые плазмоиды</title>
		<link>http://miracle.rpz.name/2009/09/10/ruby-plasmoids/</link>
		<comments>http://miracle.rpz.name/2009/09/10/ruby-plasmoids/#comments</comments>
		<pubDate>Wed, 09 Sep 2009 20:42:02 +0000</pubDate>
		<dc:creator>MiRacLe</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[kde]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://miracle.rpz.name/?p=248</guid>
		<description><![CDATA[Как уже рассказывал, совершил я страшный грех &#8211; перестал пользоваться виндой. В качестве рабочего стола теперь у меня KDE4. Красоты неописуемой, удобством не обделённый, загляденье, да и только. И всё вроде хорошо, но есть часть рутины, которая довольно привычна была на виндовом экране, но на linux её терпеть прямо нет никакого желания. Одним из примеров [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://miracle.rpz.name/shared/2009/rcontrol-qt.png" alt="qt-интерфейс" align="right" />Как уже рассказывал, совершил я страшный грех &#8211; перестал пользоваться виндой. В качестве рабочего стола теперь у меня KDE4. Красоты неописуемой, удобством не обделённый, загляденье, да и только. И всё вроде хорошо, но есть часть рутины, которая довольно привычна была на виндовом экране, но на linux её терпеть прямо нет никакого желания. Одним из примеров такой рутины был запуск rdp и radmin клиентов, если с первым под виндой ещё более-менее можно сладить (он хотя бы хранит учётные записи и настройки), то второй даже пароль сохранять не умеет.<br />
Обычно всякие вспомогательные программки делаются на php, но не в этот раз &#8211; уж коль скоро захотелось запускать что-то с окошками, захотелось и свою облечь в какой-нибудь приличный вид. <a href="http://gtk.php.net/">php-gtk</a> был отвергнут сразу (ну не нравится мне gtk-ный интерфейс, не нравится и всё тут). Решил сделать на Qt4 &#8211; благо информации в интернете по данной теме <a href="http://symmetrica.net/qt4/">полно</a>.<span id="more-248"></span><br />
А по скольку рабочего биндинга php к qt обнаружить сходу не удалось, то делать стал на ruby. Собственно делов было на несколько часов, с учётом того что ранее сталкиваться со всем этим не приходилось считаю что результат себя нашёл очень быстро. Форму накидал в qt-designer, полчаса гугления на предмет нужных библиотек для ruby и собственно сборки биндинга ruby-qt и вот уже виден первый результат. Полдня радости и счастья сменяются унынием &#8211; хороша программка, да вот мешается под руками. Ещё чуть-чуть гугления и вот она уже спрятана в трей. Ещё немного и она после восстановления из трея занимает прежнее положение. И вот вроде всё хорошо, только вот в таскбаре мешается. Искал-искал, но как его оттуда убрать не нашёл. Нет мне покоя.</p>
<p>И тут мой взгляд упал на <a href="http://ru.wikipedia.org/wiki/Plasma">плазмоиды</a>, разбросанные по рабочему столу.<br />
<em>К слову сказать о рабочем столе &#8211; работая на винде я всегда отключал показ ярлыков на рабочем столе &#8211; доступ к ним неудобный, а порядок поддерживать сложно. Но вот с появлением kde4 я своё мнение о рабочем столе сильно поменял &#8211; теперь мне совершенно очевидно, что рабочий стол это тоже &#8220;инструмент&#8221;, а не просто самое верхнее окно&#8230;</em></p>
<p><a rel="tn" href="http://miracle.rpz.name/shared/2009/workspace-plasma.png"><img src="http://miracle.rpz.name/shared/2009/rcontrol-plasma.png" alt="plasmoid" align="right" /></a>Так вот, плазмоиды&#8230; это такие махонькие приложения, разбросанные по пространству рабочего стола (плазмы). Какой-то показывает список файлов в директории, какой-то лог, какой-то последние rss-записи. И все они работают, и нет их в таскбаре, нет их в трее, и всегда они под рукой&#8230;<br />
И захотелось мне сделать такой вот плазмоид самому. И захотелось сделать его как ни странно на ruby.</p>
<p>Я в принципе ожидал, что всё более чем просто и сконвертировать qt-ный интерфейс в plasmoid будет проще простого, но всё оказалось несколько сложнее и запутанней. Первое с чем пришлось столкнуться &#8211; все примеры, найденные в этих ваших интернетах безнадёжно устарели. На запуск &#8220;hello world&#8221; ушло несколько дней. Но формула счастья была в итоге найдена. Готовый к употреблению plasmoid это zip-архив в корне которого находится desktop-файл и директория contents.</p>
<p>Первое что надо сделать, когда создаётся plasmoid &#8211; файл metadata.desktop с описанием вашей будущей программы.</p>
<pre class="php">[Desktop Entry]
Name=Mega Plasmoid
Comment=Super-puper tool
Type=Service
ServiceTypes=Plasma/Applet
X-KDE-PluginInfo-Author=MiRacLe
X-KDE-PluginInfo-Email=miracle@rpz.name
X-KDE-PluginInfo-Name=megatool
X-KDE-PluginInfo-Version=0.1
X-KDE-PluginInfo-Website=http://miracle.rpz.name/
X-KDE-PluginInfo-Category=Examples
X-KDE-PluginInfo-Depends=
X-KDE-PluginInfo-License=GPL
X-KDE-PluginInfo-EnabledByDefault=true
X-Plasma-API=ruby-script
X-Plasma-MainScript=code/main.rb</pre>
<p>Две последние строки &#8211; то, чего в мануалах не сыщешь, то ради чего был перекопаны мегабайты бесполезных копипастов по всей сети, то ради чего пишется эта чудо{вищная} заметка.<br />
Далее рядом с этим файлом создаём директорию contents, в которой и будет всё содержимое будущей программы.</p>
<p>Сборка и просмотр полученного результата проходит быстрее, если сделать подобный скриптик:</p>
<pre class="php">#!/bin/sh
plasmapkg -r megaplasmoid #удаляю уже установленный плазмоид из системы
rm megaplasmoid.plasmoid # и туда же его исходник
cd megaplasmoid #в директорию с исходным кодом
zip -r ../megaplasmoid.plasmoid * # пакую новый плазмоид
plasmapkg -i ../megaplasmoid # устанавливаю его
plasmoidviewer megaplasmoid # и тут же хочу на него, красавца, посмотреть</pre>
<p>Всё приготовления закончены и можно приступить непосредственно к коду. Его следует поместить туда, куда описали в metadata.desktop &#8211; в файл main.rb в директории code. В простейшем случае он будет выглядеть примерно так:</p>
<pre class="ruby">require 'plasma_applet'
module  Megaplasmoid
  class Main &lt; PlasmaScripting::Applet
    def initialize(parent, args = nil)
      super
    end
    def init
      @mainlayout = Qt::GraphicsLinearLayout.new Qt::Vertical, self
      layout = @mainlayout
      self.layout = layout
    end
  end
end</pre>
<p>После того,  как это всё-таки запустилось, эйфория от полученного результата прошла, настала пора собственно перенести код, написанный под qt. Как оказалось &#8220;перенести&#8221; волшебным нажатием чего-нибудь оказалось невозможным, и визуальную часть пришлось делать заново, вооружившись <a href="http://api.kde.org/4.x-api/kdelibs-apidocs/plasma/html/annotated.html">api</a> и скудными (и устаревшими) <a href="http://www.kdedevelopers.org/node/3560">примерами</a>. Был несколько пересмотрен интерфейс, и остались в нём только два combobox-а (где делать и что делать) и собственно та самая кнопка, о которой так много говорили большевики.</p>
<p>Конечно же запуском radmin и rdesktop дело не ограничилось, штука постепенно обрастает всяческими фичами &#8211; ибо нет предела совершенству. Помимо запуска всяческих утилит к делу уже пришит <a href="http://wiki.openqa.org/display/WTR/FireWatir">watir</a>, <a href="https://trac.luon.net/ruby-dbus/">d-bus</a> и ещё много всего интересного, но об этом в следующих сериях.</p>
]]></content:encoded>
			<wfw:commentRss>http://miracle.rpz.name/2009/09/10/ruby-plasmoids/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Y2K38</title>
		<link>http://miracle.rpz.name/2008/02/27/y2k38/</link>
		<comments>http://miracle.rpz.name/2008/02/27/y2k38/#comments</comments>
		<pubDate>Wed, 27 Feb 2008 20:53:55 +0000</pubDate>
		<dc:creator>MiRacLe</dc:creator>
				<category><![CDATA[DailyWTF]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[date]]></category>

		<guid isPermaLink="false">http://miracle.rpz.name/?p=100</guid>
		<description><![CDATA[Ожидаемый коллапс электронного пространства в y2k так и не состоялся, а следующий намечен на далёкий 2038-ой год. Но такой ли он далёкий? Буквально сегодня пришлось столкнуться лицом к лицу с нависшей над миром угрозой. В разрабатываемой системе все манипуляции с датами проводились через преобразование в unix timestamp и последующим его форматированием штатными средствами php (strtotime, [...]]]></description>
			<content:encoded><![CDATA[<div>
Ожидаемый <a href="http://bash.org.ru/quote/395081">коллапс</a> электронного пространства в y2k так и не состоялся, а следующий намечен на далёкий <a href="http://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D0%B0_2038_%D0%B3%D0%BE%D0%B4%D0%B0">2038</a>-ой год.<br />
Но такой ли он далёкий? Буквально сегодня пришлось столкнуться лицом к лицу с нависшей над миром угрозой.</div>
<div>
В разрабатываемой системе все манипуляции с датами проводились через преобразование в <a href="http://ru.wikipedia.org/wiki/Unix_timestamp">unix timestamp</a> и последующим его форматированием штатными средствами php (<a href="http://php.net/strtotime">strtotime</a>, <a href="http://php.net/mktime">mktime</a>, <a href="http://php.net/strftime">strftime</a>, <a href="http://php.net/date">date</a>) и вся эта хрупкая конструкция разлетелась, когда вдруг возникла дата 01.01.2059. Нет, это не сумашедшие бета-тестеры и не опечатка &#8211; это оказался срок <span style="text-decoration: line-through;">годности пива</span> действия паспорта. Казалось выхода нет и человеку надо будет менять паспорт, но решение всё же нашлось: <a href="http://phplens.com/phpeverywhere/adodb_date_library">ADOdb Date Time Library</a> &#8211; старенькая библиотечка на чистом php, которая позволит вам жить счастливо даже после официального окончания unix-эпохи.</div>
<div>
Какие ещё беды настрадал нам Предсказамус?</div>
<p><strong>Update:</strong> во какую <a href="http://code.google.com/p/y2038/">штуку</a> нашёл, надо бы донести это знание до тех, кому не безразлично&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://miracle.rpz.name/2008/02/27/y2k38/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>phing.tasks.ext.SvnExportRevisionDiffTask</title>
		<link>http://miracle.rpz.name/2008/02/25/phing-ftp-deploy-from-subversion/</link>
		<comments>http://miracle.rpz.name/2008/02/25/phing-ftp-deploy-from-subversion/#comments</comments>
		<pubDate>Mon, 25 Feb 2008 17:38:25 +0000</pubDate>
		<dc:creator>MiRacLe</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[deploy]]></category>
		<category><![CDATA[phing]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://miracle.rpz.name/?p=99</guid>
		<description><![CDATA[В последнее время в посещаемых мною форумах и конференциях часто всплывает тема деплоя php-приложений на production-сервер. Я решил поделиться собственным рецептом. В распоряжении имеется: svn-репозитарий с проектом. ftp-доступ к рабочему серверу. установленный и готовый к тяжёлой рутине phing Сценарий работ следующий: Сделать экспорт кода из svn Подготовить его к загрузке (например убрать комментарии, &#8220;склеить&#8221; мелкие [...]]]></description>
			<content:encoded><![CDATA[<p>В последнее время в посещаемых мною форумах и конференциях часто всплывает тема деплоя php-приложений на production-сервер. Я решил поделиться собственным рецептом.</p>
<p>В распоряжении имеется:</p>
<ol>
<li>svn-репозитарий с проектом.</li>
<li>ftp-доступ к рабочему серверу.</li>
<li>установленный и готовый к тяжёлой рутине <a href="http://phing.info">phing</a>
</li>
</ol>
<p>Сценарий работ следующий:</p>
<ol>
<li>Сделать экспорт кода из svn</li>
<li>Подготовить его к загрузке (например убрать комментарии, &#8220;склеить&#8221; мелкие в один большой, удалить лишнее и т.п.)</li>
<li>Проверить на наличие ошибок (они могли попасть в репозитарий или образоваться на предыдущем шаге)</li>
<li>Закачать полученное на рабочий сервер.
</li>
</ol>
<p>Всё вроде бы просто, но смущает один момент &#8211; экспорт всего и вся. Со времени последнего обновления на сервере в репозитарии обновились 3 файла, а экспортировать нужно всё? Никак нет! Экспортировать будем только то, что изменилось. То есть первый шаг сценария будет выглядеть так:</p>
<ol>
<li>Получить последнюю версию проекта на сервере &#8211; <i>RevFrom</i></li>
<li>Получить последнюю версию проекта в репозитарии &#8211; <i>RevTo</i>
</li>
<li>Экспортировать файлы, которые изменились или добавились c <i>RevFrom</i> до <i>RevTo</i>
</li>
</ol>
<p>Версию рабочего проекта, не мудрствуя лукаво, предлагаю хранить в текстовом файле. Например revision.txt. Версию проекта в репозитарии поможет узнать SvnLastRevisionTask. Неясным остался лишь момент &#8211; каким образом выяснить какие файлы изменились. Те, кто пользовались TortoiseSVN наверняка знают о чудесной его возможности &#8211; сравнить две ревизии и экспортировать &#8220;разницу&#8221;. Но svn в чистом виде такой возможности не предоставляет. Так что пришлось немного поработать.<br />
<span id="more-99"></span><br />
Результатом работы стал класс &#8211; <a href="http://miracle.rpz.name/shared/phing/SvnExportRevisionDiffTask.html">SvnExportRevisionDiffTask</a> Принцип его работы таков: получаю список файлов для каждой ревизии в виде xml, потом эти списки сравниваются на предмет изменившихся или добавленных файлов. Список получается путём вызова svn, т.к. более удобного способа не нашлось.</p>
<p>Закачивать файлы будем посредством task-а, который я опубликовал ранее &#8211; <a href="http://miracle.rpz.name/2007/11/15/phing-ftpupload-task/">FtpUploadTask</a>.</p>
<p>Ну вот все вроде бы в сборе и можно приступать с сборке: раскладываем php-классы в соответствующие места, берём файл example.xml</p>
<pre class="xml:nocontrols">
&lt;?xml&nbsp;version=&#39;1.0&#39;?&gt;
&lt;project&nbsp;name=&#39;Deploy&#39;&nbsp;default=&#39;build&#39;&nbsp;basedir=&#39;./&#39;&nbsp;description=&#39;Demo&nbsp;phing-ftp-deploy&#39;&gt;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;target&nbsp;name=&#39;propset&#39;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#39;projectUrl&#39;&nbsp;value=&#39;http://example.com/project_root/&#39;&nbsp;/&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#39;revisionFile&#39;&nbsp;value=&#39;revision.txt&#39;&nbsp;/&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;projectlastrev&nbsp;url=&#39;${projectUrl}&#39;&nbsp;revisionFile=&#39;${revisionFile}&#39;&nbsp;propertyName=&#39;fromrev&#39;&nbsp;/&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#39;svnroot&#39;&nbsp;value=&#39;http://svn.example.com/project/branches/stable/&#39;&nbsp;/&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#39;svnuser&#39;&nbsp;value=&#39;joe&#39;&nbsp;/&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#39;svnpassword&#39;&nbsp;value=&#39;s3cre7&#39;&nbsp;/&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#39;outputdir&#39;&nbsp;value=&#39;project-temp&#39;&nbsp;/&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;svnlastrevision&nbsp;username=&#39;${svnuser}&#39;&nbsp;password=&#39;${svnpassword}&#39;&nbsp;repositoryurl=&#39;${svnroot}&#39;&nbsp;propertyName=&#39;torev&#39;&nbsp;/&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#39;hostname&#39;&nbsp;value=&#39;ftp.example.com&#39;&nbsp;/&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#39;user&#39;&nbsp;value=&#39;ftpuser@example.com&#39;&nbsp;/&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#39;passwd&#39;&nbsp;value=&#39;s3cr3tk3y&#39;&nbsp;/&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#39;dstdir&#39;&nbsp;value=&#39;project_root&#39;&nbsp;/&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name=&#39;overwrite&#39;&nbsp;value=&#39;true&#39;&nbsp;/&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/target&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;target&nbsp;name=&#39;build&#39;&nbsp;depends=&#39;propset,diff,lint&#39;&gt;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ftpupload&nbsp;host=&#39;${hostname}&#39;&nbsp;username=&#39;${user}&#39;&nbsp;password=&#39;${passwd}&#39;&nbsp;targetDir=&#39;${dstdir}&#39;&nbsp;mode=&#39;bin&#39;&nbsp;overwriteExisten=&#39;${overwrite}&#39;&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;fileset&nbsp;dir=&#39;${outputdir}&#39;&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;include&nbsp;name=&#39;**&#39;&nbsp;/&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;exclude&nbsp;name=&#39;config.php.dist&#39;&nbsp;/&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;exclude&nbsp;name=&#39;examples/**&#39;&nbsp;/&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/fileset&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/ftpupload&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/target&gt;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;target&nbsp;name=&#39;diff&#39;&nbsp;depends=&#39;propset&#39;&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;delete&nbsp;includeemptydirs=&#39;true&#39;&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;сначала&nbsp;очистить&nbsp;директорию,&nbsp;в&nbsp;которую&nbsp;будут&nbsp;экспортироваться&nbsp;файлы&nbsp;--&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;fileset&nbsp;dir=&#39;.&#39;&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;include&nbsp;name=&#39;${outputdir}/**&#39;&nbsp;/&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/fileset&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/delete&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;mkdir&nbsp;dir=&#39;${outputdir}&#39;&nbsp;/&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;сохранить&nbsp;номер&nbsp;текущей&nbsp;ревизии&nbsp;в&nbsp;файл&nbsp;--&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;echo&nbsp;file=&#39;${outputdir}/${revisionFile}&#39;&nbsp;message=&#39;${torev}&#39;&nbsp;/&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;экспортировать&nbsp;нужные&nbsp;файлы&nbsp;--&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;svndiff&nbsp;toDir=&#39;${outputdir}&#39;&nbsp;svnpath=&#39;/usr/local/subversion/bin/svn&#39;&nbsp;fromRevision=&#39;${fromrev}&#39;&nbsp;toRevision=&#39;${torev}&#39;&nbsp;force=&#39;true&#39;&nbsp;username=&#39;${svnuser}&#39;&nbsp;password=&#39;${svnpassword}&#39;&nbsp;repositoryurl=&#39;${svnroot}&#39;&nbsp;/&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/target&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;target&nbsp;name=&#39;lint&#39;&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;phplint&nbsp;haltOnFailure=&#39;true&#39;&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;fileset&nbsp;dir=&#39;${outputdir}&#39;&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;include&nbsp;name=&#39;**/*.php&#39;/&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;файлы&nbsp;в&nbsp;pear::php_compat&nbsp;проверять&nbsp;в&nbsp;php5&nbsp;не&nbsp;надо&nbsp;--&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;exclude&nbsp;name=&#39;**/Php/Compat/**/*.php&#39;&nbsp;/&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/fileset&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/phplint&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;jslint&nbsp;haltOnFailure=&#39;true&#39;&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;fileset&nbsp;dir=&#39;${outputdir}&#39;&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;include&nbsp;name=&#39;**/*.js&#39;/&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/fileset&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/jslint&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/target&gt;
&lt;/project&gt;
</pre>
<p>Открываем консоль, набираем <b>phing -f example.xml </b> и смотрим как вашу работу выполняет за вас бездушная машина&#8230; </p>
<blockquote><p>
Кстати говоря, эту задачу можно запускать не только вручную, но и например с помощью post-commit hook-а на репозитарии&#8230;
</p></blockquote>
<p>
Данный сценарий не затрагивает изменений в БД и позволяет синхронизировать только файлы, но и это, согласитесь, уже кое-что. А быть может у вас есть идеи, как обновить БД?</p>
]]></content:encoded>
			<wfw:commentRss>http://miracle.rpz.name/2008/02/25/phing-ftp-deploy-from-subversion/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Gmail. Кодировка</title>
		<link>http://miracle.rpz.name/2006/02/20/gmail-utf8/</link>
		<comments>http://miracle.rpz.name/2006/02/20/gmail-utf8/#comments</comments>
		<pubDate>Mon, 20 Feb 2006 15:17:43 +0000</pubDate>
		<dc:creator>MiRacLe</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://miracle.rpz.name/?p=24</guid>
		<description><![CDATA[Прочёл и передаю другому. Уважаемые пользователи Gmail! У меня к вам будет очень большая просьба. Пожалуйста, не поленитесь зайти в настройки этой замечательной системы (ссылочка “Settings” в правом верхнем углу страницы) и прямо на первой же странице этих настроек переставьте переключатель “Outgoing message encoding” вот таким образом: Это совсем не трудно, уверяю вас. Вы сами [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://david-m.livejournal.com/874821.html">Прочёл и передаю другому.</a></p>
<p><img src="http://hiero.ru/David/files/Mix2lj/gmail-logo.png" align="right" border="0" height="45" width="143" />Уважаемые пользователи Gmail! У меня к вам будет очень большая просьба. Пожалуйста, не поленитесь зайти в настройки этой замечательной системы (ссылочка “Settings” в правом верхнем углу страницы) и прямо на первой же странице этих настроек переставьте переключатель “Outgoing message encoding” вот таким образом:</p>
<div><img src="http://hiero.ru/David/files/Mix2lj/gmail-utf.png" border="0" height="82" width="558" /></div>
<p>
<p>Это совсем не трудно, уверяю вас. Вы сами и ваши адресаты ничего не заметите. Зато те, кто читает письма от вас в других почтовых клиентах, будут навсегда избавлены от такого вот зрелища:</p>
<p>
<div><img src="http://hiero.ru/David/files/Mix2lj/gmail1.png" border="0" height="190" width="450" /></div>
<p>
<p>Ведь правда же — хорошо, когда ваш адресат может просто взять и прочесть ваше письмо? Не искать перекодировщики, не писать в ответ “Vasya, blin, pishi translitom!”, <i>а просто взять и почитать™</i>.</p>
<p><b>Давайте сделаем мир прозрачнее и совместимее!</b></p>
<p>Technorati Tags: <a href="http://technorati.com/tag/gmail" rel="tag">gmail</a>, <a href="http://technorati.com/tag/flashmob" rel="tag">flashmob</a></p>
]]></content:encoded>
			<wfw:commentRss>http://miracle.rpz.name/2006/02/20/gmail-utf8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>год уходит, год проходит, время движется вперёд&#8230;</title>
		<link>http://miracle.rpz.name/2005/12/28/itogo/</link>
		<comments>http://miracle.rpz.name/2005/12/28/itogo/#comments</comments>
		<pubDate>Wed, 28 Dec 2005 12:54:29 +0000</pubDate>
		<dc:creator>MiRacLe</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://miracle.rpz.name/?p=18</guid>
		<description><![CDATA[Итоги ушедшего(2005-го) года&#8230; Что же он мне принёс&#8230; это год&#8230; А принёс он много всего нового и интересного&#8230; в целом очень неплохо прожит целый год юношеской жизни&#8230; Касательно рабоче-крестьяского простраства:в номинации &#8220;Win32::Программа года&#8221; лидирующие места занимают Firefox и notepad++, первый не сходит со своей позиции уже 3 года (ещё с тех времен, когда он величал [...]]]></description>
			<content:encoded><![CDATA[<p>Итоги ушедшего(2005-го) года&#8230;<br />
Что же он мне принёс&#8230; это год&#8230; А принёс<br />
он много всего нового и интересного&#8230; в целом очень неплохо прожит<br />
целый год юношеской жизни&#8230;<br />
Касательно рабоче-крестьяского простраства:в номинации <b>&#8220;Win32::Программа года&#8221;</b> лидирующие места занимают <a href="http://www.mozilla.com/firefox/">Firefox</a> и <a href="http://notepad-plus.sourceforge.net/">notepad++</a>, первый не сходит со своей позиции уже 3 года (ещё с тех времен, когда он величал себя FireBird), а второй &#8211; стал спутником <strike>жизни</strike><br />
работы в нынешнем году и с тех пор находиться в запущенном состоянии в<br />
течении 98% времени uptime-а &#8211; безумно удобный, легкий и шустрый<br />
редактор.</p>
<p>в номинации <b>&#8220;Win32::разочарование года&#8221;</b> (не считая самого win32 ;o) ) попал <a href="http://phpedit.net/">phpEdit</a><br />
- раньше я считал, что более удобного редактора php-кода просто не<br />
существует в этой галактике, видимо это заблуждение мне закрывало глаза<br />
на его безмерную глючность, тормознутость и неповоротливость&#8230; отныне<br />
он &#8220;фтопке&#8221;&#8230;</p>
<p><b>&#8220;Software::Загадка года&#8221;</b> &#8211; так и не хватило <strike>времени</strike> смелости изучить <a href="http://eclipse.org/">Eclipse</a> &#8211; сколько раз ни брался, ни устанавливал всякого рода плагины &#8211; не нравиться и всё тут. По медлительности он чуть быстрее чем <a href="http://zend.com/store/products/zend-studio/">ZendStudio</a>,<br />
а вот по функционалу ни TruStudio, ни phpeclipse даже не дышат в пупок<br />
(да тут возможно сказывается неумение правильно готовить кошек, поэтому<br />
он и не попал в номинацию &#8220;Хреновина года&#8221;)</p>
<p><b>&#8220;Dev::Свершения года&#8221;</b></p>
<ul>
<li>дошли руки до <a href="http://smarty.php.net/">smarty</a> &#8211; жалею только об одном &#8211; почему не дошли раньше</li>
<li><a href="http://php.net/ldap">ldap</a> &#8211; интегрируемся с AD &#8211; как всегда всё оказалось проще, чем казалось&#8230;</li>
<li>ajax, xmlhttprequest и вообще JS в целом. &#8220;Если не мы, то кто построит web2.0?&#8221; © кто-то из O`Reilly</li>
<li>SOAP,XOAP,REST,ATOM и ещё куча непонятных аббревиатур &#8211; строим <strike>новый мир</strike> web-сервисы своими руками &#8211; оказалось это не только просто, но и очень удобно, полезно<strike> и круто ;o) </strike></li>
<li>UnitTest-ы&#8230; <a href="http://www.lastcraft.com/simple_test.php">SimpleTest</a> открыл мне глаза на <strike>мир</strike> на процесс разработки, но за это я благодарю не <a href="http://www.lastcraft.com/about.php" title="Marcus Baker">Marcus-а</a>,а <a href="http://www.livejournal.com/users/demiurg/" title="Demiurg">demiurg-а</a> c его <a href="http://dev.e-taller.net/simpletestxul/">SimpleTestXul</a> &#8211; во истину:  <strike>имидж всё</strike> встречают по одёжке&#8230;</li>
<li>туда же можно сказать о <a href="http://selenium.thoughtworks.com/">selenium</a> &#8211; тестировать интерфейсы стало проще&#8230;</li>
</ul>
<p><b>&#8220;Dev::Непознанное&#8221;</b></p>
<ul>
<li><a href="http://php.net/sqlite">SQLite</a> &#8211; так и не удалось пощупать</li>
<li><a href="http://www.mozilla.org/catalog/architecture/xul/">XUL</a> &#8211; вроде уже начал&#8230; но попал в цейтнот и забросил&#8230; обязательно вернусь&#8230;</li>
<li>cvs,svn<br />
и еже с ними &#8211; тут видимо не время, тут скорее мозга не хватает<br />
разобраться и сил &#8211; заставить коллег править не файлы в расшаренной<br />
директории, а локальные копии стянутые из репозитария.</li>
</ul>
<p><b>&#8220;Unix::Нововведения&#8221;</b></p>
<ul>
<li>теперь статику отдаёт шустрый и лёгкий <a href="http://sysoev.ru/ngnix/">ngnix</a>, а загруженный по самые помидоры apache</li>
<li>slack-а теперь полноценный член домена &#8211; дошли руки до настройки <a href="http://www.samba.org/samba/docs/man/manpages-3/winbindd.8.html">winbindd-а</a>, настройки <a href="http://www.kernel.org/pub/linux/libs/pam/modules.html">pam</a> в <a href="http://slackware.com/">slackware</a> &#8211; мелочь&#8230; а как удобно стало&#8230;</li>
<li>apache теперь крутит три разных версии php (на разных ip, через обвязку из IfDefine в httpd.conf)</li>
<li>Проекты теперь инкрементно бэкапятся с помощью <a href="http://www.opennet.ru/dev/fsbackup/">fsbackup</a></li>
</ul>
<p>в <b>&#8220;Unix::Непознанное&#8221;</b> попали snmp и chroot(jail в 2.6) &#8211; это будет стартовой темой грядущего года.</p>
<p><b>&#8220;Web::Открытия года&#8221;</b></p>
<ul>
<li>RSS&#8230;<br />
т.е. конечно открыли его не вчера&#8230; но буквально год назад и читать-то<br />
было нечего(хотя в этом была и прелесть &#8211; сейчас читать всё я уже не<br />
успеваю ;o) )</li>
<li><a href="http://del.icio.us/MiRacLe">del.icio.us</a> &#8211; <a href="http://ru.wikipedia.org/wiki/%D0%A4%D0%BE%D0%BB%D0%BA%D1%81%D0%BE%D0%BD%D0%BE%D0%BC%D0%B8%D1%8F">фолксономия</a> <strike>стала</strike> становится двигателем интернета(и поиска в нём)</li>
<li></li>
<li>ну <a href="http://gmail.com/">Gmail</a>, куда ж без него&#8230;</li>
<li><a href="http://ru.wikipedia.org/wiki/Wiki">wiki</a> вообще и <a href="http://wackowiki.com/">wackowiki</a> в частности &#8211; сама идея заслуживает всяческих похвал &#8211; не я делаю сайт для людей &#8211; а люди для людей&#8230;</li>
<li>Блоги, блогосфера.. и всё что с ними связано &#8211; эра &#8220;хомяков&#8221; ушла догонять <a href="http://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D0%B7%D0%BE%D0%B7%D0%BE%D0%B9">мезозой</a>, на её место пришли lj,blogger&#8230; etc</li>
</ul>
<p>и немного о другом&#8230;</p>
<p><b>&#8220;Музыка года&#8221;</b></p>
<p>тут бесспорный лидер &#8211; <a href="http://factorstraha.ru/">&#8220;Фактор Страха&#8221;</a><br />
- всем поклонникам действительно тяжёлой музыки(действительно музыки),<br />
которых утомили надрывы Кипелова и компании, рекомендую к<br />
прослушиванию&#8230; Вторым праздником на музыкальном календаре готов считать группу  <a href="http://dergat.ru/">Дёргать&#8221;</a> (сайт паршивый знаю ;o) , но ska-punk у них удачный). <a href="http://tarakany.ru/">&#8220;Тараканы&#8221;</a> были, есть и будут есть&#8230; Не музыка&#8230; но тоже mp3 <img src='http://miracle.rpz.name/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  &#8211; <a href="http://www.mds.ru/">&#8220;Модель для сборки&#8221;</a> &#8211; кто знает, тот знает, кто не знает &#8211; тому и не надо <img src='http://miracle.rpz.name/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><b>&#8220;life::Разочарование года&#8221;</b></p>
<p>Время&#8230;его<br />
становиться все меньше и меньше (как в рекламе бочкарёва), собственное<br />
состояния тела и мозга &#8211; и то и другое расплылось ;o), финансы&#8230;<br />
&#8220;бьюсь как рыба, а денег не надыбал&#8221;&#8230; увеличение зряплаты почему-то<br />
не пропорционально росту расходов&#8230;. в общем нет в жизни счастья -<br />
есть только эфедрины</p>
<p><b>Книги</b>&#8230; офигеть&#8230; я<br />
вновь начал читать&#8230; и не просто книжки про linux-уних-компутер&#8230; а<br />
вполне себе художественные книжки&#8230; сам не знаю как вдруг стало<br />
хватать времени на чтение, но рад этому безмерно&#8230; глядя на одного<br />
знакомого, который не может связать двух слов в предложение&#8230; я<br />
улыбаюсь и думаю &#8211; &#8220;почитать бы тебе колобка&#8230;&#8221; &#8211; Нынче словарный<br />
запас можно пополнить только из книжек &#8211; интернет, каким бы обширным он<br />
не был, старается быть проще&#8230; и как следствие &#8220;туповатее&#8221;&#8230;</p>
<p>И<br />
ещё много всего можно писать&#8230; (а может позже и напишу)&#8230; А сейчас<br />
хватит&#8230; уходящий год неплох, но буду греть в себе надежду на то, что<br />
грядущий принесёт много нового и интересного&#8230; за сим прощаюсь&#8230; вы<br />
смотрели телепедерачу &#8220;Как я провел лето&#8221; на волнах модемного радио<br />
&#8220;Disconnect 32kbs&#8221;&#8230;</p>
<p>Technorati Tags: <a href="http://technorati.com/tag/%D0%BB%D1%8B%D1%82%D0%B4%D1%8B%D0%B1%D1%80" rel="tag">лытдыбр</a></p>
]]></content:encoded>
			<wfw:commentRss>http://miracle.rpz.name/2005/12/28/itogo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Served from: miracle.rpz.name @ 2012-02-10 05:50:33 by W3 Total Cache -->
