<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Laughing Meme &#187; xml</title>
	<atom:link href="http://laughingmeme.org/tag/xml/feed/" rel="self" type="application/rss+xml" />
	<link>http://laughingmeme.org</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Sun, 29 Jan 2012 21:54:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>ongoing: XML People</title>
		<link>http://laughingmeme.org/2008/02/10/ongoing-xml-people/</link>
		<comments>http://laughingmeme.org/2008/02/10/ongoing-xml-people/#comments</comments>
		<pubDate>Sun, 10 Feb 2008 20:19:03 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Aside]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[history]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://laughingmeme.org/2008/02/10/ongoing-xml-people/</guid>
		<description><![CDATA[Happy Birthday XML! The most successful new technology since the Web itself.]]></description>
			<content:encoded><![CDATA[<p>Happy Birthday XML!  The most successful new technology since the Web itself.</p>
<p><a href='http://www.tbray.org/ongoing/When/200x/2008/02/10/XML-People'>http://www.tbray.org/ongoing/When/200x/2008/02/10/XML-People</a></p>]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2008/02/10/ongoing-xml-people/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XML-RSS-1.10 released March 10th</title>
		<link>http://laughingmeme.org/2006/06/06/xml-rss-110-released-march-10th/</link>
		<comments>http://laughingmeme.org/2006/06/06/xml-rss-110-released-march-10th/#comments</comments>
		<pubDate>Wed, 07 Jun 2006 01:40:00 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Aside]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=3373</guid>
		<description><![CDATA[Woohoo! Ask is now the maintainer and released a new version. (I know it took me a while to notice, I blame being in Maui)]]></description>
			<content:encoded><![CDATA[<p>Woohoo!  Ask is now the maintainer and released a new version. (I know it took me a while to notice, I blame being in Maui)</p>
<p><a href='http://search.cpan.org/dist/XML-RSS/'>http://search.cpan.org/dist/XML-RSS/</a></p>]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2006/06/06/xml-rss-110-released-march-10th/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title> :of &#8220;proof&#8221;</title>
		<link>http://laughingmeme.org/2006/02/11/of-proof/</link>
		<comments>http://laughingmeme.org/2006/02/11/of-proof/#comments</comments>
		<pubDate>Sat, 11 Feb 2006 19:46:00 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Aside]]></category>
		<category><![CDATA[rdf]]></category>
		<category><![CDATA[semweb]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=3248</guid>
		<description><![CDATA[XML vs RDF]]></description>
			<content:encoded><![CDATA[<p>XML vs RDF</p>
<p><a href='http://www.aaronland.info/weblog/2006/01/28/patches/#burden'>http://www.aaronland.info/weblog/2006/01/28/patches/#burden</a></p>]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2006/02/11/of-proof/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;&#8230;next week and the week after, when it&#8217;s history, all those aggregators will still be checking it, even though it will never again be updated.&#8221;</title>
		<link>http://laughingmeme.org/2006/01/17/next-week-and-the-week-after-when-its-history-all-those-aggregators-will-still-be-checking-it-even-though-it-will-never-again-be-updated/</link>
		<comments>http://laughingmeme.org/2006/01/17/next-week-and-the-week-after-when-its-history-all-those-aggregators-will-still-be-checking-it-even-though-it-will-never-again-be-updated/#comments</comments>
		<pubDate>Tue, 17 Jan 2006 17:55:00 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Aside]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[syndication]]></category>
		<category><![CDATA[winer]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=3192</guid>
		<description><![CDATA[thats what 410 (Gone) is for.]]></description>
			<content:encoded><![CDATA[<p>thats what <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.11">410 (Gone)</a> is for.</p>
<p><a href='http://www.scripting.com/2006/01/16.html#When:9:17:07AM'>http://www.scripting.com/2006/01/16.html#When:9:17:07AM</a></p>]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2006/01/17/next-week-and-the-week-after-when-its-history-all-those-aggregators-will-still-be-checking-it-even-though-it-will-never-again-be-updated/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Xpath support coming in MySQL 5.1</title>
		<link>http://laughingmeme.org/2006/01/17/xpath-support-coming-in-mysql-51/</link>
		<comments>http://laughingmeme.org/2006/01/17/xpath-support-coming-in-mysql-51/#comments</comments>
		<pubDate>Tue, 17 Jan 2006 17:53:00 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Aside]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=3191</guid>
		<description><![CDATA[plus cron-esque features. The rate of development on MySQL was gone from glacial to head spinning.]]></description>
			<content:encoded><![CDATA[<p>plus cron-esque features.  The rate of development on MySQL was gone from glacial to head spinning.</p>
<p><a href='http://jystewart.net/process/archives/2006/01/mysql-51/'>http://jystewart.net/process/archives/2006/01/mysql-51/</a></p>]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2006/01/17/xpath-support-coming-in-mysql-51/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;Photocasting&#8221;</title>
		<link>http://laughingmeme.org/2006/01/11/photocasting/</link>
		<comments>http://laughingmeme.org/2006/01/11/photocasting/#comments</comments>
		<pubDate>Thu, 12 Jan 2006 07:36:00 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[apple]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[itunes]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[syndication]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=3188</guid>
		<description><![CDATA[James Holderness (check the comments) Do you ever think maybe the Apple guys are just winding you up? Nobody could possibly be that stupid. Maybe, though I tend to share Phil&#8217;s skepticism. Lets start the with the name, &#8220;photocasting&#8221;. Worst name I&#8217;ve heard since &#8220;MacBook&#8221;. I&#8217;d speculate that Apple&#8217;s marketing department recently started outsourcing to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://inessential.com/?comments=1&amp;postid=3247">James Holderness</a> (check the comments)</p>

<blockquote>
  <p>Do you ever think maybe the Apple guys are just winding you up? Nobody could possibly be <em>that</em> stupid.</p>
</blockquote>

<p>Maybe, though I tend to share <a href="http://weblog.philringnalda.com/">Phil&#8217;s</a> skepticism.  Lets start the with the name, &#8220;photocasting&#8221;.  Worst name I&#8217;ve heard since &#8220;MacBook&#8221;.  I&#8217;d speculate that Apple&#8217;s marketing department recently started outsourcing to Engineering, except I&#8217;d be slandering my own profession.  That&#8217;s a minor thing, aesthetic really, but dear god, how could they screw up the RSS?  Again?  (especially as I <em>know</em> people at Apple who are not only smart and clueful, but get XML)</p>

<p>I mean the iTunes name space was a <a href="http://usefulinc.com/edd/blog/contents/2005/06/28-rss-apple-itunes/read"><em>train wreck</em></a>.  (though truth be told podcasting for some reason produces the scariest, wackiest feeds on the planet, at one point roughly 1/3 of the feeds <a href="http://odeo.com">Odeo</a> was crawling had serious errors)</p>

<p>User agent detection?  Of RSS?  <strong>In 2006?!?</strong>  Come again?</p>

<p>Embedded CSS?  Misformatted dates?  Random, namespace-less new elements (PhotoDate?)  A new standard for including comments within an item.</p>

<p>See <a href="http://inessential.com/?comments=1&amp;postid=3247">Phil&#8217;s comment</a>, <a href="http://www.intertwingly.net/blog/2006/01/11/Photocasting">Sam</a>, <a href="http://scripting.wordpress.com/2006/01/11/welcome-to-the-wonderful-wacky-world-of-apple-rss/">Dave Winer</a> </p>

<p>Hey <a href="http://apple.com">Apple</a>, consider hiring someone who knows something about syndication, it&#8217;s worth it.</p>

<p>Take <a href="http://photocast.mac.com/mrakes/iPhoto/photocast_test/index.rss">a look</a> (unless of course you&#8217;re using Firefox).</p>

<p><strong>update:</strong> [2005/01/18]  <a href="http://lists.apple.com/archives/syndication-dev/2006/Jan/msg00020.html">MarkP on &#8220;photocasting&#8221;</a>.  It&#8217;s not just bad, it&#8217;s spectaculary bad. (<a href="http://www.tbray.org/ongoing/When/200x/2006/01/18/Photocasting-Problems">via</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2006/01/11/photocasting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kevin Burton: xml:base was a BAD addition to Atom.</title>
		<link>http://laughingmeme.org/2005/12/08/kevin-burton-xmlbase-was-a-bad-addition-to-atom/</link>
		<comments>http://laughingmeme.org/2005/12/08/kevin-burton-xmlbase-was-a-bad-addition-to-atom/#comments</comments>
		<pubDate>Thu, 08 Dec 2005 20:35:00 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Aside]]></category>
		<category><![CDATA[atom]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[magpie]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[syndication]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=3149</guid>
		<description><![CDATA[Couldn&#8217;t agree more.]]></description>
			<content:encoded><![CDATA[<p>Couldn&#8217;t agree more.</p>
<p><a href='http://www.feedblog.org/2005/12/xmlbase_was_a_b.html'>http://www.feedblog.org/2005/12/xmlbase_was_a_b.html</a></p>]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2005/12/08/kevin-burton-xmlbase-was-a-bad-addition-to-atom/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PrinceXML: XSLT Alternative?</title>
		<link>http://laughingmeme.org/2005/12/05/princexml-xslt-alternative/</link>
		<comments>http://laughingmeme.org/2005/12/05/princexml-xslt-alternative/#comments</comments>
		<pubDate>Mon, 05 Dec 2005 22:32:00 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[design]]></category>
		<category><![CDATA[formatting]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=3140</guid>
		<description><![CDATA[I&#8217;ve had a todo item &#8220;Check out PrinceXML&#8221; since seeing it mentioned in ALA&#8217;s Printing a Book with CSS. So I got so far as figuring out it wasn&#8217;t opensource, and seeing that the price was $349 dollars. Definitely makes me think I should probably shuffle that &#8220;Learn XSL&#8221; up the todo list again. Still [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve had a todo item &#8220;Check out <a href="http://www.princexml.com/">PrinceXML</a>&#8221; since seeing it mentioned in ALA&#8217;s <a href="http://www.alistapart.com/articles/boom">Printing a Book with CSS</a>.</p>

<p>So I got so far as figuring out it wasn&#8217;t opensource, and seeing that the price was $349 dollars.  Definitely makes me think I should probably shuffle that &#8220;Learn XSL&#8221; up the todo list again.</p>

<p>Still I&#8217;m very intrigued, and will probably download the trial version when I&#8217;ve got enough free time that I can pour some into learning a proprietary tool.</p>

<p>Anyone else played with it?</p>
]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2005/12/05/princexml-xslt-alternative/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>MarkP: &#8220;it appears that iTunes uses a real, draconian, namespace-aware XML parser&#8230; &#8220;</title>
		<link>http://laughingmeme.org/2005/07/05/markp-it-appears-that-itunes-uses-a-real-draconian-namespace-aware-xml-parser/</link>
		<comments>http://laughingmeme.org/2005/07/05/markp-it-appears-that-itunes-uses-a-real-draconian-namespace-aware-xml-parser/#comments</comments>
		<pubDate>Wed, 06 Jul 2005 02:38:08 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Aside]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[itunes]]></category>
		<category><![CDATA[podcasting]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=2965</guid>
		<description><![CDATA[except that namespaces are case-insensitive. (just keeps getting better)]]></description>
			<content:encoded><![CDATA[<p>except that namespaces are case-insensitive. (just keeps getting better)</p>
<p><a href='http://www.intertwingly.net/blog/2005/06/28/Podcast-Specifications-Questions#c1120421138'>http://www.intertwingly.net/blog/2005/06/28/Podcast-Specifications-Questions#c1120421138</a></p>]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2005/07/05/markp-it-appears-that-itunes-uses-a-real-draconian-namespace-aware-xml-parser/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Edd&#8217;s first look at iTunes RSS extensions</title>
		<link>http://laughingmeme.org/2005/06/28/edds-first-look-at-itunes-rss-extensions/</link>
		<comments>http://laughingmeme.org/2005/06/28/edds-first-look-at-itunes-rss-extensions/#comments</comments>
		<pubDate>Wed, 29 Jun 2005 01:09:42 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Aside]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[itunes]]></category>
		<category><![CDATA[podcasting]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=2960</guid>
		<description><![CDATA[Verdict: gob-smackingly ignorant, daft, and nuts. (okay, he thinks they did a decent job in a handful of cases)]]></description>
			<content:encoded><![CDATA[<p>Verdict: gob-smackingly ignorant, daft, and nuts. (okay, he thinks they did a decent job in a handful of cases)</p>
<p><a href='http://usefulinc.com/edd/blog/contents/2005/06/28-rss-apple-itunes/read'>http://usefulinc.com/edd/blog/contents/2005/06/28-rss-apple-itunes/read</a></p>]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2005/06/28/edds-first-look-at-itunes-rss-extensions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;Modules and namespaces &#8211; from &#8216;dry and uninteresting&#8217; with &#8216;esoteric labels&#8217; to &#8216;really simple&#8217; in just four years.&#8221;</title>
		<link>http://laughingmeme.org/2004/11/22/modules-and-namespaces-from-dry-and-uninteresting-with-esoteric-labels-to-really-simple-in-just-four-years/</link>
		<comments>http://laughingmeme.org/2004/11/22/modules-and-namespaces-from-dry-and-uninteresting-with-esoteric-labels-to-really-simple-in-just-four-years/#comments</comments>
		<pubDate>Mon, 22 Nov 2004 21:14:30 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Aside]]></category>
		<category><![CDATA[namespaces]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[winer]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=2662</guid>
		<description><![CDATA[And they say you can&#8217;t teach an old dog new tricks.]]></description>
			<content:encoded><![CDATA[<p>And they say you can&#8217;t teach an old dog new tricks.</p>
<p><a href='http://dannyayers.com/archives/2004/11/22/how-to-extend-rss-20/'>http://dannyayers.com/archives/2004/11/22/how-to-extend-rss-20/</a></p>]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2004/11/22/modules-and-namespaces-from-dry-and-uninteresting-with-esoteric-labels-to-really-simple-in-just-four-years/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ruby Performance</title>
		<link>http://laughingmeme.org/2004/10/28/ruby-performance/</link>
		<comments>http://laughingmeme.org/2004/10/28/ruby-performance/#comments</comments>
		<pubDate>Fri, 29 Oct 2004 00:09:33 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Aside]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=2604</guid>
		<description><![CDATA[Just one data point]]></description>
			<content:encoded><![CDATA[<p>Just one data point</p>
<p><a href='http://fishbowl.pastiche.org/2004/10/28/ruby_performance'>http://fishbowl.pastiche.org/2004/10/28/ruby_performance</a></p>]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2004/10/28/ruby-performance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP, XML, and Character Encodings: a tale of sadness, rage, and (data-)loss</title>
		<link>http://laughingmeme.org/2004/06/17/php-xml-and-character-encodings-a-tale-of-sadness-rage-and-data-loss/</link>
		<comments>http://laughingmeme.org/2004/06/17/php-xml-and-character-encodings-a-tale-of-sadness-rage-and-data-loss/#comments</comments>
		<pubDate>Fri, 18 Jun 2004 06:02:51 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Aside]]></category>
		<category><![CDATA[i18n]]></category>
		<category><![CDATA[magpie]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=2345</guid>
		<description><![CDATA[Amazing work by Steve. Alas these are the days when the PHP&#8217;s reputation as a toy language seems richly deserved.]]></description>
			<content:encoded><![CDATA[<p>Amazing work by Steve.  Alas these are the days when the PHP&#8217;s reputation as a toy language seems richly deserved.</p>
<p><a href='http://minutillo.com/steve/weblog/2004/6/17/php-xml-and-character-encodings-a-tale-of-sadness-rage-and-data-loss'>http://minutillo.com/steve/weblog/2004/6/17/php-xml-and-character-encodings-a-tale-of-sadness-rage-and-data-loss</a></p>]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2004/06/17/php-xml-and-character-encodings-a-tale-of-sadness-rage-and-data-loss/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Missing the point #1:  CSV data in XML</title>
		<link>http://laughingmeme.org/2004/05/01/missing-the-point-1-csv-data-in-xml/</link>
		<comments>http://laughingmeme.org/2004/05/01/missing-the-point-1-csv-data-in-xml/#comments</comments>
		<pubDate>Sun, 02 May 2004 01:49:52 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Aside]]></category>
		<category><![CDATA[missingthepoint]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=2241</guid>
		<description><![CDATA[Least clueful use of XML since OPML?]]></description>
			<content:encoded><![CDATA[<p>Least clueful use of XML since OPML?</p>
<p><a href='http://www.impulsegoddess.co.uk/obscenities_list.xml'>http://www.impulsegoddess.co.uk/obscenities_list.xml</a></p>]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2004/05/01/missing-the-point-1-csv-data-in-xml/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RSS::Feed now supports UserlandRSS (mostly)</title>
		<link>http://laughingmeme.org/2004/04/10/rssfeed-now-supports-userlandrss-mostly/</link>
		<comments>http://laughingmeme.org/2004/04/10/rssfeed-now-supports-userlandrss-mostly/#comments</comments>
		<pubDate>Sun, 11 Apr 2004 04:39:00 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Aside]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=2201</guid>
		<description><![CDATA[My RSS parser built on XML::LibXML is creeping towards functionality.]]></description>
			<content:encoded><![CDATA[<p>My RSS parser built on XML::LibXML is creeping towards functionality.</p>
<p><a href='http://tamarin.laughingmeme.org/cgi-bin/viewcvs.cgi/xml-rss2/?root=cvs&only_with_tag=Unified_Version_Objects'>http://tamarin.laughingmeme.org/cgi-bin/viewcvs.cgi/xml-rss2/?root=cvs&only_with_tag=Unified_Version_Objects</a></p>]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2004/04/10/rssfeed-now-supports-userlandrss-mostly/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>On going RSS 2.0 namespace junk</title>
		<link>http://laughingmeme.org/2003/06/02/on-going-rss-20-namespace-junk/</link>
		<comments>http://laughingmeme.org/2003/06/02/on-going-rss-20-namespace-junk/#comments</comments>
		<pubDate>Tue, 03 Jun 2003 07:26:00 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Aside]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[namespaces]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[rss2.0]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=1494</guid>
		<description><![CDATA[Any RSS aggregator without minimal namspace support in 2003 is broken.]]></description>
			<content:encoded><![CDATA[<p>Any RSS aggregator without minimal namspace support in 2003 is broken.</p>
<p><a href='http://www.intertwingly.net/blog/1443.html'>http://www.intertwingly.net/blog/1443.html</a></p>]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2003/06/02/on-going-rss-20-namespace-junk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Conditional GET with LWP &amp; Perl</title>
		<link>http://laughingmeme.org/2003/03/01/conditional-get-with-lwp-perl/</link>
		<comments>http://laughingmeme.org/2003/03/01/conditional-get-with-lwp-perl/#comments</comments>
		<pubDate>Sun, 02 Mar 2003 03:16:00 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=346</guid>
		<description><![CDATA[I was arguing recently that implementing a conditional GET with LWP is trivial and there was no reason why someone wouldn&#8217;t support it. I assumed there must be a dozen examples of how to do this. Afterall O&#8217;reilly has &#8220;open sourced&#8221; their original LWP book, there is an LWP cookbook, and reams of POD. No [...]]]></description>
			<content:encoded><![CDATA[<p>
I was arguing recently that implementing a 
<a href="http://fishbowl.pastiche.org/archives/001132.html">conditional GET</a> with
<a href="http://search.cpan.org/dist/libwww-perl/">LWP</a> is trivial and 
there was no reason why someone wouldn&#8217;t support it.  I assumed there must 
be a dozen examples of how to do this.  Afterall
O&#8217;reilly has &#8220;open sourced&#8221; their 
<a href="http://www.oreilly.com/openbook/webclient/">original LWP book</a>, 
there is an 
<a href="http://www.perldoc.com/perl5.6/lib/lwpcook.html">LWP cookbook</a>, and
reams of 
<a href="http://search.cpan.org/dist/libwww-perl/lib/LWP.pm">POD</a>.  
</p>

<p><p>
<h3>No Such Luck</h3>
Well a quick search didn&#8217;t turn up anything.  A more concerted one might have
but it was easier to write this example then keep searching.  If you&#8217;re looking
for more general info on Conditional GETs try Charles Miller&#8217;s 
<a href="http://fishbowl.pastiche.org/archives/001132.html">HTTP Conditional Get for RSS Hackers</a>.  If you&#8217;re looking for an implementation
in PHP, you might look in rss_fetch of my RSS parser/aggregator 
<a href="http://magpierss.sf.net">Magpie</a>.
<p>
<h3>Conditional GET</h3>
The basic idea is,  when you request a file you remember the <code>ETag</code> and 
<code>Last-Modified</code> HTTP headers, passing
them along with your next request as 
<code>If-None-Match</code> and <code>If-Last-Modified</code>.  If the
file has changed then you&#8217;ll get the content as normal, if the file hasn&#8217;t changed you&#8217;ll get
a &#8217;304 Not Modified&#8217; header.
</p>
<p>
This is something of a toy example, but I try to be as correct as possible with
it.  Noteable in its absence is doing anything with the file you&#8217;ve fetched.
(for example parsing and storing an RSS feed)  Also I use a simple file to store
ETag and Last-Modified, you might want to use a different backend.<br />
<a href="http://laughingmeme.org/archives/000479.html#more">See the Code</a>
</p></p>

<p>
<h3>Example Code</h3>
<pre class="code">

use LWP::UserAgent;
use HTTP::Request;

my $url = "http://localhost/rss/laughingmeme.rdf";
my $cache_file = 'cache';
my %headers;

if ( -e $cache_file ) {
    open (CACHE, "&lt; $cache_file") or die "Couldn't open: $!";
    %headers = (
        If_None_Match =&gt; &lt;CACHE&gt;,
        If_Last_Modified =&gt; &lt;CACHE&gt;
    );
    close CACHE;
}

my $ua = new LWP::UserAgent();
$ua-&gt;agent("Conditionally Enabled v0.1");

my $req = HTTP::Request-&gt;new( GET =&gt; $url );
$req-&gt;header(%headers);

my $res = $ua-&gt;request($req);
if ($res-&gt;is_success) {
    print "new!\n";
    # save ETag &#038; Last-Modified
    open (CACHE, "&gt; $cache_file") or die "Couldn't open: $!";
    print CACHE $res-&gt;header('ETag'), "\n";
    print CACHE $res-&gt;header('Last-Modified'), "\n";
    close CACHE;
}
elsif ( $res-&gt;code() eq '304' ) {
    print "not modified, go to cache\n";
    # do logic for RSS not modified
}
else {
    print "fooey! somthing went wrong\n";
}
</pre>
</p>
]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2003/03/01/conditional-get-with-lwp-perl/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Process &amp; Collaboration</title>
		<link>http://laughingmeme.org/2002/11/01/process-collaboration/</link>
		<comments>http://laughingmeme.org/2002/11/01/process-collaboration/#comments</comments>
		<pubDate>Fri, 01 Nov 2002 15:16:00 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[collaboration]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[process]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=201</guid>
		<description><![CDATA[Kendall&#8217;s latest, Community and Specifications includes Megginson&#8217;s Four Laws of writing successful specs: Simplicity succeeds Process is poison Code first, then specify Almost every new spec fails anyway (as the author of SAX presumably he knows of what he speaks) In a similar vein, the David Clark quote I had as my sig for years [...]]]></description>
			<content:encoded><![CDATA[<p>
Kendall&#8217;s latest, <a href="http://www.xml.com/pub/a/2002/10/30/deviant.html">Community and Specifications</a> includes 
<blockquote>
Megginson&#8217;s Four Laws of writing successful specs:
<ol>
<li>Simplicity succeeds
<li>Process is poison
<li>Code first, then specify
<li>Almost every new spec fails anyway
</ol>
</blockquote>
(as the author of SAX presumably he knows of what he speaks)
</p>

<p><p>
In a similar vein, the David Clark quote I had as my sig for years (and am thinking of reviving)
<blockquote>
&#8220;we reject kings, presidents and voting. we believe in rough consensus and running code.&#8221; 
</blockquote>
Been struggling with this of late, particularily in online organizing which exagerates communication problems; walking the line between enough process to stay transparent, and enough flexibility to stay open.
</p></p>
]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2002/11/01/process-collaboration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

