<?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"
	>

<channel>
	<title>Spoof's blog</title>
	<atom:link href="http://spoofa.info/feed/" rel="self" type="application/rss+xml" />
	<link>http://spoofa.info</link>
	<description>...about martian's and penguin's life</description>
	<pubDate>Tue, 25 Nov 2008 22:59:44 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
	<language>en</language>
			<item>
		<title>Тест для твиттера и жэжэ :)</title>
		<link>http://spoofa.info/2008/11/26/%d1%82%d0%b5%d1%81%d1%82-%d0%b4%d0%bb%d1%8f-%d1%82%d0%b2%d0%b8%d1%82%d1%82%d0%b5%d1%80%d0%b0-%d0%b8-%d0%b6%d1%8d%d0%b6%d1%8d/</link>
		<comments>http://spoofa.info/2008/11/26/%d1%82%d0%b5%d1%81%d1%82-%d0%b4%d0%bb%d1%8f-%d1%82%d0%b2%d0%b8%d1%82%d1%82%d0%b5%d1%80%d0%b0-%d0%b8-%d0%b6%d1%8d%d0%b6%d1%8d/#comments</comments>
		<pubDate>Tue, 25 Nov 2008 22:59:44 +0000</pubDate>
		<dc:creator>spoof</dc:creator>
		
		<category><![CDATA[blog]]></category>

		<guid isPermaLink="false">http://spoofa.info/?p=108</guid>
		<description><![CDATA[собственно тест
]]></description>
			<content:encoded><![CDATA[<p>собственно тест</p>
]]></content:encoded>
			<wfw:commentRss>http://spoofa.info/2008/11/26/%d1%82%d0%b5%d1%81%d1%82-%d0%b4%d0%bb%d1%8f-%d1%82%d0%b2%d0%b8%d1%82%d1%82%d0%b5%d1%80%d0%b0-%d0%b8-%d0%b6%d1%8d%d0%b6%d1%8d/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Тест кросспоста в ЖЖ</title>
		<link>http://spoofa.info/2008/10/31/%d1%82%d0%b5%d1%81%d1%82-%d0%ba%d1%80%d0%be%d1%81%d1%81%d0%bf%d0%be%d1%81%d1%82%d0%b0-%d0%b2-%d0%b6%d0%b6/</link>
		<comments>http://spoofa.info/2008/10/31/%d1%82%d0%b5%d1%81%d1%82-%d0%ba%d1%80%d0%be%d1%81%d1%81%d0%bf%d0%be%d1%81%d1%82%d0%b0-%d0%b2-%d0%b6%d0%b6/#comments</comments>
		<pubDate>Fri, 31 Oct 2008 16:16:43 +0000</pubDate>
		<dc:creator>spoof</dc:creator>
		
		<category><![CDATA[life]]></category>

		<guid isPermaLink="false">http://spoofa.info/?p=102</guid>
		<description><![CDATA[тест
]]></description>
			<content:encoded><![CDATA[<p>тест</p>
]]></content:encoded>
			<wfw:commentRss>http://spoofa.info/2008/10/31/%d1%82%d0%b5%d1%81%d1%82-%d0%ba%d1%80%d0%be%d1%81%d1%81%d0%bf%d0%be%d1%81%d1%82%d0%b0-%d0%b2-%d0%b6%d0%b6/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Переезд на Flickr</title>
		<link>http://spoofa.info/2008/10/26/%d0%bf%d0%b5%d1%80%d0%b5%d0%b5%d0%b7%d0%b4-%d0%bd%d0%b0-flickr/</link>
		<comments>http://spoofa.info/2008/10/26/%d0%bf%d0%b5%d1%80%d0%b5%d0%b5%d0%b7%d0%b4-%d0%bd%d0%b0-flickr/#comments</comments>
		<pubDate>Sun, 26 Oct 2008 09:36:09 +0000</pubDate>
		<dc:creator>spoof</dc:creator>
		
		<category><![CDATA[flickr]]></category>

		<category><![CDATA[life]]></category>

		<category><![CDATA[photo]]></category>

		<guid isPermaLink="false">http://spoofa.info/?p=96</guid>
		<description><![CDATA[Давеча переехал на flickr - теперь заливаю фотки только туда, ибо используемый из-за лени Вконтакте просто умер для меня в качестве галереи после того, как сравнил качество фото в нем и Flickr&#8217;e. Не знаю чего уж там делает Вконтакте в связке с php+gd+imagemagick, но фотки просто ужасно портятся.
Конечно хотелось бы немножко выпердриться, да создать свою [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/31684956@N02/2975445274/" class="flickr-image"  title="Me" rel="flickr-mgr" ><img src="http://farm4.static.flickr.com/3073/2975445274_1c829dbaf2_t.jpg" align="left" alt="Me" class="flickr-medium" longdesc="http://farm4.static.flickr.com/3073/2975445274_2c4ba9d8bf_o.jpg" /></a>Давеча <a href="http://flickr.com/photos/spoofik/">переехал</a> на flickr - теперь заливаю фотки только туда, ибо используемый из-за лени Вконтакте просто умер для меня в качестве галереи после того, как сравнил качество фото в нем и Flickr&#8217;e. Не знаю чего уж там делает Вконтакте в связке с php+gd+imagemagick, но фотки просто ужасно портятся.<br />
Конечно хотелось бы немножко выпердриться, да создать свою галерею, но фотки пока недотягивают по уровню на хорошее портфолио в стиле персональной странички с работами как у известных фотографов. Да и времени нет. Хочется очень многого.</p>
]]></content:encoded>
			<wfw:commentRss>http://spoofa.info/2008/10/26/%d0%bf%d0%b5%d1%80%d0%b5%d0%b5%d0%b7%d0%b4-%d0%bd%d0%b0-flickr/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Дружим django и экспорт в Excel</title>
		<link>http://spoofa.info/2008/10/23/%d0%b4%d1%80%d1%83%d0%b6%d0%b8%d0%bc-django-%d0%b8-%d1%8d%d0%ba%d1%81%d0%bf%d0%be%d1%80%d1%82-%d0%b2-excel/</link>
		<comments>http://spoofa.info/2008/10/23/%d0%b4%d1%80%d1%83%d0%b6%d0%b8%d0%bc-django-%d0%b8-%d1%8d%d0%ba%d1%81%d0%bf%d0%be%d1%80%d1%82-%d0%b2-excel/#comments</comments>
		<pubDate>Thu, 23 Oct 2008 17:52:54 +0000</pubDate>
		<dc:creator>spoof</dc:creator>
		
		<category><![CDATA[comp]]></category>

		<category><![CDATA[devel]]></category>

		<category><![CDATA[django]]></category>

		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://spoofa.info/?p=95</guid>
		<description><![CDATA[И так, мы хотим, чтобы пользовал клацнув на кнопочку &#8220;Экспорт в Excel&#8221; получил это документ и был доволен. Что может проще скажете вы - взять положить файл в каталог и тупо его HTTP сервером отдавать. Но не все так просто в случае если вам необходимо, чтобы этот файл генерировался динамически (из-за меняющихся в нем данных), [...]]]></description>
			<content:encoded><![CDATA[<p>И так, мы хотим, чтобы пользовал клацнув на кнопочку &#8220;Экспорт в Excel&#8221; получил это документ и был доволен. Что может проще скажете вы - взять положить файл в каталог и тупо его HTTP сервером отдавать. Но не все так просто в случае если вам необходимо, чтобы этот файл генерировался динамически (из-за меняющихся в нем данных), например django, на котором крутиться сайт.</p>
<p>Насколько мне удалось узнать, в мире существует один адеватный генератор Excel файлов - <a href="http://pypi.python.org/pypi/xlwt/">xlwt</a>, который можно юзать на Unix системах. Это клон pyExcelator&#8217;a, но лучше подходит для django и сохранения не в файл. С документацией у него беда, но парочку линков все же нашел: <a href="http://ntalikeris.blogspot.com/2007/10/create-excel-file-with-python-my-sort.html">обзор</a> и <a href="http://files.blog-city.com/files/F05/96843/b/cheatsheet.py">пример</a>.<br />
Кроме того, примеры есть и в тарболе с pyexcelator&#8217;ом или в самом xlwt.</p>
<p>И так создаем во views.py приложения django функцию, которая будет возрвращать xls файл:</p>
<div class="codesnip-container" >def export_xls(request):<br />
wb = Workbook() # создаем основной документ<br />
sheet = wb.add_sheet(&#8217;sheet1&#8242;) # добавляем лист (должен быть как минимум 1 лист)<br />
# далее идут действия по добавлению данный на лист<br />
# это нам не интересно в данном контексте</div>
<p>Но это еще не все. Далее нам нужно этот документ каким-то образом передать пользователю. Отсюда вытекают 2 проблемы или вопроса:</p>
<ol>
<li>Как же собственно преобразовать объект типа <em>Workbook</em> в строку (читай stream). По идее же должен быть какой-то метод save или что-то подобное. Да, есть, но в случае использования pyExcelator&#8217;a метод save предполагает сохранение в файл, но не в <em>переменную</em> как нам надо. В <em>xlwt</em> метод <em>save()</em> более гибкий. Ниже расскажу</li>
<li>И как дать этому &#8220;файлу&#8221; человеческое имя, если у нас данные для генерации xls файла передаются через GET/POST параметры. При таком раскладе у нас файл будет называться последним &#8220;нодом&#8221; url&#8217;a, на который ведет ссылка. Например, если ссылка: http://bla.com/bla/export_xls?bla&amp;bla=2, то файл будет называться export_xls, что не есть гуд</li>
</ol>
<p>Начну пожалуй со второй проблемы, ибо она решается довольно просто. Если залезть в <a href="http://www.ietf.org/rfc/rfc2183.txt">RFC 2183</a>, то можно узнать про интересное поле в HTTP заголовке - <em>Content-Disposition</em>, которое то и позволит присвоить имя файлу через присвоение ему типа <em>attachment</em> с параметром <em>filename</em>. Для Django это будет выглядеть так:</p>
<div class="codesnip-container" >response = HttpResponse(xls, mimetype=&#8221;application/vnd.ms-excel&#8221;)<br />
response['Content-Disposition'] = &#8216;attachment; filename= %s&#8217; % (filename)<br />
return response<br />
# здесь xls - фактически представляет собой переменную с содержимым Excel файла,<br />
# filename - название файла, которое мы должны задать ранее</div>
<p>И так, для решения первой проблемы (в случае если используется pyExcelator) я порылся в коде pyExcelator&#8217;a и выкопал следующее. Оказывается метод <em>save()</em> класса <em>Workbook</em> делает следующее:</p>
<div class="codesnip-container" >def save(self, filename):<br />
import CompoundDoc</div>
<div class="codesnip-container" ></div>
<div class="codesnip-container" >doc = CompoundDoc.XlsDoc()<br />
doc.save(filename, self.get_biff_data())</div>
<p><em>CompoundDoc.XlsDoc()</em> собственно и представляет собой обертку над бинарными данными, который сгенерировал <em>Workbook</em> (их получаем с помощью <em>self.get_biff_data()</em>). Как раз после <em>save()</em> класса<em> CompoundDoc.XlsDoc() </em>и получаем конечный Excel документ. Но смотрим далее в метод <em>save()</em> этого <em>XlsDoc</em>&#8216;a:</p>
<div class="codesnip-container" >def save(self, filename, stream):<br />
# 1. Align stream on 0&#215;1000 boundary (and therefore on sector boundary)<br />
padding = &#8216;\x00&#8242; * (0&#215;1000 - (len(stream) % 0&#215;1000))<br />
self.book_stream_len = len(stream) + len(padding)</div>
<div class="codesnip-container" >self.__build_directory()<br />
self.__build_sat()<br />
self.__build_header()</div>
<div class="codesnip-container" >f = file(filename, &#8216;wb&#8217;)<br />
f.write(self.header)<br />
f.write(self.packed_MSAT_1st)<br />
f.write(stream)<br />
f.write(padding)<br />
f.write(self.packed_MSAT_2nd)<br />
f.write(self.packed_SAT)<br />
f.write(self.dir_stream)<br />
f.close()</div>
<p>Как видно, опять, тут идет работа с файлов. Слава богу это конечный пункт сохранения файла, поэтому смело овверайдим эти два класса для работы с Django:</p>
<div class="codesnip-container" >class XlsDoc(CompoundDoc.XlsDoc):<br />
def get(self, stream):<br />
padding = &#8216;\x00&#8242; * (0&#215;1000 - (len(stream) % 0&#215;1000))<br />
self.book_stream_len = len(stream) + len(padding)<br />
self.__build_directory()<br />
self.__build_sat()<br />
self.__build_header()<br />
return &#8216;%s%s%s%s%s%s%s&#8217; % (<br />
self.header,<br />
self.packed_MSAT_1st,<br />
stream,<br />
padding,<br />
self.packed_MSAT_2nd,<br />
self.packed_SAT,<br />
self.dir_stream)</div>
<div class="codesnip-container" ></div>
<div class="codesnip-container" >class Workbook(Workbook):<br />
def get(self):<br />
doc = XlsDoc()<br />
return doc.get(self.get_biff_data())</div>
<p>Вставляем этот код в <em>views.py</em> нашего приложения и в коде нашей функции <em>export_xls()</em> после создания и генерации данных пишем:</p>
<div class="codesnip-container" >xsl = wb.get()</div>
<p>Здесь <em>wb</em> - это WoorBook из первого листинга (но это не тот Workbook, что из pyExcelator&#8217;a, а наш, который мы переопределили).<br />
Вот собственно и все. Небольшая компиляция собранных с краев интернета кусочков. Может и есть какой-то более прямой способ.<br />
<strong>UPD</strong> В случае использования <em>xlwt</em> все проще. Юзаем:</p>
<div class="codesnip-container" >import cStringIO<br />
xls = cStringIO.StringIO()<br />
..<br />
wb.save(xls)<br />
response = HttpResponse(xls.getvalue(), mimetype=&#8221;application/vnd.ms-excel&#8221;)</div>
]]></content:encoded>
			<wfw:commentRss>http://spoofa.info/2008/10/23/%d0%b4%d1%80%d1%83%d0%b6%d0%b8%d0%bc-django-%d0%b8-%d1%8d%d0%ba%d1%81%d0%bf%d0%be%d1%80%d1%82-%d0%b2-excel/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Это гениально</title>
		<link>http://spoofa.info/2008/07/13/%d1%8d%d1%82%d0%be-%d0%b3%d0%b5%d0%bd%d0%b8%d0%b0%d0%bb%d1%8c%d0%bd%d0%be/</link>
		<comments>http://spoofa.info/2008/07/13/%d1%8d%d1%82%d0%be-%d0%b3%d0%b5%d0%bd%d0%b8%d0%b0%d0%bb%d1%8c%d0%bd%d0%be/#comments</comments>
		<pubDate>Sun, 13 Jul 2008 07:57:55 +0000</pubDate>
		<dc:creator>spoof</dc:creator>
		
		<category><![CDATA[life]]></category>

		<category><![CDATA[design]]></category>

		<category><![CDATA[links]]></category>

		<guid isPermaLink="false">http://spoofa.info/?p=92</guid>
		<description><![CDATA[Ask-art.net

И foot ashtray: 

via http://designyoutrust.com
]]></description>
			<content:encoded><![CDATA[<p><a href="http://ask-art.net">Ask-art.net</a><br />
<a href="http://ask-art.net/"><img src="http://www1.clikpic.com/askart/images/Final%20Standing%20Front%20parts%20Flat.jpg" alt="" /><br />
</a><br />И foot ashtray: <br />
<a href="http://www.shopmodi.com/products/foot-ashtray"><img src="http://static1.shopify.com/s/files/1/0000/0399/products/foot_ashtray_medium.jpg" alt="" /></a><br />
via <a href="http://designyoutrust.com">http://designyoutrust.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://spoofa.info/2008/07/13/%d1%8d%d1%82%d0%be-%d0%b3%d0%b5%d0%bd%d0%b8%d0%b0%d0%bb%d1%8c%d0%bd%d0%be/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Mercurial tips</title>
		<link>http://spoofa.info/2008/07/11/mercurial-tips/</link>
		<comments>http://spoofa.info/2008/07/11/mercurial-tips/#comments</comments>
		<pubDate>Fri, 11 Jul 2008 12:05:06 +0000</pubDate>
		<dc:creator>spoof</dc:creator>
		
		<category><![CDATA[devel]]></category>

		<category><![CDATA[mercurial]]></category>

		<guid isPermaLink="false">http://spoofa.info/?p=91</guid>
		<description><![CDATA[Чтобы сплитнуть репозитарий или, например, вытащить какую-нибудь поддиректорию в корень нового репозитария в делаем:


hg init new_repo
В этой же директории где лежит и старый репозитарий old_repo, который требуется разделить.

Создаем файл filemap.txt, в котором задаем те директории, которые надо включить в новый репозитарий:
exclude &#8220;*&#8221;
rename &#8220;subdir&#8221; &#8220;.&#8221;
include &#8220;subdir&#8221;
Т.е. игнорируем все файлы из old_repo, переименовываем subdir в &#8220;.&#8221;, чтобы [...]]]></description>
			<content:encoded><![CDATA[<p>Чтобы сплитнуть репозитарий или, например, вытащить какую-нибудь поддиректорию в корень нового репозитария в делаем:</p>
<ul>
<li>
<div class="codesnip-container" >hg init new_repo</div>
<p>В этой же директории где лежит и старый репозитарий old_repo, который требуется разделить.
</li>
<li>Создаем файл filemap.txt, в котором задаем те директории, которые надо включить в новый репозитарий:
<div class="codesnip-container" >exclude &#8220;*&#8221;<br />
rename &#8220;subdir&#8221; &#8220;.&#8221;<br />
include &#8220;subdir&#8221;</div>
<p>Т.е. игнорируем все файлы из old_repo, переименовываем subdir в &#8220;.&#8221;, чтобы эта директория стала корнем new_repo и включаем ее в копирование</li>
<li>Выполняем команду:
<div class="codesnip-container" >hg convert &#8211;filemap filemap.txt old_repo/ new_repo/</div>
</li>
<li>
<div class="codesnip-container" >cd new_repo &#038;&#038; hg update</div>
</li>
</ul>
<p>Собственна все, далее можно из old_repo удалять subdir:</p>
<div class="codesnip-container" >cd old_repo &#038;&#038; hg remove subdir</div>
]]></content:encoded>
			<wfw:commentRss>http://spoofa.info/2008/07/11/mercurial-tips/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Новые игрушки</title>
		<link>http://spoofa.info/2008/07/10/%d0%bd%d0%be%d0%b2%d1%8b%d0%b5-%d0%b8%d0%b3%d1%80%d1%83%d1%88%d0%ba%d0%b8/</link>
		<comments>http://spoofa.info/2008/07/10/%d0%bd%d0%be%d0%b2%d1%8b%d0%b5-%d0%b8%d0%b3%d1%80%d1%83%d1%88%d0%ba%d0%b8/#comments</comments>
		<pubDate>Thu, 10 Jul 2008 11:42:49 +0000</pubDate>
		<dc:creator>spoof</dc:creator>
		
		<category><![CDATA[life]]></category>

		<category><![CDATA[покупки]]></category>

		<guid isPermaLink="false">http://spoofa.info/?p=90</guid>
		<description><![CDATA[Импульсивно взял и купил себе canon 450d. Теперь творчеству нет предела  Мануал уже весь прочитал, теперь думаю&#8230; насколько мне китового объектива хватит&#8230;

]]></description>
			<content:encoded><![CDATA[<p>Импульсивно взял и купил себе canon 450d. Теперь творчеству нет предела <img src='http://spoofa.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> Мануал уже весь прочитал, теперь думаю&#8230; насколько мне китового объектива хватит&#8230;</p>
<p><img src="http://canon.ru/files/images/products/cameras/EOS-450D_big.jpg" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://spoofa.info/2008/07/10/%d0%bd%d0%be%d0%b2%d1%8b%d0%b5-%d0%b8%d0%b3%d1%80%d1%83%d1%88%d0%ba%d0%b8/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Some tips</title>
		<link>http://spoofa.info/2008/06/18/some-tips/</link>
		<comments>http://spoofa.info/2008/06/18/some-tips/#comments</comments>
		<pubDate>Wed, 18 Jun 2008 12:52:43 +0000</pubDate>
		<dc:creator>spoof</dc:creator>
		
		<category><![CDATA[devel]]></category>

		<guid isPermaLink="false">http://spoofa.info/?p=89</guid>
		<description><![CDATA[
Переезжаем с automake 0.9x на 1.10:
for file in $(find . -name &#8220;Makefile.am&#8221; -type f); do sed -e &#8217;s/INCLUDES/AM_CPPFLAGS/g&#8217; $file &#62; $file-tmp; mv $file-tmp $file; done;

Удаляем все каталоги .svn из сырцов:
find . -name &#8220;.svn&#8221; -type d -exec rm -rf {} \;


 
]]></description>
			<content:encoded><![CDATA[<ol>
<li>Переезжаем с automake 0.9x на 1.10:
<div class="codesnip-container" >for file in $(find . -name &#8220;Makefile.am&#8221; -type f); do sed -e &#8217;s/INCLUDES/AM_CPPFLAGS/g&#8217; $file &gt; $file-tmp; mv $file-tmp $file; done;</div>
</li>
<li>Удаляем все каталоги .svn из сырцов:
<div class="codesnip-container" >find . -name &#8220;.svn&#8221; -type d -exec rm -rf {} \;</div>
</li>
</ol>
<p> </p>
]]></content:encoded>
			<wfw:commentRss>http://spoofa.info/2008/06/18/some-tips/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Mysql tricks</title>
		<link>http://spoofa.info/2008/04/21/mysql-tricks/</link>
		<comments>http://spoofa.info/2008/04/21/mysql-tricks/#comments</comments>
		<pubDate>Mon, 21 Apr 2008 14:00:54 +0000</pubDate>
		<dc:creator>spoof</dc:creator>
		
		<category><![CDATA[devel]]></category>

		<guid isPermaLink="false">http://spoofa.info/?p=87</guid>
		<description><![CDATA[Два дня минус почти просто так. Были потрачены они на поиск баги в моем питоньем скрипте, который р аботает с MySQL. Работа эта заключается в получении данных и распихивании их по словарикам (питоний). Так вот, было замечено, что для двух одинаковых значений ключа создается 2 записи в словаре (какого ху&#8230;дожника?!). При более внимательном рассмотрении было [...]]]></description>
			<content:encoded><![CDATA[<p>Два дня минус почти просто так. Были потрачены они на поиск баги в моем питоньем скрипте, который р аботает с MySQL. Работа эта заключается в получении данных и распихивании их по словарикам (питоний). Так вот, было замечено, что для двух одинаковых значений ключа создается 2 записи в словаре (какого ху&#8230;дожника?!). При более внимательном рассмотрении было выяснено, что эти два якобы одинаковых ключа на самом деле разные, а разные они в регистре одной буквы. При запросе из MySQL возвращалось 2 значения вместо одного - отсюда возникали глюки. А все потому, что MySQL по-дефолту при сравнении строк не учитывает регистр, если не указаны collations для поля/таблицы в *_bin или *_cs. Век живи - век учись. Это конечно должно было известно быть - оно мне и было известно, но я об этом успешно давно забыл, ибо уже не помню когда последний раз с этим сталкивался. Взято <a href="http://dev.mysql.com/doc/refman/5.0/en/case-sensitivity.html ">отсюда</a> </p>
]]></content:encoded>
			<wfw:commentRss>http://spoofa.info/2008/04/21/mysql-tricks/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Блоговое</title>
		<link>http://spoofa.info/2008/04/10/%d0%b1%d0%bb%d0%be%d0%b3%d0%be%d0%b2%d0%be%d0%b5/</link>
		<comments>http://spoofa.info/2008/04/10/%d0%b1%d0%bb%d0%be%d0%b3%d0%be%d0%b2%d0%be%d0%b5/#comments</comments>
		<pubDate>Wed, 09 Apr 2008 22:01:32 +0000</pubDate>
		<dc:creator>spoof</dc:creator>
		
		<category><![CDATA[blog]]></category>

		<category><![CDATA[devel]]></category>

		<guid isPermaLink="false">http://spoofa.info/?p=85</guid>
		<description><![CDATA[Похакал немного текущую тему для блога. Прикрутил к ней сайдбар с виджетами и подогнал к общей стилистике. Вроде ничотак, а вы как думаете? Но немного жаль потраченного часа - слишком уж много заморочек с CSS. Благо Inspector в Safari сильно помогает в разборе.
]]></description>
			<content:encoded><![CDATA[<p>Похакал немного текущую тему для блога. Прикрутил к ней сайдбар с виджетами и подогнал к общей стилистике. Вроде ничотак, а вы как думаете? Но немного жаль потраченного часа - слишком уж много заморочек с CSS. Благо Inspector в Safari сильно помогает в разборе.</p>
]]></content:encoded>
			<wfw:commentRss>http://spoofa.info/2008/04/10/%d0%b1%d0%bb%d0%be%d0%b3%d0%be%d0%b2%d0%be%d0%b5/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
