The Changelog: Software Development, Open Source - Fix-me, Configliere, more Node.js (Interview)

Episode Date: January 19, 2010

Marshall Culpepper Appcelerator is back and we go through the news together. ...

Transcript
Discussion (0)
Starting point is 00:00:00 Welcome to the changelog episode 0.0.9er. This is the third week into January now, it's a brand new year, but my name is Adam Stachowiak, and I also have my co-pilot with me. His name is... Wynne Netherland. This is the news section of the show. Marshall Culpepper from Abcelerator Titanium stuck around, and we discussed the news and events of the week. Kind of caught up over the Christmas break. Some entertaining stuff in there.
Starting point is 00:00:44 Yeah, some small entertaining stuff. I think the fun one there was a small discussion around Sea of Clouds Fix Me project. Right, which we are still waiting on details from that contest to see how it turned out. Stay tuned. We'll be announcing
Starting point is 00:01:00 the winners in an upcoming episode. I guess the play there is, too, is if anybody has anything fun like that they want to try to branch out to a larger audience, definitely let us know. We'll tweet about it. We'll probably plug it on the blog and help you out if we can. If you're essentially putting a bounty out there to solve a problem
Starting point is 00:01:18 using crowdsourcing, you know, it's a fun thing, right? That's right. But anyways, I guess we don't really have much to say. I guess all the content is in the news, so we should allow them to grace their ears with our voices. Let's get to it. All right. Marshall's kind enough to stick around and run through the news of the,
Starting point is 00:01:44 usually the news of the week, but this is going to be more like the news of the month since we took off for the Christmas holiday. So thanks, Marshall's kind enough to stick around and run through the news of the – usually the news of the week, but this is going to be more like the news of the month since we took off for the Christmas holiday. So thanks, Marshall. But running through this, let's take a look and start with the FixMe repo from Sea of Clouds. And Sea of Clouds is one of my favorites. They've created the Tweet jQuery plugin. I use them in a lot of applications, more than I care to admit. So I noticed that
Starting point is 00:02:08 they created a repo called FixMe and basically asked crowdsourcing help for a layout issue in CSS. And he lists the requirements here, fixed width and centered content sidebar, yada, yada, yada down the deal. And it has to work in Firefox 3 Plus and Safari 3 Plus
Starting point is 00:02:24 bonus points for IE 7 and 8. So what do you think of this? Open source bounty to help with a particular edge case layout issue. I think that's really awesome, actually. I mean, I think the way, you know, if these guys can help out developers who are, you know, unemployed
Starting point is 00:02:41 or even just looking for some extra cash right now, I mean, that's a really cool idea. And, you know, it looks like the CSS issue is non-trivial, so it'll at least get some gear spinning up there. Well, I noticed when I posted the article, it had a couple of forks in it, up to 13. Of course, this is a month later. I'd be interested to try to find an update on this since it's almost a month ago. If the problem was fixed and there was a winner to this bounding. It's up on fixme.heroku.com if you're listening at home and want to check it out.
Starting point is 00:03:12 I actually hadn't heard anything else backed by this. I haven't been listening to Twitter heavily, but have you heard any news about anybody giving a good try? I have not. I would say probably then the fail, well, not that it's a fail, about anybody giving a good try? I have not. I have not. I would say probably then the fail, well, not that it's a fail, but the fail, I guess, on maybe it's my part, could be my fail,
Starting point is 00:03:35 is that you ask the community for involvement, but then you don't communicate back to the community. Maybe we need to check ICO Cloud's Twitter stream to see if the updates were via that channel. Interesting, nonetheless. Even the repo has nothing at all, not even a readme, but that's fine. Did you guys see this one? Short wiki, a simple SMS-based wiki using Google Voice. This is a contrived example of using Google Voice,
Starting point is 00:04:00 but either of you have a Google Voice account played with it? Oh, yeah. Yeah, I do. I like it that it rings every phone that you got simultaneously, and I know there's other services out there that do it, but the... How many phones do you have, Wynn? I've got at least two.
Starting point is 00:04:19 No, what I also like about it is the way that you can mask your mobile number and hand out your Google Voice number, and that way it's kind of like a layer of abstraction. If you don't want to hand out your mobile number, you can just get out the Google Voice number. And I found one of the coolest features about Google Voice when you sign up is that you can pick your own phone number. And most exchanges are available. And I was able to get one that had the same last four as my main number, but had a different exchange, which was easy to remember,
Starting point is 00:04:48 because I'm getting up in years and can't remember as many numbers as I used to get. The exchange, is that the first three or the second three? It's the second three. Okay. Get the area code, the exchange, and then the last four. Of course, area code. Geez, what's wrong with me? I couldn't get 713.
Starting point is 00:05:02 I'm here in Houston, and I think I got 832, which is sort of your debunked version of Houstonians' area code choices. But whatever. I was going to say, I like the fact that if I ever have a marketer or anyone calling me, I can just screen them if they're not on my contact list, which I use that whenever I can. You know what also includes texting, which is cool. I texted Adam from it the other day and he replied.
Starting point is 00:05:28 Oh, yeah, yeah, it's totally true. I'm glad you mentioned that. While I was traveling to Canada, when I was up in Canada, I had internet access, but I would have to pay more for it on my phone traveling. So rather than text from my phone, I'd stop at a Holiday Inn, steal their Wi-Fi temporarily, jump onto Google Voice and send a SMS to family and friends to say I'm okay. That's kind of funny.
Starting point is 00:05:54 Well, my wife and I, we both have Google Voice numbers, and we've gotten to the point now where we text solely through Google Voice. Even through our cell phones, we go to the Google Voice little central server or whatever. We've just gotten so used to it. We don't, that way you can move your conversation between your phone and your, you know, your voice webpage and everything. I didn't ask you in the interview, do you own a Droid?
Starting point is 00:06:15 Because that's one of the selling points for that platform is the integrated Google Voice that I saw. No, I own an iPhone right now, so. Anybody on your team, I guess you've got to land around the office to test things out. Does anyone have a Nexus One? No one has a Nexus One yet, but they have ordered it. So Don is the guy that works on Android,
Starting point is 00:06:34 and he's here in Dallas as well. And I think he has all the Android phones right now, except for the Droid Ares, I think. He doesn't carry them all around, does he? No, he just has them in his test environment. He carries a G1 on hisres, I think. He doesn't carry them all around, does he? No, he just has them in his test environment. He carries a G1 on his person, I think. He's had a mental picture of the Geek Squad guy that's got the utility belt with the five cell phones.
Starting point is 00:06:55 Yeah. I would imagine that Google should have sent you guys. I mean, when I say should, I mean, since you're developing for various mobile platforms and supporting their platform, they should have sent you a Nexus One just to get you guys to buzz about it. Well, you know, we have some of Jeff. Jeff Haney is our CEO, and he has friends in Mountain View that just kind of give him free phones a lot.
Starting point is 00:07:19 But we don't have an official relationship with Google or Apple or anyone. So, you know, it's kind of part of the cost of doing business. So next up is Persistent. It's a high-level Persistent database system for Node.js. And we can't say Node.js without Adam spelling Node.js because it's my accent. Right. I think I say Node.js. So N-O-D-E dot J-S.
Starting point is 00:07:43 Yeah, that's right. Like a tree node. So this is like a cross-back-end persistence layer for Node.js that hits Postgres, SQLite, Mongo, and JSONDB. Have you done any Node.js, or is it just kind of... You mentioned earlier, this is separate from the news, but back in the actual interview, he was raving about Node.js, wasn't he? Were you, Marshall? Oh, yeah, I think it's an amazing project,
Starting point is 00:08:09 just in terms of what it's doing. It's integrated well with V8, and it's really fast, and the API is nice, and there's not too many things to say that are bad about it. I haven't used it too much other than kind of playing around with it, but I hope to find a use for it soon, because I really like it. I haven't used it too much other than kind of playing around with it, but I hope to find a use for it soon, because I really like it. So when we talked with Steven, he was
Starting point is 00:08:29 wondering why people would want to do this kind of stuff I guess at the client level, or sorry, on the server level, right? Because Node.js is on the server, right? What are your feelings about that? Because his answer back was if I could write Ruby, or if you can write, because his answer back was,
Starting point is 00:08:45 if I could write Ruby or if I can write JavaScript, which would I rather write? And when you even said, I'd rather write Ruby. Well, I think it's just, I think it's, you know, people growing, you know,
Starting point is 00:08:57 coming out of college now are increasingly using JavaScript for everything. And, you know, obviously we're seeing the web move that way. We're seeing pretty much everything move that way. And I think it's just a matter of time before JavaScript is kind of everywhere.
Starting point is 00:09:11 And, you know, there were attempts like a decade ago to write, you know, server-side JavaScript stuff. There was like a Netscape product, I can't remember the name of it off the top of my head, that did server-side JavaScript. But at that time, you know, JavaScript was a toy language. No one took it seriously. And I think that perception has changed. I think people are doing serious things now with JavaScript,
Starting point is 00:09:34 and I think people enjoy the language, they enjoy the syntax, whatever. And I think this is kind of the next natural extension of that. Is that on your tongue? You're going to say J. Ed Resig's quote? No, I wasn't. Thanks for reminding me that JavaScript's the frumpy girl from high school that's now incredibly hot and smart 10 years later. Absolutely.
Starting point is 00:09:56 But you were asking me which I prefer to write, and based solely on syntax, I would have to say Ruby. But you've also got to recognize that JavaScript's probably the most embedded language in the world, I would think. And there's VM layers that JavaScript can target that are incredibly fast just because they've been around for a while. But another angle of the story, Marshall, is of the backends that this persistence store targets, two of them are relational and two of them are schema-free. Have you done any schema-free development? Because it seems like I find myself doing more and more schema-free.
Starting point is 00:10:33 Is that like the, what is that? No SQL? Yeah, exactly. Well, they do have queries, right, but not necessarily SQL. They're more URL-based or whatever, REST-based. They're like, they're more URL based or whatever, REST based. Right, and it's usually,
Starting point is 00:10:47 you know, kind of like hashes in the sky in memory stores. Yeah. For the most part, document storage, but, you know, that would be killer
Starting point is 00:10:55 if you, in Titanium, could have something like a MongoDB embedded or something where, you know, a couch even, where you had a,
Starting point is 00:11:01 I know you got SQLite on the, in the browser and WebKit, but not having to know your schema up front is just incredibly powerful. Absolutely. I have done a little bit of development with that. I did some Amazon DB stuff, which is okay. I definitely like the aspect, like you said,
Starting point is 00:11:24 to be able to rapidly prototype the database, just kind of throw objects with properties up there and you don't have to worry about what the schema is or prototyping, modifying. Yeah, SQL, which is never fun. Yeah, I really think, I know we have one community member who was trying to embed CouchDB and Erlang into Titanium, so that'd be interesting to see if we could get that off. That'd be really cool.
Starting point is 00:11:48 I think the main reason we haven't integrated any databases other than SQLite is just for the sheer aspect of the size of them. A database isn't a small thing. Even CouchDB is not that small. The runtime is relatively large, and one of the technical challenges we have on desktop, at least, is that whenever we distribute an app, we have to distribute everything with it.
Starting point is 00:12:09 That way, when the end user installs the app, they don't have to go download the runtime. We want to stay away from the Java world as much as possible when it comes to, like, if you want to install this app, you have to install all these dependencies. We don't want that. So we have to kind of play it safe with regards to what we allow to be embedded by default. That being said, it's technically possible to do that out of the box as it is today.
Starting point is 00:12:40 I just don't know if we'll do it by default in the base platform. Gotcha. Any of these links that tickle your fancy? Adam? Well, I think we're talking about JavaScript a little bit, and it might not be too high level. It kind of turns into jQuery at this point, but a little further up you see jQuery.behavior.
Starting point is 00:13:00 I'm not sure, Wynn, if you said you use this or not, but I'm curious just how you guys feel about being able to reference. I guess this is more like a macro, right? It's being able to easily just reference something else to make a bunch of other stuff happen? Yeah, I think it's just a way to organize your jQuery because one of the things that I found in switching from prototype and embracing jQuery,
Starting point is 00:13:23 prototype had the notion of classes and it was more object-oriented in its approach to JavaScript, even though JavaScript's more object-based than object-oriented. But this aims to provide a way to kind of group up your scripts and repackage certain chunks of them.
Starting point is 00:13:39 But this is another project that the homepage is really where to go to get the info on this particular project. We mentioned the scarce readme earlier. This one's even plainer. Basically no information on the repo itself. I think a note to anybody, if you're going to put something out there, if you're not going to put something deep and informational, be funny. At least entertain, right? That's a great segue into probably our last item,
Starting point is 00:14:08 which is Configlieri, Lightweight Configuration Management for Ruby. I haven't checked out the code on this one. It could be total crap, but it looks solid. But I would post it for the humor and the reveal. Jeez, total crap, huh? It could be total crap. I'm sure it's fine code.
Starting point is 00:14:26 Actually, it looks pretty solid. I'm saying I just, this one I would have posted for the humor and the readme, regardless if the code was less than stellar, but it looks like pretty solid code as well. Go ahead and read it off. What's the readme?
Starting point is 00:14:37 What's funny? So, Configulary provides discrete configuration for Ruby scripts, and they named it after Consigulary, the known role on certain mob teams, if you've seen The Godfather, things of that sort. So I thought the name was cute. It had a lot of examples in the readme, which is also a plus,
Starting point is 00:14:57 but I always find humor when people make movie references in their code examples, and in this case, it was Back to the future. If you scroll down about halfway, there's settings.default, and the destination time is November 5th, 1955. It's when Doc Brown emits the flux capacitor. So every configuration setting here is a movie reference, which I find entertaining.
Starting point is 00:15:20 But it doesn't take much to amuse me, as you well know. So they got the speed is 88 DeLorean power source plutonium that's right Rose needed true so that's a you know what before we go I love the I love what programming
Starting point is 00:15:38 does to people's minds especially if you're an engineer it allows you to you know truly have some joy in your craft like to take something like that that we've all grown up with, it's our era, but to be able to inject that into your daily life and contribute to open source but also have fun with it,
Starting point is 00:15:53 I think it's a blessing, man. That's awesome. Having the creativity to do it, just to think like that, I love it. The creativity also in providing that information. So the adoption of your open source projects
Starting point is 00:16:08 is going to usually thrive the more documentation and the more examples that you can give so that people that come behind you can actually know how to consume that.
Starting point is 00:16:16 So one of the things that struck me about the Titanium projects was the CodeStrong website. So Marshall, can you talk a little bit about why the domain and how that whole documentation site came about?
Starting point is 00:16:28 Oh, yeah. Actually, CodeStrong was something that we had before we even started Titanium. It was just a – it was just – it was on the bracelet, one of the bracelets I was talking about. It says Accelerator on one side, and on the other side it says CodeStrong. And, you know, the whole idea was just like, you know, it's just kind of a little phrase that we like that we kind of paired
Starting point is 00:16:47 with our company. And so we bought the domain early on and then when we released Titanium we realized, oh, CodeStrong could be actually a cool domain for documentation. So we just threw up our docs there and it worked out pretty well. So who maintains these documentations? The developers themselves or do you have somebody on staff
Starting point is 00:17:04 that helps out with that? It's kind of a group effort. Most of the API docs are all based in source code.
Starting point is 00:17:13 So when we write APIs on the lower level in C++, that all gets parsed by a little script and then that gets
Starting point is 00:17:20 thrown up onto the site. And then we have other parts of the documentation which are like guides and, you know, mostly human-created. And those, you know, we have all created some of that. I've created a few guides.
Starting point is 00:17:33 Martin has created a few guides. Don and Blaine from the mobile side have created some guides. And Jeff, our CEO, and Nolan, our CTO, have also created guides. So I think we're all just kind of in there with our fingers as much as we possibly can. Obviously, we code a lot too. And we also have some community members who have been helping us out with content. So it's kind of, like I said, group effort. It's kind of Wiki style too, which is we were hoping to get some help with that
Starting point is 00:17:59 because it's hard when we're working on code all day to prioritize docs as well. I almost wanted to ask you that earlier when we were in the interview part of this because you said you got basically a two-man team on titanium desktop and a two-man team on mobile. What room do you have in there not just for planning? You probably have continued learning going on too because you don't always know everything and how to solve every problem, but then you also have documentation so that you have this thriving community
Starting point is 00:18:26 following behind you to pick up this project you're working on and do something with it. That's a huge, huge feat, man. Yeah, like I said, when I say we work 24-7, it's not much of an exaggeration. I mean, I sleep and I have a new daughter that I try to pay attention to from time to time, you know, like it's, it's hard, you know, um, you know, 10, 12 hour work days are the common, uh, and working weekends is pretty common. Um, you know, it's just the way it is right now. And this is kind of the startup ethic, you know, kind of work as hard as you possibly can until you get something that makes
Starting point is 00:19:07 some money. All right. So I can tell you that, uh, you know, the community certainly appreciates your efforts and I'm sure that the, you know, the year of the mobile,
Starting point is 00:19:16 whatever year it actually ends up on certainly appreciates what you guys are working on and how cool it is. You know, one, you mentioned swag before earlier. Is there, um, is there any way we can maybe point people to the right direction to just get some swag from AppCelerator? Is it something you can just give away?
Starting point is 00:19:34 How does it work? You mentioned the Code Strong wristbands. That could be like the Gary Vee wristbands, you know, where he's got his little Vaniac army. I love Gary Vaynerchuk. Yeah, I think you might be able to just send a
Starting point is 00:19:53 DM, or maybe not a DM, just a public reply or whatever, to AppCelerator on Twitter. Because that's where our marketing guy runs all the swag stuff from. I'm sure we have enough wristbands. I know we have enough of those because we've got so many of them.
Starting point is 00:20:13 But you have to mention the changelog show to get the swag. That's right. That's right. The changelog show and the phrase Code Strong. Maybe hashtag it. Absolutely. That's a great idea. Code Strong. Maybe hashtag it. Absolutely. That's a great idea. Code Strong. That's awesome.
Starting point is 00:20:28 I like that. That's a very cool phrase. It's even cooler that you put your docs up there. So just basically send a Twitter message to Abcelerator referencing Changelog Show and hashtag it with Code Strong and you got yourself a wristband. Well, I'll have to verify that, but hopefully. Let us know and we'll cut this out if you can't come. Yeah. I think that about wraps it up though, man.
Starting point is 00:20:50 The news was awesome this time even though it wasn't too deep and we had about a month of news in that 20 or 30 minutes there. Yeah, thanks so much, Marshall. Appreciate it. Well, thank you for coming on the show. Be cool. Thank you for listening to this edition of The Change Log.
Starting point is 00:21:10 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,
Starting point is 00:21:19 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.