Monthly Archives: May 2010

Amazon Web Services

Amazon Web Services

When it comes to execution Amazon truly are amazing. Whether it be in delivering an online order from five different locations in two days or the creation of virtual servers in the clouds, they really have an impressive operation.

I have just been evaluating Amazon Web Services for the last couple of days and thus far I have been utterly impressed. In fact, I can’t remember the last time that a collection of technologies worked so well out of the box. Aside from the Richard Stallman concerns (which are real if a bit dramatic) the only issue I have come across so far is that Amazon have so many impressive features it takes a while to figure out the best selection of options.

I have been creating and deleting “servers”, adding disks, load balancing, databases, monitoring, and firewalls and everything I do takes a minute or two. In the world I come from it takes 7-14 days to buy a server, 1-2 days to provision it, and if I get something wrong I have to deal with it. What is most impressive is how all of this is achieved by the simple web interface with zero external assistance. Quite a contrast to the number of people that I have to rely in my current situation. Also, because things are so fast, it is really easy to try out some packages or installs and if you don’t like them you can instantly go back to where you were before.

I am keeping an eye on the meter too, if you go crazy it seems that prices could get fairly high. However, based on the amount of money we currently pay on our co-location solution I still think we can do things quite a lot cheaper in the cloud. The selection of services appropriate to the size and requirements of your client are imperative to get a handle on costs. This is where the Amazon approach can score because instead of giving all clients the same set of features you choose the appropriate set-up for each client and if they want more features they are there and they pay for them.

Will we save money in the cloud? I think so, but for me it is not so much about saving money as it is in saving time, increasing reliability, providing a better service to our clients, and offering them the options they are looking for – these really are the compelling reasons for cloud computing.

Cloud Computing is a harder sell if you already have a good hardware and software infrastructure. However, if you are starting a new company or a new project that requires new hardware I urge you to try Amazon out. Until a few months ago I was a skeptic but I have looked at clouds from sides now and am very pleased at what I have seen.

Joni Mitchell - Clouds

Joni Mitchell – Clouds

So far I have managed to avoid dealing with Cloud Computing as I like to give new technologies a few years to mature before using them. But this week I am pressing forward with an evaluation of the Amazon Elastic Compute Cloud.

I am optimistic that this will provide a good technology and infrastructure base for the new platform that I am just weeks away from commencing.

Let’s hope that unlike the song they don’t get in my way.

Tony McCann - 1982

Tony McCann – A Brilliant Coder

Of course one of the greatest programmers I had the pleasure to know whilst at college was omitted from My Top Ten Programmers post. His name was Tony McCann and he was my joint Ph.D. advisor. Although John Tucker spent more time with me, Tony’s pragmatic approach and amazing coding knowledge was always helpful to me.

Tony was one of those real coders that began before we had the luxury of compilers and high level languages. He was certainly no Quiche Eater and could out code us all.

I’m reminded of the time when I was attending one of his lectures and he was doing some calculations on those huge scrolling chalk boards they had in those days. At some point some brave soul put up his hand and said: “Dr. McCann I think you have that calculation wrong.” Tony whirled around looking perplexed as he studied the student then looked again at the board. He then realized his mistake and told everyone: “Ah yes, sorry, I was thinking in Hex.” Of course you were Tony!

He was a great character and an amazing coder and I always appreciated his help and insights. Thanks Tony!

Hammers do some jobs really well.

Hammers do some jobs really well.

The software vendors push the idea that better tools, languages, frameworks, and programming systems will make better programmers. This is simply not the case.

It is certainly true that most programmers can produce better code with the right tools. However, the second you want to do something new that is not covered by the tool or framework you are using you are now left to your own innate abilities. If you aren’t a good coder you will likely produce a bad solution, no matter how good your tools are. Stick within the framework and you’ll be laughing and people will think you are hot stuff.

In fact if you stay within the framework you might even produce better code than a more talented developer without the tools – kind of depends on the tool. However, don’t stray too far from your tools if you want to continue to impress your boss.

I read this article recently and agree 100% with these words by Matt Marshall:

One of the biggest challenges is getting an ace developer. The difference between a great developer and a mediocre one is huge. A great developer can push your business forward 10 or 20 times faster than a mediocre or average developer.

Growth in Sales requires Development and Marketing

Growth in Sales requires Development and Marketing

However, it only goes so far. In the first two years of a company great developers are what give you a shot, however to be really successful in the long term you have to have equally as good if not better marketing and entrepreneurial vision.

I think this is where a lot of great developers fall down – they think they can do it all by sheer technical virtuosity. This view typically leads to disillusionment. You need both sides of the coin to be successful in the long run, and sadly (for the developer) after the first two years much of the success of a company is driven by the entrepreneur and not the developer.