<?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; magpie</title>
	<atom:link href="http://laughingmeme.org/tag/magpie/feed/" rel="self" type="application/rss+xml" />
	<link>http://laughingmeme.org</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Tue, 19 Mar 2013 02:41:04 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Alan Levine: Adopt My Code, Please?</title>
		<link>http://laughingmeme.org/2010/07/17/alan-levine-adopt-my-code-please/</link>
		<comments>http://laughingmeme.org/2010/07/17/alan-levine-adopt-my-code-please/#comments</comments>
		<pubDate>Sat, 17 Jul 2010 18:03:27 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Aside]]></category>
		<category><![CDATA[magpie]]></category>

		<guid isPermaLink="false">http://laughingmeme.org/?p=4672</guid>
		<description><![CDATA[Alan is looking for someone to take over Feed2JS.]]></description>
				<content:encoded><![CDATA[<p>Alan is looking for someone to take over <a href="http://feed2js.org/">Feed2JS</a>.</p>
<p><a href='http://cogdogblog.com/2010/07/05/adopt-my-code-please/'>http://cogdogblog.com/2010/07/05/adopt-my-code-please/</a></p>]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2010/07/17/alan-levine-adopt-my-code-please/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AOEMedia Sponsoring Magpie</title>
		<link>http://laughingmeme.org/2008/06/07/aoemedia-sponsoring-magpie/</link>
		<comments>http://laughingmeme.org/2008/06/07/aoemedia-sponsoring-magpie/#comments</comments>
		<pubDate>Sat, 07 Jun 2008 16:09:10 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[magpie]]></category>
		<category><![CDATA[magpierss]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[sponsorship]]></category>
		<category><![CDATA[typo3]]></category>

		<guid isPermaLink="false">http://laughingmeme.org/?p=3882</guid>
		<description><![CDATA[AOE media, a TYPO3 &#38; open source provide from Germany, recently agreed to become a sponsor on Magpie. Which is very exciting! Looking around I see being sponsored by AOE Media puts me in good company as they sponsor a number of interesting projects, including my favorite wiki software Doku I&#8217;m hoping this will allow [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.aoemedia.com/">AOE media</a>, a <a href="http://www.aoemedia.de/typo3-agentur.html">TYPO3 &amp; open source provide</a> from Germany, recently agreed to become a sponsor on Magpie.  Which is very exciting!  </p>

<p>Looking around I see being sponsored by <a href="http://aoemedia.com">AOE Media</a> puts me in good company as they sponsor a number of interesting projects, including my favorite wiki software <a href="http://wiki.splitbrain.org/wiki:dokuwiki">Doku</a></p>

<p>I&#8217;m hoping this will allow me to actually spend a little time with Magpie, maybe finally find the time to re-vamp the website into something a little more functional. </p>

<p>And last if you&#8217;re someone interested in sponsorship work as a whole on Magpie, or specific feature development get in touch.</p>

<p>Thanks again <a href="http://aoemedia.com">AOE Media</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2008/06/07/aoemedia-sponsoring-magpie/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tim Brown: Blogging with Magnolia</title>
		<link>http://laughingmeme.org/2007/06/11/tim-brown-blogging-with-magnolia/</link>
		<comments>http://laughingmeme.org/2007/06/11/tim-brown-blogging-with-magnolia/#comments</comments>
		<pubDate>Mon, 11 Jun 2007 19:15:27 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Aside]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[magnolia]]></category>
		<category><![CDATA[magpie]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://laughingmeme.org/2007/06/11/tim-brown-blogging-with-magnolia/</guid>
		<description><![CDATA[and Magpie.]]></description>
				<content:encoded><![CDATA[<p>and Magpie.</p>
<p><a href='http://tbrown.org/noted/blogging-with-magnolia'>http://tbrown.org/noted/blogging-with-magnolia</a></p>]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2007/06/11/tim-brown-blogging-with-magnolia/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Six Words</title>
		<link>http://laughingmeme.org/2006/11/27/six-words/</link>
		<comments>http://laughingmeme.org/2006/11/27/six-words/#comments</comments>
		<pubDate>Mon, 27 Nov 2006 20:45:00 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[magpie]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=3522</guid>
		<description><![CDATA[Twitter, Magpie, Chris, Kadavy, SMITHMag. Nice.]]></description>
				<content:encoded><![CDATA[<p><a border="0" href="http://factoryjoe.com/projects/sixwords/"><img src="/img/sixwords_thumb.jpg"></a></p>

<p><a href="http://twitter.com">Twitter</a>, <a href="http://magpierss.sf.net">Magpie</a>, <a href="http://factoryjoe.com/">Chris</a>, <a href="http://kadavy.net/">Kadavy</a>, <a href="http://smithmag.net/">SMITHMag</a>. Nice.</p>
]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2006/11/27/six-words/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Magpie 2.0-alpha-alpha-alpha</title>
		<link>http://laughingmeme.org/2006/10/16/magpie-20-alpha-alpha-alpha/</link>
		<comments>http://laughingmeme.org/2006/10/16/magpie-20-alpha-alpha-alpha/#comments</comments>
		<pubDate>Mon, 16 Oct 2006 12:47:00 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[magpie]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[rss]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=3502</guid>
		<description><![CDATA[Probably surprises no one but me, but the work on Magpie has been moving slowly again lately. Rather then continue futzing with it in the rare spare moments, I&#8217;m going to push it out in a very raw state, where folks can give some feedback. (and because folks keep asking about it) This is a [...]]]></description>
				<content:encoded><![CDATA[<p><img src="http://magpiephp.com/magpie-logo.jpg" align="right" style="padding-left: 10px;" />
Probably surprises no one but me, but the work on Magpie has been moving slowly again lately.  Rather then continue futzing with it in the rare spare moments, I&#8217;m going to push it out in a very raw state, where folks can give some feedback. (and because folks keep asking about it)  This is a preview release, very alpha.</p>

<h3>Alpha</h3>

<p>Alpha means its broken, there are missing features (many of which are actually in the current Magpie 0.7x releases), and stuff will change.  Whether you find that exciting or off-putting is a personal thing.</p>

<h3>Getting Started</h3>

<p>So um, yeah, as of yet no documentation.  That said I&#8217;ve included the classic <code>magpie_simple.php</code> script, unchanged except for the require statement.  For really simple scripts that is all that is required.</p>

<p>Grab the <a href="http://laughingmeme.org/code/magpie2.0-alpha-preview-1.tar.gz">current code, Magpie 2.0-alpha-PR1</a>.  This isn&#8217;t its final home, but I am taking this opportunity to finally break free of Sourceforge which has been a long standing goal.</p>

<p>(I know, we all prefer a good <code>var_dump()</code> plus source reading to docs, but their current non-existence won&#8217;t continue)</p>

<h3>Goals for 2.0</h3>

<p>There were three over-arching design goals in this rewrite, plus a slew of secondary goals.</p>

<h4>1. Support new namespaces and elements, easily</h4>

<p>Rather then go on trying to push the universal rules for mapping unknown elements to datastructures (the Magpie 1.0 approach) I&#8217;ve focused on making it simple to register custom parsing logic, and having intelligent defaults. (aka more like what <a href="http://feedparser.org/">Feedparser.py</a> does) I expect that we&#8217;ll handle most known namespaces in short order, and barring another total upheaval of the landscape ala the <a href="http://www.intertwingly.net/wiki/pie/">Pie/Atom project</a> should sit us in good stead as feed use continues to become more sophisticated.</p>

<h4>2. Pluggable components</h4>

<p>You should be able to easily swap out the caching layer (database caches anyone?), the HTTP layer (multiplexed curl?), even the parser.   Besides the added flexibility, the theory is this will make embedding simpler.</p>

<p>Who knows, maybe someone will even contribute a pluggable parser that can handle something other then well formed XML.</p>

<h4>3.  Mostly backwards compatible</h4>

<p>For simple stuff, you&#8217;re scripts should go on working.   There is still a 1 function interface (if you liked that), still bust everything down into a couple of nested arrays for easy looping and echoing.  Even where different it should feel familiar.</p>

<h3>Known Issues</h3>

<ul>
<li><p>Parser doesn&#8217;t support xml:base nor xml:lang nor Atom inheritance.   It will, but these features still annoy me, and as long as no one is using the code I can&#8217;t seem to motivate to support them.</p></li>
<li><p>I&#8217;m also not doing all the normalization between feed types that I do in 
&#8220;Magpie classic&#8221;.  Again, its coming.</p></li>
<li><p>Not sanitizing content yet.</p></li>
<li><p>Not just a new parser, but a new HTTP client as well.  Basic HTTP auth support is there, digest isn&#8217;t.  Haven&#8217;t added back in SSL support yet.</p></li>
<li><p>No documentation per se.</p></li>
</ul>

<h2>Incompatibilities and Gotcha</h2>

<ul>
<li><p>Just use <code>$item['content']</code> instead of <code>$item['content']['encoded']</code> or <code>$item['atom_content']</code>.</p></li>
<li><p>If caching is turned on, and Magpie can&#8217;t write to it&#8217;s cache, it will throw a fatal error, rather then quietly working in a degraded state.  This might change, but its been a major support issue.</p></li>
</ul>

<h3>More features</h3>

<ul>
<li><p><code>fetch_rss()</code> now supports taking per feeds options.  This was the most requested feature, ever.  (e.g. cache age, output encoding, user-agent, etc)</p></li>
<li><p>Parses enclosures, this was the second most requested feature.</p></li>
<li><p>Handles repeated elements properly. (dc:subject, link, whatnot)</p>

<pre>echo $item['dc']['subject'];
foreach ($item['dc']['subjects'] as $subj) { ... }</pre></li>
<li><p>Atom 1.0 support modulo known issues.</p></li>
<li><p>Tests.  Most of them based on <a href="http://feedparser.org/tests/">Mark&#8217;s FP tests</a>.  More added all the time.  Currently not distributing with Magpie as I haven&#8217;t really figured out the license issues.</p></li>
<li><p>Confusing new licensing.  Stated goal is to license under a dual GPL/BSD license.  That means you get to choose if you&#8217;re using the software under the GPL, or the BSD. In addition you can upgrade your license to GPL from BSD (as you can with any BSD licensed software) merely by wishing it to be so. </p></li>
<li><p>Lots more, really.  </p></li>
</ul>

<p>Other then that, its just like Magpie <img src='http://laughingmeme.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2006/10/16/magpie-20-alpha-alpha-alpha/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>DiggPad:  A stripped down version  of Digg for mobiles</title>
		<link>http://laughingmeme.org/2006/09/24/diggpad-a-stripped-down-version-of-digg-for-mobiles/</link>
		<comments>http://laughingmeme.org/2006/09/24/diggpad-a-stripped-down-version-of-digg-for-mobiles/#comments</comments>
		<pubDate>Sun, 24 Sep 2006 19:58:00 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Aside]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[digg]]></category>
		<category><![CDATA[magpie]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=3478</guid>
		<description><![CDATA[Also WamPad, a mobile feed reader. Both powered by Magpie.]]></description>
				<content:encoded><![CDATA[<p>Also <a href="http://wampad/rss">WamPad</a>, a mobile feed reader.  Both powered by Magpie.</p>
<p><a href='http://wampad.com/digg/'>http://wampad.com/digg/</a></p>]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2006/09/24/diggpad-a-stripped-down-version-of-digg-for-mobiles/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flickrss WordPress Plugin</title>
		<link>http://laughingmeme.org/2006/09/20/flickrss-wordpress-plugin/</link>
		<comments>http://laughingmeme.org/2006/09/20/flickrss-wordpress-plugin/#comments</comments>
		<pubDate>Wed, 20 Sep 2006 19:49:00 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Aside]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[magpie]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=3473</guid>
		<description><![CDATA[Haven&#8217;t tried it yet, but I&#8217;ve kind of got a moral obligation to link to anything involving Magpie and Flickr.]]></description>
				<content:encoded><![CDATA[<p>Haven&#8217;t tried it yet, but I&#8217;ve kind of got a moral obligation to link to anything involving Magpie and Flickr.</p>
<p><a href='http://blog.no-panic.at/2006/09/20/flickrss-wordpress-plugin/'>http://blog.no-panic.at/2006/09/20/flickrss-wordpress-plugin/</a></p>]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2006/09/20/flickrss-wordpress-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySpace Feed &#8211; RSS Feed to Image Converter</title>
		<link>http://laughingmeme.org/2006/04/25/myspace-feed-rss-feed-to-image-converter/</link>
		<comments>http://laughingmeme.org/2006/04/25/myspace-feed-rss-feed-to-image-converter/#comments</comments>
		<pubDate>Tue, 25 Apr 2006 20:51:00 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Aside]]></category>
		<category><![CDATA[magpie]]></category>
		<category><![CDATA[myspace]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[syndication]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=3336</guid>
		<description><![CDATA[Aaron of Campus Activism is providing a feed to image service for easy integration into MySpace (or anywhere else). Using Magpie.]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.campusactivism.org/akreider/">Aaron</a> of <a href="http://www.campusactivism.org/">Campus Activism</a> is providing a feed to image service for easy integration into MySpace (or anywhere else).   Using Magpie.</p>
<p><a href='http://www.myspacefeed.com/'>http://www.myspacefeed.com/</a></p>]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2006/04/25/myspace-feed-rss-feed-to-image-converter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RasterWeb: MagpieRSS for &#8230; JSP?</title>
		<link>http://laughingmeme.org/2006/02/07/rasterweb-magpierss-for-jsp/</link>
		<comments>http://laughingmeme.org/2006/02/07/rasterweb-magpierss-for-jsp/#comments</comments>
		<pubDate>Tue, 07 Feb 2006 21:22:00 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Aside]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[magpie]]></category>
		<category><![CDATA[rss]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=3242</guid>
		<description><![CDATA[Anyone got a suggestion for Pete?]]></description>
				<content:encoded><![CDATA[<p>Anyone got a suggestion for Pete? </p>
<p><a href='http://rasterweb.net/raster/2006/02/07/magpierss-rss-for-jsp/'>http://rasterweb.net/raster/2006/02/07/magpierss-rss-for-jsp/</a></p>]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2006/02/07/rasterweb-magpierss-for-jsp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;the small pieces only join well when there are some established rules&#8221;</title>
		<link>http://laughingmeme.org/2006/01/21/the-small-pieces-only-join-well-when-there-are-some-established-rules/</link>
		<comments>http://laughingmeme.org/2006/01/21/the-small-pieces-only-join-well-when-there-are-some-established-rules/#comments</comments>
		<pubDate>Sat, 21 Jan 2006 22:50:00 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Aside]]></category>
		<category><![CDATA[magpie]]></category>
		<category><![CDATA[quotable]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[syndication]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=3202</guid>
		<description><![CDATA[Nicely put, certainly sounds better then Magpie&#8217;s unofficial &#8220;open minded, but lazy&#8221; motto]]></description>
				<content:encoded><![CDATA[<p>Nicely put, certainly sounds better then Magpie&#8217;s unofficial &#8220;open minded, but lazy&#8221; motto</p>
<p><a href='http://cogdogblog.com/2006/01/21/three-rules-of-rss-publishing/'>http://cogdogblog.com/2006/01/21/three-rules-of-rss-publishing/</a></p>]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2006/01/21/the-small-pieces-only-join-well-when-there-are-some-established-rules/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gregarius Screencast</title>
		<link>http://laughingmeme.org/2006/01/08/gregarius-screencast/</link>
		<comments>http://laughingmeme.org/2006/01/08/gregarius-screencast/#comments</comments>
		<pubDate>Mon, 09 Jan 2006 03:05:00 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Aside]]></category>
		<category><![CDATA[atom]]></category>
		<category><![CDATA[magpie]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[syndication]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=3180</guid>
		<description><![CDATA[a screencast showing off some features of Gregarius, the open source, extensible, online feed aggregator of choice. (uses Magpie)]]></description>
				<content:encoded><![CDATA[<p>a screencast showing off some features of <a href="http://gregarius.net/">Gregarius</a>, the open source, extensible, online feed aggregator of choice. (uses Magpie)</p>
<p><a href='http://www.tokash.org/gregarius/gregariusScreencast.htm'>http://www.tokash.org/gregarius/gregariusScreencast.htm</a></p>]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2006/01/08/gregarius-screencast/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Atom and Wiki Driven Testing</title>
		<link>http://laughingmeme.org/2005/12/20/atom-and-wiki-driven-testing/</link>
		<comments>http://laughingmeme.org/2005/12/20/atom-and-wiki-driven-testing/#comments</comments>
		<pubDate>Tue, 20 Dec 2005 21:25:00 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[atom]]></category>
		<category><![CDATA[magpie]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[syndication]]></category>
		<category><![CDATA[tdd]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[wiki]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=3169</guid>
		<description><![CDATA[Its been a long standing todo to port Mark&#8217;s FeedParser tests to work against Magpie, possibly with an intermediate representation to allow cross-language testing. (has any work been down on capturing unit tests/acceptance tests in XML?) Sam&#8217;s approach hilights Ruby-the-language&#8217;s awesome flexibility (I&#8217;d been playing with something similar for the parser we wrote for Odeo), [...]]]></description>
				<content:encoded><![CDATA[<p>Its been a long standing todo to port Mark&#8217;s <a href="http://feedparser.org/tests/">FeedParser tests</a> to work against Magpie, possibly with an intermediate representation to allow cross-language testing. (has any work been down on capturing unit tests/acceptance tests in XML?)  Sam&#8217;s <a href="http://www.intertwingly.net/blog/2005/10/30/Testing-FeedTools-Dynamically">approach</a> hilights Ruby-the-language&#8217;s awesome flexibility (I&#8217;d been playing with something similar for the parser we wrote for <a href="http://odeo.com">Odeo</a>), but doesn&#8217;t map to PHP/Magpie very well.</p>

<p><a href="http://feedparser.org/tests/">Phil</a> kicked off a <a href="http://weblog.philringnalda.com/2005/12/18/who-knows-a-title-from-a-hole-in-the-ground">new round</a> of testing for Atom 1.0, the results of which are <a href="http://intertwingly.net/wiki/pie/TitleConformanceTests">now captured in the Atom wiki</a>. (not to mention a few gentle nudges on Magpie&#8217;s lack of 1.0 compliance.)</p>

<p>All of which got me thinking, it would be exceptionally cool if someone made the FeedParser&#8217;s tests available on the <a href="http://www.intertwingly.net/wiki/pie/FrontPage">Atom wiki</a> using <a href="http://c2.com/~ward/">Ward&#8217;s</a> <a href="http://fit.c2.com/">FIT</a> concept in a documented, reportable fashion.</p>

<p>Any takers?</p>
]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2005/12/20/atom-and-wiki-driven-testing/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>OPML Sampling</title>
		<link>http://laughingmeme.org/2005/11/25/opml-sampling/</link>
		<comments>http://laughingmeme.org/2005/11/25/opml-sampling/#comments</comments>
		<pubDate>Sat, 26 Nov 2005 05:54:00 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Aside]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[magpie]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[syndication]]></category>
		<category><![CDATA[yahoo]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=3123</guid>
		<description><![CDATA[Display a representative sample post from each feed in an OPML file. Neat (uses Magpie and Yahoo)]]></description>
				<content:encoded><![CDATA[<p>Display a representative sample post from each feed in an OPML file.  Neat (uses Magpie and Yahoo)</p>
<p><a href='http://www.wynia.org/wordpress/2005/11/25/opml-sampling-build-a-page-showing-the-best-item-from-each-rss-feed/'>http://www.wynia.org/wordpress/2005/11/25/opml-sampling-build-a-page-showing-the-best-item-from-each-rss-feed/</a></p>]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2005/11/25/opml-sampling/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RPMs of MagpieRSS 0.72</title>
		<link>http://laughingmeme.org/2005/11/15/rpms-of-magpierss-072/</link>
		<comments>http://laughingmeme.org/2005/11/15/rpms-of-magpierss-072/#comments</comments>
		<pubDate>Tue, 15 Nov 2005 16:46:00 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Aside]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[magpie]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=3108</guid>
		<description><![CDATA[built on Fedora Core 3, also works on FC1]]></description>
				<content:encoded><![CDATA[<p>built on Fedora Core 3, also works on FC1</p>
<p><a href='http://peeved.org/opensource/RPM/magpierss/'>http://peeved.org/opensource/RPM/magpierss/</a></p>]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2005/11/15/rpms-of-magpierss-072/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Feedexa is a free online feed aggregator for subscribing, searching and tagging feeds, blogs and the like.</title>
		<link>http://laughingmeme.org/2005/11/09/feedexa-is-a-free-online-feed-aggregator-for-subscribing-searching-and-tagging-feeds-blogs-and-the-like/</link>
		<comments>http://laughingmeme.org/2005/11/09/feedexa-is-a-free-online-feed-aggregator-for-subscribing-searching-and-tagging-feeds-blogs-and-the-like/#comments</comments>
		<pubDate>Wed, 09 Nov 2005 22:09:00 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Aside]]></category>
		<category><![CDATA[aggregation]]></category>
		<category><![CDATA[magpie]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[tagging]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=3098</guid>
		<description><![CDATA[and it uses Magpie]]></description>
				<content:encoded><![CDATA[<p>and it uses Magpie</p>
<p><a href='http://www.feedexa.com/'>http://www.feedexa.com/</a></p>]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2005/11/09/feedexa-is-a-free-online-feed-aggregator-for-subscribing-searching-and-tagging-feeds-blogs-and-the-like/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>sux0r &#8211;  A multi-user RSS aggregator with multi-category Bayesian filtering capabilities.</title>
		<link>http://laughingmeme.org/2005/11/09/sux0r-a-multi-user-rss-aggregator-with-multi-category-bayesian-filtering-capabilities/</link>
		<comments>http://laughingmeme.org/2005/11/09/sux0r-a-multi-user-rss-aggregator-with-multi-category-bayesian-filtering-capabilities/#comments</comments>
		<pubDate>Wed, 09 Nov 2005 21:57:00 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Aside]]></category>
		<category><![CDATA[aggregation]]></category>
		<category><![CDATA[collaborative]]></category>
		<category><![CDATA[filtering]]></category>
		<category><![CDATA[information]]></category>
		<category><![CDATA[magpie]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=3097</guid>
		<description><![CDATA[uses Magpie]]></description>
				<content:encoded><![CDATA[<p>uses Magpie</p>
<p><a href='http://sourceforge.net/projects/sux0r/'>http://sourceforge.net/projects/sux0r/</a></p>]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2005/11/09/sux0r-a-multi-user-rss-aggregator-with-multi-category-bayesian-filtering-capabilities/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MagpieRSS Feed</title>
		<link>http://laughingmeme.org/2005/11/06/magpierss-feed/</link>
		<comments>http://laughingmeme.org/2005/11/06/magpierss-feed/#comments</comments>
		<pubDate>Sun, 06 Nov 2005 18:51:00 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Aside]]></category>
		<category><![CDATA[magpie]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[syndication]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=3089</guid>
		<description><![CDATA[while we wait for me to get around to fixing the Magpie blog, the Magpie feed is still available]]></description>
				<content:encoded><![CDATA[<p>while we wait for me to get around to fixing the Magpie blog, the Magpie feed is still available</p>
<p><a href='http://laughingmeme.org/feed/magpierss.rdf'>http://laughingmeme.org/feed/magpierss.rdf</a></p>]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2005/11/06/magpierss-feed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Towards MagpieRSS 0.8:  repeating elements, attributes, and Atom 1.0</title>
		<link>http://laughingmeme.org/2005/11/05/towards-magpierss-08-repeating-elements-attributes-and-atom-10/</link>
		<comments>http://laughingmeme.org/2005/11/05/towards-magpierss-08-repeating-elements-attributes-and-atom-10/#comments</comments>
		<pubDate>Sun, 06 Nov 2005 03:54:00 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[atom]]></category>
		<category><![CDATA[magpie]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[rss]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=3086</guid>
		<description><![CDATA[Now that we&#8217;ve got the security release out of the way, its time to move on top something a little more interesting. I finally got a chance to add a huge patch from RadGeek (of FeedWordPress fame) that adds: uniform access to attributes support for repeating elements Atom 1.0 support I&#8217;ve struggled for forever to [...]]]></description>
				<content:encoded><![CDATA[<p>Now that we&#8217;ve got the security release out of  the way, its time to move on top something a little more interesting.  I finally got a chance to add a <strong>huge</strong> patch from <a href="http://radgeek.org/">RadGeek</a> (of <a href="http://projects.radgeek.com/feedwordpress/">FeedWordPress</a> fame) that adds:</p>

<ul>
<li>uniform access to attributes</li>
<li>support for repeating elements</li>
<li>Atom 1.0 support</li>
</ul>

<p>I&#8217;ve struggled for forever to figure out how to provide simple, uniform access to the increasingly rich data that people are syndicating (finally!). Eventually I gave up, and decided that the only solution was to rewrite the parser and make it simple to add per field custom logic. (kind of like the enclosure patch adds custom logic).  I never got past the initial sketches.</p>

<p>So I&#8217;m <strong>thrilled</strong> that RadGeek has come up with a syntax (and code!) to extend rss_parser.inc to add support, while staying transparently backwards compatible.  I&#8217;ve got out a <a href="http://laughingmeme.org/code/magpierss-200511060046.tar.gz">dev build</a> for people to play with, and written up some of the new features.</p>

<h3>Access Repeating Elements</h3>

<p>Lets assume we have a basic RSS item, with several dc:subjects:</p>

<pre><code>&lt;item&gt;
&lt;title&gt;Some Exciting Title&lt;/title&gt;
&lt;dc:subject&gt;exciting&lt;/dc:subject&gt;
&lt;dc:subject&gt;example&lt;/dc:subject&gt;
&lt;dc:subject&gt;whoohoo&lt;/dc:subject&gt;
&lt;/item&gt;

echo $item['title'] 
=&gt; "Some Exciting Title"

echo $item['dc']['subject']
=&gt; "exciting"
</code></pre>

<p>So far, so normal.  Now we get special. </p>

<pre><code>echo $item['dc']['subject#2']
=&gt; "example"

echo $item['dc']['subject#3']
=&gt; "whoohoo"
</code></pre>

<p>So how many dc:subjects do we have?</p>

<pre><code>echo $item['dc']['subject#']
=&gt; 3
</code></pre>

<p>And this isn&#8217;t just for <code>dc:subject</code>, it works with whatever elements you like to repeat.  (though we&#8217;ll need to decide what to do with the Atom link  reltype munging hack, I&#8217;ll touch on that in a future post)</p>

<h3>Access Attributes</h3>

<p>Lets assume, we now have an Atom item with a category like:</p>

<pre><code>&lt;category term='atom' scheme='http://del.cio.us/tags' label='Atom' /&gt;

echo $item['category@term']
=&gt; "atom"

echo $item['category@scheme']
=&gt; "http://del.cio.us/tags"

echo $item['category@label']
=&gt; "Atom"

echo $item['category@']
=&gt; "term,scheme,label"   // that might want to change to an array
</code></pre>

<p>And if we had a second category for that item?</p>

<pre><code>&lt;category term='calendar' /&gt;

echo $item['category#2@term']
=&gt; 'calendar'
</code></pre>

<p>or maybe an RSS 2.0 guid element</p>

<pre><code>&lt;guid isPermaLink="true"&gt;http://inessential.com/2002/09/01.php#a2&lt;/guid&gt;

echo $item['guid']
=&gt; "http://inessential.com/2002/09/01.php#a2"

echo $item['guid@ispermalink']
=&gt; "true"
</code></pre>

<h3>Where from here</h3>

<p>So give the <a href="http://laughingmeme.org/code/magpierss-200511060046.tar.gz">dev build</a> a spin, kick the tires etc.  This is the largest new feature in a while, and would be good to give it a workout.  (ps. I&#8217;ve affair the normalization methods are throwing <code>notices</code> currently.)</p>

<p>Also any show stoppers people might see with this new syntax.</p>

<p>Once we&#8217;ve got this working smoothly, there are several other new features looking for inclusion in next release.</p>

<p>And finally I&#8217;m debating whether to break backward compatibility with how we currently do Atom link munging, in order to get more consistency with this new syntax, and I&#8217;d like to get some feedback on that.    </p>
]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2005/11/05/towards-magpierss-08-repeating-elements-attributes-and-atom-10/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>MagpieRSS 0.72</title>
		<link>http://laughingmeme.org/2005/11/05/magpierss-072/</link>
		<comments>http://laughingmeme.org/2005/11/05/magpierss-072/#comments</comments>
		<pubDate>Sun, 06 Nov 2005 01:42:00 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[magpie]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=3085</guid>
		<description><![CDATA[MagpieRSS 0.72 is now available. This release addresses last week&#8217;s security advisory by applying the patch I released to the list last week. In particular this advisory applies to you if you accept unflitered URLs from strangers for passing to Magpie, and you have curl+SSL support compiled into Magpie.]]></description>
				<content:encoded><![CDATA[<p><a href="http://sourceforge.net/project/shownotes.php?release_id=368750">MagpieRSS 0.72</a> is now available.  This release addresses <a href="http://www.sec-consult.com/216.html">last week&#8217;s
security advisory</a> by applying the <a href="http://laughingmeme.org/code/snoopy_curl_escape.patch">patch</a> I released to the list last
week.</p>

<p>In particular this advisory applies to you if you accept unflitered
URLs from strangers for passing to Magpie, and you have curl+SSL
support compiled into Magpie.</p>
]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2005/11/05/magpierss-072/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
