<?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>Intrepid Blog</title>
	<atom:link href="http://blog.w-nz.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.w-nz.com</link>
	<description>A few thoughts</description>
	<pubDate>Wed, 16 Apr 2008 07:09:28 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5</generator>
	<language>en</language>
			<item>
		<title>Benchmarking CouchDB (2)</title>
		<link>http://blog.w-nz.com/archives/2008/04/15/benchmarking-couchdb-2/</link>
		<comments>http://blog.w-nz.com/archives/2008/04/15/benchmarking-couchdb-2/#comments</comments>
		<pubDate>Tue, 15 Apr 2008 12:59:42 +0000</pubDate>
		<dc:creator>Bas Westerbaan</dc:creator>
		
		<category><![CDATA[General]]></category>

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

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

		<guid isPermaLink="false">http://blog.w-nz.com/?p=310</guid>
		<description><![CDATA[
This is a plot of the amount of documents created in a bulk update at the same time against the average amount of documents created per second it yields.
]]></description>
			<content:encoded><![CDATA[<p><a href='http://blog.w-nz.com/wp-content/uploads/2008/04/couchdb-create-v-per-b.png'><img src="http://blog.w-nz.com/wp-content/uploads/2008/04/couchdb-create-v-per-b.png" alt="" title="couchdb-create-v-per-b" width="400" height="250" class="aligncenter size-full wp-image-311" /></a></p>
<p>This is a plot of the amount of documents created in a bulk update at the same time against the average amount of documents created per second it yields.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.w-nz.com/archives/2008/04/15/benchmarking-couchdb-2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>On the App Engine lock-in</title>
		<link>http://blog.w-nz.com/archives/2008/04/15/on-the-app-engine-lock-in/</link>
		<comments>http://blog.w-nz.com/archives/2008/04/15/on-the-app-engine-lock-in/#comments</comments>
		<pubDate>Tue, 15 Apr 2008 12:31:13 +0000</pubDate>
		<dc:creator>Bas Westerbaan</dc:creator>
		
		<category><![CDATA[General]]></category>

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

		<category><![CDATA[lock-in]]></category>

		<guid isPermaLink="false">http://blog.w-nz.com/?p=309</guid>
		<description><![CDATA[Some people are afraid that Google App Engine won&#8217;t be a really big success because it&#8217;s a lock-in. Give it a month and no doubt there will be a project which allows you to run AppEngine applications on your own servers, which (in my opinion) is even more interesting than AppEngine itself.
]]></description>
			<content:encoded><![CDATA[<p>Some people are afraid that <a href="http://code.google.com/appengine/">Google App Engine</a> won&#8217;t be a really big success because it&#8217;s a lock-in. Give it a month and no doubt there will be a project which allows you to run AppEngine applications on your own servers, which (in my opinion) is even more interesting than AppEngine itself.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.w-nz.com/archives/2008/04/15/on-the-app-engine-lock-in/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Benchmarking CouchDB (1)</title>
		<link>http://blog.w-nz.com/archives/2008/04/02/benchmarking-couchdb-1/</link>
		<comments>http://blog.w-nz.com/archives/2008/04/02/benchmarking-couchdb-1/#comments</comments>
		<pubDate>Wed, 02 Apr 2008 12:48:31 +0000</pubDate>
		<dc:creator>Bas Westerbaan</dc:creator>
		
		<category><![CDATA[General]]></category>

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

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

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

		<guid isPermaLink="false">http://blog.w-nz.com/?p=305</guid>
		<description><![CDATA[I&#8217;ve written a small benchmark for couchdb to test it&#8217;s document creation performance.  A script creates  documents in total using bulk update to create  at the same time with  concurrent threads. The following graph show the time it takes to create an amount of documents against that amount of document for [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve written a small benchmark for couchdb to test it&#8217;s document creation performance.  A script creates <img src='/wp-latexrender/pictures/f9c4988898e7f532b9f826a75014ed3c.png' title='$N$' alt='$N$' align=absmiddle> documents in total using bulk update to create <img src='/wp-latexrender/pictures/61e84f854bc6258d4108d08d4c4a0852.png' title='$B$' alt='$B$' align=absmiddle> at the same time with <img src='/wp-latexrender/pictures/2f118ee06d05f3c2d98361d9c30e38ce.png' title='$T$' alt='$T$' align=absmiddle> concurrent threads. The following graph show the time it takes to create an amount of documents against that amount of document for different values of <img src='/wp-latexrender/pictures/61e84f854bc6258d4108d08d4c4a0852.png' title='$B$' alt='$B$' align=absmiddle> with <img src='/wp-latexrender/pictures/804c70e2e7d042c95b3a2995ad967adf.png' title='$T=1$' alt='$T=1$' align=absmiddle>.</p>
<p><a href='http://blog.w-nz.com/wp-content/uploads/2008/04/couchdb-create-t1.png'><img src="http://blog.w-nz.com/wp-content/uploads/2008/04/couchdb-create-t1.png" alt="" title="couchdb-create-t1" width="428" height="278" class="aligncenter size-full wp-image-306" /></a></p>
<p>And for <img src='/wp-latexrender/pictures/2cc82c99a866ae9891a91659fe42a57a.png' title='$T=2' alt='$T=2' align=absmiddle> (two concurrent threads.  Tested on a dual core machine)<br />
<a href='http://blog.w-nz.com/wp-content/uploads/2008/04/couchdb-create-t2.png'><img src="http://blog.w-nz.com/wp-content/uploads/2008/04/couchdb-create-t2.png" alt="" title="couchdb-create-t2" width="428" height="278" class="aligncenter size-full wp-image-307" /></a><br />
<small>The values of B are 1, 2, 4, 5, 8, 11, 16, 22, 32, 45, 64, 90, 128, 181, 256, 362, 512, 724 and 1024</small></p>
<p>As you can see, a higher value of <img src='/wp-latexrender/pictures/61e84f854bc6258d4108d08d4c4a0852.png' title='$B$' alt='$B$' align=absmiddle> causes the graph to shift to the right which means more <img src='/wp-latexrender/pictures/e25ec8b0af895735d0fe10be2ae08fc9.png' title='$N' alt='$N' align=absmiddle> for the same time.  Bulk update really does make a difference.  <em>Or</em> non-bulk-update really sucks.  Also adding threads does help a bit, but not as much as expected.</p>
<p>There are some more interesting graphs to plot (<img src='/wp-latexrender/pictures/61e84f854bc6258d4108d08d4c4a0852.png' title='$B$' alt='$B$' align=absmiddle> against <img src='/wp-latexrender/pictures/c412ce2392f725bea19da9b3385e1b4b.png' title='$\overline {N \over \Delta T} $' alt='$\overline {N \over \Delta T} $' align=absmiddle>).  More graphs tomorrow.</p>
<p>(For those interested, the <a href='http://blog.w-nz.com/wp-content/uploads/2008/04/results'>raw data</a> from which these graphs were plotted.)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.w-nz.com/archives/2008/04/02/benchmarking-couchdb-1/feed/</wfw:commentRss>
		</item>
		<item>
		<title>CouchDB document creation performance</title>
		<link>http://blog.w-nz.com/archives/2008/03/30/couchdb-document-creation-performance/</link>
		<comments>http://blog.w-nz.com/archives/2008/03/30/couchdb-document-creation-performance/#comments</comments>
		<pubDate>Sat, 29 Mar 2008 23:24:10 +0000</pubDate>
		<dc:creator>Bas Westerbaan</dc:creator>
		
		<category><![CDATA[General]]></category>

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

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

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

		<guid isPermaLink="false">http://blog.w-nz.com/?p=302</guid>
		<description><![CDATA[CouchDB is a non-relational database which uses MapReduce inspired views to query data.  There are lots of cool things to tell about its design, but I rather want to talk about its performance.
Today I&#8217;ve been busy hacking together a little script to import all e-mails of a long e-mail thread into a couchdb database [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://couchdb.org">CouchDB</a> is a non-relational database which uses <a href="http://labs.google.com/papers/mapreduce.html">MapReduce</a> inspired views to query data.  There are lots of cool things to tell about its design, but I rather want to talk about its performance.</p>
<p>Today I&#8217;ve been busy hacking together a little script to import all e-mails of a long e-mail thread into a couchdb database to write views to extract all kinds of statistics.  I already imported these e-mails into a MySQL database a few months ago, but was quite disappointed by the (performance) limitations of SQL.  The e-mail thread contains over 20,000 messages which weren&#8217;t a real problem for MySQL.  When importing, however, couchdb was adding them at a rate of only a few dozen per second with a lot of (seek)noise of my HDD.</p>
<p>So I decided to do a simple benchmark.  First of, a simple script (<a href='http://blog.w-nz.com/wp-content/uploads/2008/03/ser.py'>ser.py</a>) that adds empty documents sequentially.  It&#8217;s averaging 16 per second.  It occurred to me that couchdb waits for a <code>fsync</code> before sending a response and that asynchronously the performance would be way better. A simple modification to the script later (<a href='http://blog.w-nz.com/wp-content/uploads/2008/03/par.py'>par.py</a>) it still averaged 16 creations per second. </p>
<p>I guess, for I haven&#8217;t yet figured out how to let <code>strace</code>s tell me, that it&#8217;s the <code>fsync</code> after each object creation which causes the mess.  couchdb itself doesn&#8217;t write or seek a lot, but my <em>journaling</em> filesystem (XFS) does on a <code>fsync</code>.</p>
<p>Can anyone test it on a different filesystem?</p>
<p><ins>Update</ins> Around 17/sec with <code>reiserfs</code>. </p>
<p><ins>Update</ins> I had some trouble with the bulk update feature.  I switched from svn to the 0.7.2 release.  I got about 600/sec, which dropped to a steady-ish 350/sec when using sequential bulkupdates of 100 docs. Two bulk updates in parallel yield about 950/sec initially, dropping to 550/sec after a while.   Three parallel updates yield similar performance.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.w-nz.com/archives/2008/03/30/couchdb-document-creation-performance/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Interrupting a select without a timeout</title>
		<link>http://blog.w-nz.com/archives/2008/03/11/interrupting-a-select-without-a-timeout/</link>
		<comments>http://blog.w-nz.com/archives/2008/03/11/interrupting-a-select-without-a-timeout/#comments</comments>
		<pubDate>Tue, 11 Mar 2008 22:24:30 +0000</pubDate>
		<dc:creator>Bas Westerbaan</dc:creator>
		
		<category><![CDATA[General]]></category>

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

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

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

		<guid isPermaLink="false">http://blog.w-nz.com/archives/2008/03/11/interrupting-a-select-without-a-timeout/</guid>
		<description><![CDATA[select is a POSIX syscall which allows you to wait on several different filedescriptors (including sockets) for the event that they won&#8217;t block on write; won&#8217;t block or read or are in error.  This syscall is very convenient when you&#8217;re writing a server.
When I want to shutdown an instance of the server, I have [...]]]></description>
			<content:encoded><![CDATA[<p><code>select</code> is a POSIX syscall which allows you to wait on several different filedescriptors (including sockets) for the event that they won&#8217;t block on write; won&#8217;t block or read or are in error.  This syscall is very convenient when you&#8217;re writing a server.</p>
<p>When I want to shutdown an instance of the server, I have to interrupt the <code>select</code>.  I have yet to find a satisfying way of doing this.  At the moment I create a pair of linked sockets with <code>socketpair</code>.  I include one of them to the sockets on which to block until there is data to read in the <code>select</code> call.  To interrupt, I simply write some data to the other socket which will cause data to be available on the socket which in turn will interrupt the <code>select</code>.</p>
<p>There must be a more elegant solution.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.w-nz.com/archives/2008/03/11/interrupting-a-select-without-a-timeout/feed/</wfw:commentRss>
		</item>
		<item>
		<title>wlan0_rename</title>
		<link>http://blog.w-nz.com/archives/2008/03/08/wlan0_rename/</link>
		<comments>http://blog.w-nz.com/archives/2008/03/08/wlan0_rename/#comments</comments>
		<pubDate>Sat, 08 Mar 2008 13:07:49 +0000</pubDate>
		<dc:creator>Bas Westerbaan</dc:creator>
		
		<category><![CDATA[General]]></category>

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

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

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

		<guid isPermaLink="false">http://blog.w-nz.com/archives/2008/03/08/wlan0_rename/</guid>
		<description><![CDATA[If udev has problems assigning wlan0 to wlan0 (as given by the kernel) and instead lets you end up with an ugly wlan0_rename or alike, you might want to check whether you&#8217;ve got stray udev config files in /etc/udev/rules.d/ like 70-persistent-net.rules.
]]></description>
			<content:encoded><![CDATA[<p>If udev has problems assigning <code>wlan0</code> to <code>wlan0</code> (as given by the kernel) and instead lets you end up with an ugly <code>wlan0_rename</code> or alike, you might want to check whether you&#8217;ve got stray udev config files in <code>/etc/udev/rules.d/</code> like <code>70-persistent-net.rules</code>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.w-nz.com/archives/2008/03/08/wlan0_rename/feed/</wfw:commentRss>
		</item>
		<item>
		<title>X61s (2)</title>
		<link>http://blog.w-nz.com/archives/2008/03/07/x61s-2/</link>
		<comments>http://blog.w-nz.com/archives/2008/03/07/x61s-2/#comments</comments>
		<pubDate>Fri, 07 Mar 2008 14:37:07 +0000</pubDate>
		<dc:creator>Bas Westerbaan</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blog.w-nz.com/archives/2008/03/07/x61s-2/</guid>
		<description><![CDATA[And here are some pictures of my X61s.

]]></description>
			<content:encoded><![CDATA[<p>And here are some pictures of my X61s.</p>
<p><a href="http://w-nz.com/~bas/x61s/dsc_0001.jpg"><img src="http://w-nz.com/~bas/x61s/dsc_0001.thumb.jpg" /></a><a href="http://w-nz.com/~bas/x61s/dsc_0002.jpg"><img src="http://w-nz.com/~bas/x61s/dsc_0002.thumb.jpg" /></a><a href="http://w-nz.com/~bas/x61s/dsc_0003.jpg"><img src="http://w-nz.com/~bas/x61s/dsc_0003.thumb.jpg" /></a><a href="http://w-nz.com/~bas/x61s/dsc_0004.jpg"><img src="http://w-nz.com/~bas/x61s/dsc_0004.thumb.jpg" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.w-nz.com/archives/2008/03/07/x61s-2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>X61s (1)</title>
		<link>http://blog.w-nz.com/archives/2008/03/06/x61s-1/</link>
		<comments>http://blog.w-nz.com/archives/2008/03/06/x61s-1/#comments</comments>
		<pubDate>Thu, 06 Mar 2008 22:35:47 +0000</pubDate>
		<dc:creator>Bas Westerbaan</dc:creator>
		
		<category><![CDATA[General]]></category>

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

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

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

		<guid isPermaLink="false">http://blog.w-nz.com/archives/2008/03/06/x61s-1/</guid>
		<description><![CDATA[I&#8217;ve been the lucky owner of a Thinkpad X61s for a bit more than a week now.  It&#8217;s a light and small 12.1 inch notebook.  It&#8217;s structurally very solid and has got almost the same full size keyboard as my 14.1inch T60.  (The enter, tab, shift and alike keys are shortened in [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been the lucky owner of a Thinkpad X61s for a bit more than a week now.  It&#8217;s a light and small 12.1 inch notebook.  It&#8217;s structurally very solid and has got almost the same full size keyboard as my 14.1inch T60.  (The enter, tab, shift and alike keys are shortened in width).</p>
<p>The installation of <a href="http://gentoo.org">Gentoo</a> went quite smooth.  For those interested the <a href="http://w-nz.com/~bas/x61s/xorg.conf">xorg.conf</a>, <a href="http://w-nz.com/~bas/x61s/make.conf">make.conf</a> and  kernel <a href="http://w-nz.com/~bas/x61s/config">.config</a> I use.</p>
<p>Internal mic/speaker and external jacks; video; DRI and AIGLX; USB;  PCMCIA; wireless; fingerprint reader and ethernet all seem to work just fine.  I haven&#8217;t tested the firewire, ssd slot, bluetooth and n-capabilities of the wireless yet.</p>
<p>In comparison with my T60 the volume and the backlight buttons aren&#8217;t hardware controlled.  Gnome recognizes the volume buttons, but not the backlight ones.  I&#8217;m still working on those.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.w-nz.com/archives/2008/03/06/x61s-1/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ssmtp segfault in sendmail on Gentoo</title>
		<link>http://blog.w-nz.com/archives/2008/02/26/ssmtp-segfault-in-sendmail-on-gentoo/</link>
		<comments>http://blog.w-nz.com/archives/2008/02/26/ssmtp-segfault-in-sendmail-on-gentoo/#comments</comments>
		<pubDate>Tue, 26 Feb 2008 20:39:52 +0000</pubDate>
		<dc:creator>Bas Westerbaan</dc:creator>
		
		<category><![CDATA[Computer Science]]></category>

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

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

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

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

		<guid isPermaLink="false">http://blog.w-nz.com/archives/2008/02/26/ssmtp-segfault-in-sendmail-on-gentoo/</guid>
		<description><![CDATA[Disabling the md5sum useflag might fix it.
Thanks to Bram for the tip.
]]></description>
			<content:encoded><![CDATA[<p>Disabling the <code>md5sum</code> useflag might fix it.</p>
<p>Thanks to Bram for the tip.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.w-nz.com/archives/2008/02/26/ssmtp-segfault-in-sendmail-on-gentoo/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Fosdem (2)</title>
		<link>http://blog.w-nz.com/archives/2008/02/25/fosdem-2/</link>
		<comments>http://blog.w-nz.com/archives/2008/02/25/fosdem-2/#comments</comments>
		<pubDate>Sun, 24 Feb 2008 23:25:35 +0000</pubDate>
		<dc:creator>Bas Westerbaan</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blog.w-nz.com/archives/2008/02/25/fosdem-2/</guid>
		<description><![CDATA[I have just returned from Fosdem 2008. The trip by car to Bruxelles was by Dutch standards quite long, 3 hours. Volker, who did the hotel bookings for the FSFE, was kind enough to also book a room for me and my brother.  For the 3-star hotel, which normally would cost you 200,&#8211; per [...]]]></description>
			<content:encoded><![CDATA[<p>I have just returned from <a href="http://www.fosdem.org/2008/">Fosdem 2008</a>. The trip by car to Bruxelles was by Dutch standards quite long, 3 hours. Volker, who did the hotel bookings for the FSFE, was kind enough to also book a room for me and my brother.  For the <a href="http://www.astridhotel.be/">3-star hotel</a>, which normally would cost you 200,&#8211; per night, we only had to pay about 70,&#8211; p/n.  I did expect group discount, but that it would be so enormous was a surpise.  I&#8217;m not complaining though :).</p>
<p>After the check-in we went for a quick diner and straight of to the <a href="http://www.deliriumcafe.be/">Delirium Café</a> for the &#8220;Beer Event&#8221;.  The café, even though it&#8217;s the largest one I&#8217;ve ever visited, was barely big enough for the masses of geeks.  One could buy a &#8216;red dot&#8217; from one of the organizers for 20,&#8211; euros.  With it you can order any beer (one of the 25 on the tap) at the bar without paying until you spend the 20,&#8211; euros.  This wasn&#8217;t checked though.  I feel it hard to imagine, and my head felt even harder the next morning, that one would consume more. On that next morning the real magnitude of the conference became apparent.  The first talk, at a large (really, large) college room at the Free University of Bruxelles, was attended by at least a thousand if it weren&#8217;t two-thousand people. </p>
<p>The talk about Perl 6 was the most interesting for me.  I didn&#8217;t really like Perl &lt;5 primarily because of having too many ways to do the same in exactly the same way but with a different syntax.  I knew that Perl 6 was a total and backwards incompatible redesign of the language, build on top of a generic and good virtual machine called <a href="http://www.parrotcode.org/">Parrot</a>.  Parrot, which I hadn&#8217;t given a proper look yet, turned out to be a lot greater than expected.  You write support for a new language in Parrot by writing in a subset of Perl 6, which with it&#8217;s new Regular Expressions and specializations (tokens: regex without backtracking, etc), was looking very suited for it.<br />
Except for all the new syntactic very very sweet sugar (on which I won&#8217;t (yet) elaborate) they added in Perl 6, the greatest one (which is actually more of a Parrot thing) is being able to extend Perl during runtime: writing new parser rules.  One application is being able to define &#8216;!&#8217; as a faculty operator.  I&#8217;m itching to play with it.</p>
<p>Another very interesting talk was the one about <a href="http://www.tungstengraphics.com/wiki/index.php/Gallium3D">Gallium3D</a>, which is an effort to rework the 3D API on Linux and Xorg for 3D accelerator drivers.  It primarily abstracts most of the operations of the video card to being a very specialized language processor and not entirely surprising makes heavy use of the <a href="http://llvm.org/">llvm</a>.  The abstraction was effective enough to being able to take a driver originally written for Linux, rework it for Gallium3D and actually being able to be run on a Windows version of Gallium.  That it runs on Windows really can&#8217;t bother that much people.  That it also now runs on Cell&#8217;s SMP&#8217;s, can.  The speaker joked that one finally can play 3D games on your PS3 [ on Linux ].</p>
<p>Most of the talks I attended were pretty interesting.  Most of the speakers, though, weren&#8217;t that great speakers.  The thing I missed most with FOSDEM was that there was no easy way to get in touch with people of a certain project.  There were booths of a lot of projects, but there the people behind the booth were just standing there to show you stuff in the hallway that was too narrow.  There were separate rooms for projects where there were talks given about the project, but there was no real time in between.  A few hours nothing but people of the project meeting in a project room would have been great.</p>
<p>Miscellaneously, the OLPC is a great toy;  the EEE is even uglier than it looks on the web;  the MacBook Air is even thinner than you think and the FSFE people with whom we stayed at the hotel were great.  I could tell a lot more, but quite frankly I&#8217;m very tired and sleep calls.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.w-nz.com/archives/2008/02/25/fosdem-2/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
