<?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>goodguy о разработке &#187; goodguy</title>
	<atom:link href="http://dev.good-guy.me/archives/author/goodguy/feed" rel="self" type="application/rss+xml" />
	<link>http://dev.good-guy.me</link>
	<description>python, zope, php, sqlite, postgresql, mysql и прочее с чем сталкиваюсь</description>
	<lastBuildDate>Sun, 04 Dec 2011 17:17:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Экспорт-импорт данных django-cms</title>
		<link>http://dev.good-guy.me/archives/507</link>
		<comments>http://dev.good-guy.me/archives/507#comments</comments>
		<pubDate>Sun, 04 Dec 2011 17:15:40 +0000</pubDate>
		<dc:creator>goodguy</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[ПО]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[django-cms]]></category>

		<guid isPermaLink="false">http://dev.good-guy.me/?p=507</guid>
		<description><![CDATA[<a href="http://dev.good-guy.me/archives/507" title="Экспорт-импорт данных django-cms"></a>Приводил сегодня в порядок базу данных одного проекта на django-cms и в ходе этого процесса решил перенести накопившиеся данные в новую БД, инициализированную с нуля и с успешно прогнанными миграциями. И, т.к в документации об этом не было ни слова, &#8230;<p class="read-more"><a href="http://dev.good-guy.me/archives/507">Читать далее &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://dev.good-guy.me/archives/507" title="Экспорт-импорт данных django-cms"></a><p>Приводил сегодня в порядок базу данных одного проекта на django-cms и в ходе этого процесса решил перенести накопившиеся данные в новую БД, инициализированную с нуля и с успешно прогнанными миграциями. И, т.к в документации об этом не было ни слова, пришлось искать решение, и наткнуться на пару ошибок, после которых удалось создать готовый рецепт:</p>
<ul>
<li>Первым делом переносим данные из таблицы <tt>auth_user</tt>, например, средствами БД;</li>
<li>Далее делаем два файла с данными. Так нужно, чтобы избежать проблемы с ключами в таблице <tt>cms_placeholder</tt> (IntegrityError: duplicate key value violates unique constraint &#171;cms_placeholder_pkey&#187;), которые например описаны <a href="https://groups.google.com/d/topic/django-cms/cHGzNW4GpxA/discussion">в рассылке django-cms</a>:<br />
<code><br />
./manage.py dumpdata --indent=2 cms.placeholder > initial_data.cms.01.json</p>
<p>./manage.py dumpdata --indent=2 cms.cmsplugin cms.page cms.pagemoderatorstate cms.pageuser \<br />
  cms.title picture snippet text (сюда-же впишем и остальные плагины) > initial_data.cms.02.json<br />
</code></li>
<li>И теперь загружаем полученные данные в новую БД:<br />
<code><br />
./manage.py loaddata initial_data.cms.01.json<br />
./manage.py loaddata initial_data.cms.02.json<br />
</code></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://dev.good-guy.me/archives/507/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>К слову о многопоточности</title>
		<link>http://dev.good-guy.me/archives/502</link>
		<comments>http://dev.good-guy.me/archives/502#comments</comments>
		<pubDate>Fri, 04 Nov 2011 11:06:15 +0000</pubDate>
		<dc:creator>goodguy</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Разное]]></category>
		<category><![CDATA[Языки]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[twisted]]></category>

		<guid isPermaLink="false">http://dev.good-guy.me/?p=502</guid>
		<description><![CDATA[<a href="http://dev.good-guy.me/archives/502" title="К слову о многопоточности"></a>Довелось по работе столкнуться с сервисом шифрования, который был написан по словам авторов, вроде бы очень просто и примитивно, но протокол был очень неприятный: обмен шёл 18-байтовыми блоками символов через TCP-порт. Решил сделать к нему небольшой проксирующий сервис на twisted, &#8230;<p class="read-more"><a href="http://dev.good-guy.me/archives/502">Читать далее &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://dev.good-guy.me/archives/502" title="К слову о многопоточности"></a><p>Довелось по работе столкнуться с сервисом шифрования, который был написан по словам авторов, вроде бы очень просто и примитивно, но протокол был очень неприятный: обмен шёл 18-байтовыми блоками символов через TCP-порт. Решил сделать к нему небольшой проксирующий сервис на twisted, который бы вёл приём данных через HTTP POST запросы, выдавая результат в ответ. Стал проверять на скорость работы, и, этот «лёгкий простой» Java-сервис шифрования оказалось не выдержал и 100 единовременных запросов. Пришлось в тестах ограничиться 10-ю потоками, а заодно озадачиться вопросом как twisted переиспользует объекты протокола в многопоточном доступе (об этом другая история).</p>
<p>Мораль такова: как и <a href="http://michael-xiii.blogspot.com/">бывший коллега</a> в тестах обнаружил, что <a href="http://michael-xiii.blogspot.com/2011/10/pycurl-vs-httpclientfactorydeferred.html">twisted выдерживает на удивление столько потоков, что падаёт то, что стоит за ним</a>, так и здесь получилось, что то, что кажется кому-то простым и надёжным, на деле оказывается весьма падуче-тяжеловесным, когда речь идёт о высокой нагрузке. И спасибо разработчикам twisted за столь стремительный фреймворк <img src='http://dev.good-guy.me/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://dev.good-guy.me/archives/502/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BCM4313 в Ubuntu 11.10</title>
		<link>http://dev.good-guy.me/archives/497</link>
		<comments>http://dev.good-guy.me/archives/497#comments</comments>
		<pubDate>Sat, 15 Oct 2011 18:21:04 +0000</pubDate>
		<dc:creator>goodguy</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://dev.good-guy.me/?p=497</guid>
		<description><![CDATA[<a href="http://dev.good-guy.me/archives/497" title="BCM4313 в Ubuntu 11.10"></a>Вышла свежая Ubuntu Oneiric Ocelot и с ней появилась новая проблема с WiFi на моём Lenovo U165. Помимо того, что нужно было сделать для Ubuntu 11.04, теперь стоит поступить следующим образом: Снести, если установлены, драйвера broadcom-sta-common и файл /etc/modprobe.d/broadcom-sta-common.conf; Добавить &#8230;<p class="read-more"><a href="http://dev.good-guy.me/archives/497">Читать далее &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://dev.good-guy.me/archives/497" title="BCM4313 в Ubuntu 11.10"></a><p>Вышла свежая Ubuntu Oneiric Ocelot и с ней появилась новая проблема с WiFi на моём Lenovo U165. Помимо того, <a href="http://dev.good-guy.me/archives/475">что нужно было сделать для Ubuntu 11.04</a>, теперь стоит поступить следующим образом:</p>
<ol>
<li>Снести, если установлены, драйвера <tt>broadcom-sta-common</tt> и файл <tt>/etc/modprobe.d/broadcom-sta-common.conf</tt>;
<li>Добавить в <tt>/etc/modprobe.d/blacklist.conf</tt> строку:<br />
<code><br />
blacklist bcma<br />
</code></li>
</ol>
<p>После этого беспроводная связь будет беспроблемно подниматься при каждой загрузке.</p>
]]></content:encoded>
			<wfw:commentRss>http://dev.good-guy.me/archives/497/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Сборка debian пакета для дополнения к PHP из PECL</title>
		<link>http://dev.good-guy.me/archives/489</link>
		<comments>http://dev.good-guy.me/archives/489#comments</comments>
		<pubDate>Mon, 12 Sep 2011 11:32:49 +0000</pubDate>
		<dc:creator>goodguy</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Языки]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://dev.good-guy.me/?p=489</guid>
		<description><![CDATA[<a href="http://dev.good-guy.me/archives/489" title="Сборка debian пакета для дополнения к PHP из PECL"></a>Я довольно часто использую удобный класс HTTPRequest из дополнения pecl_http, который описан в официальной документации по PHP. Но в очередной раз устанавливая его из PECL поразился тому сколько шагов нужно сделать для его сборки на чистой системе, после чего решил &#8230;<p class="read-more"><a href="http://dev.good-guy.me/archives/489">Читать далее &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://dev.good-guy.me/archives/489" title="Сборка debian пакета для дополнения к PHP из PECL"></a><p>Я довольно часто использую удобный класс <tt>HTTPRequest</tt> из дополнения <a href="http://pecl.php.net/package/pecl_http">pecl_http</a>, который описан в <a href="http://php.net/HTTPRequest">официальной документации</a> по PHP. Но в очередной раз устанавливая его из PECL поразился тому сколько шагов нужно сделать для его сборки на чистой системе, после чего решил подсобить админам, собрав для него стандартный debian-пакет.</p>
<p><span id="more-489"></span></p>
<p>Сначала нужно было определиться с зависимостями: ими стали пакеты <tt>php5-dev</tt> (включающий в себя команду <tt>phpize</tt> без которой расширение не ставилось) и <tt>libcurl4-openssl-dev</tt>, для поддержки SSL соединений и вообще работу через библиотеку CURL.</p>
<p>После этого магия совсем простая. Нужно установить уже готовый скрипт для подготовки архивов из PECL к сборке в debian:</p>
<p><code><br />
apt-get install php5-dev dh-make-php fakeroot xsltproc<br />
</code></p>
<p>Теперь с помощью этого скрипта подготовим пакет pecl_http:</p>
<p><code><br />
dh-make-pecl --depends curl --build-depends libcurl4-openssl-dev --package-name http pecl_http<br />
</code></p>
<p>Будет создан каталог php-http-x.x.x (соответствующий текущей версии расширения). В нём уже будут необходимые файлы в каталоге debian. Опция <tt>package-name</tt> сообщает скрипту, что по-настоящему пакет называется <tt>http</tt> и собранная библиотека соответственно будет <tt>http.so</tt>, и именно такое название надо использовать для включения расширения в /etc/php5/conf.d.</p>
<p>После этого выполняем прямо в каталоге с расширением команду:</p>
<p><code><br />
dpkg-buildpackage -rfakeroot<br />
</code></p>
<p>И получаем во внешнем каталоге весь набор, включая debian пакет, который уже можно спокойно ставить со всеми зависимостями.</p>
]]></content:encoded>
			<wfw:commentRss>http://dev.good-guy.me/archives/489/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Польза новых задач</title>
		<link>http://dev.good-guy.me/archives/485</link>
		<comments>http://dev.good-guy.me/archives/485#comments</comments>
		<pubDate>Wed, 24 Aug 2011 18:09:56 +0000</pubDate>
		<dc:creator>goodguy</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Языки]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[twisted]]></category>

		<guid isPermaLink="false">http://dev.good-guy.me/?p=485</guid>
		<description><![CDATA[<a href="http://dev.good-guy.me/archives/485" title="Польза новых задач"></a>По-настоящему мощь очередного фреймворка понимаешь, когда наконец-то сталкиваешься с задачей под которую он очевидно был заточен и вокруг базы под которую он обрастал. Как сейчас столкнулся на работе с необходимостью реализации немного извращённого соединения с обменом данными через TCP-сокеты сообщениями &#8230;<p class="read-more"><a href="http://dev.good-guy.me/archives/485">Читать далее &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://dev.good-guy.me/archives/485" title="Польза новых задач"></a><p>По-настоящему мощь очередного фреймворка понимаешь, когда наконец-то сталкиваешься с задачей под которую он очевидно был заточен и вокруг базы под которую он обрастал. Как сейчас столкнулся на работе с необходимостью реализации немного извращённого соединения с обменом данными через TCP-сокеты сообщениями по ISO 8583. Быстрый любопытный взгляд в классы <a href="http://twistedmatrix.com">Twisted</a> открыл что всё написано до нас, и всё, что остаётся &ndash; обернуть в красивую запускалку, дописать чуток логики и поработать над тестами, которые открыли несколько скрытых болезней. Ну и спасибо нашим админам, ещё поучиться засовывать получившийся модуль в красивый debian-пакет со скриптами и прочими свистелками <img src='http://dev.good-guy.me/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
]]></content:encoded>
			<wfw:commentRss>http://dev.good-guy.me/archives/485/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Оптимизация для Python</title>
		<link>http://dev.good-guy.me/archives/480</link>
		<comments>http://dev.good-guy.me/archives/480#comments</comments>
		<pubDate>Tue, 19 Jul 2011 10:51:01 +0000</pubDate>
		<dc:creator>goodguy</dc:creator>
				<category><![CDATA[Языки]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://dev.good-guy.me/?p=480</guid>
		<description><![CDATA[<a href="http://dev.good-guy.me/archives/480" title="Оптимизация для Python"></a>Попалась в руки занимательная статья как улучшить время выполнения python-программ, вкупе с разными мелкими хитростями, помогающими в разработке. Примеры не сразу могут быть понятны в плане смысла, но увлекательны]]></description>
			<content:encoded><![CDATA[<a href="http://dev.good-guy.me/archives/480" title="Оптимизация для Python"></a><p style="text-align: justify">Попалась в руки <a href="http://wiki.python.org/moin/PythonSpeed/PerformanceTips">занимательная статья</a> как улучшить время выполнения python-программ, вкупе с разными мелкими хитростями, помогающими в разработке. Примеры не сразу могут быть понятны в плане смысла, но увлекательны <img src='http://dev.good-guy.me/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://dev.good-guy.me/archives/480/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wi-Fi в Ubuntu 11.04</title>
		<link>http://dev.good-guy.me/archives/475</link>
		<comments>http://dev.good-guy.me/archives/475#comments</comments>
		<pubDate>Fri, 29 Apr 2011 16:45:14 +0000</pubDate>
		<dc:creator>goodguy</dc:creator>
				<category><![CDATA[ПО]]></category>
		<category><![CDATA[Разное]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://dev.good-guy.me/?p=475</guid>
		<description><![CDATA[<a href="http://dev.good-guy.me/archives/475" title="Wi-Fi в Ubuntu 11.04"></a>После установки свежей Ubuntu 11.04 (Natty Narwhal) на свой Ideapad U165 обнаружил, что Wi-Fi теперь не включается, даже если включить галочку &#171;Беспроводные соединения&#187; в Network Manager. Полдня было убито на копание в форумах, чтобы вытащить работающий рецепт для устройств broadcom &#8230;<p class="read-more"><a href="http://dev.good-guy.me/archives/475">Читать далее &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://dev.good-guy.me/archives/475" title="Wi-Fi в Ubuntu 11.04"></a><p style="text-align: justify">После установки свежей Ubuntu 11.04 (Natty Narwhal) на свой Ideapad U165 обнаружил, что Wi-Fi теперь не включается, даже если включить галочку &laquo;Беспроводные соединения&raquo; в Network Manager. Полдня было убито на копание в форумах, чтобы вытащить работающий рецепт для устройств broadcom с идентификатором <tt>14e4:4727</tt> (BCM4313): достаточно запретить модуль <tt>acer-wmi</tt></p>
<p><code><br />
modprobe -r acer-wmi<br />
</code></p>
<p style="text-align: justify">И после этого включить его в <tt>/etc/modprobe.d/blacklist.conf</tt>, чтобы этот поганец не мешался после перезагрузки.</p>
]]></content:encoded>
			<wfw:commentRss>http://dev.good-guy.me/archives/475/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>об incrontab замолвите слово</title>
		<link>http://dev.good-guy.me/archives/469</link>
		<comments>http://dev.good-guy.me/archives/469#comments</comments>
		<pubDate>Thu, 31 Mar 2011 11:02:02 +0000</pubDate>
		<dc:creator>goodguy</dc:creator>
				<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://dev.good-guy.me/?p=469</guid>
		<description><![CDATA[<a href="http://dev.good-guy.me/archives/469" title="об incrontab замолвите слово"></a>Сегодня озадачился тем, как сделать так, чтобы при обновлении данных об остатках товаров (которые хранятся в 1С и выгружаются в виде .csv файла), происходило автоматическое обновление данных в Satchmo. Сам скрипт для чтения остатков из csv довольно простой, и на &#8230;<p class="read-more"><a href="http://dev.good-guy.me/archives/469">Читать далее &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://dev.good-guy.me/archives/469" title="об incrontab замолвите слово"></a><p style="text-align: justify">Сегодня озадачился тем, как сделать так, чтобы при обновлении данных об остатках товаров (которые хранятся в 1С и выгружаются в виде .csv файла), происходило автоматическое обновление данных в Satchmo. Сам скрипт для чтения остатков из csv довольно простой, и на днях выложу его на github, хотя уверен, что подобное ищется в интернете легко и быстро. А вот проблему с тем, как угадать с моментом запуска, раньше решали просто &mdash; независимо от состояния файла, данные из него импортировались раз в 15 минут. Теперь же нашёл весьма изящное решение &mdash; <a href="http://wiki.opennet.ru/Incrontab">incrontab</a>, демон, работающий аналогично cron, но срабатывающий по событиям, связанным с созданием/удалением/изменением файлов и их атрибутов. Удобно и просто <img src='http://dev.good-guy.me/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://dev.good-guy.me/archives/469/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>django-cms, mptt и get_ancestors</title>
		<link>http://dev.good-guy.me/archives/463</link>
		<comments>http://dev.good-guy.me/archives/463#comments</comments>
		<pubDate>Sun, 27 Mar 2011 11:45:54 +0000</pubDate>
		<dc:creator>goodguy</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[ПО]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://dev.good-guy.me/?p=463</guid>
		<description><![CDATA[<a href="http://dev.good-guy.me/archives/463" title="django-cms, mptt и get_ancestors"></a>Почему-то поисковики плохо выводят на решение проблемы с django-cms, когда, скажем, после обновления, попытка выполнить любую команду через manage.py приводит к ошибке: File "/usr/local/lib/python2.6/dist-packages/publisher/mptt_support.py", line 142, in install_mptt attrs[method_name] = getattr(mptt_models, method_name) AttributeError: 'module' object has no attribute 'get_ancestors' Решение &#8230;<p class="read-more"><a href="http://dev.good-guy.me/archives/463">Читать далее &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://dev.good-guy.me/archives/463" title="django-cms, mptt и get_ancestors"></a><p style="text-align: justify">Почему-то поисковики плохо выводят на решение проблемы с django-cms, когда, скажем, после обновления, попытка выполнить любую команду через <tt>manage.py</tt> приводит к ошибке:</p>
<pre name="code" class="python">
File "/usr/local/lib/python2.6/dist-packages/publisher/mptt_support.py", line 142, in install_mptt
    attrs[method_name] = getattr(mptt_models, method_name)
AttributeError: 'module' object has no attribute 'get_ancestors'
</pre>
<p style="text-align: justify">Решение на самом деле простое: в django-cms есть уже встроенный модуль mptt. Но, если ставить через pip, то он устанавливает django-mptt, который естественно оказывается приоритетнее и несовместимым. Выход один: удалять django-mptt сразу после установки. Ну и использовать virtualenv, если есть необходимость в свежей версии django-mptt.</p>
<p style="text-align: justify"><strong>Дополнение:</strong> в django-cms версии 2.2 обещают прекратить эту порочную практику и нормально работать с django-mptt. Так-что ждём <img src='http://dev.good-guy.me/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://dev.good-guy.me/archives/463/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Успел за трендом</title>
		<link>http://dev.good-guy.me/archives/457</link>
		<comments>http://dev.good-guy.me/archives/457#comments</comments>
		<pubDate>Tue, 22 Mar 2011 10:05:56 +0000</pubDate>
		<dc:creator>goodguy</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[ПО]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[satchmo]]></category>

		<guid isPermaLink="false">http://dev.good-guy.me/?p=457</guid>
		<description><![CDATA[<a href="http://dev.good-guy.me/archives/457" title="Успел за трендом"></a>Вот и я оказался среди прочих, кто завёл себе профиль на github. В качестве пробного шара выложил туда модуль доставки ЕМС России для Satchmo (интернет-магазин на Django). Модуль обкатан и используется в нашем велоодежном проекте и может пригодится тем, кто &#8230;<p class="read-more"><a href="http://dev.good-guy.me/archives/457">Читать далее &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://dev.good-guy.me/archives/457" title="Успел за трендом"></a><p style="text-align: justify">Вот и я оказался среди прочих, кто завёл себе профиль на <a href="https://github.com">github</a>. В качестве пробного шара выложил туда <a href="https://github.com/goodguy/satchmo-ems-rus">модуль доставки ЕМС России</a> для Satchmo (интернет-магазин на Django). Модуль обкатан и используется в <a href="http://fysika.ru">нашем велоодежном проекте</a> и может пригодится тем, кто смотрит в сторону python для своего магазина в сети. Всё-таки пока для России Satchmo не слишком готов.</p>
]]></content:encoded>
			<wfw:commentRss>http://dev.good-guy.me/archives/457/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

