I clearly remember my first encounter with magic cookies. The bank I was working for had run into problems transmitting increasingly large volumes of data from one of its proof centres in time for the start of the overnight processing cycle. The answer, of course, was compression. At the proof centre end, no problem; simply download and compile a publicly licensed compression program on the Unix box there. Done. But the computer centre, the receiving end, was wall-to-wall Big Blue. Nothing as flighty as Unix was permitted within its hallowed walls and, while IBM were quite happy to let us have a C compiler, it's licence fee was probably enough to solve Third World debt and well beyond the bounds of a small project.
As an assembler programmer with enough self-taught C to be dangerous, the task came to me to convert the decompression source code into a form the mainframe could understand. An interesting project because it not only meant getting to grips with the famous Lempel-Ziv-Welch compression algorithm, (the code behind WinZip and countless other data compressors), but also because I had to mirror the Unix box's storage space within the cavernous virtual memory of the IBM.
A rough draft of the annotated source code came down from the Unix guys peppered with references to "magic numbers" and "magic cookies". "What the hell do these refer to?" I asked my colleagues. Nobody knew. "Sounds like that lot have spent too long on the magic mushrooms," mumbled a senior mainframer.
So I called them up. "What's a magic number?"
A convoluted explanation began about significant values that didn't change regardless of program iteration.
"You mean a constant?" I interrupted.
There was an abashed affirmation.
And magic cookies, it turns out, are simply flags passed by programs or subroutines that can be used to signal a subsequent process.
Winston Churchill once said something to the effect that the British and Americans are one people separated by a common language and I have to say I frequently feel the same way about the computer industry. Take this recent exchange between a myself and a good friend who's two-thirds through a computer science degree at Unitec in Auckland.
Chris: I'm going to get into ASP when I finish. I reckon it's going to be massive.
Chris: You don't think so?
Me: Nah, definitely niche market stuff that. Massive? I doubt it. Certainly not until you've got ubiquitous broadband. And then there's wild cards like StarOffice starting to mature now too. It might interest a few small businesses but I can't see it getting very big.
Chris: Oh. Shit. Really? What's StarOffice by the way?
Me: A free office application suite.
Chris: What's it got to do with ASP?
Me: It only changes the bloody playing field. [He looks at me oddly.] Why pay to use software when you can get it for nothing?
After a protracted silence punctuated by blank looks I realise the mistake. He's talking about active server pages and I thought he meant application service providers. Oops.
And this is just computer people talking amongst themselves. Think of the possibilities for stuff-ups when talking to users and customers.
Palmer is a Wellington progammer and novelist.