On programming: Bugs

In the previous post I said 6 yes/no questions would suffice to identify one of the 52 cards in a deck of cards, and outlined an answer based on the deck having four suits, each with 13 cards.

But I was assuming you were holding a “standard” set of playing cards. My first question should have been, “Is this a pinochle deck?”

A pinochle deck has 52 cards in four suits. But there are duplicate cards. Only the 9, 10, jack, queen, king and ace are used. That gives four suits with 6 kinds, or ranks, of cards in each. It takes 2 questions for the suit, 3 for the rank, for a total of 5 questions.

In discussing the card-identification problem we have moved from mathematics to the world of programming. The process I described above for identifying the cards is called an algorithm. To program is largely to design and implement algorithms.

And as noted there is a fault in the algorithm I gave. There’s even a special word used by programmers to describe this: bug.

The origin of the term dates to Thomas Alva Edison, the famous inventor. The cited Wikipedia article includes the following quote from Edison:

Software bug

It has been just so in all of my inventions. The first step is an intuition, and comes with a burst, then difficulties arise—this thing gives out and [it is] then that “Bugs”—as such little faults and difficulties are called—show themselves and months of intense watching, study and labor are requisite before commercial success or failure is certainly reached.

I first learned of the assocation between Mr. Edison and “bug” back in the early 1970’s when the Supplement to the Oxford English Dictionary came out. I just tried to find the definition, only to learn you have to pay the OED folks $300/year for an individual account. However, I committed most of the reference to memory when I first read it, as it is such a charming story. As best as I can recall the first written use of “bug” in the sense we are using it here was in the Pall-Mall Gazette:

Mr. Edson, I was informed, was up late the previous night looking for a “bug” in his phonograph, an expression for a difficulty implying that some insect has secreted itself inside and is the cause of the difficulty.

Bugs are the bane of programmers. The good news for WordPress bloggers is that I haven’t run across many in my months of using WordPress, though I think I found one recently. Actually it’s more a design flaw than a bug. I posed a puzzler about it a few posts back. I’m still hoping the WordPress folks take a crack at guessing what it is.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

  • Pages

  • November 2006
    M T W T F S S
    « Oct   Dec »
  • RSS The Wayward Word Press

  • Recent Comments

    mrrdev on On being the maintainer, sole…
    daveshields on On being the maintainer, sole…
    James Murray on On being the maintainer, sole…
    russurquhart1 on SPITBOL for OSX is now av…
    dave porter on On being the maintainer, sole…
  • Archives

  • Blog Stats

  • Top Posts

  • Top Rated

  • Recent Posts

  • Archives

  • Top Rated

  • %d bloggers like this: