The Stack Overflow Podcast

The Stack Overflow Podcast

By The Stack Overflow PodcastSociety & CultureBusinessTechnologyManagement
Download on the App Store

The Stack Overflow Podcast episodes

  • Podcast #22
    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 [email protected]. 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.
    1 hr 7 min
  • Podcast #21
    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...
    1 hr 11 min
  • Podcast #20
    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 [email protected]. You can re...
    1 hr 6 min
  • Podcast #19
    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 [email protected]. 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.
    1 hr 12 min
  • Podcast #18
    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 [email protected]. 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.
    1 hr 5 min
  • Podcast #17
    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 [email protected]. 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.
    1 hr 2 min
  • Podcast #16
    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...
    1 hr 5 min
  • Podcast #15
    This is the fifteenth episode of the StackOverflow podcast, wherein Joel and Jeff discuss the following:
    A brief discussion of our shoestring budget, and the project schedule. The beta for Stack Overflow is close; we will likely be trickling people in by the end of the month.
    Strategies for handling recurring or background tasks in ASP.NET. We have a simple method that works for now.
    Being a stellar software developer does not necessarily equate to being a stellar manager of software developers. Promoting your best coders is not always the best strategy. We highly recommend Peopleware and Managing Humans: Biting and Humorous Tales of a Software Engineering Manager. If you're a manager, staple these books to your face! Live it, learn it, love it! If you know someone who is a manager of software developers, staple these books to their face. They're that important.
    Joel's essential time management tip: get things done by not reading Getting Things Done. Personally, my time management is terrible, but I do have one guiding principle: produce some kind of small public artifact every day. We can recommend Merlin Mann's excellent site 43Folders, which is sort of a long running geek love letter to that book.
    I argue that regions are the GOTO of code formatting. I navigate in Visual Studio using search as my metaphor. Between CTRL+I incremental search and CTRL+SHIFT+F find in project, I'm never more than a few keystrokes away from whatever code I need to see. Your code is full of highly unique keywords, just like the web is full of unique search terms.
    Joel and I both agree: one of the most effective coding practices you can adopt on your team is interactive, sit-down-with-your-coworker code review. 90% of the things you will learn have nothing to do with the code. I believe programming is a far more social activity than most realize. If you write code, and nobody but you ever sees that code -- did you really extract all the benefit from writing that code?
    When it comes to interviewing software developers, it seems there are two classes of interviews: the kind where the interviewee gets to drive, and the kind where the interviewer does all the driving. Try to have a game plan for both types of interviews. Be yourself, build a portfolio, and actively study the company you're interviewing at. For some interviews, you really do need to prepare -- practice, practice, practice! If you're on the job hunt, check out our listings for junior and senior developer jobs.
    We can't talk about programming interviews without mentioning classic interview puzzles and the book How Would You Move Mount Fuji?
    On the amazing power of lambda expressions, delegates, and anonymous methods. Fun stuff!
    If ACME is in the business of developing explosive widgets, is it unreasonable for them to inevitably outsource their software development to Coders R Us? If you're serious about software engineering as a career, you deserve to work at a company that is serious about software engineering, too. This usually means choosing to work for a company where software is at the core of their business model. See Joel's Talk at Yale.
    We answered the following listener questions:
    Gordon Milne: "I have an opportunity to pursue a more managerial role; how do you feel about making the transition from developer to being responsible for other developers?"
    Jason Zimpelmann: "What sorts of time management skills do you use?" and "What about that posting on region blocks?"
    Aviv Ben-Yosef: "Should code review be done alone via email or in person?"
    David McGraw: "What advice would you give college graduates who are interviewing for programming jobs?"
    Adam Haile: "How do you handle pointers to functions in the .NET world?"
    Matias A. Bellone: "Outsourcing has been putting food on my table for the past few years. What are your feelings on this?"
    If you'd like to submit a question to be answered in...
    1 hr 15 min
  • Podcast #14
    This is the fourteenth episode of the StackOverflow podcast, wherein Joel and Jeff discuss the following:
    This week's Rock Band downloadable content is epic -- the best of the Who. Pointless podcast trivia: the Who song Baba O'Reily is a concatenation of two influences, one philosophical, the other musical: Meher Baba and Terry Riley. "They're all wasted!"
    On Joel's post Don't Hide or Disable Menu Items. Joel considers this post an experiment in minimalism, to see if it is possible to write an extremely short piece that still works. I viewed it as a mistake; surely there's something between three tiny paragraphs and 5,000 words.
    There should be a common UI metaphor for things that are disabled that provides a standard bit of interface to indicate why something is disabled. The specific situation that Joel ran into that motivated his post on this was the fact that the accelerated playback mode of Windows Media Player was disabled for Joel.
    I believe that comments are an important avenue for clarification and course correction in blogs, which is why they are so essential. Is a blog without comments even a blog at all? It is what provides the conversational tone that makes them work.
    Joel feels conversational nature is "leading to the demise of blogs". People are relying on the conversation to complete the idea, rather than writing and researching the topic and presenting it as a coherent whole. It's more like hanging out with your friends and saying the first thing that pops into your head. Joel draws comparisons to the eternal September.
    So much of programming is not easily measurable or quantifiable; it is explained by anecdote. I believe it is the reader's job to read critically and question viewpoints -- and demand some form of supporting data, beyond just one example or a few anecdotes. Don't let the most persuasive argument win; let the best data win.
    Joel brings up a great point -- you should avoid weasel words in your writing! Or at least know when you're using them. And try to stop.
    On making decisions based on data: I believe you should automatically measure the number of queries and the time they take in your software. Based on that data, decide how much to normalize your database.
    Joel says the older he gets, the less he knows -- citing a few of his earlier posts. He plans to switch to story driven writing, free of agenda or morals. Let the reader interpret whatever message he or she wants into it.
    Perhaps the ideal workspace is re-configurable by the group that works in it -- Microsoft's new research building might be an example of this, or the the Patterns & Practices agile workspace.
    A discussion on the perils of object relational mapping -- it's not called the Vietnam of Computer Science for nothing. We use LINQ to SQL on Stack Overflow and I have been quite happy with LINQ to SQL because it is 1) flexible 2) very lightweight and 3) built into the language as a fundamental construct, not bolted on in bunch of code generation or classes.
    Thanks again to everyone contributing wiki transcriptions!
    We also answered the following listener questions:
    Paul D. Waite: "As a web developer going from JavaScript and Python to Objective-C, where should I start learning C?"
    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 [email protected]. 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.
    1 hr 12 min
  • Podcast #13
    This is the thirteenth episode of the StackOverflow podcast, wherein Joel and Jeff discuss the following:
    Joel Spolsky still claims he is a New Zealander -- or at least his father was -- though I refuse to believe anything that is not in Joel's Wikipedia entry can possibly be true. More evidence: FogBugz uses the Kiwi as its logo.
    I completely stole Yuval Tobias' audio recording question about Spartan Programming and posted it on my blog. My apologies, but it's a great topic, and I couldn't resist. You may also appreciate Steve Yegge's post Portrait of a Noob, as it covers similar ground.
    Marco Arment was kind enough, in My Lyrics Are Bottomless, to expand on his earlier criticism. Marco, I can't bring myself to disagree with a fellow fan of the best two-man novelty band on the planet. I'd love to involve you in the private beta so we can benefit from your advice once you've experienced the code in action.
    Joel says that ASP.NET is like driving a Lexus, and PHP is like riding a bicycle. Note: please direct all subsequent hate mails to Mr. Joel Spolsky, c/o Fog Creek Software, NY, NY.
    The original schedule for Stack Overflow had us going to the private beta this month (July). Based on the current progress, I believe we need 2 extra weeks to implement editing, and that's an essential part of the system. The key pieces need to be in place to get meaningful feedback in beta, so even if it slips a bit into August, the beta will be more useful.
    Stack Overflow will implement an Xbox 360 like Achievement system tied to your account. Our "Badges" system fulfills three roles: bronze badges encourage people to try all the different functions in the system, silver badges encourages continued participation, while completionists and hardcore users can strive to get the gold badges. All of this is completely optional, of course, but it is permanently visible on your Stack Overflow profile.
    We will also have a reputation system, which is a simple numeric score attached to your profile. It's based on the number of upmods your questions and answers get. It bothers us that on many voting based sites, a downmod completely cancels out an upmod. On Stack Overflow, an upmod will be worth twice as much as a downmod.
    We hooked up CruiseControl.NET on our project, so every checkin results in a build, unit testing, and deployment to the server. We also get email notifications of what changed and whether the build broke or not.
    Joel's classic 2000 article The Joel Test. How does your team fare on these 12 points? If you're interviewing for a job, does that company pass The Joel Test? We also consider why unit tests aren't included in Joel's list, and whether they should be added.
    What version number is your website? Should websites have a version number? Our website version number will be synchronized with the Subversion revision number, so we can be sure what version we're running.
    A discussion of Charles Petzold's fantastic new book, The Annotated Turing. I cannot recommend this book highly enough; Petzold really makes the history and context of Turing and his seminal paper come alive. There's also a Broadway play Breaking The Code based on Turing's life.
    Joel has a new book, More Joel on Software. Joel shares his thoughts on the merits and pitfalls of turning your blog into a book.
    Joel decries the groupthink of Silicon Valley, and the flight from startup to startup. Joel thinks you can have a successful, original startup anywhere on the globe. You may want to maintain a US office, however.
    The principle of progressive enhancement is why AJAX is more web friendly, whereas the "rounded rectangle in a browser" model of Silverlight and Flash isn't. Embrace and extend! There are a number of fairly mature JavaScript API libraries out there now, like jQuery, Dojo, and scriptaculous.
    Yahoo has some outstanding resources for web developers -- make sure you check out the Yahoo Developer Network.
    I...
    1 hr 7 min

About The Stack Overflow Podcast

From the publisher's feed

For more than a dozen years, the Stack Overflow Podcast has been exploring what it means to be a developer and how the art and practice of software programming is changing our world. From Rails to…