The Changelog: Software Development, Open Source - Gordon is such a Showoff (Interview)

Episode Date: February 3, 2010

Adam and Wynn continued chatting with John Nunemaker about recent featured projects on the blog — including Gordon, Showoff, jQuery Lint, JSpec, congomongo and more. ...

Transcript
Discussion (0)
Starting point is 00:00:00 Welcome to the Changelog, episode 0.1.2. I'm Adam Stachowiak. And I am Winn Netherland. John Noonanmaker stuck around and we ran through the projects on our radar. Ones that we posted up on the changelog.com. And when we do that, they become featured projects over on GitHub at github.com forward slash explore.
Starting point is 00:00:36 It's also a great way to catch up on some old episodes that maybe you haven't seen. Also, I'd like to remind you, you can go out to tail.thechangelog.com and see a real-time view of the world of open source as open source commits flow in and out of GitHub. We've gotten lots of good feedback on that, actually, on Twitter.
Starting point is 00:00:54 Yeah, I was proud that itod added us at Changelog Show and told us that he appreciated the application, since we appreciate his project, Fluid. Yeah, I think it's kind of fun too when people discover that when they first get there they see this sort of tail-like
Starting point is 00:01:10 application of what's happening on GitHub, but then they also notice that they can have filters applied to that either through the normal constant flowing tail or through that more spot where you can actually just scroll the infinite scroll. And browse backwards in time on the more application? Yeah, it's kind of fun to just see people like you know discover
Starting point is 00:01:27 tail.thechannel.com first and then they're like oh wow i can actually filter by you know event types and then also languages so i often just sit there and uh you know whenever i'm looking for cool stuff to post to the changelog i often just sit there with a certain filter and look across, you know, because I'm, you know, all about Ruby. I'm always, you know, filtering just by Ruby, right? You know, only Ruby stuff. But, you know, it's also great to be able to filter out those event types
Starting point is 00:01:56 that you don't care about. And if you just remove the pushes, then it becomes a lot more manageable to kind of drink from that fire hose. Where else can folks catch up with us? Well, I think if they're on Twitter, they should go to Twitter right now and follow us. The show is ChangeLogShow, oddly enough. It's not The ChangeLog, it's ChangeLogShow.
Starting point is 00:02:16 I have a Twitter account. It's AdamSTAC. Who are you in? I'm Penguin, P-E-N-G-W-Y-N-N. What about in person? I know we're going to be at FOA at the end of the month. Yeah, FOA. We'll be at the Future of Web Apps held by Carsonify down in Miami, Florida. That is happening May 22nd through the 24th. Both myself and Wynn will be there.
Starting point is 00:02:37 They're probably representing the Change Log, of course, and also the Web 2.0 show. So if you see us, say hi. We'd love to meet you. Absolutely. Ready to get to the episode? Absolutely. Let's do it. All right, John's kind enough to stick around and talk through the news with us.
Starting point is 00:03:02 And it's usually news of the week, but we wanted to go back a bit and catch up on some items that we dropped over the Christmas break. And so the first item up is friendly, NoSQL with MySQL and Ruby. So this is from James Golick, I believe, right? Yeah.
Starting point is 00:03:17 So your take, John, since you've got a Mongo mapper out there for MongoDB, this is kind of a similar approach in Schemeless Database, but they're doing it with a relational backend in MySQL. So what's your take on this, Rebo? I think it's pretty interesting. I mean, whether you use MySQL or use a NoSQL database from the beginning, it's just the concepts that matter.
Starting point is 00:03:40 And the concept that they're doing with this is the same. They're kind of writing some of the code that would maybe be in Mongo. But I think they, I think these guys actually did try Mongo and they ran into some issue that they had. I don't know what it was. But so I think it's a pretty interesting project. I, for me, it's, I mean, being, I'm probably wrong, but for me, I would say it's kind of like using CakePHP instead of Rails, but I could be horribly wrong on that. I haven't looked at it a ton, but it seems really interesting, and I definitely plan on going through the code because I'm sure there's some interesting stuff in there.
Starting point is 00:04:15 James usually puts out good work. But it's nice to see that the NoSQL, for the lack of a better term, the schema-less database approach is really getting prevalent. Yeah, well, and the other great thing is that there's some organizations for lack of a better term, the schema-less database approach is really getting prevalent. Yeah. Well, and the other great thing is that there's some organizations that they don't want to support a million databases and stuff, and they don't want to update. And so if they want to use MySQL but you still want to get the benefits of NoSQL, this is great for that. I mean, this is perfect.
Starting point is 00:04:38 And I'm sure, like, I mean, I know they've talked about it before, but this was made to handle a lot of traffic and a lot of stuff. So I think it's pretty interesting. For some people, it's going to be perfect, and for others, it won't be. But that's the great thing is everybody's different, and whether it's split right down the middle, it doesn't matter. There's no sides. So I think it's really cool. That's a nice segue into more of a front-end project in SCSS. It's CSS-style syntax for Sass.
Starting point is 00:05:09 It seems like Sass, you either love it or hate it. You Sass at all, John? No, I was a hater, but we're actually thinking about throwing some Sass functionality into Harmony. Oh, get me excited. We're actually thinking about throwing some SAS functionality into Harmony. Oh. Yeah, so we're going to – Get me excited. Well, we just kind of – Steve added it as an issue the other day and kind of smiled at me. And at first I was like, oh, I hate Hamlin SAS. But then I was like, you know, I've never really looked at SAS.
Starting point is 00:05:36 And we've talked about supporting variables and things like that. So why not use something that already works? So I would say that's probably going to come to a harmony near you in the next month or so, is some kind of support for SaaS out of the box. Did Steve share any opinions on SaaS with you that you can share here on the changelog? Well, I think what got him excited, so Steve's the designer, the aesthetic of half of ordered lists.
Starting point is 00:06:00 And so I think what got him excited is, you know, the ability to do a little bit of programming with, I mean, both of us have always had a few things that we think CSS should do and one of them is variables because you reuse colors, you reuse things, that just makes sense. And the other thing that Sass does,
Starting point is 00:06:15 it allows you to do functions, which is kind of interesting. The other thing that is huge, I think, is nesting declarations. So if you have a div with an ID of main and you have like some posts or something inside of that, you can do a declaration with curly braces for main. And then inside of that, you can do like dot post and it'll actually automatically add like sharp main dot post as like the full selector for that thing. So there's some
Starting point is 00:06:43 really cool stuff with SAS that it does in that aspect that I think that's what really drew him to it because it can remove some duplication from your style sheet. I was thinking about that the other day. I actually, sadly enough, I'm working with WordPress on this other site I'm working with.
Starting point is 00:06:58 It's the Web2O Show, web2oshow.com. But I'm working on a new theme for it. And I, you know, through Wynn's help, we actually have a gem out there called Compass WordPress where we actually use Sass and Compass to work with WordPress. It's kind of wild. But I was thinking to myself, Jesus, if I had to write this with actual CSS,
Starting point is 00:07:17 how much repetition I would actually do. I was just thinking this morning, too, when I was making the coffee, I don't know why I reflected on it. I'm thinking if I had to repeat all those selectors, how much time would I waste doing that CSS? It's just insane. But that's wild. Cool.
Starting point is 00:07:30 I'm happy to see that come to Harmony. As in one way that the schemaless approach is kind of creeping into web development. If there's so many projects out there that are taking this approach, it cries that a problem is out there. And I think it's the same thing with CSS processors and meta frameworks, whatever you want to call them. out there that are taking this approach, it cries that a problem is out there, right? And I think it's the same thing with CSS processors and meta frameworks, whatever you want to call them. If there's so many approaches between SAS and less CSS and XCSS and you name it, there's a project out there in your language to do this type of work to generate the CSS. I think it just speaks to maybe CSS needs some modernization.
Starting point is 00:08:06 Yeah, and I don't know if you guys know this. When it does some of the things, I've read about what it does, but does it use the spec if it's there? Because I know there's a spec for variables already. I didn't know if maybe they use the same syntax. I don't know. I'm not sure. Chris would definitely be able to answer that. Maybe in your free time, pipe out on Twitter and just say, hey, at Chris Epstein, does SAS leverage CSS's natural variable?
Starting point is 00:08:29 I think that would be really cool to have a processor that actually supports the standards that are set that will be in browsers someday when they update, and that would be kind of interesting. Yeah, currently I think since browser support is limited for those particular variables in CSS, I don't think they're doing that currently. I think it's all pre-processed and then just vanilla CSS comes out the other side. One project I wanted to touch on was Configularity, which is still a tongue twister for me.
Starting point is 00:08:53 But we had an excited Mr. Flip. He's the guy behind this project. And he was thrilled to get such a rousing endorsement from the Changelog show that it's probably not crap. So now that we've got a heavyweight Rubyist on the show, I wanted to get your take on this particular project and the problem it aims to solve. And I'm sure that you've got a gist that does this for you automatically. Yeah, so configuration is a part of every project. It's guaranteed.
Starting point is 00:09:25 And it's another one of those things that everybody does differently. So, I mean, I'm looking at it right now, and it looks pretty similar. I haven't looked at the code, but, like, the API is pretty similar to, like, what we use. I actually have, I think I might even post it on Rails Tips. If you search config on Rails Tips, it might be up there. But we use this, yeah, like a YAML type, you know, slurp thing that just literally pulls it in and then boom, you have settings. So it's real similar to kind of what he's doing.
Starting point is 00:09:51 But this, I mean, this is obviously something that everybody's struggling with because there are a lot of config frameworks out there. And this one seems like one of the more simple ones that I've seen, which is, that's good, so. Still love the name. Yeah. So would you say that it's probably crap or probably not crap?
Starting point is 00:10:08 No, I said I don't know if it's crap. And then you said you laughed at that remark. I'm just joking around. I'm just messing around. Got you. Gordon, an open source Flash runtime written in pure JavaScript. This one went from just a few watchers to several hundred in one day on GitHub. And we were working with Chris Weinstroth over at GitHub.
Starting point is 00:10:33 And I think he was working on the trends on GitHub at the time. And this was one of the projects that came up in that conversation because now we're up over 1,000 watchers just a week later. So what do you guys think? Open source Flash runtime in pure JavaScript. I think? Open source, Flash runtime, and pure JavaScript? I think it's awesome. I mean, like, I thought it was a joke. I checked my calendar to see if it was April Fool's. I mean, it's really cool.
Starting point is 00:10:55 It doesn't, I think if it could support, like, some of the NAT streaming stuff, like video and things like that, I don't think it does now. I think that would be epic. But even just now, I mean, that's really cool. And this one got me excited. Twitter node, node.js-based tweet streaming. So we've got a streak here
Starting point is 00:11:09 that we've got to keep going with mentioning node.js in our episodes. But this one from Technoini, which you mentioned in the interview portion of the show, and that's Rick Olson, if you don't know Technoini's handle on GitHub. This is a node.js server for streaming Twitter updates.
Starting point is 00:11:30 Straight up, Node.js is the future. I mean, it is. JavaScript is such an awesome language. I'm going to go out on a limb and just claim it. I looked at it the other day, and I had been ignoring it for quite a while. And I finally just was like, okay, what's this Node.js stuff about? Kind of like the crazy Mongo database. And I was just blown away. I mean, in like two seconds, you know, I used Homebrew. It's on GitHub. And I did brew install Node.js
Starting point is 00:11:54 and like made a little tiny server and did a hello world. And I mean, I haven't had a geek out like that in a long time. It was really cool. Right about now is the time that Wynn challenged you with Resig's quote about JavaScript. I'm not going to do that this time. You'll have to listen to an older episode. But, you know, it forces you to, if you're going to embrace these server-side JavaScript frameworks, I think a lot of us, they're more involved code, I would imagine. I haven't done a lot of this firsthand on the server-side, but I'll give you another JavaScript quote that I saw, and I'm not sure who to attribute this to.
Starting point is 00:12:29 I need to go back and look and put it in the show notes. You can attribute it to me. There you go. I'll put it next to Jay Neunemaker. So they liken JavaScript as the incredibly hot girl at the party that always makes her loser boyfriend dom right and so you know if you're writing server-side javascript you're finally cut loose of the dom the document object model and so it it forces you to well i guess you're free now to organize your javascript in a more sophisticated manner and part of that is just simply writing better JavaScript. And we talked about it in an earlier episode of semicolons, good or bad writing server-side JavaScript.
Starting point is 00:13:09 And a big piece of that is, I guess, if you're going to have validating JavaScript is using JSLint. Have you used this project? No, I haven't. So JSLint basically is a validator for... Oh, yeah, yeah. I have used JSLint. Sorry. If you've used the TextMate bundle to validate your JavaScript, it's using Lint behind the scenes. So jQuery Lint came out. That's the longest intro segue in history. jQuery Lint came out this week, and it plugs into Firebug and validates
Starting point is 00:13:40 and makes suggestions for improving your jQuery. So I was really excited about this particular project. You see the screenshot up on the change log. You see that it inspects the selectors that you use for your jQuery code and then recommends different selectors, which, you know, that's a big deal when writing jQuery is just caching those selectors and being a lot more optimized in the selectors that you use. Do you write a lot of jQuery?
Starting point is 00:14:04 Yes. Harmony is actually has more JavaScript than Ruby. So yeah, we have a ton of jQuery in there. I saw this the other day, but I haven't tried it yet, but I'm pretty curious about it. It looks interesting.
Starting point is 00:14:22 So on top of that, does it also not require you to do console log and stash the variable so you can see it in the console? Does it do that for you, Wynn? You know, I haven't used it firsthand. I need to kick the tires. But from the intro, I don't believe that you had to do anything special to manually inspect those variables. Yeah, I know Lint itself is really cool, the JS Lint.
Starting point is 00:14:44 I've done, you know, I had the TextMate bundle for a while. I ended up turning it off because it was a little bit slow. But, yeah, it's pretty cool how you can, like, just, you know, I found a lot of places where I just, you know, missed a semicolon or forgot a var, you know, it just happens randomly.
Starting point is 00:14:59 And so, I mean, I can imagine that doing the same kind of thing, like, on top of that 4jQuery, that's pretty sweet. I'd definitely be checking that out. As a side note, we should probably make a note to get a hold of somebody like Remy Sharp, who does jQuery for designers. He'd probably be good to have on the show. Absolutely. Yeah.
Starting point is 00:15:17 Show off the best darn presentation software a developer could ever love from our friend Scott Chacon over at The Hub. I have played with this one. It's pretty cool. I have a presentation coming up next week on SaaS of all things, so I thought about giving this a try. I guess ultimately I'm still addicted to Keynote. I think that's one of the apps this one has in its sights. But it's essentially a built-in Sinatra web app
Starting point is 00:15:42 that allows you to build your presentations in HTML, JavaScript, and CSS. Yeah, I became a big fan of Keynote. I teach a JavaScript class at Notre Dame in the fall, and so I had to learn how to show code and presentations and things like that. So I started using Keynote, and at first it's a little bit awkward, but it definitely gets the job done. I can't see myself switching, but it was interesting. I think there's definitely an opportunity because it doesn't sound like anybody's ever real happy with code presentations and stuff like that and what it takes to get it going. So I think it looks pretty cool. So you tried it out, and what do you think?
Starting point is 00:16:23 I did. I mean, it's still early. It's a brand new project. I'm not sure that it's ready for me personally, but I could see where... I definitely see the problem it's trying to solve. And as you mentioned, showing code in your presentations is one of the most difficult things you can do for all of the
Starting point is 00:16:37 benefits of something like Keynote. Showing code in a way that fits the limited resolution that you normally have on a projector is difficult. And then there are certain times if you have to wrap text, a lot of times that may or may not be valid in the particular language that you're trying to display. So do you have any tips for the listeners? Say that you do this in Keynote as far as displaying your code in Keynote? Yeah, I've got a draft blog post
Starting point is 00:17:07 I've just been waiting to put together because there's a few things you can do and it makes it a lot easier. I think it's Dr. Nick has a copy as RTF, rich text format bundle, and that is priceless. If you install that for TextMate, you can literally code your stuff up
Starting point is 00:17:21 and just copy and paste your syntax highlighting right into Keynote. So a lot of times I go with white background because you don't have to worry about contrast on the screen and stuff like that. And then I just use one of the white themes in TextMate and I can do copy as RTF and paste it right in, bump up the font size a little bit, and the code just looks great. And I know I found, and I'm sure the same is true with other developers, but the students really reacted to the, the syntax highlighting, um, like being able to see that really helped them understand what was going on. So I think the copy as RTF was one of the biggest things that I figured out. And then, you know, going with a simple background color so that you don't have to worry about
Starting point is 00:17:58 like things looking washed out or stuff like that, um, has helped me the most. So what are you teaching, uh teaching America's youth at the university? Basically, it's just an intro to JavaScript. It's literally like English majors and history. I mean, they don't have any programming experience at all. So I have to teach them just enough HTML to get it going. And then it's basics of JavaScript, learning how to program variables, functions, stuff like that.
Starting point is 00:18:24 And then the second half of the class is all jQuery. So it's literally just like pedal to the metal, get something going, and it's pretty fun. It's a lot of fun to see people get excited for the first time again when they make something draggable. And their eyes light up like, whoa, I can show my friends this. And you find yourself, when you teach a subject, you really have to know the subject. Yeah. Yep, because they ask questions that I have never even thought. So yeah, it is – that's very true.
Starting point is 00:18:53 That's kind of tough. That's kind of tough. Before we go away from show off real quick, I think some things we're not really thinking about there with what it does is in its future plans, it actually intends to be like this dynamic presentation server. And what's cool about that is that it has plans for actually having the audience interact with the presentation. So the fact that it's like this presentation server, it runs on a URL and you can kind of get dynamic with it, like show tweets in it and very, very dynamic
Starting point is 00:19:21 where you actually include the audience. And I think that's what every person who gives a presentation tries to be very interactive. And if we're going to go down that road, why not try to build it into the software that does the presentation? And not only that, but it's, you know, let's face it, it's code, right? So you can throw it into a Git repository, share it with the world like we do with our open source software. And, you know, that's a big, big win there, too. You can't really share a keynote like that. I mean, I guess you can, right?
Starting point is 00:19:45 But can you version a keynote? I don't know. Only at the binary level, I guess, and that's always awkward. But yeah, it's a good point. You could fork a presentation. Yeah. Fork my presentation, baby. Next up, Congo Mongo.
Starting point is 00:20:02 Use MongoDB from Clojure. So I think we've probably beat the MongoDB horse on past episodes and this one. But what makes this one interesting to me is the fact that you're calling it from Clojure. And it seems to be a rise in these functional programming languages. Have you dabbled in these at all, John? No, I haven't. They seem cool. I'm not like a
Starting point is 00:20:26 computer scientist or anything, so I haven't really gotten into that part of functional programming. But yeah, it seems interesting. Clojure and some of them are on my radar for maybe tinkering with in the next year. At our last Ruby meetup here in Dallas,
Starting point is 00:20:41 some of the guys are starting a functional programming languages user group here in the Dallas area, the guys are starting a functional programming languages user group here in the Dallas area, and they're calling it Lambda Lambda Lambda. That's awesome. That was a perfect name. Alrighty, we should have saved this one. For the last talk, Adam, you may have to do
Starting point is 00:20:57 some splicing in post-production. JavaScript as a teaching tool. Here you go, John. Learn classic computer science approaches using a language you probably already know. So have you seen this repo? Yeah, I looked through it a little. I bookmarked it to look at it later because I want to go through it mostly because I have no computer science background at all. So I've always found algorithms and stuff like that interesting.
Starting point is 00:21:20 And JavaScript is such an awesome language. But no, I haven't. I mean, I would say definitely JavaScript is a great language for teaching programming. Um, but I, I, you know, this computer science stuff is, is really interesting too. So just curious when you said you bookmarked, did you mean you, you watched? Uh, no. So I, I typically don't use watch because then I get every commit and it kind of overloads it. So I, I think I might've talked about it in the other episode, but I have a tiny little Heroku Mongo HQ app that I use and I, it's just like a bookmark,
Starting point is 00:21:54 like Instapaper type thing, but not as fancy as Instapaper where you can just mark something to look at it later. And so I do everything in batches. So I, you know, get all my feeds, find all the interesting things,
Starting point is 00:22:05 bookmark them to read later, and then when I have time, I usually go back and look at them. So this is on the radar to do that. So I'm looking at the network graph for this particular project and it's interesting to see folks forking it and adding their own examples. So phpmoadmin, MongoDB admin tool for PHP, and I know they're riffing off phpmy Admin, MongoDB admin tool for PHP. And I know they're riffing off PHP My Admin, which we all know, love, and probably hate from former lives of dealing with MySQL. But I love the Mo in this.
Starting point is 00:22:35 It's Mo Admin and PHP My Admin. But we've seen a lot of these crop up, these GUI tools for Mongo. When we had Mike for MongoDB from TenGen on the show, we talked about where is the GUI for MongoDB? What's your thoughts on that? Do we need one? Yeah, I think it'd be really cool. I know, I mean, SQL, I think is what it's called. That's one
Starting point is 00:22:57 that I used for MySQL and still do occasionally. I just saw, I don't know if you've seen it or not, but there's a new one out. I think it's a Mac app called Mongo Hub 2, which I haven't really checked out yet, but that is kind of interesting to me too. But yeah, I know, like when I was at PHP, PHP My Admin was, that was awesome. I learned on PHP My Admin. So I definitely have some roots with that. So it's interesting to see other stuff crop up like this for Mongo.
Starting point is 00:23:25 I think it's only a matter of time. You mentioned SQL. I use that primarily for MySQL as well. I love that app. I'm glad to see that it's continued to develop as it has. The comparison that I would draw is probably with Futon, if you've ever played it with CouchDB.
Starting point is 00:23:42 I think they have a nice web interface that's built in. It's really functional. I think Mongo could benefit from something similar. Yeah, definitely. I think you always want to be able to see your data. I've had a few people on the MongoMapper mailing list that are like, how do I see my data? I'm like, well, you can use a shell,
Starting point is 00:23:59 but I think some people are just used to GUI tools. So they're not quite ready for that level of hacker to open up the green term screen. It's always nice, too, to get to GUI tools, so they're not quite ready for that level of hacker to open up the green term screen. It's always nice, too, to get a GUI on something that can be a little difficult from a different level. But as soon as you start to pull out GUI tools, you start to get to a more mainstream audience as well. Great point. Fusebox, a safer way to monkey patch JavaScript. So I was checking out this repo, and I thought it was interesting in the way that it aims to provide a sandbox for monkey patching certain built-in objects in JavaScript.
Starting point is 00:24:33 And I think people differ on monkey patching in general. I know in Ruby there seems to be debates on whether open classes and monkey patching is a good thing or not. With JavaScript, usually, though, it's a little harder to debug because you don't have those debug tools that you've got with other languages. And so when somebody's opening up prototypes and adding methods and then what you expected that you're adding to a string prototype is not necessarily there because someone else has stepped on it,
Starting point is 00:25:03 it can be confusing sometimes. So have you checked out Fusebox yet and the approach that it takes with this namespacing? No, this is really interesting. I've always kind of shudder at namespaces, but I can understand definitely with JavaScript when this would be handy. But, yeah, this is pretty cool that you can do that so easily. I hadn't seen it yet.
Starting point is 00:25:23 I'm behind on my feeds. But, I mean, I know personally I've – usually I don't override anything in JavaScript. I usually just kind of add to it, you know, things like first and last on array or stuff like that. But, yeah, projects like this and Underscore are definitely – I mean, that's – as people write more JavaScript, it's necessary. You mentioned Underscore. So have you used that very much? Just a little bit. Like, the next project I start, I'll definitely be using it to try it. You know, most of the projects that I have, I started, that I'm working on now, I started before Underscore, so I have other, you know, like, for each patches and things like that that I end up using, but I think Underscore is definitely what I would use next.
Starting point is 00:26:07 Before we pull away from that, too, we should probably mention in the comments, the owner of that repo, that project, John Dalton, actually chimed in and said he recently added support for the sandboxed Boolean native constructor as well. Yeah, and this is supposed to be part of Fuse.js, which I'm still confused about what it's going to be. I wanted to plug it, but Mr. Dal I'm still confused about what it's going to be. I wanted to plug it, but Mr. Dalton's splash page just says it's going to launch sometime in January. So we've got about three days left to let us know what Fuse.js is going to be.
Starting point is 00:26:37 We've got our eyes on you, John. You can't hide. But you mentioned Underscore. For the guys that don't know, Underscore.js was on episode five, I believe, from Document Cloud, which those guys are turning out some great code over there. We talked to Jeremy about Underscore, and I think I've added it to every project that I've started since that
Starting point is 00:26:55 came on my radar. It's a nice little library. Next up, App Sales Graph. Graph your App Store sales data. I don't think any of us have any apps in the app store, but it is cool to see people. I guess they're scraping this data. I'm trying to figure out where they're getting this data. A couple of these have popped up in the last week, but I thought it was interesting.
Starting point is 00:27:17 The app store has just gotten so big, and the reason I wanted to highlight this one today, we probably have a hard stop here at the top of the hour with John waiting on the Apple keynote. Just how big the App Store has gotten. Do you guys foresee any sort of iPhone integration with Harmony? Yeah, totally. I mean, we plan on having a full API eventually. We'll probably start with just a little bit, but we've already had a few people talk to us about making a Mac application for editing your themes and uploading files and changing content. And the same thing with an iPhone, man.
Starting point is 00:27:53 I would love the idea of being able to look through comments right from my iPhone and stuff like that. So I would definitely say someday we will. And, I mean, man, everybody who makes an iPhone app is rich, so why not jump on board, right? Absolutely. Do you guys think there's an untapped market out there for, I guess, maybe software as a service? In this case, we have this Mac, this app sales graph, but anything hosted where you can actually pull this data in and sell a subscription to a developer to help them better manage their sales and their processes? Or is it just part of the iPhone application on the store in general?
Starting point is 00:28:29 I think it would be interesting. The problem that you might run into is just with Apple choosing to cut it off at any time. Right. That does suck in that regard because they do have so much power. Yeah. It would be like a bad habit.
Starting point is 00:28:47 Things-RB. I know this is Adam's repo he's quite excited about this he even posted the screenshot of his Hootsuite conversation well that's not my conversation that's just a couple good friends of mine Andy Shen and Josh Price was just chatting on Twitter and I follow them both
Starting point is 00:29:01 and just kind of caught at a glance their conversation about things. And I've been a things user for probably about a year and a half now, and I use it on the desktop as well as the iPhone. I've been a lover of it. I store lots of notes, things to do, projects. I mean, I use it pretty in-depth. And I thought it was a really cool take
Starting point is 00:29:18 when I found the repo, the project on GitHub, and I just stumbled on it maybe a few weeks ago. And when I stumbled on this conversation, I'm thinking, well, I should really post that repo because these guys would appreciate it. And the next thing you know, when we posted it, it had 30 watches. And before the end of the day, it was like up to 75. So it just shows you that there's people out there who really want to cling to this information that's in GitHub. And it just needs to find a way to get out. Yeah, it's almost up to 100
Starting point is 00:29:45 watchers now. I got some buzz when we posted it that day. It's nice to, as you say, shine a light on some of the lesser-known projects, even if they're extremely niche. I think that's kind of the whole point of the show. Even the developers that own the projects,
Starting point is 00:30:01 they're more than ecstatic about it, too, because they're not really looking to get famous by any chance, but they want people to use their code. Doesn't everybody want people to use their code and find some usefulness in what they provide back to open source? I think it's just kind of wild to give that back. But the cool thing here to take away is that
Starting point is 00:30:17 if you're geeks like us, you're probably using Terminal anyways and you probably are on the command line most often. So why not be able to just pop up in a new tab and type in a quick command and get today's to-do list from things? So you can still go back to your things UI, either on your iPhone or whatever, but you don't have to keep things running at all times either. So you can just have things closed but still access that data via the CLI.
Starting point is 00:30:43 It's kind of wild. They also piggyback off of a tool called GeekTool to keep to-dos on your desktop, which I haven't checked out yet, but I've heard that's kind of cool. Yeah, that is cool. I actually did that before when I was using like Todoist or something, a web service. I added a little bit of Ruby stuff, you know, and showed to-dos on the desktop with GeekTool. GeekTool is pretty cool. I mean, it's fun.
Starting point is 00:31:02 You can't customize everything, but you can make it look pretty decent. I think projects like this too, they're really fun. Like what people don't realize is desktop software, it all uses either SQLite or XML or something. So like, you know, if you have a desktop app out there and you want to get into it, you can get into it. You just have to, you know, go to the application and figure out where it's storing the data and you can, you can hack around and make stuff work. So, I so i mean i think that's it's awesome when people do stuff like this and it's a lot of fun i know i've done it a few times so you know that's the beauty of github not every project is going to be this massive community effort that solves you know a particular problem that that every web app needs some of it's just going to be tiny little niche you know hobbyist type projects
Starting point is 00:31:41 just like this one yes the takeaway too on this on this, I guess, on John's note, the fact that you can access that XML or MySQL or SQLite database is that if you have an application you want to get access to, go take a look at this project, see how it's working, and reverse-engineer it and make it work for your case. You just got to learn a little bit of Ruby, and you're good to go. One other takeaway from that too is that... That's five takeaways
Starting point is 00:32:08 if you're scoring. Hey, I'm taking lots of takeaways here. There's nothing left to take. I'm on the podium. Give it to me. I'm just kidding. Somebody, actually Andy, let's rewind there for a second. So when we released Tail, defunct Chris Wannstroth
Starting point is 00:32:24 actually got pretty excited about it, obviously, as we know. And then he's like, now I just want to see Tail in my terminal. And then Andy piped back up and said maybe we should use GeekTools to show Tail in our terminal. Yeah, no, I think that's, I totally think that's great. GeekTool,
Starting point is 00:32:40 that shows on the desktop, too. You can actually make it your desktop background, I think. That's how I've used it. I don't know if I've ever used it in Terminal, but you can actually make it overlay with opacity on your desktop to show stuff. So yeah, I bet you could totally do a live. I did a minute refresh on the little dumb thing I made.
Starting point is 00:33:04 Yeah, I saw that tweet, and I was kicking around. The how I've actually had to pull that off. I may have to pick your brain, John, because I think that would be cool to actually tell the change log without having to go through the web interface. We should talk about that sometime. Totally. That sounds fun. JSpec, robust BDD for both client and server JavaScript. So we talked about server-side
Starting point is 00:33:19 JavaScript earlier, and then client-side JavaScript with jQuery. So here's a BDD, behavior-driven development library for JavaScript. Do you find yourself testing JavaScript in this way? You know, JavaScript testing, let's be honest, it kind of sucks right now. So, I mean, the things that we need for testing or that I've found I need is in more integration related. You know, most of the stuff that I use that is more
Starting point is 00:33:45 library based already has tests. I haven't really written a lot of libraries for JavaScript that I want to test and stuff. I think this is awesome and I definitely think for Node.js stuff like that, server side testing this is great.
Starting point is 00:34:02 But I think I'd really like to see some even more improvement in the integration area for testing JavaScript-type stuff, like with HTML and those kinds of things. But yeah, this is a cool project, especially if you like RSpec. Yeah, I like the vocabulary here.
Starting point is 00:34:20 It's really familiar if you come from that background. FoursquareX, talking about another hobbyist project. This one's an OS X client for Foursquare, which seems to be locations all the rage on Twitter these days. Either of you guys use Foursquare? No, I don't. I actually use Gowalla, I think. Yeah, I'm a Gowalla fan myself. I paid the Gowalla guys this morning for an API. I'm dying for that API to write a wrapper. We're calling you out, Gowalla. I did.
Starting point is 00:34:50 But Foursquare's got their API out there and they've got a little traction. This is a really nice looking app for doing that on the desktop without having to use the iPhone or the web interface. And it's cool that they made it open source that anybody can forget and add features. It's really nice. Special note is that you actually have to have Snow Leopard,
Starting point is 00:35:06 not just Leopard. Yeah, I saw some grumbling on Twitter, on the Twitter about that. But you know, it's... How long has Snow Leopard been out? It's like, upgrade already. Well, that's me. I've been delaying because of what that does to me.
Starting point is 00:35:24 That puts me out of, I puts me out of practice for a bit because I've got to reinstall and new gems and set up the system again. It's just a big mess of undertaking that I'm doing right now. Actually, I kind of like that process because spring cleaning, cleaning house. Back when I was on the Windows platform,
Starting point is 00:35:42 I think I did it at least once a month. Well, yeah, I would do it. It's just a pain in the's just a bad i had to right there's just so much going on right now that right now is bad timing and i don't think it's gonna get any better but it's kind of resisting because i don't know they're announcing summer leopard in about a half an hour so you might as well just wait for that and speaking of installing things uh one that we have not highlighted on the show that we will feature because now we're mentioning it on the show that has got a lot of traction and I've seen you talk about it a couple of times, John, is Homebrew. Yes. Homebrew is awesome.
Starting point is 00:36:14 It's really good. So what makes it so cool is if you're someone like me that does not want to compile and MD5 check some things and stuff like that. I just want to install something like... I like Mac's drag and drop. Being able to just say brew install and then some name, it's perfect. It's definitely great.
Starting point is 00:36:38 It's got to be easier than Mac ports, right? Oh, man, yeah. Mac ports, I always run into. I still have Mac ports installed because of one thing that kind of relies on it. But, yeah, it's definitely easier than that. And it doesn't mess up with your system at all. You can put it in wherever you want, and it'll only affect that place, which is really cool. All righty. Well, thanks for sticking around and running down the news with us, John. My pleasure. This was a blast.
Starting point is 00:37:02 It was a blast. No, seriously, thanks for joining us on the show. It's always a pleasure to have someone else's take on what's happening in open source. I think it's awesome and really appreciate you taking the time to sit down with us for, I don't know, what, an hour and a half now? Between the interview and the news, I appreciate you taking the time out of your day and
Starting point is 00:37:21 enjoy Apple's announcements today. I will. Thanks a lot. Thank you for listening to this edition of The Changelog. Point your browser to tail.thechangelog.com to find out what's going on right now in open source. Also be sure to head to github.com forward slash explore to catch up on trending and feature repos as well as the latest episodes of the change log. Was man alone I'm out I'm out All roads to try
Starting point is 00:38:15 Bring it back Bring it back to I'm out I'm out All roads to try Bring it back Thank you.

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