First post!

Posted on Jan 20, 2010

Ahh, I love the smell of a fresh blog post in a shiny new website. Will no doubt be fixing up issues and migrating content etc. for a few days yet. but most of the hard work is over :)

Exponential routine maintenance

Posted on Jun 20, 2009

While its true that the things you own end up owning you. In my case its much more a case of the things I create end up owning me. The more apps, websites and samples I put up online, the more time I have to spend updating those apps and making sure old posts still have the right links as I move files around on my sites.

Case in point I was recently looking over my ftp server logs and noticed a whole bunch of requests to non-existant yet very familiar sounding filenames. It turns out that I used to host most of my files on my home ftp server, but I’ve since shifted my files to but had neglected to update any of my old blog posts to point to the new files (I’ve since fixed all those links btw).

I also had to update Tarantula following’s announcement that all Amazon Advertising API calls (formerly Amazon ECS API) calls will require authentication as of August 15th 2009. This meant that I had to remove the old web services code and replace it with signed calls to the REST API (Silverlight and Amazon’s SOAP API don’t play nice anymore).

As an aside, Amazon’s API requiring authentication is kind of a blow to open source apps that use it as to authenticate a request you need to include both your AWS ID aswell as your AWS secret key (which you are not supposed to share with anyone). This is obviously not possible in an open source app, or a desktop client application for that matter as it is possible for malicious users to get a hold of your secret key by dissasembling your binaries.

my apps site has also undergone a minor upgrade, mainly to improve performance and fix some long-standing bugs, but I’ve also added digg submission buttons for all the apps on the site. has also undergone some improvements, namely the image gallery which now uses jquery and to do some fancy AJAX goodness.

hopefully thats enough to keep things from falling apart for the near future.

Who is getting all teh lolz?

Posted on Apr 13, 2009 dotnet programming

As much as man strives to seek out knowledge and try to understand his place in the universe, some questions remain as mysterious and profound as the day when they entered our collective consciousness.

Well today is a momentous day, as it is now possible to answer with certainty, Who is getting all the lolz, and where are the lolz occurring? If you feel underwhelmed by the scope of this achievement, don’t worry, its true significance will dawn upon you in the coming weeks.

lolmap is an application that uses the Google to find and geolocate the sources of the most popular lolz on all of the internets. Use it wisely, because after all internet lolz are serious business.


Enter the Automaton

Posted on Apr 2, 2009 dotnet programming

If you’re anything like me, you have a compulsive desire to link, network and otherwise connect every electronic apparatus in the house to every other electronic apparatus in order to create a complicated web of interconnected appliances.

The most obvious example of this is the TV-PC connection to allow me to run media center or XBMC from my PC to my TV in the lounge. While this is pretty standard stuff for any self respecting geek, the geographic distance of my PC to my TV (PC’s up stairs, TV is downstairs in the lounge) means I have to run 5 cables (5.1 surround sound is largely to blame for the cablefest) out of my study, down the stairs and across the lounge to the TV and speakers. This is all well and good, and combined with the XBMC iPod app means I can control the Media center via my iPod or the infrared remote without having to go upstairs to my PC.

However I still have to switch the monitor inputs from my usual dual monitor setup to a cloned desktop with one monitor and TV out before I can see anything on the TV downstairs. Up until now I would go upstairs and do this manually if I wanted to play anything on the computer while I was in the lounge… but obviously this will not do and in the word of infomercial protagonists from time immemorial, “There has to be a better way!”

My solution was to code my way out of this conundrum by writing a nice bit of home automation software I call “Automaton”. Its an http server that runs on my main PC and allows me to submit commands to my PC from any mobile device with a web browser (an iPod touch in my case). It uses a plug-in architecture so I can easily add more automation commands in future as I find myself getting progressively lazier.

The first command I implemented does the following, start media center (or XBMC), switch the monitor configuration to TV out, and when media center is closed revert the monitor configuration back to what it was before.

The other commands are to close the currently active application (i.e media center to revert the monitor configuration), and to shut down, or put the computer into standby. This means that as long as my PC is running I can turn on media center, turn it off and turn my PC off from downstairs… now all I need to to is find a way to turn my PC on remotely and I’ll never have to get up again (I should check out some of the iPod Wake on LAN apps for this purpose methinks)

below is a screenshot of it in action, as usual you can find the source code here.

Note: By default the server runs on port 8086 (This can be changed in the configuration file) so to navigate to the server you should go to http://localhost:8086/


Writing extra plug-ins should be fairly self explanatory (if you know c#) if you have a look at the source. but if its not, let me know :) and I’ll try to help you out.

Silverlight 2.0 released to the internets

Posted on Oct 25, 2008 silverlight programming

I’ve just finished work on upgrading my Silverlight based amazon search engine app "Tarantula" to use the final release of Silverlight 2.0. Its taken a year and a half since what was first known as Silverlight 1.1 was released as an alpha (and coincidentally my first blog post here) to this latest release. In that intervening time I’ve had to upgrade the application 4 times to alpha refresh, beta 1, and beta 2 and finally to the release version.

To be honest, this latest upgrade was probably the simplest, as there were relatively few breaking changes between beta 2 and the final release, owing to the fact that Silverlight had become pretty mature and fully featured by the time the second beta rolled around. If your interested, check out Tarantula here and see the results of my efforts and frustrations :)

Latest tweet