The agony and the ecstasy of debugging

Embed from Getty Images
If you have ever written a computer program with any degree of seriousness then you will know the feeling: your heart sinking as you realise what you thought was a perfectly good piece of code has a bug somewhere less than obvious.

In my case this has happened twice in a week and both times has meant the work I had done as part of my PhD has had to start again (not all of it, obviously, but this, most recent bit). Yesterday evening’s realisation was particularly annoying because it came after I had sent my supervisor an email suggesting I had some quite interesting and counter-intuitive results to share.

Since then I had spent quite a few hours trying to work out what on Earth was wrong – debugging assembly is not complex in the sense that most instructions do simple things – but it also reminds you of the essential state-machine-nature of a general computing device: there are lots of things to track.

Of course, that also brings pleasure – there is no point in denying that solving these problem is one of the truly engaging things about computing.

Job is done now and I am once again collecting results and hoping that I do not spot another flaw.

Take your injuries seriously

Muscles of lower extremity
Muscles of lower extremity (Photo credit: Wikipedia)

I have a torn calf muscle. To say this is an inconvenience is something of an understatement – especially as the tear came just a few days after I had managed to run 10k for the first time in months and – more than that – did it in a time that suggested I could look forward to a decent season of long distance running.

Unfortunately I didn’t take the injury seriously for about three days and so probably made things worse. That means I may have added weeks to my recovery time. I hope not, but in any case March seems to be a right-off.