Stack Overflow

For most of the ’90s, I was a part of TeamB—a group of volunteers who helped answer questions on Borland’s Compuserve forums.  I met a bunch of really great people doing that, got some free Compuserve time, a few trips to the Bay Area, and lots of Borland products.  But mostly, I learned a heck of a lot by helping to answer users’ questions.

When Borland, Microsoft, and other development tool companies moved their online technical support to the Internet, their support was mostly done through newsgroups, and I found the signal-to-noise ratio there almost unbearable.  Except for the moderated newsgroups, which were few and far between, asking a question was like talking to a wall.  Worse, even, because a wall won’t give you wrong answers or call you stupid for doing something different.  Even with the advent of forums rather than newsgroups, online technical help was virtually non-existent for a number of years and I just stopped trying.

Enter Stack Overflow, a free programming Q&A site where you can ask questions, share your expertise, or just browse for nuggets of programming wisdom.  Stack Overflow works.  In many ways it works better than the old Borland Compuserve forums that I enjoyed so much.

Why it works is simple: they’ve found a way to reward people for supplying good answers and, to a lesser extent, asking good questions.  It all has to do with reputation:  ego.  You gain reputation points for supplying good answers, and asking good questions.  “Good” is determined by a simple up- or down-votes by site users.  As you gain reputation points, you gain the ability to help moderate the site: re-tag questions, vote to close, edit questions, etc.  And your current reputation is prominently displayed beside your name.  There are also awards (“Badges”) given for a number of different things.

If you don’t care about reputation, that’s fine.  You can use the site anonymously and still ask, answer, and comment on questions.  But Stack Overflow works because a whole lot of people there do care about their reputations.  Giving more experienced users the ability to help moderate keeps the flaming and other invective to a minimum, and the constant peer review ensures that (in general) the higher-rated answers really are the best.

My only real complaint with Stack Overflow (and it’s not huge) is that the format doesn’t encourage an ongoing threaded discussion as was available on the Compuserve forums.  That’s not a problem in most cases, but there are times when arriving at a satisfactory answer requires much back-and-forth, and it’d be nice to see questions and answers displayed in threaded newsgroup fashion.  The ability to see answers ordered by date helps a lot, as does the comments feature, and I suspect that adding a threaded view would be of only limited additional help.

Despite a few nitpicks, I’m seriously impressed with Stack Overflow.  If you have a programming question on any topic, you should search for the answer there.  And if you don’t find it, ask.  You’ll probably be surprised at the speed and the quality of the answers you get.

Recognizing rare coins

My dad’s mother was a coin collector.  When I was seven or eight years old, she bought me a Whitman folder to fill with pennies from 1941. Grandma Mischel taught me to always check my change for pennies that I needed to fill my book, and also for certain other coins (for example, dimes, quarters, and halfs minted before 1964, because they contain 90% silver).

For those difficult-to-find coins needed to fill my penny book, she suggested that I go to the bank and buy several rolls of pennies. That worked, although I probably went through 20 rolls before I got all the coins I needed. Filling the non-labeled spots in the book (probably four years’ worth–up through 1975) was trivial. I just had to wait a few years.

When she was younger my grandmother would go through her change periodically and pick out the interesting ones. She apparently stopped doing that at some time. When she passed away, she left many jars full of coins. As I recall, a sampling of the jars showed that most of the coins were worth no more than their face value and the jars were sold by weight. Some collector ended up with thousands of coins that he had to sort through, by hand, to find the few that had any numismatic value.

Looking at my own change jar (Debra and I throw all of our change into a vase and then cash it in once it’s full), I got to wondering about whether there are any valuable coins in there. I know there are a few coins that would carry a small premium (for example, a one-cent piece minted before 1959–a “wheat penny”–is typically worth two to five cents), but it’s unlikely that there are any coins that would carry a huge premium.

could go through the coins manually and extract those few that are worth more than face value, but it’s a terribly tedious task, and I’d probably miss a few either through inattention or because I’m not a collector: I don’t know enough to know which coins I should be interested in. For example, until yesterday I’d never heard of the Wisconsin quarter error or the 1995 double-die Lincoln cent

Coin sorters have been around for decades, but most are purely mechanical devices that sort based on size. I got to wondering if it’d be possible to create a coin recognizer that could look at a dime, say (identified as a dime by a coin sorter, most likely), and determine if it’s a Mercury dime or a Roosevelt dime, and read the mint date.  Based on the type and date, the machine could put the possibly rare coins in a different slot.  All of the common coins would get bagged or rolled.

There’s been some research on image-based recognition of ancient coins in an attempt to prevent or at least diminish the trade in stolen coins, and I found another paper called Classification of coins using an eigenspace approach, but I haven’t found anything commercially available.

How hard would it to be to build such a thing?  How quickly could it classify coins?  It’d be a very interesting project to work on, and it’s kind of fun to contemplate the possibilities, but would this device be practical?

Music everywhere

One of the benefits of what I’m doing for work (we’re building a media search and discovery site) is that I find all kinds of different music all over the Web. Sure, there’s lots of commercial music out there that shouldn’t be, but it’s a relatively small part of what’s there. The crawler’s incredible breadth has allowed me to find lots of new (to me) music from many independent artists who post samples or full songs on their Web sites. They know that their biggest problem is getting people to discover them. Piracy is a problem only for hugely popular artists. Small artists’ biggest enemy is obscurity.

A good example is guitarist and composer Randy Ellefson, whose music I discovered on an instrumental podcast. I’ve become quite a fan of his music (I like early ’70s rock,  which his music resembles), and I’m impressed by the way he’s making his music available. He allows podcasters (with permission) to feature his songs in their podcasts, and he also makes some of his songs available on his Web site. For example, he’s released two albums. On his main page, you can listen to four full songs from each album. There are also links where you can download a half dozen songs: three from each album.

Randy Ellefson, like many independent artists, understands that giving away a few full tracks encourages people to buy the rest. He also accepts PayPal as well as credit cards, so purchasing his music is incredibly convenient. If more artists made their music as easy to find and buy, we wouldn’t need the big record companies.