The Changelog: Software Development, Open Source - The Weekly News (Interview)

Episode Date: December 15, 2009

Friend of the show, Steven Bristol from LessEverything join us to discuss the latest in open source....

Transcript
Discussion (0)
Starting point is 00:00:00 Welcome to episode 0.0.6 of the changelog, the blog and weekly podcast that covers what's fresh and new and open source. Open source means fast. Keep up. As you know, I'm your host, Adam Stachowiak. If you want to get a hold of me, do it on Twitter. My handle is AdamSTAC. And I'm Wynn Netherland, and you can reach me on Twitter at Penguin, P-E-N-G-W-Y-N-N. And we decided to outsource the talent for this week's episode.
Starting point is 00:00:44 Talking with Steven Bristol from Less Everything. Hey, thanks a lot. So who did you get to outsource it to? Oh, you're speaking. What? No, not me. You're the talent. No. Yeah. I'm the shill. So tell everyone who you are and what you do, Steven. Sure. My name is Steven Bristol. I run a company called Less Everything, and we have a few products of our own,
Starting point is 00:01:12 the biggest one being something called LessAccounting.com. Along with that, we have a time tracker called Less Time Spent and a project management tool called Less Projects. And we also do a consultancy where we help other people build great products. About a year and a half, almost two years ago now, we released an open source social network called Loved by Less, a Rails application for the rest of the world to enjoy. We just keep working at it and working hard and trying to make money and make people happy. Do you also have something very cool happening soon? I mean, well, back in October, something very cool.
Starting point is 00:01:51 Les Conf out in Jacksonville, and then you got Les Cruz going on too, right? Yeah, in fact. So yeah, in October, we had the 2009 edition of Les Conf, which was the first one. And we've got a fun kind of vacation getaway called Les Cruise going on in April. If you go to lescruise.com, you can check that out. And it's not too expensive, and it's just a chance for everyone to get together and hang out for a few days at sea. We're going to do a bar camp at sea just for fun.
Starting point is 00:02:17 And we actually are going to have Les Conf 2010. It was just announced the other day. It's going to be in May in Atlanta. So I don't know if there are any details yet on the website, but you can certainly check out and see if you want to come. If you're curious, if it's worth coming, I would say search Twitter for Les Conf and see what people thought of the day and if it's worth coming out for the day of conference.
Starting point is 00:02:49 Absolutely. I know that I had a blast going there. I didn't even know that you had announced the 2010 edition. Well, if you followed us on Twitter, you would know. We announced it the other day. I do follow you on Twitter. I know. That's why I'm giving you a hard time. Don't take it personally. He doesn't read my tweets either.
Starting point is 00:03:04 You know, maybe I have to do one of those things like Bradley did, when he created a special list for people he cares about, and I have to put people in that premium list. I may just build a micro app for you like we all hate QuickBooks and just has all the tweets you should read right there. Tweets for Adam. Yeah, exactly, exactly. Are you one of these guys, Adam, that has thousands of people you follow?
Starting point is 00:03:27 No, no. Matter of fact, I trimmed my followings quite a bit. Yeah, what do you think? That's a good point because from the Web 2.0 show's Twitter account a couple days ago, like Monday I think it was, I tweeted out, because you know TweetBlocker, right? HashRockets TweetBlocker? Well, I wish they had a reverse of that where you can actually do the same thing but apply it to the people you follow versus who follows you.
Starting point is 00:03:53 Maybe I don't know. What would the reverse of it be? Well, if you're going to do it against your followers, you're trimming your followers based on whether or not they're a spammer or whatnot. And they basically take your list of followers and put them through an A, B, C, D, E grade. And the E's obviously the crap ones. The D's are, and I don't know what the algorithm they do to rank them, but they essentially go through and rank the people who follow you.
Starting point is 00:04:16 And you can decide to just unfollow everybody in E and unfollow everybody in D. I think the algorithm really just counts the number of times the word social media is used in their tweets. And if it's higher the number, the more likely it is that you're a spammer. Or guru. Or coach. Exactly.
Starting point is 00:04:37 Right? Yeah. The more likely you use those terrible, terrible words, the more likely no one actually wants to read any of your tweets. Oh, man. I think that's why I was a D grade. Well, you're right. They should have an exception list for people like you, Adam, who are true social media gurus and
Starting point is 00:04:55 life coaches. Right, yes. Such experience as a life coach. Now, we have a great show lined up today. So answer the question. So you trimmed your followers list down to what? Oh, well, that was actually for – let me go to Twitter. I'll tell you.
Starting point is 00:05:13 I don't really know how – The opposite app. The opposite app would do what? Well, the opposite app of TweetBlocker would let you trim who you follow. Because here's the thing. I follow somebody, and after a while, if they don't perform, if they don't tweet things that I actually care about, I'm going to want to trim them.
Starting point is 00:05:32 They don't perform. You heard it here first, folks. Adam Stack is looking for performance out of the people he follows. I don't know what that means. I mean, I know what it means from like a server or from a business partner or an employee or perhaps even a lover. But from someone I'm following, I don't – that's – wow, you're an interesting guy, Adam. Perform. What's wrong?
Starting point is 00:06:02 You have certain expectations, don't you, for who you follow? You follow for a reason, right? You expect something. Right, but for me, it's really easy. I really try and limit my list to, there are probably two or three or four bots or bot accounts that I follow, like the Rails announcement list, for example. They're just occasional announcements that I want to keep up with. But for the vast majority of the 100 or so people I follow, these are actually friends or less accounting customers
Starting point is 00:06:35 or people who I'm on the cusp of becoming real friends with and turning an online relationship into a genuine relationship with. That's it. It's tough for me because I really only want to have – I only want to tweet with people who I have real relationships with. Does that make you never reply to me? Well, no. I never reply to you because you never say anything interesting. Oh.
Starting point is 00:06:57 But you don't perform. You don't perform for me. No, no. I reply to you sometimes. I know. You read my stuff. I'm just messing with you. No, it's cool though. I mean I'd like to do what you're doing, like to have only 100 or so people.
Starting point is 00:07:09 But this comes from growing into Twitter too. Like Twitter has evolved and I think as a user of Twitter, I've evolved on how I use Twitter. I mean over time I've learned new etiquette and I've got tons of people that I followed ages ago that I probably don't want to follow anymore. And I'd love to have a tool that helps me better choose that rather than me taking – How many people are you following? Right now, honestly, it's 576. Oh my god. So you are one of those people I'm talking about.
Starting point is 00:07:34 You really just have to look at people who are adding you or DMing you. No, I – You can't follow the stream, right? It's too big. No, I don't have a really – yeah, I guess the stream is a little bit big, but I do value... That's what she said. I do value a lot of the things
Starting point is 00:07:52 that I hear from my Twitter list, even though I don't actually have a relationship with them. It's kind of like an RSS reader in a sense in that case. I do keep up with certain people on the beat. That explains why you missed our announcement about LessConf 2010 because one or two tweets might easily slip through that fire hose of information. Absolutely.
Starting point is 00:08:15 How do you do it? I've started to move more and more towards lists. I do follow quite a lot of folks, but most of that's just based on karma. If you follow me and you're interesting, I'll follow you back. But once you get past 10 people on Twitter, it's kind of like hanging out with my relatives from Mexico. They just watch the faces and listen for your name. You have relatives in Mexico? I do.
Starting point is 00:08:38 I didn't realize you were from Mexico. I'm not. You're not from Mexico. Where are you from? My uncle married a lady from Mexico, so I have some Spanish-speaking relatives. Ah, I see. So what do you want to talk about? Open source.
Starting point is 00:08:54 Who's your favorite open source contributor of all time? It doesn't have to be someone famous. It could be a buddy of yours that wrote a really cool library. Wynn, you want to go first? Good question. Probably Rain. Rain? Rain who?
Starting point is 00:09:15 What is his last name? It escapes me. But he had a really interesting... Not Rain Wilson. No, no, no. Rain Heinrichs? Heinrichs. Thank you.
Starting point is 00:09:25 Really? Rainn? He had one of the most impactful open source contributions I've ever seen. Which was that? He added an apostrophe to a readme. He became a contributor to an open source project once. I loved it. That was one of the ones where once you do a contribution, you get commit rights?
Starting point is 00:09:46 I believe so, yes. Someone could do that and then everything up. Adam, what about you? I don't know if I have any specific favorites. I don't really know what to gauge it by, but I can certainly say that there's been a few that have changed some of the things that I've done
Starting point is 00:10:02 this past year and changed some of the things I'm focusing on. And I would say probably the two guys that we had first in the show, um, Nathan Weisenbaum and, and, uh, Chris Epstein,
Starting point is 00:10:12 their contributions to Hamill, Sass and compass have really changed the game for me. And I think, uh, they're doing a lot of very cool stuff in the space. You know, they call it CSS preprocessors or, or whatever.
Starting point is 00:10:22 And there's lots of banter on Twitter going back and forth between Chris Epstein and Malarkey on whether or not Compass needs something different to make it easier for designers who can't use the terminal to interface with their computer. I just can't understand that. But the focus is on who. And I think Chris and Nathan, they have done a fantastic job rocking out those two projects. And I'm loving what they're doing. It's interesting. As I think about it, obviously I like everything in Rails has changed my life in many significant ways.
Starting point is 00:10:55 But I think I would have to say that probably Linus Torvalds is my favorite contributor. The work done on open sourcing Linux, open sourcing Unix with the Linux kernel, and consequently unseating Microsoft, or beginning to unseat Microsoft, and has allowed Apple to make such a fantastic product. I guess Apple, yeah. I think I'd have to say Linus, I think. As trite as that might be,
Starting point is 00:11:32 I apologize for that. I would say the same thing about Linus, and I would also commend him on Git. Git has changed a lot of things in this past two years. It's done quite a bit for GitHub coming across and being able to be successful like they have been. And then that also trickles down to us being able to have far more social code.
Starting point is 00:11:53 What do you guys think Git would be without GitHub, though? I mean, it would be – Material? Yeah, I mean, basically, right? I mean, it would be the core, the kernel team and then the Rails world right and that's about it right the GitHub
Starting point is 00:12:12 I mean it was just such a I mean and I thought it was stupid when it first came out like who the hell would want that but it's such a good idea and they just did such a nice job with the UI of being able to to see who and when and what. And really a nice tool. Absolutely.
Starting point is 00:12:29 And a lot of the links we're going to talk about, a lot of the projects we're going to talk about today, I'd say 99% of them are hosted on GitHub. So, I mean, they've powered the people we're going to talk about today. Well, yeah, because we have to talk about my favorite feature, the changelog. That's true, yeah. And the favorite feature is what? The nifty little watcher and fork icons that we have on the website. Have you seen those, Steven?
Starting point is 00:12:53 No, no, on the changelog website? Yeah. So for each show there, we... Are you okay? Yeah, I'm back. Sorry. Okay, good, good. I was about to hang up and call 911 for you. No, I appreciate that. It's very sweet. Yeah, on the site, for all you listeners out there, when you check out the changelog,
Starting point is 00:13:13 you actually see the fork and the watch icon there, and those numbers are real-time. And Wynn wrote some very nifty jQuery code to go out and ping GitHub and grab that information and pull it back. And Wynn, I don't know if you saw that message to you the other day in Skype or whatnot, but I think as an open source contribution
Starting point is 00:13:31 from ChangeLog, we should take that little snippet of code and turn it into a jQuery plugin. Yeah, perhaps. So let me understand. So does that mean that the blog posts are actually hosted on GitHub and you're showing the forks and the watchers for changes to the blog post?
Starting point is 00:13:49 No, it's just if the link points to a GitHub repo, I can sniff that out from the Ahrefs and make a call to GitHub to get the data. Oh, that's kind of cool. It's nice. It's nice that, you know, I think one of the big things that Rails has done and GitHub has sat on those shoulders and extended is this feeling of, or making kind of this open source kind of just grab it and hack it and then put it back out there or, you know, has made it, I think it makes everyone feel like they can do it, you know? Oh, absolutely. And, you know, the fork queue is one of my favorite features of GitHub. If you have an open source library and you've got folks that are pushing pull requests back to you, right, then it makes it super simple just to go in and merge the ones you want to merge into your integration branch
Starting point is 00:14:41 and then accept the changes that you want to accept. It's just really simple to run an open source project on GitHub as opposed to Subversion or any other source control out there. News of the week. What do we have on tap, Adam? Well, first up, we got two cool products. They actually come together, Rackamole and Whackamole. Two of the coolest named projects ever, I would say. Yeah, I think that's rather, well, very clever.
Starting point is 00:15:12 And he also uses the word trap because it's trapping users' interactions through your web apps and whatnot to see what's going on. And he uses the word traps. And I actually called him out on Twitter. I was like, do you mean to say tracks, not traps? And he's like, no, it's going on. And he uses the word traps. And I actually called him out on Twitter. I was like, do you mean to say tracks, not traps? And he's like, no, it's actually traps. And I'm like, oh, now I get it because I'm that slow. I always get jokes late.
Starting point is 00:15:34 You can ask when. Every joke is a grenade for you. Yeah, it takes, well, no, it's not like that. It's that, I don't know, maybe. All right. So Rackamal and Wackamal, they track user interaction with your website. I mean, is this analytics? Well, so yeah, I mean, that's the question, right? I mean, if it's Rackamal, then you the page, and it seems like it definitely integrates with Rack.
Starting point is 00:16:05 And so I'm assuming it just handles all of your incoming requests, and so it's all server-side stuff. So it's not like Selenium or something where it's tracking clicks or that on the website. And then I guess it logs them out somewhere and then has a reporting engine as the Rackamal. Is that about right? I think that's the long and short of it. So I think maybe the more interesting piece here is both of these are ultimately powered by RAC. Use it much at less? You know, we haven't used RAC a lot.
Starting point is 00:16:36 We haven't had a lot of need to. We're actually implementing some synchronous processing, and we're using some RAC stuff. Actually, we're making a RAC server to do some of that that's going to sit behind Mongrel. But no, the most stuff we've done with RAC is just seen how Rails has embraced it and what's been going on in core and that sort of thing. But we haven't had a lot of need for it. You know, the promise of Rack is to have these horizontal aspects of your applications. You can just stack up on top of each other and not have to bake those into every app that you build. It reminds me of the whole widget frenzy from a few years ago.
Starting point is 00:17:21 Right. I'm sure there's going to be a Gartner hype cycle adoption of this thing. But right now I think we're clearly on the way up. Yeah, it'll be a nice way to nice different approach to doing SOA, I guess. SOA, that's a term I had. That was a joke. No, I mean, I guess the point of Rack, as you're saying, is an embracing of aspect-oriented programming, right?
Starting point is 00:17:48 If you can remember the AOP stuff from about seven years ago. Sure. Or more. So it's kind of interesting. Another interesting thing that I saw on both of these projects, they're built on MongoDB, which we'll have Mike from Mongo on next week. Have you played with Mongo or any of the NoSQL? I have not. I'm a big fan of Couch.
Starting point is 00:18:11 Alex Lang over in Berlin is a buddy of mine, and he's one of the nearest, I can tell, biggest proponents of Couch around. And so I really like the idea, and I like a lot of the capabilities, and I keep toying with the idea of switching this app over or let's write our next app in it. When it comes down to it, I just haven't done it, but I really like the concept. It's really a different way of programming your data layer to think documents instead of relational tables. It's not a silver bullet, but it is a cool technology. So if it's not a silver bullet, what is it?
Starting point is 00:18:49 Because as near as I can tell, it's better for everything. So what isn't it better at? It's not as good for transactional type reads and writes. Especially with less accounting, I don't think you want to use it because you're dealing with money, right? You need to be able to do transactions and things of that sort. I think so, but actually in less accounting, most of what we do are single transactions. There's not a lot of multi-query transactions that we do in less accounting.
Starting point is 00:19:17 For goodness sakes, it's addition and subtraction. It really shines when you have asymmetric data, right? So I build a lot of mashups, and it's phenomenal for Mongo or Couch or any of these NoSQL stores just to be able to take a hash that comes back from the API and stash it and not have to worry about a formal schema. Because most of the time, it's going to be read-only anyway on your end until you update it. Right. So what do you do when you actually do have a schema change? Let's say you're adding a field. So all the new records obviously will get that field by default, but then the old records, do you have to have code that checks or is there a way to automatically add those
Starting point is 00:19:54 or do you automatically get null values or what happens? You get null values most of the time. It depends on which ORM you use. My favorite is MongoMapper from John Nunonanmaker to use for MongoDB. And so you just get null values if you reference a field that's not there. But you just still get typecasting and all of that, which is just pretty neat. Yeah, that's nice. Well, you get that from the JSON, I guess, right?
Starting point is 00:20:19 Yeah, and you know – So that really just gives you like a handful of types, right? Right, exactly. Kind of type typing. But in Mongo specifically, they extend JSON to what they call Bison, B-S-O-N, which is binary serialized object notation. And they can serialize files in line as well. But the big thing that I like about Bison is it handles dates. You know, JSON doesn't handle dates at all.
Starting point is 00:20:43 You have to do string representations and then you go from there. But Bison has a true date format baked in, which is pretty handy when you're doing comparisons. So look out next week. We'll have Mike from Mongo talk about MongoDB. I'm excited about that interview. I'm excited about hearing that. I think I'm going to go to my favorite Indian restaurant and have a mango lassi while I listen. You know, they've taken a lot of grief for the name, Mongo.
Starting point is 00:21:11 Have they? They have. And, you know, they wanted to name it for humongous. Oh, huh. When we first started with Mongo back earlier this year, if you searched Mongo, the first top hits on Google were the gingerbread man from Shrek 2, the large, giant gingerbread man. His name is Mongo. That's awesome. It also reminds me when I was searching for Tokyo cabinet. Right.
Starting point is 00:21:43 The first hit was a Google map of downtown Tokyo for a cabinet maker. Nice. The importance of naming your open source software well. I think after a while you start to gain rank. The first few weeks or so, it takes a little while, but all the inlinks from Twitter and various social networks and GitHub and blog posts, they all start to stack up and create your worth and give you rank.
Starting point is 00:22:05 That always entertains me when people start trying to compare the popularity of Ruby and Python and Django and Rails and all of these different languages and frameworks when they don't look at the fact that some of these words are more common than the others, right? So if you look at how Ruby is kicking Python's butt, well, if you look at the Google searches for Ruby, a lot of times talking about the actual gems, not the Ruby gems, right? But, I mean, those should really count too, right? Because Ruby is just that much better. You should get bonus points for picking a common name, right?
Starting point is 00:22:38 Well, I don't know. I mean, I'm being flippant now. Oh, I'm with you. It's like searching for the Mac program, the organizer things. Yeah, right, exactly. Google things. I know. It's like we have some friends in Ireland, the Contrast IE guys,
Starting point is 00:22:54 and they have a product called Exceptional. And it's the exact same thing, right? I mean, this product does exception notification, exception aggregation and stuff. And it's a great product, but, you know, it's terribly named in that sense because the word is so common. It's actually getexceptional.com. This could be an interesting detour.
Starting point is 00:23:17 So you've got this whole namey scheme at less or less everything, right? Exactly. So how many domain names do you have on deck that you've registered and haven't developed yet? 15,000. Less everything in the English dictionary, right? Yeah, right. No, I think we probably have 100 or so registered, probably 30. No, it's not. I mean, okay, we probably have 30 or less that we're not using.
Starting point is 00:23:42 How about that? I got you. Because generally, we're pretty lucky in that if you take a word and you prepend less to it, no one has the domain name yet. Right. So we don't really feel that. I mean, at first, we kind of felt the need to go out and buy some stuff.
Starting point is 00:24:00 But at this point, it's basically, if we're planning a product or if we think we're going to do something or if that name is just perfect, then we buy it. But otherwise, we don't. And there are only actually two domains out there that we want to buy that are owned by someone else
Starting point is 00:24:15 that we're going to have to negotiate with or do something with sooner or later. So listeners, if you think you have a cool Web 2.0 product, go out and put less in front of it. Register the domain and squat on it, and Mr. Bristol. And get sued. Right, exactly. Actually, no, seriously, we're actually talking to a good friend of ours.
Starting point is 00:24:36 Jesse Lamb is not my lawyer, is going to do some trademark work for us for the less branding stuff. And as much as I hate the thought of suing someone or pursuing someone or sending a cease and desist or any of that frickin' nonsense, apparently that's exactly what we have to do or we risk losing our own name. The part of that process is defending people who are using even things that are like your name. And so
Starting point is 00:25:11 we have to, surely we're going to be defending it or risk losing the rights to it. Unfortunately, that's the way the legal system is in this country. No, that's exactly true with that. Because if you don't defend yourself, it's like saying they can have it. I don't care about my – what should be my trademark, and you're not defending it.
Starting point is 00:25:34 And apparently this comes from old – as I understand it, I'm far from an attorney, although you should contact Jesse Lamb is not my lawyer if you're interested. I do follow him on Twitter. Yeah, yeah's a good guy down in Tampa. But he, this comes from old English common law. And it's not just true of trademarks, because I don't think they had trademarks in old English common law, but I'm not positive on that. But it comes, this was true in property as well. So for example, if you have – in this country to this day, my understanding is if you have like a driveway or something or you have like a plot of land and you let the local kids cut through the corner of your land. Maybe it's derelict. You're not using the land for X number of time, whatever that is, and then you try and put up a fence to – so they can't do that any longer. If you've allowed them to do it for whatever length of time, they can actually sue, and now that walkway becomes – I mean you still own it, but it – what's the word for it? Public domain.
Starting point is 00:26:37 There's like an easement or something, some public easement for it because you've let it become part of the public domain or public usage or something. Common space. Yeah, whatever. I mean, obviously, I don't know any of the proper legal terms, but the legal system is a bit fascinating in a lot of this area. So what's next up on the list, Wynn? Puppet Dashboard, a web interface for the popular Puppet configuration management tool.
Starting point is 00:27:12 Yeah, so this interface looks pretty cool. You know, when I heard about this, my first reaction was, shit, they don't already have a public interface, a web interface? Because Puppet is kind of a cool tool, but I was surprised that this was new.
Starting point is 00:27:28 You know, earlier this year, we got a lot of play from Puppet, Chef, and Sprinkle all about the same time. I just kept waiting for somebody to slap a Bork, Bork, Bork Swedish Chef icon on these things. It's like going way back.
Starting point is 00:27:44 You guys have no idea what I'm talking about. No, I just don't. I mean, I totally know the Swedish chef. I just don't quite get the reference. Why? Do they all suck? Why Bork Bork Bork? Puppet, chef, sprinkle.
Starting point is 00:27:56 Oh. No, I did not get the reference. That was way too clever of me. I understand why you feel dumb, Adam. That was really, really good. Dumb. He really takes me to the bottom. Is that what you said, Adam? Yeah, we're craft little followers. You can't follow that.
Starting point is 00:28:13 You're an idiot. Isn't that what you said? I bring him on the show to ridicule me. I love it. Keep you grounded. Yeah, well, it keeps me humble. Well, you notice I'm not ridiculing Wynn, right? I don't know Wynn that well, so I'm not that. But I like you, so I feel like it's – I wouldn't do that if I didn't like you.
Starting point is 00:28:32 I know, I know. You know, that was my first reaction, too, was pretty much your reaction, which is like they don't have a web interface for this already. Right. Yeah, I guess the answer is no. I guess not. What else we got? The next one,
Starting point is 00:28:47 I don't think we have to go on public too much longer. DocSplit was kind of cool because this was actually mentioned in, was it 0.0.5? Yeah, 0.0.5 of the changelog. We talked with Jeremy Ashkenaz. Thank you.
Starting point is 00:29:04 From Document Cloud. And, you know, there was, when I was at the Ruby meetup last night. Is he Jewish? He is. You know, Ashkenazi. That's right. That's exactly right.
Starting point is 00:29:16 And so, an unfortunate misspelling in the show notes that led me to mispronounce his name. That's why. So it's kind of an inside joke. Jeremy, or a win called Jeremy Ashinkas. I transposed some letters. And then that translated onto me, which I adopted the mispronunciation of it.
Starting point is 00:29:36 And every time I'd say Jeremy Ashinkas, we would go off on a banter about his misplacement and, you know, misusage of the word and he mispronounced it. Apologies to Jeremy. It's no reflection of the fine code that he's talking about. But an awesome project. Really awesome project. Doc Split comes out of that. I was actually at the Ruby meetup last night, and I was talking to a few people about that show and that podcast.
Starting point is 00:30:02 I'm really glad we had Jeremy on the show because there's lots of good information in that episode that was really helpful. Underscore.js is still my favorite, I think, out of that whole Document Cloud project. Have you seen this, Steven? No, I haven't seen the Underscore.js. What is that? Underscore.js brings a lot of Ruby-type array
Starting point is 00:30:20 and enumeral methods to JavaScript, so things like first, last, each. Right, right. But somebody wrote all that stuff like three years ago. There's a lot of frameworks that have it out there. You know, Prototype has it built in. I've seen a lot of JVM type plugins that do this.
Starting point is 00:30:37 Yeah, there was, I don't remember exactly, but there were a couple of JavaScript libraries that did that, I think, years ago. This one's cool because it doesn't pollute the object prototypes. It's more functional. Wouldn't you want it to?
Starting point is 00:30:56 Not necessarily. Sometimes that can lead to unexpected behavior. I guess so. I guess if someone else has already taken that function name. I guess I mean, I guess so. I guess if someone else has already, you know, taken that function name, but, yeah, I mean, I guess I can see that. I tend to kind of enjoy
Starting point is 00:31:13 doing straight-up monkey patching on JavaScript objects in JavaScript rather than, and, you know, I agree with not polluting the global namespace in general, but, you know, for application-specific stuff, I just don't care that much. Right, right. We always find our way back to HamilSAS and Compass, don't we?
Starting point is 00:31:36 Minelman, a static generator for HamilSAS Compass plus YUI compression. Yeah, this was kind of neat because when you and I have talked a few times about my usage of Static Mavic and kind of where that falls down is whenever you have to go beyond just generating a static site, what do you do? And so I thought this was kind of unique that it actually takes somewhat the same approach. It's actually built on top of Sinatra. So pretty much anything you can do in Sinatra you can do with Middleman. I'd like to do a Google search of inspired by Sinatra. It seems like every other project I discover lately is some sort of port of Sinatra to some other language. Do you use Sinatra much, Steven?
Starting point is 00:32:13 Not too much. Generally, we don't do things that – generally, we just use Rails in lieu of Sinatra. I guess I kind of feel like Sinatra is for really small stuff. And once you get to a certain something, then you should just use Rails and you get all this stuff. What about We All Hate QuickBooks? Is that Rails or just static? Yeah, no, it's actually quite old,
Starting point is 00:32:38 and it's Rails with just basically a cache. So anytime a page is loaded, it just caches. So yeah, it's an old, old Rails app. I think it's been out for almost two years now. Of course, I'm referring to weallhatequickbooks.com. If you haven't seen it, check it out. It's a really entertaining look at tweets that mention QuickBooks. Yeah, this was something my business partner, Alan Branch,
Starting point is 00:33:03 who is at Les Allen on Twitter if you want to follow him. And you should follow him because he's really funny. And he doesn't like it when I have more followers than him. So please follow him so he feels good. But this was just kind of a marketing idea he had. This was before people were really using Twitter for business. So this was a couple years ago, and Alan was following the word QuickBooks. And what he noticed was that almost all of the tweets about QuickBooks were negative.
Starting point is 00:33:38 And so he said, let's put together this little thing that basically just shows the public stream for the word QuickBooks and call it We the word QuickBooks and call it We All Hate QuickBooks. And so we put it up and we got some press on it right away, got some nice marketing play about it. A lot of people in marketing thought it was really good. And it was really funny because before we launched it, we were working with, we had
Starting point is 00:33:59 hired someone to do some SEO stuff for us. And she kind of freaked out. She's like, no, no, you're going to get sued. You're going to get sued. I don't want to be any part of this. It's going to be terrible. No good can come of this. Our attitude was that getting sued over this would be the best thing that ever happened to us. Can you imagine the great publicity we'd get? We'd get on TechCrunch. We'd get all kinds of people like our name would just grow if QuickBooks, if Intuit actually sued us over it. And unfortunately, they didn't.
Starting point is 00:34:30 But, God, that would have been fantastic. Who did the design? Alan. Alan? I love the CSS parallax at the bottom. Yeah, that's nice with the little angel and devil penises. And the flames, yeah. Yeah.
Starting point is 00:34:44 So now we've given every listener enough reasons to go and check penises. In the flames, yeah. So now we've given every listener enough reasons to go and check it out. Go see an Angel and Devil penis for the first time. Exactly. So your humor too to make them penises. It's funny because it's not.
Starting point is 00:35:02 Alan didn't know. After we put it live, someone came to me and said, do you know those penises? I'm like, yeah, I know. Does Alan know? I'm like, I have no idea. He didn't.
Starting point is 00:35:13 He didn't do it on purpose. So I'm not going to say that he's got some subconscious something or other going on, but they're penises. What can I say? How do you segue from that? I don't know. Let's face it. Next gen MMO architect.
Starting point is 00:35:33 Come on. Who doesn't like a little penis? What I thought, we have a couple that come up actually from Erlang and I'm not quite the detailed programmer like you guys are, but there was a presentation last night. And, damn, I forgot the guy's name. They gave it at the Ruby, the Houston RB meetup.
Starting point is 00:35:53 And he did a really good job of walking through Clojure, Scala, Erlang, and talking about all the various differences, talking about how you're using actors and stuff like that. So he really walked through all this stuff. And I thought it was really unique to see a Memcache client and also a gaming client come out of Erlang because of its very fast concurrency. So you guys could probably talk against that better than I can, though. Probably. I think you can restimate us. Under?
Starting point is 00:36:21 Over. Over? What? Why? Now, so Erlang is supposed to be the hot, new, cool language on the block for concurrency, right? Yeah, definitely. I can think, unfortunately, it's a really cool tool that I haven't found a use for yet. How about you?
Starting point is 00:36:34 Yeah, I think the biggest thing we're doing with it is we're using anMQ, which I believe runs Erlang. It's an Erlang application for doing. It's a queuing server, and it's super fast and asynchronous and quite nice and pretty straightforward to use. But I believe when I installed it on the server, I had to install Erlang. So I think it's Erlang. I think the interesting takeaway from these two articles and what we're referencing is Memcache D client for Erlang and then an OTP kickoff project.
Starting point is 00:37:12 The OTP kickoff project is a Ruby project that generates an Erlang project. So it's a Ruby gem you install, and it basically gives you a generator for an Erlang project, which it's nice to see Ruby, I guess, having its uses even outside of the actual app. Yeah, exactly. Why didn't they choose Ruby to use? Yeah, why wouldn't they use Erlang? Good question. Do you know Erlang?
Starting point is 00:37:37 I don't know Erlang. Do you know Erlang? I don't know it personally, no. I'm not sure if it's as well-suited for command line utilities and things like that. Yeah, I mean, if you're going to write a server, it's got to take command line parameters and stuff. So, I mean, I'm sure there's some sort of – that just sounds weird. Well, it's kind of analogous to what we're doing with Compass WordPress, right? Where we have Compass Gem and Ruby scripts that generate WordPress
Starting point is 00:38:06 templates and things of that sort, just because that's the language we're trying to use. Yeah, I guess so. I mean, I guess the point is that if there's an Erlang Memcached client, then, you know, the point is that Erlang
Starting point is 00:38:21 is kind of growing in popularity and probably becoming more, getting some more love and some more attention from more people, right? Let me know if I'm wrong here, but didn't Erlang get sort of hot about two and a half years ago to get a lot more press, especially from the pragmatic programmers writing books about it and doing screencasts and stuff? But it's an old language, isn't it? It's like 20 years old. Is it? I think it's, yeah, I'm pretty sure it's fairly old. It's been around a while in the telco space. I think you're right.
Starting point is 00:38:53 Yeah, it's mostly used in enterprise. And some of the examples they gave last night was being able to process a billion calculations sort of very, very quickly, whereas anything else might just crash. According to Wikipedia, which is always correct, it was first created in 1986. Yeah, that's what he thought he said.
Starting point is 00:39:16 It's about 20 years old. How about the MMO architecture? Did that intrigue you by any means? That was your link, buddy. I don't read your links. Why not? Because you don't perform. Oh, boy.
Starting point is 00:39:31 I thought this was kind of cool to see this gaming framework architecture come out of something like this. And I guess it's only assumed that it would make sense because of its ability to have what we just talked about, the multiple threads addressing the same memory space and not have the locking in the issues. It just makes sense to have a massively multiplayer online game be able to be built on top of something like this. Yeah. I mean, as someone who's not really a gamer, I guess.
Starting point is 00:39:58 I'm not either, but I just thought it was a very unique usage of something like this. And to be quite honest with you, whenever I actually had to give a hat tip to Techno Weenie because I saw him tweet about it, and I thought, well, yeah, why not post it? Because it's fresh, it's new, it's open source. It fits the bill. To me, the big MMO that I play is Twitter.
Starting point is 00:40:19 It's just a different perspective. Right. But it sounds awesome. Moving on, do you guys use, moving on, do you guys use Lighthouse? No, probably not. We use List Projects. We use List Projects, yeah. I really,
Starting point is 00:40:35 I mean, I don't know how Lighthouse is today, but I tried to use it when it first came out, and that UI just sucked ass so bad. I mean, I like Rick Olson a lot, but for a bug tracking software, and apparently it's gotten better. I tried, it's a funny story. I tried to talk to, in a drunken stupor, I tried to talk to Rick and Courtney about this at RubyConf 2007 in Orlando. And I tried to explain that, you know, as as someone who runs because we use Lighthouse for
Starting point is 00:41:05 Loved by Less, although we don't use it much, who runs an open source project on Lighthouse. It's so hard to use. The UI is just so difficult. I don't ever quite know where this is or that is and what this is and how to make this or that happen. And then
Starting point is 00:41:21 the really humorous part for me was that rather than either Rick or Courtney actually stop and try and listen to, hey, this guy actually has a UI issue. Maybe we're doing something wrong. Maybe I can listen and hear what he has to say. Courtney proceeded to show me how to
Starting point is 00:41:38 do all that stuff. And not to take anything away from the guys. I think these guys are great and I wish them nothing but the best. I really dig these guys. But I just thought, and not to take anything away from the guys, I think these guys are great, and I wish them nothing but the best. I really dig these guys, but I just thought that's the fun. It just made me laugh, that approach. And that explains exactly why the UI was so bad. I don't know, is it still bad or is it good now?
Starting point is 00:42:01 I've gone on for like 10 minutes, but how bad are the UIs? You might want to edit all this out. No, I would actually echo. I don't know if you have the same opinion, but I would echo a very similar opinion, maybe not quite as harsh. But I have said since day one, and I've actually been forced to use it in a few situations, either through working with someone else or whatnot. But I've never really been a huge fan of Lighthouse. But I know there's a lot of users out there. And when we talk about interface, since we're talking about interface, the cool thing about this project is that you can use the command line.
Starting point is 00:42:34 Right, but the really – You can wipe out the – all you end up having then is the business logic and the function. But that makes it really good, right? Because finally there's a good UI for Lighthouse. Right. Who can go it really good, right? Because finally there's a good UI for Lighthouse. Right. Who can go wrong with the command line? So that's why I thought this was a really cool thing because they've been getting grilled for, I guess, since day one about the UI of that application.
Starting point is 00:42:55 Well, it's terrible. Yeah. I mean, these are really good, smart, nice people who wrote what seems to be a really good application with just a terrible UI. Moving on? Yeah, the last batch of links that we've got this week are
Starting point is 00:43:13 JavaScript specific, so a couple of jQuery plugins, but there seems to be some heat around JavaScript on the server, so Node.js seems to be picking up some steam. We've got another link this week. JavaScript on the server. So Node.js seems to be picking up some steam. We've got another link this week. JavaScript on the server? Who's doing that?
Starting point is 00:43:29 JavaScript on the server with Node.js. Have you seen this? No. It's a framework written on top of Google's V8 engine. Okay. Seems to be gaining some steam. I've seen a lot of projects that are built on top of this. Last week we covered R Wrestler from Dan Webb, which is a REST interface
Starting point is 00:43:48 built on top of Node.js. And this week we're talking about Picard, which has a lovely picture of the Enterprise Captain on its readme. We always get bonus points for creative readmes, don't we, Adam? Yeah, I think if you
Starting point is 00:44:04 can be out there or something fun with your readmes, make them more entertaining. It's always don't we, Adam? Yeah, I think if you can be out there or something fun with your read-me's, make them more entertaining, it's always a good thing, right? Absolutely. Yeah, this one is a micro-framework for Node.js that, again, looks a lot like Sinatra. So it's just interesting to see how we've come full circle.
Starting point is 00:44:23 So, Adam, if you were to read my tweet, you would have seen a tweet last week about JavaScript, and I'm sure it's made the rounds on Twitter because I picked it up from someone else. But it essentially said JavaScript's the frumpy chick from high school that turned out to be incredibly smart and hot ten years later. Yeah, John Ressig. It's. Yeah, John Ressig. It's a quote from John Ressig. And then it got picked up by a bunch of us.
Starting point is 00:44:52 It's a great quote. So JavaScript on the server. Ever going to need it? I don't know what to say. Which would you rather code in? JavaScript or Ruby? Either server side or client side? Me personally, Ruby.
Starting point is 00:45:06 Okay, so me too. So I'm going to say no. I'm going to say that as long as JavaScript isn't Ruby, I'm going to prefer Ruby. So I'll code Ruby on the server, and I'll let Steve Yeagey enjoy JavaScript and Rhino on the server. What did he call that thing? Rhino was the JavaScript engine he you know. What did he call that thing? It wasn't, Rhino was the JavaScript engine he was using. What did he call that thing? Do you know what I'm talking about?
Starting point is 00:45:30 Yes, I do, and it's on the tip of my tongue. Anyways. That about wraps the show. I'd like to close there if we can because I know Wynn's got to run here in about literally two minutes. He's got a hard stop at 10.30, but Stephen, it was a blast having you on the show. I really appreciate you taking the time out. Thanks so much, Stephen. Thanks for having me. Thanks, Wynn's got to run here in about literally two minutes. He's got a hard stop at 1030. But, Stephen, it was a blast having you on the show.
Starting point is 00:45:46 I really appreciate you taking the time out. Thanks so much, Stephen. Thanks, Wynn. It was definitely an experience that you must enjoy. Stephen, best to my friends. Protect me from myself. I will. I will.
Starting point is 00:45:58 All right, bro. Thanks a lot, guys. Later. Thank you for listening to this edition of The Change Log. Be sure to tune in weekly for what's fresh and new in open source. Also, visit thechangelog.com to follow along, subscribe to the feed, and more. Thank you for listening.

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