Why does Windows 95 have functions called BEAR, BUNNY and PIGLET?


If you dig back into your Windows 95 files, you’ll find that some internal system functions are given names like BEAR35, BUNNY73 and PIGLET12. Surely there is a story behind these silly names, isn’t there?

Of course there is.

“Bear” is the name of the Windows 3.1 mascot, a stuffed teddy bear seemingly-obsessively carried around by Dave, one of the most senior programmers on the team. If he came into your office, he might bounce Bear on your monitor to get your attention. As a prank, we would sometimes steal Bear and take him on “vacation”, in the same way people take garden gnomes on vacation and send back postcards.

If you play the Windows 3.1 easter egg, one of the pictures you will see is a cartoon of Bear.

Bear took a lot of abuse. He once had the power cord to a Tempest video game run through his head between his ears. Neil Konzen tried to stick a firecracker up Bear’s butt. (Presumably not while it had the power cord in its head.)

By Windows 95, Bear was in pretty bad repair. (The children of one of the program managers once took pity on Bear and did a very nice job of of getting Bear back in cuddle-able condition.)

So Bear was retired from service and replaced with a pink bunny rabbit, named Bunny. We actually had two of them, a small one called “16-bit Bunny” and a big one called “32-bit Bunny”. Two bunnies means twice as many opportunities for theft, of course, and the two bunnies had their own escapades during the Windows 95 project. (When Dave got married, we helped 32-bit Bunny crash the party and sent back pictures of Bunny drunk on wine.)

Dave was primarily responsible for the GUI side of things, so you’ll see the BEAR and BUNNY functions in the DLLs responsible for the GUI. On the kernel side, Mike had a Piglet plush toy (from Winnie the Pooh). So when we needed to name an internal kernel function, we chose PIGLET. Piglet survived the Windows 95 project without a scratch.

Comments (16)
  1. gds says:

    It’s very interesting for me.
    And one more question about internal win95 functions: I saw function "BOZOLIVEHERE" (or "BOZOSLIVEHERE", don’t remember exactly). Who is BOZO and why it lives in kernel?
    Is it a usual english word with its own meaning (my native language is not english), or this word has a story, like Bear, Bunny and Piglet have?

  2. James Curran says:

    "Bozo" is the name of a clown who hosted a TV kids show for much of the 60’s & 70’s.

    The odd thing about the show was that it was "franchised" — Each local TV station hired their own clown and filled the studio audience with local children. The local segment were just the wrapper around cartoons and other filmed segments which came from the national company.

    "Bozo the Clown ™" has a rather distinctive look with anglaur plumes of red hair:
    http://www.emerchandise.com/browse/BOZOTHECLOWN/ALLPRODUCTS/b.FAVORITES%20KIDSSTUFF%20BOZOTHECLOWN/s.4HMAeHRW

  3. comrade says:

    Well, it is not surprising then that the MS products are so insequre. They will never be given the development practices you describe here.

  4. Josh says:

    MS products are insecure because the developers are allowed to have stuffed animals? That does not make any sense.

  5. comrade says:

    What I meant was that if you name your functions by arbitrary meaningless names you cannot write robast code.

  6. Raymond Chen says:

    Those are just the exported names. We have internal header files that give them more meaningful names. (And meaningful names can actually lead you into a false sense of security. Just because a function’s name is CheckForBlah, does that mean that it really checks for blah?)

  7. dix says:

    i worked in a detox that had the same thing. they had a stuffed elephant named delbert, brought in a stuffed mate for him, made up all kinds of scenarios, and when things were slow at the detox, they even "checked in" the stuffed elephant.

    i refused to do charts on a stuffed animal.

    they also had a barbie, and since the director’s name is "barb," the barbie became sort of a standin for her. when we were frustrated with the director, "barbie" barb became suicidal and tried to hurl herself into the fan, hang herself from the bookcase, etc. i have to admit i did take part in that.

  8. Malc says:

    I once worked for a company that had a stuffed pig which served as a kind of checkout token. Certain files, it was deemed, should only be checked out by one developer at a time. To check the files out you had to "have the pig", so you would be forced to go to the current owner and negotiate for the files.

    A bit mickey mouse but it worked quite well.

  9. Adam Kalsey says:

    A local Web shop has a rubber chicken. If you forget to check in files when you are done with them, you get the chicken until someone else screws up. Fear the chicken.

  10. When we were developing against an ENVY repository (which is really picky about one person checking code in at a time), our release token was a plastic dinosaur called "Fluffy". When the Melbourne team needed the token, we put him in a cupboard: http://www.pastiche.org/~cmiller/pix/fluffy-melb.jpg

    Almost every dev team has something like this, although I’m finally getting over the need to pepper my code with Fight Club references.

  11. Mike Dunn says:

    This reminds me, wasn’t there a secret system.ini switch in pre-release build of Win 95 called FLUFFYBUNNY32?

  12. Blake says:

    Further back, how about the BurgerMaster structure that had all the head pointers for global heap? Sadly, Microsoft doesn’t even have people in the building beside the drive-in that was named for anymore.

  13. David Kline says:

    I know I’m a little late on this one… During the recent Seattle area snow event , I was able to get

Comments are closed.