The Changelog: Software Development, Open Source - Discourse and Ruby (Interview)

Episode Date: May 3, 2013

Adam Stacoviak, Andrew Thorp and Kenneth Reitz talk with Jeff Atwood about Discourse and more....

Transcript
Discussion (0)
Starting point is 00:00:00 This is the Change Log, and I'm your host, Adams Dekowiak. We're a member-supported blog and podcast that covers the intersection of software development and open source. We shine a spotlight on what's fresh software development and open source we shine a spotlight on what's fresh and new in open source tuning in live every tuesday at 3 p.m pacific 6 p.m eastern at the changelog.com slash live and this is episode 0.8.6 recorded april 23rd 2013 and we're joined by jeff atwood also known as coding horror if you found this show on. And we're joined by Jeff Atwood, also known as Coding Horror. If you found this show on iTunes, we're also on the web at thechangelog.com.
Starting point is 00:00:50 And if you're on Twitter, follow The Change Log, because that's us. Welcome back, everybody. We're here live again. It is Tuesday. California Because he is awesome, Kenneth Reitz. What's up, man? Not a whole lot. How are you doing? Not a whole lot, huh? Got to come on the show with a lot of energy, you know? That's how it works. Today's an amazing day. I actually have some Chipotle sitting right here, so I'm pretty excited. Nice. Chipotle is kind of nice. Kenneth, you should be excited that he said Reitz and not Reitz this time. I'm very excited. I listen. I listen very well.
Starting point is 00:01:47 And the silent partner here so far, I'm sure he won't be too silent during the show. It's going to be a lot of fun getting into some of the great topics we have lined up. But Jeff Atwood is with us. Jeff, what's up, man? How are you? Hi. Great to be here on the show. Excited to be actually building an entire project that's open source finally. Yeah. And do you come on live podcasts often? I've been on a few.
Starting point is 00:02:07 Yeah? Which ones – which shows have you done recently? Just kind of curious. Oh, gosh. I mean, by recently, I mean maybe once every four months. So you're kind of making me dig through the old memory packs here. Gotcha, gotcha, gotcha. I have done it. I have to look it up.
Starting point is 00:02:21 So, Jeff, I don't want to assume that your moniker, Coding Horror, goes without knowing who you are. So is there anybody out there who doesn't know who you are that might be listening to the show? I'm sure it's possible. You think? I think it's good to have intros, yeah. So for those who may not know who you are, who are you? Well, I'm a longtime blogger at CodingHorror.com and co-founder of Stack Overflow and Stack Exchange. And that's how most people who would know me would find me.
Starting point is 00:02:52 And then now I'm doing this open source project, Discourse, which is essentially a next generation forum reboot that's totally open source and free to everyone. Free to everyone. Well, yeah, open source is awesome. everyone. Free to everyone. Yeah, open source is awesome. I'm kind of curious. I'm sure, Andrew, you've got tons of questions lined up. But, you know, there was a number of, I guess,
Starting point is 00:03:15 different alternatives out there in the past. You know, from way back in the day, you can go back as far as like VB bulletin boards from back in the day. And then even things like uh convore was it convore or carnivore never remember it was more of a chat system yes it's kind of a yeah i guess you can kind of mix the lines there i'm just kind of curious what what uh took you from stack overflow stack exchange and that whole, as you had put it, software city, how you got from that
Starting point is 00:03:47 to this, to Discourse? Sure. I'd love to talk about that. Stack Overflow and Stack Exchange, we started building that in early 2008. We started by researching what was the problem. A lot of the stuff I do is about fixing problems on the Internet because I want the Internet to be really good. And the problem that I had as a programmer was that I would search for stuff. As a programmer, you know, I have an error or something I have a problem with,
Starting point is 00:04:17 I need background on, and I would search for it. And I would just, as Joel Bolski always says, page fault in the information I need at the time that I need it. I love programming books, and I have a ton of programming books, but when you just want a really specific answer to the problem that's facing you and your editor or your interpreter, a lot of times it's easier to just search for something really fast to get you moving along and on to solving your problem.
Starting point is 00:04:42 So when I did this, I would often get, sometimes I got blog hits, which are usually good, and that's actually one of the reasons I started my own blog in 2004, was that I noticed that I was getting really good information from blogs, and this made me think of them as not personal diaries, but as a way to publish really useful information to other people in the world.
Starting point is 00:05:03 And when I didn't get blogs, sometimes I would get forum results. And the forum results were very, very problematic. I mean, the list of reasons is enormous. But first of all, it's hard to even find information on a forum. Like you land on a page which is, you know, 20 posts, right? Some pagination number of posts on the page. And you don't know if the answer is on that page. It could be on page
Starting point is 00:05:25 one of 20 so it's current or it's even in current i mean the list of problems is just enormous like it's slow to load it's slow to even tell you what's on the page it's usually filled with a bunch of ads people have a bunch of ridiculous signature blocks that take up a ton of space on the page making it even noisier the layout layout is bad. It's like, you know, 1999 all over again. But if you're willing to dig, sometimes there was good information there. So you couldn't just discard the forum results. But as we got deeper into Stack Overflow, we realized we were building a Q&A system more than an actual discussion forum system. So we kind of stopped looking at forums. But forums were a big part of the impetus for Stack Overflow and Stack Exchange in terms of getting to information efficiently. Forums are not that, right?
Starting point is 00:06:11 I mean, I think everyone realizes that if you want efficient answer to your question, forums are one of the worst places to go for that for a variety of reasons. So we kind of stopped looking. We realized we're not building forums. We're building a Q&A system. And it turned out there were a ton of Q&A systems on the Internet, like Answer Bag, of course Yahoo Answers, everybody's favorite. And just tons of Q&A systems that were like dark matter of the Internet that I had never heard of but were very, very large sites. And we realized, well, hey, we're onto something. This is a model that works.
Starting point is 00:06:40 It's just not well appreciated. So we polished it. We iterated. And we built a really nice Q&A system that got, of course, wildly, wildly popular. And then we extended it from just programming questions to sysadmin questions to computer enthusiast questions to cooking questions to gardening questions. All those sites are on the Stack Exchange network now. But the engine is very much a strict Q&A engine. And it's not about discussion. It's not about having a discussion about how your day went or what the coolest Java keyword is.
Starting point is 00:07:11 It's about, I have a problem. And I would like people to help me figure out an answer to my problem. But that leaves a lot of stuff on the table, because there's a lot of topics like, let me give you poker, I think is a really good one stack exchange has a poker site but it's just utterly failing and that's okay because they're experiments all the stack exchange launches are community launches like the community told us hey we want a poker site they voted for it they said we would support it there's all it's like this whole democracy and action thing so that's great but not all of them work and poker's not working like radically not working it's like at the bottom of all the stats list. Because poker isn't really about getting answers to your questions. Poker is a social game about hanging out and
Starting point is 00:07:55 talking about what's the coolest cigar to smoke when you play poker? What's the best whiskey to drink when you play poker? What's the best table? What's the best cards? Like what are some good strategies for this hand that I have? These are not really concrete questions. These are more like social discussions. And the software for this is terrible because I also had startups come to me and say, hey, Jeff, we want your opinion about this thing you're building. And I always really dreaded these questions because first, it's very unlikely I would ever go to their site, right, just organically. Like, the thing they were showing me is unlikely to appeal to me because, you know, people have a lot of different interests. And that just may not happen to be one of my interests.
Starting point is 00:08:34 So it's already very, very artificial for me to look at their thing. So the first thing I would respond with is, well, why don't you ask your own community what they think of the thing that you're building? And first of all, that'll tell you if you even have a community. If you don't have a community around the things you're building, then that's your problem. Go fix that. Don't ask me what I think about it. Figure out why nobody cares enough to give you feedback on your thing, right? Why is there no community forming around this thing that you're building? So go fix that. But the ones that came back to me and said, hey, that's a great idea. We have some community, we just don't have a good place for them to go. What should we do? The fundamental building block of an online community really is the forum. It's not a Q&A system, because it's very, very directed.
Starting point is 00:09:18 It's not about hanging out. It's not about socializing. It's just very, very directed. And that's not a good map to a lot of communities. So the software options that are out there for this are all, quite frankly, awful. I looked at them in good conscience. I hadn't looked at forums in four years. So in 2008, we looked. We researched it. And then in 2012, I was like, oh, these guys need a forum. Let me go find a forum to recommend them. And I just couldn't do it, man. Like all the forums were so bad. And I was like, this is embarrassing.
Starting point is 00:09:54 I would be embarrassed to have this software associated with my software product, right? So I was like, this is a problem. You know, this is a problem. And I still regularly get Google hits to forums. Like I would say it's rare that a day goes by that I don't get a search hit to a forum. They're something I was trying to figure out an issue with um I can't remember what it was but it was something where it was I landed on the forum it wasn't the right answer uh or it was the right answer but I wasn't sure if it was dated or not dated and you get there and you're just like all these forums tend to look like obscure and even unusual looking. They have like weird looking headers and the graphics are like outdated and somebody's got this dancing signature and it's just not the right situation.
Starting point is 00:10:54 It doesn't feel like the modern web. No. That's not a problem. When you land on a forum and you feel like you've stepped back in time, I mean really 10 years. I mean I hate to say this, but it's like a full decade behind modern web design. It just doesn't feel like – it feels like you've landed – like you said, you've gone to someone's house. There's wood paneling. There's stuff from the 70s. It's like you've entered a different era of the world.
Starting point is 00:11:15 We don't have to hang on this topic, but I want to say the thing I was trying to find was disabling the escape key to take you – Jeff, you're not a Mac guy, but when you take an app in full screen on the Mac, if you hit escape, it takes you out of full screen. And I was trying to disable that. It was driving me crazy because I have an app that requires me to hit the escape key to get at certain tools. And so if you're listening and you know how to disable the escape key while in full screen on a Mac OS, then just let me know, please. I need a solution. Because the one I went to was what Jeff said. It was some obscure form that had nothing for me.
Starting point is 00:11:50 The solution is to just not use full screen mode, basically. Well, you know. I wanted to use Logic in full screen. I'm a big fan of disabling the Caps Lock key. Ah. Yeah. Jeff, you've written a lot about keyboards and stuff like that, right? Yes, I have.
Starting point is 00:12:05 Do you want to tell us what your current setup is? Well, my current setup is, oh, gosh, I want to say Unicomp. It's the one, yeah, Unicomp. It's a buckling spring keyboard, so it's incredibly loud. So it's like the old IBM keyboard. Go ahead and type a little bit for us. Yeah, give us a little audio preview of it. Okay, well I'll have to put my mic close to it, but here.
Starting point is 00:12:29 It's beautiful. That is some fast typing. I'm using the... I wasn't actually... That's funny. So that's kind of the gist of where you came from. So where in this, if you could
Starting point is 00:12:43 kind of just give us a intro to Discourse and where you kind of where you came from. So where in this, you know, if you could kind of just give us a intro to discourse and where you kind of see the divergence from Stack Exchange and what discourse kind of does differently for you. Yeah, well, so discourse is really there to support. It's a much more fundamental building block of community. And it's just about conversations. It's not about producing useful information. Stack Exchange is very strict and necessarily so about producing information that is somewhat useful to the outside world. Forums are less so. Forums are really about just having fun conversations in your clubhouse with your friends or people that love the same thing you love. It doesn't necessarily have to be your friends, but usually you're in the clubhouse because it's a clubhouse per se. I don't know, lawn bowling or something. Something that you just enjoy and other people enjoy and
Starting point is 00:13:31 you want to go there and hang out with people that enjoy the same thing as you. But there's not really a focus on outside utility to the outside world. So there's no concept of, for example, voting answers up to the top because you can't really vote up an opinion. If I start a topic titled, who is the coolest X-Man? Your opinion on Cyclops being the coolest X-Man is not more correct than my opinion that Wolverine is the coolest X-Man, which is, by the way, true. Of course, yeah. Duh.
Starting point is 00:14:02 Yeah, yeah. flow kind of fit in? And do you still kind of take, what kind of an attitude would you take with something like that? Well, we want to have a really good plug-in system. Our spirit animal discourse is really WordPress, not so much the PHP part of it, but the idea that you have this building block of the web, in this case, blogs. And if someone said to you, hey, I want to start a blog, where should I do? Where should I go? Most people will kind of say WordPress eventually, either wordpress.com or.org or one way or another, you'll end up on WordPress, kind of. It's a nice fundamental building block for human communication because blogs are a net good, right? If we can get more people to write, writing is good. I mean, what you write about may be ridiculous, but you're writing and that's good. The same sort of thing I want to happen with discourse, where people say, hey, we need a place for people to hang out and talk about
Starting point is 00:15:10 our product, or blue jeans, or motorcycles, or I don't even know how to blow things up. It doesn't matter. It could be something bad, like how to be a racist. We want a clubhouse for these people to go to, to talk to. What software should I use? I want people to eventually come to the realization, oh, discourse. Go to discourse. It's free. No obligation. Just take it, install it, or have someone install it for you. And then bam, you've got a nice clubhouse for people to go to and talk about motorcycles.
Starting point is 00:15:38 That's where we want to get to with discourse. Gotcha. Very much like what WordPress did. And just as a disclaimer, we're not telling anyone that's listening to this that we want you to figure out how to be a racist. Good one, Andrew. Good one. Well, we did actually look at those guys. I won't mention the name because people get angry when I mention the name, but we talk about discourse as a rainbow system where
Starting point is 00:16:00 people are going to discuss what they're going to discuss. And some of the stuff they're going to discuss is kind of unpleasant, right? Like being a racist. And I actually researched that. We did a whole bunch of research on what community behavior guidelines you want to provide for all forums as just a universal constant. Like what's the sane set of behaviors that you want on a forum? Because forums that have survived for 10 years have done a lot of thinking about what behaviors are we going to allow here?
Starting point is 00:16:29 And what behaviors are we not going to allow because they're not sustainable. They tear the community apart. Even though they may be fun or enjoyable or may seem like the right thing, we're not going to allow them. And one of the ones we looked at was a prominent essentially racist forum. And I was really shocked to discover they had a lot of the same rules that were sensible rules about how to communicate with other people about racism. It's ridiculous. It's like reading The Onion. I could not take them seriously because they were just ridiculous. There was no scientific basis for hating people on the basis of their skin color. It was different than yours. And these are not the smartest people in the world. Let me just put it that way. So they kind of – they're their own best argument as to why you wouldn't have that position, I thought. So I was okay mentioning them, but people got very up in arms that I even mentioned them as a research point. Well, I think, you know, for me, like when I first, I was kind of digging through the archives of Stack Overflow,
Starting point is 00:17:34 because that's when I first kind of found out about, I think Stack Overflow, you know, before Stack Exchange and all that. And my first question, it's funny, was actually about Adobe Flex and ActionScript. And I was kind of digging through the archives, and I was looking through a lot of my questions. And you bring up a good point, like what is allowed and what is not allowed in certain atmospheres. Now, obviously, when you're on a Q&A type of a question like Stack Overflow that's about development, what's allowed is questions about, you know, here's my problem and answers about, you know, here's a solution. And we upvote and we give, you know, yes, this is a good one. I'm going to accept this answer. So I noticed that through all of my questions, there was very little,
Starting point is 00:18:16 how do you put it, like elitism, very, very little people really making me feel dumb for asking the questions. And i think the problem with a lot of people that they don't ask the questions because they feel dumb when they ask them so how on stack overflow have you guys done what is become seemingly impossible for forums to do which is like moderate without like making the users hate the man kind of a thing? Well, a large part of the secret of why that works is focus. I think if you go, the example everybody cites for bad comments is YouTube, and they're not wrong, but they fail to really analyze why that is.
Starting point is 00:19:02 The reason YouTube has such a difficult time with comments, even though they've actually done some innovation here that people have not noticed that much as far as promoting only certain comments and stuff like that, is the audience is too broad. If you have a video of Lady Gaga, there's just too many people. It's the tragedy of the comments. It's not specific enough. It's a huge cross-section of humanity are listening to this and wanting to put their little mark on the video. And on Stack Overflow, it's like, well, this is a question about Java, which is already, okay, how many people know Java in the world?
Starting point is 00:19:33 How many people care about Java? And on top of that, it's a really specific question because we demand that the questions be specific. You cannot ask, what is the coolest, you know, Java keyword, right? I mean, it's fun to think about, but it's not, it doesn't solve any problems for anybody, right? What problem does that solve for you? Knowing that, you know, this word, this is the coolest keyword. What does that even mean, right? How do you define coolest? It sounds like something discourse for discourse. It is something for discourse. It's exactly something for discourse. But you see why we
Starting point is 00:20:02 don't do that. Because if you allow that, then you get into arguments about, well, we'll define cool, and no, that's not cool because of this, and nothing is really correct, because there's no data, there's no science. Whereas I came in with, I'm getting this compilation error in Java. Well, I mean, there's some science you can apply to that. You know, it's computer science, right? It's not hard science like math, but there are verifiably correct ways to do things. And even if it's something somewhat broad of like, I want to, you know, how do I concatenate two strings? That's a valid question. There's a lot of ways to do that, right?
Starting point is 00:20:30 And a lot of them are correct. But there's only like a finite number. There's not an infinite number of ways to concatenate a string. There may be five good, three good ways and three crazy-ish ways, right, that you might do. But if a topic grows and grows and grows, if it has an infinite number of air quote answers, then it is not a question. It's a discussion, right? If there's an infinite number of answers, then it's an opinion sort of situation. And that's sort of a big part of the magical sauce is just staying on topic and keeping the topic really narrow
Starting point is 00:21:02 so that only people who really care about that will go in there going broad is a recipe for failure and i think forums you see this in forums where somebody actually sent me on twitter a great link to a 2007 forum 2007 forum topic about a programming question that just went completely horribly wrong it was like this complete argument about unrelated things and it just went radically off topic because nobody was there saying, look, this is essentially, as we say, being a dick about moderation. You have to stay on topic, and you have to come up with a topic that's narrow and specific and that can actually be answered. So the focus is a big part of the problem, and fixing the focus fixes most of it. Yeah, it's incredible how – and this is kind of probably one of the main reasons – well, I don't want to speculate, but I'm sure one of the reasons for Stack Overflow's popularity is this idea that on forums it was like my rank or whatever they would call it at the time was dependent on the amount of posts I would have on the forum. So if I had 7,000 posts on a forum, I was like this important person there.
Starting point is 00:22:06 Whereas on Stack Overflow, depending on the quality of questions I ask, the quality of answers I give, if the community kind of decides who gets the credit for stuff. And that probably, it's almost like the whole, if I'm going to buy something on eBay and it's got a 99% happiness rate or whatever that rate is, I feel more comfortable about it.
Starting point is 00:22:28 So it kind of breeds this environment where people are happy with the answers they're getting and they're satisfied easier. So I think that's pretty cool. So what drove the idea of having this be a thing that isn't fully hosted? Like there's a hosted version and you can run it on your own systems. What made you decide to do that after doing Stack Overflow? Well, let me take one step back. I will get to that. But it was frustrating not being able to give the Stack Exchange software to people.
Starting point is 00:23:02 On the other hand, it's such a strict system that requires really deep understanding of why you need to be strict in the system. That's why it works. You need, essentially, people installing the software need to understand the philosophy of why it works and how it works and be willing to enforce it and be willing to, you know, they have to be able to muster an audience
Starting point is 00:23:21 that can actually come in and live under this fairly strict rule set, right? Like, there you know there's ivy league colleges and to be clear i think of stackoverflow as at best a community college it's not like mit or yale or anything like that in terms of like super strictness but there are standards right like there's some level of strictness it's not just let it all hang out, anything goes, which is a lot of really the expectation on the internet is I can do what I want. Nobody's going to tell me that what I'm doing is not correct because, you know, it's the internet, anything goes, it's the wild west. And then all of a sudden they come on Stack Overflow and wow, we have actual rules about
Starting point is 00:23:56 what you can post. And the reason you come there is because the rules work and because it's a good place to get your question answered because we're somewhat strict about these rules that we have. So even if we made Stack Exchange open source, which I kind of wanted to do at one point, and then I got talked down by Joel, and I think he was right, but not for the reasons that he thought. I think he was right indirectly because the system is too strict. If I gave you the Stack Exchange system, and there's plenty of open source clones
Starting point is 00:24:26 of Stack Overflow that are just really awful. Oh god, there's Chapadeau and OSQA and these things are just hideous. They're like, you know the Rolex that has the R in the word, Rorex? They're like that. They're just terrible, terrible.
Starting point is 00:24:42 And on top of being just terribly implemented, when they get installed, nobody understands how they work, and they don't understand how to be strict, and they treat it like a forum, and it just breaks down. So it wouldn't have worked. But on the other hand, I really wanted to give it to people that I thought knew how to use it, but I couldn't.
Starting point is 00:24:58 They had to go through the Stack Exchange system on area51.stackexchange.com to fill things out. So with this course, I'm very excited that I can actually give the software to everyone because I feel like discussions and just hanging out in the clubhouse is a much more generally applicable, broader activity that's going to work for way, way more audiences, maybe even all audiences. Like I struggle to think of a community online that couldn't use a forum as a basic building block of organization.
Starting point is 00:25:32 So let's – do we hang out there for a second then? So since forums have been around for so long, why have they kind of, I guess, dwindled and why have they stagnated if they're so useful? Well, I think it's a – I don't know. I think the reason is good enough syndrome is like, oh, this is good enough. HPV is not very good, but it kind of works and it's a layout from 1999,
Starting point is 00:25:54 but hey, that layout works and certainly there's lots of really good live forums using terrible, terrible software. So the argument was, well, it's working. It's not so broken that anyone's complaining. But on the other hand, well, it's working. It's not so broken that anyone's complaining. But on the other hand, I would counter with really two arguments. One is, what other software on the internet has changed so little in the last 10 years? And the second
Starting point is 00:26:16 argument is just, you know, that nobody cared. It became so unsexy. It was just working that nobody was willing to go in and really lead and it's very frustrating to me that if you bring up forum software to to a mildly technical person they can't even tell you where to go to set up a forum or what the software should be right like there's no leader in this space that was willing to really you know take a stand like we're again like wordpress did and forums themselves they have the problem of like they start out and the and the community will grow and grow and grow and then you know they kind of establish their community and then they start to know each other and then
Starting point is 00:26:55 it's really hard for newcomers to get in on that and to come be a part of it you know they kind of breed that like environment so you'll see a lot of forums that will kind of fall apart over time because people get bored with them so and i think this these ideas encourage people to keep coming and makes it easier for newcomers alike you know to to do it so well that's right because on on stack exchange for example on stack overflow to ask a question is hard because you have to have a specific narrow question that can be answered whereas on a a forum, you could just come in and say, hey, you know, this cool thing happened to me. Let me tell you guys about it. And that's okay.
Starting point is 00:27:28 I mean, unless the forum disallows that. But most forums allow socialization, right? They allow socializing. This might sound weird, but I think that your biggest competitor will be Reddit. To some extent, but the format on Reddit is really bizarre like i find that i don't know i like reddit for what for what it is but i have like problems with reddit like i think the ultimate reddit post is an image and i think that's a problem um i can see that i think where you see
Starting point is 00:28:00 the really good data on reddit or the really good content is the subreddits that are very, very heavily moderated. Because Reddit always has this idea it's very libertarian, which is really irritating to me, to a point where it's just frustrating. They're so libertarian, like, no, there can be no rules. We just do whatever we want on Reddit. Child porn, sure, great, awesome. They had a whole backlash about that because even that was something they were unwilling to address, which is crazy. But where it's strictly moderated, like on like Ask Science and stuff like that,
Starting point is 00:28:31 it can work. But I feel like they're, it's an example yet again of people that people are just born social animals. If you have children, you'll see this. Like, I mean, humans are born incredibly social. So they'll take whatever tool you give them and they'll make it work to
Starting point is 00:28:45 socialize with other human beings. And I think that's what people are doing with Reddit. But how much has the Reddit software changed since 2005? Yeah, I mean, I still have a hard time with a lot of it and I've, you know, kind of learned how to use a lot of it. But yeah, I agree with you. Like ultimately the ideal post on Reddit is an image. And that's not good for discourse, right. We have a project called Discourse. And although we have great image support, and actually I love image topics, I think they're fun. And every forum has a post, the funny image, and those are awesome topics. I love those. But if your entire site is nothing but that, you have the wrong design.
Starting point is 00:29:23 Reddit is designed for a world where you submit URLs and you comment on URLs. That's what Reddit was designed for. And everything about Reddit flows out of that original design decision. Although you can make it work as a discussion system, it really wasn't designed for that, and it hasn't changed. I mean, it's barely changed since 2005, and I find that very frustrating. One of my only pet peeves with software is I really dislike software that's not evolving, because I think it's the job
Starting point is 00:29:48 of software. When software is born, you evolve. You grow up. You start out as a baby, you become a child, a teenager, and you grow up. Even as an adult, you continue evolving. You have different positions, you have different ideas about things, you learn stuff. If you're not changing as software, then
Starting point is 00:30:04 you're dead. I have that problem with Reddit, where If you're not changing as software, then you're dead. And I have that problem with Reddit where they're just not changing. They're a small team. For a long time they were a very, very small team, and they had a lot of explosive growth, but still just where's the design work? Where's the changes to the system to make it better? I'm just not seeing it.
Starting point is 00:30:24 I'm noticing on the discourse site here that you decided to make the default discussion license Creative Commons. That's very fascinating. Do you want to get into that at all? What drove that decision? That turned out to be, this is another example where the status quo of forum software is just bad.
Starting point is 00:30:38 The status quo of forum software, if you install, I think, VBulletin or PHP or any of the big players, you'll get a default license, which is we kind of own your content. I mean, you can still use it, but we can do whatever we want with your content for any reason. And that's kind of uncool. And it was really hard. I was surprised.
Starting point is 00:30:58 I even asked on Twitter. I was like, show me forums that are some ways that are more permissive, right, like Creative Commons or what have you and almost nobody could come up with examples there's a like a handful of examples of this and i think that's a bad default i don't think that's really intentional i think sometimes it is like if you have a big forum and you're some corporate entity for legal reasons you want to make that decision and if the users are okay with it that's fine fine. It's not terrible. But as a default, it's kind of dangerous, right? Like that shouldn't be the default.
Starting point is 00:31:29 So we are actually trying to change that. So that's right. When you install this course, you're free to override this. And we do explain it in the admin setup guide, which is all, of course, rapidly evolving. This is a very new project. It's three months old. But we do explain, look, you need to make this choice.
Starting point is 00:31:44 Who gets, what rights level do you want for the content submitted? Do you want the users to have the most rights? Do you want the public to have the most rights? Or do you, the forum owner, want to have the most rights? Those are all valid for, depending on your situation, they're all valid. But the default of the public having the most rights is, I think, better for the world. And that's certainly what discourse is about, is about good discussions that make the world better with software that makes it possible for this to happen. It's interesting. So let's kind of switch gears here for a second. And I think a question that I have for you you know as i know
Starting point is 00:32:25 you're a windows guy jeff so what has it been like for you getting into ruby on windows and and i mean it's a it's been a pretty big shift for you right to go from dot net to ruby so so what have you thought since you've kind of done this here well i like ruby I had always been intrigued by Ruby I cited the Steve Yegi post from gosh 2006 it was an old post where he did a roundup of a bunch of languages and he Steve Yegi is a polyglot he knows all these languages
Starting point is 00:32:56 and I find that the best programmers know multiple languages so I trust Steve Yegi I think his opinion is I think sacrosanct. It's one of the best opinions you can have, you can get as a programmer. And when he says, I think Ruby, I mean, pretty much he said this, I'm paraphrasing, and I'm in front of me, but Ruby combines sort of the best aspects of modern language design. That really stuck with me for a long time. And I always had on my mental to-do list to sort of come back to Ruby when it was more mature.
Starting point is 00:33:32 And when we were making a decision about what to build this course in, we knew it was obviously 100% open source. That was one of the design goals. It came down to really three choices, Python, Ruby, or Node. Initially, I liked Node because I do think JavaScript is going to eat the world, basically. I think it's kind of inevitable. And I said this with Atwood's Law in 2007, which half-jokingly I said any software that can be written in JavaScript will be written in JavaScript. And Node is another manifestation of that where you take the JavaScript engine from Chrome, V8, which is super, super fast and crazy optimized, and you move it to the server and start writing the same language on the server as you do on the client, which
Starting point is 00:34:08 is great, because then there's just less cognitive dissonance between oh, I'm writing Ruby on the server and I'm writing JavaScript on the client. But Node is in the same place, I feel, that Ruby was in about 2004. Which is that it's very, very immature.
Starting point is 00:34:24 I think it's actually even more immature than Ruby in a lot of ways. Like a lot of the major frameworks have yet to emerge. I felt if we chose Node for discourse, we would end up rewriting it in two years from scratch. And I wasn't willing to do that. I think it was, I just wanted something a little more mature than that. So I took Node off the table for that reason, although I think it has a very, very bright future for the record. So when it came down to Python versus Ruby,
Starting point is 00:34:51 the partner, the person that approached me who had an incredible background in Ruby, that kind of made the decision for me. I was like, well, it was sort of six of one, half dozen of the other. It was like either Python or Ruby are both good choices, so we just decided to go with Ruby. Now, as far as actual, you know, getting it implemented and the community
Starting point is 00:35:13 and the performance and stuff, we've been happy. I mean, I haven't really seen a lot of problems. I will say that I have been a little shocked at, I expected Ruby to be a little bit more mature than it is now in terms of performance. I'm happy with the changes that I see in Ruby 2.0, but there's a lot of what I call very low-hanging fruit performance-wise in Ruby.
Starting point is 00:35:36 You see stuff like JRuby and Rubinius and stuff like that, but you also see a lot of C plugins for Ruby that are there, well, not plugins, but gems, if you will, that essentially give you these massive speed boosts that you need to do things in a reasonable fashion. And then that causes problems, because if you want to use JRuby, well, then I can't use JRuby,
Starting point is 00:35:58 because our entire project depends on this gem that's written in C, and now you're sort of back to square zero. So I'm happy with Ruby. I feel like there's a long way to go in terms of performance and maturity, but it's in a good place to start. I think Ruby 2.0 is... I'm happy we started now.
Starting point is 00:36:19 I would have been very unhappy in, say, 2008. My hat is off to people that used Ruby very early on. I don't know how you did it. But I think it's in a good place. The velocity is good, and it's going in the right direction. So I'm not sure. Maybe I missed it, because I was listening really closely. But did he answer exactly the Windows question,
Starting point is 00:36:38 though? Like how Ruby and Windows... Generally, we don't. Sorry, let me answer that. We don't. We don't use Ruby on Windows. We use virtual machines. And that turns out to be the much saner way to approach development. If you go to blog.discourse.org, there's a blog post called Discourse as Your First Ruby Project. And we use Vagrant, which I'm a huge fan of. And Vagrant essentially downloads a VM of Ubuntu for you and sets it up, spins it up, gets it started,
Starting point is 00:37:07 and then that's your server. Your server is a VM running Ubuntu that does all the Ruby work. Then you can use a local editor in Windows. I use RubyMine, which I like, and develop that way. So the server, if you will, is a virtual machine running Unix. Yeah, we're actually going to have Mitchell from Vagrant on the show. I think it's two weeks from now, but yeah, we love Vagrant here big time.
Starting point is 00:37:31 So you kind of hit on it. So what does your environment look like for development? You're a RubyMind guy, and what are the unique tools or circumstances have you found yourself in? Well, I have to be honest with you. In this project, like in Stack Overflow, I was definitely a developer. I mean, I spent a lot of time writing C-sharp code.
Starting point is 00:37:50 But in Discourse, I'm more of a project manager or a product manager, if you will. I write a little tiny bit of Ruby code, and I'm set up with the environment so that I can make changes and stuff like that. But it turned out not to be efficient for me to write a bunch of code in this project. I set up the venture capital funding. We're a venture capital funded company.
Starting point is 00:38:16 It's kind of like that old office space joke. I take the requirements from the customer and I bring them to the engineers. That's what I do. Well, actually, my secretary does. It reminds me of the movie Office Space. What do you do around here? What do you really do around here? I take facts from here and I give them to those guys. I'm not going to work here anymore.
Starting point is 00:38:39 Exactly. I am not by any means a hardcore Ruby dev. I'm an utter noob and really all the heavy lifting on the project is done by Neil, Robin, and Sam in terms of actual Ruby development. So I'm not really in a position to speak about that stuff. So I'm not sure if Andrew's got this on his docket of questions to ask. So since you're not so much that role then, besides possibly just lifting Ruby up and saying how great it is, but you wrote the post, Why Ruby? What exactly made you write that post?
Starting point is 00:39:14 Well, you remember in the previous US election, people had the attitude, anybody but Bush. I have the attitude attitude anything but PHP. I actually looked at PHP. One of the great sadnesses of my life is that when we were getting into discourse, I had to actually look at PHP as an actual choice for my project. I'd suppress my gag reflex and say,
Starting point is 00:39:38 should we actually do this in PHP? Because it would actually be able to reach many more servers. It would be very easy to deploy. Yeah, but that's the problem. It's like Ruby needs to get better and easier to deploy. This is a problem. I mean, the status quo is bad,
Starting point is 00:39:53 and the only way to change the status quo is to come up with a really compelling project that has awesome functionality that's so good. They're like, you know what, screw it. It's Ruby, it's hard to set up, but I'm going to do it anyway, because this is so much better than the other stuff out there, right? Whereas if I build it in PHP, it would just be yet another reinforcement of the status quo. It's like, we use PHP because everyone uses PHP. Nobody uses PHP because it's actually good, or it's actually a great technical choice. It gets the job done, fine. But that's not,
Starting point is 00:40:23 this is not the way that we want the world to work. Like, I don't want my child to write PHP code. I really don't want that. Like, I don't want Henry to grow up in a world where he has to write PHP code. And the only way we're going to change that is by coming up with compelling alternatives, right? I don't want to attack PHP. I don't like it. But I'm not going to spend any time attacking it. I'm just going to try to build something awesome that's so good that makes people look at it. And one of the great satisfactions I've had in this project is hearing people on Twitter and on our forums say, hey, you know what? I'm a PHP guy, but I really like discourse, and I really want to get into Ruby, and I really want to understand this and help
Starting point is 00:40:57 develop because I really like what you guys are doing. This project seems really cool. And that's absolutely the goal of the project, is to get Ruby to a place where we're switching PHP devs over. And if you think back, like Ruby on Rails, like, you know, DHH, he was a PHP guy, right? And he said, you know what? I don't really want to be a PHP guy anymore. And he came up with Rails, basically, right? Like at 37signals.
Starting point is 00:41:21 So there is an established path for making this transition. And we want to encourage people to cross that bridge and make it over with us to the world of Ruby. Do you feel like you're in a good place now with the deployment of it, if you want to set it up? Or is that something that you're still trying to work towards and making it simple? It's a lot better than it used to be. I mean, I'm very impressed with the velocity we have as a project. We have a lot of contributions. The install is so much better than it used to be. I mean, I'm very impressed with the velocity we have as a project. We have a lot of contributions. The install is so much smoother than it was on February 5th when we launched. Every day it gets better.
Starting point is 00:41:52 I'm happy with the progress. My idea of a project is you're building a pyramid. Your job when building a pyramid is not to build a pyramid. Your job is to move these giant blocks one mile per day. That's your job. And if you move enough of these massive giant blocks one mile per day. That's your job. And if you move enough of these massive giant blocks one mile per day, eventually you get a pyramid, right? So the progress of the blocks being moved, I think it's fantastic. I mean, it's measurably better in every dimension that I can
Starting point is 00:42:16 think of. The setup is easier, lots of contributions. It's way smoother. We have better instructions. We're a long way from where we need to be, but the blocks are moving, man. Those heavy two-ton blocks are moving. We're a long way from where we need to be, but the blocks are moving, man. Those heavy two-ton blocks are moving. We're moving them. So being a.NET guy and doing it, and you obviously wrote that post, Why Ruby? Did you get a lot of flack when you decided to do it in Ruby? Or was your community, which unfortunately a lot of us on this side of it are blind to a lot of that, did you get response from the community in this? Or what prompted you to actually write the post itself?
Starting point is 00:42:50 Well, there were a lot of questions. Like, why not just do it in the thing that you know? Which surprised me because I love.NET. I think.NET is amazing. It's a very well-designed language. Anders is brilliant. I think he's a brilliant language designer. They've done a good job of curating language
Starting point is 00:43:06 and growing and evolving it way better than, for example, Java, which I think has been very poorly evolved in the last five or eight years. So it's a very well-designed thing, but there's too much friction in the stack for just open-source deployment. Like, download everything you need and get started in a few hours.
Starting point is 00:43:26 .NET is not a great solution for that. Certainly licensing always comes up. I hate software licensing. I think it's a huge pain in the butt. Not because of the money, but because I have to think about something now that I don't want to think about. I just want to build my solution and see if it's
Starting point is 00:43:41 any good before I worry about SQL Server licenses and Windows server licenses and all that stuff. And I do feel bad because I'm a friend of Miguel de Acasa, and I didn't talk about Mono, which is, of course, the open source, I don't know what to call it, but the open source version of.NET that's not from Microsoft, but from Ximian. And I felt a little bad about that, but I don't... With.NET, it's always like you're swimming a little bit upstream if you write.NET's code and you don't install it on the official runtime. It's just kind of in a weird place. I'm very encouraged by what they're doing,
Starting point is 00:44:19 particularly on the mobile side. They have a new company that lets you write.NET code and then deploy it to all mobile phones without doing a bunch of cross-platform work. And I think that's exciting. But I had heard a lot of not great stories about taking giant.NET projects and trying to run them on Mono and just kind of having a lot of problems. So I didn't view that as really a realistic choice for our project. I was sharing some links while y'all were talking, just kind of lamenting on your blog post discourse as your first Rails app. And I have to say how perfect that cat kind of teetering into the bathtub with a little bit of water in there is to doing what you're saying.
Starting point is 00:45:09 And for those who are listening that are, you know, as Jeff had mentioned, like PHP developers or someone who's not very familiar with Ruby, this blog post would be great for getting started too. Yeah, I mean, and that's, again, the purpose of discourse, one of the hidden missions of discourse, one of the hidden objectives is to get people introduced to the world of Ruby and the world of open source. And it's a very, you know, a lot of stuff is kind of broken, right? Like, I've been surprised at the number of things in Ruby that we've run into in Rails that have been a little bit broken. But the advantage is we can actually go in and fix it. And you've seen the work Sam Safran has done and Robin Ward has done. Our goal is to improve the ecosystem, not
Starting point is 00:45:51 just selfishly for discourse, but for everyone. We want Ruby to be as easy to deploy as PHP. And this is hard. Let me give you an example. So one thing WordPress can do is WordPress can update its own version. If you're out of date on WordPress, you can be in the admin UI in the web browser in WordPress and say, update my version. It'll pull down the code and basically override all the files and give you a new version of WordPress and update the database.
Starting point is 00:46:16 Even if it doesn't have permissions to the files, it'll even connect to your own FTP server to re-upload itself. It's amazing. There's a little bit of config you have to do to get that to work, but not much. It's mostly sysadmin type stuff. It's not code. But for the most part, it works. And I have a hosted blog with LaughingSquid that works fine with this. Our stack
Starting point is 00:46:36 overflow blog worked with this. Our discourse blog works with this with a little tiny bit of sysadmin level file permission tweaks. We can't even find a Ruby app that even tries to do this, right? Show me the Ruby app that can do what WordPress does. I don't think it's possible. If it is, nobody can do it, right? And that's the kind of stuff that we're going to try to solve. I mean, it's really hard. You know, like we need to be able to update our own version,
Starting point is 00:47:02 right? Like just like WordPress does. I think that's a big part of the WordPress success story is how easy they made it to do common stuff like get the latest code. So you don't, A, have security problems, and B, you get new features. You can even install plugins through the same methodology and the same update system that you mentioned for updating its own system. And, you know, with a Ruby app, it's not quite as easy to or possible to just click a button and install somebody's gem or plug-in to your app. That's right. That's right. And it is fun to participate in an ecosystem where we can contribute back fixes that get rolled up. I mean, Sam was very excited. He's put one thing in that is about to be accepted into Rails and a bunch of other tweaks that we want to give back to all the other gems and all the stuff that we're using. So what's the progress? Where are you guys at with some of these bleeding edge things you really want to achieve? Well, right now we're narrowly – we have about a two-year mission timeframe for the amount of money that we have. We're a venture capital-backed company, so you can sort of guarantee
Starting point is 00:48:07 that there will be at least four people, four to six people working on the project for that length of time. In that window, what we want to accomplish is, there's a couple things, a couple ways of how we measure success on the Discourse project. One is how many contributions we get.
Starting point is 00:48:22 We've been very happy with the level of contributions we've got. You guys can go to github.com slash discourse slash discourse and view the contributors graph and see that we've got a nice wide range of contributors, so that's good. The number of installed forums is reasonable.
Starting point is 00:48:38 We don't actually want that many discourse forums right now because every discourse forum right now needs to be very aggressively updated because it's so new um we're still building out the functionality there's still some mild security things we're working out i don't want to scare anyone but my point is you need to be upgrading very very aggressively at this stage in the life cycle of the project and we've also solicited some partners we're going to have three partners that we handpick, and we deploy the forums on our servers.
Starting point is 00:49:08 So we guarantee a really good experience where you don't have to upgrade. We take care of all the heavy lifting for you. We've done this with HowToGeek. If you go to discuss.howtogeek.com, you'll get to the first sort of live partner discourse forum. There's another one that's going to launch in mid-May that I can't say the name of yet, but it's a site that I'm very, very sure you've heard of.
Starting point is 00:49:31 It's not necessarily world famous, but I think most geeks have heard of it. And that's very exciting. That's the next step for us, is to get a little bit higher volume activity going on our hosted forums. And then a third partner. And again, we can't really announce who that is.
Starting point is 00:49:45 But those are the near-term steps. It's like, are we generating discussions that actually work, that people enjoy? And you can actually land on these pages and not feel bad as a person, because the page sucks, the content sucks. It was very, very slow to load. All the things that you dislike about today's forums
Starting point is 00:50:05 isn't noisy. That's the kind of stuff we want to fix. You can judge for yourself. Go to discuss.howtogeek.com and click around a little bit. How does that page make you feel? How would you feel landing on this page from a Google search? I can tell you landing on it now,
Starting point is 00:50:21 the design of just the posts are great. It reminds me of Stack Overflow a lot the design of just the posts are great. It reminds me of Stack Overflow a lot. Like, it's just good typography, basically. It goes a long way, right? Well, good design. And we did work. We've been spending a lot of money on designers because I'm happy to.
Starting point is 00:50:38 You know, we're engineers, right? We're not great designers. I mean, I'm good at copying things. I see things that I like, and I want to copy them. But I like to have real designers looking at what we're doing and it's got to look good. I mean, one of the things that would have blocked us for launch is we didn't look good because I think a lot of people will judge you based on how you look as a project. I think in general in life, this is true, right? But even in software, how you look matters a lot. So if you don't look sort of professional, if you don't look designed, you will immediately get written off.
Starting point is 00:51:08 Because there's millions of different options out there, right? Yeah, that's one of the unique things about communities like the Ruby community. It kind of draws the interest of a lot of creatives. So you see that kind of a thing. And one thing, when you were talking about looking at the contributors' graphs, I did that, and I saw, hey, our very own Steve Klabnick's on there, and he contributed something to discourse. So I looked at the commit, and he fixed a typo
Starting point is 00:51:35 in the author's markdown. There was developer instead of developer. So he hasn't actually contributed too much. Hey, it's a contribution. Those changes are important, because the maintainers aren't going to do it. Exactly. Well, they're not going to do it. So I wanted to say in our last week's podcast,
Starting point is 00:51:51 Steve Klabnick kind of talked about this group that he started on Google Groups and its philosophy in the time of software. And he doesn't have a website for them. They don't have anything like that. So does Discourse have any plans to offer something for people like him to come and create an area of conversation or whatever you call it, not a forum, but just a place to talk about this topic? Or is it going to have to be hosted by them? I guess my question is do you plan on offering any kind of hosting for different areas? We do. That's part of the two-year runway, but we got to get through our three partners. We're on partner number one now. Partner number two is coming in around the
Starting point is 00:52:35 latter half of next month. So we have to get all our partners really smoothly humming along. I believe really deeply in what I call the rule of three. Programmers think that everything they build is reusable, right? Every programmer thinks that every function they build is reusable, you know, in an infinite number of scenarios. But reusability is really, really hard. And I think the way to approach this is to say, have I taken this function, whatever it is, software function, doesn't matter, the unit of work here, and used it in three different contexts, three legitimately different enough contexts, not maybe radically different, but different enough. Once you've done that, you actually have some level of reusability. And I don't believe you have that until you've done that.
Starting point is 00:53:17 So therefore, I am leery of doing hosting until we've gone through our three partners. And the three partners are not just happy, but ecstatically happy. Right. They kind of help you hammer out the details and kind of grow in the right direction and everything too so well that's right because i want to make decisions based on things we're actually observing i have this huge problem with what i call imagineering where you imagine that you're going to have a certain problem with with the software that you're building so you build a solution to this thing that you've imagined in your head that is going to happen. Isn't Imagineer what Disney calls their engineers?
Starting point is 00:53:52 I think so. Aren't they called Disney Imagineers? Possibly. But the connection here is you want to make decisions. I'm not a big believer in making every decision based on data. I'm not a 42 shades of blue Google kind of guy. I believe you want some data, though, for all your decisions. You want to be observing what users are actually doing and making decisions based on real behaviors that
Starting point is 00:54:16 you're seeing. I believe very deeply in that. And that's why a lot of the features that we built with Discourse, we're kind of waiting to see the partners go live. We have HowToGeek live, and that's working very well. Lowell is very happy with his discourse instance, because he's seeing really good conversations. I mean, if you think about any system like discourse, what's the goal of discourse? Well, it's about people talking to each other. So the measurement of success is when you go there, A, are people talking to each other? Does anyone even go there? Are they having fun? Because to even have a conversation, you have to be enjoying it to some
Starting point is 00:54:49 degree, right? It's not this dry academic debate, like you're on the debate team. That's not really fun. You have to go there because it's some level of enjoyment, entertainment, right? So you have to be having fun. And are the conversations somewhat interesting to, you know, someone who's vaguely interested in the subject matter? And I think both of those are definitely true at HowToGeek right now. And that's very encouraging. And we actually had one user. HowToGeek has a surprising number of older users, like 50, 60, 70-year-old computer users that post. And I was like, this is fascinating.
Starting point is 00:55:22 I love this. This is, again, another great data point. Like, I wouldn't have predicted that there would be older users. And they're able to tolerate the discourse system. In fact, one of them said, you know what? I think the system is good, but it might be too fun. And I said, that's great. Because one of the goals is to actually have fun. Because if it's not fun, nobody's going to be in the room at this party talking to each other. You're not supposed to enjoy conversation. Well, that's right. And it was just
Starting point is 00:55:45 encouraging to hear. I was like, that's great to hear because one of the design goals of Discourse we decided early on was people have to be having fun because conversation cannot happen if people aren't fundamentally enjoying being in the room with these people. But someone's wrong on the internet. That's the compromise. Whereas on
Starting point is 00:56:01 Stack Overflow, we tolerate fun. But just like if you go to MIT, nobody goes to MIT, it's like, woo, I'm going to MIT to party all the time, right? Well, you might be in for a little disappointment because it might be hard work, right? It's not wrong to have fun. It's just a question of what your goals are, right? And discourse is much more of a party system, to be honest with you.
Starting point is 00:56:21 It's like about having fun almost first, really, and then generating useful stuff sort of as an inevitable byproduct of that system. Where Stack Exchange would produce, I would say, 50 to 80% useful information, a forum will produce maybe 10%. And that's probably wildly optimistic. But that's still better than, say, a chat system. Although there are relationships between chat software and forum software, let me ask you guys this. And answer, like, think about in your mind, when was the last time you did a search result? Or you did a search and you got a result page that took you to a chat log that helped you? When was the last time you got a search result of a chat log that helped you?
Starting point is 00:57:03 I don't know if I, you know, it's funny because i think i i ask the question and then i look for the stack overflow like when i'm doing tech stuff i ask the question in google and then i look for the stack overflow page but nothing frustrates me more than when i see those uh i don't know what they are even they're like chat logs that are transcripts elsewhere you know what i'm talking about like you'll see it i see i get mailing list uh archives a lot and that that's what mailing list archives and i hate that because i'm like i've i i'm like tricked into viewing this because i think this is some site that's providing some kind of something to me useful information and
Starting point is 00:57:40 there's seven clones of the same content with increasingly worse design each time. Right. But no, to answer your question, I couldn't tell you the last time that I found a chat log or a mailing list transcript or something that wasn't maybe the original source of it that I felt satisfied with whatever answer I found. I mean, for me, it's extremely rare. I would say one in a thousand searches result in a chat log. Whereas I would say easily one in at least one in a hundred forum results. I think many more, actually. Maybe one in 25, one in 50.
Starting point is 00:58:16 It's just not that uncommon for me to end up on a forum from a search result. That's one of the reasons I like the Discourse Project and I wouldn't like, although the chat software is really bad actually, web chat the state of web chat is really abysmal sadly, we're using litchat.im which I like a lot and they're still evolving it but I wouldn't want to build chat software
Starting point is 00:58:36 because it doesn't produce enough useful artifacts StackExchange was all about producing useful artifacts, I mean to the point that we make you leave the room if you're not generating useful artifacts as part of what you're doing. Now, on discourse, obviously you don't do that, because that's not the point of discourse. But I'm also very, very confident these communities, like if you go to discourse.soylent.me, I mean, soylent like in soylent Green as in it's made of people.
Starting point is 00:59:06 This is a crazy topic. It's this guy who came up with this idea of eating essentially liquid food all the time that's cheaper. Like, stop cooking food, just eat the same thing all the time. Kind of like cats and kibble, I guess. Except it's a liquid drink called
Starting point is 00:59:22 Soylent. And it's a whole forum for discussing this because it's cheaper, it's a liquid drink called Soylent and it's a whole forum for discussing this because it's cheaper it's easier I met a guy that does this a couple days ago he works for New Relic yeah but this is awesome because
Starting point is 00:59:35 part of what I said with this course is it's a rainbow system and it's about letting your freak flag fly this crazy thing that you're into you're going to find other people on the internet that are into it and this is exactly the kind of audience that i had in mind when we started discourse was like yeah this is a little bit crazy but it's also kind of cool you know it's like wow this could work i mean our cats eat kibble every day and have for the last five years and they're not dead maybe this could work for humans too. And it's great.
Starting point is 01:00:07 It's producing really interesting, useful discussions. So people that search for this will eventually find this information, right? The other people, they're like, hey, what if I had this liquid drink that I made myself with multivitamins and oils and God knows what else, like chemistry, right? And find other like-minded people that want to do this stuff. And there are some Google artifacts in there that people are going to be able to find for this stuff. Then they can go to this clubhouse of all these people that love this and hang out and socialize. It works for me. That's why I like the Discord project versus, say, a chat software.
Starting point is 01:00:38 I'm curious. Did you ever interact with the project called Convore at any point? I didn't. No? I didn't. No, I didn't. At the time, you know, Stack Exchange has its own chat software, which is actually amazingly good. It's actually one of the, I think, the best that there is. I'm biased.
Starting point is 01:00:56 But if you go to chat.stackoverflow.com, you can see this. Now, you can only get in the room if you have 20 Stack Overflow rep. Hmm. So essentially it's a perk. It's a perk built for members of the Stack Overflow and Stack Exchange community. I have never seen this before. It's awesome.
Starting point is 01:01:17 I think it's the best chat system on the market. And 20 is pretty low. That's basically like you answer a question that has the proper answer, right? Just kind of proves that you're a real person. Yeah, it's two upvotes on an answer or four upvotes on a question. So, yeah, it's pretty low. It's not like we're asking you to move heaven and earth to get on this chat. But it keeps all the junk away and it makes sure that the people that are on there are already familiar with kind of the system.
Starting point is 01:01:42 That's right. Because you need sort of a real-time vector. I mean, it's a different, it's an organizational system. That's right. Because you need sort of a real-time vector. I mean, it's a different organizational system. There is overlap between chat software and forum software. They're much closer related than I thought when I started this project. But I think the main difference,
Starting point is 01:01:57 if I had to quantify it, is people in a discussion, in a forum discussion, are willing to type paragraphs to each other. And they could be short paragraphs. They could be like two sentences. Whereas on chat, there's no expectation of even complete thoughts. Right?
Starting point is 01:02:12 It's just LOL, enter. Which is fine. It's chat. I'm not saying that shouldn't be allowed. But on chat, like I won't even finish my thought. I'll just take five random, not even sentences, to complete a thought. Which is terrible for reading later, right? It's this huge cost for people to come in after the fact.
Starting point is 01:02:31 It's like it optimizes for the writer, which is the wrong decision ultimately, I think, whereas form software sort of optimizes for the readers a little bit more in that you have paragraphs and somewhat complete thoughts together you don't have to read five interspersed lines to figure out the paragraphs that that person was trying to say so if you're a moderator on a in a discussion is are you encouraged to edit answers to make them maybe better to easier to read and things like that like on github um you can i i have been like on how to geek i'm a i'm an admin there and i will edit to correctly we'll mark down things and just make things a little bit
Starting point is 01:03:12 prettier but there's absolutely no expectation of other users editing your stuff that is really key to understand when you get on stack overflow and answer, you should expect other users to edit your stuff. And if that bothers you, you should not be there. We try to be really clear about this. But on Discourse, no. Other users will never, ever be able to edit your stuff.
Starting point is 01:03:37 Even in the plans we have, there's no way to make that happen. Now, there is this obscure feature we're going to implement where you can opt in for a specific discussion post to make it editable by other trusted users, but it's not even implemented yet. So right now, the only way your content could change about your opinion about the coolest X-Man,
Starting point is 01:03:58 which is obviously Wolverine, is if the moderator edits it. Other users cannot edit your stuff. There should be no expectation of peer editing. I guess that would kind of turn it into a wiki in a way. More of like an evolving discussional wiki. Which people like to shove conversations like that into wikis often, and it's a big problem.
Starting point is 01:04:20 That's right. Well, conversations are a problem. What did we learn from Stack Overflow? It's like people think that discussion is this unfettered good. Like there must be discussion because discussion is good. And we found that that was absolutely not true. Discussion was bad. You didn't want discussion. You wanted the minimum amount of discussion necessary to get the result that you wanted. And a lot of people object
Starting point is 01:04:44 to that. They're like, how can you say that my discussion is not useful or relevant? And I don't know. The more discussion you have, the less you learn. That's counterintuitive, but that's kind of what we found. It just depends what your goal is. Is your goal to get in the room and learn something? Or is your goal to sort of hang out, have fun, maybe learn something accidentally that's more
Starting point is 01:05:06 the reddit model right i mean nobody goes to reddit to learn stuff if they do it's it's kind of accidental and that's okay because the goal is to be entertained for the most part it's certainly a healthier balance than dig i mean dig was a terrible system because it was it was just all entertainment reddit at least has some incidental learning that goes on there. Do you read Hacker News? I do. So do I. I'm trying to wean myself off. It was my New Year's resolution to not read Hacker News
Starting point is 01:05:34 anymore, but I can't do it. You're addicted. Unfortunately. No, I like Hacker News. I think it's evolved from what it used to be, but I don't really have any objection to what goes on there. There are some complaints about the comments being, you know, not friendly enough. But I don't know.
Starting point is 01:05:54 It's just a question of the audience. Like, every audience has its own tone, right? Like, I'm the guy that was telling you I went to the racist forum. I mean, I do not condone racism, but I think it's okay for the racists to have a place to hang out. So I'm also going to tell you it's okay for the programmers who are a little bit, you know, a spurgery to have a place to hang out and make socially inappropriate comments about stuff. That's what I always found really fascinating about Reddit was that you have all these little subreddits that people completely isolate from each other. So the whole site isn't one large community.
Starting point is 01:06:26 It's a bunch of small communities, which is an interesting thing about discourse. There's never going to be like a large single installation of like here is meta discussion on everything, right? Everything is topical because there's installations and different versions of it. I think every community has its own norms. And I think it's kind of wrong to go in a community that has a certain set
Starting point is 01:06:46 of norms and demand that their norms align with yours. Now, if what they're doing is illegal, that's a different topic. It's not illegal to be a racist. It's dumb. It's stupid. It's offensive, right? But it's not illegal. So, nor is it illegal to be a
Starting point is 01:07:02 programmer that has ridiculous libertarian views on everything? I find it personally offensive. But that's what I expect. When I go to Hacker News, that's the kind of stuff I expect. And they mostly keep it civil, which I think is great. And you have to expect that, right? I think the current trope is that anything on Hacker News involving women just gets crazy, ridiculous responses that don't really make sense in society
Starting point is 01:07:25 which i think is partially true but i mean again you gotta look at the community this is a community of you know programmers who have this very logical view of the world and you know it's that's what you're gonna get to some degree plus or minus 20 and if you don't want that then like don't go there like who would go to a community of racists and lecture them about not being a racist like what's the point of that like i i don't know i just i just don't get it right like it's kind of i don't know where i'm going with that but every community has its right to a club i was gonna save you but i figured why not yeah exactly so i gotta we got a question for you from actually from the chat room uh We are the changelog on Freenode. And his name is Film424242.
Starting point is 01:08:11 So I'm not sure if that's just random or not. Is that his real name? I can't imagine that's his human name, but maybe it's his robot name. He asks you, you know, why did you go with Ember for the front end? And kind of what would you recommend to all the other Ember people out there that have built a large application? Well, Ember is one of those decisions that Robin made, where I just trusted Robin's design instincts. Robin's been building Ruby stuff since 2006. He built this great game called Forum Wars, with a Z.
Starting point is 01:08:44 Forum, W-A-R-Z. And that's a Ruby app, and he built that great game called forum wars with a z forum w-a-r-z and that's a ruby app and he built that in ruby on rails and he built that in 2006 so he's a very very experienced programmer he's been a programmer since like age 11 as he wrote on his blog and he said that i had him evaluate because we had this idea that discourse is going to be a javascript application meaning all the functionality is going to be essentially delivered through JavaScript. It's a ball of JavaScript that comes down. It's not traditional HTML and CSS, although we have some of that for Google, so he can spider us. But it's a ball of JavaScript. And, you know, how should we build this? That was the question that I posed to Robin. And Robin went out and researched a bunch of stuff
Starting point is 01:09:22 and came back and said, you know what, I think Ember is the best way for us to achieve this. And I just essentially trusted his, you know, instincts on this. And I do like, I've met Yehuda and Tom. Those are the two sort of principal people at Ember. There's a large community, but those are the sort of core figures. And I like those guys a lot. I think they're very smart guys, very sharp, very, you know, astute in the way they handle their interactions with the community. They make good decisions. Essentially, I just trust the direction of the project based on Robbins. I just trust the people involved, basically. And I also believe deeply in this concept of JavaScript applications delivered to the browser.
Starting point is 01:10:01 I think it's absolutely the future of a lot of different types of apps on the web versus binary blobs that are delivered to iOS. I don't think that's going to work out in the long term. Are there any plans to be... That's a somewhat controversial opinion. Oh, I'm sorry. Go ahead. That's okay. But Ember is still very rapidly evolving, right?
Starting point is 01:10:20 Ember just got to 1.0 basically right at the time we launched in February. So Ember has a long way to go. And I right at the time we launched in February. So Ember has a long way to go. And I realize there's been a lot of complaints about Ember's learnability. Like it's kind of intimidating for newbies. And that's something that we want to help to fix at Discourse. Like we want to have tutorials.
Starting point is 01:10:39 In fact, Robin has posted on his blog at eviltrout.com, several sort of intro tutorials to Ember. And the Ember team is very, very aware of this difficulty. So trying to make it easier to learn. Gotcha. So I guess we're going to kind of start to try to wrap this thing up. But let me ask you, just one of my coworkers asked me, and he said, you know, since you're a Windows guy, and I think I've actually seen you talk about this.
Starting point is 01:11:07 I want to say I've seen you talk about this on Twitter. I'm not sure, though. What are your thoughts on just Windows 8 and the overall blue feeling and all that stuff, just from your experience? Well, I think Windows 8 had a Frankenstein problem where they built two very different things and combined them. And I think it does make sense. You have to look at the numbers. Because a lot of hardcore desktop guys like me, I'm looking at three monitors
Starting point is 01:11:34 right now. Three giant 27-inch monitors. This is not a system that works well with Metro UI. Believe me. If you look at the overall market, how many desktops are sold? How many laptops are sold? How many tablets are sold?
Starting point is 01:11:51 I mean, I have an iPad 4, and I love it. And I think that tablets are undeniably the future computer. My wife has a tablet and doesn't touch her laptop, hasn't touched her laptop in probably six months at all. She just doesn't, right? So for the regular person, a tablet is the computer. So Windows, I don't know if you noticed, kind of sucks on a tablet. So Microsoft had this huge problem, which is like their software doesn't work on the computers of the future at all. So they had to fix this. I mean, I give them actually huge props for changing so rapidly.
Starting point is 01:12:21 But I think they changed so rapidly that they alienated sort of like old school people the enterprises that aren't going to upgrade to tablets anytime soon you know what i mean right yeah they made the right decision in building this frankenstein monster they put two things together like this tablet centric ui which is actually very very nice although it needs some tweaks it's actually very solid actually i find myself doing uh swipes on ipad that work on windows 8 that are really nice for going back and forth and stuff. But it's hard to build Frankenstein. You've got two fundamentally different things that you're trying to smush together, right?
Starting point is 01:12:55 So what Apple did was they have iOS, which is totally alien, different. Then they have OS X, right? Two totally different worlds, right? You're either in tablet land and phone land or you're in desktop land. And Microsoft chose a different strategy, which is to Frankenstein them together. And I think, I don't know which solution is going to be the better long-term choice, but it is kind of nice to have the Frankenstein sometimes. It's just a lot trickier, I think, to get it right, because you have to
Starting point is 01:13:25 satisfy those two different audiences with the same thing, right? They didn't finish building Frankenstein. Windows 8 is a lot better than 7 in terms of startup time, sleep time, resume time. The task manager is tons better. There's a lot of, the explorer, I think, is way better. File copying is, holy shit, so much better. So there's good reasons to upgrade to Windows 8, I think, is way better. File copying is, holy shit, so much better. So there's good reasons to upgrade to Windows 8, but hopefully in Windows 8.1 they can sort of make Frankenstein a little more palatable. They can finish him out. He's missing a few limbs.
Starting point is 01:13:57 And hopefully Windows 8.1 is going to sort of flesh out the Frankenstein monster a little bit more and make it a little more adaptable. Because you do get kicked to these different worlds sort of at random, right? You'll be using tablet mode, and then all of a sudden you're on the desktop. Like, what the hell? And vice versa. Like, you're on your desktop, and I press the Windows key right now.
Starting point is 01:14:16 It's like, oh, my God, what is this, right? It's like this totally different UI. And there's literally no start button at all. There's no way to enable it, or there's no third-party one that you can turn on either, right? Well, the latest news is they're actually going to put in a start button equivalent that just essentially lets you launch. It's the same as pressing the Windows key, right? That would be good. It doesn't do anything.
Starting point is 01:14:36 It's not an actual start menu like Windows 7, though. At least that's the latest I heard. Yeah. All right. So we're going to go ahead and close out with this question for you. And it's kind of a traditional question that we ask everyone on the podcast. And who would you say is your programming hero? Who would you say you've looked up to? I know you said Anders about the language, you know, the Coding Horror logo is itself is from the Steve McConnell book Code Complete. And what I loved about Steve McConnell in the book Code Complete was that he was a programmer who kind of put ego aside and looked at – his programming is a very egocentric activity for whatever reason, which is I think maybe, again, why Hacker News gets so weird all the time. And learning to put your ego aside and realize that you're the source of all your problems
Starting point is 01:15:27 and that your code is bad. Even when it's good, it's bad, is really critical to understanding that. And Steve McConnell sort of walks you through that in this very patient voice, and he uses a lot of data. He cites a lot of data and studies that were done. It isn't just, here's my
Starting point is 01:15:43 opinion, and I'm right because I'm an extreme programmer that has written 30,000 lines of code. He was like, look at this data. He cites a lot of data and studies that were done. It isn't just, here's my opinion, and I'm right because I'm an extreme programmer that has written 30,000 lines of code. He was like, look at this data. Look at these studies that were done. Look at this analysis, right? And I love that, this appeal to data rather than appeal to authority or appeal to, you know, who's the gnarliest programmer, you know? It's like, put all that stuff aside and just concentrate on the results, concentrate on the data, and, you know, getting things done in a way that doesn't make everybody hate you. And he did that in general or in Code Complete specifically? In Code Complete. The Code Complete is a very philosophical book.
Starting point is 01:16:14 It's weird. It's a book about code, but there's a lot of stuff about personal character in that book. And it really resonates. Plus, he's a nice Midwestern guy. He's just a very likable guy, and it really comes plus he's just a nice midwestern guy he's just a very likable guy and it really comes across in his book if you want to be likable as a programmer I strongly recommend reading very closely
Starting point is 01:16:33 alright well thank you for everyone that was listening it was a great time talking with you Jeff once again if you don't know who Jeff Atwood is first get out from Under Your Rock and then follow him on Twitter it's at Coding Horror on Twitter. It was great to have you today, Jeff, and look forward to the next time we get to talk. Yeah, thanks.
Starting point is 01:16:52 And then anyone who's interested, please go to discourse.org and check out the project. Install it locally. See what you think. I was meaning to ask, are you looking for contributions? Oh, absolutely, always. In fact, I will make one call to arms on this podcast. Our diff is terrible. We do have revision tracking.
Starting point is 01:17:12 As you edit posts, it shows the revisions. It's a little pencil icon in the left gutter. It's kind of tiny. Our diff is horrendously bad. If anyone wants to take that on and actually produce a nice visual diff, oh, look, this is what changed when this user edited their post. I would love that. It's really bad right now.
Starting point is 01:17:30 So, yeah, if anyone wants to, you know, dig in, there's a place. Sounds awesome. All right, guys. I'll say goodbye. See you all later. Thanks.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.