Java Concurrency Refcard

A handy concurrency refcard from Alex Miller is now available on DZone. Most of this should be second nature for experienced Java developers, but it provides a handy summary of concurrency and reminders of some of the less frequently used (and hence more easily forgotten) classes like ConcurrentSkipListSet, Atomic*Array etc.

Achieving Inbox Zero with GMail

Some tips on using keyboard shortcuts to speed up daily GTD email chores.

I have personally been following a similar system also based upon Lifehacker’s trusted trio, but with “@” prefixes to the labels so they appear at the top of the list, filters so I can email todo items directly into my @action list and using the google labs Multiple Inboxes feature to display action/deferred/waiting emails alongside my inbox.


I have been having some problems with my employers’ remote access system which uses Aventail SonicWall. Unfortunately it seems that whilst it was previously working fine, some change to my PC means that the Aventail applet (used to verify the endpoint is running the Aventail system scanning agent) does not work correctly so access is not granted. After spending several hours on the phone to my employers’ IT Helpdesk reinstalling different versions of Firefox, IE and Java, I was told my only hope was to reinstall Windows.

Somewhat loathe to do this, at a colleague’s suggestion I decided to instead try connecting via a VM running under VirtualBox. This has been my first foray into virtualisation (other than Xen) since trying out VMWare about a decade ago. VirtualBox seems to have all of the features I remember from VMWare (with the added advantage of being free), and it was fairly quick to set up an Ubuntu VM. It also seems that network support has vastly improved from my early memories and the VM had internet access without requiring any manual intervention. And of course there is now support for hardware virtualisation (AMD-V/VT-x) which should in theory make the VM run faster.

Unfortunately stability seems to be somewhat lacking, the VM seems to hang from time to time, requiring it to be “powered off” and restarted (as a virtual reset does not seem to work). Also the “Seamless Mode” support doesn’t seem to be as seamless as I had hoped – although it does remove the guest OS’s desktop, when windows are moved or resized it seems that the “hole” in the host desktop through which they are visible does not resize with them, so the window ends up being cut off when enlarged in size or part of the guest desktop becomes visible when reduced in size.

Still, not bad for a free virtual machine…

Thanks RAID!

After occasionally wondering over the past 2 years whether spending money on extra drives to build a RAID 5 array in my desktop PC was worthwhile, I now feel vindicated after one of my drives (a Western Digital WD5000YS) failed over the weekend. Upon restarting my PC, Intel Matrix Storage Console was able to identify the failed drive, but it was impossible to actually use the computer due to constant delayed write error notifications and constant freezing. After noting down the serial number of the failed drive from Storage Console, I was able to remove the failed drive, and my PC is again working although the volume now shows Degraded status.

Even better, Western Digital have an Advance Replacement RMA program where the replacement drive is shipped immediately without needing to first return the faulty drive. They reserve the value of the replacement from your credit card, and this is not deducted as long as the faulty drive is returned within 30 days.

iPhone OS 3.0

After repeatedly retrying the upgrade for about 3 hours due to activation server errors I was finally able to upgrade by Wednesday evening.

Since then things have gone pretty smoothly. Finally having the ability to copy and paste is a godsend, as are basic things one would expect from a phone like sending contacts to other people via MMS/email (unfortunately no SMS), receiving MMSes (although it took 12 hours for O2 to respond to my activation SMS) etc.

Spotlight (the search feature on the home screen) seems useful, although emails not downloaded from the server will not be searched. In order search mails on the server, the search function inside Mail has to be used – a search box has been added which appears when scrolling all the way to the top of a mailbox in email, and after searching emails on the phone, a “Continue Search on Server” option is presented which uses the IMAP SEARCH command to search mail on the server.

The phone screen also seems to have been pimped somewhat with more information visible on the recent calls listing to show which of a contact’s numbers (home/mobile/work/etc) the entry refers to. Had a problem for a few hours after the upgrade where the names of my favourite numbers had been replaced by their telephone numbers, but that seems to have gone away on its own.

The maps application looks very slightly different, with slightly different graphic for the GPS location. Also the iPod application now supports more precise scrubbing to find a position in a track – by dragging your finger down the resolution increases. Also there are a bunch more tweaks I haven’t yet tried…

Migrating from GMail to Google Apps

A quick guide to migrating contacts, calendar, email and email filters from GMail ( to Google Apps (
Read More »

Domain Specific Languages for automated testing of FIX messaging

Via Doug Finke:

A DSL using the “Oslo” toolset that is capable of expressing order generation and responses from a range of market behaviors in terms of FIX messages in a dialect suitable for use by traders and financial engineers


Just came across this, looks like it has been around on Sourceforge for a while as part of lib-high-scale. Designed for large numbers of CPUs (e.g. Azul hardware), but microbenchmarks claim a small improvement over ConcurrentHashMap even on 2 CPUs.

Patching Apache on Debian

Steps for applying a patch to the Apache source tree and building a Debian package of the patched Apache in order to install via apt as normal.
Read More »


After planning to do this for some time, I have finally finished setting up my domain as a blog. Still not 100% finished with the layout, which required an ugly javascript hack to sort out the column heights, but at least I can start posting now!