<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
     xmlns:dc="http://purl.org/dc/elements/1.1/"
     xmlns:atom="http://www.w3.org/2005/Atom">
        <channel>
        <title>Alex Ooi - Is the juice worth the squeeze</title>
        <link>http://www.alexooi.com</link>
        <description>Alex Ooi</description>
        <language>en-us</language>
        <copyright>Copyright 2010</copyright>
        <atom:link rel="self" type="application/rss+xml" href="http://www.alexooi.com/page/subscriptions/rss"/>
                                            <item>
                <title>Parsing WSDL in Java</title>
        <link>http://www.alexooi.com/page/Parsing_WSDL_in_Java</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2012-01-31T04:47:05-0800</pubDate>
        <description>
            &lt;p&gt;
Sounds like a pretty common thing to have to do, but suprisingly hard to find a good Java library to parse a WSDL file. I ended up settling on some CXF classes which seem to do the job, albeit still not very elegantly. The main reason why I&apos;m posting here is because the use of CXFs WSDLManager and WSDLServiceBuilder  does not seem particularly well documented, and thus might otherwise be lost over time.
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Parsing_WSDL_in_Java&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>Easy Resizing in Ubuntu</title>
        <link>http://www.alexooi.com/page/Easy_Resizing_in_Ubuntu</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2011-09-02T10:48:32-0700</pubDate>
        <description>
            &lt;p&gt;
I hate having to resize windows in ubuntu. For those who have tried &lt;a href=&quot;http://mizage.com/divvy&quot; target=&quot;_blank&quot;&gt;Divvy&lt;/a&gt; then you&apos;ll probably agree it is a godsend when it comes to windows size and position management on Windows or OSX. However, there is a much easier way to resize easily in Ubuntu then installing some third party software, and until recently I didn&apos;t know about it...
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Easy_Resizing_in_Ubuntu&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>Handlers</title>
        <link>http://www.alexooi.com/page/Handlers</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2011-08-28T09:07:34-0700</pubDate>
        <description>
            &lt;p&gt;
The other day I yet again found myself using the &lt;a href=&quot;http://en.wikipedia.org/wiki/Chain-of-responsibility_pattern&quot; target=&quot;_blank&quot;&gt;Chain of Responsibility&lt;/a&gt; pattern to refactor some code that I had written a little earlier. It is one of my favorite patterns, primarily because it allows us to break a large piece of work into much smaller pieces which are far more easily re-used and unit tested. 
&lt;/p&gt;

&lt;p&gt;
I&apos;m not going to describe the pattern itself as there is probably quite a lot of literature out there already. After all, it is one of the GoF patterns! :) The wiki page that I&apos;ve linked to gives quite a good and practical description of it. Instead, I&apos;m just going to quickly describe the recent scenario that popped up where I found the pattern useful.
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Handlers&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>ReConfiguring Log4j Appenders at Runtime</title>
        <link>http://www.alexooi.com/page/ReConfiguring_Log4j_Appenders_at_Runtime</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2011-07-20T12:41:30-0700</pubDate>
        <description>
            &lt;p&gt;
Re-Configuring log4j at runtime is something we don&apos;t have to do very often, however, it can on occasion be necessary. Recently, I needed to reconfigure the location of our applications log file at runtime. The actual location was configured in a custom properties file, so there was no way to easily inject this value into our log4j.xml...  
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/ReConfiguring_Log4j_Appenders_at_Runtime&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>auto mounting samba onto ubuntu</title>
        <link>http://www.alexooi.com/page/auto_mounting_samba_onto_ubuntu</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2011-07-07T01:14:35-0700</pubDate>
        <description>
            &lt;p&gt;
this one is mainly for my own reference because its not something I do often and there seems to be a stack of alternatives out there... this is what works for me when mounting a windows network drive
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/auto_mounting_samba_onto_ubuntu&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>A new job</title>
        <link>http://www.alexooi.com/page/A_new_job</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2011-04-18T08:20:31-0700</pubDate>
        <description>
            Today I start a new job after nearly 4 years at DiUS Computing. I&apos;m on the train in and have an unfamiliar mix of excitement and apprehension. Apparrantly, according to Mien, the best part of this is that i now get to ride the same train into work and get off at the same exit of the same station as her :P
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/A_new_job&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>Using JSTLs fmt formatDate Without a Locale</title>
        <link>http://www.alexooi.com/page/Using_JSTLs_fmt_formatDate_Without_a_Locale</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2011-04-15T11:51:24-0700</pubDate>
        <description>
            &lt;p&gt;
I&apos;ve generally been using the jstl fmt tag to format dates. I haven&apos;t had any issues doing this until recently when I stumbled upon something quite bizarre? The date format string that I was specifying was being ignored under certain situations. Thus, instead of a nice date string like &quot;Tues 1st June 2010&quot;, I&apos;d end up with &quot;Tue Jun 01 16:44:40 EST 2010&quot;. 
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Using_JSTLs_fmt_formatDate_Without_a_Locale&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>Jetty welcome-file mapping</title>
        <link>http://www.alexooi.com/page/Jetty_welcome-file_mapping</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2011-04-14T02:40:58-0700</pubDate>
        <description>
            &lt;p&gt;
Recently I had to map a servlet as a &quot;welcome-file&quot; in my servlet 2.4 web.xml. This should be straightforward, however I couldn&apos;t get it to work for quite awhile. The cause of the problem turned out to be obvious, but rather annoying, in retrospect...
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Jetty_welcome-file_mapping&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>the oxfam 100km</title>
        <link>http://www.alexooi.com/page/the_oxfam_100km</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2011-04-12T09:09:10-0700</pubDate>
        <description>
            &lt;p&gt;
Last Weekend (Friday 1st April to Saturday 2nd April) we went for a walk ... a &lt;strong&gt;100km&lt;/strong&gt; walk. 
&lt;/p&gt;
&lt;p&gt;
&lt;img src=&quot;/data/uploaded/77/start_photo.jpg&quot; title=&quot;The Walkmans at the start&quot; alt=&quot;The Walkmans at the start&quot; width=600/&gt;
&lt;/p&gt;
&lt;p&gt;
Here is the story of our grand adventure...
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/the_oxfam_100km&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>Lazy fetching Hibernate property</title>
        <link>http://www.alexooi.com/page/Lazy_fetching_Hibernate_property</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2011-04-06T06:23:26-0700</pubDate>
        <description>
            &lt;p&gt;
Today I needed to do a small performance enhancement on an application using Hibernate annotations. The optimization was to ensure that a @Lob property on a Hibernate entity was lazy loaded. By default Hibernate will allow you to lazy load associations, but any lazy loading of an entities properties is not enabled by default. This is how I went about achieving the small optimization...
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Lazy_fetching_Hibernate_property&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>git branching</title>
        <link>http://www.alexooi.com/page/git_branching</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2011-03-30T12:48:12-0700</pubDate>
        <description>
            &lt;p&gt;
We&apos;ve recently needed to manage some remote branches in GIT (create and delete them). Having stumbled around google for ages trying to figure out how to do this seemingly simple task, we came up with this list of 5 commands:
&lt;/p&gt;
&lt;p&gt;
&lt;ol&gt;
&lt;li&gt;
git push origin listing_edit_steps_spike:refs/heads/listing_edit_steps_spike
&lt;/li&gt;
&lt;li&gt;
git fetch origin
&lt;/li&gt;
&lt;li&gt;
git config branch.listing_edit_steps_spike.remote origin
&lt;/li&gt;
&lt;li&gt;
git config branch.listing_edit_steps_spike.merge 
&lt;/li&gt;
&lt;li&gt;
git checkout listing_edit_steps_spike
&lt;/li&gt;
&lt;/ol&gt;
&lt;/p&gt;

&lt;p&gt;
Apparently GIT is supposed to be our saviour. If thats the case, then I&apos;d rather go on living in &quot;hell&quot;...
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/git_branching&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>Javascript ... The Good Parts</title>
        <link>http://www.alexooi.com/page/Javascript_..._The_Good_Parts</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2011-03-21T01:57:50-0700</pubDate>
        <description>
            &lt;p&gt;
A thought struck me as I was reading a chapter out of Douglas Crockfords book &quot;Javascript: The Good Parts&quot;. The chapter was titled &quot;Awful Parts&quot; in reference to the large number of less than desirable features in Javascript.
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Javascript_..._The_Good_Parts&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>regex and literals</title>
        <link>http://www.alexooi.com/page/regex_and_literals</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2011-03-18T11:29:43-0700</pubDate>
        <description>
            &lt;p&gt;
I&apos;m in the middle of doing some string manipulation in Java. It just occurred to me, as I debugged an error in my code, that the &lt;a href=&quot;http://download.oracle.com/javase/6/docs/api/java/lang/String.html#replace(java.lang.CharSequence, java.lang.CharSequence)&quot; target=&quot;_blank&quot;&gt;String#replace&lt;/a&gt; takes a literal character sequence (i.e. another String) but the &lt;a href=&quot;http://download.oracle.com/javase/6/docs/api/java/lang/String.html#split(java.lang.String)&quot; target=&quot;_blank&quot;&gt;String#split&lt;/a&gt; takes a regex. This caused a small bug in the code I was writing as I had naively assumed that  #replace was consistent with #split and took a regex. Thus I was passing in a regular expression rather than a string literal. The result was the string sequence I wanted to replace wasn&apos;t being replaced :(
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/regex_and_literals&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>Brainless Cliched Action Movie</title>
        <link>http://www.alexooi.com/page/Brainless_Cliched_Action_Movie</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2011-03-17T11:52:54-0700</pubDate>
        <description>
            &lt;p&gt;
Its been awhile since I&apos;ve seen something brainless and entertaining with lots of explosions, screaming and killing that ends with a typically cliched hollywood ending marketed to a quintessential yankie audience...
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Brainless_Cliched_Action_Movie&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>Dynamic CSS Generation</title>
        <link>http://www.alexooi.com/page/Dynamic_CSS_Generation</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2011-03-16T03:47:44-0700</pubDate>
        <description>
            &lt;p&gt;
Here is an interesting little thing relating to dynamic CSS generation...
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Dynamic_CSS_Generation&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>less css</title>
        <link>http://www.alexooi.com/page/less_css</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2011-03-16T03:16:59-0700</pubDate>
        <description>
            &lt;p&gt;
Recently I&apos;ve integrated SASS, Blueprint and Compass into our RoR application. The question I had was how to achieve these same results in a non-RoR application.
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/less_css&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>Bizarro World</title>
        <link>http://www.alexooi.com/page/Bizarro_World</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2011-03-16T01:01:00-0700</pubDate>
        <description>
            &lt;p&gt;
Most of us have had experience working on projects where tight deadlines result in corners being cut and quality being sacrificed in the attempt to push an application into production. But I can&apos;t help but wonder what would a typical project in a &lt;a href=&quot;http://en.wikipedia.org/wiki/Bizarro_World&quot; target=&quot;_blank&quot;&gt;Bizarro World&lt;/a&gt; look like? 
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Bizarro_World&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>CSS3</title>
        <link>http://www.alexooi.com/page/CSS3</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2011-03-10T12:13:15-0800</pubDate>
        <description>
            &lt;p&gt;
I&apos;ve started playing with aspects of CSS3, since it seems to be &lt;strong&gt;mostly supported&lt;/strong&gt; in every single browser &lt;strong&gt;except&lt;/strong&gt; ANY fully released version of Internet Explorer. Can you spot the various CSS3 additions to my blog?
&lt;/p&gt;
&lt;p&gt;
I&apos;ll be adding more CSS3 styles here over the next few weeks. The animation capabilities and support for &lt;a href=&quot;http://www.css3.info/preview/web-fonts-with-font-face/&quot; target=&quot;_blank&quot;&gt;web fonts&lt;/a&gt; in particular are very interesting....
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/CSS3&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>random EJB thoughts</title>
        <link>http://www.alexooi.com/page/ejb3</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2011-02-22T10:42:49-0800</pubDate>
        <description>
            &lt;p&gt;
Been re-visiting EJB-land after having done a fair bit of Spring/Hibernate lately. Especially focussing on EJB3 and JEE 5. A few things struck me as interesting ...
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/ejb3&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>You know a standup is out of control ...</title>
        <link>http://www.alexooi.com/page/You_know_a_standup_is_too_big_...</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2011-02-01T11:16:19-0800</pubDate>
        <description>
            &lt;p&gt;
&lt;ul&gt;
&lt;li&gt;
when you cannot hear what the person at the other end of the &quot;standup&quot; is saying ...
&lt;/li&gt;
&lt;li&gt;
when your standup numbers 20+ people ...
&lt;/li&gt;
&lt;li&gt;
when your standup takes 30 minutes to complete ...
&lt;/li&gt;
&lt;li&gt;
when you&apos;re not sure whether you&apos;re in a standup, iteration-kickoff, or a meeting ...
&lt;/li&gt;
&lt;li&gt;
when you can&apos;t see all the team members in your standup because the standup is soo big that they are literally standing around a corner...
&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;

&lt;p&gt;
These all describe the &quot;standup&quot; at my current project... It is lovely
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/You_know_a_standup_is_too_big_...&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>java web start security issue</title>
        <link>http://www.alexooi.com/page/java_web_start_security_issue</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2011-01-20T12:32:04-0800</pubDate>
        <description>
            &lt;p&gt;
I&apos;ve just recently been exploring Java Web Start as an alternative way to distribute a java app that I&apos;m working on and came across this little black hole ...
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/java_web_start_security_issue&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>in the hot seat</title>
        <link>http://www.alexooi.com/page/in_the_hot_seat</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2011-01-19T01:57:36-0800</pubDate>
        <description>
            &lt;p&gt;
So I&apos;m literally helping out some new QAs to setup their environment as I type this. During which our conversation ran into the following train wreck ...
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/in_the_hot_seat&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>Rubymine Tightness</title>
        <link>http://www.alexooi.com/page/Rubymine_Tightness</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2011-01-05T04:13:04-0800</pubDate>
        <description>
            &lt;p&gt;
They boys at Jetbrains don&apos;t seem to like to make older versions of &lt;a href=&quot;http://www.jetbrains.com/ruby/&quot; target=&quot;_blank&quot;&gt;Rubymine&lt;/a&gt; available. Which is rather disrespectful of all those poor souls who have actually bought licenses for the older version and for whatever reason have misplaced the binaries.
&lt;/p&gt;

&lt;p&gt;
Anyway, it took me awhile to dig one up but &lt;a href=&quot;http://alexooi.com/downloads/applications/rubymine/2.0/JetBrains.RubyMine.v2.0.tar.gz&quot; target=&quot;_blank&quot;&gt;here is a tarball&lt;/a&gt; containing 3 versions of rubymine 2.0; one for each of Linux, Windows and OSX.
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Rubymine_Tightness&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>just a random thought</title>
        <link>http://www.alexooi.com/page/just_a_random_thought</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2010-12-16T09:15:52-0800</pubDate>
        <description>
            &lt;p&gt;
Just a random thought ... 
&lt;/p&gt;
&lt;p&gt;
if a developer doesn&apos;t write tests then the sun still rises and the world still goes round ...
&lt;/p&gt;
&lt;p&gt;
software still gets written and people still make money ...
&lt;/p&gt;
&lt;p&gt;
... just something random that I thought off after reflecting on the portrayal of mark zuckerburg in the social network
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/just_a_random_thought&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>oxfam trailwalker update 1</title>
        <link>http://www.alexooi.com/page/oxfam_trailwalker_update_1</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2010-12-13T12:23:15-0800</pubDate>
        <description>
            &lt;p&gt;
so I&apos;m registered as part of a 4 man team to walk the &lt;a href=&quot;http://www2.oxfam.org.au/trailwalker/Melbourne/&quot; target=&quot;_blank&quot;&gt;oxfam trailwalker melbourne&lt;/a&gt; event in April. Our team page is at &lt;a target=&quot;_blank&quot; href=&quot;http://www2.oxfam.org.au/trailwalker/Melbourne/team/225&quot;&gt;The Walkmans&lt;/a&gt; ... The main idea is that we&apos;ll have 48 hours to walk 100km of varying terrain with the intent of raising donations for oxfam to fight crap like poverty, abuse, blah blah blah
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/oxfam_trailwalker_update_1&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>social networking</title>
        <link>http://www.alexooi.com/page/social_networking</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2010-12-12T10:46:13-0800</pubDate>
        <description>
            &lt;div style=&quot;float:right;padding-left:10px;&quot;&gt;
&lt;img alt=&quot;The Social Network&quot; src=&quot;/data/uploaded/36/The_Social_Network_6.jpeg&quot; style=&quot;height:300px&quot; /&gt;
&lt;/div&gt;
&lt;div style=&quot;height:300px;&quot;&gt;
&lt;p&gt;
Just saw social network the other night. It really is the standout movie soo far this year for best picture and screenplay oscars ... oh, and Jesse Eisenberg really should be the frontrunner for best actor too for his brilliant portrayal of Mark Zuckerburg  ... blardy oath, even Justin Timberlake was brilliant!
&lt;/p&gt;

&lt;p&gt;
seriously ... for all those facebook haters out there ... forget that it is a movie about facebook ... based purely on the criterias of what constitutes a &quot;good&quot; movie ... you know .... aspects such as directing, filming, script, acting ... it &lt;strong&gt;excels&lt;/strong&gt; in them all!!
&lt;/p&gt;

&lt;p&gt;
The opening scene is brilliant ... it grabs you and the rest of the movie just simply never lets you go!
&lt;/p&gt;
&lt;/div&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/social_networking&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>Time and Alias</title>
        <link>http://www.alexooi.com/page/Time_and_Alias</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2010-09-27T10:26:49-0700</pubDate>
        <description>
            &lt;p&gt;
Just a little thing I found handy ... wrapping commonly used commands with &lt;strong&gt;&apos;time&apos;&lt;/strong&gt; using the *nix &lt;strong&gt;&apos;alias&apos;&lt;/strong&gt; command to always get timing information ...
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Time_and_Alias&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>get over it</title>
        <link>http://www.alexooi.com/page/get_over_it</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2010-09-22T02:12:12-0700</pubDate>
        <description>
            &lt;p&gt;
Why do I feel that I have to grovel and apologize to the software gods every time i run a maven command?! Lately all I&apos;ve seen on twitter/yammer or heard in-person are people bagging out Maven ... Well I&apos;ve had it.
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/get_over_it&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>Changing Codes</title>
        <link>http://www.alexooi.com/page/Changing_Codes</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2010-08-19T09:56:53-0700</pubDate>
        <description>
            &lt;p&gt;
Without getting into the complexity of Ruby I do find that, at the very simplest level, I constantly have to keep reminding myself of what &quot;types&quot; each variable within my scope is ... i can literally feel my brain doing gymnastics during the day :P it usually goes:
&lt;/p&gt;

&lt;pre&gt;
&quot;variable a is a String, variable b is an integer, 
variable C is of that Class, variable d is a Hash ... 
um, what was variable a again?!?!&quot;
&lt;/pre&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Changing_Codes&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>What I want</title>
        <link>http://www.alexooi.com/page/What_I_want</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2010-08-17T03:06:16-0700</pubDate>
        <description>
            &lt;p&gt;
Earlier today I was thinking about what would make my current Ruby on Rails experience more enjoyable. Some of the things that made it into my wish list were ...
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/What_I_want&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>Bash Logins</title>
        <link>http://www.alexooi.com/page/Bash_Logins</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2010-08-10T01:10:38-0700</pubDate>
        <description>
            &lt;p&gt;
So I had two terminal windows open... both logged into a remote box as the same user. 
I then ran the command &lt;strong&gt;gem list&lt;/strong&gt; in both terminals ...
&lt;/p&gt;

&lt;p&gt;
The result of that on box 1 was:
&lt;pre&gt;
*** LOCAL GEMS ***

mongrel (1.1.5)

ci@hudson:
&lt;/pre&gt;
&lt;/p&gt;

&lt;p&gt;
And the result of that on box 2 was:
&lt;pre&gt;
*** LOCAL GEMS ***


ci@hudson:
&lt;/pre&gt;
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Bash_Logins&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>rubyman</title>
        <link>http://www.alexooi.com/page/rubyman</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2010-08-03T03:37:08-0700</pubDate>
        <description>
            &lt;p&gt;
rubyman &amp;#9835; &amp;#9836;
&lt;br/&gt;
rubyman &amp;#9834; &amp;#9835;
&lt;br/&gt;
does whatever a rubyman can&amp;#9834; &amp;#9836;
&lt;br/&gt;
spins a web, any size  &amp;#9836; &amp;#9834; 
&lt;br/&gt;
catches bugs, just like flies &amp;#9834; &amp;#9835;
&lt;br/&gt;
look out ...
&lt;br/&gt;
here comes the RUUUUUBYYYYYY-MAAAAAAN
&lt;/p&gt;
&lt;p&gt;
ba bum! &amp;#9833;&amp;#9834;&amp;#9833;&amp;#9834;
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/rubyman&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>Apple Fanboy</title>
        <link>http://www.alexooi.com/page/Apple_Fanboy</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2010-07-30T07:43:58-0700</pubDate>
        <description>
            &lt;p&gt;
Is it just me or has most of the world gone crazy? I&apos;m referring, of course, to reports of the 
&lt;a href=&quot;http://www.theage.com.au/digital-life/iphone/iphone-4-lands-at-last-but-stocks-dwindle-20100729-10xpq.html&quot; target=&quot;_blank&quot;&gt;iPhone 4 launch&lt;/a&gt; that happened overnight.
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Apple_Fanboy&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>Do Not Cucumber Me</title>
        <link>http://www.alexooi.com/page/Do_Not_Cucumber_Me</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2010-07-28T07:23:36-0700</pubDate>
        <description>
            &lt;p&gt;
Over the last 6 or so months I&apos;ve come to really detest &lt;a href=&quot;http://cukes.info/&quot; target=&quot;_blank&quot;&gt;Cucumber&lt;/a&gt; ... I use it not because I want to but only because I have to. When I find time I will elaborate on this more...
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Do_Not_Cucumber_Me&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>The Tech Council</title>
        <link>http://www.alexooi.com/page/The_Tech_Council</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2010-07-23T02:04:49-0700</pubDate>
        <description>
            &lt;p&gt;
Something I heard at standup this morning struck me as mildly amusing. Seems that my latest client site has coined a new term ... the &lt;strong&gt;Tech Council&lt;/strong&gt;
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/The_Tech_Council&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>Who Needs Video Replays?</title>
        <link>http://www.alexooi.com/page/Who_Needs_Video_Replays</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2010-06-28T03:40:57-0700</pubDate>
        <description>
            &lt;p&gt;
Two interesting calls in two matches overnight. Seems that hordes of people are calling for video replays to be introduced to soccer. I, however, am left wondering what the big fuss is about? After all, the referees were &lt;strong&gt;spot on&lt;/strong&gt; in all their decisions overnight. Proof, you ask? Then proof you will get!!!
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Who_Needs_Video_Replays&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>Big Mistake Upgrading to iOS4</title>
        <link>http://www.alexooi.com/page/Big_Mistake_Upgrading_To_iOS4</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2010-06-25T09:08:56-0700</pubDate>
        <description>
            &lt;p&gt;
I recently updated my iPhone 3G (without the S) to the iOS4 operating system. Huge mistake :( Now my phone is sooooooooo slow it is sometimes unusable. Applications such as the iPod and SMS and contacts take aaaaaggeeeeeees to load when before it was instantaneous. Safari often hangs whenever I try to type anything into the URL or the search bar, and switching between tabs sometimes causes it to crash. Worse of all, &lt;a href=&quot;http://www.onemanleft.com/tilttolive/index.php&quot; target=&quot;_blank&quot;&gt;my absolute favorite game (Tilt To Live)&lt;/a&gt; often crashes when loading. And when it does load it will often lag to a crawl during gameplay when a lot of &quot;action&quot; is happening on the screen. 
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Big_Mistake_Upgrading_To_iOS4&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>A Simpson View on Soccer</title>
        <link>http://www.alexooi.com/page/A_Simpson_View_On_Soccer</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2010-06-24T10:40:55-0700</pubDate>
        <description>
            &lt;p&gt;
I was having a brief discussion this morning with a former colleague of mine on the appeal of soccer. To describe him as not a fan of the sport would be a gross understatement! In making his point, he referred to how boring it often seemed when, in his own words, players would appear to:
&lt;/p&gt;

&lt;pre&gt;
Kick the ball to the centre, kick it back to the wing, 
kick the ball to the centre, kick it back to the wing, 
repeat until the oppposition has fallen asleep
and then take a chance and kick it forward...
&lt;/pre&gt;

&lt;p&gt;
It reminded me of a classic Simpsons episode when soccer came to Springfield. Check this video out, its a classic:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.youtube.com/watch?v=noOHdTQd6H8&quot; target=&quot;_blank&quot;&gt;Soccer Bug Hits Springfield&lt;/a&gt;
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/A_Simpson_View_On_Soccer&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>Karma</title>
        <link>http://www.alexooi.com/page/Karma</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2010-06-21T12:33:55-0700</pubDate>
        <description>
            &lt;p&gt;
Before you start complaining about the unfair &lt;a href=&quot;http://www.theage.com.au/world-cup-2010/world-cup-news/brazil-boss-sees-red-over-controversial-kaka-sending-off-20100621-ypn3.html&quot; target=&quot;_blank&quot;&gt;red card dealt out to Kaka&lt;/a&gt; in the &lt;a href=&quot;http://soccernet.espn.go.com/report?id=264069&amp;cc=3436&amp;ver=global&quot; target=&quot;_blank&quot;&gt;recent match between Brazil and C&#195;&#180;te d&apos;Ivoire at the 2010 World Cup&lt;/a&gt;, think back 8 years to the 2002 world cup to the match between Brazil and Turkey. One of Brazils forwards, Rivaldo, may have been many things in his career, but a fair player he surely was not. This particular incident, best described as Rivaldo &lt;a href=&quot;http://www.youtube.com/watch?v=UgfRCa71Kmw&amp;feature=PlayList&amp;p=DE0EEC7C081279B4&amp;playnext_from=PL&amp;playnext=1&amp;index=61&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;clutching-his-face-in-agony-when-knocked-in-the-shins&quot;&lt;/strong&gt;&lt;/a&gt;, was possibly the worst case of un-sportsmanlink behavior I&apos;ve ever seen!
&lt;/p&gt;

&lt;p&gt;
This certainly does not excuse the play acting by the C&#195;&#180;te d&apos;Ivoire player. However, I must admit that I found it difficult to feel any sort of sympathy for the Brazilians in this case. In fact, I found the irony downright hilarious!!! My only annoyance was that the C&#195;&#180;te d&apos;Ivoire could not make the most of their one man advantage to eek out a result. &lt;strong&gt;Karma anyone?&lt;/strong&gt;
&lt;/p&gt;




            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Karma&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>The World Cup</title>
        <link>http://www.alexooi.com/page/The_World_Cup</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2010-06-12T09:20:53-0700</pubDate>
        <description>
            &lt;div style=&quot;float:right;padding:10px;&quot;&gt;
&lt;img src=&quot;/data/uploaded/9/2010_logo_large.jpg&quot; alt=&quot;The World Cup 2010&quot;/&gt;
&lt;/div&gt;

&lt;div&gt;

&lt;p&gt;
3 Matches a day for most days ... 9.30pm, 12am, and 4.30am each day ... Not gonna bother with games like NZ vs Slovakia or Algeria vs Slovenia. But for most others then &lt;strong&gt;I&apos;ll be watching!!!&lt;/strong&gt;. It&apos;ll be another 4 long years before the next WC...
&lt;/p&gt;

&lt;p&gt;
Last world cup I made the mistake of chickening out... I actually went to sleep when I got tired, and I even missed the &lt;a href=&quot;http://en.wikinews.org/wiki/Australia_draws_with_Croatia_2-2,_advances_to_next_round_in_Group_F&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;Australia vs Croatia&lt;/strong&gt;&lt;/a&gt; nail biter ... &lt;strong&gt;Not This Time Round!!!&lt;/strong&gt;. For those interested, &lt;a href=&quot;/data/uploaded/10/world_cup_schedule.pdf&quot; target=&quot;_blank&quot;&gt;here is the SBS schedule&lt;/a&gt;... I&apos;ve got it on my desktop. You Should too!!!
&lt;/p&gt;

&lt;p&gt;
In the meantime, life will be put on hold ... Or at least I&apos;ll be doing just the basics, like work and eating ;)
&lt;/p&gt;

&lt;p&gt;
This is sooooo exciting :D
&lt;/p&gt;

&lt;/div&gt;&lt;br clear=&quot;all&quot;/&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/The_World_Cup&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>Proper Messages in Version Control Commits ... please</title>
        <link>http://www.alexooi.com/page/Proper_Messages_in_Version_Control_Commits_please</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2010-06-11T12:53:52-0700</pubDate>
        <description>
            &lt;p&gt;
Today a colleague of mine had to fix a test that was broken. We looked at the test class but couldn&apos;t figure out, for the life of us, why this particular change had been made. An ID of a parent entity had been changed, but its associations hadn&apos;t been updated to use the new ID in their foreign keys that referenced the parent. Thus, the test was failing to save the associations.
&lt;/p&gt;

&lt;p&gt;
Thinking that the commit messages would be a good place to start, we promptly looked at it and discovered this gem:
&lt;/p&gt;

&lt;pre&gt;
AATWO-450 - Modified NSSwapServiceJpaDaoIntegrationTest
&lt;/pre&gt;

&lt;p&gt;
um ... yeh ... that was it ... 
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Proper_Messages_in_Version_Control_Commits_please&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>Software Developers</title>
        <link>http://www.alexooi.com/page/Software_Developers</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2010-06-11T08:49:55-0700</pubDate>
        <description>
            &lt;p&gt;
One of my colleagues, not a developer, was recently complaining to me about some grief that a couple of developers were causing him. It got me thinking that us software developers are a funny bunch. We can be difficult to work with because our values can differ from what the business might value. Often at the most inconvenient of moments....
&lt;/p&gt;
&lt;p&gt;
So, anyway... getting back to my colleague. I listened to his complaints for awhile then replied with this: &lt;strong&gt;&quot;Don&apos;t you hate developers? You can&apos;t live with them but you just can&apos;t live without them!&quot;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Hahaha ... aren&apos;t relationships tough?! ;)
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Software_Developers&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>Why I Love Reading Other Peoples Code</title>
        <link>http://www.alexooi.com/page/Why_I_Love_Reading_Other_Peoples_Code</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2010-06-04T01:41:52-0700</pubDate>
        <description>
            &lt;p&gt;
I just read this and found it really interesting. I think most developers are like this. Certainly we&apos;ve had some recent problems where developers have been a little hesitant to delve into foreign code on a legacy app, and the following post has some good points about this:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.skorks.com/2010/05/why-i-love-reading-other-peoples-code-and-you-should-too/&quot; target=&quot;_blank&quot;&gt;Why I Love Reading Other Peoples Code And You Should Too&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
I don&apos;t agree with everything he says, but he has &lt;strong&gt;alot&lt;/strong&gt; of good points. Certainly his main premise is extremely poignant; that not being afraid of delving into code written by another developer is a highly desirable attribute.
&lt;/p&gt;

&lt;p&gt;
I also noticed that he uses alot of random pictures in his posts. I think I&apos;ll start doing this too!!!
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Why_I_Love_Reading_Other_Peoples_Code&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>Choose Your Own Advertisement</title>
        <link>http://www.alexooi.com/page/Choose_Your_Own_Advertisement</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2010-06-03T10:17:52-0700</pubDate>
        <description>
            &lt;p&gt;
In what seems to be a throwback to the days of those &quot;choose your own adventure&quot; books, The Age (or smh for those lovely Sydney siders) now seems to be allowing us the dubious pleasure of choosing our own advertisement to watch before videos start. 
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Choose_Your_Own_Advertisement&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>Worlds Best Boss</title>
        <link>http://www.alexooi.com/page/Worlds_Best_Boss</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2010-06-03T10:45:51-0700</pubDate>
        <description>
            &lt;p&gt;
I was randomly browsing Zazzle today and came across this little gem:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.zazzle.com/best+boss+mugs&quot; target=&quot;_blank&quot;&gt;
&lt;img src=&quot;/data/uploaded/7/worlds_best_boss.jpg&quot; border=&quot;0&quot; title=&quot;Worlds Best Boss Mug&quot; alt=&quot;Worlds Best Boss Mug&quot;/&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
I can think of some people at my previous client sites where &lt;a href=&quot;http://www.zazzle.com/best+boss+mugs&quot; target=&quot;_blank&quot;&gt;a gift like this&lt;/a&gt; would be &lt;strong&gt;ironically&lt;/strong&gt; funny :)
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Worlds_Best_Boss&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>Transparency Gets You Shot</title>
        <link>http://www.alexooi.com/page/Transparency_Gets_You_Shot</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2010-06-01T12:44:51-0700</pubDate>
        <description>
            &lt;p&gt;
The moral of this story? Transparency gets you shot.Now i understand why ppl who work in corporate cultures create a curtain of smoke and mirrors around their work ...
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Transparency_Gets_You_Shot&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>Understand, Don't Assume</title>
        <link>http://www.alexooi.com/page/Understand_Don_t_Assume</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2010-05-29T12:10:57-0700</pubDate>
        <description>
            &lt;p&gt;
Recent events have had me re-thinking things a bit. Sometimes, in life, we don&apos;t always have the chance to redeem our mistakes. In those cases the best we can do is &lt;strong&gt;analyse what went wrong&lt;/strong&gt; and, because we can&apos;t change others and we can&apos;t change what is gone, &lt;strong&gt;we can at least attempt to better ourselves from our experience.&lt;/strong&gt; It reminds me of a &lt;a href=&quot;http://www.youtube.com/watch?v=YY3-34EOtGg&quot; target=&quot;_blank&quot;&gt;quote from a recent movie&lt;/a&gt; that left a real mark on me... For those without a decent internet connection, or if that link has gone down, it was a line that Alfred (played by the excellent Michael Caine) delivered to Bruce (the ever brilliant Christian Bale) during one of his darkest moments in the movie. it goes something like this:
&lt;/p&gt;

&lt;pre&gt;
&quot;Why do we fall? So that we can learn to pick ourselves up again.&quot;
&lt;/pre&gt;

&lt;p&gt;
perhaps I&apos;m being dramatic ... but ... well ... this is &lt;strong&gt;one small step&lt;/strong&gt; in my attempt to get back up again ...
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Understand_Don_t_Assume&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>Improve Understandability by Encapsulating If/Else Checks in Descriptive Method Calls</title>
        <link>http://www.alexooi.com/page/Improve_Understandability_by_Encapsulating_If_Else_Checks_in_Descriptive_Method_Calls</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2010-05-27T07:27:50-0700</pubDate>
        <description>
            &lt;p&gt;
Often, IF checks result in rather hard to understand and unwieldy code. The logic for whether something is true or false can draw attention away from what the code is actually supposed to do. To help improve the understandability of your code, why not extract the &quot;checking&quot; code into its own method!  
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Improve_Understandability_by_Encapsulating_If_Else_Checks_in_Descriptive_Method_Calls&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>IntelliJ Run/Debug Shortcut</title>
        <link>http://www.alexooi.com/page/IntelliJ_Run_Debug_Shortcut</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2010-05-27T07:21:50-0700</pubDate>
        <description>
            &lt;p&gt;
A few months ago i found the &lt;a href=&quot;http://blogs.jetbrains.com/idea/2009/10/invoking-rundebug-actions-in-intellij-idea-9&quot; target=&quot;_blank&quot;&gt;Select Run/Debug Configuration and Run&lt;/a&gt; shortcut (I&apos;m not going to explain it here because it is well explained in that link). 
&lt;/p&gt;

&lt;p&gt;
I used it sparingly in the first few weeks as it generally takes some time for new shortcuts to sink in. However, just today I realized how often i use it. I now use it &lt;strong&gt;Every Single Time&lt;/strong&gt; i run something!! It is soo easy, soo convenient and soo useful. &lt;strong&gt;I reckon it also looks cool&lt;/strong&gt; having that selection list popup each and every time!! Get into the habit of hitting that alt-shift-f10/f9 key combination and you&apos;ll be taking another step towards that holy grail of never needing to take your hands off the keyboard when you&apos;re writing code!!!
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Brilliant!&lt;/strong&gt;
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/IntelliJ_Run_Debug_Shortcut&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>A Cloud Of Slaves For Each Project</title>
        <link>http://www.alexooi.com/page/A_Cloud_Of_Slaves_For_Each_Project</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2010-05-06T06:49:50-0700</pubDate>
        <description>
            &lt;p&gt;
If you need to run highly intense CI builds but your CI box isn&apos;t grunty enough to run everyone&apos;s builds at the same time, then why not farm out some of the work to an actual Developers PC? 
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/A_Cloud_Of_Slaves_For_Each_Project&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>What Is The Point In The Maven Release Plugin?</title>
        <link>http://www.alexooi.com/page/What_Is_The_Point_In_The_Maven_Release_Plugin</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2010-04-29T07:52:50-0700</pubDate>
        <description>
            &lt;p&gt;
&lt;strong&gt;I don&apos;t see any point in using the Maven Release plugin. Full Stop.&lt;/strong&gt;
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/What_Is_The_Point_In_The_Maven_Release_Plugin&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>Its funny when ...</title>
        <link>http://www.alexooi.com/page/Its_funny_when</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2010-04-28T03:07:50-0700</pubDate>
        <description>
            &lt;p&gt;
... a colleague that you&apos;re pairing with tells you that he needs a toilet break ... picks up his iPhone ... heads off ... &lt;strong&gt;and doesn&apos;t come back for 30 minutes!&lt;/strong&gt; ;)
&lt;/p&gt;
&lt;p&gt;
I think this scenario just happened to one of the dudes sitting near my desk. I thought it was poignantly funny, irrespective of whether he was gone for exactly 30 minutes or not!!! hahaha ...
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Its_funny_when&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>Shampoo Value</title>
        <link>http://www.alexooi.com/page/Shampoo_Value</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2010-04-24T09:00:50-0700</pubDate>
        <description>
            &lt;div style=&quot;float:left;&quot;&gt;
&lt;/div&gt;

&lt;div style=&quot;min-height:500px;height:500px;&quot;&gt;
&lt;p&gt;
Just occurred to me that I bought this huge bottle of Shampoo on sale about 6 months ago and its still going strong! I shampoo on average once every 2 days, and this thing only cost me $8 and its lasted me for ages!
&lt;/p&gt;
&lt;p style=&quot;text-align:centre;&quot;&gt;
&lt;img src=&quot;/data/uploaded/6/pantene.jpg&quot; title=&quot;Pantene&quot; alt=&quot;Pantene&quot;/&gt;
&lt;br/&gt;
&lt;strong&gt;1.18 litre bottle of Pantene for $8&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Honestly have to say that its gotta be one of the best 8 bucks ive ever spent!
&lt;/p&gt;
&lt;/div&gt;

            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Shampoo_Value&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>Ant?</title>
        <link>http://www.alexooi.com/page/Ant</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2010-04-24T05:36:50-0700</pubDate>
        <description>
            &lt;p&gt;
Stumbled upon &lt;a href=&quot;http://java.dzone.com/articles/introducing-ant&quot; target=&quot;_blank&quot; style=&quot;font-weight:bold;&quot;&gt;this post&lt;/a&gt; on Javalobby and couldnt help having a quiet chuckle to myself. So i decided to have a more public chuckle!! The author must have been living under a rock for the last 10 years. 
&lt;/p&gt;
&lt;p&gt;
But the more serious question is how did this article get published on a site like Javalobby?! I was already sceptical of the quality of posts there. But i really didn&apos;t expect them to stoop this low!! 
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Ant&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>I Hate Weblogic</title>
        <link>http://www.alexooi.com/page/I_Hate_Weblogic</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2010-04-20T04:49:45-0700</pubDate>
        <description>
            &lt;p&gt;
Yes. I Do ... I Hate Weblogic. I Hate It With A Vengence.
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/I_Hate_Weblogic&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>A Developers Job Is To Deliver Working Software</title>
        <link>http://www.alexooi.com/page/A_Developers_Job_Is_To_Deliver_Working_Software</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2010-04-17T01:16:49-0700</pubDate>
        <description>
            &lt;p&gt;
Strangely enough, some developers still believe that the job of testing should be left almost entirely up to a system tester. Take one of the senior Software Developers at a site I recently worked at. He believes that his job is to write code, do some quick sanity checks to make sure it doesn&apos;t fall over, and then hand it off to a tester. A very clear demarcation of roles between 2 apparently disparate and often amusingly warring parties ...
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/A_Developers_Job_Is_To_Deliver_Working_Software&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>Color Coded Scopes in IntelliJ</title>
        <link>http://www.alexooi.com/page/Color_Coded_Scopes_in_IntelliJ</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2010-04-16T06:04:49-0700</pubDate>
        <description>
            &lt;p&gt;
I&apos;ve created a scope that includes all classes relating to junit assertions (such as org.junit and org.hamcrest). I then assigned a &lt;span style=&quot;font-weight:bold;font-color:blue;&quot;&gt;bold blue&lt;/span&gt; styling to all those classes. The result? Well, I believe it makes it far easier for me to identify the most important parts of any tests... &lt;strong&gt;the assertions!&lt;/strong&gt;
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Color_Coded_Scopes_in_IntelliJ&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>Hair</title>
        <link>http://www.alexooi.com/page/Hair</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2010-04-15T11:58:46-0700</pubDate>
        <description>
            &lt;p&gt;
My hair is doing something strange. Its starting to sweep itself to one side, with a split on the other side. Basicly, its parting itself in a way that is typical of middle aged office working types. Maybe its cos it has been awhile since i last got a haircut. Longer than usual. There was a time when i would religiously use gel to spike it up every day....
&lt;/p&gt;

&lt;p&gt;
Hmmmm. Now my hairstyle is starting to resemble the geek that i am
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Hair&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>Beware of Copying and Pasting Googled Code</title>
        <link>http://www.alexooi.com/page/Beware_of_Copying_and_Pasting_Googled_Code</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2010-04-15T10:08:48-0700</pubDate>
        <description>
            &lt;p&gt;
What we do is really not rocket science. If you&apos;re going to copy and paste something from a google search, then treat it with caution!! Think about what its doing, tidy it up, and test the heck out of it (as you really should with any other code that is in your system) before you let it loose. And thats &lt;strong&gt;only if there isn&apos;t already a well established library out there that does what you need to do!!&lt;/strong&gt;
&lt;/p&gt;

            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Beware_of_Copying_and_Pasting_Googled_Code&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>Kudos to Apple ...</title>
        <link>http://www.alexooi.com/page/Kudos_to_Apple</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2010-01-28T12:01:48-0800</pubDate>
        <description>
            &lt;p&gt;
... for causing everyone to s**t their pants in anticipation of yet another &lt;a href=&quot;http://www.apple.com/ipad/features/&quot; target=&quot;_blank&quot;&gt;Apple announcement&lt;/a&gt;
&lt;/p&gt;

            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Kudos_to_Apple&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>The little things about IntelliJ</title>
        <link>http://www.alexooi.com/page/The_little_things_about_IntelliJ</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2010-01-27T09:51:47-0800</pubDate>
        <description>
            &lt;p&gt;
Yes, i know I just posted a mild rant on IntelliJ, but here is one of the reasons why I still like it soo much. IntelliJ 9.0.2 introduces a feature that allows you to resize a window without needing to use the mouse: &lt;a href=&quot;http://blogs.jetbrains.com/idea/2010/01/resize-tool-windows-with-keyboard/&quot; target=&quot;_blank&quot;&gt;Resize (tool) windows with keyboard&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Its little things like this, and the ctrl-E feature, and the alt-home feature, and the ctrl-w feature, and the 3 panel merging, and all the refactorings, and the contextual JUnit test runner, and the live templates, and the scope based colorings, and the maven integration, and so on and so forth, that keep me using IntelliJ ... Its those little things that seem to just make me more productive. I just wished they would focus more on these sort of features that allow us to be more efficient in day-to-day activities, and less on gimicky features and flaky support for third party libraries ...
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;*sigh*&lt;/strong&gt;... I&apos;m slowing finding myself in a love-hate relationship with my IDE :(
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/The_little_things_about_IntelliJ&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>Whats wrong with IntelliJ nowadays?</title>
        <link>http://www.alexooi.com/page/Whats_wrong_with_IntelliJ_nowadays</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2010-01-27T09:04:48-0800</pubDate>
        <description>
            &lt;p&gt;
Anyone noticed how bloated IntelliJ is nowadays? Seems like they are forgetting their core market (J2SE and JEE development) and are bloating it with third party support of stuff such as Flex and Grails, to name just a few.
&lt;/p&gt;

&lt;p&gt;
I just updated to Intellij 9 and, among a list of problems, are 2 pretty serious ones: subversion updates and JUnit with JDK 1.3 support.
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Whats_wrong_with_IntelliJ_nowadays&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>Got to use static factory methods more often</title>
        <link>http://www.alexooi.com/page/Got_to_use_static_factory_methods_more_often</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2010-01-22T01:30:55-0800</pubDate>
        <description>
            &lt;p&gt;
Most of us are used to creating new objects via a classes constructor. I think this stems from our first experiences of Java, where the simplest way for creating objects was simply to use a constructor. 
&lt;/p&gt;
&lt;p&gt;
However, just recently I&apos;ve started to use the static factory method technique, as outlined in Joshua Blochs Effective Java (Item #1) whenever I need to create new instances. And, having done so a few times, I don&apos;t think I&apos;ll go back to using constructors directly except in the most trivial of cases.
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Got_to_use_static_factory_methods_more_often&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>An Estimate for an Estimate</title>
        <link>http://www.alexooi.com/page/An_Estimate_for_an_Estimate</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2009-09-10T09:11:48-0700</pubDate>
        <description>
            &lt;p&gt;
My PM came up with this gem yesterday morning at standup:
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&quot;I need you to estimate the time required to give me an estimate of the work remaining&quot; &lt;/strong&gt;
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/An_Estimate_for_an_Estimate&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>Project Managers should use their budgets to bid for resources</title>
        <link>http://www.alexooi.com/page/Project_Managers_should_use_their_budgets_to_bid_for_resources</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2009-07-24T01:57:48-0700</pubDate>
        <description>
            &lt;p&gt;
One of my colleagues currently finds himself torn between two projects. The one he is currently working on and the one he is supposed to be starting next week. Problem is that lack of resources have meant that both projects need him at the same time...
&lt;/p&gt;
&lt;p&gt;
We came up with what we thought was a &apos;unique&apos; way of addressing this. Developers should be put up for auction for projects within an organization :D Each PM has a set budget for each project, and uses that budget to bid for their desired developer accordingly. Obviously, the projects with the bigger budgets can afford to purchase more developers for greater periods of time. Projects with lesser budgets can still get developers but just fewer of them for fewer amounts of time. The budget on the project is obviously relative to the projects importance and scale within the organization.
&lt;/p&gt;
&lt;p&gt;
This would follow the same model that many sporting clubs follow when bidding for players, and would solve any arguments about resourcing! If you don&apos;t have the cash, or are unwilling to put it up, then you don&apos;t get the developers you want!
&lt;/p&gt;
&lt;p&gt;
Market forces at play! hahaha...
&lt;/p&gt;
&lt;p&gt;
Obviously there are probably still some kinks that need to be ironed out before this actually gets applied to a real project =)
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Project_Managers_should_use_their_budgets_to_bid_for_resources&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>Its in the project managers best interest that we stay at work</title>
        <link>http://www.alexooi.com/page/Its_in_the_project_managers_best_interest_that_we_stay_at_work</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2009-06-25T10:02:48-0700</pubDate>
        <description>
            &lt;p&gt;One of my colleagues was a little sick (hope its not swine flu!!)... so my PM pulled out cold and flu tablets for him and offered some panadol too. She seemed rather keen to offer up her range of medicines. She was probably just being nice, but the cynic in me couldn&apos;t help but think that it really is in the project managers best interest that we stay at work! hahaha&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Its_in_the_project_managers_best_interest_that_we_stay_at_work&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>Write Proper Tests and Favour Descriptiveness over Succinctness</title>
        <link>http://www.alexooi.com/page/Write_Proper_Tests_and_Favour_Descriptiveness_over_Succinctness</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2009-06-13T11:46:48-0700</pubDate>
        <description>
            &lt;p&gt;
Descriptiveness is important when writing tests. When choosing the name of a test method, it is more important that it explains exactly what the test does, rather then being as short as possible. For example:
&lt;/p&gt;

&lt;pre name=&quot;code&quot; class=&quot;java&quot;&gt;
@Test
public void shouldSendAnEmailToAdministratorsWhenAUserMakesAPayment
&lt;/pre&gt;

&lt;p&gt;
Even better, ignore the java standard camel casing when writing test method names to further improve the readability:
&lt;/p&gt;

&lt;pre name=&quot;code&quot; class=&quot;java&quot;&gt;
@Test
public void should_send_an_email_to_administrators_when_a_user_makes_a_payment
&lt;/pre&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Write_Proper_Tests_and_Favour_Descriptiveness_over_Succinctness&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>This is how much time we have, so this is how much time it will take!!</title>
        <link>http://www.alexooi.com/page/This_is_how_much_time_we_have_so_this_is_how_much_time_it_will_take</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2009-06-12T03:13:48-0700</pubDate>
        <description>
            It just occurred to me that this is the approach to estimation that one of my Project Managers takes :) We were having a bit of a laugh about it so I decided to write it up immediately!!


            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/This_is_how_much_time_we_have_so_this_is_how_much_time_it_will_take&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>Yet Another Argument For Testing</title>
        <link>http://www.alexooi.com/page/Yet_Another_Argument_For_Testing</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2009-06-10T12:10:48-0700</pubDate>
        <description>
             I have two words to describe a software development process that does not encourage a test driven approach to building software: &lt;b&gt;unprofessional and irresponsible&lt;/b&gt; 
&lt;p&gt;Recently I had to make a fundamental and far reaching change to a software
system that I was building. I had to introduce a version column into all 
the database tables that our application was using. The reasons should be 
fairly self explanatory for anyone familiar with concurrent database access, 
and more specifically Hibernate (optimistic locking for those not in the know). 
One might argue that we should have done this from the very beginning, 
but regardless it only serves to illustrate my point.
&lt;/p&gt; 
&lt;p&gt;Upon introducing the version column to all my tables I ran all my tests 
(unit, integration and acceptance) and found that there were about 3 
integration tests broken and 10 acceptance tests. They were legitimate 
bugs that were found as part of the version column being required (Hibernate 
assumes that all entities without a version column are new values, and 
this was causing issues when updating records through the UI). After 
fixing these bugs I re-ran the tests again and all green. I checked in and 
all was happy in my software application...
&lt;/p&gt; 
&lt;p&gt;&lt;b&gt;... until I found out that about 1/3 of the application had actually been broken as a result of this change and the build was still green....&lt;/b&gt;&lt;/p&gt; 
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Yet_Another_Argument_For_Testing&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>Single Point of return is nice in Java, but essential in Ruby</title>
        <link>http://www.alexooi.com/page/Single_Point_of_return_is_nice_in_Java_but_essential_in_Ruby</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2008-09-06T09:46:48-0700</pubDate>
        <description>
            &lt;p&gt;
A single point of return from a method has usually been a stylistic point that I try to adhere to when writing Java code. Single points of returns make code easier to follow as developers do not need to scan multiple return points to understand where the method may exit and under what conditions. So, is it really just a stylistic point or an essential tool in helping to achieve better quality software? The answer, I believe, is it is stylistic in Java, but essential in Ruby.
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Single_Point_of_return_is_nice_in_Java_but_essential_in_Ruby&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>Its usually more trouble to do something properly than it is to do it half-arsed</title>
        <link>http://www.alexooi.com/page/Half_Arsed</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2008-07-18T09:31:47-0700</pubDate>
        <description>
            &lt;p&gt;Just a random thing that I heard during a conversation from my latest client. I just thought the quote was hilarious, so i typed it up immediately!&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Half_Arsed&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>A Ruby on Rails Builder Implementation</title>
        <link>http://www.alexooi.com/page/A_Ruby_on_Rails_Builder_Implementation</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2008-07-05T10:22:48-0700</pubDate>
        <description>
            &lt;p&gt;
Creating test data can often require the construction of complex data object, usually with many dependencies that need to be created at the same time as the data object. The Builder pattern greatly simplifies the code required to create such objects, and the implementation of this pattern is especially easy in a dynamic language such as Ruby. The result is a highly customizable builder that allows your tests to create very specific and complex data structures with the minimum of code.
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/A_Ruby_on_Rails_Builder_Implementation&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>Test Fixtures in Ruby on Rails do not scale</title>
        <link>http://www.alexooi.com/page/Test_Fixtures_in_Ruby_on_Rails_do_not_scale</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2008-06-17T06:45:48-0700</pubDate>
        <description>
            &lt;p&gt;
I believe Test Fixtures in Ruby on Rails are, for the most part, evil.
&lt;/p&gt;
&lt;p&gt;
The key flaws outlined in this post include:
&lt;ol&gt;
&lt;li&gt;Test Fixtures create shared test data&lt;/li&gt;
&lt;li&gt;Test Fixtures are notoriously hard to setup non-trivial data&lt;/li&gt;
&lt;li&gt;Forgetting to declare a Test Fixture leaves the database in an unknown state&lt;/li&gt;
&lt;/ol&gt;
&lt;/p&gt;
&lt;p&gt;
The solution outlined in this post:
&lt;ol&gt;
&lt;li&gt;Use Test Fixtures ONLY for data that is absolutely common to the entire test suite&lt;/li&gt;
&lt;li&gt;Create data in setup methods&lt;/li&gt;
&lt;li&gt;Implement a builder pattern for complex data relationships&lt;/li&gt;
&lt;/ol&gt;
&lt;/p&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Test_Fixtures_in_Ruby_on_Rails_do_not_scale&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>Code Responsibility, not Code Ownership</title>
        <link>http://www.alexooi.com/page/Code_Responsibility_not_Code_Ownership</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2008-05-31T10:48:47-0700</pubDate>
        <description>
             Good article about the development methodology of 2 of the founding developers of Subversion who are now at Google:
&lt;p&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a class=&quot;external&quot; href=&quot;http://www.theregister.co.uk/2008/05/30/google_open_source_talk/&quot;&gt;http://www.theregister.co.uk/2008/05/30/google_open_source_talk/
&lt;/a&gt;
&lt;/p&gt; 
&lt;p&gt;&lt;/p&gt; 
&lt;p&gt;Basicly, whilst never explicitly stated, they believe in &lt;b&gt;Code Responsibility, not Code Ownership&lt;/b&gt;. Summarized by this quote in the article:
&lt;/p&gt; 
&lt;p&gt;&lt;/p&gt; 
&lt;p&gt;&amp;quot;You have to discourage people from feeling like &apos;This is my module. I wrote this. Every change has to be approved by me,&apos;&amp;quot; Collins-Sussman argues. &amp;quot;That&apos;s very dangerous for the project as a whole.&amp;quot;
&lt;/p&gt; 
&lt;p&gt;&lt;/p&gt; 
 
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Code_Responsibility_not_Code_Ownership&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>Daily routine with continuous integration</title>
        <link>http://www.alexooi.com/page/Daily_routine_with_continuous_integration</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2008-05-29T10:20:47-0700</pubDate>
        <description>
             Following is a quick summary of a developer practicing Continuous Integration:
&lt;p&gt;&lt;/p&gt; 
&lt;p&gt;Start of the day
&lt;/p&gt; 
&lt;ol&gt; 
&lt;li&gt; Check if build is green
&lt;/li&gt; 
&lt;li&gt; Get latest if it is
&lt;/li&gt; 
&lt;li&gt; Fix build if it isn&apos;t
&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;Coding
&lt;/p&gt; 
&lt;ol&gt; 
&lt;li&gt; Write tests then write code (in that order!)
&lt;/li&gt; 
&lt;li&gt; Run local build, make sure code compiles and tests pass
&lt;/li&gt; 
&lt;li&gt; Get latest
&lt;/li&gt; 
&lt;li&gt; Run local build again
&lt;/li&gt; 
&lt;li&gt; Check in, with decent comments
&lt;/li&gt; 
&lt;li&gt; Wait for CI build to finish
&lt;/li&gt; 
&lt;li&gt; If build is red, drop everything and fix
&lt;/li&gt; 
&lt;li&gt; Otherwise, rinse and repeat as many times as you can a day (ideally 4-8 times, depending on build times)&lt;/li&gt; 
&lt;/ol&gt; 
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Daily_routine_with_continuous_integration&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>Sitting down at Standups</title>
        <link>http://www.alexooi.com/page/Sitting_down_at_Standups</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2008-05-25T07:46:47-0700</pubDate>
        <description>
            This may sound like a no-brainer, but people should stand up at a Standup.


Sounds simple? Think again. Standups at one of my most recent clients often involved the seating of all team members around a table to perform the &apos;Standup&apos;...

            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Sitting_down_at_Standups&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>Why RoR is a good fit for Agile Projects</title>
        <link>http://www.alexooi.com/page/Why_RoR_is_a_good_fit_for_Agile_Projects</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2008-05-25T06:27:47-0700</pubDate>
        <description>
            I&apos;ve recently been complaining that there is much less design decisions required when building an application in RoR compared to Java. This is for the most part a Good Thing. Rails provides for many of the frameworks and decisions that a developer needs when creating a semi-standard web application (think ActiveRecord, ActionPack, Rake, Fixtures, views models and controllers, etc..). In addition, the directory structure of most Rails apps are the same, making it easy to build and maintain Rails applications.
&lt;br/&gt;
&lt;br/&gt;
Whilst all this is great, a small part of me can&apos;t help but feel rather bored. Rails provides soo much out of the box that there is very little we need to do other than follow the well worn path of the framework. Frequent decisions that have to be made in Java, such as package structure, interface design, which framework to use, DI, etc... are simply not as important in RoR because it has, for the most part, made them for you!
&lt;br/&gt;
&lt;br/&gt;
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Why_RoR_is_a_good_fit_for_Agile_Projects&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>Rails doesn't need Dependency Injection?</title>
        <link>http://www.alexooi.com/page/Rails_doesn_t_need_Dependency_Injection</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2008-05-21T08:45:47-0700</pubDate>
        <description>
            The biggest thing that struck me when moving to &lt;a class=&quot;wikipage&quot; href=&quot;http://localhost:8080/wiki/Wiki.jsp?page=RoR&quot;&gt;RoR&lt;/a&gt; as a Java Developer, other than the absolutely outrageous syntax :), was the liberal use of &apos;static method&apos; calls (methods defined with &lt;i&gt;self.&lt;/i&gt;). Even more so was the lack of any mention of a DI framework, something which would be unheard of in any modern day java project. One of my fellow colleagues even had the nerve to casually observe that all these static method calls don&apos;t seem very OO (*gasp*)!
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Rails_doesn_t_need_Dependency_Injection&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>
            <item>
                <title>Guice and Dependency Injection in Swing Apps</title>
        <link>http://www.alexooi.com/page/Guice_and_Dependency_Injection_in_Swing_Apps</link>
        <author>ayqooi@gmail.com</author>
        <pubDate>2008-05-20T09:21:47-0700</pubDate>
        <description>
             Recently I decided to write a Java Swing app that would suck data down from a site and, through the use of configurable plugins, inteprete the data and spit it onto a console. Exactly what RSS feed readers do, but it was an excuse to try my hand at some technologies and design concepts that I&apos;ve read/heard about but didn&apos;t have the opportunity to try at work.
&lt;p&gt;&lt;/p&gt; 
&lt;p&gt;One of the key technologies of interest to me was Google&apos;s Guice as the DI framework. I&apos;d used Spring at several projects, all web based apps, and wanted to see what all the hype about Guice was about.
&lt;/p&gt; 
&lt;p&gt;&lt;/p&gt; 
&lt;p&gt;Overall, from what I saw of Guice, it is much nicer to setup and maintain than Spring, largely because it didn&apos;t require me to write hundreds of lines of XML in order to wire up a few simple beans. However, the overriding question that I have out of this is what is the best design for wiring up a standalone application using either Guice or Spring?
&lt;/p&gt; 
            &lt;p&gt;
              &lt;a target=&quot;_blank&quot; href=&quot;http://www.alexooi.com/page/Guice_and_Dependency_Injection_in_Swing_Apps&quot; &gt;&lt;strong&gt;[Read More...]&lt;/strong&gt;&lt;/a&gt;
            &lt;/p&gt;
        </description>
    </item>

                                            </channel>
</rss>
