Yesterday I attended the
RubyEast conference at Penn State Great Valley. Aside from being difficult to get to without a car, I really enjoyed my time there and it's safe to say this is another example of why regional Ruby conferences rock.
As usual, I didn't take notes. Nevertheless, I'll happily throw out my hazy recollections for all to enjoy.
The conference was two tracks, which made this the first multi-track Ruby event I've attended / spoken at. Here's a list of the talks I attended:
- Hal Fulton - The Future Of Ruby (Keynote)
- Andrea O. K. Wright - High Art on Top of Low Level APIS: Building Games With Ruby
-
- Ruby Performance: Tips Tricks and Hacks
- Giles Bowkett - How to Kick Ass With irb
- David Black - Per Object Behavior In Ruby
Hal's talk was neat because it provided a nice little summary of where Ruby is headed, and probably exposed some of the less experienced Rubyists in the crowd to a lot of information that'd be tough to cobble together otherwise. It was principally non-technical, but it did leave lots of room for discussion. A decent dialog emerged towards the end about selector namespaces and what they might offer us. David Black mentioned the existing Ruby implementations that do similar stuff, though it seems like they never picked up steam. Still, hopefully these will exist by Ruby 2.0, because it'd be nice to have a little bit of a safer way to do core extensions.
Andrea's talk was interesting because it was truly about low level 2d and 3d gaming APIs, which I don't have a whole lot of experience with. It seems like a fun way to look into C extensions and things like that, and her examples were nifty because Ruby and Video Games clearly equals fun. Some of the frameworks, like Gosu and RubyGame, are surprisingly capable.
Ezra's talk was a good reminder that part of the reason Ruby is slow is because we make it that way. He covered basic benchmarking, but then mostly talked in the context of his project Merb, which is basically a super lightweight and quick web framework for Ruby. Practical examples always help, and I'm already thinking of applying some of his tips, tricks and hacks to Ruport, to see what we can squeeze out of it.
Giles talk was mostly just reading over his .irbrc config file, which seems much less exciting than it actually was. There were lots of fun hacks in there, some I knew about and had forgotten, and some entirely new to me. At the end, an attendee asked the question "Can I tell irb to open my editor, then execute the code and bring me back to the irb prompt?"
With a couple suggestions from others, and a lot of yelling across the crowd from me, he actually got a simple example of this up and running during his code. We've improved it some more, and it'll end up on his blog, but if he doesn't post it soon, I'll share what I have. We even added in error handling and are working on history support. It's a great hack :)
Finally, as usual, David Black made an old topic (for me) seem new again. The best thing I took away from this talk was a great quote about Ruby's object-oriented model: "Classes launch objects into Object Space", which really shows clearly that class definition is just the beginning of a Ruby object's life cycle. If he posts his slides, I'll update the above quote to be accurate to what he actually said, because I'm just paraphrasing :)
After the conference, it was beer, pizza, and several games of Werewolf. Apparently it's the new craze among all the 1337 Ruby H4x0rz. I suck at it, I never survived a game, usually getting whacked in the first round. Some say this may be due to my close likeness to werewolves, but I think they're just bastards.
This morning we got together to hack on a project for the hopefully benevolent effort that is Ruby For Change. I'll probably post more on this later, but for now, hope this informal, spotty commentary has been interesting!
UPDATE: Oh, also... Mike and I talked about Ruport, Beyond 1.0. You can
take a look at the slides, and please let us know what you thought if you were there.