<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>I C# People...</title>
	<atom:link href="http://koder.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://koder.wordpress.com</link>
	<description>walking around like regular people...</description>
	<lastBuildDate>Fri, 23 Oct 2009 10:56:06 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='koder.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/5f6e08a814391918679220b7f58b3a54?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>I C# People...</title>
		<link>http://koder.wordpress.com</link>
	</image>
			<item>
		<title>I can be sooo childish and unprofessional sometimes&#8230;</title>
		<link>http://koder.wordpress.com/2009/10/23/i-can-be-sooo-childish-and-unprofessional-sometimes/</link>
		<comments>http://koder.wordpress.com/2009/10/23/i-can-be-sooo-childish-and-unprofessional-sometimes/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 10:56:06 +0000</pubDate>
		<dc:creator>Neil Barnwell</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://koder.wordpress.com/2009/10/23/i-can-be-sooo-childish-and-unprofessional-sometimes/</guid>
		<description><![CDATA[…but I can’t help myself.&#160; Read on.
Sent to 700+ people in &#34;CC&#34;: 
Good Morning     On behalf of [the recruitment company I work for] I would like to apologise for the email you may or may not have received yesterday evening. The email was comprised by a trainee resourcer, who has subsequently [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=koder.wordpress.com&blog=693573&post=143&subd=koder&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>…but I can’t help myself.&#160; Read on.</p>
<h4>Sent to 700+ people in &quot;CC&quot;: </h4>
<blockquote><p>Good Morning     <br />On behalf of [the recruitment company I work for] I would like to apologise for the email you may or may not have received yesterday evening. The email was comprised by a trainee resourcer, who has subsequently been reprimanded. The email was not sent to as many individuals as it may appear as it was cancelled in progress, but some of you may have received the mail none the less. Please again accept my sincerest apologies but rest assured the trainee, who I will not name for her own sake, has certainly been sufficiently reprimanded.      <br />Should you wish to air your grievances further, I will be happy to speak to you      <br />Apologies again      <br />[Name removed] </p>
</blockquote>
<h4>I replied to 500 people in &quot;BCC&quot; (couldn’t just leave it alone, could I?):</h4>
<blockquote><p>Hi [Name removed], </p>
<p>Many thanks for the notice, however I would like to point out that while I personally did not receive the email you mention, I&#8217;m disappointed that you have now sent my email address to everyone on this mailing list.&#160; This is a privacy concern for me given the nature of your business and the fact that I do not recall directly registering with your agency, and I would appreciate it if you and your colleagues would use the &quot;BCC&quot; field in future bulk correspondence of this nature. </p>
<p>Warm regards, </p>
<p>Neil. </p>
</blockquote>
<h4>Replied just to me:</h4>
<blockquote><p>Who actually gives a flyin fuck who u r..u muppet..     <br /> 1. U wernt even important enough to include in the email      <br />2. email addresses are as easyily avaiblable as your boyfriend      <br />3. So many things 1 cud say.. Try your best to carve sum sort of life out for yourself .. You foockin looser.. Neil </p>
<p>Sent from my iPhone </p>
</blockquote>
<h4>I replied (childishly BCC&#8217;ing those 500 again &#8211; sorry):</h4>
<blockquote><p>I am sure no-one cares who I am, I would just like to minimise the spam email I get, and care for the privacy of my personal information.&#160; I am very sorry to have offended you.&#160; I will take your advice and strive to become a better person.&#160; I aspire to walk in your very footsteps.&#160; With you as my inspiration, I am confident that with determination, good fortune and a strong stomach, I will achieve my goal. </p>
<p>Best wishes, and may your farts forever smell of roses, </p>
<p>Neil Barnwell. </p>
</blockquote>
Posted in General  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/koder.wordpress.com/143/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/koder.wordpress.com/143/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/koder.wordpress.com/143/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/koder.wordpress.com/143/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/koder.wordpress.com/143/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/koder.wordpress.com/143/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/koder.wordpress.com/143/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/koder.wordpress.com/143/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/koder.wordpress.com/143/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/koder.wordpress.com/143/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=koder.wordpress.com&blog=693573&post=143&subd=koder&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://koder.wordpress.com/2009/10/23/i-can-be-sooo-childish-and-unprofessional-sometimes/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fac42e3f137bfe0f34b8493c41d28f9e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Neil Barnwell</media:title>
		</media:content>
	</item>
		<item>
		<title>Strongly-typed ints</title>
		<link>http://koder.wordpress.com/2009/10/08/strongly-typed-ints/</link>
		<comments>http://koder.wordpress.com/2009/10/08/strongly-typed-ints/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 18:00:48 +0000</pubDate>
		<dc:creator>Neil Barnwell</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://koder.wordpress.com/?p=137</guid>
		<description><![CDATA[Weird title, no?  I couldn&#8217;t think of a snappier one, I&#8217;m afraid.
I&#8217;ve been thinking of a way to ensure that this sort of subtle bug/typo doesn&#8217;t happen:

public void MyMethod(int useCaseId)
{
   // Do something with the useCaseId
}

public void SomeOtherMethod()
{
   int userId = 12;
   int useCaseId = 15;
   [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=koder.wordpress.com&blog=693573&post=137&subd=koder&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Weird title, no?  I couldn&#8217;t think of a snappier one, I&#8217;m afraid.</p>
<p>I&#8217;ve been thinking of a way to ensure that this sort of subtle bug/typo doesn&#8217;t happen:</p>
<pre>
public void MyMethod(int useCaseId)
{
   // Do something with the useCaseId
}

public void SomeOtherMethod()
{
   int userId = 12;
   int useCaseId = 15;
   MyMethod(userId); // Ooops! Used the wrong value!
}
</pre>
<p>This bug would be hard to find because there&#8217;s no compile-time error, and you wouldn&#8217;t necessarily even get an exception at run-time.  You&#8217;d just get &#8220;unexpected results&#8221;.</p>
<p>To resolve this in a simple way, I&#8217;ve experimented with using empty enum definitions. Effectively making a user id a datatype (without going quite as far as a class or a struct):</p>
<pre>
public enum UseCaseId { // Empty... }
public enum UserId { // Empty... }

public void MyMethod(UseCaseId useCaseId)
{
   // Do something with the useCaseId
}

public void SomeOtherMethod()
{
   UserId userId = (UserId)12;
   UseCaseId useCaseId = (UseCaseId)15;
   MyMethod(userId); // Compile error!!
}
</pre>
<p>What d&#8217;you think?</p>
Posted in C#, Design  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/koder.wordpress.com/137/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/koder.wordpress.com/137/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/koder.wordpress.com/137/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/koder.wordpress.com/137/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/koder.wordpress.com/137/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/koder.wordpress.com/137/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/koder.wordpress.com/137/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/koder.wordpress.com/137/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/koder.wordpress.com/137/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/koder.wordpress.com/137/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=koder.wordpress.com&blog=693573&post=137&subd=koder&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://koder.wordpress.com/2009/10/08/strongly-typed-ints/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fac42e3f137bfe0f34b8493c41d28f9e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Neil Barnwell</media:title>
		</media:content>
	</item>
		<item>
		<title>Shadow copies?  More like &#8220;phantom&#8221; copies&#8230;</title>
		<link>http://koder.wordpress.com/2009/09/02/shadow-copies-more-like-phantom-copies/</link>
		<comments>http://koder.wordpress.com/2009/09/02/shadow-copies-more-like-phantom-copies/#comments</comments>
		<pubDate>Wed, 02 Sep 2009 16:45:24 +0000</pubDate>
		<dc:creator>Neil Barnwell</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://koder.wordpress.com/2009/09/02/shadow-copies-more-like-phantom-copies/</guid>
		<description><![CDATA[I’ve just run into a strange issue.  It’s the end of the day so I’ll leave it for tomorrow to work it out.
I have some code that is reading a config file, but when I open the file in TextPad, I see different values than my application does.  I checked it with Notepad.  Notepad agrees [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=koder.wordpress.com&blog=693573&post=131&subd=koder&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I’ve just run into a strange issue.  It’s the end of the day so I’ll leave it for tomorrow to work it out.</p>
<p>I have some code that is reading a config file, but when I open the file in TextPad, I see different values than my application does.  I checked it with Notepad.  Notepad agrees with my application, TextPad shows something else.</p>
<p>So I’ll tackle this in the morning, but it is pretty weird.  I think it might be a shadow copy issue (I’m running Vista).</p>
<p>Interesting times.</p>
Posted in General  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/koder.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/koder.wordpress.com/131/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/koder.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/koder.wordpress.com/131/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/koder.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/koder.wordpress.com/131/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/koder.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/koder.wordpress.com/131/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/koder.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/koder.wordpress.com/131/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=koder.wordpress.com&blog=693573&post=131&subd=koder&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://koder.wordpress.com/2009/09/02/shadow-copies-more-like-phantom-copies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fac42e3f137bfe0f34b8493c41d28f9e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Neil Barnwell</media:title>
		</media:content>
	</item>
		<item>
		<title>My Opinions on &#8220;Test Driven Development: By Example&#8221; by Kent Beck</title>
		<link>http://koder.wordpress.com/2009/09/02/opinions-on-tdd-by-kent-beck/</link>
		<comments>http://koder.wordpress.com/2009/09/02/opinions-on-tdd-by-kent-beck/#comments</comments>
		<pubDate>Wed, 02 Sep 2009 10:02:04 +0000</pubDate>
		<dc:creator>Neil Barnwell</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[kent beck]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[unit testing]]></category>

		<guid isPermaLink="false">http://koder.wordpress.com/?p=128</guid>
		<description><![CDATA[I&#8217;m trying to get into TDD, and to this end I&#8217;m halfway through reading this book: http://www.amazon.com/Test-Driven-Development-Kent-Beck/dp/0321146530
I&#8217;m not sure I agree with *all* the principles in it though.
Beck proposes a roughly three-step method:

Write a test.
Write whatever it takes in the least amount of time to get the stuff to compile and run successfully (a.k.a &#8220;get [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=koder.wordpress.com&blog=693573&post=128&subd=koder&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I&#8217;m trying to get into <a href="http://en.wikipedia.org/wiki/Test-driven_development">TDD</a>, and to this end I&#8217;m halfway through reading this book: <a href="http://www.amazon.com/Test-Driven-Development-Kent-Beck/dp/0321146530">http://www.amazon.com/Test-Driven-Development-Kent-Beck/dp/0321146530</a></p>
<p>I&#8217;m not sure I agree with *all* the principles in it though.</p>
<p>Beck proposes a roughly three-step method:</p>
<ol>
<li>Write a test.</li>
<li>Write whatever it takes in the least amount of time to get the stuff to compile and run successfully (a.k.a &#8220;get to a green bar as quickly as possible&#8221;).  This apparently can include hard-coding values (gulp).</li>
<li>Refactor to <span style="text-decoration:line-through;">fix up your deliberately dodgy code</span> &#8220;remove duplication&#8221;.</li>
</ol>
<p>I understand the concept of test-first, but as a singularly scatterbrained individual, I can&#8217;t bring myself to go with &#8220;fake it &#8217;till you make it&#8221; and &#8220;speed is more important than correct code (but only for a short while)&#8221;.  How will I remember/find those horrible bits of hard-coded code and ensure I&#8217;ve made them correct?  I think the trick to this (though it&#8217;s not said in as many words) is to write more tests that test the code from different angles until you get tests that fail with those hard-coded values, and fix them.  As a beginner of TDD, I don&#8217;t think I can be sure I&#8217;d do this effectively.  Essentially it is suggested that I write bugs into my code deliberately.  Eeeek!</p>
<p>What&#8217;s the point of a successfully run unit test <strong>if you know it&#8217;s testing broken code</strong>?  If you write any old code that will get the test working, you&#8217;ve totally negated the reason for the test in the first place.</p>
<blockquote><p>Unit Test + Correct Code should equal Green Bar</p>
<p>Unit Test + Incorrect Code should equal Red Bar</p></blockquote>
<p>not</p>
<blockquote><p>Unit Test + Broken Code = Green Bar</p></blockquote>
<p>I want <strong>tests that fail unless the code is correct</strong>.  While this isn&#8217;t always easy, I can&#8217;t bring myself to deliberately write incorrect code just to get a sucessful test.  If I have a green bar, what&#8217;s left to tell me what I need to do next?  As I said, apparently you just write more tests.</p>
<p>I prefer a different method:</p>
<ol>
<li>Write a test.</li>
<li>Write the code that makes the test work.</li>
<li>Refactor if I change my mind about that code, safe in the knowledge that as long as the test passes, the code is okay.</li>
</ol>
<p>To his credit, Beck does suggest in his book that the whole idea is that you gradually learn how big your changes in-between running tests should be.  That it is a learning process.  When you know what you need to make a given test pass, you are allowed to write that &#8220;Obvious Implementation&#8221;.</p>
<p>I&#8217;m basically not sure I like the recommendation that the process be quite so iterative.  If you have to run your tests after each tiny change, you&#8217;re effectively introducing a <a href="http://www.codinghorror.com/blog/archives/000860.html">compilation tax</a> which will quickly get frustrating.</p>
<p>I&#8217;d love you hear how you&#8217;ve interpreted Beck&#8217;s advice for your own TDD process.  I&#8217;m sure I&#8217;m just missing the point, so enlightenment is always welcome <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
Posted in C# Tagged: kent beck, TDD, unit testing <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/koder.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/koder.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/koder.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/koder.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/koder.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/koder.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/koder.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/koder.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/koder.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/koder.wordpress.com/128/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=koder.wordpress.com&blog=693573&post=128&subd=koder&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://koder.wordpress.com/2009/09/02/opinions-on-tdd-by-kent-beck/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fac42e3f137bfe0f34b8493c41d28f9e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Neil Barnwell</media:title>
		</media:content>
	</item>
		<item>
		<title>My Ego is Bigger than your Ego</title>
		<link>http://koder.wordpress.com/2009/02/24/my-ego-is-bigger-than-your-ego/</link>
		<comments>http://koder.wordpress.com/2009/02/24/my-ego-is-bigger-than-your-ego/#comments</comments>
		<pubDate>Tue, 24 Feb 2009 19:24:10 +0000</pubDate>
		<dc:creator>Neil Barnwell</dc:creator>
				<category><![CDATA[Building Applications]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[developers]]></category>
		<category><![CDATA[ego]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://koder.wordpress.com/?p=124</guid>
		<description><![CDATA[There’s no doubt that ego plays a part in software development.  We’re all in competition with each other.  Not just for work, but in terms of “geek points”.  I am unashamedly egotistical when it comes to software development.  I love to point out how clever I am and tell people about this crappy wonderful little [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=koder.wordpress.com&blog=693573&post=124&subd=koder&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p class="MsoNormal">There’s no doubt that ego plays a part in software development.<span>  </span>We’re all in competition with each other.<span>  </span>Not just for work, but in terms of “geek points”.<span>  </span>I am unashamedly egotistical when it comes to software development.<span>  </span>I love to point out how clever I am and tell people about this <span style="text-decoration:line-through;">crappy </span>wonderful little class I just wrote, or how I found a bug in so-and-so’s code that made a really big issue go away.<span>  </span>I can say this safe in the knowledge that I probably cause as many problems as I fix.<span>  </span>I <strong>know</strong> that never a day goes by when one of my colleagues in either this or a past life comes across some code I wrote and sighs quietly to themselves before taking a sip of a caffeine-infused drink and “refactoring” it.</p>
<p class="MsoNormal">Much as I’d like to be, I’m not the world’s greatest software developer.</p>
<p class="MsoNormal">I am, however, a geek.<span>  </span>This is where the competition and virtual chest thumping really comes from.</p>
<p class="MsoNormal">There are loads of ways to earn geek points.<span>  </span>Having a blog is one way but a bit obvious.<span>  </span>Better is to use <a href="http://twitter.com/home">Twitter</a> or <a href="http://friendfeed.com/">FriendFeed</a>.<span>  </span>How about <a href="http://stackoverflow.com/users/26414/neil-barnwell">an account on StackOverflow.com</a>?<span>  </span>You might have an iPhone* or contribute to an open source project.<span>  </span>Hell, you might even have a “<em>There’s no place like 127.0.0.1</em>” t-shirt in a different colour for each day of the week.<span>  </span>You should also use the word <em>grok</em> a lot.</p>
<p class="MsoNormal">An ego in software development, like competition in any other area, is <strong>a good and healthy thing</strong>.<span>  </span>It’s what drives us to create something better, cooler, faster, more reliable than our peers.<span>  </span><a href="http://www.codinghorror.com/blog/archives/000239.html">Developers love nothing more than to write software for developers</a>.<span>  </span>I believe this is both because we are writing it for ourselves, but also because we know that other developers are the only people who will really <em>grok</em> (+1 point) what we’ve done, and appreciate what it took to get there.<span>  </span>Other developers are the ones that will spot the bits where the mouse pointer didn’t turn to a wait cursor.<span>  </span>They’ll notice if your app becomes unresponsive and suggest clever things like multithreading and BackgroundWorkers.<span>  </span>You respond by saying “yeah, this is just the first version – that’s all part of the plan”.<span>  </span>We want our peers to say things like “Dude, that is so cool”.</p>
<p class="MsoNormal">This attitude isn’t necessarily what our employers are looking for, however.<span>  </span>There are those out there that can afford to let developers experiment, of course (Google is probably the best known for this), but most companies need to earn money.<span>  </span>They’re not interested in your implementation of Castle Windsor or ASP.NET MVC, and will struggle to be sympathetic with your reasoning.<span>  </span>“Because it’s so cool” doesn’t cut it.</p>
<p class="MsoNormal">Also, when you have multiple egos in a team, it can be mildly unproductive.<span>  </span>Software developers are intelligent people for the most part but that in itself can be the problem.<span>  </span>Put some together in a room and most will have their own variation on the solution.<span>  </span>At some point someone needs to step up and say “Okay, that’s all great stuff, and we’re going to do it like this…”.<span>  </span>Bear in mind that this doesn’t have to be the right solution.<span>  </span>Software and opinions can be changed.<span>  </span>You just need an agreed spokesperson or lead to make the decision so you can break the tie and each get back on with developing.  Of course, secretly knowing you had the best idea all along&#8230;</p>
<p class="MsoNormal">* And for bonus points you should have a 2G *and* a 3G version.</p>
Posted in Building Applications, General Tagged: developers, ego, geek, software development <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/koder.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/koder.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/koder.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/koder.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/koder.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/koder.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/koder.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/koder.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/koder.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/koder.wordpress.com/124/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=koder.wordpress.com&blog=693573&post=124&subd=koder&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://koder.wordpress.com/2009/02/24/my-ego-is-bigger-than-your-ego/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fac42e3f137bfe0f34b8493c41d28f9e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Neil Barnwell</media:title>
		</media:content>
	</item>
		<item>
		<title>I want on the netbook bandwagon!</title>
		<link>http://koder.wordpress.com/2009/02/19/i-want-on-the-netbook-bandwagon/</link>
		<comments>http://koder.wordpress.com/2009/02/19/i-want-on-the-netbook-bandwagon/#comments</comments>
		<pubDate>Thu, 19 Feb 2009 10:49:20 +0000</pubDate>
		<dc:creator>Neil Barnwell</dc:creator>
				<category><![CDATA[Off-topic]]></category>
		<category><![CDATA[netbook]]></category>

		<guid isPermaLink="false">http://koder.wordpress.com/2009/02/19/i-want-on-the-netbook-bandwagon/</guid>
		<description><![CDATA[I really want a netbook.  I think I first heard about them on Dave Winer’s site, scripting.com, but dismissed them at first.  However, having seen them “in the flesh” in the shops, I’ve totally fallen in love.  They perfectly fill the gap between what I can accomplish on my phone (I don’t have a fancy [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=koder.wordpress.com&blog=693573&post=123&subd=koder&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p class="MsoNormal">I really want a netbook.<span>  </span>I think I first heard about them on Dave Winer’s site, scripting.com, but dismissed them at first.<span>  </span>However, having seen them “in the flesh” in the shops, I’ve totally fallen in love.<span>  </span>They perfectly fill the gap between what I can accomplish on my phone (I don’t have a fancy smartphone) and what I need to be in front of a PC for. </p>
<ol type="1">
<li class="MsoNormal">Great      battery life.<span>  </span>I’ve heard of getting      over 5 hours on one charge.<span>  </span>That’s      great!<span>  </span>I don’t know if those      figures are for HDD/SSD and whether they include wi-fi usage, but they’re      still impressive.</li>
<li class="MsoNormal">Size      and weight.<span>  </span>These things are      seriously small.<span>  </span>I’m a fully-paid      up member of the man-bag club.<span>  </span>I      tend to have my rucksack with me most of the time because I carry a camera,      moleskine and diary most places.<span>  </span>A      netbook would fit perfectly in a man-bag (or handbag, of course), just      waiting for those visits to the local Starbucks for a coffee and a bit of      blogging.</li>
<li class="MsoNormal">Usable      keyboard.<span>  </span>Phone keyboards are      crap.<span>  </span>Palm top keyboards are      crap.<span>  </span>I’ve not used it but the lack      of tactile feedback means the laser projection keyboard is probably crap,      too.<span>  </span>There just aren’t any      solutions for mobile keyboards, but while the netbooks are small, they      seem to have usable keyboards.<span>  </span>You’re      not going to get the same words-per-minute rate as on a full-size      keyboard, but it won’t be too bad once you’ve had a practice.</li>
<li class="MsoNormal">Wi-fi.<span>  </span>How cool to go shopping, see stuff you      like, and go online to check the prices on Amazon?<span>  </span>Check your email while you drink your      coffee, Sir?</li>
<li class="MsoNormal">Fast      boot time.<span>  </span>I don’t know how this is      achieved.<span>  </span>Even if they’re cheating      and using some sort of hibernate functionality I don’t care.<span>  </span>These things need to go on and off      really, really quickly.<span>  </span>You want to      sit down, take it out, open it, use it, shut the lid and put it away      again.<span>  </span>You want 95% of that time to      be using it, not waiting for it to boot.<span>  </span>It needs to be as close to opening/closing a browser on your PC as      possible.</li>
<li class="MsoNormal">Price.<span>  </span>Cheap, cheap, cheap.<span>  </span>Well, reasonable.<span>  </span>For “cheap” you can get a netbook, but      don’t expect XP, SSD or a big screen (for small values of big).<span>  </span>For around £300 you can get a decent      spec device.<span>  </span>To be fair, the      Linux-based ones look okay.<span>  </span>They      seem to come with OpenOffice and FireFox.<span>  </span>I only want more because I’m a Windows guy and software      developer.<span>  </span>I will want to see what      I can get it to do for me.</li>
</ol>
<p>So, I’m saving up for one.<span>  </span>It’s my birthday in March so I’ll be saving any pennies I get towards a netbook.<span>  </span>I just hope it’s not a case of “never meet your heroes”…</p>
Posted in Off-topic Tagged: netbook <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/koder.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/koder.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/koder.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/koder.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/koder.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/koder.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/koder.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/koder.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/koder.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/koder.wordpress.com/123/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=koder.wordpress.com&blog=693573&post=123&subd=koder&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://koder.wordpress.com/2009/02/19/i-want-on-the-netbook-bandwagon/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fac42e3f137bfe0f34b8493c41d28f9e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Neil Barnwell</media:title>
		</media:content>
	</item>
		<item>
		<title>GTD &#8211; Outliners for thoughts</title>
		<link>http://koder.wordpress.com/2009/02/03/gtd-outliners-for-thoughts/</link>
		<comments>http://koder.wordpress.com/2009/02/03/gtd-outliners-for-thoughts/#comments</comments>
		<pubDate>Tue, 03 Feb 2009 23:08:12 +0000</pubDate>
		<dc:creator>Neil Barnwell</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Off-topic]]></category>
		<category><![CDATA[checklist]]></category>
		<category><![CDATA[note taking]]></category>
		<category><![CDATA[outliner]]></category>
		<category><![CDATA[todo list]]></category>

		<guid isPermaLink="false">http://koder.wordpress.com/?p=91</guid>
		<description><![CDATA[I think in trees.  I relate almost everything in one way or another in terms of some sort of hierarchy.  Trees and hierarchies feel elegant to me, and it shows in the way I make notes.  It&#8217;s really a more orderly way of displaying a mind-map.
I&#8217;ve always made my notes in a standard A4 notebook. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=koder.wordpress.com&blog=693573&post=91&subd=koder&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I think in trees.  I relate almost everything in one way or another in terms of some sort of hierarchy.  Trees and hierarchies feel elegant to me, and it shows in the way I make notes.  It&#8217;s really a more orderly way of displaying a mind-map.</p>
<p>I&#8217;ve always made my notes in a standard A4 notebook.  Meeting notes for me look something like this:</p>
<div id="attachment_114" class="wp-caption alignnone" style="width: 286px"><a rel="attachment wp-att-114" href="http://koder.wordpress.com/2009/02/03/gtd-outliners-for-thoughts/outline-notes/"><img class="size-full wp-image-114" title="outline-notes" src="http://koder.files.wordpress.com/2009/01/outline-notes.png?w=276&#038;h=187" alt="Outline Notes" width="276" height="187" /></a><p class="wp-caption-text">Outline Notes</p></div>
<p>The trouble is written notes is that they aren&#8217;t typically very editable.</p>
<p>It occurred to me that computers are pretty good at this sort of thing, so I looked for a software <a href="http://en.wikipedia.org/wiki/Outliner">outliner</a>.  I tried a few desktop software options including Dave Winer&#8217;s <a href="http://editor.opml.org/">opml Editor</a>, and the supremely awful free version of <a href="http://notecase.sourceforge.net/">NoteCase</a>. but quickly decided that the web was the way to go.</p>
<p>I&#8217;ve used <a href="http://evernote.com/">Evernote</a>, but it was actually too complex for my needs.  It focusses on each note being like a rich text document.  I want the tree structure to *be* the notes, just like in my A4 book.  It does have tagging though which would be nice in the future when I have many notes.</p>
<p>I&#8217;ve tried various mind-mapping options, but the outliner tree style is much easier for me than a sprawling spiders web with the ideas on.  They&#8217;re really the same thing, just laid out differently.</p>
<p><a href="http://todoist.com/">Todoist </a>was good, and one of my final two choices.  They have the indenting support, but in the end it was keyboard navigation that let it down.  You *can* move things around with the keyboard, but it wasn&#8217;t quite as slick as my final choice: <a href="http://checkvist.com/">Checkvist</a>.</p>
<p>Despite a few teethinc troubles (a friend of mine lost a document because of a bug) it is very, *very* fast to add, edit and manouvre items around the tree.  The keyboard support is excellent, and there are <a href="http://www.codinghorror.com/blog/archives/000980.html">very few actual features to bog it down</a>.  It&#8217;s a simple, clean interface that feels and works like an editable notepad.  I might actually break my habit of &#8220;no laptops in meetings&#8221; to take electronic meeting notes&#8230;</p>
Posted in General, Off-topic Tagged: checklist, note taking, outliner, todo list <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/koder.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/koder.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/koder.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/koder.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/koder.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/koder.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/koder.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/koder.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/koder.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/koder.wordpress.com/91/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=koder.wordpress.com&blog=693573&post=91&subd=koder&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://koder.wordpress.com/2009/02/03/gtd-outliners-for-thoughts/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fac42e3f137bfe0f34b8493c41d28f9e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Neil Barnwell</media:title>
		</media:content>

		<media:content url="http://koder.files.wordpress.com/2009/01/outline-notes.png" medium="image">
			<media:title type="html">outline-notes</media:title>
		</media:content>
	</item>
		<item>
		<title>Nobody builds bridges any more!</title>
		<link>http://koder.wordpress.com/2009/01/27/nobody-builds-bridges-any-more/</link>
		<comments>http://koder.wordpress.com/2009/01/27/nobody-builds-bridges-any-more/#comments</comments>
		<pubDate>Tue, 27 Jan 2009 22:50:45 +0000</pubDate>
		<dc:creator>Neil Barnwell</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[innovation]]></category>

		<guid isPermaLink="false">http://koder.wordpress.com/?p=83</guid>
		<description><![CDATA[Once upon a time we had this thing we call the Industrial Revolution.  We did amazing things during this time.  We built steam engines, railways, bridges and canals.  These were massive projects that took years of blood, sweat and tears.  In the 20th century we had what some call the second industrial revolution.  The automotive [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=koder.wordpress.com&blog=693573&post=83&subd=koder&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Once upon a time we had this thing we call the <a href="http://en.wikipedia.org/wiki/Industrial_Revolution">Industrial Revolution</a>.  We did amazing things during this time.  We built steam engines, railways, <a href="http://www.clifton-suspension-bridge.org.uk/">bridges</a> and canals.  These were massive projects that took years of blood, sweat and tears.  In the 20th century we had what some call the second industrial revolution.  The automotive industry appeared and began to thrive, information technology appeared and began to grow.</p>
<div class="wp-caption alignnone" style="width: 310px"><a href="http://upload.wikimedia.org/wikipedia/commons/thumb/9/9e/Maquina_vapor_Watt_ETSIIM.jpg/300px-Maquina_vapor_Watt_ETSIIM.jpg"><img title="Watt Steam Engine" src="http://upload.wikimedia.org/wikipedia/commons/thumb/9/9e/Maquina_vapor_Watt_ETSIIM.jpg/300px-Maquina_vapor_Watt_ETSIIM.jpg" alt="Watt Steam Engine" width="300" height="223" /></a><p class="wp-caption-text">Watt Steam Engine</p></div>
<p>That was the <strong>revolution</strong>.  Since then there&#8217;s been some <strong>evolution</strong> of those existing ideas, but relatively few new genuinely ones.</p>
<p>No-one is building those fantastic railways and the amazing bridges that took them over seemingly impassable territory.</p>
<p>Why?</p>
<p>It could be funding, but where did the money come from in the old days?  Do we no longer have men like <a href="http://en.wikipedia.org/wiki/Isambard_Kingdom_Brunel">Brunel </a>who will put everything on the line and strive to make these things happen?</p>
<p>Have we had the next revolution already?  If so what will the next iteration look like?  Will we even have one?  Are we instead going to maintain the current gentle evolution from one new idea to the next.  Assembly, C, C++, Java, .NET, JSP, ASP.NET, (N)Hibernate, ASP.NET MVC, jQuery and so on.   Building blocks built on building blocks.  Walls taken down, put up a different way.  An organic system where the latest trends flow and follow the current thinking the way a shoal of fish move together in the sea.</p>
<p>Computers as we know them appeared first with valves, then transistors, and progressed to microchips.  Then the microchips started getting smaller and faster.  But still microchips.  Now, I&#8217;m only 27, but I&#8217;m not convinced that computers have really <strong>fundamentally changed</strong> in the past 20 years or so.</p>
<p>In terms of software, the main operating systems as we know them today, and the companies that built them, were the last revolution.  We as software developers are really just building new trains to run on that old railway.  There&#8217;ll come a limit to what we can do, so while that&#8217;s a little way off, what&#8217;s the next &#8220;big leap&#8221; to take us onto greater things?  Let&#8217;s build a new railway that&#8217;ll cross new cravasses and take us new places.  Who&#8217;s the Brunel of our time?</p>
Posted in General Tagged: Design, innovation <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/koder.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/koder.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/koder.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/koder.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/koder.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/koder.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/koder.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/koder.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/koder.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/koder.wordpress.com/83/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=koder.wordpress.com&blog=693573&post=83&subd=koder&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://koder.wordpress.com/2009/01/27/nobody-builds-bridges-any-more/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fac42e3f137bfe0f34b8493c41d28f9e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Neil Barnwell</media:title>
		</media:content>

		<media:content url="http://upload.wikimedia.org/wikipedia/commons/thumb/9/9e/Maquina_vapor_Watt_ETSIIM.jpg/300px-Maquina_vapor_Watt_ETSIIM.jpg" medium="image">
			<media:title type="html">Watt Steam Engine</media:title>
		</media:content>
	</item>
		<item>
		<title>Tip for debugging console applications in C#</title>
		<link>http://koder.wordpress.com/2009/01/20/tip-for-debugging-console-applications-in-c/</link>
		<comments>http://koder.wordpress.com/2009/01/20/tip-for-debugging-console-applications-in-c/#comments</comments>
		<pubDate>Tue, 20 Jan 2009 21:22:51 +0000</pubDate>
		<dc:creator>Neil Barnwell</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[console]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[trace]]></category>

		<guid isPermaLink="false">http://koder.wordpress.com/?p=74</guid>
		<description><![CDATA[Sometimes in a C# console application, you want to output text to the console window for release builds, meaning Debug.WriteLine() is out of the question.  Maybe you also want the output in some sort of log file?  It would also be handy to be able to indent the output to make it clearer what your [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=koder.wordpress.com&blog=693573&post=74&subd=koder&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Sometimes in a C# console application, you want to output text to the console window for release builds, meaning Debug.WriteLine() is out of the question.  Maybe you also want the output in some sort of log file?  It would also be handy to be able to indent the output to make it clearer what your application is doing.  This makes simple Console.WriteLine() impractical, too.</p>
<p>If it&#8217;s an enterprise application you&#8217;d probably look at <a href="http://logging.apache.org/log4net/index.html">Log4Net</a> or similar, but if it&#8217;s just a little something you&#8217;ve knocked up, then that might be overkill so try this at the start of your application:</p>
<blockquote>
<pre>Trace.Listeners.Add(new TextWriterTraceListener(Console.Out));</pre>
</blockquote>
<p>The <a href="http://support.microsoft.com/kb/815788">documentation for Trace and Debug</a> gives more detail, but the great thing with this approach is you can now format your logging output in a more clear way:</p>
<blockquote>
<pre>Trace.WriteLine("Starting loop...");
Trace.Indent();
foreach (string name in names)
{
	Trace.WriteLine(name);
}
Trace.Unindent();
Trace.WriteLine("Completed loop");</pre>
</blockquote>
<p>Like I said, I&#8217;m not proposing it as best practice for large-scale production systems, but for those occasions when you need to see into your application without debugging it, it might prove useful.</p>
Posted in C#, Design, General Tagged: C#, console, debug, debugging, trace <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/koder.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/koder.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/koder.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/koder.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/koder.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/koder.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/koder.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/koder.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/koder.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/koder.wordpress.com/74/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=koder.wordpress.com&blog=693573&post=74&subd=koder&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://koder.wordpress.com/2009/01/20/tip-for-debugging-console-applications-in-c/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fac42e3f137bfe0f34b8493c41d28f9e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Neil Barnwell</media:title>
		</media:content>
	</item>
		<item>
		<title>Undo, UNDO!</title>
		<link>http://koder.wordpress.com/2009/01/13/undo-undo/</link>
		<comments>http://koder.wordpress.com/2009/01/13/undo-undo/#comments</comments>
		<pubDate>Tue, 13 Jan 2009 23:20:36 +0000</pubDate>
		<dc:creator>Neil Barnwell</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[mistakes]]></category>
		<category><![CDATA[undo]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://koder.wordpress.com/?p=81</guid>
		<description><![CDATA[There is little more frustrating when using a computer than message boxes.  Technical people ignore them because we think we know they don&#8217;t mean anything, and non-technical people just use a rule of thumb (always yes or always cancel).  No-one ever reads the small print.
There&#8217;s not much point asking users if they&#8217;re sure before letting [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=koder.wordpress.com&blog=693573&post=81&subd=koder&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>There is little more frustrating when using a computer than message boxes.  Technical people ignore them because we think we know they don&#8217;t mean anything, and non-technical people just use a rule of thumb (always yes or always cancel).  <a href="http://www.codinghorror.com/blog/archives/000676.html">No-one ever reads the small print</a>.</p>
<p>There&#8217;s not much point asking users if they&#8217;re sure before letting them do something.  They will be absolutely positively sure.  Until shortly after they&#8217;ve actually done it.  Instead, we should accept that users make mistakes.  Rather than blame them for blindly clicking OK on our message boxes, we should embrace the human condition and strive to try and provide rollback with *all* functions in our applications.</p>
<p>Instead of</p>
<blockquote><p>&#8220;Are you sure you want to book 3000 items of stock in?&#8221;</p></blockquote>
<p>try</p>
<blockquote><p>&#8220;3000 items of stock booked in.&#8221; and offer CTRL+Z to simply remove those 3000 items again instantly.</p></blockquote>
<p>This is a hard thing to get people to come round to.  It&#8217;s so ingrained to rely on confirmation *before* the action.  Maybe we should be more forgiving and provide a means to recover from their mistakes, rather than having them hit our call centre in a panic when something goes wrong?</p>
<p>UPDATE:</p>
<p>Note that I&#8217;m not saying you should never use messageboxes.  I&#8217;m just suggesting that the &#8220;Are you sure?&#8221; concept in particular be avoided.</p>
Posted in General Tagged: mistakes, undo, usability <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/koder.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/koder.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/koder.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/koder.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/koder.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/koder.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/koder.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/koder.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/koder.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/koder.wordpress.com/81/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=koder.wordpress.com&blog=693573&post=81&subd=koder&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://koder.wordpress.com/2009/01/13/undo-undo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fac42e3f137bfe0f34b8493c41d28f9e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Neil Barnwell</media:title>
		</media:content>
	</item>
	</channel>
</rss>