RUDOLF THE RED STRIKES AGAIN 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 hands. 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 keystrokes. 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 help. 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.
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.