Me and My Ninja Ducky

Rubber Ducky Debugging

I was recently introduced to the software debugging practice known as “rubber duck debugging” (I credit this indirectly to this Reddit post).  It’s an incredible methodology with an extremely low barrier to entry – all you need is a rubber ducky. Seriously, all you need is a plastic floatable duck, the one we all know and love (or better yet a ninja rubber ducky). You might be asking yourself, “What can an inanimate floating bath tub toy do for my software?” The truth is that ducky could save you hours of pain and suffering and maybe even earn you a couple of uncomfortable stares from your co-workers.

So How Does This Work?

1. Buy a rubber ducky from Amazon (what don’t they sell?)
2. Place ducky on your desk facing you
3. Explain (out loud) your buggy code or algorithm to your ducky
4. Laugh out loud when your ducky finds the bug

So Why A Rubber Ducky?

Why not? Plus you feel pretty bad-ass when you’re coding with a Ninja Rubber Ducky. Honestly, all you need is a sounding board to sort your code out. It’s pretty easy to get the blinders on when you crank out a couple hours worth of software – from time to time you’ll notice that your brain and your typing don’t align, especially when fatigue sets in. If you are forced to explain your code to someone (even your rubber ducky), you’ll easily find the places where your intended functionality does not match the code you wrote. By using the rubber ducky instead of a busy co-worker, you can sort through the obvious problems without needlessly disrupting the workflow of your company.

Funny thing is I’ve been doing this for years, just not so formally. I am always more effective after the 9 to 5’ers have stepped out because I tend to talk to myself, Mr. Compiler, or Mrs. Computer when I write software. Now I feel open to talk during normal business hours because I’m talking to someone, my rubber ducky. I haven’t decided if it’s more bizarre to be talking to myself or a rubber ducky – regardless, the ducky definitely adds some personality to the discussion.

Egg Timer

This video is a quick demo of a kitchen timer that we developed with Peter Gleason of Red Visor Designs (www.redvisordesigns.com). Peter came to us with a vision for a kitchen timer that would have a clean, elegant design and be extremely simple to use. Though egg-shaped kitchen timers have been around for a while, his design concept was to strip the idea down to its bare essentials – a button, a display, and a buzzer.

The single button can be used to set, start, or stop the timer. The display tells you how much time remains or, if the timer has already gone off, how much time has elapsed since then. The color of the back-light tells you at a glance whether the timer has a while to go (green), is about to go off (yellow), or has already gone off (red). And, the small size and graceful design (nice work, Peter!) make the device unobtrusive and at home on a crowded counter top.

Development of the prototype in the video took place in under 2 weeks, with Peter responsible for the product design and mechanical prototyping and Pocobor handling the electronics and software. Another example of a quick but thoroughly enjoyable project!