<?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>Nathan Lee &#187; programming</title>
	<atom:link href="http://nathan-lee.com/blog/tag/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://nathan-lee.com/blog</link>
	<description>Nathan musing, ranting and raving about the world.</description>
	<lastBuildDate>Wed, 30 Nov 2011 22:11:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Banishing &#8220;&#187;&#8221; from wordpress titles</title>
		<link>http://nathan-lee.com/blog/2010/01/04/banishing-from-wordpress-titles/</link>
		<comments>http://nathan-lee.com/blog/2010/01/04/banishing-from-wordpress-titles/#comments</comments>
		<pubDate>Mon, 04 Jan 2010 01:32:12 +0000</pubDate>
		<dc:creator>Nathan</dc:creator>
				<category><![CDATA[Science and Techie stuff]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[removing]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[title]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://nathan-lee.com/blog/?p=952</guid>
		<description><![CDATA[Just one of those niggly little annoying things that I did a quick look through the wordpress templates and couldn't figure out where it was coming from, but I'm not a fan of the "»" (&#187;) character stuffed in between the blog name and the blog title.]]></description>
			<content:encoded><![CDATA[<p>Just one of those niggly little annoying things that I did a quick look through the wordpress templates and couldn&#8217;t figure out where it was coming from, but I&#8217;m not a fan of the &#8220;»&#8221; (&amp;raquo;) character stuffed in between the blog name and the blog title.</p>
<p>It means attempt to digg or share links end up with the ugly beast rearing its head.</p>
<p><strong>The solution </strong></p>
<p>Find the header.php in the theme editor, locate the bit that looks like:</p>
<p><code>&lt;?php wp_title(); ?&gt;</code></p>
<p>and change it to:<br />
<code>&lt;?php wp_title('-'); ?&gt;</code></p>
<p>The explanation is that wp_title takes in a separator character and defaults to the dreaded &#8220;»&#8221; if none is supplied (so .</p>
<p>Thanks to<a href="http://www.onlinenerd24.de/2008/09/29/remove-the-from-your-wordpress-title/" target="_blank"> this guy here</a> for the info.</p>
]]></content:encoded>
			<wfw:commentRss>http://nathan-lee.com/blog/2010/01/04/banishing-from-wordpress-titles/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Acadamia vs business *sigh*</title>
		<link>http://nathan-lee.com/blog/2009/12/01/acadamia-vs-business-sigh/</link>
		<comments>http://nathan-lee.com/blog/2009/12/01/acadamia-vs-business-sigh/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 00:46:05 +0000</pubDate>
		<dc:creator>Nathan</dc:creator>
				<category><![CDATA[Funny]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[academia]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[xkcd]]></category>

		<guid isPermaLink="false">http://nathan-lee.com/blog/?p=925</guid>
		<description><![CDATA[The business world vs academic world view achievement a little differently (xkcd comic).]]></description>
			<content:encoded><![CDATA[<p>Those &#8220;cool bits&#8221; of functionality on a project you occasionally get to sink your teeth into at work usually turn out something like this.<br />
<div class="wp-caption alignnone" style="width: 454px"><a href="http://imgs.xkcd.com/comics/academia_vs_business.png" rel="lightbox[925]"><img title="XKCD nails it again: acadamia vs business" src="http://imgs.xkcd.com/comics/academia_vs_business.png" alt="XKCD nails it again: acadamia vs business" width="444" height="229" /></a><p class="wp-caption-text">XKCD nails it again: acadamia vs business</p></div></p>
]]></content:encoded>
			<wfw:commentRss>http://nathan-lee.com/blog/2009/12/01/acadamia-vs-business-sigh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>On ruby&#8217;s piss poor &#8220;success&#8221; story list..</title>
		<link>http://nathan-lee.com/blog/2009/05/06/on-rubys-piss-poor-success-story-list/</link>
		<comments>http://nathan-lee.com/blog/2009/05/06/on-rubys-piss-poor-success-story-list/#comments</comments>
		<pubDate>Tue, 05 May 2009 15:46:46 +0000</pubDate>
		<dc:creator>Nathan</dc:creator>
				<category><![CDATA[Science and Techie stuff]]></category>
		<category><![CDATA[fanboys]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[marketing]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://nathan-lee.com/blog/?p=455</guid>
		<description><![CDATA[The programming language "Ruby" attracts more than its fair share of fanboys. So why does it have such a pathetic list of "successes". What could it do to improve it?]]></description>
			<content:encoded><![CDATA[<p>Fresh off a discussion with an old buddy of mine Nick: I reckon I could compile a list of IT project &#8220;success stories&#8221; that I personally have worked on that beat the list that the Ruby site has up.</p>
<p>I&#8217;d say just about every consultant worth their salt could better the list, so here&#8217;s my thoughts on how to improve it (my apologies to the Ruby fanboys who treat this thing as a <a href="http://nathan-lee.com/blog/category/atheism-and-religion/">religion</a>, but I don&#8217;t think much of that either).</p>
<p><img class="alignnone" title="Fanboys" src="http://i8.photobucket.com/albums/a8/rubybagonia/fanboys-300x300.jpg" alt="Fanboys" width="300" height="300" /></p>
<p>(For the non techies: <a href="http://www.ruby-lang.org/en/" target="_blank">ruby</a> is a computer programming language. Have a read of my earlier post on <a href="http://nathan-lee.com/blog/2009/01/21/explaining-it-geeks-for-normal-people-naming-stuff/">Explaining IT geeks for normal people as background</a>).</p>
<p>Let&#8217;s take a look at the more impressive sounding <a href="http://www.ruby-lang.org/en/documentation/success-stories/" target="_blank">Ruby&#8217;s success stories</a> shall we:</p>
<p><strong>Ruby at NASA.. Well, kinda.<br />
</strong></p>
<p>No, actually it&#8217;s not used for anything flight related, or real-time data feed processing (though <a href="http://www.sun.com/aboutsun/media/features/mars.html" target="_blank">java was</a>) it&#8217;s used for simulations. Fair enough: that&#8217;s critical work indeed, but where is ruby used?</p>
<p>From: &#8220;<a href="http://www.ibm.com/developerworks/linux/library/l-oslab/" target="_blank">Open source in the lab</a>&#8221;</p>
<blockquote><p>&#8220;we are using Ruby to create custom tools to support some of our XP [eXtreme Programming] practices like automated acceptance testing and unit testing. We have also managed to write a Fortran 95 mouth for Ruby&#8217;s awesome documentation tool, Rdoc, to provide automated API documentation.  We also use Ruby for Fortran code generation, for conditional compilation, and as glue to combine various code elements into multidisciplinary combinations. We are evolving toward a goal of wrapping nearly all the Fortran bits with Ruby.&#8221;</p></blockquote>
<p>Ok, so they&#8217;re using Ruby to generate Fortran 95 and some documentation. Fantastic.</p>
<p>Moving on. A research group in Motorola uses it.. No mention of what for or how it is used in the making of phones that run Java Mobile Edition. Note the singular &#8220;group&#8221;. In a place the size of motorola: if that&#8217;s all they have it&#8217;s nothing more than a curiosity. Like the following.</p>
<div id="attachment_460" class="wp-caption alignnone" style="width: 383px"><a href="http://nathan-lee.com/blog/wp-content/uploads/2009/05/hellovaderip3.jpg" rel="lightbox[455]"><img class="size-medium wp-image-460" title="hellovaderip3" src="http://nathan-lee.com/blog/wp-content/uploads/2009/05/hellovaderip3-373x500.jpg" alt="A curiosity. Like this." width="373" height="500" /></a><p class="wp-caption-text">A curiosity. Like this.</p></div>
<p>Next is Google sketchup supporting writing plugins as ruby. That&#8217;s not a bad use of ruby, something simple, something suitable for a scripting language.The application doesn&#8217;t appear to be written in Ruby though.</p>
<p>Onto the all important &#8220;business&#8221; section. The big one right &#8211; the &#8220;Enterprise&#8221; aspect of a programming platform. From the Ruby about page we get an idea of how Ruby measures its success:</p>
<p><img class="alignnone" title="Ruby's measure of success" src="http://gmane.org/plot-rate.php?group=gmane.comp.lang.ruby.general&amp;width=280&amp;height=140&amp;title=Ruby-Talk+Activity+over+4+Years" alt="Ruby's measure of success: how much people talk on the mailing list." width="280" height="140" /></p>
<p>Yep, how much they talk on a mailing list. Or the obscure TIOBE Software index, which measures how many google/youtube/whatever searches there are for something. Strong emphasis on talk being important. Kinda like my blog rants really, though the hot air to person ratio&#8217;s not bad with mine. <img src='http://nathan-lee.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Anyhow, what&#8217;s there for business: toronto rehab tracking support calls. That&#8217;s useful work, doing good etc. I don&#8217;t really have anything too amusing to say, so I&#8217;ll just post a picture of my t-shirt that&#8217;s somewhat related.</p>
<div id="attachment_461" class="wp-caption alignnone" style="width: 286px"><a href="http://nathan-lee.com/blog/wp-content/uploads/2009/05/rehabsforquitters.jpg" rel="lightbox[455]"><img class="size-full wp-image-461" title="rehabsforquitters" src="http://nathan-lee.com/blog/wp-content/uploads/2009/05/rehabsforquitters.jpg" alt="Rehab's for quitters" width="276" height="184" /></a><p class="wp-caption-text">My drinking shirt: Rehab&#39;s for quitters.</p></div>
<p>Further down the page and the robotics project sounded like it was interesting and using Ruby in a bit more of a &#8220;hardcore core&#8221; application way. ODS also sounds like it is using Ruby for its core purpose too though <a href="http://scott.free-bsd.org/cgi-bin/stats.cgi" target="_blank">the ODS stats</a> have the sound of tumble weeds whistling by (but hey, I know that feeling with my oft neglected blog).</p>
<p><strong>Things I&#8217;ve worked on that involve java/JEE<br />
</strong></p>
<p>I&#8217;ll just pick out a few things (names changed to protect the innocent) that would make the list sound halfway decent that I&#8217;ve worked on.</p>
<ul>
<li>An accounting software firm&#8217;s sales reporting web portal and company intranet written in J2EE.</li>
<li>Worldwide electronic retailer&#8217;s ordering/ERP partner integration.</li>
<li>Australia wide Logistics company&#8217;s transport booking mechanism.</li>
<li>Fortune 500 company&#8217;s Asia pacific order portal.</li>
<li>Customisation of a hugely popular enterprise wiki and bug tracking system.</li>
<li>UK Insurance core claims handling system.</li>
<li>Investment bank&#8217;s trading system integration.</li>
</ul>
<p>Those are just the ones I can remember working on that would sound impressive (particularly if names were attached, but I don&#8217;t consult and tell <img src='http://nathan-lee.com/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  ).</p>
<p>A bit of a read of a book on making things memorable (e.g. <a href="http://madetostick.com/" target="_blank">Made to stick</a>)</p>
<p><img class="alignnone" title="Made to stick book" src="http://www.unb.ca/jhsc/resourcectr/blog/stick.gif" alt="Made to stick book" width="350" height="455" /></p>
<p>Hell, I even worked on a website with a teenage menstrual cycle calendar which would at least be a sticky example to put in the list.</p>
<p>Wait..  that came out wrong.</p>
<p>Moving on.</p>
<p><strong>What Ruby needs to do</strong></p>
<p>Surely they can throw out the request to their ever so chatty user base. Get someone somewhere who is willing to update their list with something other than fluff (I&#8217;ve been to plenty of sales meetings as a pre-sales consultant, so I know a bit about fluff detection). Stop wanking on about how elegant this particular &#8220;for loop&#8221; syntax is compared to another one that uses 3 extra characters and do a bit of marketing. If you care about that low level coding shit: you need to aim for grander things in your career perhaps something involving personal skills, or learn to use an IDE with code assist because that stuff not only doesn&#8217;t matter: it makes for harder to understand code.</p>
<p>Steer away from the &#8220;website was using ruby til it didn&#8217;t scale and then abandoned the codebase completely&#8221; examples. That means <a href="http://www.theregister.co.uk/2009/04/01/twitter_on_scala/" target="_blank">twitter</a>. Not that you really want to tie yourself to that useless platform.</p>
<p>Remember &#8220;the right tool for the job&#8221; applies especially to scripting languages. We&#8217;re only now recovering from the fallout of years of people thinking VB was the one language to rule them all. Don&#8217;t plunge us into another dark age of indescipherable spaghetti code in a language never really meant to be the backbone of an enterprise. Not saying it can&#8217;t be done, but..</p>
<p>If you must, then try Yellowpages.com. It was one I found with some googling (Couldn&#8217;t actually visit it from here in Oz for some reason as it was offline as far as firefox and IE from my machine were concerned.. might be country filtering or something?). But that&#8217;s probably their one proper, high traffic, universally visible site running ruby. Why that wasn&#8217;t immediately jammed into the success stories I&#8217;m not sure. Perhaps the rehab clinic entry needs to get knocked down a notch.</p>
<p>I&#8217;m sure there&#8217;s some good news out there to be aggregated, polished and stuck on the website so that smug twits like myself can&#8217;t poke fun at it (from the high horse of my little blog).</p>
<div id="attachment_459" class="wp-caption alignnone" style="width: 410px"><a href="http://nathan-lee.com/blog/wp-content/uploads/2009/05/complaints.jpg" rel="lightbox[455]"><img class="size-medium wp-image-459" title="complaints" src="http://nathan-lee.com/blog/wp-content/uploads/2009/05/complaints-400x300.jpg" alt="Enough with the complaining" width="400" height="300" /></a><p class="wp-caption-text">Enough with the complaining</p></div>
]]></content:encoded>
			<wfw:commentRss>http://nathan-lee.com/blog/2009/05/06/on-rubys-piss-poor-success-story-list/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Back to reality: new job!</title>
		<link>http://nathan-lee.com/blog/2009/04/12/back-to-reality-new-job/</link>
		<comments>http://nathan-lee.com/blog/2009/04/12/back-to-reality-new-job/#comments</comments>
		<pubDate>Sun, 12 Apr 2009 04:16:47 +0000</pubDate>
		<dc:creator>Nathan</dc:creator>
				<category><![CDATA[Work]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Sydney]]></category>

		<guid isPermaLink="false">http://nathan-lee.com/blog/?p=382</guid>
		<description><![CDATA[Well, I finished my first (half) week at a new job this shortened week lead up to Easter. I picked a good start week to ease back into work after about 6 months of travelling and touring. Sydney's great.]]></description>
			<content:encoded><![CDATA[<p>Well, I finished my first (half) week at a new job this shortened week lead up to Easter. I picked a good start week to ease back into work after about 6 months of travelling and <a href="http://nathan-lee.com/blog/tag/touring/">touring</a>.   It&#8217;s good to be working in the city CBD of Sydney, as of all the places in the world I&#8217;ve visited: Sydney I rate most overall liveable. There&#8217;s something about the aesthetics of Sydney which make the place quite conducive to a happy existence.</p>
<p>In terms of work itself I&#8217;ve been doing the usual reading half a wiki to find out what things are and how things are done. Fighting the urge to <a href="http://nathan-lee.com/blog/2009/03/11/24-is-grooming-society-for-mainstream-torture/">track down and torture</a> the people responsible for making J2EE (JEE sorry) and messaging kinda painful to get up and running: IBM.</p>
<p><em>RANT WARNING!!</em></p>
<p>I mean I used to whinge about IBM&#8217;s painful install process back 5 years ago when I taught Sun&#8217;s J2EE architecture and developer courses and STILL nothing has changed?? Get on with it guys. You do so much other stuff so well, but boy do you make people suffer to get things installed!</p>
<p><em>END RANT!!</em></p>
<p>What else is new in enterprise techie stuff in Sydney:</p>
<ul>
<li>Still no one using ruby (or one of these other fanboy languages) on anything important or real (thank fuck for that) and using either Java or .net based stuff.</li>
<li>Lots of places with hiring freezes, the usual stupidity to get around such things (hiring contractors instead of employees).</li>
<li>A bit of <a href="http://nathan-lee.com/blog/2009/03/12/the-credit-crisis-in-pretty-pictures-and-animations/">gloom about the economy</a> but no where near say the UK (the part of the world that invented gloom).</li>
<li>Ajax stuff making a bit more of a show (google&#8217;s framework in particular)</li>
</ul>
<p>I&#8217;m working with a couple of colleagues of mine from the old days at <a href="http://www.customware.net" target="_blank">CustomWare Asia Pacific</a>. Things seem to be in place fairly well: automated build stuff, unit testing, morning status stand-up (although what sadistic fucker puts these at 9am eh?).</p>
<p>Anyhow, it&#8217;s kinda good to be back working although thankfully the daylight saving hour helped me be a bit more awake. Guess I&#8217;m an upstanding member of the community again (e.g. I&#8217;m paying tax and helping clog up the CBD again?) and I don&#8217;t feel quite so worried about dropping a chunk of cash on a <a href="http://nathan-lee.com/blog/2009/04/01/new-wheels-triumph-daytona-675-2009/">new toy</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://nathan-lee.com/blog/2009/04/12/back-to-reality-new-job/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Web engineering: How the BBC makes websites (but not presentations)</title>
		<link>http://nathan-lee.com/blog/2009/01/30/web-engineering-how-the-bbc-makes-websites-but-not-presentations/</link>
		<comments>http://nathan-lee.com/blog/2009/01/30/web-engineering-how-the-bbc-makes-websites-but-not-presentations/#comments</comments>
		<pubDate>Fri, 30 Jan 2009 10:23:25 +0000</pubDate>
		<dc:creator>Nathan</dc:creator>
				<category><![CDATA[Science and Techie stuff]]></category>
		<category><![CDATA[BBC]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[web engineering]]></category>

		<guid isPermaLink="false">http://nathan-lee.com/blog/?p=289</guid>
		<description><![CDATA[Insight into how the BBC makes their websites and a comment on making that more interesting: death by powerpoint!]]></description>
			<content:encoded><![CDATA[<p>This article from the dev team on part of the BBC massive hive of websites:  &#8220;<a href="http://www.bbc.co.uk/blogs/radiolabs/2009/01/how_we_make_websites.shtml" target="_blank">How the BBC makes websites</a>&#8221; gives a pretty good insight into my earlier claim that &#8220;Software Engineering is a visualisation heavy process&#8221; (see earlier post:  &#8220;<a href="http://nathan-lee.com/blog/2009/01/21/explaining-it-geeks-for-normal-people-naming-stuff/" target="_blank">Explaining IT geeks for normal people: naming stuff</a>&#8221; ).</p>
<p>Although I&#8217;d have to say: &#8220;where are all the pictures&#8221; when looking at the <a href="http://www.slideshare.net/fantasticlife/how-we-make-websites-presentation?type=presentation" target="_blank">text heavy slideshow</a>.</p>
<div id="__ss_965966" style="width: 425px; text-align: left;"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" title="How We Make Websites" href="http://www.slideshare.net/fantasticlife/how-we-make-websites-presentation?type=powerpoint">How We Make Websites</a><object width="425" height="355" data="http://static.slideshare.net/swf/ssplayer2.swf?doc=how-we-make-websites-1233237331377481-3&amp;stripped_title=how-we-make-websites-presentation" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=how-we-make-websites-1233237331377481-3&amp;stripped_title=how-we-make-websites-presentation" /><param name="allowfullscreen" value="true" /></object></p>
<div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/fantasticlife">fantasticlife</a>. (tags: <a style="text-decoration:underline;" href="http://slideshare.net/tag/programmes">programmes</a> <a style="text-decoration:underline;" href="http://slideshare.net/tag/ia">ia</a>)</div>
</div>
<p>They were there in the original post:</p>
<p><img title="Pic on design process from BBC" src="http://www.bbc.co.uk/blogs/radiolabs/assets_c/2009/01/ERD-thumb-450x337-thumb-450x337.jpg" alt="Pic on design process from BBC" width="450" height="337" /></p>
<p>Someone needs to temper their desire to put an audience into a lasting coma with a bit of &#8220;death by powerpoint&#8221;:</p>
<div id="__ss_85551" style="width: 425px; text-align: left;"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" title="Death by PowerPoint" href="http://www.slideshare.net/thecroaker/death-by-powerpoint?type=presentation">Death by PowerPoint</a><object width="425" height="355" data="http://static.slideshare.net/swf/ssplayer2.swf?doc=death-by-powerpoint4344&amp;stripped_title=death-by-powerpoint" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=death-by-powerpoint4344&amp;stripped_title=death-by-powerpoint" /><param name="allowfullscreen" value="true" /></object></p>
<div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/thecroaker">Alexei Kapterev</a>. (tags: <a style="text-decoration:underline;" href="http://slideshare.net/tag/tips">tips</a> <a style="text-decoration:underline;" href="http://slideshare.net/tag/powerpoint">powerpoint</a>)</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://nathan-lee.com/blog/2009/01/30/web-engineering-how-the-bbc-makes-websites-but-not-presentations/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Explaining IT geeks for normal people: naming stuff</title>
		<link>http://nathan-lee.com/blog/2009/01/21/explaining-it-geeks-for-normal-people-naming-stuff/</link>
		<comments>http://nathan-lee.com/blog/2009/01/21/explaining-it-geeks-for-normal-people-naming-stuff/#comments</comments>
		<pubDate>Wed, 21 Jan 2009 20:18:44 +0000</pubDate>
		<dc:creator>Nathan</dc:creator>
				<category><![CDATA[Science and Techie stuff]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[naming]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://nathan-lee.com/blog/?p=173</guid>
		<description><![CDATA[Programmers are strange people. Programmers (coders) know it although tend to be fairly normal in lots of ways (they play sports, drink beer go snowboarding and watch TV like other mortals). Unlike other people though they have a suitable outlet for their obsessive compulsive disorder(OCD)/anal retentive tendencies and thus can embrace it without anyone knowing about it.]]></description>
			<content:encoded><![CDATA[<p>Programmers are, by and large, slightly strange people. Programmers (coders) know it although tend to be fairly normal in lots of ways (they play sports, drink beer go snowboarding and watch TV like other mortals). Unlike other people though they have a suitable outlet for their <a href="http://www.nimh.nih.gov/health/topics/obsessive-compulsive-disorder-ocd/index.shtml" target="_blank">obsessive compulsive disorder</a>(OCD)/anal retentive tendencies and thus can embrace it without anyone knowing about it. They do this by naming the parts of things they work with in a very anally retentive fashion.</p>
<p>Before I go too much further I have to explain a little bit about how modern programming (referred to as “languages” because, like the real world they require work to understand and each do things differently) works:</p>
<ul>
<li>software has a name (e.g. “Microsoft word”)</li>
<li>there are bits of smaller software that make up “big” software</li>
<li>those smaller bits have names (e.g. “Spell checker”, “Printing”, “Page formatting”)</li>
<li>those smaller bits are made of still smaller bits of software</li>
<li>those smaller smaller bits have names (e.g. “getSpellingErrorsInText”, “sendJobToPrinter”, “<a href="http://images1.wikia.nocookie.net/uncyclopedia/images/3/3a/Clippit_threat.png" rel="lightbox[173]">showFuckingAnnoyingPaperClip</a>”)</li>
<li>and so on (get the picture)</li>
</ul>
<p>As a little aside: by “modern programming” I mean any programming language in the last 3 decades and generally written by people that you can at least begin to vaguely have a conversation with. If this doesn’t apply: you’ve either found yourself what’s called an “assembly language coder”, “Linux hacker” or a “system administrator”. WARNING: Back quietly away and don’t go down into the sub sub basement again. Those guys aren’t allowed to know the world above ground is still accessible or they might not do all the work that the rest of us IT folk depend upon but really aren’t that crazy to be able to do. They’re like the abattoir workers of the IT world those assembly, Linux and Unix admin guys. It’s messy work, needs high degree of skill, patience and a strong stomach and strange brain that most people aren’t up for (but still want to have hamburgers, steaks etc). You could also be talking to a Cobol or mainframe coder: they’re more like the undertakers of society, used to dealing with decaying stuff that most of us would be fighting a vomit impulse. Now you know what working in IT in a lot of banks is like. Not that banks really do much work these days, seems like they just sit around waiting for government guarantees so they can, like a poker machine addicted gambling addict they can joyfully rush off to the local hotel to find something else stupid to risk their money with.</p>
<p>But I digress, back to explaining how coders embrace their OCD-ness.</p>
<p><strong>An exercise in naming</strong></p>
<p>Does anything bother you about the following list:</p>
<ul>
<li>oneFineDayMonday</li>
<li>anotherFineDayTuesday</li>
<li>PerhapsAGoodDayWednesday</li>
<li>definitelyABadDayThursday</li>
</ul>
<p>Yes? No?</p>
<p>If you’re not from a programming background the subtle difference is the upper case on the third item’s first letter. Yep, that’s right: workplace wars are fought over whether to capitalise the first letters of various types of names.</p>
<p><strong>The great sin of inconsistent naming</strong></p>
<p>What really tends to drive clean coders up the wall is a lack of consistency. It’s best to have good naming and consistent, bearable if you’re bad in your names but consistently bad. But to be inconsistent is pretty much an unforgivable sin in coding. Why is this?</p>
<p>My current thinking on this is that it is a greater sin because it means that instead of the coder having their brain in the zone of “conceptual models” of what it is you’re working on. Software engineering is quite a visualisation heavy process (it’s all pretty pictures in their heads, honest!), despite outward appearances of “reams of dull incomprehensible gobbledegook” to lay people). Not quite what you see in the movies with various 3D flying through funky looking cities stuff, but hey, more that than the text on the screen.</p>
<p>So with a good consistent naming scheme the task of finding existing and adding new names to whatever you’re working on in the pretty pictures in your head: you have to switch from the “creative” mode back to the part of your brain that deals with text pattern “detection”. So if everything is consistent the brain can just stay in auto-pilot obsessive compulsive mode.</p>
<p>Imagine if we are walking through a building talking about something interesting and if each and every door had a different way of opening it. You’d have to break your conversation to give focus to the door handle, rather than just letting your subconscious “door opening routine” do its thing.</p>
<p>So from a practical aspect changing the door knob on each door boils down to inconsistency in names in things like:</p>
<ul>
<li>upper or lower case of start letters, subsequent words</li>
<li>separation of individual words. Many many wars have been fought over whether to use the underscore “_” or a thing called “camel case” which is to capitalise the words of a sentence and chop out the spaces e.g. mySquashedLookingSentenceInCamelCase</li>
<li>to abbreviate or not to abbreviate. One of those grey areas: no one wants to write war and peace every time they want to add two numbers together, but go too crazy and you’re dealing with names that need to buy a vowel more than a small welsh village.</li>
</ul>
<p>And just like living in one of those old houses with strange locks and catches: after a while you can learn them all and then to change them would probably mean you have to think about getting through the door again, so sometimes you just have to live with it.</p>
<p>Perhaps that explains a bit about some techie types you know and perhaps that’s why they, unlike yourself, don’t appear to exhibit too much OCD in day to day life outside the office: but relax, they have lots of it at work. But quietly check how they name their word docs, email attachments and desktop folders next time it comes up. Or watch them twitch after you rename their folders in an inconsistent manner.</p>
]]></content:encoded>
			<wfw:commentRss>http://nathan-lee.com/blog/2009/01/21/explaining-it-geeks-for-normal-people-naming-stuff/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

