<?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>.wpal &#187; программирование</title>
	<atom:link href="http://blog.web2.com.ua/category/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.web2.com.ua</link>
	<description>web, programming and linux</description>
	<lastBuildDate>Fri, 20 May 2011 13:29:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>Как всё медленно!</title>
		<link>http://blog.web2.com.ua/2011/05/20/kak-vsyo-medlenno/</link>
		<comments>http://blog.web2.com.ua/2011/05/20/kak-vsyo-medlenno/#comments</comments>
		<pubDate>Fri, 20 May 2011 13:29:04 +0000</pubDate>
		<dc:creator>wert2all</dc:creator>
				<category><![CDATA[google]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[интернет]]></category>
		<category><![CDATA[программирование]]></category>
		<category><![CDATA[сервис]]></category>

		<guid isPermaLink="false">http://blog.web2.com.ua/?p=1142</guid>
		<description><![CDATA[Недавно, я писал, что скоро порадую новинкой. Я предполагал, что до сегодняшнего дня у меня уже будет что показать, но я просчитался (. Пока проект существует только в админской части из-за загруженности дизайнера. Это меня расстраивает, но радость от того, что хоть что-то делаю, помогает не вешать нос. Так что за проект? В понедельник я [...]]]></description>
			<content:encoded><![CDATA[<p>Недавно, <a title="Скоро похвастаюсь" href="http://blog.web2.com.ua/2011/05/17/skoro-poxvastayus/">я писал</a>, что скоро порадую новинкой. Я предполагал, что до сегодняшнего дня у меня уже будет что показать, но я просчитался (. Пока проект существует только в админской части из-за загруженности дизайнера. Это меня расстраивает, но радость от того, что хоть что-то делаю, помогает не вешать нос.</p>
<p>Так что за проект?</p>
<p>В понедельник я узнал, что до дня Киева, компания, где я работаю, вместе с Google Украина запускает совместный проект. Google что-то похожее уже запускал, а теперь очередь и &#8220;Газеты по-киевски&#8221; ). Не уверен что мне можно рассказывать, что же это будет, но сама  мысль, что с партнёрстве с Google да ещё то, что они обещают его отдать нам, уже радует.</p>
<p>Когда же всё это будет видно?</p>
<p>Кажется, Google собирается выкатывать на всеобщее обозрение всё в субботу. Я, не Гугл, я, надеюсь, всё покажу в пятницу ( не люблю запускаться в пятницу! ). В среду, по планам опять же моим, будет  предварительная тестовая версия, так что смогу выслать ссылки желающим протестировать.</p>
<p>Не думаю, что в пятницу будет готово всё, что захотелось и мне и другим людям, но костяк должен быть. Держу пальцы!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.web2.com.ua/2011/05/20/kak-vsyo-medlenno/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Скоро похвастаюсь</title>
		<link>http://blog.web2.com.ua/2011/05/17/skoro-poxvastayus/</link>
		<comments>http://blog.web2.com.ua/2011/05/17/skoro-poxvastayus/#comments</comments>
		<pubDate>Tue, 17 May 2011 18:22:05 +0000</pubDate>
		<dc:creator>wert2all</dc:creator>
				<category><![CDATA[google]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[интернет]]></category>
		<category><![CDATA[программирование]]></category>
		<category><![CDATA[моё]]></category>
		<category><![CDATA[сервис]]></category>

		<guid isPermaLink="false">http://blog.web2.com.ua/?p=1139</guid>
		<description><![CDATA[Думаю, к концу недели выкачу один проектик, которым буду долго и нудно хвастаться и кичится Но это будет что-то сырое и не красивое, так как о нём я узнал только вчера, в понедельник. Сегодня только после обеда было всё согласовано и решено. При этом, обсуждения между исполнителями ( мной и дизом ) и начальством почти [...]]]></description>
			<content:encoded><![CDATA[<p>Думаю, к концу недели выкачу один проектик, которым буду долго и нудно хвастаться и кичится <img src='http://blog.web2.com.ua/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Но это будет что-то сырое и не красивое, так как о нём я узнал только вчера, в понедельник. Сегодня только после обеда было всё согласовано и решено. При этом, обсуждения между исполнителями ( мной и дизом ) и начальством почти не было &#8211; мне почти сказали делать как я захочу <img src='http://blog.web2.com.ua/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Так что тапки полетят в мою сторону, хотя, я не думаю, что будет ужасно <img src='http://blog.web2.com.ua/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>ЗЫ, Радует, местами, наличие работы! )</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.web2.com.ua/2011/05/17/skoro-poxvastayus/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>статистика на The One</title>
		<link>http://blog.web2.com.ua/2011/03/30/statistika-na-the-one/</link>
		<comments>http://blog.web2.com.ua/2011/03/30/statistika-na-the-one/#comments</comments>
		<pubDate>Wed, 30 Mar 2011 14:01:02 +0000</pubDate>
		<dc:creator>wert2all</dc:creator>
				<category><![CDATA[web]]></category>
		<category><![CDATA[интернет]]></category>
		<category><![CDATA[программирование]]></category>
		<category><![CDATA[сервис]]></category>
		<category><![CDATA[one]]></category>
		<category><![CDATA[использовать!]]></category>
		<category><![CDATA[моё]]></category>
		<category><![CDATA[сообщения]]></category>
		<category><![CDATA[статистика]]></category>

		<guid isPermaLink="false">http://blog.web2.com.ua/?p=1131</guid>
		<description><![CDATA[Забыл написать, что на The One прикрутил статистику. Теперь на главной странице показывается количество отправленых и полученых сообщений. Цифры страшные Только вопрос стоян не в самих цифрах и данных, а втом, чтобы написать каркас для записи логов и аггрегации их в таблицы. Потом стал вопрос о выводе статистических данных и пришлось написать несколько класов для [...]]]></description>
			<content:encoded><![CDATA[<p>Забыл написать, что на <a href="http://one.web2.com.ua/">The One</a> прикрутил статистику. Теперь на главной странице показывается количество отправленых и полученых сообщений. Цифры страшные <img src='http://blog.web2.com.ua/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Только вопрос стоян не в самих цифрах и данных, а втом, чтобы написать каркас для записи логов и аггрегации их в таблицы. Потом стал вопрос о выводе статистических данных и пришлось написать несколько класов для работы с OpenChart.</p>
<p>Что же можно увидеть?</p>
<ol>
<li><strong>общую статистику на страницах сервиса</strong><br />
<img class="alignnone size-full wp-image-1133" title="one_stat1" src="http://blog.web2.com.ua/wp-content/uploads/one_stat1.jpg" alt="" width="417" height="186" /></li>
<li><strong>красивый график статистики</strong><br />
<a href="http://blog.web2.com.ua/wp-content/uploads/one_stat2.jpg"><img class="alignnone size-medium wp-image-1134" title="one_stat2" src="http://blog.web2.com.ua/wp-content/uploads/one_stat2-400x319.jpg" alt="" width="400" height="319" /></a></li>
<li><strong>выбрать месяц для графика</strong><br />
<img class="alignnone size-full wp-image-1135" title="one_stat3" src="http://blog.web2.com.ua/wp-content/uploads/one_stat3.jpg" alt="" width="424" height="414" /></li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blog.web2.com.ua/2011/03/30/statistika-na-the-one/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>таймер в one.web2.com.ua</title>
		<link>http://blog.web2.com.ua/2011/02/18/tajmer-v-one-web2-com-ua/</link>
		<comments>http://blog.web2.com.ua/2011/02/18/tajmer-v-one-web2-com-ua/#comments</comments>
		<pubDate>Fri, 18 Feb 2011 10:18:36 +0000</pubDate>
		<dc:creator>wert2all</dc:creator>
				<category><![CDATA[программирование]]></category>
		<category><![CDATA[сервис]]></category>
		<category><![CDATA[one]]></category>
		<category><![CDATA[использовать!]]></category>
		<category><![CDATA[моё]]></category>

		<guid isPermaLink="false">http://blog.web2.com.ua/?p=1110</guid>
		<description><![CDATA[С подачи друга trisa, реализовал фичу на one.web2.com.ua. Часто бывает так, что вы удалились из-за компа за пивом/за бутером/к белому камню. А в это время злобные сотрудники служб выломали вашу дверь, застали вас сидящим с ноутом в туалете, и сообщение с паролями к ботнету у вас висит на мониторе в The One. Попадалово, правда? Как [...]]]></description>
			<content:encoded><![CDATA[<p>С подачи друга trisa, реализовал фичу на<a href="http://one.web2.com.ua"> one.web2.com.ua</a>.</p>
<p>Часто бывает так, что вы удалились из-за компа за пивом/за бутером/к белому камню. А в это время злобные сотрудники служб выломали вашу дверь, застали вас сидящим с ноутом в туалете, и сообщение с паролями к ботнету у вас висит на мониторе в The One. Попадалово, правда? <img src='http://blog.web2.com.ua/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Как с этим бороться?<span id="more-1110"></span></p>
<p>Надо перенаправить сайт на другую страничку после прочтения, чтобы вместо</p>
<p style="text-align: center;"><img class="aligncenter" src="http://blog.web2.com.ua/wp-content/uploads/one21.png" alt="" /></p>
<p>враги увидели главную страничку сервиса. Вот по-этому и сделал таймер. Как только вы открыли ваше сообщение, начинается отсчёт и, по истечению указаного времени, сообщение исчезнет <img src='http://blog.web2.com.ua/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Можете сколько угодно стоять в очереди за пивом и не переживать, что страничку не закрыли &#8211; сервис сам перегрузит браузер.</p>
<p>Как это работает? Когда вы создаёте сообщение, под редактором есть уже установленый таймер в 60 секунд.</p>
<p style="text-align: center;"><img class="aligncenter" src="http://blog.web2.com.ua/wp-content/uploads/one3.png" alt="" /></p>
<p>Когда вы устанавливаете галочку, как на рисунке выже, то выпадет окно, в котором вы сможете указать желаемое время для таймера</p>
<p style="text-align: center;"><img class="aligncenter" src="http://blog.web2.com.ua/wp-content/uploads/one4.png" alt="" /></p>
<p>А когда получатель читает message, то вверху показывается таймер с временем до удаления. За 15 секунд до времени ЧП, он становится красным, как бы намекая, что ещё чуть-чуть.</p>
<p style="text-align: center;"><img class="aligncenter" src="http://blog.web2.com.ua/wp-content/uploads/one5.png" alt="" /></p>
<p>А что же делать, когда вы читаете медленно и не успели? Всё просто &#8211; кликните по цифрам и таймер начнёт отсчёт заново.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.web2.com.ua/2011/02/18/tajmer-v-one-web2-com-ua/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>ещё!</title>
		<link>http://blog.web2.com.ua/2011/02/16/the-one-zhiv-bez-paniki-2/</link>
		<comments>http://blog.web2.com.ua/2011/02/16/the-one-zhiv-bez-paniki-2/#comments</comments>
		<pubDate>Wed, 16 Feb 2011 15:44:10 +0000</pubDate>
		<dc:creator>wert2all</dc:creator>
				<category><![CDATA[программирование]]></category>
		<category><![CDATA[сервис]]></category>
		<category><![CDATA[one]]></category>
		<category><![CDATA[использовать!]]></category>
		<category><![CDATA[моё]]></category>

		<guid isPermaLink="false">http://blog.web2.com.ua/?p=1103</guid>
		<description><![CDATA[Как я писал вчера, в укороченных ссылках есть 2 лишних символа. А теперь нет надоедливых слэшей &#34;/&#34;!]]></description>
			<content:encoded><![CDATA[<p>Как я <a href="http://blog.web2.com.ua/2011/02/16/the-one-zhiv-bez-paniki/">писал вчера</a>, в укороченных ссылках есть 2 лишних символа. А теперь нет надоедливых слэшей &quot;/&quot;!</p>
<p align="center"><img src="http://blog.web2.com.ua/wp-content/uploads/one11.png" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.web2.com.ua/2011/02/16/the-one-zhiv-bez-paniki-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The One жив, без паники</title>
		<link>http://blog.web2.com.ua/2011/02/16/the-one-zhiv-bez-paniki/</link>
		<comments>http://blog.web2.com.ua/2011/02/16/the-one-zhiv-bez-paniki/#comments</comments>
		<pubDate>Wed, 16 Feb 2011 15:03:13 +0000</pubDate>
		<dc:creator>wert2all</dc:creator>
				<category><![CDATA[web]]></category>
		<category><![CDATA[программирование]]></category>
		<category><![CDATA[сервис]]></category>
		<category><![CDATA[one]]></category>
		<category><![CDATA[использовать!]]></category>
		<category><![CDATA[моё]]></category>

		<guid isPermaLink="false">http://blog.web2.com.ua/?p=1097</guid>
		<description><![CDATA[От меня давно не было вестей. Стал ленивее . Хотя новостей на The One не было и ничего не писал, это не означает что там нет изменений. Многие изменения не видны и многие ещё не доделаны, но сегодня решился написать. Тем более, что есть одно видимое изменение. Я подумал, что строить ссылки в которых будет [...]]]></description>
			<content:encoded><![CDATA[<p>От меня давно не было вестей. Стал ленивее <img src='http://blog.web2.com.ua/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . Хотя новостей на <a href="http://one.web2.com.ua">The One</a> не было и ничего не писал, это не означает что там нет изменений. Многие изменения не видны и многие ещё не доделаны, но сегодня решился написать. Тем более, что есть одно видимое изменение. </p>
<p>Я подумал, что строить ссылки в которых будет дата &#8211; это уж очень много, и с 8 символов даты урезал их до одного. &quot;Прирост&quot; в 8 раз <img src='http://blog.web2.com.ua/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . Так что, будь я маркетологом, то уже бы писал фразу, что стало в 8 раз лучше <img src='http://blog.web2.com.ua/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . </p>
<p>Дата в ссылке была заменена на шестнадцатеричное представление месяца. Ссылки стали выглядеть вот так:</p>
<p align="center"><img src="http://blog.web2.com.ua/wp-content/uploads/one1.png" /></p>
<p align="left">Мне теперь кажется, что в ней есть 2 лишних символа, а вам? <img src='http://blog.web2.com.ua/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.web2.com.ua/2011/02/16/the-one-zhiv-bez-paniki/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Как я склеиваю Zend Framework</title>
		<link>http://blog.web2.com.ua/2011/01/29/kak-ya-skleivayu-zend-framework/</link>
		<comments>http://blog.web2.com.ua/2011/01/29/kak-ya-skleivayu-zend-framework/#comments</comments>
		<pubDate>Fri, 28 Jan 2011 22:10:51 +0000</pubDate>
		<dc:creator>wert2all</dc:creator>
				<category><![CDATA[ant]]></category>
		<category><![CDATA[программирование]]></category>
		<category><![CDATA[Ant]]></category>
		<category><![CDATA[zf]]></category>

		<guid isPermaLink="false">http://blog.web2.com.ua/?p=1072</guid>
		<description><![CDATA[Часто надо собрать Zend Framework в одни файл, при этом удалить все require и include. На просторах интернета есть собранные все файлы этого фреймворка, но, иногда, надо собрать только малую часть. Пока, я не нашёл скрипта, чтобы делать один файл да и хотелось этот процесс интегрировать с системой сборки проекта. Так как я использую для [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" src="http://blog.web2.com.ua/wp-content/uploads/ant-logo.gif" alt="" width="105" height="65" />Часто надо собрать Zend Framework в одни файл, при этом удалить все require и include. На просторах интернета есть собранные все файлы этого фреймворка, но, иногда, надо собрать только малую часть. Пока, я не нашёл скрипта, чтобы делать один файл да и хотелось этот процесс интегрировать с системой сборки проекта. Так как я использую для сборки Ant, то решил написать скрипт для него. Тем более это оказалось легче, чем предполагал. Тяжело было разобраться с самим Ant`ом <img src='http://blog.web2.com.ua/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><span id="more-1072"></span></p>
<h2>Начало</h2>
<p>Создадим основной файл XML для Ant`а с одной целью target и именем name=&#8221;concat.zend&#8221;. Так же в project укажем основную цель для Анта concat.zend:</p>
<pre>&lt;?xml version="1.0"?&gt;
&lt;project name="zend" default="concat.zend" basedir="./../"&gt;
    &lt;target name="concat.zend" description="concat ZF files"&gt;
    &lt;/target&gt;
&lt;/project&gt;</pre>
<p>В этой цели будем склеивать все файлы в один. Но это не единственная задача. Как минимум, надо ещё одну, которая вырежет все require и include. Но закончим с этой. Дабы не писать пути по несколько раз, введём в проект константу, в которой укажем путь к файлам ZF.</p>
<pre>    &lt;property name="library" location="./../library/"/&gt;</pre>
<p>Это свойство ставим перед определением целей, чтобы с любой цели иметь доступ к константе. Теперь склеим нужные нам файлы ZF в один.</p>
<pre>    &lt;target name="concat.zend" description="concat ZF files"&gt;
        &lt;concat destfile="${build}/classes/Ext/Production/Zend.tmp.php"&gt;
            &lt;filelist dir="${library}/"&gt;
                &lt;file name="Zend/Cache/Backend.php"/&gt;
                &lt;file name="Zend/Cache/Backend/ExtendedInterface.php"/&gt;
                &lt;file name="Zend/Cache/Backend/Interface.php"/&gt;
                &lt;file name="Zend/Db/Exception.php"/&gt;
                &lt;file name="Zend/Db/Adapter/Abstract.php"/&gt;
                &lt;file name="Zend/Db/Adapter/Pdo/Abstract.php"/&gt;
                &lt;file name="Zend/Db/Adapter/Pdo/Mysql.php"/&gt;
                &lt;file name="Zend/Db/Adapter/Exception.php"/&gt;
                &lt;file name="Zend/Db/Table/Abstract.php"/&gt;
                &lt;file name="Zend/Db/Table/Exception.php"/&gt;
                &lt;file name="Zend/Db/Profiler.php"/&gt;
                &lt;file name="Zend/Db.php"/&gt;
                &lt;file name="Zend/Exception.php"/&gt;
                &lt;file name="Zend/Mime.php"/&gt;
                &lt;file name="Zend/Mime/Part.php"/&gt;
                &lt;file name="Zend/Mime/Message.php"/&gt;
                &lt;file name="Zend/Mail.php"/&gt;
                &lt;file name="Zend/Mail/Transport/Abstract.php"/&gt;
                &lt;file name="Zend/Mail/Transport/Sendmail.php"/&gt;
                &lt;file name="Dklab/Cache/Backend/TagEmuWrapper.php"/&gt;
            &lt;/filelist&gt;
        &lt;/concat&gt;
    &lt;/target&gt;</pre>
<p>Это соберет нужные классы в файл ${build}/classes/Ext/Production/Zend.tmp.php. ${build} &#8211; папка для сборки проекта.</p>
<h2>Удаляем require и всё лишнее</h2>
<p>Если взглянуть в ${build}/classes/Ext/Production/Zend.tmp.php, то можно увидеть, что это не валидный файл php. Там встречаются &lt;?php много да и зендовские require портят жизнь. Создадим другую цель и удалим это с файла.</p>
<pre>    &lt;target name="modify.zend" description="modify ZF files"&gt;
        &lt;replaceregexp byline="true" file="${build}/classes/Ext/Production/Zend.tmp.php"&gt;
            &lt;regexp pattern="^&amp;lt;\?php$"/&gt;
            &lt;substitution expression=""/&gt;
        &lt;/replaceregexp&gt;
        &lt;replaceregexp byline="true" file="${build}/classes/Ext/Production/Zend.tmp.php"&gt;
            &lt;regexp pattern="^\?&amp;gt;"/&gt;
            &lt;substitution expression=""/&gt;
        &lt;/replaceregexp&gt;
        &lt;replaceregexp byline="true" flags="smi" file="${build}/classes/Ext/Production/Zend.tmp.php"&gt;
            &lt;regexp pattern="(require|include)(_once)+( )?(['&amp;quot;])?Zend\/(.*)(['&amp;quot;])?"/&gt;
            &lt;substitution expression=""/&gt;
        &lt;/replaceregexp&gt;
        &lt;replaceregexp byline="false" flags="gs" file="${build}/classes/Ext/Production/Zend.tmp.php"&gt;
            &lt;regexp pattern="/\*.+?\*/"/&gt;
            &lt;substitution expression=""/&gt;
        &lt;/replaceregexp&gt;
    &lt;/target&gt;</pre>
<p>В первом блоке удаляются ВСЕ &lt;?php, потом &#8211; ?&gt;, далее все require и include, а под занавес &#8211; комментарии. Это сделано с помощью регулярных выражений и если ещё почитать в документации, то всё становится понятным. Теперь надо с цели concat.zend вызвать modify.zend. Это делается в concat.zend с помощью конструкции</p>
<pre>        &lt;antcall target="zend.modify.zend" /&gt;</pre>
<h2>Что такое Fake.php</h2>
<p>Как известно, в предыдущей цели мы удалили &lt;?php &#8230; ?&gt;. Но ведь они то нам надо! Я даже не разбирался, как вставить в файл, а решил просто создать фальшивый файл Fake.php и приклеить перед нашим файлом в цели concat.zend.</p>
<pre>        &lt;concat destfile="${build}/classes/Ext/Production/Zend.php"&gt;
            &lt;filelist dir="${build}/classes/Ext/Production/" files="Fake.php" /&gt;
            &lt;filelist dir="${build}/classes/Ext/Production/" files="Zend.tmp.php" /&gt;
        &lt;/concat&gt;</pre>
<h2>Подметаем и заканчиваем</h2>
<p>Всё, кажется. Осталось удалить промежуточный файл и насладится работой скрипта:</p>
<pre>        &lt;delete file="${build}/classes/Ext/Production/Zend.tmp.php" /&gt;</pre>
<h2>Полная версия XML</h2>
<pre>&lt;?xml version="1.0"?&gt;
&lt;project name="zend" default="concat.zend" basedir="./../"&gt;
    &lt;!-- set global properties for this build --&gt;
    &lt;property name="library" location="./../library/"/&gt;

    &lt;target name="concat.zend" description="concat ZF files"&gt;
        &lt;concat destfile="${build}/classes/Ext/Production/Zend.tmp.php"&gt;
            &lt;filelist dir="${library}/"&gt;
                &lt;file name="Zend/Cache/Backend.php"/&gt;
                &lt;file name="Zend/Cache/Backend/ExtendedInterface.php"/&gt;
                &lt;file name="Zend/Cache/Backend/Interface.php"/&gt;
                &lt;file name="Zend/Db/Exception.php"/&gt;
                &lt;file name="Zend/Db/Adapter/Abstract.php"/&gt;
                &lt;file name="Zend/Db/Adapter/Pdo/Abstract.php"/&gt;
                &lt;file name="Zend/Db/Adapter/Pdo/Mysql.php"/&gt;
                &lt;file name="Zend/Db/Adapter/Exception.php"/&gt;
                &lt;file name="Zend/Db/Table/Abstract.php"/&gt;
                &lt;file name="Zend/Db/Table/Exception.php"/&gt;
                &lt;file name="Zend/Db/Profiler.php"/&gt;
                &lt;file name="Zend/Db.php"/&gt;
                &lt;file name="Zend/Exception.php"/&gt;
                &lt;file name="Zend/Mime.php"/&gt;
                &lt;file name="Zend/Mime/Part.php"/&gt;
                &lt;file name="Zend/Mime/Message.php"/&gt;
                &lt;file name="Zend/Mail.php"/&gt;
                &lt;file name="Zend/Mail/Transport/Abstract.php"/&gt;
                &lt;file name="Zend/Mail/Transport/Sendmail.php"/&gt;
                &lt;file name="Dklab/Cache/Backend/TagEmuWrapper.php"/&gt;
            &lt;/filelist&gt;
        &lt;/concat&gt;
        &lt;antcall target="zend.modify.zend" /&gt;

        &lt;concat destfile="${build}/classes/Ext/Production/Zend.php"&gt;
            &lt;filelist dir="${build}/classes/Ext/Production/" files="Fake.php" /&gt;
            &lt;filelist dir="${build}/classes/Ext/Production/" files="Zend.tmp.php" /&gt;
        &lt;/concat&gt;
        &lt;delete file="${build}/classes/Ext/Production/Zend.tmp.php" /&gt;
    &lt;/target&gt;

    &lt;target name="modify.zend" description="modify ZF files"&gt;
        &lt;replaceregexp byline="true" file="${build}/classes/Ext/Production/Zend.tmp.php"&gt;
            &lt;regexp pattern="^&amp;lt;\?php$"/&gt;
            &lt;substitution expression=""/&gt;
        &lt;/replaceregexp&gt;
        &lt;replaceregexp byline="true" file="${build}/classes/Ext/Production/Zend.tmp.php"&gt;
            &lt;regexp pattern="^\?&amp;gt;"/&gt;
            &lt;substitution expression=""/&gt;
        &lt;/replaceregexp&gt;
        &lt;replaceregexp byline="true" flags="smi" file="${build}/classes/Ext/Production/Zend.tmp.php"&gt;
            &lt;regexp pattern="(require|include)(_once)+( )?(['&amp;quot;])?Zend\/(.*)(['&amp;quot;])?"/&gt;
            &lt;substitution expression=""/&gt;
        &lt;/replaceregexp&gt;
        &lt;replaceregexp byline="false" flags="gs" file="${build}/classes/Ext/Production/Zend.tmp.php"&gt;
            &lt;regexp pattern="/\*.+?\*/"/&gt;
            &lt;substitution expression=""/&gt;
        &lt;/replaceregexp&gt;
    &lt;/target&gt;
&lt;/project&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.web2.com.ua/2011/01/29/kak-ya-skleivayu-zend-framework/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>HTMLPurifier одним файлом</title>
		<link>http://blog.web2.com.ua/2011/01/28/htmlpurifier-odnim-fajlom/</link>
		<comments>http://blog.web2.com.ua/2011/01/28/htmlpurifier-odnim-fajlom/#comments</comments>
		<pubDate>Fri, 28 Jan 2011 11:50:25 +0000</pubDate>
		<dc:creator>wert2all</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[программирование]]></category>
		<category><![CDATA[Ant]]></category>
		<category><![CDATA[HTMLPurifier]]></category>
		<category><![CDATA[one file]]></category>

		<guid isPermaLink="false">http://blog.web2.com.ua/?p=1079</guid>
		<description><![CDATA[Для собственных нужд надо было собрать HTMLPurifier одним файлом. Благо, с ним идёт файл со всеми инклудами, правда, с ошибками. Быстренько написал ant-скрипт, который всё это счастье собирает и вырезает комментарии. Не обошлось и без костылей. Для того, чтобы HTMLPurifier иногда находил нужные ему файлы, надо определить констанкту HTMLPURIFIER_PREFIX. Сборочный скрипт с исходниками и собраный [...]]]></description>
			<content:encoded><![CDATA[<p>Для собственных нужд надо было собрать HTMLPurifier одним файлом. Благо, с ним идёт файл со всеми инклудами, правда, с ошибками. Быстренько написал ant-скрипт, который всё это счастье собирает и вырезает комментарии. Не обошлось и без костылей. Для того, чтобы HTMLPurifier иногда находил нужные ему файлы, надо определить констанкту HTMLPURIFIER_PREFIX. Сборочный скрипт с исходниками и собраный HTMLPurifier <a href="http://blog.web2.com.ua/wp-content/uploads/HTMLPurifier_4.2.0.zip">выкладываю</a>. Баги и патчи &#8211; в комментарии. </p>
<p><strong>UPD.</strong> Камрад Александро сказал что я мудак и он есть уже собраный ((( а я ещё комментариии вырезал <img src='http://blog.web2.com.ua/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.web2.com.ua/2011/01/28/htmlpurifier-odnim-fajlom/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>one.web2.com.ua &#8211; ускорение закрузки</title>
		<link>http://blog.web2.com.ua/2011/01/26/one-web2-com-ua-uskorenie-zakruzki/</link>
		<comments>http://blog.web2.com.ua/2011/01/26/one-web2-com-ua-uskorenie-zakruzki/#comments</comments>
		<pubDate>Wed, 26 Jan 2011 10:06:23 +0000</pubDate>
		<dc:creator>wert2all</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[программирование]]></category>
		<category><![CDATA[one]]></category>
		<category><![CDATA[использовать!]]></category>
		<category><![CDATA[моё]]></category>
		<category><![CDATA[сервис]]></category>

		<guid isPermaLink="false">http://blog.web2.com.ua/?p=1076</guid>
		<description><![CDATA[На днях решил написать парочку целей для Ant&#8217;а, а на чём же пробовать и тестировать, как не на своих проектиках. В качестве полигона взял свой one.web2.com.ua и описал систему сборки для этого проекта. Теперь сайт должен грузится быстро и все изменения в стилях будут применяться автоматом. Что же я опритимизировал: Все стили CSS собираются в [...]]]></description>
			<content:encoded><![CDATA[<p>На днях решил написать парочку целей для Ant&#8217;а, а на чём же пробовать и тестировать, как не на своих проектиках. В качестве полигона взял свой <a href="http://one.web2.com.ua">one.web2.com.ua</a> и описал систему сборки для этого проекта. Теперь сайт должен грузится быстро и все изменения в стилях будут применяться автоматом. Что же я опритимизировал:</p>
<ol>
<li>Все стили CSS собираются в один файл и сжимаются <a href="http://developer.yahoo.com/yui/compressor/" target="_blank">yuicompressor</a>.</li>
<li>Все Javascript-файлы собираются в один и тем же жжымаются.</li>
<li>Все библиотеки Javascript ( jQuery, jQuery UI ) просто собираются в один файл и будут перегружаться только, когда будут обновлены, а не при каждой сборке.</li>
<li>Zend Framefork файлы собираются в один и только нужные классы. Как я это сделал, напишу попозже.</li>
<li>Все классы моего фреймворка тоже, как и ZF, собираются в одном файле. Так как one.web2.com.ua состоит с одного контроллера, то он тоже склеен. Как вывод, подключаются только 2 файла PHP.</li>
<li>Когда меняю что-то в стилях, это сразу применяется на сайте, потому что система применяет трюк с версиями <img src='http://blog.web2.com.ua/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
</ol>
<p>Проверил и, по субъективному мнению, грузится просто реактивно! Осталось что-то сделать с CKEditor, но это в другой раз.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.web2.com.ua/2011/01/26/one-web2-com-ua-uskorenie-zakruzki/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Короче!</title>
		<link>http://blog.web2.com.ua/2010/12/20/koroche/</link>
		<comments>http://blog.web2.com.ua/2010/12/20/koroche/#comments</comments>
		<pubDate>Mon, 20 Dec 2010 10:14:28 +0000</pubDate>
		<dc:creator>wert2all</dc:creator>
				<category><![CDATA[программирование]]></category>
		<category><![CDATA[сервис]]></category>
		<category><![CDATA[использовать!]]></category>
		<category><![CDATA[моё]]></category>
		<category><![CDATA[сообщения]]></category>

		<guid isPermaLink="false">http://blog.web2.com.ua/?p=1067</guid>
		<description><![CDATA[По наводке Коли ReportBuilder`а, сделал чуть короче ссылки для моего one.web2.com.ua. Теперь http://one.web2.com.ua/20101220/6bdca38409/ а было ведь http://one.web2.com.ua/index/get/20101220/6bdca38409/ Экономия в 8 символов )]]></description>
			<content:encoded><![CDATA[<p>По наводке Коли ReportBuilder`а, сделал чуть короче ссылки для моего <a href="http://one.web2.com.ua">one.web2.com.ua</a>.</p>
<p>Теперь</p>
<p><a href="http://one.web2.com.ua/20101220/6bdca38409/">http://one.web2.com.ua/20101220/6bdca38409/</a></p>
<p>а было ведь</p>
<p><a href="http://one.web2.com.ua/index/get/20101220/6bdca38409/ ">http://one.web2.com.ua/index/get/20101220/6bdca38409/</a></p>
<p>Экономия в 8 символов )</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.web2.com.ua/2010/12/20/koroche/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

