Rich (,
Jim (, and I are
decompressing in the Austin airport, taking advantage of some Wi-fi access
and waiting for our flights. As I warned in a previous post, my posting
during the conference would require some very special planetary alignment.
It didn’t happen.

However, I was able to login to irc from Matz’s keynote to braindump
into the #ruby-lang channel (on about upcoming Ruby language
changes. I won’t go too much into detail here, but Horacio Lopez ( reformatted and posted it all on
the Wiki ( There
are some fairly major incompatabilities on the way, but overall
they’re going to make the language just that much better.

The conference, as usual, as a great experience. It’s great to get
together with that many smart and creative people all at once. This year,
we’ve done something I’ve been wanting to do since 2001: We
wrote code. Friday night, during the round table with Matz, David Black ( brought up the age-old
question of standardizing ruby package installation procedures. After the
round table, he, Rich, Jim, Paul (, and I spent the rest of the
weekend crash-coding in whatever free time we could find and creating that
standardized distribution system. It is based on an idea that was
introduced at the first Ruby Conference, and has also adopted that
idea’s name: RubyGems (

We must have been quite a spectacle to the hipsters in the hotel bar, with
our laptops and ad-hoc network. We coded long into the night. The end
result is that during today’s talks, Jim showed how you can create
working Rake (
tasks for creating and installing gems, and Rich actually installed
RubyJDWP as a gem "live on stage" for his RubyJDWP (
talk. We were also able to get remote installation and dependency
management working (though not perfectly) before we left, including a
"gem server" which you can use to serve ruby packages to others
who have the right client-side tools.

The Ruby community has been talking about this for years. It was nice to
just say, "Let’s do it now" while we had Matz and a
great core group of Ruby programmers handy to give us requirements, answer
questions, etc. For example, it was really nice when Paul and I had a
problem with Test::Unit to say, "Nathaniel, what does this message
mean?" (Nathaniel wrote Test::Unit).

The only regret I have about RubyConf this year is that it can’t be
what I do every day.

I’ll post some more details on the conference highlights after I get
some real rest (which unfortunately might not be until Wednesday or
Thursday). Excuse any typos and/or incoherencies until then. . . ;)

Update: Ryan Davis pointed out that I mispoke (I mentioned I was tired,
right?) when I said that Matz’s presentation was on future language
changes. He was really looking for feedback on a bunch of high level ideas.
It was more of a brainstorming session than a presentation. This is
important for two reasons. The first is that I don’t want to mislead
anyone into thinking that Matz’s presentation represented fully baked
ideas. The second, and more important, is just the very fact that Matz came
to the community and asked for help. That’s really great if ya ask