View  Info
 
Note
No changes were made. These revisions are identical.

Podcast 018

Revision #39, 8/22/2008 12:22 PM
203.206.79.24: "Added 50:01-53:28"
Tags: (None)

Previous Next 

Podcast 018

Revision #40, 8/22/2008 1:34 PM
69.106.244.94: "Nothing, forgot to log in."
Tags: (None)

Previous Next 

[incomplete]

Ads, intro

[1:00]

Atwood: Hi Joel.

Spolsky: Hey, it's Jeff.

Atwood: Yes, you're back.

Pryor: You're back.

Atwood: Oh and Michael's on the line, nice.

Pryor: Yes, it's me.

Spolsky: Today we got two Fog Creekians, for those of you who don't know Michael Pryor is the co-founder of fog creek software, and...

Atwood: Yes, well welcome to the call, it's good to finally meet you.

Pryor: Thank you.  Are you going to the business of software conference?

Atwood: I am not. 

Pryor: Oh [disappointedly], I thought you were.

Atwood: No, I'm not in the business of software.

Spolsky: We should get you as a speaker next year.

Atwood: [laughter], Ha ha ha.  Well, I'm gonna have to start my own conference, man, and I'm gonna compete with you... Like right across the street from where your conference is, that'll be my conference.  Be like the business of software by Jeff.

Spolsky: It could be like the business of software camp.

Atwood: Yes, that's right.  A competing conference.

Spolsky: So we've got a big week today, 'cause I've been away for weeks and weeks. 

Atwood: Yes.  How was your trip by the way?

Spolsky: Well there were two trips involved.   The first trip was... The first week I couldn't do it because I had to go up to Boston to talk to the Y-Combinator startups and tell them how venture capital was bad and that Paul Graham was setting them on course of self-destruction and conflict with venture capitalists, which is something that he always likes me to talk about.  And uh, uh, the last week was just my vacation.  I was off in Israel where it is hot.

Atwood: Right, you mentioned that.

Spolsky: But, I do want to say that the opera mini is an excellent browser for looking at StackOverflow.

Atwood: Well good.  What kind of success did you have browsing StackOverflow with Opera mini?

Spolsky: Uh, well first of all it worked great. Well, I guess the main thing I want to say, and this is sort of initial feedback, is that I am shocked how good StackOverflow is. 

Atwood: Well that's good to hear. I was curious, I was actually dying to talk to you this whole time because I was curious.  We were just never able to schedule a face to, not a phone a call for you to look at the site and give me your initial feedback.  Literally you guys are hearing the first thing I've ever heard from joel, specifically directly on StackOverflow, the actual site.

Pryor: I heard him exclaim, he said it was awesome.

Spolsky: It really is.  I mean, the first thing I noticed is that like the minute that you open it up, people sort of floated in and started asking questions, and they were getting answers, like right away.  Even with a very small number, you know, even with a very small community of people. 

Atwood: Right.

Spolsky: And uh, so that was pretty awesome.  That was a sign that it was going to work, really.  But then you know I asked two questions, and the first one I got an answer in 30 minutes and the second one you had answered an hour previously, coincidentally, [laughter] and the search worked great, so as soon as I typed the subject, and hit tab, it found the answer to my question. 

Atwood: Cool.

Spolsky: It's really amazing.  I was trying to make.. What was I trying to do? I was trying to make, oh, one of those [uh], oh, I needed a regex for a URL, that excluded trailing punctuation.  

Atwood: Uh huh.

Spolsky: Is that the one you answered? Everybody knows about that problem right? You're trying to make regular expression for a URL, and dots and commas and question marks are all legitimate and common in URLs, but if you're trying to take some text that somebody writes, and make the URLs into hyperlinks, they will often write a URL and then a period or a question mark or a comma, that they didn't mean to be a part of URL.

Atwood: Right.  Well actually to be fair, I copied that.  I used a great tool Regex Buddy, which I still think is by far the best tool on the market.  And it has a library of common functions.

Spolsky: Oh so this is actually a tool not a web site?

Atwood: Well, regex buddy is a tool, and it has a corresponding website.  If you do a search on regular expressions it has pretty much the highest page rank of all the sites on just regex information, and for good reason.  It pretty much kinda wrote the book on, I mean he wrote his own regex parser because it can...  There's differences in the flavors of regular expressions on different platforms.  This is an engine that's flexible enough that it can actually emulate other libraries. 

Spolsky: [laughter].  So it's like.  It reminds me of borland when they wrote turbo assembler, there was a command-line argument that that emulated the bugs from microsoft macro assembler.

Atwood: Right [laughter]

[5:18]

Atwood: And some of them are pretty common, like in JavaScript regex for example you can't do backwards references, like backwards matching.  When looking for things that precede the match you can't really do that.

Spolsky: Oh.  

Atwood: For example.  I mean there's all these little quirky little differences.  I mean the core functions are all the same in most JavaScript libraries.  

Spolsky: I have to say, once you get to anything more complicated than, like, you know, "Is this a number?" kind of regex, it always looks to me like...  I don't even want to say a hieroglyphics.  It looks to me like a puzzle, like one of those puzzles you find in the back of Make magazine.  

Atwood: I've been, since I'm at home a lot more, I've been trying to explain to my wife Betsy, just show her some of the things we're working on.  And it's interesting because she really loves puzzles, she does crosswords and all these kind of puzzle things and I have no patience for puzzles like that, but a regex, or coding stuff

Pryor: I need a puzzle.

Atwood: That's right, you're a puzzler.  You're a puzzle guy.

Pryor: Yeah, I have to write an article like today, so if you have any good puzzles tell me.

Atwood: But to me a regex, a regex to me is a puzzle that's actually fascinating.  Not to an absurd degree, I don't want to create something that's actually hard for other programmers to maintain.

Spolsky: Oh, but it always is.  It's like those Guardian cryptic crossword puzzles.

Atwood: It can be.  I mean it's definitely a trade-off there, but I think you made the same argument about like lisp for example where it just looks like this indecipherable jumble of parens.  You know? But to some people that's fascinating, and they really enjoy that, and there's sort of a puzzle factor to code that I think there's an interesting cross-over there.  But I'm glad you got an answer to your question. And I did see that you posted.

Spolsky: Yeah, um, I posted, not on that one, I asked a question on something else I think.  I thought I would go in and answer a bunch of questions but they were all too hard for me.

Atwood: [laughter]

Spolsky: I don't know any of the answers.

Atwood: Yeah, the community has been great.  I think it's really a testament to how the quality of the audience we've been attracting, you know, it's about them really, it's about them having a place to go to do stuff that's, you know, it's easy and it's fast and it's simple and clean.

Spolsky: Yeah.

Atwood: It's really a very simple proposition to me, that we're doing.

Spolsky: Yeah really, this is going to sound, and our listeners are going to think we're the most self-self-smug-self-satisfied people that have ever blessed the world, but I mean it really is clean and it works, and it's so simple and clean, and works.  I dunno.  It looks clean, it doesn't have, uhh... Maybe that's just like every new website starts out looks clean and there's all these people always trying to think [good?] things.

Pryor: I have a question about StackOverflow, Jeff, for you.  So, when I was playing around with it, and I know there's already a topic about this, What are you planning to do for the discussion versus answer issue when somebody's like coming on and they start having a discussion and it's not clear the chronology about the discussion and it screws up the ... You know what I'm talking about right?

Spolsky: The discussion gets all chopped up because the voting.

Atwood: Yeah, well I think the central problem is, and it was a little disconcerting, it's partially understandable because [sigh], it's a new site so people are trying to figure out how it works, but it was a little disconcerting that the first week, almost the highest number number of tags, as high as any other topic in the system, was the system itself.  So, I was a little disturbed that we've built a system for discussing the system, you know?

Spolsky: [Laughter] That all, well that'll wear off.

Atwood: Yeah, that'll wear off, that's my hope that that will all wear off as I actually need to codify a lot of that stuff in the FAQ, and the reason I haven't is honestly that I've been changing the rules about how stuff works, like pretty rapidly as people start doing things.  But one of the core issues that does come up a lot, and joel, I know you and I talked about this a lot when we were setting up, initially talking about doing anything like this was This is not necessarily a place for programmers to just come discuss random topics, it's supposed to be focused around questions and when I say questions, and when I say questions, I mean a question that actually has some kind of objective answer.  Not, you know, what's your favorite, like here's one I saw, "What's your favorite RSS feed on Java? What's your favorite Java blog?"  I mean, this isn't really a question that can be objectively answered.  I mean, it's an okay question, but it's technically not what we built the system to do.

Spolsky: Well you know, umm, that would work... That particular question would work well if everybody answered with one particular answer, and they just voted, and then it becomes a vote on you know the favorite Java RSS feeds.

Atwood: Some of them can work, but there's even more discussy type topics coming up, and I think the less focused the question is, the more you're going to have this intra-answer discussion, that I think people kind of get confused and understandably, because you're having all these - there should be only one conversation that matters. To me its kind of like, this is where StackOverflow is kind of like my blog. When I post a blog entry you are going to discuss my blog entry, not because I am the most important person in the world, but because that is the topic at hand thats the thing we are discussing thats why you came there, right in the first place, was; oh here's a topic that I'm kind of interested in. Interested enough to leave a comment. Now, its true that even in a long focused blog entry you'll get people that are discussing amongst themselves, but if it becomes really dominant then, you know thats where I think the problem is where you have a blog post topic or a question if you will, thats just not focused enough for people to really directly address it.

[10:55]

Pryor: Well, you... you end up with a lot of cruft on your... on your blog post then at the bottom, you know. So, like it... like, it's hard to keep people from discussing these things. I don't know if you're gonna change the system so that it prevents people from... Like, it sounds like you're saying the system isn't designed really for that type of thing - that's not what you made it for - but the people are gonna discuss regardless. You know what I mean? They're going in there and they're doing it now. And there's no sort of outlet to keep that discussion somewhere else so it's not cluttering up... Like if you're a person who's just come and you're like, "How does this work?", you know you can read the FAQ but even if you come in you're just gonna starting talking about things.

Spolsky: What I've seen... [interruption]... happen is somebody asked the question and you need a bit of clarification and the obvious thing to do is put in the answer. You know, could you clarify it? Or sometimes you'll see somebody will provide half of an answer and somebody else will say, "Well, you know, that's not right because such and such" and, um, it might be... I mean one possibility might be to move that into the talk. Another possibility, you know like have a separate talk page for every question where you can carry on any kind of discussion  you want about the answering of the question. Or another thing is, I think just over time people will develop standards where they just learn to edit things rather than to discuss, where they realise that if they try to have a conversation that their answer...

Pryor: You can't edit things, though. That... that, like that's... that's like I asked a question I had, like I had a couple different answers. Yeah, you have to get to a certain point. But like, when the new people come that don't really understand how it works, it's even worse because they're the ones that are going to be talking because they can't go and edit something, so there's a small critique or a small change that they want to make in the answer, they can't really do it for a while. Like, I still can't do it and, I mean, I don't, I... I haven't used it that much but I don't know if, [um]...

[12:44]

Spolsky: Yeah, how many, [uh]... how many karmas do you need before you're allowed to edit stuff?

Atwood: Well, by "stuff"... really, you can edit your own stuff immediately as soon as you associated an OpenID with your account so we can actually tell who you are.

Spolsky: Because I was thinking it totally made sense to me when it said you need to earn a certain amount of karma to edit other people's posts or to change the tags on them. [um] But then it also occurred to me that there's going to be a lot of people that want to make, like their first dipping of their toes in the pool, so to speak, maybe just to make little syntax corrections or grammatical corrections or just slightly, you know to reorganise things. Like, they may not have that much to contribute in terms of answers and questions but they just see something spelled wrong or they know a slight improvement that they can make to a particular question or they notice a tag that was wrong and therefore it's not coming up in the right place and they want to make those corrections. Like, I know that... you know for me probably I've made hundreds of corrections in Wikipedia where I'll just see a spelling mistake and I'll go correct it. And there's also only one real article I've contributed to.

[13:42]

Atwood: Right. Yeah, I think that's where... okay, so I think the issue we get into is we're sort of in a weird, somewhat unique place that we're, we're building what is essentially a hybrid of a discussion board type system which is what it looks like at first glance [uh] and a wiki-type system where once you get to a certain level  of reputation, once the system learns to trust you a little bit you can edit literally anything. [Um], you can't delete stuff; we do draw the line there because deleting is like making things disappear... just disappearing things, which I think is a totally different concept. But revisions are always visible, so any time something is edited we do have full revision support in now. We have... and [uh] Jarrod checked in our rollback support as well.

[14:25]

Spolsky: Oh.  So once that's there, it doesn't hurt to let anyone edit anything.

Atwood: Yeah.  I mean we could reduce the bar.  I'm a little worried though, because it does require people who, somebody to be watching all the edits.  Right.  That's where I get a little nervous about that.

Spolsky: That's true.  Wikipedia has lots of people watching everything.

Atwood: Yeah.  I don't think there's going to be quite as many people watching our stuff, cause the questions are so focused and so tiny.  So, I think you'll have to invest.  The current thresholds are: you need 750 reputation to edit tags, to just retag things.  And then 2000 to edit anybody's anything.

Pryor: Oh geez.  I'm never going to do it.  I'm never going to make it.  I'm at like 80.  I'm like looking for questions I can answer, and I'm just like coming up blanks.  All the unanswered questions are really hard.

Spolsky: That's, so that's a problem, Jeff.  Cause, like Michael would be able to, or even me, like I don't have that many points.  I think you might have done something magical on the backend to let me be able to edit things.

[Garble]

Atwood: And Michael I could do the same thing for you cause you are technically a founder, so.

Pryor: But, don't.  Cause then I won't be experiencing it like a new person would.

Spolsky: But I mean a lot of times I'll go into a question and I won't have anything to, that I want answered myself.  Like, let's say that question where I was trying to find out that URL thingamajiggy, and you put an answer there that was just here, use this string, and I had to then go kinda research it, because you had a backslash B at the beginning there, and I didn't know what backslash B did in a regex, so I went and looked up what backslash B did and I was thinking you know I could go and edit this now and say that backslash B is a word boundary, it does such and such.  And then that would make that little answer just that much better.

Atwood: Right.

Spolsky: And that's a contribution I could make really early on in my stackoverflow career.  So I don't know, I have a suspicion that, I kinda suspect that maybe we want to kind of err in favor of more editing so that the, it's really a question of like how to make old questions get better and better and better and always be up to date.  And part of making them better might even be taking you know three or four answers and combining them into one meta answer that really covers all the topics very elegantly.  And I want to sort of see more of that than just people adding on their own tags saying you know Michael you got that wrong, it's actually 27, not 36.

[16:51]

Pryor: Right, but there's not, right now there's no way to do that because you can't, those people can't, like I asked a question about the best way to loop over a record set in C#. It was just like a generic question I thought somebody could... and somebody posted a good answer, and then somebody posted another good answer which was different, and then somebody posted an answer using LINQ, and I was like, OK, these are all good and all three should be part of the answer but I can't go in and edit it and... I mean, I guess it's not, like I'm not going to be able to do that for a long time because I'm only at 82.

[17:22]

Spolsky: And that particular question, like how to iterate over a recordset in C# is... first of all I mean it's excellently phrased, like you can just say, "How do you iterate over a recordset in C#?" And secondly, you know this, the stackoverflow in three weeks that is going to be the canonical site on the Internet for learning how to iterate over a recordset in C#. It just will, it will come out you know, we'll have the pagerank, everybody will point to it, it's gonna be the canonical answer. And the more, it is like the wikipedia page on how to iterate over a recordset in C#. So like the better that article gets and the better the results get, and you know the more people contribute to just like editing and tweaking and like slightly formatting it a little bit better and so forth. That's what I really want to happen, I want that to be like a live encyclopedia entry in the wikipedia sense.

Pryor: Well Jeff how did you come up with the, uh, the limits because I know they changed. Like I remember at one point I could down-vote things and then all of the sudden I couldn't because the threshold got set higher or something because I know you changed that a little bit. How did you come up with those levels and tweak them? Like what's driving that?

Atwood: Right so what we're doing is we're... I'm letting people in, it started at like a hundred people per day, it was up to two hundred now I'm kind of tentatively going to three hundred per day now that we're kind of getting the system working the way we want. And a lot of those initial tuning were done based on watching peoples' behavior and watching the interactions they had with each other. And I mean there were definitely some ruffled feathers around things being marked down, marked negative, things being flagged as offensive that shouldn't have been. Um, also around editing, once people got to the editing threshold there was definitely some "youthful experimentation" I guess you would say [laughs] around editing other peoples' posts and I had to deal with some direct emails and some people who were pretty unhappy with the way things were going. Um, so I think we're just watching the system and we're just watching how people are using it. And there are a number of people at the edit threshold, although I doubled it to 2,000. It started at 1,000 although I realized after the fact that that was just like way way too low. Um, I've increased that to 2,000. But Michael I want to get back to one of your original questions which was OK say you don't understand how any of this stuff works and you just want the answer. Which is gonna be honestly 95 percent, more, probably 99 percent of our audience. So, you would type something into google, right? You would end up on this page you've created, which I'm actually looking at: "How do I connect to a database and loop over a recordset?" You're gonna see two things: you're gonna see the question and then directly under it you're gonna see the accepted answer because those two things sort of always dock to each other, right? Now if nobody has accepted, like you own that question so you went back and you said oh this is the best answer that I think is the best answer. Well say the community disagrees with you, they say well that's a dumb answer. They would down-vote your answer. It wouldn't affect the docking, but the answer directly under it would be the answer the community thought was best. Now, if you're the type of person that does a drive-by question, like you ask the question and you never close the loop and say OK this is the best answer that I found.

[20:42]

Pryor: Cause there is a bunch ... that happens ... it's happening kind of frequently too.  That type of thing.

Atwood: Sure.

Pryor: That type of thing.

Atwood:  No.  I would expect that to the norm.

Pryor: So you're saying is that the community answer is the one that appears at the top.

Atwood: It's all based on [sort]? ordering, so voting. And, and, the reason we have a limit around voting is we found that down votes were very unpopular.  People did not like having their stuff down voted just on principle.  Like, it doesn't bother me, like if I see negative on my thing, I mean it's a little bit of a bummer, but you know, it's minor.  But people really objected to it.  So we made the karma cost for that ... we did something interesting that where it's negative ... so if I down-vote this question I'm looking at, if I click down right here, your reputation will go down two points but my reputation will go down one point.

Spolsky: That one's cool.

Atwood: So there's a cost to me to down-vote you.  And that helped tremendously.  And we also have visibility, like if I click on your username, I can see that you have given forty-three up-votes and eight down-votes, so you can see if it's the type of person that's like a lot of down-votes kind of person.  Then maybe that's just how they are.  I also noticed, it was really kind of touching, some people like only give up-votes.  They will not down-vote anybody.  Like it's just all up-votes.  They have never given a down-vote.  They'll give hundreds, well not hundreds, but at least a hundred up-votes.  I think there is going to be a badge around that, actually, at some point.

Spolsky: Nice.

[21:59]

Atwood:  Yeah, if you can be nice enough to give 200 up-votes without any down-votes.

Spolsky:  Well, that's not...being nice is not necessarily being honest.  I mean, there may be somebody who literally provides a wrong or misleading answer to a question.  Who gives you the answer that is subject to SQL injection attacks.  You know, then you really do want people to down-vote.

Atwood:  I do think down-votes are necessary.  There was the argument that you should take them out.  I think the way to do it is the way that we're doing where up-vote counts way more.  So Michael, if I click up right now on your post you get plus ten, right?  Now compare that to the minus two I could give you.  So, it's worth five times as much.  Plus it costs me a little.  We think that is the right social formula.  Because sorting down to zero is good but I think you should be able to sort a little bit below zero, to indicate the community is a little bit dissatisfied with your answer.  It's not that they hate you personally, [Joel laughs and Jeff speaks during the laugh] this is where it gets weird[?].  People really do take it personally.  Like I've gotten emails from people that are like, you know, "I'm missing a badge."  "You need to look into this."  They've already started to really... the reputation and badge system is really working.  Like to a scary tee.

Pryor:  Oh, well especially since you've actually tied... I mean initially, I don't know if this was the initial goal, but you've tied the reputation and the badge system all together, so that there's actually things you can't do.  You know, so like getting a badge... it's different than raising your reputation but a lot of times they're intertwined.  And so there is stuff you actually can't do on the site until you do that.  So it encourages people to go that direction.

Atwood: Yeah, if you can be nice enough to give 200 up-votes without any down-votes...

Spolsky: [Interrupting] But, being nice is not necessarily being honest.  I mean, there may be somebody who literally provides a wrong or misleading answer to a question, who gives you the answer that is subject to SQL injection attacks, you know, and then you really do want people to down-vote.

Atwood: I do think down-votes are necessary.  There was the argument that you should take them out.  I think the way to do it is the way were doing where and up-vote counts way more.  So, Michael, if I click up right now on your post you get plus ten.  Right, now compare that to the minus two I could give you.  So, it's worth fives times as much and it costs me a little, and we think that's the right social formula.  Because sorting down to zero is good but I think you should be able to sort a little bit below zero to indicate that the community kinda is dissatisfied with your answer.  It's not that they hate you personally.

Spolsky: [Evil laugh]

Atwood: [Inaudible]

Atwood: People really do take it personally.  Like, I've gotten emails from people that are like, you know, "I'm missing a badge.  You need to look into this."  They've already started to really... Reputation and badge system is really working... to a scary degree.

Pryor: well, especially since you've actually tied... I mean initially... I don't know if this was the initial goal, but you've tied the reputation and the badge system all together so that there's actually things you can't do.  You know, so like getting a badge.. it's different than raising your reputation, but a lot of the times they're intertwined, and so there's stuff that you actually can't do on the site until you do that. So, it encourages people to go that direction.

Atwood: Right, well, I think that the end state of the system is that we don't run it. The community runs it.  Because, we don't scale.  Like, I can't sit here and see.. there's no way.  I can't even read every post that's not on the system.  It's ridiculously impossible for me.  Even if Jared and the other two guys that are doing this with me, that's all we did all day long, we still couldn't do it.  So, as the system learns to trust you, you can do things in the system that you would consider very moderator-like, very much like Wikipedia.  But we do have thresholds around that.  Like, we talked about it takes 15 reputation to even up-vote, because we don't want people creating, like, shell accounts and just up-voting their own stuff, like puppet accounts.  So, you have to actually get some reputation. And the only way you earn reputation, let me be very clear on this point, the only way you ever get reputation is from other people voting your stuff up.  Um, there's one minor exception to that, which is, if you accept an answer, like, Michael, when you accepted the answer to your question, you actually got plus two rep.  It's a very minor rep boost.  That's probably why you have 82 rep, actually

[24:25]

Pryor: Oh, it just went up, since we were recording this. That was good. I'm 107 now, so...

Spolsky: Hey Jeff, I had an idea for a badge.

Atwood: Wow, impressive.

Atwood: What's you idea?

Spolsky: Uhm, `founding members' that you give to all the beta-testers.

[Garble]

Atwood: We're gonna get that.

Atwood: There was some resistance on the comments, but I think I'm gonna overrule the people. 'Cause the people participating in the beta are really... I mean.. Beta testing is not that fun, in my opinion.

Spolsky: Yeah.

Atwood: So I think they are giving me some of their time, and I think they deserve a little something for that.

Spolsky: It's also recognition that they where here at the beginning, and it motivates people to get in an get there accounts set up by, whenever the beta test ends. You know, 'cause otherwise their never, ever gonna have an opportunity too earn that badge again.

Atwood: Right. Yeah, and it's interesting having a community of programmers test your site. Let me tell you, they really test the crap out of this. [Laughter] I've seen the weirdest things happen, that I'm just sure, on a typical user site I wouldn't have gone to a year, or maybe even never... So it can be kind of fun.

Spolsky: This is... Jeff, is this the most heavily used site that you've ever worked on?

Atwood: Oh, probabily. I mean, I'm sure. I mean, just yeah. Let's say, probabily without a doubt.

Pryor: And it's still in beta.

Atwood: Yeah.

Spolsky: Yeah, and it must have--

Atwood: We have a pretty constrained audience already.

Spolsky: How many, [uhm]. How many people have you approved for the beta?

Atwood: I think we're at 3000 now, but that doesn't mean they have al joined. Uh, the interesting thing about the badge system, and I think Micheal brought this up. You can sort of see... You know, this is the MySpace game. "We have a hundred million users." Right?

Spolsky: Yeah. [laughs]

Atwood: You really have a hundred million active users? I don't think so. Well, if you go to the badge-page... you can see how many people have done certain thinks. That is actual activity, that is measurable activity in the system, right?

[Garble]

Spolsky: That means 1009 people have answered a question?

Atwood: With at least one up vote. That's right. Yes, absolutely.

Atwood: The badges, in addition to being fun, actually tell you stuff about the system and also the user, right. Like how well do they know the system. If they have 10 bronze badges then they know it pretty well. So all this stuff is there for a reason. None of this stuff is there because I thought it would be, like fun to have a game. Uh, the end-state of this, is producing useful information that goes out into the world...

Pryor: What's the colored dot, next to the badge?

Atwood: Oh, so we have... Oh, it's the Olympics thing we have, it's very convenient. It's gold, silver and bronze.

Spolsky: Which is bronze and which is gold?

[Laughter]

Atwood: The yellowish ones. I mean, I can adjust the colors if you really... if that's a serious question.

[Garble]

Spolsky: Yellow is gold?

Atwood: Yes.

Spolsky: Ok.

Atwood: I can't make the colors metallic on you monitors. I'm sorry, I can't. We don't have that technology yet.

Pryor: Doesn't Java do that?

[Laughter]

Spolsky: No SQL Server, you need SQL Server.

Pryor: Oh, right.

Spolsky: Yeah, SQL Server.

Atwood: So, let me talk about... real... I don't know if we've monopolized a lot of time. But it's exciting, 'cause this is honestly, everybody listening, this is really the first time I've talked to Joel about the actual live site.

Spolsky: It's actually, let me just conclude... my initial feedback. I've got two more things. They're kind of small.

Spolsky: One is... to me like... The only thing that we really need here, you probalily know... you're probabily a lot more involved... But the only thing I really wish we had is RSS.

Atwood: We have it.

Spolsky: Oh we do?

Atwood: Yes, bottom of the page.

Spolsky: Can I subscribe to a tag?

Atwood: Yes, you can.

Spolsky: Ok, done. Never mind, we don't need that.

Atwood: Right, you can also do tag combinations, which is not very discoverable, I need to work on that. It's space-delimited at the moment, because we allow "+" in C++, which I'm kind of regretting now.

Spolsky: [Laughs]

Atwood: Cause the standard convention is, you sorta use "+", that's sort of the typical tag combination in the Web 2.0 world, but we use space for that reason.

Spolsky: Wait, but how do I do this? Tell me how to subscribe to 2 tags.

Atwood: Well, go to a tag... tag browser... Type in whatever tag your looking at, or just click on it. And then scroll down to the very bottom of the page, you should see a little RSS-icon.

Spolsky: Oh, yeah.

Atwood: Uh, it's also in the auto-discovery, there's a link in the header. So just point your software at the page.

Spolsky: So, you were saying space, so I can just change this URL to be like feeds/tags/ruby+python for example?

Atwood: Yes.

Spolsky: Oh not... but you said is was not +, it's space.

Atwood: It's space.

Spolsky: Wait, wait, wait, sir. Space is + in URLs, isn't it?

Atwood: Uh, it can be.

Pryor: You can also use %20.

Spolsky: Uh, well I tried that, but its not getting... OR it's doing AND. Alright, we'll debug that later.

Atwood: Oh, it's doing AND, it's definitely doing AND, did you want OR?

Spolsky: So I type /tags/ and than what do I do?

Atwood: Well, what I always use as the example is HTML space CSS.

Spolsky: So there is a space in the... No, I'm not getting any questions that are tagged that. I put a space in the URL?

Atwood: Oh sorry, its /questions/tagged/html%20css Yeah, that works.

Spolsky: Huh.

Atwood: That was something Jarrod insisted on, he believed that... to be "questions tagged"... I blame Jarrod.

Spolsky: Ok, pretend I'm retarded.

Atwood: Ok.

Spolsky: I can figure out how to subscribe, to like 'Windows'. 'Cause there's a tag feed for that. I see /questions/tagged/ ok, so I say Windows and then I put a space, right there in the address bar and I say like C# for example.

Atwood: Yeah, well C# you have to escape the pound. So it'd be like %23. It's easier if you use my preferred example of HTML and CSS, plus it makes sense.

Spolsky: CSS?

Atwood: And you can extend it to work with whatever keywords you want later.

Spolsky: Hmm... this is really doing AND, it's not doing OR.

Atwood: Yeah, its doing AND.

Spolsky: It's doing all things that are HTML AND CSS?

Atwood: Yes.

Spolsky: But I want OR.

Atwood: Ok, well thats something... We should but that on the feature request list. I mean, we can do it.

Spolsky: Its not that important. I was just thinking, I may want to subscribe to an RSS feed that gets the seven things that I'm interested in.

Atwood: Right. No that's fair.

Spolsky: That's really small, because other than that, I really think that it's like ready to go live, other than just scaling issues.

Atwood: Well we're not gonna... yeah we're gonna go to the end of the month for sure. 'Cause there's still some things I wanna implement and some other testing I wanna do.

Spolsky: [Approves]

Atwood: So, continue with your feedback list.

Spolsky: Well, nothing. I just wanna say... you know what? I... like this morning, it suddenly occurred to me that this is gonna be huge. I mean, you've actually, like now build this thing. That most programmers are gonna know about. In the same way that most programmers know about... I don't know...

Atwood: Slashdot?

[31:38]

{to be transcribed}

 

[36:10]

Atwood: So let me briefly talk about a couple key features I think we need that people are kinda clambering for, and I think Michael so of the things you were bringing up I think will be addressed by what I cover. 

Pryor: Excellent.

Atwood: Right off the top of my head - people want to be able to bar certain tags from appearing.  For example, a lot of people were really annoyed by the meta discussion around StackOverflow and I can't really blame them.  So they wanna essentially blacklist that tag and say, "you know what?  For my page, don't show that tag."  So, that's sortof in the works, and also along the same lines, like, "these are my favorite tags.  These are the tags I really wanna know any time something happens."  Consider the home page.  There's a Ruby question.  I don't really know anything about Ruby.  I might get a kick out of reading through it, but I can't really answer it, can I? 

Pryor: Right.

Atwood:  So this is really about filtering essentially the home page and maybe your user page.  So, that's in the works, probably. 

Spolsky:  I think a lot of people will wanna just go and choose the ten or twenty tags that are technologies that they work on.

Atwood: Right.  And we'd also talked about having this sorta be self-learning.  So if you look at your profile, for example, my profile.  If I look at the number of tags, I have 48 StackOverflow tags, ha ha ha. 

Spolsky:  Oh!  So, you might see those.

Atwood: Which means, yeah, I've been replying to a lot of StackOverflow threads.  So, I might wanna see those.  I have C# and regex, which is actually pretty accurate.  Ha Ha.

Spolsky: [Laughs]

Atwood:  So, if you took the top three tags, uh, in hacking, which is great, 'cause I am totally a hack, so, the top four tags would be perfect.  The system could just filter for me on that. The other thing that's come up, because again we're sitting in the middle of a confluence of sorta like a wiki-type no ownership, and a discussion forum, where there's clearly ownership.  And not only that, but you're getting reputation.  If you're getting reputation from something, clearly you own it. 

Spolsky: Yeah.

[38:01]

Atwood: These systems don't really match.

Spolsky: There's a weird thing which is you feel like, you know, if I wanna go edit somebody's question, I don't wanna take away from their, you know, ownership, from their moral, you know, moral rights, it's called in copyright law, basically, they wrote it, they should get some credit for that if nothing else.

Atwood: That's right, that's right.

Spolsky: But I still wanna enhance what they wrote.

Atwood: Yes. So I've done, I've thought a lot about this, there's been a lot of meta-discussion on stackoverflow on this topic, and I think people were concerned for good reason. One is, they don't want people to edit their stuff. Certain people just may not buy into the whole concept of the Wikipedia-style editing anyway. But I want to make it very clear when they come to the site that's kind of the goal here. So if you're totally are against that, you're like, "OK this is my content and nobody will ever touch it", this probably is not the site for you, right? But, that said, I do understand that, say, Joel, you enter a post, I go in and edit a significant percentage of it, and you have to sort of have to do the math to figure out how much of it had actually changed, which we have, uhm, and then Michael you go in and then change that even further. Does it really still belong to Joel at that point? So we're going to have a threshold, which is basically number of people and size of the edits, that will push the post into what we call "community mode". In community mode, you can still vote on it, but nobody gets reputation from it. And there's no signature block on it. There's just a revision history, like it'll show the last editor.

Spolsky: So you can--

Atwood: But that takes away the concern, I think. And there's two ways you can go, two ways this can happen. One, automatically, because I don't want to, it's gotta happen automatically for the system to be sustaining. So once you reach the threshold, you're in this community mode, uhm, although you can, if, Joel as the owner of the post, if you wanted to reassert ownership, you could. That's possible as well. Uh, the other thing you could do is, Joel, when you ask a question, you could opt out. You could say "You know what? I don't even wanna own this post. This is not going to be a Joel post. This is going to be, anybody can do whatever they want with this post. I'm gonna opt out, of ownership at that point."

Spolsky: Mh-hm.

Atwood: So, it's the kind of thing where you can kind of opt-in initially, it happens automatically, and then you can also revert it, like, if you if, say, somebody say griefs you and kicks your stuff into community mode by continually editing it like a pack of roving dogs, or something, you could actually opt back in and revert ownership of your stuff if you want.

Spolsky: Maybe under those circumstances you don't require as much, uhm, aah, reputation to edit.

Atwood: Reputation to edit, yes. And that also solves that problem you guys were talking about. And I do agree with that, there's a little bit of a disconnect between those two models. But I think that's what makes our system really interesting, is that we're trying to sit in the middle there, and do something I think relatively unique that hasn't been tried in quite this way before.

Spolsky: Yeah.

Atwood: So I'm a little comfortable pushing the boundaries a little bit. Although I do want to disclose, so people know when they come to the site, they're not like "Oh my God," you know, "nobody told me that people could edit my stuff!" I don't want people to have that reaction.

[41:01]

Spolsky: Hey I just thought of something,  uhm,

Atwood: What

Spolsky: You were talking about I can't keep the FAQ up to date.  Why don't you.. You got that FAQ link at the bottom.  That just needs to go to, uhm, slash questions slash tags slash stackoverflow.

Atwood: Right

Spolsky: In popularity mode. Done.

Atwood: Right.  I have thought about that.  There's one or two other things I need to implement before I can do that.  But yeah, that definitely has come up.

Spolsky: No, just change the URL.

Atwood: Even the user voice system that we use

Spolsky: Mh-hm.

Atwood: you could almost use stackoverflow.  The system itself could be used to track its own bugs almost, right?  You can vote on them,  There is a history.  You can put tags on them.  It's weird, you can almost use it as a meta-system to describe itself.  So I do agree with that.  That eventually we will get there.  And the third thing before we get too sidetracked um so the issue of discussion within the answers.

Spolsky: Mh-hm.

Atwood: I agree it does come up, but I don't want to create like a full blown message board.  I want people to have a focus on answering the freaking question.  Right? Like I don't want.. There is gonna be some discussion, but I don't want to encourage it.  I don't want to have all these things in place where people can have these long drawn out discussions where people can go back and forth in the answers.  But, at the same time it would be nice to add annotations to somebody's answer, right?

Spolsky: Mh-hm.

Atwood:  So what we're thinking is were going to add another table, and it's almost going to be like twitter where we are gonna say "Look, you can't write a whole long diatribe here."  All you can do is add like 200 characters and say "This is wrong because you forgot in your regex, you know, that this character does this." Right?  So you can add an annotation thats attached to the answer.  Because thats sort of little meta-discussion.

Spolsky: But wait wait.  Should'nt that be just go and edit it?  I don't know but the wikipedia way would be this is wrong and I'm just going to go edit it.

Atwood: I've thought about doing that too.  I've thought about having a mode where you could say, add a comment - even if you have a low rep - say 50.  It wouldn't take much rep to do this and all it would do is add to the bottom

Spolsky: What you're saying is that if I have low reputation, I add it to the bottom and then somebody else has to come along and decide whether or not to accept my comments and incorporate it and edit it into the original answer, or just delete it and hide it, or just to ignore it.  Why not skip all that work and just go straight to the immediate phase of if they think it is wrong, go in there and edit it?  And then if worse comes to worst, they get into a Wikipedia-style edit war, but honestly it's worked well for Wikipedia.

Atwood: It has, but what you have to realise is that we're not quite the same thing as Wikipedia - 1) we don't really have the broad ... our questions are narrow even by Wikipedia standards where there's like a Wikipedia entry for every comic book character ever.  We're even more narrow than that.

Spolsky: Do they have little dot?

Atwood: I'm sure.  Oh, I guarantee you it's out there.  So there's not as many eyes on this stuff, so it needs to be a little more self healing than Wikipedia is, I think.  But I have definitely thought about what you're proposing, which is having a low rep edit mode which only lets you add like 100 characters to the bottom as an edit... right, so there's no new code required for that solution, right?  I just go in, and I grab the current revision, add some stuff to the bottom of it and then publish it as the current revision with that guy's signature on it.

Spolsky: Mhmm

Atwood: I've thought about that and we might end up doing that, I'm not sure. But the goal is pretty much to reduce ... I don't want to have too much discussion or comments - in the answers, rather.  But I do also want to at the same time acknowledge that people really have a desire to markup without full-blown editting - a desire to slightly markup some of the answer's that they're seeing.

Spolsky: You know what, here's another possibility is to give people two options - add an answer or comment on this - and if they add an answer it shows up like it does now.  If they, say, comment on this , it shows up on the bottom and can't be voted on.

Atwood: Right.

Spolsky: So it just stays in chronological order and then they can have their conversation at the bottom - below all the answers.

Atwood: Well, the conversation would occur under the answer that they're discussing. 

Spolsky: Oh, you mean it would be per answer?

Atwood: Yeah, it would be per answer for sure... but as I said, they would get no rep for this.  There's not a whole lot of incentive to do it - it's just if you want to comment on somebody's answer for some reason

Spolsky: You know, I'm sure we're gonna get great answers from the community about how to do this - and actually that might be a good opportunity to invite people ... if they have a suggestion, or some logical reason they want to disagree with us, this might be a good opportunity to, say, record it as an MP3 or OGG Vorbis file and email it to podcast@stackoverflow.com

Atwood: Right.  Well I feel like we've done.... I know Joel, before you left on your trip, you'd said you'd had some reservations about discussing a site that most people can't see.

Spolsky: Ah, but they can in two weeks right?

Atwood: Yes.

Spolsky: OK, so what's the way you can get on the ...uh... the beta list is you to www.stackoverflow.com, right...

Atwood: ...no...

Spolsky: ...and then you click on uhh... no... how do you sign up for the beta?

Atwood: It's only a blog entry at the moment.  I don't have like a formal signup link - but it's the August 1st blog post has the direct link to the signup.

Spolsky: Ok, so that's under.... blog.stackoverflow.com?

Atwood: Yes [Talking over each other] I don't remember the title...

Spolsky: [Visiting the website] ok... private beta... [hums]... wait, where does it say how you sign up?

Atwood: It's sort of near the bottom.  It's not super obvious.

Spolsky: Direct email. They're just emailing you?

Atwood: No, no, no - there's a signup link.  Are you gonna actually make me go to the post?

Spolsky: I'm confused....Oh, "click here to sign up for the beta"....ok I see-ohhh it's just got all kinds of letters... spreadsheets.google.com... ok it's a big mess.  So what you want to do is go to blog.stackoverflow.com for our listeners who want to sign up, and look for the thing that says "Bad News/Good News" and it's got like a little toilet paper mascot there...

Atwood: [chuckles]

Spolsky: ...and then in that post there is a magical link that you can use to sign up for the beta and all our listeners should do that and get signed up with a real account and stuff like that because that's the only way... even if you don't plan to use it, it's the only way you're ever going to get that beta tester badge, which will never again be available.

Atwood: That's right.

Spolsky: So hopefully that will cause a flood of people to show up.... uh what else did I want to say?  So you thought the beta was pretty much just to the end of this month - so that's what, 9 more days?

Atwood: Yeah, well it's a little bit more than that - it's a long month, it's like 31 days, so...

Spolsky: Ok, cool - because really there's sort of several phases to this whole building of stackoverflow and the first phase was building the first minimal version that people could see.  The second phase was the controlled beta to get it good enough to release in the world.  And then the third phase, which we're about to go into, is just try to build the audience as fast as possible, to as many people as possible.

Atwood: Yes, that's right.  Now, I talked about taking some listener calls, but I feel bad we've had Michael on the call and we haven't given him...minutes to tell his story, have we?

Pryor: What story?

Atwood/Spolsky: [laughs]

Atwood: The early Fog Creek story.

Pryor: Do we have time for that? How much longer is this... umm..

Spolsky: ... we got at least 10 minutes.

Atwood: So how do you know Joel? How did you meet Joel?

Pryor: Ok, so I was working at Juno as an intern.. actually D-Shaw's(?) hedge fund in New York decided to start this company, Juno, and it was like a free email provider back in the day when everyone had to dial up to the internet - and you would run their application and it would dial up and check your email and show you ads at the same time.  And I was their first intern, and right about the time that I was interning, Joel started working there fulltime - and so I worked there for the summer, came back fulltime and he and I worked on the same team - on the client team - working on the code, so that's how we met.

Atwood: Very cool.  And then... so did Joel sort of suck you into his vortex of this Fog Creek...

Pryor: Well yeah, this was like 8 years ago...I think he was kinda unhappy at Juno, and he left before I did, and I mean a couple of people had been leaving ... this is sort of the market tank that ...[laughing/fumbling for words]... we were one of the first broken IPOs (Initial Public Offering)... you know when they come out... lower than... the day that they go IPO, the stock closes lower than the opening price - they call it a broken IPO.

Atwood: [laughs] The backwards IPO.

Pryor: So you know, we were all sitting around counting our chickens... our golden chickens before they'd hatched and I think after that happened in the market tank then some of our friends started leaving; I don't think Joel was very happy there... this was my first job, so I had nothing to compare it to, but he left was just sort of.... I guess you were freelancing, right? You were working for Google and other companies, writing code?

Spolsky: Umm, I was doing something [laughs], but mostly I was on vacation I think.

Atwood: Your first post was like "let's take a sabatical" if I recall.

Spolsky: Yeah, that was then and I was taking a sabatical - although I think I had at least two consulting gigs, which pretty much got me half busy, and then I was writing kinda the first version of joelonsoftware... uh, you know a lot of those early articles were written when I was just sitting at the beach.

Atwood: Right.

Spolsky: I did a consulting gig for Google for about four weeks that was the most money anyone has made for four weeks [laughs] in the history of the universe, probably, because it was paid in stock.

Atwood: Oh wow, nice.  So Joel - what drew you to Michael? When you started a company, what made you say Michael was the man ?

Spolsky: Umm, I couldn't get anyone else to go along with it

Atwood: [laughs] You picked the uh... vulnerable intern, didn't you?

Spolsky: [laughs] I think so...

Atwood: He just didn't know any better - you had a car, he was just impressed that you had a car.

Spolsky: [laughs] He didn't know any people...

Pryor: I think we were just friends first; we were hanging out a bunch, I mean when we started the company I had this grandiosse idea that I was gonna start a different company before we started Fog Creek... um that was kinda ridiculous...

Spolsky: Oh yeah, Docido(?).

Pryor: Yeah, I had this idea that you could... um... you would send in your old CDs to us and then you would say, like, which CDs you had and which CDs you wanted, and then we would find links between people and we would just send you an email, and say ok - you send this CD to that person; and then they'll send a CD to another person, and then eventually you'll get the CD you want back... um, there's actually a site that does that now... um, but it was kind of a ridiculous idea at the time... and um, it was kinda cool, but at that particular time it was a little late to the party; I think if had that same idea, like, two years before that... you know I could have... [changing topics]... but I guess we were just kinda hanging out, he thought that instead of doing consulting on our own we should team up together and... uh... so we did.

Atwood: Right, and so those early days - how long was it just you two?

Spolsky: Not so long actually, I think we started... boy were we stupid, because I definitely remember saying, "Let's hire four more people right away..." [laughs]

Atwood: Wow, really?

Spolsky: So we started calling people up and putting up [ads]... oh yeah, that's how stupid we were [laughs] like, without knowing where the money would come from, now...

Atwood: Where can we find the bones of these people you hired... where are they buried now?

 

[53:28]

[58:55]

Atwood:  Yea. Now I'm scared. You guys are making me think that we're going to have all these scaling problems.  So now I'm kinda worried...

Spolsky:  I actually do think that we're...(laughs)

Pryor: Actually, I just had a... I was posting something and some ASP.NET error came up of lock contention on some row somewhere.

Atwood:  Yes, yes. Deadlocks.  We have a deadlock issue.

Pryor: Yea.

Atwood:  Which we'll talk about after.  Well, we could talk about it on the call but it's going to go really long if we do that...

Pryor:  Hey, how come the badges aren't....

Atwood: ...uh but...

Pryor: ...oh, go ahead.  Go ahead.

Atwood: ...well, before we end, 'cause it's getting close to the hour mark, uh, I did want to mention, Joel, uh, I met Merlin Mann at the start conference.  Which was, like, a week and a half ago.

Spolsky: Oh.

Atwood:  And I made a point of meeting him.

Spolsky:  Yea.

Atwood: Because I wanted to tell him that, first, I'm a fan.  I think he does a great thing with his 43 folders and he's a really smart guy.

Spolsky: Yea.

Atwood: Um.  He was much less... I pictured him as older and grouchier for some reason.  He was like a terrier.  He like ... He actually hugged me...

Spolsky: (laughs)

Atwood: ...when he saw ... he was like "Ohhhh! You're that guy!" He's like, he hugged me!

Spolsky: Really!?  Wow!  He's hilarious.  I love Merlin Mann.

Atwood: I know! He's great! And he told me to tell you that he's a big fan of your -- obviously -- your stuff and he said he's uses one of your quotes in, like, a key slide in his presentation that he gives.  So, He's a big fan of yours as well. And I told him -- I told him that...

Spolsky: I saw that presentation, and I'm like "Oh look! 'The Zero Inbox' " or something.  Is that what it's called? 'The Empty Inbox'?...

Atwood: Yes.

Spolsky: ...presentation.  I'm like "This is what I need to do."  And actually, I've started doing that since seeing his presentation.  So, I watch it, and all of a sudden he's quoting me. (laughs)

Atwood: Yes!

Spolsky:  And there's this really weird circular... So Merlin Mann and I are just going to go a room and just sell each other rocks for the rest of our lives.  And get rich selling each other rocks.  We don't need the rest of you other people.

Atwood: And I told him you're also a big fan of his, uh, his podcast 'You Look...'

Spolsky: 'You Look Nice Today' is hilarious...

Atwood: And did relate to him that...the joke that you subjected me to...

Spolsky: (laughs)

Atwood: And started laughing, because he finished the joke, he knew exactly what I was talking about.  He did.  He was like "And the L stands for..."

Spolsky: (laughs)  That was hilarious.  That is.  That is the funniest podcast.  And they really do a... I mean they... I wish that we could put as much work into it.  I think they probably record several hours and spend a couple of days editing, to put that together as, with as high quality as they do.

Atwood: Right.  No, I'll definitely link it in the show notes.  But I just want to mention that for you and...

Spolsky: 'You Look Nice Today', definitely not safe for work.  I'll say that in advance.  But, definitely the best -- probably my favorite podcast of all time.

Atwood: Yes. Well any other final notes before we...

Spolsky: No we spent a lot of time talking about SO, but it really did... Like the Beta launch, and there is so much to talk about.

Atwood: There's a lot to talk about.

Spolsky: In future weeks we maybe we'll hopefully get back towards more of  a combination of talking about software development.  There's a bunch of stuff, I have a bunch of questions queued up about software development  issues that are relevant to SO and not. And to our listeners, if you have any questions. Let's see I guess we should do some quick announcments at the end. Again a reminder to sign up for the beta of SO, it's your last chance to get that badge and... That was the first thing, now what's the second thing? Oh we got this conference coming up, "The business of software conference" which we mentioned early on. Jeff is not coming but I'll be there. And ahhh just google for "Business of Sottware" and you'll find that. It's a couple of days with some great speakers like Seth Godin and uhh, me, Eric Sink.

Pryor: Jeison Freed.

Spolsky: Jeison Freed. Who else do we have?

Pryor: Richard Stallman.

Spolsky: Richard Stallman. Ooh it's gonna be interesting, talking about the business of software. So that's in Boston in a couple of weeks.

Pryor: Use "Fog Creek" as your coupon code.

Spolsky: Really?

Pryor: Ye, hundred dollars off.

Spolsky: And finally if you have any quetions for SO or comments or feedback or anything you want to what you gotta do for the podcast is record it as an audio file and email it to podcast@stackoverflow.com and if we got time we'll play your question and maybe even answer it. So I think that's it, thanks for coming. Any last words or promotions or side comments.

Atwood: No, thanks Michael for being in the call it's nice to finally meet you.

Pryor: Ye it was good to meet you too, I hope we meet in person some time soon.

Atwood: We will.

Pryor: Ok.

Spolsky: Alright, thanks a lot everyone and I'll see you next week.

[Fin]

 

[incomplete]

Ads, intro

[1:00]

Atwood: Hi Joel.

Spolsky: Hey, it's Jeff.

Atwood: Yes, you're back.

Pryor: You're back.

Atwood: Oh and Michael's on the line, nice.

Pryor: Yes, it's me.

Spolsky: Today we got two Fog Creekians, for those of you who don't know Michael Pryor is the co-founder of fog creek software, and...

Atwood: Yes, well welcome to the call, it's good to finally meet you.

Pryor: Thank you.  Are you going to the business of software conference?

Atwood: I am not. 

Pryor: Oh [disappointedly], I thought you were.

Atwood: No, I'm not in the business of software.

Spolsky: We should get you as a speaker next year.

Atwood: [laughter], Ha ha ha.  Well, I'm gonna have to start my own conference, man, and I'm gonna compete with you... Like right across the street from where your conference is, that'll be my conference.  Be like the business of software by Jeff.

Spolsky: It could be like the business of software camp.

Atwood: Yes, that's right.  A competing conference.

Spolsky: So we've got a big week today, 'cause I've been away for weeks and weeks. 

Atwood: Yes.  How was your trip by the way?

Spolsky: Well there were two trips involved.   The first trip was... The first week I couldn't do it because I had to go up to Boston to talk to the Y-Combinator startups and tell them how venture capital was bad and that Paul Graham was setting them on course of self-destruction and conflict with venture capitalists, which is something that he always likes me to talk about.  And uh, uh, the last week was just my vacation.  I was off in Israel where it is hot.

Atwood: Right, you mentioned that.

Spolsky: But, I do want to say that the opera mini is an excellent browser for looking at StackOverflow.

Atwood: Well good.  What kind of success did you have browsing StackOverflow with Opera mini?

Spolsky: Uh, well first of all it worked great. Well, I guess the main thing I want to say, and this is sort of initial feedback, is that I am shocked how good StackOverflow is. 

Atwood: Well that's good to hear. I was curious, I was actually dying to talk to you this whole time because I was curious.  We were just never able to schedule a face to, not a phone a call for you to look at the site and give me your initial feedback.  Literally you guys are hearing the first thing I've ever heard from joel, specifically directly on StackOverflow, the actual site.

Pryor: I heard him exclaim, he said it was awesome.

Spolsky: It really is.  I mean, the first thing I noticed is that like the minute that you open it up, people sort of floated in and started asking questions, and they were getting answers, like right away.  Even with a very small number, you know, even with a very small community of people. 

Atwood: Right.

Spolsky: And uh, so that was pretty awesome.  That was a sign that it was going to work, really.  But then you know I asked two questions, and the first one I got an answer in 30 minutes and the second one you had answered an hour previously, coincidentally, [laughter] and the search worked great, so as soon as I typed the subject, and hit tab, it found the answer to my question. 

Atwood: Cool.

Spolsky: It's really amazing.  I was trying to make.. What was I trying to do? I was trying to make, oh, one of those [uh], oh, I needed a regex for a URL, that excluded trailing punctuation.  

Atwood: Uh huh.

Spolsky: Is that the one you answered? Everybody knows about that problem right? You're trying to make regular expression for a URL, and dots and commas and question marks are all legitimate and common in URLs, but if you're trying to take some text that somebody writes, and make the URLs into hyperlinks, they will often write a URL and then a period or a question mark or a comma, that they didn't mean to be a part of URL.

Atwood: Right.  Well actually to be fair, I copied that.  I used a great tool Regex Buddy, which I still think is by far the best tool on the market.  And it has a library of common functions.

Spolsky: Oh so this is actually a tool not a web site?

Atwood: Well, regex buddy is a tool, and it has a corresponding website.  If you do a search on regular expressions it has pretty much the highest page rank of all the sites on just regex information, and for good reason.  It pretty much kinda wrote the book on, I mean he wrote his own regex parser because it can...  There's differences in the flavors of regular expressions on different platforms.  This is an engine that's flexible enough that it can actually emulate other libraries. 

Spolsky: [laughter].  So it's like.  It reminds me of borland when they wrote turbo assembler, there was a command-line argument that that emulated the bugs from microsoft macro assembler.

Atwood: Right [laughter]

[5:18]

Atwood: And some of them are pretty common, like in JavaScript regex for example you can't do backwards references, like backwards matching.  When looking for things that precede the match you can't really do that.

Spolsky: Oh.  

Atwood: For example.  I mean there's all these little quirky little differences.  I mean the core functions are all the same in most JavaScript libraries.  

Spolsky: I have to say, once you get to anything more complicated than, like, you know, "Is this a number?" kind of regex, it always looks to me like...  I don't even want to say a hieroglyphics.  It looks to me like a puzzle, like one of those puzzles you find in the back of Make magazine.  

Atwood: I've been, since I'm at home a lot more, I've been trying to explain to my wife Betsy, just show her some of the things we're working on.  And it's interesting because she really loves puzzles, she does crosswords and all these kind of puzzle things and I have no patience for puzzles like that, but a regex, or coding stuff

Pryor: I need a puzzle.

Atwood: That's right, you're a puzzler.  You're a puzzle guy.

Pryor: Yeah, I have to write an article like today, so if you have any good puzzles tell me.

Atwood: But to me a regex, a regex to me is a puzzle that's actually fascinating.  Not to an absurd degree, I don't want to create something that's actually hard for other programmers to maintain.

Spolsky: Oh, but it always is.  It's like those Guardian cryptic crossword puzzles.

Atwood: It can be.  I mean it's definitely a trade-off there, but I think you made the same argument about like lisp for example where it just looks like this indecipherable jumble of parens.  You know? But to some people that's fascinating, and they really enjoy that, and there's sort of a puzzle factor to code that I think there's an interesting cross-over there.  But I'm glad you got an answer to your question. And I did see that you posted.

Spolsky: Yeah, um, I posted, not on that one, I asked a question on something else I think.  I thought I would go in and answer a bunch of questions but they were all too hard for me.

Atwood: [laughter]

Spolsky: I don't know any of the answers.

Atwood: Yeah, the community has been great.  I think it's really a testament to how the quality of the audience we've been attracting, you know, it's about them really, it's about them having a place to go to do stuff that's, you know, it's easy and it's fast and it's simple and clean.

Spolsky: Yeah.

Atwood: It's really a very simple proposition to me, that we're doing.

Spolsky: Yeah really, this is going to sound, and our listeners are going to think we're the most self-self-smug-self-satisfied people that have ever blessed the world, but I mean it really is clean and it works, and it's so simple and clean, and works.  I dunno.  It looks clean, it doesn't have, uhh... Maybe that's just like every new website starts out looks clean and there's all these people always trying to think [good?] things.

Pryor: I have a question about StackOverflow, Jeff, for you.  So, when I was playing around with it, and I know there's already a topic about this, What are you planning to do for the discussion versus answer issue when somebody's like coming on and they start having a discussion and it's not clear the chronology about the discussion and it screws up the ... You know what I'm talking about right?

Spolsky: The discussion gets all chopped up because the voting.

Atwood: Yeah, well I think the central problem is, and it was a little disconcerting, it's partially understandable because [sigh], it's a new site so people are trying to figure out how it works, but it was a little disconcerting that the first week, almost the highest number number of tags, as high as any other topic in the system, was the system itself.  So, I was a little disturbed that we've built a system for discussing the system, you know?

Spolsky: [Laughter] That all, well that'll wear off.

Atwood: Yeah, that'll wear off, that's my hope that that will all wear off as I actually need to codify a lot of that stuff in the FAQ, and the reason I haven't is honestly that I've been changing the rules about how stuff works, like pretty rapidly as people start doing things.  But one of the core issues that does come up a lot, and joel, I know you and I talked about this a lot when we were setting up, initially talking about doing anything like this was This is not necessarily a place for programmers to just come discuss random topics, it's supposed to be focused around questions and when I say questions, and when I say questions, I mean a question that actually has some kind of objective answer.  Not, you know, what's your favorite, like here's one I saw, "What's your favorite RSS feed on Java? What's your favorite Java blog?"  I mean, this isn't really a question that can be objectively answered.  I mean, it's an okay question, but it's technically not what we built the system to do.

Spolsky: Well you know, umm, that would work... That particular question would work well if everybody answered with one particular answer, and they just voted, and then it becomes a vote on you know the favorite Java RSS feeds.

Atwood: Some of them can work, but there's even more discussy type topics coming up, and I think the less focused the question is, the more you're going to have this intra-answer discussion, that I think people kind of get confused and understandably, because you're having all these - there should be only one conversation that matters. To me its kind of like, this is where StackOverflow is kind of like my blog. When I post a blog entry you are going to discuss my blog entry, not because I am the most important person in the world, but because that is the topic at hand thats the thing we are discussing thats why you came there, right in the first place, was; oh here's a topic that I'm kind of interested in. Interested enough to leave a comment. Now, its true that even in a long focused blog entry you'll get people that are discussing amongst themselves, but if it becomes really dominant then, you know thats where I think the problem is where you have a blog post topic or a question if you will, thats just not focused enough for people to really directly address it.

[10:55]

Pryor: Well, you... you end up with a lot of cruft on your... on your blog post then at the bottom, you know. So, like it... like, it's hard to keep people from discussing these things. I don't know if you're gonna change the system so that it prevents people from... Like, it sounds like you're saying the system isn't designed really for that type of thing - that's not what you made it for - but the people are gonna discuss regardless. You know what I mean? They're going in there and they're doing it now. And there's no sort of outlet to keep that discussion somewhere else so it's not cluttering up... Like if you're a person who's just come and you're like, "How does this work?", you know you can read the FAQ but even if you come in you're just gonna starting talking about things.

Spolsky: What I've seen... [interruption]... happen is somebody asked the question and you need a bit of clarification and the obvious thing to do is put in the answer. You know, could you clarify it? Or sometimes you'll see somebody will provide half of an answer and somebody else will say, "Well, you know, that's not right because such and such" and, um, it might be... I mean one possibility might be to move that into the talk. Another possibility, you know like have a separate talk page for every question where you can carry on any kind of discussion  you want about the answering of the question. Or another thing is, I think just over time people will develop standards where they just learn to edit things rather than to discuss, where they realise that if they try to have a conversation that their answer...

Pryor: You can't edit things, though. That... that, like that's... that's like I asked a question I had, like I had a couple different answers. Yeah, you have to get to a certain point. But like, when the new people come that don't really understand how it works, it's even worse because they're the ones that are going to be talking because they can't go and edit something, so there's a small critique or a small change that they want to make in the answer, they can't really do it for a while. Like, I still can't do it and, I mean, I don't, I... I haven't used it that much but I don't know if, [um]...

[12:44]

Spolsky: Yeah, how many, [uh]... how many karmas do you need before you're allowed to edit stuff?

Atwood: Well, by "stuff"... really, you can edit your own stuff immediately as soon as you associated an OpenID with your account so we can actually tell who you are.

Spolsky: Because I was thinking it totally made sense to me when it said you need to earn a certain amount of karma to edit other people's posts or to change the tags on them. [um] But then it also occurred to me that there's going to be a lot of people that want to make, like their first dipping of their toes in the pool, so to speak, maybe just to make little syntax corrections or grammatical corrections or just slightly, you know to reorganise things. Like, they may not have that much to contribute in terms of answers and questions but they just see something spelled wrong or they know a slight improvement that they can make to a particular question or they notice a tag that was wrong and therefore it's not coming up in the right place and they want to make those corrections. Like, I know that... you know for me probably I've made hundreds of corrections in Wikipedia where I'll just see a spelling mistake and I'll go correct it. And there's also only one real article I've contributed to.

[13:42]

Atwood: Right. Yeah, I think that's where... okay, so I think the issue we get into is we're sort of in a weird, somewhat unique place that we're, we're building what is essentially a hybrid of a discussion board type system which is what it looks like at first glance [uh] and a wiki-type system where once you get to a certain level  of reputation, once the system learns to trust you a little bit you can edit literally anything. [Um], you can't delete stuff; we do draw the line there because deleting is like making things disappear... just disappearing things, which I think is a totally different concept. But revisions are always visible, so any time something is edited we do have full revision support in now. We have... and [uh] Jarrod checked in our rollback support as well.

[14:25]

Spolsky: Oh.  So once that's there, it doesn't hurt to let anyone edit anything.

Atwood: Yeah.  I mean we could reduce the bar.  I'm a little worried though, because it does require people who, somebody to be watching all the edits.  Right.  That's where I get a little nervous about that.

Spolsky: That's true.  Wikipedia has lots of people watching everything.

Atwood: Yeah.  I don't think there's going to be quite as many people watching our stuff, cause the questions are so focused and so tiny.  So, I think you'll have to invest.  The current thresholds are: you need 750 reputation to edit tags, to just retag things.  And then 2000 to edit anybody's anything.

Pryor: Oh geez.  I'm never going to do it.  I'm never going to make it.  I'm at like 80.  I'm like looking for questions I can answer, and I'm just like coming up blanks.  All the unanswered questions are really hard.

Spolsky: That's, so that's a problem, Jeff.  Cause, like Michael would be able to, or even me, like I don't have that many points.  I think you might have done something magical on the backend to let me be able to edit things.

[Garble]

Atwood: And Michael I could do the same thing for you cause you are technically a founder, so.

Pryor: But, don't.  Cause then I won't be experiencing it like a new person would.

Spolsky: But I mean a lot of times I'll go into a question and I won't have anything to, that I want answered myself.  Like, let's say that question where I was trying to find out that URL thingamajiggy, and you put an answer there that was just here, use this string, and I had to then go kinda research it, because you had a backslash B at the beginning there, and I didn't know what backslash B did in a regex, so I went and looked up what backslash B did and I was thinking you know I could go and edit this now and say that backslash B is a word boundary, it does such and such.  And then that would make that little answer just that much better.

Atwood: Right.

Spolsky: And that's a contribution I could make really early on in my stackoverflow career.  So I don't know, I have a suspicion that, I kinda suspect that maybe we want to kind of err in favor of more editing so that the, it's really a question of like how to make old questions get better and better and better and always be up to date.  And part of making them better might even be taking you know three or four answers and combining them into one meta answer that really covers all the topics very elegantly.  And I want to sort of see more of that than just people adding on their own tags saying you know Michael you got that wrong, it's actually 27, not 36.

[16:51]

Pryor: Right, but there's not, right now there's no way to do that because you can't, those people can't, like I asked a question about the best way to loop over a record set in C#. It was just like a generic question I thought somebody could... and somebody posted a good answer, and then somebody posted another good answer which was different, and then somebody posted an answer using LINQ, and I was like, OK, these are all good and all three should be part of the answer but I can't go in and edit it and... I mean, I guess it's not, like I'm not going to be able to do that for a long time because I'm only at 82.

[17:22]

Spolsky: And that particular question, like how to iterate over a recordset in C# is... first of all I mean it's excellently phrased, like you can just say, "How do you iterate over a recordset in C#?" And secondly, you know this, the stackoverflow in three weeks that is going to be the canonical site on the Internet for learning how to iterate over a recordset in C#. It just will, it will come out you know, we'll have the pagerank, everybody will point to it, it's gonna be the canonical answer. And the more, it is like the wikipedia page on how to iterate over a recordset in C#. So like the better that article gets and the better the results get, and you know the more people contribute to just like editing and tweaking and like slightly formatting it a little bit better and so forth. That's what I really want to happen, I want that to be like a live encyclopedia entry in the wikipedia sense.

Pryor: Well Jeff how did you come up with the, uh, the limits because I know they changed. Like I remember at one point I could down-vote things and then all of the sudden I couldn't because the threshold got set higher or something because I know you changed that a little bit. How did you come up with those levels and tweak them? Like what's driving that?

Atwood: Right so what we're doing is we're... I'm letting people in, it started at like a hundred people per day, it was up to two hundred now I'm kind of tentatively going to three hundred per day now that we're kind of getting the system working the way we want. And a lot of those initial tuning were done based on watching peoples' behavior and watching the interactions they had with each other. And I mean there were definitely some ruffled feathers around things being marked down, marked negative, things being flagged as offensive that shouldn't have been. Um, also around editing, once people got to the editing threshold there was definitely some "youthful experimentation" I guess you would say [laughs] around editing other peoples' posts and I had to deal with some direct emails and some people who were pretty unhappy with the way things were going. Um, so I think we're just watching the system and we're just watching how people are using it. And there are a number of people at the edit threshold, although I doubled it to 2,000. It started at 1,000 although I realized after the fact that that was just like way way too low. Um, I've increased that to 2,000. But Michael I want to get back to one of your original questions which was OK say you don't understand how any of this stuff works and you just want the answer. Which is gonna be honestly 95 percent, more, probably 99 percent of our audience. So, you would type something into google, right? You would end up on this page you've created, which I'm actually looking at: "How do I connect to a database and loop over a recordset?" You're gonna see two things: you're gonna see the question and then directly under it you're gonna see the accepted answer because those two things sort of always dock to each other, right? Now if nobody has accepted, like you own that question so you went back and you said oh this is the best answer that I think is the best answer. Well say the community disagrees with you, they say well that's a dumb answer. They would down-vote your answer. It wouldn't affect the docking, but the answer directly under it would be the answer the community thought was best. Now, if you're the type of person that does a drive-by question, like you ask the question and you never close the loop and say OK this is the best answer that I found.

[20:42]

Pryor: Cause there is a bunch ... that happens ... it's happening kind of frequently too.  That type of thing.

Atwood: Sure.

Pryor: That type of thing.

Atwood:  No.  I would expect that to the norm.

Pryor: So you're saying is that the community answer is the one that appears at the top.

Atwood: It's all based on [sort]? ordering, so voting. And, and, the reason we have a limit around voting is we found that down votes were very unpopular.  People did not like having their stuff down voted just on principle.  Like, it doesn't bother me, like if I see negative on my thing, I mean it's a little bit of a bummer, but you know, it's minor.  But people really objected to it.  So we made the karma cost for that ... we did something interesting that where it's negative ... so if I down-vote this question I'm looking at, if I click down right here, your reputation will go down two points but my reputation will go down one point.

Spolsky: That one's cool.

Atwood: So there's a cost to me to down-vote you.  And that helped tremendously.  And we also have visibility, like if I click on your username, I can see that you have given forty-three up-votes and eight down-votes, so you can see if it's the type of person that's like a lot of down-votes kind of person.  Then maybe that's just how they are.  I also noticed, it was really kind of touching, some people like only give up-votes.  They will not down-vote anybody.  Like it's just all up-votes.  They have never given a down-vote.  They'll give hundreds, well not hundreds, but at least a hundred up-votes.  I think there is going to be a badge around that, actually, at some point.

Spolsky: Nice.

[21:59]

Atwood:  Yeah, if you can be nice enough to give 200 up-votes without any down-votes.

Spolsky:  Well, that's not...being nice is not necessarily being honest.  I mean, there may be somebody who literally provides a wrong or misleading answer to a question.  Who gives you the answer that is subject to SQL injection attacks.  You know, then you really do want people to down-vote.

Atwood:  I do think down-votes are necessary.  There was the argument that you should take them out.  I think the way to do it is the way that we're doing where up-vote counts way more.  So Michael, if I click up right now on your post you get plus ten, right?  Now compare that to the minus two I could give you.  So, it's worth five times as much.  Plus it costs me a little.  We think that is the right social formula.  Because sorting down to zero is good but I think you should be able to sort a little bit below zero, to indicate the community is a little bit dissatisfied with your answer.  It's not that they hate you personally, [Joel laughs and Jeff speaks during the laugh] this is where it gets weird[?].  People really do take it personally.  Like I've gotten emails from people that are like, you know, "I'm missing a badge."  "You need to look into this."  They've already started to really... the reputation and badge system is really working.  Like to a scary tee.

Pryor:  Oh, well especially since you've actually tied... I mean initially, I don't know if this was the initial goal, but you've tied the reputation and the badge system all together, so that there's actually things you can't do.  You know, so like getting a badge... it's different than raising your reputation but a lot of times they're intertwined.  And so there is stuff you actually can't do on the site until you do that.  So it encourages people to go that direction.

Atwood: Yeah, if you can be nice enough to give 200 up-votes without any down-votes...

Spolsky: [Interrupting] But, being nice is not necessarily being honest.  I mean, there may be somebody who literally provides a wrong or misleading answer to a question, who gives you the answer that is subject to SQL injection attacks, you know, and then you really do want people to down-vote.

Atwood: I do think down-votes are necessary.  There was the argument that you should take them out.  I think the way to do it is the way were doing where and up-vote counts way more.  So, Michael, if I click up right now on your post you get plus ten.  Right, now compare that to the minus two I could give you.  So, it's worth fives times as much and it costs me a little, and we think that's the right social formula.  Because sorting down to zero is good but I think you should be able to sort a little bit below zero to indicate that the community kinda is dissatisfied with your answer.  It's not that they hate you personally.

Spolsky: [Evil laugh]

Atwood: [Inaudible]

Atwood: People really do take it personally.  Like, I've gotten emails from people that are like, you know, "I'm missing a badge.  You need to look into this."  They've already started to really... Reputation and badge system is really working... to a scary degree.

Pryor: well, especially since you've actually tied... I mean initially... I don't know if this was the initial goal, but you've tied the reputation and the badge system all together so that there's actually things you can't do.  You know, so like getting a badge.. it's different than raising your reputation, but a lot of the times they're intertwined, and so there's stuff that you actually can't do on the site until you do that. So, it encourages people to go that direction.

Atwood: Right, well, I think that the end state of the system is that we don't run it. The community runs it.  Because, we don't scale.  Like, I can't sit here and see.. there's no way.  I can't even read every post that's not on the system.  It's ridiculously impossible for me.  Even if Jared and the other two guys that are doing this with me, that's all we did all day long, we still couldn't do it.  So, as the system learns to trust you, you can do things in the system that you would consider very moderator-like, very much like Wikipedia.  But we do have thresholds around that.  Like, we talked about it takes 15 reputation to even up-vote, because we don't want people creating, like, shell accounts and just up-voting their own stuff, like puppet accounts.  So, you have to actually get some reputation. And the only way you earn reputation, let me be very clear on this point, the only way you ever get reputation is from other people voting your stuff up.  Um, there's one minor exception to that, which is, if you accept an answer, like, Michael, when you accepted the answer to your question, you actually got plus two rep.  It's a very minor rep boost.  That's probably why you have 82 rep, actually

[24:25]

Pryor: Oh, it just went up, since we were recording this. That was good. I'm 107 now, so...

Spolsky: Hey Jeff, I had an idea for a badge.

Atwood: Wow, impressive.

Atwood: What's you idea?

Spolsky: Uhm, `founding members' that you give to all the beta-testers.

[Garble]

Atwood: We're gonna get that.

Atwood: There was some resistance on the comments, but I think I'm gonna overrule the people. 'Cause the people participating in the beta are really... I mean.. Beta testing is not that fun, in my opinion.

Spolsky: Yeah.

Atwood: So I think they are giving me some of their time, and I think they deserve a little something for that.

Spolsky: It's also recognition that they where here at the beginning, and it motivates people to get in an get there accounts set up by, whenever the beta test ends. You know, 'cause otherwise their never, ever gonna have an opportunity too earn that badge again.

Atwood: Right. Yeah, and it's interesting having a community of programmers test your site. Let me tell you, they really test the crap out of this. [Laughter] I've seen the weirdest things happen, that I'm just sure, on a typical user site I wouldn't have gone to a year, or maybe even never... So it can be kind of fun.

Spolsky: This is... Jeff, is this the most heavily used site that you've ever worked on?

Atwood: Oh, probabily. I mean, I'm sure. I mean, just yeah. Let's say, probabily without a doubt.

Pryor: And it's still in beta.

Atwood: Yeah.

Spolsky: Yeah, and it must have--

Atwood: We have a pretty constrained audience already.

Spolsky: How many, [uhm]. How many people have you approved for the beta?

Atwood: I think we're at 3000 now, but that doesn't mean they have al joined. Uh, the interesting thing about the badge system, and I think Micheal brought this up. You can sort of see... You know, this is the MySpace game. "We have a hundred million users." Right?

Spolsky: Yeah. [laughs]

Atwood: You really have a hundred million active users? I don't think so. Well, if you go to the badge-page... you can see how many people have done certain thinks. That is actual activity, that is measurable activity in the system, right?

[Garble]

Spolsky: That means 1009 people have answered a question?

Atwood: With at least one up vote. That's right. Yes, absolutely.

Atwood: The badges, in addition to being fun, actually tell you stuff about the system and also the user, right. Like how well do they know the system. If they have 10 bronze badges then they know it pretty well. So all this stuff is there for a reason. None of this stuff is there because I thought it would be, like fun to have a game. Uh, the end-state of this, is producing useful information that goes out into the world...

Pryor: What's the colored dot, next to the badge?

Atwood: Oh, so we have... Oh, it's the Olympics thing we have, it's very convenient. It's gold, silver and bronze.

Spolsky: Which is bronze and which is gold?

[Laughter]

Atwood: The yellowish ones. I mean, I can adjust the colors if you really... if that's a serious question.

[Garble]

Spolsky: Yellow is gold?

Atwood: Yes.

Spolsky: Ok.

Atwood: I can't make the colors metallic on you monitors. I'm sorry, I can't. We don't have that technology yet.

Pryor: Doesn't Java do that?

[Laughter]

Spolsky: No SQL Server, you need SQL Server.

Pryor: Oh, right.

Spolsky: Yeah, SQL Server.

Atwood: So, let me talk about... real... I don't know if we've monopolized a lot of time. But it's exciting, 'cause this is honestly, everybody listening, this is really the first time I've talked to Joel about the actual live site.

Spolsky: It's actually, let me just conclude... my initial feedback. I've got two more things. They're kind of small.

Spolsky: One is... to me like... The only thing that we really need here, you probalily know... you're probabily a lot more involved... But the only thing I really wish we had is RSS.

Atwood: We have it.

Spolsky: Oh we do?

Atwood: Yes, bottom of the page.

Spolsky: Can I subscribe to a tag?

Atwood: Yes, you can.

Spolsky: Ok, done. Never mind, we don't need that.

Atwood: Right, you can also do tag combinations, which is not very discoverable, I need to work on that. It's space-delimited at the moment, because we allow "+" in C++, which I'm kind of regretting now.

Spolsky: [Laughs]

Atwood: Cause the standard convention is, you sorta use "+", that's sort of the typical tag combination in the Web 2.0 world, but we use space for that reason.

Spolsky: Wait, but how do I do this? Tell me how to subscribe to 2 tags.

Atwood: Well, go to a tag... tag browser... Type in whatever tag your looking at, or just click on it. And then scroll down to the very bottom of the page, you should see a little RSS-icon.

Spolsky: Oh, yeah.

Atwood: Uh, it's also in the auto-discovery, there's a link in the header. So just point your software at the page.

Spolsky: So, you were saying space, so I can just change this URL to be like feeds/tags/ruby+python for example?

Atwood: Yes.

Spolsky: Oh not... but you said is was not +, it's space.

Atwood: It's space.

Spolsky: Wait, wait, wait, sir. Space is + in URLs, isn't it?

Atwood: Uh, it can be.

Pryor: You can also use %20.

Spolsky: Uh, well I tried that, but its not getting... OR it's doing AND. Alright, we'll debug that later.

Atwood: Oh, it's doing AND, it's definitely doing AND, did you want OR?

Spolsky: So I type /tags/ and than what do I do?

Atwood: Well, what I always use as the example is HTML space CSS.

Spolsky: So there is a space in the... No, I'm not getting any questions that are tagged that. I put a space in the URL?

Atwood: Oh sorry, its /questions/tagged/html%20css Yeah, that works.

Spolsky: Huh.

Atwood: That was something Jarrod insisted on, he believed that... to be "questions tagged"... I blame Jarrod.

Spolsky: Ok, pretend I'm retarded.

Atwood: Ok.

Spolsky: I can figure out how to subscribe, to like 'Windows'. 'Cause there's a tag feed for that. I see /questions/tagged/ ok, so I say Windows and then I put a space, right there in the address bar and I say like C# for example.

Atwood: Yeah, well C# you have to escape the pound. So it'd be like %23. It's easier if you use my preferred example of HTML and CSS, plus it makes sense.

Spolsky: CSS?

Atwood: And you can extend it to work with whatever keywords you want later.

Spolsky: Hmm... this is really doing AND, it's not doing OR.

Atwood: Yeah, its doing AND.

Spolsky: It's doing all things that are HTML AND CSS?

Atwood: Yes.

Spolsky: But I want OR.

Atwood: Ok, well thats something... We should but that on the feature request list. I mean, we can do it.

Spolsky: Its not that important. I was just thinking, I may want to subscribe to an RSS feed that gets the seven things that I'm interested in.

Atwood: Right. No that's fair.

Spolsky: That's really small, because other than that, I really think that it's like ready to go live, other than just scaling issues.

Atwood: Well we're not gonna... yeah we're gonna go to the end of the month for sure. 'Cause there's still some things I wanna implement and some other testing I wanna do.

Spolsky: [Approves]

Atwood: So, continue with your feedback list.

Spolsky: Well, nothing. I just wanna say... you know what? I... like this morning, it suddenly occurred to me that this is gonna be huge. I mean, you've actually, like now build this thing. That most programmers are gonna know about. In the same way that most programmers know about... I don't know...

Atwood: Slashdot?

[31:38]

{to be transcribed}

 

[36:10]

Atwood: So let me briefly talk about a couple key features I think we need that people are kinda clambering for, and I think Michael so of the things you were bringing up I think will be addressed by what I cover. 

Pryor: Excellent.

Atwood: Right off the top of my head - people want to be able to bar certain tags from appearing.  For example, a lot of people were really annoyed by the meta discussion around StackOverflow and I can't really blame them.  So they wanna essentially blacklist that tag and say, "you know what?  For my page, don't show that tag."  So, that's sortof in the works, and also along the same lines, like, "these are my favorite tags.  These are the tags I really wanna know any time something happens."  Consider the home page.  There's a Ruby question.  I don't really know anything about Ruby.  I might get a kick out of reading through it, but I can't really answer it, can I? 

Pryor: Right.

Atwood:  So this is really about filtering essentially the home page and maybe your user page.  So, that's in the works, probably. 

Spolsky:  I think a lot of people will wanna just go and choose the ten or twenty tags that are technologies that they work on.

Atwood: Right.  And we'd also talked about having this sorta be self-learning.  So if you look at your profile, for example, my profile.  If I look at the number of tags, I have 48 StackOverflow tags, ha ha ha. 

Spolsky:  Oh!  So, you might see those.

Atwood: Which means, yeah, I've been replying to a lot of StackOverflow threads.  So, I might wanna see those.  I have C# and regex, which is actually pretty accurate.  Ha Ha.

Spolsky: [Laughs]

Atwood:  So, if you took the top three tags, uh, in hacking, which is great, 'cause I am totally a hack, so, the top four tags would be perfect.  The system could just filter for me on that. The other thing that's come up, because again we're sitting in the middle of a confluence of sorta like a wiki-type no ownership, and a discussion forum, where there's clearly ownership.  And not only that, but you're getting reputation.  If you're getting reputation from something, clearly you own it. 

Spolsky: Yeah.

[38:01]

Atwood: These systems don't really match.

Spolsky: There's a weird thing which is you feel like, you know, if I wanna go edit somebody's question, I don't wanna take away from their, you know, ownership, from their moral, you know, moral rights, it's called in copyright law, basically, they wrote it, they should get some credit for that if nothing else.

Atwood: That's right, that's right.

Spolsky: But I still wanna enhance what they wrote.

Atwood: Yes. So I've done, I've thought a lot about this, there's been a lot of meta-discussion on stackoverflow on this topic, and I think people were concerned for good reason. One is, they don't want people to edit their stuff. Certain people just may not buy into the whole concept of the Wikipedia-style editing anyway. But I want to make it very clear when they come to the site that's kind of the goal here. So if you're totally are against that, you're like, "OK this is my content and nobody will ever touch it", this probably is not the site for you, right? But, that said, I do understand that, say, Joel, you enter a post, I go in and edit a significant percentage of it, and you have to sort of have to do the math to figure out how much of it had actually changed, which we have, uhm, and then Michael you go in and then change that even further. Does it really still belong to Joel at that point? So we're going to have a threshold, which is basically number of people and size of the edits, that will push the post into what we call "community mode". In community mode, you can still vote on it, but nobody gets reputation from it. And there's no signature block on it. There's just a revision history, like it'll show the last editor.

Spolsky: So you can--

Atwood: But that takes away the concern, I think. And there's two ways you can go, two ways this can happen. One, automatically, because I don't want to, it's gotta happen automatically for the system to be sustaining. So once you reach the threshold, you're in this community mode, uhm, although you can, if, Joel as the owner of the post, if you wanted to reassert ownership, you could. That's possible as well. Uh, the other thing you could do is, Joel, when you ask a question, you could opt out. You could say "You know what? I don't even wanna own this post. This is not going to be a Joel post. This is going to be, anybody can do whatever they want with this post. I'm gonna opt out, of ownership at that point."

Spolsky: Mh-hm.

Atwood: So, it's the kind of thing where you can kind of opt-in initially, it happens automatically, and then you can also revert it, like, if you if, say, somebody say griefs you and kicks your stuff into community mode by continually editing it like a pack of roving dogs, or something, you could actually opt back in and revert ownership of your stuff if you want.

Spolsky: Maybe under those circumstances you don't require as much, uhm, aah, reputation to edit.

Atwood: Reputation to edit, yes. And that also solves that problem you guys were talking about. And I do agree with that, there's a little bit of a disconnect between those two models. But I think that's what makes our system really interesting, is that we're trying to sit in the middle there, and do something I think relatively unique that hasn't been tried in quite this way before.

Spolsky: Yeah.

Atwood: So I'm a little comfortable pushing the boundaries a little bit. Although I do want to disclose, so people know when they come to the site, they're not like "Oh my God," you know, "nobody told me that people could edit my stuff!" I don't want people to have that reaction.

[41:01]

Spolsky: Hey I just thought of something,  uhm,

Atwood: What

Spolsky: You were talking about I can't keep the FAQ up to date.  Why don't you.. You got that FAQ link at the bottom.  That just needs to go to, uhm, slash questions slash tags slash stackoverflow.

Atwood: Right

Spolsky: In popularity mode. Done.

Atwood: Right.  I have thought about that.  There's one or two other things I need to implement before I can do that.  But yeah, that definitely has come up.

Spolsky: No, just change the URL.

Atwood: Even the user voice system that we use

Spolsky: Mh-hm.

Atwood: you could almost use stackoverflow.  The system itself could be used to track its own bugs almost, right?  You can vote on them,  There is a history.  You can put tags on them.  It's weird, you can almost use it as a meta-system to describe itself.  So I do agree with that.  That eventually we will get there.  And the third thing before we get too sidetracked um so the issue of discussion within the answers.

Spolsky: Mh-hm.

Atwood: I agree it does come up, but I don't want to create like a full blown message board.  I want people to have a focus on answering the freaking question.  Right? Like I don't want.. There is gonna be some discussion, but I don't want to encourage it.  I don't want to have all these things in place where people can have these long drawn out discussions where people can go back and forth in the answers.  But, at the same time it would be nice to add annotations to somebody's answer, right?

Spolsky: Mh-hm.

Atwood:  So what we're thinking is were going to add another table, and it's almost going to be like twitter where we are gonna say "Look, you can't write a whole long diatribe here."  All you can do is add like 200 characters and say "This is wrong because you forgot in your regex, you know, that this character does this." Right?  So you can add an annotation thats attached to the answer.  Because thats sort of little meta-discussion.

Spolsky: But wait wait.  Should'nt that be just go and edit it?  I don't know but the wikipedia way would be this is wrong and I'm just going to go edit it.

Atwood: I've thought about doing that too.  I've thought about having a mode where you could say, add a comment - even if you have a low rep - say 50.  It wouldn't take much rep to do this and all it would do is add to the bottom

Spolsky: What you're saying is that if I have low reputation, I add it to the bottom and then somebody else has to come along and decide whether or not to accept my comments and incorporate it and edit it into the original answer, or just delete it and hide it, or just to ignore it.  Why not skip all that work and just go straight to the immediate phase of if they think it is wrong, go in there and edit it?  And then if worse comes to worst, they get into a Wikipedia-style edit war, but honestly it's worked well for Wikipedia.

Atwood: It has, but what you have to realise is that we're not quite the same thing as Wikipedia - 1) we don't really have the broad ... our questions are narrow even by Wikipedia standards where there's like a Wikipedia entry for every comic book character ever.  We're even more narrow than that.

Spolsky: Do they have little dot?

Atwood: I'm sure.  Oh, I guarantee you it's out there.  So there's not as many eyes on this stuff, so it needs to be a little more self healing than Wikipedia is, I think.  But I have definitely thought about what you're proposing, which is having a low rep edit mode which only lets you add like 100 characters to the bottom as an edit... right, so there's no new code required for that solution, right?  I just go in, and I grab the current revision, add some stuff to the bottom of it and then publish it as the current revision with that guy's signature on it.

Spolsky: Mhmm

Atwood: I've thought about that and we might end up doing that, I'm not sure. But the goal is pretty much to reduce ... I don't want to have too much discussion or comments - in the answers, rather.  But I do also want to at the same time acknowledge that people really have a desire to markup without full-blown editting - a desire to slightly markup some of the answer's that they're seeing.

Spolsky: You know what, here's another possibility is to give people two options - add an answer or comment on this - and if they add an answer it shows up like it does now.  If they, say, comment on this , it shows up on the bottom and can't be voted on.

Atwood: Right.

Spolsky: So it just stays in chronological order and then they can have their conversation at the bottom - below all the answers.

Atwood: Well, the conversation would occur under the answer that they're discussing. 

Spolsky: Oh, you mean it would be per answer?

Atwood: Yeah, it would be per answer for sure... but as I said, they would get no rep for this.  There's not a whole lot of incentive to do it - it's just if you want to comment on somebody's answer for some reason

Spolsky: You know, I'm sure we're gonna get great answers from the community about how to do this - and actually that might be a good opportunity to invite people ... if they have a suggestion, or some logical reason they want to disagree with us, this might be a good opportunity to, say, record it as an MP3 or OGG Vorbis file and email it to podcast@stackoverflow.com

Atwood: Right.  Well I feel like we've done.... I know Joel, before you left on your trip, you'd said you'd had some reservations about discussing a site that most people can't see.

Spolsky: Ah, but they can in two weeks right?

Atwood: Yes.

Spolsky: OK, so what's the way you can get on the ...uh... the beta list is you to www.stackoverflow.com, right...

Atwood: ...no...

Spolsky: ...and then you click on uhh... no... how do you sign up for the beta?

Atwood: It's only a blog entry at the moment.  I don't have like a formal signup link - but it's the August 1st blog post has the direct link to the signup.

Spolsky: Ok, so that's under.... blog.stackoverflow.com?

Atwood: Yes [Talking over each other] I don't remember the title...

Spolsky: [Visiting the website] ok... private beta... [hums]... wait, where does it say how you sign up?

Atwood: It's sort of near the bottom.  It's not super obvious.

Spolsky: Direct email. They're just emailing you?

Atwood: No, no, no - there's a signup link.  Are you gonna actually make me go to the post?

Spolsky: I'm confused....Oh, "click here to sign up for the beta"....ok I see-ohhh it's just got all kinds of letters... spreadsheets.google.com... ok it's a big mess.  So what you want to do is go to blog.stackoverflow.com for our listeners who want to sign up, and look for the thing that says "Bad News/Good News" and it's got like a little toilet paper mascot there...

Atwood: [chuckles]

Spolsky: ...and then in that post there is a magical link that you can use to sign up for the beta and all our listeners should do that and get signed up with a real account and stuff like that because that's the only way... even if you don't plan to use it, it's the only way you're ever going to get that beta tester badge, which will never again be available.

Atwood: That's right.

Spolsky: So hopefully that will cause a flood of people to show up.... uh what else did I want to say?  So you thought the beta was pretty much just to the end of this month - so that's what, 9 more days?

Atwood: Yeah, well it's a little bit more than that - it's a long month, it's like 31 days, so...

Spolsky: Ok, cool - because really there's sort of several phases to this whole building of stackoverflow and the first phase was building the first minimal version that people could see.  The second phase was the controlled beta to get it good enough to release in the world.  And then the third phase, which we're about to go into, is just try to build the audience as fast as possible, to as many people as possible.

Atwood: Yes, that's right.  Now, I talked about taking some listener calls, but I feel bad we've had Michael on the call and we haven't given him...minutes to tell his story, have we?

Pryor: What story?

Atwood/Spolsky: [laughs]

Atwood: The early Fog Creek story.

Pryor: Do we have time for that? How much longer is this... umm..

Spolsky: ... we got at least 10 minutes.

Atwood: So how do you know Joel? How did you meet Joel?

Pryor: Ok, so I was working at Juno as an intern.. actually D-Shaw's(?) hedge fund in New York decided to start this company, Juno, and it was like a free email provider back in the day when everyone had to dial up to the internet - and you would run their application and it would dial up and check your email and show you ads at the same time.  And I was their first intern, and right about the time that I was interning, Joel started working there fulltime - and so I worked there for the summer, came back fulltime and he and I worked on the same team - on the client team - working on the code, so that's how we met.

Atwood: Very cool.  And then... so did Joel sort of suck you into his vortex of this Fog Creek...

Pryor: Well yeah, this was like 8 years ago...I think he was kinda unhappy at Juno, and he left before I did, and I mean a couple of people had been leaving ... this is sort of the market tank that ...[laughing/fumbling for words]... we were one of the first broken IPOs (Initial Public Offering)... you know when they come out... lower than... the day that they go IPO, the stock closes lower than the opening price - they call it a broken IPO.

Atwood: [laughs] The backwards IPO.

Pryor: So you know, we were all sitting around counting our chickens... our golden chickens before they'd hatched and I think after that happened in the market tank then some of our friends started leaving; I don't think Joel was very happy there... this was my first job, so I had nothing to compare it to, but he left was just sort of.... I guess you were freelancing, right? You were working for Google and other companies, writing code?

Spolsky: Umm, I was doing something [laughs], but mostly I was on vacation I think.

Atwood: Your first post was like "let's take a sabatical" if I recall.

Spolsky: Yeah, that was then and I was taking a sabatical - although I think I had at least two consulting gigs, which pretty much got me half busy, and then I was writing kinda the first version of joelonsoftware... uh, you know a lot of those early articles were written when I was just sitting at the beach.

Atwood: Right.

Spolsky: I did a consulting gig for Google for about four weeks that was the most money anyone has made for four weeks [laughs] in the history of the universe, probably, because it was paid in stock.

Atwood: Oh wow, nice.  So Joel - what drew you to Michael? When you started a company, what made you say Michael was the man ?

Spolsky: Umm, I couldn't get anyone else to go along with it

Atwood: [laughs] You picked the uh... vulnerable intern, didn't you?

Spolsky: [laughs] I think so...

Atwood: He just didn't know any better - you had a car, he was just impressed that you had a car.

Spolsky: [laughs] He didn't know any people...

Pryor: I think we were just friends first; we were hanging out a bunch, I mean when we started the company I had this grandiosse idea that I was gonna start a different company before we started Fog Creek... um that was kinda ridiculous...

Spolsky: Oh yeah, Docido(?).

Pryor: Yeah, I had this idea that you could... um... you would send in your old CDs to us and then you would say, like, which CDs you had and which CDs you wanted, and then we would find links between people and we would just send you an email, and say ok - you send this CD to that person; and then they'll send a CD to another person, and then eventually you'll get the CD you want back... um, there's actually a site that does that now... um, but it was kind of a ridiculous idea at the time... and um, it was kinda cool, but at that particular time it was a little late to the party; I think if had that same idea, like, two years before that... you know I could have... [changing topics]... but I guess we were just kinda hanging out, he thought that instead of doing consulting on our own we should team up together and... uh... so we did.

Atwood: Right, and so those early days - how long was it just you two?

Spolsky: Not so long actually, I think we started... boy were we stupid, because I definitely remember saying, "Let's hire four more people right away..." [laughs]

Atwood: Wow, really?

Spolsky: So we started calling people up and putting up [ads]... oh yeah, that's how stupid we were [laughs] like, without knowing where the money would come from, now...

Atwood: Where can we find the bones of these people you hired... where are they buried now?

 

[53:28]

[58:55]

Atwood:  Yea. Now I'm scared. You guys are making me think that we're going to have all these scaling problems.  So now I'm kinda worried...

Spolsky:  I actually do think that we're...(laughs)

Pryor: Actually, I just had a... I was posting something and some ASP.NET error came up of lock contention on some row somewhere.

Atwood:  Yes, yes. Deadlocks.  We have a deadlock issue.

Pryor: Yea.

Atwood:  Which we'll talk about after.  Well, we could talk about it on the call but it's going to go really long if we do that...

Pryor:  Hey, how come the badges aren't....

Atwood: ...uh but...

Pryor: ...oh, go ahead.  Go ahead.

Atwood: ...well, before we end, 'cause it's getting close to the hour mark, uh, I did want to mention, Joel, uh, I met Merlin Mann at the start conference.  Which was, like, a week and a half ago.

Spolsky: Oh.

Atwood:  And I made a point of meeting him.

Spolsky:  Yea.

Atwood: Because I wanted to tell him that, first, I'm a fan.  I think he does a great thing with his 43 folders and he's a really smart guy.

Spolsky: Yea.

Atwood: Um.  He was much less... I pictured him as older and grouchier for some reason.  He was like a terrier.  He like ... He actually hugged me...

Spolsky: (laughs)

Atwood: ...when he saw ... he was like "Ohhhh! You're that guy!" He's like, he hugged me!

Spolsky: Really!?  Wow!  He's hilarious.  I love Merlin Mann.

Atwood: I know! He's great! And he told me to tell you that he's a big fan of your -- obviously -- your stuff and he said he's uses one of your quotes in, like, a key slide in his presentation that he gives.  So, He's a big fan of yours as well. And I told him -- I told him that...

Spolsky: I saw that presentation, and I'm like "Oh look! 'The Zero Inbox' " or something.  Is that what it's called? 'The Empty Inbox'?...

Atwood: Yes.

Spolsky: ...presentation.  I'm like "This is what I need to do."  And actually, I've started doing that since seeing his presentation.  So, I watch it, and all of a sudden he's quoting me. (laughs)

Atwood: Yes!

Spolsky:  And there's this really weird circular... So Merlin Mann and I are just going to go a room and just sell each other rocks for the rest of our lives.  And get rich selling each other rocks.  We don't need the rest of you other people.

Atwood: And I told him you're also a big fan of his, uh, his podcast 'You Look...'

Spolsky: 'You Look Nice Today' is hilarious...

Atwood: And did relate to him that...the joke that you subjected me to...

Spolsky: (laughs)

Atwood: And started laughing, because he finished the joke, he knew exactly what I was talking about.  He did.  He was like "And the L stands for..."

Spolsky: (laughs)  That was hilarious.  That is.  That is the funniest podcast.  And they really do a... I mean they... I wish that we could put as much work into it.  I think they probably record several hours and spend a couple of days editing, to put that together as, with as high quality as they do.

Atwood: Right.  No, I'll definitely link it in the show notes.  But I just want to mention that for you and...

Spolsky: 'You Look Nice Today', definitely not safe for work.  I'll say that in advance.  But, definitely the best -- probably my favorite podcast of all time.

Atwood: Yes. Well any other final notes before we...

Spolsky: No we spent a lot of time talking about SO, but it really did... Like the Beta launch, and there is so much to talk about.

Atwood: There's a lot to talk about.

Spolsky: In future weeks we maybe we'll hopefully get back towards more of  a combination of talking about software development.  There's a bunch of stuff, I have a bunch of questions queued up about software development  issues that are relevant to SO and not. And to our listeners, if you have any questions. Let's see I guess we should do some quick announcments at the end. Again a reminder to sign up for the beta of SO, it's your last chance to get that badge and... That was the first thing, now what's the second thing? Oh we got this conference coming up, "The business of software conference" which we mentioned early on. Jeff is not coming but I'll be there. And ahhh just google for "Business of Sottware" and you'll find that. It's a couple of days with some great speakers like Seth Godin and uhh, me, Eric Sink.

Pryor: Jeison Freed.

Spolsky: Jeison Freed. Who else do we have?

Pryor: Richard Stallman.

Spolsky: Richard Stallman. Ooh it's gonna be interesting, talking about the business of software. So that's in Boston in a couple of weeks.

Pryor: Use "Fog Creek" as your coupon code.

Spolsky: Really?

Pryor: Ye, hundred dollars off.

Spolsky: And finally if you have any quetions for SO or comments or feedback or anything you want to what you gotta do for the podcast is record it as an audio file and email it to podcast@stackoverflow.com and if we got time we'll play your question and maybe even answer it. So I think that's it, thanks for coming. Any last words or promotions or side comments.

Atwood: No, thanks Michael for being in the call it's nice to finally meet you.

Pryor: Ye it was good to meet you too, I hope we meet in person some time soon.

Atwood: We will.

Pryor: Ok.

Spolsky: Alright, thanks a lot everyone and I'll see you next week.

[Fin]