How low can you go?

Wednesday, April 11th 2001 will forever be etched in my memory as one of the best days of my life. This is the day my son was born! Alexander Beowulf Sutherland came into the world at 10:11 on this beautiful spring morning.

I’m not going to describe the whole childbirth experience in this opinion, though, because there is another reason this day is particularly memorable for me. Namely, it’s the day I tasted–and, bizarrely, finished–the worst sandwich I have ever eaten.

Little baby B had been lying oblique breech for the last three months of the pregnancy, and there was no way he was coming out any other way. Darling Snoogums and I are both planners by nature, and we actually appreciated being booked in for an elective caesarean section: this meant we knew exactly when the baby was going to arrive, and could take action accordingly. Unfortunately, this didn’t extend to making me a packed lunch. Having a baby is tiring work, even for the father, and even if the birth is a 45-minute surgical procedure rather than a 24-hour front-row preview of Hell.

So, at about 13:00, just after I’d made the obligatory phone calls to family and friends, I found myself quite hungry. The Simpson Memorial Maternity Pavilion is in the heart of Edinburgh, right next to the main University buildings, and hence also very close to numerous small sandwich shops and cafés. But did I choose to go to one of these funky, independent purveyors of freshly made fistfuls of food? No. I decided to visit the local Subway franchise instead.

Big mistake. Huge.

The restaurant itself was clean and tidy, and blandly decorated. Even at the peak of lunchtime, it wasn’t very busy, which I suppose was a bad sign. As I stood in the queue, I observed the dishes of sandwich fillings resting limply behind the glass counter. The meats and cheeses were packed in columns of perfectly cut, pre-processed squares–another bad sign, but stil
l I waited in line. The staff behind the counter was a morose assembly line, constructing supposedly tasty baguettes with all the enthusiasm of bored welding robots. But did I heed these omens of doom and flee? No. I ordered a foot-long “Subway Melt”: a hot concoction of turkey breast, ham, bacon and cheese.

Big mistake. Huge.

To me, a hot melt sandwich should be brimming with thick, freshly cooked (or failing that, just fresh) meat, and overflowing with a lava stream of strong cheese. It should have the option of being dunked or delicately topped with some rich tomato ketchup.

I understand this is not to everyone’s taste. Obviously, there must be a market for the bland monstrosity (this *should* be a contradiction in terms, but nooo…) that Subway served me up, because otherwise they’d be out of business, right?

Picture this: a 12″ long, sort-of freshly baked soft wholegrain baguette. Now, take two (2) wafer-thin square slices of reconstituted turkey breast, two (2) wafer-thin slices of tasteless ham with a water content of at least 75%, and two (2) rashers of overcooked bacon that nevertheless manage to be just as limp as if they were raw. Add two (2) slices of bland, processed dairy product. (I’m sorry, but I can’t bring myself to call it cheese.) Now fold, and nuke in a microwave for long enough for these contents to congeal into a sticky mass. Or should that read “mess?”

My stomach begged me to give up and run away as I watched this abomination being put together. At the very least, I thought, it could be livened up with a dollop of ketchup. But was simple, honest ketchup even on offer at the end of the assembly line? No, of course not. I could have a kind of bar-b-q sauce, mustard, or a variety of relishes, but simple ketchup, that most basic of fast food staple condiments, was apparently beyond their comprehension.

And you know what the worst thing was? As I sat down on a low wall on the Middle Meadows Walk, in the glorious sunshine, and attacked my hunger with this offence against good taste, I positively wolfed it down. Every flavourless morsel of sandwich, every last disgusting splodge of bitter, vinegary BBQ gunk, they disappeared down my cakehole as if they were spiced sugar plums. Ugh.

They say that hunger is the best sauce, but I can tell you this is not true: it’s parenthood. If, however, your mind isn’t addled and befuddled by the birth of your first child, I must urge you to stay away from Subway. For your own sake, avoid it at all costs.



21 January 2000

…and about time, too.

This is the first time I’ve updated this on-line diary in almost three months. Pathetic. I know exactly why, too. It’s not because I haven’t had anything to say (it has been a very full three months). It’s not because I haven’t had the time (I’ve had plenty of that, but I’ve chosen to spend it elsewhere). It’s because I fell victim to a particularly nasty programmers’ disease: Get It To Work (GITW).

My main goals in designing these new pages for the sunpig site were:

  1. I want to have a diary page (the thing you’re reading now) that automatically directs the viewer (that’s you) to the latest entry. Whenever I add a new entry, that will be the one you see at
  2. I want the viewer (you again) to be able to move back and forth through the diary entries.
  3. I want the diary entries to be stored in plain HTML format rather than in a database. HTML is a nice, portable format that can be converted to whatever system I might use in the future.
  4. I want to gain some experience with programming CGI scripts in perl.

I did all of these things. It works. So what did I do wrong? I forgot to add in step 2: Make sure the system allows me to easily add and edit diary entries.

Too often, you hear programmers say, “Okay, so it may be a bit hard to understand, but once you get familiar with it….” This is not what you want to hear about a new piece of software. What you want to hear is: “It’s simple to learn and use right from the start, and once you get more familiar with it, you can do all of these other fabulous things!”

“Hard, but”, versus “Easy, and.” It’s a bit of a no-brainer, really. Make the interface hard to start off with, and you will start off with users resenting the system, complaining about it, and, worst of all, not using it. If users don’t see the pay-off from your system straight away, there is an excellent chance they will go back to the old version of whatever they were using, or they will find some other, simpler way of doing it. Or they won’t do it at all (like me).

Wrong way to make a user create a new diary entry:

  1. Create an empty text file
  2. Write the diary entry, using HTML formatting tags (e.g., <h1>, <p>, <b>, etc.)
  3. Save the text file with the name of the current date, i.e. 20000121.html
  4. Use an FTP tool to upload this diary entry to a particular location on the target web site

Initially, this seemed to be a reasonable way of doing things. I’m a bit of a wiz with a text editor, so creating files should be a snap. I write HTML for a living, so no problems there, either. Uploading the file to the web site? Doddle.

Except that it’s a pain to actually do. It means I have to have a text editor available. It means that I have to have an FTP tool available. I can’t just go into a web cafe and write me a new entry, as I would like to have done while we were in California in November. (Were it not for the fact that Kinkos charge $15 an hour for web access. Even the most expensive web cafes here in Britain aren’t that expensive.)

So, the good way to make a user create a new diary entry is this:

  1. Go to the diary creation web page
  2. Enter your user name and password
  3. Write the entry on the web page
  4. Press the “save” button

I don’t have to worry about what name I give the file–I don’t even have to think about that fact that it *is* a file. All of that technical stuff is hidden from the user. Which, come to think of it, is probably one of Martin’s rules of User Interface:

Rule 2:

The user should not have to know anything about the underlying technical implementation.

Example: In a system I’ve been working on recently, there is a database table with a field called “date_1“. (Tip: never call a database field “date_1”. It causes any programmer who works on the system after you to want to hunt you down and rip your fingers off, one by one.) The table holds account details. The field “date_1” holds either the start date or the end date of an account, depending on the account type. (Tip: never ever do this. In addition to the programmer who comes after you, the Gods of Software will also want to vent their wrath upon you.)

When I started work on this system, I wrote a web page for entering account details. On the page, there was one field for this “date_1”. If you changed the type of account (from a drop-down list box), the caption of the field would change from “start date” to “end date”.

Bzzt, wrong. But thanks for playing.

If the user isn’t aware that the “date_1” field should contain different dates, they will go in to the web page, and see “start date” as the default. They will then change the account type to one that requires an end date, and then merrily enter a start date in the field, because that’s what was asked for when they looked originally

Sure, users would learn about this, “once they get familiar with it,” but until then, they will make mistakes, complain about the system, and resent it. If you’re in the business of building software, user dissatisfaction quite simply equates to reduced sales.

Unfortunately, if you write this stuff for yourself (i.e., this diary system), you have three choices:

  1. Resent yourself
  2. Buy, or bring in a system from outside
  3. Don’t use it

I’m too vain to resent myself, I’m too proud to buy in something like this (which I could write myself–this is what I do), so I just haven’t been using it.

So one of my next projects is going to have to be writing a few PHP pages to act as a new diary entry/edit mechanism. Now all I need to do is learn PHP…

(And while I’m at it, I might do a little calendar thing to show what dates have diary entries on them. Because at the moment, if you click on the “previous entry” hyperlink on this page, you have no idea whether it will take you to an entry from last week or last year. So you don’t know if you’ve missed anything unless you actually scroll all the way back. A bit useless, I’m sure you’ll agree.)


The 6th Day

The 6th Day: Arnie’s back, and his clone is, too!

Arnold Schwartzenegger hasn’t had a big box office hit since the fantastic True Lies in 1995. Eraser was a competent action movie that sank without a trace, and End Of Days was simply a turkey of mythical proportions. Can The 6th Day revive his flagging career as an all action hero? You betcha.

The 6th Day takes its title not from last year’s film about seeing dead people, but from the Bible, and the story of creation: on the sixth day, God created Man. The film is set in the near future, at a time when animal cloning is not just common, but commercialized. Human cloning has been attempted, but scientists have deemed it too difficult a problem. In addition to that, a series of so-called “sixth day” laws have been passed, making it illegal even to try.

Of course, there is a group of people who have gone ahead and done it anyway.

Schwartzenegger plays Adam Gibson, a helicopter pilot who runs an adventure skiing business. He and his partner Hank (Michael Rapaport) fly people up to the tops of mountains to let them enjoy the fresh snow up there. The story effectively starts when his partner covers for Gibson’s absence one day, and flies billionaire businessman Michael Drucker (Tony Goldwyn) up to the hills. Drucker runs a business empire built on animal cloning technology, and has many enemies. At the top of the mountain, anti-cloning extremists assassinate him, and everyone else on board the helicopter, too.

Drucker’s company (being big and corporate and therefore not entirely trustworthy and above board) owns the technology to create fully grown human clones, and to give them a complete set of memories. They make a clone of Drucker, and, thinking that Gibson (Arnie) was flying the chopper, one of him, too. So now there are two Gibsons wandering about, neither aware that anything unusual is going on. When the company discovers their mistake, they send a team of experts to kill one of them–it doesn’t really matter which–and so destroy the evidence.

Of course, this doesn’t go according to plan.

From here, the story takes off at a rocking good pace. Racing against the team of corporate thugs chasing him, Gibson works to uncover the truth about human cloning, and to figure out how to get his normal life back. There are car chases, gun fights (featuring some pretty cool tracer bullet effects), and a healthy dose of humour. There are relatively few stunts for stunts’ sake (which I think is a good thing), but the set pieces, especially the final confrontation with the bad guy, are tense and well staged.

As an action movie, it works on every level. Interestingly enough, though, it also works as a damn good science fiction film. Not even a “sci-fi” pseudo-western filled with spaceships and blasters and swaggering heroes, but a genuine exploration of scientific ideas and their consequences.

Okay, so the cloning technology they use is far fetched, perhaps even ridiculous–or so I thought at first. Then I looked at it a little harder, and I wasn’t so sure any more. They create fully grown “blanks,” which are featureless humanoid shapes. Then they infuse the blank with the genetic material of the cloning subject, and force the final development, causing the clone to adopt its ultimate shape and characteristics. Given that humans are all 99-point-something percent genetically identical, and assuming that we will sooner or later have a complete map of the human genome, and the ability to edit a cell’s DNA, can someone please explain to me why this is impossible?

(The idea of taking a snapshot of someone’s memories and mental state through a retinal scan stands up to much less scrutiny, but I’ll let that one slide for now…)

But once you take this development as your basic premiss, the plot sticks to it absolutely: if this is the case, what are the logical consequences? The script doesn’t feel obliged to explain in great pseudo-scientific detail why it all works, or how some equally implausible technology can solve all of the characters’ problems, defeat evil, and generally bring about world peace. What it does do is examine the situation it has created within the context it has laid out. You have an identical clone, with all your memories, who really does think that he is you. How do you react to him? How does he react to you? How do you feel when he kisses your wife, and she thinks that he is you?

All the while I was watching this film, I was thinking that it could have been made on a much smaller budget, with hardly any special effects, and a cheaper, unknown cast, and it still would have been a good film. It has a good plot. It has a good script. It even has a sub-plot, for goodness? sake! Schwartzenegger action movies don’t have sub-plots! (It features Robert Duvall as the scientist behind the human cloning technology, and his dying wife. His wife doesn’t want to be cloned and brought back to life after her death. How does he deal with that? Does he respect her decision, even when he knows that he could have her back, exactly the way she was before, when even she wouldn’t know any different?)

I said it in my review of End Of Days, and I’ll say it again here: Arnold Schwartzenegger isn’t an actor, he’s a movie star. Robert Duvall steals the whole film, in my opinion. But is says a lot for Arnie as a movie star and as co-producer of this film, that he allows the show to be stolen. He knows that he’s the box office draw, so he can afford to allow the director (Roger Spottiswoode, whose recent credits include the Bond film Tomorrow Never Dies) to focus on the significant talents of the supporting cast.

This is actually quite a mature film. Cloning as a theme has been done plenty of times before, and recently in films like Multiplicity and Alien Resurrection, but the philosophical consequences were secondary to either the comedy or the action. Total Recall, also featuring Arnie, made a half-hearted attempt at examining the issue of identity in a world where memories can be bought and sold and forged. The 6th Day takes a deeper look at these themes. It comes closer to capturing some of the paranoia of Philip K. Dick’s work, but the author whose stories it reminds me of most is John Varley. Varley has a series of tales, set on the moon and nearby space settlements where cloning and memory replacement–effectively backing yourself up–is an everyday thing, and perfectly normal. Being an action movie, it’s hard to do full justice to these ideas, but at least The 6th Day tries. For that reason alone, it deserves a look.

The fact that Arnie kicks ass, and is great fun to watch, is just a bonus. Highly recommended!

Car! Books! Stuff!

Car! Books! Stuff!

27 October 2000

Woohoo! After four, yes, four months of waiting, we’ve finally
got the car we won in July. I went along to Abercromby Toyota last Monday
to pick it up. I think the sales people were a bit confused when the first
thing I asked was, “will you buy it back off us?” They got over it, though,
but the price they offered wasn’t quite the price we were hoping for. So now
it’s on the open market.

Would you buy a used car from this man? Of course you would 🙂


The long wait is finally over:
The Amber Spyglass
by Philip Pullman is finally out in hardback. This is the
third book in the “His Dark Materials” trilogy, which started with
The Northern Lights and carried on in The Subtle Knife.

Last Christmas Abi gave me the first three Harry Potter books. I zipped
through them in a matter of days, and found that I was thirsty for more
young adult fiction. (For the last few years now, I’ve had an idea for a YA
trilogy of my own bubbling about in my head, but it hasn’t emerged onto paper
yet. I was hoping to stir up some more creative juices. Hardly surprisingly,
it still hasn’t happened yet.)

At one of our local Waterstones,
in the YA section, I found a pile of books, all apparently in the same series,
that caught my eye straight away. The name of the author: Philip Pullman.
The book covers were colourful and moody, the lettering of the titles bold and
sublty ornate, like a finely crafted sword. Whoever came up with the design
deserves an award–they are some of the finest and most inviting covers
I’ve ever seen.

As I read the blurbs, I discovered that there were two series: a Victorian
trilogy (The Ruby in the Smoke, The Shadow in the North and The
Tiger in the Well
) and the “His Dark Materials” trilogy. At the time
I didn’t realize that only the first two books of this trilogy were available.

Can I just say, “AAARGH”.

The Northern Lights and The Subtle Knife are just stunningly
good books. They may be targeted at a youthful audience, but any adult will
be equally bowled over by them. The characters are engaging, the world Pullman
has envisioned is wide in scope, filled with genuinely innovative fantasy ideas
(like Lyra’s world, where everyone has a personal daemon, a kind of animal familiar
that is almost part of one’s soul), and the adventures portrayed are gripping,
fast-moving, and filled with tension and action. Plus, they introduced us to
Tokaji wine 🙂

So, for the last nine months or so, I’ve been eagerly waiting for The Amber
to appear. Fan sites originally said it would be coming out around
April, but the release date was set back to November (although it’s out already).
Some rumours say that this was to avoid conflict with the launch of the fourth
Harry Potter and the Goblet of Fire, others say that Pullman delivered a
larger than expected manuscript to his publishers, and that it required extensive
editing to bring it down even to the eventual 550 pages of the UK hardback edition.
(I suspect the former, myself.)

But now it’s finally here. I picked it up yesterday evening, and I’m looking
forward to some long and pleasurable hours over the weekend. Once we’ve finished
laying a new floor in our loft, that is.

Microsoft Certification update

After having been a “temp” MCSD (two of my qualifying exams expired
three days after I’d achieved got my MCSD), I’ve now upgraded myself to
permanent MCSD status. The dreaded “70-100 Exam” (Analysing Requirements
and Defining Solution Architectures) turned out not to be so hard after all,
and I passed it with a modest 99%. No, really.


Fifteen weeks down, twenty-five more to go. Abi is just starting to show, or
maybe she’s just getting fat. (Ouch–stop hitting me!)

New PC!

Well, more like yet another set of upgrades to the old one. Frankenstein,
which was build from scratch from individual components back in 1995, has now
shed its last original part–the keyboard. And that was only because it had
too large a connector to plug into my brand new
Abit KT7 motherboard. Mmmm….Donuts…

To go with the motherboard is a new AMD
Duron 800 chip, which is a serious eye-opener after my old K6-2 400. I can
now finally run Deus Ex at an acceptable
framerate–even on my old Voodoo Banshee video card. Okay, so it’s only
running at 640 x 480 resolution, but that’s just fine by me. It still looks
great. (And as for Quake 3, can we say 79fps? Sure we can!)

At the same time, I also decided to give up my treasured Linux project.
I like the idea of Linux, and I love puttering around with it, writing little
scripts, hacking around with CGI and perl. I don’t love having to
spend several days trying to figure out how to get my modem working, how
to set up the drivers for our wireless
ethernet cards
, how to configure Samba to serve up our MP3 collection,
and how to configure a proxy/firewall to allow both Abi and me to share
our internet connection.

All of the above had been in my original plan for yon wee Linux beastie
in the corner. But when I can reformat the hard drive, install Windows 98
and WinProxy and have the machine
doing all of the above in under two hours with Microsoft software, then
it really isn’t much of a contest.

I figure I’ll probably end up with a Linux machine somewhere inside
the firewall, and maybe I’ll mess around with it occasionally. I hack
around with computers all day for a living; when I get home, I really just want
things to work first time. Unfortunately, Linux just doesn’t cut it
on the ease of use and configuration front yet.

More soon,


Winter Glen

The Winter Glen sits at the bottom of Hanover Street just before it turns into Dundas Street. It’s a basement restaurant, reached by a short set of stairs. Most of the restaurants in this area are two blocks further up towards the centre of town, and with its discreet entryway, the Winter Glen is hardly in your face and screaming for business. It relies on reputation to pull you in, or, if you happen to walk by it every day on your way to work (like I used to), a rather tempting menu.

When we went there last Saturday, the menu was filled with imaginative sauces and variations hung from a backbone of solidly classic ingredients: lots of game and fresh fish. Although there is no a la carte selection, there is plenty of variety on the fixed menu. And at £26 for three courses, the price is pretty decent, too. The wine list is short but adequate if you plan to drink a whole bottle. Being pregnant, my darling snoogums wasn’t drinking, so I just wanted a half. This left me with two reds and two whites, one of which had just sold out. The Pouilly Fumé I ended up with proved quite tasty and crisp nonetheless.

Feeling adventurous, there were two dishes that grabbed my attention straight away. I started with mussels, tiger prawns and scallops in a light fish broth flavoured with Chinese spices. The scallops were a bit small, but the tiger prawns were huge and juicy. The fish broth, though, was the star of this show: it was sweet and exquisitely smooth, like pure distilled shellfish. Put away all images of fish heads bobbing about in a witch’s cauldron, and consider the joys of liquefied crab meat overlaid with the condensed aromas of a Chinese take-away…. Now you’re getting close!

My main course carried on the oriental theme. (I suppose we could have just gone to a Chinese restaurant instead, but hey.) Thin strips of duck breast draped over steamed vegatables, in a sweet oriental jus, with shallots in an orange marmalade. Unfortunately, this is where the disappointment set in. I could forgive them the broccoli (after all, chef could hardly be expected to cater to my every culinary whim), but the shallots and orange completely overpowered the whole dish.

The first bite of duck was delicious. It was cooked pink and moist, and it soaked up the honey-sweet dark jus like kitchen roll. But as soon as the orange aftertaste started to kick in, there was no turning back. The duck’s distinct flavour was washed away. Even pushing the soft, whole shallots to one side wasn’t enough, because the sauce had picked up too much of their flavour. Adding bites of new potato and courgette didn’t help, either. The tang just blasted them away, and I could only tell them apart by their textures.

By contrast, the venison that Abi had was overcooked and tasted of bland, generic Meat Product. We figured that if we put them together we’d have two perfectly flavoured main courses. Set apart, though, they weren’t quite up to scratch. Full points for imagination, but chef’s palette is obviously a bit more robust than mine.

Things started looking up again at dessert, though. I had a mouthwatering slice of lemon and lime tart with a light drizzling of thin vanilla custard, and Abi took the chocolate tart. The base of my slice was a moist, crumbly biscuit and the citrus filling was rich and velvery, melting on my tongue like frozen silk. Tiny strips of lime zest added an occasional extra tang to the mix. The experience was over far too quickly. Abi’s chocolate tart contained the entire cocoa output of a small South American country, yet was almost as light as my citrus tart.

We finished the meal off with coffee and tea. I don’t know why, but I felt unreasonably disappointed when the waiter arrived with just a single cup of tea for me. Normally I don’t drink more than a single cup anyway, but I do rather like having a pot there. I’m sure they would have been only too happy to bring me a refill, but for me it ended the evening on a minor note.

We both came away with mixed feelings about the Winter Glen. The restaurant is decorated in a modern Scottish style, with relatively sparse table settings. The place filled up nicely while we were there (from about 19:30 onwards), and there was a nice buzz to it. The atmosphere is upmarket smart casual; the maitre d’ wore a jacket and an open collar shirt. It is equally suited to business dinners and smart family evenings out.

Food-wise, it was very good, but not uniformly excellent. Starters and desserts were top class, but our main courses let the average down. Also, maybe it was just my selections, but I suspect that chef has a bit of a sweet tooth. That’s fine for me, because I do too, but don’t go there expecting a light touch on your tastebuds.



12 October 2000

Picture below taken at 6 weeks (30 August), but we’ve been waiting until
now to make the formal announcement. It’s now 12 weeks, and this puts us past
the main danger zone for miscarriage, so we feel (relatively) confident
that B will make its appearance somewhere
in the vicinity of 20 April next year.

Happy, me? <grin>

Car? What car?


Almost four months down the line, we still don’t have the car we won. I’ll
put up a full timeline of the ridiculous rigmarole once we actually have it.
For now, all we know is that Toyota failed to send Fuji the invoice for the car
in mid-September. Fuji only cut cheques twice a month, and the next run is at the
end of this week. So, supposedly, Toyota will have the money for the car at some
point next week, and will then be able to hand the car over to us. By that point
we will have had the car insured for a month, at a cost of £60. Seeing as we only
want to sell the damn thing as soon as we get it, we are highly unchuffed
with the whole situation.

MCSD ahoy!

To my surprise, Microsoft send me a letter saying that I am now an MCSD
(Microsoft Certified Solution Developer) a couple of weeks ago. I was surprised
because I had only sat three of the four necessary exams. (I passed VB Desktop &
Distributed earlier in September.) It turns out, though, that
some of the exams I sat about two years ago (WSA I & II) were still valid, and counted
towards my qualification.

Unfortunately, these exams were retired three days after I got the letter.

Fortunately, Microsoft give you six months grace to sit the necessary further
exams to bring the qualification properly up to date. I’ve got myself booked in
for the dreaded 70-100 exam next Monday. Fingers crossed.