Monday 23 December 2013

Rudolf the Red strikes again

This one is a bit more than 25 years old, and features daughter.1 and daughter.2.


Well, I did warn them.  I did say that anything as complicated as an
accounting system to handle Christmas needed more than six weeks to
write.  By the way, if you've forgotten how it worked, read "A
Computer for Christmas" in the December 1986 newsletter.  You may
recall that I did say that relying on a fairy blessing on the disks
was less safe than a proper tape backup system.  And that the problem
with using pixies for data entry was that they had an attention span
of about five minutes.  And anyone who thinks you can train reindeer
to use touch sensitive screens wants his head seeing to.  But the
system held together against all my expectations, and if your little
customers didn't get their present, the chances are they filled their
order form in wrong.  No, the trouble came from an entirely unexpected
direction - Rudolf the Red.

He'd been outmaneuvered (perhaps that should be outreindeereuvered)
last year, and he knew it.  He'd demanded action over the long hours
that he and his brother reindeer had been working;  he'd thought that
industrial pressure of this kind would help the chronic unemployment
that was currently affecting the reindeer community, and he'd been
totally unprepared for Sir Sangrethta Claus calling in an expert
computer consultant to set up a major meta-network of IBM ATs.

Christmas 1986 went off quite well, apparently, and about 30 billion
presents had been delivered, mostly on time and mostly to the right
customers.  But Rudolf had been burning brightly with anger ever
since, and he was determined that 1987 would be different.  Through
winter, spring and early summer he bided his time, quietly subverting
the occasional elf here, the odd dwarf there.  But at Conference that
year he made an impassioned speech about the dehumanisation,
unemployment and health hazards that my computer system had caused,
and his rhetoric galvanised the assembled herd into a standing ovation
(they rattled their antlers together).  He then followed up by
organising the elves into bands, the fairies into rings and the
dwarves into groups of seven.  By the time I'd got the panicky
telegram from Sir Sangrethta, the whole place was unionised and about
to strike unless certain conditions could be met.

It was a disaster.  They wanted the hours in front of VDU screens to
be limited to four per day, lead-lined filters to screen out any
harmful radiation, an ambient temperature of 15 degrees Celsius, an
undertaking that there would be no redundancies, and user-friendly
software.  Any of these demands could probably have been met, but the
thought of writing user-friendly software was as repugnant to me as it
is to any other Right-Thinking programmer.

So I packed my warm woollies, and got on the JAL flight to Tokyo.  Why
Tokyo?  Because it seems that the shortest route to Tokyo is the Great
Circle route over the North Pole, and I bet you can imagine the
stewardess's surprise as I made my exit.  There was the usual
sickening feeling that the parachute wasn't going to open, and then I
was floating down like Alice down the rabbit hole towards the place
where all lines of magnetic force converge.

Sir Sangrathta was wearing his red survival suit, complete with
insulating padding and long white neck-warmer.  I'd forgotten just how
cold it was up there, and I shivered, wishing I'd worn my thermal
underwear.  But the sleigh ride soon warmed me up;  Santa was a
completely fearless driver, and I shut my eyes and hoped that we
wouldn't meet anything coming the other way.  We arrived in one piece,
and Santa took me underground to the "Workshop" as he affectionately
called his mammoth industrial complex.  And then he filled me in.

It seemed that the magic had held - Santa had understood how fragile
the system was, and had recruited unicorns to reinforce the fairy
programming.  Unicorns are well known for their programming prowess;
the most powerful and user-hostile operating system of all was named
after them, in an attempt to make use of nominal magic.  But this was
not making the reindeer situation any better, as reindeer have a deep
prejudice against unicorns;  they're the wrong colour, and have a
single long horn instead of the more conventional branching antlers.
Rudolf the Red, in a typical agitprop ploy, was making hay out of the
unicorns' presence, and a more permanent solution was needed.

"It's all impossible", I said to Santa.  "If we make the system
user-friendly, it'll take years, and anyway by then, Rudolf will have
thought up more unreasonable demands." "We've got to cope somehow",
Santa said vehemently, and he painted a moving picture of Christmas
morning all over the world, with the little customers asking
plaintively why there were no presents.  I gulped, and thought of
Angela and Jennifer, and the peace that pervaded the house for several
blessed hours as they first unwrapped their parcels, and then
destroyed the contents.  Tears came to my eyes as I thought of
spending the entire Christmas trying to entertain them, and I could
see that in that direction lay madness and possible infanticide.

"We have to keep the reindeer happy somehow", Santa said, and I agreed
with him.  So we sat down and thought of everything we could.  We
could have shorter hours, if we doubled the staff.  Santa looked very
dubious about this, as it would eat heavily into his profit margins.
The fears about radiation from VDU screens were totally unfounded, of
course, and anyway you get a LOT of radiation at the North Pole, as
the lines of magnetic force funnel it all down there.  But we could
deal with the VDU issue by substituting the new LCD screens, which are
completely radiation-free.

In fact, we could think of solutions to just about everything that
Rudolf and the other shop stewards were demanding, with the exception
of the user-friendliness of the software.  Santa suggested that we
rewrite it, but I pointed out that there wasn't time, and anyway I'd
be thrown out of the Programmers Guild if I perpetrated such an
unprofessional act as to write software that was actually usable
without a degree in clairvoyance.

"We're knackered then", Santa said succinctly.  "Well, not quite", I
said.  An idea had been sprouting in the corner of my brain, a corner
that I keep clear and well watered (hence all the beer) for just such
a purpose.  I could feel it in there, but it wasn't ready to come out,
so I had to go in and get it.  There's a technique I use called
Lateral Thinking - read Edward de Bono's book if you want to know more
about it.  It isn't actually one technique, but several.  You use them
when you're completely stuck on a problem that looks impossible.  The
first thing you do is turn the problem inside out/upside down,
approaching it from a completely different angle.

For example, I thought of teaching the reindeer to appreciate
user-hostile software.  That's not as daft as it sounds;  it has
worked well for mainframe programmers down the centuries.  But Santa
pointed out that Rudolf had a nose for such ploys, and would smell a
rat immediately.  Another of the big Lateral Thinking techniques is to
keep asking yourself whether you are tackling the Real Problem, or
whether you've got bogged down on just a small part of it.  Often, if
you backtrack to the Real Problem, you find a solution that doesn't
involve you with the impossibility that you thought you had.  In this
case, the Real Problem was to get 30 billion ("35 billion this year",
said Santa, "it keeps growing") presents out to the little customers,
and there was absolutely no way that this could be done without
extensive use of computers.

One of my favourite Lateral Thinking techniques is called "Relax
Unnecessary Assumptions".  Often, you make a problem harder to solve
by adding constraints that aren't actually part of the problem.  You
add them because you haven't thought too clearly, and these
constraints look like they are necessary, and part of the problem.
Typically, a solution arrived at this way gets the client response "Oh
yes, well of course we could have done it *that* way".

"Huskies", I said.  Santa looked at me.  "We've got some chocolate
biscuits", he said.  "No," I said, "I mean the dogs." I explained my
idea, and it was pretty unorthodox.  "Why do we need reindeer at
all?", I asked.  "Sack the lot of them.  Use Huskies to pull the
sleighs, and you can dispense totally with the reindeer".  The
customers won't mind as long as the presents arrive - we could use
Securicor for all they care.  And with all the reindeer dismissed,
Rudolf's power base would be gone, and we could get on with the job.
I explained that President Reagan had used the same technique with the
Air Traffic Controllers, and Eddie Shah had dealt with the print
unions the same way.

He liked it.  The more we talked about it, the more we could see that
with the reindeer out of the way, we could use all our existing
systems, except for delivery.  Santa quite liked the Securicor idea,
but I explained that it would be quite difficult to persuade them to
make the deliveries in the way that our customers expected.  Securicor
deliverymen have a thing about chimneys.  No, Huskies were the thing
to go for.

Santa sent out an internal memorandum, making the reindeer redundant
and putting them on four week's notice.  Unfortunately, reindeer can't
read, so we had to go round explaining it to them, and I hope I never
have to do anything like that again.  Reindeer have reindoes and
reinfawns, and there isn't much alternative employment at the North
Pole.  But we didn't have any choice, really, it was either them or
our little customers.

I suppose I should have guessed what Rudolf the Red's response would
be.  He went round all the elves, dwarves, fairies and other staff,
calling for solidarity with the reindeer, and telling them that it
would be their turn next if they didn't stick together now.  And
before I knew what was happening, we had a general strike on our

Sir Sangrethta was frantic.  "Now look what you've done", he kept
saying, and "We've got to give in".  But he calmed down after a couple
of pints of pudding brandy, and after I pointed out that giving in to
the reindeer wouldn't actually get the presents out, but just leave us
back where we were before.  "What can we do then?", he asked me.  I,
of course, had a plan.

How do you operate a PC when all the operators are on strike?  There
are several ways.  There's a user group library program called Newkey
(disk 39), which lets you write keyboard macros that can run
automatically.  You can drive quite a lot of programs that way, and
being Shareware, it's quite cheap.

Borland (bless you, Philippe) do something even better called
Superkey.  That's more powerful and flexible;  you can have macros
that are really long, you can prompt for user input in the middle of a
macro, and you can put pauses in the middle of a macro, vital for when
a program flushes the keyboard buffer before continuing to accept

But best of all, there's a rather clever program called PC Automator
from a British company;  Direct Technology.  That can be made to do
almost anything you can think of;  you can make it take fairly
intelligent decisions based on what is on the screen.  The call it the
Software Robot, and it was PC Automator that would save the day here.
You can put it into learn mode, and it will record your keystrokes.
You can then put conditions round it, such as "Whenever you see
'Completed' on the screen, start a new customer".  All I needed was
the right macros written in ACL (Automator Control Language).

We already had a well-filled database on the Super-Lan of 10,000 IBM
ATs, all set up last year, and there would be no need to do all that
data entry again.  And since we were getting a direct feed from the
Registrar of Hatches, Matches and Dispatches on 1/2 inch 1600 bpi
magnetic tape, we didn't even need to type in data to keep it up to
date.  We did have to process the little customer's orders, but the
new Kurtzweil document readers can read just about anything, using
intelligent pattern recognition techniques to turn the most
incomprehensible scrawl into ASCII data (and all children know that
you're not supposed to use joined-up-writing when communicating with
the North Pole).  So we had the data entry and order processing
problem just about licked, except that there wasn't anyone to set up
the macros, and we needed the presents to be wrapped and physically
transported to the sleighs.

But Santa already had that one under control, and when I asked him
how, he just grinned, flapped his arms and waddled.  It was only when
the penguins started arriving in large numbers that I understood.  Not
even Rudolf's influence had spread as far as the South Pole, and for
the price of a few fish, we had all the willing hands we needed (well,
flippers, actually).

The penguins were an instant success, and didn't mind being called
blacklegs at all, since that's what they had.  They were quick little
learners, and soon got the hang of wrapping paper and Sellotape.  The
Huskies were just great - they already knew about pulling sleighs, and
all we had to do was show them how to jingle the bells and do reindeer
imitations.  But that left me with the problem of writing the macros
to drive the system.  It's quite a big programming job, and there
isn't time to do it properly (is there ever?).  The fairies won't play
ball (or to be more precise, that's the only thing they seem to do
these days) and the unicorns have been subverted by the reindeer.  So
that only leaves me with one possibility.  I'm going to need your

I'm sorry it's such short notice, but you can see how it is.  I've got
the penguins all lined up, and the system's all designed.  I just need
a bit of help with writing the macros, but I need it in a hurry.
Christmas is coming, and unless we get this thing working, an awful
lot of people will have a rather disappointing Christmas.

Get onto JAL413 (or BA426) to Tokyo;  it leaves every day at 14:30
(check in at terminal 3 at 12:30), and when your compass needle starts
spinning in a confused way, close your eyes, shout "Geronimo" and
jump.  Oh, and don't forget to put your parachute on first.

1 comment:

  1. Post writing is also a fun, if you know afterward you can write otherwise it is difficult to write.