The Changelog: Software Development, Open Source - Fix-me, Configliere, more Node.js (Interview)
Episode Date: January 19, 2010Marshall Culpepper Appcelerator is back and we go through the news together. ...
Transcript
Discussion (0)
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.
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
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
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,
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
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
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
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.
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,
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,
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.
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,
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.
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.
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.
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?
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,
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.
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.
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.
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,
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
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,
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,
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.
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,
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.
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.
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,
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
if you,
in Titanium,
could have something
like a MongoDB embedded
or something where,
you know,
a couch even,
where you had a,
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,
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.
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.
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.
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.
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,
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.
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,
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.
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?
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,
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.
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
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,
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
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.
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?
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
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
that helps out with
that?
It's kind of a
group effort.
Most of the
API docs are
all based in
source code.
So when we
write APIs on
the lower level
in C++,
that all gets
parsed by a
little script and
then that gets
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.
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
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
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
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,
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?
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
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.
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.
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.
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.
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.