Quack Overflow - Stack Overflow's take on April Fool!
At this point of time, somewhere in the world is April 1st, but not in the place, where I am writing this story! Spending most of the time on Stack Overflow, I just happen to notice something weird in the page. The Quack Overflow! It's a cute ducky in the bottom right of the page, asks if I need any help, which was rather weird.
I was thinking it might be a nasty plugin, but thinking about Stack Overflow and using the browser in Incognito mode, I thought, okay this is not a BHO (browser helper object) or my Chrome is hijacked (coz there's literally no way it can happen due to my environment setup). I began by clicking on the ducky. Something weird happened again.
Okay, fine, let me enable the microphone, but wait, what? I didn't get a request to enable or no sense of recording from my microphone device. At this point I was damn sure this is some kind of prank. But it showed me something like this!
I am totally sure about the fact that I haven't been giving any vocal input to the ducky and woah, seriously? Now I am more interested. So I thought of using the No option for the microphone. I was really surprised to get this.
With the magic of the internet, you can just explain your problem anyway!
What? Seriously? Now this is a real prank. Ha ha. After a few seconds of shouting, no matter if I had the microphone on or not, I get the below message, which makes me believe that the duck is really listening.
Then I started shouting, and for the sake of co-incidence, this ducky gave me a positive message like this:
Wow, so something really happened. I was waiting for something to happen, but all I got was a quack:
That was my ROFL moment. I knew from the beginning this is a prank and it proved as it's just going to behave the same way, no matter what I do. And I get this message:
Well, I would have clicked on the I hate this duck link but I was patient enough to see what's there. There was one important learning in this ducky prank, which was nothing other than Rubber duck debugging, which, as per Wikipedia says:
In software engineering, rubber duck debugging or rubber ducking is a method of debugging code. The name is a reference to a story in the book The Pragmatic Programmer in which a programmer would carry around a rubber duck and debug their code by forcing themselves to explain it, line-by-line, to the duck. Many other terms exist for this technique, often involving different inanimate objects.
Many programmers have had the experience of explaining a problem to someone else, possibly even to someone who knows nothing about programming, and then hitting upon the solution in the process of explaining the problem. In describing what the code is supposed to do and observing what it actually does, any incongruity between these two becomes apparent. More generally, teaching a subject forces its evaluation from different perspectives and can provide a deeper understanding. By using an inanimate object, the programmer can try to accomplish this without having to interrupt anyone else.
Regarding the no microphone needed, here's an excellent explanation by one of the answerers:
The duck in rubber duck debugging doesn't actually have to listen. The point is that you explain it and when you do that you'll understand the problem and arrive at a solution.
There was a funny answer from a moderator (may be a developer) too, about the non-enablement of the microphone:
Quack Overflow is a little hard of hearing. Her ears were damaged when she was flying too close to a hunter when his shotgun discharged. Also, she is just a bit paranoid of microphones so we never enable yours no matter what you click.
The lesson learnt is Quack Overflow says...
Whenever you’re stuck, rubber ducking is a powerful method for solving even the most difficult problems. Insights are often found by simply describing the problem aloud.
You can then either go for "I have another problem" which repeats the same thing over again or you could select "I hate this duck" so make the duck sorry to hear that and bid Goodbye, duck.
The duck is sorry to hear that, but it understands.
How to send the duck away?
While I don't know why you would like to remove the helpful ducky, here are the necessary steps.
Tell the duck 'goodbye'
You have to both "hate this duck" and say goodbye as can be seen in the source code:
$(".js-goodbye").on("click",function(){$.cookie("quack",1,{"path":"/","expires":3})
Only the last "goodbye" button will set the quack
cookie and therefore disable the duck. Keep in mind that you have to accept cookies from cdn.sstatic.net
, otherwise the change won't be permanent.
Scare it off programmatically
Alternatively, run the following code in your console:
$(".quackoverflow").hide() && $.cookie("quack",1,{"path":"/","expires":3})
You can also use this in a bookmarklet:
javascript:$(".quackoverflow").hide()&&$.cookie("quack",1,{"path":"/","expires":3})
But the duck haunts me on other sites!
Note that the cookie is site specific. You need to say goodbye on every site you visit. Alternatively, block the https://cdn.sstatic.net/Js/quack.en.js
script, which removes the duck entirely from your reality.
How to get the duck back once you hated it?
Oh gawsh! I accidentally bid good bye to the duck. I was not sure what I need to do to make it come back. Well, cookies make it come back!
According this answer I found out that a cookie is being stored once you hated the duck. Deleting the cookie gets the duck back.
Check your cookies
The duck saves a quack
in your cookies. Open your browser's cookie collection and remove the quack
cookie for the site where you want to re-enable Quack Overflow.
For example in Firefox, right click on an empty part of the page, choose "information", then "security" and "show cookies". There should be a quack
cookie with its value set to 1
for the sites where you disabled Quack Overflow. If you remove quack
, Quack Overflow gets re-enabled.
Bookmarklet / code
If you don't want to check your cookies manually, you can also run the following code in your browser's console:
$.cookie("quack",null,{"path":"/","expires":3})
This will unset the quack
cookie. Here's a bookmarklet:
javascript:$.cookie("quack",null,{"path":"/","expires":3})
Note that you will need to refresh the page afterwards.
Please take care when you follow the following guides, as wrong usage may make the Cookie Monster cry.
- Firefox: Delete cookies to remove the information websites have stored on your computer
- Chrome: Clear, enable, and manage cookies in Chrome
- Internet Explorer 6: Internet Explorer 6 (Win) - Clearing Cache and Cookies