<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>OJ&#39;s Perspective</title>
    <link>/</link>
    <description>Recent content on OJ&#39;s Perspective</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-au</language>
    <copyright>Copyright OJ Reeves 2019</copyright>
    <lastBuildDate>Wed, 17 Apr 2019 16:55:43 +1000</lastBuildDate>
    
	<atom:link href="/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>New Livestream Series</title>
      <link>/posts/new-livestream-series/</link>
      <pubDate>Wed, 17 Apr 2019 16:55:43 +1000</pubDate>
      
      <guid>/posts/new-livestream-series/</guid>
      <description>TL;DR We&amp;rsquo;re going to build a .NET implementation of Meterpreter live on stream. Together. From scratch. Read on for all the details!
The Backstory I remember kicking off my first ever live stream on Twitch back in September 2016. It feels like a lifetime ago already. That stream, broken up into two parts (1, 2), was me breaking open the Capcom.sys driver that had a blatant backdoor in it and abusing this backdoor to get NT AUTHORITY\SYSTEM privileges.</description>
    </item>
    
    <item>
      <title>Police Quest CTF Challenge</title>
      <link>/posts/police-quest-ctf-challenge/</link>
      <pubDate>Mon, 26 Nov 2018 16:41:10 +1000</pubDate>
      
      <guid>/posts/police-quest-ctf-challenge/</guid>
      <description>Earlier this month, I donated a CTF challenge to the legendary bunch of folks that ran the Kiwicon CTF in Wellington. It&amp;rsquo;s a bit of a tradition for me to pass on at least one challenge, and I felt it was worth keeping that tradition going this year.
The challenge was attempted by a few people during the conference, however I don&amp;rsquo;t believe it was successfully owned. As a result, I wanted to release this to the general public for funzies.</description>
    </item>
    
    <item>
      <title>BSidesCBR CTF Round Up</title>
      <link>/posts/bsidescbr-ctf-round-up/</link>
      <pubDate>Wed, 22 Mar 2017 11:51:10 +1000</pubDate>
      
      <guid>/posts/bsidescbr-ctf-round-up/</guid>
      <description>BSides Canberra for 2017 has just finished up! A cracking 2-day conference hosted by a bunch of infosec folks down here in Australia, and everything went as well as it could have. It was great fun, and the vibe there was really awesome.
If you&amp;rsquo;re here for the details on how to get the CTF challenges running locally, jump to the bottom of the post. Keep reading if you want more information on how things went.</description>
    </item>
    
    <item>
      <title>Live Streaming</title>
      <link>/streaming/</link>
      <pubDate>Tue, 06 Dec 2016 00:00:00 +0000</pubDate>
      
      <guid>/streaming/</guid>
      <description>In an effort to help dispel the myth that many security people are able to break things without trying or thinking, I decided to start live-streaming my desktop while doing various security-related things. The aim is to show that:
 I am stupid. I don&amp;rsquo;t know what I am doing! It&amp;rsquo;s ok if you don&amp;rsquo;t either! Security stuff is tricky, finnicky, and frustrating. It&amp;rsquo;s also awesome fun, when it all finally comes together.</description>
    </item>
    
    <item>
      <title>bin2json CTF Challenge</title>
      <link>/posts/bin2json-ctf-challenge/</link>
      <pubDate>Mon, 21 Nov 2016 13:52:00 +1000</pubDate>
      
      <guid>/posts/bin2json-ctf-challenge/</guid>
      <description>At the beginning of this year I agreed to help a good friend out and build a challenge for the BSidesCbr 2016 CTF. The aim was to:
 Create a fun binary pwnable. Avoid the typical exploitation paths (eg. stack/heap buffer overflows, format strings, etc). Include a couple of code related issues that are close to my heart. Design it so that multiple issues needed to be abused in order to gain code execution.</description>
    </item>
    
    <item>
      <title>Linux SRP Overwrite and ROP</title>
      <link>/posts/linux-srp-overwrite-and-rop/</link>
      <pubDate>Wed, 12 Oct 2016 08:14:09 +1000</pubDate>
      
      <guid>/posts/linux-srp-overwrite-and-rop/</guid>
      <description>Recently I started live-streaming some security-related stuff on Twitch because I enjoy teaching other people and showing them the processes, tools and techniques that I use while attempting to not suck at breaking stuff. Last night I did my second stream, which aimed to cover the following:
 A quick analysis of a vulnerable 32-bit Linux binary. An explanation of how stack buffer overflows can result in the Saved Return Pointer (SRP) being overwritten.</description>
    </item>
    
    <item>
      <title>Staged vs Stageless Handlers</title>
      <link>/posts/staged-vs-stageless-handlers/</link>
      <pubDate>Wed, 05 Oct 2016 10:46:58 +1000</pubDate>
      
      <guid>/posts/staged-vs-stageless-handlers/</guid>
      <description>&lt;p&gt;Metasploit comes with a variety of payloads, as we all know. Those payloads come in a few different types, and vary depending on platform. Of those types, there are two major &amp;ldquo;categories&amp;rdquo; available with a key difference that is often not understood. They are &lt;code&gt;staged&lt;/code&gt; and &lt;code&gt;stageless&lt;/code&gt; payloads.&lt;/p&gt;

&lt;p&gt;The purpose of this post is to talk about the differences between these two, particularly in the context of Meterpreter and the Metasploit handlers. I&amp;rsquo;ll also cover off what happens with TCP payloads/handlers, so that it&amp;rsquo;s clear how it works and what you can do to avoid a common pitfall and reduce noise on the wire.&lt;/p&gt;

&lt;p&gt;Let&amp;rsquo;s dive in.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>About</title>
      <link>/about/</link>
      <pubDate>Mon, 11 Jul 2016 00:00:00 +0000</pubDate>
      
      <guid>/about/</guid>
      <description> I&amp;rsquo;m just another security guy trying to make the world a better place, one hack at a time. I live stream hacking and development. I help out a bit with Metasploit and Meterpreter. I&amp;rsquo;m a proud member of the Corelan team. I&amp;rsquo;ve managed to acquire OSCP and OSCE certifications. I run a specialist security consultancy called Beyond Binary.  </description>
    </item>
    
    <item>
      <title>Contact</title>
      <link>/contact/</link>
      <pubDate>Mon, 11 Jul 2016 00:00:00 +0000</pubDate>
      
      <guid>/contact/</guid>
      <description> Hit me up on Twitter. Throw a comment on a blog post on this site. Drop me an email, my address is oj@&amp;lt;this domain&amp;gt;. If it’s sensitive you can use my PGP key and send me an email.  </description>
    </item>
    
    <item>
      <title>Continued Meterpreter Development</title>
      <link>/posts/continued-meterpreter-development/</link>
      <pubDate>Thu, 05 May 2016 07:38:32 +1000</pubDate>
      
      <guid>/posts/continued-meterpreter-development/</guid>
      <description>&lt;p&gt;Active users of Metasploit will no doubt be aware that Meterpreter is still being actively developed and enhanced by a bunch of people. I&amp;rsquo;m lucky enough to still be one of them! In this post I just want to cover a few things that have been done to it recently, and to give a bit of visbility of how I am able to continue contributing in the way that I do.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>TLV Traffic Obfuscation</title>
      <link>/posts/tlv-traffic-obfuscation/</link>
      <pubDate>Mon, 22 Feb 2016 00:11:46 +0000</pubDate>
      
      <guid>/posts/tlv-traffic-obfuscation/</guid>
      <description>&lt;p&gt;As many of you are already aware, Metasploit and Meterpreter talk to each other using a variety of transports. While the transports may vary from session to session, one thing that doesn&amp;rsquo;t vary is the &amp;ldquo;protocol&amp;rdquo; that travels over those transports. This information fits a well-known structure, and is referred to as &lt;em&gt;TLV Packets&lt;/em&gt; (Type, Length, Value).&lt;/p&gt;

&lt;p&gt;Once a session has been established, the TLV traffic that is sent across the wire contains a bunch of very easily recognisable content, and as such can be detected by Antivirus software, or Intrusion Detection Systems.&lt;/p&gt;

&lt;p&gt;Recently, I made a change to the way the packets are formed prior to transmission, and this post is intended to explain the detail of how it works.&lt;/p&gt;

&lt;p&gt;Warning: It&amp;rsquo;s &lt;em&gt;really simple&lt;/em&gt;.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Solving &#39;The Blender&#39;</title>
      <link>/posts/solving-the-blender/</link>
      <pubDate>Thu, 05 Feb 2015 15:27:57 +0000</pubDate>
      
      <guid>/posts/solving-the-blender/</guid>
      <description>&lt;p&gt;This post contains a walk-through of the process required to solve &lt;em&gt;The Blender&lt;/em&gt;. &lt;em&gt;The Blender&lt;/em&gt; was a reverse engineering challenge that I built and submitted to &lt;a href=&#34;https://twitter.com/hyprwired&#34;&gt;hyprwired&lt;/a&gt; for inclusion in the &lt;a href=&#34;https://kiwicon.org/&#34;&gt;Kiwicon&lt;/a&gt; &lt;a href=&#34;https://kiwicon.org/the-con/hamiltr0nno-carrier/&#34;&gt;CTF&lt;/a&gt;. The challenge wasn&amp;rsquo;t intended to be too mind-boggling, but it turned out that nobody was able to solve it on the day.&lt;/p&gt;

&lt;p&gt;I won&amp;rsquo;t deny that this didn&amp;rsquo;t me feel awful &lt;em&gt;and&lt;/em&gt; great at the same time! However, I don&amp;rsquo;t want this lying in the depths of history unsolved, so I wanted to show people the story behind the challenge, and how to nail it using IDA and your brain.&lt;/p&gt;

&lt;p&gt;Please &lt;a href=&#34;/uploads/2015/02/blender/the_blender.zip&#34;&gt;download&lt;/a&gt; it if you would like to follow along.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>A Note on Disclosure</title>
      <link>/posts/a-note-on-disclosure/</link>
      <pubDate>Sat, 17 Jan 2015 08:19:03 +0000</pubDate>
      
      <guid>/posts/a-note-on-disclosure/</guid>
      <description>&lt;p&gt;In October last year, while conducting an internal assessment for a client in Sydney, I found a vulnerability in a vendor product. The flaw allows for remote code execution on the device, &lt;em&gt;as the root user&lt;/em&gt;, without requiring authentication. Needless to say, &amp;ldquo;instant remote root&amp;rdquo; vulnerabilities are bad. On the scale of bug severity, they&amp;rsquo;re up pretty high. For a device such as this, it doesn&amp;rsquo;t really get any worse.&lt;/p&gt;

&lt;p&gt;Once I had a working proof-of-concept which demonstrated the flaw, I made contact with the vendor in an effort to disclose the issue in a secure and responsible manner. I was aware that other options were available, such as handing the issue over to CERT or some other initiative that deals with the pain of disclosure, but I wanted to get first-hand experience of the process, hence I decided to do it myself.&lt;/p&gt;

&lt;p&gt;I&amp;rsquo;m not going to lie, it has been frustrating.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>The Offensive Security Playground</title>
      <link>/posts/the-offensive-security-playground/</link>
      <pubDate>Sat, 03 Jan 2015 09:29:39 +0000</pubDate>
      
      <guid>/posts/the-offensive-security-playground/</guid>
      <description>&lt;p&gt;In November last year, I was fortunate enough to participate in the beta testing of &amp;ldquo;&lt;a href=&#34;http://www.offensive-security.com/offensive-security-solutions/virtual-penetration-testing-labs/&#34; title=&#34;Virtual Penetration Testing Labs&#34;&gt;The Playground&lt;/a&gt;&amp;rdquo; &amp;ndash; a new product from the folks who gave us &lt;a href=&#34;http://www.offensive-security.com/information-security-certifications/oscp-offensive-security-certified-professional/&#34; title=&#34;OSCP&#34;&gt;OSCP&lt;/a&gt;, &lt;a href=&#34;http://www.offensive-security.com/information-security-certifications/oscp-offensive-security-certified-expert/&#34; title=&#34;OSCE&#34;&gt;OSCE&lt;/a&gt; and others, &lt;a href=&#34;http://www.offensive-security.com/&#34; title=&#34;Offensive Security&#34;&gt;Offensive Security&lt;/a&gt;. The Playground, otherwise known as the &amp;ldquo;Virtual Penetration Test Labs&amp;rdquo;, is an environment designed to aid in practising and honing your skills as a penetration tester.&lt;/p&gt;

&lt;p&gt;Offensive Security have posted some detail of this lab &lt;a href=&#34;http://www.offensive-security.com/offsec/professional-penetration-testing-labs/&#34;&gt;on their site&lt;/a&gt;. It&amp;rsquo;s worth reading to give context to this post.&lt;/p&gt;

&lt;p&gt;This post is a mini-review of the lab, along with some thoughts as to why this could be good for you and/or your organisation.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>CSAW 2014 - Saturn</title>
      <link>/posts/csaw-2014-saturn/</link>
      <pubDate>Mon, 22 Sep 2014 14:57:08 +0000</pubDate>
      
      <guid>/posts/csaw-2014-saturn/</guid>
      <description>&lt;p&gt;This post contains a detailed account of how I solved the &lt;strong&gt;Saturn&lt;/strong&gt; exploitation challenge during &lt;a href=&#34;https://ctf.isis.poly.edu/&#34;&gt;CSAW 2014 CTF&lt;/a&gt;. I thought that this challenge was very entertaining, hopefully you will too.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Jumping with Bad Chars</title>
      <link>/posts/jumping-with-bad-chars/</link>
      <pubDate>Fri, 21 Mar 2014 22:31:39 +0000</pubDate>
      
      <guid>/posts/jumping-with-bad-chars/</guid>
      <description>&lt;p&gt;During the course of exploit development it is not uncommon to require jumps in your shellcode. The most common case for these jumps is when doing &lt;a href=&#34;https://www.corelan.be/index.php/2009/07/25/writing-buffer-overflow-exploits-a-quick-and-basic-tutorial-part-3-seh/&#34;&gt;SEH overwrites&lt;/a&gt;, due to their nature. There are times when the author of the exploit has a hard time performing these jumps due to the fact that only a subset of characters are deemed valid for use by the target application in that particular input field.&lt;/p&gt;

&lt;p&gt;In this post I want to briefly cover a few options for performing those jumps in such a scenario.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>myftpd Exploit on Windows 7</title>
      <link>/posts/myftpd-exploit-on-windows-7/</link>
      <pubDate>Wed, 12 Mar 2014 19:48:47 +0000</pubDate>
      
      <guid>/posts/myftpd-exploit-on-windows-7/</guid>
      <description>&lt;p&gt;In my &lt;a href=&#34;/posts/idsecconf-2013-myftpd-challenge/&#34;&gt;previous post&lt;/a&gt; I covered off, in relative detail, how to exploit the IDSECCONF offline CTF &lt;code&gt;myftpd&lt;/code&gt; server running on Windows XP. This exploit makes use of a Vanilla &lt;code&gt;EIP&lt;/code&gt; overwrite along with some &lt;em&gt;shellcode golf&lt;/em&gt; to allow for execution of arbitrary payloads. At the time I had intended to write up a way of making this work on other versions of Windows, but that post ended up long enough so I decided to publish without the extra detail.&lt;/p&gt;

&lt;p&gt;In this post I am going to show how you can make this exploit work on Windows 7 SP1. This doesn&amp;rsquo;t really &lt;em&gt;bypass&lt;/em&gt; ASLR, it just avoids it.&lt;/p&gt;

&lt;p&gt;If you haven&amp;rsquo;t read the &lt;a href=&#34;/posts/idsecconf-2013-myftpd-challenge/&#34;&gt;previous post&lt;/a&gt;, then please go and read that now. If you&amp;rsquo;re ready, then let&amp;rsquo;s dive in.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>IDSECCONF 2013 myftpd challenge</title>
      <link>/posts/idsecconf-2013-myftpd-challenge/</link>
      <pubDate>Sat, 01 Mar 2014 01:26:33 +0000</pubDate>
      
      <guid>/posts/idsecconf-2013-myftpd-challenge/</guid>
      <description>&lt;h2 id=&#34;update-2018-09-13&#34;&gt;Update 2018-09-13&lt;/h2&gt;

&lt;p&gt;Lots of people have asked for a copy of the binary so that they can play along with this. I&amp;rsquo;ve contacted &lt;a href=&#34;https://twitter.com/y3dips&#34;&gt;Ammar&lt;/a&gt; and he has said it&amp;rsquo;s ok for me to provide it here. So for those that are keen to have a go at this themselves, &lt;a href=&#34;/uploads/2014/03/myftpd.exe&#34;&gt;have at it!&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&#34;on-with-the-show&#34;&gt;On with the Show&lt;/h2&gt;

&lt;p&gt;With &lt;a href=&#34;http://buffered.io/posts/osce-and-me/&#34;&gt;OSCE&lt;/a&gt; out of the way and the family in need of a break from me doing study and certifications, I decided to turn my hand to some fun exploit challenges to keep up the practice. To a wannabe bug exploiter such as myself, there are plenty of options out there which are great for fun and practice. Some of those options are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Downloading an application with a known vulnerability and exploit and practising on that.&lt;/li&gt;
&lt;li&gt;Downloading a proof of concept crash from &lt;a href=&#34;http://exploit-db.com/&#34;&gt;ExploitDB&lt;/a&gt; and turning it into a full exploit.&lt;/li&gt;
&lt;li&gt;Reading sites such as &lt;a href=&#34;https://www.corelan.be/&#34;&gt;Corelan&lt;/a&gt; and &lt;a href=&#34;http://www.fuzzysecurity.com/&#34;&gt;Fuzzy Security&lt;/a&gt;, who both have great exploit tutorials. However, instead of reading through the walk-throughs, download the vulnerable applications and attempt to exploit them yourself.&lt;/li&gt;
&lt;li&gt;Getting some &amp;ldquo;exploitme&amp;rdquo; style challenges from some bygone &lt;a href=&#34;https://en.wikipedia.org/wiki/Capture_the_flag&#34;&gt;CTFs&lt;/a&gt;. A great place to go is &lt;a href=&#34;http://www.shell-storm.org/&#34;&gt;ShellStorm&lt;/a&gt;, which contains an archive of lots of these.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On this particular day I thought I&amp;rsquo;d try one of the harder exploitme challenges and it just so happened that something appeared in my Twitter feed that pointed me to &lt;a href=&#34;http://clog.ammar.web.id/2013/06/idsecconf-2013-ctff-offline-challenge.html&#34;&gt;Ammar&lt;/a&gt;&amp;rsquo;s post discussing a level &lt;code&gt;500&lt;/code&gt; exploit challenge from the &lt;a href=&#34;http://2013.idsecconf.org/&#34;&gt;IDSECCONF 2013 CTF&lt;/a&gt;. To quote Ammar:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&amp;hellip; during the IDSECCONF offline CTF, none of the team were able to wrap
up a working remote exploit, although one team were able to get [the]
correct offset to overwrite EIP &amp;hellip;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This had the hallmarks of being tricky and fun! I asked Ammar if the binary was still available and he kindly made it available for download (head to his site if you would like to have a shot at it yourself).&lt;/p&gt;

&lt;p&gt;What follows is my dissection of the binary, along with my approach to exploiting it so that it would allow the attacker to submit &lt;em&gt;any&lt;/em&gt; payload including reverse &lt;a href=&#34;https://github.com/rapid7/meterpreter&#34;&gt;Meterpreter&lt;/a&gt; shells, bind shells and VNC injection. If you&amp;rsquo;re keen to take this challenge on by yourself, please don&amp;rsquo;t read this as it&amp;rsquo;s a blatant spoiler. Otherwise, let&amp;rsquo;s get stuck in!&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Building Meterpreter is Easy</title>
      <link>/posts/building-meterpreter-is-easy/</link>
      <pubDate>Tue, 18 Feb 2014 07:01:37 +0000</pubDate>
      
      <guid>/posts/building-meterpreter-is-easy/</guid>
      <description>I might not have mentioned this before, but I have to tell you that building Meterpreter is easy. In the old days, downloading the source was the easy bit and compiling it was the hard bit. The steps involved in getting a Meterpreter build environment together were extensive and prone to error. In fact if you got one wrong, or you did things in the wrong order, then you could end up having to remove everything from your machine and starting again.</description>
    </item>
    
    <item>
      <title>OSCE and Me</title>
      <link>/posts/osce-and-me/</link>
      <pubDate>Mon, 17 Feb 2014 21:08:15 +0000</pubDate>
      
      <guid>/posts/osce-and-me/</guid>
      <description>&lt;p&gt;I have always found it hard to separate myself from something that I have a keen interest, and this has certainly proven to be the case when it comes to Information Security. My recent foray into the field, both as a developer and as a wannabe pentester/researcher, has had a big impact on me and my desire to learn more has not lessened as time has passed.&lt;/p&gt;

&lt;p&gt;When I passed my &lt;a href=&#34;http://www.offensive-security.com/information-security-certifications/oscp-offensive-security-certified-professional/&#34; title=&#34;OSCP&#34;&gt;OSCP&lt;/a&gt; exam last year I really felt like I had achieved something, but more importantly I had learned a &lt;em&gt;lot&lt;/em&gt; of stuff that I had never had exposure to before. Despite the feeling of achievement and the exhaustion that came from trying to do it all in 30 days, I was keen to take the next step; riding the wave while I felt like I was getting into the swing of it. After a few days of post-OSCP rest, I started investigating the next thing to tackle.&lt;/p&gt;

&lt;p&gt;Given the fun I had while doing the &lt;a href=&#34;http://www.offensive-security.com/information-security-training/penetration-testing-with-kali-linux/&#34; title=&#34;PWK (was PWB)&#34;&gt;PWB&lt;/a&gt; labs, I felt that going back to &lt;a href=&#34;http://www.offensive-security.com/&#34; title=&#34;Offensive Security&#34;&gt;Offensive Security&lt;/a&gt; would be a good move. Offsec&amp;rsquo;s reputation is understandably very good, and I felt that I would be doing myself another favour by taking on their next challenge. It was clear to me that the next logical step would be to do the &lt;a href=&#34;http://www.offensive-security.com/information-security-training/cracking-the-perimeter/&#34; title=&#34;Cracking the Perimeter&#34;&gt;CTP&lt;/a&gt; lab with a goal of attaining the &lt;a href=&#34;http://www.offensive-security.com/information-security-certifications/osce-offensive-security-certified-expert/&#34; title=&#34;OSCE&#34;&gt;OSCE&lt;/a&gt; certification.&lt;/p&gt;

&lt;p&gt;Just as I did prior to deciding to do OSCP, I read reviews and did some other simple research to find out more about the course. It wasn&amp;rsquo;t surprising to hear horror stories from some people who had taken on the exam; some who passed, others who did not. I knew I was going to be in for a treat, and I couldn&amp;rsquo;t wait to do it.&lt;/p&gt;

&lt;p&gt;I would have signed up within a few weeks of finishing OSCP, but I felt it was important to give my family a break from the stresses involved in me dedicating so much time to study. Not just that, the OSCE exam is a gruelling 48-hour marathon, and so I would require support from my legendary little clan if I wanted to succeed.&lt;/p&gt;

&lt;p&gt;After chatting to my very understanding wife, we decided that it would be a good idea for me to do the course in the latter half of the school holidays when the pressure of daily life is off. I signed up for the course, ready to start on the 22nd December.&lt;/p&gt;

&lt;p&gt;What follows is my OSCE story, from start to finish, written in a very similar to my &lt;a href=&#34;/posts/oscp-and-me/&#34; title=&#34;OSCP and Me&#34;&gt;OSCP&lt;/a&gt; post. Enjoy.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>3 Months of Meterpreter</title>
      <link>/posts/3-months-of-meterpreter/</link>
      <pubDate>Fri, 27 Dec 2013 23:14:44 +0000</pubDate>
      
      <guid>/posts/3-months-of-meterpreter/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;http://www.metasploit.com/revamp/images/metasploit-logo.png&#34; style=&#34;float:right;margin-left:5px;margin-bottom:5px;&#34;/&gt;
In August this year I was fortunate enough to land a three-month contract working with the awesome people at &lt;a href=&#34;http://www.rapid7.com/&#34;&gt;Rapid7&lt;/a&gt;. The job: &lt;em&gt;make &lt;a href=&#34;https://github.com/rapid7/meterpreter&#34;&gt;Meterpreter&lt;/a&gt; more awesome on Windows&lt;/em&gt;. That&amp;rsquo;s right &lt;em&gt;more&lt;/em&gt; awesome than it already is. Tough gig, but what an amazing opportunity!&lt;/p&gt;

&lt;p&gt;Those three months have already come and gone, and what a ride it has been. In this post I would like to detail some of the work that has gone into Meterpreter, and Metasploit too, with a goal of helping others understand what it does and how it works. Ultimately, I&amp;rsquo;d love to start seeing some contributions from the community now that it&amp;rsquo;s &lt;em&gt;substantially&lt;/em&gt; easier to build.&lt;/p&gt;

&lt;p&gt;So, in a semi-chronological-semi-ad-hoc order, here&amp;rsquo;s how Meterpreter has evolved.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>OSCP FAQ</title>
      <link>/posts/oscp-faq/</link>
      <pubDate>Thu, 12 Dec 2013 00:00:00 +0000</pubDate>
      
      <guid>/posts/oscp-faq/</guid>
      <description>&lt;p&gt;Since publishing the article that detailed my experiences with the &lt;a href=&#34;http://www.offensive-security.com/information-security-training/penetration-testing-with-backtrack/&#34;&gt;PWB&lt;/a&gt; labs and the &lt;a href=&#34;http://www.offensive-security.com/information-security-certifications/oscp-offensive-security-certified-professional/&#34;&gt;OSCP&lt;/a&gt; exam, I have received scores of emails from potential and current students searching for more information and (quite often) hints. While I do my best to answer most of them, it&amp;rsquo;s close to impossible to get to them all as my email debt is already way too high.&lt;/p&gt;

&lt;p&gt;From this point on I have decided not to respond to questions directly via email. This post will stand instead of those emails as a point of reference for common OSCP-related questions. As more questions come in I will update this post so that all future readers can benfit from the answers without me having to repost them.&lt;/p&gt;

&lt;p&gt;Believe it or not, every single one of these questions has appeared in my inbox.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>64bit Pointer Truncation in Meterpreter</title>
      <link>/posts/64bit-pointer-truncation-in-meterpreter/</link>
      <pubDate>Sat, 14 Sep 2013 00:00:00 +0000</pubDate>
      
      <guid>/posts/64bit-pointer-truncation-in-meterpreter/</guid>
      <description>&lt;p&gt;If you haven&amp;rsquo;t ever heard of &lt;a href=&#34;https://github.com/rapid7/meterpreter&#34; title=&#34;Native Meterpreter&#34;&gt;Meterpreter&lt;/a&gt; before, you might want to go and take a look at it before reading this post to help give some context. In short, Meterpreter is an amazing library that is part of the &lt;a href=&#34;http://www.metasploit.com/&#34; title=&#34;Metasploit Framework&#34;&gt;Metasploit Framework&lt;/a&gt; and can be used to give you tremendous power and control over target machines during a &lt;a href=&#34;http://en.wikipedia.org/wiki/Penetration_test&#34; title=&#34;Penetration Testing&#34;&gt;penetration test&lt;/a&gt;. Anyone and everyone in the security game is most likely familiar with both Metasploit and Meterpreter, at the very least, if not closely intimate with them. The toolset is fantastic, and is &lt;a href=&#34;https://github.com/rapid7/metasploit-framework/&#34; title=&#34;Metasploit Framework Source&#34;&gt;open source&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;I&amp;rsquo;m currently in the very fortunate position of &lt;a href=&#34;https://community.rapid7.com/community/metasploit/blog/2013/09/05/weekly-update&#34; title=&#34;Weekly Update: Meterpreter Updates, VMWare, the OSX spycam, Retabbing, and more!&#34;&gt;working with the crew&lt;/a&gt; from &lt;a href=&#34;http://www.rapid7.com/&#34; title=&#34;Rapid 7&#34;&gt;Rapid7&lt;/a&gt; to help improve Meterpreter, particularly on the Windows (both 32 and 64 bit). I have a good list of things to work through while I&amp;rsquo;m on board including making it easier to build for potential contributors, and to fix some outstanding issues that the R7 crew haven&amp;rsquo;t had the bandwidth to fix.  These people are super-smart, and super-nice and I&amp;rsquo;m honoured that I&amp;rsquo;ve been selected to work alongside them.&lt;/p&gt;

&lt;p&gt;The purpose of this post is to document the process and resolution of a bug that I have helped resolve since joining. I also aim to lift the lid on Meterpreter a little and help expose how some bits of it work. I hope you enjoy.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>OSCP and Me</title>
      <link>/posts/oscp-and-me/</link>
      <pubDate>Fri, 16 Aug 2013 00:00:00 +0000</pubDate>
      
      <guid>/posts/oscp-and-me/</guid>
      <description>&lt;p&gt;The &lt;a href=&#34;http://www.offensive-security.com/information-security-training/penetration-testing-with-backtrack/&#34; title=&#34;Penetration Testing with BackTrack&#34;&gt;PWB&lt;/a&gt; course by &lt;a href=&#34;http://www.offensive-security.com/&#34; title=&#34;Offensive Security&#34;&gt;Offensive Security&lt;/a&gt; is absolutely awesome, as is the exam which earns you the prized &lt;a href=&#34;http://www.offensive-security.com/information-security-certifications/oscp-offensive-security-certified-professional/&#34; title=&#34;Offensive Security Certified Professional&#34;&gt;OSCP&lt;/a&gt; certification. I took this course and exam recently; I loved it and I nailed it! I am now equipped with a much better understanding of the security world and am in a better position to help businesses improve the security of their application architecture and infrastructure.&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;/contact&#34; title=&#34;Contact OJ&#34;&gt;Hit me up&lt;/a&gt; and let&amp;rsquo;s talk about how I can help you make your applications more secure.&lt;/p&gt;

&lt;p&gt;What follows is the full story of my path through PWB and OSCP. Enjoy.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Levels 7 and 7_alt - IO at STS</title>
      <link>/posts/levels-7-and-7_alt-io-at-sts/</link>
      <pubDate>Thu, 15 Aug 2013 00:00:00 +0000</pubDate>
      
      <guid>/posts/levels-7-and-7_alt-io-at-sts/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been documenting my experiences with &lt;a href=&#34;http://io.smashthestack.org:84/&#34; title=&#34;IO @ Smash The Stack&#34;&gt;IO&lt;/a&gt; at &lt;a href=&#34;http://smashthestack.org/&#34; title=&#34;Smash The Stack&#34;&gt;SmashTheStack&lt;/a&gt; for a while, but decided not to post them publicly for a few reasons. However level 7 (in particular the &lt;code&gt;alt&lt;/code&gt; level) was the first that I thought worthy of posting. This post includes how I broke both applications to make it through to the level 8. If you haven&amp;rsquo;t had a play on the &lt;a href=&#34;http://smashthestack.org/&#34; title=&#34;Smash The Stack&#34;&gt;SmashTheStack&lt;/a&gt; wargames yet, I really do recommend it. They&amp;rsquo;re great fun.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Irssi and SASL on OSX</title>
      <link>/posts/irssi-and-sasl-on-osx/</link>
      <pubDate>Sun, 03 Feb 2013 00:00:00 +0000</pubDate>
      
      <guid>/posts/irssi-and-sasl-on-osx/</guid>
      <description>Given my renewed focus on security I&amp;rsquo;ve been looking to lock down much of my communications so that I feel more secure online. One of the things that I use quite a lot to connect with people who know WTF they&amp;rsquo;re talking about is IRC. #freenode is my network of choice as it has a bunch of interesting places with fairly active communities. irssi is my current client of choice for a few reasons.</description>
    </item>
    
    <item>
      <title>XSS Flaws via MVC Model Binding and Request.QueryString Inconsistencies</title>
      <link>/posts/xss-flaws-via-mvc-model-binding-and-request.querystring-inconsistencies/</link>
      <pubDate>Thu, 29 Nov 2012 00:00:00 +0000</pubDate>
      
      <guid>/posts/xss-flaws-via-mvc-model-binding-and-request.querystring-inconsistencies/</guid>
      <description>&lt;p&gt;Forgive the title of the post, it was hard coming up with something succinct that captured the purpose of the post. This was inspired by a recent experience with a client who had this exact problem with one of their production systems.&lt;/p&gt;

&lt;h2 id=&#34;tl-dr&#34;&gt;TL;DR&lt;/h2&gt;

&lt;p&gt;Never use &lt;a href=&#34;http://msdn.microsoft.com/en-us/library/ms524784(v=vs.90).aspx&#34;&gt;Request.QueryString&lt;/a&gt; to access parameters in your views, even when you&amp;rsquo;re sure your actions have validated them. You may open your application up to &lt;a href=&#34;http://en.wikipedia.org/wiki/Cross-site_scripting&#34;&gt;XSS&lt;/a&gt; attacks. Always, &lt;em&gt;always&lt;/em&gt; use data that is passed to your views via the &lt;code&gt;Model&lt;/code&gt; or the &lt;a href=&#34;http://msdn.microsoft.com/en-us/library/system.web.mvc.viewpage.viewdata(v=vs.108).aspx&#34;&gt;ViewData&lt;/a&gt; dictionary. Under no circumstances should you trust data coming in from the web, that includes query string parameters.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Stepping Down</title>
      <link>/posts/stepping-down/</link>
      <pubDate>Tue, 27 Nov 2012 00:00:00 +0000</pubDate>
      
      <guid>/posts/stepping-down/</guid>
      <description>For the past two years I&amp;rsquo;ve been heavily involved with organising two user groups in Brisbane: BFPG and BNoSQL. Those of you out there who organise your own user groups no doubt know how much is involved in keeping these things going. My focus has been on building communities around the subject matter and trying to get attendance up. It was a tough gig.
For the most part I think I succeeded in what I set out to achieve.</description>
    </item>
    
    <item>
      <title>Meaning</title>
      <link>/posts/meaning/</link>
      <pubDate>Tue, 30 Oct 2012 00:00:00 +0000</pubDate>
      
      <guid>/posts/meaning/</guid>
      <description>Life is way too short to be working on boring, uninteresting or meaningless stuff. Get out there and do what you love. Screw working for the dollar on something that you don&amp;rsquo;t enjoy. Don&amp;rsquo;t study in a field that doesn&amp;rsquo;t inspire you just because you got the marks or because people expect you to. Don&amp;rsquo;t do what you&amp;rsquo;ve always done just because it&amp;rsquo;s easy.
Chase your passion. Love your work.</description>
    </item>
    
    <item>
      <title>Webmachine, ErlyDTL and Riak - Part 5</title>
      <link>/posts/webmachine-erlydtl-and-riak-part-5/</link>
      <pubDate>Tue, 10 Jul 2012 00:00:00 +0000</pubDate>
      
      <guid>/posts/webmachine-erlydtl-and-riak-part-5/</guid>
      <description>&lt;p&gt;{% img right /uploads/2010/09/riak-logo.png &amp;lsquo;Riak Logo&amp;rsquo; %}Newcomers to the series should first take a look at the previous four parts of the &lt;a href=&#34;http://buffered.io/series/web-development-with-erlang/&#34; title=&#34;Web Development with Erlang&#34;&gt;series&lt;/a&gt; (&lt;a href=&#34;/posts/webmachine-erlydtl-and-riak-part-1/&#34; title=&#34;Wembachine, ErlyDTL and Riak - Part 1&#34;&gt;Part 1&lt;/a&gt;, &lt;a href=&#34;/posts/webmachine-erlydtl-and-riak-part-2/&#34; title=&#34;Wembachine, ErlyDTL and Riak - Part 2&#34;&gt;Part 2&lt;/a&gt;, &lt;a href=&#34;/posts/webmachine-erlydtl-and-riak-part-3/&#34; title=&#34;Wembachine, ErlyDTL and Riak - Part 3&#34;&gt;Part 3&lt;/a&gt;, &lt;a href=&#34;/posts/webmachine-erlydtl-and-riak-part-4/&#34; title=&#34;Wembachine, ErlyDTL and Riak - Part 4&#34;&gt;Part 4&lt;/a&gt;) first to make sure that you&amp;rsquo;re up to speed. Feel free to read on if you feel comfortable with the general concepts in use.&lt;/p&gt;

&lt;p&gt;When we finished &lt;a href=&#34;/posts/webmachine-erlydtl-and-riak-part-4/&#34; title=&#34;Wembachine, ErlyDTL and Riak - Part 4&#34;&gt;Part 4&lt;/a&gt; we were able to authenticate users using &lt;a href=&#34;http://twitter.com/&#34; title=&#34;Twitter&#34;&gt;Twitter&lt;/a&gt; and &lt;a href=&#34;http://oauth.net/&#34; title=&#34;OAuth&#34;&gt;OAuth&lt;/a&gt;, which is great as we can delegate the responsibility of password management to an external entity.&lt;/p&gt;

&lt;p&gt;Now that we know who people are, we want them to be able to do something meaningful with their accounts. That&amp;rsquo;s what this post is all about.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Redirects with Webmachine</title>
      <link>/posts/redirects-with-webmachine/</link>
      <pubDate>Wed, 15 Feb 2012 00:00:00 +0000</pubDate>
      
      <guid>/posts/redirects-with-webmachine/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://webmachine.basho.com/&#34; title=&#34;Webmachine&#34;&gt;Webmachine&lt;/a&gt; is currently my favourite tool for building websites. I&amp;rsquo;ve been lucky enough to use it on a few things now, some commercially some personally. While working on my &lt;a href=&#34;http://buffered.io/series/web-development-with-erlang/&#34; title=&#34;Web development with Erlang&#34;&gt;Erlang web development series&lt;/a&gt; I had to handle the case where URLs redirected to other URLs. I found some basic documentation on this but wasn&amp;rsquo;t able to find a canonical example of how to do it.&lt;/p&gt;

&lt;p&gt;After a big of digging through blog posts and speaking to people on IRC I figured out how it was done. The goal of this post is to show how it&amp;rsquo;s done for 301 (permanent) and 307 (temporary) redirects.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Webmachine, ErlyDTL and Riak - Part 4</title>
      <link>/posts/webmachine-erlydtl-and-riak-part-4/</link>
      <pubDate>Wed, 15 Feb 2012 00:00:00 +0000</pubDate>
      
      <guid>/posts/webmachine-erlydtl-and-riak-part-4/</guid>
      <description>&lt;p&gt;{% img left /uploads/2010/09/riak-logo.png &amp;lsquo;Riak Logo&amp;rsquo; %}For those of you who are new to the series, you may want to check out &lt;a href=&#34;/posts/webmachine-erlydtl-and-riak-part-1/&#34; title=&#34;Wembachine, ErlyDTL and Riak - Part 1&#34;&gt;Part 1&lt;/a&gt;, &lt;a href=&#34;/posts/webmachine-erlydtl-and-riak-part-2/&#34; title=&#34;Wembachine, ErlyDTL and Riak - Part 2&#34;&gt;Part 2&lt;/a&gt; and &lt;a href=&#34;/posts/webmachine-erlydtl-and-riak-part-3/&#34; title=&#34;Wembachine, ErlyDTL and Riak - Part 3&#34;&gt;Part 3&lt;/a&gt; before reading this post. It will help give you some context as well as introduce you to some of the jargon and technology that I&amp;rsquo;m using. If you&amp;rsquo;ve already read then, or don&amp;rsquo;t want to, then please read on!&lt;/p&gt;

&lt;p&gt;Upon finishing &lt;a href=&#34;/posts/webmachine-erlydtl-and-riak-part-3/&#34; title=&#34;Wembachine, ErlyDTL and Riak - Part 3&#34;&gt;Part 3&lt;/a&gt; of the series we were finally able to read data from &lt;a href=&#34;http://www.basho.com/developers.html#Riak&#34; title=&#34;Riak&#34;&gt;Riak&lt;/a&gt; and see it appear in our web page. This was the first stage in seeing a full end-to-end web application functioning. Of course there is still a great deal to do!&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>My Tools List - 2012</title>
      <link>/posts/my-tools-list-2012/</link>
      <pubDate>Tue, 31 Jan 2012 00:00:00 +0000</pubDate>
      
      <guid>/posts/my-tools-list-2012/</guid>
      <description>&lt;p&gt;The topic of tools is often a hot one amongst developers and every year
we see an influx of blog posts where people rant and rave about which
ones they love the most, and why.&lt;/p&gt;

&lt;p&gt;Far be it from me to stay out of such a discussion!&lt;/p&gt;

&lt;p&gt;Here is a list of the tools that I use as of the end of January 2012. Some are simply noteworthy.
Others are very handy and while I would get by without them they would
be missed. Some of these &lt;strong&gt;I simply cannot live without&lt;/strong&gt;. I&amp;rsquo;m not going
to bother with ratings. I won&amp;rsquo;t go into frameworks or the like which
make their way into my code, instead I am focussing on those tools which
help me do the coding and which aid me in my general computer usage.&lt;/p&gt;

&lt;p&gt;Some of these tools are platform-specific, but many can be used across
different platforms.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>An Expert at 23</title>
      <link>/posts/an-expert-at-23/</link>
      <pubDate>Fri, 27 Jan 2012 00:00:00 +0000</pubDate>
      
      <guid>/posts/an-expert-at-23/</guid>
      <description>&lt;p&gt;I was about to head to bed when I stumbled across a poorly-titled &lt;a href=&#34;http://www.news.com.au/business/the-best-places-to-look-for-work-in-2012/story-e6frfm1i-1226255099978&#34; title=&#34;The best places to look for work in 2012&#34;&gt;article on news.com.au&lt;/a&gt;. At first I thought it was going to cover off the best locations around Australia, or perhaps the world, for finding work in a variety of industries. It turned out to be a failed attempt at highlighting the key growth industry areas for jobs in Australia.&lt;/p&gt;

&lt;p&gt;It began like this:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;JOBS demanded across several booming sectors will be the best place to find work this year.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Despite the appalling structure and lack of coherence of the opening paragraph I pushed on through the rest of the article, hoping to find some interesting or useful information. Most of content would be fairly obvious to almost every Australian. The bits that could be considered interesting were old news, and nothing in the article made me feel that reading it was a good use of time.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Reviews - They&#39;re all You need</title>
      <link>/posts/reviews-theyre-all-you-need/</link>
      <pubDate>Wed, 18 Jan 2012 00:00:00 +0000</pubDate>
      
      <guid>/posts/reviews-theyre-all-you-need/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;/uploads/2012/01/pair-programming.jpg&#34; rel=&#34;lightbox&#34;&gt;&lt;img src=&#34;/uploads/2012/01/pair-programming.jpg&#34; style=&#34;float:left;margin-right:5px;margin-bottom:5px;&#34; width=&#34;200&#34; /&gt;&lt;/a&gt;I can clearly remember the first time I got involved in an Agile project &amp;ndash; it was back in 2004, it was in London and in the finance industry (insurance to be exact). When I joined the project the team was small though over time it become much bigger.&lt;/p&gt;

&lt;p&gt;While on that gig I met and worked with a few of the nicest and best devs that I&amp;rsquo;ve worked with (&lt;a href=&#34;https://twitter.com/robertthegrey&#34; title=&#34;Robert @ Twitter&#34;&gt;RobG&lt;/a&gt;, &lt;a href=&#34;https://twitter.com/thenapoleon&#34; title=&#34;Yoann @ Twitter&#34;&gt;Yoann&lt;/a&gt; and &lt;a href=&#34;https://twitter.com/RockThunderUK&#34; title=&#34;Paul @ Twitter&#34;&gt;The Chief&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;It was an exciting project. We were using &lt;a href=&#34;http://www.extremeprogramming.org/&#34; title=&#34;Extreme Programming&#34;&gt;XP&lt;/a&gt; in very much its purest sense, right from the beginning. We always paired up to do our programming, we created stories, we estimated our points using a point system that wasn&amp;rsquo;t tied to hours but instead was relative. We had mini-retrospectives, continuous integration, unit tests and more. For 2004, that was pretty good.&lt;/p&gt;

&lt;p&gt;Since then I&amp;rsquo;ve worked on quite a few other Agile projects and over time, I have come to believe a few of the absolute purest views on Agile aren&amp;rsquo;t necessarily the best.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Why I use Twitter</title>
      <link>/posts/why-i-use-twitter/</link>
      <pubDate>Mon, 16 Jan 2012 00:00:00 +0000</pubDate>
      
      <guid>/posts/why-i-use-twitter/</guid>
      <description>&lt;p&gt;When I first signed up for &lt;a href=&#34;http://www.twitter.com/&#34; title=&#34;Twitter&#34;&gt;Twitter&lt;/a&gt; back in mid-2008 I didn&amp;rsquo;t really take it seriously. My view was that it was a toy and one that I intended to have a bit of fun with. I didn&amp;rsquo;t really think that it would turn into what it did. I certainly didn&amp;rsquo;t think it would be such an amazing source of information, nor did I expect it to give me contact with so many smart and interesting people.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>CorrugatedIron Update - v0.1.1</title>
      <link>/posts/corrugatediron-update-v0.1.1/</link>
      <pubDate>Wed, 03 Aug 2011 00:00:00 +0000</pubDate>
      
      <guid>/posts/corrugatediron-update-v0.1.1/</guid>
      <description>&lt;p&gt;Last week &lt;a href=&#34;http://facility9.com/&#34; title=&#34;Jeremiah Peschka&#34;&gt;JP&lt;/a&gt; and I released our first Open Source project, &lt;a href=&#34;http://corrugatediron.org/&#34; title=&#34;CorrugatedIron&#34;&gt;CorrugatedIron&lt;/a&gt;. The release seemed to be fairly well received by those people who gave it a spin. We&amp;rsquo;ve had some good feedback along the way which we&amp;rsquo;ll be evaluating, and no doubt those suggestions and comments will be influencing the future of the library.&lt;/p&gt;

&lt;p&gt;In the interim, we wanted to get another version out which sorts out two main issues and that changes the &lt;em&gt;perceived&lt;/em&gt; &amp;ldquo;norm&amp;rdquo; when building applications with CorrugatedIron. Those issues are listed below. We&amp;rsquo;ve also go the first pass of our &lt;a href=&#34;http://corrugatediron.org/documentation/MapReduce.html&#34; title=&#34;Map/Reduce&#34;&gt;Map/Reduce&lt;/a&gt; documentation ready.&lt;/p&gt;

&lt;p&gt;If you&amp;rsquo;re not interested in the detail, head on over to the &lt;a href=&#34;http://corrugatediron.org/downloads.html&#34; title=&#34;Downloads page&#34;&gt;download page&lt;/a&gt; to find out the many ways in which you can get access to the release. Otherwise, please read on!&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Introducing CorrugatedIron</title>
      <link>/posts/introducing-corrugatediron/</link>
      <pubDate>Mon, 25 Jul 2011 00:00:00 +0000</pubDate>
      
      <guid>/posts/introducing-corrugatediron/</guid>
      <description>&lt;h2 id=&#34;it-s-alive&#34;&gt;It&amp;rsquo;s Alive!&lt;/h2&gt;

&lt;p&gt;It is with great pride that I introduce my first ever Open Source product release: &lt;a href=&#34;http://corrugatediron.org/&#34; title=&#34;CorrugatedIron&#34;&gt;CorrugatedIron&lt;/a&gt;! A feature-rich .NET client for the &lt;a href=&#34;http://riak.basho.com/&#34; title=&#34;Riak&#34;&gt;Riak&lt;/a&gt; Key-Value store. Together with my partner-in-crime &lt;a href=&#34;http://facility9.com/&#34; title=&#34;Jeremiah Peschka&#34;&gt;Jeremiah&lt;/a&gt;, we&amp;rsquo;ve put together a driver which exposes a great deal of Riak&amp;rsquo;s functionality. CorrugatedIron is at &lt;a href=&#34;https://github.com/DistributedNonsense/CorrugatedIron/tree/v0.1.0&#34;&gt;v0.1.0&lt;/a&gt;, and while it doesn&amp;rsquo;t support every feature the Riak has to offer, it covers most, if not all, of the most common features that are required to effectively communicate with the system.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Go With Your Instinct</title>
      <link>/posts/go-with-your-instinct/</link>
      <pubDate>Fri, 25 Feb 2011 00:00:00 +0000</pubDate>
      
      <guid>/posts/go-with-your-instinct/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;/uploads/2011/02/double-facepalm.jpg&#34; rel=&#34;lightbox&#34;&gt;&lt;img src=&#34;/uploads/2011/02/double-facepalm.jpg&#34; width=&#34;150&#34; style=&#34;float:left;margin-right:5px;margin-bottom:5px;&#34; /&gt;&lt;/a&gt;At an early age I realised that it&amp;rsquo;s not always a bad thing to go with your first instinct. I won&amp;rsquo;t go into the reasons here, nor the way I came to that conclusion. What I will say is that I wish I&amp;rsquo;d listened to my inner-8-year-old-self when I started down the thread of emails and Tweets you&amp;rsquo;re about to read.&lt;/p&gt;

&lt;p&gt;Suffice is to say that I have learned my lesson!&lt;/p&gt;

&lt;p&gt;The thread speaks for itself. Enjoy :)&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Webmachine, ErlyDTL and Riak - Part 3</title>
      <link>/posts/webmachine-erlydtl-and-riak-part-3/</link>
      <pubDate>Wed, 13 Oct 2010 00:00:00 +0000</pubDate>
      
      <guid>/posts/webmachine-erlydtl-and-riak-part-3/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;/uploads/2010/09/riak-logo.png&#34; alt=&#34;Riak Logo&#34; style=&#34;float:left;padding-right:5px;padding-bottom:5px;&#34;/&gt;For those of you who are new to the series, you may want to check out &lt;a href=&#34;/posts/webmachine-erlydtl-and-riak-part-1/&#34; title=&#34;Wembachine, ErlyDTL and Riak - Part 1&#34;&gt;Part 1&lt;/a&gt; and &lt;a href=&#34;/posts/webmachine-erlydtl-and-riak-part-2/&#34; title=&#34;Webmachine, ErlyDTL and Riak - Part 2&#34;&gt;Part 2&lt;/a&gt; before reading this post. It will help give you some context as well as introduce you to some of the jargon and technology that I&amp;rsquo;m using. If you&amp;rsquo;ve already read then, or don&amp;rsquo;t want to, then please read on!&lt;/p&gt;

&lt;p&gt;This post builds on the previous two, but not without a few little modifications. If you&amp;rsquo;re interested in following along step by step with your own version of the code running, then get yourself a copy of &lt;a href=&#34;https://github.com/OJ/csd/tree/Part2-20110403&#34; title=&#34;Source code for Part 2&#34;&gt;this changeset&lt;/a&gt; before doing so.&lt;/p&gt;

&lt;p&gt;In this post we&amp;rsquo;re going to cover:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A slight refactor of code structure to support the &amp;ldquo;standard&amp;rdquo; approach to building applications in Erlang using OTP.&lt;/li&gt;
&lt;li&gt;Building a small set of modules to talk to &lt;a href=&#34;http://www.basho.com/developers.html#Riak&#34; title=&#34;Riak&#34;&gt;Riak&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Creation of some &lt;a href=&#34;http://json.org/&#34; title=&#34;JavaScript Object Notation&#34;&gt;JSON&lt;/a&gt; helper functions for reading and writing data.&lt;/li&gt;
&lt;li&gt;Calling all the way from the &lt;a href=&#34;http://www.basho.com/developers.html#Webmachine&#34; title=&#34;Webmachine&#34;&gt;Webmachine&lt;/a&gt; front-end to Riak to extract data and display it in a browser using &lt;a href=&#34;http://github.com/evanmiller/erlydtl&#34; title=&#34;ErlyDTL&#34;&gt;ErlyDTL&lt;/a&gt; templates.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;There are quite a few code snippets in this post as well as output from script executions and &lt;code&gt;bash&lt;/code&gt; sessions. To avoid confusion, all file listings reference the path to the file that is being modified relative to the root of the project folder.&lt;/p&gt;

&lt;p&gt;Be warned, this is a &lt;em&gt;long&lt;/em&gt; post :) Get yourself a &lt;em&gt;shmoke und a pancake&lt;/em&gt;, a glass of your favourite beverage and put some relaxing music on (instrumental is best).&lt;/p&gt;

&lt;p&gt;Are you ready? OK, here we go &amp;hellip;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>ASP.NET MVC 2, Random Sign-offs and TempData Loss</title>
      <link>/posts/asp.net-mvc-2-random-sign-offs-and-tempdata-loss/</link>
      <pubDate>Wed, 06 Oct 2010 00:00:00 +0000</pubDate>
      
      <guid>/posts/asp.net-mvc-2-random-sign-offs-and-tempdata-loss/</guid>
      <description>&lt;p&gt;&lt;a title=&#34;MVC&#34; href=&#34;/uploads/2010/10/mvc.png&#34; rel=&#34;lightbox[contentadvisor]&#34;&gt;&lt;img style=&#34;margin-left: 5px; margin-bottom: 5px; float: right;&#34; src=&#34;/uploads/2010/10/mvc.png&#34; alt=&#34;MVC&#34; width=&#34;150&#34; /&gt;&lt;/a&gt;In the last few days I&amp;rsquo;ve been working on resolving issues in a production system which runs on &lt;a title=&#34;What is ASP.NET MVC&#34; href=&#34;http://www.asp.net/mvc/whatisaspmvc&#34;&gt;ASP.NET MVC 2&lt;/a&gt;. Most of the issues were actually really easy to resolve and the team of developers were able to fix them and deploy to production without too many problems.&lt;/p&gt;

&lt;p&gt;Unfortunately, as always, there was one problem in particular that had us scratching our heads and was causing some of us to lose sleep. All over the Internet there were posts of people describing similar symptoms yet none of them revealed a solid answer.&lt;/p&gt;

&lt;p&gt;The purpose of this post is to document the issue and the resolution in it&amp;rsquo;s entirety. It&amp;rsquo;s in story form rather than reference form because that&amp;rsquo;s how I felt like writing it :)&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Webmachine, ErlyDTL and Riak - Part 2</title>
      <link>/posts/webmachine-erlydtl-and-riak-part-2/</link>
      <pubDate>Sun, 12 Sep 2010 00:00:00 +0000</pubDate>
      
      <guid>/posts/webmachine-erlydtl-and-riak-part-2/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;/uploads/2010/09/riak-logo.png&#34; alt=&#34;Riak Logo&#34; style=&#34;float:left;padding-right:5px;padding-bottom:5px;&#34;/&gt;In &lt;a href=&#34;/posts/webmachine-erlydtl-and-riak-part-1/&#34; title=&#34;Wembachine, ErlyDTL and Riak - Part 1&#34;&gt;Part 1&lt;/a&gt; of the series we covered the basics of getting the development environment up and running. We also looked at how to get a really simple ErlyDTL template rendering. If you haven&amp;rsquo;t yet gone through Part 1, I suggest you do that now. If you have, read on!&lt;/p&gt;

&lt;p&gt;There are a few reasons this series is targeting this technology stack. One of them is &lt;strong&gt;uptime&lt;/strong&gt;. We&amp;rsquo;re aiming to build a site that stays up as much as possible. Given that, one of the things that I missed in the previous post was setting up a &lt;a href=&#34;http://en.wikipedia.org/wiki/Load_balancing_(computing)&#34; title=&#34;Load balancing&#34;&gt;load balancer&lt;/a&gt;. Hence this post will attempt to fill that gap.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Webmachine, ErlyDTL and Riak - Part 1</title>
      <link>/posts/webmachine-erlydtl-and-riak-part-1/</link>
      <pubDate>Wed, 01 Sep 2010 00:00:00 +0000</pubDate>
      
      <guid>/posts/webmachine-erlydtl-and-riak-part-1/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;/uploads/2010/09/riak-logo.png&#34; alt=&#34;Riak Logo&#34; style=&#34;float:left;padding-right:5px;padding-bottom:5px;&#34;/&gt;It has been a long time coming, but the first post is finally here! This is the first in a series of post, as &lt;a href=&#34;/posts/the-future-is-erlang/&#34; title=&#34;The Future is Erlang&#34;&gt;promised a while ago&lt;/a&gt;, covering off web development using &lt;a href=&#34;http://erlang.org/&#34; title=&#34;Erlang&#34;&gt;Erlang&lt;/a&gt;. This post is the ubiquitous &amp;ldquo;get up and running&amp;rdquo; post, which aims to get your environment set up so that you can dive in to development. The next post will detail how to handle a basic end-to-end web request.&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;/uploads/2010/09/Erlang_logo.png&#34; width=&#34;150&#34; style=&#34;float:right;margin-left:5px;margin-bottom:5px;&#34;/&gt;First up, a few things we need to be aware of before we begin:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The information in this post has only been verified on Linux (&lt;a href=&#34;http://linuxmint.com/&#34; title=&#34;Linux Mint&#34;&gt;Mint&lt;/a&gt; to be exact). It &lt;em&gt;should&lt;/em&gt; work just fine on Mac OSX. I&amp;rsquo;m almost certain that it &lt;em&gt;won&amp;rsquo;t&lt;/em&gt; work on a Windows machine. So if you&amp;rsquo;re a Windows developer, you&amp;rsquo;ll have to wait for another post down the track which covers off how to get your environment ready to rock.&lt;/li&gt;
&lt;li&gt;We&amp;rsquo;ll be downloading, building and installing &lt;a href=&#34;http://erlang.org/&#34; title=&#34;Erlang&#34;&gt;Erlang&lt;/a&gt;, &lt;a href=&#34;http://github.com/evanmiller/erlydtl&#34; title=&#34;ErlyDTL&#34;&gt;ErlyDTL&lt;/a&gt;, &lt;a href=&#34;http://www.basho.com/developers.html#Riak&#34; title=&#34;Riak&#34;&gt;Riak&lt;/a&gt; and &lt;a href=&#34;http://www.basho.com/developers.html#Webmachine&#34; title=&#34;Webmachine&#34;&gt;Webmachine&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.basho.com/developers.html#Rebar&#34; title=&#34;Rebar&#34;&gt;Rebar&lt;/a&gt; is the tool we&amp;rsquo;ll be using to handle builds, but I won&amp;rsquo;t be covering it in any depth.&lt;/li&gt;
&lt;li&gt;You will need the latest version of &lt;a href=&#34;http://git-scm.com/&#34; title=&#34;Git&#34;&gt;Git&lt;/a&gt; so make sure it&amp;rsquo;s downloaded and installed before you follow this article.&lt;/li&gt;
&lt;li&gt;We&amp;rsquo;ll be doing &lt;em&gt;some&lt;/em&gt; interaction with Riak via &lt;a href=&#34;http://curl.haxx.se/&#34; title=&#34;cURL and libcurl&#34;&gt;curl&lt;/a&gt;, so make sure you have it downloaded and installed as well.&lt;/li&gt;
&lt;li&gt;This is intended to be a step-by-step guide targeted at those who are very new to web development in Erlang. This may not be the most ideal set up, nor the best way of doing certain things. I am hoping that those people who are more experienced than I will be able to provide feedback and guidance in areas where I am lacking.&lt;/li&gt;
&lt;li&gt;Over the course of this series I&amp;rsquo;ll be attempting to build an Erlang version of the &lt;a href=&#34;http://bitbucket.org/OJ/codesmackdown&#34; title=&#34;Code Smackdown&#34;&gt;Code Smackdown&lt;/a&gt; site that I&amp;rsquo;ve been working on here and there with a &lt;a href=&#34;http://secretgeek.net/&#34; title=&#34;secretGeek&#34;&gt;mate of mine&lt;/a&gt;. You&amp;rsquo;ll see that the sample application we&amp;rsquo;re working on is called &amp;ldquo;csd&amp;rdquo; for obvious reasons.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;OK, let&amp;rsquo;s get into it. First up, Erlang.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>BFPG June Meetup</title>
      <link>/posts/bfpg-june-meetup/</link>
      <pubDate>Fri, 25 Jun 2010 00:00:00 +0000</pubDate>
      
      <guid>/posts/bfpg-june-meetup/</guid>
      <description>The time has come for another meeting of the Functional Programming minds! This months BFPG Meetup, starting 6pm Monday 28th, is the first one at our new venue: Microsoft HQ, Waterfront Place, Brisbane. For details on the location, take a look at the BFPG about page.
This month we have three speakers, and I am one of them! In my talk, &amp;ldquo;Erlang - Why should you care?&amp;rdquo;, I will be giving a fairly non-technical introduction to Erlang.</description>
    </item>
    
    <item>
      <title>Dave Thomas at YOW! Nights Brisbane</title>
      <link>/posts/dave-thomas-at-yow-nights-brisbane/</link>
      <pubDate>Sat, 22 May 2010 00:00:00 +0000</pubDate>
      
      <guid>/posts/dave-thomas-at-yow-nights-brisbane/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;/uploads/2010/05/haskell-logo-variation.png&#34; alt=&#34;Haskell Logo&#34; title=&#34;Haskell Logo&#34; width=&#34;128&#34; height=&#34;128&#34; style=&#34;float:right;margin-left:5px;margin-bottom:5px&#34; /&gt;Two nights ago I was fortunate enough to attend a &lt;a href=&#34;http://yownightbrisbanemay.eventbrite.com/&#34; title=&#34;YOW! Nights Brisbane - May 20th&#34;&gt;YOW! Nights&lt;/a&gt; conference held at the local Microsoft Office here in Brisbane. The speaker for the session was none other than &lt;a href=&#34;http://www.davethomas.net/&#34; title=&#34;Dave Thomas&#34;&gt;Dave Thomas&lt;/a&gt;, the man behind the likes of &lt;a href=&#34;http://objectmentor.com/&#34; title=&#34;Object Mentor&#34;&gt;ObjectMentor&lt;/a&gt;. Not only is this guy incredibly switched on, he is thought-provoking and very entertaining to boot. I&amp;rsquo;ve been to a few of these sessions in the past but I&amp;rsquo;ve never seen one as packed out as this one. It was great to see such a turn-out, which no doubt was boosted by the presence of both the &lt;a href=&#34;http://www.qmsdnug.org/&#34; title=&#34;QMSDNUG&#34;&gt;Queensland MSDN Users Group&lt;/a&gt; and the &lt;a href=&#34;http://bfpg.org/&#34; title=&#34;BFPG&#34;&gt;Brisbane Functional Programming Group&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>The Issue of Perception</title>
      <link>/posts/the-issue-of-perception/</link>
      <pubDate>Sun, 14 Mar 2010 00:00:00 +0000</pubDate>
      
      <guid>/posts/the-issue-of-perception/</guid>
      <description>&lt;h2 id=&#34;what-is-perception&#34;&gt;What is Perception?&lt;/h2&gt;

&lt;p&gt;As cheesy as it sounds, I&amp;rsquo;m going to start off with a definition ripped straight off &lt;a href=&#34;http://dictionary.reference.com/browse/perception&#34; title=&#34;Perception | Define Perception at Dictionary.com&#34;&gt;Dictionary.com&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;h3 id=&#34;perception&#34;&gt;perception&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;noun&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;the act or faculty of apprehending by means of the senses or of the mind; cognition; understanding.&lt;/li&gt;
&lt;li&gt;immediate or intuitive recognition or appreciation, as of moral, psychological, or aesthetic qualities; insight; intuition; discernment: &lt;em&gt;an artist of rare perception&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;the result or product of perceiving, as distinguished from the act of perceiving; percept.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Psychology&lt;/em&gt;. a single unified awareness derived from sensory processes while a stimulus is present.&lt;/li&gt;
&lt;li&gt;Law. the taking into possession of rents, crops, profits, etc.&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&#34;/uploads/2010/03/escher.jpg&#34; rel=&#34;lightbox&#34; title=&#34;A classic Escher&#34;&gt;&lt;img src=&#34;/uploads/2010/03/escher.jpg&#34; alt=&#34;A classic Escher&#34; title=&#34;A classic Escher&#34; width=&#34;250&#34; style=&#34;float: right; margin-left: 5px; margin-bottom: 5px;&#34; /&gt;&lt;/a&gt;Take a moment to digest the meaning of the word. Can you see how subjective it is? One&amp;rsquo;s perception varies greatly depending on the observer. The motivation of the observation is also going to skew how one is perceived. The relationship one has with the observer is also going to impact how that observer perceives you.&lt;/p&gt;

&lt;p&gt;Finally, it&amp;rsquo;s important to note that what was &lt;em&gt;perceived&lt;/em&gt; and any point in time is not necessarily the same as what &lt;strong&gt;actually occurred&lt;/strong&gt;.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>I&#39;m so impressed I want to pay you less</title>
      <link>/posts/im-so-impressed-i-want-to-pay-you-less/</link>
      <pubDate>Tue, 02 Mar 2010 00:00:00 +0000</pubDate>
      
      <guid>/posts/im-so-impressed-i-want-to-pay-you-less/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;/uploads/2010/03/statue-of-liberty_whip_ny-times.jpg&#34; title=&#34;Slave driver&#34; rel=&#34;lightbox[slave]&#34;&gt;&lt;img src=&#34;/uploads/2010/03/statue-of-liberty_whip_ny-times.jpg&#34; alt=&#34;Slave driver&#34; title=&#34;Slave driver&#34; width=&#34;150&#34; style=&#34;float: left; margin-bottom: 5px; margin-right: 5px;&#34;/&gt;&lt;/a&gt;The title of this post is a statement that I&amp;rsquo;ve heard a few times in the past while at work. The people who said it might not have used those exact words, but the intent is the same. Usually I hear it in the following form:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&amp;ldquo;We&amp;rsquo;re very happy with the work you&amp;rsquo;ve done for us as a contractor. We want to keep you on, but would like you to take a job as a permanent employee and continue to work on the project.&amp;rdquo;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Once they&amp;rsquo;ve made this point, they then feel the need to harp on about the good points of becoming a permanent employee. Things such as job security, sick/annual leave and better hours tend to get mentioned. All of them are complete bullshit of course.&lt;/p&gt;

&lt;p&gt;There is &lt;strong&gt;no such thing as job security&lt;/strong&gt;. Sick and/or annual leave isn&amp;rsquo;t enough to make up for the difference in pay. Hours tend to always be worse when you&amp;rsquo;re working for the man, because you&amp;rsquo;re expected to do whatever needs to be done regardless of the hours. This is worse if you&amp;rsquo;re working on mission-critical stuff.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Truncated Pages</title>
      <link>/posts/truncated-pages/</link>
      <pubDate>Fri, 05 Feb 2010 00:00:00 +0000</pubDate>
      
      <guid>/posts/truncated-pages/</guid>
      <description>Not too long ago I mentioned that I&amp;rsquo;d setup and installed Nginx on this server. All seemed well to start off with, then on certain occasions I started to notice that some pages were being served truncated while I was at work. I thought that the issue was work-related, as they have a fairly draconian security policy in place and I thought that it had something to do with severing the connection.</description>
    </item>
    
    <item>
      <title>The Wrong Decision by the Wrong Person</title>
      <link>/posts/the-wrong-decision-by-the-wrong-person/</link>
      <pubDate>Thu, 28 Jan 2010 00:00:00 +0000</pubDate>
      
      <guid>/posts/the-wrong-decision-by-the-wrong-person/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;/uploads/2010/01/pizza.jpg&#34; title=&#34;The wrong tool.&#34; rel=&#34;lightbox&#34;&gt;&lt;img src=&#34;/uploads/2010/01/pizza.jpg&#34; alt=&#34;The wrong tool.&#34; title=&#34;The wrong tool.&#34; style=&#34;float:right; margin-left:5px; margin-bottom:5px;&#34;  width=&#34;150&#34;/&gt;&lt;/a&gt;There is one thing about my industry that I still find truly amazing (and not in a good way). This is despite the fact that it has happened to me so many times that you think I&amp;rsquo;d be used to it! I&amp;rsquo;m talking about non-technical people making technical decisions.&lt;/p&gt;

&lt;p&gt;For some reason, it&amp;rsquo;s a very common practice for those people who don&amp;rsquo;t have expertise in a certain field to make decisions for people working in that field. The best example I can think of off the top of my head is the answer to the question: &lt;em&gt;&amp;ldquo;Which technology should we use?&amp;rdquo;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Let me take a step back in time for a moment.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Katacast: Shopping Checkout in Erlang</title>
      <link>/posts/katacast-shopping-checkout-in-erlang/</link>
      <pubDate>Mon, 04 Jan 2010 00:00:00 +0000</pubDate>
      
      <guid>/posts/katacast-shopping-checkout-in-erlang/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve recently discovered the joys of &lt;a href=&#34;http://codekata.pragprog.com/&#34; title=&#34;CodeKata&#34;&gt;CodeKatas&lt;/a&gt;. If you&amp;rsquo;re a geek looking for a way to &lt;a href=&#34;http://en.wikipedia.org/wiki/The_Seven_Habits_of_Highly_Effective_People&#34; title=&#34;The Seven Habits of Highly Effective People&#34;&gt;sharpen the saw&lt;/a&gt; then I highly recommend taking a look at these and trying a few out. They&amp;rsquo;re great fun and they&amp;rsquo;re a good way of getting your feet wet with new languages (especially if you&amp;rsquo;re tired of &lt;a href=&#34;http://projecteuler.net/&#34; title=&#34;Project Euler&#34;&gt;Project Euler&lt;/a&gt;).&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>&#39;It&#39;s OK to Fail</title>
      <link>/posts/its-ok-to-fail/</link>
      <pubDate>Fri, 11 Dec 2009 00:00:00 +0000</pubDate>
      
      <guid>/posts/its-ok-to-fail/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;/uploads/2009/12/EpicFail02.jpg&#34; rel=&#34;lightbox[fail]&#34; title=&#34;Epic Fail&#34;&gt;&lt;img src=&#34;/uploads/2009/12/EpicFail02.jpg&#34; alt=&#34;Epic Fail&#34; width=&#34;160&#34; style=&#34;float:left;padding-bottom:5px;padding-right:5px;&#34; /&gt;&lt;/a&gt;&lt;em&gt;Yes. You read that right. It&amp;rsquo;s OK to fail. Yes, I am talking to you. You&amp;hellip; that guy who is part of every team. The one who seems to feel the need to be right about everything. The one who thinks that everything new has already been done 15 years prior. The one who believes that every project they have participated in has been a profound success, and that a project-level failure (which includes missing deadlines or blowing the budget) is something they have never experienced. Failure is not only OK, it&amp;rsquo;s something that you &lt;strong&gt;must&lt;/strong&gt; experience somewhere along the way so you know when you&amp;rsquo;ve succeeded.&lt;/em&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>The Future is Erlang</title>
      <link>/posts/the-future-is-erlang/</link>
      <pubDate>Sat, 31 Oct 2009 00:00:00 +0000</pubDate>
      
      <guid>/posts/the-future-is-erlang/</guid>
      <description>For quite a while I&amp;rsquo;ve been using my spare cycles to chew over a problem. This problem is not one that hasn&amp;rsquo;t been solved before, but one that I feel can be solved in a much better way. From the bit of research that I&amp;rsquo;ve done, I can see at least three areas which can be improved on dramatically. So I&amp;rsquo;ve decided, after a long period of deliberation, to go ahead and build my solution and release it to the world as a service!</description>
    </item>
    
    <item>
      <title>Now Running Nginx</title>
      <link>/posts/now-running-nginx/</link>
      <pubDate>Thu, 10 Sep 2009 00:00:00 +0000</pubDate>
      
      <guid>/posts/now-running-nginx/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;/uploads/2009/09/slow_snail.jpg&#34; rel=&#34;lightbox&#34;&gt;&lt;img src=&#34;/uploads/2009/09/slow_snail.jpg&#34; alt=&#34;clarkson_face&#34; title=&#34;clarkson_face&#34; width=&#34;150&#34; style=&#34;float: right; margin-bottom: 5px; margin-left: 5px;&#34; /&gt;&lt;/a&gt;For the last couple of years, the server which has powered this site (and a few other sites) has been running the free version of &lt;a href=&#34;http://litespeedtech.com/&#34; title=&#34;Litespeed&#34;&gt;Litespeed&lt;/a&gt; web server. After feeling the resource burden of &lt;a href=&#34;http://httpd.apache.org/&#34; title=&#34;Apache Httpd&#34;&gt;Apache&lt;/a&gt;, Litespeed was a breath of fresh air! The fact that the &amp;ldquo;full&amp;rdquo; version wasn&amp;rsquo;t free didn&amp;rsquo;t bother me, I was happy to stick with the standard edition as it seemed more than capable of handling the meagre traffic that this site generates.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Haskell 101 at the Brisbane Functional Programming Meetup</title>
      <link>/posts/haskell-101-at-the-brisbane-functional-programming-meetup/</link>
      <pubDate>Mon, 17 Aug 2009 00:00:00 +0000</pubDate>
      
      <guid>/posts/haskell-101-at-the-brisbane-functional-programming-meetup/</guid>
      <description>I just thought I&amp;rsquo;d let the world know that tomorrow night, at 6pm AEST, the Brisbane Functional Programming Group is having another get-together. The topics for the meeting are:  Introduction to Functional Programming - by Brad Clow Haskell 101 - by me!  There are still spots available if you&amp;rsquo;re keen to come along. It should be fun!
I&amp;rsquo;m always up for some public scrutiny, so come along and bring your rotten tomatoes.</description>
    </item>
    
    <item>
      <title>The Value of a Technical Community</title>
      <link>/posts/the-value-of-a-technical-community/</link>
      <pubDate>Wed, 29 Jul 2009 00:00:00 +0000</pubDate>
      
      <guid>/posts/the-value-of-a-technical-community/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;/uploads/2009/07/community.jpg&#34; rel=&#34;lightbox&#34; title=&#34;Cricket Team Holding Hands --- Image by  Royalty-Free/Corbis&#34;&gt;&lt;img src=&#34;/uploads/2009/07/community.jpg&#34; alt=&#34;Cricket Team Holding Hands --- Image by  Royalty-Free/Corbis&#34; title=&#34;Cricket Team Holding Hands --- Image by  Royalty-Free/Corbis&#34; width=&#34;150&#34; style=&#34;float: left; margin-right: 5px; margin-bottom: 5px;&#34; /&gt;&lt;/a&gt;This post was inspired by an experience I had recently in an IRC channel. To protect the innocent, I&amp;rsquo;ll refrain from naming and shaming the channel and individual as those details aren&amp;rsquo;t important.&lt;/p&gt;

&lt;p&gt;Communities are arguably the life blood of technology. Without a good community the likelihood of the technology catching on is drastically reduced. Those communities which lack individuals that are happy to put time and effort in to help get others up to speed tend to stagnate. Any community which involves members that are abrasive, rude and downright offensive is destined to suffer long term.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Point-Free style: What is it good for?</title>
      <link>/posts/point-free-style-what-is-it-good-for/</link>
      <pubDate>Sat, 27 Jun 2009 00:00:00 +0000</pubDate>
      
      <guid>/posts/point-free-style-what-is-it-good-for/</guid>
      <description>&lt;p&gt;If you&amp;rsquo;re not interested in what inspired this post, then skip this section and &lt;a href=&#34;#MoreInteresting&#34;&gt;jump&lt;/a&gt; to the more interesting bits.&lt;/p&gt;

&lt;h2 id=&#34;a-little-bit-of-history&#34;&gt;A Little Bit of History&lt;/h2&gt;

&lt;p&gt;Recently I&amp;rsquo;ve been delving into &lt;a href=&#34;http://haskell.org/&#34;&gt;Haskell&lt;/a&gt; quite a bit. It&amp;rsquo;s part of my apparently never-ending quest to learn as much as I can about as many languages as I can (well, those that appeal to me at least :)). While I love playing around with a language, toying with ideas, writing small programs, reading books, blog posts, etc it&amp;rsquo;s not really the same as having an on-call expert to help and guide you.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Data Crunching in Haskell</title>
      <link>/posts/data-crunching-in-haskell/</link>
      <pubDate>Thu, 25 Jun 2009 00:00:00 +0000</pubDate>
      
      <guid>/posts/data-crunching-in-haskell/</guid>
      <description>&lt;p&gt;A few days ago I was having a chat to a &lt;a href=&#34;http://shiftperception.com/blog&#34; title=&#34;Shifty&#34;&gt;friend of mine&lt;/a&gt; about a little data parsing problem. He had the need to parse a multi-dimensional array to pull out some values. That array was guaranteed to be square, but not necessarily in contiguous memory. He needed to parse each &amp;ldquo;column&amp;rdquo; of the array, calculate a total, and then determine the biggest and smallest of those totals.&lt;/p&gt;

&lt;p&gt;A sample of the data might look something like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;data = ({150,200,45,57,95,2,45,32,15,10,5,2,2,4},
        {12,20,45,37,10,5,2,2,10,95,2,45,32,7},
        {32,15,10,5,2,23,24,15,20,45,57,95,0,45})
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;So the first step would be to add 150, 12 and 32 and store the value. Then 200, 20 and 15, and store the value. Do this for all of the columns, then get a maximum and a minimum.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Setting up Trac, Mercurial and SSH on Windows</title>
      <link>/posts/setting-up-trac-mercurial-and-ssh-on-windows/</link>
      <pubDate>Sat, 16 May 2009 00:00:00 +0000</pubDate>
      
      <guid>/posts/setting-up-trac-mercurial-and-ssh-on-windows/</guid>
      <description>&lt;p&gt;&lt;strong&gt;WARNING - This blog post is long :)&lt;/strong&gt;
&lt;em&gt;This post has been edited since it was published. Please see the end of the article for any notes/modifications&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;h3&gt;Some Background Info&lt;/h3&gt;
I had the need to do this for work recently. It was nothing short of a right royal pain in the butt. It was such a pain, in fact, that I have decided to document what I had to do to get it working so that other poor unfortunates will feel less pain if they have to do this themselves.&lt;/p&gt;

&lt;p&gt;Almost regardless of the company and the software I&amp;rsquo;m working on, I use &lt;a href=&#34;http://www.selenic.com/mercurial/&#34; title=&#34;Mercurial&#34;&gt;Mercurial&lt;/a&gt; for source code control. For the work I am doing at the moment, I was also using hg because the company I am involved with is relatively new and they hadn&amp;rsquo;t yet sorted out a plan for version control or &lt;acronym title=&#34;Application Lifecycle Management&#34;&gt;ALM&lt;/acronym&gt;. It was working quite well and I was pushing all my changes to my &lt;a href=&#34;http://www.google.com.au/url?q=http://www.buffalotech.com/products/network-storage/terastation/terastation-iii/&amp;ei=fioOSuLvGpu8swPl56zqAg&amp;sa=X&amp;oi=smap&amp;resnum=1&amp;ct=result&amp;cd=2&amp;usg=AFQjCNHXKMchy5tR-a-jMOFAbtxoWzfedA&#34; title=&#34;Terastation&#34;&gt;NAS box&lt;/a&gt; to make sure I had other copies backed up, etc. I was &lt;em&gt;living the dream&lt;/em&gt; :)&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>I Don&#39;t Need Your Frickin&#39; Framework!</title>
      <link>/posts/i-dont-need-your-frickin-framework/</link>
      <pubDate>Mon, 13 Apr 2009 00:00:00 +0000</pubDate>
      
      <guid>/posts/i-dont-need-your-frickin-framework/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;/uploads/2009/04/scaffold_fail.jpg&#34; title=&#34;Scaffold Fail&#34;&gt;&lt;img src=&#34;/uploads/2009/04/scaffold_fail.jpg&#34; alt=&#34;Scaffold Fail&#34; title=&#34;Scaffold Fail&#34; width=&#34;200&#34; style=&#34;float: right; margin-left: 5px; margin-bottom: 5px;&#34; /&gt;&lt;/a&gt;How many companies have you worked with/for that have their own framework? How many have been in the process of developing their own framework? How many have been in the process of &lt;strong&gt;re&lt;/strong&gt;developing their own framework? How many have taken another framework and &lt;del&gt;hacked&lt;/del&gt; improved it?&lt;/p&gt;

&lt;p&gt;When I attempt to answer the questions listed above, I start to shiver. I feel the need to burn my clothes and take a very long shower.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>A Quirk in List.Find()</title>
      <link>/posts/a-quirk-in-list.find/</link>
      <pubDate>Wed, 25 Mar 2009 00:00:00 +0000</pubDate>
      
      <guid>/posts/a-quirk-in-list.find/</guid>
      <description>&lt;p&gt;Earlier today I was having a chat with a &lt;a href=&#34;http://doomkeeper.com/&#34; title=&#34;Jimmy&#39;s Blog&#34;&gt;friend of mine&lt;/a&gt;, who lives in Vancouver, about finding items that are stored in &lt;a href=&#34;http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx&#34; title=&#34;List(T)&#34;&gt;generic Lists&lt;/a&gt;. He flicked me a code snippet that looked something like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;List&amp;lt;foo&amp;gt; list = new List&amp;lt;foo&amp;gt;();
// .. do some stuff
Foo f = list.Find(delegate(Foo f) { return foo.Name == &amp;quot;Bar&amp;quot;; });
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Straight away I fired back with an update to the code which used &lt;a href=&#34;http://msdn.microsoft.com/en-us/library/bb397687.aspx&#34; title=&#34;Lambda Expressions (C# Programming Guide)&#34;&gt;lambda expressions&lt;/a&gt; instead, as I&amp;rsquo;m a fan of how concise they are ;)&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Damn you, Crystal Reports!</title>
      <link>/posts/damn-you-crystal-reports/</link>
      <pubDate>Tue, 24 Mar 2009 00:00:00 +0000</pubDate>
      
      <guid>/posts/damn-you-crystal-reports/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve had &lt;a href=&#34;http://msdn.microsoft.com/en-us/vstudio/default.aspx&#34; title=&#34;Visual Studio on MSDN&#34;&gt;Visual Studio 2008&lt;/a&gt; installed for quite a while. When I first installed it I decided not to install the &lt;a href=&#34;http://www.sap.com/solutions/sapbusinessobjects/sme/reporting/crystalreports/index.epx&#34; title=&#34;Crystal Reports&#34;&gt;Crystal Reports&lt;/a&gt; components because I was fairly certain that I&amp;rsquo;d never need them at home.&lt;/p&gt;

&lt;p&gt;Well, the worm has turned! On my new gig, I have the joy of working from home. It just so happens that I &lt;em&gt;also&lt;/em&gt; need to use Crystal Reports. How silly of me to not bother installing a few extra components the first time so I didn&amp;rsquo;t have to go through the pain of going through another VS Setup.&lt;/p&gt;

&lt;p&gt;On the surface this doesn&amp;rsquo;t sound like a painful experience right? &lt;strong&gt;WRONG&lt;/strong&gt;. It&amp;rsquo;s a lot more painful than you think.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>N Things You Don&#39;t Want to Hear when Starting a New Job (where N &amp;gt;= 1)</title>
      <link>/posts/n-things-you-dont-want-to-hear-when-starting-a-new-job-where-n-gt-1/</link>
      <pubDate>Mon, 23 Feb 2009 00:00:00 +0000</pubDate>
      
      <guid>/posts/n-things-you-dont-want-to-hear-when-starting-a-new-job-where-n-gt-1/</guid>
      <description>&lt;p&gt;Here are a collection of quotes that can drive fear into the heart of every developer. They&amp;rsquo;re made worse when heard at the start of a new gig, as any hope of a brave new world is smashed before you even get a login!&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>An All Too Common Issue</title>
      <link>/posts/an-all-too-common-issue/</link>
      <pubDate>Wed, 18 Feb 2009 00:00:00 +0000</pubDate>
      
      <guid>/posts/an-all-too-common-issue/</guid>
      <description>I think the following statement goes way deeper than it may have been intended (I might be wrong of course)&amp;hellip; Engineering is about making tradeoffs. If you refuse to make the choice, then you&amp;rsquo;re taking the cowardly route and ultimately are creating more work for your team. Instead of solving problems, you&amp;rsquo;re creating them.
All because you&amp;rsquo;re too chicken to make a hard decision.
 Thank you, Raymond Chen! You are a legend.</description>
    </item>
    
    <item>
      <title>Always Question the Source (aka &#34;Don&#39;t Lock on Type Objects&#34;)</title>
      <link>/posts/always-question-the-source-aka-dont-lock-on-type-objects/</link>
      <pubDate>Tue, 10 Feb 2009 00:00:00 +0000</pubDate>
      
      <guid>/posts/always-question-the-source-aka-dont-lock-on-type-objects/</guid>
      <description>&lt;p&gt;For one reason or another, I recently found myself perusing some code based on the &lt;a href=&#34;http://www.lhotka.net/cslanet/&#34; title=&#34;CSLA&#34;&gt;CSLA&lt;/a&gt; framework. While nosing around I came upon a snippet of code that I found rather disturbing. An example can be found &lt;a href=&#34;http://www.lhotka.net/cslacvs/viewvc.cgi/trunk/cslacs/Csla/Core/BusinessBase.cs?revision=3690&amp;amp;view=markup&#34; title=&#34;BusinessBase.cs&#34;&gt;here&lt;/a&gt; in the function called InitializeAuthorizationRules.&lt;/p&gt;

&lt;p&gt;For those who are lazy, here is the particular snippet of code that caught my eye:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Assembly Signing Article Translated into Italian</title>
      <link>/posts/assembly-signing-article-translated-into-italian/</link>
      <pubDate>Wed, 14 Jan 2009 00:00:00 +0000</pubDate>
      
      <guid>/posts/assembly-signing-article-translated-into-italian/</guid>
      <description>You may remember a little while ago I wrote a post on signing assemblies that you don&amp;rsquo;t have the source code to. It got a bit of attention and was reproduced in full on dzone&amp;rsquo;s dotnet site. That was pretty exciting.
This, however, I find more exciting. This article has now been translated into Italian! This is the first time an article of mine has been reproduced in another language, which I think is just fantastic.</description>
    </item>
    
    <item>
      <title>The Sales Pipeline</title>
      <link>/posts/the-sales-pipeline/</link>
      <pubDate>Tue, 13 Jan 2009 00:00:00 +0000</pubDate>
      
      <guid>/posts/the-sales-pipeline/</guid>
      <description>&lt;p&gt;Here&amp;rsquo;s a brief list of what&amp;rsquo;s coming down the pipe on this blog in the coming weeks. I thought I&amp;rsquo;d post this info as I&amp;rsquo;ve had a few people ask what&amp;rsquo;s up next and I&amp;rsquo;m tired of telling the same story over and over :) So here it is!&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Websites are Hard to Build - A Case in Point</title>
      <link>/posts/websites-are-hard-to-build-a-case-in-point/</link>
      <pubDate>Thu, 01 Jan 2009 00:00:00 +0000</pubDate>
      
      <guid>/posts/websites-are-hard-to-build-a-case-in-point/</guid>
      <description>&lt;p&gt;A short time ago I &lt;a href=&#34;/posts/websites-are-hard-to-build/&#34; title=&#34;Websites are Hard to Build&#34;&gt;posted some thoughts&lt;/a&gt; on issues faced when building websites that most people aren&amp;rsquo;t aware of when they decide to have one built. I posted from the perspective of someone who has, on many occasions, been asked to build a site for someone who really doesn&amp;rsquo;t have a clue about what is involved. More importantly, they don&amp;rsquo;t &lt;em&gt;want&lt;/em&gt; to know.&lt;/p&gt;

&lt;p&gt;There are people out there who don&amp;rsquo;t know about the issues faced, but are still in need of a site to fulfil their needs. Should they learn about these issues themselves? Should they put their faith in a developer/designer and let them do their job and just send them a bill at the end? A mixture of the two?&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Random Resolutions</title>
      <link>/posts/random-resolutions/</link>
      <pubDate>Sat, 27 Dec 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/random-resolutions/</guid>
      <description>I&amp;rsquo;ve never been one to make New Years Resolutions. I think they&amp;rsquo;re a bit of a wank to be honest. But I do love a good gimmick. So when I stumbled on this I both loved and hated it.
 This first attempt made me chuckle. I think all the time, let alone at inappropriate times. The bigger question is: what should I be thinking about at inappropriate times?.
Who knows.</description>
    </item>
    
    <item>
      <title>The Admin is an Idiot</title>
      <link>/posts/the-admin-is-an-idiot/</link>
      <pubDate>Sat, 27 Dec 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/the-admin-is-an-idiot/</guid>
      <description>&lt;p&gt;Yes, and that admin is me!&lt;/p&gt;

&lt;p&gt;I usually do a fairly decent job of keeping the server patched, up to date, and clean. Over the Xmas period where I wasn&amp;rsquo;t really looking at anything online, something went wrong.&lt;/p&gt;

&lt;p&gt;I logged on this morning only to find that the server wasn&amp;rsquo;t responding. I could connect via SSH, but nothing was being served via HTTP. So I tried to reboot &lt;a href=&#34;http://litespeedtech.com/&#34; title=&#34;LiteSpeed technologies&#34;&gt;LiteSpeed&lt;/a&gt; to see if that would resolve it (as you do ;) ). The service stopped, but failed to restart!&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Websites are Hard to Build</title>
      <link>/posts/websites-are-hard-to-build/</link>
      <pubDate>Wed, 26 Nov 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/websites-are-hard-to-build/</guid>
      <description>&lt;p&gt;{% img right /uploads/2008/11/elope-harlequin-jester.jpg &amp;lsquo;Uninformed client&amp;rsquo; %}
&amp;gt; &amp;ldquo;It&amp;rsquo;s just a small site, how hard can it be?&amp;rdquo;
&amp;gt;
&amp;gt; &amp;ldquo;I thought you could do it for me as a favour. It&amp;rsquo;s not a complicated site.&amp;rdquo;
&amp;gt;
&amp;gt; &amp;ldquo;This would take me an afternoon, but I don&amp;rsquo;t have time, can you do it for me?&amp;rdquo;&lt;/p&gt;

&lt;p&gt;Have you ever heard these comments before? Have you heard ones that are similar? I&amp;rsquo;ve been hearing them a lot in the last few weeks and it&amp;rsquo;s starting to get to me.&lt;/p&gt;

&lt;p&gt;I have just had a chat with a mate who is also suffering this pain, and that conversation is what inspired me to write this, the first random rant in a while.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Sorting Algorithms: The Gnome Sort</title>
      <link>/posts/sorting-algorithms-the-gnome-sort/</link>
      <pubDate>Thu, 16 Oct 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/sorting-algorithms-the-gnome-sort/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;/uploads/2008/10/gnome.jpg&#34; alt=&#34;Gnome Sort&#34; title=&#34;Gnome Sort&#34; width=&#34;240&#34; style=&#34;float: right; margin-left: 5px; margin-bottom: 5px;&#34;/&gt;After a bit of down time for personal reasons, here is the fourth post in the series on &lt;a href=&#34;/category/sorting/&#34; title=&#34;Sorting @ OJ&#39;s rants&#34;&gt;sorting&lt;/a&gt; algorithms. This time round we&amp;rsquo;re taking a good look at the &lt;strong&gt;Gnome Sort&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;People often do a double-take when hearing the term &amp;ldquo;Gnome Sort&amp;rdquo; because it&amp;rsquo;s not that common. The &lt;strong&gt;Gnome Sort&lt;/strong&gt; is extremely simple, and is very similar to the principle behind the &lt;strong&gt;Insertion Sort&lt;/strong&gt; (which we&amp;rsquo;ll be covering soon).&lt;/p&gt;

&lt;p&gt;The Gnome Sort is yet another &lt;em&gt;comparison&lt;/em&gt; and &lt;em&gt;exchange&lt;/em&gt; sort which has elements that are similar to the &lt;a href=&#34;/posts/sorting-algorithms-the-bubble-sort/&#34; title=&#34;Sorting Algorithms: The Bubble Sort&#34;&gt;Bubble Sort&lt;/a&gt;. If you haven&amp;rsquo;t read up on the Bubble Sort, be sure to do that before reading this article as it may help with your understanding.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Sorting Algorithms: The Comb Sort</title>
      <link>/posts/sorting-algorithms-the-comb-sort/</link>
      <pubDate>Sun, 14 Sep 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/sorting-algorithms-the-comb-sort/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;/uploads/2008/09/combsort.jpg&#34; alt=&#34;Comb Sort&#34; title=&#34;Comb Sort&#34; width=&#34;150&#34; style=&#34;float: left; margin-right: 5px; margin-bottom: 5px;&#34; /&gt;Welcome to this, the third post in the series on &lt;a href=&#34;/category/sorting/&#34; title=&#34;Sorting @ OJ&#39;s rants&#34;&gt;sorting&lt;/a&gt; algorithms. Next up, we&amp;rsquo;re going to cover the &lt;strong&gt;Comb Sort&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Like the &lt;a href=&#34;/posts/sorting-algorithms-the-cocktail-sort/&#34; title=&#34;Sorting Algorithms: The Cocktail Sort&#34;&gt;Cocktail Sort&lt;/a&gt;, the Comb Sort isn&amp;rsquo;t particularly well known. Most people manage to make their way through tertiary studies without ever hearing of it. This post is designed to change that!&lt;/p&gt;

&lt;p&gt;The Comb Sort is another &lt;em&gt;comparison&lt;/em&gt; and &lt;em&gt;exchange&lt;/em&gt; sort which builds on the idea of the &lt;a href=&#34;/posts/sorting-algorithms-the-bubble-sort/&#34; title=&#34;Sorting Algorithms: The Bubble Sort&#34;&gt;Bubble Sort&lt;/a&gt; and adds a potential optimisation or two.&lt;/p&gt;

&lt;p&gt;Make sure you read the articles on the &lt;a href=&#34;/posts/sorting-algorithms-the-bubble-sort/&#34; title=&#34;Sorting Algorithms: The Bubble Sort&#34;&gt;Bubble Sort&lt;/a&gt; and the &lt;a href=&#34;/posts/sorting-algorithms-the-cocktail-sort/&#34; title=&#34;Sorting Algorithms: The Cocktail Sort&#34;&gt;Cocktail Sort&lt;/a&gt; before you read this article. Doing so will make it much easier to understand.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>WPF Shader FX on Codeplex</title>
      <link>/posts/wpf-shader-fx-on-codeplex/</link>
      <pubDate>Tue, 09 Sep 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/wpf-shader-fx-on-codeplex/</guid>
      <description>This is just a quick post to point out a new project that has fired up on Codeplex which may be of interest to a few of you graphics and rich client fans.
Joseph Cooney of LearnWPF.com (and WPF MVP to the stars) has kicked off a Codeplex project targetting funky shaders for use with the new features of WPF that were included in SP1. Specifically, it&amp;rsquo;s intended to be a collection of open source/free shaders that can be easily plugged into your WPF apps to make them look schmick (for more info, check this out).</description>
    </item>
    
    <item>
      <title>Sorting Algorithms: The Cocktail Sort</title>
      <link>/posts/sorting-algorithms-the-cocktail-sort/</link>
      <pubDate>Fri, 29 Aug 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/sorting-algorithms-the-cocktail-sort/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;/uploads/2008/08/cocktail.jpg&#34; alt=&#34;Cocktail&#34; title=&#34;Cocktail&#34; style=&#34;float: right; margin-left: 5px; margin-bottom: 5px&#34; /&gt;Welcome to the second post in my series on &lt;a href=&#34;/category/sorting/&#34; title=&#34;Sorting @ OJ&#39;s rants&#34;&gt;sorting&lt;/a&gt; algorithms. This time we&amp;rsquo;re going to talk about a sort that most people haven&amp;rsquo;t heard a great deal about: the &lt;strong&gt;Cocktail Sort&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This algorithm was the next logical choice in the series because it is very similar to the &lt;a href=&#34;/posts/sorting-algorithms-the-bubble-sort/&#34; title=&#34;Sorting Algorithms: The Bubble Sort&#34;&gt;Bubble Sort&lt;/a&gt; in the way that it operates. If you&amp;rsquo;re yet to read the first in the series, head &lt;a href=&#34;/posts/sorting-algorithms-the-bubble-sort/&#34; title=&#34;Sorting Algorithms: The Bubble Sort&#34;&gt;over there now&lt;/a&gt; as it will make this algorithm easier to understand.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>OpenDNS is Wicked</title>
      <link>/posts/opendns-is-wicked/</link>
      <pubDate>Mon, 18 Aug 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/opendns-is-wicked/</guid>
      <description>&lt;p&gt;&lt;a title=&#34;Use OpenDNS to make your Internet faster, safer, and smarter.&#34; href=&#34;http://www.opendns.com/share/&#34;&gt;&lt;img src=&#34;http://images.opendns.com/buttons/use_opendns_155x52.gif&#34; width=&#34;155&#34; height=&#34;52&#34; style=&#34;border:0; float:right; margin-left:5px;margin-bottom;5px&#34; alt=&#34;Use OpenDNS&#34; /&gt;&lt;/a&gt;Over the last couple of weeks the DNS timeouts and lags I&amp;rsquo;ve been experiencing at home have made the web experience a little dire. My &lt;a href=&#34;http://internode.on.net/&#34; title=&#34;Internode&#34;&gt;ISP&lt;/a&gt; is actually pretty darned good, but for some reason they seem to have glitches with their DNS servers every now and then.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Sorting Algorithms: The Bubble Sort</title>
      <link>/posts/sorting-algorithms-the-bubble-sort/</link>
      <pubDate>Thu, 14 Aug 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/sorting-algorithms-the-bubble-sort/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;/uploads/2008/08/bubbles.jpg&#34; alt=&#34;Bubbles&#34; title=&#34;Bubbles&#34; width=&#34;225&#34; height=&#34;154&#34; style=&#34;float: left; margin-right: 5px; margin-bottom: 5px&#34; /&gt;This is the first of many posts covering the fascinating topic of &lt;a href=&#34;/category/sorting/&#34; title=&#34;Sorting @ OJ&#39;s rants&#34;&gt;sorting&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I chose the Bubble Sort algorithm as the first to cover because of its simplicity. This algorithm tends to be the first sorting algorithm that is taught to students, and hence is a rather apt starting point.&lt;/p&gt;

&lt;p&gt;Let&amp;rsquo;s break it down.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Sorting Things Out</title>
      <link>/posts/sorting-things-out/</link>
      <pubDate>Wed, 13 Aug 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/sorting-things-out/</guid>
      <description>&lt;p&gt;It&amp;rsquo;s time to recap a topic that is, or should be, close to the heart of every developer. A topic that is often overlooked or glossed over, rarely fully understood and not often discussed. Yet this topic is hugely important.&lt;/p&gt;

&lt;p&gt;That topic is &lt;strong&gt;Sorting&lt;/strong&gt;.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Stop Cutting your Feeds Short</title>
      <link>/posts/stop-cutting-your-feeds-short/</link>
      <pubDate>Thu, 07 Aug 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/stop-cutting-your-feeds-short/</guid>
      <description>&lt;p&gt;Despite the fact the Internet is accessible from nearly everywhere, there are still times when you are forced to work in a disconnected environment. There are also times where you &lt;em&gt;want&lt;/em&gt; to work in a disconnected environment (probably to avoid distractions from &lt;a href=&#34;http://en.wikipedia.org/wiki/Instant_messaging&#34; title=&#34;Instant Messaging&#34;&gt;IM&lt;/a&gt;, &lt;a href=&#34;http://twitter.com/&#34; title=&#34;Twitter&#34;&gt;Twitter&lt;/a&gt;, etc).&lt;/p&gt;

&lt;p&gt;So why is it that we still don&amp;rsquo;t seem to do a good job of catering for these cases? Offline capabilities are currently few and far between. Sure, it can be hard to add offline functionality to an application, depending on what the application does, but sometimes there&amp;rsquo;s really no excuse.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Project Euler #10</title>
      <link>/posts/project-euler-#10/</link>
      <pubDate>Wed, 30 Jul 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/project-euler-#10/</guid>
      <description>&lt;p&gt;&lt;strong&gt;WARNING!&lt;/strong&gt; This post contains a spoiler for Problem #10 listed at &lt;a href=&#34;http://projecteuler.net/&#34; title=&#34;Project Euler&#34;&gt;Project Euler&lt;/a&gt;. Do not read the rest of this post if you&amp;rsquo;re planning to attempt to solve the problem yourself.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Epic Fail - Cuil Search Engine</title>
      <link>/posts/epic-fail-cuil-search-engine/</link>
      <pubDate>Tue, 29 Jul 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/epic-fail-cuil-search-engine/</guid>
      <description>Don&amp;rsquo;t believe the hype. [caption id=&amp;ldquo;attachment_436&amp;rdquo; align=&amp;ldquo;aligncenter&amp;rdquo; width=&amp;ldquo;500&amp;rdquo; caption=&amp;ldquo;EPIC FAIL&amp;rdquo;][/caption]
Mike G and Dare are dead right.</description>
    </item>
    
    <item>
      <title>Unit Tests: Boldly Crossing Boundaries and Gently Breaking Rules</title>
      <link>/posts/unit-tests-boldly-crossing-boundaries-and-gently-breaking-rules/</link>
      <pubDate>Tue, 29 Jul 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/unit-tests-boldly-crossing-boundaries-and-gently-breaking-rules/</guid>
      <description>&lt;p&gt;For the first time ever, OJ&amp;rsquo;s rants has a guest blogger! Long term friend and highly-respected geek, RobG has put together an interesting piece on something that&amp;rsquo;s close to the hearts of most Geeks - Unit testing. This is his first post, and I hope it won&amp;rsquo;t be the last.&lt;/p&gt;

&lt;p&gt;Without further ado, here&amp;rsquo;s Rob!&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>A Better &#39;nub&#39;</title>
      <link>/posts/a-better-nub/</link>
      <pubDate>Mon, 28 Jul 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/a-better-nub/</guid>
      <description>&lt;p&gt;During my Haskell travels I have found myself using the &lt;a href=&#34;http://haskell.org/ghc/docs/latest/html/libraries/base/Data-List.html#v%3Anub&#34; title=&#34;Data.List nub&#34;&gt;nub&lt;/a&gt; function quite regularly. For those too lazy to click the link: &lt;em&gt;nub&lt;/em&gt; removes duplicates from a list of items. eg:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Prelude&amp;gt; nub [1,1,3,3,5,5,6,6,6,1]
[1,3,5,6]
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Fairly simple stuff. Until recently I hadn&amp;rsquo;t bothered pondering the internal implementation of this function because I hadn&amp;rsquo;t really been too worried about performance. That&amp;rsquo;s no longer the case. I recently cracked open the hood of &lt;em&gt;nub&lt;/em&gt;, and was rather surprised by what I saw.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Another Quick Coding Challenge</title>
      <link>/posts/another-quick-coding-challenge/</link>
      <pubDate>Fri, 25 Jul 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/another-quick-coding-challenge/</guid>
      <description>&lt;p&gt;I was about to head to bed when I stumbled across another interesting coding challenge. Since I had another half hour or so to kill I thought I&amp;rsquo;d give it a shot!&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Project Euler #9</title>
      <link>/posts/project-euler-#9/</link>
      <pubDate>Fri, 25 Jul 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/project-euler-#9/</guid>
      <description>&lt;p&gt;&lt;strong&gt;WARNING!&lt;/strong&gt; This post contains a spoiler for Problem #9 listed at &lt;a href=&#34;http://projecteuler.net/&#34; title=&#34;Project Euler&#34;&gt;Project Euler&lt;/a&gt;. Do not read the rest of this post if you&amp;rsquo;re planning to attempt to solve the problem yourself.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Project Euler #8</title>
      <link>/posts/project-euler-#8/</link>
      <pubDate>Thu, 24 Jul 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/project-euler-#8/</guid>
      <description>&lt;p&gt;&lt;strong&gt;WARNING!&lt;/strong&gt; This post contains a spoiler for Problem #8 listed at &lt;a href=&#34;http://projecteuler.net/&#34; title=&#34;Project Euler&#34;&gt;Project Euler&lt;/a&gt;. Do not read the rest of this post if you&amp;rsquo;re planning to attempt to solve the problem yourself.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Validating use of Parenthesis</title>
      <link>/posts/validating-use-of-parenthesis/</link>
      <pubDate>Thu, 24 Jul 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/validating-use-of-parenthesis/</guid>
      <description>&lt;p&gt;Yet another &lt;a href=&#34;http://www.dev102.com/posts/a-programming-job-interview-challenge-13-brackets/&#34; title=&#34;Programming Challenge&#34;&gt;programming challenge appeared on dev102&lt;/a&gt; the other day, and I thought that this time I&amp;rsquo;d post my solution here in the blog rather than letting it get lost in the depths of the comment thread!&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>.NET-fu: Signing an Unsigned Assembly (without Delay Signing)</title>
      <link>/posts/.net-fu-signing-an-unsigned-assembly-without-delay-signing/</link>
      <pubDate>Wed, 09 Jul 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/.net-fu-signing-an-unsigned-assembly-without-delay-signing/</guid>
      <description>&lt;p&gt;This article is also available in &lt;a href=&#34;http://www.otherbit.com/modules/blog/BlogContent.aspx?ID=174&#34; title=&#34;.NET-FU : come trasformare in SIGNED un assembly UNSIGNED (senza ricorrere al DELAY SIGNING)&#34;&gt;Italian&lt;/a&gt;.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;The code-base that I am currently working with consists of a large set of binaries that are all &lt;a href=&#34;http://msdn.microsoft.com/en-us/library/xc31ft41.aspx&#34; title=&#34;Sign an Assembly with a Strong Name&#34;&gt;signed&lt;/a&gt;. The savvy .NET devs out there will know that any assembly that&amp;rsquo;s used/referenced by a signed assembly must &lt;em&gt;also&lt;/em&gt; be signed.&lt;/p&gt;

&lt;p&gt;This is an issue when dealing with third-party libraries that are not signed. Sometimes you&amp;rsquo;ll be lucky enough to be dealing with vendor that is happy to provide a set of signed assemblies, other times you won&amp;rsquo;t. If your scenario fits the latter (as a recent one did for my colleagues and I), you need to sign the assemblies yourself. Here&amp;rsquo;s how.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Things that Suck about Blogs</title>
      <link>/posts/things-that-suck-about-blogs/</link>
      <pubDate>Sun, 29 Jun 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/things-that-suck-about-blogs/</guid>
      <description>&lt;p&gt;Why is it that people are still doing stupid things on their blogs? Blogging isn&amp;rsquo;t exactly a &amp;ldquo;new&amp;rdquo; thing any more. The things that you can do wrong to annoy your readers have been blogged over and over again, yet still the mistakes are being made.&lt;/p&gt;

&lt;p&gt;I feel the need to rant :)&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>I&#39;ve Caved-in to Twitter</title>
      <link>/posts/ive-caved-in-to-twitter/</link>
      <pubDate>Thu, 19 Jun 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/ive-caved-in-to-twitter/</guid>
      <description>I was against the idea for ages, but for some reason I&amp;rsquo;ve decided to start using it. Twitter was one of those things that I didn&amp;rsquo;t see a need for. Now I can.
I&amp;rsquo;ll be using it to keep track of ideas I have for blog posts as well as other things that I need to get done. If you feel like tracking me or joining me in a conversation, please feel free to add me to your follow list.</description>
    </item>
    
    <item>
      <title>Screencast - Setting up Unity Builds</title>
      <link>/posts/screencast-setting-up-unity-builds/</link>
      <pubDate>Thu, 19 Jun 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/screencast-setting-up-unity-builds/</guid>
      <description>&lt;p&gt;It has taken me a bit longer than expected, but I&amp;rsquo;ve finally got the screencast up!&lt;/p&gt;

&lt;p&gt;That&amp;rsquo;s right folks, my angelic voice is now online for you all to experience. 8 minutes of Unity Build glory!&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Project Euler #7</title>
      <link>/posts/project-euler-#7/</link>
      <pubDate>Sun, 15 Jun 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/project-euler-#7/</guid>
      <description>&lt;p&gt;&lt;strong&gt;WARNING!&lt;/strong&gt; This post contains a spoiler for Problem #7 listed at &lt;a href=&#34;http://projecteuler.net/&#34; title=&#34;Project Euler&#34;&gt;Project Euler&lt;/a&gt;. Do not read the rest of this post if you&amp;rsquo;re planning to attempt to solve the problem yourself.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>An Interesting Little Problem</title>
      <link>/posts/an-interesting-little-problem/</link>
      <pubDate>Sat, 14 Jun 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/an-interesting-little-problem/</guid>
      <description>&lt;p&gt;This post was inspired by a recent interview question that was posted over at &lt;a href=&#34;http://www.fsharp.it/posts/google-interview-question-product-of-other-elements-in-an-array-in-on/&#34; title=&#34;Fsharp.it&#34;&gt;fsharp.it&lt;/a&gt;. It&amp;rsquo;s one of those neat little questions which looks really simple on the surface but is quite tricky.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Be Part of a World Record</title>
      <link>/posts/be-part-of-a-world-record/</link>
      <pubDate>Sat, 31 May 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/be-part-of-a-world-record/</guid>
      <description>Get yourself a copy of Firefox 3 on the day it&amp;rsquo;s released from this site and you&amp;rsquo;ll be doing your bit to get Firefox downloads in the world record books.
Yup, you&amp;rsquo;ll also be falling for a huge marketing gag designed to get Firefox installed on as many machines as possible, but it&amp;rsquo;s a damned good browser anyway, so no harm done! :)</description>
    </item>
    
    <item>
      <title>Interesting Keyword Searches</title>
      <link>/posts/interesting-keyword-searches/</link>
      <pubDate>Tue, 27 May 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/interesting-keyword-searches/</guid>
      <description>&lt;p&gt;I was browsing through my &lt;a href=&#34;http://www.google.com/analytics&#34; title=&#34;Google Analytics&#34;&gt;Google Analytics&lt;/a&gt; stats earlier and thought it&amp;rsquo;d be interesting to browse through search terms that resulted in a hit on my site.&lt;/p&gt;

&lt;p&gt;Man, there are some crazy entries!&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Preview Feeds in Google Reader</title>
      <link>/posts/preview-feeds-in-google-reader/</link>
      <pubDate>Sun, 25 May 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/preview-feeds-in-google-reader/</guid>
      <description>&lt;p&gt;Here&amp;rsquo;s another reason why I find &lt;a href=&#34;http://reader.google.com/&#34; title=&#34;Google Reader&#34;&gt;Google Reader&lt;/a&gt; a excellent choice for reading your RSS feeds.&lt;/p&gt;

&lt;p&gt;Most of us have a collection of feeds that contain similar subject matter. As a geek, &lt;em&gt;most&lt;/em&gt; of my feeds are geek-related. As a geek who likes to stay up to speed, I also like to know what other blogs and feeds are good to read.&lt;/p&gt;

&lt;p&gt;This is where Google Reader&amp;rsquo;s &lt;strong&gt;Top Recommendations&lt;/strong&gt; come in. Google do a great job of throwing other feeds in your face that you might like to read based on the kind of stuff that you&amp;rsquo;ve already subscribed to.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>The Best Sound in the World</title>
      <link>/posts/the-best-sound-in-the-world/</link>
      <pubDate>Sat, 24 May 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/the-best-sound-in-the-world/</guid>
      <description>&amp;hellip; is hearing your Son laugh out loud for the first time.
Solid gold. &amp;nbsp;</description>
    </item>
    
    <item>
      <title>How do you Interact with your ViewState?</title>
      <link>/posts/how-do-you-interact-with-your-viewstate/</link>
      <pubDate>Wed, 21 May 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/how-do-you-interact-with-your-viewstate/</guid>
      <description>&lt;p&gt;There comes a time in every ASP.NET developer&amp;rsquo;s life when the need arises for information to be persisted into &lt;a href=&#34;http://msdn.microsoft.com/en-us/library/ms972976.aspx&#34; title=&#34;ViewState&#34;&gt;ViewState&lt;/a&gt;. For the sake of this post I&amp;rsquo;m not really interested in the reasons why. What I am interested in is &lt;em&gt;how&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;How do you interact with your ViewState?&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>We are the Champions!</title>
      <link>/posts/we-are-the-champions/</link>
      <pubDate>Sun, 18 May 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/we-are-the-champions/</guid>
      <description>It has been a long time coming (somewhere around the 70 year mark - I think the last time was 1939) but we finally got there. Pompey made it to the FA Cup final. Not only did we get there, but we managed to beat the opposition, Cardiff, 1 - 0.
Yes, this is one of the few times I&amp;rsquo;ll ever admit to being born anywhere near Portsmouth ;) It&amp;rsquo;s good to see the lads come up with a win after a pretty good run in the Premier League in the last couple of years.</description>
    </item>
    
    <item>
      <title>Resolving Side-by-Side Configuration Issues</title>
      <link>/posts/resolving-side-by-side-configuration-issues/</link>
      <pubDate>Sat, 17 May 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/resolving-side-by-side-configuration-issues/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been meaning to blog about this for well over a year now, but for some reason I never got round to it. This came up in conversation the other day with a couple of workmates and it prompted me to revisit the issue.&lt;/p&gt;

&lt;p&gt;Have you ever fired up an application on Windows XP and got the following error?
&lt;blockquote&gt;&lt;p&gt;The application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem.&lt;/p&gt;&lt;/blockquote&gt;
Informative isn&amp;rsquo;t it! What about if you fire up the same application on Windows Vista?
&lt;blockquote&gt;&lt;p&gt;The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log for more detail.&lt;/p&gt;&lt;/blockquote&gt;
This does tell us a little bit more about the problem, but not a &lt;em&gt;lot&lt;/em&gt; more.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>62 Days To Go</title>
      <link>/posts/62-days-to-go/</link>
      <pubDate>Mon, 05 May 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/62-days-to-go/</guid>
      <description>I&amp;rsquo;ve just come back from another run and again I&amp;rsquo;m feeling good. I did the same route as yesterday, but 6 minutes slower. It was encouraging that I didn&amp;rsquo;t feel out of breath or overly tired, the thing that got me was sore legs!
Tomorrow is going to be a rest day because I have to go and do a certification exam during lunch time which is a bit annoying. Hopefully Wednesday lunch time I&amp;rsquo;ll be rested up and ready to take on the lunchtime route again.</description>
    </item>
    
    <item>
      <title>Marathon Training Update</title>
      <link>/posts/marathon-training-update/</link>
      <pubDate>Sun, 04 May 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/marathon-training-update/</guid>
      <description>&lt;p&gt;Since before &lt;a href=&#34;/posts/more-punishment/&#34; title=&#34;More Punishment&#34;&gt;signing up for the marathon&lt;/a&gt; I&amp;rsquo;ve been making sure that I do my running training regularly. I&amp;rsquo;m currently doing at least 4 runs during the week, pushing for 5 (all during lunch times). The route that I run around the city is approximately 6.2km, which is a good distance to cover while still having time either side of the run for prepration and showering up so that I don&amp;rsquo;t offend my coworkers.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Get with the Times - Use a Feed Reader</title>
      <link>/posts/get-with-the-times-use-a-feed-reader/</link>
      <pubDate>Mon, 21 Apr 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/get-with-the-times-use-a-feed-reader/</guid>
      <description>&lt;p&gt;Regular readers of &lt;a href=&#34;http://www.dilbert.com/&#34; title=&#34;Dilbert&#34;&gt;Dilbert&lt;/a&gt; are currently &lt;a href=&#34;http://entertainment.slashdot.org/article.pl?sid=08/04/19/1842208&amp;from=rss&#34; title=&#34;Slashdot | Dilbert Goes Flash, Readers Revolt&#34;&gt;kicking and screaming&lt;/a&gt; about the site&amp;rsquo;s new &lt;a href=&#34;http://www.adobe.com/products/flash/&#34; title=&#34;Adobe Flash&#34;&gt;Flash&lt;/a&gt;-based design. Personally I don&amp;rsquo;t mind it, but at the end of the day it matters not.&lt;/p&gt;

&lt;p&gt;Why?&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>More Punishment</title>
      <link>/posts/more-punishment/</link>
      <pubDate>Wed, 16 Apr 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/more-punishment/</guid>
      <description>&lt;p&gt;After more than 3 years on the bench I&amp;rsquo;ve decided to take the plunge again. Today I signed up for the &lt;a href=&#34;http://www.goldcoastmarathon.com.au/&#34; title=&#34;Gold Coast Airport Marahon&#34;&gt;Gold Coast Airport Marathon&lt;/a&gt;. The event will be held on the 6th July &amp;lsquo;08 &amp;ndash; which from today means I have a total of 80 more days to prepare.&lt;/p&gt;

&lt;p&gt;I&amp;rsquo;ve been back into running training for a few weeks now, and have been really enjoying it. Lunch time runs are really helping since I don&amp;rsquo;t have a great deal of time in the evenings to run.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>8 Hours</title>
      <link>/posts/8-hours/</link>
      <pubDate>Mon, 14 Apr 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/8-hours/</guid>
      <description>A timespan like this probably doesn&amp;rsquo;t mean that much to you.
It does to me.
Thank you, Marley, for such a good night&amp;rsquo;s sleep!</description>
    </item>
    
    <item>
      <title>Microsoft want to Annoy you, Cancel or Allow?</title>
      <link>/posts/microsoft-want-to-annoy-you-cancel-or-allow/</link>
      <pubDate>Sat, 12 Apr 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/microsoft-want-to-annoy-you-cancel-or-allow/</guid>
      <description>&lt;p&gt;Before I even started using Vista, I hated &lt;a href=&#34;http://technet2.microsoft.com/WindowsVista/en/library/0d75f774-8514-4c9e-ac08-4c21f5c6c2d91033.mspx&#34; title=&#34;User Access Control&#34;&gt;UAC&lt;/a&gt;. I read about it all over the place, and laughed at the stupidity involved in asking users to constantly &amp;ldquo;cancel or allow&amp;rdquo; every action they wanted to take. As soon as I was forced to use Vista for work (both on my work laptop and on site with the client) I turned off UAC on both installations.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Because the Cost of Living is Getting so High, High, High</title>
      <link>/posts/because-the-cost-of-living-is-getting-so-high-high-high/</link>
      <pubDate>Sun, 06 Apr 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/because-the-cost-of-living-is-getting-so-high-high-high/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://www.xavierrudd.com/&#34; title=&#34;Xavier Rudd&#34;&gt;Xavier Rudd&lt;/a&gt; has &lt;a href=&#34;http://www.thelyricarchive.com/song/1721539-223666/Famine&#34; title=&#34;Famine&#34;&gt;hit the nail on the head&lt;/a&gt; with that song. It&amp;rsquo;s becoming more and more evident that our cash isn&amp;rsquo;t going as far as it used to.&lt;/p&gt;

&lt;p&gt;It has been very difficult not to notice that the cost of everything we do is just sky-rocketing. Today, after another extremely expensive trip to the shops, it hit me full in the face.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Web Application Development with Merb, MySQL and Tiny</title>
      <link>/posts/web-application-development-with-merb-mysql-and-tiny/</link>
      <pubDate>Sun, 06 Apr 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/web-application-development-with-merb-mysql-and-tiny/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been thinking about building a web application or two for a while, but I haven&amp;rsquo;t yet found the time to invest. I don&amp;rsquo;t think this is going to change very soon either. I&amp;rsquo;m not the kind of person who usually likes to get stuck into something unless I know I&amp;rsquo;ve got a couple of hours up my sleeve so that I feel I can get something done, and this has been preventing me from doing anything because I don&amp;rsquo;t ever feel like I have a couple of hours spare. Having a child means that you could have as little as 5 minutes before all hell breaks loose.&lt;/p&gt;

&lt;p&gt;Instead of whinging about it, I&amp;rsquo;ve decided to go against my usual grain and take those 5 minute chunks as a chance to do something. This is the first step :)&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Another New Keyboard</title>
      <link>/posts/another-new-keyboard/</link>
      <pubDate>Fri, 28 Mar 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/another-new-keyboard/</guid>
      <description>&lt;p&gt;A little while ago I &lt;a href=&#34;/posts/a-hardware-update/&#34; title=&#34;A Hardware Update&#34;&gt;posted&lt;/a&gt; about some new hardware that I bought. In that update I mentioned that I&amp;rsquo;d bought a new keyboard because my old one was a bit shaky and had the old UK layout which was no longer valid since I have now returned to Australia.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Project Euler #6</title>
      <link>/posts/project-euler-#6/</link>
      <pubDate>Fri, 28 Mar 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/project-euler-#6/</guid>
      <description>&lt;p&gt;&lt;strong&gt;WARNING!&lt;/strong&gt; This post contains a spoiler for Problem #6 listed at &lt;a href=&#34;http://projecteuler.net/&#34; title=&#34;Project Euler&#34;&gt;Project Euler&lt;/a&gt;. Do not read the rest of this post if you&amp;rsquo;re planning to attempt to solve the problem yourself.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Project Euler #5</title>
      <link>/posts/project-euler-#5/</link>
      <pubDate>Sun, 23 Mar 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/project-euler-#5/</guid>
      <description>&lt;p&gt;&lt;strong&gt;WARNING!&lt;/strong&gt; This post contains a spoiler for Problem #5 listed at &lt;a href=&#34;http://projecteuler.net/&#34; title=&#34;Project Euler&#34;&gt;Project Euler&lt;/a&gt;. Do not read the rest of this post if you&amp;rsquo;re planning to attempt to solve the problem yourself.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Project Euler #4 - Reprise</title>
      <link>/posts/project-euler-#4-reprise/</link>
      <pubDate>Sat, 22 Mar 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/project-euler-#4-reprise/</guid>
      <description>&lt;p&gt;After publishing the performance stats of my &lt;a href=&#34;/posts/project-euler-4/&#34; title=&#34;Project Euler #4&#34;&gt;previous solution to Project Euler #4&lt;/a&gt;, I got thinking about how I might improve things. I didn&amp;rsquo;t want to be overly anal with regards to things such as memory allocations, because it&amp;rsquo;s easy to get stuck in the perpetual loop of attempted optimisations. Instead I wanted to think of a method that wasn&amp;rsquo;t as brute force as the previous one. If you&amp;rsquo;re interested to see what I did, read on (&lt;strong&gt;Note:&lt;/strong&gt; This is a spoiler for the problem, just like the last post was).&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Project Euler #4</title>
      <link>/posts/project-euler-#4/</link>
      <pubDate>Fri, 21 Mar 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/project-euler-#4/</guid>
      <description>&lt;p&gt;&lt;strong&gt;WARNING!&lt;/strong&gt; This post contains a spoiler for Problem #4 listed at &lt;a href=&#34;http://projecteuler.net/&#34; title=&#34;Project Euler&#34;&gt;Project Euler&lt;/a&gt;. Do not read the rest of this post if you&amp;rsquo;re planning to attempt to solve the problem yourself.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>HRM Revenue &amp;amp; Customs - Idiots!</title>
      <link>/posts/hrm-revenue-amp-customs-idiots/</link>
      <pubDate>Thu, 20 Mar 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/hrm-revenue-amp-customs-idiots/</guid>
      <description>&lt;p&gt;Today I received a nice letter from &lt;a href=&#34;http://www.hrm.gov.uk/&#34;&gt;HRM Revenue &amp;amp; Customs&lt;/a&gt; (yet another site that doesn&amp;rsquo;t work without being prefixed with &amp;ldquo;www&amp;rdquo;). It states:
&lt;blockquote&gt;&lt;p&gt;Notice of determination of penalty for a late Tax Return for the tax year ended 5 April 2007.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I did not receive your Tax Return by the due date so you are liable to a penalty.&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;
Oh how nice! Upon reading further I found out the following information:&lt;blockquote&gt;&lt;p&gt;As a result the penalty imposed on you under Secxtion 93(2) of the Taxes Management Act 1970 is &amp;pound;100.00&lt;/p&gt;&lt;/blockquote&gt;This &amp;ldquo;fine&amp;rdquo; comes to around $217 Australian. Happy Easter eh!?&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Project Euler #3</title>
      <link>/posts/project-euler-#3/</link>
      <pubDate>Wed, 19 Mar 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/project-euler-#3/</guid>
      <description>&lt;p&gt;&lt;strong&gt;WARNING!&lt;/strong&gt; This post contains a spoiler for Problem #3 listed at &lt;a href=&#34;http://projecteuler.net/&#34; title=&#34;Project Euler&#34;&gt;Project Euler&lt;/a&gt;. Do not read the rest of this post if you&amp;rsquo;re planning to attempt to solve the problem yourself.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Project Euler #2</title>
      <link>/posts/project-euler-#2/</link>
      <pubDate>Tue, 18 Mar 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/project-euler-#2/</guid>
      <description>&lt;p&gt;&lt;strong&gt;WARNING!&lt;/strong&gt; This post contains a spoiler for Problem #2 listed at &lt;a href=&#34;http://projecteuler.net/&#34; title=&#34;Project Euler&#34;&gt;Project Euler&lt;/a&gt;. Do not read the rest of this post if you&amp;rsquo;re planning to attempt to solve the problem yourself.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Current Geek Interests</title>
      <link>/posts/current-geek-interests/</link>
      <pubDate>Mon, 17 Mar 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/current-geek-interests/</guid>
      <description>&lt;p&gt;As the weeks roll by I&amp;rsquo;m finding that I have less and less time to chase up anything geek-related. I&amp;rsquo;m sure I&amp;rsquo;m not alone ;) Responsibilities and life take over and that time which you &lt;em&gt;could&lt;/em&gt; invest is now invested in other things, such as &lt;a href=&#34;/posts/my-boy/&#34; title=&#34;My Boy&#34;&gt;children&lt;/a&gt; :)&lt;/p&gt;

&lt;p&gt;I&amp;rsquo;m dedicating this post to all those things that I currently find interesting and would love to invest time in. Some of these things are old, some new. All of them I&amp;rsquo;ve either not touched on at all, or have touched on only briefly (not enough to be satisfied). I thought I&amp;rsquo;d share them with you in case you find them interesting yourself, or perhaps have some insights which you&amp;rsquo;d like to share.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>F# Presentation Tomorrow</title>
      <link>/posts/f#-presentation-tomorrow/</link>
      <pubDate>Mon, 17 Mar 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/f#-presentation-tomorrow/</guid>
      <description>&lt;p&gt;It seems that the Gods have finally smiled upon me. They have answered my request to work with smart people! I am currently fortunate enough to be working with a few Guns who are well-known in the industry. Rather than mention all of them, I&amp;rsquo;m just going to focus on one who for now happens to be in line with my current &amp;ldquo;theme&amp;rdquo; of &lt;a href=&#34;http://en.wikipedia.org/wiki/Functional_programming&#34; title=&#34;Functional programming&#34;&gt;functional programming&lt;/a&gt; posts.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>How to be an Idiot</title>
      <link>/posts/how-to-be-an-idiot/</link>
      <pubDate>Mon, 17 Mar 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/how-to-be-an-idiot/</guid>
      <description>I&amp;rsquo;ve just done something stupid. I attempted to install a new plugin for Wordpress without verifying the contents of the package. The result? I lost most of the file system under this website. From what I can see in the script, it also attempted to various other nasty things such as deleting files from outside the web root, and emailing certain files to other websites. It&amp;rsquo;s a good job I have file permissions set up so that the web server can&amp;rsquo;t access the file system outside of its root.</description>
    </item>
    
    <item>
      <title>Project Euler #1</title>
      <link>/posts/project-euler-#1/</link>
      <pubDate>Mon, 17 Mar 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/project-euler-#1/</guid>
      <description>&lt;p&gt;&lt;strong&gt;WARNING!&lt;/strong&gt; This post contains a spoiler for Problem #1 listed at &lt;a href=&#34;http://projecteuler.net/&#34; title=&#34;Project Euler&#34;&gt;Project Euler&lt;/a&gt;. Do not read the rest of this post if you&amp;rsquo;re planning to attempt to solve the problem yourself.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Rekindling my Functional Programming Passion with Haskell</title>
      <link>/posts/rekindling-my-functional-programming-passion-with-haskell/</link>
      <pubDate>Mon, 17 Mar 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/rekindling-my-functional-programming-passion-with-haskell/</guid>
      <description>&lt;p&gt;Back in the day when I was studying at &lt;a href=&#34;http://www.uts.edu.au/&#34; title=&#34;UTS&#34;&gt;University&lt;/a&gt; I tutored a subject which taught students how to write functional code in &lt;a href=&#34;&#34; title=&#34;&#34;&gt;Miranda&lt;/a&gt;. I loved it! The whole &lt;a href=&#34;http://en.wikipedia.org/wiki/Functional_programming&#34; title=&#34;Functional Programming&#34;&gt;functional programming&lt;/a&gt; thing really did it for me. I was fascinated by it. Despite my interest, I never chased it up after finishing at University.&lt;/p&gt;

&lt;p&gt;I recently stumbled on a random blog post that went into depth on some functional programming topics, and that resparked my interest.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>He&#39;s a Man-Machine!</title>
      <link>/posts/hes-a-man-machine/</link>
      <pubDate>Sat, 01 Mar 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/hes-a-man-machine/</guid>
      <description>I just wanted to publicly announce some serious kudos to a good mate of mine, Matt Tamsett. Matt&amp;rsquo;s a bloke I met while working in the games industry in the UK a couple of years back, who now lives in Brisbane too. He&amp;rsquo;s a bit of a fitness freak, and last year decided to sign up for the Ironman event in New Zealand. For those who don&amp;rsquo;t know, this would have to be the most gruelling Triathlon on the planet (or close to it).</description>
    </item>
    
    <item>
      <title>Do your bit for the Earth</title>
      <link>/posts/do-your-bit-for-the-earth/</link>
      <pubDate>Thu, 14 Feb 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/do-your-bit-for-the-earth/</guid>
      <description>First post in a while, I guess I must have been busy with something ;) More on that later.
I just thought I&amp;rsquo;d do my little bit for the world and spread the word about Earth Hour. Sure it doesn&amp;rsquo;t seem like anything drastic in the grand scheme of things, but every little bit helps. So check it out, sign up and do your bit with me!
Hope you&amp;rsquo;re all doing well.</description>
    </item>
    
    <item>
      <title>My Boy</title>
      <link>/posts/my-boy/</link>
      <pubDate>Thu, 14 Feb 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/my-boy/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;/uploads/2008/02/cimg3655.JPG&#34; title=&#34;Marley Reeves&#34; rel=&#34;lightbox&#34;&gt;&lt;img src=&#34;/uploads/2008/02/cimg3655.JPG&#34; width=&#34;125&#34; alt=&#34;Marley Reeves&#34; style=&#34;float: right; padding-left: 3px; padding-bottom: 3px; border: 0;&#34; /&gt;&lt;/a&gt;I&amp;rsquo;m sure that most of you don&amp;rsquo;t give a hoot about how often I post. But those of you who do, and who have noticed that I haven&amp;rsquo;t posted for a little while may want to know why. The answer is: &lt;strong&gt;I have become a Father!&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>A Hardware Update</title>
      <link>/posts/a-hardware-update/</link>
      <pubDate>Fri, 04 Jan 2008 00:00:00 +0000</pubDate>
      
      <guid>/posts/a-hardware-update/</guid>
      <description>&lt;p&gt;As I mentioned in a previous post, I have been getting tired of the keyboard that I have at home. I&amp;rsquo;ve had it since December 2004, and it&amp;rsquo;s well past its use-by date. I bought it while living in the UK and hence it has the UK keyboard layout. This was fine while I &lt;em&gt;lived&lt;/em&gt; in the UK, but has been a nuisance since being back in Australia. Every other keyboard that I use has the US layout. So every time I come home I end up making mistakes while typing because keys aren&amp;rsquo;t where my head thinks they are! Aside from the layout issue, some keys were starting to get a bit dodgey and were failing to recognise keypresses.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Reactivate? AGAIN!?</title>
      <link>/posts/reactivate-again/</link>
      <pubDate>Thu, 27 Dec 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/reactivate-again/</guid>
      <description>&lt;p&gt;This is just a quick post to say how much Microsoft and their draconian OS licensing mechanism are pissing me off right now.&lt;/p&gt;

&lt;p&gt;Last week my computer stopped booting. I didn&amp;rsquo;t get around to looking at it until a few days ago because I had visitors over from the UK. Not just that, it is Christmas, and the last thing you want to be doing on your Christmas break is to be fixing computers.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>A Google App that Sucks</title>
      <link>/posts/a-google-app-that-sucks/</link>
      <pubDate>Tue, 25 Dec 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/a-google-app-that-sucks/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://labs.google.com/&#34; title=&#34;Google Labs&#34;&gt;Google Labs&lt;/a&gt; has a history of releasing some pretty amazing bits of software. &lt;a href=&#34;http://earth.google.com/&#34; title=&#34;Google Earth&#34;&gt;Google Earth&lt;/a&gt;, &lt;a href=&#34;http://mail.google.com/&#34; title=&#34;Google Mail&#34;&gt;Google Mail&lt;/a&gt;, &lt;a href=&#34;http://reader.google.com/&#34; title=&#34;Google Reader&#34;&gt;Google Reader&lt;/a&gt;, &lt;a href=&#34;http://analytics.google.com/&#34; title=&#34;Google Analytics&#34;&gt;Google Analytics&lt;/a&gt;, &lt;a href=&#34;http://maps.google.com/&#34; title=&#34;Google Maps&#34;&gt;Google Maps&lt;/a&gt; and &lt;a href=&#34;http://docs.google.com/&#34; title=&#34;Google Docs&#34;&gt;Google Docs&lt;/a&gt; are just a few of the graduates! It&amp;rsquo;s an impressive list to say the least. All of those applications do a fantastic job. I&amp;rsquo;m a huge fan of all of them and use them all regularly. So, Google, &lt;a href=&#34;http://en.wikipedia.org/wiki/WTF&#34;&gt;WTF&lt;/a&gt; happened to &lt;a href=&#34;http://talk.google.com/&#34; title=&#34;Google Talk&#34;&gt;Google Talk&lt;/a&gt;?!&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>A Frequently Asked Question</title>
      <link>/posts/a-frequently-asked-question/</link>
      <pubDate>Sun, 23 Dec 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/a-frequently-asked-question/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Are Software Developers artists or engineers?&lt;/strong&gt; This question is asked and answered at least 10 times a month around the bloggosphere. Everyone who is involved with development will have their own view. I have my own, but I haven&amp;rsquo;t really felt the urge to express it until now. If you find this topic boring, feel free to skip the post and remove me from your RSS feed :)&lt;/p&gt;

&lt;p&gt;To kick things off I need to try and encapsulate my view of what software actually is. In my view, software, regardless of what it does, has a single job: &lt;em&gt;to transform data from one form to another&lt;/em&gt;.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Server Downtime</title>
      <link>/posts/server-downtime/</link>
      <pubDate>Mon, 10 Dec 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/server-downtime/</guid>
      <description>I&amp;rsquo;m sure there are millions of adoring fans out there (ha!) that were wondering where the site has been the last few days. Our host, VPSLink had a huge issue with a RAID array being corrupted, and it just so happened that our site was on that node. Such is life!?
The result was a little under two days downtime, and at least a day of extremely poor performance from the site.</description>
    </item>
    
    <item>
      <title>The Magic of Unity Builds</title>
      <link>/posts/the-magic-of-unity-builds/</link>
      <pubDate>Mon, 10 Dec 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/the-magic-of-unity-builds/</guid>
      <description>&lt;p&gt;I realise that as time goes by, people are using my beloved &lt;a href=&#34;http://en.wikipedia.org/wiki/C++&#34; title=&#34;C++&#34;&gt;C++&lt;/a&gt; less and less. &lt;a href=&#34;http://en.wikipedia.org/wiki/.NET_Framework&#34; title=&#34;.NET Framework&#34;&gt;.NET&lt;/a&gt; (&lt;a href=&#34;http://en.wikipedia.org/wiki/C_Sharp&#34; title=&#34;C#&#34;&gt;C#&lt;/a&gt; and &lt;a href=&#34;http://en.wikipedia.org/wiki/Visual_Basic_.NET&#34; title=&#34;VB.NET&#34;&gt;VB.NET&lt;/a&gt;) and &lt;a href=&#34;http://en.wikipedia.org/wiki/Java_%28programming_language%29&#34; title=&#34;Java&#34;&gt;Java&lt;/a&gt; seem to be taking over the mainstream coding world. Languages such as &lt;a href=&#34;http://en.wikipedia.org/wiki/Ruby_%28programming_language%29&#34; title=&#34;Ruby&#34;&gt;Ruby&lt;/a&gt; and &lt;a href=&#34;http://en.wikipedia.org/wiki/Python_%28programming_language%29&#34; title=&#34;Python&#34;&gt;Python&lt;/a&gt; seem to be taking over the scripting world. For the most part, C and C++ seem to exist only in the gaming/entertainment, real-time and driver worlds.&lt;/p&gt;

&lt;p&gt;In many colleges and univerties C++ is no longer taught as a core subject (along with &lt;a href=&#34;http://en.wikipedia.org/wiki/Assembly_language&#34; title=&#34;Assembly Language&#34;&gt;Assembly language&lt;/a&gt;) which I find quite galling. It&amp;rsquo;s a great language to learn, even if you never use it again. But the purpose of this post is not to preach the virtues and failures of the C++ language, but instead to talk about something that might aid those people who &lt;em&gt;are&lt;/em&gt; using C++.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Farewell to an Australian Games Industry Icon</title>
      <link>/posts/farewell-to-an-australian-games-industry-icon/</link>
      <pubDate>Fri, 07 Dec 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/farewell-to-an-australian-games-industry-icon/</guid>
      <description>&lt;p&gt;I received a bit of sad news from &amp;ldquo;He who must not be named&amp;rdquo; this morning. It appears that Aussie game developer &lt;a href=&#34;http://www.auran.com/&#34; title=&#34;Auran&#34;&gt;Auran&lt;/a&gt; are &lt;a href=&#34;http://kotaku.com/gaming/rumor/auran-on-life-support-330643.php&#34; title=&#34;Auran on Life-Support&#34;&gt;struggling to stay afloat&lt;/a&gt;, and will most likely close. This isn&amp;rsquo;t good news for the Aussie contingent of the games industry, and is an indication of how cut-throat the industry can be.&lt;/p&gt;

&lt;p&gt;But let&amp;rsquo;s be honest, while it&amp;rsquo;s sad to hear that they&amp;rsquo;re in strife, it isn&amp;rsquo;t really a &lt;em&gt;surprise&lt;/em&gt;.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Vote with your Wallet</title>
      <link>/posts/vote-with-your-wallet/</link>
      <pubDate>Wed, 05 Dec 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/vote-with-your-wallet/</guid>
      <description>&lt;p&gt;In a &lt;a href=&#34;/posts/living-in-australia-has-a-downside/&#34; title=&#34;Living in Australia has a Downside&#34;&gt;previous post&lt;/a&gt; I had a bit of a combined whinge about MS downloads and bandwidth limits in Australia. Today I read a &lt;a href=&#34;http://www.smh.com.au/news/technology/phone-and-broadband-bills-to-rise/posts/1196530678984.html&#34; title=&#34;Phone and broadband bills to rise&#34;&gt;new article at SMH&lt;/a&gt; that made me even more angry.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>The End of an Era</title>
      <link>/posts/the-end-of-an-era/</link>
      <pubDate>Tue, 04 Dec 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/the-end-of-an-era/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;/uploads/2007/12/newgemmell.jpg&#34; title=&#34;David Gemmell - 1948 to 2006&#34; rel=&#34;lightbox&#34;&gt;&lt;img src=&#34;/uploads/2007/12/newgemmell.jpg&#34; alt=&#34;David Gemmell - 1948 to 2006&#34; class=&#34;InlineImageRight&#34; width=&#34;150&#34; /&gt;&lt;/a&gt;Whenever people ask me who my favourite author is, I always reply with the same answer. He&amp;rsquo;s a fairly well-known guy, particularly in the heroic fantasty and sci-fi circles. His name is &lt;a href=&#34;http://en.wikipedia.org/wiki/David_Gemmell&#34; title=&#34;David Gemmell&#34;&gt;David Gemmell&lt;/a&gt;, and this post is a mini dedication to him and his career.&lt;/p&gt;

&lt;p&gt;I first discovered the joys of David&amp;rsquo;s writing when a dear friend of mine, Simon C, allowed me to borrow one of his books. It was called &lt;a href=&#34;http://www.amazon.com/Legend-David-Gemmell/dp/0345913779/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1196748787&amp;sr=1-1&#34; title=&#34;Legend&#34;&gt;Legend&lt;/a&gt;, and it was a fascinating and enthralling story. If I remember correctly, it took me but a couple of days of after school reading to get throug it. It was easy reading. The kind of book that you just don&amp;rsquo;t &lt;em&gt;want&lt;/em&gt; to put down.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>A Great Day for Me, a Sad Day for my Country</title>
      <link>/posts/a-great-day-for-me-a-sad-day-for-my-country/</link>
      <pubDate>Sat, 24 Nov 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/a-great-day-for-me-a-sad-day-for-my-country/</guid>
      <description>Let&amp;rsquo;s start with the good news. Today is my first ever wedding anniversary! This last year seems to have flown by. In many ways it feels like I got married a few weeks ago, and yet in other ways it feels like so much has happened.
It really has been an amazing year. I&amp;rsquo;m an extremely lucky man and honestly couldn&amp;rsquo;t be happier. I won&amp;rsquo;t get too sooky, but I just wanted to say that my wife makes my life complete.</description>
    </item>
    
    <item>
      <title>Living in Australia has a Downside</title>
      <link>/posts/living-in-australia-has-a-downside/</link>
      <pubDate>Wed, 21 Nov 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/living-in-australia-has-a-downside/</guid>
      <description>&lt;p&gt;This may come as a surprise, but living in Australia &lt;em&gt;can&lt;/em&gt; have it downsides :) Right now I can only think of one, and that&amp;rsquo;s (part of) the reason for this post.&lt;/p&gt;

&lt;p&gt;We may have constant sunshine, lovely beaches and a lifestyle to die for, but our broadband just &lt;strong&gt;sucks&lt;/strong&gt;. That&amp;rsquo;s a fairly sweeping statement, so let me clarify a little more.&lt;/p&gt;

&lt;p&gt;Broadband plans in this country are &lt;em&gt;extremely&lt;/em&gt; poor value. The service that you receive for the amount you pay is substandard. It&amp;rsquo;s that simple. Those of you in places like the UK, USA and Hong Kong may find it obscure to consider that a country exists where you can&amp;rsquo;t get an unlimited data connection for DSL. You may also find it difficult to believe that some connection speeds are cut to that of a dial-up connection if you download too much. But that&amp;rsquo;s exactly what happens here.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>My Artistic Outlet</title>
      <link>/posts/my-artistic-outlet/</link>
      <pubDate>Thu, 01 Nov 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/my-artistic-outlet/</guid>
      <description>&lt;p&gt;Most people who trundle through life, battling against the elements and working hard to achieve at work or in the home find that they need an escape. I&amp;rsquo;m not talking about just a holiday to the &lt;a href=&#34;http://www.whitsundaytourism.com/&#34; title=&#34;Whitsundays&#34;&gt;Whitsundays&lt;/a&gt; or a month off to go hiking in the Himalayas. I&amp;rsquo;m talking about something more regular. Something that perhaps you can do on a daily basis to help you feel more relaxed.&lt;/p&gt;

&lt;p&gt;I have a few. I like to do distance running. At the moment my training regime is almost non-existant because of the stuff that&amp;rsquo;s going on, but that&amp;rsquo;s something I&amp;rsquo;m going to remedy shortly. I&amp;rsquo;m going to go for runs during lunchtimes again now that I&amp;rsquo;m somewhere which has a clean shower! I find that a good long run can really make me feel good. Nothing like a bit of cardio excercise followed by a hit of &lt;a href=&#34;http://en.wikipedia.org/wiki/Endorphin&#34; title=&#34;Endorphin&#34;&gt;endorphins&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Rancid Bloatware</title>
      <link>/posts/rancid-bloatware/</link>
      <pubDate>Thu, 01 Nov 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/rancid-bloatware/</guid>
      <description>&lt;p&gt;I&amp;rsquo;d love to know what on earth got into &lt;a href=&#34;http://www.adobe.com/&#34; title=&#34;Adobe&#34;&gt;Adobe&amp;rsquo;s&lt;/a&gt; head when they decided to turn their &lt;a href=&#34;http://www.adobe.com/products/reader/&#34; title=&#34;Adobe Reader&#34;&gt;PDF reader&lt;/a&gt; into a stinking pile of sluggish bloatware? Who here remembers the old days when the Adobe Reader download was less than 10MB?&lt;/p&gt;

&lt;p&gt;Take a look at the details on their current &lt;a href=&#34;http://www.adobe.com/products/acrobat/readstep2.html&#34; title=&#34;Reader Download&#34;&gt;download page&lt;/a&gt; (which I was recently forced to visit because of a &lt;a href=&#34;http://www.theregister.co.uk/posts/new_gozi_strain/print.html&#34; title=&#34;New Strain of Gozi Trojan Prowls the Net&#34;&gt;security flaw&lt;/a&gt; in the Reader&amp;rsquo;s functionality that has now been patched):&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Requisite Vista</title>
      <link>/posts/requisite-vista/</link>
      <pubDate>Mon, 29 Oct 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/requisite-vista/</guid>
      <description>&lt;p&gt;When I started my new gig on the 15th of this month, I was handed a &lt;a href=&#34;http://www.toshibadirect.com/td/b2c/cmod.to?coid=-33778&#34; title=&#34;Toshiba Tecra M9&#34;&gt;new laptop&lt;/a&gt; to do all my work on. It&amp;rsquo;s a nifty little gadget with 3GB RAM! Very schmick. There was one catch..&lt;/p&gt;

&lt;p&gt;&amp;hellip; see, the company is migrating to &lt;a href=&#34;http://www.microsoft.com/windows/products/windowsvista/default.mspx&#34; title=&#34;Windows Vista&#34;&gt;Vista&lt;/a&gt;, which means I have to use it too. A while ago I &lt;a href=&#34;/posts/should-i-install-vista/&#34; title=&#34;Should I install Vista?&#34;&gt;posted my thoughts with regards to installing Vista&lt;/a&gt;, so as you can imagine it&amp;rsquo;s a little bit strange having to use it.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>A Little Mixed Bag</title>
      <link>/posts/a-little-mixed-bag/</link>
      <pubDate>Sun, 28 Oct 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/a-little-mixed-bag/</guid>
      <description>&lt;p&gt;Since the last time I posted a couple of things have happened that are worth mentioning.&lt;/p&gt;

&lt;p&gt;First of all, my dear mate &lt;a href=&#34;http://www.shiftperception.com/&#34; title=&#34;Shiftperception&#34;&gt;Dan&lt;/a&gt; and his lovely girl, Ailin, &lt;a href=&#34;http://www.shiftperception.com/blog/posts/were-married/&#34; title=&#34;We&#39;re Married!&#34;&gt;got married on the 6th October&lt;/a&gt;. It was a fantastic day and I was honoured to be part of it!&lt;/p&gt;

&lt;p&gt;Second, I started a new job. A little while ago I received an offer that was too good to miss, and I decided to make the jump. It wasn&amp;rsquo;t an easy decision (it never is), but I do think it&amp;rsquo;s the right one. As usual, I&amp;rsquo;m not going to mention where I am, nor where I came from. But I can at least pass on a few details.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Don&#39;t Talk About Politics</title>
      <link>/posts/dont-talk-about-politics/</link>
      <pubDate>Sun, 21 Oct 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/dont-talk-about-politics/</guid>
      <description>I&amp;rsquo;m about to break a cardinal rule. I&amp;rsquo;m going to talk about politics (but only briefly). If you&amp;rsquo;re not Australian, or don&amp;rsquo;t have an interest in Australian politics, I&amp;rsquo;d suggest you give this post a miss :)
Right now I&amp;rsquo;m sitting in front of the T.V. watching the Leaders Debate, and I have to say that I&amp;rsquo;m appalled at some of the utter dribble that is coming out of Kevin Rudd&amp;rsquo;s mouth.</description>
    </item>
    
    <item>
      <title>I am not OJ Simpson</title>
      <link>/posts/i-am-not-oj-simpson/</link>
      <pubDate>Fri, 21 Sep 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/i-am-not-oj-simpson/</guid>
      <description>In recent weeks I&amp;rsquo;ve seen interesting patterns of traffic to the site. I have been trying to figure out exactly what leads people here, but it has been a hard thing to put a finger on (despite the amazing functionality of Google Analytics). I had a sneaking suspicion for a while that I&amp;rsquo;ve been getting hits from those people who are looking for information on OJ Simpson. Two days ago that was confirmed.</description>
    </item>
    
    <item>
      <title>WTF: Random Memory Contents</title>
      <link>/posts/wtf-random-memory-contents/</link>
      <pubDate>Mon, 03 Sep 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/wtf-random-memory-contents/</guid>
      <description>If any of you out there are able to give me ONE GOOD REASON why anyone would do something like this, then please let me know. Below are &amp;ldquo;customised&amp;rdquo; realloc() and malloc() I recently stumbled across (yes, they get called. A LOT):
void *mcRealloc( void *P, int SIZE ) { int oldSize = _msize( P ); P = realloc( P, SIZE ); if ( P ) { for ( int i = oldSize; i &amp;lt; SIZE; i++ ) { ((char *) P)[i] = (char) rand(); } } return P; } void *mcMalloc( int SIZE ) { void *P; P = malloc( SIZE ); if ( P ) { for ( int i = 0; i &amp;lt; SIZE; i++ ) { ((char *) P)[i] = (char) rand(); } } return P; }  Is it just me, or is this a huge WTF?</description>
    </item>
    
    <item>
      <title>Biosham &amp;#8482;</title>
      <link>/posts/biosham-#8482/</link>
      <pubDate>Thu, 23 Aug 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/biosham-#8482/</guid>
      <description>&lt;p&gt;I can fully understand the desire a developer has to protect their creation from being copied illegally. I can understand why some steps would be taken to mitigate the risk of losing money due to piracy. What I can&amp;rsquo;t understand is why some companies go &lt;em&gt;so far&lt;/em&gt; with their anti-piracy measures that it starts to have an impact on the honourable, paying customers.&lt;/p&gt;

&lt;p&gt;I have &lt;a href=&#34;/posts/microsoft-vista-licence-restrictions/&#34; title=&#34;Microsoft Vista License Restrictions&#34;&gt;bitched&lt;/a&gt; in the &lt;a href=&#34;/posts/office-registration-and-activation/&#34; title=&#34;Office Registratoin and Activation&#34;&gt;past&lt;/a&gt; about how activation is a pain in the neck. But that example is nothing like what &lt;a href=&#34;http://www.2kgames.com/&#34; title=&#34;2K Games&#34;&gt;2K Games&lt;/a&gt; have recently inflicted on the buyers of their latest creation, &lt;a href=&#34;http://www.2kgames.com/bioshock/&#34; title=&#34;Bioshock&#34;&gt;Bioshock&lt;/a&gt;. Rather than throw a few links to a bzillion blog and forum posts that have covered it already, let me just give you the short version:
&lt;ol&gt;&lt;li&gt;Bioshock comes with &lt;a href=&#34;http://www.securom.com/&#34; title=&#34;SecuROM&#34;&gt;SecuROM&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;It requires online activation before it can be played.&lt;/li&gt;&lt;li&gt;It can only be activated &lt;strong&gt;twice&lt;/strong&gt;.&lt;/li&gt;&lt;/ol&gt;On the surface this might not sound so bad, but when you think about it a little deeper it becomes obvious why this is such a pain in the arse.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>I&#39;ll View What I Like!</title>
      <link>/posts/ill-view-what-i-like/</link>
      <pubDate>Sat, 18 Aug 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/ill-view-what-i-like/</guid>
      <description>&lt;p&gt;I have a few questions for you:
&lt;ol&gt;&lt;li&gt;How would you feel if TV channels changed automatically because you weren&amp;rsquo;t paying attention to the ads?&lt;/li&gt;&lt;li&gt;Would you like it if your newspaper closed by itself because you were reading the articles but skipping over the classifieds?&lt;/li&gt;&lt;li&gt;How happy would you be if you were kicked out of a cinema for not watching the latest and greatest in &lt;a href=&#34;http://www.valmorgan.com.au/&#34; title=&#34;Val Morgan&#34;&gt;Val Morgan Cinema Advertising&lt;/a&gt;?&lt;/li&gt;&lt;li&gt;Would you be happy if you weren&amp;rsquo;t allowed to walk into a shop unless you HAD to buy something?&lt;/li&gt;&lt;/ol&gt;
If you&amp;rsquo;re anything like me, you&amp;rsquo;d be pretty pissed off about it. The scary thing is that this kind of thing is already happening on the web.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Safer Code through Object-Orientation</title>
      <link>/posts/safer-code-through-object-orientation/</link>
      <pubDate>Thu, 09 Aug 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/safer-code-through-object-orientation/</guid>
      <description>&lt;p&gt;In my current position I spend a lot of time battling against a fairly poorly-written C++ code base. The code, while &lt;em&gt;technically&lt;/em&gt; written in C++, is actually more of a C-like &amp;ldquo;splat&amp;rdquo; with a few classes thrown in. Since I began working on this project I&amp;rsquo;ve seen many cases where proper &lt;a href=&#34;http://en.wikipedia.org/wiki/Object-oriented_programming&#34; title=&#34;Object-oriented programming&#34;&gt;object-orientation&lt;/a&gt; would have made a drastic improvement to the quality of the code.&lt;/p&gt;

&lt;p&gt;And it&amp;rsquo;s these cases which are the inspiration for this blog post.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Misled from the Start</title>
      <link>/posts/misled-from-the-start/</link>
      <pubDate>Fri, 03 Aug 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/misled-from-the-start/</guid>
      <description>&lt;p&gt;I find myself frequently concerned with the lack of ability of a lot of people in our industry. Today I found an example of at least one of the possible reasons why software development professionals turn out to be crap.&lt;/p&gt;

&lt;p&gt;They start by reading &lt;a href=&#34;http://mezzoscorner.blogspot.com/2007/07/basics-your-first-program.html&#34; title=&#34;The Basics - Your first program&#34;&gt;tutorials like this&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;How can we expect people to become good at what they do if the tutorials they&amp;rsquo;re learning from are like that? If you learn the bad stuff from the outset then you&amp;rsquo;re destined to be writing bad code for many years to come.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Avoid Writing Unintuitive Code</title>
      <link>/posts/avoid-writing-unintuitive-code/</link>
      <pubDate>Fri, 20 Jul 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/avoid-writing-unintuitive-code/</guid>
      <description>&lt;p&gt;This blog post was inspired by a brief chat I had recently with Kirupa of &lt;a href=&#34;http://www.kirupa.com/&#34; title=&#34;Kirupa&#34;&gt;kirupa.com&lt;/a&gt;. I subscribe to his &lt;a href=&#34;http://blog.kirupa.com/&#34; title&#34;Kirupa Blog&#34;&gt;blog&amp;rsquo;s&lt;/a&gt; &lt;a href=&#34;http://blog.kirupa.com/?feed=rss2&#34; title=&#34;Kirupa Blog RSS&#34;&gt;RSS feed&lt;/a&gt; as he comes out with some really good stuff. His &lt;a href=&#34;http://blog.kirupa.com/?p=111&#34; title=&#34;Randomizing Elements in a List (C#)&#34;&gt;recent post&lt;/a&gt; which showed a way of shuffling a List of strings (using C#) inspired a bit of thought on the topic of code readability, how and when it&amp;rsquo;s learned (if at all) and why there is so little of it around.&lt;/p&gt;

&lt;p&gt;Code quality and readability is something that isn&amp;rsquo;t necessarily learned at University, nor is it something that can be mastered in a short period of time. It &lt;em&gt;is&lt;/em&gt; something that &lt;strong&gt;anyone&lt;/strong&gt; can learn. The main ingredients that are required are a bit of self-scrutiny, and the removal of the assumption that working code is the same as finished code.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>And Help You I Shall!</title>
      <link>/posts/and-help-you-i-shall/</link>
      <pubDate>Wed, 18 Jul 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/and-help-you-i-shall/</guid>
      <description>&lt;p&gt;My &lt;a href=&#34;/posts/help-me-help-you/&#34; title=&#34;Help me help you!&#34;&gt;previous post&lt;/a&gt; on constructing meaningful questions was inspired by years of frustrating experiences on forums and bulletin boards, but it wasn&amp;rsquo;t until I had a chat with me ol&amp;rsquo; mucka &lt;a href=&#34;http://www.shiftperception.com/blog/&#34; title=&#34;Shifty Blog&#34;&gt;Dan&lt;/a&gt; that I realised that there are actually quite a few cases where good quality questions are given inappropriate or completely misleading answers.&lt;/p&gt;

&lt;p&gt;The intent of this post is to cover that side of the argument. How do you give a meaningful answer to a well constructed question?&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Creating Concrete Objects</title>
      <link>/posts/creating-concrete-objects/</link>
      <pubDate>Sat, 14 Jul 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/creating-concrete-objects/</guid>
      <description>&lt;p&gt;Being a fan of &lt;a href=&#34;http://en.wikipedia.org/wiki/Object-oriented_programming&#34; title=&#34;Object-oriented Programming&#34;&gt;OOP&lt;/a&gt;, I tend to write a lot of object-oriented code. Coming up with a meaningful object model that behaves in an appropriate way is just as important as having a meaningful interface to your objects. A concrete object is an object that actually behaves in the manner you&amp;rsquo;d expect without any wierd side-effects, and has the same kind of attributes that you&amp;rsquo;d expect of a primitive data type.&lt;/p&gt;

&lt;p&gt;Creating concrete data objects/classes is a good thing to do, as it reduces the probability of bugs, and crazy side-effects. It&amp;rsquo;s also an important first step in writing intuitive code - which will be the topic of a later blog post.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Help Me Help You!</title>
      <link>/posts/help-me-help-you/</link>
      <pubDate>Sat, 14 Jul 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/help-me-help-you/</guid>
      <description>&lt;blockquote&gt;</description>
    </item>
    
    <item>
      <title>Becoming a Geek Part 3: The Game Geek</title>
      <link>/posts/becoming-a-geek-part-3-the-game-geek/</link>
      <pubDate>Fri, 13 Jul 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/becoming-a-geek-part-3-the-game-geek/</guid>
      <description>&lt;p&gt;Welcome to the next in the Becoming a Geek series. Today I&amp;rsquo;m going to cover the areas which I think a budding Game Geek needs to be adept in for him/her to be a true Game Geek. I&amp;rsquo;d like to make a clear distinction from the start that the Game Geek is a different beast to a Game &lt;em&gt;Development&lt;/em&gt; Geek, and hence I won&amp;rsquo;t be covering the development side in this post. I will, however, be covering the game development details in a later post in this series on the Development Geek.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Extended-Precision Floating-Point Values in the CLR</title>
      <link>/posts/extended-precision-floating-point-values-in-the-clr/</link>
      <pubDate>Wed, 27 Jun 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/extended-precision-floating-point-values-in-the-clr/</guid>
      <description>&lt;p&gt;While at work today I hit a problem that I&amp;rsquo;ve never hit before (which is quite rare these days :) ), and while it was frustrating it was also good to learn about something that I never knew was a problem. If you&amp;rsquo;re having some issues marshalling double-precision floating-point information through managed components to unmanaged components, or you&amp;rsquo;re just interested in learning something new, then read on :)&lt;/p&gt;

&lt;p&gt;Let me start by explaining the scenario:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Content Duplication</title>
      <link>/posts/content-duplication/</link>
      <pubDate>Tue, 26 Jun 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/content-duplication/</guid>
      <description>&lt;p&gt;While browsing an unusually large collection of RSS articles this morning I stumbled across &lt;a href=&#34;http://www.howtogeek.com/howto/microsoft-office/keyboard-ninja-insert-tables-in-word-2007/&#34; title=&#34;Keyboard Ninja: Insert Tables in Word 2007 :: the How-To Geek&#34;&gt;this little doozy&lt;/a&gt; from the &lt;a href=&#34;http://www.howtogeek.com/&#34; title=&#34;HowToGeek&#34;&gt;HowToGeek&lt;/a&gt;. Being a fan of keyboard shortcuts universally I immediately thought it was cool and tried it out in my copy of Office &amp;lsquo;07. It worked. Sweet!&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Online Order Tracking</title>
      <link>/posts/online-order-tracking/</link>
      <pubDate>Tue, 26 Jun 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/online-order-tracking/</guid>
      <description>This is me while I&amp;rsquo;m waiting for my Buffalo Terastation!</description>
    </item>
    
    <item>
      <title>Only in the Movies... and at Home.</title>
      <link>/posts/only-in-the-movies...-and-at-home./</link>
      <pubDate>Tue, 26 Jun 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/only-in-the-movies...-and-at-home./</guid>
      <description>It&amp;rsquo;s an age-old story: boy rings babysitter, boy harasses babysitter over the phone while slowly torturing babysitter&amp;rsquo;s boyfriend and telly babysitter that she&amp;rsquo;s next.
You see this thing in the movies all the time, to the point where it&amp;rsquo;s considered cliched. When the idea of it first came out, it was really quite freaky. Now that it&amp;rsquo;s been done to death, when I see it in a movie I automagically react by turning the movie off.</description>
    </item>
    
    <item>
      <title>Read the Rest of this Article</title>
      <link>/posts/read-the-rest-of-this-article/</link>
      <pubDate>Sat, 23 Jun 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/read-the-rest-of-this-article/</guid>
      <description>Some of you noticed that I&amp;rsquo;d &amp;ldquo;messed&amp;rdquo; up the RSS feed for the site yesterday afternoon while mucking around with settings. In fact, I hadn&amp;rsquo;t messed things up at all. I&amp;rsquo;m currently torn between giving full content over RSS and wanting to get exact stats on how many people are reading the things that I write.
If I provide the full article through RSS, then the site doesn&amp;rsquo;t get hit and I don&amp;rsquo;t know if the article is being read.</description>
    </item>
    
    <item>
      <title>Becoming a Geek Part 2: The Web Geek</title>
      <link>/posts/becoming-a-geek-part-2-the-web-geek/</link>
      <pubDate>Fri, 22 Jun 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/becoming-a-geek-part-2-the-web-geek/</guid>
      <description>&lt;p&gt;Welcome to part 2 of my Becoming a Geek series. If you haven&amp;rsquo;t already read part 1, I suggest you read it first. Before you can be a web geek, you&amp;rsquo;ll need to be a &lt;a href=&#34;/posts/becoming-a-geek-part-1-the-general-geek/&#34; title=&#34;Becoming a Geek Part 1: The General Geek&#34;&gt;General Geek&lt;/a&gt;. If you&amp;rsquo;re already on the way to becoming a General Geek, here are a stack of hints to help you become a Web Geek.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Becoming a Geek Part 1: The General Geek</title>
      <link>/posts/becoming-a-geek-part-1-the-general-geek/</link>
      <pubDate>Thu, 14 Jun 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/becoming-a-geek-part-1-the-general-geek/</guid>
      <description>&lt;p&gt;Contrary to popular belief, there are many types of geek. In this series, I&amp;rsquo;m going to give some basic tips on how to become one!  This is the first part in the series, and so I&amp;rsquo;m covering the &amp;lsquo;General Geek&amp;rsquo;.&lt;/p&gt;

&lt;p&gt;Before I even went to university to get qualifications to become an official &amp;ldquo;paid&amp;rdquo; geek, I put a great deal of time and effort into tuning my skills in other areas that would help me excel at my job. Below is a list of things that I did which I believe really helped me achieve my goal, and I would recommend doing the same if you&amp;rsquo;re looking to become a paid geek yourself!&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>The Swear Jar</title>
      <link>/posts/the-swear-jar/</link>
      <pubDate>Thu, 14 Jun 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/the-swear-jar/</guid>
      <description>I know this is doing the rounds at the moment, but I had to post in case you&amp;rsquo;ve not seen it. It&amp;rsquo;s classic!  Click here to go to the YouTube site.</description>
    </item>
    
    <item>
      <title>Microsoft Take Auto-Update Annoyances Another Step Further</title>
      <link>/posts/microsoft-take-auto-update-annoyances-another-step-further/</link>
      <pubDate>Thu, 31 May 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/microsoft-take-auto-update-annoyances-another-step-further/</guid>
      <description>&lt;p&gt;Microsoft&amp;rsquo;s Automatic Update feature has always been annoying. I don&amp;rsquo;t care who you are, none of you can possibly say that it&amp;rsquo;s not annoying :) I thought that it wasn&amp;rsquo;t possible for it to become any &lt;em&gt;more&lt;/em&gt; annoying than it already is, but today I was proved wrong.&lt;/p&gt;

&lt;p&gt;My main gripe was that almost regardless of the update, the machine needs to be rebooted. You&amp;rsquo;ve updated my desktop picture? &lt;em&gt;Reboot required&lt;/em&gt;. My IE install has had another check box added to the options? &lt;em&gt;Reboot required&lt;/em&gt;. Notepad&amp;rsquo;s default font has changed? &lt;em&gt;Reboot required&lt;/em&gt;.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>The Search is Over</title>
      <link>/posts/the-search-is-over/</link>
      <pubDate>Mon, 28 May 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/the-search-is-over/</guid>
      <description>I now have an answer to the question that I implied in my previous post (ie. is the search over?)! The answer is: Yes! The search is over!
I&amp;rsquo;m not going to go into all the gory and graphic details (this is, after all, a publicly viewable blog), but I can say that after a single round of negotiation with the owner of the said block of land, we&amp;rsquo;ve settled on a price and we&amp;rsquo;re in the throws of getting it sorted out.</description>
    </item>
    
    <item>
      <title>The Search Might be Over</title>
      <link>/posts/the-search-might-be-over/</link>
      <pubDate>Fri, 25 May 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/the-search-might-be-over/</guid>
      <description>Today we may well have come to the end of our search. Tomorrow morning, at 8am, we meet the Real Estate agent and if things go to plan, we may well be making an offer on a block of land! How exciting. Check out the pic to see what we&amp;rsquo;re contemplating ;) It&amp;rsquo;s just over an acre, and looks to be exactly what we&amp;rsquo;ve been searching for.
I&amp;rsquo;ll post again tomorrow and let you know how it goes!</description>
    </item>
    
    <item>
      <title>Lacking Focus? Give DarkRoom a Spin!</title>
      <link>/posts/lacking-focus-give-darkroom-a-spin/</link>
      <pubDate>Wed, 23 May 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/lacking-focus-give-darkroom-a-spin/</guid>
      <description>&lt;p&gt;My eternal quest for maximising productivity has recently lead me in the direction of an interesting new application called &lt;a href=&#34;http://they.misled.us/dark-room&#34; title=&#34;DarkRoom&#34;&gt;DarkRoom&lt;/a&gt;. Some of you may have heard of this before, and will consider it &amp;lsquo;old news&amp;rsquo;, but I&amp;rsquo;m sure there are some readers out there who wouldn&amp;rsquo;t have heard of it and I feel it&amp;rsquo;s worth pointing out.&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;/uploads/2007/05/darkroom.png&#34; title=&#34;DarkRoom&#34; rel=&#34;lightbox&#34;&gt;&lt;img src=&#34;/uploads/2007/05/darkroom_thumb.png&#34; alt=&#34;DarkRoom&#34; class=&#34;InlineImageRight&#34; /&gt;&lt;/a&gt;In short, DarkRoom is designed to do one thing; and that&amp;rsquo;s &lt;strong&gt;minimise distractions&lt;/strong&gt;. It&amp;rsquo;s a simple text-editor which takes up your entire screen, covering everything incuding the toolbar and system tray, and leaves you with nothing but a blinking cursor. When you first fire it up you&amp;rsquo;ll find that it closely resembles Keanu Reeves&amp;rsquo; computer screen at the start of &lt;a href=&#34;http://whatisthematrix.warnerbros.com/&#34; title=&#34;The Matrix&#34;&gt;The Matrix&lt;/a&gt;, and you might find yourself waiting for the message: &lt;em&gt;Wake up Neo.&lt;/em&gt; When you see the colour-scheme you&amp;rsquo;ll know exactly what I mean (check out the screenshot).&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Facebook Privacy</title>
      <link>/posts/facebook-privacy/</link>
      <pubDate>Thu, 17 May 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/facebook-privacy/</guid>
      <description>A good friend of mine by the name of  passed on this little nugget of information through his Facebook profile. It reads:Apparently Facebook has started letting other websites access user information (surprise, surprise!) to third parties. They call it the &amp;ldquo;Facebook Development Platform.&amp;rdquo; To restrict use of your information, do the following:
Click &amp;ldquo;Privacy&amp;rdquo; on top right.Under the &amp;ldquo;Facebook Platform&amp;rdquo; section click &amp;ldquo;Edit Settings&amp;rdquo;.Scroll down and UNCHECK ALL of the items under Facebook Platform.</description>
    </item>
    
    <item>
      <title>Banner Image</title>
      <link>/posts/banner-image/</link>
      <pubDate>Sun, 13 May 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/banner-image/</guid>
      <description>Yup, it&amp;rsquo;s absolutely, positively disgusting :) And yes, it highlights my artistic abilities. Well, actually, it highlights my lack of motivation to actually come up with something coo so I instead hacked out the existing text and threw in something else. I know it&amp;rsquo;s horrid :) I&amp;rsquo;m waiting patiently for me main man Dan to come up with something groovey that I can use instead - so this will have to do in the mean time.</description>
    </item>
    
    <item>
      <title>Brisbane Real Estate</title>
      <link>/posts/brisbane-real-estate/</link>
      <pubDate>Sun, 13 May 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/brisbane-real-estate/</guid>
      <description>&lt;p&gt;Since we&amp;rsquo;ve been home from the U.K., Amy and I have been keeping tabs on the property market in the hope of finding a place that we&amp;rsquo;d be keen to buy. We&amp;rsquo;ve been renting ever since we&amp;rsquo;ve known each other, and I started renting over 10 years ago. This probably won&amp;rsquo;t come as a surprise, but I&amp;rsquo;m bloody sick of renting!&lt;/p&gt;

&lt;p&gt;Apart from the fact that I&amp;rsquo;m lining the pockets of my landlord, I don&amp;rsquo;t like the idea that the money we&amp;rsquo;re putting into our living arrangements is just dead. We won&amp;rsquo;t ever see it again. So, it&amp;rsquo;s now well past the time that we found our own place.&lt;/p&gt;

&lt;p&gt;One would have thought that finding a house to buy would be a &lt;em&gt;relatively&lt;/em&gt; easy thing to do, but given the state of the property market here in Brisbane, it&amp;rsquo;s proven to be a very tough thing to do. The market here has been so buoyant for the last few years that prices have gone through the roof. There are currently 1200 (approx) people moving to South-East Queensland every &lt;strong&gt;week&lt;/strong&gt;, and hence there is a dire need for housing.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Learning to Program is not what it used to be</title>
      <link>/posts/learning-to-program-is-not-what-it-used-to-be/</link>
      <pubDate>Wed, 09 May 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/learning-to-program-is-not-what-it-used-to-be/</guid>
      <description>One of the most common questions asked by would-be coders is &amp;ldquo;which language should I learn first?&amp;rdquo;. The answer isn&amp;rsquo;t really straight forward. I think it varies depending on age, aptitude, how well you know computers, your passion and what you want to do with what you learn.
On hearing this question recently, I decided to avoid my usual response and actually put a bit of thought into how I learned to code, to see if the method is still feasible, then resopnd accordingly.</description>
    </item>
    
    <item>
      <title>Moving to Google Apps</title>
      <link>/posts/moving-to-google-apps/</link>
      <pubDate>Sun, 06 May 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/moving-to-google-apps/</guid>
      <description>As you all know, I recently moved the Blackapache site to a new server. We had some teething issues, as ya do when making the move, but all is now well. One of the things that I hadn&amp;rsquo;t got round to fixing was my SpamAssassin installation.
I&amp;rsquo;d already gone through the fun times of setting up email (POP3s, IMAP4s) with Qmail, which after a bit of time (and a learning curve) was working fine (with SSL, hence the &amp;rsquo;s&amp;rsquo; at the end of the names ;) ) and all my users were able to send/receive without an issues.</description>
    </item>
    
    <item>
      <title>Digg is Being Used Against Itself</title>
      <link>/posts/digg-is-being-used-against-itself/</link>
      <pubDate>Wed, 02 May 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/digg-is-being-used-against-itself/</guid>
      <description>Over the last day or so, stacks of people have been hammering digg as a revolt against their recent actions. For those of you who don&amp;rsquo;t know, HD-DVD encryption was cracked recently and the master key which allows all movies to be ripped has been released across the web. Digg, in their infinite wisdom, decided to kill off the original blog post (and apparently banned one or two users? - unconfirmed), resulting in an avalanche of posts preaching &amp;ldquo;free speach&amp;rdquo; and &amp;ldquo;fuck you Digg&amp;rdquo;.</description>
    </item>
    
    <item>
      <title>The Art of Googling</title>
      <link>/posts/the-art-of-googling/</link>
      <pubDate>Sat, 28 Apr 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/the-art-of-googling/</guid>
      <description>Everyone who uses the web knows how to use Google to find stuff. Well, at least they think they do. Googling is pretty easy, but it&amp;rsquo;s also a bit of an art form. Some people just seem to have the &amp;lsquo;knack&amp;rsquo; of finding things quickly, others take a fair bit of time.
So what makes a good Google search? How do you arrange your search string in such a way to allow the best hits to come up first?</description>
    </item>
    
    <item>
      <title>Noisy Neighbours</title>
      <link>/posts/noisy-neighbours/</link>
      <pubDate>Fri, 27 Apr 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/noisy-neighbours/</guid>
      <description>I&amp;rsquo;ve been renting for over 10 years now, and in my time I&amp;rsquo;ve experienced quite a few different types of neighbours. Some of them were really friendly - they&amp;rsquo;d invite themselves in for a cup of tea, hang about for a while to have a yarn before heading back to their own place. Some wouldn&amp;rsquo;t speak a word and would make an obvious effort to stay away from me (arguably a wise choice :) ).</description>
    </item>
    
    <item>
      <title>What Constitutes a &#39;Tutorial&#39;?</title>
      <link>/posts/what-constitutes-a-tutorial/</link>
      <pubDate>Sat, 14 Apr 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/what-constitutes-a-tutorial/</guid>
      <description>I read lots articles, tutorials and whitepapers whenever I get the chance. Sometimes I&amp;rsquo;ll read something and feel enlightened. Other times I finish and feel that I&amp;rsquo;ve somehow lost brain cells (please, no jokes about having none to lose ;) ). Recently some of the tutorials I&amp;rsquo;ve read on the web have left me feeling extremely underwhelmed. The reasons are because I felt like I didn&amp;rsquo;t learn anything or that the tutorial, while hitting the point, didn&amp;rsquo;t actually feel like it delivered the kind of information I was expecting.</description>
    </item>
    
    <item>
      <title>Reversing DirectX &amp; Blowfish</title>
      <link>/posts/reversing-directx-blowfish/</link>
      <pubDate>Mon, 09 Apr 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/reversing-directx-blowfish/</guid>
      <description>This tutorial has been on the boil for quite a while. I got close to nailing the problem late last month, but didn&amp;rsquo;t end up finding the time to finish it until this weekend. This tutorial is a solution to another Crackme, but this time it&amp;rsquo;s really not for the faint-hearted. Information on reversing fullscreen DirectX (Direct3D) applications and playing around with Blowfish can be found in this tutorial, and it&amp;rsquo;s a bit of a mind-job - it also weighs in at nearly 40 pages (with some nice pictures thrown in)!</description>
    </item>
    
    <item>
      <title>Are Forums Dead?</title>
      <link>/posts/are-forums-dead/</link>
      <pubDate>Sun, 08 Apr 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/are-forums-dead/</guid>
      <description>Just like many things in life, the Internet is full of fads and fashions. There have been stacks of them in the past, and no doubt there&amp;rsquo;ll be stacks more. At the moment, the current fads are Social Networking, Blogging and &amp;ldquo;Web 2.0&amp;rdquo;. A few years back, the Internet was completely bombarded with forums. They were everywhere, open for discussion about anything from software and development through to what people were doing on the weekend.</description>
    </item>
    
    <item>
      <title>We&#39;ve Moved ... Again!</title>
      <link>/posts/weve-moved-...-again/</link>
      <pubDate>Sat, 07 Apr 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/weve-moved-...-again/</guid>
      <description>Yes, it&amp;rsquo;s that time of the year again - time to move servers! I hope that this is going to be the last one for quite some time as I&amp;rsquo;m getting sick of it :) The current set up looks to be a good one and I can&amp;rsquo;t (at the moment) see why we&amp;rsquo;d need to change it again.
Let me know if you see any issues with the new server!</description>
    </item>
    
    <item>
      <title>BumpTop 3D Desktop Prototype</title>
      <link>/posts/bumptop-3d-desktop-prototype/</link>
      <pubDate>Sat, 31 Mar 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/bumptop-3d-desktop-prototype/</guid>
      <description>I was sent an interesting link this morning by Simon that I think you guys will find quite interesting too (especially those of you with a passion for human/computer interaction cough Dan cough).
Introducing the BumpTop 3D Desktop, a crazy new way of interacting with your machine and handling documents/files. Check out the following YouTube vid to see how it works:

Pretty groovey hey! Of course, this looks like it was designed to work moreso with hand-held or tablet PCs (the &amp;ldquo;pressure&amp;rdquo; gestures are a bit of a give-away there), but it&amp;rsquo;d be cool to see something like this on a desktop machine.</description>
    </item>
    
    <item>
      <title>.NET MVC</title>
      <link>/posts/.net-mvc/</link>
      <pubDate>Wed, 28 Mar 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/.net-mvc/</guid>
      <description>Isn&amp;rsquo;t it amazing how life can just hit turbo without prior warning, and your time seems to just disappear! I need to find some way of sticking blogging back into my routine :)
For the last couple of weeks I&amp;rsquo;ve been playing around a fair bit with Ruby and Rails. I&amp;rsquo;ve been having a great deal of fun at the same time, and I recommend it to any of you who are thinking of taking up some of your own time with learning web development.</description>
    </item>
    
    <item>
      <title>Do you Enjoy what you do for a Living?</title>
      <link>/posts/do-you-enjoy-what-you-do-for-a-living/</link>
      <pubDate>Mon, 12 Mar 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/do-you-enjoy-what-you-do-for-a-living/</guid>
      <description>I remember when I was in high school as a teenager and all I wanted to &amp;lsquo;be&amp;rsquo; was a Software Engineer. I was one of those lucky people who always seemed to know what it is they wanted to do, and for me it was always going to be creating software. I got stuck into a plethora of coding projects in my own time while finishing school which, along with doing &amp;ldquo;Computer Studies&amp;rdquo; for the last 3 years, gave me a pretty solid grounding to build on when I got to University.</description>
    </item>
    
    <item>
      <title>Another Lesson in Software Reversing</title>
      <link>/posts/another-lesson-in-software-reversing/</link>
      <pubDate>Thu, 08 Mar 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/another-lesson-in-software-reversing/</guid>
      <description>Yes, you can (most probably) consider this to be a fairly regular segment from this point on :) As I said before I&amp;rsquo;ve always been partial to RCE, and I don&amp;rsquo;t think I&amp;rsquo;ll ever get sick of it. Today&amp;rsquo;s installment is another tutorial that I felt shouldn&amp;rsquo;t be published. The reason is because it&amp;rsquo;s a tutorial on how to solve an example reversing challenge for the IITAC online RCE adacemy, and I generally don&amp;rsquo;t think it&amp;rsquo;s a good move to show other people how to do this stuff when they can get certified for it.</description>
    </item>
    
    <item>
      <title>Beatbox Fame Game</title>
      <link>/posts/beatbox-fame-game/</link>
      <pubDate>Thu, 08 Mar 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/beatbox-fame-game/</guid>
      <description>I generally don&amp;rsquo;t like to post links that I&amp;rsquo;ve been sent without discussing them a bit, but in this case I just can&amp;rsquo;t resist. It warrants no discussion - it just has to be watched. Check this out, it&amp;rsquo;s awesome! 
Beatbox Fame GameGenius!</description>
    </item>
    
    <item>
      <title>More RCE Goodness</title>
      <link>/posts/more-rce-goodness/</link>
      <pubDate>Tue, 06 Mar 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/more-rce-goodness/</guid>
      <description>I&amp;rsquo;m quite excited. My previous RCE solution and tutorial has been approved!
Plus, the first keygenme that I&amp;rsquo;ve ever written is now approved and available for download. So if you&amp;rsquo;re up for a 64-bit RCE challenge, go check it out (or download it directly from here).
Feel free to let me know how good/bad/ugly you think this stuff is!</description>
    </item>
    
    <item>
      <title>Why Can&#39;t Programmers Program?</title>
      <link>/posts/why-cant-programmers-program/</link>
      <pubDate>Sun, 04 Mar 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/why-cant-programmers-program/</guid>
      <description>While reading The Daily Grind from Larkware I found myself reading through a couple of articles (here and here) on programmers not being able to program. This obviously caught my interest as I feel I&amp;rsquo;ve worked with my fair share of these &amp;ldquo;programmers&amp;rdquo; in the past. It got me thinking about how to determine whether or not someone is good in an interview, how their background affects the way they perform when they start working as a developer, and whether or not having N years of experience actually means N years of experience or simply N lots of 1 years experience.</description>
    </item>
    
    <item>
      <title>A Reversing Tutorial</title>
      <link>/posts/a-reversing-tutorial/</link>
      <pubDate>Sat, 03 Mar 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/a-reversing-tutorial/</guid>
      <description>For a long time I&amp;rsquo;ve been interested in the lovely and exciting art of Reverse Code Engineering (RCE) and on more than one occasion I&amp;rsquo;ve been sucked in to spending hours and hours delving through pages of ASM code searching for the answer.
Today is no different. With Amy feeling pretty crook due to a nasty headache, I thought I&amp;rsquo;d retire to my PC and do something quiet that I haven&amp;rsquo;t done for ages.</description>
    </item>
    
    <item>
      <title>.NET System::String to ANSI char*</title>
      <link>/posts/.net-systemstring-to-ansi-char/</link>
      <pubDate>Fri, 02 Mar 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/.net-systemstring-to-ansi-char/</guid>
      <description>Hi All,
I&amp;rsquo;ve been doing a bit of work of late dealing with interops between managed and unmanaged code, and I have nailed a little snippet which shows how convert between a managed .NET String object and a stanard ANSI/C-style string. Check out the following code if you need to do the same:
System::String managedString = WHATEVER; System::IntPtr stringPtr = System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi( myString ); char* unmanagedString = static_cast&amp;lt; char* &amp;gt;( stringPtr.ToPointer() ); // do whatever you want with the unmanaged string .</description>
    </item>
    
    <item>
      <title>What are you Really Looking at?</title>
      <link>/posts/what-are-you-really-looking-at/</link>
      <pubDate>Mon, 19 Feb 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/what-are-you-really-looking-at/</guid>
      <description>We all know that the pictures that we find in magazines, posters and movies are edited. A lot. But it&amp;rsquo;s hard to really get a good idea of what actually goes on behind the scenes until you see something like this. Scary eh? Makes you realise that absolutely anyone can be &amp;ldquo;model material&amp;rdquo; as long as they have a stack of make-up and a friend who&amp;rsquo;s good enough with photoshop.</description>
    </item>
    
    <item>
      <title>Should I Install Vista?</title>
      <link>/posts/should-i-install-vista/</link>
      <pubDate>Sun, 18 Feb 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/should-i-install-vista/</guid>
      <description>This isn&amp;rsquo;t a question directed at you guys :) This is a question that lots of people have been asking me of late, and I felt the need to answer the question once and for all. The short answer is: No.The medium answer is: I have a licenced copy because I am an MSDN subscriber and I still haven&amp;rsquo;t installed it. So what does that tell you?The long answer is: If you are looking for an operating system that chews up a lot of resources, behaves like Windows XP with a new coat of paint, doesn&amp;rsquo;t play nicely with most of the games on the market, takes away your rights as a user and consumer of most forms of digital content and gives you constant issues with your hardware, then yes.</description>
    </item>
    
    <item>
      <title>Sport is Good For You</title>
      <link>/posts/sport-is-good-for-you/</link>
      <pubDate>Tue, 13 Feb 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/sport-is-good-for-you/</guid>
      <description>I love my sport. Without it I&amp;rsquo;d go nuts. It&amp;rsquo;s a great venting mechanism, it lets you burn off calories and makes you feel good.
Unfortunately, not every sporting session turns out the way you&amp;rsquo;d like it. You might lose a game, or run a bad time, or twist your ankle - you might even get clobbered by someone on the opposite team and end up in quite a bit of pain.</description>
    </item>
    
    <item>
      <title>Shortcuts: Visual Studio 2005</title>
      <link>/posts/shortcuts-visual-studio-2005/</link>
      <pubDate>Sun, 11 Feb 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/shortcuts-visual-studio-2005/</guid>
      <description>Welcome to the next in the series of posts on program shortcuts. This time round we&amp;rsquo;re talking Visual Studio. I&amp;rsquo;ll be assuming that you don&amp;rsquo;t have the ViEmu plugin enabled and that you&amp;rsquo;re just using the IDE in the way it was intended without any other form of shortcut-based plugin installed.
I&amp;rsquo;m using Visual Studio 2005 and I think I have the C# settings enabled by default. Most of these shortcuts will work regardless of the default setting that you have, but some of them will no doubt be different.</description>
    </item>
    
    <item>
      <title>Shortcuts: Windows</title>
      <link>/posts/shortcuts-windows/</link>
      <pubDate>Sat, 10 Feb 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/shortcuts-windows/</guid>
      <description>This is the first of a collection of posts that I&amp;rsquo;m going to be making about shortcuts in applications. I&amp;rsquo;m constantly on the lookout for keyboard shortcuts to aid in improving the speed of my day to day activities, and I thought it&amp;rsquo;d be a good idea to start sharing them with you. These posts will probably get edited a few times over the course of their lives as I find more shortcuts :)</description>
    </item>
    
    <item>
      <title>A Quiet Purchase</title>
      <link>/posts/a-quiet-purchase/</link>
      <pubDate>Tue, 06 Feb 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/a-quiet-purchase/</guid>
      <description>Yesterday I bought something that I know I should have bought a long time ago. In fact, I should have bought it at the same time that I bought my video card. In case you didn&amp;rsquo;t know, the stock fan that comes with this video card is by far the noisiest ever. It&amp;rsquo;s the loudest in their line of video cards, and I think it might even be the loudest across all cards.</description>
    </item>
    
    <item>
      <title>My Favourite Firefox Extensions</title>
      <link>/posts/my-favourite-firefox-extensions/</link>
      <pubDate>Mon, 05 Feb 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/my-favourite-firefox-extensions/</guid>
      <description>I know that there&amp;rsquo;s a stack of lists like this around the web, but I felt like doing one too! Below is a list of the Firefox extensions that I use quite often for a variety of reasons. Give them a spin if it floats your boat!  AdBlockPlus - Sick of ads? Even more sick of ads and scripts that manage to get past the default ad blocker? Sick of the Snap.</description>
    </item>
    
    <item>
      <title>CI Punishment</title>
      <link>/posts/ci-punishment/</link>
      <pubDate>Sun, 04 Feb 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/ci-punishment/</guid>
      <description>For a development to succeed in its use of a continuous integration process there must be a sufficiently hefty deterrent to prevent people from breaking the build. If you break the build, you should feel some form of retribution to aid in stopping you from doing it again.
Plip&amp;rsquo;s recently posted a suggestion for this very issue. I think it&amp;rsquo;s a fantastic idea! Make sure you print it and stick it up in your office!</description>
    </item>
    
    <item>
      <title>Challenge #3 - Day of Birth</title>
      <link>/posts/challenge-#3-day-of-birth/</link>
      <pubDate>Sun, 04 Feb 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/challenge-#3-day-of-birth/</guid>
      <description>I haven&amp;rsquo;t posted a challenge for a while, so I thought I&amp;rsquo;d get you all thinking again with another basic little program. It&amp;rsquo;s simple, but there are a stack of possible solutions, so I&amp;rsquo;m expecting a bit of variety. So here we go.
Write a program that asks the user for their date of birth using the date format YYYY-MM-DD (eg. 1978-12-05 in my case). The program should respond by telling the user what day of the week they were born on.</description>
    </item>
    
    <item>
      <title>The Parable of the Two Programmers</title>
      <link>/posts/the-parable-of-the-two-programmers/</link>
      <pubDate>Sat, 03 Feb 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/the-parable-of-the-two-programmers/</guid>
      <description>Another short snippet this morning. I wanted to inform you of a fairly old-skool story; one that lots of developers will already know about. It&amp;rsquo;s a great tale, and still holds a lot of truth for today&amp;rsquo;s world of I.T. despite it being very old.
Have a read of the tale - The Parable of the Two Programmers.
Which one are you? :)</description>
    </item>
    
    <item>
      <title>What are you Really Eating?</title>
      <link>/posts/what-are-you-really-eating/</link>
      <pubDate>Sat, 03 Feb 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/what-are-you-really-eating/</guid>
      <description>It&amp;rsquo;s been a very long time since I last ate fast food (such as McDonalds, KFC or Hungry Jacks). In fact, it&amp;rsquo;s been years, because I just can&amp;rsquo;t stand the stuff and I know it&amp;rsquo;s really bad for me.
When it comes to other types of junk I&amp;rsquo;m pretty good. The only time I ever eat potato chips is when my mate Mike pops round and brings them with him. I never buy them myself, and they don&amp;rsquo;t make it into our shopping cart when we buy groceries.</description>
    </item>
    
    <item>
      <title>Rotating Banner Pictures</title>
      <link>/posts/rotating-banner-pictures/</link>
      <pubDate>Fri, 02 Feb 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/rotating-banner-pictures/</guid>
      <description>Time for another little poll :) This new skin that I&amp;rsquo;ve got going has a funky feature which not only randomises the picture at the top of the page, but allows you to have a selection of random pictures that get rotated after a period of time. At the moment, it&amp;rsquo;s set to 3 images which rotate after 15 seconds of being visible and take 4 seconds to change between images.</description>
    </item>
    
    <item>
      <title>Writing Object-Oriented Code vs Writing Code in an Object-Oriented Language</title>
      <link>/posts/writing-object-oriented-code-vs-writing-code-in-an-object-oriented-language/</link>
      <pubDate>Fri, 02 Feb 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/writing-object-oriented-code-vs-writing-code-in-an-object-oriented-language/</guid>
      <description>I&amp;rsquo;m going to try and keep this post short, otherwise I&amp;rsquo;ll be here all day ranting away ;) This particular topic is one that&amp;rsquo;s fairly close to my heart because it&amp;rsquo;s a bit of a pet hate for me.
As we (the geeks) know, object-oriented (OO) programming is a different concept to functional or procedural programming. OO was a bit of a move forward in the direction of easy to understand, more managable and reusable code, and has been adopted all over the shop.</description>
    </item>
    
    <item>
      <title>A Bad Workman Blames his Tools</title>
      <link>/posts/a-bad-workman-blames-his-tools/</link>
      <pubDate>Wed, 31 Jan 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/a-bad-workman-blames-his-tools/</guid>
      <description>I&amp;rsquo;ve used this saying a fair few times in my life, and today I was shown something that I think backs the statement up nicely. This is an example of an amazing Workman with a poor tool - and look at what he creates:
How to draw a car in MS. Paint
Simply amazing :) Thanks for the link Ryan.</description>
    </item>
    
    <item>
      <title>A New Look</title>
      <link>/posts/a-new-look/</link>
      <pubDate>Sun, 28 Jan 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/a-new-look/</guid>
      <description>I was getting sick of the way the site was looking, so I changed it. I know I&amp;rsquo;ll end up changing it again because I&amp;rsquo;ll no doubt get sick of looking at the site layout as well, but for now I&amp;rsquo;m quite happy with it. It&amp;rsquo;s a hacked version of a theme that I thought was nice, but I felt it needed some modifications. I&amp;rsquo;m not 100% finished yet, as I think the top of the page just looks bare.</description>
    </item>
    
    <item>
      <title>A Software List is Not a Job Description</title>
      <link>/posts/a-software-list-is-not-a-job-description/</link>
      <pubDate>Sun, 28 Jan 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/a-software-list-is-not-a-job-description/</guid>
      <description>Over the past few weeks I&amp;rsquo;ve had the joy of dealing with many recruitment agents as I&amp;rsquo;ve been looking for a new contract. I won&amp;rsquo;t get into the choice of job at this stage, as that&amp;rsquo;s a whole new blog post right there. What I wanted to show was my frustration at quality of most of the job advertisements I see on the Internet.
To sum up:They generally have a lot of spelling and grammatical errors.</description>
    </item>
    
    <item>
      <title>Multi-Page Posts</title>
      <link>/posts/multi-page-posts/</link>
      <pubDate>Tue, 16 Jan 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/multi-page-posts/</guid>
      <description>As you no doubt have guessed, I can be a little verbose from time to time as I&amp;rsquo;m ranting away ;) So I pondered the possibility of breaking up my posts across multiple pages. I installed a plugin that allows me to break the single post up into a series of pages, and I was on the verge of using it for the first time a couple of posts ago when I thought it might not be a good idea.</description>
    </item>
    
    <item>
      <title>Notable</title>
      <link>/posts/notable/</link>
      <pubDate>Mon, 15 Jan 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/notable/</guid>
      <description>I&amp;rsquo;ve had a few questions from people asking me why there&amp;rsquo;s a stack of queer looking icons appearing at the bottom of the blog posts, so I thought I&amp;rsquo;d post the details so that everyone knows.
The icons appear because of a plugin I recently installed called Notable. Notable is a plugin that generates links that allow for easy addition of links to various social bookmarking and networking sites. Here&amp;rsquo;s a bit of a snippet from the web page:Notable displays a series of icons below each post allowing your readers to easily submit you to many different social bookmarking and networking sites.</description>
    </item>
    
    <item>
      <title>Quality of Service</title>
      <link>/posts/quality-of-service/</link>
      <pubDate>Sun, 14 Jan 2007 00:00:00 +0000</pubDate>
      
      <guid>/posts/quality-of-service/</guid>
      <description>First of all, Happy New Year!
Now that the formalities are out of the way, I&amp;rsquo;ll get stuck into the post :)
Today&amp;rsquo;s comments are inspired a by a recent experience I had with an online form (of all things!). Being a bit of a game geek, both in the &amp;lsquo;build&amp;rsquo; and &amp;lsquo;play&amp;rsquo; senses, I constantly read a lot of gaming stuff. One thing that I&amp;rsquo;m a fairly regular reader of is GamaSutra, as it&amp;rsquo;s got lots of juicy game development stuff in it - a great read for people such as myself.</description>
    </item>
    
    <item>
      <title>Is it Becoming Illegal to do Anything?</title>
      <link>/posts/is-it-becoming-illegal-to-do-anything/</link>
      <pubDate>Sat, 23 Dec 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/is-it-becoming-illegal-to-do-anything/</guid>
      <description>I can&amp;rsquo;t help but feel that over time the world is getting harder to live in. To be a bit more precise, it&amp;rsquo;s becoming very difficult to do anything at all for fear of putting yourself in the firing line, or on the receiving end of a law suit. Two things that have caught my attention over the last couple of weeks which have really annoyed me. One of them is down to the frustration I feel when people are trying to get something for nothing, and the other is down to annoyance at regulations that are put in place which are just totally ridiculous</description>
    </item>
    
    <item>
      <title>WTF: You&#39;ll Never Amount to Anything</title>
      <link>/posts/wtf-youll-never-amount-to-anything/</link>
      <pubDate>Wed, 20 Dec 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/wtf-youll-never-amount-to-anything/</guid>
      <description>Yes, it just gets better and better! This beauty is just a few of the lines that make up a huge &amp;ldquo;property get&amp;rdquo; in C#. Count the WTFs in this crazy baby:
string amount = &amp;quot;&amp;quot;; double Amount = 0; try { amount = (string)r[&amp;quot;Amount&amp;quot;]; Amount = Convert.ToDouble(amount); } catch { // use formula rather than value AmountFormula = amount; Amount = 0; }  If I had a prize, I&amp;rsquo;d give one away, but I don&amp;rsquo;t.</description>
    </item>
    
    <item>
      <title>Dual-Screen Development</title>
      <link>/posts/dual-screen-development/</link>
      <pubDate>Tue, 19 Dec 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/dual-screen-development/</guid>
      <description>As it tends to be with many things in life, I just didn&amp;rsquo;t see the need for multiple monitors until I had the experience myself. Up until my time at the game dev studio in the U.K. (which will remain anonymous :)), I had no idea what it was like to work on a machine that had more than one monitor. Within a week, there was no going back!
Those of you who use at least two monitors for day to day work will know what I&amp;rsquo;m going to say in this post - those of you who don&amp;rsquo;t (and in particular, never have done) should listen and listen good!</description>
    </item>
    
    <item>
      <title>WTF: Who&#39;s the Dummy?</title>
      <link>/posts/wtf-whos-the-dummy/</link>
      <pubDate>Tue, 19 Dec 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/wtf-whos-the-dummy/</guid>
      <description>Yes, another obscure and extremely useful postback. Bow down to the ultimate in WTFs!!! {% codeblock lang:csharp %} protected void OnCheckedChanged( object sender, EventArgs e) { // Dummy for disabled checkboxes in lists } {% endcodeblock %}
It&amp;rsquo;s a beauty! I guess I should at least be grateful that there&amp;rsquo;s a comment in there.
WTFness: Has to be 10 / 10.
PS - My good mate Dan is going to help me create a WTF-o-meter which you guys can vote on!</description>
    </item>
    
    <item>
      <title>Life, the Universe and Everything.</title>
      <link>/posts/life-the-universe-and-everything./</link>
      <pubDate>Fri, 15 Dec 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/life-the-universe-and-everything./</guid>
      <description>42??
It&amp;rsquo;s been quite some time since I&amp;rsquo;ve had a proper rant, and now that the wedding is over and I have a bit more spare time I thought I&amp;rsquo;d take the chance to dump some more thoughts about something we all want to know about &amp;hellip; stuff!!
Today&amp;rsquo;s stuff regards issues around work-life balance and what makes me happy doing what I do for a living. It&amp;rsquo;s a bit of a broad topic, but one that I consider to be pretty damned important.</description>
    </item>
    
    <item>
      <title>Love is in the Air</title>
      <link>/posts/love-is-in-the-air/</link>
      <pubDate>Sun, 03 Dec 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/love-is-in-the-air/</guid>
      <description>Don&amp;rsquo;t take that title too lightly, I do actually mean it! If it&amp;rsquo;s not currently boarding a flight to Mexico, it&amp;rsquo;s already in the air somewhere over NSW!
For those of you who haven&amp;rsquo;t cottoned on yet (which is probably everyone) I&amp;rsquo;m talking about our dear friends Dan and Ailin (Dan being the Dan from shifty) have just got&amp;hellip;
&amp;hellip; ENGAGED!!!!!!!!
Boy did that kick the day off on a very excited foot!</description>
    </item>
    
    <item>
      <title>Web Album Uploaded</title>
      <link>/posts/web-album-uploaded/</link>
      <pubDate>Thu, 30 Nov 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/web-album-uploaded/</guid>
      <description>I thought I&amp;rsquo;d best get in quickly before all the emails start coming in asking &amp;ldquo;where are the $*^ING PHOTOS!??!&amp;rdquo; and get a web album up so that you guys can all see evidence of the amazing time that I&amp;rsquo;ve had over the last couple of weeks.
I&amp;rsquo;ve used Picassa and the Google web album feature to get a stack of pictures up, and you can find them all here. I&amp;rsquo;ll be posting again in a while and letting you all know about the good, the bad and the ugly with regards to getting our wedding organised.</description>
    </item>
    
    <item>
      <title>Can you see me Waving?</title>
      <link>/posts/can-you-see-me-waving/</link>
      <pubDate>Wed, 29 Nov 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/can-you-see-me-waving/</guid>
      <description>Hi all! It&amp;rsquo;s been a while since I posted last, but for very good reason. I&amp;rsquo;ve been away since the 17th of Nov sorting out various things, packing up and moving south for a short holiday. The reason - I got married!
After over 6 years of being together Amy and I tied the knot on the 24th of Nov &amp;lsquo;06. The day was an absolute corker, and without sounding cliched, it was the best day of my life to date.</description>
    </item>
    
    <item>
      <title>WTF: Date Malarky</title>
      <link>/posts/wtf-date-malarky/</link>
      <pubDate>Thu, 16 Nov 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/wtf-date-malarky/</guid>
      <description>I don&amp;rsquo;t think I&amp;rsquo;m going to need to say much about the following code, as anyone with even an inkling of the features of the .NET framework would know that it&amp;rsquo;s a joke. See the nugget(s) of genius below:
public static void ToStartofCurrDay(ref DateTime aDate) { aDate = aDate.Subtract(aDate.TimeOfDay); } public static void ToEndofPrevDay(ref DateTime aDate) { aDate = aDate.Subtract(aDate.TimeOfDay); TimeSpan ts = new TimeSpan(1); aDate = aDate.Subtract(ts); } public static void ToEndofCurrDay(ref DateTime aDate) { aDate = aDate - aDate.</description>
    </item>
    
    <item>
      <title>A Crack in the Vista</title>
      <link>/posts/a-crack-in-the-vista/</link>
      <pubDate>Wed, 15 Nov 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/a-crack-in-the-vista/</guid>
      <description>I&amp;rsquo;m sure that everyone knew that this was going to happen at some stage. Whether or not they believed it&amp;rsquo;d happen so quickly is another matter. Either way, it&amp;rsquo;s official, the new wonderdumpling operating system from Microsoft has been cracked. Aparently the activation and installation of the whole thing has been bypassed, and it&amp;rsquo;s available on the web. Check out this SMH article for more information.
Why do they bother? Microsoft&amp;rsquo;s software is always going to be a target for hackers and crackers, and I think it&amp;rsquo;d be a better use of time and resources if they focussed on improving the user experience and giving the user more control and power when using the OS instead of trying to labotomise the machine if the software is cracked (and hence causing a crapload of problems for legit users) then they&amp;rsquo;d find that their users would be happier and they wouldn&amp;rsquo;t end up with so much egg on the face!</description>
    </item>
    
    <item>
      <title>A New Way to SMS?</title>
      <link>/posts/a-new-way-to-sms/</link>
      <pubDate>Wed, 15 Nov 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/a-new-way-to-sms/</guid>
      <description>Some overseas boffins have come up with a new way of punching text into a mobile phone, though I&amp;rsquo;m not sure I like it. This YouTube video shows examples of how they propose to deal with the typing into a phone keypad in a QWERTY-like manner.
I can&amp;rsquo;t see it catching on, and I really can&amp;rsquo;t see companies like Nokia adopting something like this either. I think it&amp;rsquo;d be a bit of a mind-job to learn, and not particularly intuitive as it almost requires you to know the QWERTY keyboard layout before you can type.</description>
    </item>
    
    <item>
      <title>// TODO: Add Comments</title>
      <link>/posts/-todo-add-comments/</link>
      <pubDate>Tue, 14 Nov 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/-todo-add-comments/</guid>
      <description>All too often have I seen comments like this. That&amp;rsquo;s if I&amp;rsquo;m lucky enough to see comments at all! I&amp;rsquo;m quite a big advocate of comments in code. I don&amp;rsquo;t agree with the age-old philosophy of:If the code was hard to write, it should be hard to read as well!I read a cool article this morning called In Praise of the Lowly Comment, which I think hits the mark nicely. I think I might just email this link around to my current workmates, as I don&amp;rsquo;t think they realise that commenting should consist of more that &amp;lsquo;TODO&amp;rsquo;s.</description>
    </item>
    
    <item>
      <title>WTF: The Exceptional Connection</title>
      <link>/posts/wtf-the-exceptional-connection/</link>
      <pubDate>Tue, 14 Nov 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/wtf-the-exceptional-connection/</guid>
      <description>This would have to be close to the dumbest way of verifying the state of a connection :) Well, that might not be true, but it&amp;rsquo;s definitely one of the dumbest ways.
This is a funky snippet of code that was extracted from a system I&amp;rsquo;m doing some work on at the moment:
public static bool IsValid(OracleConnection conn) { OracleCommand cmd = new OracleCommand(&amp;quot;select 1 from dual&amp;quot;, conn); cmd.CommandType = CommandType.</description>
    </item>
    
    <item>
      <title>Were the Wiggles Software Developers?</title>
      <link>/posts/were-the-wiggles-software-developers/</link>
      <pubDate>Mon, 13 Nov 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/were-the-wiggles-software-developers/</guid>
      <description>Some of you might not know about The Wiggles, but those of you who are either Australian or have any connection with an extremely young family member will probably have a fair idea. In short, they&amp;rsquo;re a collection of dudes who do performances for kiddies, and have managed to make themselves a fortune putting smiles on the dials of kids all over the world. Hats off to them!
The question I&amp;rsquo;m asking isn&amp;rsquo;t serious ;) But I have to ask it because I think that one of their famous songs has been written with my current software development project in mind!</description>
    </item>
    
    <item>
      <title>EA&#39;s &#39;Steam&#39; Leaves a Bad Smell</title>
      <link>/posts/eas-steam-leaves-a-bad-smell/</link>
      <pubDate>Fri, 10 Nov 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/eas-steam-leaves-a-bad-smell/</guid>
      <description>When Steam first hit the marketplace lots of people thought it wasn&amp;rsquo;t going to take off - and the bigger companies didn&amp;rsquo;t want it to. Over time it really gathered momentum. The bugs were being ironed out, the process was working well, and the subscriber count was going through the roof. As more time went by, some smaller indies signed up to use Steam to deliver their games - giving the small player a chance to get a great deal of exposure to their game at a pretty small cost and at the same time allowing it to be delivered onto desktops on demand.</description>
    </item>
    
    <item>
      <title>PCs for the Family</title>
      <link>/posts/pcs-for-the-family/</link>
      <pubDate>Thu, 09 Nov 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/pcs-for-the-family/</guid>
      <description>I know for sure that many of the geeks out there on the World Wide Wibbly have the &amp;ldquo;fun&amp;rdquo; task of sorting out every possible computer issue for any/all of their family and friends in the cases where they&amp;rsquo;re not geeks themselves. I am one such geek, and I&amp;rsquo;ll be honest and say that I do not mind helping out. It&amp;rsquo;s actually a bit of fun! I starting pondering thoughts on this topic when I stumbled across Roy&amp;rsquo;s MomPC blog post a week or two ago.</description>
    </item>
    
    <item>
      <title>Gadget Me Up</title>
      <link>/posts/gadget-me-up/</link>
      <pubDate>Wed, 08 Nov 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/gadget-me-up/</guid>
      <description>I don&amp;rsquo;t know if you guys are free software gadget monkeys or not, but this stuff might be of value to those of you who use Visual Studio 2005. The guys over at SlickEdit.com, makers of the top notch SlickEdit editor, have released a stack of free gadgets for Visual Studio 2005 which are free! (I love that word.. I&amp;rsquo;m going to say it again.. FREEEEE).
The freebies include: Editor Gadgets (Line ruler, Indentation guide, Auto-copy selection, Editor Graphic)The Command SpyFile ExplorerData Object AnalyserThe SLOC ReportIt&amp;rsquo;s a nice collection of tools if you ask me!</description>
    </item>
    
    <item>
      <title>Iteration</title>
      <link>/posts/iteration/</link>
      <pubDate>Tue, 07 Nov 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/iteration/</guid>
      <description>I found a pretty inspiring video the other day that I think is a perfect visual representation of what should happen in software. OK, that&amp;rsquo;s not quite true, I didn&amp;rsquo;t find it, I was given it by none other than Dan the man (@shifty). The video is a time-lapsed video of someone drawing a picture of a wasp-like insect (I don&amp;rsquo;t pretend to be cluey in the world of insects, so just be happy with that description :)), but the beauty of it is that you can see how the final product evolves as the picture is iterated.</description>
    </item>
    
    <item>
      <title>WTF?!</title>
      <link>/posts/wtf/</link>
      <pubDate>Tue, 07 Nov 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/wtf/</guid>
      <description>I&amp;rsquo;m a regular reader of The Daily WTF and most of the time I get a good laugh and think to myself &amp;ldquo;Boy, I&amp;rsquo;m glad I&amp;rsquo;m not working on that system.&amp;rdquo;
Then I get to work and find myself looking at very similar instances of WTFness in the applications I am working on. I think that the level of WTFness in the industry at the moment is sufficiently high enough to make it difficult for a Daily WTF site to cover all the cases.</description>
    </item>
    
    <item>
      <title>Crazy Glass CD</title>
      <link>/posts/crazy-glass-cd/</link>
      <pubDate>Fri, 03 Nov 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/crazy-glass-cd/</guid>
      <description>Technology is pretty amazing. What makes it more amazing is that just when you think a particular idea has been taken to the nth degree and couldn&amp;rsquo;t go much further, another boffin comes along and shows that there is more that can be done!
This glass CD is a prime example. CD/DVD technology is now run of the mill. HD DVD and Blu-Ray are currently battling it out for supremecy. Where do you think the secondary storage technology will end up?</description>
    </item>
    
    <item>
      <title>Ego Affliction</title>
      <link>/posts/ego-affliction/</link>
      <pubDate>Fri, 03 Nov 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/ego-affliction/</guid>
      <description>For some reason I thought that the I.T. industry as a whole had matured enough to the point that all developers would have realised that programming with an ego has a bad affect on the software. I also thought that people would stay up to speed, work hard, and focus on producing good quality code. I am very much mistaken :)
Recently I&amp;rsquo;ve been in the unfortunate position of having to deal with some of the most appalling I.</description>
    </item>
    
    <item>
      <title>The Joy of Blogging</title>
      <link>/posts/the-joy-of-blogging/</link>
      <pubDate>Fri, 03 Nov 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/the-joy-of-blogging/</guid>
      <description>I&amp;rsquo;ve had this link archived for a little while, and today&amp;rsquo;s the day I decided to be arsed to comment on it. A long-term blogger known as Greg posted about what he&amp;rsquo;s learned about blogging in his 2000th blog post. I enjoyed reading it, and it made me ask myself the questions: What do you get out of blogging?What is it you want to get out of bloggingDo you feel like you have to post at least once per day?</description>
    </item>
    
    <item>
      <title>Vista Speech Recognition - Maybe try it in Yiddish?</title>
      <link>/posts/vista-speech-recognition-maybe-try-it-in-yiddish/</link>
      <pubDate>Fri, 03 Nov 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/vista-speech-recognition-maybe-try-it-in-yiddish/</guid>
      <description>As a final post for today, I just got sent this classic Google Video from Dan over at Shifty. It&amp;rsquo;s pretty funny!
Having said that, I&amp;rsquo;m sure that most devs know how tough something like voice recognition can be to build. Try demoing something like this to the world, it&amp;rsquo;d be an absolute nightmare! I do feel a bit sorry for this guy, as I&amp;rsquo;m sure he&amp;rsquo;s not the one responsible for the internal workings of the software.</description>
    </item>
    
    <item>
      <title>Pumpkin Computer</title>
      <link>/posts/pumpkin-computer/</link>
      <pubDate>Fri, 27 Oct 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/pumpkin-computer/</guid>
      <description>I had to post this for the masses/geeks to enjoy (though chances are that you&amp;rsquo;ve already seen it if you&amp;rsquo;re a Gizmodo reader). Some chap decided to make himself a computer made from a pumpkin (well, for the chassis). Yup, another geek with too much time (and pumpkin) on his hands. I wonder how long it&amp;rsquo;s going to take before it starts to stink!</description>
    </item>
    
    <item>
      <title>Microsoft Congratulate Mozilla</title>
      <link>/posts/microsoft-congratulate-mozilla/</link>
      <pubDate>Thu, 26 Oct 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/microsoft-congratulate-mozilla/</guid>
      <description>After shipping the FireFox 2 browser, Mozilla received a present from the IE team at Microsoft. TO take a look, point your browser over here and read the story.
If I was a FireFox developer, I&amp;rsquo;d be veeeeeery wary of taking a bite of that ;) I get the feeling I&amp;rsquo;d spend the rest of the day on the dunny!</description>
    </item>
    
    <item>
      <title>Cyberface</title>
      <link>/posts/cyberface/</link>
      <pubDate>Wed, 25 Oct 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/cyberface/</guid>
      <description>I could have squeezed this into the gaming round up that I posted a few days back, but this deserves to be shown out on its own (besides, it&amp;rsquo;s not just game-specific). I stumbled accross this last week, and it blew me away. The article, called Cyberface: New Technology That Captures the Soul from the New York Times shows off some very funky software. Head over there and check it out, it&amp;rsquo;s awesome.</description>
    </item>
    
    <item>
      <title>DVD Cracker Nails Apple&#39;s iPod Code</title>
      <link>/posts/dvd-cracker-nails-apples-ipod-code/</link>
      <pubDate>Wed, 25 Oct 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/dvd-cracker-nails-apples-ipod-code/</guid>
      <description>You gotta hand it to this guy, he says that he &amp;ldquo;doesn&amp;rsquo;t like closed systems&amp;rdquo;, which is pretty darned obvious :) The man, Jon Lech Johansen, who years ago cracked the DVD encryption known as CSS, and released (with two other unknowns) the software that could be used to decrypt DVDs (called DeCSS), has taken his code-breaking career to a new level - he&amp;rsquo;s nailed Apple iPod&amp;rsquo;s ecosystem (or so he claims) by breaking their FairPlay DRM software.</description>
    </item>
    
    <item>
      <title>HOWTO: Getting ATi Drivers Working in Ubuntu</title>
      <link>/posts/howto-getting-ati-drivers-working-in-ubuntu/</link>
      <pubDate>Wed, 25 Oct 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/howto-getting-ati-drivers-working-in-ubuntu/</guid>
      <description>As I&amp;rsquo;ve already mentioned, I&amp;rsquo;ve started dabbling in the joys of Linux by installing Ubuntu (Dapper Drake). This was partly joyous and partly painful - but mostly joyous :) While going through some of the less enjoyable moments I spent a fair bit of time trawling forums and hanging in IRC channels (#ubuntu-au on irc.freenode.net to be exact, check out here and here) trying to find the information I needed to get things going.</description>
    </item>
    
    <item>
      <title>FireFox 2</title>
      <link>/posts/firefox-2/</link>
      <pubDate>Tue, 24 Oct 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/firefox-2/</guid>
      <description>WAHOO! It&amp;rsquo;s been released :) Our lovable browser has had its second major version released into the wild, which is great news. I&amp;rsquo;ve been using the latest released candidate for a while, and have had no issues at all, but now it&amp;rsquo;s officially out there for all to enjoy.
Point your currently insecure/outdated browsers over here and start your download.</description>
    </item>
    
    <item>
      <title>The First Move to Ubuntu</title>
      <link>/posts/the-first-move-to-ubuntu/</link>
      <pubDate>Sat, 21 Oct 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/the-first-move-to-ubuntu/</guid>
      <description>While mulling over the meaning of life during the course of the day, I decided to take the plunge and install Ubuntu on the disk that I freed up ages ago - why I waited this long, I really don&amp;rsquo;t know, I think it might have something to do with lack of spare time (or laziness). I thought that you all might like to know the bits that were good and the bits that were bad :)</description>
    </item>
    
    <item>
      <title>Developers vs Programmers</title>
      <link>/posts/developers-vs-programmers/</link>
      <pubDate>Fri, 20 Oct 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/developers-vs-programmers/</guid>
      <description>Which one are you? I&amp;rsquo;ve had my own thoughts on the differences between what makes a person a developer and what makes a person a programmer for some time, but I think this article at Hacknot bears a striking resemblance - which means I don&amp;rsquo;t have to write it out myself :)
A great read, and it&amp;rsquo;s something that not only hilights the differences between a lot of people you&amp;rsquo;ll find out there working in the industry, but it&amp;rsquo;ll give an idea of what I believe should be expected of you while you&amp;rsquo;re trying to do your job.</description>
    </item>
    
    <item>
      <title>A Gaming Round-Up</title>
      <link>/posts/a-gaming-round-up/</link>
      <pubDate>Thu, 19 Oct 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/a-gaming-round-up/</guid>
      <description>I have quite a bit to cover in the gaming world today, and I didn&amp;rsquo;t want to create a separate post for each thing so I thought I&amp;rsquo;d group them all together.
So to start off with, there&amp;rsquo;s been some buzz around town that some &amp;ldquo;demo&amp;rdquo; PS3s have made a bit of an appearance. The guys at IGN have been given a bit of a hands-on session with the PS3! It&amp;rsquo;s hard to call bullshit when there&amp;rsquo;s photos of dudes playing the console, so I&amp;rsquo;ll hold myself back for now ;) The article is quite interesting, and in my (humble) opinion doesn&amp;rsquo;t really give the PS3 a resounding thumbs up.</description>
    </item>
    
    <item>
      <title>What About Going the Other Way?</title>
      <link>/posts/what-about-going-the-other-way/</link>
      <pubDate>Thu, 19 Oct 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/what-about-going-the-other-way/</guid>
      <description>I just thought I&amp;rsquo;d add this last post as a bit of food for thought before signing off today. This link comes from a bloke who&amp;rsquo;s been through the pain of wanting to move away from Windows, only to find that the results were just as, if not more, painful than sticking to what he knew. Have a read of this blog entry to see that the grass isn&amp;rsquo;t necessarily greener.</description>
    </item>
    
    <item>
      <title>Open Sauce</title>
      <link>/posts/open-sauce/</link>
      <pubDate>Wed, 18 Oct 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/open-sauce/</guid>
      <description>I&amp;rsquo;ve been interested in Open Source Software (OSS) for quite some time now but I&amp;rsquo;ve never really attempted to find out much about it, nor how I can contribute. Of course, being a professional developer, the immediate thought is &amp;ldquo;I make a living off writing software, so how does that work with Open Source?&amp;rdquo;.
After reading all the news about Vista and it&amp;rsquo;s attempts to completely revoke my rights as a user, my interest in the OSS movement in general has increased, and I do feel it&amp;rsquo;s time for me to not only get a better understanding of what it is and how it works, but how I can contribute to it.</description>
    </item>
    
    <item>
      <title>Virtual Vista Stuff-Up</title>
      <link>/posts/virtual-vista-stuff-up/</link>
      <pubDate>Tue, 17 Oct 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/virtual-vista-stuff-up/</guid>
      <description>OK, so it looks like I might have been misinformed (er&amp;hellip; wrong :)) by stating that the basic versions of Vista can&amp;rsquo;t be installed on VMs. That&amp;rsquo;ll teach me not to read the licencing details properly myself! It looks like it was a slight misunderstanding of the terms and structure that MS used in stating the rules. I won&amp;rsquo;t go into the details myself since Ed Bott has already done it for me.</description>
    </item>
    
    <item>
      <title>Google Code Search</title>
      <link>/posts/google-code-search/</link>
      <pubDate>Mon, 16 Oct 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/google-code-search/</guid>
      <description>The Search Kings have come up with another rippin&amp;rsquo; tool which allows you to crawl through source code for examples and whatnot. The Google Code Search is quite a cool utility - but it doesn&amp;rsquo;t come without it&amp;rsquo;s issues. I found an interesting link worthy of reading which talks about a few amusing results returned from this facility, which I reckon lots of people should check out and be aware of.</description>
    </item>
    
    <item>
      <title>More Vista Madness</title>
      <link>/posts/more-vista-madness/</link>
      <pubDate>Mon, 16 Oct 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/more-vista-madness/</guid>
      <description>And so the Vista malarky continues! More and more details of the behemoth that is Vista are coming to light which, quite frankly, freak me out even more.
First of all, Microsoft won&amp;rsquo;t let you run some Vista editions virtualised, which is a bit of a surprise. Why would they push for free Virtual PC software and then not let you use some basic versions of the new OS under such a set up?</description>
    </item>
    
    <item>
      <title>Groovey Honda Commercial</title>
      <link>/posts/groovey-honda-commercial/</link>
      <pubDate>Sun, 15 Oct 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/groovey-honda-commercial/</guid>
      <description>Just a quick post for you guys this morning. Me ol&amp;rsquo; mucka Tommy Lee pointed me at a cool website this morning with a link to YouTube - The Best Honda Commercial Ever. Very cool stuff! Check it out. Apparently, all the sound effects were made by people!</description>
    </item>
    
    <item>
      <title>Get Away from that Computer!</title>
      <link>/posts/get-away-from-that-computer/</link>
      <pubDate>Sat, 14 Oct 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/get-away-from-that-computer/</guid>
      <description>I know I shouldn&amp;rsquo;t laugh about this, but I couldn&amp;rsquo;t help it :)
Any geek that&amp;rsquo;s in a relationship has probably heard the words &amp;ldquo;GET AWAY FROM THAT !$@*ING COMPUTER!&amp;rdquo; (or something along those lines) more than once. Even if you haven&amp;rsquo;t, you might have heard it from your mum when you were a budding geek (as I was).
After reading this article on The Inquirer I couldn&amp;rsquo;t help but think that this bloke had hard that phrase possibly one too many times?</description>
    </item>
    
    <item>
      <title>GooTube</title>
      <link>/posts/gootube/</link>
      <pubDate>Sat, 14 Oct 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/gootube/</guid>
      <description>Yes this is old news to anyone who reads any form of news :) But Google have bought YouTube! How exciting. Personally, I&amp;rsquo;m very happy for those lads who set YouTube up in the first place. The idea was based on the need to share some large homes videos of parties with mates who weren&amp;rsquo;t there, and it&amp;rsquo;s turned into a multi-billion dollar empire. It&amp;rsquo;s good to hear that there are people out there like this still making something big for themselves for having the balls to give it a go.</description>
    </item>
    
    <item>
      <title>Microsoft Vista Licence Restrictions</title>
      <link>/posts/microsoft-vista-licence-restrictions/</link>
      <pubDate>Sat, 14 Oct 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/microsoft-vista-licence-restrictions/</guid>
      <description>The Inquirer has posted up some info on the Microsoft Vista licence restrictions and boy does it sound awful. Not only will it cost you an arm and a leg to buy it, you&amp;rsquo;ll probably have to upgrade to get it to run, and after you&amp;rsquo;ve upgraded you&amp;rsquo;ll probably never be allowed to upgrade again - otherwise you&amp;rsquo;ll need a new copy of Vista!
So, you&amp;rsquo;re screwed in more ways than one.</description>
    </item>
    
    <item>
      <title>Scott Adams&#39; Blog</title>
      <link>/posts/scott-adams-blog/</link>
      <pubDate>Sat, 14 Oct 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/scott-adams-blog/</guid>
      <description>You&amp;rsquo;ve probably all guessed by now that I&amp;rsquo;m a bit of a Dilbert fan, especially considering that it feels like a I work with most of those characters!
While browsing through the recent cartoons, I noticed that there was a link to Scott Adam&amp;rsquo;s Blog which I proceeded to follow and I was greeted with some really interesting reading. So if you&amp;rsquo;ve got some time to kill and are interested in getting into the amazing mind of the man behind Dilbert, get on over there and have a read!</description>
    </item>
    
    <item>
      <title>The Vista &#39;Squeeze&#39; Begins</title>
      <link>/posts/the-vista-squeeze-begins/</link>
      <pubDate>Sat, 14 Oct 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/the-vista-squeeze-begins/</guid>
      <description>Oh look, MS are already starting to cull their software support list. Does anyone else get the feeling that this is just another step towards pushing people into an unwanted early-adoption of Microsoft Handcuffs &amp;trade; (a.k.a Vista)?</description>
    </item>
    
    <item>
      <title>Learning Code Security</title>
      <link>/posts/learning-code-security/</link>
      <pubDate>Fri, 13 Oct 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/learning-code-security/</guid>
      <description>As a regular read of Scott Gu&amp;rsquo;s blog (see blogroll) I often find nuggets of information that are handy for the work that I do, but I also often end up with a few questions :)
The latest one that fired up a bit of thought was his post on guarding against SQL injection attacks. The information posted very handy, and is something that I would assume most web developers already know, but it made me wonder how many devs out there are actually aware of these kinds of issues while they&amp;rsquo;re building their applications.</description>
    </item>
    
    <item>
      <title>Challenge #2 - The Recursive Ruler</title>
      <link>/posts/challenge-#2-the-recursive-ruler/</link>
      <pubDate>Thu, 12 Oct 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/challenge-#2-the-recursive-ruler/</guid>
      <description>I posted this problem a little while ago on the site I used to run, and it proved to be an interesting one that resulted in quite a large collection of solutions from the posters. So here it is again.
Your job is to write a program that generates a text-based ruler. For a clearer definition of what I mean, see the little text pic below:
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||  The user of the program must be able to specify a couple of parameters: those being the height of the ruler and the number of sections in the ruler (at the top level).</description>
    </item>
    
    <item>
      <title>Real-Time Flight Monitoring</title>
      <link>/posts/real-time-flight-monitoring/</link>
      <pubDate>Thu, 05 Oct 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/real-time-flight-monitoring/</guid>
      <description>I had a read of Eastabrook&amp;rsquo;s blog recently (see a link in the Blogroll) and noticed that he posted about an interesting link that he found. The link, entitled Flight Tracking in 3D, shows details of a few downloads that you can grab for Google Earth which actually show the current locations of flights that are currently in progress all over the world!!!
Unbelievable. Pretty amazing technology, and at the same time quite scary.</description>
    </item>
    
    <item>
      <title>The Day Job</title>
      <link>/posts/the-day-job/</link>
      <pubDate>Wed, 04 Oct 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/the-day-job/</guid>
      <description>I&amp;rsquo;ve been intending to write about this (and a few other things) for a while now, but due to wedding planning and work I&amp;rsquo;ve found it hard to find the time. So I&amp;rsquo;ll take the opportunity while my disk is being defragged to crank out some thoughts.
Individual developers vary in many different ways, but I&amp;rsquo;ve often wondered what motivates other people and what they consider their job to be. To be more specific, what is it that a developer feels they should be doing in their day job?</description>
    </item>
    
    <item>
      <title>ViEmu for SQL</title>
      <link>/posts/viemu-for-sql/</link>
      <pubDate>Thu, 28 Sep 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/viemu-for-sql/</guid>
      <description>Another quick note today (it&amp;rsquo;s late, and I need to sleep :)), and again it&amp;rsquo;s VIM related. The dude that made ViEmu that I mentioned a couple of days back has come up with another plugin - this time for SQL Server 2005 Managment Studio. It weighs in at a hefty USD$99.95 which, in my opinion, is quite a hefty price tag just to be able to write SQL in VIM.</description>
    </item>
    
    <item>
      <title>ViEmu - are you the answer?</title>
      <link>/posts/viemu-are-you-the-answer/</link>
      <pubDate>Tue, 26 Sep 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/viemu-are-you-the-answer/</guid>
      <description>After all my ranting and raving on what I think would be awesome to have as an IDE, I somehow stumbled across exactly what I was trying to describe. ViEmu looks to be the perfect combination of VIM and Visual Studio.
Well, I did get very excited when I saw it and so I downloaded and installed it. I&amp;rsquo;ve only had a play for an hour or so, and by the looks of it it&amp;rsquo;s very close to what I&amp;rsquo;m picturing in my mind&amp;rsquo;s eye.</description>
    </item>
    
    <item>
      <title>A pox on your DRM</title>
      <link>/posts/a-pox-on-your-drm/</link>
      <pubDate>Mon, 25 Sep 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/a-pox-on-your-drm/</guid>
      <description>I can no longer resist the temptation to talk about DRM (at least in part) after the issues that I faced over the weekend. I know I&amp;rsquo;m not the only one that has experienced the pain that I&amp;rsquo;m about to describe, and I&amp;rsquo;m pretty pissed off about it.
I&amp;rsquo;m going to be getting married pretty soon, and as a result my fiance and I are both trying to finalise arrangements for the wedding.</description>
    </item>
    
    <item>
      <title>Does a qualification make a difference?</title>
      <link>/posts/does-a-qualification-make-a-difference/</link>
      <pubDate>Mon, 25 Sep 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/does-a-qualification-make-a-difference/</guid>
      <description>I have pondered this question since long before I graduated from University. I&amp;rsquo;ve worked with a mix of degree-qualified and self-taught people, and I&amp;rsquo;m still yet to nail the answer.
Being degree-qualified or self-taught both have their pros and cons, but at the end of the day I think that the person who has a good mix of both sides is the one that&amp;rsquo;s going to stand out. If you&amp;rsquo;re keen to make a go of your career then you should want to give yourself the best chance of getting work in the field by studying it formally at University.</description>
    </item>
    
    <item>
      <title>Get FartFox</title>
      <link>/posts/get-fartfox/</link>
      <pubDate>Sat, 23 Sep 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/get-fartfox/</guid>
      <description>I came across some info on The Inquirer earlier today regarding Firefox&amp;rsquo;s logo (shown on the right) that&amp;rsquo;s being used for the Japanese version. As the link above states:The new logo for its Japanese Fire Fox, Foxkeh, was apparently chosen out of a field of 600.How could they not see the issue with the image before releasing it to the world?
Not that it matters ;) I like the logo - it implies that Firefox is shit hot, which I think it is :)</description>
    </item>
    
    <item>
      <title>Yarr me hearties!</title>
      <link>/posts/yarr-me-hearties/</link>
      <pubDate>Fri, 22 Sep 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/yarr-me-hearties/</guid>
      <description>In light of the recent International Talk Like a Pirate Day, I thought I&amp;rsquo;d have a quick rant about piracy. This is a bit of a touchy subject and I&amp;rsquo;m sure that everyone&amp;rsquo;s got their opinion, but I think that there are (or at least were a few years back) both good and bad sides to piracy.
First we should become clear on the types of piracy we&amp;rsquo;re talking about so there&amp;rsquo;s no confusion.</description>
    </item>
    
    <item>
      <title>All joking aside, I have to have a Wii</title>
      <link>/posts/all-joking-aside-i-have-to-have-a-wii/</link>
      <pubDate>Thu, 21 Sep 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/all-joking-aside-i-have-to-have-a-wii/</guid>
      <description>I&amp;rsquo;ve been a gamer for a very long time. My interest in games is what launched my programming career, and as a young kid I used to spend hours trying to figure out how those games worked on my Commodore Vic 20. Peeking and Poking was as far as I got in those days, but the interest has been around since. For many years I worked hard to try and get a job in the games industry, and with the industry here in Australia being quite hard to get into I decided to head to the U.</description>
    </item>
    
    <item>
      <title>Dealing with the CRUD</title>
      <link>/posts/dealing-with-the-crud/</link>
      <pubDate>Thu, 21 Sep 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/dealing-with-the-crud/</guid>
      <description>One of the things that I think every web developer on the planet is sick of doing is building CRUD methods for their applications. It&amp;rsquo;s the kind of thing that we seem to do as developers over and over again despite the fact that this task is essentially monkey work.
There have been quite a few attempts to nail this issue on the head in various programming camps, and it&amp;rsquo;s these attempts that I&amp;rsquo;d like to go over - partly because I&amp;rsquo;m also sick of CRUD, and partly because I don&amp;rsquo;t know enough about all of these solutions to know which one&amp;rsquo;s work best in what scenario (hopefully this is where you guys come to the rescue :)).</description>
    </item>
    
    <item>
      <title>An IDE Follow-Up</title>
      <link>/posts/an-ide-follow-up/</link>
      <pubDate>Wed, 20 Sep 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/an-ide-follow-up/</guid>
      <description>After reading Dan&amp;rsquo;s response to this a few days ago, I decided to have a bit of a play with Notepad++. I do think it&amp;rsquo;s a very nice little text editor with some lovely features. It&amp;rsquo;s quitck, it&amp;rsquo;s simple, and the syntax hilighting works a treat (no thanks to Scintilla of course). One thing I do like is that by default when line numbering is on and word-wrap is enabled, gaps appear between the numbers to indicate that a line has wrapped (I need to set up something like this with VIM, as it&amp;rsquo;s one of the things that&amp;rsquo;s currently driving me nuts).</description>
    </item>
    
    <item>
      <title>To-buntu, or not to-buntu. That is the question.</title>
      <link>/posts/to-buntu-or-not-to-buntu.-that-is-the-question./</link>
      <pubDate>Wed, 20 Sep 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/to-buntu-or-not-to-buntu.-that-is-the-question./</guid>
      <description>Right now I&amp;rsquo;m finding this question a tough one to answer. The hardcore geeks out there are probably saying &amp;ldquo;install all the distros you need!&amp;rdquo;, but I&amp;rsquo;m not sure if I want to do that or not. Right now, I&amp;rsquo;m thinking not, and it&amp;rsquo;s going to take a bit of time to convince me that having multiple distros installed is valuable to me.
I do want to have at least one Linux distribution running on my machine at home.</description>
    </item>
    
    <item>
      <title>Wiedererlangen von einem toten Computer</title>
      <link>/posts/wiedererlangen-von-einem-toten-computer/</link>
      <pubDate>Wed, 20 Sep 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/wiedererlangen-von-einem-toten-computer/</guid>
      <description>Computer failures. We&amp;rsquo;ve all been bitten by them, and I&amp;rsquo;m pretty sure we&amp;rsquo;ll all be bitten by them again. Good quality HDD storage is becoming more common, but despite the advances in technology, our drives still only have a reliable lifetime of a few years. Power supplies are becoming more solid, but they still blow up. Motherboards, while having more features than you poke a stick at, are still susceptable to being killed by something as simple as static electricity at the slightest touch.</description>
    </item>
    
    <item>
      <title>Finding Productivity Utopia</title>
      <link>/posts/finding-productivity-utopia/</link>
      <pubDate>Mon, 18 Sep 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/finding-productivity-utopia/</guid>
      <description>Productivity. It&amp;rsquo;s something that all of us, as developers, should be finding ways to increase. I say should because I know of a stack of people out there who don&amp;rsquo;t. In fact, there&amp;rsquo;s a surprising amount of people out there who are not only not looking to find ways to increase productivity, they seem to go out of their way to reduce it - and this doesn&amp;rsquo;t just affect their own output, it affects that of the people they work with.</description>
    </item>
    
    <item>
      <title>We&#39;ve moved!</title>
      <link>/posts/weve-moved/</link>
      <pubDate>Mon, 18 Sep 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/weve-moved/</guid>
      <description>Boy that was quick! I&amp;rsquo;m sure there&amp;rsquo;s still some DNS servers out there that need to be updated, but things certainly moved quickly. Blackapache is now on a new server, and I&amp;rsquo;m pretty darned happy with the ease and speed of the move. Not just that, but this new location feels a heck of a lot faster than the old one.
So we&amp;rsquo;re back online! Feel free to continue commenting/posting. I&amp;rsquo;ll be back later (possibly even later today) with some thoughts on episodic gaming.</description>
    </item>
    
    <item>
      <title>Server change imminent</title>
      <link>/posts/server-change-imminent/</link>
      <pubDate>Sat, 16 Sep 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/server-change-imminent/</guid>
      <description>In the next couple of days Blackapache is going to be shifting to a new server. There are a few reasons for this, but the main one is the fact that I&amp;rsquo;m frustrated and unimpressed with the level of service I&amp;rsquo;m getting with the current provider. I&amp;rsquo;m not going to directly state who it is, but it&amp;rsquo;s pretty easy to find it out ;)
I&amp;rsquo;ll be moving my site, and a couple of others, to a server here in Australia where the speed and quality of service is substantially higher thanks to NetLogistics.</description>
    </item>
    
    <item>
      <title>Who&#39;s up for a challenge?</title>
      <link>/posts/whos-up-for-a-challenge/</link>
      <pubDate>Fri, 15 Sep 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/whos-up-for-a-challenge/</guid>
      <description>Before starting this blog up, I spent a bit of time thinking about the kind of things I would like to talk about which other people might find interesting. I also wanted to find some areas of discussion where people would be interested in giving me feedback and comments containing their thoughts and opinions so that I can learn something and possibly benefit from other people&amp;rsquo;s experience. While this is all very enlightening, it can be fun and it can be, shall we say, political.</description>
    </item>
    
    <item>
      <title>Are you any good?</title>
      <link>/posts/are-you-any-good/</link>
      <pubDate>Thu, 14 Sep 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/are-you-any-good/</guid>
      <description>I was trundling through my usual collection of daily links yesterday morning (before diving into my work), and I stumbled on a link to a recent blog post by a chap called Peter Wright. There are a couple of reasons why this blog post caught my eye.
First of all, during my time in the U.K. over the last couple of years, I worked for a company in London that Peter also worked at.</description>
    </item>
    
    <item>
      <title>Is an IDE all it&#39;s cracked up to be?</title>
      <link>/posts/is-an-ide-all-its-cracked-up-to-be/</link>
      <pubDate>Tue, 12 Sep 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/is-an-ide-all-its-cracked-up-to-be/</guid>
      <description>Have the days of writing code in VIM ended? Is Emacs ready to be put to bed? Are we destined to spend the rest of our development lives heads-down in a bloated and expensive Integrated Development Environment (IDE)?
IMHO, this argument is very much a Linux vs Windows style argument.
To those long term VIM and Emacs users, there&amp;rsquo;s no reason to go an IDE like Visual Studio. Both of those editors are customisable, flexible and support a plethora of plugins and utilies.</description>
    </item>
    
    <item>
      <title>Minority Report becomes Reality?</title>
      <link>/posts/minority-report-becomes-reality/</link>
      <pubDate>Tue, 12 Sep 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/minority-report-becomes-reality/</guid>
      <description>I was hoping to find a little more time this evening to write up some thoughts about Enterprise Application Development but that&amp;rsquo;s going to have to wait since it&amp;rsquo;s getting late and I have to be up early in the morning.
So for now, I think all of you would enjoy taking a peek at something a good mate of mine in the U.K. (Mark Webster) pointed me at earlier today.</description>
    </item>
    
    <item>
      <title>Office Registration and Activation</title>
      <link>/posts/office-registration-and-activation/</link>
      <pubDate>Sun, 10 Sep 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/office-registration-and-activation/</guid>
      <description>&lt;p&gt;Yesterday I had one of those wonderful days that every geek gets to enjoy once in a while - the day of rebuilding one&amp;rsquo;s machine. In this case it wasn&amp;rsquo;t my machine it was Amy&amp;rsquo;s, but the effect is much the same :)  I went through the process of backing up, repartitioning, reinstalling WinXP Home, copying backed up files back onto the machine only to find myself stumped at the point of installing MS Office.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>It has begun</title>
      <link>/posts/it-has-begun/</link>
      <pubDate>Sat, 09 Sep 2006 00:00:00 +0000</pubDate>
      
      <guid>/posts/it-has-begun/</guid>
      <description>Those of you who know me will know that I generally feel like I have a lot to say :-) I used to write a diary back in the day, but that was quite some time ago and the site, along with its content, is long since dead. For the last couple of years I&amp;rsquo;ve been continually reading people&amp;rsquo;s blogs and found they can be quite insightful. As a geek, I tend to read more geek blogs which cover upcoming technologies, opinions on methodologies and other bits of flotsam and jetsam.</description>
    </item>
    
  </channel>
</rss>