<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Our line's too short ...</title>
	<atom:link href="http://xrotwang.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://xrotwang.wordpress.com</link>
	<description>... to fathom such immense abysses.</description>
	<lastBuildDate>Tue, 26 Jan 2010 19:54:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='xrotwang.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Our line's too short ...</title>
		<link>http://xrotwang.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://xrotwang.wordpress.com/osd.xml" title="Our line&#039;s too short ..." />
	<atom:link rel='hub' href='http://xrotwang.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Vary: Accept and caching</title>
		<link>http://xrotwang.wordpress.com/2010/01/26/vary-accept-and-caching/</link>
		<comments>http://xrotwang.wordpress.com/2010/01/26/vary-accept-and-caching/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 18:58:47 +0000</pubDate>
		<dc:creator>Robert Forkel</dc:creator>
				<category><![CDATA[apache]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[squid]]></category>

		<guid isPermaLink="false">http://xrotwang.wordpress.com/?p=68</guid>
		<description><![CDATA[Ok, so the kind of content negotiation necessary to serve linked data does not prevent using squid as a transparent cache proxy: Vary: Accept to the rescue! Unfortunately it turns out that there are quite a few different Accept headers around, although probably an order of magnitude less than User-Agent headers. On a medium-traffic site [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xrotwang.wordpress.com&amp;blog=1631554&amp;post=68&amp;subd=xrotwang&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Ok, so the kind of <a href="http://en.wikipedia.org/wiki/Content_negotiation">content negotiation</a> necessary to serve <a href="http://linkeddata.org/">linked data</a> does not prevent using <a href="http://www.squid-cache.org/">squid</a> as a transparent cache proxy: <code>Vary: Accept</code> to the rescue!</p>
<p>Unfortunately it turns out that there are quite a few different <code>Accept</code> headers around, although probably an order of magnitude less than <code>User-Agent</code> headers. On a medium-traffic site this reduces the effect of caching almost to a server-side replication of a single machine&#8217;s browser cache. (In fact, considering that a <code>Vary: Accept</code> header <a href="http://www.fiddler2.com/fiddler/perf/aboutvary.asp">prevents IE6 from caching anything</a>, in some cases it recreates the browser cache with the added latency.)</p>
<p>So in a situation where the only content negotiation our application actually does is whether to serve <code>application/rdf+xml</code> or do the default thing, what can we do? Obviously, reducing the number of different <code>Accept</code> headers that are sent to squid could help. It turns out that this is pretty easy to accomplish (in case an Apache httpd is running in front of squid):<br />
<code><br />
SetEnvIf Accept ".*application\/rdf\+xml.*" RDF_XML_request<br />
RequestHeader unset Accept env=!RDF_XML_request<br />
</code><br />
Whenever the <code>Accept</code> header contains <code>application/rdf+xml</code>, we leave it intact (hoping that the number of different <code>Accept</code> headers fulfilling this condition will be rather small), otherwise we simply remove it, forcing the upstream application to resort to the default behaviour.</p>
<p>Of course as soon as the upstream application does more in terms of content negotiation than simply checking whether <code>application/rdf+xml</code> is the best match for a request, this scheme breaks down. But are there any other problems?</p>
<p><strong>Update:</strong> The above configuration works for Apache httpd 2.2.x, for 2.0.x I was successful with<br />
<code><br />
SetEnvIf Accept ".*application\/rdf\+xml.*" RDF_XML_request<br />
RequestHeader set Accept "*/*" env=!RDF_XML_request<br />
</code></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/xrotwang.wordpress.com/68/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/xrotwang.wordpress.com/68/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/xrotwang.wordpress.com/68/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/xrotwang.wordpress.com/68/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/xrotwang.wordpress.com/68/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/xrotwang.wordpress.com/68/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/xrotwang.wordpress.com/68/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/xrotwang.wordpress.com/68/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/xrotwang.wordpress.com/68/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/xrotwang.wordpress.com/68/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/xrotwang.wordpress.com/68/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/xrotwang.wordpress.com/68/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/xrotwang.wordpress.com/68/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/xrotwang.wordpress.com/68/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xrotwang.wordpress.com&amp;blog=1631554&amp;post=68&amp;subd=xrotwang&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xrotwang.wordpress.com/2010/01/26/vary-accept-and-caching/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fb9b4a16c5b145cb9fe71b7b44002b40?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">xrotwang</media:title>
		</media:content>
	</item>
		<item>
		<title>What Designers of a Protocol can learn from OAI-PMH</title>
		<link>http://xrotwang.wordpress.com/2009/07/12/what-designers-of-a-protocol-can-learn-from-oai-pmh/</link>
		<comments>http://xrotwang.wordpress.com/2009/07/12/what-designers-of-a-protocol-can-learn-from-oai-pmh/#comments</comments>
		<pubDate>Sun, 12 Jul 2009 17:35:08 +0000</pubDate>
		<dc:creator>Robert Forkel</dc:creator>
				<category><![CDATA[cgi]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://xrotwang.wordpress.com/?p=66</guid>
		<description><![CDATA[I spent the last couple of days writing an OAI-PMH data provider (two, actually). And to give a positive twist to the things that bothered me about OAI-PMH, I&#8217;ll list them as &#8220;things not to do in a protocol&#8221;: additional arguments are not ignored but are to be handled as error. This leads to a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xrotwang.wordpress.com&amp;blog=1631554&amp;post=66&amp;subd=xrotwang&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I spent the last couple of days writing an <a href="http://www.openarchives.org/OAI/openarchivesprotocol.html">OAI-PMH</a> <a href="https://dev.livingreviews.org/projects/wals/browser/trunk/wals/wals/controllers/language.py">data provider</a> (<a href="https://dev.livingreviews.org/projects/wals/browser/trunk/wals/wals/controllers/root.py">two</a>, actually). And to give a positive twist to the things that bothered me about OAI-PMH, I&#8217;ll list them as &#8220;things not to do in a protocol&#8221;:</p>
<ul>
<li>additional arguments are not ignored but are to be handled as error.
<p>       This leads to a lot of additional code just to make sure a data provider is compliant. But for a different OAI-PMH data provider I wrote before it was even worse: I had one data provider serving different repositories, but I couldn&#8217;t simply add an additional URL parameter to the base URL to distinguish these.</li>
<li>HTTP is just used as transport layer.
<p>        An error response in OAI-PMH is not an HTTP reponse with a status != 200, but rather an XML error message delivered with HTTP 200. This means more programming work on both server and client side.</li>
<li><code>noRecordsMatch</code> error message instead of delivering an empty list.
<p>       Again this means more work on the data provider side &#8211; but also for most harvesters i assume. Additionally, since this error can only be detected after running some logic on the server, it is hard to just implement one <code>check_args</code> routine, which is called before any other action and then only handle the success case.</li>
<li>The resumption token.
<p>        The flow control mechanism of OAI-PMH is way too specific. It&#8217;s completely geared towards stateful data providers. Imagine your resources live in an SQL database; what you&#8217;d do to retrieve them in batches is using simple <code>LIMIT</code> and <code>OFFSET</code> settings. But you can&#8217;t just put the offset in the resumption token, becaue it is an <em>exclusive</em> argument, i.e. with the next request from the client, you will receive only the resumption token, but none of the other arguments supplied before. So what the typical CGI programmer ends up with is embedding all other arguments in the resumption token, and upon the next request, parsing the resumption token to reconsruct the complete request.</li>
</ul>
<p>So if you are about to design a protocol on top of HTTP learn from the mistakes of OAI-PMH.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/xrotwang.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/xrotwang.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/xrotwang.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/xrotwang.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/xrotwang.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/xrotwang.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/xrotwang.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/xrotwang.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/xrotwang.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/xrotwang.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/xrotwang.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/xrotwang.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/xrotwang.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/xrotwang.wordpress.com/66/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xrotwang.wordpress.com&amp;blog=1631554&amp;post=66&amp;subd=xrotwang&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xrotwang.wordpress.com/2009/07/12/what-designers-of-a-protocol-can-learn-from-oai-pmh/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fb9b4a16c5b145cb9fe71b7b44002b40?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">xrotwang</media:title>
		</media:content>
	</item>
		<item>
		<title>Maximum object size for squid</title>
		<link>http://xrotwang.wordpress.com/2009/07/03/maximum-object-size-for-squid/</link>
		<comments>http://xrotwang.wordpress.com/2009/07/03/maximum-object-size-for-squid/#comments</comments>
		<pubDate>Fri, 03 Jul 2009 17:35:09 +0000</pubDate>
		<dc:creator>Robert Forkel</dc:creator>
				<category><![CDATA[http]]></category>
		<category><![CDATA[squid]]></category>

		<guid isPermaLink="false">http://xrotwang.wordpress.com/?p=62</guid>
		<description><![CDATA[Note to self: the default maximum_object_size setting for squid is an &#8211; to me at least &#8211; non-intuitively small 4 MB.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xrotwang.wordpress.com&amp;blog=1631554&amp;post=62&amp;subd=xrotwang&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Note to self: the default <a href="http://www.squid-cache.org/Doc/config/maximum_object_size/">maximum_object_size</a>  setting for <a href="http://www.squid-cache.org/">squid</a> is an &#8211; to me at least &#8211; non-intuitively small 4 MB.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/xrotwang.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/xrotwang.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/xrotwang.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/xrotwang.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/xrotwang.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/xrotwang.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/xrotwang.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/xrotwang.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/xrotwang.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/xrotwang.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/xrotwang.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/xrotwang.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/xrotwang.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/xrotwang.wordpress.com/62/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xrotwang.wordpress.com&amp;blog=1631554&amp;post=62&amp;subd=xrotwang&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xrotwang.wordpress.com/2009/07/03/maximum-object-size-for-squid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fb9b4a16c5b145cb9fe71b7b44002b40?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">xrotwang</media:title>
		</media:content>
	</item>
		<item>
		<title>Stop Password Masking?</title>
		<link>http://xrotwang.wordpress.com/2009/06/28/stop-password-masking/</link>
		<comments>http://xrotwang.wordpress.com/2009/06/28/stop-password-masking/#comments</comments>
		<pubDate>Sun, 28 Jun 2009 20:02:47 +0000</pubDate>
		<dc:creator>Robert Forkel</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://xrotwang.wordpress.com/?p=60</guid>
		<description><![CDATA[I think Jakob Nielsen has this one wrong. Masking password fields may make it harder for the user, but having seen people log in to applications in live demos &#8211; i.e. with a whole bunch of bystanders &#8211; tells me that there is a place for this technique.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xrotwang.wordpress.com&amp;blog=1631554&amp;post=60&amp;subd=xrotwang&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I think Jakob Nielsen has <a href="http://www.useit.com/alertbox/passwords.html">this one</a> wrong. Masking password fields may make it harder for the user, but having seen people log in to applications in live demos &#8211; i.e. with a whole bunch of bystanders &#8211; tells me that there is a place for this technique.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/xrotwang.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/xrotwang.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/xrotwang.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/xrotwang.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/xrotwang.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/xrotwang.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/xrotwang.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/xrotwang.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/xrotwang.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/xrotwang.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/xrotwang.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/xrotwang.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/xrotwang.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/xrotwang.wordpress.com/60/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xrotwang.wordpress.com&amp;blog=1631554&amp;post=60&amp;subd=xrotwang&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xrotwang.wordpress.com/2009/06/28/stop-password-masking/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fb9b4a16c5b145cb9fe71b7b44002b40?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">xrotwang</media:title>
		</media:content>
	</item>
		<item>
		<title>A note on INNER JOIN and sqlite</title>
		<link>http://xrotwang.wordpress.com/2009/04/29/a-note-on-inner-join-and-sqlite/</link>
		<comments>http://xrotwang.wordpress.com/2009/04/29/a-note-on-inner-join-and-sqlite/#comments</comments>
		<pubDate>Wed, 29 Apr 2009 12:20:44 +0000</pubDate>
		<dc:creator>Robert Forkel</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://xrotwang.wordpress.com/?p=58</guid>
		<description><![CDATA[Compare robert@forkel02:~/projects/lwt/trunk/lwt 14:11:15$ time sqlite3 devdata.sqlite "select distinct l.name from source_word_donor_language as swdl inner join source_word as sw inner join word_source_word as wsw inner join word as w inner join language as l on swdl.source_word_id = sw.id and sw.id = wsw.source_word_id and wsw.word_id = w.id and w.language_name = l.name where swdl.donor_language_id = 873046508145964;" Imbabura Quechua [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xrotwang.wordpress.com&amp;blog=1631554&amp;post=58&amp;subd=xrotwang&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Compare<br />
<code><br />
robert@forkel02:~/projects/lwt/trunk/lwt<br />
14:11:15$ time sqlite3  devdata.sqlite "select distinct l.name from source_word_donor_language as swdl inner join source_word as sw inner join word_source_word as wsw inner join word as w inner join language as l on swdl.source_word_id = sw.id and sw.id = wsw.source_word_id and wsw.word_id = w.id and w.language_name = l.name where swdl.donor_language_id = 873046508145964;"<br />
Imbabura Quechua (Quichua)<br />
Yaqui<br />
Otomi<br />
Tzotzil of Zinacantan<br />
Mapudungun<br />
Q'eqchi'<br />
Kali'na<br />
Wichí [Matacoan]<br />
Berber<br />
Dutch<br />
English<br />
Ceq Wong<br />
Indonesian<br />
Japanese<br />
Romanian<br />
Seychelles Creole<br />
Hawaiian</p>
<p>real    4m34.178s<br />
user    3m59.379s<br />
sys     0m32.766s<br />
</code><br />
with<br />
<code><br />
robert@forkel02:~/projects/lwt/trunk/lwt<br />
14:10:43$ time sqlite3  devdata.sqlite "select distinct l.name from source_word_donor_language as swdl, source_word as sw, word_source_word as wsw, word as w, language as l where swdl.source_word_id = sw.id and sw.id = wsw.source_word_id and wsw.word_id = w.id and w.language_name = l.name and swdl.donor_language_id = 873046508145964;"<br />
Imbabura Quechua (Quichua)<br />
Yaqui<br />
Otomi<br />
Tzotzil of Zinacantan<br />
Mapudungun<br />
Q'eqchi'<br />
Kali'na<br />
Wichí [Matacoan]<br />
Berber<br />
Dutch<br />
English<br />
Ceq Wong<br />
Indonesian<br />
Japanese<br />
Romanian<br />
Seychelles Creole<br />
Hawaiian</p>
<p>real    0m12.060s<br />
user    0m12.017s<br />
sys     0m0.048s<br />
</code></p>
<p><a href="http://en.wikipedia.org/wiki/Join_(SQL)#Inner_join">Wikipedia</a> says the above SQL statements are equivalent. But that doesn&#8217;t mean an SQL engine will treat them equivalently.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/xrotwang.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/xrotwang.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/xrotwang.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/xrotwang.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/xrotwang.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/xrotwang.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/xrotwang.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/xrotwang.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/xrotwang.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/xrotwang.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/xrotwang.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/xrotwang.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/xrotwang.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/xrotwang.wordpress.com/58/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xrotwang.wordpress.com&amp;blog=1631554&amp;post=58&amp;subd=xrotwang&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xrotwang.wordpress.com/2009/04/29/a-note-on-inner-join-and-sqlite/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fb9b4a16c5b145cb9fe71b7b44002b40?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">xrotwang</media:title>
		</media:content>
	</item>
		<item>
		<title>Running multiple squid instances on Ubuntu</title>
		<link>http://xrotwang.wordpress.com/2008/12/03/running-multiple-squid-instances-on-ubuntu/</link>
		<comments>http://xrotwang.wordpress.com/2008/12/03/running-multiple-squid-instances-on-ubuntu/#comments</comments>
		<pubDate>Wed, 03 Dec 2008 19:00:43 +0000</pubDate>
		<dc:creator>Robert Forkel</dc:creator>
				<category><![CDATA[http]]></category>
		<category><![CDATA[squid]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://xrotwang.wordpress.com/?p=54</guid>
		<description><![CDATA[As described in earlier posts, our standard web application setup at work is TurboGears behind squid as transparent caching proxy behind Apache. One of the reasons for this setup is that we want fine granular control over the services. Since we already decided to run each application in its own application server, we want to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xrotwang.wordpress.com&amp;blog=1631554&amp;post=54&amp;subd=xrotwang&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>As described in <a href="http://xrotwang.wordpress.com/2008/04/16/squid-as-accelerator-for-turbogears/">earlier</a> <a href="http://xrotwang.wordpress.com/2008/12/03/linkeddata-with-turbogears-and-squid/">posts</a>, our standard web application setup at work is TurboGears behind squid as transparent caching proxy behind Apache. One of the reasons for this setup is that we want fine granular control over the services.</p>
<p>Since we already decided to run each application in its own application server, we want to keep things separate in the squid layer as well. Which brings us to the challenge of running multiple squid instances. It turns out this isn&#8217;t too hard to do, reusing most of the standard squid installation on ubuntu.</p>
<ol>
<li>Create a link to have the squid deamon available under a different name:<code><br />
cd /usr/local/sbin<br />
ln /usr/sbin/squid squid2<br />
</code></li>
<li>Create directories for logs and cache files:<code><br />
mkdir /var/log/squid2<br />
chown proxy:proxy /var/log/squid2<br />
mkdir /var/spool/squid2<br />
chown proxy:proxy /var/spool/squid2<br />
</code></li>
<li>Create the configuration in <code>/etc/squid/squid2.conf</code>, specifying <code>pid_filename</code>, <code>cache_dir</code> and <code>access_log</code> in particular.</li>
<li>Create an init script. We started out with the one installed with the package and only had to apply the following changes:<code><br />
# diff /etc/init.d/squid2 /etc/init.d/squid<br />
8,10c8,9<br />
&lt; NAME=squid2<br />
&lt; CONF=/etc/squid/$NAME.conf<br />
&lt; DAEMON=/usr/local/sbin/$NAME<br />
---<br />
&gt; NAME=squid<br />
&gt; DAEMON=/usr/sbin/squid<br />
13c12<br />
&lt; SQUID_ARGS="-D -sYC -f $CONF"<br />
---<br />
&gt; SQUID_ARGS="-D -sYC"<br />
38c37<br />
&lt;      sq=$CONF<br />
---<br />
&gt;       sq=/etc/squid/$NAME.conf<br />
82c81<br />
&lt;              $DAEMON -z -f $CONF<br />
---<br />
&gt;               $DAEMON -z<br />
</code></li>
<li>And install the init script running<code><br />
update-rc.d squid2 defaults 99<br />
</code>.</li>
</ol>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/xrotwang.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/xrotwang.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/xrotwang.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/xrotwang.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/xrotwang.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/xrotwang.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/xrotwang.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/xrotwang.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/xrotwang.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/xrotwang.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/xrotwang.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/xrotwang.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/xrotwang.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/xrotwang.wordpress.com/54/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xrotwang.wordpress.com&amp;blog=1631554&amp;post=54&amp;subd=xrotwang&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xrotwang.wordpress.com/2008/12/03/running-multiple-squid-instances-on-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fb9b4a16c5b145cb9fe71b7b44002b40?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">xrotwang</media:title>
		</media:content>
	</item>
		<item>
		<title>LinkedData with TurboGears and squid</title>
		<link>http://xrotwang.wordpress.com/2008/12/03/linkeddata-with-turbogears-and-squid/</link>
		<comments>http://xrotwang.wordpress.com/2008/12/03/linkeddata-with-turbogears-and-squid/#comments</comments>
		<pubDate>Wed, 03 Dec 2008 18:33:43 +0000</pubDate>
		<dc:creator>Robert Forkel</dc:creator>
				<category><![CDATA[http]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[squid]]></category>

		<guid isPermaLink="false">http://xrotwang.wordpress.com/?p=52</guid>
		<description><![CDATA[At work we run several TurboGears web applications, deployed behind Apache acting as proxy. I like this setup a lot, because it allows us to reuse our log file analysis infrastructure for the web applications as well. Some of the web applications serve data that rarely changes, so to lower the traffic for TurboGears, I [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xrotwang.wordpress.com&amp;blog=1631554&amp;post=52&amp;subd=xrotwang&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>At work we run several <a href="http://turbogears.org/">TurboGears</a> web applications, deployed behind Apache acting as proxy. I like this setup a lot, because it allows us to reuse our log file analysis infrastructure for the web applications as well.</p>
<p>Some of the web applications serve data that rarely changes, so to lower the traffic for TurboGears, I decided to use a transparent cache proxy. Since logging is already taken care of by Apache, I don&#8217;t care about not all requests hitting the application server.</p>
<p>We settled on putting a <a href="http://www.squid-cache.org/">squid</a> cache between Apache and TurboGears, which worked well <a href="http://xrotwang.wordpress.com/2008/04/16/squid-as-accelerator-for-turbogears/">after some fiddling</a>.</p>
<p>Recently a new requirement came up: Serving <a href="http://linkeddata.org/">Linked Data</a> with these web applications. This is actually pretty easy to do with TurboGears. Creating RDF+XML with the templating engines works well, and even the <a href="http://www4.wiwiss.fu-berlin.de/bizer/pub/LinkedDataTutorial/#Terminology">content negotiation mechanism</a> recommended for serving the data is well supported. To have TurboGears serve the RDF+XML representation for a resource just decorate the corresponding controller as follows:<br />
<code><br />
    @expose(as_format="rdf",<br />
                 format="xml",<br />
                 template="...",<br />
                 content_type="application/rdf+xml",<br />
                 accept_format="application/rdf+xml")<br />
</code><br />
TurboGears will pick the appropriate template based on the <code>Accept</code> header sent by the client.</p>
<p>Unfortunately this setup &#8211; different pages served for the same URL &#8211; doesn&#8217;t work well with our squid cache. But the <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.44"><code>Vary</code> HTTP header</a> comes to our rescue. To tell squid that certain HTTP request headers have to be taken into account when caching a response, send back a <code>Vary</code> header to inform squid about this; thus, squid will use a key <a href="http://squid.sourceforge.net/vary/">combined from URL and the significant headers</a> for the cached page.</p>
<p>Now the only header important for our content negotiation requirement is the <code>Accept</code> header, so putting the following line in the controller does the trick:<br />
<code><br />
    response.header['Vary'] = 'accept'<br />
</code></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/xrotwang.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/xrotwang.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/xrotwang.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/xrotwang.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/xrotwang.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/xrotwang.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/xrotwang.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/xrotwang.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/xrotwang.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/xrotwang.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/xrotwang.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/xrotwang.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/xrotwang.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/xrotwang.wordpress.com/52/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xrotwang.wordpress.com&amp;blog=1631554&amp;post=52&amp;subd=xrotwang&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xrotwang.wordpress.com/2008/12/03/linkeddata-with-turbogears-and-squid/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fb9b4a16c5b145cb9fe71b7b44002b40?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">xrotwang</media:title>
		</media:content>
	</item>
		<item>
		<title>Claim your online persona</title>
		<link>http://xrotwang.wordpress.com/2008/11/11/claim-your-online-persona/</link>
		<comments>http://xrotwang.wordpress.com/2008/11/11/claim-your-online-persona/#comments</comments>
		<pubDate>Tue, 11 Nov 2008 09:43:03 +0000</pubDate>
		<dc:creator>Robert Forkel</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://xrotwang.wordpress.com/?p=49</guid>
		<description><![CDATA[Andy powell has an interesting hands-on post on the topic of claiming your online persona: define:digital identity. What I especially like: he even gives recommendations!<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xrotwang.wordpress.com&amp;blog=1631554&amp;post=49&amp;subd=xrotwang&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Andy powell has an interesting hands-on post on the topic of claiming your online persona:<br />
<a href="http://efoundations.typepad.com/efoundations/2008/11/definedigital-identity.html">define:digital identity</a>. What I especially like: he even gives recommendations!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/xrotwang.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/xrotwang.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/xrotwang.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/xrotwang.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/xrotwang.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/xrotwang.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/xrotwang.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/xrotwang.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/xrotwang.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/xrotwang.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/xrotwang.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/xrotwang.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/xrotwang.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/xrotwang.wordpress.com/49/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xrotwang.wordpress.com&amp;blog=1631554&amp;post=49&amp;subd=xrotwang&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xrotwang.wordpress.com/2008/11/11/claim-your-online-persona/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fb9b4a16c5b145cb9fe71b7b44002b40?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">xrotwang</media:title>
		</media:content>
	</item>
		<item>
		<title>wlan with WPA on ThinkPad T61p with Ubuntu 7.10</title>
		<link>http://xrotwang.wordpress.com/2008/11/11/wlan-with-wpa-on-thinkpad-t61p-with-ubuntu-710/</link>
		<comments>http://xrotwang.wordpress.com/2008/11/11/wlan-with-wpa-on-thinkpad-t61p-with-ubuntu-710/#comments</comments>
		<pubDate>Tue, 11 Nov 2008 08:24:47 +0000</pubDate>
		<dc:creator>Robert Forkel</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://xrotwang.wordpress.com/?p=46</guid>
		<description><![CDATA[For some reason, i never got wlan with WPA to work right seamlessly on my ThinkPad T61p with ubuntu 7.10. So here&#8217;s a short writeup of what it takes. Stop the network Put the WPA network information in /etc/wpa_supplicant.conf (see man wpa_supplicant.conf for examples) Start the wpa supplicant running wpa_supplicant -Dwext -iwlan0 -c/etc/wpa_supplicant.conf Start the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xrotwang.wordpress.com&amp;blog=1631554&amp;post=46&amp;subd=xrotwang&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>For some reason, i never got wlan with WPA to work right seamlessly on my ThinkPad T61p with ubuntu 7.10. So here&#8217;s a short writeup of what it takes.</p>
<ol>
<li>Stop the network</li>
<li>Put the WPA network information in /etc/wpa_supplicant.conf (see <code>man wpa_supplicant.conf</code> for examples)</li>
<li>Start the wpa supplicant running <code>wpa_supplicant -Dwext -iwlan0 -c/etc/wpa_supplicant.conf</code></li>
<li>Start the DHCP client running <code>dhclient wlan0</code></li>
</ol>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/xrotwang.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/xrotwang.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/xrotwang.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/xrotwang.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/xrotwang.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/xrotwang.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/xrotwang.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/xrotwang.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/xrotwang.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/xrotwang.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/xrotwang.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/xrotwang.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/xrotwang.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/xrotwang.wordpress.com/46/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xrotwang.wordpress.com&amp;blog=1631554&amp;post=46&amp;subd=xrotwang&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xrotwang.wordpress.com/2008/11/11/wlan-with-wpa-on-thinkpad-t61p-with-ubuntu-710/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fb9b4a16c5b145cb9fe71b7b44002b40?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">xrotwang</media:title>
		</media:content>
	</item>
		<item>
		<title>Creating portable picture galleries from flickr photos</title>
		<link>http://xrotwang.wordpress.com/2008/11/08/creating-portable-picture-galleries-from-flickr-photos/</link>
		<comments>http://xrotwang.wordpress.com/2008/11/08/creating-portable-picture-galleries-from-flickr-photos/#comments</comments>
		<pubDate>Sat, 08 Nov 2008 16:09:19 +0000</pubDate>
		<dc:creator>Robert Forkel</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://xrotwang.wordpress.com/?p=44</guid>
		<description><![CDATA[Having been a flickr user for a couple of years now, my infrastructure for creating backups of the data stored at flickr grew more and more sophisticated. So finally I decided to polish it so that it can be used by others as well and put on google code.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xrotwang.wordpress.com&amp;blog=1631554&amp;post=44&amp;subd=xrotwang&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Having been a flickr user for a couple of years now, my infrastructure for creating backups of the data stored at flickr grew more and more sophisticated. So finally I decided to polish it so that it can be used by others as well and put on <a href="http://code.google.com/p/py-picturegallery/">google code</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/xrotwang.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/xrotwang.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/xrotwang.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/xrotwang.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/xrotwang.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/xrotwang.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/xrotwang.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/xrotwang.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/xrotwang.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/xrotwang.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/xrotwang.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/xrotwang.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/xrotwang.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/xrotwang.wordpress.com/44/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xrotwang.wordpress.com&amp;blog=1631554&amp;post=44&amp;subd=xrotwang&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xrotwang.wordpress.com/2008/11/08/creating-portable-picture-galleries-from-flickr-photos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fb9b4a16c5b145cb9fe71b7b44002b40?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">xrotwang</media:title>
		</media:content>
	</item>
	</channel>
</rss>
