<?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>TechBrew &#187; Feeds</title>
	<atom:link href="http://techbrew.net/articles/category/feeds/feed/" rel="self" type="application/rss+xml" />
	<link>http://techbrew.net</link>
	<description>Informative geekery on software and technology</description>
	<lastBuildDate>Thu, 23 Feb 2012 17:15:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Is rssCloud All Wet?</title>
		<link>http://techbrew.net/articles/200909/rsscloud-all-wet/</link>
		<comments>http://techbrew.net/articles/200909/rsscloud-all-wet/#comments</comments>
		<pubDate>Tue, 08 Sep 2009 23:32:35 +0000</pubDate>
		<dc:creator>Mark Woodman</dc:creator>
				<category><![CDATA[Feeds]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[rssCloud]]></category>

		<guid isPermaLink="false">http://techbrew.net/?p=256</guid>
		<description><![CDATA[<br/>Rogers Cadenhead recently posted his thoughts on why the rssCloud concept &#8220;failed to catch on.&#8221;    This is a response to his post and an attempt to foster further discussion in the community. Blue Sky The main idea behind rssCloud is that your RSS reader can ask to be notified when a feed changes (push), [...]]]></description>
			<content:encoded><![CDATA[<br/><div>
<div>Rogers Cadenhead recently posted his thoughts on why the <a href="http://www.rsscloud.org/">rssCloud</a> concept &#8220;<a href="http://workbench.cadenhead.org/news/3555/theres-reason-rsscloud-failed-catch">failed to catch on</a>.&#8221;    This is a response to his post and an attempt to foster further discussion in the community.</div>
<h3>Blue Sky</h3>
<div>The main idea behind rssCloud is that your RSS reader can ask to be notified when a feed changes (push), rather than having to check the feed on a regular basis (pull).  This is accomplished by having your RSS reader subscribe to updates with the feed server.  When the feed is updated, the server will then notify your RSS reader accordingly.  This message pattern is known as <a href="http://en.wikipedia.org/wiki/Publish/subscribe">publish/subscribe</a> or just &#8220;pub/sub.&#8221;</p>
<p>On the face of it, it&#8217;s a great idea.   The benefits of pub/sub are well-understood.    Pub/sub (push) can be far more efficient than polling (pull) in many cases, especially when it saves the client from either having to make frequent connections to the server  and having to analyze the response looking for what has changed.</p>
<p>Unfortunately, the way rssCloud needs to be implemented has what I fear to be significant and potentially fatal flaws.   Before I dig into them,  it&#8217;s helpful to provide a little background on best practices using push or pub/sub architectures.</p></div>
<h3><strong>Best Push Practices with HTTP</strong></h3>
<div>
<div>The patterns for providing frequent updates to a client over HTTP are fairly well-known in Ajax / RIA arenas.  (See:  <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.4">Comet</a> for DHTML, or <a href="http://livedocs.adobe.com/blazeds/1/blazeds_devguide/help.html?content=lcconfig_3.html">BlazeDS channels</a> for Flash/Flex)   Here are the main ones:</div>
<div>
<ol>
<li><strong>Polling</strong>:  Client connects to server and asks for an update.  The connection ends when the server has responded.   Repeat ad nauseum at the frequency needed by the client.  This is equivalent to what most RSS readers do today:  periodically check a feed for updates.</li>
<li><strong>Piggybacking</strong>:  Client connects to the server and asks for something else.  The server responds, notes the client&#8217;s subscriptions, and tacks on any pending notifications on the response to the request.  Combined with polling in an Ajax or RIA app, this can be a really efficient way to handle notifications.  (But, for RSS readers, there probably isn&#8217;t much to glean from this pattern.)</li>
<li><strong>Long-polling</strong>:  Client connects to server and asks for updates.  The connection stays open as long as the server allows, and the server will send multiple notifications while the connection is open.  In layman&#8217;s terms, this is akin to being put on hold but not hanging up the phone.  When the connection is closed or times out, the client will reconnect.   Sort of like what you do when you get disconnected from tech support.  Again.</li>
<li><strong>Streaming</strong>: Client connects to server and asks for updates.  The connection stays open ad infinitum using a dedicated socket, pretty much like you would get from a streaming media server.  Whereas you can usually implement the other approaches with a standard web server, this approach typically requires  your server and network infrastructure to be above the norm.</li>
</ol>
</div>
<div>Among these solutions, two main tenets emerge:<br />
<strong><br />
Tenet #1: </strong> <strong>It is the client&#8217;s responsibility to make the HTTP connection. </strong> We all take it for granted, but establishing a network connection involves a fair bit of work.   With all of these patterns, the burden of &#8220;connectability&#8221; is put on the client.  A server is supposed to be highly-available, but clients come and go.  If the client can&#8217;t contact the server, it is usually the client&#8217;s problem.  The work of establishing a connection and handling failed connections, retries, etc. is thus distributed to the clients.  This is an important feature as the volume of concurrent clients increases.<br />
<strong><br />
Tenet #2:  M</strong><strong>ake as few connections as possible and keep them open as long as possible.  <span style="font-weight: normal;">This is because the HTTP handshake itself &#8211; along with authentication &#8211; is the most expensive part of the networked operation.   The fewer times a client/server has to jump through the connection hoops, the better.</p>
<p>A noteworthy aside:  Apple&#8217;s <a href="http://www.networkworld.com/news/2009/082009-apple-iphone-push-notification.html">iPhone push architecture</a> uses long-lived (persistent) sockets to push App notifications to each iPhone.  This is roughly equivalent to the long-polling or streaming patterns, but uses raw binary data instead of HTML or JSON.    In any case, both of the Tenets are still employed: your iPhone connects to the APNS and keeps the connection open as long as possible.</p>
<p></span></strong>So, with these best practices in mind, lets take a look at rssCloud&#8230;</div>
<h3><strong>Clouded Flaw #1: Don&#8217;t Call Me, I&#8217;ll Call You</strong></h3>
<div>Currently, your RSS reader just uses polling to check a feed on a regular basis.  A decent RSS reader will do this using  <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.4">HTTP HEAD</a> requests, which are a very efficient way to check for updates.   A HEAD request just checks the timestamp on the feed without having to get the feed contents.  This is a nice bandwidth saver.</p>
<p>But if you really want instant-message-like updates on an RSS feed, it isn&#8217;t practical to make your reader check the feed every 5 seconds.   The connection overhead of contacting the server and waiting for the reponse would be obnoxious and just shy of a <a href="http://en.wikipedia.org/wiki/Denial-of-service_attack">denial-of-service attack</a>.  Recall Tenet #2 discussed earlier: &#8220;Make as few connections as possible.&#8221;  Those connections are expensive, after all.</p>
<p>So the idea behind rssCloud is great:  The server can just tell your reader when the feed has updated.  No unnecessary connections are made, right?</p></div>
<div>Unfortunately, there&#8217;s a major problem lurking in the shadows.  Recall Tenet #1 discussed above: &#8220;It is the client&#8217;s responsibility to make (and keep open) the HTTP connection.&#8221;   The connection/retry work should be distributed to the clients.  But with rssCloud, the burden of making the connections, handling retries, etc. is now shouldered completely by the server.</p>
<p>This level of work is similar to sending a mass email via SMTP.   The handshaking / retry work from the mailing daemon to each unique SMTP relay is a well-known problem.  Unless your server has a lot of distributed processing available, the time-of-delivery between the first recipient and the last recipient will grow as the list of subscribers grows.  The delay is exacerbated with every failed connection that must time-out before the next connection is attampted.   Peformance degrades on a linear scale:  The more subscribers, the longer it takes to deliver all the messages.  These delays are common in the world of SMTP:  We&#8217;ve all gotten an email 15 minutes after a coworker got the same email.</p>
<p>With email, we&#8217;re used to this kind of delay.  But if the goal of rssCloud is to have near-realtime updates, this kind of delay is a deal-killer. Unfortunately, there&#8217;s more&#8230;.</p></div>
<h3>Clouded Flaw #2: Your Fat Reader Got Fatter, Not Smarter</h3>
<div>In order to support rssCloud server connections, your desktop RSS reader will have to run an embedded web server at all times to get notifications.  This is some significant development work for the folks who make your reader.  And for it to work correctly, you will need to have your firewall configured to allow incoming connections from the rssCloud server.   That requirement alone makes it a non-starter for many, many people in both residential and corporate environments.</p>
<p>And you had better leave your reader running at all times, even when you&#8217;re not at the computer.  Because if the server tries to send you an update, it couldn&#8217;t connect to your reader&#8230; strike 1.   Three strikes, and you&#8217;re off the subscription list for notifications.     The rssCloud server will (presumedly) try again later, but if you didn&#8217;t leave your reader running over the weekend, you might be auto-unsubscribed by Monday morning.  Which means the developers that make your reader will have to build in contingency plans for re-subscribing every time it starts up.</p>
<p>Also, lets say your reader was running, but there was some temporary network disruption right when the server was trying to connect to your reader.  You&#8217;ll have missed the notifications and never know it.  You&#8217;ll have a strike and never know it.  This is what happens when you make the server responsible for establishing the connection and break Tenet #1: your client never knows when something goes wrong.</p>
<p>If the responsibility was on your RSS reader (client) to connect to the server and ask for notifications, it could react to network disruptions and reconnect as soon as possible.  You could know how long you&#8217;ve been missing notifications.  But since rssCloud puts the connection burden on the server, the only way for your reader to know if you&#8217;re still &#8220;current&#8221; is to &#8230; do a GET or a HEAD on the RSS feed itself &#8230; Which is what RSS readers are already doing without rssCloud.</p>
<p>Back to square one.</p></div>
</div>
<h3>Is There a Silver Lining?</h3>
<div>Personally, I have grave misgivings about the current flavor of rssCloud.   It is trying to solve a hard problem, but has created some even harder problems for itself in the process.</p>
<p>On the bright side, the need is real, and lot of really sharp people are looking at the problem.</p></div>
<div>My advice is this: I believe that if rssCloud is to succeed on any significant scale, the server will need to get out of the call-the-client business.  Taking a page from <a href="http://en.wikipedia.org/wiki/Comet_(programming)">Comet</a> best practices, the server API should be fleshed out to accommodate long-polling, and let RSS clients do the connection / retry / recovery work.   This course correction would have several strong advantages:</div>
<div>
<ol>
<li>No embedded server in RSS readers required</li>
<li>No firewall configuration for users</li>
<li>Reduced server requirements for rssCloud server hosts</li>
<li>Potentially reduced lag time in notifications, especially for large numbers of clients</li>
<li>Reduced long-term state on the server; there won&#8217;t need to be subscriptions, just sessions</li>
<li>Improved data integrity by making the client aware and responsible for reconnects/refreshes</li>
</ol>
</div>
<div>The RSS world needs what rssCloud is offering, so my hope is that the specs will evolve to make this all possible.</p>
<p>What do you think?</p></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://techbrew.net/articles/200909/rsscloud-all-wet/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>RSS Advisory Board Validated by RSS 0.90, 0.91</title>
		<link>http://techbrew.net/articles/200801/rss-advisory-board-validated-by-rss-090-091/</link>
		<comments>http://techbrew.net/articles/200801/rss-advisory-board-validated-by-rss-090-091/#comments</comments>
		<pubDate>Fri, 25 Jan 2008 00:08:25 +0000</pubDate>
		<dc:creator>Mark Woodman</dc:creator>
				<category><![CDATA[Feeds]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[dave winer]]></category>
		<category><![CDATA[netscape]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[rss advisory board]]></category>

		<guid isPermaLink="false">http://techbrew.net/articles/200801/rss-advisory-board-validated-by-rss-090-091/</guid>
		<description><![CDATA[<br/>The RSS Advisory Board has had a checkered past and its share of run-ins with Dave Winer over RSS 2.0. There have been times where it was right to question how relevant it had become. This announcement by Netscape lends a great deal of credibility to the Board-sans-Winer, and hopefully will increase the adoption of [...]]]></description>
			<content:encoded><![CDATA[<br/><p>The RSS Advisory Board has had a checkered past and its share of <a href="http://tech.groups.yahoo.com/group/rss-public/message/304">run-ins</a> with Dave Winer over RSS 2.0.   There have been times where it was right to question how relevant it had become.</p>
<p>This <a href="http://blog.netscape.com/2008/01/22/rss-specifications-moving-to-rss-advisory-board/">announcement</a> by Netscape lends a great deal of credibility to the Board-sans-Winer, and hopefully will increase the adoption of their <a href="http://www.rssboard.org/rss-profile#introduction">RSS Profile</a> work.</p>
<blockquote><p>The RSS specification documents, DTDs, and help files for the first versions of RSS (v0.9, v0.91) are being moved to RSSBoard.org, where they will be hosted by the RSS Advisory Board in perpetuity. Netscape will continue to host these files (via redirect) on the My Netscape domain (my.netscape.com) until August 1st, 2008.</p>
<p>&#8230;</p>
<p>All websites that produce RSS 0.9 or RSS 0.91 feeds will need to either convert to using the current standard (RSS v2.0), or if desired, convert their v0.9/v0.91 feeds properly using <a href="http://www.rssboard.org/convert-rss-0-91-to-rss-2-0">this guide</a>, provided by the RSS Advisory Board, by August 1st.</p></blockquote>
<p>Syndication historians will note that although Winer&#8217;s RSS 2.0 is the undisputed winner of the Syndication format race to date, Netscape actually invented RSS by name.   (Winer&#8217;s &#8220;scriptingNews&#8221; format did precede that by 2 years, of course, but it was a home-grown spec intended solely for Scripting News itself.)</p>
<p>It is interesting that Netscape chose to hand over the keys to the RSS Advisory Board, but not to Winer or Harvard Law.</p>
<blockquote></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://techbrew.net/articles/200801/rss-advisory-board-validated-by-rss-090-091/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Freed Demon!</title>
		<link>http://techbrew.net/articles/200801/freed-demon/</link>
		<comments>http://techbrew.net/articles/200801/freed-demon/#comments</comments>
		<pubDate>Wed, 09 Jan 2008 19:40:50 +0000</pubDate>
		<dc:creator>Mark Woodman</dc:creator>
				<category><![CDATA[Feeds]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[atom]]></category>
		<category><![CDATA[feed demon]]></category>
		<category><![CDATA[netnewswire]]></category>
		<category><![CDATA[newsgator]]></category>
		<category><![CDATA[rss]]></category>

		<guid isPermaLink="false">http://techbrew.net/articles/200801/freed-demon/</guid>
		<description><![CDATA[<br/>Newsgator has announced that a bevy of their RSS/Atom clients, including the excellent FeedDemon is now free: FeedDemon 2.6, NetNewsWire 3.1, Inbox 3.0 (beta), and NewsGator Go! for Windows Mobile 2.0. Each of these is a pretty major release on its own &#8211; tons of new features in all of them. But second, every one [...]]]></description>
			<content:encoded><![CDATA[<br/><p>Newsgator has <a href="http://www.rassoc.com/gregr/weblog/2008/01/09/newsgators-rss-clients-are-now-free/">announced</a> that a bevy of their RSS/Atom clients, including the excellent <a href="http://www.newsgator.com/Individuals/FeedDemon/Default.aspx">FeedDemon</a> is now free:</p>
<blockquote><p><img src="http://techbrew.net/wp-content/uploads/2008/01/product_feeddemon.gif" alt="FeedDemon" align="right" /><a href="http://www.newsgator.com/Individuals/FeedDemon/Default.aspx">FeedDemon 2.6</a>, <a href="http://www.newsgator.com/Individuals/NetNewsWire/Default.aspx">NetNewsWire 3.1</a>, <a href="http://www.newsgator.com/Individuals/NewsGatorInbox/Default.aspx">Inbox 3.0 (beta)</a>, and <a href="http://www.newsgator.com/Individuals/NewsGatorGo/Default.aspx">NewsGator Go! for Windows Mobile 2.0</a>.  Each of these is a pretty major release on its own &#8211; tons of new features in all of them.</p>
<p>But second, every one of those applications is now free!  Free as in beer, that is.  And add to the free list <a href="http://www.newsgator.com/Individuals/NewsGatorGo/Default.aspx">NewsGator Go! for BlackBerry</a> as well. And not only are they free, but our online services (including synchronization) are now free as well! Not to mention our <a href="http://m.newsgator.com/">iPhone reader</a>, <a href="http://m.newsgator.com/">HTML mobile reader</a>, and all of the other applications that are part of our online platform.</p></blockquote>
<p>Hat tip to <a href="http://www.cleverclogs.org/">CleverClogs</a> for spotting the news.</p>
]]></content:encoded>
			<wfw:commentRss>http://techbrew.net/articles/200801/freed-demon/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Are You Readable? Find Out with Your Feed</title>
		<link>http://techbrew.net/articles/200711/using-feeds-to-discover-human-readability/</link>
		<comments>http://techbrew.net/articles/200711/using-feeds-to-discover-human-readability/#comments</comments>
		<pubDate>Wed, 14 Nov 2007 15:00:21 +0000</pubDate>
		<dc:creator>Mark Woodman</dc:creator>
				<category><![CDATA[411]]></category>
		<category><![CDATA[Feeds]]></category>

		<guid isPermaLink="false">http://techbrew.net/articles/200711/using-feeds-to-discover-human-readability/</guid>
		<description><![CDATA[<br/>The literary world &#8211; especially academics &#8211; has a number of readability metrics that show how &#8220;hard&#8221; a given work is to read in English. If you are a writer, these metrics can give you a pretty good swag at how easy it will be for people to read your work. In this article, I&#8217;ll [...]]]></description>
			<content:encoded><![CDATA[<br/><p><a href="http://flickr.com/photos/yuh/1169629452/" title="Great Writer in Action! by YuH"><img src="http://techbrew.net/wp-content/uploads/2007/11/writer.jpg" alt="Great Writer in Action! by YuH" align="right" border="0" /></a>The literary world &#8211; especially academics &#8211; has a number of <em>readability metrics</em> that show how &#8220;hard&#8221; a given work is to read in English.    If you are a writer, these metrics can give you a pretty good swag at how easy it will be for people to read your work.</p>
<p>In this article, I&#8217;ll show you a very simple way to gauge your own readability by using your RSS or Atom feed.  (I&#8217;ll also talk about a fun way to analyze the word-smithing prowess of your readers.)</p>
<p><strong>Qualitative Wordsmithing </strong></p>
<p>Readability metrics use factors like words per sentence, multisyllabic frequency, and so on.  These are three of the more common ones:</p>
<ul>
<li><strong> Flesch Reading Ease</strong>:  Measures sentence structure and complexity to determine how easy it is to read without stopping and re-reading, etc.  Higher is better, but between 60 and 70 is a good score.</li>
<li><strong>Flesch-Kincaid Grade</strong>:  What grade of school you will have needed to complete to handle the writing style and structure.  Needless to say, this doesn&#8217;t reflect subject matter.   A score of 5 that deals with quantum mechanics will only apply to 5th graders who already understand quantum mechanics. A score of 17 is something best left to grad students, who will probably curse you for it.</li>
<li><strong>Gunning Fog</strong>:  Measures the obfuscation of meaning; the lower the number, the better.  TV Guide is a 6.  Government cover-ups and legal papers score 20 to 30.</li>
</ul>
<p><strong>Online Tool Time </strong></p>
<p><img src="http://techbrew.net/wp-content/uploads/2007/11/logo1.gif" alt="Juicy Studio Logo" align="right" />Running the stats for these metrics by hand isn&#8217;t something a human needs to do.  There are several online tools that will analyze your website/blog and give you readability scores.  My personal favorite is the <a href="http://juicystudio.com/services/readability.php">Readability Test by Juicy Studio</a>.</p>
<p>The problem with such tools is that they only look at your homepage, so the results are skewed by static content like navigation or &#8220;About Us&#8221; blurbs.   They are also &#8211; in most cases &#8211; only getting a small working set of articles to score.  If you have reader comments showing up on your home page, that content will change your score as well.</p>
<p>The fact of the matter is that you probably don&#8217;t want to analyze your homepage, you really want to measure the readability of your content.   There&#8217;s good news here: although the online tools like the one by Juicy Studio were intended to analyze web pages, they can be used in a much more powerful way.</p>
<p><strong>The Feed Shows How You Read </strong></p>
<p>Here&#8217;s a easy way to get better scores without static content interference and with more content to analyze:  <u>Use your full-text RSS or Atom feed URL instead.</u></p>
<p>The online readability tools are designed to ignore HTML markup, so they happily ignore the XML markup in RSS or Atom as well.  That leaves you with a pretty high ratio of real content to be scored.  Most feeds have 10 or 20 items in them, which is way more content than is on the typical home page.</p>
<p>The main caveat here is that you need to publish a <a href="http://techdirt.com/articles/20070813/014338.shtml">full-text feed</a> to get a realistic score.  A smaller caveat is that some feed configurations will duplicate the content (partial text and full text in the same feed item), but that won&#8217;t have much effect.</p>
<p>For example, The Juicy Studio tool scores the TechBrew site and feed with these differences:<br />
<center></p>
<table border="0" cellspacing="5">
<tr>
<th>TechBrew.net Homepage</th>
<th></th>
<th>TechBrew.net RSS Feed</th>
</tr>
<tr>
<td>Total sentences: 134<br />
Total words: 715<br />
Gunning Fog Index: 7.73<br />
Flesch Reading Ease:  67.72<br />
Flesch-Kincaid Grade: 5.14<br />
<hr /></td>
<td></td>
<td>Total sentences: 649<br />
Total words: 6649<br />
Gunning Fog Index: 9.84<br />
Flesch Reading Ease: 67.34<br />
Flesch-Kincaid Grade: 6.41<br />
<hr /></td>
</tr>
</table>
<p></center></p>
<p align="left"> As you can see, the feed provides a much larger sample of content.  I&#8217;m pleased to note the Flesch Reading Ease scores are consistent, but it would appear that you&#8217;ll need to be nearly in 7th grade to be a happy subscriber.   (For an explanation of the scores, go back to the top of this article.  You skimmer.)</p>
<p align="left"><strong>Trolling for Comments </strong></p>
<p align="left">Less practical but more fun is when you use this same technique on a website&#8217;s comment feed.   Many blogs provide an RSS or Atom feed of just posted comments.  That feed provides a unique &#8211; but admittedly not very sophisticated &#8211; way to measure the sophistication (or obfuscation) of a site&#8217;s reader base.</p>
<p>For example, here are the Flesch-Kincaid Grade for the reader comments at some well-known sites:</p>
<ul>
<li><a href="http://scobleizer.com/">Robert Scoble</a>:  5.70</li>
<li><a href="http://TechBrew.net">TechBrew.net</a>: 4.81</li>
<li><a href="http://techcrunch.com">TechCrunch</a>: 4.56</li>
<li><a href="http://gizmodo.com">Gizmodo</a>: 2.99</li>
</ul>
<p>I&#8217;ll let you draw your own conclusions on this one.</p>
<p><strong>Word Power: Better Readability, Next Time </strong></p>
<p><a href="http://techbrew.net/wp-content/uploads/2007/11/readability.png" title="readability.png"><img src="http://techbrew.net/wp-content/uploads/2007/11/readability.thumbnail.png" alt="readability.png" align="right" /></a>I&#8217;ll conclude with a practical tip:  Take a look at your own feed and check out your scores.  You may see something you&#8217;d like to improve.</p>
<p>If you have Microsoft Word, you&#8217;ve actually got a nice set of readability metrics right at your fingertips.  Use Tools &gt; Options and in the &#8220;Spelling and Grammar&#8221; tab check the &#8220;Show Readability Statistics&#8221; box.   (The grammar and style checks are also pretty thorough, if you can stomach them.)  Whenever you finish your spellcheck, a Readability Statistics dialog will show you your stats.   (Click the image to the right to see a larger sample.)</p>
<p>Happy editing!</p>
<p align="center"><em>&#8220;Half my life is an act of revision.&#8221; &#8211; John Irving</em></p>
<p align="left"><strong>Nov 14, 2007 Update</strong>:  Revised to improve flow.  I had to eat my own dogfood on this one.</p>
]]></content:encoded>
			<wfw:commentRss>http://techbrew.net/articles/200711/using-feeds-to-discover-human-readability/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Atom Compliance Shows XML Parsing is Still a Mess</title>
		<link>http://techbrew.net/articles/200711/atom-compliance-shows-xml-parsing-is-still-a-mess/</link>
		<comments>http://techbrew.net/articles/200711/atom-compliance-shows-xml-parsing-is-still-a-mess/#comments</comments>
		<pubDate>Mon, 12 Nov 2007 19:56:02 +0000</pubDate>
		<dc:creator>Mark Woodman</dc:creator>
				<category><![CDATA[Feeds]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Opinion]]></category>

		<guid isPermaLink="false">http://techbrew.net/articles/200711/atom-compliance-shows-xml-parsing-is-still-a-mess/</guid>
		<description><![CDATA[<br/>RSS and Atom guru James Holderness just issued a report on the how well namespaces are being handled by feed readers that understand Atom. The results are dismal: &#8230;Matters havenâ€™t improved much since this issue was first discussed nearly two years ago. &#8230; Of the thirty-odd products I tested, ten 2 were incapable of subscribing [...]]]></description>
			<content:encoded><![CDATA[<br/><p>RSS and Atom guru <a href="http://www.xn--8ws00zhy3a.com/blog">James Holderness</a> just issued a <a href="http://www.xn--8ws00zhy3a.com/blog/2007/11/atom-namespace-problems">report</a> on the how well namespaces are being handled by feed readers that understand <a href="http://en.wikipedia.org/wiki/Atom_(standard)">Atom</a>.  The results are dismal:</p>
<blockquote><p>&#8230;Matters havenâ€™t improved much since this issue was first discussed <a href="http://plasmasturm.org/log/376/" title="Aristotle Pagaltzis: Who knows an XML document from a hole in the ground?">nearly two years ago</a>.</p>
<p>&#8230; Of the thirty-odd products I tested, ten <a href="http://www.xn--8ws00zhy3a.com/blog/2007/11/atom-namespace-problems#f8.2"><sup>2</sup></a> were incapable of subscribing to a feed that used prefixed names for the Atom elements.</p>
<p>&#8230; More of an issue was the <code>xhtml</code> prefix, which caused problems for nearly two thirds of the aggregators tested.</p>
<p>&#8230; Of all the products I tested, there were only three that managed to pass every one of the test.</p></blockquote>
<p>Appalling.  This isn&#8217;t a reflection on Atom, however, but rather on how programmers are parsing XML itself.</p>
<p>In olden days (2001-2003) I worked for a company that was building a native XML database.  At the time, namespace handling was probably the biggest headache around.  Our product didn&#8217;t do it well, but few others did either.  Considering how many parsing libraries and products there are now on the market, and how ubiquitous XML has become, I would have hoped that namespacing problems would be a thing of the past.</p>
<p><em>&lt;bubble&gt;burst&lt;/bubble&gt;</em></p>
<p align="justify"><img src="http://techbrew.net/wp-content/uploads/2007/11/links_mainimage1.thumbnail.jpg" alt="Pencil" align="right" />All too often our applications are filled with XML seemingly drawn with crayons when the authors should have used a drafting pencil and a straight edge.</p>
<p>I believe one of the fundamental problems with XML is that nearly every app developer uses it, but few actually grok how to model data in it.  Note that I said <em>model</em> data&#8230; not just dump it. Elements versus attributes, namespaces, attribute scopes, self-closing versus empty-value&#8230; these decisions can make or break a data model. If your data matters, then the form in which you represent it &#8211; and the precision derived from that form &#8211; should matter as well.</p>
<p>The Atom spec has model and precision down pat. Now we just need feed readers to be as careful consuming XML as the specification was in creating it.</p>
]]></content:encoded>
			<wfw:commentRss>http://techbrew.net/articles/200711/atom-compliance-shows-xml-parsing-is-still-a-mess/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RSS Board: Do As We Say, Not As We Do</title>
		<link>http://techbrew.net/articles/200710/rss-board-do-as-we-say-not-as-we-do/</link>
		<comments>http://techbrew.net/articles/200710/rss-board-do-as-we-say-not-as-we-do/#comments</comments>
		<pubDate>Tue, 23 Oct 2007 19:54:18 +0000</pubDate>
		<dc:creator>Mark Woodman</dc:creator>
				<category><![CDATA[Feeds]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Opinion]]></category>

		<guid isPermaLink="false">http://techbrew.net/articles/200710/rss-board-do-as-we-say-not-as-we-do/</guid>
		<description><![CDATA[<br/>The RSS Profile is a really helpful document that helps developers use best practices and avoid typical pitfalls when handling or producing RSS feeds. That said, why isn&#8217;t the RSS Advisory Board &#8211; the very people who created the profile &#8211; following the profile recommendations in their own feeds? The Feed Validator now produces warnings [...]]]></description>
			<content:encoded><![CDATA[<br/><p>The <a href="http://www.rssboard.org/rss-profile">RSS Profile</a> is a really helpful document that helps developers use best practices and avoid typical pitfalls when handling or producing RSS feeds.</p>
<p>That said, why isn&#8217;t the <a href="http://www.rssboard.org/advisory-board">RSS Advisory Board</a> &#8211; the very people who created the profile &#8211; following the profile recommendations in their own feeds?</p>
<p>The Feed Validator now produces warnings <a href="http://feedvalidator.org/news/archives/2007/10/15/rss_best_practices.html">according to the profile</a>, but <a href="http://intertwingly.net/stories/2007/10/23/rssblogroll.html">this table</a> shows nearly all of the individuals on the board aren&#8217;t following their own advice.</p>
<p>To date, these board members have valid RSS 2.0 feeds that don&#8217;t conform to the profile: Eric Lunt, Jake Savin, Jenny Levine, Brent Simmons.  Matthew Bookspan and Randy Charles Morin don&#8217;t even have valid RSS 2.0 feeds at the time of this writing.</p>
<p>One might reasonably argue that the members shouldn&#8217;t put the profile into practice until it is ratified.  That wouldn&#8217;t be a bad thing, but it is a lost opportunity to show that the profile is easy to follow.  Besides, the profile was ratified a week ago.  Time to eat your own dog food, guys.</p>
<p><i>Full disclosure: TechBrew&#8217;s RSS feed doesn&#8217;t meet all the recommendations of the profile either.</i></p>
]]></content:encoded>
			<wfw:commentRss>http://techbrew.net/articles/200710/rss-board-do-as-we-say-not-as-we-do/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Service Burp and Full Feeds</title>
		<link>http://techbrew.net/articles/200710/service-burp-and-full-feeds/</link>
		<comments>http://techbrew.net/articles/200710/service-burp-and-full-feeds/#comments</comments>
		<pubDate>Wed, 03 Oct 2007 21:40:50 +0000</pubDate>
		<dc:creator>Mark Woodman</dc:creator>
				<category><![CDATA[Feeds]]></category>
		<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://techbrew.net/articles/200710/service-burp-and-full-feeds/</guid>
		<description><![CDATA[<br/>Service Burp: Our hosting provider decided we were taking up too many resources and has moved us to a quieter server.Â Â Â  If you couldn&#8217;t get to us while DNS was updating, our apologies!Â Â  (If you couldn&#8217;t take our survey for this reason, please give it another try.) Full Feeds:Â  One of our reader survey respondents [...]]]></description>
			<content:encoded><![CDATA[<br/><p><strong>Service Burp</strong>: Our hosting provider decided we were taking up too many resources and has moved us to a quieter server.Â Â Â  If you couldn&#8217;t get to us while DNS was updating, our apologies!Â Â  (If you couldn&#8217;t take our survey for this reason, please <a href="http://techbrew.net/articles/200710/reader-survey">give it another try</a>.)</p>
<p><strong>Full Feeds</strong>:Â  One of our <a href="http://techbrew.net/articles/200710/reader-survey">reader survey</a> respondents has complained about our partial-text RSS feed.Â  Â  Partial feeds suck, we heartily agree.Â  The problem is, we have a full-content feed. Â  <a href="http://feeds.feedburner.com/techbrew" target="_blank">See for yourself</a>. (You&#8217;ll need to view the source XML).Â Â Â  I did a bit of poking around in FeedBurner &#8211; turning off Smart Feed, forcing the type to be RSS 2.0 &#8211; with the hopes of convincing every feed reader out there we do in fact have the full goods.</p>
<p>If you&#8217;re still seeing a partial feed, please leave a comment with the feed reader you&#8217;re using.</p>
]]></content:encoded>
			<wfw:commentRss>http://techbrew.net/articles/200710/service-burp-and-full-feeds/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Who Are You?  The TechBrew Reader Survey</title>
		<link>http://techbrew.net/articles/200710/reader-survey/</link>
		<comments>http://techbrew.net/articles/200710/reader-survey/#comments</comments>
		<pubDate>Wed, 03 Oct 2007 16:51:10 +0000</pubDate>
		<dc:creator>Mark Woodman</dc:creator>
				<category><![CDATA[Feeds]]></category>
		<category><![CDATA[Poll]]></category>

		<guid isPermaLink="false">http://techbrew.net/articles/200710/reader-survey/</guid>
		<description><![CDATA[<br/>Please take our reader survey. It has 7 questions and will only take about 1 minute. Best of all, taking this survey is guaranteed to reduce greenhouse emissions and lessen the effects of global warming, provided you stop driving your car while taking it.]]></description>
			<content:encoded><![CDATA[<br/><p><img src="http://techbrew.net/wp-content/uploads/2007/10/survey.png" alt="survey.png" align="right" />Please take our <a href="http://techbrew.net/articles/200710/reader-survey">reader survey</a>.  It has 7 questions and will only take about 1 minute.  Best of all, taking this survey is guaranteed to reduce greenhouse emissions and lessen the effects of global warming, provided you stop driving your car while taking it.</p>
<p><iframe src="http://app.sgizmo.com/s/survey.php?id=PXZO8J8EWYJ09T8L8FABJVIHBE4EJU-18011" frameborder="0" height="700" width="500"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://techbrew.net/articles/200710/reader-survey/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Tagging Habits of the A-List</title>
		<link>http://techbrew.net/articles/200709/tagging-habits-of-the-a-list/</link>
		<comments>http://techbrew.net/articles/200709/tagging-habits-of-the-a-list/#comments</comments>
		<pubDate>Tue, 18 Sep 2007 19:21:19 +0000</pubDate>
		<dc:creator>Mark Woodman</dc:creator>
				<category><![CDATA[Feeds]]></category>
		<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://techbrew.net/articles/200709/tagging-habits-of-the-a-list/</guid>
		<description><![CDATA[<br/>At the beginning of the year I set up JetStream to monitor the top 100 CNET Blogs and see how the Technology A-Listers (according to CNET) were using tagging in their posts. I&#8217;ve been collecting data for nine months now, so I thought I&#8217;d share some of what I&#8217;ve learned. To Tag or Not To [...]]]></description>
			<content:encoded><![CDATA[<br/><p>At the beginning of the year I set up <a href="http://labs.techbrew.net/jetstream/">JetStream</a> to monitor the top <a href="http://news.com.com/2310-10784_3-0.html">100 CNET Blogs</a> and see how the Technology A-Listers (according to CNET) were using tagging in their posts.   I&#8217;ve been collecting data for nine months now, so I thought I&#8217;d share some of what I&#8217;ve learned.</p>
<p><strong>To Tag or Not To Tag</strong></p>
<p><a href="http://www.flickr.com/photos/brokenthoughts/291522788/"><img src="http://techbrew.net/wp-content/uploads/2007/09/tagging.jpg" alt="Tagging" align="right" border="0" /></a>The first thing I noticed is that many of the blogs don&#8217;t tag their posts at all.    Those who do tag tend to fall into two camps:  the Tags-As-Category camp, and the Semantic Tagging camp (usually individuals.)    The former use a limited list of tags like &#8220;Gadget&#8221; or &#8220;News&#8221;, the latter like &#8220;iPod&#8221;, &#8220;numanuma&#8221;, or &#8220;youtube&#8221;.  And, of course, there are some who do a little of both, as we do here on TechBrew.</p>
<p><strong>Popular Tags of 2007</strong></p>
<p>So far this year the 100 blogs have posted ~700,000 RSS and Atom items, and have used ~55,000 unique tags to label them.  I should note at this point that uniqueness in JetStream is case-sensitive, so &#8216;iPod&#8217;, &#8216;ipod&#8217;, and &#8216;IPOD&#8217; are in fact 3 different tags.  I didn&#8217;t want to lose some interesting analysis opportunities by lumping all capitalization variants together.</p>
<p>The most popular tags &#8211; those used on the most items &#8211; are skewed toward the use of fixed category tags by some of the prolific blogs like Engadget and Gizmodo.    Still, the top 30 tags used thus far paint an interesting picture of what the Tech blogosphere is talking about:</p>
<pre>
<strong>     TAG NAME               </strong><strong>FREQUENCY OF USE</strong></pre>
<pre> #1: Gadgets.......................3796
 #2: apple.........................2900
 #3: Top...........................2054
 #4: Microsoft.....................2046
 #5: iphone........................1914
 #6: Home Entertainment............1875
 #7: internet......................1657
 #8: Cellphones....................1536
 #9: General.......................1505
#10: sony..........................1485
#11: xbox 360......................1478
#12: Video.........................1295
#13: ps3...........................1202
#14: Blogging......................1134
#15: nintendo......................1108
#16: wii...........................1096
#17: Portable Media................1053
#18: Peripherals...................1016
#19: Clips..........................998
#20: Google.........................976
#21: ipod...........................935
#22: Company &amp; Product Profiles.....882
#23: japan..........................871
#24: Software.......................858
#25: news...........................840
#26: media..........................833
#27: Smartphones....................786
#28: windows........................769
#29: vista..........................761
#30: Original.......................746</pre>
<p>I can&#8217;t help but laugh that &#8216;Blogging&#8217; is used so often as a tag on blog items.  Recursive or redundant, you decide.</p>
<p><strong>Lets Get Semantic </strong></p>
<p>It is easy to see who and what have been the newsmakers this year from the above list.  Quite a bit can be inferred by the human brain, but there is a quite a bit of data mining and computer-based inference to be done as well.</p>
<p>To illustrate, anybody looking at the above list would be able to create some arbitrary semantic groupings:</p>
<p align="center"><em><strong>{Gadgets, apple, iphone,  Cellphones}</strong></em></p>
<p align="center"><em><strong>{Microsoft, xbox 360, windows, vista}</strong></em></p>
<p align="center"><em><strong>{xbox 360, ps3, wii}</strong></em></p>
<p><a href="http://techbrew.net/wp-content/uploads/2007/09/taggraph.png" title="Tag Graph of TechBrew.net"><img src="http://techbrew.net/wp-content/uploads/2007/09/taggraph.thumbnail.png" alt="Tag Graph of TechBrew.net" align="right" /></a>The next step for <a href="http://labs.techbrew.net/jetstream">JetStream</a>, in my mind, is to derive such semantic relationships automatically.  The algorithm would be essentially based on frequency of association between certain tags within blog items.  The strength of these relationships, based on frequency of co-usage, would be an indicator of relevance.</p>
<p>This approach isn&#8217;t very complicated, but it works because people have been doing the work of semantic tagging on all the items.  What I&#8217;m speaking of is simply a mechanism to reveal what people have already done.  Sort of <a href="http://www.foaf-project.org/">FOAF</a>, but for ideas and things instead of people.  (<a href="http://dannyayers.com/2007/02/27/so-i-have-a-foaf">Danny Ayers</a>, are your ears burning?)  <a href="http://www.aharef.info/static/htmlgraph/?url=http%3A%2F%2Ftechbrew.net">This kind of visualization</a> hints at what can be discovered through tagging trends across like-minded populations.</p>
<p>(JetStream does have a semantic view that is sliced by a given day&#8217;s worth of tags.  You can see the &#8220;<a href="http://labs.techbrew.net/jetstream/constellation.php">Tag Constellation</a>&#8221; view of the day&#8217;s most popular tag and anything associated with it.  Click the bullseye icon above any tag to center it in the constellation.  This is a fairly simplistic approach, but it gives a taste of what can be done with semantic inference and better visualization.)</p>
<p><strong>So What&#8217;s Next?</strong></p>
<p>I&#8217;m considering a way to express the semantic groupings in a RDF construct, and have been asking a couple of acquaintances their thoughts on the matter.  It would be useful to have a standard way to express semantic groups of tags &#8211; probably represented as URIs &#8211; but this whole thing may be a little too obscure to standardize just yet.</p>
<p>I&#8217;ve talked about some of what I would like to do, but I&#8217;d like to hear from you.  What would be interesting to you?  Should I just release the data and let people play with it? What format would you like to see it in?  If I gave it to you, what would you do with it?</p>
]]></content:encoded>
			<wfw:commentRss>http://techbrew.net/articles/200709/tagging-habits-of-the-a-list/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Pacing Your Feeds</title>
		<link>http://techbrew.net/articles/200709/pacing-your-feeds/</link>
		<comments>http://techbrew.net/articles/200709/pacing-your-feeds/#comments</comments>
		<pubDate>Thu, 06 Sep 2007 20:18:16 +0000</pubDate>
		<dc:creator>Mark Woodman</dc:creator>
				<category><![CDATA[Feeds]]></category>
		<category><![CDATA[How-To]]></category>

		<guid isPermaLink="false">http://techbrew.net/articles/200709/pacing-your-feeds/</guid>
		<description><![CDATA[<br/>Marshall Kirkpatrick posted some good advice about how to keep up with all of the RSS feeds in your reader. Boiled down to the essence: 1) You need an efficient reading mechanism (I use and recommend Google Reader.) 2) You need to keep your feeds organized so they make sense to you 3) You need [...]]]></description>
			<content:encoded><![CDATA[<br/><p>Marshall Kirkpatrick <a href="http://marshallk.com/readfeeds">posted some good advice</a> about how to keep up with all of the RSS feeds in your reader.  Boiled down to the essence:</p>
<p>1) You need an efficient reading mechanism (I use and recommend <a href="http://reader.google.com">Google Reader</a>.)</p>
<p>2) You need to keep your feeds organized so they make sense to you</p>
<p>3) You need to <strong>keep your feeds visibility high</strong>.</p>
<p><img src="http://techbrew.net/wp-content/uploads/2007/09/readerwidget.png" alt="Google Reader Widget in iGoogle" align="right" />On that last point, a couple of suggestions that I made to Marshall wound up in his post:  Add the <a href="http://www.google.com/ig/directory?synd=toolbar&amp;q=Google+Reader&amp;btnG=Search">Google Reader Button</a> to your <a href="http://toolbar.google.com">Google Toolbar</a> (if you use it), and get a view of your feeds into your browser homepage.  I use <a href="http://google.com/ig">iGoogle</a>, so integrating the <a href="http://www.google.com/ig/directory?root=%2Fig&amp;dpos=top&amp;num=24&amp;url=http://www.google.com/ig/modules/reader.xml">Reader widget</a> is a snap. (The image to the right is how it looks.)</p>
<p>One section that I think Marshall is missing from his post is along these lines:</p>
<p><strong>Be Brutal</strong></p>
<p>Be brutal to your subscription list.  If you find yourself skimming most of the items in a feed, either find a way to filter them out before you see them, or unsubscribe from the feed altogether.  (Note to TechBrew readers:  This does not apply to you.  Step away from the Unsubscribe button and skim past this item.)</p>
<p>This goes back to an article I wrote called &#8220;<a href="http://inkblots.markwoodman.com/2006/10/23/top-5-reasons-your-coworkers-dont-use-rss/">The Top 5 Reasons Your Co-Workers Don&#8217;t Use RSS</a>&#8220;.  The second reason was that people get overwhelmed by information overload.  My advice was, and remains:</p>
<blockquote>
<p align="left">It is pretty easy to over-subscribe to RSS feeds and feel like youâ€™re drinking from a fire hose. The best suggestion Iâ€™ve found to help you keep from getting overloaded is: â€œ<a href="http://www.43folders.com/2005/10/14/too-many-rss-feeds-put-em-on-probation/">Too many RSS feeds?  Put â€˜em on probation.</a>â€œ.  Granted, itâ€™s more a mental+organizational approach rather than a tech trick, but it works.</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://techbrew.net/articles/200709/pacing-your-feeds/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RESTful Spam Mashup: Get Throw-Away Email in an RSS Feed</title>
		<link>http://techbrew.net/articles/200708/restful-spam-mashup-get-throw-away-email-as-rss/</link>
		<comments>http://techbrew.net/articles/200708/restful-spam-mashup-get-throw-away-email-as-rss/#comments</comments>
		<pubDate>Wed, 29 Aug 2007 15:06:06 +0000</pubDate>
		<dc:creator>Mark Woodman</dc:creator>
				<category><![CDATA[Feeds]]></category>
		<category><![CDATA[How-To]]></category>

		<guid isPermaLink="false">http://techbrew.net/articles/200708/restful-spam-mashup-get-throw-away-email-as-rss/</guid>
		<description><![CDATA[<br/>There are a variety of temporary email services out there in internetland, perfect for signing up at websites where you need the goods but are distrustful of the privacy policy. The ironic problem with many of these services is that you have to create an account and use your real email address. One nifty alternative [...]]]></description>
			<content:encoded><![CDATA[<br/><p>There are a variety of temporary email services out there in internetland, perfect for signing up at websites where you need the goods but are distrustful of the privacy policy.   The ironic problem with many of these services is that you have to create an account and use your <em>real</em> email address.</p>
<p>One nifty alternative is <a href="http://spam.la">Spam.la</a>, a service of DreamHost that allows you to use any email address ending with <em>@spam.la</em>.  Just pick a username to use as a throw-away email address, and any messages sent to that address will appear right on the Spam.la homepage.  (The spam is coming in fast-and-furious, so you can filter the results based on your username.)</p>
<p><img src="http://techbrew.net/wp-content/uploads/2007/08/spamrss.jpg" alt="spamrss.jpg" align="right" />The disadvantage of this setup, of course, is that literally anyone can read your messages if they&#8217;re trolling the homepage.  For many situations, however, that doesn&#8217;t much matter. The other disadvantage is that you have to constantly visit the site to see if any email has arrived.  They don&#8217;t offer an RSS feed, so I thought I&#8217;d do a little mashup with some RESTful services and make an RSS feed of my own.</p>
<p>If you don&#8217;t care about how it works, just read &#8220;The Short Story&#8221; below, copy and edit the link, and you&#8217;ve got an RSS feed ready to go.</p>
<p align="left"><strong>The Short Story</strong></p>
<p align="left">If your temporary email address is &#8220;bobby@spam.la&#8221;, this link will provide an RSS feed of your Spam.la email messages:</p>
<p><code><a href="http://www.w3.org/2000/06/webdata/xslt?xslfile=http%3A%2F%2Ftechbrewfiles.googlepages.com%2Fspamla.xsl&amp;xmlfile=http%3A%2F%2Fcgi.w3.org%2Fcgi-bin%2Ftidy%3FdocAddr%3Dhttp%253A%252F%252Fspam.la%252F%253Ff%253Dbobby%26forceXML%3Don">http://www.w3.org/2000/06/webdata/xslt ?xslfile=http%3A%2F%2Ftechbrewfiles.googlepages.com%2Fspamla.xsl &amp;xmlfile=http%3A%2F%2Fcgi.w3.org%2Fcgi-bin%2Ftidy%3FdocAddr%3D http%253A%252F%252Fspam.la%252F%253Ff%253D<strong>bobby</strong>%26forceXML%3Don</a></code></p>
<p align="left">Since you probably aren&#8217;t using &#8216;bobby@spam.la&#8217;, just replace &#8216;<em>bobby</em>&#8216; in the URL above with your email name, and you&#8217;re ready to subscribe to it with an RSS reader.  (Be sure to right-click and copy the link location, rather than cut-n-paste the above text.  The display text has spaces to allow for line breaks.)</p>
<p align="left">If you want to know how this works, keep reading.</p>
<p align="left"><strong>The Long Story<br />
</strong></p>
<p align="left">The Spam.la webpage is very basic HTML.  When you filter based on an email address, the URL starts like this:</p>
<p align="left"><a href="http://spam.la/?f=bobby">http://spam.la/?f=bobby</a></p>
<p align="left">The HTML isn&#8217;t well-formed, so we can&#8217;t treat it like XML just yet.  As is, there&#8217;s not much we can do with it without writing a bunch of string parsing code.  But thanks to the availability of some handy RESTful services on the web, we can transform it into RSS in a couple of passes.  Here&#8217;s how:</p>
<p><strong>1) </strong>Tidy up the HTML into XHTML with the free <a href="http://cgi.w3.org/cgi-bin/tidy">W3C Tidy parser</a> service, checking &#8220;enforce XML well-formedness&#8221; to make sure it is ready to use.    Passed into the parser, the XHTML of the filtered spam page is now:<code><a href="http://cgi.w3.org/cgi-bin/tidy?docAddr=http%3A%2F%2Fspam.la%2F%3Ff%3Dbobby&amp;forceXML=on"></a></code></p>
<p><code><a href="http://cgi.w3.org/cgi-bin/tidy?docAddr=http%3A%2F%2Fspam.la%2F%3Ff%3Dbobby&amp;forceXML=on">http://cgi.w3.org/cgi-bin/tidy?  docAddr=http%3A%2F%2Fspam.la%2F%3Ff%3Dbobby &amp;forceXML=on</a></code></p>
<p><strong>2)</strong> Employ an XSL stylesheet to turn the email links in the XHTML into RSS items.  I wrote one and put it here: <a href="http://techbrewfiles.googlepages.com/spamla.xsl">http://techbrewfiles.googlepages.com/spamla.xsl</a> .</p>
<p>It is free to use and modify under a <a href="http://creativecommons.org/licenses/LGPL/2.1/">LGPL Creative Commons</a> license.</p>
<p><strong>3)</strong> Use the <a href="http://www.w3.org/2001/05/xslt">W3C XSLT Servlet</a> service to transform the XHTML with the above stylesheet. This is also a REST service, so the result is a long URL that contains the tidy Spam.la page and the XSL stylesheet.  It is uglified with URL encoding, but it works:</p>
<p align="left"><a href="http://www.w3.org/2000/06/webdata/xslt?xslfile=http%3A%2F%2Ftechbrewfiles.googlepages.com%2Fspamla.xsl&amp;xmlfile=http%3A%2F%2Fcgi.w3.org%2Fcgi-bin%2Ftidy%3FdocAddr%3Dhttp%253A%252F%252Fspam.la%252F%253Ff%253Dbobby%26forceXML%3Don"><code></code></a><a href="http://www.w3.org/2000/06/webdata/xslt?xslfile=http%3A%2F%2Ftechbrewfiles.googlepages.com%2Fspamla.xsl&amp;xmlfile=http%3A%2F%2Fcgi.w3.org%2Fcgi-bin%2Ftidy%3FdocAddr%3Dhttp%253A%252F%252Fspam.la%252F%253Ff%253Dbobby%26forceXML%3Don">http://www.w3.org/2000/06/webdata/xslt ?xslfile=http%3A%2F%2Ftechbrewfiles.googlepages.com%2Fspamla.xsl &amp;xmlfile=http%3A%2F%2Fcgi.w3.org%2Fcgi-bin%2Ftidy%3FdocAddr%3D http%253A%252F%252Fspam.la%252F%253Ff%253D<strong>bobby</strong>%26forceXML%3Don</a></p>
<p>Voila!  You have throw-away anonymous email where your RSS reader is your inbox.    Just edit &#8216;bobby&#8217; with the username of your choice, and you&#8217;re done.</p>
<p>If you found this handy or have improvements, please leave a comment or <a href="http://techbrew.net/contact/">contact us</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://techbrew.net/articles/200708/restful-spam-mashup-get-throw-away-email-as-rss/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Atom nearly done, but can it compete with RSS?</title>
		<link>http://techbrew.net/articles/200707/atom-nearly-done-but-can-it-compete-with-rss/</link>
		<comments>http://techbrew.net/articles/200707/atom-nearly-done-but-can-it-compete-with-rss/#comments</comments>
		<pubDate>Thu, 26 Jul 2007 17:01:13 +0000</pubDate>
		<dc:creator>Mark Woodman</dc:creator>
				<category><![CDATA[Feeds]]></category>
		<category><![CDATA[Opinion]]></category>

		<guid isPermaLink="false">http://techbrew.net/articles/200707/atom-nearly-done-but-can-it-compete-with-rss/</guid>
		<description><![CDATA[<br/>With the announcement that the Atom 1.0 specification is essentially done, it now moves into the process of becoming a full-fledged IETF specification. Atom has been a promising alternative to RSS 2.0, but has only a fraction of the market share of syndicated feeds. Can it really compete? Pros and Controversies For those who are [...]]]></description>
			<content:encoded><![CDATA[<br/><p><img src="http://techbrew.net/wp-content/uploads/2007/07/atom-logo75px.gif" alt="Atom" align="right" />With the announcement that the Atom 1.0 specification is <a href="http://www.tbray.org/ongoing/When/200x/2007/07/24/Atom-is-Finished">essentially done</a>, it now moves into the process of becoming a full-fledged IETF specification.  Atom has been a promising alternative to RSS 2.0, but has only a fraction of the market share of syndicated feeds.  Can it really compete?</p>
<p><strong>Pros and Controversies </strong></p>
<p>For those who are only marginally comfortable with XML, Atom is more intimidating.  At the same time, it is more precise. The bungling of HTML markup (<a href="http://tech.groups.yahoo.com/group/rss-public/message/719">double-encoding</a>, anyone?),  <a href="http://tech.groups.yahoo.com/group/rss-public/message/1384">confusion</a> over enclosures, and the typical flailing we see with RSS can be addressed directly.  Atom holds the promise that such problems, when they arise, can be addressed in a standards-compliant way.</p>
<p>The RSS 2.0 spec is supposed to be frozen, so the problems you have now in RSS will always be there&#8230; maybe.  The <a href="http://www.rssboard.org/">RSS Advisory Board</a>, divorced from inventor Dave Winer, continues to make micro-changes (<a href="http://tech.groups.yahoo.com/group/rss-public/message/1374">against his wishes</a>) to the RSS spec in an attempt to solve such problems.  (Here&#8217;s our humorous <a href="http://techbrew.net/articles/200705/a-plumbing-fable/">Plumbing Fable</a> on that soap opera.)  The <a href="http://www.therssweblog.com/?guid=20070724112914">vitriol</a> on this topic makes American politics look rather tame.  [Editorial opinion:  <a href="http://inkblots.markwoodman.com/2006/02/21/rss-gets-an-enema/">RSS still needs an enema</a>.]</p>
<p><strong>The Standard is the Key </strong></p>
<p><img src="http://techbrew.net/wp-content/uploads/2007/07/eagle.thumbnail.jpg" alt="US Government" align="right" />The real secret to the success of Atom could very well be official stamp of approval by the IETF.   This is nothing to be scoffed at:  There are thousands of powerhouse U.S. corporations and defense contractors who are required by their own policy to use a official standard whenever possible in their software.  As soon as Atom becomes an official IETF-blessed product, RSS as a de-facto standard won&#8217;t count anymore.</p>
<p>I have a coworker who is documenting my employer&#8217;s software practices for a government checklist, and one of the criteria is whether or not we are standards-compliant.   If we&#8217;re using RSS instead of Atom, it would be easy to get dinged by somebody who is paying attention.</p>
<p>We know that the U.S. government is in fact paying attention to the RSS vs. Atom debate.  Last fall, <a href="http://inkblots.markwoodman.com/2006/09/22/spymasters-choose-atom-over-rss/">I wrote</a> about the decision made by the U.S. Intelligence Community to go with Atom 1.0 instead of RSS.   (The <a href="http://inkblots.markwoodman.com/2006/09/22/spymasters-choose-atom-over-rss/">article</a> also distills why RSS doesn&#8217;t work for their purposes.)  They set a precedent that will make it way into policy along with the &#8220;only official standards&#8221; mandate in the defense software industry.</p>
<p><img src="http://techbrew.net/wp-content/uploads/2007/07/feeddevil.png" alt="Google, Feedburner, and Atom: A devilish conspiracy?" align="right" /><strong>GoogMuscle and FeedBurner </strong></p>
<p>To further muddy the waters, Google&#8217;s recent <a href="http://blogs.feedburner.com/feedburner/archives/2007/06/feedburner_google.php">acquisition</a> of Feedburner has the geekosphere wondering whether some GoogMuscle might get flexed to push Atom over RSS.</p>
<p>RSS 2.0 inventor Dave Winer is already <a href="http://www.scripting.com/stories/2007/07/21/whyFeedburnerIsTrouble.html">mustering</a> the <a href="http://scobleizer.com/2007/07/22/feedburner-bad-for-us/">troops</a> to demonize (or at least discredit) FeedBurner.   That camp is convinced of a vast corporate conspiracy to control RSS&#8230; and perhaps destroy it.  Google has a track record of promoting Atom in the past, so it is at least possible that FeedBurner might make Atom its default format sometime in the future.</p>
<p>Conspiracy or not, if RSS can&#8217;t stand the test of time &#8211; frozen as it is &#8211; Atom may eventually win.Â   Giant corporate backers like Google who make policy decisions could very well be the deciding factor.  As Richard MacManus rightly <a href="http://www.readwriteweb.com/archives/syndication_wars_2007_atom_rss20.php">notes</a>, &#8220;Google has the potential to be the kingmaker in the Syndication Wars very soon.&#8221;  (Richard does a great recap of said Wars to date.)</p>
<p><img src="http://techbrew.net/wp-content/uploads/2007/07/betavhs21.thumbnail.jpg" alt="Beta and VHS" align="right" /><strong>Beta was Better.  Long Live VHS. </strong></p>
<p>All of these issues, from corporate/government standards to Google adoption is only a matter of potential, however.  In the meantime, Rogers Cadenhead <a href="http://www.cadenhead.org/workbench/news/3227/tim-bray-rss-twice-good-atom">says</a> Atom&#8217;s marketshare is about 16%, and appears to be declining.  Standards-track or not, there is no telling if that will ever turn around.  Will Atom become the <a href="http://en.wikipedia.org/wiki/Betamax">Betamax</a> to RSS&#8217;s VHS?   I guess we&#8217;ll know in a couple of years.</p>
]]></content:encoded>
			<wfw:commentRss>http://techbrew.net/articles/200707/atom-nearly-done-but-can-it-compete-with-rss/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RSS for Geek Dads &#8211; A Wish List</title>
		<link>http://techbrew.net/articles/200707/geek-dad-rss-wishlist/</link>
		<comments>http://techbrew.net/articles/200707/geek-dad-rss-wishlist/#comments</comments>
		<pubDate>Tue, 10 Jul 2007 19:36:17 +0000</pubDate>
		<dc:creator>Mark Woodman</dc:creator>
				<category><![CDATA[Feeds]]></category>
		<category><![CDATA[Humor]]></category>

		<guid isPermaLink="false">http://techbrew.net/articles/200707/geek-dad-rss-wishlist/</guid>
		<description><![CDATA[<br/>First off: It&#8217;s a girl! The TechBrew baby squad has a new addition with Anna Ruth Woodman. (No word yet when she&#8217;ll be blogging.) When a geek dad like me is stuck in waiting rooms and hospital guest chairs for hours on end, coupled with lack of sleep, we tend to get a bit carried [...]]]></description>
			<content:encoded><![CDATA[<br/><p>First off:  <strong>It&#8217;s a girl!</strong>  The TechBrew baby squad has a new addition with Anna Ruth Woodman.  (No word yet when she&#8217;ll be blogging.)</p>
<p>When a geek dad like me is stuck in waiting rooms and hospital guest chairs for hours on end, coupled with lack of sleep, we tend to get a bit carried away with wanting hi-tech solutions to age-old problems.  Here are the top three things I wish I had for birthing in the information age:</p>
<p><strong>#1. Mobile Cervix Monitor with RSS and Twitter Capabilities</strong></p>
<p><img src="http://techbrew.net/wp-content/uploads/2007/07/mobilecervix.png" alt="Mobile Cervix Monitor with Bluetooth, RSS, and Twitter" align="right" />You just never know when baby will come until mom&#8217;s cervix does its thing.  Rather than wait for the doctor to check (or water to break), use the Mobile Cervix Monitor to keep tabs on baby&#8217;s pending arrival.</p>
<p>The MCM is a standard latex diaphragm installed with a low-power bluetooth chip and a pressure sensor built into the rim of the diaphragm.  Cervical dilation and effacement data would be monitored and beamed to mom&#8217;s cellphone, which would both alert mom to changes and update an RSS feed for dad.   Really social moms could enable the option that sends updates to Twitter as well.</p>
<p><strong>#2. Daddy&#8217;s Diaper Monitor</strong></p>
<p><img src="http://techbrew.net/wp-content/uploads/2007/07/rss-diaper.JPG" alt="RSS-enabled diaper" align="right" />The DDM would have a blue-tooth or wireless transmitter that velcro&#8217;s to the front of a diaper.  Real-time data would be monitored by a network-aware app on your local PC, which not only can send out alerts (email, RSS, Tweets), but can provide statistical graphing on just how long it takes food to go from bottle to bottom.</p>
<p><strong>#3. Mommy Wants Ice Cream Alert System</strong></p>
<p><img src="http://techbrew.net/wp-content/uploads/2007/07/ice_cream_cone1.jpg" alt="Ice Cream, Now!" align="right" />The MWICAS functions by simple electrodes placed on the scalp of the new mom.  She is instructed to think about ice cream, and the system records the neural patterns.   Whenever the pattern is detected again, the system sends alerts to dad right away.  This system probably shouldn&#8217;t have an RSS feed, because a standard 15-minute refresh cycle on a typical Feed Reader is guaranteed to be 14.5 minutes too late.Â  (I recommend using the SMS option whenever possible.)</p>
<p>I&#8217;m feeling generous to the LazyWeb, so I haven&#8217;t patented these ground-breaking ideas.  I&#8217;ll just be happy when somebody builds them and sends me a prototype.  Thanks in advance.  Oh, and I could really use #2 and #3 later today, if that isn&#8217;t too much trouble.  I think somebody needs ice cream.</p>
]]></content:encoded>
			<wfw:commentRss>http://techbrew.net/articles/200707/geek-dad-rss-wishlist/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Dave Winer Offers to Re-Join RSS Advisory Board</title>
		<link>http://techbrew.net/articles/200705/dave-winer-offers-to-re-join-rss-advisory-board/</link>
		<comments>http://techbrew.net/articles/200705/dave-winer-offers-to-re-join-rss-advisory-board/#comments</comments>
		<pubDate>Sun, 27 May 2007 04:33:55 +0000</pubDate>
		<dc:creator>Mark Woodman</dc:creator>
				<category><![CDATA[Feeds]]></category>
		<category><![CDATA[Opinion]]></category>

		<guid isPermaLink="false">http://techbrew.net/articles/200705/dave-winer-offers-to-re-join-rss-advisory-board/</guid>
		<description><![CDATA[<br/>The plumbers union may be reuniting.Â  Dave Winer, inventor of RSS 2.0, has offered to re-join the RSS Advisory Board, albeit with a firm caveat:Â  The board will make no changes to the specification, just clarifications via a profile. I will join as a member, if you want me to, to help give it legitimacy. [...]]]></description>
			<content:encoded><![CDATA[<br/><p>The plumbers union may be reuniting.Â  Dave Winer, inventor of RSS 2.0, has <a href="http://tech.groups.yahoo.com/group/rss-public/message/1374">offered</a> to re-join the RSS Advisory Board, albeit with a firm caveat:Â  The board will make no changes to the specification, just clarifications via a profile.</p>
<blockquote><p>I will join as a member, if you want me to, to help give it legitimacy. At that point these time-wasting discussions can end. I would also suggest that you offer Sam Ruby a position, esp if he takes the first item here to heart.</p>
<p>The two things:</p>
<p>1. Recognize that the RSS 2.0 spec is on the Harvard server, and it is not going to change.</p>
<p>2. Change the mission of this group to working on a profile. Let&#8217;s come up with a memorable name for the profile that doesn&#8217;t sound official or mandatory, and let&#8217;s get to work on solving problems, and then promoting the result to the users.</p></blockquote>
<p>All things considered, I think this is a great offer. It is one that might finally produce the clarifications to the spec that people have been seeking for years.Â  If Dave is finally willing to answer those clarifications, even in a &#8220;non-official profile&#8221;, it would be good for everybody.</p>
]]></content:encoded>
			<wfw:commentRss>http://techbrew.net/articles/200705/dave-winer-offers-to-re-join-rss-advisory-board/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>A Plumbing Fable</title>
		<link>http://techbrew.net/articles/200705/a-plumbing-fable/</link>
		<comments>http://techbrew.net/articles/200705/a-plumbing-fable/#comments</comments>
		<pubDate>Fri, 25 May 2007 16:17:15 +0000</pubDate>
		<dc:creator>Mark Woodman</dc:creator>
				<category><![CDATA[Feeds]]></category>
		<category><![CDATA[Humor]]></category>
		<category><![CDATA[Opinion]]></category>

		<guid isPermaLink="false">http://techbrew.net/articles/200705/a-plumbing-fable/</guid>
		<description><![CDATA[<br/>Once upon a time, you had to go to a plumbing store to buy the stuff for a new sink. You&#8217;re going to need clamps, hoses, faucets&#8230; the works. An employee at the store with &#8220;Dave&#8221; on his shirt comes up and says, &#8220;I recommend the Really Simple Sink. I invented it, and it just [...]]]></description>
			<content:encoded><![CDATA[<br/><p><img align="right" alt="plumber.PNG" id="image117" src="http://techbrew.net/wp-content/uploads/2007/05/plumber.thumbnail.PNG" />Once upon a time, you had to go to a plumbing store to buy the stuff for a new sink.  You&#8217;re going to need clamps, hoses, faucets&#8230; the works.  An employee at the store with &#8220;Dave&#8221; on his shirt comes up and says, &#8220;I recommend the Really Simple Sink.  I invented it, and it just works.&#8221;</p>
<p>Another guy named R.C. wanders over and agrees. &#8220;I love it.  The faucets works pretty well, but there are a couple of extra parts you need to make sure it doesn&#8217;t leak.  People make a lot of mistakes when they install it.  So some of us have made a couple of minor changes to the seals and valve stems.&#8221;</p>
<p>Dave looks miffed, &#8220;The sink is fine the way it is.&#8221;   He juts out his thumb at R.C.,  &#8220;Pay no attention to him.  He only installs sinks, he&#8217;s not authorized to modify the design.&#8221;  R.C. looks surprised, &#8220;You said I could, and you were even helping me.&#8221;  Dave shakes his head, &#8220;I stopped helping, and never said you you guys could change anything.&#8221;</p>
<p>&#8220;Yes, you did.&#8221;</p>
<p>&#8220;No, I didn&#8217;t.  The design is fine.&#8221;</p>
<p>&#8220;You discontinued this line, so customers can&#8217;t ever upgrade.  To use the sink, people have to change some parts and get a better instruction manual.&#8221;</p>
<p>&#8220;No, they don&#8217;t!&#8221;</p>
<p>&#8220;Yes, they do!&#8221;</p>
<p>At this point the debate starts getting pretty heated.  You get the sense they&#8217;ve had this discussion before.  While they argue, you notice another employee in the next aisle.  You go talk to him, noting the name on his shirt.  &#8220;Hi Sam, I need a sink.&#8221;</p>
<p>He nods, &#8220;Try this one by Atom Manufacturing.  It isn&#8217;t as popular as the older Really Simple Sink, and it is a little harder to install sometimes, but it serves the same purpose.&#8221;</p>
<p>&#8220;Will it leak?&#8221; you ask.  Sam nods again, &#8220;Not usually, but anything can happen over the years.  But if it does, you can upgrade it to a newer model.  The design is actually an industry standard, so a bunch of plumbers are constantly working together on how to improve it.&#8221;</p>
<p>&#8220;So&#8230; what happens if the Really Simple Sink leaks?&#8221;   He shrugs, &#8220;You&#8217;re out of luck; the sole inventor has discontinued that model.   He&#8217;s focusing more on open-pipe machined levers these days.  So, you&#8217;ll have to figure out how to plug the holes yourself.   But that may not be so bad in a residential setting.&#8221;</p>
<p>&#8220;Oh,&#8221; you say, &#8220;But I have to install this one at work.&#8221;  Sam raises an eyebrow.  &#8220;You&#8217;ll want to be careful, then.  Commercial plumbing has higher inspection standards.&#8221;</p>
<p>&#8220;I guess I&#8217;d better buy the Atom one, then.&#8221;</p>
<p>He smiles, &#8220;Oh, they&#8217;re both free.  It&#8217;s the cost of owning one you have to watch out for.&#8221;</p>
<p align="center"><em>The End<a href="http://www.cadenhead.org/workbench/news/3217/dave-winer-and-rss-advisory-board">?</a></em></p>
<p align="center">&#8220;<a href="http://www.youtube.com/watch?v=wFV035C34Kc">Calling The Plumber</a>&#8221; by <a href="http://www.redrover.net/">Red Rover Studios</a></p>
<p align="center"><p><a href="http://techbrew.net/articles/200705/a-plumbing-fable/"><em>Click here to view the embedded video.</em></a></p></p>
<p align="center"><a href="http://www.redrover.net/" /></p>
]]></content:encoded>
			<wfw:commentRss>http://techbrew.net/articles/200705/a-plumbing-fable/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

