<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>CODE MEHANIKA blog</title><link>http://codemehanika.org</link><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/kachayev" /><language>en</language><lastBuildDate>Sun, 11 Dec 2011 13:49:00 PST</lastBuildDate><feedburner:info uri="kachayev" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><description></description><feedburner:emailServiceId>kachayev</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item><title>Реализация неблокирующего TCP сервера с Tornado</title><link>http://feedproxy.google.com/~r/kachayev/~3/bp-i-DQBV5w/2011-12-10-using-tornado-for-tcp-server-implementation.html</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexey S. Kachayev</dc:creator><pubDate>Fri, 09 Dec 2011 16:00:00 PST</pubDate><guid isPermaLink="false">http://codemehanika.org/blog/2011-12-10-using-tornado-for-tcp-server-implementation.html</guid><description>Небольшой и бесхитростный пример кода реализации TCP сервера для мультипользовательской игры в крестики-нолики с использование фреймворка Tornado.
       Реализация неблокирующего TCP сервера с Tornado&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=bp-i-DQBV5w:STLi8zoxmFI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=bp-i-DQBV5w:STLi8zoxmFI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?i=bp-i-DQBV5w:STLi8zoxmFI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=bp-i-DQBV5w:STLi8zoxmFI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?i=bp-i-DQBV5w:STLi8zoxmFI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=bp-i-DQBV5w:STLi8zoxmFI:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/kachayev/~4/bp-i-DQBV5w" height="1" width="1"/&gt;</description><feedburner:origLink>http://codemehanika.org/blog/2011-12-10-using-tornado-for-tcp-server-implementation.html</feedburner:origLink></item><item><title>Console Applications with Zend Framework 2.0</title><link>http://feedproxy.google.com/~r/kachayev/~3/0ZvpaYRUhwk/2011-11-14-console-applications-with-zf2.html</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexey S. Kachayev</dc:creator><pubDate>Sun, 13 Nov 2011 16:00:00 PST</pubDate><guid isPermaLink="false">http://codemehanika.org/blog/2011-11-14-console-applications-with-zf2.html</guid><description>Презентация Console applications with Zend Framework 2.0. Слайды, комментарии, благодарности.
       Console Applications with Zend Framework 2.0&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=0ZvpaYRUhwk:4xT2JzTsfvE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=0ZvpaYRUhwk:4xT2JzTsfvE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?i=0ZvpaYRUhwk:4xT2JzTsfvE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=0ZvpaYRUhwk:4xT2JzTsfvE:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?i=0ZvpaYRUhwk:4xT2JzTsfvE:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=0ZvpaYRUhwk:4xT2JzTsfvE:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/kachayev/~4/0ZvpaYRUhwk" height="1" width="1"/&gt;</description><feedburner:origLink>http://codemehanika.org/blog/2011-11-14-console-applications-with-zf2.html</feedburner:origLink></item><item><title>Tornado server graceful stop</title><link>http://feedproxy.google.com/~r/kachayev/~3/CA4tnluX0RE/2011-10-28-graceful-stop-tornado.html</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexey S. Kachayev</dc:creator><pubDate>Thu, 27 Oct 2011 17:00:00 PDT</pubDate><guid isPermaLink="false">http://codemehanika.org/blog/2011-10-28-graceful-stop-tornado.html</guid><description>Задача плавной остановки совершенно естественна для любого web сервера. Суть заключается в том, что при получении системного сигнала о необходимости остановки, мы должны аккуратно доработать со всеми уже открытыми соединениями, а не выкинуть им 302/500 ошибку. Здесь я рассмотрю правильную реализацию плавной оставноки Tornado сервера.
       Tornado server graceful stop&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=CA4tnluX0RE:FrCLIBW-wG8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=CA4tnluX0RE:FrCLIBW-wG8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?i=CA4tnluX0RE:FrCLIBW-wG8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=CA4tnluX0RE:FrCLIBW-wG8:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?i=CA4tnluX0RE:FrCLIBW-wG8:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=CA4tnluX0RE:FrCLIBW-wG8:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/kachayev/~4/CA4tnluX0RE" height="1" width="1"/&gt;</description><feedburner:origLink>http://codemehanika.org/blog/2011-10-28-graceful-stop-tornado.html</feedburner:origLink></item><item><title>Особенности и примеры скриптов для Custom Keyboard Shortcuts</title><link>http://feedproxy.google.com/~r/kachayev/~3/9A8fB9Z_uGk/2011-08-16-keyboard-shortcuts-with-python.html</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexey S. Kachayev</dc:creator><pubDate>Mon, 15 Aug 2011 17:00:00 PDT</pubDate><guid isPermaLink="false">http://codemehanika.org/blog/2011-08-16-keyboard-shortcuts-with-python.html</guid><description>В программистской работе всегда есть куча действий, которые мы с завидным постоянством повторяем каждый день. Например, для обновления работающей версии Gearoscope-приложений мне нужно пересобрать gearoscope package + пересобрать sonar package + обновить конфигурацию + перезапустить два демон-процесса. Достаточно много телодвижений, и в процессе работы приходится их повторять частенько. Чтобы упростить себе жизнь я пользуюсь возможностью bind-ить на клавиатуру собственные скрипты (custom keyboard shortcut). Хочу поделится некоторыми деталями реализации подобных удовольствий.
       Особенности и примеры скриптов для Custom Keyboard Shortcuts&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=9A8fB9Z_uGk:2LbkwOyHfn4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=9A8fB9Z_uGk:2LbkwOyHfn4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?i=9A8fB9Z_uGk:2LbkwOyHfn4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=9A8fB9Z_uGk:2LbkwOyHfn4:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?i=9A8fB9Z_uGk:2LbkwOyHfn4:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=9A8fB9Z_uGk:2LbkwOyHfn4:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/kachayev/~4/9A8fB9Z_uGk" height="1" width="1"/&gt;</description><feedburner:origLink>http://codemehanika.org/blog/2011-08-16-keyboard-shortcuts-with-python.html</feedburner:origLink></item><item><title>Отчет об участии в DjangoDash</title><link>http://feedproxy.google.com/~r/kachayev/~3/uAgRABMTcxw/2011-08-03-djangodash-post-review.html</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexey S. Kachayev</dc:creator><pubDate>Tue, 02 Aug 2011 17:00:00 PDT</pubDate><guid isPermaLink="false">http://codemehanika.org/blog/2011-08-03-djangodash-post-review.html</guid><description>Django Dash это небольшое соревнование для django-программистов-фанатиков, суть которого сводится к реализации небольшого проекта в течение двух выходных дней. Точнее двух суток. Т.е. в абсолютно сумасшедшем режиме. В этом году я учавствовал с коллегой Юрой и мы пытались сделать сервер для мониторинга gearman очередей (очень гиковская задумка). О том как все это прошло и чем завершилось, see below.
       Отчет об участии в DjangoDash&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=uAgRABMTcxw:RNEa33TnLxY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=uAgRABMTcxw:RNEa33TnLxY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?i=uAgRABMTcxw:RNEa33TnLxY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=uAgRABMTcxw:RNEa33TnLxY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?i=uAgRABMTcxw:RNEa33TnLxY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=uAgRABMTcxw:RNEa33TnLxY:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/kachayev/~4/uAgRABMTcxw" height="1" width="1"/&gt;</description><feedburner:origLink>http://codemehanika.org/blog/2011-08-03-djangodash-post-review.html</feedburner:origLink></item><item><title>Моделирование данных и возможности Redis хранилища</title><link>http://feedproxy.google.com/~r/kachayev/~3/-xcNX_uzEDY/2011-07-24-data-persistence-design-and-redis-storage-usage.html</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexey S. Kachayev</dc:creator><pubDate>Sat, 23 Jul 2011 17:00:00 PDT</pubDate><guid isPermaLink="false">http://codemehanika.org/blog/2011-07-24-data-persistence-design-and-redis-storage-usage.html</guid><description>Моя презентация с киевской встречи Zend_Coffee&amp;amp;Code #3.
       Моделирование данных и возможности Redis хранилища&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=-xcNX_uzEDY:A8WWHtdEXCY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=-xcNX_uzEDY:A8WWHtdEXCY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?i=-xcNX_uzEDY:A8WWHtdEXCY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=-xcNX_uzEDY:A8WWHtdEXCY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?i=-xcNX_uzEDY:A8WWHtdEXCY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=-xcNX_uzEDY:A8WWHtdEXCY:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/kachayev/~4/-xcNX_uzEDY" height="1" width="1"/&gt;</description><feedburner:origLink>http://codemehanika.org/blog/2011-07-24-data-persistence-design-and-redis-storage-usage.html</feedburner:origLink></item><item><title>Что означает "Pythonic way" или как писать не надо</title><link>http://feedproxy.google.com/~r/kachayev/~3/akIR4K-zsrU/2011-07-18-what-does-pythonic-mean.html</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexey S. Kachayev</dc:creator><pubDate>Sun, 17 Jul 2011 17:00:00 PDT</pubDate><guid isPermaLink="false">http://codemehanika.org/blog/2011-07-18-what-does-pythonic-mean.html</guid><description>В последнее время, я почти полностью перешел с использования PHP на Python. И так уж случилось, что многие с кем я общаюсь занимаюсь сейчас приблизительно тем же самым. Скорее всего именно поэтому мне приходится почти каждый день видеть &amp;quot;php-&amp;gt;python&amp;quot; код (так я называю php-код, который записан python-овским синтаксисом). Подробнее о том, что это такое и почему это плохо, в низлежащей заметке.
       Что означает "Pythonic way" или как писать не надо&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=akIR4K-zsrU:mJyMp_GkuTQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=akIR4K-zsrU:mJyMp_GkuTQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?i=akIR4K-zsrU:mJyMp_GkuTQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=akIR4K-zsrU:mJyMp_GkuTQ:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?i=akIR4K-zsrU:mJyMp_GkuTQ:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=akIR4K-zsrU:mJyMp_GkuTQ:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/kachayev/~4/akIR4K-zsrU" height="1" width="1"/&gt;</description><feedburner:origLink>http://codemehanika.org/blog/2011-07-18-what-does-pythonic-mean.html</feedburner:origLink></item><item><title>Практические примеры "нестандартного" использования Redis для решения сложных задач</title><link>http://feedproxy.google.com/~r/kachayev/~3/bkoF-v7SuVA/2011-07-15-redis-types-usage.html</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexey S. Kachayev</dc:creator><pubDate>Thu, 14 Jul 2011 17:00:00 PDT</pubDate><guid isPermaLink="false">http://codemehanika.org/blog/2011-07-15-redis-types-usage.html</guid><description>Redis не только супер быстрое key-value storage! (хотя этого у него не отберешь). Встроенные типы данных дают возможность решать с помощью Redis-а те задачи, с которыми очень трудно справиться при использоваии других хранилищ (а иногда и тех задач, которые классически выполняются совсем не хранилищами данных). В этой заметке описано несколько ситуаций из реальной практики разработки, когда Redis неожиданно становился просто-таки спасением
       Практические примеры "нестандартного" использования Redis для решения сложных задач&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=bkoF-v7SuVA:ffaWSMvUtIE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=bkoF-v7SuVA:ffaWSMvUtIE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?i=bkoF-v7SuVA:ffaWSMvUtIE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=bkoF-v7SuVA:ffaWSMvUtIE:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?i=bkoF-v7SuVA:ffaWSMvUtIE:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=bkoF-v7SuVA:ffaWSMvUtIE:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/kachayev/~4/bkoF-v7SuVA" height="1" width="1"/&gt;</description><feedburner:origLink>http://codemehanika.org/blog/2011-07-15-redis-types-usage.html</feedburner:origLink></item><item><title>Tornado, Django ORM и supervisord для моментальной отдачи autosuggest</title><link>http://feedproxy.google.com/~r/kachayev/~3/NVjL3g35KhQ/2011-06-16-tornado-and-django-orm-for-autosuggest.html</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexey S. Kachayev</dc:creator><pubDate>Wed, 15 Jun 2011 17:00:00 PDT</pubDate><guid isPermaLink="false">http://codemehanika.org/blog/2011-06-16-tornado-and-django-orm-for-autosuggest.html</guid><description>О том, почему критично важно экономить ресурсы на таких процессах как ajax response для autosuggest поля, я уже писал (и рассказывал). На конференции в Питере, я предложил вариант phpDaemon для демонизации zf приложения. Сегодня напишу об еще одном варианте - Tornado + Django ORM. Для тех, кто уверен, что асинхронные сервера это сложно, скажу заранее - обойдемся 20ю строками кода.
       Tornado, Django ORM и supervisord для моментальной отдачи autosuggest&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=NVjL3g35KhQ:CjdUFV4rAGM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=NVjL3g35KhQ:CjdUFV4rAGM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?i=NVjL3g35KhQ:CjdUFV4rAGM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=NVjL3g35KhQ:CjdUFV4rAGM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?i=NVjL3g35KhQ:CjdUFV4rAGM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=NVjL3g35KhQ:CjdUFV4rAGM:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/kachayev/~4/NVjL3g35KhQ" height="1" width="1"/&gt;</description><feedburner:origLink>http://codemehanika.org/blog/2011-06-16-tornado-and-django-orm-for-autosuggest.html</feedburner:origLink></item><item><title>Несколько советов тем, кто переходит на DDD</title><link>http://feedproxy.google.com/~r/kachayev/~3/gzFgjpS4XIk/2011-06-08-tips-for-ddd-learners.html</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexey S. Kachayev</dc:creator><pubDate>Tue, 07 Jun 2011 17:00:00 PDT</pubDate><guid isPermaLink="false">http://codemehanika.org/blog/2011-06-08-tips-for-ddd-learners.html</guid><description>DDD достаточно модная на сегодняшний день парадигма проектирования и многие разработчики (и целые проекты), проанализировав все &amp;quot;За&amp;quot; и &amp;quot;Против&amp;quot;, решают &amp;quot;перейти на DDD&amp;quot;. Мне часто приходится общатся с коллегами по цеху на различные DDD-шные темы, как в личной переписке, так и, например, на форуме zendframework.ru/forum. В этой заметке я постралася собрать все то, что зачастую &amp;quot;мешает&amp;quot; полностью погрузится в DDD (со всеми вытекающими).
       Несколько советов тем, кто переходит на DDD&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=gzFgjpS4XIk:jENO5ACQz3k:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=gzFgjpS4XIk:jENO5ACQz3k:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?i=gzFgjpS4XIk:jENO5ACQz3k:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=gzFgjpS4XIk:jENO5ACQz3k:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?i=gzFgjpS4XIk:jENO5ACQz3k:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=gzFgjpS4XIk:jENO5ACQz3k:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/kachayev/~4/gzFgjpS4XIk" height="1" width="1"/&gt;</description><feedburner:origLink>http://codemehanika.org/blog/2011-06-08-tips-for-ddd-learners.html</feedburner:origLink></item><item><title>DDD подход к решению задачи сложной фильтрации данных</title><link>http://feedproxy.google.com/~r/kachayev/~3/jQPeF6x6VnQ/2011-05-10-pattern-composite-in-filtering-tasks.html</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexey S. Kachayev</dc:creator><pubDate>Sat, 04 Jun 2011 17:00:00 PDT</pubDate><guid isPermaLink="false">http://codemehanika.org/blog/2011-05-10-pattern-composite-in-filtering-tasks.html</guid><description>Эта заметка представляет из себя некую выборку идей и подходов к организации сложной фильтрации и кастомизированного поиска, которые я использую в своем проекте. Пишу по многочисленным просьбам. Все подходы описаны на конкретном примере, очень распространенном в практике создания веб-приложений. Приведенный код в большинстве своем является условным и чисто-показательным, но частично изъят из боевого окружения.
       DDD подход к решению задачи сложной фильтрации данных&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=jQPeF6x6VnQ:iBdZPnr2KHs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=jQPeF6x6VnQ:iBdZPnr2KHs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?i=jQPeF6x6VnQ:iBdZPnr2KHs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=jQPeF6x6VnQ:iBdZPnr2KHs:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?i=jQPeF6x6VnQ:iBdZPnr2KHs:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=jQPeF6x6VnQ:iBdZPnr2KHs:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/kachayev/~4/jQPeF6x6VnQ" height="1" width="1"/&gt;</description><feedburner:origLink>http://codemehanika.org/blog/2011-05-10-pattern-composite-in-filtering-tasks.html</feedburner:origLink></item><item><title>Гибкая архитектура Zend Framework приложений сиспользованием Dependency Injection</title><link>http://feedproxy.google.com/~r/kachayev/~3/tL26QQvTKzM/2011-05-14-di-and-zend-framework-application.html</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexey S. Kachayev</dc:creator><pubDate>Tue, 31 May 2011 17:00:00 PDT</pubDate><guid isPermaLink="false">http://codemehanika.org/blog/2011-05-14-di-and-zend-framework-application.html</guid><description>Материалы моей презентации с ZFConf 2011 в Петербурге
       Гибкая архитектура Zend Framework приложений сиспользованием Dependency Injection&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=tL26QQvTKzM:2znQP0rYWHE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=tL26QQvTKzM:2znQP0rYWHE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?i=tL26QQvTKzM:2znQP0rYWHE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=tL26QQvTKzM:2znQP0rYWHE:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?i=tL26QQvTKzM:2znQP0rYWHE:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=tL26QQvTKzM:2znQP0rYWHE:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/kachayev/~4/tL26QQvTKzM" height="1" width="1"/&gt;</description><feedburner:origLink>http://codemehanika.org/blog/2011-05-14-di-and-zend-framework-application.html</feedburner:origLink></item><item><title>Воюем за ресурсы. Повышение производительности ZF приложения спомощью phpDaemon + Varnish + ESI</title><link>http://feedproxy.google.com/~r/kachayev/~3/B3eIpUkf-Jg/2011-05-14-zf-phpdaemon-varnish-esi.html</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexey S. Kachayev</dc:creator><pubDate>Tue, 31 May 2011 17:00:00 PDT</pubDate><guid isPermaLink="false">http://codemehanika.org/blog/2011-05-14-zf-phpdaemon-varnish-esi.html</guid><description>Материалы моей презентации с ZFConf 2011 в Петербурге с дополнениями и ремарками (в основном - ответы на вопросы, приходящие ко мне на email и в skype)
       Воюем за ресурсы. Повышение производительности ZF приложения спомощью phpDaemon + Varnish + ESI&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=B3eIpUkf-Jg:gY6VtB6Yua8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=B3eIpUkf-Jg:gY6VtB6Yua8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?i=B3eIpUkf-Jg:gY6VtB6Yua8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=B3eIpUkf-Jg:gY6VtB6Yua8:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?i=B3eIpUkf-Jg:gY6VtB6Yua8:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=B3eIpUkf-Jg:gY6VtB6Yua8:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/kachayev/~4/B3eIpUkf-Jg" height="1" width="1"/&gt;</description><feedburner:origLink>http://codemehanika.org/blog/2011-05-14-zf-phpdaemon-varnish-esi.html</feedburner:origLink></item><item><title>Установка Gearman сервера на Ubuntu/Debian</title><link>http://feedproxy.google.com/~r/kachayev/~3/KwMB4k5itgE/2011-04-30-install-gearman-server-on-debian-like-os.html</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexey S. Kachayev</dc:creator><pubDate>Fri, 27 May 2011 17:00:00 PDT</pubDate><guid isPermaLink="false">http://codemehanika.org/blog/2011-04-30-install-gearman-server-on-debian-like-os.html</guid><description>Gearman server использую в своей работе очень активно, поэтому достаточно часто сталкиваюсь с задачей его установки и обеспечения возможности взаимодействовать с ним со стороны PHP кода. Вроде бы процедура не сложная, но количество телодвижений все равно угнетает. К тому же на разных серверах постоянно случаются приключения, то uuid dev оказывается не установлен, то libboost работает не так, как нужно. С оглядки на все это, собрал в один bash скрипт всю процедуру скачивания и комплирирования Gearman 0.18 и PECL extension gearman-0.7.0. Надеюсь, это кому-нибудь сэкономит минуты работы и нервы.
       Установка Gearman сервера на Ubuntu/Debian&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=KwMB4k5itgE:TTzR_LUOqus:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=KwMB4k5itgE:TTzR_LUOqus:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?i=KwMB4k5itgE:TTzR_LUOqus:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=KwMB4k5itgE:TTzR_LUOqus:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?i=KwMB4k5itgE:TTzR_LUOqus:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=KwMB4k5itgE:TTzR_LUOqus:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/kachayev/~4/KwMB4k5itgE" height="1" width="1"/&gt;</description><feedburner:origLink>http://codemehanika.org/blog/2011-04-30-install-gearman-server-on-debian-like-os.html</feedburner:origLink></item><item><title>Простой способ оценки сбалансированности геймплея</title><link>http://feedproxy.google.com/~r/kachayev/~3/_JLnJ4uPFVQ/2011-04-23-simple-way-to-examine-gameplay.html</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexey S. Kachayev</dc:creator><pubDate>Fri, 22 Apr 2011 17:00:00 PDT</pubDate><guid isPermaLink="false">http://codemehanika.org/blog/2011-04-23-simple-way-to-examine-gameplay.html</guid><description>None
       Простой способ оценки сбалансированности геймплея&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=_JLnJ4uPFVQ:1kE58_wr3uI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=_JLnJ4uPFVQ:1kE58_wr3uI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?i=_JLnJ4uPFVQ:1kE58_wr3uI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=_JLnJ4uPFVQ:1kE58_wr3uI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?i=_JLnJ4uPFVQ:1kE58_wr3uI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=_JLnJ4uPFVQ:1kE58_wr3uI:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/kachayev/~4/_JLnJ4uPFVQ" height="1" width="1"/&gt;</description><feedburner:origLink>http://codemehanika.org/blog/2011-04-23-simple-way-to-examine-gameplay.html</feedburner:origLink></item><item><title>Zend_Form tips: несколько советов о том, как сделать код форм грамотным</title><link>http://feedproxy.google.com/~r/kachayev/~3/odJXbRDFi7c/2011-04-22-clean-code-of-your-zend-forms.html</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexey S. Kachayev</dc:creator><pubDate>Thu, 21 Apr 2011 17:00:00 PDT</pubDate><guid isPermaLink="false">http://codemehanika.org/blog/2011-04-22-clean-code-of-your-zend-forms.html</guid><description>Если у вас в проекте есть большие и сложные формы, функционирующие на основе Zend_Form, то вы должно было обращали внимание - со временем код таких форм становиться сложным, запутанным и нечитабельным. В данной статье я опишу то, как можно сохранять формы понятными.
       Zend_Form tips: несколько советов о том, как сделать код форм грамотным&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=odJXbRDFi7c:itW2hvmKLTc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=odJXbRDFi7c:itW2hvmKLTc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?i=odJXbRDFi7c:itW2hvmKLTc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=odJXbRDFi7c:itW2hvmKLTc:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?i=odJXbRDFi7c:itW2hvmKLTc:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=odJXbRDFi7c:itW2hvmKLTc:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/kachayev/~4/odJXbRDFi7c" height="1" width="1"/&gt;</description><feedburner:origLink>http://codemehanika.org/blog/2011-04-22-clean-code-of-your-zend-forms.html</feedburner:origLink></item><item><title>Тезисы моих докладов на ZFConf 2011</title><link>http://feedproxy.google.com/~r/kachayev/~3/diL9CffoALY/2011-04-21-abstracts-for-zf2011.html</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexey S. Kachayev</dc:creator><pubDate>Wed, 20 Apr 2011 22:30:22 PDT</pubDate><guid isPermaLink="false">http://codemehanika.org/blog/2011-04-21-abstracts-for-zf2011.html</guid><description>Короткий обзор 2х докладов, которые я буду делать на конференции по ZF в Петербурге
       Тезисы моих докладов на ZFConf 2011&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=diL9CffoALY:VxtlZ3HvyN0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=diL9CffoALY:VxtlZ3HvyN0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?i=diL9CffoALY:VxtlZ3HvyN0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=diL9CffoALY:VxtlZ3HvyN0:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?i=diL9CffoALY:VxtlZ3HvyN0:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=diL9CffoALY:VxtlZ3HvyN0:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/kachayev/~4/diL9CffoALY" height="1" width="1"/&gt;</description><feedburner:origLink>http://codemehanika.org/blog/2011-04-21-abstracts-for-zf2011.html</feedburner:origLink></item><item><title>Механика кода: обзор будущих публикаций</title><link>http://feedproxy.google.com/~r/kachayev/~3/lnDEaUXFyXA/2011-04-20-code-mehanika-posts-review.html</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexey S. Kachayev</dc:creator><pubDate>Tue, 19 Apr 2011 17:00:00 PDT</pubDate><guid isPermaLink="false">http://codemehanika.org/blog/2011-04-20-code-mehanika-posts-review.html</guid><description>Вместо вступительного слова. Обзор будущих публикаций и тех тем, которые будут подниматься мной чаще всего.
       Механика кода: обзор будущих публикаций&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=lnDEaUXFyXA:JhT0fBG1POs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=lnDEaUXFyXA:JhT0fBG1POs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?i=lnDEaUXFyXA:JhT0fBG1POs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=lnDEaUXFyXA:JhT0fBG1POs:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?i=lnDEaUXFyXA:JhT0fBG1POs:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kachayev?a=lnDEaUXFyXA:JhT0fBG1POs:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kachayev?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/kachayev/~4/lnDEaUXFyXA" height="1" width="1"/&gt;</description><feedburner:origLink>http://codemehanika.org/blog/2011-04-20-code-mehanika-posts-review.html</feedburner:origLink></item></channel></rss>

