The Stack Overflow Podcast show

The Stack Overflow Podcast

Summary: Hosted by Joel Spolsky, Jay Hanlon, David Fullerton, and Ilana Yitzhaki, The Stack Overflow Podcast lets you listen in on discussions and decisions concerning the world's largest developer community. About Stack Overflow: Founded in 2008, Stack Overflow is the largest, most trusted online community for developers to learn, share their knowledge, and build their careers. More than 50 million professional and aspiring programmers visit Stack Overflow each month to help solve coding problems, develop new skills, and find job opportunities.

Join Now to Subscribe to this Podcast
  • Visit Website
  • RSS
  • Artist: The Stack Overflow Team
  • Copyright: Copyright © Stack Overflow, 2019

Podcasts:

 Podcast #30 | File Type: audio/mpeg | Duration: Unknown

This is the thirtieth episode of the StackOverflow podcast, where Joel and Jeff sit down with Richard White of uservoice.com. Richard worked as the user interface guy on calendar startup Kiko.com; UserVoice was originally inspired by Richard's work on Kiko, as a hybrid of Reddit and FogBugz. There are some thematic similarities between Dell's IdeaStorm and My Starbucks Idea and UserVoice -- to some degree, UserVoice is users voting on the direction your software should take. Does software democracy work? UserVoice isn't just for software -- there's also Obama CTO and Rebuild The Party. This generated huge load and traffic, so if nothing else it was a good scaling test. The usual item has a maximum of 50 comments; one suggestion had 980 comments. Our use of UserVoice is a bit anomalous; I prefer to (politely) decline requests that I think we won't get to. Is it more honest to let reasonable requests like this one languish in the system for literally years, ala Microsoft's Connect, then to find out that they've been set to "wontfix" after 3 years? As a user myself, I find this behavior abhorrent. We do plan to talk a bit less about building Stack Overflow and a bit more about our favorite questions on Stack Overflow. Joel's favorite Stack Overflow question this week is What Tricks Do You Use to Get Yourself "In The Zone"? UserVoice is a Ruby on Rails app, with approximately 6,000 lines of code. A large portion of that is unit tests. Jeff's favorite Stack Overflow question is What is an NP-Complete Problem. This is a followup to the blog post where I demonstrate a sadly incomplete understanding of the concept of being NP-complete. Joel notes that there are harder problems than NP-Complete, namely the halting problem. There's a great Stack Overflow question on this, The Halting Problem in the Field There are a lot of very hard problems in computer software that aren't necessarily NP-complete -- and we've had limited success "solving" them, such as speech and voice recognition. Furthermore, if the best algorithm we can come up with is something like n-cubed, is that a realistic solution? UserVoice will be using Jan Rain's RpxNow to implement OpenID. We wondered how myopenid.com would make money; their RpxNow service is the answer to that question. Now uservoice can mark that item off their own uservoice page -- it's the #2 most requested feature by customers of User Voice. We also answered the following listener question: Chris Conway: "After 26 episodes of the podcast, will you ever take a turn to less self-reflexive discussion?" 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. We also have a dedicated phone number you can call to leave audio questions at 646-826-3879. The transcript wiki for this episode is available for public editing.

 Podcast #29 | File Type: audio/mpeg | Duration: Unknown

This is the twenty-ninth episode of the StackOverflow podcast, wherein Joel and I discuss the following: The downside of being a PC gamer: it's prime game release season. My productivity last week was nil due to the release of Fallout 3, as I discuss on my blog. But it was totally worth it. One videogame cliche is the levels filled with random barrels and crates as filler. The classic game site Old Man Murray used to rate games on how quickly you saw a crate after starting the game. And then there was the Quake 2 mod where you played as a crate .. in a room full of crates! Surreal. I've always wondered if Joel was a gamer. Apparently he played Call of Duty 3 and 4, which bring him back to his days as an Israeli Army infantryman. Also, Bioshock, which is outstanding. At least he has good taste. Joel wonders why we don't use Google search as the primary search method on Stack Overflow. Of course it is possible to search Stack Overflow with Google using the "site:" specifier, as long as you scope to an appropriate "folder". Currently we offer Google as a search alternative when no results are found. I still think both search methods are desirable, because we can search by user, by tag, and so forth. My first organic hit on Stack Overflow based on a coding search was this question about using Beautiful Soup in IronPython under C#. One of Joel's favorite Stack Overflow questions this week is Coding In Other Spoken Languages. The discussion is great, but it does beg the question -- as much time and money as companies spend localizing software, why don't we localize programming languages? Joel points out that the Excel macro language is perhaps an exception, as the function names are localized. This is quite rare, but there are non-English based programming languages out there. Joel has literally written the book on hiring great programmers -- Smart and Gets Things Done. In this podcast he examines a few guidelines from the Fog Creek hiring practices. One of those is having an intern program that is second to none. I was definitely impressed when I visited. Did I mention that they have fully catered lunches every weekday? Also, don't forget that the interview process is your opportunity to judge the company that wants to hire you. If they don't have a good interview process, do you really want to work there? The amount of information you are faced with as a developer is overwhelming, with more new stuff arriving every day. How do you keep up with information overload? I recommend "Just In Time" learning. Joel highlights the difference between the early days of Java and today, now that Java has grown into something of a monster. Is .NET on the same path? We also answered the following listener questions: Jonas from Sweden: "Can you expand on what characteristics a good programmer should have? When hiring, how do I get them to tell me what makes them a good programmer?" Idriss Selhoum: "How do you feel about Microsoft releasing new .NET versions so rapidly, and fragmenting the developer base?" 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. We also have a dedicated phone number you can call to leave audio questions at 646-826-3879. The transcript wiki for this episode is available for public editing.

 Podcast #28 | File Type: audio/mpeg | Duration: Unknown

This is the twenty-eighth episode of the StackOverflow podcast, where Joel and Jeff discuss Windows Azure, SQL Server 2008 full text search, Bayesian filtering, porn detection, and project management -- among other things. Jeff met the inestimable Joey DeVilla aka Accordion Guy at PDC, who challenged him to pronounce Azure as in "Windows Azure". My pronunciation reference for Azure is entirely based on the word appearing in the movie A Clockwork Orange. Joel and I greatly enjoyed Corey Trager's Jeff Atwood is Trying to Kill Me. We do try to exploit the Jewish / Goyish dynamic. Also, Jeff is sorry he tried to kill you, but glad you survived to write that highly entertaining article. We are still struggling with SQL Server 2008 full text search issues. And yes, we have engaged with the SQL Server team on this. Joel's Inc. magazine article about Stack Overflow is now on newsstands (it's the issue with Kevin Rose of Digg on the cover). The article is also online as well: How Hard Could It Be? The Unproven Path. We have worked closely with Brent Ozar, who has singlehandedly took it upon himself to be our Stack Overflow database ninja. He's gone far, far beyond what I would ever expect a volunteer to do -- so we've added him as an official member of our virtual team. And if you need SQL Server expertise, Brent is your man. Microsoft finally fixed their bizarre position on hotfixes. Instead of the bad old days of mandatory phone calls and requests, you can simply download the hotfix you need. One limitation of Linq to SQL is that it does not support any SQL Server full text search predicates. Fortunately, we can freely intermix SQL strings and Linq syntax as much as we like. Joel points out that Google uses Bayesian filtering the way Microsoft uses an if statement. We worry that Microsoft doesn't adapt their software well enough to the wider internet world, as demonstrated by the radically differing approaches to spellcheck from both companies. We aren't clear what the purpose of Microsoft's new "Oslo" or M modelling language, announced at PDC, is. More domain specific languages? Every developer becomes a language designer? Why does that scare me a little? Ray Ozzie made specific reference to "architecture astronaut" at PDC, which is extra humorous because Joel was referring to Ozzie when he coined the term. Joel remembers Hillel Cooperman, who used to be a star at Microsoft, but now works for Jackson Fish Market. One Stack Overflow question we enjoyed this week: Showing too much 'skin' detection in software. The definitive debunking of this technique is from Dan of Dan's Data, who reviewed PORNsweeper in 2000. We don't believe the technical landscape has changed since then. Great discussion on Stack Overflow as well. Joel refers to the famous 1994 memo from Steve Sinofsky -- Cornell is WIRED! Steve started as Bill Gates' assistant, and now he's in charge of Windows 7 after shipping Office 2007. Another Stack Overflow question we enjoyed this week: What do project managers do all day? We're not sure why the owner keeps deleting this question, as we think the answers have a lot of value. Joel also has a lot to say on the general topic of project management. 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. We also have a dedicated phone number you can call to leave audio questions at 646-826-3879. The transcript wiki for this episode is available for public editing.

 Podcast #27 | File Type: audio/mpeg | Duration: Unknown

This is the twenty-seventh episode of the StackOverflow podcast, where Joel and Jeff interview Alexis "kn0thing" Ohanian and Steve "spez" Huffman, the founders and co-creators of Reddit. Jeff is at the Professional Developers' Conference in Los Angeles. He co-presented a session with Phil Haack on ASP.NET MVC, which you can view online if you are so inclined. Also while at PDC, Jeff participated in a brief roundtable meeting with Ray Ozzie, who had some completely unsolicited and very positive things to say about Stack Overflow! If you didn't know, Joel was the genesis of one of the earliest branded reddits -- the Joel on Software reddit. We discuss the Reddit switch from Lisp to Python, and the way Reddit stored raw user passwords in the database. We use a weighting algorithm based on Reddit's when we calculate "hotness" in Stack Overflow. Reddit, like us, ran for quite a while on a single server. Moving to a second server, splitting the database, provided solid gains for Reddit and is something we just did as well. According to Steve, splitting off the database is easy -- making sure you can scale to multiple application web servers is the difficult part, because of shared state caching. Steve is a big fan of HAProxy which is a single software load balancer in front of all ~20 Reddit servers. Reddit's first big partner is The Independent, for branded content. Although there is also WeHeartGossip. Joel and I feel these sorts of communities -- to be truly successful -- need personalities associated with them that are emblematic of the values and goals of that community. We briefly discuss some of the protection mechanisms Reddit has in place to prevent abuse and spammers. Steve and Alexis have much more experience dealing with abusive users than we do. Per Steve, the Reddit mantra is "anything goes", so they try to do as little as possible to inhibit users. We generally agree that the volume of badness is remarkably small. Most users behave responsibly -- and this isn't just an optimistic opinion, it's based on actual data. That's the good news! Behold the power of the Reddit audience: they may just have saved the world by sending a crowbar to the CERN Hadron collider. 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. We also have a dedicated phone number you can call to leave audio questions at 646-826-3879. The transcript wiki for this episode is available for public editing.

 Podcast #26 | File Type: audio/mpeg | Duration: Unknown

This is the twenty-sixth episode of the StackOverflow podcast, where Joel and Jeff answer five listener questions, mostly about social software design. Warning: this podcast features cowbell. Really. Christopher Leary: "Any thoughts on the general design of karma and rep systems based on your experience building one for Stack Overflow?" Michael L Perry: "What about a system where votes by people who have more reputation count more?" Jeff Metzner: "If I post personal anecdotes as an answer to a question, is it reasonable for other users to edit that?" Anonymous: "Why can't we ask IT questions? What about a sister site like Stack Overflow but for IT questions?" Miles Dennis: "For a cost-conscious startup, where do you see the balance between taking inexperienced staff that costs less, versus experienced staff that costs more?" 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. We also have a dedicated phone number you can call to leave audio questions at 646-826-3879. When calling the audio phone number, be sure to leave your name, so we can properly cite you when we answer your question. The transcript wiki for this episode is available for public editing.

 Podcast #25 | File Type: audio/mpeg | Duration: Unknown

This is the twenty-fifth episode of the StackOverflow podcast, where Joel and Jeff sit down with the ineffable Steve Yegge, who you may know from his excellent and extremely popular blog Stevey's Blog Rants. Steve worked for Amazon and currently works for Google. Steve proposes we use the Muppets Show theme as our podcast theme song. I'm more amenable to "The Touch" as featured in the Transformers the Movie from 1986. We ask how Google maintains its culture in the face of an army of new hires entering the company every month. Steve is, to put it mildly, a language maven. He shares some of his perspectives on language aesthetics. Should languages be designed by committee, or by a benevolent dictator? If Steve could teach every developer one thing, it wouldn't be how to type, or how to write -- but how to market. Google has an infrastructure in place to support "mini-startups" within the company. Joel thinks all good startups must have ideas that sound terrible. YouTube is a great example, as is the Flip video recorder. Being an entrepreneur often means spending a lot of your time not programming. This can be challenging for software engineers who love to code. Make sure you know what you're signing up for if you go this route. Steve is a big believer in the Google experience, even though his last three projects have been cancelled "for business reasons". Instead of Joel's "Smart, and Gets Things Done", Steve proposes "Done, and Gets Things Smart." How much does choosing the "right" programming language matter? Isn't the variance between programmers far more significant to the end result? On the other hand, the best programmers often tend to be fluent in multiple languages. One way to drag the "one horse language" programmers into multiple languages is to support sublanguages within the same runtime, ala IronPython, IronRuby, Jython, and JRuby. Steve is considering porting his game Wyvern to Android. He can't talk about his current full time project at Google, but he does fess up to owning it -- both from the business side and the engineering side. So if this time it's cancelled, we really know who to blame. Steve: "You can't write about anything interesting without making a bunch of people mad.", "Everything you say can be quoted out of context 500 years from now." One of my very favorite Steve Yegge posts is You Should Write Blogs. Unfortunately, despite my cajoling, blogging just isn't for everyone. Too many brilliant programmers are virtually unknown because they have no footprint on the web. This is one of the reasons we created Stack Overflow -- to lower that participation barrier, at least a few millimeters. 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. We also have a dedicated phone number you can call to leave audio questions at 646-826-3879. The transcript wiki for this episode is available for public editing.

 Podcast #24 | File Type: audio/mpeg | Duration: Unknown

This is the twenty-fourth episode of the StackOverflow podcast, a special roundtable discussion conducted in NYC at Joel's Fog Creek offices with the entire Stack Overflow team. That includes Jarrod Dixon, Geoff Dalgas, and Michael Pryor in addition to Joel and Jeff. We muse about the 7.5 million dollar Dreamhost billing error. We admire the openness of Dreamhost, that they would be so up front about such a major gaffe on their blog. There is a rule at Fog Creek which we at Stack Overflow also follow -- never ship on Friday. A brief discussion about responsible advertising; contrasting our ad deal with woot and the Audible sponsorship of podcasts. One sells a product we've bought before and vouch for, the other sells DRM encumbered product. Michael and Joel bring up the idea of mixing real world money and our reputation system. I don't think we'll do this, but it's an interesting conversation. Discussing Geoff's cool JavaScript reputation graphing system. The giant "questions" with 300 answers were putting a huge load on the server and on client browsers. We never anticipated this would happen. Jarrod's pagination feature was deployed last night. Pagination begins at 30 answers, which matches the current wiki community threshold. If your "question" gets to page two of the answers, it'll be paginated and converted to community mode. Michael asks the eternal question -- why not support alternate login methods versus OpenID? I believe that OpenID is a bit of a chicken and egg problem at the moment, and we want to support a better future. We are open to partnering with another OpenID provider to provide a more seamless signup experience; myopenid supports this and we'll try to get it in the queue. We go around the table, discussing the short term future -- what's the #1 feature each of us wants to see in on Stack Overflow? Michael draws a comparison between Stack Overflow and Project Euler. You get points on this site for solving algorithmic / mathematical problems. Although it has been criticized, we continue to like the Stack Overflow design, which is largely thanks to Jeremy Kratz. We feel providing solid layout and markup control makes our questions look great. We've been pleasantly surprised with the SQL Server 2005 full-text search on Stack Overflow, but we agree with Joel that something like Lucene.NET would probably work better, as it operates at the logical "page" level instead of database record level. People don't think in terms of database records; they think in terms of web pages. Geoff discusses how important sitemap.xml was for us. Unlike a blog, we didn't have stable, permanent links to questions. until we rolled out sitemap it was literally impossible to find questions using web search, even if you entered the exact word-for-word title. As google says, you should use sitemaps for "any site where certain pages are only accessible via a search form". 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. We also have a dedicated phone number you can call to leave audio questions at 646-826-3879. The transcript wiki for this episode is available for public editing.

 Podcast #23 | File Type: audio/mpeg | Duration: Unknown

This is the twenty-third episode of the StackOverflow podcast, wherein Joel and I discuss the following: The Stack Overflow team will be in New York City from the 24th to the 28th. It's partly business, and partly a reward to our team for their hard work on the site. What are some cool geeky things for us to do in NYC? We wonder: do newscasters wear pants? Joel describes his upcoming Inc. magazine article enumerating the seven development mistakes we made in building Stack Overflow. I think by seven he meant zero. Most of the reviews of Cuil and Knol are negative because "I tried it for what it was intended to be used, and it didn't work." The power of short informal code reviews in bridging the skill gap between beginning and expert software developers. Good developers think of this as self-preservation, because today's beginner code is tomorrow's code you'll have to maintain. There have been a lot of requests for a packaged, customized version of Stack Overflow, but we have some reservations about the difficulty of delivering a packaged solution, and whether the current design will scale down to smaller private communities at all. Should trusted users be allowed to close questions? Or should the community simply vote them down? I argue we need both of these methods; Joel feels we only need voting. It's ok to have some "fun" programming questions every now and then. It can't be a community if you don't stop every so often to have some (at least partially on topic) fun. We also answered the following listener questions: "How do you handle newbie questions?" Richard: "How do you cultivate programmer mentoring at a small company?" 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. We also have a dedicated phone number you can call to leave audio questions at 646-826-3879. The transcript wiki for this episode is available for public editing.

 Podcast #22 | File Type: audio/mpeg | Duration: Unknown

This is the twenty-second episode of the StackOverflow podcast, wherein Joel and I discuss the following: Stack Overflow is now a public beta. We went from about 2-5% CPU usage during the private beta to over 50% CPU usage, on an 8-CPU server! Some day one stats: 1,500 questions were asked, 6,000 answers provided, 1,700 comments added, there were 62,000 unique visitors and almost 700,000 page views. Miraculously, the server is still running and performance is still snappy. It was tempting to keep a closed community, but Joel and I believe the real value here is in letting Google and other web search engines in, along with the hordes of everyday average programmers. We believe programmers are a smarter breed of user, and the low-friction question and answer format will be sustainable for the greater public community if is designed properly. Hopefully. We sit down with Josh Millard of MetaFilter, who graciously agreed at very short notice to come on and talk about his role as one of the 5 member core team that helps run and maintain MetaFilter. Josh is a programmer, too: you may remember him as the creator of the weird and wonderful Garkov! It was a great honor for Stack Overflow to make MetaFilter. I remain a longtime fan of MetaFilter and it definitely influenced the building of Stack Overflow. MetaFilter is a sort of collaborative blog with an amazing and incredibly effective (and eclectic) Q&A community. MetaFilter has grown to five moderators over time. How do you decide who becomes a moderator? Does moderation scale? How much can/should the community police itself? MetaTalk is the "backchannel" of MetaFilter, analogous to the "discussion" page on Wikipedia. It turns out there are two channels of communication in any social website. The topic, and then the topic about the topic. These are two very different audiences with very different needs. "technologically assisted profiling" is how MetaFilter works; the community flags questionable things (in addition to discussion on MetaTalk) and then the moderators act on those flags. MetaFilter is extremely strict -- they consider PR and blatantly promotional material spam, which rules out a huge section of what normally appears on Digg or Reddit. MetaFilter has not voting, but it does have a favorites system, which is something we have planned for Stack Overflow. I follow the Best of MetaFilter feed which I believe is determined by how many people have favorited a given MetaFilter post. In the rare event where a user goes haywire -- remember that it costs $5 to even join MetaFilter -- these users will be given "timeouts" of a day or two until they cool down. There are no scarlet letters or black marks that can be placed on users. The history of the user's actions, particularly if that history is public, is usually enough to handle the problem. We definitely agree with this philosophy. We did not have time to answer any listener questions today, but please send them in and we'll get to them on the next episode! 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. We also have a dedicated phone number you can call to leave audio questions at 646-826-3879. The transcript wiki for this episode is available for public editing.

 Podcast #21 | File Type: audio/mpeg | Duration: Unknown

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. An examination of Hegel's thesis, antithesis, synthesis as applied to PC and Console gaming, and perhaps everything else. 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 approaches 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 Israeli military, or from Jen...

 Podcast #20 | File Type: audio/mpeg | Duration: Unknown

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 re...

 Podcast #19 | File Type: audio/mpeg | Duration: Unknown

This is the nineteenth episode of the StackOverflow podcast, wherein Joel and I discuss the following: We've mapped our voting functionality to what you see in Digg and Reddit, but we're a Q&A site, not a link aggregation service. Should we allow voting on questions as well as the answers? Or should questions simply be taggable as favorites, which are a de-facto vote? I believe voting and favorites are related, but not quite the same thing. How do you deal with meta-discussion about the site? Wikipedia has two distinct areas for any page: the page itself and the "behind the curtain" discussion about the page. We don't quite have this. Joel points out that Google's dedication to the algorithm over human intervention is on display in the Google search results for "jew". The private beta is insular in a way that isn't immediately apparent to the people participating. We figure a huge percentage of our audience will be the barely interested programmers who end up on a Stack Overflow page from a web search. Also, the type of developers that tend to get attracted to the beta are the best, elite developers. Once the site is public, we'll have a far wider range of skills in play -- and much less sophisticated users. I realized that Joel has zero votes because we actually had a XSS vulnerability -- theoretically "friendly" hacker beta users intercepted our cookies and were able to impersonate us! We've fixed it now, but there was some minor collateral damage, such as the deletion of Joel's voting history. This is one of the challenges of developing a site for skilled (but bored) developers with time and ability on their hands. Joel cites Aaron Swartz' blog entry How To Launch Software as perhaps a model we should follow. The so-called "Hollywood Launch" tends to cause a huge, uncontrollable spike in traffic and then a massive drop as things don't go to plan. See Cuil. We are both scared stiff about the amount of traffic we already have, so we'll be proceeding carefully. Our SQL Server deadlock problem was solved by switching to read committed snapshot. It turns out SQL Server is not tuned very well for typical web app loads, which consist of massive numbers of reads and miniscule numbers of writes. The Stack Overflow database and webserver are currently the same machine. One easy scaling path for us is to buy another server and dedicating it to the database. I'm just unsure exactly where the transition point is for network latency versus the SQL calls staying in memory. There is a huge difference between horrible legacy code by talented programmers and horrible legacy code by, well, horrible programmers. This is frequently measured in WTFs/minute. We also answered the following listener questions: Ryan Cox: "Can you talk about backup and disaster recovery plans?" Ryan: "In developing database-centric software for multiple clients, why not use a single database rather than multiple databases for each client?" Phil Howie: "How do you balance legacy code that nobody wants to update with programmers who want to use the latest and greatest stuff?" 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.

 Podcast #18 | File Type: audio/mpeg | Duration: Unknown

This is the eighteenth episode of the StackOverflow podcast, wherein Joel and I discuss the following: We finally get to meet Michael Pryor, the co-founder of Fog Creek Software, who is a special guest on this episode! Joel had good luck browsing our beta site using Opera Mini. I'm still incredibly impressed with the Mobile Safari browser on the iPhone, which renders our JavaScript-heavy site perfectly, as far as I can tell. Joel posted a Regex question on the Stack Overflow beta, and I can't help bringing up RegexBuddy, my favorite (and still best) regular expression tool for developers. Social websites are a bit unpredictable to build -- we intended Stack Overflow as a relatively straightforward question / answer site, but there's quite a bit of demand for inter-answer discussion. Our system is designed to float the best answers to the top via voting, but this makes conversations in the answers difficult to follow. Stack Overflow is a hybrid of a discussion forum, a wiki system, and a voting/reputation system. It's been a hit so far, but we are running into some design issues resulting from this unusual combination. I had the opportunity last week to meet Merlin Mann, who Joel and I are big fans of. Joel particularly enjoys their podcast, You Look Nice Today. Turns out Merlin is a fan of Joel's as well. We should form a mutual admiration society! If you'd like to sign up for the Stack Overflow private beta, which will run until the end of the month, use our Google Docs signup form. We didn't get to any listener questions this episode, but we'll remedy that next time! 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.

 Podcast #17 | File Type: audio/mpeg | Duration: Unknown

This is the seventeenth episode of the StackOverflow podcast. Joel is on vacation, so this is a special podcast with the software development team: Jeff Atwood, Geoff Dalgas, and Jarrod Dixon. Our team is geographically distributed -- I'm in California, Jarrod is in North Carolina, and Geoff is in Oregon. Geoff and Jarrod, like me, both grew up with BASIC programming on early computers like the Apple // and Commodore 64. Can programmers who grew up programming somehow recognize each other? The private beta is going well. We think the beta will continue through the month of August. We'll continue to add 150 users per day until the private beta is over. This entire podcast was inspired by community comments on the Stack Overflow blog, so we proceeded quickly to the following questions: We answered the following questions left from the blog: "How do you manage collaboration on a distributed team? Is code ownership a problem?" "How do you prioritize what features you're working on?" "How do you test new features you're developing before you roll them out?" "What were the biggest technical challenges you had to overcome?" "What happened on the site that you didn't anticipate?" "Are you happy with the performance of your Windows development stack on the web server?" "Will you have an API? How will you deal with spammers, griefers, and marketers?" The Stack Overflow private beta list is essentially full until the end of the month. If you'd like an invite sooner, do two minutes of transcription in the wiki and I'll bump you so you get an invite the same day. 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.

 Podcast #16 | File Type: audio/mpeg | Duration: Unknown

This is the sixteenth episode of the StackOverflow podcast, wherein Joel and Jeff discuss the following: Programmer design is scary -- We now, thank goodness, have an actual designer design! Thanks to Jeremy Kratz for assisting us with our design woes. We also appreciate input from Tim Almond, Rob Allen, and Nathan Bowers. We plan to have a smooth transition from cookie to authenticated user. I thought Jan Miksovsky had a great post on login barriers. I feel a lot of sites get this wrong by throwing up an abrupt login barrier too quickly. Tear down that login wall! you have your choice of login methods: either OpenID or the traditional three "name, email, URL" input boxes. You will be able to fully participate as a non-authenticated user -- both answer and ask questions. You may, however, be capped on reputation score and a few advanced abilities. We will not be seeding the site with the data from the Joel on Software .NET forum, as we feel it will bias the site too heavily towards that particular audience. Stack Overflow is intended to be non-denominational. We will be seeding the questions and answers on the site with the content generated by the private beta users. One of the great advantages of the new Web 2.0 economy is that there are so few barriers between programmers and the world -- assuming you're comfortable building a web site. Contrast this with the bad old days of distributing software on floppy disks or CDs. Can you remember the first time you used Google? When and where did you discover it? How has Google resisted succumbing the portalitis disease after so many years? It's admirable that they've pursued simplicity this long. I am mightily impressed that the iPhone can render Stack Overflow, even the jQuery and WMD editor parts. Kudos to Apple for an (almost) no-compromises mobile web browser that delivers a desktop browser experience. Joel loves his new Nokia E71 phone, and he cites the physical keyboard as the primary differentiator -- along with the superior third party Exchange integration. Revisiting my programming chair article. Although I loved my 1998 Aeron, I felt I could do better -- and the Mirra I'm sitting in now is a distinct improvement. I'm with Jason Calacanis: [buy a cheap desk, and the best chair you can afford](http://www.calacanis.com/2008/03/07/how-to-save-money-running-a-startup-17- really-good-tips/). Joel recommends the Chadwick Chair which I didn't get a chance to try, unfortunately. Don't forget overall computer workstation ergonomics; Joel also recommends variable height desks. On McConnell's cone of uncertainty, and the importance of keeping a list of what is to be done. You can't estimate without a list of tasks -- and you probably need to break the tasks down to very minute steps to really understand what those tasks entail, too. As Joel points out, there is the risk of the "Objects In Mirror Are Closer Than They Appear" illusion -- your mind's eye tends to fill in the gaps. You gloss over the details and presume things will be simpler and easier than they actually are. I believe in two principles during this project. First, having public artifacts that everyone can objectively see and judge. The team should develop a concensus opinion based on that reality. Second, have a plan -- but start on that plan as soon as possible! The sooner you get started, the sooner you will discover all the details and weirdnesses you could not anticipate or plan for. Joel proposes having major plans for version two, and just getting a small version one out the door quickly. The actual usage of the app may not be at all what you imagined, and you can change your approach more rapidly to accommodate those real world uses for version two. We also answered the following listener question: Josh Parris: "Why did the Stack Overflow schedule blow out?" If you'd like to submit a question to be answered in our next episode, record an audio file (90 seconds or...

Comments

Login or signup comment.