What is meta? ×
Meta Stack Exchange is where users like you discuss bugs, features, and support issues that affect the software powering all 134 Stack Exchange communities.

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.

share|improve this question
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...? –  U2744 SNOWFLAKE Mar 31 '12 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 Banks Mar 31 '12 at 23:58
    
What? How has other people seen it (I think I was in April before everyone else here) –  Benny Mar 31 '12 at 23:59
3  
i saw it on English SE, from other browser where i'm not logged in. –  c69 Apr 1 '12 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... –  uɐɯsO uɐɥʇɐN Apr 1 '12 at 0:07
    
@GeorgeEdison it's probably in the JS, so finding it that way doesn't seem likely –  Ben Brocka Apr 1 '12 at 0:11
    
@BenBrocka: Hmm... this calls for even more scrutiny... –  uɐɯsO uɐɥʇɐN Apr 1 '12 at 0:13
12  
@BenBrocka The April Fool's joke is that there is no April Fools's joke! –  jonsca Apr 1 '12 at 0:34
    
That is one hairy tongue –  random Apr 1 '12 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 Apr 1 '12 at 3:20
    
THAT IS ONE GOOD THING TO JOKE WITH ENJOY AND HARMLESS WITH ANOTHER –  Ghost Answer Apr 1 '12 at 3:22
15  
"So we've found your little code, devs, and we're finding the messages." -- Challenge Accepted. –  balpha Apr 1 '12 at 6:51
    
You haven't tried 42? 1337? (on a mobile device, can't hack POST :/ ) –  Manishearth Apr 1 '12 at 16:04
4  
@minitechη I don't know what you mean, I've always been this fabulous –  Ben Brocka Apr 1 '12 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 –  U2744 SNOWFLAKE Apr 1 '12 at 16:53

4 Answers 4

up vote 59 down vote accepted

This is indeed very mysterious.

Jeremy Banks pointed out the following little snippet in http://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":"http://i.stack.imgur.com/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

share|improve this answer
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 Apr 1 '12 at 1:10
    
@M.Babcock It uses the client-side time. If you're lazy, you can probably just change your clock. –  Jeremy Banks Apr 1 '12 at 1:16
47  
BE QUIET WE'RE DOING SCIENCE –  Ben Brocka Apr 1 '12 at 1:16
1  
@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 Apr 1 '12 at 1:20
    
Devs, you do not know how hard you just trolled a bunch of us in the TL –  Ben Brocka Apr 1 '12 at 1:24
4  
@Ben we've got a pretty good idea. –  Kevin Montrose Apr 1 '12 at 2:06
    
Okay, I think we have everything. Anyone got any more? –  Ben Brocka Apr 1 '12 at 2:09
3  
@Ben - I can neither confirm nor deny the existence of several other messages you'll probably never find. –  Kevin Montrose Apr 1 '12 at 2:46
    
@KevinMontrose: Anything to do with this? –  uɐɯsO uɐɥʇɐN Apr 1 '12 at 2:59
    
@GeorgeEdison - No... more... twitter (insert your social network here)... it's content appears as brainless as my posts. –  M.Babcock Apr 1 '12 at 3:03
1  
+1 for the jsfiddle –  Shyju Apr 1 '12 at 3:53
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 Apr 1 '12 at 5:11
1  
@ughoavgfhw so.mrozekma.com/april-fools.png –  Michael Mrozek Apr 1 '12 at 5:17
3  
@TwilightSparkle I looked at your avatar and now I'm addicted to LSD, thanks a lot –  Ben Brocka Apr 1 '12 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 Banks Apr 1 '12 at 20:19

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! :)

share|improve this answer
12  
Moving to Portugal just to see Clippy seems excessive... –  Dennis Apr 1 '12 at 4:06

The Clippycorn knows too much.

enter image description here

share|improve this answer
3  
+1 I just got that one too. Seems like clicking through on several questions about the topic will do it. –  Mysticial Apr 1 '12 at 5:19
1  
@Mysticial It's even creepier when you've been digging in the code for the little guy –  Ben Brocka Apr 1 '12 at 5:35
1  
You needed a unicorn to tell you that? Wow. Just .. wow. –  Tim Post Apr 1 '12 at 15:42

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.

share|improve this answer
2  
This is the kind of thing that would actually be useful. Perhaps in less annoying form. –  Cody Gray Apr 1 '12 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). –  Manishearth Apr 1 '12 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 Apr 1 '12 at 11:50
    
@TheEstablishment: Feature-requeste'd it: meta.stackexchange.com/questions/127737/… (sorry, couldn't resist) –  Manishearth Apr 1 '12 at 12:01

You must log in to answer this question.

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