A bigger car park gets me to my desk faster?

August 1st, 2009 § 1

Software developer’s PC’s really just need lots more RAM than the other, standard issue, office desktops right?  After all, it is the accepted and cheapest way to give a machine a power boost – add more RAM.

For a minute, imagine a small office building with a large car park and that the most efficient way to give the same instructions, to as many employees as possible, is to have the employees assemble outside and the boss stand in the car park with a megaphone.

Now picture that small office block as an analogy of a typical office desktop PC:

  • The people spread throughout the building represent – blocks of data on a hard drive
  • The elevator represents – the hard drive head
  • The space in the car park represents – the RAM
  • “The boss” with the megaphone – you guessed it, the processor

Right, so back to our first sentence, more RAM equals bigger car park.  “The boss” can address more people at once in his new supersize car park, or just keep groups of people nearby, ready to receive instructions because there’s plenty space for everyone.

That scenario is all very good when we’re dealing with databases and we want to process bigger chunks of data and have lots of data ready, on standby, to be accessed quickly.  And lots of developers run databases on their local machines, so we want lots of RAM for this.

imageBUT, we’re forgetting something that developers will probably do more frequently than anything else – compile stuff!  Compiling is a more granular operation that is done over lots of small blocks of data and involves lots of reading / writing at the same time.  Using our analogy above, you might picture that the size of the car park becomes partly redundant for this bit – we need to address lots of small groups of people and send them back and forth between the car park and their offices. And it’s the elevator, aka hard drive, that’s going to be doing most of the work for this bit.  It doesn’t matter how big your office block is (large hard drive), or how much space you have in your car park (amount of RAM).  Compiling is more about how fast you can get people between the car park and their offices, e.g. read and write data to different parts of the hard disk.

So by this point we’re already agreed that we’re keeping our RAM upgrade, we need it and we’re not giving it back! BUT we’ve realised that we also want a very fast hard drive.

Now, how many of you developers out there have a faster hard drive than, lets say, the office administrator or than Mr top sales guy from the Sales department?

If you answered “no” to the question above, start watching how many cumulative minutes a day you spend waiting for your hard drive to finish some operation.  Paying a small premium for a faster hard drive, such as the Western Digital VelociRaptor might pay itself back several times over in time-savings.  Developers don’t use their workstations in the same way as everyone else – every core component should be upgraded to balance the system.  More on how to convince “The boss” that you need an upgrade in a following post, shortly.

Right software for the blog – not .NET (yet)

July 31st, 2009 § 0

I write code all day and spend quite a bit of time working with various content management systems and databases.  When I sat down today to set up my own blog, I knew I was never going to write my own blogging platform from scratch.  That sort of thing is just not done anymore – unless you’re doing something that’s never been done before (and blogging has definitely been done before!).

.NET

My original choice was a .NET based blog because I’m familiar with ASP.NET and figured I’d be able to customise it.  After hunting around, the first thing that I learned is that blogging software is a lot more complicated and feature-rich than I’d expected.  Comment spam filters, trackbacks and integration with Windows Live Writer all seemed pretty attractive options.  My choices eventually narrowed down to:

All four of the above platforms were available for simplified install via the Microsoft Web Platform installer:

image

This time around, I’m being a real software “user” and looking for the path of least resistance.  While all four .NET platforms seemed like they could do the job, I rejected them for combinations of the following reasons: lack of reviews, difficulty skinning, long learning curve and effort required to customise.  Even though I’ve frequently used Umbraco and it has blogging packages via the community, I didn’t want to spend time setting up the templates or writing custom code for the basic blogging features available in other software.

WordPress

In the end, I settled on WordPress.  As a lazy user, this has everything I need and is a well-matured blogging platform with a massive diversity of themes and plugins.  MySQL was a requirement as a database backend:

image

One of the beauties of the Microsoft Web Platform installer is that all these dependencies  are detected and resolved for you:

image

15-20 minutes later, I have WordPress installed, an IIS site set up and working.  Themes abound everywhere you look and I eventually found “Oulipo” by Andrea Mignolo.  Installing a theme was as simple as copying the files to a subfolder and clicking the thumbnail in the Appearance section of the Admin page.

And there you have it – my first deployment of a PHP / MySQL application, that so far has exceeded expectations, whilst being really easy to set up.  As a Microsofty / .NET coder, the only comfort I take out of the experience is that the Microsoft Web Platform installer made the whole process simpler.  Actually the really hard part was picking the name (thanks to Richard Parker for helping with that part) and finding a clean-cut look for a blog focused on technical content.