What is Software?

Last week I wrote about the mystery which is my employment – I’m a software engineer, but what exactly is software? Throughout this series, I’ll mention a few half-truths and ignore some of the more modern developments in computing, for the sake of brevity.

As a way of advance apology, if this makes little sense it’s because “Singing in the Rain” is on in the background (well it is New Year) and I’m slightly distracted.

Computers are fairly dumb items. The cold, hard lumps of plastic and exotic metals that make up the stuff you can throw down the stairs is generically called “hardware”. On it’s own, this hardware doesn’t actually do anything. And I mean literally would produce no display and no beeps. Hardware is very good at doing exactly what it’s told, very quickly but nothing more. To make the picture look even more bleak, computers can only do a limited number of things, mostly revolving around copying and comparing numbers. You do get hardware that is designed to simply convert those numbers into something humans can use, such as a screen or a printer. There’s obviously the opposite devices – they convert human input into numbers (such as keyboards and mice). There’s also devices which convert numbers into light or electricity pulses for talking to other computers, but the principle is the same as human output.

The trick, therefore, is to tell the hardware exactly how to take these numbers from keyboards and mice, do something useful with them, and then produce some more numbers which can be given to stuff like screens and printers. The term software is applied to the sequence of instructions which hardware uses to decide on what to do with all this input, and how to produce the required output. My job as a software engineer is to do the following:

  1. Find out what a user wants the software do (the useful work)
  2. Work out what a user could possibly enter into the computer
  3. Work out for each of those possible inputs, what the user would like to happen
  4. Break this down into a sequence of very explicit instructions that a computer can manage
  5. Enter this sequence of instructions into the computer in a format that it can understand

In theory, that’s job done. Unfortunately, things never turn out that easy:

  1. The user is rarely sure of what they want the software to do, let alone able to communicate completely what they want
  2. It’s very hard to predict everything the user can possibly enter – don’t forget that sequence and often timing is relevant too
  3. Deciding on what is a sensible output for every possible input is very difficult
  4. It’s actually quite hard to break things down into such low-level instructions that a computer can manage them
  5. Entering this information into a computer is done in a special format, known as a computer language – like any human language, it takes time to learn a computer language and years to perfect

So that’s a generic description of software and how it comes about. In the next part, I’ll write about the process of breaking down things into simple instructions and entering them to the computer using a computer language – this is the bit which is generally considered “programming”.

The Perils of Shaving

The Christmas re-runs of Aardman Animations’ “A Close Shave” and the need to de-fuzz my own face has inspired today’s post.

Back in my mid-teens, things were easy. Once a fortnight, I would need to remove three thin, soft hairs from under my chin with my Dad’s electric razor. Then something happened and I needed to shave. Often. It was probably the fault of girls, which I started to take an interest in at the same time.

Beard growth, or lack of it, is a source of much embarrassment. For example, I’m fair-haired, but when left unattended, my beard takes on a definite ginger tone which looks ridiculous. I also have two bald spots either side of my top lip, which means a proper beard would take forever to grow, even if I had thick enough skin to take the constant jibes I would receive.

I should count myself lucky though, because my beard grows at a reasonably-controllable rate. Ask your average grunt in a city-centre pub on a Friday night which one would be more embarrassing:

  1. dyslexia
  2. inability to grow a beard

You’d find that many people would sacrifice reading and writing over involuntarily having baby-soft skin at the age of 25. At the other end of the scale, though, is the people who could intensively farm face-fuzz. Take my friend from university for example. He is the only person I’ve ever met who could have a 5 o’clock shadow before noon.

And there’s the additional problems that come along once you try to get rid of it. Girls have chemicals, waxing, electrolysis, and shaving to remove unwanted hair. Proper men just have shaving, which is ridden with pitfalls. There’s the nasty taste if you accidentally get shaving foam in your mouth. Razor burn if you’re in a hurry or use cheap blades. Nicking the top off a spot or your lip and it bleeding about 3 pints of blood (usually for long enough to get on your shirt when you’re getting dressed to go out). That “melting face” sensation you get if you apply aftershave too soon.

But the male problems of shaving pale into insignificance when compared to women – for example, they need to shave their legs. I’m thinking more specifically about something which is ten times worse than running fingernails down a blackboard while having your knuckles run over a grater. It’s the idea of shaving your knees.

The adverts have these stunningly gorgeous models looking enormously happy in the bath with her new razor and running it lithely up her leg and demonstrating how well it glides no matter how curved the surface. I’m sorry love, but you lost me after your tibia – shaving your knees is just wrong.

Blogroll Isn’t Funny

You may have noticed the “blogroll” heading in the column to the left here and thought I fancied myself as a pun-meister par excellance. I would like to state now that the phrase “blogroll” is not big, not clever, and not mine.

Only today have I worked out how to change the title, but unfortunately I can’t think of anything better. Obviously, back in the good old days before blogging, someone said “I want to have a snappy name for a list of links for my blog. A bit like a roll-call.”. Someone shouted out “blogroll” and fell on the floor laughing. Everyone else thought it was crap, but it was deadline day and we got stuck with it.

We need at most two words to fit in the column width. “blogroll” isn’t great: “links” is just tedious; “others” is too generic; any takers?

New Lens Pics

My wife is downstairs watching Eastenders which holds very minimal interest with me, and I’ve had a couple of glasses of wine with Christmas dinner, so there’s little enthusiasm for washing the dishes either. Instead, I thought I would blog with a couple of piccies I’ve taken with my new lens.

Sunset looked pretty good tonight, which was followed by an almost-full moon on a nice and clear night.

It Might be a Merry Christmas

Like a magazine columnist, I’m writing my Christmas Day blog well in advance (not even I’m sad enough to blog at 8am on Christmas Day). It’s actually Christmas Eve and my wife is on the phone (again) to the outlaws.

As such, it might or might not be a Merry Christmas for me. If I manage to stay out of mischief before receiving presents on Christmas Day, I might be rewarded with a new lens for my camera. As such, I might produce a blog post about it.

This will be our last Christmas as a couple – next year we will have a baby to contend with and get all excited about. Can’t wait.

Seasons greetings.

[Listening to: Amarok – Mike Oldfield – Amarok (01:00:02)]
1 2 3 6