<?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; Opinion</title>
	<atom:link href="http://techbrew.net/articles/category/opinion/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>On Craft</title>
		<link>http://techbrew.net/articles/200801/on-craft/</link>
		<comments>http://techbrew.net/articles/200801/on-craft/#comments</comments>
		<pubDate>Mon, 07 Jan 2008 19:05:15 +0000</pubDate>
		<dc:creator>Mark Woodman</dc:creator>
				<category><![CDATA[Opinion]]></category>
		<category><![CDATA[craft]]></category>
		<category><![CDATA[design patterns]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://techbrew.net/articles/200801/on-craft/</guid>
		<description><![CDATA[<br/>Ben Abernathy writes a poignant observation about computer science and the kinds of people that come (or don&#8217;t come) out of college programs.Â  Â  The first group ditches computer science altogether, the second delights in making things work, but the third strives for something more elusive: elegance and beauty.Â  Ben is right to note that [...]]]></description>
			<content:encoded><![CDATA[<br/><p>Ben Abernathy writes a <a href="http://benabernathy.wordpress.com/2008/01/06/the-truth-about-computer-science-and-programming-for-a-living">poignant observation</a> about computer science and the kinds of people that come (or don&#8217;t come) out of college programs.Â  Â  The first group ditches computer science altogether, the second delights in making things work, but the third strives for something more elusive: elegance and beauty.Â  Ben is right to note that if you&#8217;re looking for beauty in software, you can very well end up a miserable idealist.</p>
<p>Personally, I&#8217;ve had to come to a place where I resolve to plant beautiful code wherever I can, even if it is surrounded by weeds I&#8217;m not allowed to pull.Â  Even when I fail at it, I find that the effort of striving to improve, rather than just make do, makes me a better and happier software engineer.</p>
<p>Having been in software for over a decade, I have found one easy way to spot the differences between coworkers and competitors in Group 2 (&#8220;Get it done&#8221;) and Group 3 (&#8220;Make it beautiful&#8221;): <em>Regard, or disregard, for craft.</em></p>
<p><strong>Doghouse Software</strong></p>
<p>It&#8217;s pretty obvious when you look at carpentry, masonry, or cooking which people care about their craft, and which people just &#8220;got it done.&#8221;Â  Unfortunately, craft it much easier to see in the physical space than in software.Â  Even a gorgeous GUI can hide some unspeakably gnarly code.</p>
<p>I heard <a href="http://en.wikipedia.org/wiki/Grady_Booch">Grady Booch</a> speak at Java One many years ago.Â  He said that most people build applications like they build doghouses:Â  Bang together some wood, and if the dog is mostly dry, you&#8217;re done.Â  Enterprise applications, he noted, are usually skyscrapers composed of a bunch of doghouses duct-taped together.</p>
<p>Doghouse software is built with little regard for craft.Â Â  This problem may not show up right away, but as soon as the requirements or use cases expand, the shoddy craftsmanship becomes painfully clear.Â Â  Ask anybody trying to retrofit web services on a legacy architecture, and you&#8217;ll see what I mean.</p>
<p><strong>Process and Craft</strong></p>
<p>Process, I must say, should not be confused with craft.Â  Craft should involve some process , but I&#8217;ve never seen process generate craftsmanship.Â  (I have seen beautiful code in CMM-4 shops and in startups.Â  I&#8217;ve also seen hideous crap in both.)Â  The difference invariably comes down to regard for craft by the individual.</p>
<p><strong>Questions Asked and Unasked</strong></p>
<p>&#8220;Does it work?&#8221;Â  If software is just a job, this is where a programmer stops asking questions.Â  If she cares about craft, she also asks questions like:</p>
<ul>
<li>&#8220;Can I prove it will work reliably? (It it testable?)&#8221;</li>
<li>&#8220;Is it easy to use, does it eliminate excise?Â  (Is it usable, user-friendly, intuitive?)&#8221;)</li>
<li>&#8220;Can I easily swap out visualizations? (Are there clear boundaries between model, view, and controller?)&#8221;</li>
<li>&#8220;Will it work if it becomes modestly or even insanely popular? (Is it scalable?)&#8221;</li>
<li>&#8220;Will it work if I have to add new features, or change the persistence layer, or play well in <a href="http://en.wikipedia.org/wiki/Service-oriented_architecture">SOA</a>?Â  (Is it modular, loosely-coupled, platform-agnostic, maintainable?)</li>
</ul>
<p>These questions get at the heart of true software craftsmanship: Be in the business of building products that will stand the test of time, not one-offs with zero shelf life.</p>
<p>Application-wide craftsmanship can be, as Joel Spolsky rightly <a href="http://www.joelonsoftware.com/articles/Craftsmanship.html">notes</a>, &#8220;incredibly expensive. &#8220;Â  I firmly believe, however, that individuals can improve their craft and stay on budget in most situations. I have found that improving my craft improves my productivity and the maintainability of my code.</p>
<p><strong>Go to the Source </strong></p>
<p>Source code it often a great way to tell whether a programmer cares about craft.Â Â Â  Is it clean and easy to read?Â Â  Are design patterns leveraged?Â  Was attention paid to loose coupling, encapsulation, dependency injection?Â  Are there an appropriate amount of comments?Â Â  Are complex methods broken down into simpler ones?Â  Are there unit tests?Â  Does the code, and the compiled product, look like something the programmer took pride in?Â  Or does it &#8220;just work?&#8221;</p>
<p><strong>Finding Craftsman </strong></p>
<p>My quest for interviewing new hires is not just to discern talent, but a regard for craftsmanship.Â Â  It is rare that a candidate can present source code, however.Â  I&#8217;ve found it difficult to really learn in an interview how much a person cares about the quality of his work.</p>
<p>Joel of Joel on Software uses <a href="http://www.fogcreek.com/Jobs/SummerIntern.html">summer internships</a> to find the kind of people he wants, but most companies can&#8217;t reproduce his model or, honestly, draw that level of internship talent.Â  And, lets face, it, you can&#8217;t bring in senior engineers as summer interns.</p>
<p>Can craftsmanship be discerned in an interview without having the source code? Â  If you have any suggestions, please share them in the comments below.</p>
]]></content:encoded>
			<wfw:commentRss>http://techbrew.net/articles/200801/on-craft/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Go Mobile with Mogul</title>
		<link>http://techbrew.net/articles/200711/go-mobile-with-mogul/</link>
		<comments>http://techbrew.net/articles/200711/go-mobile-with-mogul/#comments</comments>
		<pubDate>Sun, 25 Nov 2007 05:33:24 +0000</pubDate>
		<dc:creator>Mark Woodman</dc:creator>
				<category><![CDATA[Opinion]]></category>
		<category><![CDATA[htc]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[mogul]]></category>

		<guid isPermaLink="false">http://techbrew.net/articles/200711/go-mobile-with-mogul/</guid>
		<description><![CDATA[<br/>My mobile phone was getting a little long in the tooth, so I&#8217;ve been researching phones for a few months. As tempting as the iPhone is, I didn&#8217;t want to switch to AT&#38;T. A couple of weeks ago I took the plunge and bought the HTC Mogul instead. Here are the highlights that made the [...]]]></description>
			<content:encoded><![CDATA[<br/><p><iframe src="http://rcm.amazon.com/e/cm?t=techbrew-20&amp;o=1&amp;p=8&amp;l=as1&amp;asins=B000UV36KA&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr" style="width: 120px; height: 240px" marginwidth="0" marginheight="0" align="right" frameborder="0" scrolling="no"></iframe>My mobile phone was getting a little long in the tooth, so I&#8217;ve been researching phones for a few months.  As tempting as the iPhone is, I didn&#8217;t want to switch to AT&amp;T.   A couple of weeks ago I took the plunge and bought the <a href="http://www.phonescoop.com/phones/phone.php?p=1142">HTC Mogul</a> instead.</p>
<p>Here are the highlights that made the Mogul a perfect package:</p>
<ul>
<li><strong>Slide-out full keyboard</strong>.  I&#8217;m ham-fisted when it comes to tiny buttons, so having more keyboard real-estate than a Blackberry is a big win with me.</li>
<li><strong>Touch screen</strong>. You can use fingers or a stylus, the latter of which tucks into the phone shell. When you&#8217;re using IE or the Google Maps, the touch-screen functionality is indispensable.  The on-screen dialing has nice big fat virtual buttons if you don&#8217;t want to use the stylus.</li>
<li><strong>Scroll-wheel</strong>.  The wheel on the side is right where your index finger or thumb holds the phone, depending on which hand has the phone.  If you use your mouse scroll wheel on your PC, you&#8217;ll instantly know why this is such a great little feature.  It makes scrolling window panes or ripping through contact lists simply effortless.</li>
<li><strong>Wifi</strong>.  If you have wifi at home, work, or lunch, you can get a pretty good connection and completely bypass your wireless plan&#8217;s data transfer restrictions.</li>
<li><strong>Windows Mobile 6.</strong> Since the Mogul has a touch screen, you get the full WM6 functionality rather than the rather disappointing &#8220;smart phone&#8221; variant.
<ul>
<li>With Microsoft Office mobile, Internet Explorer, and Outlook, you are carrying around a portable PC. I&#8217;m no Microsoft fanboy, but they sure come in handy.</li>
<li>Outlook Express Mobile makes it really easy to tap into my Gmail account with full IMAP support.</li>
<li>WM6 also gives you lots of flexibility when it comes to skinning the UI, ringtones, etc. Since you can turn any audio file into a ringtone, gone are the days of paying to download them from your service provider.</li>
</ul>
</li>
<li><strong>Easy software development</strong>. WM6 has free <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=38C46AA8-1DD7-426F-A913-4F370A65A582&amp;displaylang=en">emulators</a> and .NET <a href="http://www.microsoft.com/downloads/details.aspx?familyid=06111a3a-a651-4745-88ef-3d48091a390b&amp;displaylang=en">SDK</a> support.   This is a much nicer development platform than many phones give you.</li>
<li>Oh, yeah, it&#8217;s also a <strong>phone</strong>!  The sound quality is solid and it supports stereo bluetooth headsets.</li>
</ul>
<p>The Mogul runs on the Alltel, Qwest and <a href="http://www.amazon.com/gp/product/B000UV36KA?ie=UTF8&amp;tag=techbrew-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B000UV36KA">Sprint</a><img src="http://www.assoc-amazon.com/e/ir?t=techbrew-20&amp;l=as2&amp;o=1&amp;a=B000UV36KA" style="border: medium none  ! important; margin: 0px ! important" border="0" height="1" width="1" /> networks, and a friend tells me that Verizon will be offering it next month as well.</p>
<p>If you&#8217;re looking for a new phone and the iPhone isn&#8217;t a good fit for you, I highly recommend this one.</p>
]]></content:encoded>
			<wfw:commentRss>http://techbrew.net/articles/200711/go-mobile-with-mogul/feed/</wfw:commentRss>
		<slash:comments>0</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>The Constructive Pessimist</title>
		<link>http://techbrew.net/articles/200709/the-constructive-pessimist/</link>
		<comments>http://techbrew.net/articles/200709/the-constructive-pessimist/#comments</comments>
		<pubDate>Wed, 26 Sep 2007 14:27:16 +0000</pubDate>
		<dc:creator>Mark Woodman</dc:creator>
				<category><![CDATA[Opinion]]></category>

		<guid isPermaLink="false">http://techbrew.net/articles/200709/the-constructive-pessimist/</guid>
		<description><![CDATA[<br/>When listening to the radio last week, I heard somebody use the phrase &#8220;constructive pessimist.&#8221; This label captures the essence of what I think makes a great software developer. It is the kind of developer I want to be and especially have on my team. As I thought this over, a model of sorts formed [...]]]></description>
			<content:encoded><![CDATA[<br/><p>When listening to the radio last week, I heard somebody use the phrase &#8220;constructive pessimist.&#8221; This label captures the essence of what I think makes a great software developer. It is the kind of developer I want to be and especially have on my team.</p>
<p>As I thought this over, a model of sorts formed in my mind that describes four different types of engineers, each with a unique reaction to the challenges of software development. I&#8217;m calling it&#8230;</p>
<h3>The Dutch Boy Model of Engineer Archetypes</h3>
<p>The notion of a &#8220;constructive pessimist&#8221; implies a <a href="http://en.wikipedia.org/wiki/Cartesian_coordinate_system#Two-dimensional_coordinate_system">cartesian coordinate</a> diagram of worker types, where each quadrant represents a unique reaction to the challenges of software development. These four engineering personality types, shown in the diagram below, typically encompass everybody on a software team.</p>
<p style="text-align: center"><img src="http://techbrew.net/wp-content/uploads/2007/09/dutchboymodel.png" alt="The Dutch Boy Model of Engineer Archetypes" /></p>
<p>The types can be summarized by looking at how each would handle the <a href="http://en.wikipedia.org/wiki/Hans_Brinker_or_the_Silver_Skates">old fable</a> of the dutch boy who encountered a leaky dike.  Upon seeing the leak:</p>
<ul>
<li> The destructive pessimist knocks you down and runs away, &#8220;We&#8217;re all going to die!&#8221;</li>
<li>The destructive optimist blocks your access to the dike, &#8220;Don&#8217;t worry about it, the leak will fix itself.&#8221;</li>
<li>The constructive optimist sticks a piece of gum in the hole, &#8220;I fixed it!&#8221;</li>
<li>The constructive pessimist sticks his finger in the hole and yells, &#8220;This won&#8217;t hold for long, go get help.&#8221;</li>
</ul>
<h3>Working with (or for) the Archetypes</h3>
<p>These types of people are particularly obvious in software projects, but you can recognize them pretty much anywhere. Here is a more detailed description of the how each person functions in the workplace:</p>
<p>When faced with a serious challenge&#8230;</p>
<p>The <strong>destructive pessimist</strong> often defaults to, &#8220;We can&#8217;t make it work so I&#8217;m not going to bother trying.&#8221; His actions that follow usually amount to sabotage of some sort. The sabotage probably isn&#8217;t technical; it may be social, political, financial, or even just a hit on morale, but the effect is the same. This guy is poison. Fire him or get him off your project. His approach may be a character flaw or just burnout on your particular project. Either way he needs to go and take any <a href="http://en.wikipedia.org/wiki/Schadenfreude">schadenfreude</a> with him.</p>
<p>The <strong>destructive optimist</strong> says, &#8220;We can make it work, but I won&#8217;t need to do any hard-core planning, designing, thinking, or testing. We&#8217;ll be positive and start coding, and we&#8217;ll do just fine.&#8221; Like the destructive pessimist, he is also an insidious influence on a team, but the effects are much more subtle. This guy is harder to get rid of, because everybody probably likes him. He may be very smart and a &#8220;good coder,&#8221; but he is an <a href="http://en.wikipedia.org/wiki/Eloi">Eloi</a> with a keyboard, unaware of the tough work required below the surface of challenging software. If you&#8217;ve heard the phrase, &#8220;Well, it worked on my machine,&#8221; it probably came from a destructive optimist. This guy will probably also refuse to document his design, comment his code, or do automated testing, because he thinks everything he does will always work just fine.</p>
<p>The destructive tendencies really come out if he is a manager or team lead: He&#8217;ll overrule requests for extra testing resources, he won&#8217;t manage scope creep in requirements, and he won&#8217;t recognize (or react to) the warning signs your project is headed for failure. This is also the guy who will throw extra people and overtime at the last minute on your failing project, optimistically thinking that <a href="http://www.followsteph.com/2007/07/26/nine-woman-cant-have-a-baby-in-one-month/">nine women can make a baby in one month</a>.</p>
<p>The <strong>constructive optimist</strong> is a fine person to have on your team, because a positive attitude and substantive work toward the goal are essential. &#8220;It will work, and I know what to do to get there.&#8221; This attitude is great, as long as they really have done the work before and know that it works from experience or solid research. The danger comes in a tendency toward &#8220;sunny day&#8221; solutions that expect everything to function normally. They don&#8217;t tend to plan for failure.</p>
<p>A team comprised solely of these guys will happily build a Web 2.0 website, play ping-pong, and attract angel investors left and right. The site will work great until the public notices and brings it to its knees. Not knowing the folks at Twitter, I can&#8217;t say whether this applies to their early days. I&#8217;ll venture to say that 80% of 3rd-party Facebook Apps have the hallmarks of a constructive optimist, however.</p>
<p><a href="http://flickr.com/photos/stevechamberlain/12924584/"><img src="http://techbrew.net/wp-content/uploads/2007/09/hansbrinker.jpg" alt="(CC) Hans Brinker by Gobbo1000" align="right" border="0" /></a>The <strong>constructive pessimist</strong> says, &#8220;It won&#8217;t work unless we make sure to do it right.&#8221; He will instinctively find weak spots, conceptual holes, and problematic requirements, then work hard to find solutions. Solid experience and the desire to find solutions in the hands of a constructive pessimist are pure gold for your project. If this guy is given either significant influence or leadership on your team &#8211; and backing by management &#8211; your chances for success cannot be higher. I should say with great emphasis that <em>this person doesn&#8217;t have to be negative or irritable</em> &#8230; they can be up-beat and still communicate the need to plan for rainy-day scenarios.</p>
<p>You expect your IT guy to be a constructive pessimist, after all. Redundant systems, fail-over support, and off-site backups are all constructive ways to plan for the worst. If your software development team thinks along the same lines, your software should be better tested, handle network irregularities, recover from errors, and be less vulnerable to malicious users.</p>
<h3>Shaping The Team</h3>
<p>You can&#8217;t always pick your team from scratch, so the chances of getting a a dream-team of constructive pessimists is unlikely. With a little work, I believe you can help any engineers become a little more constructive pessimist, however. You don&#8217;t have to change their personality, but you can encourage them to think and work more effectively. As the saying goes: &#8220;Hope for the best, but plan for the worst.&#8221;</p>
<p>I&#8217;d like to follow up this article with a second part that discusses ideas of how to do this:  <em>How do we get people in the other three quadrants to move closer to constructive pessimism?</em></p>
<p>If you have ideas or anecdotes along these lines, please leave a comment and share your experience. If you think constructive pessimism is a crock, let me know. Or if you just have some great stories of these four types of people at work, I&#8217;d love to hear about them.</p>
]]></content:encoded>
			<wfw:commentRss>http://techbrew.net/articles/200709/the-constructive-pessimist/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>RSS: The GUID Problem</title>
		<link>http://techbrew.net/articles/200709/rss-the-guid-problem/</link>
		<comments>http://techbrew.net/articles/200709/rss-the-guid-problem/#comments</comments>
		<pubDate>Sat, 08 Sep 2007 01:39:27 +0000</pubDate>
		<dc:creator>Mark Woodman</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Opinion]]></category>

		<guid isPermaLink="false">http://techbrew.net/articles/200709/rss-the-guid-problem/</guid>
		<description><![CDATA[<br/>Andy Brudtkuhl laments a common problem one encounters as a feed aggregator: It isn&#8217;t always simple to eliminate duplicates when comparing RSS items. This is even true when you&#8217;re comparing two items that are actually the same thing, but one has been republished. He has discovered that when you are trying to compare the items, [...]]]></description>
			<content:encoded><![CDATA[<br/><p><a href="http://getanewbrowser.com/2007/09/interesting-bug/">Andy Brudtkuhl</a> laments a common problem one encounters as a feed aggregator:  It isn&#8217;t always simple to eliminate duplicates when comparing RSS items.  This is even true when you&#8217;re comparing two items that are actually the same thing, but one has been republished.</p>
<p>He has discovered that when you are trying to compare the items, you can&#8217;t rely on the link alone to determine uniqueness.  Essentially: the link in an RSS item is not a guaranteed unique ID (GUID).</p>
<p><a href="http://www.flickr.com/photos/jooon/549558895/"><img src="http://techbrew.net/wp-content/uploads/2007/09/identical.jpg" alt="Identical?" align="right" border="0" /></a>In Andy&#8217;s case, he&#8217;s seeing items that originated from the same site, but are either linked to the original site (<a href="http://www.converstations.com/2007/09/discovery-along.html">http://www.converstations.com/&#8230; /discovery-along.html</a>), or have the FeedBurner link to track click-throughs: (<a href="http://feeds.feedburner.com/%7Er/Converstations/%7E3/153408787/discovery-along.html">http://feeds.feedburner.com/&#8230; /discovery-along.html</a>).</p>
<p>This is one of those tough problems with RSS that the <a href="http://cyber.law.harvard.edu/rss/rss.html#ltguidgtSubelementOfLtitemgt">optional GUID element</a> was supposed to solve.  If the GUID element is present in the item &#8211; as is properly formed &#8211; you should be able to rely on that regardless of link variation.</p>
<p>Unfortunately, the RSS GUIDs are rarely used correctly among publishers, making it fairly unreliable.  Mark Pilgrim <a href="http://www.xml.com/pub/a/2004/08/18/pilgrim.html">discussed this</a> back in 2004:</p>
<blockquote>
<ol>
<li>Older RSS versions don&#8217;t have it, and even in the latest version, it&#8217;s still optional.  So very few feeds actually have it.</li>
<li>The RSS spec doesn&#8217;t give clear guidance on how to make a unique identifier, or how unique it really needs to be, or why you would bother. So many publishers generate useless IDs.</li>
<li>It&#8217;s difficult to compare them, because the data type of the <code>&lt;guid&gt;</code> element isn&#8217;t stable. If a certain attribute is present and contains a certain value, then the element must be treated as a string. But in other cases, the element must be treated as a URL. As we&#8217;ll see in a minute, these data types have different rules for equality, so comparing GUIDs is more difficult than it sounds.</li>
</ol>
</blockquote>
<p>Pilgrim and the folks working on Atom came to the conclusion that a unique id should be on every item &#8211; <code>atom:id </code>- and that it must be formed according to a spec that ensures canonical uniqueness.  If you have an Atom feed to work with, this is a reliable mechanism.</p>
<p>For better or worse, however, the adoption of Atom has been slow and the market still overwhelmingly uses RSS.  For aggregators like Andy (or any feed reader) who have a mixed bag of feeds, they are forced to kludge their way to uniqueness.</p>
<p><strong>Update</strong>:Â  James Holderness reminded me of his excellent discussion on this issue from last year:Â  <a href="http://www.xn--8ws00zhy3a.com/blog/2006/08/rss-dup-detection">RSS Duplicate Detection</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://techbrew.net/articles/200709/rss-the-guid-problem/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Digg Begging: Tacky or Savvy?</title>
		<link>http://techbrew.net/articles/200708/digg-begging-tacky-or-savvy/</link>
		<comments>http://techbrew.net/articles/200708/digg-begging-tacky-or-savvy/#comments</comments>
		<pubDate>Wed, 29 Aug 2007 20:57:33 +0000</pubDate>
		<dc:creator>Mark Woodman</dc:creator>
				<category><![CDATA[How-To]]></category>
		<category><![CDATA[Opinion]]></category>

		<guid isPermaLink="false">http://techbrew.net/articles/200708/digg-begging-tacky-or-savvy/</guid>
		<description><![CDATA[<br/>Getting on Digg is really quite easy for the common blogger. Here&#8217;s how in one easy step: Get a job writing for Engadget, Gizmodo, Arstechnica, Mashable, or TechCrunch. What, did that sound cynical? Check the latest top stories on Digg and where they came from. That&#8217;s where you need to be to easily top Digg. [...]]]></description>
			<content:encoded><![CDATA[<br/><p>Getting on <a href="http://digg.com">Digg</a> is really quite easy for the common blogger.  Here&#8217;s how in one easy step:</p>
<ul>
<li>Get a job writing for <a href="http://engadget.com">Engadget</a>, <a href="http://gizmodo.com">Gizmodo</a>, <a href="http://arstechnica.com">Arstechnica</a>, <a href="http://mashup.com">Mashable</a>, or <a href="http://techcrunch.com">TechCrunch</a>.</li>
</ul>
<p>What, did that sound cynical?  Check the <a href="http://digg.com/news/technology/popular/24hours">latest top stories</a> on Digg and where they came from.   That&#8217;s where you need to be to easily top Digg.</p>
<p>If a job change isn&#8217;t in your immediate future, you are stuck with other more complicated options, such as:</p>
<ol>
<li>Get noticed by one of the above sites.</li>
<li>Get noticed by an A-lister.</li>
<li>Get noticed by a top Digger.<br />
(or)</li>
<li>Beg all your friends for a digg and hope that 1, 2, or 3 happens a bit belatedly.</li>
</ol>
<p><img src="http://techbrew.net/wp-content/uploads/2007/08/digg-ready1.gif" alt="digg-ready1.gif" align="right" />So the questions is whether or not &#8216;Digg Begging&#8217; is, as one of my friends <a href="http://twitter.com/Brandan/statuses/235470742">put it</a>, &#8220;tacky or just good marketing?&#8221;  Is asking your friends for diggs in the same realm as <a href="http://www.guardian.co.uk/technology/2007/aug/15/wikipedia.corporateaccountability">editing your own Wikipedia entry</a>, if you have one?  (Of course, if you have one, you probably don&#8217;t have to ask. )</p>
<p>Because the Internet is just like Middle School, the best way to solve this dilemma is to enlist your friends to digg beg on your behalf.  Like the loyal Christian who woos <a href="http://en.wikipedia.org/wiki/Cyrano_de_Bergerac_%28play%29">Roxanne</a> on your behalf, they stand between you and the sting of rejection and accusations of vain self-promotion.   Parry and riposte!</p>
<p>Proxy beggar or no, is asking for diggs just like passing out fliers to your garage band, hoping for the big time?  Or is it uploading your picture to Hot or Not, hoping for lots of MySpace friends?   What do you think?</p>
<p>PS: Would you mind <a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Ftechbrew.net%2Farticles%2F200708%2Fdigg-begging-tacky-or-savvy%2F&amp;title=Digg+Begging%3A+Tacky+or+Savvy%3F">digging this story</a> for me?  I mean, my <em>friend</em> wants to know if you&#8217;d <a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Ftechbrew.net%2Farticles%2F200708%2Fdigg-begging-tacky-or-savvy%2F&amp;title=Digg+Begging%3A+Tacky+or+Savvy%3F">digg this story</a> for him, since his account is frozen.  Yeah, that&#8217;s it.</p>
]]></content:encoded>
			<wfw:commentRss>http://techbrew.net/articles/200708/digg-begging-tacky-or-savvy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twitter: The New MySpace</title>
		<link>http://techbrew.net/articles/200708/twitter-the-new-myspace/</link>
		<comments>http://techbrew.net/articles/200708/twitter-the-new-myspace/#comments</comments>
		<pubDate>Thu, 23 Aug 2007 02:09:32 +0000</pubDate>
		<dc:creator>Mark Woodman</dc:creator>
				<category><![CDATA[Opinion]]></category>

		<guid isPermaLink="false">http://techbrew.net/articles/200708/twitter-the-new-myspace/</guid>
		<description><![CDATA[<br/>I remember the early days of Twitter, when the people you followed actually meant something to you. When your &#8220;followers&#8221; were really your friends. When it was appropriate to Tweet if anybody wanted to grab lunch. Early adopters hoped that it would become popular so that everybody could be connected like we were in the [...]]]></description>
			<content:encoded><![CDATA[<br/><p>I remember the early days of Twitter, when the people you followed actually meant something to you.  When your &#8220;followers&#8221; were really your friends.  When it was appropriate to Tweet if anybody wanted to grab lunch.  Early adopters hoped that it would become popular so that everybody could be connected like we were in the beginning.</p>
<p>The problem with social networks, unfortunately, is that sometimes the illusion of appearing &#8220;social&#8221; is more important than the real value of human connections.  The number of people following you became a badge of honor, if not legitimacy.  The MySpacing of Twitter began early in this regard.</p>
<p><img src="http://techbrew.net/wp-content/uploads/2007/08/salesman1.thumbnail.jpg" alt="salesman1.jpg" align="right" />Some kind of tide has turned lately, making things even worse.  I don&#8217;t know what it is, but I&#8217;m seeing more and more people on Twitter who are only interested in using it as a marketing channel.  They follow you in the hopes you follow them, and thus hear their pitches for quick bucks, diggs, or soft porn.</p>
<p>Thanks, Twitterweb, but no thanks.  I&#8217;ll follow people I know or respect.  No more automatic reciprocation.  When I get a new follower on Twitter, the first thing I do is read all of their recent tweets.  I&#8217;ll follow only if I see something worth following; no automatic friend-adding here.</p>
<p>Sadly, I see that I&#8217;m in the minority.  I don&#8217;t think Twitter will recover from this shift to cheap self-advertising.  It has gone from personal to pedestrian.   All Biz Stone needs to do now is add the ability to play music whenever somebody views your profile, and the transformation into MySpacery will be complete.</p>
]]></content:encoded>
			<wfw:commentRss>http://techbrew.net/articles/200708/twitter-the-new-myspace/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>Mobile Maps Shootout: Google versus Microsoft</title>
		<link>http://techbrew.net/articles/200706/mobile-maps-shootout/</link>
		<comments>http://techbrew.net/articles/200706/mobile-maps-shootout/#comments</comments>
		<pubDate>Mon, 25 Jun 2007 15:23:20 +0000</pubDate>
		<dc:creator>Mark Woodman</dc:creator>
				<category><![CDATA[411]]></category>
		<category><![CDATA[Opinion]]></category>

		<guid isPermaLink="false">http://techbrew.net/articles/200706/mobile-maps-shootout/</guid>
		<description><![CDATA[<br/>The next big platform for app development is likely going to be mobile devices. Unlimited data plans, GPS functionality, and reasonably-good processing power make such devices a ripe target for commercial and open-source goodies.Google and Microsoft have both recently released search+map applications for the Windows Mobile platform. Microsoft has introduced Live Search Mobile and Google [...]]]></description>
			<content:encoded><![CDATA[<br/><p><img align="right" src="http://i197.photobucket.com/albums/aa177/mwoodman/mobilemaps/th_invesco_road.png" />The next big platform for app development is likely going to be mobile devices. Unlimited data plans, GPS functionality, and reasonably-good processing power make such devices a ripe target for commercial and open-source goodies.Google and Microsoft have both recently released search+map applications for the Windows Mobile platform. Microsoft has introduced <a href="http://www.microsoft.com/windowsmobile/livesearch/default.mspx">Live Search Mobile</a> and Google is offering <a href="http://google.com/gmm/index.html">Google Maps Mobile</a>. (GMM is also available for Palm and Blackberry.)</p>
<p>I own a <a href="http://www.phonescoop.com/phones/phone.php?p=808">HTC Apache PocketPC</a> and a <a href="http://www.pharosgps.com/news/press/20060309.htm">Pharos iGPS locator</a>, so I decided to take both apps out for test drive. I tested them on both my phone and the <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=C62D54A5-183A-4A1E-A7E2-CC500ED1F19A&#038;displaylang=en">Microsoft Device Emulator</a> for Windows Mobile. While each application offered similar functionality and a couple of unique features, there was one aspect in particular that made one of them the clear winner.</p>
<p>Here are the results:</p>
<p><span id="more-131"></span></p>
<p><strong>Platform Overview</strong></p>
<p><img align="right" alt="PPC6700" id="image132" src="http://techbrew.net/wp-content/uploads/2007/06/h15341.jpg" />The phone I used is a standard PocketPC with a touchscreen, stylus, and slide-out keyboard. It runs Windows Mobile 5, a miniature version of Windows with mini versions of Office applications and Internet Explorer. It is wifi- and bluetooth capable as well. (Taking pictures of the screen in action wasn&#8217;t practical, so screenshots in this review were done with the Device Emulator.)</p>
<p><strong>Download and Installation</strong></p>
<p>A quick download from <a href="http://techbrew.net/ls.windowsmobile.com">ls.windowsmobile.com</a> gets you the CAB installer for Live Search (LS). The installer is 418KB, and installs with a single prompt for location. Once running, you must accept a EULA and wait several seconds for the app to load. This seems to be a first-time hit, because subsequent runs don&#8217;t take nearly as long.</p>
<p>Google Maps Mobile can be had at <a href="http://techbrew.net/google.com/gmm">google.com/gmm</a>, with the CAB installer downloading at 376KB. The install also takes a single prompt, with a EULA for the first run. You also must click through a text splash every time you launch GMM, which admonishes you to not use it while driving. Ahem.</p>
<p>Google gets kudos for a smaller URL (the less typing to get a mobile app the better) and points for a smaller download (size still matters on limited-memory devices), but the &#8216;Don&#8217;t Drive While Mapping&#8217; nag every time gets old.</p>
<p style="font-weight: bold">Map Interface and Usability</p>
<p align="left"><a target="_blank" href="http://i197.photobucket.com/albums/aa177/mwoodman/mobilemaps/invesco_road.png"><img align="right" alt="Road View" title="Road View" src="http://i197.photobucket.com/albums/aa177/mwoodman/mobilemaps/th_invesco_road.png" /></a> The mapping functionality of both applications are similar at first blush, but after a little use the differences become more obvious.</p>
<p align="left">Both apps allow you to drag-move the maps if you have a touchscreen device. LS uses the center pad button to zoom, while GMM gives you on-screen zoom controls on the lower left. (Click the thumbnail on the right to see a side-by-side comparison of the two map views.)</p>
<p align="left">Each app has a <a target="_blank" href="http://i197.photobucket.com/albums/aa177/mwoodman/mobilemaps/invesco_road.png">Road View</a> to see the street layout of an area. These are functionally equivalent, but I found the Google version to be easier in bright sunlight, because the colors have more contrast.</p>
<p>If you&#8217;re in an area where traffic data is available, you can get traffic overlays for both applications. This colors major roadways with red, yellow, or green according to traffic speeds. Updates are pulled by both applications on a regular basis, about 2 minutes.</p>
<p>From here, the usability of the applications begins to diverge.</p>
<p><a target="_blank" href="http://i197.photobucket.com/albums/aa177/mwoodman/mobilemaps/invesco_sat.png"><img align="right" alt="Satellite Map View" title="Satellite Map View" src="http://i197.photobucket.com/albums/aa177/mwoodman/mobilemaps/th_invesco_sat.png" /></a>Microsoft&#8217;s <a target="_blank" href="http://i197.photobucket.com/albums/aa177/mwoodman/mobilemaps/invesco_sat.png">Arial View</a> provides a photograph view with overlaid street names. I have always found this perspective to be a compelling one, but the street names are essential to keep your bearings. Google&#8217;s <a target="_blank" href="http://i197.photobucket.com/albums/aa177/mwoodman/mobilemaps/invesco_sat.png">Satellite View</a> is photographic as well, but the street names are glaringly absent, making the view useless for most uses. Normal Google Maps have a hybrid view, so the omission in GMM is as puzzling as it is annoying.</p>
<p>When you have used search functionality to put a marker on the map, I like the way that Live Search displays business telephone numbers right there. GMM makes you click the marker to see the phone number. One other nice thing that only LS offers is the ability to name a given location (like &#8216;work&#8217; or &#8216;home&#8217;) for easy reference later. Granted, you shouldn&#8217;t use these applications while driving, but if you&#8217;re trying to find something while at a red light, the fewer clicks the better.</p>
<p>Both applications are both GPS aware, allowing you to center a map at your current location. GMM puts a small blue ball on the map to represent your location, whereas LS has a directional triangle to show location and orientation. The triangle is easier to see, and the orientation aspect is really nice. Unfortunately, I experienced a number of hiccups with LS when it came to location updates, so it was ultimately much less reliable than the GMM functionality.</p>
<p>On the flip side, LS takes little advantage of the touchscreen capabilities of the PocketPC. While GMM lets you click-and-hold anywhere to bring up a context menu for handy commands, Live Search makes you go through the bottom menu bar for nearly everything. This essentially forces you to use the stylus or use the directional pad as a stand-in for arrow keys.</p>
<p>One last factor in the area of usability: GMM offers a number of keyboard shortcuts (see the help file for details) to perform common tasks. LS offers neither a help file nor any shortcuts that I could find.</p>
<p><strong>Search Capabilities </strong></p>
<p><a title="Search" target="_blank" href="http://i197.photobucket.com/albums/aa177/mwoodman/mobilemaps/search.png"><img align="right" src="http://i197.photobucket.com/albums/aa177/mwoodman/mobilemaps/th_search.png" /></a>Both Live Search and Google Mobile Maps let you search (<a target="_blank" href="http://i197.photobucket.com/albums/aa177/mwoodman/mobilemaps/search.png">screenshot</a>) for things near your location. This lets you quickly find the closest hotel, restaurant, museum, or whatever interests you.</p>
<p>Live Search lets you search by either drilling down through business categories or using free text, whereas GMM only offers a free text search. I didn&#8217;t think I&#8217;d care much about LS&#8217;s category feature, but I found it really nice when looking for restaurant ideas.</p>
<p>Once you&#8217;ve found something, both Google Maps Mobile and Live Search give you options to save it to your contacts (address book), see it on a map, get directions to it, send the info to someone via SMS, or just call the phone number outright. LS lets you tap a phone number to call it, while GMM makes you use the options menu.</p>
<p><strong>Routing (Getting Directions)</strong></p>
<p><a target="_blank" title="Routing" href="http://i197.photobucket.com/albums/aa177/mwoodman/mobilemaps/directions1.png"><img align="right" src="http://i197.photobucket.com/albums/aa177/mwoodman/mobilemaps/th_directions1.png" /></a>You can use either app to ask for directions to a location, but the way this is handled is perhaps the biggest divergence between the two.</p>
<p>Live Search gives you a series of text directions, each of which can be clicked to see it on the map. The route is overlaid on your map, with each waypoint marked as a tiny circle. The circles are click-able, but you&#8217;ll need a stylus and a steady hand to actually hit them.</p>
<p>Google Maps Mobile shows the directions on the map with a callout for each step. You are given forward and back buttons on-screen that take you through the waypoints. Each waypoint is a large diamond, making them really easy to spot or select.</p>
<p>Here are screenshots (<a target="_blank" title="Routing" href="http://i197.photobucket.com/albums/aa177/mwoodman/mobilemaps/directions1.png">1</a>, <a target="_blank" href="http://i197.photobucket.com/albums/aa177/mwoodman/mobilemaps/directions2.png">2</a>) of the two apps side by side.</p>
<p><a title="Routing" target="_blank" href="http://i197.photobucket.com/albums/aa177/mwoodman/mobilemaps/directions2.png"><img align="right" src="http://i197.photobucket.com/albums/aa177/mwoodman/mobilemaps/th_directions2.png" /></a>After using both of the approaches, I found myself wishing that each app had some of the functionality of the other. I like the list of directions when I&#8217;m in a familiar area. (&#8220;Turn left on Academy for 2 miles, Turn right on Platte for 1 mile&#8221;) But the turn-by-turn laid on the map is also really handy when you don&#8217;t have a good mental picture of the intersections. This distinction alone is enough to make me choose one app over the other, based on the use case for needing directions.</p>
<p>GMM routing has a killer feature that bears mention. As stated earlier, it is much better at utilization of the touchscreen than LS. Accordingly, you can tap anywhere on a map in GMM and mark a starting point and end point It will then calculate and display the best route. This is simply perfect when you don&#8217;t have the time to key in an exact address.</p>
<p><strong>Performance Considerations</strong></p>
<p>A video is worth a thousand pictures, so I did a quick <a href="http://www.youtube.com/view_play_list?p=DB072C5847F16E17">video demo of each app</a> going through the paces. The goal of the demo was to start at Invesco Field in Denver (formerly Mile High Statdium) and find a nearby famously-named night club. (Disclaimer: I&#8217;ve never been to either.) The videos were originally intended to show you how each works, but they also illustrated just how much slower Live Search was when performing the same tasks.</p>
<p align="center"><p><a href="http://techbrew.net/articles/200706/mobile-maps-shootout/"><em>Click here to view the embedded video.</em></a></p><br />
If you can&#8217;t see the video above, <a href="http://youtube.com/watch?v=q4aqpoglgvs">click here for a video demo</a> of Google Maps Mobile</p>
<p align="center"><p><a href="http://techbrew.net/articles/200706/mobile-maps-shootout/"><em>Click here to view the embedded video.</em></a></p><br />
If you can&#8217;t see the video above, <a href="http://youtube.com/watch?v=Lbh8B0gM56A">click here for a video demo</a> of Microsoft Live Search Mobile</p>
<p align="left">If you&#8217;ll grant a fudge factor for missed clicks or hesitations on my part, you&#8217;ll see that GMM is still considerably faster than LS to accomplish the same basic task flow. The entire sequence took about 2 minutes with Google Mobile Maps, but it took 3 minutes to finish with Live Search. Since the average red light cycle is 2 minutes in U.S. cities, that extra minute feels like a lifetime. Because we wouldn&#8217;t use these while driving. Ahem.</p>
<p align="left"><strong>The Votes are In</strong></p>
<p align="left">Okay, technically only one vote is in: mine. Here&#8217;s a recap of the comparison:</p>
<ul>
<li>
<div align="left">Both apps had an easy install, although Google&#8217;s was slightly smaller.</div>
</li>
<li>
<div align="left">Highlights of Live Search are the arial view, categorical searching, GPS orientation on maps, and name-able locations.</div>
</li>
<li>
<div align="left">Google Maps Mobile strengths are touchscreen integration, on-map routing, and more reliable GPS integration.</div>
</li>
<li>
<div align="left">Live Search performance is noticably slower, in everything from zoom animation to map dragging.</div>
</li>
</ul>
<p align="left">The verdict: If you don&#8217;t absolutely need the satellite view or categorical searching, <strong><em>Google Maps Mobile is the clear winner</em></strong> by a long shot. A better GUI and faster application performance prove to be indispensible when you&#8217;re in a hurry (or have a limited data plan.)</p>
<p align="left">My hope is that the next version of each app takes careful notes from their competition. GMM needs street overlays on the satellite map, GPS orientation, and a list view of routing directions. LS needs more on-screen controls, better on-map routing, and it needs to hurry the heck up.</p>
<p align="left">If you have any observations or rants about these two apps, drop a comment below. I&#8217;d love to hear about your experience.</p>
]]></content:encoded>
			<wfw:commentRss>http://techbrew.net/articles/200706/mobile-maps-shootout/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ajax Maps Compared</title>
		<link>http://techbrew.net/articles/200706/ajax-maps-compared/</link>
		<comments>http://techbrew.net/articles/200706/ajax-maps-compared/#comments</comments>
		<pubDate>Wed, 13 Jun 2007 15:24:22 +0000</pubDate>
		<dc:creator>Mark Woodman</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Opinion]]></category>

		<guid isPermaLink="false">http://techbrew.net/articles/200706/ajax-maps-compared/</guid>
		<description><![CDATA[<br/>RockStarApps has put together a handy &#8220;Ajax Maps Bake-Off&#8221; which lets you see how the biggest Ajax-driven maps compare side-by-side. The page loads a Microsoft, Google, and Yahoo map side-by-side, and keeps them synchronized for easy comparison. The performance is &#8211; understandably &#8211; a little slow to keep the three maps sync&#8217;d, but it is [...]]]></description>
			<content:encoded><![CDATA[<br/><p><a href="http://www.rockstarapps.com">RockStarApps</a> has put together a handy &#8220;<a href="http://www.rockstarapps.com/samples/map-compare/">Ajax Maps Bake-Off</a>&#8221; which lets you see how the biggest Ajax-driven maps compare side-by-side.  The page loads a Microsoft, Google, and Yahoo map side-by-side, and keeps them synchronized for easy comparison.</p>
<div style="text-align: center"><img id="image124" alt="Ajax Maps" src="http://techbrew.net/wp-content/uploads/2007/06/maps.png" /></div>
<p>The performance is &#8211; understandably &#8211; a little slow to keep the three maps sync&#8217;d, but it is nice to have an apples-to-apples view of how each system handles the little details.</p>
<ul>
<li>I find the rendering of Microsoft&#8217;s Live Maps to be superior to either Google or Yahoo.  The MS maps are more like one you&#8217;d have in your car&#8217;s glove box, with nice terrain details like the locations of streams and creeks.</li>
<li>Yahoo Maps has better color contrast than Microsoft or Google, which is important if you&#8217;re using a mobile device with a small screen.</li>
<li>Microsoft and Yahoo display directional information on one-way streets, a must-have that Google has omitted.  (I would much rather know whether the street I&#8217;m approaching is one-way than see <a href="http://boingboing.net/2007/05/30/google_maps_is_spyin.html">somebody&#8217;s cat</a> in a nearby window.)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://techbrew.net/articles/200706/ajax-maps-compared/feed/</wfw:commentRss>
		<slash:comments>0</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>
		<item>
		<title>SplashCast and the Podcast Distribution Problem</title>
		<link>http://techbrew.net/articles/200705/splashcast-and-the-podcast-distribution-problem/</link>
		<comments>http://techbrew.net/articles/200705/splashcast-and-the-podcast-distribution-problem/#comments</comments>
		<pubDate>Mon, 07 May 2007 03:36:56 +0000</pubDate>
		<dc:creator>Mark Woodman</dc:creator>
				<category><![CDATA[Feeds]]></category>
		<category><![CDATA[Opinion]]></category>

		<guid isPermaLink="false">http://techbrew.net/articles/200705/splashcast-and-the-podcast-distribution-problem/</guid>
		<description><![CDATA[<br/>Last week, SplashCast released a product called &#8220;MyPodcastNetwork&#8221; that allows anyone to effectively remix podcasts via RSS in a browser-based media player. The original podcasts are transcoded into Flash to allow for immediate playback. Some hailed the player as a great innovation, others as the height of piracy. Marshall Kirckpatrick responded with refactors aimed at [...]]]></description>
			<content:encoded><![CDATA[<br/><p><a title="nazimul razack's briana" href="http://www.flickr.com/photos/44719229@N00/195338860/"><img border="0" align="left" id="image106" alt="195338860_3467347f62.jpg" style="margin-right: 5px" src="http://techbrew.net/wp-content/uploads/2007/05/195338860_3467347f62.jpg" /></a>Last week, SplashCast <a href="http://splashcastmedia.com/rssannounce">released</a> a product called &#8220;MyPodcastNetwork&#8221; that allows anyone to effectively remix podcasts via RSS in a browser-based media player.  The original podcasts are transcoded into Flash to allow for immediate playback.</p>
<p>Some hailed the player as a great innovation, others as the height of piracy. Marshall Kirckpatrick <a href="http://splashcastmedia.com/more-changes-today">responded</a> with refactors aimed at making the attribution and source more obvious, ensuring that hit counts are passed back to the content provider, and so on.</p>
<p>The real nut to crack, however, isn&#8217;t whether or not such a product can be designed to please everyone, but whether the product can leverage a machine-to-machine opt-out mechanism.  (As it stands, you have to contact SplashCast to be removed from the list of transcode-able podcasts.)</p>
<p>What RSS and Atom need is a means to examine the copyright and distribution statement within the RSS feed itself.  The copyright element in the feed doesn&#8217;t help, because it is free-form.  It may contain a name, or a name and a year, or &#8220;All rights reserved&#8221; or &#8220;All your base belong to us.&#8221;  It simply isn&#8217;t usable at a semantic level.</p>
<p><strong>The Currency of Counts</strong></p>
<p><img align="right" id="image104" style="margin-left: 5px" alt="somerights201.png" src="http://techbrew.net/wp-content/uploads/2007/05/somerights201.png" />The next logical step would be to reach for a Creative Commons license.  But when it comes to rich media, what is really covered therein?  Does &#8220;distribution&#8221; include offline media like, say, a DVD compilation or a classroom handout?   (As it stands, yes.)  What about transcoding and re-hosting, like what SplashCast does?  Does transcoding count as &#8220;modification&#8221; or &#8220;derivative&#8221;? Creative Commons licenses are too course-grained;  They simply don&#8217;t delve deep enough into the particulars that people need.</p>
<p>For most podcasters, the real asset to protect isn&#8217;t the media file, but the hit counts on that media.   They need to know how many subscribers they have.  For much of the podcasting world, popularity is the only payout.  If their media is copied and rehosted elsewhere, they instantly lose touch with their audience.</p>
<p>Although the SplashCast debate is fresh, the inadequacies of Creative Commons is not.  <a href="http://www.blogarithms.com/index.php/archives/2005/02/26/a-creative-commons-dilemma/">This discussion</a> from 2005 ran up against the same problem:  Allowing other to distribute your media without fine-grained guidelines can be prohibitive.</p>
<p><strong>A Need for Podcaster Digital Rights </strong></p>
<p>Simply adding an enclosure to RSS isn&#8217;t enough for podcasting in today&#8217;s world.  We need a standards-based approach to fine-grained, a-la-cart licensing and distribution rights management.  It needs to have semantic meaning so parsers and readers can understand it.  It needs to cover all of the aspects of Creative Commons, and then some:</p>
<ul>
<li>Hit-count reporting</li>
<li>Rehosting</li>
<li>Remixing</li>
<li>Offline distribution</li>
<li>Transcoding</li>
<li>Modification to length</li>
<li>Modification to quality</li>
<li>Modification to content</li>
<li>Removal of advertising</li>
<li>&#8230; and so on.</li>
</ul>
<p>The delicious irony of the situation is this:  While the public is decrying traditional media for using Digital Rights Management, the new media is suddenly discovering a need for it.</p>
]]></content:encoded>
			<wfw:commentRss>http://techbrew.net/articles/200705/splashcast-and-the-podcast-distribution-problem/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

