<?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>Lambert on Development &#187; Disconnected rants</title>
	<atom:link href="http://blog.componentoriented.com/category/disconnected-rants/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.componentoriented.com</link>
	<description>My thoughts on software development</description>
	<lastBuildDate>Fri, 30 Jul 2010 12:25:18 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="http://superfeedr.com/hubbub"/>		<item>
		<title>Thanks for the help</title>
		<link>http://blog.componentoriented.com/2010/07/thanks-for-the-help/</link>
		<comments>http://blog.componentoriented.com/2010/07/thanks-for-the-help/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 19:11:50 +0000</pubDate>
		<dc:creator>dlambert</dc:creator>
				<category><![CDATA[Disconnected rants]]></category>
		<category><![CDATA[IE8]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Microsoft Office]]></category>

		<guid isPermaLink="false">http://blog.componentoriented.com/?p=1001</guid>
		<description><![CDATA[If you&#8217;re hypothetically considering changing the interface of your application so completely that users can&#8217;t find the stuff they need in the places where they&#8217;re used to finding it (Office, I&#8217;m looking at you&#8230;), you might be expected to have your users need to use &#8220;help&#8221; a bit more than normal.
And if you expect your [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re hypothetically considering changing the interface of your application so completely that users can&#8217;t find the stuff they need in the places where they&#8217;re used to finding it (Office, I&#8217;m looking at you&#8230;), you might be expected to have your users need to use &#8220;help&#8221; a bit more than normal.</p>
<p>And if you expect your users to need to use your help system, and if you choose to make that help system an internet experience, and if that internet experience is going to use a browser that&#8217;s had so many restrictions placed upon it in the name of security that you can&#8217;t sneeze without seeing some sort of exception (IE, I&#8217;m looking at you&#8230;.), you should probably consider the likelihood that your users (already frustrated because they can no longer accomplish something that they used to be able to accomplish on their own) are going to encounter a help system that looks something like this:</p>
<p><a href="http://blog.componentoriented.com/wp-content/uploads/2010/07/ThanksForTheHelp.jpg"><img class="aligncenter size-full wp-image-1002" title="ThanksForTheHelp" src="http://blog.componentoriented.com/wp-content/uploads/2010/07/ThanksForTheHelp.jpg" alt="" width="437" height="588" /></a></p>
<p>Thanks a lot, <a href="http://blog.componentoriented.com/tag/microsoft/">Microsoft</a>.</p>
<p><map name='google_ad_map_1001_8cfd796512ec059a'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/1001?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_1001_8cfd796512ec059a' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=1001&amp;url= http%3A%2F%2Fblog.componentoriented.com%2F2010%2F07%2Fthanks-for-the-help%2F' /></p><p align="left"><a class="tt" href="http://twitter.com/home/?status=Thanks+for+the+help+http://7e5oc.th8.us" title="Post to Twitter"><img class="nothumb" src="http://blog.componentoriented.com/wp-content/plugins/tweet-this/icons/de/tt-twitter-micro4-de.png" alt="Post to Twitter" /></a> <a class="tt" href="http://twitter.com/home/?status=Thanks+for+the+help+http://7e5oc.th8.us" title="Post to Twitter">Tweet This Post</a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.componentoriented.com/2010/07/thanks-for-the-help/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Have we really fallen this far?</title>
		<link>http://blog.componentoriented.com/2010/06/have-we-really-fallen-this-far/</link>
		<comments>http://blog.componentoriented.com/2010/06/have-we-really-fallen-this-far/#comments</comments>
		<pubDate>Fri, 11 Jun 2010 11:30:55 +0000</pubDate>
		<dc:creator>dlambert</dc:creator>
				<category><![CDATA[Disconnected rants]]></category>
		<category><![CDATA[author]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[Wall Street Journal]]></category>
		<category><![CDATA[writer]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://blog.componentoriented.com/?p=962</guid>
		<description><![CDATA[I am a grammar zealot.
It&#8217;s entirely my Mother&#8217;s fault; she drilled proper grammar into my skull from an early age, and I now cannot help but notice the absolutely atrocious spelling, grammar, and punctuation that permeates our culture.
Have you ever watched a history documentary where they read some crusty, tattered old manuscript that some Civil [...]]]></description>
			<content:encoded><![CDATA[<p>I am a grammar zealot.</p>
<p>It&#8217;s entirely my Mother&#8217;s fault; she drilled proper grammar into my skull from an early age, and I now cannot help but notice the absolutely atrocious spelling, grammar, and punctuation that permeates our culture.</p>
<p>Have you ever watched a history documentary where they read some crusty, tattered old manuscript that some Civil War soldier left behind?  Not ol&#8217; Honest Abe, or even Grant or Sherman &#8212; just some guy who wrote to his folks or his girl.  These everyday soldiers invariably sound like Shakespeare compared to the IM-speaking crackberry addicts we meet today.</p>
<p>But surely, even if the everyday American has given up on proper grammar, our journalists are still upholding these standards.  Surely, they manage to set a positive example for all of us: showing us the error of our ways and offering their own writing as a shining sample of excellence, and surely among all of these highly-trained journalists, the writers for the Wall Street Journal would be right at the top.</p>
<p>Surely, this must be true.  Right?</p>
<p>Sadly, no.  Here&#8217;s an excerpt from an article <a href="http://online.wsj.com/article/SB10001424052748704370704575227754131412596.html?mod=WSJ_hpp_LEADNewsCollection">I saw from the WSJ</a> a while back (preserved with spelling, capitalization, etc., exactly as found in the article online):</p>
<blockquote><p>&#8220;A lot of traders are getting carried out of there seats. There are lots of liquidations including hedge funds out of riskier assets,&#8221; Michael Franzese, head of Treasury trading at Wunderlich Securities in New York. &#8220;No one was expecting this sell off in stocks and the euro and a flight to quality trade is in full effect and it not yields levels it just capital preservation.&#8221;</p></blockquote>
<p>Read it again.  Sorry &#8211; yes, I know it hurts.  This time, just try to figure out what it&#8217;s supposed to say.  I&#8217;ll bet you can&#8217;t do it.  It&#8217;s like swimming a 100 IM in a pool full of Jello.</p>
<p>People, if you&#8217;re going to commit anything to writing, please make a passing attempt to make it readable.  If you supposedly make your living as a writer, don&#8217;t ever, ever do anything like this.</p>
<p>Thanks.</p>
<p><map name='google_ad_map_962_8cfd796512ec059a'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/962?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_962_8cfd796512ec059a' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=962&amp;url= http%3A%2F%2Fblog.componentoriented.com%2F2010%2F06%2Fhave-we-really-fallen-this-far%2F' /></p><p align="left"><a class="tt" href="http://twitter.com/home/?status=Have+we+really+fallen+this+far%3F+http://fiy4i.th8.us" title="Post to Twitter"><img class="nothumb" src="http://blog.componentoriented.com/wp-content/plugins/tweet-this/icons/de/tt-twitter-micro4-de.png" alt="Post to Twitter" /></a> <a class="tt" href="http://twitter.com/home/?status=Have+we+really+fallen+this+far%3F+http://fiy4i.th8.us" title="Post to Twitter">Tweet This Post</a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.componentoriented.com/2010/06/have-we-really-fallen-this-far/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>They finally made my hover-screen</title>
		<link>http://blog.componentoriented.com/2010/05/they-finally-made-my-hover-screen/</link>
		<comments>http://blog.componentoriented.com/2010/05/they-finally-made-my-hover-screen/#comments</comments>
		<pubDate>Thu, 20 May 2010 15:03:29 +0000</pubDate>
		<dc:creator>dlambert</dc:creator>
				<category><![CDATA[Disconnected rants]]></category>
		<category><![CDATA[touchscreen]]></category>
		<category><![CDATA[usability]]></category>
		<category><![CDATA[Windows Mobile]]></category>

		<guid isPermaLink="false">http://blog.componentoriented.com/?p=959</guid>
		<description><![CDATA[I did a little double-take last week as I was leafing through my RSS feeds.  Engadget had a story about a touchscreen that tracks a hovering finger:

So what?
About two and a half years ago, I wrote an article about usability where I ran into this exact problem while using a touch-screen phone.
I&#8217;m glad someone was [...]]]></description>
			<content:encoded><![CDATA[<p>I did a little double-take last week as I was leafing through my RSS feeds.  <a class="zem_slink" title="Engadget" rel="homepage" href="http://www.engadget.com">Engadget</a> had a story about <a href="http://www.engadget.com/2010/04/23/cypress-touchscreens-track-hovering-fingers-make-devices-even-m/2#c27381318">a touchscreen that tracks a hovering finger</a>:</p>
<p><object id="flashObj" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="486" height="412" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="bgcolor" value="#FFFFFF" /><param name="flashVars" value="videoId=79173949001&amp;playerID=1875385286&amp;domain=embed&amp;dynamicStreaming=true" /><param name="base" value="http://admin.brightcove.com" /><param name="seamlesstabbing" value="false" /><param name="allowFullScreen" value="true" /><param name="swLiveConnect" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://c.brightcove.com/services/viewer/federated_f9/1875385286?isVid=1" /><param name="name" value="flashObj" /><param name="flashvars" value="videoId=79173949001&amp;playerID=1875385286&amp;domain=embed&amp;dynamicStreaming=true" /><param name="allowfullscreen" value="true" /><embed id="flashObj" type="application/x-shockwave-flash" width="486" height="412" src="http://c.brightcove.com/services/viewer/federated_f9/1875385286?isVid=1" name="flashObj" allowscriptaccess="always" swliveconnect="true" allowfullscreen="true" seamlesstabbing="false" base="http://admin.brightcove.com" flashvars="videoId=79173949001&amp;playerID=1875385286&amp;domain=embed&amp;dynamicStreaming=true" bgcolor="#FFFFFF"></embed></object></p>
<p>So what?</p>
<p>About two and a half years ago, I wrote<a href="http://blog.componentoriented.com/2008/04/on_tooltips_and_affordances/"> an article about usability</a> where I ran into this exact problem while using a touch-screen phone.</p>
<p>I&#8217;m glad someone was listening!</p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Reblog this post [with Zemanta]" href="http://reblog.zemanta.com/zemified/e44d883e-d16b-4f7f-9525-ae40e52be854/"><img class="zemanta-pixie-img" style="border: none; float: right;" src="http://img.zemanta.com/reblog_e.png?x-id=e44d883e-d16b-4f7f-9525-ae40e52be854" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related pretty-attribution"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
<p><map name='google_ad_map_959_8cfd796512ec059a'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/959?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_959_8cfd796512ec059a' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=959&amp;url= http%3A%2F%2Fblog.componentoriented.com%2F2010%2F05%2Fthey-finally-made-my-hover-screen%2F' /></p><p align="left"><a class="tt" href="http://twitter.com/home/?status=They+finally+made+my+hover-screen+http://xc82d.th8.us" title="Post to Twitter"><img class="nothumb" src="http://blog.componentoriented.com/wp-content/plugins/tweet-this/icons/de/tt-twitter-micro4-de.png" alt="Post to Twitter" /></a> <a class="tt" href="http://twitter.com/home/?status=They+finally+made+my+hover-screen+http://xc82d.th8.us" title="Post to Twitter">Tweet This Post</a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.componentoriented.com/2010/05/they-finally-made-my-hover-screen/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Nothing short of world domination will do</title>
		<link>http://blog.componentoriented.com/2010/04/nothing-short-of-world-domination-will-do/</link>
		<comments>http://blog.componentoriented.com/2010/04/nothing-short-of-world-domination-will-do/#comments</comments>
		<pubDate>Sun, 11 Apr 2010 16:37:46 +0000</pubDate>
		<dc:creator>dlambert</dc:creator>
				<category><![CDATA[Disconnected rants]]></category>
		<category><![CDATA[The Business of Software]]></category>
		<category><![CDATA[Apple. Steve Jobs]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[iTunes]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Monopoly]]></category>

		<guid isPermaLink="false">http://blog.componentoriented.com/?p=940</guid>
		<description><![CDATA[A good friend of mine sent me an email commenting on the changes in Apple&#8217;s Developer Program license for the 4.0 iPhone OS, and I decided to share my thoughts here, as my email grew to become the tome you see here.




Image via Wikipedia



Apple has, as you&#8217;ve probably heard, indicated that it will allow apps on [...]]]></description>
			<content:encoded><![CDATA[<p>A good friend of mine sent me an email commenting on the <a href="http://daringfireball.net/2010/04/why_apple_changed_section_331">changes in Apple&#8217;s Developer Program license</a> for the 4.0 iPhone OS, and I decided to share my thoughts here, as my email grew to become the tome you see here.</p>
<div class="zemanta-img" style="margin: 1em; display: block;">
<div>
<dl class="wp-caption alignright" style="width: 310px;">
<dt class="wp-caption-dt"><a href="http://commons.wikipedia.org/wiki/Image:Steve_Jobs_WWDC07.jpg"><img title="Steve Jobs at the WWDC 07" src="http://upload.wikimedia.org/wikipedia/commons/thumb/e/e5/Steve_Jobs_WWDC07.jpg/300px-Steve_Jobs_WWDC07.jpg" alt="Steve Jobs at the WWDC 07" width="300" height="295" /></a></dt>
<dd class="wp-caption-dd zemanta-img-attribution" style="font-size: 0.8em;">Image via <a href="http://commons.wikipedia.org/wiki/Image:Steve_Jobs_WWDC07.jpg">Wikipedia</a></dd>
</dl>
</div>
</div>
<p><a href="http://blog.componentoriented.com/tag/apple/">Apple</a> has, as you&#8217;ve probably heard, indicated that it will allow apps on the iPhone and iPad only if they&#8217;re written with <a href="http://blog.componentoriented.com/tag/apple/">Apple</a>-native languages and tools, and it&#8217;s <a href=" http://theflashblog.com/?p=1888">widely-believed that this has been done as a form of anti-Flash</a> &#8220;nuclear weapon&#8221;, as my friend commented.</p>
<p>I&#8217;m not convinced that this move is directed only at Flash, though.  Any third-party tool (<a href="http://monotouch.net/">MonoTouch</a>, for example) <a href="http://forums.monotouch.net/yaf_postst645.aspx">will be impacted by this move</a>.   Some people have even <a href=" http://www.appleinsider.com/articles/10/04/09/apples_prohibition_of_flash_built_apps_in_iphone_4_0_related_to_multitasking.html">speculated that this move is intended to help iPhone multitasking</a> (&#8220;BS&#8221;, I say &#8212; write a damned API).  While all of these things might be factors in this move, I believe that the fundamental driver here is a maniacal need for Steve Jobs to control the entire digital experience for his users; nothing short of this will be enough.</p>
<p><a href="http://blog.componentoriented.com/tag/apple/">Apple</a> isn&#8217;t perceived among consumers to be monopolistic simply because they don&#8217;t have a majority market share yet.  The thing that just kills me about <a href="http://blog.componentoriented.com/tag/apple/">Apple</a> right now, though, is that within their customer base, they&#8217;re monopolistic to an extent that would have gotten <a href="http://blog.componentoriented.com/tag/microsoft/">Microsoft</a> run out of town on a rail, even in its heyday.</p>
<div><a href="http://blog.componentoriented.com/tag/apple/">Apple</a> is a cult.  They mandate congruent behavior and thinking with an iron fist, and won&#8217;t let trivia such as fairness or consistency cloud their vision (witness the iPhone app approval process).</div>
<div>Go ahead and float up to 50,000 feet and look at the whole &#8220;app&#8221; strategy on the iPhone.  Here&#8217;s what I see:</div>
<ul>
<li>All functionality on these devices is approved by <a href="http://blog.componentoriented.com/tag/apple/">Apple</a>.</li>
<li>When rejecting an app or content, &#8220;because we said so&#8221; is sufficient reason.</li>
<li>&#8220;We changed our minds&#8221; is enough to get an app pulled after approval &#8212; including yanking it off any devices upon which it&#8217;s installed.</li>
<li>To get an app on your device, you have to go through iTunes.</li>
<li>To build an app, you have to use <a href="http://blog.componentoriented.com/tag/apple/">Apple</a> development products (for all intents and purposes).</li>
<li>To use <a href="http://blog.componentoriented.com/tag/apple/">Apple</a> development products, you have to be running a Mac.</li>
</ul>
<p>That&#8217;s a lot of kool-aide, folks, but if you think that&#8217;s bad, it&#8217;s going to get worse.<DIV style="padding: 2px;
margin: 1em 1.5em 1em 0.5em;
background: #FFEC9B none repeat scroll 0% 0%;
border: solid;
border-width: thin;
border-color: #AE9F44;
display: block; 
float: left; 
width: 20em;"><DIV style="padding: 5px; 
color: #0037A3; 
font-weight: bold; 
font-size: 9pt;">A benevolent monopoly?</DIV><DIV style="background: #FEFFF7; 
padding: 0.5em; 
color: #0062A8;"> Despite my ranting here,  I can appreciate the benefits of a technology monopoly.  The incredible growth of the PC platform was made possible mainly because of Wintel&#8217;s near-monopoly &#8212; it created a huge ecosystem for hardware companies, software companies, and consumers.  But as much as that partnership was effectively a monopoly, they still let mice scurry around and fight over table scraps, and the table scraps were enough to keep a lot of mice fed.</DIV></DIV></p>
<p>I got a new phone last week.  Although I&#8217;ve experienced some teething pains, one of the most pleasant parts of the experience was spinning up my contact list and calendar.  I pointed a new Exchange account at <a href="http://www.nuevasync.com/">Nuevasync </a>(which connects to my Google account), and sucked down all my contacts and appoinments at 3G speed.  Easily the most painless phone transition I&#8217;ve ever experienced.  This is what cloud computing looks like for the consumer.</p>
<p><a href="http://www.readwriteweb.com/cloud/2010/02/a-first-look-at-apples-massive.php">Apple is building a gigantic data center in North Carolina</a>.  Care to take a guess why?</p>
<p>Data centers this size are being built today for cloud computing, almost exclusively.  <a href="http://blog.componentoriented.com/tag/apple/">Apple</a> is going to suck your entire digital identity into their brand-new data center, and you&#8217;ll never see it alive again unless you keep paying your monthly ransom.  As long as you play along, life will be wonderful, in a fuzzy, heavily-sedated way, but if you engage in nonconformist behavior (trying to get your data back, for instance), you should expect to be punished as you&#8217;d expect to punish any troublemaker.</p>
<p>Another friend of mine asked me the other day how he could get his DRM-protected music (bought on iTunes) off an old PC and onto his new one.  This is a smart man, by the way &#8211; a successful businessman, and he&#8217;d tried to figure this out and was stumped.  If you&#8217;ve ever tried this, I&#8217;m sure you can understand.</p>
<p>Take a good whiff, folks, because <em>that&#8217;s</em> the experience we could be signing up for with <strong><em>all</em></strong> of your data.</p>
<p>I&#8217;ll pass.  How about you?</p>
<p><strong>Related articles by Zemanta</strong></p>
<ul class="zemanta-article-ul">
<li class="zemanta-article-ul-li"><a href="http://www.cultofmac.com/adobe-to-apple-go-screw-yourself/37435">Adobe To Apple: &#8220;Go Screw Yourself&#8221;</a> (cultofmac.com)</li>
<li class="zemanta-article-ul-li"><a href="http://www.appscout.com/2010/04/iphone_os_4_developer_agreemen.php">iPhone OS 4 Developer Agreement Further Enforces Flash Ban</a> (appscout.com)</li>
<li class="zemanta-article-ul-li"><a href="http://www.businessinsider.com/henry-blodget-apple-boots-google-off-iphone-40-2010-4">Silicon Alley Insider: Apple Boots Google Off iPhone 4.0 (AAPL, GOOG)</a> (businessinsider.com)</li>
<li class="zemanta-article-ul-li"><a href="http://r.zemanta.com/?u=http%3A//www.guardian.co.uk/technology/blog/2010/apr/09/apple-adobe-flash-developer-row&amp;a=16206275&amp;rid=742d805c-ccfc-4f31-89a3-067111a9a85f&amp;e=2646f9744680977aacb39a1112d1a47b">Apple v Adobe: this time it&#8217;s executable</a> (guardian.co.uk)</li>
</ul>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Reblog this post [with Zemanta]" href="http://reblog.zemanta.com/zemified/742d805c-ccfc-4f31-89a3-067111a9a85f/"><img class="zemanta-pixie-img" style="border: none; float: right;" src="http://img.zemanta.com/reblog_e.png?x-id=742d805c-ccfc-4f31-89a3-067111a9a85f" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related pretty-attribution"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
<p><map name='google_ad_map_940_8cfd796512ec059a'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/940?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_940_8cfd796512ec059a' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=940&amp;url= http%3A%2F%2Fblog.componentoriented.com%2F2010%2F04%2Fnothing-short-of-world-domination-will-do%2F' /></p><p align="left"><a class="tt" href="http://twitter.com/home/?status=Nothing+short+of+world+domination+will+do+http://ztr9w.th8.us" title="Post to Twitter"><img class="nothumb" src="http://blog.componentoriented.com/wp-content/plugins/tweet-this/icons/de/tt-twitter-micro4-de.png" alt="Post to Twitter" /></a> <a class="tt" href="http://twitter.com/home/?status=Nothing+short+of+world+domination+will+do+http://ztr9w.th8.us" title="Post to Twitter">Tweet This Post</a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.componentoriented.com/2010/04/nothing-short-of-world-domination-will-do/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Meet the new phone, same as the old phone</title>
		<link>http://blog.componentoriented.com/2010/03/meet-the-new-phone-same-as-the-old-phone/</link>
		<comments>http://blog.componentoriented.com/2010/03/meet-the-new-phone-same-as-the-old-phone/#comments</comments>
		<pubDate>Wed, 31 Mar 2010 16:45:13 +0000</pubDate>
		<dc:creator>dlambert</dc:creator>
				<category><![CDATA[Disconnected rants]]></category>
		<category><![CDATA[3G]]></category>
		<category><![CDATA[connection]]></category>
		<category><![CDATA[Edge]]></category>
		<category><![CDATA[HTC HD2]]></category>
		<category><![CDATA[signal strength]]></category>
		<category><![CDATA[T-Mobile]]></category>
		<category><![CDATA[T-Mobile Wing]]></category>

		<guid isPermaLink="false">http://blog.componentoriented.com/?p=925</guid>
		<description><![CDATA[I&#8217;ve been soldiering on for a couple of years on a T-Mobile Wing.  That old phone did some pretty great things for my personal organization, but I always seemed to struggle with connection issues.
Last weekend, I finally bit the bullet and picked up a new HTC HD2.  Make no mistake, this is a spectacular piece [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been soldiering on for a couple of years on a <a class="zem_slink" title="T-Mobile" rel="homepage" href="http://www.t-mobile.com/">T-Mobile</a> <a class="zem_slink" title="HTC P4350" rel="wikipedia" href="http://en.wikipedia.org/wiki/HTC_P4350">Wing</a>.  That old phone did some pretty great things for my personal organization, but I always seemed to struggle with connection issues.</p>
<p>Last weekend, I finally bit the bullet and picked up a new <a class="zem_slink" title="HTC HD2" rel="wikipedia" href="http://en.wikipedia.org/wiki/HTC_HD2">HTC HD2</a>.  Make no mistake, this is a spectacular piece of hardware, but sadly, I still find myself chasing connection issues.  I&#8217;ll share some thoughts on the rest of the phone later if I end up keeping it, but right now, I want to detail my signal strength problems.  I&#8217;ll continue to update this post as the fun and games ensues, so if I (or T-Mobile) manage to fix the problem, this post will show the resolution, and if not, you&#8217;ll be able to see why I left.  All of the observations here, unless otherwise indicated, occured in exactly the same spot in <a title="Columbus, Ohio" rel="wikipedia" href="http://en.wikipedia.org/wiki/Columbus%2C_Ohio">Columbus, Ohio</a>, near the OSU campus (ie, not while moving around).</p>
<p>Sunday, 3/28</p>
<ul>
<li>Bought the phone, took it home, charged it, and powered on.  No data connection.  It turns out that the upgrade to <a class="zem_slink" title="3G" rel="wikipedia" href="http://en.wikipedia.org/wiki/3G">3G</a> takes a while to provision.</li>
</ul>
<p>Monday, 3/29</p>
<ul>
<li>Signal bounces around all day.  Full-strength Edge, then nothing, then 3G, then nothing, then no connection at all.  This goes on most of the day, with almost all day spent on Edge only (no 3G).</li>
<li>In the evening, I got a good 3G signal, and the phone worked great.</li>
</ul>
<p>Tuesday, 3/30</p>
<ul>
<li>Slightly better luck with 3G, but not by much.</li>
<li>I talked to a couple people who said they tried to call me several times &#8212; the phone never rang, and didn&#8217;t show any missed calls.</li>
</ul>
<p>Wednesday, 3/31</p>
<ul>
<li>Noticed the same problems.  Signal really bouncing in the morning.</li>
<li>Called T-Mobile customer care at around 11:45.  Rep advised me to power off and back on a couple minutes later, and asked if I could call from another line (I can&#8217;t).</li>
<li>Immediately upon powering up, here&#8217;s what I saw:</li>
<li>11:57 &#8211; 3G w/ 2 bars.</li>
<li>11:58 &#8211; Edge w/ 3 bars.</li>
<li>12:00 &#8211; no service (I was trying to dial voice mail).</li>
<li>12:00 &#8211; Edge w/ 4 bars (after I stopped trying to dial VM).</li>
<li>12:01 &#8211; no service (as soon as I dialed VM).</li>
<li>12:20 &#8211; 3G w/ 3 bars.</li>
<li>12:20 &#8211; Call to VM fails.</li>
<li>12:22 &#8211; 3G w/ 2 bars.</li>
<li>12:22 &#8211; Call to VM fails.</li>
<li>12:24 &#8211; Call to VM fails.  &#8221;Phone operation failed&#8221; message.  Immediately saw Edge w/ 4 bars, then no signal.</li>
<li>12:26 &#8211; Finally completed a call to VM.</li>
<li>12:27 &#8211; no service.</li>
<li>12:28 &#8211; no service &#8211; unable to place call.</li>
<li>12:30 &#8211; placed call &#8211; it worked!</li>
<li>12:39 &#8211; Edge w/ 4 bars.  As a side-effect of the connection-hunting, my battery is down to 57% &#8211; I noticed this sort of decreased battery life when my Wing was connection-hunting, too.  Done troubleshooting for now &#8211; my lunch is over.</li>
</ul>
<p>(watch below for more updates)<span id="more-925"></span></p>
<p>Wednesday, 3/31 (continued)</p>
<ul>
<li>1:27 &#8211; 3G / 2 bars.  Tried to update twitter client &#8211; &#8220;There was a connection error while attempting to download tweets.&#8221;</li>
<li>1:47 &#8211; Edge / 4 bars.  Browser fails; twitter fails.</li>
<li>1:57 &#8211; no service.</li>
<li>2:05 &#8211; no service.</li>
<li>2:06 &#8211; 4 bars, no data service indicated.</li>
<li>2:07 &#8211; no service.</li>
<li>2:10 &#8211; Edge / 4 bars.  Changed to no service as soon as I tried to update twitter.</li>
<li>2:11 &#8211; power off.</li>
<li>2:18 &#8211; power on.</li>
<li>2:23 &#8211; no service.  Tried calling voice mail &#8211; call failed.</li>
<li>2:25 &#8211; Edge / 4 bars, then right back to no service.</li>
<li>2:28 &#8211; 3G / 2 bars.  Twitter update works.</li>
<li>2:32 &#8211; 3G / 3 bars.</li>
<li>2:38 &#8211; 3G / 3 bars.</li>
<li>2:51 &#8211; 3G / 2 bars.</li>
<li>3:17 &#8211; 3G / 2 bars.</li>
<li>4:16 &#8211; 3G / 2 bars, but got email error on send-receive.  Browser worked.</li>
<li>I also found out at about this time that people had tried calling me and hadn&#8217;t been able to reach me (and didn&#8217;t leave a voice mail).  My phone never rang, and it didn&#8217;t show any missed calls.</li>
<li>I stopped into the T-Mobile store where I bought the phone and shared my experience thus far.  The guy I talked to there was very cordial &#8211; he called up customer service and they decided together to try replacing my <a class="zem_slink" title="Subscriber Identity Module" rel="wikipedia" href="http://en.wikipedia.org/wiki/Subscriber_Identity_Module">SIM card</a>.</li>
</ul>
<p>Thursday, 4/1</p>
<ul>
<li>Day 5 with the phone; day two of keeping a service log.</li>
<li>8:22 &#8211; 3G / 3 bars.</li>
<li>9:36 &#8211; 3G / 2 bars.  Twitter fails.</li>
<li>9:39 &#8211; Edge / 4 bars.  Twitter fails.</li>
<li>9:41 &#8211; No service.</li>
<li>10:00 &#8211; 3G / 2 bars.</li>
<li>10:29 &#8211; 3G / 1 bar.  Twitter ok.</li>
<li>11:11 &#8211; 3G / 1 bar.  Twitter fails; browser ok.</li>
<li>1:42 &#8211; &#8220;G&#8221; / 4 bars.  What&#8217;s &#8220;G&#8221;?  Twitter fails; browser ok.</li>
<li>4:20 &#8211; 3G / 2 bars.  Twitter fails; browser fails.</li>
<li>4:25 &#8211; &#8220;G&#8221; / 4 bars.  Browser works; twitter fails.</li>
<li>4:27 &#8211; No service.</li>
<li>4:35 &#8211; Got a voice mail notification, but my phone never rang.</li>
<li>I&#8217;m starting to appreciate how much voice service is affected &#8212; this isn&#8217;t just a data problem.  I saw intermittent data service from time to time on my old phone in this location,  but I rarely had problems with voice service.  It&#8217;s becoming clear, though that right now, my brand-new flagship HTC HD2 is performing substantially worse than a three-year-old Wing <em>after I ran the Wing over in my car</em>.</li>
</ul>
<p>Friday, 4/2</p>
<ul>
<li>10:23 &#8211; 3G / 2 bars.  Browser fails; foursquare fails; twitter fails.</li>
<li>10:26 &#8211; 3G / 1 bar.  Twitter works; foursquare fails.</li>
<li>10:27 &#8211; 3G / 1 bar.  Browser fails; foursquare fails.</li>
<li>10:31 &#8211; 3G / 1 bar.  Browser fails.</li>
<li>10:33 &#8211; 3G / 2 bars.  Call to VM fails.</li>
<li>10:34 &#8211; 3G / 2 bars.  Browser fails.</li>
<li>10:35 &#8211; 3G / 2 bars.  Call to VM fails.</li>
<li>10:43 &#8211; 3G / 2 bars.  Call to VM fails.</li>
<li>10:48 &#8211; 3G / 4 bars.  Call to VM works; browser fails.</li>
<li>10:49 &#8211; No service.</li>
<li>Somewhere around 2:30 &#8211; received VM notification.  Phone never rang, and no missed calls are shown.</li>
<li>2:51 &#8211; 3G / 1 bar.  Call to VM fails.</li>
<li>2:55 &#8211; 3G / 2 bars.  Call to VM works.</li>
<li>3:38 &#8211; 3G / 3 bars.  Call to VM fails.  Browser fails.</li>
<li>4:22 &#8211; Tried changing 3G settings to HSDPA only.  Phone off.</li>
<li>4:32 &#8211; Restart &#8211; now running HSDPA only.  Call to VM &#8211; &#8220;Phone operation failed&#8221;.</li>
<li>4:49 &#8211; No service.  VM failed.  Tried to call my number w/ Google voice &#8211; failed.</li>
<li>4:51 &#8211; Back to default 3G setting (HSDPA / HSUPA).</li>
<li>4:54 &#8211; VM fails.</li>
<li>4:55 &#8211; 3G / 2 bars.  Google voice call works.</li>
</ul>
<p>Saturday, 4/3</p>
<ul>
<li>Stopped into a T-Mobile store near my house.  The assistant manager there told me I needed to go back to the store where I bought the phone for help.</li>
<li>Back to the store where I bought the phone.  Talked to the same guy I&#8217;d spoken with on Wednesday night.  He&#8217;s going to try swapping this phone out with a new one as soon as they get a shipment in.  I expect to hear from him on Tuesday.</li>
</ul>
<p>Monday, 4/5</p>
<ul>
<li>9:16 &#8211; Incoming call test (Google voice) works.</li>
<li>9:27 &#8211; VM fails.</li>
<li>9:32 &#8211; Today, I have my backup phone with me.  This is a $20 Nokia prepaid candybar phone I picked up at Wal-Mart while my Wing was out of service.  I swapped my sim into this phone and fired it up.  I see 5 bars and I can call VM.</li>
<li>9:43 &#8211; VM works on the Nokia.</li>
<li>11:17 &#8211; Chat w/ T-Mobile customer care rep to bring them up to speed.  The rep said they were issuing a ticket to have engineering look at the problem.  They should have an update in &#8220;24 to 72 hours.&#8221;</li>
</ul>
<p>Tuesday, 4/6</p>
<ul>
<li>9:50 &#8211; VM fails.</li>
<li>10:14 &#8211; VM fails.</li>
<li>10:16 &#8211; VM fails.</li>
<li>10:17 &#8211; Power down, sim moved to $20 Wal-Mart phone.</li>
<li>10:18 &#8211; Nokia shows 4 bars, call to VM works, Google voice can call the Nokia phone just fine.  There&#8217;s a T-Mobile signal here, for sure.</li>
<li>1:52 &#8211; Sim back in HD2.  Showing no signal.  VM fails.</li>
<li>1:55 &#8211; Sim in Nokia.  Five bars.  VM works.  Considering strapping the Nokia onto the back of the HD2 with a couple of rubber bands.  Give me the HD2 with the radio on the Nokia, and I&#8217;d be a happy man.</li>
<li>4:30 &#8211; Called back in to T-Mobile customer support to check on the status of the ticket I opened yesterday.  There was no engineering update yet, but the customer service rep got a technician on the line to see if he could help.  He asked if I could use WiFi to call (no), and if I&#8217;d tried manual network selection (I hadn&#8217;t yet).  I&#8217;ll play with manual settings a bit tomorrow to see if I can see any difference.</li>
<li>During the customer service call, one of the people I talked to tried to tell me that T-Mobile wasn&#8217;t aware of any problems like this with the HD2.  I&#8217;ve started adding links at the end of this article to forum posts where other people have indicated problems.</li>
<li>I did not hear from the guy at the T-Mobile store who told me he&#8217;d be calling me today.</li>
</ul>
<p>Wednesday, 4/7</p>
<ul>
<li>9:05 &#8211; Incoming call test works (via Google Voice).</li>
<li>Checked manual network selection &#8211; only one available network listed &#8211; &#8220;T-Mobile&#8221;, so I left the selection on &#8220;manual&#8221;.</li>
<li>10:43 &#8211; Google Voice fails to reach my phone.</li>
<li>10:44 &#8211; VM works; Google Voice fails.</li>
<li>10:45 &#8211; Tried selecting  &#8221;Terminate Data Connection&#8221; on shutdown screen.</li>
<li>10:46 &#8211; Google Voice fails; VM fails.</li>
<li>10:48 &#8211; Sim card in Nokia.  Immediate VM notification from previous Google Voice connection, and VM works just fine.  Showing four bars.</li>
<li>Still no call from local T-Mobile store.</li>
</ul>
<p>Thursday, 4/8</p>
<ul>
<li>8:55 &#8211; Incoming call test works (via Google Voice).</li>
<li>9:06 &#8211; No service.</li>
<li>9:07 &#8211; Manual network selection shows three networks:  &#8221;T-Mobile&#8221;, &#8220;T-Mobile&#8221;, and &#8220;AT&amp;T&#8221;.  Chose the first &#8220;T-Mobile&#8221; network.  No service shown.</li>
<li>9:08 &#8211; Manual network selection again.  This time, searching takes a long time (over a minute) and comes up with same list.  I chose the second &#8220;T-Mobile&#8221; entry.  Signal shows four bars / no data service indicated.</li>
<li>9:12 &#8211; Tried calling VM &#8211; phone popped up the network selection screen showing No Service.  Repeated &#8220;Find Network&#8221;.  Signal shows Edge / 4 bars while searching.  Searching takes around a minute again.  Chose &#8220;AT&amp;T&#8221;, but got Network error: &#8220;Cannot register on selected network.&#8221;</li>
<li>9:15 &#8211; Find network again.  Chose first T-Mobile network.</li>
<li>9:16 &#8211; 3G / 4 bars.</li>
<li>9:17 &#8211; Before I could even test the great signal (!) above, phone shows no service again.  VM fails and pops up the network selection screen.</li>
<li>9:18 &#8211; 3G / 2 bars.  VM fails.</li>
<li>9:19 &#8211; Back to &#8220;automatic&#8221; network selection &#8211; manual isn&#8217;t doing anything to help me.</li>
<li>9:20 &#8211; 3G / 2 bars.  VM fails.  Power down &#8211; sim is going into the Nokia.</li>
<li>9:22 &#8211; Nokia shows 4 bars.  VM works just fine right off the bat.</li>
<li>10:20 &#8211; Per thread on T-Mobile forum, I tried changing my TcpWindowSize.  In the registry, HKLM/Comm/Tcpip/Parms/TcpWindowSize was set to 65536 (stock).  I changed this to 98304 and cycled power.</li>
<li>10:26 &#8211; First test call to VM was successful.</li>
<li>10:28 &#8211; VM call &#8211; &#8220;Phone operation failed.&#8221;   In the last three minutes, I saw the phone go to &#8220;No service&#8221;, then to Edge w/ 4 bars, then back to No service, then to 3G w/ 2 bars.  A call to voice mail when the phone showed 3G / 2 bars failed immediately.</li>
<li>10:32 &#8211; Back to default setting for TcpWindowSize.  Phone powering off, and sim back in Nokia.</li>
<li>11:14 &#8211; The guy on the forum who suggested changing the TcpWindowSize thought I didn&#8217;t wait long enough for the phone to &#8220;go through its cycles&#8221;, so I&#8217;m trying one more time.  TcpWindowSize changed back to 98304 and the phone is powering up.</li>
<li>11:15 &#8211; Phone is up.  No service shown.</li>
<li>11:16 &#8211; Phone shows Edge / 4 bars.  Before I could try a call, it&#8217;s back to no service.</li>
<li>11:17 &#8211; No service.</li>
<li>11:18 &#8211; No service.  Are we still &#8220;going through cycles?&#8221;</li>
<li>11:19 &#8211; No service.  Tried a call to VM anyway.  Call connected, and the phone immediately showed 4 bars, no data connection.  WTF??</li>
<li>11:20 &#8211; Edge / 4 bars.  Tried Google Voice call &#8211; it connected.</li>
<li>11:21 &#8211; No service.  Call to VM fails.</li>
<li>11:22 &#8211; Edge / 4 bars, then no service a second later.  Google Voice call fails.  VM fails.</li>
<li>11:24 &#8211; No service.  VM fails.</li>
<li>11:25 &#8211; No service, then 4 bars / no data service.  VM indication received from failed Google Voice call.</li>
<li>11:26 &#8211; VM works.</li>
<li>11:27 &#8211; Five bars / no data service.</li>
<li>11:28 &#8211; No service.  VM fails.</li>
<li>11:29 &#8211; One bar / no data service, then 3G / 1 bar.</li>
<li>11:30 &#8211; 3G / 1 bar.  VM fails.  TcpWindowSize reset, power down, sim back in Nokia.</li>
</ul>
<p>Monday, 4/19</p>
<ul>
<li>Obviously, I haven&#8217;t updated for a while, but things have been pretty much working the same as I&#8217;ve observed to this point.  I received two glimpses of hope today, though:  I got an email from HTC indicating that they&#8217;re looking into the problem (I originally contacted them back on April 9).  I also heard from the store where I bought my phone &#8212; they&#8217;ve finally gotten new stock in, and I&#8217;m cleared to go and exchange my handset to see if new hardware helps.  Maybe there&#8217;s hope, yet.</li>
</ul>
<p>So, who else is seeing problems?  As indicated earlier, T-Mobile seems not to be aware that this is a widespread issue with the HD2, so I&#8217;m going to try to do my part here to collect observations from other people.  These are links to other places where I&#8217;ve seen people complain about similar problems:</p>
<ul>
<li><a href="http://forums.t-mobile.com/t5/HTC-HD2/network-reception-PROBLEMS-with-HD2/td-p/349024">http://forums.t-mobile.com/t5/HTC-HD2/network-reception-PROBLEMS-with-HD2/td-p/349024</a></li>
<li><a href="http://forum.xda-developers.com/showthread.php?t=659863">http://forum.xda-developers.com/showthread.php?t=659863</a></li>
<li><a href="http://forum.xda-developers.com/showthread.php?t=614119">http://forum.xda-developers.com/showthread.php?t=614119</a></li>
<li><a href="http://forums.t-mobile.com/t5/HTC-HD2/Dude-at-a-Sprint-store-said/td-p/349869">http://forums.t-mobile.com/t5/HTC-HD2/Dude-at-a-Sprint-store-said/td-p/349869</a></li>
<li><a href="http://forums.t-mobile.com/t5/HTC-HD2/Anyone-in-the-Minneapolis-St-Paul-area-Please-Read/td-p/347469">http://forums.t-mobile.com/t5/HTC-HD2/Anyone-in-the-Minneapolis-St-Paul-area-Please-Read/td-p/347469</a></li>
<li><a href="http://forums.t-mobile.com/t5/HTC-HD2/3G-Is-Not-What-I-Thought-It-Was/td-p/348462">http://forums.t-mobile.com/t5/HTC-HD2/3G-Is-Not-What-I-Thought-It-Was/td-p/348462</a></li>
<li><a href="http://forums.t-mobile.com/t5/HTC-HD2/Connection-signal-problems/td-p/347659">http://forums.t-mobile.com/t5/HTC-HD2/Connection-signal-problems/td-p/347659</a> (mine).</li>
<li><a href="http://forums.t-mobile.com/t5/HTC-HD2/The-Returning-My-HD2-and-Getting-Something-Else-Thread/td-p/345765">http://forums.t-mobile.com/t5/HTC-HD2/The-Returning-My-HD2-and-Getting-Something-Else-Thread/td-p/345765</a></li>
</ul>
<p>[update - 5/20/2010]</p>
<p>It&#8217;s been a while since I&#8217;ve updated my status here, so I thought I&#8217;d add a few notes about how things are playing out.  I swapped handsets back on April 20.  This had very little effect on performance, though I saw a slight placebo effect for a couple days, I think.  Interestingly, I&#8217;d seen a couple of forum posts from people who talked about two hardware versions of the phone, where the earliest phones had red reset buttons, and later ones had yellow.  I can confirm that the first phone I had did, indeed have a red reset button, and the replacement phone (my current phone) has a yellow button.  Beyond the color of the button, I can discern no difference in the phones whatsoever, but that doesn&#8217;t mean there aren&#8217;t internal differences that I can&#8217;t see.</p>
<p>Over the course of several weeks, I&#8217;ve seen marginal improvements that appear unrelated to anything I&#8217;m doing on the phone, so I attribute these to network tuning on T-Mobile&#8217;s part.</p>
<p>The other big event has been HTC&#8217;s (followed by T-Mobile&#8217;s) release of a new firmware ROM (and radio ROM) for this phone.  I&#8217;m now running the 2.13 ROM with 2.10 radio ROM, and I&#8217;m seeing slightly better performance again.  At this point, I believe that voice connectivity is back close to the level of my old T-Mobile Wing, which is the minimum bar I wanted to see.  Data connectivity is still a little hit-and-miss, but it&#8217;s better than when I got the phone, and in a lot of locations, it&#8217;s quite good.  I still maintain that when the phone and network are working right, this is a really nice device.</p>
<p>I&#8217;ve decided to look into writing an application to log cell tower connections in a way that will let me see if I&#8217;m switching towers when I&#8217;m sitting still.  I believe this is the cause of the &#8220;signal hunting&#8221; I&#8217;ve seen, and I&#8217;d like to be able to provide some good information to HTC.  I&#8217;ve received a couple more contacts from HTC about this.  They&#8217;ve really been pretty good about following up on things, considering the fact that T-Mobile is really supposed to be taking the lead on customer care.  In any event, I think that if I can generate some reliable data for them, HTC will put it to good use.</p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Reblog this post [with Zemanta]" href="http://reblog.zemanta.com/zemified/26fbc159-5030-4d6d-8b28-265f834f6ba8/"><img class="zemanta-pixie-img" style="border: none; float: right;" src="http://img.zemanta.com/reblog_e.png?x-id=26fbc159-5030-4d6d-8b28-265f834f6ba8" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related pretty-attribution"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
<p><map name='google_ad_map_925_8cfd796512ec059a'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/925?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_925_8cfd796512ec059a' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=925&amp;url= http%3A%2F%2Fblog.componentoriented.com%2F2010%2F03%2Fmeet-the-new-phone-same-as-the-old-phone%2F' /></p><p align="left"><a class="tt" href="http://twitter.com/home/?status=Meet+the+new+phone%2C+same+as+the+old+phone+http://deokx.th8.us" title="Post to Twitter"><img class="nothumb" src="http://blog.componentoriented.com/wp-content/plugins/tweet-this/icons/de/tt-twitter-micro4-de.png" alt="Post to Twitter" /></a> <a class="tt" href="http://twitter.com/home/?status=Meet+the+new+phone%2C+same+as+the+old+phone+http://deokx.th8.us" title="Post to Twitter">Tweet This Post</a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.componentoriented.com/2010/03/meet-the-new-phone-same-as-the-old-phone/feed/</wfw:commentRss>
		<slash:comments>27</slash:comments>
		</item>
		<item>
		<title>A feature greater than the sum of its bugs</title>
		<link>http://blog.componentoriented.com/2010/03/a-feature-greater-than-the-sum-of-its-bugs/</link>
		<comments>http://blog.componentoriented.com/2010/03/a-feature-greater-than-the-sum-of-its-bugs/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 13:54:18 +0000</pubDate>
		<dc:creator>dlambert</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Disconnected rants]]></category>
		<category><![CDATA[bug fix]]></category>
		<category><![CDATA[bugs]]></category>
		<category><![CDATA[root cause]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://blog.componentoriented.com/?p=759</guid>
		<description><![CDATA[Douglas Adams, muse to software developers everywhere, had this to say about bugs:
&#8220;Just as a slow series of clicks when speeded up will lose the definition of each individual click and gradually take on the quality of a sustained and rising tone, so a series of individual impressions here took on the quality of a [...]]]></description>
			<content:encoded><![CDATA[<p>Douglas Adams, muse to software developers everywhere, had this to say about bugs:</p>
<blockquote><p>&#8220;Just as a slow series of clicks when speeded up will lose the definition of each individual click and gradually take on the quality of a sustained and rising tone, so a series of individual impressions here took on the quality of a sustained emotion[.]&#8220;</p></blockquote>
<p>Ok, yeah &#8211; the quote is really from &#8220;<a class="zem_slink" title="Life, The Universe And Everything: The Hitch Hiker's Guide To The Galaxy 3" rel="amazon" href="http://www.amazon.com/Life-Universe-Everything-Hikers-Galaxy/dp/0330267388%3FSubscriptionId%3D0G81C5DAZ03ZR9WH9X82%26tag%3Dzemanta-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D0330267388">Life, the Universe, and Everything</a>&#8220;, and he wasn&#8217;t talking about bugs, but he could have been.</p>
<div class="zemanta-img" style="margin: 1em; display: block;">
<div>
<dl class="wp-caption alignright" style="width: 250px;">
<dt class="wp-caption-dt"><a href="http://www.flickr.com/photos/62202285@N00/2341238645"><img title="Big Bug III…!!!" src="http://farm3.static.flickr.com/2357/2341238645_b0e41585f4_m.jpg" alt="Big Bug III…!!!" width="240" height="240" /></a></dt>
<dd class="wp-caption-dd zemanta-img-attribution" style="font-size: 0.8em;">Image by <a href="http://www.flickr.com/photos/62202285@N00/2341238645">Denis Collette&#8230;!!!</a> via Flickr</dd>
</dl>
</div>
</div>
<p>If you look at bugs one at a time, you can miss some important &#8220;big picture&#8221; stuff.  It&#8217;s possible to spot product design issues, usability issues, architecture issues, and more by looking at patterns across multiple bugs.  Instead of just taking the bug at face value, consider whether there are other factors that caused this bug (and others like it) to show up.  Unless you&#8217;re writing mission support modules for NASA, it doesn&#8217;t make sense to do a full <a href="http://en.wikipedia.org/wiki/5_Whys">five-why&#8217;s</a> breakdown on each bug, but keep your eyes open for signs like this:</p>
<ul>
<li>You find yourself going back to the same area of code over and over.</li>
<li>User complaints cluster around a few screens (or functions) in your application.</li>
<li>You recognize a similar pattern in source code that keeps popping up.</li>
</ul>
<p>When you see patterns like this, you can certainly keep on fixing the bugs one at a time, but it&#8217;s pretty hard to make progress this way.  Instead, consider a larger bug fix, or even an actual feature (there&#8217;s really no difference, IMO) that cuts across individual bugs and fixes the foundational problem that&#8217;s spawning them.</p>
<ul>
<li>Maybe you need to redesign a screen.  If users are having a hard time figuring out part of your application, you&#8217;re not going to be able to fix your users.  Bite the bullet and figure out what you need to change in your application so that it makes sense.</li>
<li>Refactor ugly code.  This should be a no-brainer.  Spaghetti code can hide a multitude of sins, and the bugs are just going to keep coming until you deal with the problem.</li>
<li>Address architectural issues.  Sometimes, your problems run really deep, and big changes are needed to fix them.  This can be a tough sell, but if you can show a pattern of costly bug fixes over time, all of which share an architectural root cause, you&#8217;ve got the ammunition to push for a fix that will make them go away.</li>
</ul>
<p>If you eliminate the sources of these clustered bugs, you not only get rid of the current bugs, you wipe out a whole swarm of future bugs before they&#8217;ve had a chance to show their ugly little faces.  Don&#8217;t believe for a second that you can do this one bug at a time.</p>
<h6 class="zemanta-related-title" style="font-size: 1em;">Related articles by Zemanta</h6>
<ul class="zemanta-article-ul">
<li class="zemanta-article-ul-li"><a href="http://www.ghacks.net/2010/02/09/dealing-with-bugs-in-linux/">Dealing with bugs in Linux</a> (ghacks.net)</li>
<li class="zemanta-article-ul-li"><a href="http://www.slideshare.net/shahzadsb/software-bugs-a-software-architect-point-of-view">Software Bugs A Software Architect Point Of View</a> (slideshare.net)</li>
<li class="zemanta-article-ul-li"><a href="http://tech.slashdot.org/story/10/03/02/1443210/Over-Half-of-Software-Fails-First-Security-Tests?from=rss">Over Half of Software Fails First Security Tests</a> (tech.slashdot.org)</li>
</ul>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Enhanced by Zemanta" href="http://www.zemanta.com/"><img class="zemanta-pixie-img" style="border: none; float: right;" src="http://img.zemanta.com/zemified_e.png?x-id=62b4fb54-fa41-4ebd-b863-de09a5cb179b" alt="Enhanced by Zemanta" /></a><span class="zem-script more-related pretty-attribution"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
<p><map name='google_ad_map_759_8cfd796512ec059a'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/759?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_759_8cfd796512ec059a' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=759&amp;url= http%3A%2F%2Fblog.componentoriented.com%2F2010%2F03%2Fa-feature-greater-than-the-sum-of-its-bugs%2F' /></p><p align="left"><a class="tt" href="http://twitter.com/home/?status=A+feature+greater+than+the+sum+of+its+bugs+http://odn8d.th8.us" title="Post to Twitter"><img class="nothumb" src="http://blog.componentoriented.com/wp-content/plugins/tweet-this/icons/de/tt-twitter-micro4-de.png" alt="Post to Twitter" /></a> <a class="tt" href="http://twitter.com/home/?status=A+feature+greater+than+the+sum+of+its+bugs+http://odn8d.th8.us" title="Post to Twitter">Tweet This Post</a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.componentoriented.com/2010/03/a-feature-greater-than-the-sum-of-its-bugs/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Yikes!</title>
		<link>http://blog.componentoriented.com/2010/03/yikes/</link>
		<comments>http://blog.componentoriented.com/2010/03/yikes/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 19:47:24 +0000</pubDate>
		<dc:creator>dlambert</dc:creator>
				<category><![CDATA[Disconnected rants]]></category>
		<category><![CDATA[database project]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://blog.componentoriented.com/?p=915</guid>
		<description><![CDATA[I&#8217;ll just grab a cup of coffee, ok?




 Tweet This Post]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ll just grab a cup of coffee, ok?</p>
<p><a href="http://blog.componentoriented.com/wp-content/uploads/2010/03/Yikes.jpg"><img class="aligncenter size-full wp-image-916" title="Yikes" src="http://blog.componentoriented.com/wp-content/uploads/2010/03/Yikes.jpg" alt="" width="556" height="149" /></a></p>
<p><map name='google_ad_map_915_8cfd796512ec059a'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/915?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_915_8cfd796512ec059a' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=915&amp;url= http%3A%2F%2Fblog.componentoriented.com%2F2010%2F03%2Fyikes%2F' /></p><p align="left"><a class="tt" href="http://twitter.com/home/?status=Yikes%21+http://q5pye.th8.us" title="Post to Twitter"><img class="nothumb" src="http://blog.componentoriented.com/wp-content/plugins/tweet-this/icons/de/tt-twitter-micro4-de.png" alt="Post to Twitter" /></a> <a class="tt" href="http://twitter.com/home/?status=Yikes%21+http://q5pye.th8.us" title="Post to Twitter">Tweet This Post</a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.componentoriented.com/2010/03/yikes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Almost a great idea</title>
		<link>http://blog.componentoriented.com/2010/02/almost-a-great-idea/</link>
		<comments>http://blog.componentoriented.com/2010/02/almost-a-great-idea/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 22:52:22 +0000</pubDate>
		<dc:creator>dlambert</dc:creator>
				<category><![CDATA[Disconnected rants]]></category>
		<category><![CDATA[The Business of Software]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[government]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[OpenID]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://blog.componentoriented.com/?p=902</guid>
		<description><![CDATA[Here&#8217;s an example of a good idea gone wrong.  I saw a link for a web site that exists solely to advance openness in government.  How cool is that?


I clicked around for a bit, eventually reaching a place where I was supposed to be able to submit an idea for government, where it would (presumably) [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s an example of a good idea gone wrong.  I saw a link for <a href="http://www.whitehouse.gov/blog/2010/02/23/make-your-voice-heard">a web site that exists solely to advance openness in government</a>.  How cool is that?</p>
<div class="zemanta-img" style="margin: 1em; display: block; width: 210px; float: left;">
<div class="wp-caption alignright" style="width: 210px"><a href="http://en.wikipedia.org/wiki/Image:DSC04509.JPG"><img title="U.S." src="http://upload.wikimedia.org/wikipedia/en/thumb/8/85/DSC04509.JPG/300px-DSC04509.JPG" alt="U.S." width="200" height="150" /></a><p class="wp-caption-text">Image via Wikipedia</p></div>
</div>
<p>I clicked around for a bit, eventually reaching a place where I was supposed to be able to submit an idea for government, where it would (presumably) be viewed and discussed among my peers.  When I clicked the button to enter my idea, I was prompted to log in with <a class="zem_slink" title="OpenID Foundation" rel="homepage" href="http://openid.net">OpenID</a> (again, very cool).  I logged in and clicked the button again, and was rewarded with the following barfage:</p>
<div style="background: Antiquewhite; overflow: auto; clear: both;">
<p><strong>500 Servlet Exception</strong></p>
<pre><a href="javascript:show();">[show]</a> java.lang.NullPointerException

java.lang.NullPointerException
	at _jsp._jsp._includes._build_0header__jsp._jspService(jsp/includes/build_header.jsp:37)
	at com.caucho.jsp.JavaPage.service(JavaPage.java:61)
	at com.caucho.jsp.Page.pageservice(Page.java:578)
	at com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:195)
	at com.caucho.server.webapp.DispatchFilterChain.doFilter(DispatchFilterChain.java:97)
	at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:266)
	at com.caucho.server.webapp.RequestDispatcherImpl.include(RequestDispatcherImpl.java:494)
	at com.caucho.server.webapp.RequestDispatcherImpl.include(RequestDispatcherImpl.java:358)
	at com.caucho.jsp.PageContextImpl.include(PageContextImpl.java:1008)
	at _jsp._jsp._includes._autoselect_0header__jsp._jspService(jsp/includes/autoselect_header.jsp:23)
	at com.caucho.jsp.JavaPage.service(JavaPage.java:61)....</pre>
</div>
<p>Close, guys.  Very close!</p>
<p>Please don&#8217;t do this to your customers, okay?</p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Reblog this post [with Zemanta]" href="http://reblog.zemanta.com/zemified/eda4919a-f541-4aa9-a0ae-81bbf5410d34/"><img class="zemanta-pixie-img" style="border: medium none; float: right;" src="http://img.zemanta.com/reblog_e.png?x-id=eda4919a-f541-4aa9-a0ae-81bbf5410d34" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related more-info pretty-attribution paragraph-reblog"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
<p><map name='google_ad_map_902_8cfd796512ec059a'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/902?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_902_8cfd796512ec059a' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=902&amp;url= http%3A%2F%2Fblog.componentoriented.com%2F2010%2F02%2Falmost-a-great-idea%2F' /></p><p align="left"><a class="tt" href="http://twitter.com/home/?status=Almost+a+great+idea+http://w38ym.th8.us" title="Post to Twitter"><img class="nothumb" src="http://blog.componentoriented.com/wp-content/plugins/tweet-this/icons/de/tt-twitter-micro4-de.png" alt="Post to Twitter" /></a> <a class="tt" href="http://twitter.com/home/?status=Almost+a+great+idea+http://w38ym.th8.us" title="Post to Twitter">Tweet This Post</a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.componentoriented.com/2010/02/almost-a-great-idea/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Is your Enterprise too big to fail?</title>
		<link>http://blog.componentoriented.com/2009/11/is-your-enterprise-too-big-to-fail/</link>
		<comments>http://blog.componentoriented.com/2009/11/is-your-enterprise-too-big-to-fail/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 04:39:53 +0000</pubDate>
		<dc:creator>dlambert</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Disconnected rants]]></category>
		<category><![CDATA[complexity]]></category>
		<category><![CDATA[Software Architecture]]></category>
		<category><![CDATA[software design]]></category>
		<category><![CDATA[too big to fail]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://blog.componentoriented.com/?p=824</guid>
		<description><![CDATA[We have met the enemy, and it is Complexity.
About a year ago, the media was flooded with debate about financial institutions that were deemed &#8220;too big to fail&#8221; by industry analysts, financial experts, and government representatives.  A failure by one of these institutions, these experts told us, would have catastrophic effects on our economy, and [...]]]></description>
			<content:encoded><![CDATA[<p>We have met the enemy, and it is Complexity.</p>
<p>About a year ago, the media was flooded with debate about financial institutions that were deemed &#8220;too big to fail&#8221; by industry analysts, financial experts, and government representatives.  A failure by one of these institutions, these experts told us, would have catastrophic effects on our economy, and it was therefore incumbent upon us as a nation to keep these firms solvent.</p>
<p>And if you believe this, I&#8217;ve got some great beachfront property in Kansas I&#8217;d like to talk to you about.</p>
<p><DIV style="padding: 2px;
margin: 1em 1.5em 1em 0.5em;
background: #FFEC9B none repeat scroll 0% 0%;
border: solid;
border-width: thin;
border-color: #AE9F44;
display: block; 
float: left; 
width: 20em;"><DIV style="padding: 5px; 
color: #0037A3; 
font-weight: bold; 
font-size: 9pt;">What dependencies?</DIV><DIV style="background: #FEFFF7; 
padding: 0.5em; 
color: #0062A8;">How, exactly, are all these financial firms connected?  Obviously, a full exploration of this is out-of-scope here, but the single biggest problem child in the financial meltdown was the web of financial derivatives, which financial institutions applied as a sort of insurance policy, but which, in the end, turned out to be anything but that.  The idea behind these derivatives was to aggregate a bunch of debt obligations together and resell them, and financial firms believed this would act, among other things, as a sort of reinsurance guarding against risk in any of the individual debt obligations.  As these things were packaged and repackaged, though, the cumulative effect was to create a virtual ponzi scheme of obligations linking all of these firms together in a frighteningly incestuous fashion.</DIV></DIV></p>
<p>&#8220;Too big to fail,&#8221; you see, resulted directly from &#8220;too complicated to understand.&#8221;  The real nightmare scenario for these experts wasn&#8217;t the failure of a single institution, no matter how big it was &#8212; it was the <a class="zem_slink freebase/guid/9202a8c04000641f8000000008e74085" title="Domino effect" rel="wikipedia" href="http://en.wikipedia.org/wiki/Domino_effect">domino effect</a> where the failure of one institution would cause a chain reaction of failures across all the top financial firms.  Here&#8217;s the killer, though: these experts couldn&#8217;t tell you which dominoes, exactly, would start a chain reaction, which mean that (1) these experts understood that there were horribly complicated inter-dependencies among these financial firms, and (2) they didn&#8217;t understand these dependencies well enough to understand what would happen when one failed.</p>
<p>The problems with this scenario go on and on.  Very few people have any real grasp on the actual implementation of complex financial instruments within a single organization, let alone the contractual obligations that link firms to firms.  This includes the executives running these companies, who, in true empty-suit fashion, blindly accepted whatever horse-hockey they were fed by their underlings because there wasn&#8217;t a chance in hell that they understood all the details of the operations under their control.  This isn&#8217;t to say that these executives aren&#8217;t bright guys &#8212; nothing could be further from the truth.  In fact, the complexity of these operations is so staggering that no one person could ever hope to grasp the whole picture at once.</p>
<p>At this point, you might be wondering what this has to do with software development.  Fair enough.  The connection is the common problem: complexity.</p>
<p>Software developers are no strangers to complexity.  Despite an onslaught of tools, techniques, frameworks, and <a class="zem_slink freebase/guid/9202a8c04000641f800000000012f997" title="Design pattern (computer science)" rel="wikipedia" href="http://en.wikipedia.org/wiki/Design_pattern_%28computer_science%29">design patterns</a> which all claim to make Enterprise software development &#8220;easy&#8221;, our applications invariably end up complicated as hell by the time they&#8217;re installed.  I opened a Visual Studio solution the other day that had 43 projects in it.  What&#8217;s worse, this solution clearly followed patterns that have been demonstrated by <a href="http://blog.componentoriented.com/tag/microsoft/">Microsoft</a>, so there&#8217;s a clear argument to be made here that this behemoth is crafted according to industry best practices.</p>
<div class="zemanta-img" style="margin: 1em; display: block;">
<div>
<dl class="wp-caption alignright" style="width: 310px;">
<dt class="wp-caption-dt"><a href="http://en.wikipedia.org/wiki/Image:Toppledominos.jpg"><img title="Dominoes line" src="http://upload.wikimedia.org/wikipedia/en/thumb/e/e4/Toppledominos.jpg/300px-Toppledominos.jpg" alt="Dominoes line" width="300" height="199" /></a></dt>
<dd class="wp-caption-dd zemanta-img-attribution" style="font-size: 0.8em;">Image via <a href="http://en.wikipedia.org/wiki/Image:Toppledominos.jpg">Wikipedia</a></dd>
</dl>
</div>
</div>
<p>A developer who&#8217;s immersed in such a solution can have a ghost of a chance of understanding what&#8217;s happening among those 43 projects, but just barely, and only if he&#8217;s really good and really focused on this solution.  This is functionally equivalent to a Financial Analyst who understands in great detail how an individual financial derivative is constructed.  Like the financial example, though, there&#8217;s no way that business leaders could ever hope to fathom the complexity of software like this, and <em>they&#8217;re the ones who are making decisions about it</em>.</p>
<p>This has to end.  The status quo is one where our leader don&#8217;t understand the things they&#8217;re making decisions about.  How is it any wonder that they all behave like pointy-haired bosses?</p>
<p>It turns out that I&#8217;m not the only one that believes this.  <a href="http://www.objectwatch.com/">Roger Sessions</a> is a well-known architect and author who&#8217;s been promoting simplicity since the dawn of the Doppio Macchiato.  Recently, he&#8217;s been supporting his book, <em><a href="http://www.amazon.com/Architectures-Enterprises-PRO-best-Practices-Microsoft/dp/0735625786">Simple Architectures for Complex Enterprises</a></em>, with some excellent blogging and a white paper, which can be found on <a href="http://simplearchitectures.blogspot.com/">the book&#8217;s companion site</a>.</p>
<p>Honestly, some of Roger&#8217;s material isn&#8217;t easy to swallow.  Software designers by nature are a pretty self-assured bunch, and usually, that&#8217;s well-justified, as they&#8217;re also a pretty bright crowd.  We&#8217;d all like to believe that the designs we&#8217;ve crafted are perfectly extensible and scalable.  Furthermore, we&#8217;re reluctant to admit that <em>anything </em>is too complicated for us to grok.</p>
<p>It&#8217;s not easy for business leaders to grasp this stuff, either.  Since they&#8217;re already oblivious to the complexity of these systems, it&#8217;s a pretty big leap of faith for them to accept that complexity is the problem, and furthermore, that there can actually be a solution.</p>
<p>Adding to this whole mess is the predisposition of nearly all the individual role players to keep right on doing what they&#8217;ve always done.  Our understanding of capitalism and efficient markets suggests that groups of people will collectively find efficiency and balance, but when the individuals involved don&#8217;t really understand how their actions affect outcomes, you start to see some pretty odd collective behavior.  <a class="zem_slink freebase/guid/9202a8c04000641f80000000047823c5" title="Dan Ariely" rel="wikipedia" href="http://en.wikipedia.org/wiki/Dan_Ariely">Dan Ariely</a> has done some remarkable work exploring this paradox in his book, <a href="http://www.predictablyirrational.com/"><em>Predictably Irrational</em></a>.</p>
<p>All this suggests that it&#8217;s going to take a pretty phenomenal level of commitment to change the status quo.  Let&#8217;s start by admitting we&#8217;ve got a problem.  I believe that Complexity is the #1 problem facing Enterprise software development today, and it needs to be confronted and mastered.</p>
<p>Are you with me?</p>
<h6 class="zemanta-related-title" style="font-size: 1em;">Related articles by Zemanta</h6>
<ul class="zemanta-article-ul">
<li class="zemanta-article-ul-li"><a href="http://science.slashdot.org/story/09/10/23/1512212/The-Science-of-Irrational-Decisions?from=rss">The Science of Irrational Decisions</a> (science.slashdot.org)</li>
<li class="zemanta-article-ul-li"><a href="http://www.beatschindler.com/success-strategies/ted-ariely-pink">Are We In Control Of Our Own Decisions? &amp; The Surprising Science Of Motivation</a> (beatschindler.com)</li>
<li class="zemanta-article-ul-li"><a href="http://www.agile-software-development.com/2009/10/problem-with-planning.html">The Problem With Planning</a> (agile-software-development.com)</li>
<li class="zemanta-article-ul-li"><a href="http://seattletimes.nwsource.com/html/businesstechnology/2009943211_apusbanksderivativestrading.html?syndication=rss">Banks made $5.2B trading derivatives in 2Q</a> (seattletimes.nwsource.com)</li>
<li class="zemanta-article-ul-li"><a href="http://www.soacenter.com/?p=198">The Enterprise 2.0 Crock</a> (soacenter.com)</li>
</ul>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Reblog this post [with Zemanta]" href="http://reblog.zemanta.com/zemified/e35deaf4-a645-45e9-b2a6-7f83c404d1b1/"><img class="zemanta-pixie-img" style="border: medium none ; float: right;" src="http://img.zemanta.com/reblog_e.png?x-id=e35deaf4-a645-45e9-b2a6-7f83c404d1b1" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related more-info pretty-attribution paragraph-reblog"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
<p><map name='google_ad_map_824_8cfd796512ec059a'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/824?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_824_8cfd796512ec059a' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=824&amp;url= http%3A%2F%2Fblog.componentoriented.com%2F2009%2F11%2Fis-your-enterprise-too-big-to-fail%2F' /></p><p align="left"><a class="tt" href="http://twitter.com/home/?status=Is+your+Enterprise+too+big+to+fail%3F+http://tc85d.th8.us" title="Post to Twitter"><img class="nothumb" src="http://blog.componentoriented.com/wp-content/plugins/tweet-this/icons/de/tt-twitter-micro4-de.png" alt="Post to Twitter" /></a> <a class="tt" href="http://twitter.com/home/?status=Is+your+Enterprise+too+big+to+fail%3F+http://tc85d.th8.us" title="Post to Twitter">Tweet This Post</a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.componentoriented.com/2009/11/is-your-enterprise-too-big-to-fail/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tilting the web &#8212; really?</title>
		<link>http://blog.componentoriented.com/2009/10/tilting-the-web-really/</link>
		<comments>http://blog.componentoriented.com/2009/10/tilting-the-web-really/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 13:52:21 +0000</pubDate>
		<dc:creator>dlambert</dc:creator>
				<category><![CDATA[Disconnected rants]]></category>
		<category><![CDATA[browsers]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Google Chrome]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://blog.componentoriented.com/?p=806</guid>
		<description><![CDATA[Here&#8217;s a gem for you, courtesy of Engadget:
Firefox 3.6 will support accelerometers, make the internet seasick (video).
Right.  I can&#8217;t wait to write CSS for this.  Are you kidding me??
If you look at the picture of this browser, you can see that the frame of the browser window stays locked in place on the screen, and [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a gem for you, courtesy of Engadget:</p>
<p><a href="http://www.engadget.com/2009/10/14/firefox-3-6-will-support-accelerometers-make-the-internet-seasi/">Firefox 3.6 will support accelerometers, make the internet seasick (video)</a>.</p>
<p>Right.  I can&#8217;t wait to write CSS for this.  Are you kidding me??</p>
<p>If you look at the picture of this browser, you can see that the frame of the browser window stays locked in place on the screen, and sure enough &#8211; as the screen is tilted, the rendering within the browser is tilted to compensate.</p>
<div class="zemanta-img" style="margin: 1em; display: block;">
<div class="wp-caption alignright" style="width: 143px"><a href="http://en.wikipedia.org/wiki/Image:Firefox-logo.svg"><img class=" " style="margin-left: 10px; margin-right: 10px;" title="Mozilla Firefox" src="http://upload.wikimedia.org/wikipedia/en/thumb/e/e3/Firefox-logo.svg/133px-Firefox-logo.svg.png" alt="Mozilla Firefox" width="133" height="127" /></a><p class="wp-caption-text">Image via Wikipedia</p></div>
</div>
<p>Can this really be considered a feature people want or need on their devices?  Here&#8217;s the bottom line, Firefox:  You&#8217;re running on a rectangular device, no matter how it&#8217;s tilted.  There are only two reasonable layouts on a rectangular device:  portrait and landscape.  For everything in the middle, I&#8217;m going to go out on a limb here and stipulate that if someone is holding a device at an angle, it&#8217;s probably because the viewer is at an angle, and thus, wants to turn the device to match their aspect.</p>
<p>Let&#8217;s also not forget that a screen rendered at non-square angles is going to introduce all sorts of fun graphical artifacts as you re-render at a constantly-changing angle.  Remember that our fonts and graphics are optimized for a rectangular pixel layout, and anything other than square is going to require interpolated rendering of everything on the screen (which, being a mobile device, by the way, is probably of lower resolution than our desktops.  Take a look at this image:</p>
<div id="attachment_808" class="wp-caption aligncenter" style="width: 310px"><img class="size-full wp-image-808" title="engadget-tilted" src="http://blog.componentoriented.com/wp-content/uploads/2009/10/engadget-tilted.jpg" alt="Engadget tilted on screen" width="300" height="309" /><p class="wp-caption-text">Engadget tilted on screen</p></div>
<p>Ignore, if you&#8217;re able, the weird optical illusion that makes the rest of your screen now look like it&#8217;s tilted to the right.  This image, in fact, shows the mobile version of Engadget&#8217;s home page tilted about fifteen degrees to the left.  Note that while this is certainly still readable, the fonts show significant pixelation &#8212; they&#8217;re blurry and jagged.</p>
<p>You can also see that the screen is cut off on four corners.  This is because the size of the canvas that will fit perfectly inscribed within the fixed physical screen changes as the angle of tilt changes.  I&#8217;m sure there&#8217;s a geometric formula that can be used to figure this out, and it would be more or less complicated depending on whether you hold the aspect ratio of the canvas constant (which could work right up to the point where you switch from portrait to landscape).  In any event, the size is going to change, and that means that you either change the size of the HTML canvas, reflowing text, images, etc., or you do still more interpolation and rendering to account for the smaller canvas size you&#8217;re painting.  Either way, I think the user loses.</p>
<p>Can you just picture the bugs that are going to come in once people start using this?</p>
<ul>
<li>Your app blinks when I tilt the screen.</li>
<li>When I tilt my screen, I can see everything just fine, but when I tilt it back, the left side of the text is cut off.</li>
<li>When I tilt on FireFox, your app works fine, but when I tilt on Chrome, it doesn&#8217;t work at all.</li>
<li>I got a migraine because of your app.</li>
<li>What&#8217;s with the screen swimming around??</li>
</ul>
<p>Can anyone, anywhere really come up with a scenario where I, as a user of a mobile device, am going to hold my device at an angle and hope that my software can figure out how to render a pixelated, ugly version of the app I&#8217;m using at an angle that now, no longer matches the angle of my screen, and (dare I add) keyboard?</p>
<p>On behalf of all web developers everywhere on Earth, Firefox, I implore you:</p>
<h3><em>Stop the madness!!</em></h3>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Reblog this post [with Zemanta]" href="http://reblog.zemanta.com/zemified/51188047-29e2-437f-ac77-1a47f06853ec/"><img class="zemanta-pixie-img" style="border: medium none; float: right;" src="http://img.zemanta.com/reblog_e.png?x-id=51188047-29e2-437f-ac77-1a47f06853ec" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related more-info pretty-attribution paragraph-reblog"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
<p><map name='google_ad_map_806_8cfd796512ec059a'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/806?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_806_8cfd796512ec059a' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=806&amp;url= http%3A%2F%2Fblog.componentoriented.com%2F2009%2F10%2Ftilting-the-web-really%2F' /></p><p align="left"><a class="tt" href="http://twitter.com/home/?status=Tilting+the+web+%E2%80%94+really%3F+http://t62m4.th8.us" title="Post to Twitter"><img class="nothumb" src="http://blog.componentoriented.com/wp-content/plugins/tweet-this/icons/de/tt-twitter-micro4-de.png" alt="Post to Twitter" /></a> <a class="tt" href="http://twitter.com/home/?status=Tilting+the+web+%E2%80%94+really%3F+http://t62m4.th8.us" title="Post to Twitter">Tweet This Post</a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.componentoriented.com/2009/10/tilting-the-web-really/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
