Archive for September, 2008

Our heartfelt thanks to all the software developers who so patiently helped us test the site during the private beta. You are the true heroes of this project, contributing your time in creating over 8,500 questions in a month and a half — not to mention putting up with our bugs and errors. Your beta badges are forthcoming.

We’ll see how long Stack Overflow manages to stay up now that it’s in public view. We did some last minute caching and optimizations that should help.

I thought these guidelines were straightforward, but they haven’t stopped anyone from asking anything they damn well please. Every time I visit the site, I half expect to see “How do I make a peanut butter and jelly sandwich?”

If you’re wondering what’s so special about Stack Overflow, the answer is — well, nothing, really. It’s a programming Q&A website. The only unusual thing we do is synthesize aspects of Wikis, Blogs, Forums, and Digg/Reddit in a way that is somewhat original. Or at least we think so.

Stack Overflow is that tiny asterisk in the middle, there.

But hopefully you’ll see what I mean when you experience it for yourself.

This is the twenty-first episode of the StackOverflow podcast, wherein Joel and I discuss the following:

Road trip! The Stack Overflow team will be visiting the Fog Creek offices in New York City from Wednesday, September 24th to Sunday, September 28th. Hopefully Joel and crew will be completely moved in by the time we arrive.

We’re planning to launch the Stack Overflow website to the public on Monday, September 15th.

As a fake plastic rock enthusiast, there is another big item launching this week: Rock Band 2! It’s scheduled to appear Sunday September 14th. We purchased a complete set of fake plastic rock equipment, centered on Rock Band 2, to outfit the new Fog Creek offices and celebrate the newly public website.

I continue to believe game programming may be the most challenging and unforgiving kind of programming — as famously documented by one spouse in 2004. How do you optimize for “fun”?

Joel describes it as a “big universe of dumb programmers”, where Stack Overflow is (intended to be) an amplifier of the small bits of signal that come out of that supernova of mediocrity. We’re part of it too!

On the myth of expertise: fields of expertise in programming are very narrow, and it’s remarkable how quickly you get off the beaten path, into techniques and apporaches that almost nobody else is trying.

How do you deal with users who set out to grief your system? Rather than outright banning or blocking, Joel proposes silently hiding that user’s content from the world, in a way that is only visible to other users. As described in our previous podcast, the silent treatment is an incredibly powerful technique.

“You’ve got a bunch of people playing Chess, but certain people want to play ‘throw the chess pieces all over the park’ — and from there it becomes a sort of wrestling and fighting game.” I can’t go to sleep — someone is wrong on the internet!

One of our ‘playful’ users created giant posts by entering an amusing picture of Joseph Ducreux a hundred times, so I changed the name of his account to that. Generally these kinds of posts automatically get deleted by the community when they reach the ten vote offensive threshold — or they could be edited away by trusted users — but I stepped in as a moderator.

The paradox of griefing is that these users are highly engaged with the system. Most people don’t care and won’t bother. So spending a lot of time gaming the system means you must like it on some level. If you’re not careful you will turn these semi-engaged users into active and purposeful enemies. Joel proposes that users with a historical record of creating problem posts automatically get their content filtered to the bottom of the pile. He draws a comparison with bartenders not dramatically cutting off drunks, but serving them non-alcoholic drinks that look exactly like real drinks.

Incentives, like the badge system we use in Stack Overflow, despite being completely arbitrary, can have actual meaning in measuring and showing off your accomplishments. On the other hand, if you’re not careful, you can end up with something like the despised Microsoft Ship-It awards.

p.s. The Conversations Network, a not-for-profit organization which hosts our podcast, is looking for sponsors for their podcasts, including this one. It would be a very modest, NPR-style intro at the beginning… “The StackOverflow Podcast is brought to you by Gummy Bears, Inc., bringing fine chewy treats to grubby children everywhere.” If your company might be interested in sponsoring the podcast and becoming a hero to developers worldwide, or at least the eight developers who listen to the podcast, please email Joel.

We also answered the following listener question:

Clay Nichols of Bungalow Software “Did the badge idea come from Joel’s experience in the Isreali military, or from Jennifer Aniston in Office Space?”

If you’d like to submit a question to be answered in our next episode,
record an audio file (90 seconds or less) and mail it to podcast@stackoverflow.com. You can record a question using nothing but a telephone and a web browser.

This is the twentieth episode of the StackOverflow podcast, wherein Joel and I discuss the following:

We figured out our deadlock problem, finally. It had to do with Log4Net being called during a database operation, itself triggering another database operation and log event. This is normally OK, but the events were happening so close together that it resulted in a deadlock.

Our new stackoverflow.com launch date is next week, as diagnosing the deadlock set us back at least four or five days.

What’s your logging philosophy? Should all code be littered with .logthis() and .logthat() calls? Or do you inject logging after the fact somehow?

Having the source can make the difference between a dependency that works for you, and one that works against you. This is the great strength of taking dependencies on JavaScript libraries from the web — you can always View Source. Perhaps this is why JavaScript is the Lingua Franca of the web, and increasingly the language young people will grow up programming.

One way we know Stack Overflow is already successful — someone created a blog dedicated to hating Stack Overflow! If you can’t get people to care one way or another about what you’ve done, you’ve definitely failed.

When it comes to trolling, the most powerful countering technique at your disposal is to not pay attention to it. Which we have failed to do. My favorite literary interpretation of this is “the silent treatment” from the Great Brain book series which I read and loved as a child.

We have implemented the transition point between traditional discussion board post ownership and wiki-style group ownership. The transition is forced when there are (n) edits by (n) users, or if there are (n) edits by the post owner. This rule also helps discourage people from bumping their posts by continually editing them, and reduces the perception of reputation gaming from people who try to build a large, collaborative post incorporating the comments of others.

Asking good questions is difficult. There’s an art to constructing a question that appeals to your target audience, yet isn’t an overt attempt to pander and farm attention.

Joel’s biggest problem, besides dealing with New York City landlords, is getting people to not do what he says just because he says so as their CEO and boss. Joel, as the big picture CEO, rarely has all the information necessary to make good, tiny, local decisions. That’s your job!

There are tons of existing web Q&A sites that we derive inspiration from, but we believe our more focused and directed programmer audience is what makes the difference. When the audience is very large and broad, you’ll end up with things like the baby daddy question and the Georgia tanks question.

The current beta is definitely working, in that people posting questions are getting good answers and fairly quickly — as you can see from Sara Chipps’ report.

Joel is in Boston at his Business of Software 2008 conference which is going on now. Joel is thinking up an introduction for Richard Stallman, who by any measure is a legendary figure in the software community.

There’s a filmmaker on site at the conference, filming footage to be incorporated into a sequel to Project Aardvark in about a year or so. However, this will be a more technical look at how software is developed at Fog Creek and perhaps a primer on some tenets of good software development.

We also answered the following listener questions:

Trey Jackson: “Why doesn’t Jeff listen to Joel? How do you keep people interested in answering questions on Stack Overflow when the volume goes up?”

Martín: “What in your experience or background has been most useful while building Stack Overflow?”

If you’d like to submit a question to be answered in our next episode,
record an audio file (90 seconds or less) and mail it to podcast@stackoverflow.com. You can record a question using nothing but a telephone and a web browser.