John's Adventures

Archive for the ‘Technical’ Category

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! :)

Stick With Movable Type Or Twist To WordPress?

I’ve been using Movable Type as the power (with a capital ‘P’) behind this site for the last few years and I’ve been pretty happy on the whole. One thing that was missing was a decent WYSIWYG editor (so that when I write a post I can see how it’ll look when it gets published) – but I sorted that one out by using TinyMCE. Another was comment spam but I fixed that with CAPTCHA. Everything was great, it was working happily and despite the fact that I really liked the look of WordPress (more about that later), I was happy to stay put.

Then recently Movable Type 4 was released. I installed a beta version to have a play around and I really liked it. It’s organised similarly to WordPress (which is much nicer to work with than Movable Type 3) and it seemed very slick. That is, until I tried editing a post. Six Apart have implemented their own WYSIWYG editor and, to be frank, it’s nowhere near good enough. I never find myself switching to the plain HTML view to fix something TinyMCE has messed up and it was only when testing MT4′s rich editor that I realised just how good TinyMCE is. MT4 produces some real garbage HTML underneath, doesn’t let you edit the properties of images you’ve placed such as the CSS class or style you’d like to apply to it (unless you switch to HTML view), doesn’t support tables (except with HTML view) and when creating a new post it doesn’t even surround the text with paragraph markers (unless you switch to HTML view) and you end up having lots of line breaks entered instead of paragraphs. These things may seem minor (and there are many more) but they’re annoying enough for me to not upgrade my installation. It’s the 21st century, I shouldn’t have to be hand-coding HTML to produce a basic, standard blog post about my hair or new football boots.

I have attempted to write a plug-in to get TinyMCE working with MT4 but haven’t managed it thus far – the entry editing page is quite different to the MT3 one and is proving rather tricky! Plus I’ve not really sat down and dedicated a lot of time to figuring it out.

I will say though that there are plenty of other slick features I like such as being able to create pages (a la WordPress), manage uploaded files (such as pictures) more easily, some more powerful template tags, finer-grained user permissions, better look-and-feel and just basically a more logically organised front-end. But until I manage to use a better WYSIWYG editor, I won’t be upgrading.

Which brings me onto WordPress. Many times over the years I’ve been tempted to migrate my site over to WordPress. It’s been ahead of MT for ages in terms of features and the fact that it’s written in PHP (which I know) rather than Perl (which I don’t and don’t particularly want to) makes me like it more. The latest version – 2.3 – has just been released and after installing it I’m impressed. The management pages are much faster than MT4′s, nicely laid out, and best of all – it uses TinyMCE for entry editing! I can quite easily write a plugin (plugins are incredibly simple to write since they’re PHP which I know as I said) to use the same options I use in TinyMCE on my current MT install. I’ve looked into migrating the content (pretty straightforward) as well as the layout (time consuming, but not hard) and maintaining the links structure so no links get broken and it’s mighty tempting.

Of course, you as a reader couldn’t care less, you see the output, not the tool that creates the site. “So why are you telling us about this John?” I hear you say – to which I reply that “you’ve got some attitude mister!”. Well I spend most of my time in Movable Type and very little of it actually browsing my own site, and you know what they say: a change is as good as a rest!

I know that the sensible choice is to just stick with what I’ve got now. It works and changing platform won’t really make any different to those reading my ramblings. Just because something is new and shiny doesn’t mean I should instinctively use it. But if I know me I’ll find myself sitting in my house on a rainy Sunday with nothing better to do and then port the lot to WordPress. Or maybe I’ll properly crack putting a decent editor into MT4. We shall see… And in Yorkshire most Sundays are rainy Sundays!

Adios Vista, Hola XP Again

While I don’t like to be on the bleeding edge of new technology and software, I do like to stay on the leading edge where possible so when Windows Vista was released late last year on MSDN I installed it on a machine at home, liked the look of it and then put it on my work machine (wiping the hard drive first as it needed a good tidy up anyway).

At first I liked it. The new user interface looked slick and a cut above Windows XP, the Windows+Tab 3D effect looked very nice indeed and I even liked the way the new address bar turned into buttons so going up several folder levels involved less clicking. After installing all the software I use I even got used to living with the UAC popups – although I eventually turned the whole thing off and ran as an administrator since most of my time at work is spent working with Visual Studio 2005 and IIS which both require you to run as an admin if you want to do any debugging. I know it’s “wrong” but I’ve never once had a computer virus or piece of spyware so I wasn’t concerned.

The Grey Screen Of MiseryAll was well for a while but as time passed I started to get more and more frustrated with Vista. For one thing, it’s significantly slower than XP. My work machine is a dual core P4 3GHz with 1.5GB of RAM so isn’t a lightweight. But run a couple of instances of Visual Studio, Outlook and a few other apps and it would grind to a halt in a way it didn’t with XP. I’d spend a lot of time looking at the ‘Grey Screen of Misery’ (right – question mark added for emphasis).

So I had to learn to be more patient between starting a debugging session and anything actually happening. I realised that if I was in a hurry I was going to get annoyed so I relaxed a bit. But then Visual Studio started to crash. A lot. And in a multitude of different ways. Like so:

One of many Visual Studio crashes on Vista

It would crash in the middle of it sitting around doing nothing. It would crash when I was debugging some code. It would crash when I closed it. When I opened it. Just any time it felt like it – and it was driving me crazy! Writing software is something that you need to be able to concentrate for extended periods of time to do well – and when your machine is flaky and falling over frequently requiring numerous reboots you just can’t get anything done. (And before you ask, it was indeed doing the same before I disabled UAC – it wasn’t spyware or a virus, it’s just the standard behaviour that I and my colleagues who installed it came across). I even went as far as to completely uninstall Visual Studio and put it all back on again. No change.

One or two problems to report...Vista’s nifty feature of being able to check for problem solutions from the web wasn’t very handy either (right). As with most things that don’t work when you’ve tried them numerous times I gave up checking for solutions when it never found any.

I started considering wiping my work machine and re-installing XP and the more crashes I came across doing my day job the stronger my feelings got. Eventually I had a bad day where I got hardly anything done and I actually had a lot of work to do but every time I started something Visual Studio crashed and I had to almost start again. I cracked and copied all my documents onto an external hard drive. The next morning I got out an XP SP2 CD and put it back on.

Here I am a week later and I don’t regret my move one bit. XP is much faster, Visual Studio is rock solid again and hasn’t crashed once. I can safely say that while there are indeed some really nice new features to Vista (I’ll probably write about them once the bitterness has gone), I don’t miss anything at all about it. Not a thing. I’ve read about loads of problems with Vista and graphics cards, other pieces of hardware, iTunes and that sort of thing but my work machine really only has Visual Studio, Outlook and a couple of web browsers running. Nothing special and no on-the-edge hardware. And yet myself and my colleagues who took the plunge have found that Vista just doesn’t cut it as a day-to-day development system. What finally made me roll back to XP was the fact that the other developers who stuck with XP weren’t having any crashes at all.

I can only join the chorus of people who say that Vista really isn’t worth upgrading to for the time being if you’re a software developer. I’ll mention that my good lady’s laptop – which is used exclusively for surfing the internet – is running Vista and has been as solid as a rock since I installed it, so I’m not saying Vista isn’t ready for most people’s uses. It just isn’t ready for mine, or anybody who does the same sort of work as me.

See, I wrote a whole post about Windows Vista and never once mentioned how much more I love my Mac. That’s for another day! ;-)

FogBugz 6 Goes Live

I've been using the defect tracking / customer support software FogBugz – brainchild of blogging A-lister Joel Spolsky – for a few years now and I've been a big fan. I've used it for work as well as for home projects such as my beloved John's Background Switcher and it's made my life a million times easier. Anybody who writes software, whether for money or fun, needs some form of bug tracking in their life if they want to remain organised (even a simple spreadsheet will do). But FogBugz is much more than a mere bug tracker though.

I also use it to handle all the email that comes into my web site. I get frequent requests for new features or help with my background switcher (as well as random emails about all sorts) and that all gets fed directly into FogBugz. This means I can track each person's request from replying to them for clarification and having a conversation, turning it into a feature for a future version of JBS that I can estimate, decide which version to put it in, implement it (it also hooks into my source control) and create a release note that turns up in the release notes (not surprisingly). It does this all without any thought from me and I don't need to keep a hundred things in my head at once (I can manage about 7 then things start to fall out of it). The chance of me screwing something up, not replying to someone or completely forgetting about a suggestion gets reduced to zero. I also use the discussion forum functionality when I run beta tests of JBS so when people find a problem I can turn that into a bug and fix it with full circle visibility (i.e. I can look at the bug and go directly to the forum post or see the code change I made to implement it and so on).

While I don't use FogBugz at my current place of work (although I would if I could) if I were to run my own company I know I could use it to handle everything from customer support to defect tracking and release management. Nice.

When Fog Creek requested beta testers for the long awaited FogBugz 6 I jumped at the chance. Having seen an alpha version running on Joel On Software I knew it contained a Wiki which would plug a hole that FogBugz 5 had. While it was great for tracking features, bugs and emails, writing a spec and documentation would happen outside FogBugz which was less than ideal. Integrating a Wiki would be cool.

So for the last couple of months I've been testing and using FogBugz 6 and despite being initially a bit shocked by the redesign (mostly because once you get used to something any change seems scary – see below) I like it and really think it's a big step forward.

The new FogBugz 6 case view

The wiki implementation is great and it's encouraged me to sit down and write some specs for big features for JBS (about time too) as well as keeping notes like my list of beta testers and such things in one handy place. When combined with community users – which means anybody can create an account in my FogBugz and I can give access to wikis and discussion forums of my choosing – I'll be able to interact much more closely with people using my software.

There are loads of new features which you can read all about in Fog Creek's What's New page but one of the really cool ones is 'Evidence-Based Scheduling'. It's a rather clever way of predicting the probability that you'll be able to ship versions of your software by certain dates. Each developer can estimate how long each task and, taking into account how accurate each developer has been in past estimates, you can see a fancy graph that lets you see the probabilities. Like the following which shows that it's 94% likely that I'll be able to release JBS 3.2 on October 3rd if I work solidly on it from now until then (which I won't):

Ship date estimation in FogBugz 6

The more releases you go through the more accurate it will be and the more confident you'll become with it. It's rather clever and something I'd love to use at work where release dates are a lot more important than on my own projects.

There are more new features than you can shake a stick at (including a much more powerful search system) and I'm really impressed by it. I'll continue recommending FogBugz to anybody who'll listen with more enthusiasm than ever as it's quite simply the best solution I've come across for managing the whole product development process (not just the software development part, I mean everything) by a country mile. Fog Creek now offer a hosted version of FogBugz so you don't even have to set up your own server if you don't want to. There's no excuse to not give it a try – you won't be disappointed.

My Very Own Digital Signature

One of the effects of User Account Control on Windows Vista is that whenever you run a software installer you are asked to confirm if you really want to run it and if you agree, you are either elevated to the mighty powers of an Administrator or you’re asked to enter the credentials of one. The idea behind this is to make sure that you don’t accidentally install something dodgy or some evil software doesn’t manage to install itself without you knowing about it.

It can be quite annoying although it is a useful measure against spyware and malware. However, when launching my installer for John’s Background Switcher I would get this rather scary dialog:

Unidentified Publisher Warning

Windows Vista cares a lot more about digital signatures than previous versions of Windows. To obtain a digital certificate to sign your software you have to go through an authorisation process to verifiably identify your company or yourself. If you’re a malware author you’re not likely to get a digital certificate because it costs money, you’d have to identify yourself to an issuing authority and as soon as you’re reported for making malware your certificate would be revoked. So if the installer you run is digitally signed with a valid certificate Windows Vista can be pretty sure it’s not likely to be evil software that’ll take over your computer. In this case it presents a much prettier dialog that’s far less likely to scare any normal user into cancelling. And there’s no orange in sight.

For this reason (and because I thought it would be cool) I decided to stump up a bit of cash and buy my own digital certificate in my name (since I don’t have my own company). After sending a copy of my passport to the issuing authority I can now sign any software I create so that it’s uniquely identified as coming from me. So now when you run my installer you’re shown this:

JBS Installer Signed Warning

It’s a far friendlier dialog and I hope that people being presented with it are much less suspicious that my software has some evil, ulterior motive. Also, if someone tampers with my installer, the signature will become invalid and Windows will complain.

It’s a bit of a pain having to pay for a digital certificate to stop Windows from scaring off potential users but I guess that’s thanks to all those dodgy malware authors out there exploiting the formerly trusting nature of Windows. Grrrr.

Goodbye Windows, Hello Mac!

I’ve been a Microsoft Windows user since Windows 3.1. I remember the day I upgraded to Windows 95 and it felt like going from the stone age to the iron age – the Start Menu seemed like a great idea and it looked fantastic – my world was changed forever. I’ve been using Windows ever since and as soon as the latest version – Windows Vista – was released, I installed it and started using it day-to-day as I mentioned before.

Initially I liked Vista, I was impressed by some of the cool animations and effects, I liked the icons and there seemed like a few decent improvements over XP. It was quite snappy and everything appeared to work rather well. Of course, as is to be expected of Windows, things degrade over time. It’s slowed down a lot, various pieces of Microsoft software crash from time to time and the “Do you want to perform the following action?” dialog that pops up often from UAC just gets annoying and seems like a poor solution to spyware and viruses after a while. Frankly, I think Vista is a huge disappointment and my disappointment was about to get a lot bigger.

While attending the Future of Web Apps conference in London I noticed a lot of attendees used Macs. My friend John Topley, who I was attending with, has been trying to get me to buy a Mac for years and had a MacBook with him. As he started showing me the software you get with it I was blown away. It was absolutely clear that a lot of the new GUI (Graphical User Interface) in Vista is directly copied from Mac OS X – except it makes more sense in the Mac as all of the GUI conforms to the same rules. Straight out of the box there’s a bunch of useful software to let you create music, video, photo books and a host of other things you have to pay for with Windows. I looked at the Mac vs. PC adverts and they started to make sense – Windows machines are work-orientated and pretty dull on the whole, whereas Macs seemed more fun and creative at heart. And I’d lost count of the number of bloggers out there who’ve switched from PCs to Mac and never looked back.

My MacBookJohn then wrote ‘The Case For The Mac‘ on my site (a very good read) and I was sold. I finally ordered a MacBook with a view to replacing my Vista laptop and desktop. I didn’t want to write about it immediately as I decided to live with a Mac for a month or so to really get a feel for what it’s like. That time has come.

Quite frankly, I’ll never buy another PC. Everything they say about Macs is true – “it just works”. You get so used to having to tweak Windows to get things to work correctly, from graphics cards to the registry to a hundred other things. Not so on the Mac. One of the first things I did was connect to my home wireless network which was a simple case of picking it from a list, entering my WEP key and that was it. I went on holiday the other week and brought my MacBook and my Dell laptop running Vista. To connect to the local wi-fi on my Mac took perhaps 10 seconds start to finish and I was surfing the web. To do the same on Vista took 5 minutes. I had to connect and re-connect about 6 times before it would stick, each time I had to go through a 3 step wizard and I got sick of hitting the same buttons over and over again. I started to get frustrated with Windows in a way I never did before. I was being asked a load of questions it should know the answer to – and the Mac was smart enough to make these decisions itself.

A photo of me from Photo BoothI’ve had tears running down my cheeks making crazy photos with software called Photo Booth that comes with a Mac. You use the built in camera to take your picture but it applies some mad effects live that you can preview, like the one pictured right (I don’t really look like that). The software isn’t particularly useful but it’s a hell of a lot of fun and you just wouldn’t get something like that bundled on a PC.

As I mentioned you get lots of useful, creative software bundled with a Mac, called iLife. The software all integrates really well and lets you create music using Garage Band (there are hundreds of loops you can use to create very professional music – oh, and you can sing or record your own instruments too), manage and edit your photos in iPhoto, play music in iTunes, make movies with iMovie and there’s a host of other things that are fun and creative. The software is very well thought out and easy to use, taking the power of great GUI design to a level I’ve never seen before on Windows. For the first time in a long time I’ve felt a surge of creativity since getting my Mac – suddenly I want to try and write music, create a movie and do a whole bunch of other things I’d never have thought about on a PC.

I’ve often wanted to create a DVD you can play on any DVD player with a slideshow of some of my photos – that way I could send it to my dad and he could see my holiday pictures, etc. Can you do this on Windows out of the box? I’ve never been able to – so I’d have to go and search and buy some software and it’s just never been worth the effort. Can I do it on my Mac? Easy, I can go from start to finish in a couple of minutes and it’s really obvious how to do it. And that’s just one of a hundred common things you’d want to do that would require buying more software on a PC that comes as standard on a Mac.

The MacBook itself is really well thought out. Having a magnetic power lead means if someone trips over your cable, it just pops out and doesn’t drag your MacBook onto the floor. This has saved my skin several times already! When you shut the lid it goes to sleep, but a little light on the front slowly dims and lights up to indicate a heartbeat so you know it’s in sleep mode rather than off. Open the lid and it springs back to life – do the same on a Vista-powered PC and it springs back to life after a little while, but then it has to re-connect the wi-fi and all in it can take a couple of minutes. That’s not good enough.

The lid of the MacBook doesn’t have some rubbish catch you need to slide across to open, it’s magnetic. The built in camera is pretty impressive and “just works”. They even look incredibly cool (and I love that the Apple logo on the lid lights up when you use it). It’s amazing how beautiful design can influence your thinking.

I read the OS X Missing Manual to really get to grips with all the shortcuts and differences between the Mac and PC but within a week or two I was quite at home on my Mac. I doubt you could switch from a Mac to a PC and be as settled so quickly.

Regular readers know that John’s Background Switcher 3 is just around the corner (a few days away to be precise). They’ll also know that it’s written on Windows but I’ve got a Mac now, does that mean it’s dead? Well no.

Visual Studio 2005 on a Mac

I also bought Parallels which allows me to run Windows applications inside my Mac – the best of both worlds. I installed Windows XP (because I trust XP) and can run Visual Studio 2005 alongside my usual Mac software. In fact the last few beta builds of JBS 3 have been built on a Mac and you’d never know! It just works.

I find myself going into work – where I use Vista – and cursing at how slow it is, being frustrated at how it forgets all my folder display settings, gnashing my teeth every time I’m asked to confirm that I really do want to run an application I’ve just launched (like Visual Studio 2005), swearing every time software hangs or crashes and getting annoyed in a hundred other tiny ways. They’re just little things, but they add up and I find myself thinking “it’s much better on a Mac”.

So far I’ve managed to persuade one friend to buy himself a Mac and you might be next! The thing is, you just need to sit down and use one for 5 minutes to realise that you’ll never want to go back to a PC again. Do believe the hype.

So Much For Being Anonymous

I spent today at the MSDN Technical Roadshow in the fair town of Harrogate. It's strange but wherever I go – even back home to the place that I grew up – I never bump into anyone I know. It's like I'm permanently anonymous and I've kind of gotten used to that fact. I remember going out on a stag do once where one of the guys there was the sort of bloke who knew everybody – wherever he went someone would come up to him and ask him how he was – I've always been the opposite.

So imagine my surprise today when I bumped into an ex-colleague. As if that wasn't surprising enough, I then proceeded to bump into a guy I play football with over in Skipton (whom I didn't even realise was a developer). Just as my eyebrows were returning to their normal position from being raised well beyond recommended safety levels another ex-colleague walked up to me and said hello. He then pointed out that he was in fact there with yet another ex-colleague! His first words to me after not having seen me for a year or so was "you've got more grey hairs than me!" which made me laugh. (Note: I disagree with his assessment).

I was starting to get the hang of picking out people I know and it was just as well as I then spied another ex-colleague I'd rather not have to speak to so I kept my head down. "You ain't seen me, right…".

The roadshow itself was very interesting. I make it a point to not look at pre-beta Microsoft software since it's invariably got some really cool features that I wish I could use now but won't be available publicly for a year. Now having been forced to see some of these things I can see a lot of it will be quite useful, particularly LINQ in C#. I look forward to checking it all out. But the real surprise for me was meeting so many people I know – I guess I've been living in Yorkshire too long that I feel I'm starting to belong here! ;-)

The Case For The Mac

Hi, it’s John here. No, not John Conners, but John Topley. I’m the friend who persuaded John to attend the Future Of Web Apps conference that John’s been blogging about recently. For reasons best known to himself John has decided to turn over the keys to his blog to me. Which means I’ve got a golden opportunity to take her out for a spin, but what to write about? As I’ve been nagging John for some time to buy a Mac—you may have seen my slightly tongue-in-cheek comments to that effect scattered throughout his blog—I thought I’d try to present a (hopefully) intelligent list of reasons as to why you should make your next computer an Apple Mac. I promise that I’ll try not to come across as an Apple zealot (hey, I don’t even own a black turtleneck sweater), with the proviso that I do find it hard not to be enthusiastic about Macs. If all I do is annoy you then I’m sorry, and rest assured that this blog will soon return to the scheduled programme of great photography tips, articles about which hairdryer you should buy and all the other weird and wonderful musings from the world of John Conners.

At this point you may be letting out dark mutterings to the effect that I’ve got some nerve and don’t I know that this is a Windows heartland and the home of legendary Windows software John’s Background Switcher. In fact, I might not be as deep into enemy territory as it first appears. I’ve actually been using Windows for about fourteen years and I still use it at work. You know, for pie charts and spreadsheets and stuff. I’ve written software for Windows, both for fun and professionally. I quite like Windows. I used to like it a lot, but since switching I now officially only quite like Windows. I certainly have a lot of respect for the ubiquity of it and its legendary backwards-compatibility. However, I think the Mac is a better computer for people who really care about their computing experience, in the same way that a BMW is a better car than say, a Toyota, for people who really care about their driving experience. Sorry John, I guess I just lost you the PC-owning Toyota drivers from your demographic! Never mind. Anyway, here are eight top reasons you should buy a Mac.

  • Macs are beautiful. The great Alan Kay said that “People who are really serious about software should make their own hardware” which is what Apple do, beautifully. I’m not naïve enough to believe that Apple design and make everything in their computers, but they take charge of the most important bits. I’ve always loved Apple’s industrial design but Jonathan Ive and his team have kicked it up to another level in recent years. Apple give you attention to detail that you just don’t get from PC manufacturers. For example, my PowerBook has a column of five lime green LEDs on the underside of the battery that light up when I press a little button, so I can see how much charge is left without switching the computer on. The MacBooks have a magnetic power connecter that will disconnect if you trip over it so that the Mac itself isn’t dragged down onto the floor. When I eject a CD or DVD from the slot on the side of my iMac, exactly half of the disc is ejected with exactly the other half remaining inside the computer. Somebody has actually thought about how much of the disc should be ejected and designed accordingly. The precision of the engineering is breathtaking. This fanatical attention to detail also carries through to the box that the Mac comes in and to the documentation it comes with. The whole experience has been thought about and the result is that the whole is definitely greater than the sum of its parts.
  • Macs aren’t cheap. It seems odd to tout the price of Mac ownership as a virtue, but that’s not actually the point I’m about to make. One of the arguments that’s always wheeled out against the Mac is that they’re expensive. Yes, it’s true: Apple don’t make low-end computers in the same way that the prestige German car manufacturers—Audi, BMW, Mercedes-Benz & Trabant (joking)—don’t make low-end cars. Some people just don’t seem to understand that this is an acceptable way of doing business. Hey, if you want to pay £250 for a cheap PC then more power to you, you’ll almost certainly get more bang for your buck than ever before. However, thanks to the relentless march of Moore’s Law, the high-quality Mac has never been more financially accessible either. You can pick up a cool little Mac mini for £399. Further up the price scale, there have been various comparisons that have shown that price-wise the Mac comes out equal or even less than a PC kitted out with equivalent features and quality of components. So you might say that a Mac is relatively inexpensive but never cheap.
  • Macs foster creativity. The Mac includes a piece of software called GarageBand that lets you make your own music by putting together a whole range of musical samples into a sequence. Or you can plug in a keyboard and play something. Or plug in a microphone and record something. This is the sort of thing that professional musicians did twenty years ago with Fairlights that cost £60,000! Oh, and if you like the result you can export it to iTunes. Macs make it easy-peasy to organise your fabulous holiday photos and turn them into a slideshow on a DVD—accompanied by your GarageBand composition from earlier—that you can use to bore your friends and family to tears with. All of these iLife applications work together properly. And if you’re really serious about photography like Mr Conners, then the Mac is the platform of choice. I probably don’t need to mention that Photoshop started out on the Mac, but more recently Apple’s Aperture and Adobe’s Lightroom have been slugging it out in the professional photography software stakes.
  • Macs don’t let you down. Like it or not, Windows is (in)famous for going wrong. I’m not talking about the Blue Screen of Death here. I lose respect for people who are still making jibes about Windows crashing, because in my experience Windows has been a rock-solid for years. No, what I’m talking about is the curse of malware. I wouldn’t dream of hooking up a Windows PC to my broadband Internet connection without having the holy triumverate of firewall, anti-virus and anti-spyware software in place. On my Macs I just use the built-in firewall and that’s it. No system is perfect and Apple do release the occasional security update, but it’s nowhere near the torrent of Windows updates that come down the wire every time I boot Windows XP. Irrespective of whether this is because most computers run Windows or whether Mac OS X really is a more secure by design, Macs give you peace of mind. And it’s nice to know that the operating system isn’t wasting resources by constantly having to monitor itself to see if it’s under attack.
  • Macs run Mac OS X. Mac OS X is a great operating system. It’s a bit of a mongrel in the sense that it’s taken different bits from all over the place, but like a great chef, it’s combined all those ingredients into a delicious new dish. You get all the power, heritage and command-line tools of FreeBSD UNIX, the amazing development tools and APIs from Steve Jobs’ NeXTSTEP adventure, as well as the drop-dead gorgeous Aqua user interface. Aqua has benefited from being five years ahead of Windows Vista in terms of eye candy—which means that it’s more subtle and requires less hardware. I can get the full Aqua experience with all the transparency, drop shadows and animation with a 64 MB graphics card on my PowerBook. Windows Vista simply can’t do that. Some people have actually installed Vista on their MacBooks and report that not only does the laptop run hotter than under Mac OS X, but the battery life is reduced too. Remember, this is straight test of running the two different operating systems on the same computer. Finally, Mac OS X is easier to buy. It comes in two flavours: home or server and you can buy a five-user family pack for £139. That’s the cost of the full version, not an upgrade disc. Contrast this simplicity and transparency to the six different versions of Windows Vista, not including the forthcoming server versions. Windows Vista Ultimate currently retails on Amazon.co.uk at £313.48 for a single license.
  • Macs rock if you’re a software developer. Java, Python, PHP and Ruby are all built in and Ruby on Rails will be in the next version of Mac OS X. You also get a Developer Tools disc that contains lots of extra goodies such as GCC and the various bits you need to start writing your own Mac software, including a decent IDE. Plus you’ve got all the oh-so-handy UNIX stuff only a Terminal window away, including Vi and Emacs; talk about being non-partisan!
  • You can run Quicksilver on a Mac. Quicksilver is “a unified, extensible interface for working with applications, contacts, music, and other data.” What the heck does that mean? Just think of it as the closest thing we have to those control-your-computer-by-thinking gizmos that we’ve all seen in sci-fi films. Quicksilver is free software that thanks to its plug-in system can do practically anything. I can press Ctrl + Space and then start typing some letters from a URL and Quicksilver will complete it for me. Hit Enter and I’m in a web browser looking at that site. Or I can type browse and it lets me scoot through the albums, playlists and artists etc. that are in my iTunes library. Or how about this: I can type the name of a file, hit the Tab key and Quicksilver will present me with a list of things that I can do with that file e.g. Copy/Move/Rename/Open With/FTP etc. I can access my clipboard history, Address Book, command line and Gmail all from within Quicksilver with a few keystrokes. To see it is to not quite believe it, and then you see it some more and then you want it.
  • You can still run Windows. It’s easier than ever before to run Windows and Windows software on a Mac. When Apple announced they were switching to Intel processors in 2005, many of the Mac faithful got upset. They liked the fact that their beloved Macs were differentiated from PCs right down to the non-x86 architecture PowerPC processor they used. However, moving to Intel has worked out just great. The latest Macs use Intel’s brilliant Core 2 Duo processor which is perfect for running virtual machine software such as Parallels or VMware. I often run Windows XP on my iMac in a Parallels virtual machine to which I’ve allocated 256 MB of RAM. It flies along and is no slower than running Windows on the bare hardware. The latest version of Parallels comes with a thing called Coherence Mode. It’s a wacky name for a killer feature. Essentially it lets you forget that you’re running Windows in a virtual machine because it presents your Windows programs as if they’re native Mac OS X programs. So you can have Excel 2007 nestling amongst iPhoto and GarageBand. Talking about mixing business and pleasure! You can even set it up so that clicking the Parallels Dock icon opens up the Windows Start menu. It’s like they took Paul McCartney and Stevie Wonder out of the Ebony and Ivory video and replaced them with Bill Gates and Steve Jobs. Now everyone can get along in perfect harmony!