<?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; News</title>
	<atom:link href="http://techbrew.net/articles/category/news/feed/" rel="self" type="application/rss+xml" />
	<link>http://techbrew.net</link>
	<description>Informative geekery on software and technology</description>
	<lastBuildDate>Tue, 10 Jan 2012 23:12:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>JourneyMap 1.0.0 hits 10,000 downloads</title>
		<link>http://techbrew.net/articles/201201/journeymap-1-0-0-hits-10000-downloads/</link>
		<comments>http://techbrew.net/articles/201201/journeymap-1-0-0-hits-10000-downloads/#comments</comments>
		<pubDate>Tue, 10 Jan 2012 23:11:28 +0000</pubDate>
		<dc:creator>Mark Woodman</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[journeymap]]></category>
		<category><![CDATA[minecraft]]></category>

		<guid isPermaLink="false">http://techbrew.net/?p=345</guid>
		<description><![CDATA[<br/>I&#8217;m delighted at how well the JourneyMap mod for Minecraft has been received in the 45 days since it was released on November 26, 2011.    As of sometime today there have been over 10,000 downloads of version 1.0.0 for Minecraft 1.0.0. Thanks to everyone who has provided great encouragement and feedback along the way. I&#8217;m [...]]]></description>
			<content:encoded><![CDATA[<br/><p>I&#8217;m delighted at how well the <a href="http://dev.bukkit.org/client-mods/journeymap/">JourneyMap mod for Minecraft</a> has been received in the 45 days since it was released on November 26, 2011.    As of sometime today there have been over 10,000 downloads of version 1.0.0 for Minecraft 1.0.0.</p>
<p>Thanks to everyone who has provided great encouragement and feedback along the way.</p>
<div class="wp-caption alignright" style="width: 343px"><a href="http://i.imgur.com/jyU7U.png"><img title="JourneyMap 1.5.0 for Minecraft" src="http://i.imgur.com/jyU7Ul.png" alt="" width="333" height="233" /></a><p class="wp-caption-text">Coming soon: Snow and Biomes</p></div>
<p>I&#8217;m busy at work on a huge update.   I can&#8217;t decide whether to call the next release JourneyMap <em>1.5.0</em> or <em>2.0.0</em>, but there&#8217;s a lot to it.  The big-ticket items are:</p>
<ul>
<li>Biome coloring, including snow</li>
<li>A fully-featured in-Game UI if you don&#8217;t want to use a web-browser</li>
<li>A properties file for a number of tweakable settings (by popular request)</li>
<li>A Save button that saves the entirety of your map to file, not just what you can see</li>
<li>Improved I/O with fewer files</li>
</ul>
<p>Stay tuned, and happy journeys!</p>
]]></content:encoded>
			<wfw:commentRss>http://techbrew.net/articles/201201/journeymap-1-0-0-hits-10000-downloads/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iSpringsCam : Colorado Springs Traffic Cams on the iPhone</title>
		<link>http://techbrew.net/articles/201004/ispringscam-colorado-springs-traffic-cams-on-the-iphone/</link>
		<comments>http://techbrew.net/articles/201004/ispringscam-colorado-springs-traffic-cams-on-the-iphone/#comments</comments>
		<pubDate>Fri, 23 Apr 2010 16:53:41 +0000</pubDate>
		<dc:creator>Mark Woodman</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[google_maps]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[ispringscam]]></category>
		<category><![CDATA[iWebKit]]></category>

		<guid isPermaLink="false">http://techbrew.net/?p=283</guid>
		<description><![CDATA[<br/>(April 26, 2010: Updated with newest features) A few weeks ago in Colorado Springs there was a fuel tanker crash on the I-25 Interstate, spilling thousands of gallons of fuel and closing the Interstate for over 5 hours.  Traffic patterns were a complete mess as side-roads became major thoroughfares.  As I drove home from work, [...]]]></description>
			<content:encoded><![CDATA[<br/><p><em>(April 26, 2010: Updated with newest features)</em></p>
<p><img class="size-full wp-image-310 alignright" title="ispringscam-icon" src="http://techbrew.net/wp-content/uploads/2010/04/ispringscam-icon.jpg" alt="iSpringsCam" width="85" height="85" align="right" />A few weeks ago in Colorado Springs there was a fuel tanker crash on the I-25 Interstate, spilling thousands of gallons of fuel and closing the Interstate for over 5 hours.  Traffic patterns were a complete mess as side-roads became major thoroughfares.  As I drove home from work, I found myself wishing I had access to <a title="SpringsCam" href="http://springscam.markwoodman.com" target="_blank">springscam.markwoodman.com</a> on my iPhone.  But I built that traffic-cam site in Flex (Flash), so that wasn&#8217;t an option.</p>
<p>That led me down the path on how to build <a href="http://techbrew.net/articles/201004/iphone-faux-apps-with-iwebkit/">iPhone faux-apps with iWebKit</a>, and within a few hours I had a functioning version that worked pretty well and looked pretty good.</p>
<p>If you have an iPhone, check out <a title="iSpringsCam" href="http://iSpringsCam.markwoodman.com" target="_blank">iSpringsCam.markwoodman.com</a> .  Here&#8217;s a run-down of the features:</p>
<ul>
<li> Use iSpringsCam like an App
<ol>
<li>Open iSpringsCam Home screen</li>
<li>Press (+) button in Safari</li>
<li>Press &#8220;Add to Home Screen&#8221;</li>
<li>iSpringsCam will now run full-screen (no browser bar)</li>
</ol>
</li>
</ul>
<ul>
<li> Main Screen
<ol>
<li>Use the “All on Map” to get all camera markers on a live Google Map with I-25 traffic conditions</li>
<li>Enter part of a street name in the filter field, and the list will display only the matching camera names</li>
<li>Select one of the cameras to open up the Single Camera View</li>
</ol>
</li>
</ul>
<ul>
<li> Single Camera View
<ol>
<li>You’ll see the latest image from that camera and a static map image of the camera location</li>
<li>Rotate your iPhone to fill your screen with the camera image</li>
<li>The camera image will auto-refresh once per minute</li>
<li>To manually refresh the camera image, tap the image or the 						  refresh button</li>
<li>Touch the “Live Map” button (or the map image) to get a live Google Map with the camera’s image and traffic conditions on I-25</li>
</ol>
</li>
</ul>
<ul>
<li> Google Map View (with current traffic conditions)
<ol>
<li>Pinch and expand the map to zoom in or out</li>
<li>Touch a marker to see that camera’s image in a balloon</li>
<li>Touch the “X” on the balloon to close it</li>
<li>Touch the camera image in the balloon to open the single-camera view</li>
</ol>
</li>
</ul>
<p>If you don&#8217;t have an iPhone, here are some screenshots:</p>

<a href='http://techbrew.net/articles/201004/ispringscam-colorado-springs-traffic-cams-on-the-iphone/ispringscam-icon/' title='ispringscam-icon'><img width="85" height="85" src="http://techbrew.net/wp-content/uploads/2010/04/ispringscam-icon.jpg" class="attachment-thumbnail" alt="iSpringsCam" title="ispringscam-icon" /></a>
<a href='http://techbrew.net/articles/201004/ispringscam-colorado-springs-traffic-cams-on-the-iphone/ispringscam6/' title='ispringscam(6)'><img width="150" height="150" src="http://techbrew.net/wp-content/uploads/2010/04/ispringscam6-150x150.jpg" class="attachment-thumbnail" alt="ispringscam(6)" title="ispringscam(6)" /></a>
<a href='http://techbrew.net/articles/201004/ispringscam-colorado-springs-traffic-cams-on-the-iphone/ispringscam1/' title='ispringscam(1)'><img width="150" height="150" src="http://techbrew.net/wp-content/uploads/2010/04/ispringscam1-150x150.jpg" class="attachment-thumbnail" alt="ispringscam(1)" title="ispringscam(1)" /></a>
<a href='http://techbrew.net/articles/201004/ispringscam-colorado-springs-traffic-cams-on-the-iphone/ispringscam2/' title='ispringscam(2)'><img width="150" height="150" src="http://techbrew.net/wp-content/uploads/2010/04/ispringscam2-150x150.jpg" class="attachment-thumbnail" alt="ispringscam(2)" title="ispringscam(2)" /></a>
<a href='http://techbrew.net/articles/201004/ispringscam-colorado-springs-traffic-cams-on-the-iphone/ispringscam3/' title='ispringscam(3)'><img width="150" height="150" src="http://techbrew.net/wp-content/uploads/2010/04/ispringscam3-150x150.jpg" class="attachment-thumbnail" alt="ispringscam(3)" title="ispringscam(3)" /></a>
<a href='http://techbrew.net/articles/201004/ispringscam-colorado-springs-traffic-cams-on-the-iphone/ispringscam7/' title='ispringscam(7)'><img width="150" height="150" src="http://techbrew.net/wp-content/uploads/2010/04/ispringscam7-150x150.jpg" class="attachment-thumbnail" alt="ispringscam(7)" title="ispringscam(7)" /></a>
<a href='http://techbrew.net/articles/201004/ispringscam-colorado-springs-traffic-cams-on-the-iphone/ispringscam5/' title='ispringscam(5)'><img width="150" height="150" src="http://techbrew.net/wp-content/uploads/2010/04/ispringscam5-150x150.jpg" class="attachment-thumbnail" alt="ispringscam(5)" title="ispringscam(5)" /></a>
<a href='http://techbrew.net/articles/201004/ispringscam-colorado-springs-traffic-cams-on-the-iphone/ispringscam4/' title='ispringscam(4)'><img width="150" height="150" src="http://techbrew.net/wp-content/uploads/2010/04/ispringscam4-150x150.jpg" class="attachment-thumbnail" alt="ispringscam(4)" title="ispringscam(4)" /></a>

]]></content:encoded>
			<wfw:commentRss>http://techbrew.net/articles/201004/ispringscam-colorado-springs-traffic-cams-on-the-iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Build a Simple Map Client with SOAP and Flex</title>
		<link>http://techbrew.net/articles/201003/build-a-simple-map-client-with-soap-and-flex/</link>
		<comments>http://techbrew.net/articles/201003/build-a-simple-map-client-with-soap-and-flex/#comments</comments>
		<pubDate>Tue, 23 Mar 2010 16:13:03 +0000</pubDate>
		<dc:creator>Mark Woodman</dc:creator>
				<category><![CDATA[How-To]]></category>
		<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://techbrew.net/?p=271</guid>
		<description><![CDATA[<br/>Last year I led a software project that employed a SOA architecture and a Flex UI.  The features we were able to build with FlexBuilder (now FlashBuilder) were pretty sweet and remarkably easy&#8230;  I&#8217;ve become a huge fan of Flex as a result. The new FlashBuilder 4 provides some powerful new tools for integrating with [...]]]></description>
			<content:encoded><![CDATA[<br/><p>Last year I led a software project that employed a SOA architecture and a <a href="http://www.adobe.com/products/flex/">Flex</a> UI.  The features we were able to build with FlexBuilder (now FlashBuilder) were pretty sweet and remarkably easy&#8230;  I&#8217;ve become a huge fan of Flex as a result.</p>
<p>The new <a href="http://labs.adobe.com/technologies/flashbuilder4/">FlashBuilder 4</a> provides some powerful new tools for integrating with various back-end services. Connecting to SOAP services is now, frankly, dead-simple. I&#8217;ve written two articles on this topic, both of which are now live on <a title="DevX" href="http://DevX.com">DevX.com</a>:</p>
<ul>
<li><a href="http://www.devx.com/webdev/Article/44353">Build a Simple Map Client with SOAP in Flash Builder 4, Part I</a></li>
<li><a href="http://www.devx.com/webdev/Article/44360">Create a Map Client with Web Services, Part II</a></li>
</ul>
<p>The articles come with a starter project and walk you through how to connect to a SOAP service and build a functional Map client in a relatively short amount of time.  Unfortunately there&#8217;s been some sort of a mix-up on DevX and the download links for the project aren&#8217;t working yet.  In the meantime, you can download them here:</p>
<ul>
<li>Initial Project (start with this) : <a title="terraclient_initial.fxp" href="http://sites.google.com/site/techbrewfiles/terraclient_initial.fxp">terraclient_initial.fxp</a></li>
<li>Project by the end of Part 1: <a title="terraclient_part1.fxp" href="http://sites.google.com/site/techbrewfiles/terraclient_part1.fxp">terraclient_part1.fxp</a></li>
<li>Project by the end of Part 2: <a title="terraclient_part2.fxp" href="http://sites.google.com/site/techbrewfiles/terraclient_part2.fxp">terraclient_part2.fxp</a>
<p><div id="attachment_274" class="wp-caption aligncenter" style="width: 160px"><a href="http://techbrew.net/wp-content/uploads/2010/03/figure5.png"><img class="size-thumbnail wp-image-274 " title="TerraClient" src="http://techbrew.net/wp-content/uploads/2010/03/figure5-150x150.png" alt="" width="150" height="150" /></a><p class="wp-caption-text">Flex + SOAP map client</p></div></li>
</ul>
<p>I&#8217;ll keep these downloads available until DevX fixes the problem on their end.  Sorry for the inconvenience.</p>
]]></content:encoded>
			<wfw:commentRss>http://techbrew.net/articles/201003/build-a-simple-map-client-with-soap-and-flex/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<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>ROME 1.0 Released</title>
		<link>http://techbrew.net/articles/200903/rome-1-0-released/</link>
		<comments>http://techbrew.net/articles/200903/rome-1-0-released/#comments</comments>
		<pubDate>Thu, 12 Mar 2009 02:44:33 +0000</pubDate>
		<dc:creator>Mark Woodman</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[atom]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[rome]]></category>
		<category><![CDATA[rss]]></category>

		<guid isPermaLink="false">http://techbrew.net/?p=252</guid>
		<description><![CDATA[<br/>It has been a long time coming, but the Java library for RSS and Atom utilities called ROME has finally made it to version 1.0 (changelog). Thanks to all of the contributers and the hard work on the dev team for making it possible!   New to ROME? For a quick tutorial on how to [...]]]></description>
			<content:encoded><![CDATA[<br/><p><img class="size-full wp-image-253 alignright" title="ROME" src="http://techbrew.net/wp-content/uploads/2009/03/30928904_95fa6174d5_o1.png" alt="ROME" width="182" height="125" /></p>
<p>It has been a long time coming, but the Java library for RSS and Atom utilities called <a title="ROME 1.0" href="http://wiki.java.net/bin/view/Javawsxml/Rome">ROME</a> has finally made it to <strong>version 1.0</strong> (<a title="ROME changelog" href="http://wiki.java.net/bin/view/Javawsxml/RomeChangesLog">changelog</a>). Thanks to all of the contributers and the hard work on the dev team for making it possible!  </p>
<p>New to ROME? For a quick tutorial on how to get started, check out my piece on XML.com : &#8220;<a href="http://www.xml.com/pub/a/2006/02/22/rome-parse-publish-rss-atom-feeds-java.html">ROME in a Day: Parse and Publish Feeds in Java</a>&#8220;.</p>
<p><span style="color: #551a8b; text-decoration: underline;"><br />
</span></p>
]]></content:encoded>
			<wfw:commentRss>http://techbrew.net/articles/200903/rome-1-0-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>President Obama &#8211; Lost in Translation</title>
		<link>http://techbrew.net/articles/200901/president-obama-lost-in-translation/</link>
		<comments>http://techbrew.net/articles/200901/president-obama-lost-in-translation/#comments</comments>
		<pubDate>Wed, 21 Jan 2009 00:00:19 +0000</pubDate>
		<dc:creator>Mark Woodman</dc:creator>
				<category><![CDATA[Humor]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[obama]]></category>
		<category><![CDATA[president]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[voice recognition]]></category>

		<guid isPermaLink="false">http://techbrew.net/?p=239</guid>
		<description><![CDATA[<br/>Fox News has an &#8220;Automatic Transcription&#8221; feature for its videos.  The disclaimer of &#8220;may not be 100% accurate&#8221; is understated by 95%.  Here&#8217;s the presidential oath of Barak Obama, the way their transcription software heard it: &#8220;I. &#8212; Barack Hussein Obama I solemnly swear Barack Hussein Obama do solemnly swear. That I will execute the [...]]]></description>
			<content:encoded><![CDATA[<br/><p>Fox News has an &#8220;Automatic Transcription&#8221; feature for its videos.  The disclaimer of &#8220;may not be 100% accurate&#8221; is understated by 95%.  Here&#8217;s the<a href="http://www.foxnews.com/video-search/m/21774201/presidential_oath.htm"> presidential oath of Barak Obama</a>, the way their transcription software heard it:</p>
<div id="ez-fullTranscript" class="ez-full">
<p>&#8220;I. &#8212; Barack Hussein Obama I solemnly swear Barack Hussein Obama do solemnly swear. That I will execute the office of president of the United States faithfully &#8212; execute &#8230; Get off faithfully the president the office of president and &#8212; I just &#8212; the United States &#8212; wheels. &#8212; the best of &#8212; ability and will miss my children. Preserve protect and defend the constitution of the United States. Preserve protect and defend the constitution of the United States so help you got so homey &#8212; congratulations mr.&#8221;</p>
<div id="attachment_248" class="wp-caption aligncenter" style="width: 263px"><a href="http://techbrew.net/wp-content/uploads/2009/01/lost-in-translation.jpg"><img class="size-medium wp-image-248" title="lost-in-translation" src="http://techbrew.net/wp-content/uploads/2009/01/lost-in-translation-253x300.jpg" alt="&quot;I will miss my children.&quot;" width="253" height="300" /></a><p class="wp-caption-text">&quot;I will miss my children.&quot;</p></div>
<p>Woops.  To be fair, there were two people talking at the same time, which is a nightmare for voice recognition software.  </p>
<p>But you&#8217;ve got to love phrases like &#8220;Get off faithfully the president&#8221;,  &#8221;will miss my children&#8221;, and &#8220;so help you got so homey.&#8221;   Maybe Fox News should hire out the transcription software as a writer for Saturday Night Live&#8230; it&#8217;s funnier than most of the people they&#8217;ve hired.</p></div>
]]></content:encoded>
			<wfw:commentRss>http://techbrew.net/articles/200901/president-obama-lost-in-translation/feed/</wfw:commentRss>
		<slash:comments>0</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>Free Ruby on Rails Book (limited time only)</title>
		<link>http://techbrew.net/articles/200711/free-ruby-on-rails-book-limited-time-only/</link>
		<comments>http://techbrew.net/articles/200711/free-ruby-on-rails-book-limited-time-only/#comments</comments>
		<pubDate>Thu, 29 Nov 2007 18:14:51 +0000</pubDate>
		<dc:creator>Mark Woodman</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://techbrew.net/articles/200711/free-ruby-on-rails-book-limited-time-only/</guid>
		<description><![CDATA[<br/>If you&#8217;ve been looking for a good excuse to learn Ruby on Rails, now is a great time. Sitepoint.com is giving away the full PDF of &#8220;Build Your Own Ruby on Rails Web Applications&#8221; through the end of the month of November. All you need to do is provide an email address and they&#8217;ll send [...]]]></description>
			<content:encoded><![CDATA[<br/><p><img src="http://techbrew.net/wp-content/uploads/2007/11/cover-popup1.png" alt="Rails Book" align="left" />If you&#8217;ve been looking for a good excuse to learn <a href="http://www.rubyonrails.org/">Ruby on Rails</a>, now is a great time.</p>
<p><a href="http://sitepoint.com">Sitepoint.com</a> is giving away the full PDF of &#8220;<a href="http://rails.sitepoint.com/">Build Your Own Ruby on Rails Web Applications</a>&#8221; through the end of the month of November.   All you need to do is provide an email address and they&#8217;ll send you a link to the PDF download.</p>
<p>I started reading it last night, and it seems to be oriented to people familiar with building web applications but aren&#8217;t webdev pros.  (If you&#8217;re the &#8220;just give me the API&#8221; kind of developer, this book is probably a little too verbose for you.)  For details of what is inside, you can take a peek at the <a href="http://www.sitepoint.com/books/rails1/toc.php">table of contents</a>.</p>
<h5>*Note: Free PDF offer expired: Saturday, December 01st, 2007 &#8211; 00:00:00 AM</h5>
]]></content:encoded>
			<wfw:commentRss>http://techbrew.net/articles/200711/free-ruby-on-rails-book-limited-time-only/feed/</wfw:commentRss>
		<slash:comments>1</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>Time Machine: October 2006</title>
		<link>http://techbrew.net/articles/200710/time-machine-october-2006/</link>
		<comments>http://techbrew.net/articles/200710/time-machine-october-2006/#comments</comments>
		<pubDate>Tue, 02 Oct 2007 21:43:56 +0000</pubDate>
		<dc:creator>Mark Woodman</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://techbrew.net/articles/200710/time-machine-october-2006/</guid>
		<description><![CDATA[<br/>Mike Sansone recently posted a retrospective on what he wrote last year in September. It served as a good reminder that blogging can sometimes benefit from looking at the past, not just the present. I took a look at what I wrote a year ago in October (on inkBlots), and some of it still seems [...]]]></description>
			<content:encoded><![CDATA[<br/><p><a href="http://www.converstations.com">Mike Sansone</a> recently posted a <a href="http://www.converstations.com/2007/10/remembering-sep.html">retrospective</a> on what he wrote last year in September.  It served as a good reminder that blogging can sometimes benefit from looking at the past, not just the present.</p>
<p>I took a look at what I wrote a year ago in October (on <a href="http://inkblots.markwoodman.com">inkBlots</a>), and some of it still seems pretty relevant.  You be the judge:</p>
<p><strong><a href="http://inkblots.markwoodman.com/2006/10/31/create-the-ultimate-reading-list/" rel="bookmark" title="Permanent Link to Google Reader + FeedBurner:  Create The Ultimate Reading List">Google Reader + FeedBurner:  Create The Ultimate Reading List</a></strong></p>
<p>Sometimes as a blogger you donâ€™t want to create a new entry just to report an interesting article you found. (Some people use del.icio.us links for this purpose, but I find that to be less than user-friendly.) A much nicer solution is to provide a <em>Reading List</em> of sorts, similar to the point of a blogroll, but at an item level. The ideal Reading List would directly include the content to be read, rather than just a link to it, and be published in Atom or RSS for the convenience of your audience.</p>
<p>In this article Iâ€™ll show you how to use Google Reader and FeedBurner to manage a reading list for your audience. [<a href="http://inkblots.markwoodman.com/2006/10/31/create-the-ultimate-reading-list/">Read On</a>...]</p>
<p><strong><a href="http://inkblots.markwoodman.com/2006/10/23/top-5-reasons-your-coworkers-dont-use-rss/" rel="bookmark" title="Permanent Link to Top 5 Reasons Your Coworkers Donâ€™t Use RSS">Top 5 Reasons Your Coworkers Donâ€™t Use RSS</a></strong></p>
<p><a href="http://inkblots.markwoodman.com/2006/10/23/top-5-reasons-your-coworkers-dont-use-rss/" rel="bookmark" title="Permanent Link to Top 5 Reasons Your Coworkers Donâ€™t Use RSS"></a></p>
<p>Have you discovered your otherwise-reasonably-hip coworkers donâ€™t use an RSS or Atom reader? Here are the excuses we hear the most:</p>
<p><a href="http://www.amazon.com/gp/product/B0001TOVE6?ie=UTF8&amp;tag=inkblots-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B0001TOVE6"><img src="http://images.amazon.com/images/P/B0001TOVE6.01-A3PL85D94NQDOF._AA_SCMZZZZZZZ_.jpg" align="right" border="0" /></a><img src="http://www.assoc-amazon.com/e/ir?t=inkblots-20&amp;l=as2&amp;o=1&amp;a=B0001TOVE6" style="border: medium none  ! important; margin: 0px ! important" border="0" height="1" width="1" />5)  â€œWhatâ€™s RSS?â€<br />
4)  â€œI prefer email.â€<br />
3)  â€œI use more than one computer (or) canâ€™t install anything on my work PC.â€<br />
2)  â€œI get overloaded with too much information.â€<br />
1)   â€œI used to beat up geeks like you in school.â€</p>
<p>Oh, cruel world.  Here are some ways you can help turn them around &#8230; [<a href="http://inkblots.markwoodman.com/2006/10/23/top-5-reasons-your-coworkers-dont-use-rss/">Read On</a>...]</p>
<p><strong><a href="http://inkblots.markwoodman.com/2006/10/31/is-firefox-sharing-your-feed-list-with-google/" rel="bookmark" title="Permanent Link to Is Firefox sharing your feed list with Google?">Is Firefox sharing your feed list with Google?</a></strong></p>
<p align="left">Jared Breland <a href="http://www.legroom.net/modules.php?op=modload&amp;name=News&amp;file=article&amp;sid=215">reports</a> that Firefox 2 may be (un?)intentionally sending your RSS and Atom feed subscriptions to Google, thanks to a quirk in favicon retrieval. He goes into detail about the hows and whys this may be happening, but hereâ€™s the ultimate result &#8230; [<a href="http://inkblots.markwoodman.com/2006/10/31/is-firefox-sharing-your-feed-list-with-google/">Read On</a>...]</p>
<p align="left"><strong><a href="http://inkblots.markwoodman.com/2006/10/23/pdf-pirates/" rel="bookmark" title="Permanent Link to PDF Pirates">PDF Pirates</a></strong></p>
<p align="left">It never occurred to me that PDFs would be a digital medium ripe for pirating. But hey, everybody is stealing music and software, right?</p>
<p align="left">I spotted a torrent last night of a very popular RSS book, in PDF form. I chatted with the author about itâ€¦ stealing digital books isnâ€™t something either of us have thought much about. It irritates me to know that the torrent is robbing him of royalties.  [<a href="http://inkblots.markwoodman.com/2006/10/23/pdf-pirates/">Read On</a>...]</p>
<p><strong><a href="http://inkblots.markwoodman.com/2006/10/23/save-twit/" rel="bookmark" title="Permanent Link to Save TWiT">Save TWiT</a></strong></p>
<p>&#8230; Sadly, it looks as though <a href="http://www.twit.tv/2006/10/22/no_twit_today">TWiT may be shutting down</a> for lack of interest by the participants (excluding Mr. Laporte). If you would hate to see the show shut down, drop a comment and let them Leo know TWiT shouldnâ€™t die.   [<a href="http://inkblots.markwoodman.com/2006/10/23/save-twit/">Read On</a>...]</p>
]]></content:encoded>
			<wfw:commentRss>http://techbrew.net/articles/200710/time-machine-october-2006/feed/</wfw:commentRss>
		<slash:comments>0</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>Lets Get Physical(ly Secure)</title>
		<link>http://techbrew.net/articles/200709/lets-get-physically-secure/</link>
		<comments>http://techbrew.net/articles/200709/lets-get-physically-secure/#comments</comments>
		<pubDate>Thu, 13 Sep 2007 22:45:35 +0000</pubDate>
		<dc:creator>Mark Woodman</dc:creator>
				<category><![CDATA[Humor]]></category>
		<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://techbrew.net/articles/200709/lets-get-physically-secure/</guid>
		<description><![CDATA[<br/>I used to work for a company that shall remain nameless, just in case their lawyers are reading this. We had a couple of security-related incidents that illustrated just how illusionary physical security can be in everyday companies. Here are two amusing (and true) stories with four serious lessons to be learned from them: Over [...]]]></description>
			<content:encoded><![CDATA[<br/><p>I used to work for a company that shall remain nameless, just in case their lawyers are reading this.  We had a couple of security-related incidents that illustrated just how illusionary physical security can be in everyday companies.  Here are two amusing (and true) stories with four serious lessons to be learned from them:</p>
<p><strong>Over The Top</strong></p>
<p><a href="http://www.flickr.com/photos/goopymart/1353511352/"><img src="http://techbrew.net/wp-content/uploads/2007/09/codemonkey.jpg" alt="(CC) Code Monkey by goopymart" align="right" border="0" /></a>During a particularly stressful roll-out of an important software project, a customer came on-site to supervise (read: micromanage and browbeat) the final development process.</p>
<p>After several grueling days of work, the code monkeys all trickled home late into the evening, while the customer stayed in the office at his own insistence to keep working.  He wanted a key to our server room &#8220;in case something happened,&#8221; which our IT guy wisely refused.  He could stay in the office, but the main door would lock behind him and he would have no access to our servers.   The IT guy wouldn&#8217;t budge, so eventually the customer relented (which should have alarmed us.)</p>
<p>Sure enough, when the customer was all alone later that night, something did happen: The server he was using needed a reboot. (Yep, Windows NT Server, how&#8217;d you guess?)  A reasonable person at this point would have either gone home for the evening or called the IT guy.  Customers, of course, are rarely reasonable, so he opted for Door #3:  Break into the server room and reboot it himself.</p>
<p><img src="http://techbrew.net/wp-content/uploads/2007/09/pt007121.thumbnail.jpg" alt="Drop Ceiling" align="right" />Our office space was pretty typical, with solid-core doors and reasonably good locks, so there will be no picking locks or kicking in doors in this story.   If you&#8217;re reading this at work, stop reading for a second and look up.  Do you see a paneled drop ceiling?  That&#8217;s what we had, along with the standard enclosure walls that aren&#8217;t load-bearing.  Thus, if you pop up those ceiling tiles next to the wall, there&#8217;s often a 18&#8243;-24&#8243; gap between the structural ceiling and the top of the wall.</p>
<p>Our intrepid customer stood on a chair in the hallway outside the server room, popped a ceiling tile in the grid, and crawled up over the wall in the ceiling gap, lifted out a tile in the server room, and jumped down.  He rebooted the server, replaced the tile, and walked out.   Not exactly Mission Impossible, but it got the job done.  When our livid IT guy discovered the breach in the morning (ceiling tile dust everywhere), the customer was &#8220;encouraged&#8221; by management to return home and browbeat us from a safe distance.</p>
<p><img src="http://techbrew.net/wp-content/uploads/2007/09/sjff_03_img10281.thumbnail.jpg" alt="Crusin" align="right" /><em>Lesson #1:</em>  Don&#8217;t let non-trusted personnel stay in your facility without a minder, even if you think everything is locked down.  Locks, after all, are primarily to keep honest people honest.</p>
<p><em>Lesson #2:</em>  Layered security is important.  If you&#8217;ve ever had to cut a hole in drywall, you realize that an interior wall is 9/10&#8242;s illusion and can easily be breached.  Spend the extra money to get cage racks for your servers, the kind that can be bolted to the floor and locked.</p>
<p><strong>Fire At Will</strong></p>
<p>The company was growing and we now occupied two floors of the building.  We didn&#8217;t want strangers wandering in on the floor sans receptionist, however, so a security firm was brought in to recommend and install a door code system for the employees.</p>
<p>When you got off the elevator, there were two frosted glass doors with handles that pulled outward.  These were already in place, so the security firm opted to install magnetic latches at the top of the doors.   No human bean could force the magnets apart when engaged, so that part worked just fine.  To enter, you had to enter your personal code in the keypad to the right of the doors.   <img src="http://techbrew.net/wp-content/uploads/2007/09/clarity_am_motion_sensor1.thumbnail.jpg" alt="motion to adjurn" align="right" />To exit from the inside, you simply had to approach the doors and a motion detector would disengage the magnetic locks by the time you touched the handle.  It was simple, elegant, and expensive.</p>
<p>I came back in lunch just in time for our CTO to be standing outside the newly-secured doors, rather pleased with the new setup.   He explained to me how it worked, but something didn&#8217;t sound quite right.  I asked, &#8220;How does that motion detector  on the inside work?&#8221; He explained that it works on infra-red so that not just any motion will trigger it, but only the body heat of a person.   I paused for a second, and asked if I could have a sheet of paper from his notebook.  I folded the piece lengthwise to give it some rigidity. Now for the fun part.</p>
<p><a href="http://www.flickr.com/photos/mrtwism/40371169/"><img src="http://techbrew.net/wp-content/uploads/2007/09/paper.jpg" alt="(CC) fahrenheit burn by MrTwism" align="right" border="0" /></a>I took a breath, &#8220;Can I have your permission to set this on fire?&#8221;  Amused he took out his lighter and handed that to me as well.   I lit the end of the paper and then slid it vertically between the glass doors at chest level.  I was standing outside the doors, but now the flaming end of the paper was inside the office space, right beneath the motion detector.  The heat of the flame triggered the detector, and the doors unlocked.</p>
<p>The CTO, needless to say, was p*ssed.  A flaming piece of paper defeated his $$$ security system in under 2 seconds.   The elegant solution was useless.    I didn&#8217;t hear the phone call he made to the security system, but I bet it wasn&#8217;t pretty. (In the re-telling, he remembers the flaming paper vector to be his idea.)</p>
<p>Within a week the motion sensor was removed, and a huge red &#8220;PUSH TO EXIT&#8221; button was installed to the side.  I can&#8217;t tell you how many days it took before people stopped smashing into the magnetically-locked doors and remembered to push the button first.</p>
<p><em>Lesson #3</em>:  Get a second opinion before you implement  a security system.  Have another firm (or team) evaluate the first proposal to identify potential flaws.</p>
<p><em>Lesson #4</em>:  Good security is rarely convenient.  I cursed that red button nearly every day I worked there.  Inconvenient, but much better than the motion detector for that setup.  Better still, the glass doors should have been replaced with wood or steel, one with an overlapping lip to thwart lock picking and flaming pieces of paper.  (In that case, the motion detector could have stayed.)</p>
<p>&#8212;</p>
<p>Do you have any security horror stories to tell?  I&#8217;d love to hear them.</p>
]]></content:encoded>
			<wfw:commentRss>http://techbrew.net/articles/200709/lets-get-physically-secure/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

