How the Grinch Stole Emacs

Every Hack
Down on hack.net
Liked Emacs a lot.

But the Grinch
Just upstream from hack.net
Did NOT!

The Grinch hated Emacs! The whole Emacs notion!
Now please don't ask why. No one grokked his devotion.
It could be his drives were all mounted read-only.
It could be, perhaps, that his servers served slowly.
But I think that the most likely reason of all
May have been that his swap-file was two Meg too small!

But,
Whatever the reason,
His servers or disks,
He sat there on Emacs-Release Eve, hating the Hacks.
He stared at his terminal, scowling and frowning
At the warm, happy packets coming back from his ping.
For he knew every Hack on hack.net -- with style,
Was writing and testing a .emacs file.

"And they're compiling their elisp!" He snarled with hatred
Tomorrow comes Emacs! It's finally past beta!"
Then he growled, his Grinch-terminal nervously humming,
"I MUST find some way to stop '19' from coming!"

  For,
tomorrow, he knew...
 

All the Hacks down on hack.net
Would ftp early -- they'd rush onto the net!
And then! They'd 'get' Emacs. Oh, they'd Get! Get! Get! Get!
They'd clog up the net with their GET! GET! GET! GET!

Then the Hacks, young and old, would untar it and make it.
And they'd make. And they'd make
And they'd MAKE!
     MAKE!
        MAKE!
           MAKE!
They'd compile all the sources, they'd compile without break.
And that the Grinch hated, make no mistake!

  And THEN
They'd do something
He hated the most!
 
Every Hack down on hack.net, the best and the worst,
Would log in together, with Emacs a-swapping,
They'd take keyboard in hand. And the Hacks would start typing.

  They'd type! And they'd type
And they'd TYPE! TYPE! TYPE! TYPE!
 
And the more the Grinch thought about of this Hack-Emacs-Edit,
The more the Grinch thought "I must not permit it!"
"Why, for 18 versions, I've put up with it now!
"I MUST stop this Emacs from coming!
  ...But HOW ?"  

Then he grepped an idea!
An awful idea!
THE GRINCH
GREPPED A WONDERFUL, AWFUL IDEA!

"I know just what to do!" The Grinch laughed in his throat.
And he made a quick GPL tie and a coat.
And he chuckled, and clucked, "What a great Grinchy mess!
"With this tie and this coat, I look just like RMS!"

"All I need is the password...
of some careless young Hack"
But since passwords are checked, there was none he could crack.
Did that stop the old Grinch...?
No! The Grinch simply said,
"If I can't crack a password, I'll fake one instead!"
So he entered his kernel and he forked a root-thread
And he spoofed a Hack protocol, long mistaken for dead.

THEN
He loaded his spoofer
And some old telnet code
Into to a new program
(though it ran up the load).

Then the Grinch said, "Connect!"
And the connection did route
To the site where the Hacks
Lay idle or logged-out.

All their windows were closed. All their cycles were spare.
All the Hacks were all dreaming of compiles without err
When he logged onto the first little host in their care.
"This is stop number one," the Grinch-RMS hissed
As he pecked at his keyboard and clenched tight his fist.

Then he started up 'bash' -- it would do, in a pinch.
If Richard could use it, then so could the Grinch.
He got lost only once, for a moment or two,
Then he found /usr/local, and cd'ed to 'gnu'
Where all the Hack sources were tarred, and zipped too,
"These archives," he grinned, "are the first I'll remove!"

Then he pushd'ed and popd'ed with maximum hackage
Into the lisp tree, and he took every package!
Dired! Cc-mode! SuperCite! Shell!
Font-lock! Ediff! Calc! And ispell!
Then he tarred up the lisp, and the Grinch, now inspired
Zipped all the tarfiles, one by one, down the wire!

Then he went to their homedir. He took the Hacks' files!
He took their .emacs! He took their makefiles!
He cleaned out that homedir as quick as you please
Why that Grinch even took their .pgp!

Then he tarred all their files down the wire with glee
"And NOW!" grinned the Grinch, "to the Emacs source tree!"

He cd'ed to the tree, and he started to type
When his terminal beeped -- some mail had arrived!
He read his mail fast, and he saw it was from
An auto-reply daemon the Hack-host had run.

The Grinch had been caught by this simple Hack daemon
Who'd woke up to check why the network was screaming.
The Grinch stared at the message, which read: "RMS, why,
"Why are you taking our Emacs tree? WHY?"

But, you know, that old Grinch was so smart and slick
He mailed back a lie, and he mailed it back quick!
"Why my sweet little daemon", the fake RMS lied
"There's some lisp in this tree that won't byte-compile.
"So I'm moving it back to my home site, my dear,
"I'll fix it up there, ftp it back here."

Then the last thing he did --
The kernel he erased!
Then back down the wire he went, the old ace
On their disks he left nothing but partitions and space.

The one speck of code
That he left on that node
Was a tempfile too small even to load.

Then
He did the same thing
On the other Hacks' nodes.

Leaving tempfiles
too small
For the others to load.

It was quarter past dawn...
  All the Hacks, still offline.
All the Hacks, still supine
 
When he closed down his session.
He'd stolen their Emacs! Their elisp! Their C!
Makefile! INSTALL! configure! README!

Three thousand files! And no one could trace him!
And now, with /dev/null, he was going to erase them!
"Flame-on to the Hacks!" he was grinch-ish-ly humming.
They're finding out now that no Emacs is coming!
They're just logging in! I know just what they'll do!
Their mouths will hang open a minute or two,
Then the Hacks down on hack.net will all wall "BOO-HOO!"

"That's a broadcast," grinned the Grinch
"That I simply MUST see!
So he waited a moment, to see what he would get.
And he did see a broadcast coming over the net.
It started off slow. Then it quickened, and yet...

The text wasn't sad!
Why, this text sounded merry!
It couldn't be so!
But it WAS merry! VERY!

He logged back onto hack.net
The Grinch ran ps
Then he thrashed!
Because there wasn't a mess...

Every Hack down on hack.net, the tall and the small,
Was editing! Without any Emacs at all!
He HADN'T stopped Emacs from coming!
IT CAME!
Off tape or CD, it came just the same!

And the Grinch, with his Grinch-eyes glued to his tube
Sat puzzling and puzzling: "How could it be true?"
"It came without gzip! It came without TeX!
"It came without ftp, cc, or make!"
And he puzzled three hours, till his puzzler was spent.
Then the Grinch thought of something he hadn't just yet!
"Maybe Emacs," he thought, "isn't just bits off the net.
"Maybe Emacs... perhaps... isn't cause for regret!"

And what happened then...?
Well... on hack.net, they say
That the Grinch's small swap-file
Grew three Meg that day!
And the minute his kernel didn't thrash quite so badly,
He connected his archive, he brought it back gladly!
He brought back their code! He made no mistake!
  And he...  

...HE HIMSELF...
The Grinch kicked off the make!

(In memory of the good Dr. Seuss, with apologies to him, to Richard Stallman, and to all you Emacs Hacks!)

Jim Thompson


HTML-ified by Pat Murphy
Received by him from Rod Falanga.
Last modified: Fri Nov 10 08:58:17 EST 2000