Falkirk Wheel

Yesterday we went to see the Falkirk Wheel! We took the train out to Falkirk, had lunch, then took a bus out to the Wheel. (Well, not all the way there–it was just a local bus that took us near the Wheel. We had to walk the last bit ourselves. Eventually, they plan to have amphibious vehicles that ride from the centre of town out to the Wheel, give you a ride, then take you back. But they won’t be ready till August.)

It’s an utterly astonishing structure. We’d seen it already a couple of months ago, but only from a distance, as the approach roads and the Wheel itself wasn’t open then. But this time we went all the way up to it, watched it cycle round several times, and even took a ride on it ourselves!

Falkirk Wheel 1
Falkirk Wheel 2
Falkirk Wheel 3
Falkirk Wheel 4

Perhaps one of the most surprising things about it is how little sensation of movement there is when you’re on it and it’s going round. It’s very slow. Unless you’re watching the vistors’ centre and everything else as they glide by (and really, what’s the point if you don’t?), you’d never even notice you’d just risen or descended 35 metres

Alex didn’t appreciate it as much as we did, but he had a fun time toddling about anyway. And he even picked up some sum, which by this morning had already turned into tan. He has his mother’s skin…

Sluggy Freelance

Looks like I’ve got another web cartoon to add to my list of daily funnies: Sluggy Freelance


Another busy day today. We had our first visit from the Health Visitor, who turns out to be the only male Health Visitor in the Lothian region. A charming and friendly guy, we had a good long chat about what happens next in the whole baby thing (immunisations, developmental stages, checkups, etc.).

We also had our last midwife visit, from the similarly charming Maureen Benson, who has seen us through the whole pregnancy. Maureen had been on holiday last week, so it was a different community midwife who saw us at home initially, but Maureen took over today. She seemed genuinely delighted to see that we’re getting on so well, and that everything is working out for us.

Either we’ve totally lucked out in the selection of healthcare workers presented to us, or the NHS is filled with totally lovely, hardworking, and caring people. I prefer to think it’s the latter, but maybe my cynical and bitter old heart is being turned all mushy by being a father.


I also took a couple of trips to the dump to recycle/get rid of several years of accumulated files, papers, magazines and other junk. Then I ripped apart an old bookcase that has been with us since Dickson Street, and turned it into a two-piece server rack and storage shelves for our kitchen cupboard.

Cool! With a little imagination we can now claim to have a house with a library (semi-floored attic filled with 2000-odd boxed-up books) and a server room (cum pantry). Sounds much bigger than a three-bedroom semi-detached, doesn’t it?

I bought myself a copy

I bought myself a copy of the game Black & White on Friday. Unfortunately, I wasn’t able to get it up & running on Friday evening. Although the systems requirements insert in the box of the game said that it supported the Voodoo Banshee chipset, this turns out not to be the case. I found this out–much to my disgust– when I started scouring the web for info on Saturday morning.

An angry letter to EA followed.

(But then later in the day we went out, and I got myself a nice new ATI Radeon with 64Mb of DDR memory. Very tasty.)

After the computer shopping, we took the bus to Kinnaird Park, and bought a pram at Mothercare. The, we indulged ourselves with a final evening out before B arrives. We had dinner at “Frankie and Bennie’s” (which used to be the Deep Pan Pizza Company), and then saw 15 Minutes at the Cinema.

It still doesn’t seem quite real that we won’t be able to just do that kind of thing, without any forethought and planning, any more.

Abi fancied some wild rice

Abi fancied some wild rice last night, so I cooked up something a little different: pork loin with a maple syrup and pineapple glaze with wild rice and lentils.

  • Put the wild rice and lentils in separate pans. Fill with water, and bring both to a gentle boil. (Cooking them till soft takes about an hour.)
  • Cut the pork loin into two halves, and sear them in a pan with some butter & olive oil (or bacon dripping, if you happen to have any left over 🙂
  • Put the pork in an oven-proof dish. Pour a generous helping of maple syrup, and a small tin (225g) of pineapple chunks over them. Cover the dish, and put into a hot oven (gas mark 7) for about 45 minutes.
  • When the rice and lentils are soft, take them off the heat, and drain them.
  • Take the pork out of the oven, and put it on a warmed plate to rest. While it’s resting, pour the juices and pineapple chunks into a pan, and reduce until thick.
  • Slice the pork, and pour the glaze over it. Serve alongside, or on a bed of the rice and lentils.
  • Sweet and tangy–rather tasty!

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.