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?
- Should you rely on third party libraries, or "find the dependencies and eliminate them"?
- 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?"
- Martin: "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.
The transcript wiki for this episode is available for public editing.