<?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>Drinkable Chicken</title>
	<atom:link href="http://4.flowsnake.org/feed" rel="self" type="application/rss+xml" />
	<link>http://4.flowsnake.org</link>
	<description>A Pythoneer's adventures with Chicken Scheme. ^_^ And more.</description>
	<pubDate>Mon, 25 Aug 2008 15:27:10 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<item>
		<title>And it all begins where it ends...</title>
		<link>http://4.flowsnake.org/archives/129</link>
		<comments>http://4.flowsnake.org/archives/129#comments</comments>
		<pubDate>Mon, 25 Aug 2008 15:27:10 +0000</pubDate>
		<dc:creator>Hans Nowak</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://4.flowsnake.org/?p=129</guid>
		<description><![CDATA[I am looking for a new job.
I am an experienced software developer, specialized in Python, with extensive knowledge of modern database systems. I have developed and deployed several client-server applications, initiated numerous open source projects, and written a number of Python-related articles.
Over time, I've worked on several projects (both professional and personal) that deal with [...]]]></description>
			<content:encoded><![CDATA[<p>I am looking for a new job.</p>
<p>I am an experienced software developer, specialized in Python, with extensive knowledge of modern database systems. I have developed and deployed several client-server applications, initiated numerous open source projects, and written a number of Python-related articles.</p>
<p>Over time, I've worked on several projects (both professional and personal) that deal with crawling the web and extracting data from web pages and other files, so this has become somewhat of a specialty of mine.</p>
<p>More information can be found in my <a href="http://zephyrfalcon.org/resume.html">resume</a> (which also contains my contact info). I also wrote about many of my interests and programming projects in various weblogs (<a href="http://zephyrfalcon.org/weblog">1</a>, <a href="http://zephyrfalcon.org/weblog2">2</a>, <a href="http://3.flowsnake.org/">3</a>, <a href="http://4.flowsnake.org/">4</a>).</p>
<p>I'm in Florida, and interested in either local jobs or telecommuting (which I have been doing in my last two jobs), especially Python-related. I am willing to consider relocating if necessary.</p>
]]></content:encoded>
			<wfw:commentRss>http://4.flowsnake.org/archives/129/feed</wfw:commentRss>
		</item>
		<item>
		<title>Leopard, first impressions</title>
		<link>http://4.flowsnake.org/archives/127</link>
		<comments>http://4.flowsnake.org/archives/127#comments</comments>
		<pubDate>Sat, 19 Jul 2008 23:35:15 +0000</pubDate>
		<dc:creator>Hans Nowak</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

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

		<guid isPermaLink="false">http://4.flowsnake.org/?p=127</guid>
		<description><![CDATA[Today I finally decided to upgrade to Mac OS X Leopard. I know, I'm late to the party as usual, but in this case I wanted to wait until most of the wrinkles were ironed out.
My first impressions are... mixed.
I like the fact that I could upgrade from Tiger without much hassle. Everything still seems [...]]]></description>
			<content:encoded><![CDATA[<p>Today I finally decided to upgrade to Mac OS X Leopard. I know, I'm late to the party as usual, but in this case I wanted to wait until most of the wrinkles were ironed out.</p>
<p>My first impressions are... mixed.</p>
<p>I like the fact that I could upgrade from Tiger without much hassle. Everything still seems to work, including QuickSilver, Adium, Chicken, and Postgres. Most of my settings (like e.g. for Terminal) are preserved as well.</p>
<p>There were, however, a few changes that immediately stood out, and that I didn't like at all.</p>
<p>The new look of the dock is one of them. Fortunately, I knew this beforehand, and it's <a href="http://www.macosxhints.com/article.php?story=2007101815375480">easily fixed</a>.</p>
<p>I don't like the translucent menu bar either, but again, nothing a bit of <a href="http://www.macosxtips.co.uk/index_files/terminal-commands-for-hidden-settings-in-leopard.html">poking around</a> can't fix. :-)</p>
<p>X11 still doesn't work (I normally would not use this at all, except that there's a C64 emulator that depends on it). There are <a href="http://aaroniba.net/articles/x11-leopard.html">some</a> <a href="http://forums.macosxhints.com/showthread.php?t=81559">articles</a> that deal with this problem, I will have to look into that.</p>
<p>Something I haven't found a fix for (so far), and which bugs the hell out of me, is the new behavior of the little "view" icons in Finder windows. There are four of them now, and you can change a window's setting to use icon view, list view, columns, or Cover Flow. Great, except changing a view for one window means changing it *for all windows*.</p>
<p>In other words, let's say my default view is icons. I go to folder A, which has a lot of documents, so I want to change it to list view. I click on the icon, then open folder B. Surprise! It's in list view now too, and so are all other windows on your system.</p>
<p>Now, it's not completely impossible to change this and set views on a per-window basis, but it's so clumsy that you might as well forget it. In order to use icon view as the default, but use list view for folder A, I have to do the following:</p>
<ol>
<li>Open folder A.</li>
<li>Press ⌘J to open the "Show View Options" dialog.</li>
<li>In the window for folder A, click the "list view" icon.</li>
<li>In the "Show View Options" dialog, now check the "Always open in list view" option. (Notice that this will initially show whichever view is the default, so it starts out as "Always open in icon view".)</li>
<li>Open folder B (this can be any folder that does not have custom settings associated with it). You'll notice it's in list view too now.</li>
<li>In the window for folder B, click the "icon view" icon.</li>
</ol>
<p>This is pretty lame, IMHO... unless I'm misunderstanding things, it was *much* easier to do this in Tiger and its precursors. So far, from what I've read online, this indeed seems to be the new behavior: <em>"Leopard also has new logic for views. Unless you've ticked the option to open in icon view, all windows will show whatever view you have just selected in whatever window. Like it or not, that's the way it is."</em> [<a href="http://forums.whirlpool.net.au/forum-replies.cfm?t=887152&amp;r=14095163#r14095163">link</a>]</p>
<p>(Strangely enough, other options like colored backgrounds, seem to be automatically on a per-window basis.)</p>
<p>More impressions will follow as I continue to work with the system. I haven't checked out the shiny new features yet (Time Machine, Spaces, etc). More about that later...</p>
]]></content:encoded>
			<wfw:commentRss>http://4.flowsnake.org/archives/127/feed</wfw:commentRss>
		</item>
		<item>
		<title>Cutting</title>
		<link>http://4.flowsnake.org/archives/125</link>
		<comments>http://4.flowsnake.org/archives/125#comments</comments>
		<pubDate>Wed, 09 Jul 2008 13:38:10 +0000</pubDate>
		<dc:creator>Hans Nowak</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

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

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

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

		<guid isPermaLink="false">http://4.flowsnake.org/?p=125</guid>
		<description><![CDATA[I did some long overdue Chicken hackery yesterday, and by accident I found out that Chicken's (or rather, SRFI-26's) cut/cute macros are not the same as Arc's [ ] syntax after all.
Scheme/Arc aficionados already knew this, of course, but to me it was news since I've never really used cut much. Here's a short explanation.
Scheme's [...]]]></description>
			<content:encoded><![CDATA[<p>I did some long overdue Chicken hackery yesterday, and by accident I found out that Chicken's (or rather, <a href="http://srfi.schemers.org/srfi-26/srfi-26.html">SRFI-26</a>'s) <em>cut</em>/<em>cute</em> macros are not the same as Arc's <em>[ ]</em> syntax after all.</p>
<p>Scheme/Arc aficionados already knew this, of course, but to me it was news since I've never really used <em>cut</em> much. Here's a short explanation.</p>
<p>Scheme's <em>cut</em> produces an anonymous function that takes as many arguments as there are <em><></em> symbols at the "top level". E.g.</p>
<pre>> (cut + 1 &lt;&gt;)
#&lt;procedure (? g3)&gt;
; has one argument

> (cut + 1 &lt;&gt; &lt;&gt;)
#&lt;procedure (? g4 g5)&gt;
; has two arguments

; etc...
</pre>
<p>However, any <em>&lt;&gt;</em> that is found in a nested expression, is not considered as a parameter. Therefore:</p>
<pre>;this works...
> (map (cut + 1 &lt;&gt;) '(1 2 3))
(2 3 4)

; but this does not:
> (map (cut + 1 (* 2 &lt;&gt;)) '(1 2 3))
Error: bad argument count - received 1 but expected 0: #&lt;procedure (?)&gt;
</pre>
<p>By contrast, Arc's <em>[ ]</em> syntax produces an anonymous function that expects one and only one argument, which is represented by a single underscore. As a result, it's simultaneously more and less limited than <em>cut</em>:</p>
<pre>arc> (map [+ 1 _] '(1 2 3))
(2 3 4)
arc> (map [+ 1 (* 2 _)] '(1 2 3))
(3 5 7)
; no problem

; but two parameters doesn't work:
arc> (map [cons _ _] '(1 2 3) '(4 5 6))
Error: "#&lt;procedure&gt;: expects 1 argument, given 2: 1 4"
</pre>
<p>Of course, for anonymous functions that are more complex than this, it's probably better to just use <em>lambda</em>... :-/  Or a named function.</p>
]]></content:encoded>
			<wfw:commentRss>http://4.flowsnake.org/archives/125/feed</wfw:commentRss>
		</item>
		<item>
		<title>Interlude: Dude, where's my Chicken?</title>
		<link>http://4.flowsnake.org/archives/123</link>
		<comments>http://4.flowsnake.org/archives/123#comments</comments>
		<pubDate>Thu, 19 Jun 2008 15:45:04 +0000</pubDate>
		<dc:creator>Hans Nowak</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

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

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

		<guid isPermaLink="false">http://4.flowsnake.org/?p=123</guid>
		<description><![CDATA[This started out as a Chicken blog, where I would report my adventures with Chicken Scheme. But these days it's more like a Python blog again. (Which isn't too surprising, given my experience with the language, and the fact that I use it for work and most of my personal projects.)
Heck, it has even been [...]]]></description>
			<content:encoded><![CDATA[<p>This started out as a Chicken blog, where I would report my adventures with Chicken Scheme. But these days it's more like a Python blog again. (Which isn't too surprising, given my experience with the language, and the fact that I use it for work and most of my personal projects.)</p>
<p>Heck, it has even been added to <a href="http://planet.python.org/">Planet Python</a> again, which wouldn't have been the case if I wrote about Scheme all the time.</p>
<p>But really, I want to learn more about Scheme as well, *and* be able to use it in a pragmatic way. I just need a bit of focus. Right now I'm wondering what to look at next. Maybe object systems?</p>
]]></content:encoded>
			<wfw:commentRss>http://4.flowsnake.org/archives/123/feed</wfw:commentRss>
		</item>
		<item>
		<title>A foolish consistency, etc</title>
		<link>http://4.flowsnake.org/archives/122</link>
		<comments>http://4.flowsnake.org/archives/122#comments</comments>
		<pubDate>Thu, 19 Jun 2008 15:21:35 +0000</pubDate>
		<dc:creator>Hans Nowak</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

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

		<guid isPermaLink="false">http://4.flowsnake.org/?p=122</guid>
		<description><![CDATA[People new (and not so new) to Python are often confused by the fact that the language uses functions in some situations, but methods in others. I see this come up a lot these days. The most recent example is this comment:
Say you have a list, how is a beginning supposed to follow/comprehend the bigger [...]]]></description>
			<content:encoded><![CDATA[<p>People new (and not so new) to Python are often confused by the fact that the language uses functions in some situations, but methods in others. I see this come up a lot these days. The most recent example is <a href="http://coffeeghost.net/2008/06/18/python-is-the-new-basic/#comment-8066">this comment</a>:</p>
<blockquote><p>Say you have a list, how is a beginning supposed to follow/comprehend the bigger picture when faced with code like this:</p>
<pre>mylist = [1,3,2]
print len( mylist )
print sorted( mylist )
print mylist.sort()
print mylist.reverse()
print mylist[0]</pre>
<p>Honestly, what is going on here? Why different syntaxes for slightly different ideas?</p></blockquote>
<p>This gives many people the feeling that OO in Python was added later, or "bolted on", as <a href="http://t-a-w.blogspot.com/2008/06/bolting-aspect-oriented-programming-on.html">Taw</a> puts it.</p>
<p>I figure the reasons for the discrepancy are like this:</p>
<p>In 1991, when Python was first released, *pure* object-oriented languages were rare. Sure, there was Smalltalk, but it was fairly obscure. Other languages that called themselves object-oriented, like C++ and ObjectPascal, were actually hybrids; objects were indeed "bolted on" to an existing language.</p>
<p>In this light, it makes sense that Python 0.9.1 did the same. It had built-in types, and user-defined objects. Some of the types, like lists and dictionaries, had methods, possibly because were mutable and therefore contained "state". Other types, like numbers, strings and tuples, did not have methods (and were therefore not "perceived" as objects, even though behind the scenes they were). (In fact, back in the early 90s, the idea of calling a method on a number seemed like a really odd idea (if you were not a Smalltalker :-).)</p>
<p>As a result, in order to take the length of a string or a tuple, you needed a *function* (because you could not call a method on these types). While list and dict could easily have had such a method, for consistency's sake this was omitted; instead, the <em>len()</em> function was to be used on them too.</p>
<p>And so it still is. But the world has changed since then. OO has become much more mainstream, and the notion of using methods for everything is no longer odd, but expected by many. I can understand why someone coming from Ruby (or maybe Java) would wonder why in some cases functions are required, where a method would seem more natural. It makes Python seem inconsistent, when initially the use of <em>len()</em> actually improved consistency.</p>
<p>This is something that *could* have been fixed in Python 3.0, but won't, as far as I understand it. I'm not sure if this is a missed opportunity, or that it will keep Python closer to its original spirit (i.e., a multi-paradigm language).</p>
<p>(Note: I am aware of the <em>__len__</em> method of course, but honestly, who is really going to use that instead of <em>len()</em>? <em>__len__</em> is a hook to make <em>len()</em> work, not an alternative for it.)</p>
]]></content:encoded>
			<wfw:commentRss>http://4.flowsnake.org/archives/122/feed</wfw:commentRss>
		</item>
		<item>
		<title>Cubism</title>
		<link>http://4.flowsnake.org/archives/120</link>
		<comments>http://4.flowsnake.org/archives/120#comments</comments>
		<pubDate>Tue, 17 Jun 2008 16:27:40 +0000</pubDate>
		<dc:creator>Hans Nowak</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://4.flowsnake.org/?p=120</guid>
		<description><![CDATA[When I was little, my parents had a Rubik's Cube. I spent lots of time trying to solve it (or even parts of it), with little success. We had a book that was supposed to tell you how, but that didn't help either. (Hey, I was only 9 or so at the time...)
So a while [...]]]></description>
			<content:encoded><![CDATA[<p>When I was little, my parents had a Rubik's Cube. I spent lots of time trying to solve it (or even parts of it), with little success. We had a book that was supposed to tell you how, but that didn't help either. (Hey, I was only 9 or so at the time...)</p>
<p>So a while ago I got it into my head to give the Cube another try. Bought one last weekend, and tried to figure it out. So far these videos have been very helpful:</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" title="How to solve a Rubik's Cube (part 1)" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/HsQIoPyfQzM&amp;hl=en" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/HsQIoPyfQzM&amp;hl=en"></embed></object></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" title="How to solve a Rubik's Cube (part 2)" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/IW_BBp3FPMQ&amp;hl=en" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/IW_BBp3FPMQ&amp;hl=en"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://4.flowsnake.org/archives/120/feed</wfw:commentRss>
		</item>
		<item>
		<title>A rare sight...</title>
		<link>http://4.flowsnake.org/archives/117</link>
		<comments>http://4.flowsnake.org/archives/117#comments</comments>
		<pubDate>Sat, 14 Jun 2008 20:45:36 +0000</pubDate>
		<dc:creator>Hans Nowak</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

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

		<guid isPermaLink="false">http://4.flowsnake.org/?p=117</guid>
		<description><![CDATA[

I'm saving it here because it's probably not going to last. :-)
]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-119" title="821-01" src="http://4.flowsnake.org/wp-content/uploads/2008/06/821-01.gif" alt="" width="400" height="300" /></p>
<p><img class="alignnone size-full wp-image-118" title="821-02" src="http://4.flowsnake.org/wp-content/uploads/2008/06/821-02.gif" alt="" width="400" height="300" /></p>
<p>I'm saving it here because it's probably not going to last. :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://4.flowsnake.org/archives/117/feed</wfw:commentRss>
		</item>
		<item>
		<title>Foresight</title>
		<link>http://4.flowsnake.org/archives/116</link>
		<comments>http://4.flowsnake.org/archives/116#comments</comments>
		<pubDate>Tue, 10 Jun 2008 18:47:28 +0000</pubDate>
		<dc:creator>Hans Nowak</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

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

		<guid isPermaLink="false">http://4.flowsnake.org/?p=116</guid>
		<description><![CDATA[(just a random thought :-)
I sometimes wonder what old folks homes will look like 60 years from now... I imagine it will have scores of 80-somethings with tattoos and piercings drooping from their floppy, wrinkled skin. And the young people taking care of them will be like, WTF were you thinking?
]]></description>
			<content:encoded><![CDATA[<p>(just a random thought :-)</p>
<p>I sometimes wonder what old folks homes will look like 60 years from now... I imagine it will have scores of 80-somethings with tattoos and piercings drooping from their floppy, wrinkled skin. And the young people taking care of them will be like, WTF were you thinking?</p>
]]></content:encoded>
			<wfw:commentRss>http://4.flowsnake.org/archives/116/feed</wfw:commentRss>
		</item>
		<item>
		<title>Piggy</title>
		<link>http://4.flowsnake.org/archives/114</link>
		<comments>http://4.flowsnake.org/archives/114#comments</comments>
		<pubDate>Tue, 10 Jun 2008 17:51:04 +0000</pubDate>
		<dc:creator>Hans Nowak</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

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

		<guid isPermaLink="false">http://4.flowsnake.org/?p=114</guid>
		<description><![CDATA[Cubivore for the Gamecube is a rare game, but the price that this seller is asking seems a bit outrageous:

It seems eBay is a better bet in this case...
(If you don't know Cubivore (which is likely), check out this video. There's many more on YouTube, worth watching if you are into odd games. ^_^)
]]></description>
			<content:encoded><![CDATA[<p>Cubivore for the Gamecube is a rare game, but the price that this seller is asking seems a bit outrageous:</p>
<p><a class="noborder" href="http://4.flowsnake.org/wp-content/uploads/2008/06/cubivore-pricing.jpg"><img class="alignnone size-medium wp-image-115" title="cubivore-pricing" src="http://4.flowsnake.org/wp-content/uploads/2008/06/cubivore-pricing-300x148.jpg" alt="Cubivore at half.com" width="300" height="148" /></a></p>
<p>It seems eBay is a better bet in this case...</p>
<p>(If you don't know Cubivore (which is likely), check out this <a href="http://www.youtube.com/watch?v=xOp-Je7WKKw&amp;feature=related">video</a>. There's many more on YouTube, worth watching if you are into odd games. ^_^)</p>
]]></content:encoded>
			<wfw:commentRss>http://4.flowsnake.org/archives/114/feed</wfw:commentRss>
		</item>
		<item>
		<title>ABCs</title>
		<link>http://4.flowsnake.org/archives/113</link>
		<comments>http://4.flowsnake.org/archives/113#comments</comments>
		<pubDate>Sat, 07 Jun 2008 02:22:30 +0000</pubDate>
		<dc:creator>Hans Nowak</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

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

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

		<guid isPermaLink="false">http://4.flowsnake.org/?p=113</guid>
		<description><![CDATA[So Python 3000 will have abstract base classes.
As far as I know, in the Python world, an abstract base class used to mean, a base class that cannot be instantiated. Kind of like:
class Foo:
    def __init__(self):
        raise NotImplementedError, "Foo cannot be instantiated"

It would, however, be [...]]]></description>
			<content:encoded><![CDATA[<p>So Python 3000 will have abstract base classes.</p>
<p>As far as I know, in the Python world, an abstract base class used to mean, a base class that cannot be instantiated. Kind of like:</p>
<pre>class Foo:
    def __init__(self):
        raise NotImplementedError, "Foo cannot be instantiated"
</pre>
<p>It would, however, be perfectly possible for an abstract base class to have valid, working methods, to be used by classes inheriting from Foo.</p>
<p>Apparently this isn't the case any longer. If I read <a href="http://www.python.org/dev/peps/pep-3119/">PEP 3119</a> correctly, in Py3K-speak, an abstract base class is a way to trick <em>isinstance()</em> and <em>issubclass()</em> into believing that a given class derives from another class, when this actually isn't the case. For example:</p>
<pre>>>> list.__bases__
(&lt;class 'object'&gt;,)
>>> object.__bases__
()</pre>
<p><em>list</em> derives from <em>object</em>, which in turn derives from nothing else. But:</p>
<pre>>>> issubclass(list, collections.Sequence)
True
</pre>
<p>In other words, <em>list</em> *pretends* to derive from <em>Sequence</em>, but it really doesn't, and so any methods defined in <em>Sequence</em> will not be inherited by <em>list</em>.</p>
<p>Filtered through my old-school-Python-riddled brain, this implies the following:</p>
<ul>
<li>abstract base classes mean something different now, and</li>
<li>they break <em>isinstance</em> and <em>issubclass</em>, and</li>
<li>methods defined in the ABC cannot be used by the "subclass".</li>
</ul>
<p>Seriously, the more I read about Python 3.0, the harder it becomes for me not to be appalled. The language makes a heroic effort at fixing warts and problems and trimming fat, but at the same time it's becoming more and more complex.</p>
<p>I'd love to be proven wrong though. I like Python a lot, and I am (and have been) worried about what it's evolving into. But maybe Python 3.0 will actually be easy and intuitive to use, like the Python of old, and all the overly complex stuff will stay in the back rather than get in the way. I guess time will tell. (Or maybe I'm misunderstanding things... feel free to point that out. :-)</p>
<p>(This is mostly a matter of personal preference, of course -- for the last few years I've been gravitating toward languages with little syntax, that allow powerful new constructs to be written in the language itself. Think Scheme and Io. Python, however, has steadily been moving in the other direction.)</p>
]]></content:encoded>
			<wfw:commentRss>http://4.flowsnake.org/archives/113/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
