If you want to see the wizard, go to Oz.

2010-04-21 14:50, written by Gregory Brown

Back in June of 2005, I booked a flight out to Oklahoma City, OK, but it might as well have been to Oz. I was off to see the wizard who had been teaching me black magic in both Perl and Ruby throughout my high school days.

James Edward Gray II and I had somehow convinced Ruby Central, Inc. that a web game framework was worth a Codefest grant, and we used the money as a chance to finally meet each other in person. At the time, we decided to build things from scratch, since Rails 0.12 didn’t quite have the features we needed :)

Not counting the friends I talked into studying programming here and there, this was my first time ever working side by side with another hacker. I didn’t know what to expect, but by the time I left, I couldn’t believe that what we had done was possible. Safe to say, JEG2 blew my mind, in the way that any good wizard can. Here’s what I wrote just after returning home in June 2005:


The last nine days were amazing. Exploited undocumented features of WEBRick.
Making use of circular logic flows, making code do things that it wasn’t built
to do. Pushing the limits, building truly clever tools and libraries that will
make people’s lives easier, and more fun.

I myself feel like I’m standing a little taller after all the hard work we
did. That was hacking in it’s purest nature, and though I don’t like to self
attribute that word, there is nothing else to describe it. Ideas flowed any
hour of the day, even in our dreams. No one tried to take charge, I didn’t get
mad when James replaced bits of my code with something better, and James
didn’t get mad when I questioned his logic and pushed him to raise the bar. In
the rare occasion that I proved James wrong on something, he’d just shrug his
shoulders, embrace The Right Way, and go with it.

We joked around a lot referring to certain programming practices as “The way
of life”. Though that is quite silly when it applies to 80 character linewrap
or a certain tab width, it was something that motivated us. We could look at
our code, and at a glance see if it was following “The way” or not. When it
wasn’t, we waited for something better to come along, and then we did what we
had to do to make it happen.

Now, I was just a kid at the time, but I knew something important had just happened. Most importantly I realized that the kind of interaction you can have over the internet, though amazing, pales in comparison to face-to-face interaction. Here’s what James had to say shortly after our first meeting:


“We’ve just completed nine solid days of development on Gambit. Now
that’s a “Codefest” alright! I thought I would share a little with
the curious about how I think it went…

Greg Brown flew out to my home in Oklahoma so we could work on
Gambit. It was nice to finally meet face-to-face. We’ve actually
programmed together on many projects these last couple of years, but
this was the first time we didn’t do it over the Internet. We’re
both grateful to the wonderful people at Ruby Central for giving us
that opportunity.

We’ve had practice, so we work pretty well together by now. Greg
would probably say that I’ve almost beat all his bad habits out of
him. ;) True or not, I know he’s always challenging me and pushing
me to new limits of what I can build. I think we both learned a lot
from working together on this project.

While there is a certain amount of altruism involved in mentoring a novice, it is an act that pays you back tenfold. Every concept that you can teach another person is one that you must master through and through, in ways that you’d never even scratch the surface of on your own.

Whether he realizes it or not, James revealed a secret to me during that hackfest, one that is to blame for all of my future successes in programming: Share your experiences and knowledge with others, and you win.

Fast forward to 2010, and obviously JEG2 and I have come a long way. We’ve both done talks throughout the US, and James even made it over to Japan last year. We’ve both published books on Ruby, and made more friends in the community than we ever imagined possible back in 2005. While part of me feels indebted to James still, I feel like I’ve paid it forward through my works. That made our mentorship role turn into a friendly rivalry, where we both keep pushing each other to get better at what we do, even if indirectly.

James had a big head start, so he normally beats me to the punch on things. Up until recently, I had only one thing under my belt that JEG2 didn’t: I had helped design and run a Ruby conference. Not one to be outdone, JEG2 has decided to level that playing field by running Red Dirt RubyConf.

Red Dirt RubyConf: Your ticket to Oz

If you like what I’ve been doing in Ruby, you now know that I owe it all to JEG2. Here’s the good news: He’s now inviting all of you to his neck of the woods to spend some time hacking, learning, and sharing. But you need to act fast, registration closes Friday, April 23!

Red Dirt RubyConf is a unique two day conference which blends training in with a uniquely themed single track session lineup. In it, you won’t just get to meet James, but also some other amazing Ruby people as well, including Dave Thomas and Jim Weirich.

The conference is run by James, his lovely wife Dana (who I could write a whole other post about), and some other great folks from the Oklahoma Ruby group. If you head out there, I can promise you that you’ll have an awesome time, learn a ton, and meet some amazing people.

Unfortunately, I won’t be able to attend, but I’ll sure be there in spirit. If you do make it there, tell James I said hi, and have a great time!

DISCLOSURE: I told James I’d be writing something to promote Red Dirt, but he didn’t ask me to do this, and he had no idea what I’d come up with. So I take 100% responsibility for the contents of this article.

blog comments powered by Disqus