Early Easter Eggs
Jensen Harris's blog post today talked about an early Easter Egg he found in the Radio Shack TRS-80 Color Computer BASIC interpreter.
What's not widely known is that there were Easter Eggs in MS-DOS. Not many, but some did slip in. The earliest one I know of was one in the MS-DOS "Recover" command.
The "Recover" command was an "interesting" command.
As it was explained to me, when Microsoft added support for hard disks (and added a hierarchical filesystem to the operating system), the powers that be were worried that people would "lose" their files (by forgetting where they put them).
The "recover" command was an attempt to solve this. Of course it "solved" the problem by using the "Take a chainsaw to carve the Sunday roast" technique.
You see, the "Recover" command flattened your hard disk - it moved all the files from all the subdirectories on your hard disk into the root directory. And it renamed them to be FILE0001.REC to FILE<n>.REC.
If someone ever used it, their immediate reaction was "Why on earth did those idiots put such a useless tool in the OS, now I've got got to figure out which of these files is my file, and I need to put all my files back where they came from". Fortunately Microsoft finally removed it from the OS in the MS-DOS 5.0 timeframe.
Before it flattened your hard disk, it helpfully asked you if you wanted to continue (Y/N)?.
Here's the Easter Egg: On MS-DOS 2.0 (only), if you hit "CTRL-R" at the Y/N prompt, it would print out the string "<developer email alias> helped with the new DOS, Microsoft Rules!"
To my knowledge, nobody ever figured out how to get access to this particular easter egg, although I do remember Peter Norton writing a column about it in PC-WEEK (he found the text of the easter egg by running "strings" on the recover.com binary).
Nowadays, adding an easter egg to a Microsoft OS is immediate grounds for termination, so it's highly unlikely you'll ever see another.
Somewhat later: I dug up the documentation for the "recover" command - the version of the documentation I found indicates that the tool was intended to recover files with bad sectors within it - apparently if you specified a filename, it would create a new file in the current directory that contained all the clusters from the bad file that were readable. If you specified just a drive, it did the same thing to all the files on the drive - which had the effect of wiping your entire disk. So the tool isn't TOTALLY stupid, but it still was pretty surprising to me when I stumbled onto it on my test machine one day.
Comments
Anonymous
October 20, 2005
> Nowadays, adding an easter egg to a Microsoft OS is immediate grounds for termination, so it's highly unlikely you'll ever see another.
Just on operating systems?
Or shipping app?
What was the last OS that had easter eggs?Anonymous
October 20, 2005
Why are easter eggs so bad now? They were always fun before. Was it a big name (Bill, Steve, etc.) who came up with the termination rule or a nameless lawyer?Anonymous
October 20, 2005
Brad, I don't know about outside the OS division. I do know that Brian Valentine has made it QUITE clear that you will be IMMEDIATELY terminated for introducing an easter egg into the OS.
Ryan: Why are they so bad? Because the people who pay the bills around here (the corporate customers) made it quite clear to Microsoft that they considered Easter Eggs to be a major issue - and we responded to their concerns.Anonymous
October 20, 2005
I remember accessing the recover Easter Egg. But not because I discovered it or anything...<developer name> told me about it.Anonymous
October 20, 2005
Corporate customers have no sense of humour. Having a picture of the development theme or a list of credits (even if it is with a cartoony polar bear) in an OS is a "major issue"? I think there's more important things to worry about.
That said, the pinball game in Word 97 and "flight sim" in Excel 97 may have been slightly over the top.Anonymous
October 20, 2005
The comment has been removedAnonymous
October 20, 2005
The comment has been removedAnonymous
October 20, 2005
Oh, the legendary Peter Norton. Whatever happened to him?Anonymous
October 20, 2005
That makes sense. I guess writing a spec for an easter egg and code reviewing it would be a waste of money. On the upshot, Windows keeps getting better with every release, so obviously specs and code reviews are working.
I'll blame nameless lawyers and bean-counters at big corporations and three-letter government agencies then.Anonymous
October 20, 2005
Kristopher, Steven, etc...
Yeah, easter eggs seem really benign, but what if there was a terrible security vulnerability introduced into a product by an easter egg? It's useless code - it doesn't serve a purpose in the product; it doesn't add any functionality whatsoever - so, if there's a flaw in the egg that allows an attacker to compromise a system, was it really worth it?
Nope.
Now, that's an extreme example, but Microsoft's customers have said that they want secure products. Reducing attack surface and reduction of attack surface is a big part of that.Anonymous
October 20, 2005
It may be sad that they're gone, but I agree that it's necessary for the enterprise. If MS's development processes can't keep out easter eggs, how can they keep out malicious backdoors? They're both just code that's against spec. And writing a spec for an easter egg means you just don't get it (is it a paradox even?).Anonymous
October 20, 2005
I asked Jensen about easter eggs in Ofice here: http://blogs.msdn.com/jensenh/archive/2005/10/07/478214.aspx#478764
He said they'd not been there since Office 2000. IMO ther were all great fun, but absolutely never should have been there in the first place. Excel 95 included a complete adventure game with graphics, movable characters & so on! Every second spent on that, was a second that could have been spent on issues of somewaht more importance.
Leave 'em out, I say!Anonymous
October 20, 2005
The best explanation I've heard for why easter eggs are problematic is that they are essentially intentional bugs in the product -- unspecced, untested, and unexpected behavior. The worst case would be if a critical patch had to be released to fix a problem introduced by an easter egg. That having been said, easter eggs are isolated and on a very uncommon user path by definition, so the risk is overblown, and it's usually written in someone's free time.
I think it's a shame, though, that a team isn't allowed at least one planned easter egg, for that personal touch. One of my sources tells me that a recent version of Word would have had an acceptable real-time strategy game in it were it not for this policy.Anonymous
October 20, 2005
The comment has been removedAnonymous
October 20, 2005
Phaeron, say a member of the Word team has two hours spare - paid, unpaid, or whatever. What would you rather have him or her do: (a) add an easter egg, which increases the code size with zero benefit to any end-user, or (b) work toward fixing a bug or finishing a new feature?
I know which one I'd choose!Anonymous
October 20, 2005
The '98 easter egg was spec'd, developed, and tested by a small group working on orders of the management team. The music is the same as the music that played during '98 setup. As I recall, that music was specially commissioned by no one in particular, but the composer was told to make it sound like Moby.Anonymous
October 20, 2005
The comment has been removedAnonymous
October 20, 2005
> Every second spent on that, was a second that could have been spent on issues of somewaht more importance.
Coding an easter egg is a nice diversion from the usual tasks at hand. Working on the former can actually boost your productivity working on the latter, just because writing an easter egg is fun.Anonymous
October 20, 2005
The earliest one I saw was on the Commodore Pet, around 1978. The otherwise useless command "WAIT 6502,0" caused the screen to fill with the word "MICROSOFT". (The Pet CPU was a 6502)
Legend has it that Bill Gates wanted this in just in case Commodore ever tried to claim that the code wasn't from Microsoft.Anonymous
October 20, 2005
For a great story by Terry Bisson about an easter egg in a "future" version of Office:
http://www.sff.net/people/TBisson/officeromance.htmlAnonymous
October 21, 2005
Easter eggs development time does not count against feature development time. It's teambuilding and personal freedom, and a feeling of having fun with what one do.
As for security issues: That's also hogwash. Unless you're trying to run in a lockdown environment (kiosk environment) where the easter egg would still show up, it's so isolated it wouldn't count.
That's my professional opinion as a former security engineer (working operating systems bugs), at least.
Eivind.Anonymous
October 21, 2005
I heard one reason why there aren't any easter eggs in Windows anymore is that Microsoft was accused of keeping undocumented features in the OS that gave other MS products an edge, so when settling the anti-trust case with the DoJ they had to agree to never include undocumented features, no matter how 'harmless', in the OS again. It may be an urban legend, but it does make sense.Anonymous
October 21, 2005
Developers want to sign their work and hurrah! themselves. Why not a MS web page that they can do this? Movies have credit screens ...Anonymous
October 21, 2005
JWZ on Easter Eggs: http://www.jwz.org/doc/easter-eggs.htmlAnonymous
October 21, 2005
I believe that the DoD had a big part in this. I remember seeing some specs on software that requires any software that is purchased to have all features documented. Easter Eggs are an undocumented feature. Therefore, it would technically be against DoD regulations to purchase the software. I'm guessing that's the case with large companies as well.
Maybe it has something to do with software that wants to communicate with the mother ship from time to time.Anonymous
October 21, 2005
I recall using Recover to recover files on a floppy. I think I was using Debug to undelete files and caused some problem with the directory. Anyway, having all the files without any names is worse than having some corrupted files.Anonymous
October 21, 2005
Let's be honest, we all know perfectly well that the real reason corporate customers don't like Easter eggs is that in the core of their shrivelled little souls they believe that having fun while you work is the same as stealing from the company.
This is the culture of the suit, the meaningless mission statement, and the ruthless elimination of all signs of joy and humanity.
The Open Source movement's got it all wrong: it's not software that needs to be made free, but the people who use it. And the people who write it.Anonymous
October 21, 2005
The recover command appears to be present in Windows 2000, the Windows version I have in front of me at the moment:
>recover /?
Recovers readable information from a bad or defective disk.
RECOVER [drive:][path]filename
Consult the online Command Reference in Windows 2000 Help
before using the RECOVER command.Anonymous
October 21, 2005
I'm reliably informed that all the Easter Eggs in Crystal branded products of the v10 age were the result of the takeover by Business Objects, where they closed the main development office that had developed all of the OLAP product lines...Anonymous
October 21, 2005
All work and no play makes Jack a dull boy.
All work and no play makes Jack a dull boy.
All work and no play makes Jack a dull boy.
All work and no play makes Jack a dull boy.
All work and no play makes Jack a dull boy.
All work and no play makes Jack a dull boy.
All work and no play makes Jack a dull boy.
All work and no play makes Jack a dull boy.
All work and no play makes Jack a dull boy.
All work and no play makes Jack a dull boy.Anonymous
October 21, 2005
The comment has been removedAnonymous
October 21, 2005
The comment has been removedAnonymous
October 21, 2005
The comment has been removedAnonymous
October 22, 2005
If you want to have fun, go home and see your wife and kids. Play a little bit of touch football in the hall. Go play in the street.
Just don't add garbage to the software.
If easter eggs are your idea of fun, then I am glad you don't work for Microsoft, Joel.Anonymous
October 22, 2005
The comment has been removedAnonymous
October 23, 2005
Mostly I have no opinion on the presence or absence of Easter Eggs. If someone or some management system is dedicated to perpetuating bugs instead of removing them, that's a problem. But if people are doing their jobs right, there's not really a problem, usually. If someone wants to use their free time to create an Easter Egg instead of joining a traffic jam to a baseball game or whatever, why complain?
There are two exceptions though. One is that a security flaw in an Easter Egg is still a security flaw, a bug that invokes an Easter Egg when it wasn't supposed to do so is still a bug, etc. The other is something that I'm inferring from some of the postings here.
The English language version of Excel 95 included an adventure game? Is that why the English language version of Office 95 needed twice as many CDs as the Japanese version needed?
On the whole one might expect Japanese versions of software to be around 5% to 20% bigger than English language versions. There are some odd cases where Japanese versions are smaller than English language versions, but still usually they're within 10%. The MSDN library is a big one, the Japanese version is half the size of the English language version because half of it hasn't been updated in 10 years and maybe because no one noticed how much stuff Microsoft forgot to put in it in the first place. But Office 95? How could the Japanese version of an Office suite be half the size of the English language version? And now I'm discovering that it's because of an adventure game? That's surely over the top.Anonymous
October 24, 2005
The comment has been removedAnonymous
October 25, 2005
At a large shrinkwrap company, I think banning unspecced easter eggs makes sense. The problem is that untested software always has bugs. I don't care how good of a programmer you are. These bugs might be somewhat innocuous (the text in the easter egg doesn't display properly in non-English language operating systems) or serious (after a certain date, the app just crashes).
I heard a story about a large vendor who had a date triggered easter egg (I think it changed the info panel) which wound up crashing the app on Japanese operating systems. Since QA didn't know about the easter egg, they didn't test it, and since developers rarely test (or are even able to adequately test) in other languages, the developer didn't test his easter egg in Japanese. The result of this easter egg was that a couple of months after shipping, all copies of the software were crashing in Japan, and the vendor had to do (an expensive) recall of their software.
Regardless of how accurate this story is (I'm third hand now, so maybe it's just programmer urban legend), the scenario is plausible enough that I bet at least a version of this has happened. Even so, I personally don't think that easter eggs should be banned. As many have pointed out, giving programmers an outlet for some freeform creativity is a good thing. Arguments about wasting time and impacting schedules don't cut it. I just think that once implemented, easter eggs should be specced and tested. While the suits might not get the idea that any amount of their schedule was dedicated to something as trifling as this, I think the benefits outweigh the costs. Also, if they don't give an official outlet for it, they might fall victim to the kind of problem I described.Anonymous
October 25, 2005
The comment has been removedAnonymous
October 26, 2005
I would like to point something out:
Recover.com Easter Egg (DOS 2.x) is activated
by CTRL-W, not by CTRL-R ...
Syntax is Recover.com filename.ext | x:filename.ext | x:
extra parameters are ignored (brutally)
DON'T run that version on DOS 3+
Recover.com of DOS 2.x uses undocumented DOS calls (Int 21h/1Fh, Int 21h/32h) and internal DOS data structures (DPB), changed in 3+, so it is potentially dangerous.
Besides, Int 21h/1Fh fails on FAT32 HDs ...
"...Microsoft rules ok" ... the style of the code is quite recognizable ...Anonymous
October 26, 2005
Tuesday, October 25, 2005 3:10 PM by eak
> These bugs might be somewhat innocuous (the
> text in the easter egg doesn't display
> properly in non-English language operating
> systems)
Funny, many ordinary programs (without Easter eggs) display exactly the same behaviour.
> or serious (after a certain date, the app
> just crashes).
Funny, many ordinary programs (without Easter eggs) display exactly the same behaviour, even when running in the same language environment that they were supposedly tested in.
> I heard a story about a large vendor who had
> a date triggered easter egg (I think it
> changed the info panel) which wound up
> crashing the app on Japanese operating
> systems.
I didn't hear about it, but it sounds like a likely possibility. The same happens with ordinary programs without Easter eggs. Sure if an Easter egg adds bugs then it's bad, but the important thing (well, important to some people) is to fix the bugs. Who cares what part of the program the bug is in.
> and since developers rarely test (or are
> even able to adequately test) in other
> languages,
For a program intended for domestic consumption that's frequently true. But if a program is going to be exported then good companies do hire a few programmers who can speak English or whatever. (Even if theoretically there's nothing special about English, for some reason it's usually the first language that anything gets translated into when exports are planned.)
Some companies don't understand issues involving fonts and such things though. For example even when all the strings have been translated into English, a help file or something else might still demand that the user install Japanese fonts because some default settings are still in place. I had to persuade one or two companies to set up an English-language Windows system without Japanese fonts in order to test their export versions.
A famous vendor of Windows OSes still too often forgets to test the opposite kind of case. A famous employee of that famous vendor even admitted privately that non-English-language versions don't even get as much testing as English-language versions. But they don't recall their products when recalls are warranted.Anonymous
October 27, 2005
Used to be, when you'd buy something from a merchant in and around New Orleans, they'd throw just a little more than you'd asked for into the bag. They'd call this "lagniappe," a Cajun word that means, loosely translated, "a little something extra."
After discovering the science of perspective, Renaissance artists would paint intentional errors into their masterpieces to convey their understanding that true perfection was the realm of the divine.
I wouldn't argue for the intentional coding of bugs, but an industry that can no longer tolerate the pride and humor expressed in the famous Excel 95 Easter egg has lost a bit of its human soul, and therefore its capacity to grow.
Perhaps the next generation of creative developers will redefine the Easter Egg in a way that lets them off the hook. Or perhaps they'll work somewhere where they have the freedom they require.Anonymous
October 30, 2005
The comment has been removedAnonymous
October 31, 2005
Easter eggs don't have "zero benefit to the end-user". If they did we wouldn't be discussing them. If they they did, the countless sites about easter eggs wouldn't exist. People enjoy discovering and sharing them, and they build some sort of loyalty to the product.
Insignificant, perhaps, but not zero.Anonymous
November 11, 2005
The comment has been removedAnonymous
November 18, 2005
I'll bet the reason why corporate/government types don't want easter eggs in MS software is psychological. They want people using MS software (and software in general) to be able to kid themselves into thinking that if they can't see any "clandestine behavior", then necessarily the software is completely trustworthy and innocent. Easter eggs refute this false sense of safety.
In other words, Easter eggs damage the perceived "innocence" and trustworthiness of software.Anonymous
November 29, 2005
The comment has been removedAnonymous
December 02, 2005
I remember putting a tiny link to a "Credits" page on the HTML help page of a data archiving system for a bank. On that page we put pictures of the project manager and us developers and the students that had helped us, along with a funny name for each. A perfectly innocent feature! But guess what: The customers were not amused, and the management condemned us to remove the page. In turn, we were not amused.
Should have hidden it better ;-)Anonymous
March 15, 2006
Well, this year I didn't miss the anniversary of my first blog post.
I still can't quite believe it's...Anonymous
June 13, 2007
PingBack from http://microsoft.blognewschannel.com/archives/2007/06/13/image-hidden-in-windows-vista-dvd-hologram/Anonymous
September 15, 2007
learn english online for free as a second languageAnonymous
January 01, 2008
PingBack from http://movies.247blogging.info/?p=5424Anonymous
September 29, 2008
PingBack from http://www.pagetable.com/?p=43Anonymous
January 18, 2009
PingBack from http://blog.didierstevens.com/2009/01/18/quickpost-windows-7-beta-rot13-replaced-with-vigenere-great-joke/Anonymous
May 29, 2009
PingBack from http://paidsurveyshub.info/story.php?title=larry-osterman-s-weblog-early-easter-eggsAnonymous
June 01, 2009
PingBack from http://indoorgrillsrecipes.info/story.php?id=5643Anonymous
June 02, 2009
PingBack from http://uniformstores.info/story.php?id=43025Anonymous
June 03, 2009
PingBack from http://castironbakeware.info/story.php?title=larry-osterman-s-weblog-early-easter-eggsAnonymous
June 07, 2009
PingBack from http://besteyecreamsite.info/story.php?id=1885Anonymous
June 08, 2009
PingBack from http://jointpainreliefs.info/story.php?id=1356Anonymous
June 09, 2009
PingBack from http://cellulitecreamsite.info/story.php?id=2167Anonymous
June 15, 2009
PingBack from http://debtsolutionsnow.info/story.php?id=10807Anonymous
June 16, 2009
PingBack from http://fixmycrediteasily.info/story.php?id=1971Anonymous
June 18, 2009
PingBack from http://ebeanbagchair.info/story.php?id=148Anonymous
June 19, 2009
PingBack from http://mydebtconsolidator.info/story.php?id=5234