All Posts Filed in ‘Technical


My Thoughts On The Microsoft PDC 2009


I was lucky enough that my company paid for myself and a couple of my colleagues to fly all the way out to sunny Los Angeles and attend the Microsoft Professional Developer Conference last week. The idea of the conference is that Microsoft get a bunch of software people in one place and announce / explain all the cool new things they’ve been working on and what they’ll be releasing next.

Some Skyscrapers in LALet me start by saying that while I’ve made a career out of building software on Microsoft’s platform with their tools, I’m not a die-hard fan who thinks the Microsoft way is the one true way. I like to think I’m relatively open minded and can see the benefits of one platform over another. As such I tend not to bother with Microsoft beta software and try not to listen to hype about not-yet-released products and technologies. I prefer to wait until things are released for real and then see what they’re like. I could cite many instances over the years where things haven’t lived up to the expectations but on the whole Microsoft get there in the end.

Anyway, having spent a few days listening to various sessions discussing what tools and technologies Microsoft will be releasing early next year I’ve come away very impressed. I’ve worked on all kinds of software over the years from small standalone applications to web apps that have had to scale across a few servers, so have found myself spending a lot of time writing similar code over and over again that can be quite tricky (such as multi-threaded code that can handle all the various exception cases that are easily missed). What came across loud and clear was that, aside from Azure which I’ll mention in a minute, a great deal of support is being added to the languages and tools to make multi-core software development a lot easier to write. There are tools to make multi-threaded debugging easier to visualise and understand, simplified ways to handle concurrent processing without really having to think about locking, blocking, race conditions and so forth (clever people than I at Microsoft have done that for you). One of the most interesting things I saw was AppFabric which makes scaling services across multiple servers a whole lot easier than it currently is handing a distributed cache and so forth.

Azure – which is Microsoft’s cloud computing platform – was the big thing Microsoft were talking about at the PDC. It just so happens that my company have been working with Microsoft to spread out some of the calculations that one of our products performs to the cloud and are hoping to eventually run it across 10,000 nodes in time, so my colleague who’s been lucky enough to work on the project knows all about Azure. While Microsoft are somewhat behind the curve in terms of cloud computing for the masses, I’m very confident from what I’ve seen and heard from the inside and out that Azure is going to be a real game changer. Anybody who’s used development tools across platforms knows that Microsoft produces the best ones and Azure nicely plugs into these tools to the point where a Visual Basic programmer will be able – without having to be an expert in writing and deploying highly scalable software – to write an application like Facebook that can scale to incredible proportions at the click of a button. You’ll be able to take a standard web application and without a great deal of work deploy it to Azure and suddenly you don’t have to worry about the cost and maintenance of servers.

And if you’re not a Microsoft person that’s fine, you can run LAMP on Azure and I was rather surprised to see Matt Mullenweg appear during the keynote speech and talk about how you can run WordPress on Azure (in fact Oddly Specific, from the people behind LolCats, runs on Azure in that configuration). I found this the most surprising thing of all – that Microsoft isn’t doing its usual platform lock-in trick. Clearly under Ray Ozzie’s guidance Microsoft’s moving in new directions.

Of course Azure isn’t for everyone. Most of the companies I’ve worked at wouldn’t be at all happy letting their data live out in the cloud on Microsoft’s servers and don’t have the complex calculation requirements that the cloud can help with (i.e. being able to pay for the processing that you use rather than buying a load of servers you only use a tiny percentage of the time). But I can see people like the next Facebook, financial institutions, research institutes, NASA and so forth will lap it up. I just think of when my colleagues formed their start-up the first thing they had to do was buy a load of kit and that cost money. If they were starting next year instead all they’d need would cheap computers to develop on, no office or server room, deploy to the cloud, only pay for what they use, and they’d be able to do it with all the knowledge of developing on the Microsoft platform already. Like I say, I think it’s going to be a game changer. And as an added bonus I’ll finally be able to build John’s Dead Man’s Switch and know that in the incredibly unlikely event it becomes popular, it’ll be able to handle it!


Windows 7 And The Future Of John’s Background Switcher


John's Background SwitcherI read with interest that the next version of Windows will, at long last, feature a built in background switcher – called a “desktop slideshow”. You might think that since I wrote a pretty decent background switcher that I’d be gutted and cursing the name Microsoft but quite the opposite is the case. The reason I wrote John’s Background Switcher in the first place was that I wanted to be able to change the background on my computer periodically and every time a new version of Windows has come out I’ve been looking out for two things:

  • Better (i.e. some) multiple monitor support.
  • An automatic desktop background changer built in.

Finally with the release of a Windows 7 beta, at least one of those two features has been implemented (and it’s the latter). I’ve been half-hoping Microsoft would do this for a while now even if it meant the end of JBS. This isn’t from laziness but much though I love developing it and the community of users that’s built up around it, I have lots of other ideas and only limited free time to work on them. Currently most of that free time is taken up with JBS to the detriment of anything else I could be working on. Having said that I’d be hard pushed to produce anything as successful as JBS (except the planned Mac version perhaps) so if I can keep it alive I’m not exactly going to complain!

I downloaded the first beta of Windows 7 to take a look at this potential JBS-killing feature and having played around with it it’s pretty clear that it doesn’t actually replace JBS at all, but instead nicely complements it. Windows 7 expands the dialog that lets you set your background so that instead of choosing one picture you can choose a selection of them and how frequently you’d like the background to be changed, you then leave it to it:

Windows 7 Desktop Slideshow Options

I saw on some pre-beta screenshots that there was an option to use RSS feeds as a photo source (just like JBS does) but see that feature missing from the current beta. If they do ship with RSS support then that would be extremely cool (and lessen the appeal of JBS slightly) but if not then that’s fine with me. So if you want to change your background periodically using specific pictures on your computer then the built-in Windows 7 desktop slideshow is for you – there’s no point installing JBS. However before I stop developing JBS and resolve all the outstanding tasks as “will never implement” I can see several reasons why I’ll keep working on JBS.

First is multiple monitor support. When I started developing JBS very few people used multiple monitors but today a surprisingly large percentage of users do. The Windows 7 desktop slideshow doesn’t appear to let you do things like have different pictures on different monitors or span one across all. That may change when they ship but considering Microsoft’s complete lack of useful multiple monitor support in the past it wouldn’t surprise me if things remain as they are. JBS lets you have different pictures on different monitors or stretch across all and in the next version I’m planning some even better multiple monitor options.

Next is tight integration with web-based sites like Flickr, Picasa, Facebook, Phanfare and others. Even if Windows 7 supports RSS feeds it’ll still be a bit tricky to choose from all your friends photos on Flickr (including private ones), or the most interesting pictures over the last 7 days, or your private photos on Picasas web albums and so forth. So for avid users of these photo sites (like myself), JBS will still do a better job than the built in desktop slideshow.

Next is choice and variation. The current version of JBS and to a far greater extent the next version can let you choose background pictures from multiple sources – some local folders, some sets from several photo sites, some RSS feeds and search results. If you like randomness or have a bunch of accounts on different sites you want to pull photos from then reverting to the built-in switcher will lose you that flexibility. Also, if you want to use pictures from a folder on your machine then with the built-in desktop slideshow you’ll have to keep telling it about new ones you add to that folder before they’ll turn up on your desktop – JBS on the other hand can just monitor folders for you and work things out itself.

And last but not least the montages and post-processing effects JBS has to offer appear not to have a place in the Windows 7 switcher. Being able to create a snapshot scrapbook or mosaic of photos across multiple monitors is pretty cool and one of the better ideas I had for JBS:

A Montage Of JBS Montages

All in all I’m really glad to see that a background switcher will be built into the next version of Windows 7 – it’s something long overdue. And I’m also glad to see that there’s plenty of scope for me to keep building functionality into JBS and improving it without feeling like I’m wasting my time – there’s clearly still a place for JBS. Heck, there may even be a way to hook the cool functionality JBS has directly into the built-in desktop slideshow so that Windows 7 users can have the best of both worlds.

The Windows 7 desktop slideshow is, like a lot of the new functionality Microsoft has added, a straight clone of what’s available on the Mac. And despite the fact that Macs have had automatic background switching built in for years it hasn’t stopped a lot of people requesting I write a Mac version of JBS (a request I’ll finally be fulfilling soon) so I don’t expect people wanting to run JBS on Windows when they upgrade to 7 to stop either.


A BlackBerry That Takes Over Your Life In A Good Way


My BlackBerry BoldWhenever I see people on the train typing away on a BlackBerry I feel a deep sense of pity for them. I’m sad that they feel their company owns them to such an extent that they have to spend the time before (or after) work on the train replying to “important” emails. It’s not as if they work for MI6 and have to reply to an email about intelligence concerning a terrorist attack where every second counts!

If I see people on a weekend typing away on their BlackBerry (and I’ve seen a few) I want to shake them and tell them to enjoy their spare time while it lasts.

So when I was presented with a work BlackBerry at the start of the year I made sure the email notification was turned off and used it strictly as a phone to make and receive calls from my colleagues. At all other times it was sat on my desk being ignored.

Last week my BlackBerry was replaced with a brand new BlackBerry Bold and while I initially expected to treat it the same way as the old one, I’ve actually been blown away with what a cool piece of kit it is. As before I’m not going to use it particularly to send emails – the keyboard’s too small and if I’m working then I’m in front of a computer so can send and receive them there. And if I’m not working then the last thing I want to do is send and receive work emails! However it does a great job of letting me do the following:

  • Listen to MP3s – it comes as standard with 2GB of storage and a pretty good pair of earphones with in-ear rubber inserts (ideal for cutting out background noise).
  • Surf the internet – not only is it 3G but it can connect to the interweb via WiFi with a pretty good browser.
  • Take pictures – my previous BlackBerry couldn’t and while the camera’s not amazing, it’s good enough to take pictures of chickens wandering the streets (which is the sort of thing I’d take a picture of).
  • Use for Sat Nav – it has GPS and European maps built in along with directions so I can use it to get from here to there (although to be fair I mostly one go from my house to the cafe).
  • Stalk my brother – he’s got a BlackBerry Pearl and the BlackBerry Instant Messenger is always turned on, mwa ha ha, there is no escape!
  • Get my sudoku fix – oh yes, there’s even a sudoku game!
  • Send SMS messages without using that useless T9 predictive texting – since it has a full QWERTY keyboard it makes life somewhat easier to text.
  • Get 2-for-1 cinema tickets – since it’s on Orange (the old one was on Vodafone) I can take advantage of Orange Wednesdays.

In summary, I’m really impressed with it. So much so that I’ve diverted all calls from my own mobile and am going to use the BlackBerry as a my primary phone. In one fell swoop it’s managed to retire not only my own mobile but my iPod Touch (well, for short train journeys at least) and my Sat Nav. It’s going to encourage me to go to the cinema more often and save my thumbs from premature arthritis brought on by sending SMS texts using T9 predictive texting.

But if you see me sending work emails on the train you have my permission to shake your head and call me a hypocrite!


John’s Dead Man Switch


Some Text From A Grave StoneMaybe I’m a fatalist. Or maybe I’m a realist. Either way, a thought occurred to me the other day. What if I’m crossing the road, run down and killed? Or I’m running across a field and struck by lightning – death being instantaneous. Or maybe I’m going to put a cheque in the bank to find it’s being robbed by a masked gang, overpower them, call the police, deliver the baby of the pregnant woman there and then (there’s always one), generally save the day, but trip on the kerb outside, fall down and break my neck, dead as I hit the ground.

The point is, accidents can happen, I could shuffle off the mortal coil at any point. For me that’s the end of it, but what about my good lady? Sure, she’ll have to deal with the loss, sell the house, cash in the insurance policies and buy a nice beach house somewhere warm. But without knowing the login details to this site she won’t be able to write a post informing the world wide web that I’m dead. She won’t be able to look at all my old emails and realise I’d been living a double life as a bigamist / spy / special forces operative / singer in a church choir / take your pick. She won’t be able to log onto my Windows 2003 server and apply the latest patches, or update Apache on the box John’s Adventures runs on. She won’t even be able to log on to see my credit card statements and wonder why I’d made so many payments to Interflora when I never used to buy her flowers.

In short, my untimely death would leave a lot of loose ends that I doubt I could solve from beyond the grave. Then I came up with a solution – it’s called John’s Dead Man Switch.

The idea is simple. If I don’t browse to a particular web page or click a particular button on my computer every 3 weeks, then an email will magically send itself to my good lady. That email will contain not only all the login details to every site and computer I use, but an explanation of how to use any of these systems that she’ll understand. It’ll have things like a step by step guide to creating a new article here announcing my death, approving comments and so forth. Knowing me the email will start with something like this:

“Hello good wife, you have received this email for one of the following reasons. Either I’m dead, in which case I’m sorry for your loss, and I’m even more sorry to inform you that you’re not allowed to marry someone younger and hunkier than me (unless it’s my brother). Or alternatively I’ve forgotten to press my dead man’s switch and you can delete this email now. Hmmm, now I think about it, if the latter is the case then maybe I should have put that first to spare you the trauma…”

Now the way I see it John’s Dead Man Switch (or JDMS) will consist of a couple of components. First there’ll be a web site that lets me manage my dead man’s switch so I can:

  • Click a link to reset my dead man’s switch and prove I’m alive.
  • Determine the minimum timeout – if I go on holiday for a month I’d want to make the time-before-assumed-death or TBAD a bit longer.
  • Decide on how often an “are you still alive?” email should be sent (if I’m dead I won’t receive it but if I’m alive but forgetful it’ll remind me to click the dead man’s switch).
  • Upload and edit my “Used to be-mail” – strong encryption would be a requirement to ensure nobody else can read the contents even if they break into the site and that the JDMS platform is secure.
  • Download one of the JDMS client applications.

Which brings me onto the JDMS client applications themselves. The client applications will need to support all major operating systems (including the iPhone) and the user interface will consist of a large button that looks something like this:

Potential John's Dead Man Switch Clients

I’m thinking I can either have it scheduled to appear at the intervals I’ve set on the website, run manually as-and-when, or appearing every 2 minutes in case I’m so strung out on coffee that I need reminding that I’m still alive!

Clearly John’s Dead Man Switch needs some further investigation and a full specification fleshing out. At the moment it’s just an idea but, unless someone else has only gone and come up with the idea already, I think I’ll make it my next side project. So what do you think of John’s Dead Man Switch? The next great thing or dead before it begins?!


SnagIt 9 Or How To Take A Step Backwards In Usability


I’ve been an avid user of SnagIt for a few years now. It’s a great tool for taking screenshots of things and adding boxes, arrows and a variety of effects to explain something. It’s fantastic for putting together documentation or explaining to someone how to use a piece of software. You click a button and it captures either a window or you can draw a box around what you’re interested in. You can then annotate it all you want and save it in the format of your choice. It’s quick, simple and powerful. Well, that is until SnagIt 9.

First of all, let’s look at SnagIt 8:

SnagIt 8

SnagIt 8 is simple. The tools you need are on the left, such as boxes, arrows, highlighter, text and so forth. The image you’ve captured is in the middle and all effects are on the right such as resizing the image, adding a drop shadow, a torn effect (which is what I’ve used), adding a caption and so on. I frequently capture an image, draw some boxes, arrows and text on it, then add an edge effect – usually that torn paper one – then resize it and save it. Since everything is in one place it takes the minimal number of mouse clicks, all the tools such as the arrow tool remember the settings I’d used before (such as the colour, thickness and depth of shadow) so once I’ve used SnagIt one time it’ll remember everything from then on. Simple.

Now let’s look at SnagIt 9:

SnagIt 9

The first thing to note is that it uses the fancy new Ribbon control that was introduced by Microsoft in Office 2007 (it’s the strip at the top of the dialog labelled Draw, Image, Hotspots, Tags, etc. and when you click on one it reveals a bunch of related controls). When Microsoft introduced the ribbon a lot of people complained – people hate change after all. However Microsoft put a great deal of effort into deciding what controls to put on which section of the ribbon so that commonly used controls lived next to each other and were easy to discover. After struggling with it for a bit myself I have to admit that Office is far better for the new ribbon. Sadly I can’t say the same about SnagIt.

While the ribbon looks sexy in SnagIt, it’s pretty clear that not a great deal of thought went into deciding what goes where. OK, there may have been a lot of thought about it, but unlike the Office team TechSmith didn’t have the usability statistics to see how people actually use the product. And in a straw poll of one person (me) I have to say that SnagIt 9 has actually made my life harder and as a result I’ve rolled back to version 8 – the first time I’ve ever preferred an older product over a new one.

Take my standard workflow. I’ll capture an image, draw some boxes and arrows, resize it, add a torn edge effect and save. In SnagIt 8 I’d do the following (and I’m assuming I’ve run through the process previously and SnagIt has saved my preferences):

  1. Capture the image
  2. Click the ‘box’ tool and draw a box
  3. Click the ‘arrow’ tool and draw an arrow
  4. Click the ‘Resize Image’ button on the right and choose the size
  5. Click the ‘Edge Effects’ button then choose ‘Torn Edge’
  6. Save image

In SnagIt 9, things are no longer as simple. Now I have to do the following (and note that I’m assuming I’ve run through the process before so SnagIt should really remember my presets like SnagIt 8 does):

  1. Far too many steps to change the shadow settingCapture the image (same as before)
  2. Click the ‘Draw’ tab
  3. Click the ‘box’ button and find that it’s chosen the default one and not the one I want so I have to…
  4. Click the drop-down next to the styles to find one I’ve saved before in ‘Quick Styles’ noting that after a reboot my quick style has disappeared so I have to…
  5. Use the default box and draw it, then click the ‘Outline’ button and choose the red colour I prefer to the default dark red (note that red isn’t in any of the presets)
  6. Next click Effects > Shadow > More Shadows so that I can change the default shadow (note that in SnagIt 8 I’d do this once only and it would be remembered for ever more)
  7. Click the arrow next to ‘Styles’ to add the current style to ‘Quick Styles’ knowing it’ll be forgotten later
  8. Now to draw the arrow I’ll have to go back to point 3, but click the arrow instead of the box button – sigh
  9. Ok, time to resize the image, that means clicking the ‘Image’ tab
  10. Click Resize > Resize image – pretty much the same as SnagIt 8
  11. Now to add the edge effect, as usual it’s forgotten my quick style so I click Edges > Torn Edges and set the values I want (click ‘Add to Quick Styles’ and hope it’s there next time)
  12. Save image

Ok, I admit that if they manage to fix the fact that the quick styles keep being lost (and kept in view every time) it’ll make things slightly better, but nevertheless for my workflow – which is nothing special – it would mean a lot of flitting between the ‘Draw’ and ‘Image’ tabs and indeed that’s been the frustration. I love the fact that SnagIt 8 has all the tools you need in one place – changing tabs is like walking into another room and it just slows me down. It’s a real shame as SnagIt 9 has a lot of other cool features like being able to do multiple captures in a row and having a library recording all the snapshots you’ve taken. I gave it a few months to see if I liked it but when I happened to use SnagIt 8 on one of my machines it reminded me how much better it was so I rolled back.

I can see why as a software vendor you’d see the Microsoft Office ribbon and want to put it in your application – if nothing else it looks cool – but it’s easy to forget that the ribbon was designed to handle software containing hundreds of functions such as Word and was laid out with a great deal of care and thought. And while it works well in Word it’s not necessarily of benefit to applications with a couple of dozen functions. In the case of SnagIt it takes a light, quick and simple application and makes it just that little bit less light, quick and simple – which for me has always been its defining strength.

If you don’t take a lot of captures or are happy with all the defaults, then SnagIt 9 may be fine for you. But I’m a bit particular and fussy, so all that new GUI just gets in my way and means I’m better sticking with SnagIt 8. Bah humbug!


I’ve Finally Gotten Into Podcasting


PodcastingPodcasting (in case you don’t know) is a cool way to listen to your favourite radio show whenever you like on your iPod instead of at the allotted time it’s broadcast. The idea is that you subscribe to a particular podcast (such as the Adam and Joe BBC 6 Music show) and each time a new episode is released it is automatically copied onto your iPod (or any other MP3 player for that matter) and you can listen to it at your leisure, such as when you’re taking the train to work. Sounds great!

Of course, back when podcasting began it wasn’t so cool and I pretty much ignored it (which is what I tend to do with most technical things until they prove themselves capable of making my life better). Initially the only podcasts out there seemed to be recorded by American men droning on in monotone voices about some boring technology or other (or making some interesting technology sound boring as a result of their monotone, droning voices) – which is exactly the last thing I wanted to listen to on the train in the morning. So I steered clear.

But more recently mainstream media, such as the BBC to name but one, have picked up podcasting in a big way. Pretty much every radio show of interest has its own podcast and with the tight integration from software such as iTunes, it’s incredibly easy to subscribe to them. And that’s exactly what I’ve been doing. Much like getting Sky+ revolutionised the way I watch TV – I “series link” all the things I’d like to see and watch them at a time of my choosing instead of being a slave to the schedules (and as a bonus feature I never have to watch ad breaks) – podcasting now means I don’t have to turn radio 5 on at 11am on a Saturday to listen to Fighting Talk. Instead the next time I hook my iPod up to my Mac the latest episode is automatically copied across and I can listen to it when I want.

As well as audio podcasts there are also video podcasts produced by a variety of people and organisations (even NASA) although personally I prefer not to squint at a small screen while on a train so will stick to audio for now. But as is often the case, something that I thought was a bit of a waste of time when it first came on the scene has grown into a huge success that’s been bought into by most mainstream media companies, not to mention talented individuals who would otherwise not be able to show their skills without getting a job in radio or TV. Still, better late than never!

Oh, and before you ask, no, I have no plans to ever record my own podcasts. I’d just drone on in monotonous tones about my hair, the weather and a whole bunch of other things nobody would ever be interested in. This site does enough of that already!


As Fast As My Imagination Isn’t Fast Enough Damnit!


Picture this scene. My good lady is looking on the Dell website speccing out a new laptop. She’s not the most technically savvy person on the planet so isn’t exactly sure of what options she should and shouldn’t choose.

Like most non-technical people she gets bored of reading technical talk within about 30 seconds. So after a couple of minutes she says the following in a monotone, bored voice, almost sighing as she did: “Dual processor processes power as fast as your imagination… Do I want that?”.

Some marketing BS courtesy of Dell

A slogan like that is supposed to be said in a triumphant, confident way, and definitely in bold like Buzz Lightyear saying: “To Infinity And Beyond!”. I’m sure the copywriter who wrote the line about dual processors imagined people reading it and saying “Wow! I want one of them!”. But of course the reality is that most people won’t understand what a dual processor does and if it being “as fast as your imagination” actually matters on not.

A techie like me just ignores it as meaningless marketing spiel (I don’t know which part of their statement to correct first) but I’m sure many people like my good lady just get confused and turned off to technology even more. So much for being consumer focused.


The Difficulties Of Finding Good People


My company has been looking for the past while to hire someone with very strong software development skills using Microsoft ASP.NET with C#, SQL Server and a host of the usual 3 letter acronyms (which I won’t bore you with). It’s pretty much the standard skill-set of any current developer that works on the Microsoft platform building web applications – so nothing out of the ordinary.

In addition to these skills we’re after someone who can not only sit in a corner and write code, but can go in front of business people (i.e. non-technical types) and gather requirements, spec out a piece of work, build it, deal with customer changes and ship it to end users. Someone who can work on their own and as part of a team as the projects dictate, has no ego and is just a normal person at the end of the day. We’re pretty much looking for someone like me or Ian. Writing a blog or being obsessed with your hair is not a requirement! 😉

Now that said, what we’re really after is someone who’s smart and gets the job done. We’d far rather hire someone who has less experience in our toolset but is smart enough to pick it up than someone with loads of experience but isn’t very bright. As a further twist, I along with my boss have been doing the interviewing! Although I’ve not interviewed everybody, thank goodness.

The thing I’ve found amazing about the experience is that we’ve been taking the absolute best CVs that have come in, throwing loads of others out. We’ve been in the software game for long enough to know what we’re looking for and time after time we read a CV and think “hey, this person looks great, with their experience they could be the one”. We bring them in and time and time again they bear absolutely no resemblance to the person on their CV.

We split the interview into 3 parts.

  1. A light-hearted overview of the company, the department, the development team.
  2. We ask them about their experience, some of the projects they’ve worked on and more importantly what their thought process was about decisions they’ve made and how they approached any problems they came across. We’re just trying to stimulate a conversation to see how their mind works and if they’d be a good fit for the team (no prima donnas please).
  3. A short technical test (which I wrote).

A rabbit in a hatIt’s the last part that’s surprised me the most. Since it’s an interview situation, you’re under a lot more pressure than in a normal day so there’s no point making that worse with an extremely complicated trick problem. The test is in fact very easy. You get to sit down with Visual Studio 2005 to write a single method for an already-existing console application. You’ve got a spec telling you exactly what it needs to do and some helper classes and methods to provide you with what you need. In essence you need to match all orders for a given customer and the code is already there to return all the customers and all the orders for a given customer. It should take no more than 10-15 minutes and when I wrote it some of us thought it was so easy that it would be a waste of time.

Even under the pressure of an interview situation anybody who can actually write code should be able to waltz through it. Since you have full access to the documentation and internet in the test, even if you don’t know C# but can write any sort of code, you can probably work it out!

We leave them to have a read of the spec and come back to answer any questions they might have. Then we give them 10-20 minutes and see how they’ve done. It’s not a black-and-white right-or-wrong test as it’s really just to see if they can actually write code and if it doesn’t work first time (none of the code I ever write does) then can they debug it and work out what’s wrong, with some help from us if need be. You wouldn’t hire a magician without watching them do a few tricks would you? There are lots of opportunities to ask what-if questions just like you’d do in the real world and rather than a “test” we look at it as a way of having a discussion.

But what’s left me utterly beside myself is that virtually all the people we’ve interviewed that consider themselves to be very strong developers have done absolutely terribly at the test! It beggars belief that people who can’t even compare a string to another string should be writing software for a living – comparing strings is one of the most basic things you can do in software. It’s like a plumber not knowing how to turn off the hot water supply. Some of the interviewees have 15 years development experience with CVs that look far better than mine and talk the talk, but have clearly managed to survive using the drag-and-drop method of writing software without ever understanding what they’re actually doing. No hire.

A lovely chrome piece of pipingNow I know we’re not going to attract the creme de la creme to work on a hill above Halifax in Yorkshire even if we do score 8/12 on the Joel Test (which isn’t too bad – and we’d have 11/12 if it weren’t for some of our management). And I know that most decent people aren’t looking for jobs because their employers realise how important they are and pay them so much money that they’d never leave (heh heh, yeah right). But we’re surely not being unrealistic to think we could find some people who can actually write software and communicate with other human beings.

One thing about the technical test we’ve found is that it hasn’t made us change our opinions about a candidate. If they were doing badly and did well on the test we’ve still said ‘no’ and if they’ve done well everywhere but the test we don’t rule them out. By having a chat with someone for an hour we reckon we can pretty much tell if they’re a good fit or not even without testing their coding so for now we’re going to move the test into the second interview stage (which is usually just a formality and chance to meet the director and more senior people than us) and use it as final confirmation rather than wasting half an hour with someone now that we already know we’d not hire.

Fortunately the last time we hired someone we found a guy who really blew us away. I was starting to lose hope that decent people existed but then in walked my future colleague who was clearly a really nice guy, intelligent, sharp, on the same wavelength as my boss and I and of course he flew through the technical test in record time!

But until we get lucky enough that another superstar walks through the door we’re wasting a hell of a lot of time interviewing people who we can tell within 20 minutes aren’t going to cut it – but because we’re nice people we don’t say “Stop! There’s no point carrying on – get out!”, we give people every opportunity to show us what they’ve got. It’s hard work and I’m glad I don’t have to do it all the time. I’m almost inclined to take the advice I read somewhere about recruiting and throw half the CVs in the bin because you wouldn’t want to hire someone who’s unlucky! 😉


Finally, A Device From The World Of Tomorrow!


I’ve always had a fairly active imagination. When I was a kid I used to imagine having a tunnel in my back garden that lead to Australia – seems a touch impractical now I look back – how would I keep the molten lava from ruining my mother’s plants? Anyway, sometimes I like to let my imagination run away with me even today and one scenario I often consider is if I found myself sent back in time 20 years – what would I do?

Since I’m not the money-obsessed type I don’t bother with betting on the result of sporting events to make loads of instant cash. I also don’t feel the need to track down any old foes and sort them out “once and for all”. This is mainly because I don’t actually have any old foes. The temptation is also there to track the young John Conners down and tell him about some of the important things in his future as well as what choices to make to guarantee him success (such as telling him all the women that fancied him but because he was too stupid to spot the signals he completely missed out on). But again, it’s not something I’d do – he has to learn these lessons himself – he can kick himself when he’s in his 30’s looking back like me!

Or maybe I’ll drop in on the then down-on-her-luck J.K. Rowling and give her some motivational words that one she’ll change the world in a way that nobody else ever will!

One thing that I probably would do however is drop in on my mother. 20 years ago my brother and I were at school during the day and she’d have been on her own in the house – which is when I’d pay her a visit. I’m not entirely sure what I’d say to her but I suspect it would be the truth and for her not to tell anybody else that I’d dropped by.

My iPod TouchWhatever I decided to do, I now know the one thing I’d bring with me. It’s a device that can prove to anybody that I’m from the future, it would let me listen to music when bored waiting for a bus and come in handy if I wanted to show my mother photos from her future (and to prove I am who I say I am). It is in fact my new iPod Touch. I think if I went back in time a mere 5 years people would think I was from 100 years in the future as it really is an amazing piece of kit.

Not only is it extremely thin and beautifully designed but the way it operates is like something out of Star Trek: The Next Generation. Rotating it around 90 degrees and seeing the picture or album cover rotating too looks cool on the advert but it looks amazing when you see it in the flesh.

I have mine synced with a good selection of my music and all the photos I’ve taken over the last 7 years (which live in Apple’s iPhoto on my Mac). It’s so cool if someone asks what I got up to at New Year and I just show them on the iPod. Or if they want to see some of my landscape photography I can hand it to them. Combining it with a telephone in the iPhone is just awesome – although the 18 month contract is just not worth it for me, I’ll wait for version 2. Also, since digital mobile phone networks didn’t exist 20 years ago it wouldn’t be much use in my time travelling adventures!

Technological improvements happen slowly, people who talk about revolutions in technology are either salesmen or over-excited techies. But if you compare consumer electronics in 5 year intervals over the last 20 years then you really can see the giant leaps and bounds that would blow people away if they could see ahead. I’ll be interested to see what the 53 year old John Conners who travels back in time 20 years has to show me! But I’ll never tell. 😉


Another Satisfied WordPress User


Well no sooner had I written that I was pondering switching blogging platforms from Movable Type to WordPress than I started actually doing it. One of my many character flaws is that once I get an idea in my head I tend to go 100% all guns blazing and don’t stop until I’ve done it and this was no exception.

Having been a Movable Type user for several years I’d not paid a lot of attention to WordPress other than installing it and having a quick look at it a couple of times. Version 2.3 was coincidentally released just at the time I was thinking of moving my site so I took it as a sign to proceed.

I must say, I’m very very impressed with WordPress. Writing good software that’s easy to use, powerful and fun is very difficult. There aren’t that many people out there that can really do it. But writing good software that’s easy to use, powerful, fun and easy to extend is much harder. WordPress manages to do this very well, better than any software that I can think of. While I know PHP quite well, I hadn’t used Worpress at all yet within 4 evenings I’d managed to do the following:

  • Import all my posts and comments from Movable Type
  • Create a theme that looked exactly the same as the old site but used the new functionality that WordPress offers (such as improved comment handling)
  • Write a plug-in that changes the WordPress WYSIWYG editor to be just the way I like it and tweak the RSS feed to be just the way I like it
  • Migrate the ‘My Software‘ section of this site over to WordPress Pages – a much better way to handle things

To an experienced user of WordPress this is all pretty straightforward stuff, but I’m not an experienced WordPress user. Up until a couple of weeks ago I’d never so much as looked at the documentation or actually written a post with it. Now I’ve moved my site to a different platform, haven’t broken any links and it all seemed far too easy – which I like!

Wordpress on John’s Adventures

My point is that to do what I’ve achieved as a novice MT user moving from WordPress to MT would have been a far more serious undertaking (note that I’m talking about Movable Type 3.x here, I can’t comment on MT4 as I wasn’t impressed enough with it to see what’s changed under the hood). I’d have been able to import my content no problems but creating a theme is a lot harder in MT – they’re stored within the database whereas the theme files in WordPress are files in a folder making them easy to copy onto a test server where I can get things right then simply copy to my live site. With MT I’d have to do a lot of copying and pasting or database updates – not ideal. I’d probably have ended up just using the default template and tweaking that rather than using my existing lovingly created and evolved layout. Of course, some might argue that’s a good thing…

The documentation for WordPress is also worth a mention – whether you’re modifying themes, writing plugins or just trying to figure out how it all works. It can be a bit tricky to find what you’re looking for in the MT documentation (or maybe it’s just me) but the WordPress docs rock. Whenever I was stuck trying to figure something out when creating my theme or plugin the solution was easy to find and explained thoroughly. Feature-wise I think WordPress and Movable Type 4 are pretty much on the same level but I find WordPress to be faster (on my server at least) and with a far more active community in terms of themes and plugins – which is always a good sign for a product. In fact there are so many plugins out there it makes my head spin!

I know they say “a change is as good as a rest” but it’s more than that. I actually feel more inspired since installing WordPress. I can’t put my finger on why but when I log in and look at the clean, slick interface I just want to write something. Which is great news for me – but bad news for you, the poor reader. So I’ll apologise in advance and you can just blame the developers of WordPress – it’s their fault for doing such a damn fine job! 🙂