« Powerset - Releases releases its Data Center Model | Main | Vivid on Black - Artshow »

Powerset - Interview with Tom Preston-Werner

spacer spacer In our latest installment of our interviews with internal folks at Powerset, Ryan Ferrier, our resident internal interview guru (and manager of human resources) sat down with coding phenom Tom Preston-Werner. 

Of course we have both his real picture (to the left) and his how he views himself (to the right.)

Tom is a leader in the Ruby programming community.  He’s best known for projects like Gravatar, Chronic, and most recently, god.

Founder of Cube6media design studio, Tom also happens to have pretty slick eye for web design.  Our discussion topics with Tom range from his music interests to metaphysical ponderings.  Tom is not normally a man of too many words, so to get a rare peek inside the head of this enigmatic developer, read on.

Rumor has it that you listen almost exclusively to techno music, is this
true?


My dream is to code in a large, white, egg-shaped room wherein a large,
omnidirectional speaker system is suspended at one locus, and an elaborate,
9 screen, multi-platform computing setup is suspended at the other locus. In
this dream, I am sitting comfortably at the computer locus while thundering
trance emanating from the opposite locus is parabolically focused upon my
exact location. Then I could get some *real* coding done.

Rumor also has it that when listening to said techno music, you get in a
trance-like state for hours on end and transform into a coding machine.
Could you describe this altered state of being for us?

Remember the guys from "The Matrix" that could look at those screens of
waterfalling green glyphs and see real world objects in them? It's nothing
like that. That's impossible and ridiculous. If you've ever sat zazen and
meditated on some ancient koans, that would be another good example of what
it's not like. It's also not like watching your dog eat peanut butter. I'd
keep going but it would take infinitely long to describe everything that
it's not, so I'll have to stop and leave you mystified by the enigma of it
all.

Do you have a favorite techno artist?


I have a 90 minute track from artist "nano42" that's killer. I tried to find
more of his stuff online but was stymied by 404s. It starts off with a
sample of what I imagine must have been the British radio version of "The
Hitchiker's Guide to the Galaxy," you know, the part where the ancient
computer is about to say what the answer to life, the universe, and
everything is? It's awesome. I'm listening to it right now.

You are an active contributor and all around high visibility guy in the Ruby
Community.  Tell us a little bit about the Ruby community, why it's such a
thriving community, and what about the language that is making it so wildly
popular?

The Ruby community is amazing. I've never been part of a group that is so
eager to help you learn their language. I think a lot of it comes from its
long standing status as the underdog. We're all rooting for Ruby because we
believe in it so much. It has personally brought me much more joy in coding
than I've ever had before. The syntax is beautiful, the libraries are some
of the best I've seen in any language, and its fully object oriented design
makes it extremely easy to extend in powerful and creative ways. When I'm
programming in Ruby, the language almost disappears into the background
allowing me to concentrate on the problem at hand. That's an incredible
thing.

Two of your most well known projects are Gravatar and Chronic.  Gravatar has
become almost ubiquitous among Ruby programmers.  Explain the function of
Gravatar and its value add? (Why did you develop Gravatar?)

Gravatar stands for Globally Recognized Avatar. It's a system that allows
you to associate a little picture or avatar with your email address.
Participating sites can then use your email address to securely look up your
gravatar and display it next to blog comments, forum posts, or other content
that you generate. The idea is that instead of having to implement a whole
avatar system, you let gravatar.com do it for you. Nobody likes maintaining
a separate avatar across dozens of services, so why not let the user do it
once and take it with them?

I built it to contribute back to the blogging community. It has since had
incredible growth and is in use by thousands of weblogs and forums
worldwide. It's just another way of giving back to the communities that have
given so much to me.

Now, for Chronic. First off, why the name?

Ah, etymology. One of my favorite disciplines! The colorful history of the
word "chronic" takes us through the rustic alleys of France where they use
the word "chronique" and eat bread that you could use as a hammer. The
French borrowed the word from the Latin "chronicus" which you can tell is a
cool word because it ends in "us". Tracing back further still we see the
Greek using "khronikos", probably to argue about important philosophical
matters. The root word of "khronikos" is, of course, "khronos" and...wait
for it...means "time". Chronic, for those wondering, is a natural language
date/time parsing library I wrote in Ruby.

Who are potential users of a library like this?

Anyone who's tired of selecting dates from lame drop-down menus and thinks
users of their product might be too. I built chronic so that people could
start thinking about user interfaces in a more natural manner. If I need to
schedule a dentists appointment, I'd rather type "wed 3pm" into a text field
than check to see what the date is on Wednesday and then select "July" and
"25" and "2007" and "3" and "00" and "pm" from six drop-downs. I've
personally used it in several websites and even in some command line tools
where a date needed to be specified as a text argument. I believe in the
power of natural language and I think chronic is a demonstration of that
power.

As a ruby programmer, what was initially attractive to you about Powerset?

A couple of fellow Ruby programmers that I knew worked here and I kept
hearing (or rather, not hearing) about the top secret projects they were
having a great time working on. Having recently put a lot of time into
chronic, I was very interested in natural language and how it can really
change the way you interact with computers. Internet search is still very
primitive when you compare it against the ideal. Last time I checked,
Captain Picard never had to type in keywords to perform a search about how
modified T-cells might cause reverse evolution.

What do you think about the marriage of Powerset and Ruby?

It's always the little guy that's brave enough to adopt new technologies to
gain an advantage over his competition. Look at David and Goliath. David was
clearly an early adopter of the slingshot technology while Goliath probably
scoffed at it because he thought it was a toy and couldn't possibly scale.
And what happened? Goliath got owned. For Powerset to be so passionate about
Ruby is amazing. It shows that we really believe in results and are willing
to defy common perceptions in order to get them.

Were you surprised that Powerset has embraced Ruby so readily?

Honestly, no. The minds that are capable of bringing Powerset into existence
are the exact same minds that understand what Ruby can do for them. One of
my favorite things about working at Powerset is that we cut through the BS
and just get things done. We're working on really hard problems and the last
thing we need is for a programming language to get in the way.

Are there any potential pitfalls in this scenario?

No language is the answer to every problem. Good coders know when a problem
is better solved in C or Java than in Ruby and isn't afraid to say so. We
can solve a lot of our problems with Ruby faster and better than we could in
other languages and so we do. When performance is extremely critical, you'll
find us using C or Java instead. The biggest potential pitfall about using
Ruby is that the rest of your coder friends start to get really jealous.

Tom, I hate to get metaphysical on you, but you're going to have to tell me
your thoughts on God.

Funny. Nodoby's ever made a joke like that before.

Really, for those who don't know talk a bit about god.

God is a process and task monitoring framework written in Ruby that we're
building here at Powerset to keep an eye on all our critical processes and
start or restart them when necessary. I wasn't satisfied with existing tools
such as monit and runit, and decided it was high time something decent was
made available. With god, your config files are written in Ruby (so you can
do looping and variable assignment) and you have the ability to write your
own custom conditions and behaviors should your application require it. Even
in its early stages, I'd much rather use it than the alternatives.

Now, is it true that you are planning on open sourcing this app?

It's already open source! You can find the documentation and installation
instructions at god.rubyforge.org. Source is available via git at
repo.or.cz/w/god.git. If you'd like to contribute, contact me and I'd
be happy to explain the roadmap and what you can do to help.

How did that feel? To be able to develop an app that's going to be an
incredibly powerful tool here at Powerset but as well open it up for use by
developers everywhere?

That's really my dream job. I've benefitted so much from open source that I
like to contribute back whenever possible. For Powerset to allow me to do
that with god is awesome and a big part of the reason why it's so great to
work here. Being a search company is about helping people on the internet.
We'd like to help the development community at the same time we help the
consumer community. God is just one piece of that very cool puzzle.

When you are in the zone you have such a laser focus, but you've got to let
your mind wander some time.  If you could look into the future, say 5 years
down the road, where would you want to be, what would you want to be doing,
and what would you have wanted to accomplish?

Remember that egg-shaped room I mentioned before? Just kidding. I'd like to
be hacking on cool libraries that others will enjoy. We'll have achieved our
initial goals at Powerset and be leaders in innovating the internet search
and other markets. Hell, I'll probably have a kid by then, and no doubt be
trying to teach him Ruby with those cool wooden alphabet blocks.

 

That's all for now. 

Posted by Steve Newcomb on August 16, 2007 09:32 AM | Permalink

TrackBack

TrackBack URL for this entry:
p10.hostingprod.com/@blognewcomb.com/blog-mt/mt-tb.fcgi/62

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)

gipoco.com is neither affiliated with the authors of this page nor responsible for its contents. This is a safe-cache copy of the original web site.