<?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:media="http://search.yahoo.com/mrss/"
>

<channel>
	<title>Yabfog &#187; php</title>
	<atom:link href="http://yabfog.com/blog/tag/php/feed" rel="self" type="application/rss+xml" />
	<link>http://yabfog.com/blog</link>
	<description>Yet another blog full of gas</description>
	<lastBuildDate>Tue, 13 Dec 2011 02:45:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
<cloud domain='yabfog.com' port='80' path='/blog/?rsscloud=notify' registerProcedure='' protocol='http-post' />
		<item>
		<title>Character Encoding Help</title>
		<link>http://yabfog.com/blog/2007/11/17/character-encoding-help</link>
		<comments>http://yabfog.com/blog/2007/11/17/character-encoding-help#comments</comments>
		<pubDate>Sat, 17 Nov 2007 15:58:02 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://yabfog.com/wp/2007/11/17/character-encoding-help</guid>
		<description><![CDATA[Tom Morris is pulling his hair out dealing with XML character encoding issues. I've gone through this myself. I found that the SimplePie feed parser has great logic for dealing with this, so I adapted it to my needs in my PHP class XMLParseIntoArray. I think I've expanded on SimplePie's approach a bit, but it's [...]]]></description>
			<content:encoded><![CDATA[<p>Tom Morris is <a href="http://tommorris.org/blog/2007/11/17#When:10:15:19">pulling his hair out dealing with XML character encoding</a> issues. I've gone through this myself. I found that the <a href="http://simplepie.org">SimplePie</a> feed parser has great logic for dealing with this, so I adapted it to my needs in my PHP class <a href="https://code.yabfog.com/svn/feedparser/trunk/class.xmlparseintoarray.php">XMLParseIntoArray</a>. I think I've expanded on SimplePie's approach a bit, but it's still a work in progress. YMMV. Hope this helps.</p>
]]></content:encoded>
			<wfw:commentRss>http://yabfog.com/blog/2007/11/17/character-encoding-help/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
	</item>
		<item>
		<title>PHP command line mode detection</title>
		<link>http://yabfog.com/blog/2007/08/23/php-command-line-mode-detection</link>
		<comments>http://yabfog.com/blog/2007/08/23/php-command-line-mode-detection#comments</comments>
		<pubDate>Thu, 23 Aug 2007 13:41:32 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://yabfog.com/wp/2007/08/23/php-command-line-mode-detection/</guid>
		<description><![CDATA[Use a block like this in PHP code to detect whether or not it's running in command line mode as opposed to web server script mode. // if $_ENV['SHELL'] exists, we're probably in command line mode if (array_key_exists('SHELL', $_ENV)) { $this->setOutputMode(MYSQLICIOUS_OUTPUT_CMD); } else { $this->setOutputMode(MYSQLICIOUS_OUTPUT_HTML); }]]></description>
			<content:encoded><![CDATA[<p>Use a block like this in PHP code to detect whether or not it's running in command line mode as opposed to web server script mode.<br />
<code><br />
        // if $_ENV['SHELL'] exists, we're probably in command line mode<br />
        if (array_key_exists('SHELL', $_ENV)) {<br />
            $this->setOutputMode(MYSQLICIOUS_OUTPUT_CMD);<br />
        } else {<br />
            $this->setOutputMode(MYSQLICIOUS_OUTPUT_HTML);<br />
        }<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://yabfog.com/blog/2007/08/23/php-command-line-mode-detection/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
	</item>
		<item>
		<title>Leash and Feedparser</title>
		<link>http://yabfog.com/blog/2007/06/03/leash-and-feedparser</link>
		<comments>http://yabfog.com/blog/2007/06/03/leash-and-feedparser#comments</comments>
		<pubDate>Mon, 04 Jun 2007 02:26:21 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[opml]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://yabfog.com/wp/2007/06/03/leash-and-feedparser/</guid>
		<description><![CDATA[Maybe I'll write up something a little more formal in the future. For now, I just want to publish this in case it's useful to someone. Les Orchard posted a blurb that indicated that he was looking for a PHP class to perform HTTP requests with conditional GET support. Well, a while ago I was [...]]]></description>
			<content:encoded><![CDATA[<p>Maybe I'll write up something a little more formal in the future. For now, I just want to publish this in case it's useful to someone.</p>
<p><a href="http://blogs.opml.org/decafbad/2007/05/21#When:10:05:41PM">Les Orchard posted a blurb</a> that indicated that he was looking for a PHP class to perform HTTP requests with conditional GET support. Well, a while ago I was looking for that, too. Because I was working on a replacement for Magpie RSS (see below), I decided to use <a href="http://snoopy.sourceforge.net/">Snoopy</a> as my HTTP client. I then wrote a brief extension, Leash, to provide a cache-enabled front end to Snoopy. Leash automatically caches the HTTP results, the time of the request, and the Last Modified and Etag HTTP headers. When you request a page you've previously requested, Leash first checks to see if the cached copy is older than the maximum cache age you've specified (or the default of 1 hour), and if the cache is too old, Leash performs a conditional GET. The <a href="https://code.yabfog.com/svn/feedparser/trunk/class.leash.php">latest version of Leash</a> (which I bundle with Snoopy) is in my Subversion repository.</p>
<p>Also in that repository is my replacement for <a href="http://magpierss.sourceforge.net/">Magpie RSS</a>. I always liked Magpie, but it didn't quite work for me and I also wanted an OPML parser. So I wrote one. Actually, first I wrote a <a href="https://code.yabfog.com/svn/feedparser/trunk/class.xmlparseintoarray.php">generic PHP XML parser</a>. Then I wrote the <a href="https://code.yabfog.com/svn/feedparser/trunk/class.opmlparse.php">OPML parser</a> and <a href="https://code.yabfog.com/svn/feedparser/trunk/class.feedparse.php">Feed parser</a>.</p>
<p>Sorry, but I currently don't have time for documentation. Or support. That probably makes this of very limited utility to all but the most daring. If you're a PHP junkie, you'll probably be able to peruse the code and get the gist. And here's <a href="http://yabfog.com/files/podcast-add.phps">an example of how I'm using it to help manage my podcasts</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://yabfog.com/blog/2007/06/03/leash-and-feedparser/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
	</item>
		<item>
		<title>BlackBerry Browser User Agent</title>
		<link>http://yabfog.com/blog/2006/12/11/blackberry-browser-user-agent</link>
		<comments>http://yabfog.com/blog/2006/12/11/blackberry-browser-user-agent#comments</comments>
		<pubDate>Mon, 11 Dec 2006 14:58:25 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[blackberry]]></category>
		<category><![CDATA[miscellany]]></category>
		<category><![CDATA[pda]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://yabfog.com/wp/2006/12/11/blackberry-browser-user-agent/</guid>
		<description><![CDATA[FYI: My BlackBerry's Web browser identifies itself (i.e., "User Agent") as: BlackBerry8700/4.1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 So in PHP, an inexpensive check would be something like: if ( 0 === stripos($useragent, 'blackberry') ) { echo "True"; }]]></description>
			<content:encoded><![CDATA[<p>FYI: My BlackBerry's Web browser identifies itself (i.e., "User Agent") as: <code>BlackBerry8700/4.1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1</code></p>
<p>So in PHP, an inexpensive check would be something like:</p>
<pre>
if ( 0 === stripos($useragent, 'blackberry') ) {
    echo "True";
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://yabfog.com/blog/2006/12/11/blackberry-browser-user-agent/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
	</item>
		<item>
		<title>Resolution of trouble with CentOS 4 + PHP 5.1 + Zend Optimizer</title>
		<link>http://yabfog.com/blog/2006/11/16/resolution-of-trouble-with-centos-4-php-51-zend-optimizer</link>
		<comments>http://yabfog.com/blog/2006/11/16/resolution-of-trouble-with-centos-4-php-51-zend-optimizer#comments</comments>
		<pubDate>Thu, 16 Nov 2006 14:54:18 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://yabfog.com/blog/2006/11/16/resolution-of-trouble-with-centos-4-php-51-zend-optimizer/</guid>
		<description><![CDATA[I have a server running CentOS 4.4 updated with the PHP 5.1.6 from the testing repository. When I tried to install Zend Optimizer 3.0.2, I ran into this problem: Failed loading [path]/ZendOptimizer. so: [path]/ZendOptimizer. so: undefined symbol: match Then, when I tried to downgrade and install Zend Optimizer 3.0.1, I ran into this problem: Failed [...]]]></description>
			<content:encoded><![CDATA[<p>I have a server running CentOS 4.4 updated with the PHP 5.1.6 from the testing repository. When I tried to install <a href="http://www.zend.com/products/zend_optimizer">Zend Optimizer</a> 3.0.2, I ran into this <a href="http://www.zend.com/forums/index.php?t=msg&#038;th=2197&#038;start=0&#038;S=66f1af8b1d888d91ab38f92d8059ed81">problem</a>:</p>
<blockquote><p>Failed loading [path]/ZendOptimizer. so: [path]/ZendOptimizer. so: undefined symbol: match</p></blockquote>
<p>Then, when I tried to downgrade and install Zend Optimizer 3.0.1, I ran into this problem:</p>
<blockquote><p>Failed loading [path]/ZendExtensionManager.so:  [path]/ZendExtensionManager.so: failed to map segment from shared object: Permission denied</p></blockquote>
<p>I noticed some talk about SELinux being a possible culprit, but rather than disable SELinux, I decided to try and solve the problem.</p>
<p>This article about <a href="http://www.talkingtree.com/blog/index.cfm/2005/10/25/RHEL4SELinuxCFMX701">SELinux and ColdFusion MX in Red Hat Linux 4</a> had the information I needed to quickly solve the problem. Basically, I needed to change the security context of the Zend extension manager and optimizer files so that Zend runs in the same security domain as the web server (in my case, Apache).</p>
<p>Here's what I did (note, I installed Zend Optimizer in a non-standard location -- /usr/include/php/Zend rather than /usr/local/Zend):</p>
<p><code><br />
chdir /usr/include/php/Zend/lib<br />
chcon -R --reference=/usr/sbin/httpd *.so<br />
service httpd restart<br />
</code></p>
<p>Et voila!<br />
<img id="image89" src="http://yabfog.com/blog/wp-content/uploads/2006/11/screencapZend.png" alt="Zend Working Screen Cap" /></p>
]]></content:encoded>
			<wfw:commentRss>http://yabfog.com/blog/2006/11/16/resolution-of-trouble-with-centos-4-php-51-zend-optimizer/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:thumbnail url="http://yabfog.com/blog/wp-content/uploads/2006/11/screencapZend.png" />
		<media:content url="http://yabfog.com/blog/wp-content/uploads/2006/11/screencapZend.png" medium="image">
			<media:title type="html">Zend Working Screen Cap</media:title>
		</media:content>
	</item>
		<item>
		<title>A River for NewsGator</title>
		<link>http://yabfog.com/blog/2006/10/17/a-river-for-newsgator</link>
		<comments>http://yabfog.com/blog/2006/10/17/a-river-for-newsgator#comments</comments>
		<pubDate>Tue, 17 Oct 2006 16:37:20 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[blackberry]]></category>
		<category><![CDATA[pda]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://yabfog.com/blog/2006/10/17/a-river-for-newsgator/</guid>
		<description><![CDATA[Truly re-inspired by Dave's injection of interest into mobile news reading, I've been tinkering with my own custom solution. Since I subscribe to NewsGator, I'm using the NewsGator API for some backend, but I've done quite a bit of plumbing myself. The most important things I wanted to be able to do were (1) to [...]]]></description>
			<content:encoded><![CDATA[<p>Truly re-inspired by Dave's injection of interest into <a href="http://www.scripting.com/2006/09/14.html#mobilefriendlyNews">mobile news reading</a>, I've been tinkering with my own custom solution. Since I subscribe to NewsGator, I'm using the <a href="http://www.newsgator.com/ngs/api/default.aspx">NewsGator API</a> for some backend, but I've done quite a bit of plumbing myself.</p>
<p>The most important things I wanted to be able to do were (1) to be able to mark posts read (and since I'm using NewsGator, that "read" status synchronizes across all my aggregator clients on different computers) and (2) to fix the annoying nonsense characters introduced by idiotic feed generators -- that includes the New York Times and Washington Post.</p>
<p>The results are starting to shape up nicely.</p>
<p>Here's the main page I see after I sign in.</p>
<p><a class="imagelink" href="http://yabfog.com/blog/wp-content/uploads/2006/10/20061016-nga.gif" title="NewsGator River screencap 01"><img id="image85" src="http://yabfog.com/blog/wp-content/uploads/2006/10/20061016-nga.thumbnail.gif" alt="NewsGator River screencap 01" /></a></p>
<p>And notice that in FeedDemon, "Ch&aacute;vez" is screwy, but I've got it right.</p>
<p><a class="imagelink" href="http://yabfog.com/blog/wp-content/uploads/2006/10/20061016-fd.gif" title="FeedDemon screen cap"><img id="image84" src="http://yabfog.com/blog/wp-content/uploads/2006/10/20061016-fd.thumbnail.gif" alt="FeedDemon screen cap" /></a><a class="imagelink" href="http://yabfog.com/blog/wp-content/uploads/2006/10/20061016-ngr.gif" title="NewsGator River screencap 02"><img id="image86" src="http://yabfog.com/blog/wp-content/uploads/2006/10/20061016-ngr.thumbnail.gif" alt="NewsGator River screencap 02" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://yabfog.com/blog/2006/10/17/a-river-for-newsgator/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:thumbnail url="http://yabfog.com/blog/wp-content/uploads/2006/10/20061016-nga.thumbnail.gif" />
		<media:content url="http://yabfog.com/blog/wp-content/uploads/2006/10/20061016-nga.thumbnail.gif" medium="image">
			<media:title type="html">NewsGator River screencap 01</media:title>
		</media:content>
		<media:content url="http://yabfog.com/blog/wp-content/uploads/2006/10/20061016-fd.thumbnail.gif" medium="image">
			<media:title type="html">FeedDemon screen cap</media:title>
		</media:content>
		<media:content url="http://yabfog.com/blog/wp-content/uploads/2006/10/20061016-ngr.thumbnail.gif" medium="image">
			<media:title type="html">NewsGator River screencap 02</media:title>
		</media:content>
	</item>
		<item>
		<title>Optimal Bugfix</title>
		<link>http://yabfog.com/blog/2006/06/15/optimal-bugfix</link>
		<comments>http://yabfog.com/blog/2006/06/15/optimal-bugfix#comments</comments>
		<pubDate>Thu, 15 Jun 2006 23:14:43 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[announcements]]></category>
		<category><![CDATA[opml]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[xml]]></category>
		<category><![CDATA[xsl/xslt]]></category>

		<guid isPermaLink="false">http://yabfog.com/blog/2006/06/15/optimal-bugfix/</guid>
		<description><![CDATA[I released a bugfix for Optimal today. The latest version is 0.4c. If you haven't experienced any weird problems with the 0.4 release, don't bother updating. Thanks to Chris Pirillo for bringing the problem to my attention and working through it with me.]]></description>
			<content:encoded><![CDATA[<p>I released a bugfix for Optimal today. The <a href="http://yabfog.com/blog/optimal/#download">latest version is 0.4c</a>. If you haven't experienced any <a href="http://yabfog.com/blog/optimal/#gotcha">weird problems</a> with the 0.4 release, don't bother updating.</p>
<p>Thanks to <a href="http://chris.pirillo.com">Chris Pirillo</a> for bringing the problem to my attention and working through it with me.</p>
]]></content:encoded>
			<wfw:commentRss>http://yabfog.com/blog/2006/06/15/optimal-bugfix/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
	</item>
		<item>
		<title>Optimal OPML Browser Update v. 0.4</title>
		<link>http://yabfog.com/blog/2006/06/12/optimal-opml-browser-update-v-04</link>
		<comments>http://yabfog.com/blog/2006/06/12/optimal-opml-browser-update-v-04#comments</comments>
		<pubDate>Mon, 12 Jun 2006 23:39:01 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[announcements]]></category>
		<category><![CDATA[opml]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[xml]]></category>
		<category><![CDATA[xsl/xslt]]></category>

		<guid isPermaLink="false">http://yabfog.com/blog/2006/06/12/optimal-opml-browser-update-v-04/</guid>
		<description><![CDATA[I've completed a major rewrite of my OPML browser, Optimal. I didn't manage to document all of the changes, they were so numerous. Highlights are: Object-oriented reimplementation, making it more portable to other applications Same code may be used as a WordPress plugin -- replaces the OPML Renderer plugin for WordPress RSS items now include [...]]]></description>
			<content:encoded><![CDATA[<p>I've completed a major rewrite of my OPML browser, <strong><a href="http://www.optimalbrowser.com/">Optimal</a></strong>.</p>
<p>I didn't manage to document all of the <a href="http://yabfog.com/blog/optimal/#changes">changes</a>, they were so numerous. Highlights are:</p>
<ul>
<li>Object-oriented reimplementation, making it more portable to other applications</li>
<li>Same code may be used as a WordPress plugin -- replaces the OPML Renderer plugin for WordPress</li>
<li>RSS items now include descriptions, so you can browse the feeds without subscribing or visiting the home page</li>
<li>New <a href="http://www.optimalbrowser.com/widgetwiz.php">widget generator</a> to generate HTML to include Optimal on your web site</li>
</ul>
<p><a href="http://yabfog.com/blog/optimal/">More...</a> | <a href="http://yabfog.com/blog/optimal/#download">Download</a></p>
]]></content:encoded>
			<wfw:commentRss>http://yabfog.com/blog/2006/06/12/optimal-opml-browser-update-v-04/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
	</item>
		<item>
		<title>Optimal OPML Browser Update v. 0.4pre1</title>
		<link>http://yabfog.com/blog/2006/03/29/optimal-opml-browser-update-v-04pre1</link>
		<comments>http://yabfog.com/blog/2006/03/29/optimal-opml-browser-update-v-04pre1#comments</comments>
		<pubDate>Wed, 29 Mar 2006 17:52:08 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[announcements]]></category>
		<category><![CDATA[opml]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[xml]]></category>
		<category><![CDATA[xsl/xslt]]></category>

		<guid isPermaLink="false">http://yabfog.com/blog/2006/03/29/optimal-opml-browser-update-v-04pre1/</guid>
		<description><![CDATA[I'm still working on a significant rewrite of my OPML browser, Optimal, but I've decided to release the current working version in the meantime because it addresses a couple of significant usability comments I've had. Specifically: There are now links to expand/collapse all nodes, and There is a new query string parameter, depth, which allows [...]]]></description>
			<content:encoded><![CDATA[<p>I'm still working on a significant rewrite of my OPML browser, <strong><a href="http://www.optimalbrowser.com/">Optimal</a></strong>, but I've decided to release the current working version in the meantime because it addresses a couple of significant usability comments I've had.</p>
<p>Specifically:</p>
<ol>
<li>There are now links to expand/collapse all nodes, and</li>
<li>There is a new query string parameter, depth, which allows you to specify the initial expansion state.</li>
</ol>
<ul>
<li><a href="http://yabfog.com/blog/optimal/#changes">Changes</a></li>
</ul>
<p><a class="imagelink" href="http://yabfog.com/blog/wp-content/uploads/2006/03/optimal04pre1.gif" title="Optimal Screen Cap 0.4pre1"><img id="image76" src="http://yabfog.com/blog/wp-content/uploads/2006/03/optimal04pre1.thumbnail.gif" alt="Optimal Screen Cap 0.4pre1" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://yabfog.com/blog/2006/03/29/optimal-opml-browser-update-v-04pre1/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:thumbnail url="http://yabfog.com/blog/wp-content/uploads/2006/03/optimal04pre1.thumbnail.gif" />
		<media:content url="http://yabfog.com/blog/wp-content/uploads/2006/03/optimal04pre1.thumbnail.gif" medium="image">
			<media:title type="html">Optimal Screen Cap 0.4pre1</media:title>
		</media:content>
	</item>
		<item>
		<title>Del.icio.us to OPML + Mash</title>
		<link>http://yabfog.com/blog/2006/03/13/delicious-to-opml-mash</link>
		<comments>http://yabfog.com/blog/2006/03/13/delicious-to-opml-mash#comments</comments>
		<pubDate>Mon, 13 Mar 2006 23:51:30 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[opml]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://yabfog.com/wp/2006/03/13/delicious-to-opml-mash/</guid>
		<description><![CDATA[I've still got some work to do, so this is just a "hey, it works" sort of post. John Tropea posted last week about an OPML hack for del.icio.us to which I responded with a more dynamic example and to which another reader asked, "Why bother?" Fair enough quesiton, and here's a better answer by [...]]]></description>
			<content:encoded><![CDATA[<p>I've still got some work to do, so this is just a "hey, it works" sort of post.</p>
<p><a href="http://libraryclips.blogsome.com/">John Tropea</a> posted last week about an <a href="http://libraryclips.blogsome.com/2006/03/09/opml-hack-for-delicious/">OPML hack for del.icio.us</a> to which I responded with a more dynamic example and to which another reader asked, "Why bother?" Fair enough quesiton, and here's a better answer by way of example.</p>
<p>Iâ€™m using <a href="http://nanovivid.com/projects/mysqlicious/">MySQLicious</a> to mirror my <a href="http://del.icio.us">del.icio.us</a> bookmarks to a local database (for several good reasons). Now that I have a local copy of those bookmarks and all the del.icio.us tags and other del.icio.us metadata, I can remix it however I want.</p>
<p>The first thing I've done is create an OPML file on-the-fly, where every del.icio.us bookmark is rendered as an RSS feed item with the bookmark's URL as the feed htmlUrl and the xmlUrl is an RSS feed of a Feedster search on the bookmark's URL.</p>
<p>Here's the <a href="http://public.yabfog.com/delicious.php?addfeeds=feedster">raw OPML file</a>.</p>
<p>Here's <a href="http://www.optimalbrowser.com/?url=http://public.yabfog.com/delicious.php?addfeeds=feedster">how it looks in Optimal</a>.</p>
<p>Notice that there is a query string parameter "addfeeds." Without this parameter, the OPML is simply rendered as a link list. An addfeeds value of "feedster" adds the search feeds. Eventually, I'll have some additional query values I could use here, such as Technorati.</p>
<p>Here's <a href="http://yabfog.com/files/delicious.phps">the source</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://yabfog.com/blog/2006/03/13/delicious-to-opml-mash/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
	</item>
	</channel>
</rss>

