I used to work at a local health care cooperative, and my job there was to be what they called a ‘program assistant.’ This meant I wasn’t very far up the food chain, but my job involved quite a bit of monkeying about with computers. I was developing this tool that would allow the automation of the data gathering of the department (an outbound call center) and to be honest, was using the wrong app for the job, but that’s what I was told to use. As a result, this application took hours and hours to calculate the overwhelming amount of data it needed to calculate. My work week was such that I’d work days Monday, Wednesdays and Fridays, and work evenings Tuesdays and Thursdays.
Sometimes I’d have to let the machine chew on this data for the full 18 or so hours between the end of a day shift on a Wednesday, and the beginning of an evening shift on a Thursday.
I worked with, among other people, this wonderful fellow named Jim, who had both a sense of humor and a couple of quirks.
You know how every now and then you’ll leave the house in the morning and the tag on the back of your shirt collar will be stuck out?
…or how you might have returned from a ‘bio break’ with some of the associated paperwork still attached?
…or how you might have, worse yet, forgotten to button, zip, or snap something in your hurry to get somewhere?
Most people would somehow be embarrassed to tell you about that.
Jim was not.
He was fastidious about his appearance and just assumed everyone else was, too, so he was the kind of fellow who’d tell you any and all of that.
And instead of letting you go through the day with people snickering behind your back, Jim would tell you.
And, it turned out, he would expect you to do the same for him.
But if you had some leftovers from lunch in a spot that could be embarrassing in the next meeting,
Jim would tell you that.
If you had something stuck between your teeth, or some fuzz in your hair, or that label sticking out, Jim wasn’t embarrassed to point it out to you.
Lord love him, he’d tell you that.
So one week, I’d been the recipient of several of these comments, and I figured it was time to tweak the rules just a bit.
He wandered by my desk one day…
“Say Jim – you’ve got a piece of spinach or something stuck there between your teeth there…”
“Oh gosh, thanks! How long’s it been there?”
I almost, almost felt guilty about it, but managed to keep a straight face as I lied, and said, “Oh, about two hours…”
The absolute horror as he clawed at his teeth was just priceless, but it set something in his mind, where he clearly felt the need to get even.
And one day, he did…
I had that program crunching data, and when it was done, it would say “ready” in the bottom left corner of the screen.
So one Thursday morning, I was at home, and I’d set the program to run the night before, and just had this niggling feeling that something was wrong – so I called Jim on the phone and asked him if he could go over to my monitor and just look at it and tell me if it said “ready” in the bottom left corner. If it did, then the calculations would have completed and I’d be able to move on. If it didn’t, they were still going on, and my day would be spent waiting for them to complete.
Jim seemed incredibly eager to please that day, and was willing to drop whatever he was doing to help me out…
He even volunteered to go over to my desk and call me from there while he was looking at my monitor.
This piqued my interest, because while Jim was friendly, and Jim was helpful, Jim didn’t generally volunteer to do stuff like this.
So I waited until about a minute had passed, and called my office phone from home. Jim answered.
“Okay, so does it say “ready” in the lower left corner of the screen?”
“No, Tom, all I see is this big message that says, “system error, please see your LAN administrator”
Uh… LAN administrator?
At the time, as I learned later, we were running our client programs off a central server, and every night that server got rebooted, so if you had a file open in one of the programs running from that server, there was a good chance that it would be toast in the morning, especially if it was one that was doing a lot of calculating…
So as I was thinking this through, realizing that while it sounded a little silly to be asking my LAN administrator about this, I realized there might be some truth to the message, and it started to bug me – until my thoughts were interrupted by a stifled giggle from Jim.
He knew I’d been working on that program for a long time, and the data was quite valuable, so it was important that it be accurate, and messing with the one guy in the department who actually knew the computer system was a rare opportunity, so Jim took it – he laughed this wonderful Georgia belly laugh that just made it hard to stay mad at him.
It didn’t prevent me from getting even, and as I rode the bus to work that day, I realized that what he’d told me was – well, in simple terms, a lie…
And messing with the one guy in the department who actually knew the computer system, while a rare opportunity, did have its risks. I pulled out a napkin, and wrote a short program on it, in which I penciled out the logic for making his computer tell him a lie that was far more believable, far more insidious, and far, far more evil.
And I have to tell you, I smiled.
Now I knew it was possible, but I didn’t know the details on how to write the code at the time, so I did what anyone back then did. I called product support, and I’d invariably start off with something like, “Hey, I’m working on some code where I want to mess with a buddy of mine and have it freak him right out when he opens a file and have him think that his computer’s crashing…”
“Uh, sir? We’re not allowed to do that.”
Somehow I figured that would be the case…
“Okay, fine, no problem. “
– and then I completely sanitized the request, making it generic about coming up with message boxes, and what would happen when certain buttons were pushed and so on.
I could actually hear the grin in the tech’s voice as he started to help out – with an ‘official’ problem – but both he and I knew what I was really doing, and he was in on it.
It actually took a lot of work – over several weeks, back and forth on the bus, writing logic, rewriting logic, testing it out, finding the right timing, how to get it to him, and so on.
The program I was using was Microsoft’s Excel, while this was a spreadsheet program, it also had a programming language behind it that you could get to. This programming language was called VBA, or Visual Basic for Applications. It was powerful, it allowed you to automate just about anything you could do on the computer. You did this by writing short programs called macros. You could also create what were called “auto_open” macros. That meant that as soon as you opened the workbook you’d put the macro in, the macro would fire, or start running, and whatever commands had been stored in it, would run.
Now there were people out there who realized the power behind this and did very bad things, destroying people’s data. That falls into the exquisitely uncool category of things to do with code, and is why you can’t put macros in people’s workbooks without them knowing about it anymore.
But you could then.
And the thing is, I had no desire to mess with data, I just wanted to mess with Jim’s mind, and in doing so, I learned that I had to have the macro start running about 4 seconds after he opened whatever file it was in – that was enough for him to have recognized the file, orient himself to what he wanted to do, and likely do whatever the first thing was he was going to do in that file. He would then immediately associate what came next with his own actions, not mine.
However, it was me who wrote what came next.
And what did indeed come next was an alarming series of beeps, at which point an even more alarming message would come up. Given what we all knew about computers at the time (which was very, very little), it was actually a fairly simple process, from a code perspective, to totally mess with his mind psychologically, and that’s what I did…
My rule – in all of this, was to make sure that absolutely nothing on his machine got harmed, so over those weeks, I perfected it.
And this is where it got evil.
Since I’d written it – my goal was to have him experience that moment of raw terror when you think you’ve lost everything.
J-u-u-u-u-s-t like he did with me…
The tough thing was setting it up, but one day, weeks after this initial “spinach” comment, he called me up with this innocuous question about an excel file that had a bunch of zip codes in it.
“Sure, I’d be happy to take a look at it… why don’t you email it to me?”
And Jim, not having any idea what he was doing, did just that.
In two minutes, I had his zip code problem fixed, but also had a little macro put into it so the next time he opened the file, life would get interesting.
I felt like a kid on Christmas morning, just impatient as all getout, wanting him to open the file RIGHT NOW – but I had to wait, to be patient, and to just let it happen…
And sure enough… it did… about 10 minutes later, the phone rang.
It was Jim.
And Jim was calling me for “support”. Now remember, I’d been dealing with product support people on this thing for some time. I knew the drill. You sounded calm, you sounded compassionate, and you sounded confident. I took a deep breath, put on my ‘guru’ hat, warmed up my ‘guru’ voice, and answered the phone.
The voice that came out of the receiver sounded far more like a dying duck, or maybe a dying chicken than Jim ever had.
Me: in my best guru voice…
“What’s up Jim?”
“My machine just made a bunch of beeps it’s never made before and I just got a message that says I’ve got an unrecoverable hard drive error. It’s asking if I want to reformat my hard drive now. What do I do?”
“Well gosh Jim, reformatting your hard drive will erase everything… what choices does it give you?
“It says ‘yes, no, or cancel’”
“Hmmm… Are any of them – you know, like ‘emphasized’ or anything like that?”
“The ‘no’ button is.”
“Okay, given that, I’d click on either the no or the cancel button. Let me know what happens.”
The terror in his voice was just that, terror. His machine had all the departmental information on it. If it went down, there was no backup.
It would be bad.
He clicked on the ‘no’ button.
But one little note we have to remember… I was the one who had decided weeks ago what would happen if he clicked that ‘no’ button.
And it worked like a charm.
Another message box popped up.
“Reformatting your hard drive will erase all data, do you wish to continue?!!!!”
I stifled a giggle, thanked God for mute buttons on telephones, and took another deep breath…
“Gosh Jim, I don’t think you want to continue on that, that’d be bad.”
He clicked ‘no.’
At that point, I had several things happening… There was a very short beep, along with the simultaneous appearance in the status bar (where I’d taught him to look for the “ready” notification earlier) of a message along the lines of ‘Formatting disk: x percent Complete” – and for disk activity, I just had the file save itself a few times so that you’d hear the drive, see a percentage change, hear the drive, see the percent and so on…
“Gosh Jim, I’d shut the thing off, maybe you caught it in time…”
We went through it again, he chose different options, instead of ‘no’, he chose ‘cancel’ – and all it did was get him to the formatting section faster.
He shut it off again…
“Can you come over?”
I was waiting for this.
“Sure Jim, no problem…”
I went over to his desk, and kneeled down beside him like I’d done many times before, assuming the position of helpful, friendly problem-solving guru….
He fired the machine up again, and opened the file again.
“See, every time I click on this cell right here…”
Four seconds later, I heard my little creation at work…
BEEP BEEP BEEP!
And sure enough, there it was… Subtle enough with the question mark, but the words were more than terrifying enough to get his attention.
“Hmmm… Well, Jim, something’s clearly amiss here – let’s reboot it and try again, sometimes that clears things up…”
He hard-booted the machine and when it came up, he opened the file again .
“Every time I click on that cell – it does that…”
Of course it did…
BEEP BEEP BEEP!
A striking cobra’s head couldn’t have shot out any faster than Jim’s hand did as it hit the power button of the machine.
After the machine restarted, he opened the file again, and I tried, tried so hard to keep from letting the guru persona crack.
I could see beads of sweat on his forehead, he was really worried.
“So what’s going on? Every time I click on that cell – it does that…”
“So… don’t click on that cell…”
And sure enough, next time, he didn’t click on that cell, and the message came up again, the beeps, the “unrecoverable disk error” – he clicked ‘Cancel’ and got the next message.
Sure enough… right after that, the drive started whirring and the status bar started showing a percentage increase message…
“Well, Jim – if it hasn’t done anything the last few times it’s gone through, just let it run till it’s done.”
Against everything he knew was right and holy, Jim let it run all the way through – and nothing happened…
The sky did not fall.
The earth did not quake.
But most importantly, Jim’s machine was not dead.
In fact, it was still running, and running just fine.
He was stunned.
His eyes were focused on the screen, and he was truly baffled…
“Tom, I’ve never seen anything like this before… Are you familiar with this?”
Oh, what a perfect way to ask the question.
I looked left, then right, then looked at Jim, and in a conspiratorial voice, quietly said, “Intimately…”
Time, for Jim, stopped at that moment.
He was looking at the monitor, but wasn’t seeing it – his mind had gone elsewhere.
If Tom was ‘intimately’ familiar with this – then…
He looked at me, and in that wonderful Georgia accent, asked, “Did you write this?”
The look on my face was all the answer he needed.
I couldn’t help but grin a little.
Then there was this literal confusion of emotions that spread across his face, one right after the other. It was clear he wasn’t sure whether to hug me (because his computer, and all his data, was okay) or whether to throttle me (because I’d just about given him a heart attack…)
And then he looked at me, and realized that this was done… over a number of weeks, specifically for him and no one else. And it added another emotion, a bit of awe.
I didn’t expect that, but it was fun, and kind of neat.
I’d written the macro to keep running for a bit before popping up one last dialogue box.
And when I left, on his monitor was one little dialogue box with a single button in it.
And as far as I know, Jim still hasn’t clicked on that one.