views:

22936

answers:

128

I know it is illegal to place Easter eggs in code via Microsoft's quarrel with the law a few years back. Microsoft has decided that if you place Easter eggs in code, it is an immediate grounds for termination, but they are still out there in the wild. I know I put my name in the code a lot that will never show up to the users, but it is always fun to do.

So, what Easter eggs have you seen or placed in your programs/code?

One of mine was: Query = [Current_Step] = 'Scott Rocks'

+10  A: 

For one application I built primarily on my own time for my company (consider it a gift, a mea culpa for its original version 8 years ago which was highly buggy), I placed the following in the about box:

John would like to thank Paul Garmirian, Litto Gomez and Rocky Patel, without whom this project might never have been completed. (Nor, perhaps, even contemplated.)

Those would be cigar manufacturers (my three favorite, in order of preference). All three are, in app, links to the appropriate web sites.

Also, by special directive of one of the VPs, there's a random chance when you exit it that you will get David Spade saying "Buh-Bye" out of your speakers. (On certain other days, there are random chances of other sounds -- for example, on my birthday, a tiny clip from Pink Floyd's "Time" might play upon exiting.)

John Rudy
+7  A: 

Well, there's the infamous Paula Bean.

Keng
I actually include a paula() method in most of my classes. it returns "Brilliant!"
chris
Well chris that is not a correct implementation of the well known "Paula Method". Its supposed to return "Brillant", not "Brilliant".
Paul Batum
I used to love the Daily WTF...man Paula makes me smile every time I read it...just awesome!!!
Michael Prewecki
Why don't you still love the daily wtf?
nlaq
Heb realized that the site is not humorous, like The Onion, but rather "factual" like the BBC or CNN.
voyager
HA!!!
Keng
+14  A: 

During my time as a game developer I placed a lot of easter eggs. Gamers just love this.

My favorites are:

  • Replace all sounds of a game with C64 homecomputer blips and blerps.

  • Replace all text resources with the word "Malkovic"

Nils Pipenbrinck
your name malkovic?
Scott
I'm hoping it's a reference to the scene from Being John Malkovich where he goes through his own portal and ends up in his id, where everyone there has his head on their body and the only word they know is Malkovich... it's amazing.
Grank
I think Grank got it; that's certainly what I'd have guessed ...
John Rudy
Malkovich Malkovich Malkovich?
FlySwat
Malkovich Malkovich Malkovich Malkovich.
Jacob
(Fog Creek Copilot had a similar easter egg, until it was found to be responsible for a bug: http://blog.copilot.com/2006/10/halloween-frigh.html)
Jacob
Oh I did this as well.. never released my games though, but we always changed colors of the main character when holidays and birthdays of the people who wrote it came up.. :)
Arcturus
+6  A: 

Credits screen is a favorite easter egg of mine..

Gulzar
Ditto. Harmless (no naughty words or changing user data) and, in a way, very much in the spirit of the original video game easter eggs (which were developer names/initials as a form of "credit").
Keithius
+24  A: 

I created a small application for a previous company, if you clicked just outside the 'OK' button a picture of David Hasselhoff in bikini underwear with gold chains that said "Bling Bling" would pop up.

D.S.
I can vouch for this one -- sadly. Saw it in action. *shudder*
Kevin Fairchild
that seems like a pretty dangerous one to go into prod with... Sorta thing that would end up on dailywtf
Grank
"f you clicked just outside the 'OK' button", Yeah, that'll never happen.
Meff
@Meff Well, it *was* a pretty big OK button ;)
D.S.
Hasselhoff in bikini underwear... well, I tried to click the 'offensive' button but clicked outside of it. Fortunately, this application (stackoverflow) didn't visually rape me for that...
vitule
Noo! Not the Hoff!
Mat Nadrofsky
"For a previous company" because this got you fired, right?
Roger Pate
+24  A: 

Putting a fake Clippy into our application, which only appears for one of our users (who used to be on the development team) and gives him slightly, er, rude advice.

Chris Ballard
All I can think of is Demetri Martin...http://www.youtube.com/watch?v=JitMI6hDzjE
Grank
@Grank: the video has been deleted by YouTube
Time Machine
Got to try this one... xD
Arnis L.
+3  A: 

Going along with the clippy, one of our developers used the maxwell smart agent so you ended up with code like:

Private Sub agtAgent99_Click(ByVal CharacterID As String, ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Integer, ByVal y As Integer)
    MySpeak "how you doin?  Don't make me get up!", nagtAgent99
End Sub

Private Sub agtAgent99_DragStart(ByVal CharacterID As String, ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Integer, ByVal y As Integer)
    MySpeak "Don't put me near that genie freak!", nagtAgent99
    MySpeak "Goodbye beeotch!", nagtMaxwellSmart
End Sub

Private Sub agtMaxwellSmart_Click(ByVal CharacterID As String, ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Integer, ByVal y As Integer)
    MySpeak "WASSUP YO!  Uh oh!  Here come duh freaks!", nagtMaxwellSmart
End Sub

Private Sub agtMaxwellSmart_DragStart(ByVal CharacterID As String, ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Integer, ByVal y As Integer)
    MySpeak "Why you movin' me beeotch?", nagtMaxwellSmart
    MySpeak "Goodbye beeotch!", nagtMaxwellSmart
End Sub
SomeMiscGuy
+53  A: 

Once long ago I was part of a team developing a website for a large manufacturing company, and on the homepage they wanted this aerial view of the plant/grounds surrounding the plant. In the distant background of this image was the building of one of their competitors, so as a joke we integrated a complex sequence of actions that once complete would cause a small animated gif of a mushroom cloud to be super imposed over the top of their competitors building, the final frame of which was a burnt crater that stayed there until you refreshed the page. That was by far the best one I've ever been a part of.

The Brawny Man
+104  A: 

I used to work on ASIC designs. ASICs very frequently contain easter eggs, for example every chip I worked on has my initials in ASCII at an undocumented address. Other ASIC designers would include song lyrics. The really gung-ho types would include mode bits to make the ASIC do something outrageous like change some portion of the datastream to "We are the Knights who say Nee!" over and over. I felt that was too risky, if a bug resulted in activating that mode accidentally.

In ASIC design these easter eggs actually serve a legitimate business purpose: as a check for intellectual property theft. Large companies who design a lot of custom silicon do have to contend with their own ASIC designs being stolen and used in products which compete with them. Having the original designers names or intials hidden somewhere in the silicon makes it much easier to prove the misappropriation in court.

DGentry
This concept is similar to the trap streets sometimes used in cartography. http://en.wikipedia.org/wiki/Trap_street
Doug McClean
Apple did that in an early Mac
Alex Angas
@Doug I had heard about this only recently, and intended to look into it more... thanks for a link!
anonymous coward
AKA "mountweazels" or "nihilartikels". Hee-hee.
outis
I recently spoke with a gent who was reverse engineering an ASIC and found a tiny silhouette of a witch on a broomstick.
mwc
*ahem*. They say Ni not Nee :P
Macha
@Macha: *ahem.* They recently *used to* say "Ni".
Piskvor
+7  A: 

I didn't do this but I had a coworker once who did an e-commerce site. On the account application screen if you put in each form from top to bottom one character each of 867-5309 (there were 8 fields total) instead of signing up you were redirected to that "All your base are belong to us" video.

I didn't believe him until he showed me on the production app.

JoshReedSchramm
Jennie! I got your number!
Beska
+2  A: 

A LONG ago CAD app: Depending on the contents of a control file that specified probabilities at various times a pulsing circle would appear. Every time it reached it's minimum size it would erase the pixel at the center (the effect was it was slowly chomping on the drawing.) It moved around by a modified drunkard's walk--it would keep picking a random angle and a distance, move that one pixel at a time and then pick again. The angle was not truly random, though, it was weighted to favor directions heading towards the cursor, the farther from the cursor it was the stronger the weighting. The effect was that the circle would generally be somewhere in the vicinity of the cursor.

I shipped a control file set to only trigger it in the evening to one customer--I let the top guy know what was up and they had a lot of fun with a few of the users with it.

Loren Pechtel
+15  A: 

Personally, I've never worked on a project that gave me enough slack time to divert my energy away from coding the features as correctly as possible.

I don't think I'd bother adding Easter eggs, even if it were permitted in my company.

It's like the software equivalent of a construction worker leaving a footprint in mortar as a joke. It will stay there for all to see as a sign that the guy was goofing around.

Dan
Dude, you need a better project!
AShelly
All work and no play makes vorpal a dull boy :-(
Dan Malkinski
Question is, does the workers footprint have any affect on the structural integrity of the final building on aforementioned mortar?If not, I don't see the problem... Everyone is human, and some of us have no other way to leave a legacy. ;-) (FYI: personally, I too, prefer clean code!)
Pat
A blind guy could trip in the workers footprint, fall and break his neck. His estate would sue the construction company and all the workers would be out a job
1800 INFORMATION
Assuming that footprint in mortar == Easter eggs, No harm if it doesn't do any destructive.
melaos
Vedat Dalokay, a famous Turkish architect, designed buildings on "V" shaped columns to signify his name. http://en.wikipedia.org/wiki/Vedat_Dalokay
ssg
It's more like a footprint in mortar in the sub-basement which then had a raised floor and carpeting installed over it. No one's going to find it unless they already know about it, or are inspecting the foundation (code). When demolishing (physical) structures I find it very interesting to find stuff like this, it makes the job much more fun. The same goes for software.
jpeacock
Have you never written on the walls before wallpapering? This is extremely common
Colin Pickard
Also I read a story about Jaguar employees leaving porn magazines inside the doors of their cars. I recall this became big news for some reason, wish I could remember more details
Colin Pickard
You sound like a riot. =(
Blankasaurus
I used to hang lights for my high school, and they always complained about us not hanging the right 'podium light' when we were done. (Even though we hung the same instruments with identical bulbs.)There is now a light labeled 'podium light!' in black sharpie, on a black light.Unless you're actually rehanging it, you'd never notice it.
Robbie
+1  A: 

"I know I put my name in the code a lot that will never show up to the users"

... unless you have a bug, and it actually does show up to the users ...

Do most developers have an intrinsic need to passively demonstrate how clever they think they are?

Joe Strazzere
I think it's more a result of programmers who are proud of their work, but you're probably right for some cases as well.
Nerdfest
Of course. If they didn't think they were clever, they wouldn't be programmers! ;-)
Keithius
+344  A: 
Jon Skeet
Hah, that is totally awesome!
David The Man
WTF is a dressing gown
Greg Dean
@gdean2323: Maybe it's a UK thing. "Bathrobe" is not quite the same, but close enough. Basically "what you wear over pyjamas if you're cold". I think I've got a copy of the photo somewhere if you're really interested ;)
Jon Skeet
+1 if you edit the answer to include the photo!
Pat
How can we hate mister Jon Skeet after that :D, I hope you will get your second gold badge with this post!
Daok
"Spirits had been temporarily lifted by the fact that the problem resolved itself literally the moment I walked through the door"That's very Chuck Norris, or should I say Skeety?
macke
Jon Skeet is so baller that even his pajamas have pajamas.
John Feminella
+1 for the photo!
DoctaJonez
@John That's recursion :P
Samuel Carrijo
+1 for putting your wedding ring on.
Casey
@Casey: I never take it off, other than for cooking.
Jon Skeet
Thought the easter egg should live on. If you search for "Pyjama man" on http://askjonskeet.com :)
Andrew Rimmer
Ha, UK, haven't even heard of Snuggies
Adam Tolley
@John Yo dawg I herd you like pajamas, so we gave you pajamas for yo pajamas, so you can rest while you rest.
Christian Mann
Greg, how can you be a programmer and not know what a dressing gown is? Arthur Dent wore one all the way through The Hitchhiker's Guide to the Galaxy.
TRiG
Yo, I heard you to sleep at night, so we put a pajamas in your pajamas, so you can sleep while you sleep...
polemon
that is so photoshopped. the badge doesn't even look real.
Steven A. Lowe
awesome! And I came here from the legendary jon skeet facts meta overflow.
giddy
+80  A: 

Early in my working life, a coworker and I put in an "OhS&^%Exception" buried deep into the code as an inline Easter Egg for a future developer to find and laugh about.

One guess as to the exception thrown during the client demo. And there were no punctuation marks to hide our vulgarity. We kept the client, and got more work from them, but the meeting with my boss afterwards was not pleasant.

I have never, ever, again, put in an Easter Egg.

KevDog
Good show, good show. That made my day.
Zee JollyRoger
haha, that's the best thing ever.
Wyatt
LOL that's unpleasant...
Liran Orevi
Easter eggs are great stuff, but if you put a message like that in your /exception handling/ you are asking for something like this to happen.
Coding With Style
@Coding With Style Yes, that has occurred to me. Note the "early in my working life" part of it.
KevDog
Er, the real point I was trying to make is that easter eggs are a-okay if you just exercise prudence. (Re: "I have never, ever, again, put in an Easter Egg.")
Coding With Style
A fine cautionary tale.
Dave Markle
This is why when I have a "this error should never occur" point in my code, it contains an apology, even I'm sure it can *never* happen.
Dinah
+3  A: 

Aren't all undocumented functions Easter Eggs? ;P

leppie
Features, you mean features...
Abyss Knight
No, you're thinking of bugs.
DisgruntledGoat
+4  A: 

NOT BY ME but recent and interesting along these lines:

The Bloomberg iPhone App subtly hid an almost undetectable Bozo in the left monitor.

davebug
+2  A: 

I had an internal plugin for VB6 that added function comments. When "AYBABTU" was entered in the first field and Help|About was accessed, the about page screen showed CATS and said "All your comments are belong to us."

y0mbo
+7  A: 

When I get in tomorrow, the first thing I'm gonna do is implement a runItsGonnaBlow exception :)

roosteronacid
You should get a T-Shirt that says "If you see me running, you'd better follow." :)
Zee JollyRoger
@Zee JollyRoger: http://www.moviequotes.com/fullquote.cgi?qnum=69064
Adam Rosenfield
+205  A: 

One application I worked on had an entirely too long "about" dialog text. I rearranged things to put the most useful information at the top, gradually reducing the text size, until at the very bottom was a line in 2-point text (which looked like a divider line) which read "if you can read this, you're too close to the monitor".

Mark Bessey
Lol, I'd upvote it twice if I could :)
Krzysztof Koźmic
Thx for the drink on my monitor!
PoweRoy
+2  A: 

I built a load-tester to pound some of our servers. If you input the correct sequence of parameters, as the app started pounding the server it would play the sound of a Harley starting up, revving, and riding off. I only showed one other dev that it was in there, not that it would have mattered since it was an internal tool.

DougN
+486  A: 

It was late at night, and I was at the client's retail warehouse with my QA guy Paul and my Dell 25Mhz 386. We had been cranking out last-minute changes to the customized point-of-sale software (DOS & Clipper!) for the new chain's flagship store a week or two before opening.

We'd been warned that Tom, a Vice-President of the retail group, was going to participate in the acceptance testing, and he liked to catch people out in mistakes. So I was thinking in terms of sanitizing every input, taking into account every possibility of users monkeying with the system, and considering all corner cases. And, did I say it was late at night? I put a few more sanity checks in the code and we went home.

A few days later, Tom came around for the acceptance testing. The area we'd set aside in the warehouse was crowded with managers and executives. We'd already loaded the new POS software onto the hardware that was to be used in the new store. Tom logged onto the system, ran a no-sale transaction, and bing--the drawer opened and the correct audit receipt was printed. He bought a few items, returned them, exchanged them, entered bogus serial numbers, ran an expired credit card, that sort of thing. The system did exactly what it was supposed to.

Tom looked a little disappointed. He shook things up by entering crazy stuff: letters in the quantity fields, making individual payments in pennies, and so on. And it still worked.

Finally, Tom logged his cashier out and logged a new one in. The system prompted for the starting cash amount in the drawer (for comparison to cashing out at shift's end). Instead of something realistic like 100.00 or 200.00, Tom entered...

-999

And the error message came back:

Tom, you know you can't do that!

The crowd went wild with glee. Tom laughed and conceded that we had indeed thought of everything. He signed off on deployment and we went live on the store with very few problems. And we all lived happily ever after.

catfood
That must have been a rush! You should have retired... it'll never be that good again. But I love it when a plan comes together - well done.
ChrisA
What a great story, well played :)
Nicholas Kreidberg
thats tight... tom sounds like a true dick head though
What a great story!
John Feminella
@theman_on_vista - he sounds like a tester that is doing a good job. What is better, to find an error like that before deployment, or after the app has been deployed and you find -999 crashes the app and corrupts its database.?
kenj0418
RolandTumble
@RoadTumble: No, they aren't. The fact that he enjoys *testing software* makes him a good tester. Just as a BOFH is a good Network Admin. It makes you work harder to **know** *everything* will be tested (Of course I wouldn't like to be on the down side of that stick).
voyager
The difference between good and great is always the amount of care and emotion that goes in the work. As a great developer likes working with code and is passionate about the results, a great tester is passionate and diligent in finding bugs, and will try all possible (and most impossible) ways to crash your app.
SWeko
+1  A: 

an early biz application would play Happy Birthday in beep tones and list the employees with birthdays on that day when you booted the app

i wouldn't do that today - no time!

Steven A. Lowe
+5  A: 

I worked on a genealogical search application that would add a 'Joe Bloggs' from 'Auchtarrader' into one in every 100 searches. Unfortunately I didn't obfuscate it well enough and when I returned to the organisation on a temporary contract a year later it was slighly mentioned on the first day :o)

roryf
+35  A: 

I once was coding something that rated most frequent unigrams, bigrams, and trigrams given a piece of text. I had a large list of all the trigrams on the page, reverse-sorted to have the highest number first. I then added the following line of code:

triTop = allTrigrams[:10]  #RAAAARRRRR TRICERATOPS

I guess it's only an easter egg for me, because only I get to see it when I go back to the code, but it makes me chuckle every time. It's the little things ;-)

Robert Elwell
This is the third time I've read this thread, and the triceratops thing makes much chuckle every time. RARRR!
Matt Poush
Me too. Up-voted.
Mark Bessey
Archiving a triceratops..?
bobobobo
+3  A: 

When I was developing an online board game client (Scrabble clone), I took a few hours off to write a Tetris game that used the tile system, accessible by typing "/kalinka" in chat. Ended up playing it much more often than the game itself, having gotten sick of the latter through months of testing, writing, redesigning...

aib
+29  A: 

This Story has to be one of my favorite "eggs" gone wrong.

Zee JollyRoger
wow... that was a sad story.
Scott
that is sad. I've been looking for that to put it here. you found it first though +1
WalterJ89
+7  A: 

I stuck an Easter egg into a wizard for an enterprise software service that turned a ListView on that page into a cycling rainbow. Fun, a bit janky, but hey, it's an Easter egg.

The perverse thing is how I hid it - you can only activate it by clicking in a specific unmarked area of the wizard on Saturday the 1st. What poor bastard's going to be working on Saturday?

Merus
Whoa! Today was Saturday the 1st!
Carson Myers
+31  A: 

There's an Easter egg in JFugue, my Java music programming API. JFugue lets you specify chords really easily:

player.play("Cmaj Dmin") // Play a C-major chord, then a D-minor chord

I implemented 30 chords... major, minor, diminutive, dominants, etc. Buried in the code is one chord that you won't find in any piano book:

player.play("Cdave")

It's actually a pretty nice chord!

David
What chord is it?
erikkallen
It's a 1-7-14-21 chord. If the root is a C5 (C in 5th octave), this plays C5 + G5 + D6 + A6 - which happen to be four consecutive notes in the Circle of Fifths.
David
It would have been nicer if it had played C# a little off-key...
Dan Diplo
Excellent choice, the four open strings of a Viola.
Lotus Notes
Cdave is actually C add9 6th no3.
tomp
@tomp - Good to know. I guess I need to get a better book about chords!
David
@David - But imho Cdave is nicer name :-)
tomp
+36  A: 

I recently had to write a web calendar in php. I decided to hard code in the end of the world as an event on December 21, 2012.

pieaholicx
That's not an easter egg, that's a bug.
Motti
That's not an easter egg, thats pessimism
that's evil dude
hasen j
That's brilliant! But can the user delete or hide the event?
Rob Williams
It's only a bug if it doesn't happen
1800 INFORMATION
Four years from tomorrow! So says the Mayan calendar.
Dennis Williamson
That's not a bug, it's a feature!
Teifion
That's not a feature, its a tragedy!
DFectuoso
I did something somewhat similar by using the same date (and my birthday in another area) in a documentation screenshot (internal only of course).
Jeremy
That's not a feature, it's the future
catchmeifyoutry
+34  A: 

I put an Easter egg into the PostScript implementation in the DECLaser 1152. I had initially snazzed up the start page with a better overall appearance and put a fan of dog-eared thumbnail document pages on it with a graph, the opening paragraph from Winnie the Pooh in Latin, and a picture of my (now ex-) wife. DEC nixed Pooh and the picture of my wife, so I changed the front panel code so that if you took the printer off line, held down the self-test button then pressed menu-menu-menu-enter-enter-enter, you will get a full page picture of my ex.

When I was working on Acrobat Search for the Macintosh, during development if you pulled up the search about box and typed 'homer' it would put up a picture of Homer Simpson and play the sound "I am so smart. I am so smart. I am so smart. S-M-R-T. I mean S-M-A-R-T." That was pulled before release and I slipped in two other Easter eggs. If you option click in the search about box, you get a slide show of all the entire team and their names. If you type in my last name in lower case 'hawley' you get to play break-out. The break out code took under 1K and played in 1-bit, 8-bit, or 24-bit color.

plinth
you're a genius!
Johannes Rudolph
+1 for Latin Pooh.
MiffTheFox
+8  A: 

Many years ago, when working on the MSDOS Point-of-sale terminal (the one that figures into many of these stories I tell on SO), one of the features was a pop-up calculator. I figured that was a good place to hide Easter Eggs. This being DOS, most people just ignored the ALT key, so any Alt+key combination with the calculator up seemed reasonably obscure enough. So, Alt-C displayed my name as author.

But the one that everyone loved was if you pressed Alt-W, it would play the William Tell Overture (remember, -- late 80's -- getting the PC speaker to do anything more than beep was impressive). When a corporate VP learned about it, he played it through the office PA system. When people asked me why it played that, my answer was "Because the company doesn't have a theme song."

James Curran
+1  A: 

None. Most code I write is production code for customers. More code means more bugs. Easter eggs are extra code, with the added extra chance for bugs (plenty of proof in some of the answers here).

I never allow anyone to write easter eggs in production code, and will never do myself. More code means more bugs.

Rolf
yeah, i think you already mentioned the "More Code means more Bugs" part
Harry
What does more code = ? I R Confused.
Nick Stinemates
My comment is living proof of it's message ;-)
Rolf
Are you sent back from the future to protected John Connor?
Shahin
@Shahin! That was awesome!
Beska
+30  A: 

At my previous job using an obscure document composition language, I included:

Bob = "a sweet dude";
...

if (Bob == "a sweet dude"){
    //do something
}

I was blissfully unaware that someone else already used the "Bob" variable (I have no clue why) for another field. It was rarely used for one particular letter and for one particular client name. So one day, my boss asked me why one letter read:

"Dear a sweet dude ..."

I figured I would have gotten in more trouble, but my boss just laughed as it was caught before it was sent out. I guess it could have been worse...

Dr. Bob
Always declare your variables with local scope using `var`! Oh wait, this isn't about Javascript.
Marcel Korpel
Local scope is also available in C#
masenkablast
Same as almost all other languages.
Razor Storm
+6  A: 

I don't actually put easter eggs per se, but I usually put something in the code that only future developer can see. Such as in a company ownership hiarchy class, I named the parents Property "Dom" and the child record property "Sub" and added a useless constant called "SafeWord", that is Sasquatch by default. Usually internal stuff, I'll add something stupid that will only be seen by developers, and is usually documented so as to not confuse them.

LINK

stephenbayer
Actually, SafeWord ought to be an Exception. Bonus if it's uncaught ;)
Jens Roland
+4  A: 

In 1995 or so we were using the first generation of pen computers and while developing our system for these machines I realized that Douglas Adams' dream of the hitchhikers guide had actually been built, so I arranged it so there was some sequence of clicks that would clear the screen and print "Don't Panic" in large friendly letters.

stu
There should be a contest on stack overflow to find a question or answer that hasn't been edited.
stu
@stu: This answer hasn't been edited, so I guess I win? When you post something as community wiki, it shows up as having been "edited" by you, even though you initially wrote it.
AgentConundrum
+35  A: 

Remember the 'BOSS key' anyone?
I wrote a PC chat program connected to GENie way back when. It had a Boss Key...
when you pressed it it filled the screen with big letters that said:

HI BOSS !!

My users were not amused!

jsfain
Space Quest III had the same thing. There was a menu item named "boss key", but when you selected it, it would say "Oh I get it, you don't want your boss to know you've been playing Space Quest III for 5 hours, 23 minutes, 10 seconds" (counting since you started playing)
Simon Howard
+82  A: 
epochwolf
nil.id == 4, You know, I didn't think of that.
epochwolf
certainly the best!
lock
hahaha nice one XKCD FTW!
pageman
You included the alt text! You are forever more my hero.
brad
This site should have an [xkcd] tag so everyone can be happy about the alt text and linking to the original page...
jleedev
I have see this PNG in three different SO questions today alone: this instance, one in the "programmer comics" topic and one in the "programmer humour" topic.
Andreas Rejbrand
+3  A: 

On a website I designed, we had a picture of various members of our team. In the lower right hand corner, I put a link that had the same color as the background. The only text of the character was the Pi symbol. Clicking the Pi symbol took you to another page of funny pictures of the team members. Sandra Bullock in the Net FTW!!

BoboTheCodeMonkey
I too put that pi sign on one of my shareware software (BlueWave compatible OLR) :)
ssg
+13  A: 

At the end of correct initialization:

log << "ERROR: PC LOAD LETTER" << endl;

Marcin
Hopefully with quotes?
Andrei Krotkov
WTF is PC LOAD LETTER?!
scunliffe
Michael from Office Space: 'PC LOAD LETTER?!???!??!!? What the fuck does that mean???!??!?!?!?!?'
Time Machine
PC LOAD LETTER is a legacy message on printers meaning to insert paper.
Alex JL
+9  A: 

At my old job I once used http://steghide.sourceforge.net to vent my announces inside image that were used on the companies homepage.

I knew no one would read them, but it made me happy inside to know that my venting where there on the homepage.

Mason
You can do that with the "copy" command in DOS actually, works well with .jpegs
Cyclone
+16  A: 

This isn't truly an easter egg since it's in my personal toolbox file, but after more than one typo while trying to exit Python's IDLE, I inserted the following function:

def exist():
    print "Yes, I do."
    exit()
J.T. Hurley
There's a program for Linux called "sl" that shows a "Steam Locomotive" animation to people who mis-type "ls". http://manual.cream.org/index.cgi/usr/share/man/man6/sl.6
Matthew Crumley
@J.T. — Shouldn't that be "Not any more, I don't", if it's about to exit? ;-)
Ben Blank
sl is actually packaged for Debian (packages.debian.org/search?keywords=sl). :)
Matthew Flaschen
We had these at school too. "lsd" printed an ASCII-art molecular diagram for people who mistyped "ls". "win" would reply "you win!" for people who forgot what kind of box they were on.
Karl Anderson
+1  A: 

In a new installer that I'm currently working on for the company that I'm with, the UI is implemented in the start-up application, rather than in the installer itself for reasons that I won't get into here. In one of the dialogues, the user has to choose what gets installed and what doesn't via a tree view control that shows check boxes next to each feature.

To show the check boxes in the various states that they can be in and with the various attributes that they can have, I made up an image list bitmap that contains images of of all possible combinations of states and attributes that any of the check boxes in this control can have. As tree view controls never make use of the image in the leftmost position of such a bitmap, most people would simply leave it blank. I decided to put my initials there.

I know that's not strictly an Easter egg, since no user will ever see it, but anyone else who works on the project after me will see it if they look at that particular bitmap.

RobH
+5  A: 

A GherkinException with the message "You are an ass. Please contact the assmaster" followed by the email address of one of the developers appeared in a friends' tech demo once...

... me, I stick to using song lyrics in nUnit test code. But never for variable names!

metao
HA that was me! Well I was the assmaster.
Aidos
+29  A: 

In python 3.0, try this:

import antigravity
Jason Baker
Oh My God I'm FLYING!!! Good thing I have this long range bluetooth keyboard!
stalepretzel
that was a response to an xkcd comic - http://xkcd.com/353/
Jeffrey Kemp
@Jeffery Kemp - Have you tried it out? That's the comic that comes up.
Jason Baker
It also has the `geohash` function.
KennyTM
+1  A: 

I put a Tetris-clone in a custom form editting application that I had created a few years back. You had to name the form at time of creation, and if you named it "tetris" it would launch the game inside of the form.

Somehow, one of the testers found it in the first month and I had to remove it. Well... I didn't remove it, it is just trickier to find now. Last I had heard, no one had found it again. I was really hoping that a customer would have found it originally.

By the way, the high score page was all full of programmer personalities with their pre-seeded fake high scores. People like Larry Wall, Dennis Ritchie, (Amazing) Grace Murray Hopper, etc. Not surprisingly, the testers didn't get that part of the game.

joseph.ferris
+42  A: 

Back when I was working on the x86 compiler/linker for CodeWarrior Professional, I stuck a couple of easter eggs into the development tools:

If your source code had the line "#pragma gauntlet on" in it, then the compiler would randomly say things like "CodeWarrior needs food badly" through the PC speaker when running on Windows. I recorded four different phrases inspired by the arcade game Gauntlet, converted them to low-bitrate ADPCM sound files, then embedded them as data into the compiler in a file that looked like a lookup table.

Also, if you have a function in your application called "__I_choose_you_Pikachu" (or something close to that), and then ran the "Disassemble" command from the IDE on the object code, you'd get an ASCII drawing of the famous Pokemon character in the output and all of the addresses in the listing from them on would be variations on the phrase "Pika Pika".

Finally, while working on the Palm Foleo device, I added a command to the Linux shell called "mole". When run, it would bring up a "Catch-a-Moleo" game where you threw nets on little moles that popped up out of the ground. Each mole was labeled with the name of a different team member. Alas, the device was never released, so no one got to see that outside of Palm.

Ben Combee
Haha this is great to read, as an ex-Palm software developer - I wish I knew about these back in the day.
Wahnfrieden
LOL, I remember the CodeWarrior one! Most awesome!
Robert Fraser
+1  A: 

I make a GUID from my name and surname for the ActiveX that I developed. (obviously as hex)

dr. evil
+4  A: 

I am a bit skeptical that it is technically illegal to put easter eggs in software, probably just against company policy.

In any event, here is mine: In a web timesheet App I had an invisible (transparent) image link that would pull up dilbert comic strips.

JohnFx
+23  A: 

I hid an easter egg in one of our in-house maintenance apps.

$ ./restore look
It is pitch black. You are likely to be eaten by a grue.
$ _
Piskvor
+50  A: 

I didn't do it, but searching for the answer to life the universe and everything in Google is my favorite

Juan Manuel
search "answer to life the universe and everything * 5" :)
John Gietzen
That's not an easter egg. That's a well-known feature included by design. So is "number of horns on a unicorn" (try it).
Timwi
@Timwi: The well known feature is that Google Calculator has constants, like "speed of light". The easter egg is that "answer to life the universe and everything" is a known constant. (I'd argue that "number of horns on a unicorn" being a known constant is a second egg!)
Josh
Sadly it doesn't know "number of balls Hitler has".
wbg
How about "answer to life the universe and everything feet in inches"
Rydell
@wbg: http://www.wolframalpha.com knows (well almost).
Esko
Try searching "recursion"That's my favourite.
Chris Cooper
Another constant that is missing: "number of angels on a pinhead"
jamesh
This is so not original...
Andreas Rejbrand
Sorry but i give you the 42° vote!
ohe
+1 to Chris Cooper for the recursion egg! =)
giddy
+4  A: 

My favourite was on a windows based app that had a green knightrider style progress when the user logged in. We put in an easter egg so if you clicked the username field about 15 times, it would make the progress change red and play the knightrider theme music as you logged in. Not sure anyone ever found it, but it entertained us :)

+9  A: 

We hid an ASCII art version of the space150 logo in the home page source code of space150.com (which is upgraded every 150 days). We put it in for fun a few years back, and we've updated it every version.

I was surprised how many job applicants for HTML/CSS positions mentioned they had seen the hidden message in our source code.

Here's a few of the older versions:

and the latest:

Eric
+11  A: 

Not an Easter Egg, but a similar "oops".

Back in the day (1998) a company I was with was building a VB6 application that had to work on Windows 95 (different patch levels), Windows 98 (ditto) and Windows NT 4. Deep in the guts of all this was the library "concat.dll". We could not get the software to install correctly and after going round and round for days we determined that this particular library had a different version for each of the OS versions.

In my frantic attempts to try and make the thing go on my local machine (no testing machines or VMs) I took to renaming the file after installation. After several dozen renames I started using profanity in the renames (ashamed to say - I was young - all standard excuses apply).

One of the last ones that I did was concat_ARG_F***_S***.dll (fill in the blanks). I eventually got an install working and off it went. Shortly thereafter I left the company.

A co-worker phoned me up months later to tell me a story.

Apparently the manager needed an install to send out PRONTO and did not have the installer. The manager had gone to my workstation and just scooped up the development directory, burned it to CD and sent it out. Unfortunately that particular code NEEDED the profanity laced file and when the user started the application it popped up a dialog box informing her that concat_ARG_F***_S**.dll was missing.

Needless to say she was less than amused and the company did not get to win that contract.

Todd Williamson
Lesson: always wipe your machine when you leave.
Karl Katzke
Lesson: people need to stop taking things like that so seriously. It's language, it can't hurt you. For fuck's sake.
Bergius
Language can hurt, if loud enough. 200 dB.
Gamecat
+26  A: 

Just silly harmless stuff.

Like letting the splash screen of an application (in between the normal "Doing this", "Preparing that", "Loading stuff", "Opening main window" that cycle along rather quickly on startup) briefly show "Programmer is ## years old today!" for three seconds on my birthday in yellow letters on a red background and then continue normally.

With a rather obscure registry key somewhere to make sure it only showed once per year per machine so that if users start it again ("WTF was that?") it would not show up again until the next year... ;-)

peSHIr
+1  A: 

I worked for a game company in the 80s developing games and porting games from the PC to the Amiga. One game I worked on was a speed boat racing game, and originally there was this intermission during the middle of a day of racing. I'm no artist, but I made this great cheesy Lunch Time screen that had a big orange cup and a hamburger on it...

The publisher didn't like it, and asked us to remove it. So I hid it.

The combination of things you had to do to get to it was ridiculous - I don't even remember now what it was, but it was holding down 4 or 5 keys and pressing a mouse button at a particular time in the game.

I wish I could remember it because I can still run that game in VMWare and I'd love to see it.

The game was HeatWave.

stevex
+2  A: 

At my last job, one of our team members was selected to be on a reality TV show "Your Mama Don't Dance" with his daughter. Clearly he had to take a temporary leave while the show was being taped and aired. During this time, our team members took stills of the show as it aired and kept them as images which we used as test data in our application. Before he returned, we set the system to use only these images and graphics whenever he was logged in. At the time, he was responsible for testing the app so he received quite a surprise when he returned to find the system literally filled to the brim with pictures of himself dancing on television!

Jason Karns
+3  A: 

In an earlier life, I wrote a DOS shell, using PDS6 and QBDOS (the main shell and file manager/zip manager apps were written in PDS -- originally begun in QB4 and then migrated to PDS), and the config app was rewritten from scratch in QBDOS (universally despised, but I loved it).

Among its varied features, it allowed the user to select a variety of background "stuff" (can't really call them "images" since it was all in text mode) for the main app (the menuing pages). Users could select various colors, or patterns, including a "twinkling star" background (I wrote an internal "round-robbin" multitasker to enable stuff like that; well, actually, it was necessary to enable semi-stateless interactivity between the various program and application menus; once it was there, I realized I could add the twinklestuff with a few lines of code). Users could define how "big" to twinkle (it used various "star-like" chars, and the user could select how large to have the random twinkling go), and, the twinkelerate (how quickly to twinkle -- everything from a very slow, subtle rate, with the occasional "star" twinkling every so often, all the way up to full-tilt epilepsy-induction mode :)

The random twinkler would cause various "stars" to twinkle by changing the character in any particular cell, and, the brightness of that character. Twinkling would range from completely off (black cell) to full-bright/largest size "star" character.

I did not document the fact that when 1) twinklemode was activated, and 2) the program saw that it was December 25th), it would randomly set a few stars to red, and a few stars to green, while they twinkled.

I came to regret this feature when I started getting panicked calls, along the lines of "I thought I had a virus!"

Argh...

I quickly dropped my plans for stuff like red/white/blue twinking on July 4 and so forth.

+1  A: 

I tend to put a few in the comments, from memory:

Roses are Red Violets are Blue In Soviet Russia Function simplify you -- Comment to a Heskell function called simplify, to this day I reget that for some reason I didn't use the function below it (evaluate)

In my first year Java coursework (a clone of early bomberman games) I had an abstract class called BadGuy, all the enemies inherited from it. I chose the name so I could start the class with the lyrics to the Bugsy Malone song "Bad Guys"

Inhereted from BadGuy was another class called WandererAndTheColossus (the literal translation of Shadow Of the Colossus' Japanese title)

Benjamin Confino
+599  A: 

There is tell around my company of a threadpool-ish class which, in that it monitored child threads, was named Pedophile. This is all good for a laugh, until your customers call in to complain that your program is crashing with only the message, "Error: Pedophile has no children to watch."

kyle
Oh, +1 hilarious-poor-taste :)
David Thomas
HAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAA
Click Upvote
Omg, this made me laugh so hard! Wish I could upvote twice >.<
Cyclone
This is pure, awesomeness.
Kyle Rozendo
hehehevery funny indeed!!!
Asad Khan
Wow, that's a dangerous error message :)
Neil Aitken
hahahaaeheahaehhaehae!!!! that was so fraking hilarious man
baeltazor
+1000! aaahahahahahahha
Vinz
Nice, but it can bring problems xD
maxorq
Amazing that some companies are shipping software without obfuscating the class names. I mean: this is **precisely** one of the reason why you should obfuscate class names. We've got an automated obfuscation/mapping/demapping/bug report system in place. Internally, we never get to see the obfuscated class names while our customers never get to see the real class names.
Webinator
I actually LOL'd ;)
dare2be
Awesomeness indeed, this post is giving me ideas for the new app Im developing.
giddy
+1  A: 

I added JavaScript snow to display on the commerce portion of our commerce web-application for Christmas and Christmas Eve.

Daniel X Moore
+1  A: 

I recently worked on a large (state-approved and financed) gambling web application where I was doing, among other things, the account management front end. In one case where an exception was thrown a dialog box would open and read:

"Watch and amaze while the application eats itself!"

The exception was thrown when a very specific credit card transaction failed. This was thought to be extremely rare and only occurr in development since the credit card transaction functionality was mocked and didn't actually perform any transactions. Naturally, when the application made its way to QA this made it's way back to me rather quickly as it seemed it wasn't that uncommon after all. It got a few laughs and then everybody had to make sure there were no other messages like this hidden in the code.

Kudos to anyone who can name the original quote and where it's from.

macke
+3  A: 

When I worked on MapPoint, everyone on the team got to put in a POI (point of interest). It had to be not obvious and not navigable. I, of course, put one in.

Ry
+26  A: 

My most memorable easter egg was the one that I forgot about.

I developed a heat loss calculation software as a freelance project back in 1998. 2 or 3 years later, someone sent me a screenshot of a hex editor, showing HEAT.EXE and the text below highlighted:

MIDDLE OF THE NIGHT - HAD BEER - SSG APR '98

He knew my nickname so he thought I might be involved with the text. I was surprised myself as well since I didn't remember adding that text to the executable.

While looking at the screenshot I remembered how I spent nights awake drinking beer and writing code. I guess I was just too tipsy at the moment to remember what I was doing. Luckily rest of the software turned out fine. At least, I heard that it was still in use couple of years ago :)

I guess it's rare to be surprised by one's own easter egg.

ssg
Does that really work? Coding while drinking beer I mean.
bobobobo
@bobobobo sure, it does. Not too much beer though.
Sven
Well if you're too pedantic, couple of beers can get you through many minor design decisions which you'd spend days nitpicking on :)
ssg
+1  A: 

Just write some horrible code in C, so many weird things will start to happen you will convince yourself they are easter eggs.

+8  A: 

I didn't actually put this in, but I was in a factory working on the control system for pour line in a foundry. I won't get into the details but they'd had a safety problem where the line could jam and the pusher that indexed the line was strong enough to rip one of the moulds (thousands of pounds) out of the line and send it flying.

At some point in the past they had installed a laser safety sensor that would detect if a mould started to be pushed up and it immediately cut power to the pusher. This was in a PLC, and the logic contained a coil (similar to a boolean variable) named "oh_s&1t" (only without the obfuscation). In PLC programming, the description of the coil always appears directly over the name of the coil, and in this particular instance it said, "OH S&1T - a mould is flying out of the line, everybody duck!"

That's about as close as I've seen to an easter egg in a PLC...

Scott Whitlock
hahaahhhaheahaehae thats hilarious!!!!!!!!! nice one!
baeltazor
+4  A: 

While debugging some Windows code with a kernel debugger, I found out that one of the Windows Kernel functions responsible for dispatching messages is actually called BozoLivesHere! I guess they couldn't come up with a meaningful name, they went with a creative one.

Ash
http://blogs.msdn.com/oldnewthing/archive/2003/10/15/55296.aspx
Adam Rosenfield
Thanks for the link! Raymond is always informative.
Ash
+37  A: 
Tony k
It's a great interview question. If the interviewee looks blank they don't understand optimization funcs, if they don't laugh you don't want to work with them. If they always put it in their own code = hire them now!
Martin Beckett
+10  A: 

I put an accidental Easter egg in a software I downloaded from the net and heavily rehacked to suit my needs, used to run a network service. Actually, it was a bug, but still it behaved like an Easter egg. The modified source code was only mine, and used only on my UNIX account.

Now, it happens that someone steals my password and enters into my account. I do realize the crack, report it to who is in charge. Long story short, my account gets suspended for my negligence (it wasn't, but when you are at the first year of the university, you are just a nuisance to get rid of in any way possible).

After a while, a similar network service appears at my university. As the vanilla code was publicly available on the net, I did not suspect anything. Yes, it was highly rehacked to suit the owner's needs, but it did not behave as mine. Until... one day while using the service I triggered my "Easter egg" by accident.

It turned out that the guy owning the service was either the one responsible for the crack on my account, or he was directly in touch with the one who did, and they got my source, rehacked it more, but left the egg as they could not know it.

So it turns out that Easter eggs are very useful sometimes to pinpoint illegal appropriation of code. Call it signature-by-obscurity, but it worked for me.

Stefano Borini
+5  A: 

xmas.js

I left this in the codebase after leaving a contract once. During the last week before christmas, every 20th pageload would include that file. The script would wait 30 seconds, then fly a little reindeer-pulled sleigh across the screen at a z-index of zero. It happened fast enough and rarely enough (and always out of the corner of your eye because of the delay) that you could never quite be sure that it had really happened.

To QA's credit, they actually found it the first year.

Jason Kester
+1  A: 

Twiddla has an easter egg that should be relatively straightforward to find, but thus far nobody has (or at least nobody has reported it to us)...

Today's hint: recursion

Jason Kester
+3  A: 

A coworker of mine was working on the physics simulation, in double precision, and had a variable for collision volume peneration depth.

Go figure. :)

(He actually started laughing after coding that line, with a very guilty face. AFAIK, we kept it until we changed to single precision a few years later.)

Marcus Lindblom
+2  A: 

When working on a Windows application that provided Share Analysis for a big city bank, I added an Easter Egg to the Help About screen.

With the dialog open you had to perform a sequence of clicking the bank logo and typing the letters in the bank's name several times forwards and backwards to eventually reveal a combobox of staff and developers' names and a listbox showing several anagrams of the selected name which I had generated using Anagram Genius.

Long after I had left I told one of the employees, who I was still friendly with, how to access it - in the strictest confidence :p - and within days all the analysis staff knew and were checking out their names to see their personal anagrams. Since none of them were rude or derogatory, it went down quite well and became something to show to new joiners as a curiosity.

Gordon Mackie JoanMiro
+4  A: 

A few years ago I wrote a TCP diagnostic tool (which is still freely downloadable), originally just for myself. It had some features like sending/reveiving UDP packets, opening SSL/TLS connections, dumping content as hex, forward TCP connections and more.

One day, I added an easter egg to it (it is even in a class called EasterEgg.java, but since the code is not open source, it does not matter). When you configured the forwarder module to forward to host "eASTER" and port name (which usually gets looked up from an embedded copy of /etc/services) "eGG", it would instead open port 5993 (eggs when viewing it upside down on a calculator) and connect to it.

When connecting to that port with telnet, it will just print a few funny messages, and if you connect to it via putty (in telnet mode, not in raw mode) it will play a nice ANSI effect. When connecting with a webserver (http), it returned a funny website with an unload button to close the port again, and when connecting with a POP3 client (any username and any password) it kept returning the same email message over and over again.

It was fun to do the protocol detection, and later I showed it to a colleague and he liked it as well.

mihi
That's a pretty in depth easter egg. I like it
Neil Aitken
Shoeldn't it be 5663?
Gamecat
It is 5993, as G looks more like 9 upside down than 6 upside down
mihi
+31  A: 

I happen to work for the same company my mother does, and in any app i have made where users are being authenticated i check if said user is her, if it is there is always a "Hi Mom!" displayed somewhere on the following page.

Petey B
Did the same thing with my wife, a couple of years later a programmer called me and told me he checked why logging-in is so slow and he found out that a very complicated SQL is executed to find out if the user is my wife. Removing it speeded logging in with about 5 seconds.
Faruz
Faruz: if (user.Name == "Wife") Write("Hi, wife!"); shouldn't take so long
configurator
@configurator, Yeah but that's not very helpful if user aliases are stored in a SQL database.
Razor Storm
@Faruz that's some unbelievably awful SQL. I assume it's doing a SQL check to see if their login was successful so doesn't seem that much more effort to see if their login username was your wife's.
Graphain
That is so cool. I wonder how that went otherwise.
bobobobo
+2  A: 

My first Windows app ever was one that needed to strip certain information from reports that were provided to my company from a 3rd party. To use the app, search for the report file and click 'Analyze'. If you click Analyze with no report chosen, the 1st time it would tell you how to use the app. The 2nd - 5th times it would have an increasingly sarcastic remark wondering why you couldn't follow simple instructions. If you clicked it after #5, it would close the app. People who found it thought it was pretty amusing.

Dinah
+1  A: 

I was working as a lead-engineer in the development of a car radio/cd. A few times per week, we would give the latest-and-greatest software to both the project manager and the program manager, who were both using the radio in their own car. Especially the project manager was very fanatic in trying to reproduce any issues he discovered.

Somewhere in february/march we had a hardware problem; at times (1 in thousands), the radio would come up with some static on the display. This was a hardware problem which was solved in March. Only at end of March, I've created a special version, only for use by the 2 managers, and never recorded in configuration management... This had some special code which would:

  • show a static noise display (showing "April 1" from a distance) at first power up on April 1st.
  • It would show this until powered off,
  • and then not show this at power on for 30 minutes

The idea was that the managers would go crazy by

  1. seeing the defect still active
  2. trying to reproduce Fortunate for them was that their cars were not completely compatible to the radio under development; time/date was missing..., so the booby trap never became active. I had to show them the day after and we all had a great laugh...

It was a lot of fun to do, and some of the code was used afterwards to show bitmaps rather than just text.

I will however, never leave a easter egg which can somehow end up in production code.

Adriaan
+6  A: 

I once made an application which, if your user account name on your PC is 'Steve Jobs', the splash screen says, 'Why does Steve Jobs use a PC??'.

Time Machine
+13  A: 

I once wrote an OS that occasionally displays random error messages with cryptic error messages and hex numbers on a blue background. - Bill Gates

Amarghosh
Hey, we all know that *you* didn't write Windows. The last thing you actually wrote was probably the BIOS tape loader for MS-BASIC.
Loadmaster
+32  A: 

google recursion (not mine)

Note: This only works on Google.com. When you are on another google homepage, like google.de, use the "Google.com in English"-Link first!

Tim Büthe
Thanks a lot for posting this!
Cawas
+1  A: 

I named forms authentication cookie in asp.net app as lastname of my co-worker.

And i'm planning to embed this youtube video somewhere. :)

Arnis L.
best video ever!!!!
Matt S.
+1  A: 

A colleague of mine added an Easter egg where, if the user typed "ABBA" into a certain text box, the entire screen would gamma-fade to black, and be replaced by -- you guessed it -- a photo-montage of the 70's Swedish rock group.

Another colleague, working on the same application, changed the calendar control so that when a user displayed it while holding down certain keys, the grid of month-days would transform itself into a working implementation of Minesweeper.

Paul Lalonde
+1  A: 

Years ago I was on a team building a forms application in VB6 (actually, think it was VB5!). This was a large application with many modules. There was a lot of user testing. One of the users sent an email one day saying that the app would be great if it didn't "act like a biker with a grievous head injury" when a error occurred.

Of course, this email made its rounds and we all had a great laugh. I searched for a picture of a typical biker gang member and put it in the application. I then changed the app so that if the user entered "grievous head injury" in one of fields a new window would pop up with the picture with a message that said "You found the secret message - hope your day is grievous head injury free". Then all of the names of the development and test team would scroll by.

We didn’t tell the users until much later but before it went live. They thought it was very funny – especially the guy who sent the original email.

After that programmers would add Easter eggs to other modules in the application. That app was in production for over 10 years and those Easter eggs were still in there.

Good times.

Loki Stormbringer
+3  A: 

The team was told to build a portal application from scratch. We were given the ability to name it whatever we wished. A few bouts back and forth and we finally came up with a name. Now, personally, I didn't agree with the name. I thought we could be a little more fun in our naming scheme (kinda like Mircosoft with codenames) so I began calling it "CAKE" (From the video game Portal: Still Alive). A few weeks in I was told to stop calling it that and to remove ALL references to it.... So I did.... except for the 3 lines of comments hidden deep in the code:

// The cake is a lie...
// The cake is a lie...
// The cake is a lie...

Steve Hayes
+8  A: 
sebastian
+2  A: 

I once worked on a web app that used javascript, to which I added a check for Sep 19 (http://en.wikipedia.org/wiki/Pirate_Day), which added a tiny "Arrr" to a random location on the page.

Loadmaster
+2  A: 

Back in college in year 1996 I wrote a program for cataloging students' diploma projects. In its About box you could enter Alt+n+a+k+e+d+g+i+r+l+s to see you-know-what. Last time I visited, about 5 years ago, the program was still in use.

zvolkov
+1  A: 

A set of applications that I worked on had an in-built haiku generator. You needed to bring up the About dialog, and then by clicking on the application logo the application details would change to a semi-randomly generated haiku.

Lou
haikus are easy; but sometimes they dont make sense; refrigerator; (nice egg btw!)
Wez
+1  A: 

Not so much an easter egg, but some code I have worked on had a function called Carol. It took a string in, and returned whether it starts with a vowel or consonant.

(http://en.wikipedia.org/wiki/Carol_Vorderman)

Paul
+1  A: 

A couple comes to mind ;)

I was one of 2 devs making a system for gov waterworks: double-clicking the about screen image pops up a red/white spotted mushroom.

We also made a change request management system that integrated with SAP: The about screen featured a hidden chat room for users of our system. nVidia ended up using our system 2 years later; Regretfully I removed it to conform to their code reviews.

A job costing system that allows adding of attachments to jobs, showing the file using the system's associated icon. Files with extensions ".666" or ".lol" would show the icon as horns / a smiley face.

Wez
A: 

On my first rails application, I left a line telling anyone that open the source that the application was done in RoR.

robertokl
-2? C'mon guys, this is kind of funny
bobobobo
Yeah.. You're so mean!
robertokl
+3  A: 
Allen
+1  A: 

Once I had to implement a small but important console application which could be controlled using a simple menu. If you entered hugo, it wrote a character face to the console.

Can't exactly remember how it looked, but it was similar to this:

stop : stop service
paus : pause service until keypress
info : print information about internal state
relo : reload configuration
> hugo

      VVVVV
    /       \
  O|  °   °  |O
   |    *    |
    \  ---  /

>

Hugo was the name of the project leader. I implemented it on a 1st of April and think nobody ever found it.

Stefan Steinegger
A: 

I added class Cow to my project before I left my internship. I wonder if they found it yet? It's a class that replicates the Unix command 'cowsay', for great justice. Nothing fancy, but it works.

http://pastebin.com/f14839146

Cthulhu
A: 

I've never put an easer egg (per se) - but for an equity trading system I did do this.

The requirement is that once you get a live stock price, you have to accept it within a time limit. End to end it's about 30 seconds, so the idea was to give the user 15 seconds to decide - and to show them a timer to help them know when the price was going to be withdrawn.

For the demo, I was asked to make the timer a lot longer, so they could explain what was happening while the bar counted down. I was asked to make the bar stay for 30 seconds.

30 seconds is the exact same amount of time that is given to contestants on the game-show "Countdown" in each round.

On Countdown, they have a distinctive theme tune...

Sohnee
+3  A: 
response.setHeader("X-Powered-By", "BalusC"); // =)
BalusC
A: 

Use jQuery to capture konami code and fire up a lightbox with a photo/graphic that I think is amusing...

Did this on various of web-application projects and seldom get appreciation from others :P

Reference: http://paulirish.com/2009/cornify-easter-egg-with-jquery/

rockacola
+4  A: 

In a web application I developed:

Expires: Tue, 08 Jul 1986 19:30:00 +100

The date and time I was born on. ;)

And in another application (a management simulation game) when you enter your name as "GOD" your company is named "Heaven", you can only hire angels as employees and your rival is named Devil.

The avatar I use on most sites displays a birthday cake on my birthday and fireworks on December 31 and January 1.

One of my applications shows a pink ribbon logo (a breast cancer awareness thingie) in the about box when a female user opens the dialog in October.

A few other things in other small applications like displaying "Beam me up, Scotty!" when a user hits the upload-button on April 1, etc.

Alex Kamsteeg
A: 

A Flash game i have made. I made it during college (the good old days when i had girlfriend, before becoming a code ninja)

The eastern egg, if you type the secret word while playing, a pop dialog will appear asking for a password, put in the password, and the game will transform into a love flash card with her name!!

The games is published somewhere on the internet. :)

medopal
+1  A: 

I made Sh.am and put this in it:

http://sh.am/WhatIsTheAnswerToLifeTheUniverseAndEverything

joshcomley
+3  A: 

The first one I heard about was in the 1970's. A Computer Science professor where I was a studying wrote some numerical libraries (Fortran 66, if I recall). He checked the data input thoroughly, and at one point, if the input was so bad as to be unrecognizable, he output a message using Format number 981 (format statements all had statement numbers). This message, output to the printer, provided an uncomplementary description of the user's intelligence, said "Mother Nature may be trying to tell you something," and printed a huge finger in beautiful ascii graphics. Some time later, a colleague from another university called him. It seems he had used this library in a publication. You can guess the rest.

There are still a few stalwarts who recognize "Format 981" as a highly appropriate insult in certain situations.

xpda
+13  A: 

Deliberate sanctioned one.
Was building a phone menu system, if the caller somehow reached an end point of the graph that didn't have a message defined - it read out some D&D type quote "you are in a stone passage with 3 doors all alike".

But the details of the message coded where in the graph you were - so when the customer rang up and mentioned this we knew where the customer had missed setting a message. The caller was much more likely to remember stone/3 doors than a long error code string and was much more likely to phone and mention it then if the message had just said "error status 0x123456"

Martin Beckett
I have long wanted to build a configuration-ID-to-silly-name translator for just this purpose. As in: "Well, the popup said to contact Machiavelli Funbags from Neverland"
Jens Roland
+3  A: 

Search Google for recursion. Not me, but slick.

Dean J
A: 
if (BOMLine.ExplodeAllowed == BOMExplode::Always) 
{
   // boooom! all the f*kng BOMs destroyed! go out there!
   ...

(bad manufacturing day)

j.a.estevan
+1  A: 

I implemented an easter egg for testing an application that my team developed as a part of a university project using Zelda inspired ideas.

I added a touch pressing combination on the login screen which would bring up the debug mode so we could seed the database for testing purposes.

By touching: top left, top right, and then touching the logo it would trigger the "Chest opening" sound from A Link to The Past and unlock "debug mode". Basically you were touching an upside down triforce.

It amused the development team, but we took it out for the final deliverable (I didn't someone accidentally finding my debug mode). Here is a screen shot of the login screen. (Everything below the lock only appeared in debug mode):

alt text

It made testing much more fun and put a smile on our faces. I think our testing was more effective because of it, it was certainly more enjoyable.

Brock Woolf
+1  A: 

I wrote some a simple CRM for our sales people, so that it integrated easily into our super admin area. When a sales person converts our 9000th sale, I'll let Vegeta commend him instead of the normal success page.

seanmonstar
Should have been 9001st sale. 9000 is not over 9000
Wallacoloo
+5  A: 

I'm not sure that this is an actual eastern egg but it's fun anyway. Go to http://www.lazurnoe.com/ and click on the bird in the top right corner. I found it in a forum about 4 years ago and it was named "The revenge of the web designer".

Branislav Abadjimarinov
+4  A: 

I recently made a quiz with health questions about food in Adobe Flash for a client. Some of the questions had animations. For instance: bottles of wine would pop up in a question about wine, chocolate letters would appear animated in a question about chocolate.

One question was about honey and in that question a bee would come flying in and sit itself down on the hairline frame that surrounded the question and answers.

If you had answered the question the bee would go about it's bussiness again and fly off to the side of the screen.

However, if you annoyed the bee by clicking it while sitting on the frame, a cartoon balloon would pop up saying 'Bzzz...' and after you answered the question, the bee would come flying straight towards you.

fireeyedboy
+12  A: 

Added a -nostalgia command line option to a tool that is part of a backup suite that spits out the following:

Yesterday, All those backups seemed a waste of pay. Now my source files have all gone away. Oh I believe in yesterday.

Suddenly, There's not half the files there used to be, And there's a milestone hanging over me. The system crashed so suddenly.

I pushed something wrong What it was I could not say. Now all my data's gone and I long for yesterday-ay-ay-ay.

Yesterday, The need for back-ups seemed so far away. I knew my data was all here to stay, Now I believe in yesterday.

Hannes de Jager
+1  A: 

I wrote a print engine to handle all the reports that the software my company wrote produced. At some point I decided that it needed a little extra. If you right-clicked on some little symbol in the corner (no it wasn't pi) with some combination of Ctrl + Alt (can't remember which), an error message would pop up with the text PC load letter.

Jim B-G
+4  A: 

I like to use "SoylentGreen" as an error level within enumerations. Such as:

public enum ErrorLevel
{
  None,          // None
  Information,   // Inconsequential
  Warning,       // May be important
  Exception,     // An exception was thrown
  Catastrophic,  // Application is exited
  SoylentGreen   // ITS PEOPLE!!! SOYLENT GREEN IS PEOPLE!!!
}
Will
– Whose people?
Konrad Rudolph
@Konrad tasty people
Will
+1  A: 

I created a winforms version of an NES controller (complete with the A and B buttons in the wrong order) using well placed panels and color. When users entered a "super secret key combination," the controller would appear. If they then entered up, up, down, down, left, right, left, right, B, A, Select, Start, it would bring up an admin console.

Also, we implemented several error messages in haiku form in the same application.

Michael Meadows
+1  A: 

When you press a secret key combination a message box pops up saying:

"When this baby hits eighty-eight miles per hour you're gonna see some serious shit."

The quote is from the "Back to the future" movie. BTW It's an application for car dealers.

Holli
+1  A: 

One of the icons on our toolbar for an app had a mac truck and building for a toolbar button related to fixed assets. With a specific key sequence the truck would be replaced with Optimus Prime in humanoid robot form and play an audio byte of "Autobots. Transform and rollout!"

jasonk
+2  A: 

In a command line application I wrote there is an undocumented tt command that issues cout << tt

#include <iostream>
#include <zlib.h>

std::ostream& tt(std::ostream& out) {
    static Bytef ttc[] = 
      "\x078\x09c\x06d\x050\x031\x012\x0c3\x020\x0c\x0eb\x0cc\x02b\x074"
      "\x05e\x068\x06\x0d4\x09d\x0b7\x0f4\x06a\x08f\x05d\x0fa\x083\x03e"
      "\x0be\x076\x02\x089\x093\x0ab\x0ef\x08\x08e\x04\x048\x032\x090"
      "\x08a\x04d\x01a\x04b\x046\x03a\x01e\x0f2\x044\x03f\x061\x046\x06b"
      "\x095\x0f5\x084\x01\x05f\x07c\x033\x0a2\x0a4\x023\x0a4\x0e\x050"
      "\x0fd\x075\x089\x05d\x0bd\x083\x0d0\x0bb\x032\x014\x0ac\x087\x070"
      "\x090\x0e2\x0f2\x0e8\x075\x0ea\x059\x0b0\x01d\x0f7\x0c5\x07b\x0ff"
      "\x044\x08f\x029\x0eb\x026\x082\x01f\x0ef\x055\x09c\x0c\x059\x033"
      "\x06a\x014\x06b\x04b\x0b0\x0ab\x08c\x02e\x0c5\x0a4\x020\x097\x0c"
      "\x082\x0d5\x0d7\x02b\x065\x08e\x055\x0c6\x079\x04a\x0d0\x03b\x017"
      "\x069\x0a4\x0ac\x07e\x0dd\x09\x0b1\x0d9\x0d2\x0d5\x09a\x0ad\x059"
      "\x025\x0e6\x060\x0ca\x056\x0e7\x058\x0f7\x0dd\x056\x016\x058\x076"
      "\x043\x097\x03\x01b\x060\x072\x0e2\x06b\x0db\x0ea\x048\x047\x05c"
      "\x02a\x07\x01f\x0bb\x08e\x047\x0f\x0a6\x0cf\x0b0\x0c6\x07f\x0c"
      "\x0f7\x0eb\x017\x026\x0a9\x065\x026\x046\x03e\x035\x055\x0f\x0e6"
      "\x01e\x0c3\x058\x0d2\x0cf\x082\x0cf\x0bb\x0dc\x07e\x0c1\x058\x064"
      "\x058";
    Bytef tte[636];
    uLongf size = sizeof tte;
    uncompress(tte, &size, ttc, sizeof ttc);
    return out << tte;
}
baol
+5  A: 

When I worked in Powerbuilder we used a framework called PowerTool which came with a prank command button -- whenever the cursor got within a certain distance of the button, it would start moving around the screen away from the cursor.

I modified the button to only activate if the cursor approached from a particular range of angles and speeds and a timer that would send it back home after a certain period of time.

Since I was support for the app, I'd get calls from the client: "The button's running away from the mouse!"

Obviously I'd have to go see this bizarre behavior in person, but they could never reproduce the problem for me ...

Hey ... I was young, foolish, and it got me out of the office once in a while ...

Ragoczy
+3  A: 

I wrote an API for Internet probes for a big portal. This was meant to -always- be used with proper CSS defining lots of stuff, including colors of graph with result, that was to be included (created) by the people implementing the API. Instead of using some plain, generic placeholder color, or some eye-screw shouting "CSS MISSING" I created a pretty pastel rainbow palette of colors generated on the fly using some HSV2RGB(sin(...)) and such. Nothing even barely similar to what the Design sent in, but what Design sent in was a general idea of how it should be made possible to look, not how it should always look... Anyway, the API is used widely all throughout the portal and I have yet to see the CSS for bars implemented even once. Rainbows everywhere!

SF.
If given the choice between defining my own graph coloring and using a pretty pastel rainbow, I'd probably just go with the rainbow too.
JAB
+1  A: 

Closes thing to a easter-egg I put in code was when i was building a utility that was supposed to communicate with a website to fetch a search-result. It demanded that you had a user-agent preset so i set up my code to supply the UA as James Bond.

trappski
+1  A: 

I placed a Konami code inside an authentication form to jump past it (thus using as a recovery method for forgetten passwords) in a very small project :D

Hal
while the konami code part sound easter-eggish, the function is a backdoor and therefore not harmless at all
Tobias Kienzler
I didn't say it was harmless; the feature was requested by the client, so I had no chance but to do it anyway. They wanted a super-user with a blank password (yes, *blank*) so that explains a lot regarding the security requirements of this particular app.
Hal
+1 since no reason to downvote
AHungerArtist
+3  A: 

I'm so unoriginal!

Coronatus
+1  A: 

In an FAQ section in an app that I built 7 years ago I created an automated .gif of the VP of Information Technologies head that bobbled like a bobble head doll. The FAQ was a screen that was never really used, so that was my attempt at an Easter Egg.

Jeff V
+1  A: 

I had a spreadsheet that was used to import data into another spreadsheet. To confirm that the import spreadsheet is actually the right file, it checked a range named to see if it had the matching text

Hold me closer, Tony Danza

Nothing offensive and well hidden. :)

Nicholosophy
A: 

FFFFFUUUUU face as icon on error message (which should never show).

alxx
c'mon, that global error handler. Should fit customer face perfectly :)
alxx
+13  A: 

I wrote this jQuery based Easter Egg for one website:

if ( window.addEventListener ) {
        var kkeys = [], konami = "38,38,40,40,37,39,37,39,66,65";
        window.addEventListener("keydown", function(e){
                kkeys.push( e.keyCode );
                if ( kkeys.toString().indexOf( konami ) >= 0 ) {
                        $('img').css('-webkit-transition-duration', '10s').css('-webkit-transform', 'rotate(360deg)');
                        $('a,p,span,h1,h2,h3,input').css('-webkit-transition-duration', '10s').css('-webkit-transform', 'rotate(-360deg)');
                        $('img').css('-moz-transition-duration', '10s').css('-moz-transform', 'rotate(360deg)');
                        $('a,p,span,h1,h2,h3,input').css('-moz-transition-duration', '10s').css('-moz-transform', 'rotate(-360deg)');
                }
        }, true);
}   

It use konami code: B A

When it fires all images and texts on the website rotating. Works only on Chrome, Safari and Firefox browsers.

antyrat
I like that one. :)
mizipzor
I think facebook have this one on. It displays circles on the main page.
David Brunelle
+2  A: 

I once worked on a aircraft parts certificate programm. It has some very odd logic to build part lists. So after some errors in that class which builds the part lists, i decided to rework the class and put some exceptions here and there. One exception, as far as i can remember, was there for handle the case of a part has no parent header part on the database. I thought that case could never happen as there is a working transaction on all the parts data modifications, but i deceided to handle that case anyway. So i put something like this (names and phone numbers changed of course):

"If you get this error please call Jon Doe on 089/1234-567"

The name and number was not mine, instead i changed this to the name and number of a co-worker that worked on another product this time, but we did a lot of tech talk from time to time on how to do things here and there.

Guess what happed... Someday a customer calls him and told him about this error message. My co-worker came to me a bit angry, but it was still good for a joke. Of course the error message was changed in the next version. But i still have to giggle when i think of his face the moment he talked to the customer :)

Programmar
+7  A: 

Not my Easter egg, but I was amused by the following function declaration, found in the depths of BeOS's system API headers:

/** Returns true if the computer is running.  If the computer is powered off, result is undefined. */
bool IsComputerOn();

A later release also added this function:

/* Self explanatory */
bool IsComputerOnFire();
Jeremy Friesner
+1  A: 

I once wrote a '3rd-party' app that acted as a proxy designed to extend the capabilities of the project's client app (read: add things the original designer didn't think of, but that became kind of obvious as the project lived on). The interface was text-based using /commands. My easter egg there was to add a /xyzzy command, that upon execution returned "** Nothing happened." ;-)

Since I'm still managing that code, I'll prob. end up adding some event to fire when the user has, say, full admin privs, or something. More of a reference than an easter egg, but that's all I have at the moment.

I did do some funny/weird stuff in the past, but most of it either got thrown out early or was made public as part of the project it was in, as opposed to being a "hidden" useless-but-funny feature.

Egon_Freeman