95

Honest question, I can't seem to get the April Fool's Joke to appear. Is there some condition it requires? Is it only on some sites?

I've heard you just open a tab with an SE site/post in it and leave the tab alone, and when you come back after a while you'll see the joke, but I'm getting no such thing. It's April first in UTC, so the joke should be in effect, and I've heard other users report (and a screenshot) so I don't know why I'm not getting it.


So we've found your little code, devs, and we're finding the messages. ALL OF THEM.
AHAHAHAHAHAHA

For those playing the Home Game, use your browser's JS console and enter the following code:

 $.ajax({ url: "/clippy/get?id=5", data: { fkey: StackExchange.options.user.fkey }, async: false, type: 'POST' }).responseText

And you'll get an Object back that has Clippy Corn responses. Change the id=5 bit to get different messages. We've compiled a list of known responses below. But you wouldn't be a real Hax0r

enter image description here


This joke has expired as of 4/2/2012, so read the accepted answer to see all the examples of the joke.

19
  • 1
    No, there are still 7 minutes until UTC April 1st. Anyway, I take it that it's not UTC since some other people already saw it...?
    – Ry-
    Commented Mar 31, 2012 at 23:53
  • I noticed that the first two people to mention the effect in the other thread are already in April 1st, but the third wasn't.
    – Jeremy
    Commented Mar 31, 2012 at 23:58
  • What? How has other people seen it (I think I was in April before everyone else here)
    – Benny
    Commented Mar 31, 2012 at 23:59
  • 3
    i saw it on English SE, from other browser where i'm not logged in.
    – c69
    Commented Apr 1, 2012 at 0:00
  • 1
    I don't even know what everyone is talking about. Now you have me hacking through the source to all of the pages... Commented Apr 1, 2012 at 0:07
  • @GeorgeEdison it's probably in the JS, so finding it that way doesn't seem likely
    – Zelda
    Commented Apr 1, 2012 at 0:11
  • @BenBrocka: Hmm... this calls for even more scrutiny... Commented Apr 1, 2012 at 0:13
  • 12
    @BenBrocka The April Fool's joke is that there is no April Fools's joke!
    – jonsca
    Commented Apr 1, 2012 at 0:34
  • That is one hairy tongue
    – random
    Commented Apr 1, 2012 at 1:11
  • 1
    I am in Taiwan, the 1st of April is already here since more than 11 hours. Using UTC here is a fail.
    – Vincent
    Commented Apr 1, 2012 at 3:20
  • THAT IS ONE GOOD THING TO JOKE WITH ENJOY AND HARMLESS WITH ANOTHER Commented Apr 1, 2012 at 3:22
  • 16
    "So we've found your little code, devs, and we're finding the messages." -- Challenge Accepted.
    – balpha StaffMod
    Commented Apr 1, 2012 at 6:51
  • You haven't tried 42? 1337? (on a mobile device, can't hack POST :/ ) Commented Apr 1, 2012 at 16:04
  • 4
    @minitechη I don't know what you mean, I've always been this fabulous
    – Zelda
    Commented Apr 1, 2012 at 16:52
  • 2
    Hey, this is more convenient: $.ajax({ url: "/clippy/get?id=42", data: { fkey: StackExchange.options.user.fkey }, async: false, type: 'POST' }).responseText
    – Ry-
    Commented Apr 1, 2012 at 16:53

4 Answers 4

63

This is indeed very mysterious.

Jeremy Banks pointed out the following little snippet in https://meta.stackoverflow.com/content/js/full-a.js:

$.post("/clippy/get?id="+

So I decided to try /clippy/get?id=1 and received:

"It looks like you're trying to reverse-engineer the clippycorn. You're not getting any help with that."


Edit: I'm making some progress here - it seems that I need to make a POST request to the URL and pass along the fkey parameter. Doing this usually yields:

{
  "later": 1
}

...but every once in a while you'll get a different response. The response seems to be based on the id parameter. Here is the table of messages we have managed to construct so far:

  • 1: {"text":"It looks like you're downvoting some posts. Do you need help?","thanks":"Continue downvoting without help","options":[{"text":"Look at funny cat pictures to lighten the mood","link":"http://google.com/search?tbm=isch&q=lolcat"}]}

  • 2: {"text":"It looks like you're reading the FAQ. Would you like help?","thanks":"Read the FAQ without help","options":[{"text":"Read the FAQ about reading the FAQ","response":"I am sorry, there are no FAQFAQ at this time."}]}

  • 3: {"text":"It looks like you're searching for something. Want some help?","thanks":"Continue searching without help","options":[{"text":"Read the advanced search tips","link":"/search"},{"text":"Search on all sites in the Stack Exchange network","link":"http://stackexchange.com/search"}]}

  • 4: {"text":"It looks like you have undismissed notifications. Can I help you with that?","thanks":"Leave the notifications alone","options": [{"text":"Learn how to dismiss notification bars","response":"Click the \"x\" on the side of the notification bar to dismiss it.","thanks":"Thank you!"}]}

  • 5: {"text":"It looks like you would love an answer to this question. Would you like help?","options":[{"text":"Offer a bounty on this question","click":".bounty-link"},{"text":"Learn more about bounties","link":"/faq#bounty"}]}

  • 6: {"text":"You seem to use your global inbox a lot. Did you know you can check much older inbox items?","thanks":"The small list at the top of the page is just fine","options":[{"text":"Go to my inbox page","link":"http://stackexchange.com/users/YOUR_ACCOUNT_ID?tab=inbox"}]}

  • 7: {"text":"It looks like you received a good answer here, have you considered accepting it?","thanks":"I know what it means to accept an answer","options":[{"text":"Learn more about accepting answers","link":"/faq#howtoask"}]}

  • 8: {"text":"It looks like you came back after all! Welcome back.","thanks":"Thanks, great to be back","options":[]}

  • 9: {"text":"It looks like you like this site. Would you like to learn more?","thanks":"Just continue browsing around","options":[{"text":"Log in or create an account","link":"/users/login"},{"text":"Learn what this site is all about","link":"/faq"},{"text":"Discover other sites on the Stack Exchange network","link":"http://stackexchange.com/sites"}]}

  • 113: {"text":"It looks like you're mistaking me for a horse. Might I offer you some help?","thanks":"Continue without learning","options":[{"text":"Learn about the difference between ponies and unicorns","link":"https://i.sstatic.net/sQXLc.gif"}]}

  • 294: {"text":"It looks like you're asking about me. That's nice.","thanks":"Go on with asking","options":[]}

  • 6495: {"text":"It seems you're having trouble phrasing a good question title. Would you like some help?","thanks":"Continue asking without help","options":[{"text":"Learn about writing a good title","link":"http://meta.stackexchange.com/questions/10647/how-do-i-write-a-good-title"},{"text":"Get some tips on how to ask questions that get good answers","link":"/questions/how-to-ask"}]}

  • 22017: {"text":"It looks like you're asking about regular expressions. Do you want me to help you?","options":[{"text":"Get help parsing HTML with a regular expression","link":"http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454"}]}

  • 314159: {"text":"You might be spending a little too much time thinking about this prank. Would you like some help?","options":[{"text":"Yeah, I... I should answer some questions or something.","link":"http://stackoverflow.com/unanswered"}]}

  • 378212: {"text":"You appear to be hungry. Can I help you?","thanks":"I am not hungry","options":[{"text":"Learn how to cook a fish in a dishwasher","link":"http://cooking.stackexchange.com/questions/4708/is-it-possible-to-cook-a-whole-fish-in-a-dishwasher"},{"text":"Find out if microwaving food is bad for you","link":"http://skeptics.stackexchange.com/questions/528/is-food-cooked-in-a-microwave-oven-harmful-for-the-health"}]}

The 15 above were discovered while the prank was active. After it was disabled Balpha provided the message of the only missing one:

  • ???: {"text":"Looks like you @mentioned the post owner there. That's not necessary.","thanks":"Continue without help","options":[{"text":"Learn more about replying in comments","link":"/editing-help#comment-reply","dismiss":true},{"text":"Just tell me why the @mention was removed","response":"The post owner will always be notified of new comments, so you don't need to @mention their name.","thanks":"I see, thanks."}]}

According to balpha there were three additional user-specific messages included.

In addition to the triggers built-in to the client-side JavaScript, any ajax requests can return an X-Clippycorn header with one of these IDs to trigger a message. For example, if you're writing a post that seems to be about the joke itself, the background request to /posts/0/editor-heartbeat/ask will return the header X-Clippycorn:294.

Bonus: if you try an ID that is not used or is non-numeric, you receive one of the following HTTP status codes:

  • 437 Only Chuck Norris Can Request This Resource
  • 438 Only Chuck Norris And Jon Skeet Can Request This Resource
  • 442 Not A Real Question
  • 456 These Are Not The Unicorns You Are Looking For
  • 463 Hax0r Detected
  • 469 Status Declined
  • 477 Pluralization Bug
  • 480 Freehand Circle Expected
  • 481 Not Enough jQuery

Some more poking around revealed the following URLs:

enter image description here

I've created a fiddle for viewing the animations here: http://jsfiddle.net/george_edison/JkJxz/9/embedded/result/

The blue bullet () is embedded in the stylesheet.


Part of the JS has been de-obfuscated here: http://pastebin.com/N47agZzm

25
  • 1
    Did you try going through an international proxy before going through this pain, or are you so bored with your everyday work that you need a challenge?
    – M.Babcock
    Commented Apr 1, 2012 at 1:10
  • @M.Babcock It uses the client-side time. If you're lazy, you can probably just change your clock.
    – Jeremy
    Commented Apr 1, 2012 at 1:16
  • 49
    BE QUIET WE'RE DOING SCIENCE
    – Zelda
    Commented Apr 1, 2012 at 1:16
  • 2
    @JeremyBanks - <whisper>I hadn't considered that, and I'm too impatient to wait for it to appear in Central Time (US). I'll have to give that a shot. (note: I am in fact bored out of my mind with my everyday work)</whisper>
    – M.Babcock
    Commented Apr 1, 2012 at 1:20
  • Devs, you do not know how hard you just trolled a bunch of us in the TL
    – Zelda
    Commented Apr 1, 2012 at 1:24
  • 4
    @Ben we've got a pretty good idea. Commented Apr 1, 2012 at 2:06
  • Okay, I think we have everything. Anyone got any more?
    – Zelda
    Commented Apr 1, 2012 at 2:09
  • 3
    @Ben - I can neither confirm nor deny the existence of several other messages you'll probably never find. Commented Apr 1, 2012 at 2:46
  • @KevinMontrose: Anything to do with this? Commented Apr 1, 2012 at 2:59
  • @GeorgeEdison - No... more... twitter (insert your social network here)... it's content appears as brainless as my posts.
    – M.Babcock
    Commented Apr 1, 2012 at 3:03
  • @George - I can neither confirm nor deny that, yeah, it does. Commented Apr 1, 2012 at 4:08
  • 1
    I found another message. I didn't think to write it down, but it was something like "You seem to be spending a lot of time on this prank" and suggested that I answered some questions, with a link to the unanswered page on SO.
    – ughoavgfhw
    Commented Apr 1, 2012 at 5:11
  • 1
    @ughoavgfhw so.mrozekma.com/april-fools.png Commented Apr 1, 2012 at 5:17
  • 3
    @TwilightSparkle I looked at your avatar and now I'm addicted to LSD, thanks a lot
    – Zelda
    Commented Apr 1, 2012 at 15:39
  • 1
    @Rarity Here's a user script that will alert() and console.log() you if any X-Clippycorn headers are received, so we don't need to manually check more headers or anything.
    – Jeremy
    Commented Apr 1, 2012 at 20:19
28

The Clippycorn knows too much.

enter image description here

4
  • 4
    +1 I just got that one too. Seems like clicking through on several questions about the topic will do it.
    – Mysticial
    Commented Apr 1, 2012 at 5:19
  • 2
    @Mysticial It's even creepier when you've been digging in the code for the little guy
    – Zelda
    Commented Apr 1, 2012 at 5:35
  • 2
    You needed a unicorn to tell you that? Wow. Just .. wow.
    – user50049
    Commented Apr 1, 2012 at 15:42
  • There are two types of people on Stack Exchange: those who check "Don't bother me again" and those who obsess about the Clippy on meta no matter what it says. Why bother trying?
    – Anonymous
    Commented Apr 3, 2021 at 16:09
14

Well, I live in Portugal, so it's already April 1st here (it's now 1H42 AM here)... And I just got the "Clippy" April Fool's when doing a search for fgets "segmentation fault" in Stack Overflow! :)

Here's a screenshot for that epic moment.

screenshot

Have fun! :)

1
  • 16
    Moving to Portugal just to see Clippy seems excessive...
    – Dennis
    Commented Apr 1, 2012 at 4:06
6

enter image description here

Seen on physics meta, when I typed a title, Backspace'd most of it, and left it hanging for a second

That title is too short to be useful. Can you add some more detail? simultaenously popped up

Also: enter image description here

No clue why this came up, I switched to a dormant Physics.SE tab and clippycorn popped up.

4
  • 3
    This is the kind of thing that would actually be useful. Perhaps in less annoying form.
    – Cody Gray
    Commented Apr 1, 2012 at 11:39
  • @TheEstablishment: How are unicorns annoying? You go against the spirit of meta :P Seriously though, even I feel that this clippy-thing can be preserved, as long as it's made less microsoft-like (ugh). Commented Apr 1, 2012 at 11:46
  • Yes, the "Microsoft-like" thing is the annoying part. Paying homage to Clippy is a hilarious prank, not something we want to incorporate all the time. But helping people to write titles would be insanely useful.
    – Cody Gray
    Commented Apr 1, 2012 at 11:50
  • @TheEstablishment: Feature-requeste'd it: meta.stackexchange.com/questions/127737/… (sorry, couldn't resist) Commented Apr 1, 2012 at 12:01

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .