Dec
15

Ikea’s Thin Client Woes

Lots of people tout the benefits of web applications over old fashioned fat clients or desktop applications. Yes, I agree that it solves the problem of rolling out software upgrades and requires little or no installation effort because the user just needs a web browser. People do tend to ignore the disadvantages of thin clients however. With the advent of software as a service it might be worth looking at those disadvantages before jumping on the bandwagon.
Read the rest of this entry »

Dec
15

Ubuntu Upgrade Breaks Screen Resolution

I had a couple of problems recently upgrading Ubuntu. I temporarily bricked my laptop after pressing the upgrade Ubuntu distribution button in Hardy Heron (8.04). It cost me quite a few hours or time and caused quite a bit of stress to get it fixed. Since then I’ve avoided pressing the same button on my desktop (same Ubuntu version) until I really have a lot of time to kill.

My Firefox was hopelessly out of date on my desktop so I thought I would upgrade the installed packages. Thinking that this would be less risky than a full blown distro upgrade I pressed ahead. I’ve just spent an hour fixing my graphics settings after my graphics card driver stopped working (or something like that) and I thought I should share the solution because I’m sure others will have the same problem.

Read the rest of this entry »

Dec
1

Carl and Steve

A “guest” post from Carl and Steve.  Enjoy…

Agile Software Engineering

Agile Software Engineering
Dec
1

Ilha Grande

img_24571With towering jungle covered mountains and picturesque beaches, Ihla Grande was our stop number two.  It takes several hours to reach the island by bus and then by ferry (or catamaran for the impatient).  On the island there are many species of birds and monkeys, but not a single car or motorbike.


We arrived in Mangaratiba, tired and hungry, on the docks to catch the ferry to Abraão (one of the settlements on the island), only to find that the ferry was running a Sunday service and that we’d missed the last one.

Read the rest of this entry »

Dec
1

Rio de Janeiro

img_2570

I’m currently enjoying my honeymoon with my wife Laura. We’d been planning/thinking about an exotic trip to South America for some years and our honeymoon seemed to be the perfect opportunity to finally put into motion those ideas that lay dormant on the drawing board.

In the following posts I hope to capture some of the adventure. The first stop on our journey was Rio de Janeiro. Neither Laura or I speak Portuguese, but we were hoping that it would be similar enough to Spanish for it not to be a problem. How wrong can you be? 🙂

Read the rest of this entry »

Apr
11

Goals of Test Driven Development

Why should you adopt Test Driven Development?  The answer is actually more complex than many people think.

Of course we all want to have fully tested code to ensure that the code operates as expected.  We also want to ensure that any new features do not break existing functionality (regressions), but what other reasons are there?

Read the rest of this entry »

Apr
10

Getting The Context Path (Without a HttpRequest)

Web programmers know that they shouldn’t go writing JSPs with the Context Path hard coded in them.

If you do the following:

<a href="/MyApp/path/to/controller/home.htm> Home </a>

You’ll notice that as soon as you decide to deploy your web application using a different name than “MyApp” then none of your links will work anymore.
To avoid this you need to get the context path from the HttpRequest object as follows:

<a href="<%=request.getContextPath() %>/path/to/controller/home.htm>
    Home
</a>

or by using a JSTL tag:

<a href="<c:url value="/path/to/controller/home.htm"/>"> Home </a>

What happens when you are rendering HTML in your Java code and you don’t have access to a HttpRequest object for whatever reason?

Read the rest of this entry »

Apr
10

POWDER Roguelike Game

POWDER

POWDER proves that graphics really isn’t everything when it comes to games.  POWDER is a Roguelike game, which means that you kill monsters, gain levels, zap things with magical wands and generally get involved in all sorts of fantasy RPG shenanigans.  Classic Roguelikes of the likes of Nethack and Angband are purely ASCII based and (in my opinion) aren’t very accessible.

With POWDER the entire game can be played using the mouse, and the keyboard shortcuts can be picked up bit by bit once you’ve got into the game.

It has been designed with hand held consoles in mind (Game Boy Advanced, and now available on the iPhone), but can be downloaded and played on Windows and Linux alike from the author’s web page.

Behind a somewhat simplistic facade is a deep and complex game that will take you a very long time to master. Each time you play (and die) there is something new to be learned for the next time you delve into the dungeon.  The first time I played the game indicated that I was hungry.  I decided to eat a slug that I had just killed, only to be poisoned and die.  Naturally I avoided doing that in subsequent attempts.  Roguelikes traditionally kill the player often and designed to be played repeatedly rather than just once or twice.  There is a tutorial however to help you get started (and to stop you from dying within the first two minutes).

A wiki exists for impatient players who don’t want to find everything out for themselves.  I still haven’t figured out how to stop myself from starving to death once I get a bit deeper into the dungeon.

Update: Two interesting things I also think are worth mentioning.

Roguelikes aren’t purely fantasy based.  There are a great deal of science fiction based games, include a version of Doom implemented in ASCII.

Also, there is a yearly competition where programmers try to create a fully playable Roguelike in just 7 days.  The short time encourages programmers to try out and explore new ideas and end up with a finished product at the end.

Nov
17

Health and safety at work

This is a photo I took in Bejing a few years ago and have been meaning to upload it for ages.  The picture is of a couple of guys repairing a telephone line (or some sort of overhead cable).  The work was undertaken in the face of oncoming traffic.

ladder_guy

Street work in Bejing

Nov
16

Introducing JTestConnect

logo

A couple of months ago I finished the first version of JTestConnect. It is a tool for supporting development teams with their unit test strategies.

You can annotate your interfaces/classes with annotations describing how the object should be tested. The tool then sits in the build process and can interrupt a build if test classes/methods are missing.

Ideally, this would be added to a Continuous Integration build system to enforce test coverage of important classes.

A more detailed description of what it does can be found on the project home page.