<?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>Spoof&#039;s blog</title>
	<atom:link href="http://spoofa.info/feed/" rel="self" type="application/rss+xml" />
	<link>http://spoofa.info</link>
	<description>...about martian&#039;s and penguin&#039;s life</description>
	<lastBuildDate>Wed, 30 Dec 2009 09:00:28 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Итоги?</title>
		<link>http://spoofa.info/2009/12/29/%d0%b8%d1%82%d0%be%d0%b3%d0%b8/</link>
		<comments>http://spoofa.info/2009/12/29/%d0%b8%d1%82%d0%be%d0%b3%d0%b8/#comments</comments>
		<pubDate>Tue, 29 Dec 2009 11:02:43 +0000</pubDate>
		<dc:creator>spoof</dc:creator>
				<category><![CDATA[life]]></category>

		<guid isPermaLink="false">http://spoofa.info/?p=125</guid>
		<description><![CDATA[И так, наверно самое время подвести итоги уходящего года, ибо потом у меня уже времени на это в _этом_ году не будет  
Что произошло первый раз в жизни:

Получил по морде
Потерял телефон
Напился до такого состояния, что ничего не помнил

Этот год был довольно странным. Было много и положительного и отрицательного. Не могу сказать, что он был [...]]]></description>
			<content:encoded><![CDATA[<p>И так, наверно самое время подвести итоги уходящего года, ибо потом у меня уже времени на это в _этом_ году не будет <img src='http://spoofa.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Что произошло первый раз в жизни:</p>
<ul>
<li>Получил по морде</li>
<li>Потерял телефон</li>
<li>Напился до такого состояния, что ничего не помнил</li>
</ul>
<p>Этот год был довольно странным. Было много и положительного и отрицательного. Не могу сказать, что он был хорош или плох, но опыта я приобрел много.</p>
<p>Лишился хорошего друга.</p>
<p>Убедился, что IT в России — говно. Менеджмент в России — говно  и его как таково нет, есть только &#8220;начальники&#8221;.</p>
<p>Люди — эгоисты. Все сплошь и рядом озлобленные.</p>
<p>Мне приелся Ragga-jungle и dancehall. Сейчас все еще прусь от dubstep&#8217;a/grime и minimal.</p>
<p>Я стал ходить в качалку и заниматься своим здоровьем (старею?).</p>
<p>Я почти вылечил свою мнительность.</p>
<p>Еще раз убедился в том, что все легче, чем кажется — главное действовать, а не сидеть на месте.</p>
<p>Стал играть в WoW. После почти 2 лет перерыва открыл для себя снова Quake3 (excessiveplus) — меня еще там не забыли <img src='http://spoofa.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Это конечно далеко не все. Некоторые &#8220;достижения&#8221; так и останутся в моей голове до тех пор, пока не захочу написать мемуары (lol) <img src='http://spoofa.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://spoofa.info/2009/12/29/%d0%b8%d1%82%d0%be%d0%b3%d0%b8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Катрин</title>
		<link>http://spoofa.info/2009/07/29/%d0%ba%d0%b0%d1%82%d1%80%d0%b8%d0%bd/</link>
		<comments>http://spoofa.info/2009/07/29/%d0%ba%d0%b0%d1%82%d1%80%d0%b8%d0%bd/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 21:07:44 +0000</pubDate>
		<dc:creator>spoof</dc:creator>
				<category><![CDATA[flickr]]></category>
		<category><![CDATA[photo]]></category>

		<guid isPermaLink="false">http://spoofa.info/?p=114</guid>
		<description><![CDATA[Пожалуй тоже буду теперь постить в бложек фотки с фотосессий. Кросспост в твиттер и ЖЖ.
Фотки сделаны в Кузьминках на Конюшенном дворе






]]></description>
			<content:encoded><![CDATA[<p>Пожалуй тоже буду теперь постить в бложек фотки с фотосессий. Кросспост в твиттер и ЖЖ.<br />
Фотки сделаны в Кузьминках на Конюшенном дворе<br />
<a href="http://www.flickr.com/photos/31684956@N02/3766988766/" class="flickr-image"  title="" rel="flickr-mgr" ><img src="http://farm3.static.flickr.com/2502/3766988766_2a39ac936f.jpg" alt="" class="flickr-large" longdesc="http://farm3.static.flickr.com/2502/3766988766_ea475ab037_o.jpg" /></a><br />
<span id="more-114"></span><br />
<a href="http://www.flickr.com/photos/31684956@N02/3766988616/" class="flickr-image"  title="" rel="flickr-mgr" ><img src="http://farm3.static.flickr.com/2435/3766988616_d8f77b09e9.jpg" alt="" class="flickr-large" longdesc="http://farm3.static.flickr.com/2435/3766988616_0a14337246_o.jpg" /></a></p>
<p><a href="http://www.flickr.com/photos/31684956@N02/3766971158/" class="flickr-image"  title="" rel="flickr-mgr" ><img src="http://farm3.static.flickr.com/2443/3766971158_0e7eca6fbf.jpg" alt="" class="flickr-large" longdesc="http://farm3.static.flickr.com/2443/3766971158_a343ba64ed_o.jpg" /></a></p>
<p><a href="http://www.flickr.com/photos/31684956@N02/3766173271/" class="flickr-image"  title="" rel="flickr-mgr" ><img src="http://farm4.static.flickr.com/3594/3766173271_96cc3bd76a.jpg" alt="" class="flickr-large" longdesc="http://farm4.static.flickr.com/3594/3766173271_a2d7ee40f1_o.jpg" /></a></p>
<p><a href="http://www.flickr.com/photos/31684956@N02/3766173127/" class="flickr-image"  title="" rel="flickr-mgr" ><img src="http://farm3.static.flickr.com/2485/3766173127_5e1c240525.jpg" alt="" class="flickr-large" longdesc="http://farm3.static.flickr.com/2485/3766173127_e2411bdb41_o.jpg" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://spoofa.info/2009/07/29/%d0%ba%d0%b0%d1%82%d1%80%d0%b8%d0%bd/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Django+FastCGI+nginx</title>
		<link>http://spoofa.info/2009/03/19/djangofastcginginx/</link>
		<comments>http://spoofa.info/2009/03/19/djangofastcginginx/#comments</comments>
		<pubDate>Thu, 19 Mar 2009 18:19:09 +0000</pubDate>
		<dc:creator>spoof</dc:creator>
				<category><![CDATA[comp]]></category>
		<category><![CDATA[devel]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[fastcgi]]></category>
		<category><![CDATA[nginx]]></category>

		<guid isPermaLink="false">http://spoofa.info/?p=110</guid>
		<description><![CDATA[Если django (да пожалуй и другие фреймфворки и не только на питоне) работает через fastcgi и проксируется nginx&#8217;ом по https, то последнему нужно добавить параметр:
fastcgi_param HTTPS on;
]]></description>
			<content:encoded><![CDATA[<p>Если django (да пожалуй и другие фреймфворки и не только на питоне) работает через fastcgi и проксируется nginx&#8217;ом по https, то последнему нужно добавить параметр:<br />
fastcgi_param HTTPS on;</p>
]]></content:encoded>
			<wfw:commentRss>http://spoofa.info/2009/03/19/djangofastcginginx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</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 &#8211; теперь заливаю фотки только туда, ибо используемый из-за лени Вконтакте просто умер для меня в качестве галереи после того, как сравнил качество фото в нем и 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 &#8211; теперь заливаю фотки только туда, ибо используемый из-за лени Вконтакте просто умер для меня в качестве галереи после того, как сравнил качество фото в нем и 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>
		<slash:comments>0</slash:comments>
		</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; получил это документ и был доволен. Что может проще скажете вы &#8211; взять положить файл в каталог и тупо его HTTP сервером отдавать. Но не все так просто в случае если вам необходимо, чтобы этот файл генерировался динамически (из-за меняющихся в нем данных), [...]]]></description>
			<content:encoded><![CDATA[<p>И так, мы хотим, чтобы пользовал клацнув на кнопочку &#8220;Экспорт в Excel&#8221; получил это документ и был доволен. Что может проще скажете вы &#8211; взять положить файл в каталог и тупо его HTTP сервером отдавать. Но не все так просто в случае если вам необходимо, чтобы этот файл генерировался динамически (из-за меняющихся в нем данных), например django, на котором крутиться сайт.</p>
<p>Насколько мне удалось узнать, в мире существует один адеватный генератор Excel файлов &#8211; <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 заголовке &#8211; <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 &#8211; фактически представляет собой переменную с содержимым Excel файла,<br />
# filename &#8211; название файла, которое мы должны задать ранее</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 &#8211; (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 &#8211; (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> &#8211; это 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>
		<slash:comments>1</slash:comments>
		</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>
		<slash:comments>0</slash:comments>
		</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>
		<slash:comments>3</slash:comments>
		</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>
		<slash:comments>0</slash:comments>
		</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 значения вместо одного &#8211; отсюда возникали глюки. А все потому, что MySQL по-дефолту при сравнении строк не учитывает регистр, если не указаны collations для поля/таблицы в *_bin или *_cs. Век живи &#8211; век учись. Это конечно должно было известно быть &#8211; оно мне и было известно, но я об этом успешно давно забыл, ибо уже не помню когда последний раз с этим сталкивался. Взято <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>
		<slash:comments>0</slash:comments>
		</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[Похакал немного текущую тему для блога. Прикрутил к ней сайдбар с виджетами и подогнал к общей стилистике. Вроде ничотак, а вы как думаете? Но немного жаль потраченного часа &#8211; слишком уж много заморочек с CSS. Благо Inspector в Safari сильно помогает в разборе.
]]></description>
			<content:encoded><![CDATA[<p>Похакал немного текущую тему для блога. Прикрутил к ней сайдбар с виджетами и подогнал к общей стилистике. Вроде ничотак, а вы как думаете? Но немного жаль потраченного часа &#8211; слишком уж много заморочек с 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>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
