The Changelog: Software Development, Open Source - Ruby, TextMate, Red Dirt Ruby Conf (Interview)
Episode Date: March 30, 2010While in OKC for OpenBeta4, Adam and Wynn sat down with James Edward Gray II and talked about his many Ruby gems, TextMate bundles, and his upcoming Ruby conference Red Dirt Ruby Conf this May....
Transcript
Discussion (0)
Welcome to The Change Log, Episode 0.1.9. I'm Adam Stachowiak.
And I am Winn Netherland. This is The Change Log. We cover what's fresh and new in the world of open source.
If you found us on iTunes, check us out on the web at thechangelog.com.
Or for a real-time view, check out tail.thechangelog.com.
You can also swing over to github.com forward slash explore.
You'll find some training repos, some feature repos from our blog and all of our audio podcasts.
And if you're on Twitter, the Twitter, you should be following Change Log Show, not The Change Log.
And I am Adam Stack.
And I am Penguin, P-E-N-G-W-Y-N-N.
So cool this week,
got to catch up with one of my heroes, James Edward Gray II, big name in the
Ruby community, author of a number
of gems, maintainer of
the RubyQuiz.com.
That's at www.rubyquiz.com.
Also putting together a cool
conference in May that we'll be at called Red Dirt RubyConf.
We were up in Oklahoma City at another event, Open Beta 4, where Adam and I got to participate.
Yeah, I got to judge.
You got the keynote.
It was pretty awesome.
We also did some demonstrations, too.
What a cool venue up there in Oklahoma City with the OKC Coco run by Derek Parkhurst.
Cool co-working space up there and just a really cool venue.
Yeah, got a big thanks to Derek for bringing us up.
It was a blast and couldn't thank you enough for having us there.
I know, it's got me excited about going back to Red Dirt.
Yeah.
A lot of big names coming in for Red Dirt RubyConf,
so be sure and add that one to your calendar.
By design, this interview is a bit short, as is the intro.
So those of you that's been giving us the good feedback on the survey,
we surely appreciate it, and this one's for you.
All right, let's get to it then.
All right, Adam and I are joined today by James Gray in Oklahoma City.
We're up for the Open Beta event in Oklahoma City at OKC Coco.
So, James, why don't you tell the listeners a little bit about yourself, who you are, and why they should care.
So, I'm James Gray on the Internet.
I go by my full name, which is James Edward Gray II, because if I don't, then my eye doctor gives me the
wrong glasses. I've been in the Ruby community for a long, long time, longer than Rails has
been released. I was actually playing with Ruby before Rails was released, and then when
Rails came out, I suddenly had a skill that was in demand, which is funny because I was
just doing it for fun.
And I've been involved in lots of different parts of Ruby.
I think I started by writing documentation for certain libraries.
I documented ERB and PStore and a few of the standard Ruby libraries.
And then I released some libraries eventually. Probably the one everybody knows is FasterCSV, which eventually became the standard CSV library
in Ruby 1.9.
And then, geez, I've stayed and done everything in the community and helped maintain the Ruby
web page and just about everything.
Where do you see Ruby headed with Ruby 1.9 as far as adoption?
When do you think we'll be over the hump, as it were, with gem adoption on 1.9?
Well, this summer I went to Japan to attend Ruby Kaigi,
and that was their big focus was they're trying to figure out how to get everybody on to Ruby 1.9
so they can move forward, and that's definitely their main goal.
I think the Ruby 1.9.2 release is where they're really trying to make sure
they've addressed all the lingering concerns so that they can get public adoption.
They got everything passing on the Ruby spec, which is really great. They held
the release just to get everything up to date with Ruby spec, and they're really pushing
hard to get those things done. And I think Rails 3 is going to help with that a lot,
being more friendly on Ruby 1.9 and stuff. So I think we're just finally starting to get over the hump,
and I think we'll start to see some Ruby 1.9 adoption soon.
You're also known for your TextMate bundle, the TextMate book.
You're on the TextMate team.
Speak a little bit about what TextMate means to you as a developer.
I really love the TextM text mate team and this is
mostly just uh i started hanging out in that irc channel uh a long time ago when i found text mate
and uh i've been there ever since and and they're just a really great bunch of guys i can't believe
how much they know about everything and it's my favorite place to just hang out and pick up crazy cool geek tips and all kinds of wild stuff they have.
That's where I learn about things like Git or just all kinds of random topics working with the TextMate team.
And I built a bundle just to make my life easier when I was programming Ruby with TextMate team. And I built a bundle just to make my life easier
when I was programming Ruby with TextMate.
And I released it for a while just on my blog,
and people downloaded it from there.
And then eventually Alan approached me and said,
let's just take this and make it the Ruby bundle
and replace what we have.
And I've maintained that part ever since.
And then after I wrote the Best of Ruby quiz for the primary programmers,
they were asking me, what are the things you're interested in?
What would you like to talk about?
And I said, well, I'm pretty into TextMate and stuff.
I'd love to write a book about that.
And so they said, let's do it.
So we did, and that's how I've been involved in the TextMate.
It's an awesome, awesome book, and if you're in TextMate regularly, I highly recommend that you check it out.
So I guess when you started the bundle, you were maintaining that in Subversion?
Yeah, that's right.
Yeah, way back.
Actually, TextMate until very recently was still Subversion managed And we've wanted to go to Git for a long time,
but there are actually a couple of things in Git
that don't mesh super well with how we do some things in TextMate.
So we had some stumbling blocks there
that kind of held us back for a little while.
But we had wanted to do it for a long time,
and now most of the bundles are now hosted on GitHub.
Can you mention any resources for, like, maybe a bundle developer for TextMate? Just any good resources besides, like, say of the bundles are now hosted on GitHub. Can you mention any resources for maybe a bundle developer for TextMate?
Just any good resources besides, say, the wiki?
Yeah, if you're building bundles.
So in my book, I do actually go through and show how to build a bundle.
In fact, I literally built one that didn't exist when I was writing the book, and now
that's one of the bundles we ship with TextMate.
So I definitely tried to put everything I knew about it then,
and I talked to all the members of the team back then to say,
what's the best practices for doing variables?
And that was how I showed off variables and stuff.
So that is one of the most complete sections of documentation.
But you mentioned the wiki, and it does have a lot of information,
including some best practices and stuff that we try to follow.
So that's a pretty good place.
The other thing I would tell you if you're doing anything with TextMate
is go to the IRC channel.
There are people always there involved, and they're very helpful.
They'll tell you things.
They'll work with you on code.
You can post stuff.
They'll give you feedback, and it's hard to beat that.
I actually, I'm not much of a developer,
but I do some maintaining of the SAS bundle
as well as the Haml bundle for TextMate.
And one thing I found myself wanting to do
was go into actual TextMate and write some code versus use that GUI bundle editor.
Is that a normal thing?
Absolutely, and you can certainly do it.
You can open the bundles.
So TextMate just stores files on the disk in XML,
so you can definitely edit those for some things.
But if you're talking about like writing bundle code and stuff,
when you install TextMate, if you go into the,
I think it's the bundles menu and you go down to like TextMate or something,
there's a install edit in TextMate.
There's a command called edit in TextMate.
And if you get it to install that, it'll put a thing in your edit menu,
a choice called edit in TextMate. And so like if you're writing to install that, it'll put a thing in your edit menu, a choice called edit and textmate.
And so like if you're writing a mail in mail, then you can go to edit and textmate and pick that.
One of the great unknown secrets is it works in TextMate's bundle editor.
So you can open the bundle editor to edit in TextMate and it'll pop it into the TextMate.
You edit and save, close, and it goes back to Bundle Editor.
Very nice.
You mentioned the IRC channel. Is that just hash TextMate, you edit and save, close, and it goes back to PundleLayer. Very nice. You mentioned the IRC channel.
Is that just hash TextMate?
Actually, it's hash hash TextMate.
It's an old IRC rule because it's not – yeah, I'm not 100% sure on that.
We'd have to look it up in Freenode.
But it's a policy due to – oh, TextMate's not free software. it's a it's a policy due to oh textmates not free software that's what it
is it's uh because textmate is uh only i mean the bundles are all open source and stuff but the
program itself is uh closed source and because of that it has to have two half pounds in front of
it we've gotten away with the single hash on the changelog on our c channel i'm not sure if we
qualify or not any uh inside information on when we might see Texmate 2.0?
Everybody asks me that.
I don't know.
I know they are working really hard on it.
It's Alan and Searing Lash, I think is his name.
But they are working very hard on it.
They're making a lot of great progress.
I think it's going to be amazing.
So I hope soon.
We're getting dangerously close to Duke Nukem forever territory here.
It's been made before, definitely, the comparison.
So let's go back to Ruby for a moment.
Faster CSV is one of your gems.
So what's the breakdown?
How much do you spend writing Ruby applications
and how much of it's web applications using Ruby?
Well, that is my day job.
So I work all day, every day,
building applications with Rails, mostly.
Some with Sinatra.
But I looked recently, I actually sat down and counted,
and I've actually worked on over 30 shipping rails applications now so
that's definitely what I spend most of my time doing uh like I say we do have some Sinatra but
I'm kind of one of the people at work they just give weird projects too so there will be
entire weeks when I don't write any like web application code instead I'm writing some crazy
system that runs on one of our servers or
whatever. So I love that about my job. I get to do different things all the time. And it's,
you know, even if I'm doing something boring, I just I don't worry about it because I know next
week I'll be doing something totally different, you know, so. What excites you the most about
Rails 3? About Rails 3? Wow, that's a good question. There's a lot of exciting stuff in Rails 3.
I think I'm really excited about how much they've embraced Rack and gone down that road.
So now we can use just that awesome ecosystem of tools and how you can just take a Sinatra application and shove it in there and route straight to it or things like that. I also think the new query engine they put in there
is really cool for ActiveRecord.
So I think those are probably two of my,
the things that have me pretty excited about it.
I've actually tried to play with it a little bit,
but I was a little early
and there were quite a few pain points
when I pulled it down and started messing with it.
So it wasn't as much fun,
but I know they're trying to work those out. So it wasn't as much fun, but I know
they're trying to work those out. So sometime in the future, we plan to have Yehuda on the podcast
to talk about Rails 3, but let's just forecast he's going to be on soon. If there's any questions
you have for Yehuda, what would it be? Maybe jQuery questions.
Maybe jQuery questions. I love jQuery. I use that all the time. I see you heard it Lone Star last year about modules and basically
explaining Ruby's method lookup system. And he said that he came up to me after that talk and
he said, basically, I had just described the Rails 3 development process, that that's what they had
figured out how all that worked. And now they were going back through and removing things like
alias method chain so they could switch and just use Ruby's natural method lookout system, which I thought was really cool that they've done, you know, really embrace
more Ruby with Rails 3, and I thought that was neat.
And when you say Lone Star, of course you're talking about our awesome Texas Ruby Conference,
Lone Star RubyConf, in August of every year.
No better time to visit Austin than 105 degree heat, right?
But you're launching your own conference up in
Oklahoma City, Red Dirt RubyConf. Talk a little bit about that. That's right. So yeah, we're
building a Ruby Conference. This year turned out to be a kind of a low conference year for me. I
did a bunch last year, including Japan. And this year, I couldn't do as many. My wife's having a baby and we didn't want to travel
as much so we were hanging out here and I said well you know if I can't go to a Ruby conference
I guess I'll just have to build one and so we got together with a bunch of crazy guys that
helped run the Coco here, Derek Parkhurst and then Grant Schofield is a regular of our community and one of the founding
members of OKRB our local Ruby users group and then Dana has been helping me too with the
conference so we all just kind of threw in together and said let's try to build a Ruby
conference and let's build the conference we've always wanted to attend and that's exactly what
we sat down and did.
Single track?
Single track, yes.
One track.
We thought long and hard about that,
but we feel like the talks are always better on the single track.
So we were like, let's do single track, one day event, but let's figure out how we can maximize the amount of material
that we could cram into it.
So we totally redesigned the program.
Single track, but multiple areas of focus.
And I know SQL's big this year.
Talk a little bit about how you went into that decision process
and some of the talks that you're looking forward to.
So it came down to, like I said, we wanted to figure out
how could we maximize the amount of content we could get in one day
with a single track conference.
And so we decided, well, if we
could put it in sessions, if we could divide it up into topics and we could have people talk on
topics, then we could have introductory speeches for those sections. But then we could have shorter
focus talks that just did one simple slice of that section. And then also the Q&A, which actually turns out to be a pretty big time
sink, we could put that at the end with a panel of speakers. So it basically removes that burden
from the speakers in planning their speeches and stuff. And that way we can, you know,
maximize our usage of the time. So we pre-selected topics that were interesting to us. And I was on the team, so NoSQL was interesting
to me, and it made the cut. And actually, it was pretty funny because I fought pretty hard for it
to get it on there because, you know, it's not really a Ruby thing. And I wanted to have NoSQL
in the conference, and I thought it was important, and I really tried to make that happen. And then
like a week after we had planned that,
LA RubyConf, I think, announced their lineup.
And one of the reasons we had done NoSQL is we had seen it in so many places,
and it was really big.
And then LA RubyConf announced their lineup,
and there was no NoSQL in the program.
So all the other organizers were looking at me like,
yeah, that's really big, James, good job.
But I think we've had a lot of interest in it, and so I think I'm vindicated now.
Not long ago, you wrote a series of articles on Redis, and that's a data store, right?
Yep.
That's it.
I'm the lack of technical guy on the side of the podcast, but I actually delved into
a couple of your articles,
and I like your writing style and your blog,
but what turns you on about NoSQL and this type of data stores?
To me, NoSQL is like one of the super exciting things to me in our world right now.
Not so much just because, I mean, well, we get great new toys to play with, and what geek doesn't like that?
Also because it's kind of encouraging us to take a step back and just look at data a different way.
We've gotten so used to just, oh, cram it all in a MySQL database,
and it'll sort itself out.
But this is like, you know, this particular solution isn't as cool as a MySQL database,
but it totally destroys it for this one use case, you know, or whatever.
And it kind of gets us to take a step back and think about the data we have
and how we need to look at it and stuff.
And I think that's exciting and cool.
But I'm mostly a back-end programmer, so I enjoy that kind of stuff a lot.
But, yeah, so I really like how it encourages
us to try new things, and Redis is
a great example because it
has sets. It's basically
memcache on steroids with
sets and lists and things like that, so
you can do all the great things you can do
with memcache and then more because you can
do these kind of pseudo-queries using
set intersection and stuff like that.
Yeah, I'd love to see the panel that we had from last episode,
the 018, the SmackDown expanded to include other data stores like Redis and
someone that can actually speak to Mongo a little better than me.
And maybe we can put that together at RedDirt to,
to talk about some of those other, I guess,
platforms other than just the three. Yeah. 2. Yeah, NoSQL Smackdown 2, that's right.
But switching gears for a moment to talk, I guess, more about the personal side of your
development, you, outside of this conference, also run OK.RB, which is the local Oklahoma
Ruby group, right?
Right, yep.
So how did that come about, and what words of advice would you have for other folks that
may be wanting to start a Ruby group in their area?
Well, OKRB was formed in the most logical place, which was New York City.
So actually, it was totally hilarious.
I'd been thinking about putting a Ruby group together in Oklahoma for a while, and I talked to a few of my buddies about doing it, including Greg Brown, who does the Prawn Jam
and various other projects.
But I talked to him about it.
And then Grant Schofield is another local,
and he had also thought about doing a Ruby Group.
So he went to New York for some business thing, I think,
and he decided to drop in on a New York Ruby Group meeting where he met Greg Brown.
And so they were sitting around talking. He's like, yeah, I've been thinking of putting one
together in Oklahoma. Greg's all, you got to talk to James. He's been thinking about that. And
so Greg put the two of us in touch and that's how OKRB got formed.
That's awesome. That's awesome. You guys meet here at the OKC Coco, right?
Right. Actually, we just moved here, our last meeting, we were always meeting up in Edmond
because that's where I live. And I got plenty of flack for the 20 minute drive the OKC people have
to make all the time. So now I'm the guy that makes the 20 minute drive to come down here to
OKC. But it really has been wonderful. You know, Coco is kind of our geek headquarters, and just being here in the very first meeting, our membership basically tripled. So have a great burger at Irma's. Cool place. They're on Twitter, by the way. We need to
post a photo of the sign we took in the window. But you made the comment that you can't believe
that you actually get paid to do what you're truly passionate about. And I think we're probably big
on the campuses based on people that follow us on Twitter and add us. Makes me feel old that these
guys are still in school. But what words of advice would you have for the guy on campus or the gal on campus that is, you know, slinging code and is looking at
Ruby or what other language as far as following your passions? I would say totally do it no matter
what, just do what you're passionate about. And it just sorts itself out. Like I said, I, I was
playing with Ruby as a side project and just for fun because I enjoyed it and I thought the language was so cool.
And what was really great about Ruby back then is there was nobody in the language.
So literally we all talked on this one mailing list and I traded emails with people like Dave Thomas and Jim Wyrick every day, you know, and that was just amazing to me.
And I was all doing it for fun. And then Rails was released. And suddenly, everybody needed Rails
developers immediately, which I knew nothing about Rails, but I knew Ruby, you know, so same thing,
you know, close enough. And, and so suddenly, I had a skill that was immensely valuable. I quit my job and came to work building Rails apps.
I've done that ever since.
They literally pay me to play with my favorite toy all day long.
That's awesome.
If you can, make it out to Oklahoma City to catch Red Dirt RubyConf.
It's going to be a good one.
If you've never seen James speak, it's something to behold.
I remember Adam and I on the drive up were talking about the Heroes talk a couple years ago at Red Dirt and then the Battlestar Galactica.
That's what I said.
Red Dirt.
Red Dirt.
Sorry, at Lone Star.
And then Battlestar Galactica next year, and then last year it was your vacation photo.
So I'm trying to see how you top the voters of Japan.
Any idea for your talk this year?
You got it in your head?
No, I'm actually not
going to give speech no way for uh on the conference itself but i am going to do a uh
three-hour training the next day so with glenn vanderberg who's like another one of my heroes so
that's the awesome thing about red dirt they told me go get everybody you would want to hang out
with and so i went to all my heroes and and they all said yes, which is too cool.
That's why they're my heroes.
That's awesome.
So Glenn and I will do a training the second day, so I'll try to be entertaining.
What's the topic?
The topic is the Ruby your mother warned you about.
We're going to look at bad Ruby and ways to make it better and what we can learn from that.
So every time we have someone on the podcast, we always want to ask them what's
cool in the open source world that you're into.
So what's on your radar?
What's something that you're just dying to play with?
That I'm dying to play with?
TextMate 2.0.
I'm definitely dying to play with that.
Well, that's not open source.
Oh, yeah, you're right.
Sorry.
I spend all my time writing on the bundles of TextMate, which are open source.
But you're right.
The application itself is not a good point.
But my favorite thing to play with has definitely lately been NoSQL databases.
I love Redis, Tokyo Cabinet especially, which I've been building a mixer for that, a wrapper library.
So I love just the NoSQL databases.
That's my favorite thing to play with lately.
You've got to keep the streak alive.
What about Node.js?
Node.js, I knew you were going to ask that.
And I'm like one of the few people in the world
that hasn't played with Node.js yet.
So I feel really ashamed, and I'm going to go now
and go play with Node.js so that I feel better.
Great. Well, thanks for your time.
I can't wait to the event tonight and then also the conference coming up in May.
Thanks for having me.
Thank you for listening to this edition of The Change Log.
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 Changelog. As if no passion show was mine alone.
Open, I'm open.
All roads to drive.
Bring it back, bring it back to open.
Open, I'm open. Bring it back to Auburn
Auburn
For us to try
Bring it back