<?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>Damian Brady&#039;s Blog &#187; Design</title>
	<atom:link href="http://blog.damianbrady.com.au/category/technology/design/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.damianbrady.com.au</link>
	<description>ramblings of an early-30s IT professional / volleyball junkie / semi-professional drinker</description>
	<lastBuildDate>Fri, 03 Feb 2012 02:44:31 +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>Horses for Courses (and Jockeys)</title>
		<link>http://blog.damianbrady.com.au/2011/11/16/horses-for-courses-and-jockeys/</link>
		<comments>http://blog.damianbrady.com.au/2011/11/16/horses-for-courses-and-jockeys/#comments</comments>
		<pubDate>Tue, 15 Nov 2011 22:40:43 +0000</pubDate>
		<dc:creator>Damian Brady</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.damianbrady.com.au/?p=481</guid>
		<description><![CDATA[I&#8217;ve stumbled across a few blog posts lately that talk about why everyone should use one technology over another, or why someone is leaving a particular language for another. Obviously there&#8217;s no shortage of evangelical blog posts pushing the merits of one technology and lamenting the poor state of whatever-you-plebs-use.  But this latest spate got [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve stumbled across a few blog posts lately that talk about why <a title="Never in Doubt: Build business apps in .NET - not HTML &amp; JavaScript" href="http://neverindoubtnet.blogspot.com/2011/11/build-business-apps-in-net-not-html-or.html">everyone should use one technology over another</a>, or why <a title="My reasons for leaving .Net" href="http://hkarthik.me/blog/2011/11/11/my-reasons-for-leaving-net/">someone is leaving a particular language for another</a>. Obviously there&#8217;s no shortage of evangelical blog posts pushing the merits of one technology and lamenting the poor state of whatever-you-plebs-use.  But this latest spate got me thinking.</p>
<p>Most (good) developers talk about using the most appropriate technology for the job.  At its most basic level that means choosing Objective-C for a resource-hungry iPhone app, or writing your latest facebook-killer application for the web rather than the desktop.  That stuff&#8217;s obvious.  The more idealist polyglot programmers will take it further and push Ruby on Rails for web apps with a small budget, or they&#8217;ll suggest using RavenDB and deploying to AWS because all you need to do is store and retrieve documents across the web. If you&#8217;re in a Windows environment with a team running Scrum, choose TFS, C#, and SQL Server.</p>
<p>So &#8220;Horses for Courses&#8221; right?</p>
<p>The aim is valid and noble, and it&#8217;s certainly one I strive for.  But one thing frequently gets overlooked, and that&#8217;s the people on the team (or to stretch the metaphor &#8211; the jockeys).</p>
<p>If you have a team of programmers who are very used to writing software using certain technologies, think very carefully about advising them to move to something else. I&#8217;m not saying don&#8217;t do it (in some cases you really should), but there comes a point where the benefits to be gained by using language X on platform Y with source control Z just aren&#8217;t worth the trouble.</p>
<p>Unfortunately, most programmers write code in one way. They use one language, they know one data storage mechanism, and they&#8217;ve only ever written applications for one environment.  Maybe in a past life they tried out some other language, and maybe they dabble in HTML occasionally, but they&#8217;re only experts at one thing.</p>
<p>You, on the other hand, might look at a set of requirements and decide a NoSQL data store running behind RoR is the &#8220;best&#8221; solution for this project. Similarly, you recommend using git as the &#8220;best&#8221; source control system to use. Great. Unless you&#8217;re the only one who knows this stuff &#8211; then you&#8217;re dreaming.  If you have a team of C# developers, you&#8217;d want to have a pretty good reason for suggesting they program in a different language. If every other project they&#8217;re working on uses TFS, learning git is going to introduce a lot of overhead (initially).  Sometimes, the current way of doing things is the &#8220;best&#8221; way, even if the idealist in you disagrees.</p>
<p>Now, that&#8217;s not to say it&#8217;s never a good idea to force a shift within a team.  Consider a team of VB 6 developers who, for the last 15 years, have been dutifully writing VB windows applications with an Access back-end. At what point do you tell them it&#8217;s time to move on? (Ideally it would have been at least 5 years ago, but that&#8217;s clearly not an option). Assuming you don&#8217;t outsource or &#8220;refresh&#8221; the team, you should strongly suggest they change, but acknowledge that the extra effort they&#8217;ll have to put in will increase the work. Also be aware that you&#8217;re unlikely to get a quality solution from them if they don&#8217;t yet know what they&#8217;re doing.</p>
<p>My point is, when choosing the right technology for the job, consider <em>everything</em>, and that includes the skillset of the developers.</p>
<p>With that in mind, blog posts encouraging everybody to stop using .Net because it sucks, or telling them they should never use pure HTML and JS for business apps are just ridiculous. Yes, you might have had an overnight change of heart and now realise language X is the worst thing in the world, but you&#8217;re thinking about the specific situations you&#8217;ve been in, and developers with specific skills (usually just the individual author). If your whole team can just up and move to Ruby, then fantastic! Say hi to the rainbow coloured unicorns for me!</p>
<p>It&#8217;s <em>always</em> good to <em>encourage</em> teams to learn new technologies. It&#8217;s <em>occasionally</em> good to <em>force</em> a team to move on, but sometimes the <em>&#8220;best&#8221;</em> way isn&#8217;t the <em>&#8220;ideal&#8221;</em> way.</p>
<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
<li class="shr-comfeed">
			<a href="http://blog.damianbrady.com.au/2011/11/16/horses-for-courses-and-jockeys/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
<li class="shr-twitter">
			<a href="http://www.shareaholic.com/api/share/?title=Horses+for+Courses+%28and+Jockeys%29&amp;link=http://blog.damianbrady.com.au/2011/11/16/horses-for-courses-and-jockeys/&amp;notes=I%27ve%20stumbled%20across%20a%20few%20blog%20posts%20lately%20that%20talk%20about%20why%20everyone%20should%20use%20one%20technology%20over%20another%2C%20or%20why%20someone%20is%20leaving%20a%20particular%20language%20for%20another.%20Obviously%20there%27s%20no%20shortage%20of%20evangelical%20blog%20posts%20pushing%20the%20merits%20of%20one%20technology%20and%20lamenting%20the%20poor%20state%20of%20&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=%2524%257Btitle%257D%2B-%2B%2524%257Bshort_link%257D&amp;service=7&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
<li class="shr-facebook">
			<a href="http://www.shareaholic.com/api/share/?title=Horses+for+Courses+%28and+Jockeys%29&amp;link=http://blog.damianbrady.com.au/2011/11/16/horses-for-courses-and-jockeys/&amp;notes=I%27ve%20stumbled%20across%20a%20few%20blog%20posts%20lately%20that%20talk%20about%20why%20everyone%20should%20use%20one%20technology%20over%20another%2C%20or%20why%20someone%20is%20leaving%20a%20particular%20language%20for%20another.%20Obviously%20there%27s%20no%20shortage%20of%20evangelical%20blog%20posts%20pushing%20the%20merits%20of%20one%20technology%20and%20lamenting%20the%20poor%20state%20of%20&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=5&amp;tags=&amp;ctype=" rel="nofollow" title="Share this on Facebook">Share this on Facebook</a>
		</li>
<li class="shr-linkedin">
			<a href="http://www.shareaholic.com/api/share/?title=Horses+for+Courses+%28and+Jockeys%29&amp;link=http://blog.damianbrady.com.au/2011/11/16/horses-for-courses-and-jockeys/&amp;notes=I%27ve%20stumbled%20across%20a%20few%20blog%20posts%20lately%20that%20talk%20about%20why%20everyone%20should%20use%20one%20technology%20over%20another%2C%20or%20why%20someone%20is%20leaving%20a%20particular%20language%20for%20another.%20Obviously%20there%27s%20no%20shortage%20of%20evangelical%20blog%20posts%20pushing%20the%20merits%20of%20one%20technology%20and%20lamenting%20the%20poor%20state%20of%20&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=88&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
<li class="shr-reddit">
			<a href="http://www.shareaholic.com/api/share/?title=Horses+for+Courses+%28and+Jockeys%29&amp;link=http://blog.damianbrady.com.au/2011/11/16/horses-for-courses-and-jockeys/&amp;notes=I%27ve%20stumbled%20across%20a%20few%20blog%20posts%20lately%20that%20talk%20about%20why%20everyone%20should%20use%20one%20technology%20over%20another%2C%20or%20why%20someone%20is%20leaving%20a%20particular%20language%20for%20another.%20Obviously%20there%27s%20no%20shortage%20of%20evangelical%20blog%20posts%20pushing%20the%20merits%20of%20one%20technology%20and%20lamenting%20the%20poor%20state%20of%20&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=40&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
<li class="shr-hackernews">
			<a href="http://www.shareaholic.com/api/share/?title=Horses+for+Courses+%28and+Jockeys%29&amp;link=http://blog.damianbrady.com.au/2011/11/16/horses-for-courses-and-jockeys/&amp;notes=I%27ve%20stumbled%20across%20a%20few%20blog%20posts%20lately%20that%20talk%20about%20why%20everyone%20should%20use%20one%20technology%20over%20another%2C%20or%20why%20someone%20is%20leaving%20a%20particular%20language%20for%20another.%20Obviously%20there%27s%20no%20shortage%20of%20evangelical%20blog%20posts%20pushing%20the%20merits%20of%20one%20technology%20and%20lamenting%20the%20poor%20state%20of%20&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=202&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Submit this to Hacker News">Submit this to Hacker News</a>
		</li>
<li class="shr-gmail">
			<a href="http://www.shareaholic.com/api/share/?title=Horses+for+Courses+%28and+Jockeys%29&amp;link=http://blog.damianbrady.com.au/2011/11/16/horses-for-courses-and-jockeys/&amp;notes=I%27ve%20stumbled%20across%20a%20few%20blog%20posts%20lately%20that%20talk%20about%20why%20everyone%20should%20use%20one%20technology%20over%20another%2C%20or%20why%20someone%20is%20leaving%20a%20particular%20language%20for%20another.%20Obviously%20there%27s%20no%20shortage%20of%20evangelical%20blog%20posts%20pushing%20the%20merits%20of%20one%20technology%20and%20lamenting%20the%20poor%20state%20of%20&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=52&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Email this via Gmail">Email this via Gmail</a>
		</li>
</ul>
<div style="clear: both;"></div>
<div class="shr-getshr" style="visibility:hidden;font-size:10px !important"><a target="_blank" href="http://www.shareaholic.com/?src=pub">Get Shareaholic</a></div>
<div style="clear: both;"></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.damianbrady.com.au/2011/11/16/horses-for-courses-and-jockeys/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Rise of Participative Software</title>
		<link>http://blog.damianbrady.com.au/2011/06/18/the-rise-of-participative-software/</link>
		<comments>http://blog.damianbrady.com.au/2011/06/18/the-rise-of-participative-software/#comments</comments>
		<pubDate>Sat, 18 Jun 2011 00:18:10 +0000</pubDate>
		<dc:creator>Damian Brady</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Presentations]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.damianbrady.com.au/?p=168</guid>
		<description><![CDATA[Recently I gave a presentation at Ignite Brisbane where I spoke about &#8220;The Rise of Participative Software&#8221;. You may remember me briefly talking about this topic in an earlier post, as it&#8217;s something that I&#8217;m fairly excited about.  The general idea is that most software just does exactly what the user asks.  You give it [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I gave a presentation at <a title="Ignite Brisbane" href="http://www.ignitebrisbane.net/">Ignite Brisbane</a> where I spoke about &#8220;The Rise of Participative Software&#8221;.</p>
<p>You may remember me briefly talking about this topic in <a title="Using the data you generate" href="http://blog.damianbrady.com.au/2010/12/23/using-the-data-you-generate/">an earlier post</a>, as it&#8217;s something that I&#8217;m fairly excited about.  The general idea is that most software just does exactly what the user asks.  You give it some explicit input, it gives you some output.  Participative Software is my name for software that makes suggestions and &#8220;participates&#8221; without explicit input.</p>
<p><a title="Ignite Brisbane - The Rise of Participative Software" href="http://igniteshow.com/videos/rise-participative-software">Watch the video for more details.</a></p>
<p>The five minute time limit meant that I didn&#8217;t quite get my point across as well as I&#8217;d hoped.  I&#8217;d like to present the topic over 20 or 30 minutes so I can really drill down on the subject and include a bit more of a call-to-action.</p>
<p>As always, feedback is more than welcome &#8211; especially if you&#8217;d like to hear a 30min version!</p>
<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
<li class="shr-comfeed">
			<a href="http://blog.damianbrady.com.au/2011/06/18/the-rise-of-participative-software/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
<li class="shr-twitter">
			<a href="http://www.shareaholic.com/api/share/?title=The+Rise+of+Participative+Software&amp;link=http://blog.damianbrady.com.au/2011/06/18/the-rise-of-participative-software/&amp;notes=Recently%20I%20gave%20a%20presentation%20at%20Ignite%20Brisbane%20where%20I%20spoke%20about%20%22The%20Rise%20of%20Participative%20Software%22.%0D%0A%0D%0AYou%20may%20remember%20me%20briefly%20talking%20about%20this%20topic%20in%20an%20earlier%20post%2C%20as%20it%27s%20something%20that%20I%27m%20fairly%20excited%20about.%20%C2%A0The%20general%20idea%20is%20that%20most%20software%20just%20does%20exactly%20what%20the&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=%2524%257Btitle%257D%2B-%2B%2524%257Bshort_link%257D&amp;service=7&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
<li class="shr-facebook">
			<a href="http://www.shareaholic.com/api/share/?title=The+Rise+of+Participative+Software&amp;link=http://blog.damianbrady.com.au/2011/06/18/the-rise-of-participative-software/&amp;notes=Recently%20I%20gave%20a%20presentation%20at%20Ignite%20Brisbane%20where%20I%20spoke%20about%20%22The%20Rise%20of%20Participative%20Software%22.%0D%0A%0D%0AYou%20may%20remember%20me%20briefly%20talking%20about%20this%20topic%20in%20an%20earlier%20post%2C%20as%20it%27s%20something%20that%20I%27m%20fairly%20excited%20about.%20%C2%A0The%20general%20idea%20is%20that%20most%20software%20just%20does%20exactly%20what%20the&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=5&amp;tags=&amp;ctype=" rel="nofollow" title="Share this on Facebook">Share this on Facebook</a>
		</li>
<li class="shr-linkedin">
			<a href="http://www.shareaholic.com/api/share/?title=The+Rise+of+Participative+Software&amp;link=http://blog.damianbrady.com.au/2011/06/18/the-rise-of-participative-software/&amp;notes=Recently%20I%20gave%20a%20presentation%20at%20Ignite%20Brisbane%20where%20I%20spoke%20about%20%22The%20Rise%20of%20Participative%20Software%22.%0D%0A%0D%0AYou%20may%20remember%20me%20briefly%20talking%20about%20this%20topic%20in%20an%20earlier%20post%2C%20as%20it%27s%20something%20that%20I%27m%20fairly%20excited%20about.%20%C2%A0The%20general%20idea%20is%20that%20most%20software%20just%20does%20exactly%20what%20the&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=88&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
<li class="shr-reddit">
			<a href="http://www.shareaholic.com/api/share/?title=The+Rise+of+Participative+Software&amp;link=http://blog.damianbrady.com.au/2011/06/18/the-rise-of-participative-software/&amp;notes=Recently%20I%20gave%20a%20presentation%20at%20Ignite%20Brisbane%20where%20I%20spoke%20about%20%22The%20Rise%20of%20Participative%20Software%22.%0D%0A%0D%0AYou%20may%20remember%20me%20briefly%20talking%20about%20this%20topic%20in%20an%20earlier%20post%2C%20as%20it%27s%20something%20that%20I%27m%20fairly%20excited%20about.%20%C2%A0The%20general%20idea%20is%20that%20most%20software%20just%20does%20exactly%20what%20the&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=40&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
<li class="shr-hackernews">
			<a href="http://www.shareaholic.com/api/share/?title=The+Rise+of+Participative+Software&amp;link=http://blog.damianbrady.com.au/2011/06/18/the-rise-of-participative-software/&amp;notes=Recently%20I%20gave%20a%20presentation%20at%20Ignite%20Brisbane%20where%20I%20spoke%20about%20%22The%20Rise%20of%20Participative%20Software%22.%0D%0A%0D%0AYou%20may%20remember%20me%20briefly%20talking%20about%20this%20topic%20in%20an%20earlier%20post%2C%20as%20it%27s%20something%20that%20I%27m%20fairly%20excited%20about.%20%C2%A0The%20general%20idea%20is%20that%20most%20software%20just%20does%20exactly%20what%20the&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=202&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Submit this to Hacker News">Submit this to Hacker News</a>
		</li>
<li class="shr-gmail">
			<a href="http://www.shareaholic.com/api/share/?title=The+Rise+of+Participative+Software&amp;link=http://blog.damianbrady.com.au/2011/06/18/the-rise-of-participative-software/&amp;notes=Recently%20I%20gave%20a%20presentation%20at%20Ignite%20Brisbane%20where%20I%20spoke%20about%20%22The%20Rise%20of%20Participative%20Software%22.%0D%0A%0D%0AYou%20may%20remember%20me%20briefly%20talking%20about%20this%20topic%20in%20an%20earlier%20post%2C%20as%20it%27s%20something%20that%20I%27m%20fairly%20excited%20about.%20%C2%A0The%20general%20idea%20is%20that%20most%20software%20just%20does%20exactly%20what%20the&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=52&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Email this via Gmail">Email this via Gmail</a>
		</li>
</ul>
<div style="clear: both;"></div>
<div class="shr-getshr" style="visibility:hidden;font-size:10px !important"><a target="_blank" href="http://www.shareaholic.com/?src=pub">Get Shareaholic</a></div>
<div style="clear: both;"></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.damianbrady.com.au/2011/06/18/the-rise-of-participative-software/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using the data you generate</title>
		<link>http://blog.damianbrady.com.au/2010/12/23/using-the-data-you-generate/</link>
		<comments>http://blog.damianbrady.com.au/2010/12/23/using-the-data-you-generate/#comments</comments>
		<pubDate>Thu, 23 Dec 2010 05:58:33 +0000</pubDate>
		<dc:creator>Damian Brady</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://blog.damianbrady.com.au/?p=176</guid>
		<description><![CDATA[I stumbled across an excellent article by Zachary Seward titled, &#8220;Everything the Internet Knows About Me (Because I Asked It To)&#8221;. It&#8217;s an great example of how much data can be collected about your every day activities. While Zach gives some very interesting insights on what that data means to him, my immediate thoughts flew [...]]]></description>
			<content:encoded><![CDATA[<p>I stumbled across an excellent article by Zachary Seward titled, <a title="Everything the Internet Knows About Me (Because I Asked It To)" href="http://brdy.in/g7zsOj" target="_blank">&#8220;Everything the Internet Knows About Me (Because I Asked It To)&#8221;</a>. It&#8217;s an great example of how much data can be collected about your every day activities.</p>
<p>While Zach gives some very interesting insights on what that data means to him, my immediate thoughts flew to, &#8220;what could an application do with this information?&#8221;</p>
<p><strong>Using The Data:</strong></p>
<p>Lately, I&#8217;ve been working on a presentation predicting the &#8220;rise of participative software&#8221;; software that actively participates in your life rather than standing idle waiting for instruction. As Zach hinted, data collection is prolific and the data ubiquitous.</p>
<p>Software is already capable of using swathes of data to actively push targeted advertisements your way, so why can&#8217;t it use its power for good and make suggestions to save you time or improve your life? Key to this concept is the idea that data-mining logs of your personal habits and activities can yield vastly useful useful information.</p>
<p><strong>The Alarm Clock:</strong></p>
<p>My go-to example of this kind of software is the humble alarm clock.</p>
<p>A stock (read: boring) alarm clock will sound an alarm wake you up at a certain time the next day. Extensions have included multiple alarms, repeating alarms, and technological marvels (like <a title="WakeMate" href="http://www.wakemate.com/" target="_blank">WakeMate</a> and <a title="Sleep Cycle - iTunes" href="http://itunes.apple.com/au/app/sleep-cycle-alarm-clock/id320606217?mt=8" target="_blank">Sleep Cycle</a>) that try to wake you up at the best possible time. Ultimately, they&#8217;re all just trying to wake you up before a certain time.</p>
<p>So what can all this public and personal data do for the alarm clock? It&#8217;s worth noting before I start that I use the alarm on my smartphone because it&#8217;s always on the bedside table at night. An alarm clock running on a device like this opens up a world of possibilities.</p>
<p>Let&#8217;s say my standard alarm is set to 7:30am on weekdays. That&#8217;s great most of the time, but there are a lot of exceptions to the rule. On public holidays I want to sleep in and if I have early meetings I need to wake up earlier. This is easy enough to do; the data is available. Public holidays are known well in advance, and my work calendar is already synced to my phone so that information is available as well.</p>
<p>Let&#8217;s take it a step further. My phone has GPS and knows about the wireless networks at my office and at home. In short, because I&#8217;m all but physically attached to my phone, it has the ability to track my movements.</p>
<p>If I leave work at 11pm on one particularly gruelling day, that data could feed back into the alarm clock. Wouldn&#8217;t it be nice if, when I finally went to bed that night, my phone asked me whether I wanted a sleep in the next day and adjusted the alarm accordingly?</p>
<p>Let&#8217;s take it even further, shall we? At 6:30am one Tuesday morning, my phone notices I have a 9am meeting at work. The phone turns on GPS or Wifi to check I&#8217;m at home, maps a driving route to my office (using <a title="Google Maps API" href="http://code.google.com/apis/maps/index.html" target="_blank">Google</a> or <a title="Bing Maps API" href="http://msdn.microsoft.com/en-us/library/dd877180.aspx" target="_blank">Bing</a> Maps), and checks traffic data to see whether there are any accidents on the way. If there are, it might decide to wake me up early so I&#8217;ll make it to work on time.</p>
<p><strong>Active Participation</strong></p>
<p>I&#8217;m sure you can see where I&#8217;m going with this. The key point I&#8217;m trying to make is that I shouldn&#8217;t have to explicitly tell the software to behave this way for me. It knows my habits, has access to relevant data, and can therefore make predictions on what I want. It&#8217;s really just about combining and interpreting the huge amounts of data available and using it to actively participate in my life.</p>
<p>GPS data combined with bank account details and ATM localities could allow my phone to tell me I&#8217;ve been paid as I walk past an ATM.</p>
<p><a title="foursquare" href="http://foursquare.com/" target="_blank">Foursquare</a> checkins combined with restaurant reviews and data from a coupon site could suggest places to go for dinner on the days I usually go out.</p>
<p>The possibilities really are endless.</p>
<p><strong>The Skynet barrier</strong></p>
<p>Whenever I talk about ideas like this with my fiancée, she blanches. She sees things very differently to me in this respect, almost certainly because she&#8217;s not an IT nerd. She doesn&#8217;t want her technology covertly collecting information on her or telling her what to do, and that&#8217;s probably the biggest barrier to this type of technology.</p>
<p>Just because you <em>can</em> do something doesn&#8217;t mean people will be comfortable with it. As Arthur C. Clarke famously wrote, &#8220;Any sufficiently advanced technology is indistinguishable from magic&#8221;, and while not everyone is scared of magic, it&#8217;s reasonable to be scared of the magician when it involves your private information.</p>
<p><strong>Conclusion</strong></p>
<p>With any product, it&#8217;s really up to the market whether applications like this will be deemed acceptable and ultimately popular. I may see opportunity while others see Skynet, but the opinion that matters is the one belonging to the consumers with the money.</p>
<p>If you want to share your opinion, or if you would like me to share all my ideas on this topic, let me know on <a title="Twitter - Damovisa" href="http://www.twitter.com/damovisa" target="_blank">Twitter</a>, or by <a title="About Me" href="http://blog.damianbrady.com.au/about/">email</a>.</p>
<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
<li class="shr-comfeed">
			<a href="http://blog.damianbrady.com.au/2010/12/23/using-the-data-you-generate/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
<li class="shr-twitter">
			<a href="http://www.shareaholic.com/api/share/?title=Using+the+data+you+generate&amp;link=http://blog.damianbrady.com.au/2010/12/23/using-the-data-you-generate/&amp;notes=I%20stumbled%20across%20an%20excellent%20article%20by%20Zachary%20Seward%20titled%2C%20%22Everything%20the%20Internet%20Knows%20About%20Me%20%28Because%20I%20Asked%20It%20To%29%22.%20It%27s%20an%20great%20example%20of%20how%20much%20data%20can%20be%20collected%20about%20your%20every%20day%20activities.%0D%0A%0D%0AWhile%20Zach%20gives%20some%20very%20interesting%20insights%20on%20what%20that%20data%20means%20to%20hi&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=%2524%257Btitle%257D%2B-%2B%2524%257Bshort_link%257D&amp;service=7&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
<li class="shr-facebook">
			<a href="http://www.shareaholic.com/api/share/?title=Using+the+data+you+generate&amp;link=http://blog.damianbrady.com.au/2010/12/23/using-the-data-you-generate/&amp;notes=I%20stumbled%20across%20an%20excellent%20article%20by%20Zachary%20Seward%20titled%2C%20%22Everything%20the%20Internet%20Knows%20About%20Me%20%28Because%20I%20Asked%20It%20To%29%22.%20It%27s%20an%20great%20example%20of%20how%20much%20data%20can%20be%20collected%20about%20your%20every%20day%20activities.%0D%0A%0D%0AWhile%20Zach%20gives%20some%20very%20interesting%20insights%20on%20what%20that%20data%20means%20to%20hi&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=5&amp;tags=&amp;ctype=" rel="nofollow" title="Share this on Facebook">Share this on Facebook</a>
		</li>
<li class="shr-linkedin">
			<a href="http://www.shareaholic.com/api/share/?title=Using+the+data+you+generate&amp;link=http://blog.damianbrady.com.au/2010/12/23/using-the-data-you-generate/&amp;notes=I%20stumbled%20across%20an%20excellent%20article%20by%20Zachary%20Seward%20titled%2C%20%22Everything%20the%20Internet%20Knows%20About%20Me%20%28Because%20I%20Asked%20It%20To%29%22.%20It%27s%20an%20great%20example%20of%20how%20much%20data%20can%20be%20collected%20about%20your%20every%20day%20activities.%0D%0A%0D%0AWhile%20Zach%20gives%20some%20very%20interesting%20insights%20on%20what%20that%20data%20means%20to%20hi&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=88&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
<li class="shr-reddit">
			<a href="http://www.shareaholic.com/api/share/?title=Using+the+data+you+generate&amp;link=http://blog.damianbrady.com.au/2010/12/23/using-the-data-you-generate/&amp;notes=I%20stumbled%20across%20an%20excellent%20article%20by%20Zachary%20Seward%20titled%2C%20%22Everything%20the%20Internet%20Knows%20About%20Me%20%28Because%20I%20Asked%20It%20To%29%22.%20It%27s%20an%20great%20example%20of%20how%20much%20data%20can%20be%20collected%20about%20your%20every%20day%20activities.%0D%0A%0D%0AWhile%20Zach%20gives%20some%20very%20interesting%20insights%20on%20what%20that%20data%20means%20to%20hi&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=40&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
<li class="shr-hackernews">
			<a href="http://www.shareaholic.com/api/share/?title=Using+the+data+you+generate&amp;link=http://blog.damianbrady.com.au/2010/12/23/using-the-data-you-generate/&amp;notes=I%20stumbled%20across%20an%20excellent%20article%20by%20Zachary%20Seward%20titled%2C%20%22Everything%20the%20Internet%20Knows%20About%20Me%20%28Because%20I%20Asked%20It%20To%29%22.%20It%27s%20an%20great%20example%20of%20how%20much%20data%20can%20be%20collected%20about%20your%20every%20day%20activities.%0D%0A%0D%0AWhile%20Zach%20gives%20some%20very%20interesting%20insights%20on%20what%20that%20data%20means%20to%20hi&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=202&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Submit this to Hacker News">Submit this to Hacker News</a>
		</li>
<li class="shr-gmail">
			<a href="http://www.shareaholic.com/api/share/?title=Using+the+data+you+generate&amp;link=http://blog.damianbrady.com.au/2010/12/23/using-the-data-you-generate/&amp;notes=I%20stumbled%20across%20an%20excellent%20article%20by%20Zachary%20Seward%20titled%2C%20%22Everything%20the%20Internet%20Knows%20About%20Me%20%28Because%20I%20Asked%20It%20To%29%22.%20It%27s%20an%20great%20example%20of%20how%20much%20data%20can%20be%20collected%20about%20your%20every%20day%20activities.%0D%0A%0D%0AWhile%20Zach%20gives%20some%20very%20interesting%20insights%20on%20what%20that%20data%20means%20to%20hi&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=52&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Email this via Gmail">Email this via Gmail</a>
		</li>
</ul>
<div style="clear: both;"></div>
<div class="shr-getshr" style="visibility:hidden;font-size:10px !important"><a target="_blank" href="http://www.shareaholic.com/?src=pub">Get Shareaholic</a></div>
<div style="clear: both;"></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.damianbrady.com.au/2010/12/23/using-the-data-you-generate/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Getting into ASP.NET MVC</title>
		<link>http://blog.damianbrady.com.au/2009/11/19/getting-into-asp-net-mvc/</link>
		<comments>http://blog.damianbrady.com.au/2009/11/19/getting-into-asp-net-mvc/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 14:05:33 +0000</pubDate>
		<dc:creator>Damian Brady</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Tech.Ed]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://blog.damianbrady.com.au/?p=142</guid>
		<description><![CDATA[It all started when I decided that I&#8217;d rewrite a partially-aborted PHP web app of mine in .Net. The PHP version was relatively functional, but PHP is not my strongest skill, so updating and improving it was hard. Combined with a lack of good quality free time, it meant that I didn&#8217;t have the inclination [...]]]></description>
			<content:encoded><![CDATA[<p>It all started when I decided that I&#8217;d rewrite a partially-aborted PHP web app of mine in .Net.  The PHP version was relatively functional, but PHP is not my strongest skill, so updating and improving it was hard.  Combined with a lack of good quality free time, it meant that I didn&#8217;t have the inclination to update it much.</p>
<p>Much of the design work is already done.  The database schema is solid and it isn&#8217;t trivial &#8211; it took me a number of iterations to get right.  The UI flow has been decided, and at this point, I&#8217;m happy to reuse most of the layout, css and images.</p>
<p>At <a href="http://www.msteched.com/australia/Public/default.aspx">Tech.Ed</a> this year, I heard a lot of great things about <a title="ASP.NET MVC" href="http://www.asp.net/mVC/">ASP.NET MVC</a>.  The Hands-On-Lab I did gave me just enough of it to get me interested, so when I decided I was going to rewrite this thing in .Net, MVC seemed like the way to go.</p>
<p>So I&#8217;m now attempting to learn how it all works, and it&#8217;s going really well.  The secret?  The <a title="NerdDinner Tutorial" href="http://nerddinnerbook.s3.amazonaws.com/Intro.htm">NerdDinner tutorial</a> courtesy of Rob Conery, Scott Guthrie, Scott Hanselman, and Phil Haack (actually I get the impression that <a title="Scott Guthrie's Blog" href="http://weblogs.asp.net/scottgu/">Scott Guthrie</a> wrote the tutorial, but the originating book is authored by all of them).</p>
<p>Seriously, if you&#8217;re looking at playing with ASP.NET MVC, run through this tutorial from start to finish.  I guarantee by the end of it you&#8217;ll be all over the basics, and loving the way ASP.NET MVC is put together.</p>
<p>I&#8217;m looking forward to getting into some real development with this project.</p>
<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
<li class="shr-comfeed">
			<a href="http://blog.damianbrady.com.au/2009/11/19/getting-into-asp-net-mvc/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
<li class="shr-twitter">
			<a href="http://www.shareaholic.com/api/share/?title=Getting+into+ASP.NET+MVC&amp;link=http://blog.damianbrady.com.au/2009/11/19/getting-into-asp-net-mvc/&amp;notes=It%20all%20started%20when%20I%20decided%20that%20I%27d%20rewrite%20a%20partially-aborted%20PHP%20web%20app%20of%20mine%20in%20.Net.%20%20The%20PHP%20version%20was%20relatively%20functional%2C%20but%20PHP%20is%20not%20my%20strongest%20skill%2C%20so%20updating%20and%20improving%20it%20was%20hard.%20%20Combined%20with%20a%20lack%20of%20good%20quality%20free%20time%2C%20it%20meant%20that%20I%20didn%27t%20have%20the%20incli&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=%2524%257Btitle%257D%2B-%2B%2524%257Bshort_link%257D&amp;service=7&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
<li class="shr-facebook">
			<a href="http://www.shareaholic.com/api/share/?title=Getting+into+ASP.NET+MVC&amp;link=http://blog.damianbrady.com.au/2009/11/19/getting-into-asp-net-mvc/&amp;notes=It%20all%20started%20when%20I%20decided%20that%20I%27d%20rewrite%20a%20partially-aborted%20PHP%20web%20app%20of%20mine%20in%20.Net.%20%20The%20PHP%20version%20was%20relatively%20functional%2C%20but%20PHP%20is%20not%20my%20strongest%20skill%2C%20so%20updating%20and%20improving%20it%20was%20hard.%20%20Combined%20with%20a%20lack%20of%20good%20quality%20free%20time%2C%20it%20meant%20that%20I%20didn%27t%20have%20the%20incli&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=5&amp;tags=&amp;ctype=" rel="nofollow" title="Share this on Facebook">Share this on Facebook</a>
		</li>
<li class="shr-linkedin">
			<a href="http://www.shareaholic.com/api/share/?title=Getting+into+ASP.NET+MVC&amp;link=http://blog.damianbrady.com.au/2009/11/19/getting-into-asp-net-mvc/&amp;notes=It%20all%20started%20when%20I%20decided%20that%20I%27d%20rewrite%20a%20partially-aborted%20PHP%20web%20app%20of%20mine%20in%20.Net.%20%20The%20PHP%20version%20was%20relatively%20functional%2C%20but%20PHP%20is%20not%20my%20strongest%20skill%2C%20so%20updating%20and%20improving%20it%20was%20hard.%20%20Combined%20with%20a%20lack%20of%20good%20quality%20free%20time%2C%20it%20meant%20that%20I%20didn%27t%20have%20the%20incli&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=88&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
<li class="shr-reddit">
			<a href="http://www.shareaholic.com/api/share/?title=Getting+into+ASP.NET+MVC&amp;link=http://blog.damianbrady.com.au/2009/11/19/getting-into-asp-net-mvc/&amp;notes=It%20all%20started%20when%20I%20decided%20that%20I%27d%20rewrite%20a%20partially-aborted%20PHP%20web%20app%20of%20mine%20in%20.Net.%20%20The%20PHP%20version%20was%20relatively%20functional%2C%20but%20PHP%20is%20not%20my%20strongest%20skill%2C%20so%20updating%20and%20improving%20it%20was%20hard.%20%20Combined%20with%20a%20lack%20of%20good%20quality%20free%20time%2C%20it%20meant%20that%20I%20didn%27t%20have%20the%20incli&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=40&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
<li class="shr-hackernews">
			<a href="http://www.shareaholic.com/api/share/?title=Getting+into+ASP.NET+MVC&amp;link=http://blog.damianbrady.com.au/2009/11/19/getting-into-asp-net-mvc/&amp;notes=It%20all%20started%20when%20I%20decided%20that%20I%27d%20rewrite%20a%20partially-aborted%20PHP%20web%20app%20of%20mine%20in%20.Net.%20%20The%20PHP%20version%20was%20relatively%20functional%2C%20but%20PHP%20is%20not%20my%20strongest%20skill%2C%20so%20updating%20and%20improving%20it%20was%20hard.%20%20Combined%20with%20a%20lack%20of%20good%20quality%20free%20time%2C%20it%20meant%20that%20I%20didn%27t%20have%20the%20incli&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=202&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Submit this to Hacker News">Submit this to Hacker News</a>
		</li>
<li class="shr-gmail">
			<a href="http://www.shareaholic.com/api/share/?title=Getting+into+ASP.NET+MVC&amp;link=http://blog.damianbrady.com.au/2009/11/19/getting-into-asp-net-mvc/&amp;notes=It%20all%20started%20when%20I%20decided%20that%20I%27d%20rewrite%20a%20partially-aborted%20PHP%20web%20app%20of%20mine%20in%20.Net.%20%20The%20PHP%20version%20was%20relatively%20functional%2C%20but%20PHP%20is%20not%20my%20strongest%20skill%2C%20so%20updating%20and%20improving%20it%20was%20hard.%20%20Combined%20with%20a%20lack%20of%20good%20quality%20free%20time%2C%20it%20meant%20that%20I%20didn%27t%20have%20the%20incli&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=52&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Email this via Gmail">Email this via Gmail</a>
		</li>
</ul>
<div style="clear: both;"></div>
<div class="shr-getshr" style="visibility:hidden;font-size:10px !important"><a target="_blank" href="http://www.shareaholic.com/?src=pub">Get Shareaholic</a></div>
<div style="clear: both;"></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.damianbrady.com.au/2009/11/19/getting-into-asp-net-mvc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lessons Learned from Entity Framework</title>
		<link>http://blog.damianbrady.com.au/2009/10/15/lessons-learned-from-entity-framework/</link>
		<comments>http://blog.damianbrady.com.au/2009/10/15/lessons-learned-from-entity-framework/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 04:20:38 +0000</pubDate>
		<dc:creator>Damian Brady</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.damianbrady.com.au/?p=132</guid>
		<description><![CDATA[So I&#8217;m starting a new project, and we&#8217;ve made the decision to use the ADO.NET Entity Framework for talking to the database. I actually found it quite difficult to get started. Examples on the web seemed to assume that I already had everything installed and ready to go. Step one was invariably &#8220;Add a new [...]]]></description>
			<content:encoded><![CDATA[<p>So I&#8217;m starting a new project, and we&#8217;ve made the decision to use the <a href="http://msdn.microsoft.com/en-us/library/bb399572.aspx">ADO.NET Entity Framework</a> for talking to the database.</p>
<p>I actually found it quite difficult to get started.  Examples on the web seemed to assume that I already had everything installed and ready to go.  Step one was invariably &#8220;Add a new ADO.NET Entity Data Model&#8221;.  That wasn&#8217;t available in my &#8220;Add New Item&#8221; dialog, so I set out to discover how to add the bits I was clearly missing.</p>
<p>After hunting for a while for a download, I found a <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=7fd7164e-9e73-43f7-90ab-5b2bf2577ac9&amp;displaylang=en">CTP Preview 1 built on .Net 4.0</a> (I&#8217;m running 3.5), and some <a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=09a36081-5ed1-4648-b995-6239d0b77cb5">Entity Framework tools</a> released as a CTP in 2007.</p>
<p><strong>Lesson 1:  Everything you need comes with the <a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=ab99342f-5d1a-413d-8319-81da479ab0d7">Microsoft .NET Framework 3.5 Service Pack 1</a>.</strong></p>
<p>Of course, when I try to find the misleading links now, I find the real one straight away.  Hopefully your google-fu won&#8217;t fail you as mine obviously did.</p>
<p>I had a quick play with it and found that creating classes and relationships between them was mindblowingly easy.  Build up your pretty diagrams or get the designer to build them from a database and suddenly your code can create objects, run LINQ queries against them, bind them to UI controls and keep track of changes as you go.  Brilliant!</p>
<p>So I got to work building up a sample object tree for our new application.  When I was done, I looked for the option to persist the changes to the database.</p>
<p><strong>Lesson 2: You can update your models based on database changes, but not the other way around (<a href="http://www.infoq.com/news/2009/05/Entity-Framework-4">it&#8217;s coming in 4.0 though</a>).</strong></p>
<p>Damn, database first.  Back to the start.</p>
<p>No problem, I abandoned my design and started with the database.  Once the tables were built, generating EF data models was a piece of cake.</p>
<p>Next step &#8211; dependency injection for testing.  I don&#8217;t want to be bound to the database, particularly for testing.  I want to be able to inject fake objects for my tests.</p>
<p><strong>Lesson 3:  EF creates concrete model classes and database contexts.  Dependency Injection is not easy.</strong></p>
<p>Honestly, we were prepared for this one based on some presentations we saw at Tech.Ed.  We have come up with a solution for this, too.  It looks good on paper and everything seems to compile and run ok, but we&#8217;re yet to see whether this holds true as we dig deeper.</p>
<p>Basically, we&#8217;re leaving the concrete models as they are, but we&#8217;re extracting an interface for the ObjectContext class that&#8217;s generated.  Our proxy will provide a fake ObjectContext which doesn&#8217;t talk to the database, but it will mock out real model instances.  If you have any better ideas for this problem though, let me know.</p>
<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
<li class="shr-comfeed">
			<a href="http://blog.damianbrady.com.au/2009/10/15/lessons-learned-from-entity-framework/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
<li class="shr-twitter">
			<a href="http://www.shareaholic.com/api/share/?title=Lessons+Learned+from+Entity+Framework&amp;link=http://blog.damianbrady.com.au/2009/10/15/lessons-learned-from-entity-framework/&amp;notes=So%20I%27m%20starting%20a%20new%20project%2C%20and%20we%27ve%20made%20the%20decision%20to%20use%20the%20ADO.NET%20Entity%20Framework%20for%20talking%20to%20the%20database.%0D%0A%0D%0AI%20actually%20found%20it%20quite%20difficult%20to%20get%20started.%20%20Examples%20on%20the%20web%20seemed%20to%20assume%20that%20I%20already%20had%20everything%20installed%20and%20ready%20to%20go.%20%20Step%20one%20was%20invariably%20%22&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=%2524%257Btitle%257D%2B-%2B%2524%257Bshort_link%257D&amp;service=7&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
<li class="shr-facebook">
			<a href="http://www.shareaholic.com/api/share/?title=Lessons+Learned+from+Entity+Framework&amp;link=http://blog.damianbrady.com.au/2009/10/15/lessons-learned-from-entity-framework/&amp;notes=So%20I%27m%20starting%20a%20new%20project%2C%20and%20we%27ve%20made%20the%20decision%20to%20use%20the%20ADO.NET%20Entity%20Framework%20for%20talking%20to%20the%20database.%0D%0A%0D%0AI%20actually%20found%20it%20quite%20difficult%20to%20get%20started.%20%20Examples%20on%20the%20web%20seemed%20to%20assume%20that%20I%20already%20had%20everything%20installed%20and%20ready%20to%20go.%20%20Step%20one%20was%20invariably%20%22&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=5&amp;tags=&amp;ctype=" rel="nofollow" title="Share this on Facebook">Share this on Facebook</a>
		</li>
<li class="shr-linkedin">
			<a href="http://www.shareaholic.com/api/share/?title=Lessons+Learned+from+Entity+Framework&amp;link=http://blog.damianbrady.com.au/2009/10/15/lessons-learned-from-entity-framework/&amp;notes=So%20I%27m%20starting%20a%20new%20project%2C%20and%20we%27ve%20made%20the%20decision%20to%20use%20the%20ADO.NET%20Entity%20Framework%20for%20talking%20to%20the%20database.%0D%0A%0D%0AI%20actually%20found%20it%20quite%20difficult%20to%20get%20started.%20%20Examples%20on%20the%20web%20seemed%20to%20assume%20that%20I%20already%20had%20everything%20installed%20and%20ready%20to%20go.%20%20Step%20one%20was%20invariably%20%22&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=88&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
<li class="shr-reddit">
			<a href="http://www.shareaholic.com/api/share/?title=Lessons+Learned+from+Entity+Framework&amp;link=http://blog.damianbrady.com.au/2009/10/15/lessons-learned-from-entity-framework/&amp;notes=So%20I%27m%20starting%20a%20new%20project%2C%20and%20we%27ve%20made%20the%20decision%20to%20use%20the%20ADO.NET%20Entity%20Framework%20for%20talking%20to%20the%20database.%0D%0A%0D%0AI%20actually%20found%20it%20quite%20difficult%20to%20get%20started.%20%20Examples%20on%20the%20web%20seemed%20to%20assume%20that%20I%20already%20had%20everything%20installed%20and%20ready%20to%20go.%20%20Step%20one%20was%20invariably%20%22&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=40&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
<li class="shr-hackernews">
			<a href="http://www.shareaholic.com/api/share/?title=Lessons+Learned+from+Entity+Framework&amp;link=http://blog.damianbrady.com.au/2009/10/15/lessons-learned-from-entity-framework/&amp;notes=So%20I%27m%20starting%20a%20new%20project%2C%20and%20we%27ve%20made%20the%20decision%20to%20use%20the%20ADO.NET%20Entity%20Framework%20for%20talking%20to%20the%20database.%0D%0A%0D%0AI%20actually%20found%20it%20quite%20difficult%20to%20get%20started.%20%20Examples%20on%20the%20web%20seemed%20to%20assume%20that%20I%20already%20had%20everything%20installed%20and%20ready%20to%20go.%20%20Step%20one%20was%20invariably%20%22&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=202&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Submit this to Hacker News">Submit this to Hacker News</a>
		</li>
<li class="shr-gmail">
			<a href="http://www.shareaholic.com/api/share/?title=Lessons+Learned+from+Entity+Framework&amp;link=http://blog.damianbrady.com.au/2009/10/15/lessons-learned-from-entity-framework/&amp;notes=So%20I%27m%20starting%20a%20new%20project%2C%20and%20we%27ve%20made%20the%20decision%20to%20use%20the%20ADO.NET%20Entity%20Framework%20for%20talking%20to%20the%20database.%0D%0A%0D%0AI%20actually%20found%20it%20quite%20difficult%20to%20get%20started.%20%20Examples%20on%20the%20web%20seemed%20to%20assume%20that%20I%20already%20had%20everything%20installed%20and%20ready%20to%20go.%20%20Step%20one%20was%20invariably%20%22&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=52&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Email this via Gmail">Email this via Gmail</a>
		</li>
</ul>
<div style="clear: both;"></div>
<div class="shr-getshr" style="visibility:hidden;font-size:10px !important"><a target="_blank" href="http://www.shareaholic.com/?src=pub">Get Shareaholic</a></div>
<div style="clear: both;"></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.damianbrady.com.au/2009/10/15/lessons-learned-from-entity-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pride in bad solutions</title>
		<link>http://blog.damianbrady.com.au/2009/06/15/pride-in-bad-solutions/</link>
		<comments>http://blog.damianbrady.com.au/2009/06/15/pride-in-bad-solutions/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 08:05:42 +0000</pubDate>
		<dc:creator>Damian Brady</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.damianbrady.com.au/?p=109</guid>
		<description><![CDATA[I solved a problem the other day.  It was a terrible solution. It works, but it&#8217;s difficult to be proud of how I solved it. The problem was with MSMQ, but let me describe the problem with a needlessly overwrought metaphor. Every week for the last 5 years, you&#8217;ve been sending a bill to one [...]]]></description>
			<content:encoded><![CDATA[<p><strong>I solved a problem the other day.  It was a terrible solution.</strong> It works, but it&#8217;s difficult to be proud of how I solved it.</p>
<p>The problem was with MSMQ, but <strong>let me describe the problem with a needlessly overwrought metaphor</strong>.</p>
<p><strong>Every week for the last 5 years</strong>, you&#8217;ve been sending a bill to one of your clients.  You have an infinite supply of envelopes and when Friday comes around, <strong>you print out an invoice, seal it in an envelope, send it by courier to your client, and a couple of days later, you get paid</strong>.  With me so far?</p>
<p>One day, <strong>you decide to start using a different invoice management software package</strong> &#8211; it&#8217;s much prettier and more stable than the old one.  You know, however, that the client doesn&#8217;t want anything in that invoice to change.  You&#8217;re not sure how they process it, but one time your printer smudged an invoice slightly and you didn&#8217;t get paid.  So <strong>everything in that invoice has to be exact</strong>.  Luckly, the new software is capable of printing a pixel-perfect version of the old invoice layout.  So far so good.</p>
<p><strong>You also think you should start using a different courier</strong>.  Your existing courier company (<em>COM+</em>) is fine, but frankly they&#8217;re a bit behind the times.  The delivery drivers are about 80 and they&#8217;re driving some vans that are generations old.  So <strong>you set up a deal with a new company called </strong><em><strong>C-Sharp 3.5</strong></em><strong> to do the delivery for you</strong>.</p>
<p>Still with me?  I told you it was overwrought.</p>
<p>So anyway, <strong>you give your new system a try</strong>.  You print out the invoice, compare it to the old one (spot-on, 100% the same), put it in an envelope, and send it off using the new courier company.</p>
<p><strong>You don&#8217;t get paid.</strong></p>
<p>You contact the customer but they don&#8217;t say much.  Just that <strong>they didn&#8217;t receive a valid invoice</strong>.  The new courier company swears they delivered it to the correct address and they provide proof.</p>
<p><strong>You decide to try again next week and do some investigating</strong>.</p>
<p>The next week, you print out the invoice, compare it to the old ones (still the same), put it in an envelope, and organise for the new courier to pick it up.  <strong>This time though, you follow him</strong>.</p>
<p><strong>He takes your letter, gets in his van, and drives to the client&#8217;s address.  He gets out, puts your letter in the mailbox and drives of</strong>f.  Nothing wrong so far, as far as you can tell, so you wait to see what happens.</p>
<p>Soon, <strong>a guy comes out of the house (which by the way looks exactly like a big black box), opens the mailbox, picks the letter up, and takes it inside</strong>.</p>
<p>You go home, satisfied that the letter made its journey this time.  It must have been a once off.  <strong>But you still don&#8217;t get paid</strong>.</p>
<p>Again, you contact the client and all they&#8217;ll tell you is that they didn&#8217;t get a valid invoice.  You protest, telling them that you saw them pick it up but to no avail.</p>
<p>Over the next few weeks, <strong>you try everything you can think of to get this new system to work</strong>.  You try looking at the message again after it&#8217;s put in the letterbox and you try sending an invoice created by your old program.  Every time, the seemingly perfect letter gets picked up my the man in the black box, and nothing happens.</p>
<p>No matter how hard you try to work out what&#8217;s going on, nothing helps.  So, like any sensible person,  <strong>you give up and call the old courier company.  They turn up, pick up your invoice, and two days later, you get paid</strong>.  Despite the fact that they&#8217;re apparently doing exactly the same as the new guys, their deliveries get you paid, and the other deliveries don&#8217;t.  <strong>You resign yourself to using the old couriers until they or their vans all die</strong>.  It&#8217;s just a matter of time&#8230;</p>
<p><strong>Fun story, huh?</strong></p>
<p>So in case you&#8217;re a bit slow and didn&#8217;t work out what it was all about, I replaced an app that put a message in a Windows message queue for another (black box) program to pick up.  <strong>The old app was VB6 using a COM MSMQ library, and the new one was C# using the native .Net MSMQ library in the 3.5 version of the .Net Framework</strong>.</p>
<p><strong>No matter how hard I looked, I couldn&#8217;t find ANYTHING different between the messages and where they got put</strong>.  I even dug up a copy of the black-box code and stepped it through a debugger.  When it got to the line saying Queue.Receive(), the message disappeared from the queue, and nothing came back.  <strong>There was no exception thrown!  I watched the message get picked up!  I did a binary comparison of the message contents from the old program and the new program!  No difference at all!  Inexplicable!</strong></p>
<p>The fact that I was putting the message into the Windows Message Queue using a .Net library and picking it up using COM+ seemed to be all it took to break the thing.</p>
<p>This is the first time I can remember being absolutely, 100% stumped by what was going on.  I&#8217;d analysed what was going on as deeply as was practical and had come up with nothing.</p>
<p><strong>So I did the logical thing and referenced the COM+ dll from my new app.  When I used this library to send the message, it all worked perfectly.</strong></p>
<p><strong>I really don&#8217;t like this fix.</strong> Despite the fact that everything works perfectly now, it&#8217;s still a failure in my eyes.  It&#8217;s like a brand new Merc with duct tape holding the wheels on.</p>
<p>However, given that I&#8217;d spent way too long already on something that really shouldn&#8217;t have been a problem, it was probably the right thing to do.  <strong>Cut my losses and take the easy way out.  I&#8217;m not proud.</strong></p>
<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
<li class="shr-comfeed">
			<a href="http://blog.damianbrady.com.au/2009/06/15/pride-in-bad-solutions/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
<li class="shr-twitter">
			<a href="http://www.shareaholic.com/api/share/?title=Pride+in+bad+solutions&amp;link=http://blog.damianbrady.com.au/2009/06/15/pride-in-bad-solutions/&amp;notes=I%20solved%20a%20problem%20the%20other%20day.%20%C2%A0It%20was%20a%20terrible%20solution.%20It%20works%2C%20but%20it%27s%20difficult%20to%20be%20proud%20of%20how%20I%20solved%20it.%0D%0A%0D%0AThe%20problem%20was%20with%20MSMQ%2C%20but%20let%20me%20describe%20the%20problem%20with%20a%20needlessly%20overwrought%20metaphor.%0D%0A%0D%0AEvery%20week%20for%20the%20last%205%20years%2C%20you%27ve%20been%20sending%20a%20bill%20to%20one%20of%20&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=%2524%257Btitle%257D%2B-%2B%2524%257Bshort_link%257D&amp;service=7&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
<li class="shr-facebook">
			<a href="http://www.shareaholic.com/api/share/?title=Pride+in+bad+solutions&amp;link=http://blog.damianbrady.com.au/2009/06/15/pride-in-bad-solutions/&amp;notes=I%20solved%20a%20problem%20the%20other%20day.%20%C2%A0It%20was%20a%20terrible%20solution.%20It%20works%2C%20but%20it%27s%20difficult%20to%20be%20proud%20of%20how%20I%20solved%20it.%0D%0A%0D%0AThe%20problem%20was%20with%20MSMQ%2C%20but%20let%20me%20describe%20the%20problem%20with%20a%20needlessly%20overwrought%20metaphor.%0D%0A%0D%0AEvery%20week%20for%20the%20last%205%20years%2C%20you%27ve%20been%20sending%20a%20bill%20to%20one%20of%20&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=5&amp;tags=&amp;ctype=" rel="nofollow" title="Share this on Facebook">Share this on Facebook</a>
		</li>
<li class="shr-linkedin">
			<a href="http://www.shareaholic.com/api/share/?title=Pride+in+bad+solutions&amp;link=http://blog.damianbrady.com.au/2009/06/15/pride-in-bad-solutions/&amp;notes=I%20solved%20a%20problem%20the%20other%20day.%20%C2%A0It%20was%20a%20terrible%20solution.%20It%20works%2C%20but%20it%27s%20difficult%20to%20be%20proud%20of%20how%20I%20solved%20it.%0D%0A%0D%0AThe%20problem%20was%20with%20MSMQ%2C%20but%20let%20me%20describe%20the%20problem%20with%20a%20needlessly%20overwrought%20metaphor.%0D%0A%0D%0AEvery%20week%20for%20the%20last%205%20years%2C%20you%27ve%20been%20sending%20a%20bill%20to%20one%20of%20&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=88&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
<li class="shr-reddit">
			<a href="http://www.shareaholic.com/api/share/?title=Pride+in+bad+solutions&amp;link=http://blog.damianbrady.com.au/2009/06/15/pride-in-bad-solutions/&amp;notes=I%20solved%20a%20problem%20the%20other%20day.%20%C2%A0It%20was%20a%20terrible%20solution.%20It%20works%2C%20but%20it%27s%20difficult%20to%20be%20proud%20of%20how%20I%20solved%20it.%0D%0A%0D%0AThe%20problem%20was%20with%20MSMQ%2C%20but%20let%20me%20describe%20the%20problem%20with%20a%20needlessly%20overwrought%20metaphor.%0D%0A%0D%0AEvery%20week%20for%20the%20last%205%20years%2C%20you%27ve%20been%20sending%20a%20bill%20to%20one%20of%20&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=40&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
<li class="shr-hackernews">
			<a href="http://www.shareaholic.com/api/share/?title=Pride+in+bad+solutions&amp;link=http://blog.damianbrady.com.au/2009/06/15/pride-in-bad-solutions/&amp;notes=I%20solved%20a%20problem%20the%20other%20day.%20%C2%A0It%20was%20a%20terrible%20solution.%20It%20works%2C%20but%20it%27s%20difficult%20to%20be%20proud%20of%20how%20I%20solved%20it.%0D%0A%0D%0AThe%20problem%20was%20with%20MSMQ%2C%20but%20let%20me%20describe%20the%20problem%20with%20a%20needlessly%20overwrought%20metaphor.%0D%0A%0D%0AEvery%20week%20for%20the%20last%205%20years%2C%20you%27ve%20been%20sending%20a%20bill%20to%20one%20of%20&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=202&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Submit this to Hacker News">Submit this to Hacker News</a>
		</li>
<li class="shr-gmail">
			<a href="http://www.shareaholic.com/api/share/?title=Pride+in+bad+solutions&amp;link=http://blog.damianbrady.com.au/2009/06/15/pride-in-bad-solutions/&amp;notes=I%20solved%20a%20problem%20the%20other%20day.%20%C2%A0It%20was%20a%20terrible%20solution.%20It%20works%2C%20but%20it%27s%20difficult%20to%20be%20proud%20of%20how%20I%20solved%20it.%0D%0A%0D%0AThe%20problem%20was%20with%20MSMQ%2C%20but%20let%20me%20describe%20the%20problem%20with%20a%20needlessly%20overwrought%20metaphor.%0D%0A%0D%0AEvery%20week%20for%20the%20last%205%20years%2C%20you%27ve%20been%20sending%20a%20bill%20to%20one%20of%20&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=52&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Email this via Gmail">Email this via Gmail</a>
		</li>
</ul>
<div style="clear: both;"></div>
<div class="shr-getshr" style="visibility:hidden;font-size:10px !important"><a target="_blank" href="http://www.shareaholic.com/?src=pub">Get Shareaholic</a></div>
<div style="clear: both;"></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.damianbrady.com.au/2009/06/15/pride-in-bad-solutions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhone and the small things</title>
		<link>http://blog.damianbrady.com.au/2009/05/06/iphone-and-the-small-things/</link>
		<comments>http://blog.damianbrady.com.au/2009/05/06/iphone-and-the-small-things/#comments</comments>
		<pubDate>Wed, 06 May 2009 06:05:52 +0000</pubDate>
		<dc:creator>Damian Brady</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.damianbrady.com.au/?p=103</guid>
		<description><![CDATA[So I finally joined the dark side and I got myself an iPhone. Now, if you&#8217;ve been following this blog for a while, you&#8217;ll know that often it&#8217;s the little things that interest me.  Small bits of functionality and the tiniest ideas sometimes make the biggest impression. With that in mind, here are the top [...]]]></description>
			<content:encoded><![CDATA[<p><strong>So I finally joined the dark side and I got myself an iPhone</strong>.</p>
<p>Now, if you&#8217;ve been following this blog for a while, you&#8217;ll know that <strong>often it&#8217;s the little things that interest me</strong>.  Small bits of functionality and the tiniest ideas sometimes make the biggest impression.</p>
<p>With that in mind, here are the top things that have impressed me about the iPhone.</p>
<p><strong>1. UI during phone calls</strong></p>
<p>When I&#8217;m on a call and I&#8217;m holding the phone up to my ear, there&#8217;s no need for the screen to be on&#8230; so it&#8217;s not.  If I take the phone away from my ear, the accelerometers in the phone notice this and I get a useable display again.</p>
<p>A tiny thing, but it shows that Apple is thinking.</p>
<p><strong>2. Music in my car</strong></p>
<p>I connect the iPhone to my car stereo using a standard 3.5mm headphone plug.  Great sound. It works perfectly. Not that impressive.</p>
<p>However when I get out of my car, I pull the cable out.  The music stops.  It could quite easily continue &#8211; there are speakers on the phone after all, but it&#8217;s smart enough to assume that having unplugged th speakers/headphones/whatever, I probably don&#8217;t want to listen to the music any more.</p>
<p>Again, it&#8217;s simple but intelligent.</p>
<p><strong>3. Silent switch</strong></p>
<p>My old phone was a Nokia E71 and I loved it.  It did everything I wanted it to, but I&#8217;m a sucker for stuff that&#8217;s nice to use (usually) so of course I wanted an iPhone.</p>
<p>One very slight annoyance I&#8217;ve had with every phone thus far (including the E71) is that to turn the phone to silent, it takes a few steps.  On the E71, you have to unlock it, press the power button at the top, scroll down to Silent, press the OK button, and lock the phone again.</p>
<p>On the iPhone, you flip the switch on the side.</p>
<p><strong>4. Network connection switching</strong></p>
<p>I&#8217;ve set up my iPhone with the details of my home wireless network and the network at my parents&#8217; house.  I did each setup a grand total of once.</p>
<p>Now, whenever I&#8217;m at home or at Mum and Dad&#8217;s, any browsing I do uses those networks.  The phone never asks me, never checks to see whether I might actually want to pay for access, no.  It assumes I&#8217;ll want the fastest (and cheapest) connection available.</p>
<p><strong>5. Application Installation</strong></p>
<p>Hands down the cleanest installation for any software I&#8217;ve experienced.</p>
<p>Go to the app store and find something you want, touch the price button and then install, and you&#8217;re done.  There could be a couple of extra touches here and there and you might have to put a password in so your account gets charged too, but it&#8217;s incredibly easy.</p>
<p>It downloads in the background, there are no restarts, and you can immediately see it in your list of apps (&#8220;springboard&#8221; apparently).  Brilliant.</p>
<p><strong>So that&#8217;s it</strong> &#8211; probably not the same list as anyone else, but like I said, <strong>it&#8217;s the small attention to detail that impresses me</strong>.</p>
<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
<li class="shr-comfeed">
			<a href="http://blog.damianbrady.com.au/2009/05/06/iphone-and-the-small-things/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
<li class="shr-twitter">
			<a href="http://www.shareaholic.com/api/share/?title=iPhone+and+the+small+things&amp;link=http://blog.damianbrady.com.au/2009/05/06/iphone-and-the-small-things/&amp;notes=So%20I%20finally%20joined%20the%20dark%20side%20and%20I%20got%20myself%20an%20iPhone.%0D%0A%0D%0ANow%2C%20if%20you%27ve%20been%20following%20this%20blog%20for%20a%20while%2C%20you%27ll%20know%20that%20often%20it%27s%20the%20little%20things%20that%20interest%20me.%20%C2%A0Small%20bits%20of%20functionality%20and%20the%20tiniest%20ideas%20sometimes%20make%20the%20biggest%20impression.%0D%0A%0D%0AWith%20that%20in%20mind%2C%20here%20&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=%2524%257Btitle%257D%2B-%2B%2524%257Bshort_link%257D&amp;service=7&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
<li class="shr-facebook">
			<a href="http://www.shareaholic.com/api/share/?title=iPhone+and+the+small+things&amp;link=http://blog.damianbrady.com.au/2009/05/06/iphone-and-the-small-things/&amp;notes=So%20I%20finally%20joined%20the%20dark%20side%20and%20I%20got%20myself%20an%20iPhone.%0D%0A%0D%0ANow%2C%20if%20you%27ve%20been%20following%20this%20blog%20for%20a%20while%2C%20you%27ll%20know%20that%20often%20it%27s%20the%20little%20things%20that%20interest%20me.%20%C2%A0Small%20bits%20of%20functionality%20and%20the%20tiniest%20ideas%20sometimes%20make%20the%20biggest%20impression.%0D%0A%0D%0AWith%20that%20in%20mind%2C%20here%20&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=5&amp;tags=&amp;ctype=" rel="nofollow" title="Share this on Facebook">Share this on Facebook</a>
		</li>
<li class="shr-linkedin">
			<a href="http://www.shareaholic.com/api/share/?title=iPhone+and+the+small+things&amp;link=http://blog.damianbrady.com.au/2009/05/06/iphone-and-the-small-things/&amp;notes=So%20I%20finally%20joined%20the%20dark%20side%20and%20I%20got%20myself%20an%20iPhone.%0D%0A%0D%0ANow%2C%20if%20you%27ve%20been%20following%20this%20blog%20for%20a%20while%2C%20you%27ll%20know%20that%20often%20it%27s%20the%20little%20things%20that%20interest%20me.%20%C2%A0Small%20bits%20of%20functionality%20and%20the%20tiniest%20ideas%20sometimes%20make%20the%20biggest%20impression.%0D%0A%0D%0AWith%20that%20in%20mind%2C%20here%20&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=88&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
<li class="shr-reddit">
			<a href="http://www.shareaholic.com/api/share/?title=iPhone+and+the+small+things&amp;link=http://blog.damianbrady.com.au/2009/05/06/iphone-and-the-small-things/&amp;notes=So%20I%20finally%20joined%20the%20dark%20side%20and%20I%20got%20myself%20an%20iPhone.%0D%0A%0D%0ANow%2C%20if%20you%27ve%20been%20following%20this%20blog%20for%20a%20while%2C%20you%27ll%20know%20that%20often%20it%27s%20the%20little%20things%20that%20interest%20me.%20%C2%A0Small%20bits%20of%20functionality%20and%20the%20tiniest%20ideas%20sometimes%20make%20the%20biggest%20impression.%0D%0A%0D%0AWith%20that%20in%20mind%2C%20here%20&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=40&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
<li class="shr-hackernews">
			<a href="http://www.shareaholic.com/api/share/?title=iPhone+and+the+small+things&amp;link=http://blog.damianbrady.com.au/2009/05/06/iphone-and-the-small-things/&amp;notes=So%20I%20finally%20joined%20the%20dark%20side%20and%20I%20got%20myself%20an%20iPhone.%0D%0A%0D%0ANow%2C%20if%20you%27ve%20been%20following%20this%20blog%20for%20a%20while%2C%20you%27ll%20know%20that%20often%20it%27s%20the%20little%20things%20that%20interest%20me.%20%C2%A0Small%20bits%20of%20functionality%20and%20the%20tiniest%20ideas%20sometimes%20make%20the%20biggest%20impression.%0D%0A%0D%0AWith%20that%20in%20mind%2C%20here%20&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=202&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Submit this to Hacker News">Submit this to Hacker News</a>
		</li>
<li class="shr-gmail">
			<a href="http://www.shareaholic.com/api/share/?title=iPhone+and+the+small+things&amp;link=http://blog.damianbrady.com.au/2009/05/06/iphone-and-the-small-things/&amp;notes=So%20I%20finally%20joined%20the%20dark%20side%20and%20I%20got%20myself%20an%20iPhone.%0D%0A%0D%0ANow%2C%20if%20you%27ve%20been%20following%20this%20blog%20for%20a%20while%2C%20you%27ll%20know%20that%20often%20it%27s%20the%20little%20things%20that%20interest%20me.%20%C2%A0Small%20bits%20of%20functionality%20and%20the%20tiniest%20ideas%20sometimes%20make%20the%20biggest%20impression.%0D%0A%0D%0AWith%20that%20in%20mind%2C%20here%20&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=52&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Email this via Gmail">Email this via Gmail</a>
		</li>
</ul>
<div style="clear: both;"></div>
<div class="shr-getshr" style="visibility:hidden;font-size:10px !important"><a target="_blank" href="http://www.shareaholic.com/?src=pub">Get Shareaholic</a></div>
<div style="clear: both;"></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.damianbrady.com.au/2009/05/06/iphone-and-the-small-things/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>On Keyboards</title>
		<link>http://blog.damianbrady.com.au/2009/04/06/on-keyboards/</link>
		<comments>http://blog.damianbrady.com.au/2009/04/06/on-keyboards/#comments</comments>
		<pubDate>Mon, 06 Apr 2009 05:55:33 +0000</pubDate>
		<dc:creator>Damian Brady</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.damianbrady.com.au/?p=100</guid>
		<description><![CDATA[So my keyboard at work just broke.  Doesn&#8217;t happen often, but one of the keys just stopped y&#8217;know&#8230; putting it&#8217;s letter on the screen. So I got given a replacement from somewhere. Here&#8217;s the thing &#8211; the layout is different.  Any programmer or techie or otherwise-nerd will know what I mean when I say that [...]]]></description>
			<content:encoded><![CDATA[<p>So my keyboard at work just broke.  Doesn&#8217;t happen often, but one of the keys just stopped y&#8217;know&#8230; putting it&#8217;s letter on the screen.</p>
<p>So I got given a replacement from somewhere.</p>
<p>Here&#8217;s the thing &#8211; the layout is different.  Any programmer or techie or otherwise-nerd will know what I mean when I say that it&#8217;s <strong>FREAKING ANNOYING!!</strong></p>
<p><strong></strong>Now, there aren&#8217;t any big changes really.  I mean, all the letters are in the same place, and the F-keys are still above the keyboard and the number pad is the same, but there are enough differences to frustrate someone like me.</p>
<p><strong>The Home-End-PgUp-PgDown-etc. chunk of keys is different.</strong></p>
<p>This is what I used to have:</p>
<p><a href="http://blog.damianbrady.com.au/wp-content/uploads/2009/04/smartkeyboard1.jpg" rel="lightbox[100]" title="Normal Keyboard"><img class="aligncenter size-medium wp-image-101" title="Normal Keyboard" src="http://blog.damianbrady.com.au/wp-content/uploads/2009/04/smartkeyboard1-300x194.jpg" alt="" width="300" height="194" /></a></p>
<p>Here&#8217;s what I have now:</p>
<p><a href="http://blog.damianbrady.com.au/wp-content/uploads/2009/04/microsoft-wireless-keyboard-layout.jpg" rel="lightbox[100]" title="Annoying Keyboard"><img class="aligncenter size-medium wp-image-102" title="Annoying Keyboard" src="http://blog.damianbrady.com.au/wp-content/uploads/2009/04/microsoft-wireless-keyboard-layout.jpg" alt="" width="146" height="300" /></a></p>
<p>What that means is that I keep hitting Delete instead of End.  Because it&#8217;s right below Home now.</p>
<p><strong>I only have one Windows key</strong></p>
<p>And it&#8217;s on the left &#8211; the one I <em>don&#8217;t</em> go for when I&#8217;m locking my computer with Win-L as I stand up to go somewhere.</p>
<p><strong>The F-keys are grouped in threes</strong></p>
<p>Seriously, in threes?  F5 is by far the most common F-key I hit, and now it&#8217;s in the middle of a cluster instead of on the left.  I have to look at my keyboard now to hit it.</p>
<p><strong>My right Ctrl key is slightly to the left of where it was</strong></p>
<p>Not a big deal you&#8217;d think?  Well truthfully it doesn&#8217;t affect me much &#8211; I still usually hit it first go, but it&#8217;s been moved left to make way for the arrow keys.  So when I don&#8217;t hit Ctrl, I hit the left arrow key.  That&#8217;s confusing.</p>
<p>So you&#8217;re probably thinking, &#8220;Oh, you poor little baby! Would you like some <strong>cries</strong> with your <strong>waa-burger</strong>?&#8221;  And yes, yes I would.</p>
<p>Seriously, it&#8217;s frustrating.  I know it&#8217;s only temporary &#8211; I&#8217;ll get a new one soon with a normal key layout.  But my keyboard is by far the most frequently-used tool in my arsenal.  Small things like this slow me down.</p>
<p>Ok, I&#8217;m finished complaining now.  You can proceed with your day.</p>
<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
<li class="shr-comfeed">
			<a href="http://blog.damianbrady.com.au/2009/04/06/on-keyboards/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
<li class="shr-twitter">
			<a href="http://www.shareaholic.com/api/share/?title=On+Keyboards&amp;link=http://blog.damianbrady.com.au/2009/04/06/on-keyboards/&amp;notes=So%20my%20keyboard%20at%20work%20just%20broke.%20%C2%A0Doesn%27t%20happen%20often%2C%20but%20one%20of%20the%20keys%20just%20stopped%20y%27know...%20putting%20it%27s%20letter%20on%20the%20screen.%0D%0A%0D%0ASo%20I%20got%20given%20a%20replacement%20from%20somewhere.%0D%0A%0D%0AHere%27s%20the%20thing%20-%20the%20layout%20is%20different.%20%C2%A0Any%20programmer%20or%20techie%20or%20otherwise-nerd%20will%20know%20what%20I%20mean%20w&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=%2524%257Btitle%257D%2B-%2B%2524%257Bshort_link%257D&amp;service=7&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
<li class="shr-facebook">
			<a href="http://www.shareaholic.com/api/share/?title=On+Keyboards&amp;link=http://blog.damianbrady.com.au/2009/04/06/on-keyboards/&amp;notes=So%20my%20keyboard%20at%20work%20just%20broke.%20%C2%A0Doesn%27t%20happen%20often%2C%20but%20one%20of%20the%20keys%20just%20stopped%20y%27know...%20putting%20it%27s%20letter%20on%20the%20screen.%0D%0A%0D%0ASo%20I%20got%20given%20a%20replacement%20from%20somewhere.%0D%0A%0D%0AHere%27s%20the%20thing%20-%20the%20layout%20is%20different.%20%C2%A0Any%20programmer%20or%20techie%20or%20otherwise-nerd%20will%20know%20what%20I%20mean%20w&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=5&amp;tags=&amp;ctype=" rel="nofollow" title="Share this on Facebook">Share this on Facebook</a>
		</li>
<li class="shr-linkedin">
			<a href="http://www.shareaholic.com/api/share/?title=On+Keyboards&amp;link=http://blog.damianbrady.com.au/2009/04/06/on-keyboards/&amp;notes=So%20my%20keyboard%20at%20work%20just%20broke.%20%C2%A0Doesn%27t%20happen%20often%2C%20but%20one%20of%20the%20keys%20just%20stopped%20y%27know...%20putting%20it%27s%20letter%20on%20the%20screen.%0D%0A%0D%0ASo%20I%20got%20given%20a%20replacement%20from%20somewhere.%0D%0A%0D%0AHere%27s%20the%20thing%20-%20the%20layout%20is%20different.%20%C2%A0Any%20programmer%20or%20techie%20or%20otherwise-nerd%20will%20know%20what%20I%20mean%20w&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=88&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
<li class="shr-reddit">
			<a href="http://www.shareaholic.com/api/share/?title=On+Keyboards&amp;link=http://blog.damianbrady.com.au/2009/04/06/on-keyboards/&amp;notes=So%20my%20keyboard%20at%20work%20just%20broke.%20%C2%A0Doesn%27t%20happen%20often%2C%20but%20one%20of%20the%20keys%20just%20stopped%20y%27know...%20putting%20it%27s%20letter%20on%20the%20screen.%0D%0A%0D%0ASo%20I%20got%20given%20a%20replacement%20from%20somewhere.%0D%0A%0D%0AHere%27s%20the%20thing%20-%20the%20layout%20is%20different.%20%C2%A0Any%20programmer%20or%20techie%20or%20otherwise-nerd%20will%20know%20what%20I%20mean%20w&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=40&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
<li class="shr-hackernews">
			<a href="http://www.shareaholic.com/api/share/?title=On+Keyboards&amp;link=http://blog.damianbrady.com.au/2009/04/06/on-keyboards/&amp;notes=So%20my%20keyboard%20at%20work%20just%20broke.%20%C2%A0Doesn%27t%20happen%20often%2C%20but%20one%20of%20the%20keys%20just%20stopped%20y%27know...%20putting%20it%27s%20letter%20on%20the%20screen.%0D%0A%0D%0ASo%20I%20got%20given%20a%20replacement%20from%20somewhere.%0D%0A%0D%0AHere%27s%20the%20thing%20-%20the%20layout%20is%20different.%20%C2%A0Any%20programmer%20or%20techie%20or%20otherwise-nerd%20will%20know%20what%20I%20mean%20w&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=202&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Submit this to Hacker News">Submit this to Hacker News</a>
		</li>
<li class="shr-gmail">
			<a href="http://www.shareaholic.com/api/share/?title=On+Keyboards&amp;link=http://blog.damianbrady.com.au/2009/04/06/on-keyboards/&amp;notes=So%20my%20keyboard%20at%20work%20just%20broke.%20%C2%A0Doesn%27t%20happen%20often%2C%20but%20one%20of%20the%20keys%20just%20stopped%20y%27know...%20putting%20it%27s%20letter%20on%20the%20screen.%0D%0A%0D%0ASo%20I%20got%20given%20a%20replacement%20from%20somewhere.%0D%0A%0D%0AHere%27s%20the%20thing%20-%20the%20layout%20is%20different.%20%C2%A0Any%20programmer%20or%20techie%20or%20otherwise-nerd%20will%20know%20what%20I%20mean%20w&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=52&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Email this via Gmail">Email this via Gmail</a>
		</li>
</ul>
<div style="clear: both;"></div>
<div class="shr-getshr" style="visibility:hidden;font-size:10px !important"><a target="_blank" href="http://www.shareaholic.com/?src=pub">Get Shareaholic</a></div>
<div style="clear: both;"></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.damianbrady.com.au/2009/04/06/on-keyboards/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Getting Somewhere</title>
		<link>http://blog.damianbrady.com.au/2009/02/12/getting-somewhere/</link>
		<comments>http://blog.damianbrady.com.au/2009/02/12/getting-somewhere/#comments</comments>
		<pubDate>Thu, 12 Feb 2009 01:03:44 +0000</pubDate>
		<dc:creator>Damian Brady</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://blog.damianbrady.com.au/?p=98</guid>
		<description><![CDATA[My last post talked about how I wasn&#8217;t getting anywhere with my project.  Well now I am. I might have mentioned that I&#8217;m using php and while it&#8217;s pretty easy to do stuff, I sometimes feel uncomfortable with the looseness of it all.  If you&#8217;ve used php in addition to a &#8220;real&#8221; OO language, you&#8217;ll [...]]]></description>
			<content:encoded><![CDATA[<p><strong>My <a title="Time or Motivation Poor" href="http://blog.damianbrady.com.au/2009/01/20/time-or-motivation-poor/">last post</a></strong><strong> talked about how I wasn&#8217;t getting anywhere with my project.  Well now I am.</strong></p>
<p>I might have mentioned that I&#8217;m using php and while it&#8217;s pretty easy to do stuff, <strong>I sometimes feel uncomfortable with the looseness of it all</strong>.  If you&#8217;ve used php in addition to a &#8220;real&#8221; OO language, you&#8217;ll know what I mean.  Lots and lots of globally-accessible functions with no namespaces, duck-typing, all that sort of stuff.</p>
<p><strong>So I&#8217;m following some better practice</strong>s (as suggested by Jon in his comment on the last post).  Nothing is very groundbreaking and I&#8217;m sure most newer php projects use the same kind of things.  Anyway, here&#8217;s what I&#8217;m doing:</p>
<p><strong>I&#8217;m using an ORM library</strong> to get from my database to my code and vice versa.  <strong>Specifically </strong><a title="Doctrine Project" href="http://www.doctrine-project.org/" target="_blank"><strong>Doctrine</strong></a>.  I&#8217;m reasonably familiar how these things work having used <a title="NHibernate" href="http://www.hibernate.org/343.html" target="_blank">NHibernate</a> for .Net (a port of Java&#8217;s <a title="Hibernate" href="http://www.hibernate.org" target="_blank">Hibernate</a>), but I&#8217;ve been impressed with how easy it&#8217;s been this time.  I got Doctrine working beautifully for my spider-web of a MySql database inside an evening with no experience.  I&#8217;ll let you know how it works out in the long run.  And yes, MySql is the database right now but Doctrine allows it to change very easily as expected.</p>
<p><strong>I&#8217;m using an MVC pattern</strong> so my code doesn&#8217;t get too mixed in with my UI.  Now I&#8217;m sure there are plenty of libraries and frameworks out there that would help me with this, but <strong>I&#8217;m rolling my own&#8230; if you can call it that</strong>.  I&#8217;m used to .Net&#8217;s code-behind method so I&#8217;m really just copying that to an extent.  Each php page will have an include at the top that references the code-behind.  The &#8220;code-behind&#8221; php file will set up all the data and will provide functions that can be called by the front one.  Simple, but it should be effective.</p>
<p><strong>Finally, I&#8217;m using </strong><a title="JQuery" href="http://www.jquery.com" target="_blank"><strong>JQuery</strong></a><strong> for UI prettiness</strong>.  I had a serious look at a lot of javascript libraries and JQuery came out on top for what I needed.</p>
<p>So that&#8217;s it.  That&#8217;s what I&#8217;m doing.  So far it&#8217;s all fitting together quite nicely, but I&#8217;ll be sure to post updates if I want to rave about something or if something sends me into a fit of frustration.</p>
<p>As always, comments are welcome.</p>
<p>Damian</p>
<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
<li class="shr-comfeed">
			<a href="http://blog.damianbrady.com.au/2009/02/12/getting-somewhere/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
<li class="shr-twitter">
			<a href="http://www.shareaholic.com/api/share/?title=Getting+Somewhere&amp;link=http://blog.damianbrady.com.au/2009/02/12/getting-somewhere/&amp;notes=My%20last%20post%20talked%20about%20how%20I%20wasn%27t%20getting%20anywhere%20with%20my%20project.%20%C2%A0Well%20now%20I%20am.%0D%0A%0D%0AI%20might%20have%20mentioned%20that%20I%27m%20using%20php%20and%20while%20it%27s%20pretty%20easy%20to%20do%20stuff%2C%20I%20sometimes%20feel%20uncomfortable%20with%20the%20looseness%20of%20it%20all.%20%C2%A0If%20you%27ve%20used%20php%20in%20addition%20to%20a%20%22real%22%20OO%20language%2C%20you%27ll&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=%2524%257Btitle%257D%2B-%2B%2524%257Bshort_link%257D&amp;service=7&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
<li class="shr-facebook">
			<a href="http://www.shareaholic.com/api/share/?title=Getting+Somewhere&amp;link=http://blog.damianbrady.com.au/2009/02/12/getting-somewhere/&amp;notes=My%20last%20post%20talked%20about%20how%20I%20wasn%27t%20getting%20anywhere%20with%20my%20project.%20%C2%A0Well%20now%20I%20am.%0D%0A%0D%0AI%20might%20have%20mentioned%20that%20I%27m%20using%20php%20and%20while%20it%27s%20pretty%20easy%20to%20do%20stuff%2C%20I%20sometimes%20feel%20uncomfortable%20with%20the%20looseness%20of%20it%20all.%20%C2%A0If%20you%27ve%20used%20php%20in%20addition%20to%20a%20%22real%22%20OO%20language%2C%20you%27ll&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=5&amp;tags=&amp;ctype=" rel="nofollow" title="Share this on Facebook">Share this on Facebook</a>
		</li>
<li class="shr-linkedin">
			<a href="http://www.shareaholic.com/api/share/?title=Getting+Somewhere&amp;link=http://blog.damianbrady.com.au/2009/02/12/getting-somewhere/&amp;notes=My%20last%20post%20talked%20about%20how%20I%20wasn%27t%20getting%20anywhere%20with%20my%20project.%20%C2%A0Well%20now%20I%20am.%0D%0A%0D%0AI%20might%20have%20mentioned%20that%20I%27m%20using%20php%20and%20while%20it%27s%20pretty%20easy%20to%20do%20stuff%2C%20I%20sometimes%20feel%20uncomfortable%20with%20the%20looseness%20of%20it%20all.%20%C2%A0If%20you%27ve%20used%20php%20in%20addition%20to%20a%20%22real%22%20OO%20language%2C%20you%27ll&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=88&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
<li class="shr-reddit">
			<a href="http://www.shareaholic.com/api/share/?title=Getting+Somewhere&amp;link=http://blog.damianbrady.com.au/2009/02/12/getting-somewhere/&amp;notes=My%20last%20post%20talked%20about%20how%20I%20wasn%27t%20getting%20anywhere%20with%20my%20project.%20%C2%A0Well%20now%20I%20am.%0D%0A%0D%0AI%20might%20have%20mentioned%20that%20I%27m%20using%20php%20and%20while%20it%27s%20pretty%20easy%20to%20do%20stuff%2C%20I%20sometimes%20feel%20uncomfortable%20with%20the%20looseness%20of%20it%20all.%20%C2%A0If%20you%27ve%20used%20php%20in%20addition%20to%20a%20%22real%22%20OO%20language%2C%20you%27ll&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=40&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
<li class="shr-hackernews">
			<a href="http://www.shareaholic.com/api/share/?title=Getting+Somewhere&amp;link=http://blog.damianbrady.com.au/2009/02/12/getting-somewhere/&amp;notes=My%20last%20post%20talked%20about%20how%20I%20wasn%27t%20getting%20anywhere%20with%20my%20project.%20%C2%A0Well%20now%20I%20am.%0D%0A%0D%0AI%20might%20have%20mentioned%20that%20I%27m%20using%20php%20and%20while%20it%27s%20pretty%20easy%20to%20do%20stuff%2C%20I%20sometimes%20feel%20uncomfortable%20with%20the%20looseness%20of%20it%20all.%20%C2%A0If%20you%27ve%20used%20php%20in%20addition%20to%20a%20%22real%22%20OO%20language%2C%20you%27ll&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=202&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Submit this to Hacker News">Submit this to Hacker News</a>
		</li>
<li class="shr-gmail">
			<a href="http://www.shareaholic.com/api/share/?title=Getting+Somewhere&amp;link=http://blog.damianbrady.com.au/2009/02/12/getting-somewhere/&amp;notes=My%20last%20post%20talked%20about%20how%20I%20wasn%27t%20getting%20anywhere%20with%20my%20project.%20%C2%A0Well%20now%20I%20am.%0D%0A%0D%0AI%20might%20have%20mentioned%20that%20I%27m%20using%20php%20and%20while%20it%27s%20pretty%20easy%20to%20do%20stuff%2C%20I%20sometimes%20feel%20uncomfortable%20with%20the%20looseness%20of%20it%20all.%20%C2%A0If%20you%27ve%20used%20php%20in%20addition%20to%20a%20%22real%22%20OO%20language%2C%20you%27ll&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=52&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Email this via Gmail">Email this via Gmail</a>
		</li>
</ul>
<div style="clear: both;"></div>
<div class="shr-getshr" style="visibility:hidden;font-size:10px !important"><a target="_blank" href="http://www.shareaholic.com/?src=pub">Get Shareaholic</a></div>
<div style="clear: both;"></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.damianbrady.com.au/2009/02/12/getting-somewhere/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Long-term Drafts</title>
		<link>http://blog.damianbrady.com.au/2008/12/10/long-term-drafts/</link>
		<comments>http://blog.damianbrady.com.au/2008/12/10/long-term-drafts/#comments</comments>
		<pubDate>Wed, 10 Dec 2008 06:23:17 +0000</pubDate>
		<dc:creator>Damian Brady</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.damianbrady.com.au/?p=94</guid>
		<description><![CDATA[So when I wrote that post yesterday, to my surprise I found three other draft posts of varying ages.  I know myself well enough to know that I probably won&#8217;t go back and revisit them, so here&#8217;s what they were about: Salling Clicker That&#8217;s all that was in this one &#8211; just the title.  I know what [...]]]></description>
			<content:encoded><![CDATA[<p>So when I wrote <a title="Free Electricity" href="http://blog.damianbrady.com.au/2008/12/09/free-electricity/" target="_self">that post</a> yesterday, to my surprise I found three other draft posts of varying ages.  I know myself well enough to know that I probably won&#8217;t go back and revisit them, so here&#8217;s what they were about:</p>
<p><strong>Salling Clicker</strong></p>
<p>That&#8217;s all that was in this one &#8211; just the title.  I know what I was going to say though.  I was going to heap praise on <a title="Salling Clicker" href="http://www.salling.com/clicker/windows/" target="_blank">this tiny but personally very useful app</a>.</p>
<p>I have a beautiful (expensive) Sony LCD TV in my living room with a very handy VGA port.  My computer is right nearby so it&#8217;s permanently connected.  What Salling Clicker does is provide a way to control my computer from my mobile phone via Bluetooth or Wifi.  This is amazingly useful when watching movies from the couch.</p>
<p>The interface is solid and deployment is very easy.  Best of all, it&#8217;s cheap.</p>
<p><strong>Understanding threading is more important than ever</strong></p>
<p>This was a post I was going to write about a now old <a title="Ars Technica - The future of processors" href="http://arstechnica.com/news.ars/post/20080702-intel-an-expensive-many-core-future-is-ahead-of-us.html" target="_blank">Ars Technica article</a>.  The article was about the future of processors according to Intel where they suggested there&#8217;d be many many cores, not just two or four.  I didn&#8217;t get too far on my post:</p>
<blockquote><p>We were taught threading in the very first programming subject I took at uni.  Initially, it can be difficult to get your head around.  Eventually I got there.  I was convinced though that plenty of people passed that course without any firm idea of how threading worked.</p>
<p>With the announcement from Intel that they&#8217;re heading down the track of many, many CPU cores, understanding threading is more important than ever for a budding software developer.</p></blockquote>
<p>What I was going to get to was that developers will have to start thinking about parallel processing.  If we&#8217;re stuck on 3GHz per core and you want to do some crazy-complex stuff, it better be able to be spread across the cores or it will be S.L.O.W.</p>
<p>Will the compiler/OS/processor be able to handle this for you?  Well, yeah, possibly to an extent, but writing your software to take advantage of new processor capabilities will be a necessity for performance.</p>
<p>At the very least, you&#8217;ll have to have a detailed knowledge of how threading works.  It&#8217;s the future, man.</p>
<p><strong>Religious Coding</strong></p>
<p>The oldest draft of the lot was also the closest to being finished.  Here&#8217;s what I wrote, minus the half-written final sentence (seriously, I stopped halfway through a sentence):</p>
<div>
<blockquote><p>I stumbled across this article called &#8220;<a title="The Narcissism of Small Code Differences" href="http://weblog.raganwald.com/2008/05/narcissism-of-small-code-differences.html" target="_blank">The Narcissism of Small Code Differences</a>&#8221; via Reddit.  Basically, it presents an allegorical scenario where programmers with different ideologies replace each other&#8217;s code with their version of how it should be done.</p>
<p>The point is that these hypothetical programmers &#8211; each idealists in their own particular way &#8211; are more concerned with the &#8220;best&#8221; way of doing something than they are with the intended purpose.</p>
<p>Firstly, let me say that I think the story is slightly flawed &#8211; a suggestion backed up by many of the comments below the article.  This is mainly because the &#8220;good&#8221; agnostic programmer who wrote the original working code doesn&#8217;t seem to have included any inline comments that would have prevented the errors that were introduced later.</p>
<p>That said, I definitely agree with the tacit suggestion that sometimes it&#8217;s not necessary to work out the most pure way to write some code.  This is particularly true when the behaviour of the component or method you&#8217;re writing has a very limited and well-defined scope such as the one in the example.</p>
<p>I&#8217;ve got to admit that my immediate thought when I read the snippet of code at the top was that it wasn&#8217;t particularly elegant and that it could probably be done in a more concise way (a la the Librarian in the code).</p></blockquote>
<p>I think what I was going to get to was a comment about comments.  Who cares how the code is written (within reason) as long as it does what&#8217;s intended.  The problem was that the intention was never documented in the code.</p>
<p>Now, for such a simple method, the thinking is that you don&#8217;t really need comments &#8211; it&#8217;s pretty plain what it does &#8211; it pads a number with zeros to make it five digits long.  The problem is that nowhere is it written that a two-digit input is invalid, and that&#8217;s where the my-code-is-better-than-your-code comes in.</p>
<p>I&#8217;m sure I&#8217;ve said this before, <a title="Coding Horror - Code Tells You How, Comments Tell You Why" href="http://www.codinghorror.com/blog/archives/000749.html" target="_blank">and so have others</a>, but comments should be used to explain <em>why </em>you&#8217;re doing something, not <em>how</em>.  Other programmers can see how you&#8217;ve done it, but they don&#8217;t know what you were thinking.</p>
<p>Anyway, that&#8217;s it &#8211; drafts cleaned up.  Feel free to leave comments about any of them!</p>
</div>
<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
<li class="shr-comfeed">
			<a href="http://blog.damianbrady.com.au/2008/12/10/long-term-drafts/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
<li class="shr-twitter">
			<a href="http://www.shareaholic.com/api/share/?title=Long-term+Drafts&amp;link=http://blog.damianbrady.com.au/2008/12/10/long-term-drafts/&amp;notes=So%20when%20I%20wrote%20that%20post%20yesterday%2C%20to%20my%20surprise%20I%20found%20three%20other%C2%A0draft%C2%A0posts%20of%20varying%20ages.%20%C2%A0I%20know%20myself%20well%20enough%20to%20know%20that%20I%20probably%20won%27t%20go%20back%20and%20revisit%20them%2C%20so%20here%27s%20what%20they%20were%20about%3A%0D%0A%0D%0ASalling%20Clicker%0D%0A%0D%0AThat%27s%20all%20that%20was%20in%20this%20one%20-%20just%20the%20title.%20%C2%A0I%20know%20&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=%2524%257Btitle%257D%2B-%2B%2524%257Bshort_link%257D&amp;service=7&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
<li class="shr-facebook">
			<a href="http://www.shareaholic.com/api/share/?title=Long-term+Drafts&amp;link=http://blog.damianbrady.com.au/2008/12/10/long-term-drafts/&amp;notes=So%20when%20I%20wrote%20that%20post%20yesterday%2C%20to%20my%20surprise%20I%20found%20three%20other%C2%A0draft%C2%A0posts%20of%20varying%20ages.%20%C2%A0I%20know%20myself%20well%20enough%20to%20know%20that%20I%20probably%20won%27t%20go%20back%20and%20revisit%20them%2C%20so%20here%27s%20what%20they%20were%20about%3A%0D%0A%0D%0ASalling%20Clicker%0D%0A%0D%0AThat%27s%20all%20that%20was%20in%20this%20one%20-%20just%20the%20title.%20%C2%A0I%20know%20&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=5&amp;tags=&amp;ctype=" rel="nofollow" title="Share this on Facebook">Share this on Facebook</a>
		</li>
<li class="shr-linkedin">
			<a href="http://www.shareaholic.com/api/share/?title=Long-term+Drafts&amp;link=http://blog.damianbrady.com.au/2008/12/10/long-term-drafts/&amp;notes=So%20when%20I%20wrote%20that%20post%20yesterday%2C%20to%20my%20surprise%20I%20found%20three%20other%C2%A0draft%C2%A0posts%20of%20varying%20ages.%20%C2%A0I%20know%20myself%20well%20enough%20to%20know%20that%20I%20probably%20won%27t%20go%20back%20and%20revisit%20them%2C%20so%20here%27s%20what%20they%20were%20about%3A%0D%0A%0D%0ASalling%20Clicker%0D%0A%0D%0AThat%27s%20all%20that%20was%20in%20this%20one%20-%20just%20the%20title.%20%C2%A0I%20know%20&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=88&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
<li class="shr-reddit">
			<a href="http://www.shareaholic.com/api/share/?title=Long-term+Drafts&amp;link=http://blog.damianbrady.com.au/2008/12/10/long-term-drafts/&amp;notes=So%20when%20I%20wrote%20that%20post%20yesterday%2C%20to%20my%20surprise%20I%20found%20three%20other%C2%A0draft%C2%A0posts%20of%20varying%20ages.%20%C2%A0I%20know%20myself%20well%20enough%20to%20know%20that%20I%20probably%20won%27t%20go%20back%20and%20revisit%20them%2C%20so%20here%27s%20what%20they%20were%20about%3A%0D%0A%0D%0ASalling%20Clicker%0D%0A%0D%0AThat%27s%20all%20that%20was%20in%20this%20one%20-%20just%20the%20title.%20%C2%A0I%20know%20&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=40&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
<li class="shr-hackernews">
			<a href="http://www.shareaholic.com/api/share/?title=Long-term+Drafts&amp;link=http://blog.damianbrady.com.au/2008/12/10/long-term-drafts/&amp;notes=So%20when%20I%20wrote%20that%20post%20yesterday%2C%20to%20my%20surprise%20I%20found%20three%20other%C2%A0draft%C2%A0posts%20of%20varying%20ages.%20%C2%A0I%20know%20myself%20well%20enough%20to%20know%20that%20I%20probably%20won%27t%20go%20back%20and%20revisit%20them%2C%20so%20here%27s%20what%20they%20were%20about%3A%0D%0A%0D%0ASalling%20Clicker%0D%0A%0D%0AThat%27s%20all%20that%20was%20in%20this%20one%20-%20just%20the%20title.%20%C2%A0I%20know%20&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=202&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Submit this to Hacker News">Submit this to Hacker News</a>
		</li>
<li class="shr-gmail">
			<a href="http://www.shareaholic.com/api/share/?title=Long-term+Drafts&amp;link=http://blog.damianbrady.com.au/2008/12/10/long-term-drafts/&amp;notes=So%20when%20I%20wrote%20that%20post%20yesterday%2C%20to%20my%20surprise%20I%20found%20three%20other%C2%A0draft%C2%A0posts%20of%20varying%20ages.%20%C2%A0I%20know%20myself%20well%20enough%20to%20know%20that%20I%20probably%20won%27t%20go%20back%20and%20revisit%20them%2C%20so%20here%27s%20what%20they%20were%20about%3A%0D%0A%0D%0ASalling%20Clicker%0D%0A%0D%0AThat%27s%20all%20that%20was%20in%20this%20one%20-%20just%20the%20title.%20%C2%A0I%20know%20&amp;short_link=&amp;shortener=bitly&amp;shortener_key=damovisa|R_9bd5086c82e396ddea755c2667073a1f&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=52&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Email this via Gmail">Email this via Gmail</a>
		</li>
</ul>
<div style="clear: both;"></div>
<div class="shr-getshr" style="visibility:hidden;font-size:10px !important"><a target="_blank" href="http://www.shareaholic.com/?src=pub">Get Shareaholic</a></div>
<div style="clear: both;"></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.damianbrady.com.au/2008/12/10/long-term-drafts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

