« PREVIOUS ENTRY
This robot cat is creeping me out
NEXT ENTRY »
“Gription”
Danny O’Brien, the publisher of the way-kewl NTK newsletter, has been writing this hilarious algorithm of how to wash dishes:
Washing
The Current Item and the Queued Item are both washed. This involves completing a series of acts. The item has not been cleaned unless all of these acts have been completed. Some acts may be performed on a Queued Item, some acts may be performed on the Current Item, some may be performed on both. Acts vary according to the item. Acts should follow the order in which they are listed.
Cutlery
1. Dipped and shaken under basin water - Queued, Current
2. Areas of uncleanliness observed - Queued, Current
3. Unclean areas scrubbed clean - Current
4. Re-dipped - Current
5. Rinsed under cold tap - CurrentPots, Pans, Cups, Mugs
1. Dipped and shaken under basin water - Queued, Current
2. Areas of uncleanliness observed - Queued, Current
3. Handle (if any) of item scoured - Current
4. Outside bottom of item scoured - Current
5. Outside sides of item scoured - Current
6. Inside bottom and sides of item scoured - Current
7. Remaining unclean areas scrubbed clean - Current
8. Re-dipped - Current
9. Rinsed under cold tap - CurrentMain Program
1. Clean basin.
2. Fill basin with hot water. When almost full, add detergent.
3. Now drop five to ten pieces of cutlery from the Pile into the basin (depending on size and dirtiness). This will form your initial Soaking Stack
4. Apply General Rules continuously until all items are on the Draining Board
I love this stuff. This is exactly the kind thing I use when I explain to people why programming can be so hard, and why so many bugs exist. Because when you’re trying to describe how to do a task with total precision — which is what programmers have to do to computers — it’s almost impossible to think of everything. Eventually you forget to account for something, your program runs into something unexpected, and bang … it crashes. Bugs exist because the programmer assumes the computer, or the user, will “know” a piece of supposedly “commonsense” knowledge. But computers don’t know anything, and frequently, neither do users.
This is one reason that programmers sometimes have a weird contempt for users. Because to produce a bug-free program, they have to think about every single possible dumb-ass thing a user might do — including some very dumb things. Will the user try to hit a bunch of keys during a download? Will the user click the mouse on a few random buttons while the machine is trying to execute something? Essentially, the programmer trains himself to think of the user as a complete and total imbecile, who will screw everything up given half a chance. This isn’t because they’re mean. They have to think like this; it’s the only way to do their jobs well.
Sound cynical? Well, go back to that list of dish-washing commands. They all seem so blatantly, hilariously, almost annoyingly clear, right? As if they were written for an incredibly dumb child? Well, that’s how programmers have to think about the potent combination of a user and a computer: An incredibly volatile system that needs to be treated like a toddler.
Granted, not all programmers transfer this social formula to everyday life; they’re not always (or even very frequently) the inept nerds pop culture paints them to be.
But on the other thand, ever wondered how Bill Gates became such a strangely domineering, socially damaged freak? Wonder no more.
I'm Clive Thompson, the author of Smarter Than You Think: How Technology is Changing Our Minds for the Better (Penguin Press). You can order the book now at Amazon, Barnes and Noble, Powells, Indiebound, or through your local bookstore! I'm also a contributing writer for the New York Times Magazine and a columnist for Wired magazine. Email is here or ping me via the antiquated form of AOL IM (pomeranian99).
ECHO
Erik Weissengruber
Vespaboy
Terri Senft
Tom Igoe
El Rey Del Art
Morgan Noel
Maura Johnston
Cori Eckert
Heather Gold
Andrew Hearst
Chris Allbritton
Bret Dawson
Michele Tepper
Sharyn November
Gail Jaitin
Barnaby Marshall
Frankly, I'd Rather Not
The Shifted Librarian
Ryan Bigge
Nick Denton
Howard Sherman's Nuggets
Serial Deviant
Ellen McDermott
Jeff Liu
Marc Kelsey
Chris Shieh
Iron Monkey
Diversions
Rob Toole
Donut Rock City
Ross Judson
Idle Words
J-Walk Blog
The Antic Muse
Tribblescape
Little Things
Jeff Heer
Abstract Dynamics
Snark Market
Plastic Bag
Sensory Impact
Incoming Signals
MemeFirst
MemoryCard
Majikthise
Ludonauts
Boing Boing
Slashdot
Atrios
Smart Mobs
Plastic
Ludology.org
The Feature
Gizmodo
game girl
Mindjack
Techdirt Wireless News
Corante Gaming blog
Corante Social Software blog
ECHO
SciTech Daily
Arts and Letters Daily
Textually.org
BlogPulse
Robots.net
Alan Reiter's Wireless Data Weblog
Brad DeLong
Viral Marketing Blog
Gameblogs
Slashdot Games