New home page! PHP! MySQL!

New home page! PHP! MySQL! Database-driven! Easy to update! Automatic links to Everthing2

Aargh!

What is the world coming to?

This does prove to me, however, just how easy PHP is to use. It took me well over a week to do the initial “dynamic” version of the sunpig site in perl/cgi, and it didn’t work nearly so well. I started this new version yesterday (Saturday) afternoon, and by evening I had the edit facility all ready. Today I tidied up the calendar, and did the home pages, so they display n day logs.

Over and done with in a single weekend!

Of course, there are still a whole bundle of improvements to be made:

  • Put a “today” button on the calendar (particularly for the edit screens)
  • Bring the sidebars into the database as well, and make them editable too.
  • Allow uploading of images through the edit interface
  • Allow user to set how many logs should be displayed on their home page
  • Automated backups of the database.

Then, of course, there is Amazing But False to automate as well…

Also, the code is all over the place, and could use to be tidied up. But seeing as it’s my first attempt at PHP and MySQL, I figure I can only get better from here.

The Atrium

Another day, another dose of DIY. At the start of 2001 darling Snoogums and I embarked on an ambitious programme of decoration and renovation to get the house ready for our first baby. (Due just one month from now–ack!) We’ve got a new wooden floor in our living room. We’ve stripped wallpaper, painted, put up skirting boards, hung blinds, panelled ceilings and clad walls. We’ve bought rugs, sofas, shelves, pictures, mirrors, a changing table, a cot, and a rocking chair. We’re on a first-name basis with the staff our local Mothercare, and if we spent any more money at Ikea, they’d probably just forget about checkouts altogether and give us the title deeds to the store.

Boy, am I now sick of home improvements.

Fortunately, my parents came down to help us out this last weekend. Together, we managed to finish off both our living room and the baby room. The interior of our house is now completely done. Only the garage remains. And with Snoogums looking like she has a 20lb turkey strapped to her tummy, that has now become my personal responsibility.

And what could be better, after a long and stressful day’s work (please don’t ever ask us about attaching venetian blinds), than to relax with a fine meal and a bottle of wine? Well, by the time 18:30 rolled around, I think we would all have preferred to say “bed”, but we forced ourselves to go out anyway.

The Atrium restaurant resides in the same building as the Traverse Theatre on Cambridge Street. This is just behind the Usher Hall, and not a million miles away from the King’s Theatre and the Cameo Cinema, so if you’re planning a night’s entertainment, its location could hardly be better.

The restaurant’s decor is subdued, mellow, and chunky. Heavy dark wood is everywhere, as is aged copper and bronze. The scalloped ceiling is partly covered with sail-like hangings, and a similar material is used to cover th
e spindly chairs. (The chairs were, unfortunately, a bit on the hard side. By the end of our meal we found ourselves shifting from cheek to cheek trying to get comfortable.) Intricate modern chandeliers and carefully placed indirect spots produce soft light and a warm atmosphere.

The menu comes on an A5 sheet of high-quality paper, with its corners slipped into slits on a thick sheet of brushed copper. There were five starters, five main courses, and five desserts on it, but there was also a fixed menu with a different selection of items. (The fixed menu was £25 per head. For an extra £13.50, though, you could get a glass of Sommelier’s choice wine to match each dish. For that price, the menu and wine combination represents excellent value.)

While we were making our selections, my parents both had a glass of Chardonnay Kir, which they said was very good. My gin and tonic was pretty mediocre, but it served its evolutionary purpose of refreshing my mouth and relaxing me into the evening.

Before our starters arrived, we were presented with a few amuse-bouches of melba toast with goats’ cheese and red pepper, and salmon tartare tartlets. The goats’ cheese was wonderfully creamy, nasal and pungent. The salmon tartare didn’t strike me quite so well, but that’s probably because I’m not a huge tartare fan in general. There’s something about the raw meat and onions that just doesn’t work for me. (I pick the onions off the top of my hamburgers at McDonalds, too.)

My starter was a mussels, sweetcorn and saffron stew (£8.50)–an interesting combination. It arrived beautifully presented on the plate, a delicate pile of steamed mussels, thin strips of onion, and crunchy sweetcorn at the centre of a moat of creamy yellow sauce. But scattered around the plate were what appeared to be chunks of tinned pineapple. Hello, I thought; that’s even more unusual than I was expecting. A quick poke with a fork showed that they were, in fact, cubes of steamed potato which had absorbed the saffron colour of the sauce.

Also, contrary to my expectations, the dish turned out to be rather tangy. The mussels provided a layer of seafoody flavour, but the onions and the sauce gave it a definite bite. The wine we had chosen for the meal was a Lingenfelder 1997 Riesling spatlese (£24.50). It was crisp and fizzy up-front, and pleasantly dry, but I found that its own tanginess was too close a match for my starter.

By contrast, the Riesling turned out to be the perfect accompaniment for my main course: a thick slice of roast pork loin, with roast apples and parsnips, and a generous ovoid of buttery mashed potatoes (£18.50). I don’t normally like parsnips, but these were roasted to the point of being sweet and caramelised on the outside. The mash was perfectly smooth, yet not excessively creamy. It retained a starchy potato texture, while still melting in the mouth. The pork was in prime condition, dense, a bit dry, and hugely flavourful. It also had a delicious layer of crispy golden crackling attached. The only thing that let it down was the bed of shredded cabbage on which it was served. I know that cabbage traditionally goes with pork, but I’ve never been able to stomach the stuff. (And the menu never said anything about it. If I’d known, I may have gone for the venison instead.)

Now so far, the meal had been gradually following an upward trend. Little did I realise how much better it could get.

My dessert was an apple tarte tatin with caramel ice cream (£4.50), and it is one of the best desserts I have ever tasted. My first bite of the ice cream was like taking a bite of fresh caramel–the kind you make yourself straight from sugar. It was creamy, with the back-of-the-mouth tang you get from something so intensely sweet and strong it tries to burrow straight from your mouth into your brain.

The tarte tatin itself was baked almost black, sticky and caramelised. The flavour of the apples shone through like a blazing Northern Star. The pastry was dense yet easily cuttable, and drenched in sweet apple and sugar. The tarte was surrounded by a delicate vanilla glaze: a simple, thin sugar syrup, dotted with almost microscopic vanilla seeds. I put my nose close to the plate and breathed it in deeply. I fingered it and took a fingertipful into my mough, enjoying it in its own right, completely separate from the rest of the dish. It was heaven on a plate.

Darling Snoogums, in the meantime, was tucking into a lemongrass crème brulée, with a brandy snap full of lemon and lime sorbet. I managed to convince her to give me a bite, and at that moment I realised that the next time I go back to the Atrium, I will just be ordering a complete selection of their desserts–nothing else.

If I do that, though, I’ll have to make sure to get a proper dessert wine to go with it, though, as unfortunately the Riesling just couldn’t cut it going up against all that sweetness.

But seriously, folks–the Atrium serves some excellent food. The reason I’m giving it four stars rather than five is because the starter was a bit strange (not bad, mind you, just…different), and because the main course, although wonderful in flavour, was a bit ordinary in scope for a restaurant of this calibre. (I think I may be starting to get more critical in my old age 🙂

Price-wise, we paid £45 a head, including pre-dinner drinks, wine and water. This may seem quite hefty, but that just reflects Edinburgh pricing for a top-quality restaurant. And there is no doubt that the Atrium is top quality. We all had a fantastic time, and got back home feeling as if the whole day had been one big party. If a restaurant can do that after DIY hell, I can’t do anything but give it a hearty recommendation!

Pearl Rhythm Traveller Drum Kit

About this time last year, I decided it was finally time for me to fulfil a life-long ambition, and learn to play the drums.

I never played any kind of musical instrument when I was younger, and my knowledge of music theory used to be shaky at best. (A quaver? A delicious potato snack. And isn’t a crotchet something to do with wool and knitting?) Yet whenever I listen to music (and I have always listened to a lot of music) I feel in sync with the beat. I tap my feet, and patter out rhythms with my fingers. I love a good melody, but for me, the beat is what drives a song along. That’s where I wanted to be.

Plus, drums are severely cool.

A couple of years ago, darling Snoogums bought me a pair of bongos for my birthday. I tried to learn to play them on my own, but I didn’t make it very far, and they eventually disappeared into the pile of old stuff in our garage. I knew that if I really wanted to play the drums, I had to take lessons. Going to a teacher every week would keep me honest. If I was paying money for lessons, I would have something more than just my time invested in the learning process. I would feel an obligation to both myself and my teacher to do my homework, to study the theory and to do the exercises.

I also had to refrain from going out and buying myself a set of drums. I wanted them–oh, how I wanted them!–but over the years I have learned that my interests and enthusiasms come and go in cycles. I’ll go through a phase of playing computer games non-stop for a period of a couple of months, and then I won’t touch them again for half a year. I’ll write several short stories, then lose interest in them, and not put pen to paper (in a virtual, word-processing sense) for months. Likewise, the time I spend on Dooyoo, varies enormously.

Drums are expensive. If drumming turned out to be just another one of my fads, I would feel pretty foolish to have splashed out half a grand on something I would never use again. So Snoogums and I made a deal: if I was still playing by the time of my birthday (late November, about six months after I first picked up a pair of sticks), then my combined birthday/Christmas present would be a drum kit. Fantastic! I had a goal to work towards!

And verily, come November I was still playing. Drum city, yeah! After having researched them on the net, we got me a Pearl Rhythm Traveller drum kit for £430.

The main reason I wanted this particular kit was its quietness. This is not normally a quality associated with drums, but Pearl make these special things called “muffle heads”. These are like normal drum heads, but they are made of a fine nylon mesh rather than a solid sheet of material. When you hit them, they feel like normal heads. The stick rebound you get is quite natural. But the mesh dissipates sound in a completely different way, and sounds nothing at all like a normal drum. In fact, you can strike one in one room, and hear almost nothing at all in the next room. They’re quieter than the average practice pad.

This, of course, has some serious advantages for the drummer who lives in a flat, or a semi-detached house (like we do). You can practice all you like without the neighbours showing up on your doorstep with baseball bats. Just the other day, one of our neighbours came round to visit. Until we told her, she hadn’t even realized I had a drum kit. How cool is that?

The Rhythm Traveller comes with the following pieces of equipment:
1 x 13″ snare drum
1 x 10″ high tom
1 x 12″ medium tom
1 x 14″ floor tom
1 x 20″ bass drum
1 x H-70W hi-hat stand
1 x S-70W snare stand
1 x C-70W cymbal stand
1 x P-70 bass pedal
1 set of muffle heads, and 1 set of ordinary heads for all drums
2 x plastic practice cymbals
+ various bits of mounting hardware

The kit doesn’t, however, come with any instructions on how to set it up. This was a bit of a problem for me, as I had only ever played on pre-assembled kits. However, Snoogums and I did manage to figure it all out after carefully studying the pictures on the front of the box. If you have ever set up a drum kit before, though, it should be a doddle. The high and middle toms mount on the bass drum, and the floor tom clamps on to the cymbal stand.

One thing that is conspicuously missing from the set-up is a drummer’s stool, or “throne” (for all you non-drummers out there, yes, they’re really called thrones). You can use an ordinary chair, or a small stool, but you’ll probably want to invest in a proper, height-adjustable throne sooner or later. Very few drum kits do come with a throne supplied, but if you’re buying your first kit, you should be aware of this additional expense.

Another thing that’s (sort-of) missing, is a second cymbal stand. I learned to play on a kit with a hi-hat, a crash cymbal, and a ride cymbal. The Rhythm Traveller comes with just the hi-hat and a single cymbal stand and cymbal. Snoogums got me a second cymbal stand (a Pearl B-800W boom stand) for my Christmas, so I was a happy bunny again after that.

She also got me a better set of practice cymbals than came with the basic Rhythm Traveller because, frankly, they’re pants. They’re a piece of plastic shaped like one-third circle segment of a cymbal, with a slice of foam rubber stuck on top. (Imagine a poorly baked cymbal cake, cut up into three equal pieces, and you’re not too far off.) Consequently, they have an unfortunate habit of rotating out of the way when you’re playing them. I would get myself into a nice little groove, look the other way for a second, and then–BAM–I’d strike air. Maybe that should be “WHOOSH” instead. Whatever the effect, it was very distracting. If you’re planning to buy a Rhythm Traveller, I suggest that you buy a set of proper practice cymbals at the same time. It will save you a *lot* of irritation.

So those are the kit’s shortcomings. What about its good points? Well, the big, big benefit has got to be its silence. I really can lay into the gear without the neighbours objecting. This also means that I can play along to my stereo when it’s playing at a normal volume, rather than having to crank it up to 11 just to hear the guitar solo. I’m still reluctant to play it in the middle of the night, though. Although the drums themselves don’t make much noise, I do worry about the vibrations of the bass drum travelling through the floors and walls.

A second benefit of the kit is its portability. Compared to most kits, it is quite light and small. The three toms only have a drum head on top, and none on the bottom. This means that when you take the whole thing apart (to travel to a gig, or–more realistically–to a friend’s house), some of the drums fit inside the others, making it easier to lug about. Realistically, you’ll still need a car to take it anywhere, though.

Pearl claim that you could use the Rhythm Traveller for playing live at “small, intimate gigs.” Indeed, if you take the muffle heads off, and put on the regular heads, it makes a pretty good noise. The small size of the toms means that they come out sounding a bit light and bongo-ish, but rather funky nevertheless. And if you add a set of real cymbals (like I did just last week), you’re sorted.

“But wait!” I hear you cry. “Cymbals–real cymbals–don’t they make even more noise than the drums themselves? How are you going to get away with playing those puppies in a three-bedroom semi-detached?”

Aha. You are quite observant, little one. Fortunately, my Zen Master of drumming (Craig Hunter of Banana Row in Edinburgh) provided me with the perfect solution: 2″ wide gusset elastic. Yes, gusset elastic. The kind you get at any ordinary fabric shop.

What you do, see, is take a length of the elastic (about twice the diameter of your cymbal, plus 2 inches for overlap), then sew it into a band. Then you stretch this band around the rim of your cymbal, and, as if by magic, the cymbal makes no more noise than its plastic counterpart. This works because it’s the edge of the cymbal that vibrates most strongly when you hit it, and it’s these vibrations that make the noise. The taut elastic prevents the rim from vibrating so strongly, and thus deadens the sound.

So now I have a full drum kit which looks and feels exactly right, but which I can play without breaching the peace. And if I want to rock out and deafen myself, all I do is switch drum heads, and remove the elastic. It couldn’t be simpler, or more fun.

Any drummer, from beginner to expert, who has to cope with the everyday realities of thin walls and neighbours, will fall in love with this kit in minutes. As for me, I think I’m going to head off now and kick some grooves.

Pearl Rhythm Traveller: £430
Drum throne: £75
Extra cymbal stand: £75
Solar Cymbals (14″ hi-hat, 16″ crash, 20″ ride): £79
Pro-Mark 5B oak sticks: £8.50
3 metres 2″ wide gusset elastic: £7.50

Total: £675

Subway

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.

Newsflash!

Newsflash!

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 www.sunpig.com/martin.
  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.)

-Martin.

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!