Loading summary
Phil Windley
Up Next, on episode 49 of Stack Overflow, Joel and Jeff, along with guest Alex Papadamoulis of the Daily wtf, discuss the distinction between sysadmins and programmers, online justice for web forums, user friendly IDs for databases, and the future of software distribution from IT conversations. Hi, this is Phil Windley. Today I'm excited to bring you another great program from Stack Overflow with Joel Spolsky and Jeff ATWOOD Here on it conversations.
Conversations Network Announcer
The Conversations Network is a 501c3 nonprofit, and we need your help. For a tax deductible donation of as little as $5 per month, you can support this channel and the rest of the Conversations Network. So please visit conversationsnetwork.org to become a member and help us continue to bring our programs to the world for free. Our audio files are delivered by Limelight Networks, the high performance content delivery network for digital media.
Phil Windley
And now, here's Stack Overflow.
Alex Papadimoulis
Did you see the sunrise this morning or not? Make it up that late?
Joel Spolsky
Who, me?
Alex Papadimoulis
Yeah, Jeff, you normally seem to stay pretty.
Joel Spolsky
No, I don't remember. Actually kind of blends together after a while.
Jeff Atwood
What's going on here? Snap out of it, man. We got a podcast to do.
Alex Papadimoulis
All right, I'm ready.
Jeff Atwood
All right. Okay. The Daily wtf and WTF stands for Worse than Failure. Really?
Alex Papadimoulis
That. That was established? Yeah, we actually established that a couple. A couple years ago. I don't know if you guys remember, there was a. There was a bit of a name.
Jeff Atwood
Change on the site and people were not happy.
Alex Papadimoulis
It didn't work out so well.
Joel Spolsky
No.
Alex Papadimoulis
In retrospect, probably keeping it the daily WTF was the way to go. You know, I don't know what it was. It was just. It didn't feel right saying it because, you know, we obviously talk about the site here at the office, and it just. Every time any of us said worse than failure, it just. It didn't quite fit.
Jeff Atwood
It's like a boulderized version of Shakespeare or something with all the. The good stuff taken out, more or less.
Alex Papadimoulis
Yeah. And I don't know why. Yeah, it's hard to say. I mean, it seemed like a good idea to kind of go with the name change, but, you know, kind of. Kind of glad to be back to. Back to the old name or the real name, whatever you want to, you know, call it.
Jeff Atwood
We are for our listener.
Joel Spolsky
Changing the name. Yeah, changing the name was like the ultimate wtf. I think everybody was sort of scratching their head going, wow, that's a real WTF right there. It's like, why would you change your name? You have a really good name.
Jeff Atwood
It's kind of like New Coke.
Joel Spolsky
No, no, you have a really good name. I want to change something really crappy.
Alex Papadimoulis
Well, in fairness, I thought the name was good. I thought it was a clever backronym. But I'll tell you, it was the result of groupthink. You know, I don't know if you guys.
Jeff Atwood
Decisions by committee. Yeah. Until nobody finds any offense in something. And also nobody finds any delight in the thing.
Joel Spolsky
Yes.
Alex Papadimoulis
Well, no, I mean, we all like the name. You know, we're like, yeah, this is pretty cool. Everyone's gonna love it. Because it's kind of clever. It's kind of because, you know. But yeah, it was just. We all tricked ourselves thinking that it was the right way to go.
Jeff Atwood
Who's we? Who else is there? What's this office? This is a whole institution behind this Daily wtf. I thought it was just a guy with a blog.
Alex Papadimoulis
Well, yeah, it is a guy with a blog. I'm the guy and obviously I have the blog. But I do have a job, a day job at Inedo. And we're a software company that is in the business of helping other software companies develop software better. I'm still working on the elevator pitch. Exactly. But basically we're in best practices consulting and that sort of thing.
Joel Spolsky
Oh, I didn't know that.
Alex Papadimoulis
Yeah, well, we used to do a lot of. I mean, we still do. We still do kind of custom proprietary business software, but I don't know. Have you guys developed that? I mean, I know, Joel, you're primarily with products, Right. Fog, Bugs and City Desk and Copilot.
Jeff Atwood
Right, Exactly. Yeah, totally. Now, we haven't done any consulting for a long time. We did it in the early days to raise some money.
Alex Papadimoulis
I really liked it. Love doing the business applications. But I'll tell you, I think it's a little more exciting to work in this realm. I've been doing helping people do the better software, whether it's the continuous integration or whatever's going to help the process go better. But what's fun is the Daily WTF really has helped me learn just how wrong software is, or at least software development in so many places. So it's kind of given a unique perspective on things.
Jeff Atwood
We are talking today to Alex Papadymlas, who is the blogger at the Daily wtf, which is a blog, if you haven't seen it, about all kinds of things going wrong in software development. It's mostly software development, although I see.
Alex Papadimoulis
Wine bottles here on the Front page information technology. But yeah, generally software development.
Jeff Atwood
Is there a difference between information technology and software development?
Alex Papadimoulis
I like to think it kind of encompasses maybe the network, whereas it is a broader domain. Software is just the internal applications, external applications. Whereas the IT organization handles all the servers, the desktops, phone systems, you know, they seem to get it all.
Jeff Atwood
And you guys always have. Besides having like actual bodies of bad code, things are always written in kind of an exciting story like way. Do you get these things like submitted from people and then rewrite them? Is that what goes on there or do they just submit them correctly in the first place?
Alex Papadimoulis
You know, very rarely. And I'll tell you a little bit of background, you know, we started doing all exclusively code, which, you know, the bad code's kind of fun, fun to read. But I think I like writing and I know Jake, he helps out on site. Mark, you know, we all like writing and it just kind of fell into the format of, you know, starting with a fun paragraph at the beginning of a code snippet to really just writing stories kind of in a unique manner. I don't know if you guys read Discover Magazine, but Vital Signs sometimes serves as inspiration for how we try to tell stories. You know, at the end of the day, some of these things can be pretty boring. You know, software development.
Jeff Atwood
And it's. Although it is funny to read some of these code, I'm just reading this one where a guy has created a bunch of constants for every possible number of spaces and then written looks like the most powerful select statement. So he's basically re implemented a function that is already available for you.
Alex Papadimoulis
Oh, and I believe, I think that one's spaced out. He not only did that, but he re implemented a few times in his own code, which is pretty impressive, I might say.
Jeff Atwood
And so this is sort of humorous, but on the other hand, you sort of feel sorry for these people who are writing bad code almost. You imagine that they're sort of like they've woken up in the middle of the night and they're feverish and they don't completely understand what's going on around them and they need to somehow make their computer do something. And through the haze and the fog of the high fever and of nausea and the explosive diarrhea, they're trying to write a function that produces a given number of spaces and they just do the best they can. And you sort of have to feel sorry for them a little bit. Creating code like this.
Alex Papadimoulis
Yeah, I think that's a part of it. I mean, definitely you got the guys who are really struggling. But I've worked with enough developers, especially in some of the larger companies where it's their way of life. They don't see this as bad. It's kind of like, it works. Sure, it might be a lot of duct tape, a lot of patched together, but that's the way they see it.
Jeff Atwood
And there is. I mean, isn't that being pragmatic? Isn't that the ultimate goal as a programmer, to be a pragmatic programmer? Hey, the code works.
Alex Papadimoulis
I don't know if that's quite what the pragmatic programmer is supposed to be, but I guess that's one way of looking at it.
Jeff Atwood
Yeah.
Joel Spolsky
My favorite wtf, one that we still refer to actually, after all these years was the. And Alex, I don't know if you remember this one was the have you tried JavaScript guy.
Alex Papadimoulis
Have you tried.
Joel Spolsky
Well, so they're having this big meeting. They're talking about these really technical things. And there's this one guy there, he's just a doofus. He doesn't know anything about anything. And at some point, the guy sort of leans over very, very seriously and says, have you tried JavaScript? And it's like they're not even remotely talking about JavaScript. It's like it has nothing at all to do with what they're doing.
Jeff Atwood
I had that person, I was in a meeting at MTV with a very hyperactive executive who. Now, this was like 1994, 1995, the web just come out. We're talking Netscape 2.0 and the. And she wanted an effect where when you click from one page to the other, the web browser would crumple up like a piece of paper that had been crumpled up and thrown across the page, and then another page would then appear. And I can see where she got this idea because she was from television, right? And this is like this. This is like an effect that you have programmed into your little television switcheroony things. And yet, of course, there's no way to do anything even remotely like that in HTML. I mean, now you could probably do something with Flash or whatever, but at the time, there was no way to do anything even remotely like that. So he said, this absolutely cannot be done with HTML. What you're describing is not. We cannot do that on the Web today ever, under any circumstances. No. And she said, what if you use SQL Server? I heard the SQL Server was amazing because I guess somebody had been telling her about all the awesome new features in SQL Server 6.0.
Alex Papadimoulis
That's. You know, it amazes. I've run it. I think I've worked or at least seen the same person too, because that's a recurring thing and if it's not SQL Server, I often get methodology. Well, why don't we do test driven development or let's try Scrum, you know, can you do it in Scrum?
Jeff Atwood
This is what I sometimes refer to this as management by Delta Airlines inflight magazine, where your boss has read something in the in flight magazine on the plane and then wants you to then implement that.
Alex Papadimoulis
Somehow I kind of like that. Yeah, I can see that happening too.
Jeff Atwood
Anyway, let's get on with the show. Jeff, what's new in the world of the stacks and the overflows? Well, I saw we have a logo.
Joel Spolsky
Yes, we have a logo for server fault.
Jeff Atwood
Server fault. That's going to be the name. ServerFault.
Joel Spolsky
Yeah. So we're going to have a new IT themed website, sort of like Stack Overflow, but for things that are not programming but are in the IT sphere. Sort of what Alex was talking about earlier, which has to do. And the way I define this. So one thing that already comes up, and I know Michael has already given me some crap about this, how do you find what question goes where? Yeah, and first of all, it's always going to be a little bit of gray area. There's never going to be a perfect dividing line saying this question belongs here, this question belongs here. The old animal, vegetable, mineral problem. It's just never going to go away. But that said, I feel like there are some criteria and I'm going to actually blog about this later to make it more clear now that we have two sites. But for Stack Overflow, obviously it's things that relate to programming. Now this can be unclear, like what's your favorite programmer's food? And we've talked about this where people will say, ask any question you want, just add for a programmer. And then it becomes okay to ask Stack Overflow, what's your favorite color for a programmer?
Jeff Atwood
What would be the best episode of Buffy the Vampire Slayer? If you are a programmer. If you're a programmer last night that you saw.
Joel Spolsky
Exactly. And I think there's a couple things that make it work. One is if you can reference code, specifically talk about the code that you've written or the code that you're going to write or code that you've looked at, that helps tremendously in sort of legitimizing your question for Stack Overflow. That's something we definitely look at. Now that said, there's Questions that don't necessarily involve code that still involves the working life of a programmer. And I think it's really. Go ahead.
Jeff Atwood
Best keyboard, for example.
Joel Spolsky
Yeah, that's totally relevant. Like, I would totally leave that. And then there was one on working conditions that I thought was great and people wanted to close and I said, this is certainly relevant to a programmer. Working conditions as a programmer, I think that's very relevant. And I think the highest voted answer was about interruptions, which is a classic programmer thing. You know, no matter what conditions you're under, if you're just being interrupted, it just can't be. Those are by definition bad conditions. That's always worth talking about. Right. So there's a sphere of questions that are valid. Now, when it comes to server fault, I think the criteria is going to be does this have to do with servers? Does it have to do with networking? And does it have to do with it at a professional level? In other words, you're sort of paid to do this stuff. So you're at a job where you have to deploy 10,000 desktops of office and you have a question about how that's done and some of the technical things around it. And I think those are the criteria we're going to use for Server Fault to determine if a question belongs there. And we're also going to let you move questions from Stack Overflow to Server Fault and vice versa. I don't think we'll have too many programming questions on Server fault, I would think, but we certainly do have questions right now on Stack Overflow that really belong on Server Fault and will be moved over. So that's where we are.
Jeff Atwood
Cool.
Alex Papadimoulis
Now, will the same rule apply if you just say for a network admin, it's therefore appropriate for server fall?
Joel Spolsky
Oh, I'm sure that'll come up. I kind of suspect that there's going to be a different community that forms around the site. Now, initially it is going to be largely Stack Overflow users because I just had such a difficult time plugging into the ITSYS admin community on the web.
Jeff Atwood
Like, I just.
Alex Papadimoulis
Is there a big community?
Joel Spolsky
I really couldn't find one. Honestly, it really surprised me. It seems like there's this huge community of programmers, but then when it comes to system ends and its and stuff, there's just not really anything significant.
Jeff Atwood
They might be more divided, like the SQL server DBAs. These Oracle DBAs. Yeah, I think they're much more Novell certified technicians.
Joel Spolsky
Much more fragmented. In fact, I had people write me and tell me that they said it's just way too fragmented. You're not going to get the notable any major personalities in IT system. But that said, I think one of the reasons we want this site, I know one of the reasons I selfishly want it is because I have IT system in questions all the time that come up because we build the Stack Overflow servers and just general stuff that comes up that I can't ask on Stack Overflow and I'll be able to ask them on server fault, finally. So I think it's okay, I think to seed the community with. There's enough crossover with existing programmers that actually do sysadmin type stuff that I think it's okay. We just got to have a beta period where we, you know, iron out the bugs and see what kind of content we're going to get and stuff like that. We can't go live with a blank site. That would probably not work well. So the beta is coming this month for sure. And then we're going to essentially let anyone from Stack Overflow who wants to be on, there'll be some minimum rep threshold like 200 and then by special invitation, anybody else who needs to come in.
Jeff Atwood
So that's just for the beta period and then we'll open it to the world after.
Joel Spolsky
It's going to be a pretty short beta because we know the software is pretty solid now based on Stack Overflow. The only thing we're really going to be betting, frankly is changing the style sheet, changing the content to match the words around what the site is and who it's for and stuff like that.
Alex Papadimoulis
So I'm curious, from a software perspective, are you branching or is this now the same code base, different web config or however?
Joel Spolsky
Well, the general theme is same code base, different web config. I think it would be weird to put that much information in the web config. We're probably going to have some other configuration files that it's going to read at startup to get styling and stuff like that. But largely we want it to be the same code base. We definitely don't want to be in a situation where we have a branch that we have to maintain. That seems unsustainable to me.
Alex Papadimoulis
Yeah, definitely a pain.
Joel Spolsky
Is this going to be like localization for dummies? You know, we're going to localize just the stuff that's required to make content related stuff. You know, it's not necessarily about programming, it's about, you know, sysadmin and IT stuff. So. But I probably shouldn't talk about Localization. Because I pissed off so many people last week.
Jeff Atwood
Are you. Have you. Have you. What's the word? Recanted.
Joel Spolsky
I think there's. No, I haven't. And I should apologize. I didn't mean to offend anyone by saying that if you don't know English, that you suck. That was not my intent with my statements.
Jeff Atwood
No, I just edited it to make it sound that way.
Joel Spolsky
No, no. Actually I could have been more clear. But I think there's two things. One is that we have to serve our primary audience really well. And for programmers, I really believe that the primary audience, in terms of just reaching the biggest number of people that are programming, is really going to be in English. So that's what we have to focus on. So that's point number one. And point number two is that it's perfectly fine to have other communities form around other languages. And actually it sort of bothered me a little, Joel, that you sort of implied that we like had to own this whole pie. Like, if people were talking about programming in any language, then we wanted them to be on stack overflow. And I don't necessarily believe that to be true. At least that's not really my goal. It's sort of own the world of programming. I just want to have one place that we're building that's centered around English, because I believe personally it's de facto language of programming. And that's really all. And if you know English, that's great, and if you don't know English, that's fine too. There's plenty of other places you can go. I don't think that we need to own the whole pie.
Alex Papadimoulis
The part that I never understood about programming another language is the keywords. I only speak English, so for me it'd be hard to imagine, I mean, programming in another language. Code, comments, variable names, things like that. I've seen plenty of foreign code. Is that kind of driving your overall thought as well? The C spec, the VBspec, whatever, all these are English keywords that define the language. Therefore you have to know English.
Jeff Atwood
I mean, the English words, the keywords themselves, like select, that's not. I mean, that's just an arbitrary. It's an almost arbitrary word. If I gave you a programming language where I said instead of select, we now have, you know, Snerg, Bl. Geek. You can memorize that one thing. There's only 10, 20 of them that really matter now.
Alex Papadimoulis
There are a lot of.
Jeff Atwood
There are a lot of function names, but really the important thing is to distinguish between the language you use to talk about code and the language in which you write code. And just because somebody. Just because it's common to write code using English language variable names, English language comments, the language in which you're going to talk about code, sometimes in the comments, but just in, let's say, a book about programming or talking with your colleagues in the same hallway who are programmers or writing on the Internet about code is only going to be English for probably 50, 60% of the world's programmers.
Joel Spolsky
Well, somebody wrote me and there actually was a language, and I think it was a research project he did. It was based on logo, but where all the keywords were in fact symbols. You guys familiar with that game, the Sims?
Jeff Atwood
Apl. It's apl.
Joel Spolsky
No, that's in the Sims, they have this completely made up language called Simlish which has. It just sounds like gibberish. And they actually have. When you see it on the screen, it's just a bunch of. It's like wingdings, somebody typing in wingdings. It's like crazy symbols. And they actually make the game understandable for the most part in any language. So that would be like having a programming language that was Simlish, that was intentionally just symbols that had no meaning in any language.
Jeff Atwood
But none of these words have any meaning. I mean, while it's just one word. I mean, it's true that it does have its origin in English, but I mean, lambda. A lot of these things are very, very specific for.
Joel Spolsky
And some of them are kind of crappy. Like, I've always objected to some of the C terminology for classes and stuff like that. I felt it was unclear.
Jeff Atwood
Yeah, but they're not. I mean, it's not. The actual keywords of the language are. Too few are so few. I mean, a human language that people speak, you need a vocabulary of 5,000 to 10,000 words to start speaking a human language and to speak it in a highly technical area, that you're probably using a vocabulary of 100,000 words in your language. And so those hundred thousand words that you need to have a reasonably detailed conversation about code totally dominates compared to the 20 keywords which happen to be in English.
Alex Papadimoulis
Well, there's several libraries to consider too, right? I mean, just look at. Net.
Jeff Atwood
Well, if you look at. Now here's the thing, those libraries, okay, so you got a function called Create Window. And so you're thinking, oh gosh, I got to know English because Create is a real thing and a window is an English word. And actually if you then go pull down a Japanese language book teaching you about Windows programming, you'll see that they probably don't have a Japanese word for window. They probably switched to English for that word because that's technical jargon. But the conversation in which they say you might want to call the Create Window API, shortly after instantiating the first instance of your app, you're going to see that all in Japanese except for the word create window.
Alex Papadimoulis
I think I've seen that. Yeah. Just browsing different sites, that's exactly what it just looks. I think from my perspective, if I was reading and then saw a Japanese symbol for some function, bit of a learning curve on.
Jeff Atwood
That's because you don't know any Japanese. But, but most Japanese programmers know enough English to be able to deal with those occasional words. That doesn't mean that they want to read about programming in English. I was talking to Scott Hanselman today. He told me every single word of MSDN is localized by professional translators into Japanese, not machine translation. It's professionally localized. Every single article on msdn.
Alex Papadimoulis
Well, I think that shows there's definitely an audience for it. That's surprising.
Jeff Atwood
Yeah, and it's a large, I mean, I think that probably Japan probably has about 60% as many programmers as the U.S. that's just a rough estimate. And when you add, you know, when you add China, Germany and a few other countries, all the Spanish speaking countries, apparently Portuguese and Brazilian. Portuguese is a big deal. Scott told me, you know, when you add that together, it's an audience that's the same size, I think as the English audience. And I don't know if I agree, Jeff, I don't know if I agree with you that we just, we should just, just abdicate that. I mean, I understand that we got to have our priorities, but I don't see any reason why we should just say, oh, somebody else can do that. I mean, we're, you know, our goal is to, is to, to me, it's, it's, it seems like a very. It's okay to say English is our first priority, but to say, oh, we would never want to do those other things is just like sort of arbitrarily limiting our ambition. I mean, if stack overflow is a good thing, if.
Joel Spolsky
So previously you talked about ebay as an example. I mean, ebay is like a trazillion dollars.
Jeff Atwood
Wait, stop. The only, the only thing I said about ebay is I gave the example of ebay and Tradium in New Zealand because I wanted to point out that if we don't do those other languages soon enough, somebody else will come along and do them and then if we ever wanted, and they will get critical mass. And I just gave ebay as an example of how there is no ebay.
Alex Papadimoulis
In New Zealand or like the Google Yandex or how do you pronounce that? The Russian Google.
Jeff Atwood
Oh, yeah, yeah, yeah. There's a whole bunch of Baidu and there's Daum in South Korea. There's a whole bunch of these local things. And Google never really gets into those markets, never successfully got into those markets because of another company that basically was a fast follower.
Joel Spolsky
But I think sometimes the. The local version and the local language should be more successful because they're building it with that audience in mind. They have a better line on the audience than we would. I would say that's the natural state of affairs. And when you're the example of ebay was a bad one, I think, on many levels, because first of all, ebay is a huge business. It's like, oh, to have the problems of ebay, how terrible, right? If we could be as big as ebay, that's plenty. I mean, I don't need more than that, frankly.
Jeff Atwood
Where do you draw the line? How big do you want to get? And then just stop and just say, okay, we're not going to be any bigger than this. We've solved the problems of 2 million programmers. We don't need to solve the problems of 3 million programmers. Where do you say our mission ends now? Because I can't be bothered.
Joel Spolsky
Well, I don't like to think too far ahead because I think it's distracting. I think you got to focus on what's happening in the next six months, six to eight weeks, let's say six to eight weeks. That's the things you want to focus on. You want to have a vague idea of where you're going. But obsessing over it too much is just, I think, counterproductive. Like it sort of distracts you from your primary mission, which is to move forward in the next. In the immediate future.
Jeff Atwood
Let's move on. What else is in the stack overflow queue this week?
Joel Spolsky
So we also had our. How should I call this? Our penalty box implemented. And I know you and Michael don't like the way that we did it.
Jeff Atwood
Yeah, we haven't talked about that at all on the podcast, have we?
Joel Spolsky
We talked about it a tiny bit a long time ago.
Jeff Atwood
Tell me about the penalty box.
Joel Spolsky
Let's argue the way the penalty box works is if you're doing something that we think is harmful to the community for long enough. And this is a long period to be clear. You have to get warnings. And it's not something we do just at the drop of a hat. But if you feel like you're doing something sort of actively harmful to the community, then we'll put you in a time suspension mode, which means your account is locked at one reputation and you can't do anything on the site.
Jeff Atwood
And do you ever get your reputation back?
Joel Spolsky
Yeah, at the end of it, it comes back.
Jeff Atwood
Okay. So I was wondering why you don't just abandon your account in that case, use a different account and then you don't have the same bad behavior.
Joel Spolsky
I was surprised that you and Michael were very gung ho about this Hell Ban concept where hellban is the user is able to do all the normal things, but they just can't tell that nobody else can see what they're doing.
Jeff Atwood
Well, give me an example of. Sorry, Alex, say that again.
Alex Papadimoulis
Oh, I was saying that's a pretty cool idea.
Joel Spolsky
I think it is cool in theory, but I think it's a little bit too much like sort of the guys in black masks coming and just taking you away in the middle of the night. It really, really is. If you really think about the system, if you think about the system that's being promoted there, it's really kind of scary because it's just like, you know, all of a sudden Joe just disappears.
Jeff Atwood
We're talking in the abstract about bad behavior. Let's talk in the concrete about some. Give specific examples of bad behavior that we've seen that you're thinking of. Because I think what may be happening is that Michael and I have a particular type of bad behavior in mind. For example, a particular type of bad behavior might be. I wrote a script which spams advertisements on every stack overflow topic I can find. Right. And people have these scripts and all they're going to do is they're going to add the stack URL and all of a sudden you're just going to start getting spam on every single. And they may have made an account or they may not have made an account. So if somebody has a script which is spamming mechanically advertisements or Nigerian spam or links to try to increase their Google page rank onto stack overflow topics all over the place. This is not a person that you negotiate with and you say, please stop behaving badly and stop for a couple of days. This is a person that you want to block, but when you go to block them, they're a programmer writing a script. And so they'll notice that their script isn't working and they'll try to fix it so that it does work. And so my approach is, if there's somebody spamming, make sure that it looks to them like it's working, because then as a programmer, they will stop trying to spam you because they will think that the spamming is working and you've solved the problem and you haven't taken it to the next level where they try to figure out how to work around whatever you've done to block their spamming.
Joel Spolsky
Yeah, I think there was a fundamental misunderstanding about the audience that we were addressing with the solution. And I think the actual answer is that we've dealt with spammers for a long time, essentially people who have no investment in the site and just attack it, because that's what they do. Right. This was really to address people that actually are active stack overflow users that really like the site and really engage with it, but are doing things that ultimately kind of hurt the site in the bigger picture.
Jeff Atwood
What are some cases of that or examples?
Joel Spolsky
Well, the specific case that was kind of a problem was editing. And we love editing, to be clear. And I had to write a whole blog post about that because people thought that, oh, now you don't approve of editing. But we totally approve of editing. It's just you have to edit in the right spirit. When you're editing someone's post, it's still, unlike Wikipedia, it still has their name attached to it. So you have to be a little circumspect in how you edit because A, you don't want to fight with the person that content you're editing, A, and then B, you don't want to sort of make them look bad by your edits. So I think it was just a general tone of editing that a lot of people in the community objected to. It was a lot of really trivial edits that didn't really. Didn't really improve the post necessarily as substantively as it should.
Jeff Atwood
Like, like, what's an example of a trivial, what you consider a trivial edit?
Joel Spolsky
Well, you start getting into edit wars where you know, should this be capitalized, should this not be capitalized? And then you'll have 20 revisions where one guy capitalized, the other guy takes away the cap. Oh, it gets really, really trivial. That's the problem. And that was essentially my main piece of advice was don't really make trivial, trivial edits unless you have other edits to make in the post, because the trivial edits tend to have a Lot of friction around them when you make really tiny.
Jeff Atwood
I think most people, I've done a lot of editing where it's just like, I'm going to improve your grammar. I'm going to capitalize the first letter of your sentences Right.
Joel Spolsky
But usually there's a bunch of that. Usually you're rescuing a post where somebody who's written it has just not put any effort into formatting at all.
Jeff Atwood
Yeah. Where they don't know English that well.
Joel Spolsky
And that was sort of. My other point around editing was like, save your editing for the posts that really, really need it. I mean, yeah, sure, if one word is misspelled in the middle, sure. But that's not really a super high priority sometimes fixing stuff that's really broken.
Jeff Atwood
My favorite posts sometimes are the ones where somebody's asking a really, really, really newbie question, like, what does + = do in C? And you just want. Those are the ones that you really want to fix up the title so that Google's going to find it. Fix up the question so that it's as clear as possible. Fix up the answer so that it's just beautiful. Because these are the questions where we get the most hits and where we're going to solve the most, you know, we're going to help the most people. The very, very narrow, very, very specific, very, very difficult questions are going to get 300 page views in their entire, you know, the next five years. And, you know, they're useful for those 300 people. But, like, the real basic questions are the ones where some poor slob who's just trying to figure out a programming language in the very beginning and is typing very simple, very basic questions into Google. That's where we really have the opportunity to help 10,000, 20,000 people with an answer. And those are the ones I want to edit. And sometimes somebody writes a question that's very specific to their problem. Like they say, I wrote this code and it doesn't work. Why doesn't it work? And you want to edit it so that it's going to be useful. More general, what is my misunderstanding here? You want to edit it so that maybe the title and the question are going to be more useful to other people, not just you having your bug and will help you debug your problem.
Joel Spolsky
No, I totally agree with that. And I think that's where you want to spend the majority of your editing effort. If you're going to spend a lot of time editing on the site, use it on these posts that desperately, desperately need editing help. And there's Tons of them. Right. There's no shortage of any editing for anyone to do. And then I think the other conclusion I reached, I actually had a phone call with the Stack Overflow user Gortok or George, and we talked about this. And I realized part of the problem is the spirit in which you do things is as important as what you're doing. I know that's really kind of touchy feely, but it's really true. Yeah. In other words, you can follow the rules and end up just totally pissing off tons of people. But I'm following the rules, you know, I'm doing exactly what the rules say that we're supposed to do. But the way in which you do them turns off so many people. It ends up being a net negative.
Jeff Atwood
There's a. The trouble is that that's a mindset that makes you a good programmer sometimes. But I think that kind of literal minded, the letter of the law kind of mindset is extremely important. It's a mindset you have to be in to be programming. And so it's very hard for people to switch from trying to get their compiler, which is going to be utterly literal, to respond to trying to get humans who are human to respond.
Joel Spolsky
Right, Right. So I wanted this to be out in the open. So that's what we came up with, the time suspension. And I wanted it to be something we could all discuss and see. And I didn't want to be like the guys who come in the night and take somebody away. I thought that would be very toxic.
Jeff Atwood
Okay. I didn't understand that you were going to give them their points back. And I also didn't understand that they. What I was thinking is you were just saying, hey, we're going to ban you. And then. Or we're going to tell you that you're in penalty box mode and then you're going to be like, all right, well, you know, who cares f you? I'm going to just make a new account with a different name and continue my damage from that account.
Alex Papadimoulis
Naturally, it sounds like these are almost like the obnoxious friend who just needs that reminder. They're in it for the right reason, but just doing the wrong things.
Joel Spolsky
Yeah, I think that's a great way to describe it, Alex, because really, these are users who have really done great things on Stack Overflow. It's just they need some adjustment. Right. Because there just have to be adjustments for the community. Really. I got. So it's like parenting. I mean, Jeff Dalgis and I were talking. He's like, this is just like having a kid. It really kind of is. It's like parenting you want to get the right things for.
Alex Papadimoulis
Yeah, I was going to say, I see the same thing. And I wonder if it's just a. Is it programmers in general or is it just you get enough people and eventually you'll find the user who wants to help out the site but kind of goes in the wrong direction of doing it.
Joel Spolsky
I think the latter. I think it's, you know, it's rare, but it does happen and the way you deal with it sets the tone. Right? Like, if you don't deal with it, that's as bad as having lots of these users.
Jeff Atwood
You know, when I first moved to New York, I'm walking down the street and I was really like a full time programmer in those days. I mean, I just coded all day long. I'm walking down the street and a taxi comes careening through a red light, nearly runs me over. And I'm like, what the hell? This taxi nearly ran me over. And I start chasing it and banging on the taxi with my hand and start screaming at the taxi driver. And I realized that what was happening is I was having this mindset of I saw a bug with the world and I want to fix it. Like, the taxi driver tried to run me over. I'm going to yell at him so he doesn't do that anymore. But there are millions of taxi drivers in New York, and you know what? The entire population of taxi drivers in New York are all immigrants and they turn over every three weeks on average. So there is no way I'm going to educate all 14,000 or whatever, 28,000 legally licensed taxi drivers in New York not to try to run me over. As if they could care less because I banged on their taxi with my hand. And what I realized was this was more something about me, that when you're coding all day long, you are fighting an avalanche of code, not doing what it's supposed to do, either because you haven't written it or because the first time you write it it's buggy and the next 17 times it still has bugs and eventually you get it a little bit closer and you're just basically like sweeping back to C with a stick, beating back the sea with a stick. What's that expression? You're just. You're fighting this constant avalanche of the world is wrong and I need to make it better. And then you get out in the actual world as a human being and it's hard to change that mindset. It's hard to forget that you're not responsible for improving the traffic situation in Manhattan and the safety of pedestrians. It's not. You can't do. You can't do that. You make a whole job doing that. You could try to admonish a couple of taxi drivers once in a while, but if you try to do that in your interpersonal relationships in real life, if you try to behave the way you behave as a programmer doing his or her job, if you try to behave that way with your family and your friends, it's highly inappropriate. You have to be, you know, a lot more tolerant. You know, you can't, you can't debug every problem in the real world. At some point you just have to stop and say, okay, let it go.
Joel Spolsky
I mean, that's the key thing. And I think a lot of these edit wars are people that just can't let it go because they are. This must be capitalized.
Jeff Atwood
And it's no programming. And it's very much a programming mindset, I think. And it's unfortunately necessary because compilers are unusually literal minded compared to, say, humans and computers just do exactly what you tell them. And therefore you have to be extremely strict in what you emit. You have to do the exact right thing or they're not going to respond. And when they have bugs, you have to fix every single one of them, because who knows what's going to be a security bug and what's going to be. And so that's why I think that programmers do this a lot.
Alex Papadimoulis
So I wonder if the programmer, the type of person who will write his own compiler or take the compiler and fix the compiler, will be more personable. Because now they're not fixing their code, they're adjusting their compiler expectations.
Jeff Atwood
But their compiler is code, so that's true. But think about, Alex. Think about, like, what if it was. There are things that you use on a computer that are softer. Like maybe you have a spam filter, that's a Bayesian spam filter, so you're training it on spam, saying, this is spam, this is not spam. And then you get an email from the senator that you once sent a letter to eight years ago telling him that you want him to protect the whales. And you get an email from him asking you to reelect them, and you have to decide whether this is spam or not. And you can't really decide. And eventually you just say, ah, let it go, whatever, because it's a Bayesian filter. You know what I mean? You're not working with. Should he be on my regular expression to match it. It's more like sort of that soft training of the. So there are things that you do on computers and things like interactions with other people through computers, where you use a more soft human kind of approach. But in terms of like actually writing code, it's 100% like ridiculously literal mindedness.
Joel Spolsky
Well, I think the interesting discussion there is what happens when what we're basically describing is letting the most obsessed person win, which is kind of what you have to do in the real world, because the people that are really obsessed, that are really invested. It's just like on Wikipedia. Right? It's the same thing. The people who are obsessive about Elvis are going to own the Elvis topic and there's nothing you can do. You don't have enough hours in the day to write scripts to beat them. You're not going to win. But what happens, and I agree this is generally correct, I don't actually have a problem with this, but I'm saying what happens when the most obsessed person wins on every topic, that may be okay.
Jeff Atwood
They may be the person that cares the most because they know the most. You know, I don't think as a general rule that's necessarily going to get the wrong outcome if the.
Joel Spolsky
I agree it's not necessarily wrong, but I think there's some.
Jeff Atwood
Maybe they care the most stuff around the edges. I mean, maybe they care the most because they know something that the other people just don't seem to be recognizing. Whatever it may be, they may be like, look, I'm sorry, you're just doing. This is a security bug, the way you're describing this. And you have to not do it this way. And that doesn't seem like something you'd get into a debate over. And I'm certainly not talking about capitalization here, but.
Joel Spolsky
Right. Well, Wikipedia, it has to work because otherwise if it didn't work, Wikipedia totally would be busted all the time. So letting the most obsessed person win is what Wikipedia is.
Jeff Atwood
I guess so, yeah, it really is. Well, they have to. Eventually they close down highly controversial subjects. They lock people out and stuff.
Joel Spolsky
Well, and we do the same thing, right? Like if we see there's a big edit war, then we'll lock and we actually need to write code to automatically lock things where that's happening. But yeah, there's some intervention that happens. So one thing that came out of this whole sort of timed suspension mechanism is we actually improved our flagging capability to make it more in line with actually Craigslist the way Craigslist does flagging.
Jeff Atwood
Where you provide a reason that you're flagging something.
Joel Spolsky
That's right. And we also have a reason for spam because we decided for spam we might eventually want to do some Bayesian stuff or blacklist URLs or something. So we actually want to know when something's spam versus just offensive. So we added another criteria there. So you can right now you can say offensive spam and then inform moderator. And if you do inform moderator, you can actually send us a little message explaining what you think is wrong here and we'll take a look at it.
Alex Papadimoulis
Now, is there a lot of spam that get. I mean obviously most of us won't see it, but I mean does a lot of spam come through?
Joel Spolsky
No, there's actually one post. I don't know what happened because we have a bunch of spam mechanisms to get spam on the site. You definitely have to be a human. And we have had at least one incident where somebody just for kicks decided to solve our captcha over and over and post a bunch of really stupid stuff. So that has happened and can happen. But there's one particular post. I don't know what it is about this post. The World of Warcraft gold farmers found this post and it has nothing to do with World of Warcraft. It's just a completely random post. And all of a sudden there was like literally dozens of like wow, gold. Get all your gold. Like I don't know why they're so obsessed with this post. I had to like close the post because it was that one post. It was like a spam magnet. I don't know what happened there.
Alex Papadimoulis
I I see the same thing on WTF and and you know tried hundred different things. I am convinced that it is a person. You know, some who knows where going and posting these things.
Joel Spolsky
We actually know it's definitely a person.
Jeff Atwood
We see people. But I've also seen scripts that do this. You know what? A lot of times there are scripts that just do Google searches to find the high PageRank sites and they go to those PageRank sites and they look for forms and they fill out the forms with some spam and they're hope and a hyperlink back to them and they're hoping that some page rank will flow through that which may or may not. You may have rel nofollow so that the page rank doesn't throw through but it doesn't matter because they're spammers. They're going to do this to a million sites with high page rank in hopes that. So a lot of times there are people that have these little businesses where they're like, we will boost your page rank. And what they're doing is they're running these scripts that they've written that go and find high page rank sites that have forms on them and just fill them out randomly and they don't care what the form is. They may send an email. They may. And some it can be a tiny percentage of those forms result in something that is posted then on a page that is high page rank and doesn't have rel nofollow. And some of the page rank will flow through Google from that. And that's. That's their mission. And a lot of times this is done by fully automated scripts that are just spewing all over the universe. And sometimes what you'll see in discussions on blogs and I suspect Jeff and stack overflow, is that a particular topic may have gotten linked to by somebody with high page rank. So some pages may just happen to have slightly higher page rank than other pages. And that's why they become the first magnet for spam. Although the other ones will eventually get it too. But they may be first because this topic just happens to have been linked to from some other blogger somewhere and therefore it has a page rank of three instead of two or whatever.
Joel Spolsky
Right? No, that makes sense. One caveat. I do think it has to be humans. We have enough protection from bots, including recaptcha, that there's just no way this could be a script.
Jeff Atwood
Well, I think actually for the people that are doing this, captcha is a standard part of their toolkit and that may mean that they've hired people at low wages to do it. A lot of the captchas in the world are broken. And I'm sure that the spammers know what the hacks are and which ones are broken before the white hats know which ones are broken. So you may be using a captcha that's generally assumed to be good and they just have a script for it. Or like you say, if they're gold farmers, they probably have a bunch of gold farm people that could sit there and type in these captchas all day long. It's not very hard. Or they'll set up a porn site with captcha and, you know, and. And then they'll get all people all over the world to solve captchas for them in exchange for looking at porn pictures.
Alex Papadimoulis
That's actually quite. That's that's pretty clever.
Jeff Atwood
Quite the hack.
Joel Spolsky
Well, I think that's more of a theoretical thing than an actual thing. People love to bring that example up, but I'm just not convinced that I think there are people who are paid to solve captchas. I don't think that the porn method is necessarily. It's exciting to talk about, but I don't think it's really practical. Yeah, I think it's more of a theoretical thing, but there are certainly people that are solving captchas just using human forms. Absolutely mechanical.
Jeff Atwood
It's like the thousandth of a cent, you know?
Joel Spolsky
Yeah.
Jeff Atwood
Do you want to take a listener?
Joel Spolsky
It's fun to solve CAPTCHAs. Who doesn't love to solve captchas?
Jeff Atwood
It's fun sit there all day long. We can make little video games where you type in words. It's called typing tutorial.
Joel Spolsky
So Alex, I think you had some stack overflow posts that you want to talk about.
Alex Papadimoulis
Yeah, sure, sure.
Joel Spolsky
Yeah.
Alex Papadimoulis
Actually I was browsing the questions and came across a couple interesting ones. And let's see, I'm going to try to pull this one up here. Okay, so it is database wide unique yet simple identifiers in SQL Server.
Jeff Atwood
Give us the number and the URL.
Joel Spolsky
What's the number?
Alex Papadimoulis
It is 721497. So it's a pretty common problem and this is one that I've just encountered time and time again in any organ. This is business programming. Undoubtedly you'll have a situation where the unique identifiers that you apply to a loan or some document something people write these on post it notes, they hand them around, which is why very bad idea to use guids for identifiers. You're going to show people because that never works. You can't hand somebody a GUID on.
Jeff Atwood
Paper just because it's too long.
Joel Spolsky
Yeah, yeah.
Alex Papadimoulis
And you know, if you've been in these departments where you know your software is now being used by 100 people in cubicles on a floor, you know, that's what they do, they write these numbers down. I'm trying to think of an analogy that we might. Well, just like the question id. So if you had used guids, I couldn't have given you that number. So the problem that this question is specifically referring to is obviously you guys only have one ID and that's the question ID. But what happens if there were question IDs, user IDs, topic IDs, again, bad example for the site here, but in the business world that happens all the time.
Jeff Atwood
As an account ID order id. Right, right.
Alex Papadimoulis
So what I thought was interesting is there were a lot of unique solutions kind of answered here, but one that I've seen in a lot of systems and one that we've implemented time and time again. Just go with different lengths so you can be pretty certain that you're not going to have more than 999 customers. Again, depends on your business domain. Oh, sure, sure. If you build skyscrapers, probably not. Okay, so you figure out what your max lengths are and then you can consistently have 4 digit customer ID, 6 digit loan number, 8 digit, whatever number. And that seems to work out pretty well because the users will come to recognize one identifier versus another.
Jeff Atwood
So you're talking about having different types of id, but like, let's say you want to separate the customer ID from the account number from the order, the specific order number from the invoice number, from the purchase order number from that kind of stuff. And you want to make sure that when you hear that number, you know which it is.
Alex Papadimoulis
Absolutely, yeah.
Conversations Network Announcer
Or well.
Alex Papadimoulis
And so you have a unique identifier that's just, it's really database unique for kind of the big business objects, you know, customers. The classic example that we always kind of fall back on is, you know, the customer ID you're always going to have, depending on your orders, have your customer ID be four digits. Let's say order be two digits and you can have your order number first. Four digits of the order number are now the customer id. So it really helps the users when they're passing around these post it notes, talking about them, really understand what that identifier is made up of. Have you guys heard of the smart key concept?
Jeff Atwood
No. What's a smart key?
Alex Papadimoulis
So the smart key, it's for cases like this. Let's say with an order number, for example, a lot of developers will just default to an auto incrementing id, which is fine. But if you can put a little more intelligence in that, let's say you want a seven digit order number. Well, you can stack in one digit is the year, three digits is the day of year, kind of go that route. So there's a little bit of intelligence.
Jeff Atwood
You see this a lot. You see like the invoice number 20090417 6. But you have to think about, in a lot of these cases, you have to think about a bunch of things. One is, is it important that outsiders not be able to guess somebody else's, say, customer ID number? Like, does it have to be security associated with these things in A way where nobody can kind of guess them. And if that's the case, one thing that I've done commonly which works is adding a few letters at the end as a password. So you've uniquely generated a three letter password at the end. And then everybody internally uses tools where they don't need. They can just ignore those letters. They just type in the number. Everybody externally has to type in those letters and they get looked up in the database to make sure that you got the right ones. So you generate maybe three random letters and tag them on the bottom to make sure that nobody can kind of guess what another one is without, you know, massive frontal assault. So that's, that's one thing I've done. There's the other situation where you don't want your customers to know how many customers you have. And so you need to sort of somehow obfuscate the. You know, if I order something from Amazon and I see that my order number is 37, and then three days later I order something else and my order number is 38, I learned something about how much I don't know.
Alex Papadimoulis
I think I was banking with ing. I was doing some online banking with ING Direct, had a confirmation number of 27.
Jeff Atwood
I don't know how that happened, but really? Yeah, he makes it count.
Alex Papadimoulis
27. Yeah, that was a confirmation number.
Jeff Atwood
They must reuse them pretty frequently. Are you all done now? Because I need to reuse this confirmation number.
Alex Papadimoulis
We only got two digits.
Jeff Atwood
There's another thing I do a lot, which is my favorite thing is to stick a Q in front of a number when you want to make sure that somebody's. When you want to make sure that, first of all you can search for these things because hardly any words start with Q. If Q in a digit is just sort of unheard of. And so it makes all kinds of like full text searches work real well. And also when you tell your customer, you know, do you have your order ID number? It starts with Q. Like, you tell them that on the phone, then they can look at the page that has all kinds of numbers on it and look for the one that starts with a Q And makes it easy for them to find because Qs are not so common. What else have I done there? You should definitely have at least a checksum. If the number is going to be longer than two digits, which it is, then I think it always makes sense to add, at least go ahead and take an extra digit to do a CRC like a checksum, like a credit card does, just to make sure that numbers haven't been transposed and a number hasn't been dropped.
Alex Papadimoulis
That's a good. You don't even need a full digit for that. You can use the last. Well, if you want to overload that, there's a lot of data that you can kind of stuff into those bytes. But that's. I don't know, I think that might be getting a little obsessive if you're trying to stuff a lot of data into your characters. But you know, what is that rule in psychology with. You can remember seven numbers or five to seven, is that average?
Jeff Atwood
Yes, plus or minus two. So.
Alex Papadimoulis
Yeah, yeah. So that's, I mean, that's the ideal length for your identifier. So if you're on.
Jeff Atwood
If you can't do that, you just have to group it like, you group it into blocks of three. Like we have, we have copilot copilot imitation, Excuse me, copilot invite codes. And when we did the copilot invite codes, we wanted them to be really short, but we needed them to be highly secure because this, this actually became a password to get onto somebody's machine. And eventually we settled on a 12 digit numeric code which in order to help people say it over the phone, we always print in four groups of three digits so that people learn to say it as three digits at a time, which just makes it easier to say over the phone. But I had actually, before we did this, I had actually. I was thinking if we used letters instead of numbers, we could make it shorter and have more variation because there are lots of letters. And then the first thing I started doing is trying to eliminate pairs of numbers that sound the same over a telephone because this is a number that we knew that a lot of people would be reading over the telephone. And so you can't have both M as in Mike and N as in November, because it's almost impossible to hear the difference between those over the phone. And similarly, you can't have B Bravo and P papa. Those will be confused by a lot of people. And anyway, by the time I had found all those things that would be confused, the letter O and the digit 0, the letter L and the digit 1, and all those things could be confused. And all the letters which sound alike over the phone, I was Left with like 13 letters that you could use total. It just wasn't worth it. I figured I'd just go for the numbers.
Alex Papadimoulis
Another consideration that I've seen that became an issue in one place was kind of watching out for having 666 in your number somewhere. Because who wants to be customer 666.
Jeff Atwood
It'd be kind of fun putting a 13 in there or putting 8's in there if you're Chinese or fours or. Which of the. One of them is good and one of them is bad, eights are fours, fours are bad and eights are good. I might have gotten it backwards.
Alex Papadimoulis
I could see that. I could see that. I have no idea. I'm guessing.
Jeff Atwood
Here'S another thing that AOL used to do on those discs when the AOL sent everybody floppy disks to sign up for free accounts or something. If you take common English words and you have two of them, that gets you an enormous number of possible of combinations. Absolutely enormous number of combinations. If you take the 50,000 most common English words or even the 20,000 most common English words that almost anybody can spell and you just make a two or three word phrase, you get as much combination probably as like a, you know, like a seven digit number.
Alex Papadimoulis
Yeah. What was that for the.
Jeff Atwood
Discs? Yeah. For your 30 day free trial. It was just a way to give you a password that would be easy to type, easy to remember, easy to everything without having to give you some kind of. Like compare it, for example, to the serial number that Microsoft gives you for activating your Windows, your Office license, where it's 25 digits each of which can be any letter.
Alex Papadimoulis
Yeah, yeah. I wonder how many more combinations Microsoft can get. Well, at least, you know, they're embedding data into that key, aren't they? As far as the version, the features and those sort of things.
Jeff Atwood
Probably, but you almost never have to. I mean, why can't it just be looked up in a database somewhere?
Alex Papadimoulis
Well, that makes sense.
Jeff Atwood
Yeah.
Alex Papadimoulis
Well, I guess Internet access, so you know, all those people, Windows, who don't.
Jeff Atwood
Have Internet access, they can't, they can't activate it offline. They need a. Oh yeah, you call the number. Yeah. And then you got to sit there and read letters to the machine.
Alex Papadimoulis
Yeah, I've done that.
Joel Spolsky
So we should get to the question you had, Joel. The submitted question.
Jeff Atwood
The listener question.
Joel Spolsky
Yes, please.
Jeff Atwood
Oh, yes, we have a listener question from Andy Bryce.
Andy Bryce
This is Andy Bryce from the uk and my question for the combined wisdom of Geoff and Joel is regarding the market for downloadable software applications over the next five to 10 years, how do you see the situation playing out? The web only scenario where downloadable apps are completely squeezed out by web apps and we'll all be running Photoshop and Visual Studio inside a browser. The hybrid scenario where downloadable apps convert with web apps. So the distinction between the two becomes increasingly arbitrary. The business as usual scenario where downloadable apps remain as important as they've always been, or something else completely. Thanks.
Jeff Atwood
Is he asking us to predict the future?
Joel Spolsky
Yes. So what we're trying to think is like five years from now, how will you typically get software on your PC?
Alex Papadimoulis
I cannot see everything going web based.
Jeff Atwood
Really.
Alex Papadimoulis
I mean a lot. Well, I'll tell you what. I started on my taxes last night. First went with TurboTax Online.
Jeff Atwood
Yeah. I've been using it for three years now.
Alex Papadimoulis
Have you? I don't know what it was. I really liked the feature set of the disk version, the download, a lot greater than the web version.
Jeff Atwood
It's exactly the same. They have a big gigantic XML file that describes all the tax forms and then they just run it through the web or on the. Even the download version for years has just been a big old IE control.
Joel Spolsky
I think.
Alex Papadimoulis
You know what, there's a few features that were missing that I noticed that just drove me nuts. Couldn't view the 10:40 interaction.
Jeff Atwood
Oh yeah, they don't have all those view forms. That's right. You can't just go view a form.
Alex Papadimoulis
That's what drove me nuts. Yeah, right.
Jeff Atwood
You're right, you can. I don't know, at the end you can print them.
Alex Papadimoulis
You can print them, but you just can't go edit them. It's just, you know, I could.
Jeff Atwood
Yeah.
Alex Papadimoulis
And you know, there were a few other things and I don't know what it was about the web. Every time you clicked it, it had that updating and it was only at like a tenth of a second or a little more that. But I think the desktop experience, even though it might have been an IE control, however they have it set up, desktop experience. I say much better.
Jeff Atwood
Okay. Yeah, there are, I mean there are definitely going to be a lot of cases of that. I mean, here's an app that I don't think I'm going to use a web based version for a long time. Audacity, which I use for editing the audio of the show. It's just I can't even imagine a web based, trying to do good edit, fluent editing of video or audio using.
Alex Papadimoulis
I suspect it'll be a hybrid. I mean I could see somebody putting Audacity in a. Some control in a web browser.
Jeff Atwood
Well, what's like, where does Steam come into all this?
Joel Spolsky
Well, I think it's really a blending of the two. I don't think there's really talking about everything running in the browser is sort of a misnomer. It's really a question of, like, how do you get software? And one thing that you're not going to do anymore, clearly we're already not doing. You're not going to drive to Best Buy.
Jeff Atwood
No.
Joel Spolsky
And buy a copy of software, and that clearly is going to die. And it already should be dead.
Jeff Atwood
Frankly, to me, it's for all intents and purposes, dead. Yeah, yeah. You're gonna get used to store Egghead. They just. They just sold software. It was a store where they had boxes with software. You went in and you purchased the software.
Joel Spolsky
They still have that. Just not.
Alex Papadimoulis
They're still around.
Joel Spolsky
No, no, not Egghead. But I mean, if you go to Best Buy, there's tons of PC software on the shelves.
Jeff Atwood
Not tons. Isn't it mostly.
Joel Spolsky
Oh, there's tons at Best Buy. Tons, dude. There's like two aisles.
Jeff Atwood
What do you get?
Joel Spolsky
One full aisle on both sides. I've been there.
Alex Papadimoulis
Well, two.
Conversations Network Announcer
Two.
Alex Papadimoulis
Isn't that great? I mean, remember, Egghead was like a whole store filled with. I mean, I remember.
Joel Spolsky
Yeah, it was more of a boutique, though. It's more of a boutique experience. Whatever. I mean, we're talking like packed aisles. But anyway, that's what I think is gonna die. So then the question is not so much, does it run in the browser or does it not run in the browser? I think it's kind of a red herring. I think the real question is how quickly and how effectively can you get software on the user's machine through whatever mechanism? And I think it's still going to be a blend. I think, even five years out, I think there's going to be a lot of stuff that's done in the browser, but I think there's going to be a lot of software you just pull down and run. If somebody could deliver, like. And Steam is kind of like the app store for the iPhone on the PC. That's the cool thing about Steam. Right. Makes it really easy to buy stuff. The friction level goes way down. I don't have to go to monkeysoftware.com, go through their weird checkout process and buy whatever it is they're selling me for. Software.
Jeff Atwood
And then worry about what you are. Yeah, yeah.
Joel Spolsky
You have a unified experience where, like, okay, there's this huge menu. I just click and, wow, I can just buy this. And it keeps track of everything and it automatically downloads everything and it makes very painless to get software. So I think Steam is kind of the future, and I think those guys are way ahead of the Game in terms of how software is going to come on the PC and the Mac eventually.
Alex Papadimoulis
So who do you see owning the Steam for applications? Microsoft. I don't know. Who else might take ownership of such a overarching thing? Everything from TurboTax to, oh, I don't know, whatever.
Jeff Atwood
I don't think there will be. I mean, I think what you're implying is that there's a middleman and I think that that model is over. We're going to go direct if you want TurboTax, you're going to go to Intuit. If you want, you know, Valve Games, you're gonna go to Steam if you want. And there's no reason for these.
Joel Spolsky
Steam is way more than Valve, though.
Jeff Atwood
Steam has. No, no, I know, but what I'm saying is that. But isn't Steam owned by Valve?
Joel Spolsky
It is, but the. The catalog is huge now.
Alex Papadimoulis
They have a lot.
Jeff Atwood
And they're all smaller companies that just want to get in on.
Joel Spolsky
Yeah, they're basically outsourcing that stuff. So, yeah, if you're a giant company, if you're a Microsoft, you know, hell no. You're not gonna go to Valve and say, oh, please distribute our software, kind sir.
Jeff Atwood
Yeah.
Joel Spolsky
You're gonna say, screw you and do it yourself.
Jeff Atwood
I guess you're right.
Joel Spolsky
I think there's a huge number of. It's the same reason you would use PayPal and not reinvent PayPal.
Jeff Atwood
Right, right.
Joel Spolsky
You're just getting infrastructure.
Jeff Atwood
It's not just that. It's like the App Store on the iPhone. Just the fact that there is a single store makes it such a better experience that it's worth it to people to be in that store than to try to make a Nokia Symbian S60 app and put it on your own website where nobody's ever going to find it.
Joel Spolsky
Exactly, exactly. That's what I'm saying. And I think that's where the improvement needs to come on the software side.
Jeff Atwood
Mm. So how come Microsoft hasn't done a Windows Store on it?
Joel Spolsky
You just don't know about it because.
Alex Papadimoulis
They have a Windows catalog, right?
Joel Spolsky
Yeah. Windows Marketplace. It's not good.
Jeff Atwood
Must not be.
Joel Spolsky
I mean, just the overall experience is not optimal in terms of. It's hard to explain. I have friends that actually worked on this. I don't want to say two things too negative about it, but it's traditional. Microsoft in that they didn't really think enough about the problem in terms of making it easy to do the right things.
Jeff Atwood
It's not just that, it's. You also have to have. For something like that, you really have to have compelling content on there. Like the cool people will buy, no matter how screwed up the store is. You want to get back to.
Joel Spolsky
Let me stop you right there. Ask yourself this. Why doesn't Microsoft let me download Vista for a long time? They actually do have a way of doing this now.
Jeff Atwood
Yeah, right.
Joel Spolsky
Like why can't I just download Vista, say I want to install Vista, Click and just download and install it.
Jeff Atwood
Okay, So I actually have the answer to this. The answer to this is that for years and years and years, they built up a channel of distributors and resellers and retailers and people that would handle these physical products. And those people still sell a lot of product and therefore they have a lot of leverage over Microsoft. And whenever Microsoft tries to go direct to the consumers and bypass these people, these retailers and distributors and so forth, shout bloody murder. And they say, we're cutting you off. We're going to make it so that you cannot get Vista and Best Buy. Because when you buy Vista and Best Buy, that Vista didn't get to Best Buy from Microsoft. It got there through Ingram Micro, which is a distributor or Maricel or one of the other big distributors. And so there's a lot of people making money off of that copy of Vista that's in Best Buy. And all of these people threaten Microsoft every time Microsoft tries to go direct. And it's just a matter of who has the most clout. And as long as Microsoft is still making a lot of money off of this channel, they can't afford to offend the channel partners.
Joel Spolsky
So, two observations. One, Microsoft does in fact sell Vista.
Jeff Atwood
Yeah, well, that's because eventually these people have lost. Eventually the retailers are just not important enough and the distributors are just not important enough and they're just going to lose.
Joel Spolsky
Yep. And then the second point is that Steam struggles with this all the time. I mean, some of these Blockbuster games that come out, I mean, they have a huge retail channel. And a lot of times with digital distribution, like you can't get the digital version until the day the physical version is available. You're basically handicapped for no good reason. And they charge the same exact price. And you know, they're making a killing on digital distribution because it's the same physical price.
Jeff Atwood
Yeah.
Joel Spolsky
No trucks have to drive it anywhere. No stores have to be stocked. So you kind of get ripped off. And you can see why that is because they don't want to piss off the retail channel.
Jeff Atwood
Think about if you go to these. What's that? Sony store that they have in San Francisco, the Metronome Metron. And there'll be like a Sony store there where everything costs twice as much as it should because it's being sold for the official manufacturer's recommended price. And they have no choice because they're Sony and they do not want to piss off their distributors. And because Sony makes physical goods they have, they can't do that. And so they. If they make a store, they're gonna get nailed by their distributors unless they charge full retail price, which is why nobody ever buys anything in those stores except for stupid tourists who don't know anybody.
Joel Spolsky
Right. Well, we should probably stop there. We don't want to go too much longer.
Jeff Atwood
Did we do. Let's see. We did a question from the site. We did a listener question. That's, I guess we've covered our minimum number of things that we need to do.
Joel Spolsky
Hopefully we've got enough bingo topics this time. So people playing along with bingo are winning.
Jeff Atwood
What are some of the bingo topics saying?
Joel Spolsky
Actually talking about c. What's the phone number? Saying the word raid. You got to forget the phone number.
Jeff Atwood
I'm looking. I'm looking for the phone number. Hey, Alex, thanks a lot for coming on with us and being a guest.
Alex Papadimoulis
It's been a lot of fun.
Jeff Atwood
Where can people find you? The DailyWTF.com yeah, that's the best place.
Alex Papadimoulis
And you know, if they want to contact me, it's pretty easy to find.
Jeff Atwood
Do you have one of those Twitter ingamajiggies?
Alex Papadimoulis
I actually do. And real easy to do, just Twitter a papadymolis. You know, go type that in.
Jeff Atwood
And P A, T, I, M O, U, L I, S. I'm just going.
Joel Spolsky
To type in alexp and then hope.
Jeff Atwood
It works, but it won't. And to our listeners, if you have any questions you might want us to play on the show, you can either call the Stack Overflow hotline, which is done by dialing at 646-826-3879, or record a little voice file using your computer thingamajiggy in mp3 or Ogg Vorbis format, and email it to podcastechoverflow.com and hopefully we'll play it in a future episode. Send us some good ones because we're kind of running out of interesting questions. Ideas for me and Jeff to talk about next week. Oh, there's a next week. I'll tell you about next week in a minute, but there's a wiki, a transcript wiki which is linked to from the show notes@blog.StackOverflow.com, where listeners from around the world contribute by transcribing parts, bits and pieces of our podcast and eventually hopefully developing the full thing for the benefit of the hearing impaired and also to make something that you can link to if you want to get angry at Jeff. For example, Michael Prior has been doing a great job of writing down all of Jeff's comments on the third Class Languages of the World in that transcript from last week's podcast. You can find that in the show notes blog. That's decoverflow.com next week. Dvagi that's it. See you next week.
Joel Spolsky
See you next week.
Phil Windley
You've been listening to Stack Overflow with Jeff Atwood and Joel Spolsky.
Conversations Network Announcer
The Conversations Network is a 501c3 nonprofit and we need your help. For a tax deductible donation of as little as $5 per month, you can support this channel and the rest of the Conversations Network. So please visit conversationsnetwork.org to become a member and help us continue to bring our programs to the world for free. Our audio files are delivered by Limelight Networks, the high performance content delivery network for digital media. The post production audio engineer for this program was Joel Spolsky. Our website editor was Jeff Atwood. The series producer is Jeff Atwood.
Phil Windley
This is Phil Windley. I hope you'll join me next time for another great presentation from Stack Overflow here. On it, Conversations.
Host: Joel Spolsky & Jeff Atwood
Guest: Alex Papadimoulis (The Daily WTF)
This episode welcomes Alex Papadimoulis, creator of The Daily WTF (Worse Than Failure), for a far-ranging discussion on topics core to developers: the difference between sysadmins and programmers, funny and frustrating software failures, the launch of Stack Overflow’s sister site Server Fault, debate around localization and programming in different languages, moderation and "justice" on web forums, and practical debates about user-friendly identifier design in databases and the path of software distribution. The conversation is energetic, candid, and sprinkled with memorable stories and thoughtful observations.
[01:28 - 04:26]
Notable Quotes:
"Changing the name was like the ultimate wtf. I think everybody was sort of scratching their head going, wow, that's a real WTF right there." — Joel Spolsky [02:38]
"We all tricked ourselves thinking that it was the right way to go." — Alex Papadimoulis [03:11]
[05:24 - 06:10]
[06:54 - 08:33]
[08:44 - 10:49]
Notable Quotes:
"At some point, the guy sort of leans over very seriously and says, have you tried JavaScript? And it's like they're not even remotely talking about JavaScript." — Joel Spolsky [08:56]
"What if you use SQL Server? I heard the SQL Server was amazing..." — Jeff Atwood [09:19]
[11:10 - 15:53]
Notable Quotes:
"Much more fragmented. In fact, I had people write me and tell me that they said it's just way too fragmented. You're not going to get any major personalities in IT system." — Joel Spolsky [14:49]
[16:10 - 16:43]
[17:03 - 25:33]
Notable Quotes:
"If you don't know English, that's fine too. There's plenty of other places you can go. I don't think that we need to own the whole pie." — Joel Spolsky [18:28]
"If we don't do those other languages soon enough, somebody else will come along and do them and then ... they will get critical mass." — Jeff Atwood [24:02]
"I think you got to focus on what's happening in the next six months, six to eight weeks, let's say six to eight weeks. That's the things you want to focus on." — Joel Spolsky [25:33]
[26:02 - 35:05]
Notable Quotes:
"It's like the guys in black masks coming and just taking you away in the middle of the night. It really, really is." — Joel Spolsky on hellbanning [27:16]
"You can follow the rules and end up just totally pissing off tons of people. But I'm following the rules…" — Joel Spolsky [33:09]
"I was having this mindset of, I saw a bug with the world and I want to fix it." — Jeff Atwood, on the programmer’s urge to fix "bugs" in the real world [36:21]
[41:33 - 45:29]
[45:48 - 56:12]
Notable Quotes:
"You should definitely have at least a checksum. If the number is going to be longer than two digits... just to make sure that numbers haven't been transposed." — Joel Spolsky [52:28]
"If you take common English words and you have two of them, that gets you an enormous number of possible combinations." — Jeff Atwood [55:05]
[56:44 - 65:53]
Notable Quotes:
"It's the same reason you would use PayPal and not reinvent PayPal. You're just getting infrastructure." — Joel Spolsky [62:13]
"Whenever Microsoft tries to go direct ... these retailers and distributors and so forth, shout bloody murder." — Jeff Atwood [63:30]
[66:06 - 66:54]
| Segment | Start Time | |------------------------------------------------------|--------------| | Daily WTF Name Story & Editorial Approach | 01:08 | | IT vs. Software Development | 05:24 | | Code "Pragmatism" Debate & Examples | 06:54 | | Management's Bizarre Tech Choices | 08:44 | | Launching Server Fault & IT Community Discussion | 11:10 | | Localization, Programming Languages & Ambitions | 17:03 | | Moderation/Justice on Stack Overflow | 26:02 | | Spam, CAPTCHAs, and Defenses | 41:33 | | Database User-Friendly IDs Discussion | 45:48 | | Listener Q: The Future of Software Distribution | 56:44 | | Closing Resources & Contact Info | 66:06 |
This episode captures the wild ride of being a software developer in a changing world: the quirks, the war stories, the gray areas between IT and programming, and the philosophical tug-of-war over scaling moderation and the reach of developer communities. Blending war stories, product design minutiae, and community debate, it offers both practical tips and food for thought on where our tools and culture are headed.