Archive for the ‘ruby and rails’ Category

Rails Underground Recap

Monday, July 27th, 2009

Rails Underground logo

The Conference

I just got back from London, where I spoke at Rails Underground. Like so many others, I’m really enjoying attending regional conferences these days - there’s an energy and an atmosphere that’s unmatched at larger events (which, granted, have their own benefits), and I often get to see speakers and talks that I haven’t encountered before. Some of the new (to me) standouts this time were Joseph Wilk on Cucumber and Elise Huard on RFID and other practical technologies; in addition, the known heavy-hitters (Charlie Nutter, Jim Weirich, and Yehuda Katz, for instance) did their usual bang-up jobs. I hear that Dr Nic’s blue-ridge presentation went very well, too, but I wasn’t able to attend as we were scheduled against each other.

My talk didn’t go as well in London as it did at Railsconf, and I’m interested to see if I can figure out what exactly changed. Luckily, all the sessions were filmed, so (as much as I hate watching myself), I’m hoping to be able to glean some lessons for future presentations from it.

The People

Of course, many (most?) people enjoy conferences more for the people they meet and chat with more than the sessions themselves, and I’m happy to report that I had a great time talking, eating, and hanging out with friends both old and new (dinner with Alan, Paul, Jim, and >Duncan in particular was a treat).

The City

London itself was very enjoyable, though the weather was somewhat inconsistent - it’d go from sunny and warm to torrential downpour with little warning in the afternoons, and I rarely found myself dressed properly for all the weather I’d encounter in a walk. I didn’t get to see as much of the city as I’dve liked to, due to some lingering illness from before the trip and an unfortunate scheduling issue with the hotel, but I did enjoy Regent’s Park and the British Museum. I guess I’ll just have to go back to see the rest… and to eat a few more chocolate bars. It’s amazing how many of the smaller brands are still in the market there, as opposed to the state of things here in the US.

Inspiration

If I could figure out how to bottle and sell the inspiration that a good conference breeds in its attendees, I’d be a millionaire. I was terrifically motivated by the work I saw and heard about this last weekend, and I’ll be spending a good portion of my free time hacking and writing away at a couple of projects that were reinvigorated by this particular conference. All in all, I couldn’t ask for anything more. Thanks to Mark Coleman for organizing everything, and I look forward to seeing how it grows in the years to come!

RubyNation: Day One

Friday, June 12th, 2009

This’ll be a bit shorter than some of my previous conference wrapups — I’m pretty tired at the moment, but I wanted to get down some thoughts relatively soon. I thought the first day of RubyNation went very well. I saw some excellent presentations (incuding one by my co-worker Tony), had a lot of fun catching up with the rest of the Viget development staff (since we’re all here together), saw some old friends, and was finally able to give my talk early in a conference (as opposed to my recent trend of speaking on the last day).

This was the first time I’ve given this particular talk, “Comics” Is Hard: Domain Modeling Challenges, and like all first-time talks I was a bit anxious about it. Luckily, a large portion of it consists of me expounding upon the insanity of the comic book industry, which I cand talk about for hours if need be. Overall, I think the talk went pretty well, and I’m very excited to give it again (in London and Chicago, at least) after I have the chance to revise a few aspects of it (particularly, tweaking the balance between the problem and solution sections). My one real regret is that taking questions of Twitter, which worked so well at Railsconf, utterly failed here due to some difficulties with the conference wireless. By the way - if you saw the talk, please rate it on SpeakerRate

It’s also very nice to be back in Reston, at the Town Center, I haven’t been by here for at least a couple of years, and after having lived half a mile away for several years it’s fascinating to see how things have changed.

Railsconf 2009

Sunday, May 10th, 2009

After six hours in the Las Vegas airport, five on the flight to Atlanta, seven driving back home to Durham, and one and a half spent mowing our lawn (which had grown to wildflower-meadow heights over the past week — sorry, HOA!), I’m finally able to relax a bit and reflect on this past week’s Railsconf.

People

For this year’s conference, I adopted a different strategy than my normal one — I tried to meet and talk with as many people as I could, and as a result I think I enjoyed this year more than I have the past two. An incomplete list of the people I talked with, including old friends and new: akitaonrails, bdainton, bigfleet, bitsweat, blowmage, bphogan, bryanl, cdwarren, chacon, chadfowler, compay, cpytel, cselmer, danabrit, dastels, david_a_black, davidcjames, ddollar, desi, dpickett, egspoony, evanphx, fkchang2000, greggpollack, jamesgolick, jasonrudolph, jedschneider, jeffrafter, jimweirich, joefiorini, jondahl, jseifer, karnowski, kblake, keavy, kellyjeanne, maddox, maraby, matthewcarriere, mbleigh, mhartl, moonshark, msshushu, noelrap, nzkoz, obie, qrush, rbates, reinh, rich_kilmer, robertdempsey, sarahmei, seanhussey, seebq, solaredge, stevesanderson, subelsky, therealadam, tobi, wbruce, wifelette, xymbol, zapnap. (If we chatted and you’re not on the list, feel free to leave a comment! I didn’t get twitter names for everyone I talked to)

I talked with a number of people about Developer Day, and found a few more cities to add to the list of potential future Days, so be sure to keep an eye out for one near you.

Sessions and Keynotes

Most of the sessions I attended went very well. Disappointingly, however, some of those that I was most excited for (the one on mountable apps in Rails 3, for instance) just weren’t what I’d hoped. As for the keynotes:

  • DHH’s overview of Rails 3 left me with a lot of excitement, as well as some questions (particularly around the unobtrusive JavaScript support).
  • I’ll have a post in the next few days on the Tim Ferriss debacle.
  • Chris Wanstrath’s essay was my favorite presentation of the conference.
  • I really enjoyed Uncle Bob (though to be honest that was entirely due to his energetic presentation style, which overwhelmed the message for me).
  • The core panel went fine, but didn’t bear many insights or surprises.

My Sessions

As I mentioned in my last post, I was responsible for or a participant in three sessions this year. The first, the Teaching Rails Birds-of-a-Feather session, went very well — we had somewhere around thirty attendees (I’m terrible at estimation), and a lot of great ideas and experiences were discussed. It sounds like people are independently hitting on the same ideas, and the BoF was a good chance to meet up and discuss them. (By the way, attendees — don’t forget to the #teachingrails tag on things you do going forward!)

I originally thought the Rails Rumble panel went well, but it’s not doing so well in the attendee evaluations. From my experience watching panels, I think it’s probably the most difficult format to get a lot out of, as there are just too many variables to track. I had a lot of fun in the various talks we did to prepare for it, though.

Finally, my last session on Rack support (why am I always scheduled for the last day?!?) was extremely well-received. I’m pretty sure that I made more last-minute changes to this than to anything I’ve done before, since Rack in Rails is still changing — I was able to implement an example middleware on Tuesday or Wednesday that I just couldn’t on the previous Thursday, for instance — but by the time Thursday morning rolled around I was good to go, and the audience responded very positively. Plus, I got to draw attention to Doug Avery’s design talent by including the Bowling Thunder logo on one of my slides (and check out the Reddit item that the slide spawned!).

Oh, and if you attended one of these sessions, I’d love it if you could rate me over at SpeakerRate. Thanks!

Vegas

I never really understood the outrage over the move from Portland to Las Vegas, and after attending I’m even more mystified. Like most of the attendees, I go to Railsconf for the conference, not for the city. I left the conference hotel to see Penn & Teller on Sunday, dinner at an Ethiopian restaurant on Wednesday, and Star Trek on Thursday, and I didn’t gamble at all. I’m guessing the conference will be elsewhere next year, but if the quality is the same I don’t know that I’ll particularly care about the city.

Celebrities!

If you followed the Railsconf Twitter stream at all, you know that Billy Mays was often seen at the blackjack tables in the Hilton, and as far as I could tell, completely hammered. I saw him all the freaking time, and the one time I turned on the TV in my room, his show on the Discovery Channel was on. It was a little surreal.

I’m also 99.5% sure that I saw Leslie Segrete (formely on the TLC show While You Were Out) heading to the pool on Monday, and I wish I’d said hello and found out for sure. Looks like the National Hardware Show has more TV star power than the Rails community — who knew?

Inspiration

One of the main benefits I get from attending a conference is inspiration, and this was no exception. Those six hours in the airport? A lot of that time was spent hacking, as was part of the flight to Atlanta. I’m extremely motivated to work on several projects now, and I can’t wait to see everything else that was spurred on by the conference. Between that and all the great connections I was able to make, I’m happy to call Railsconf 2009 a huge success.

Ben Goes to Railsconf

Thursday, April 30th, 2009

Las Vegas, get ready! After a brief detour to Atlanta to drop off Lacie and the baby, I’ll be flying to Vegas on Sunday for a week of Railsconf. I’m particularly looking forward to reconnecting with a lot of the people I don’t get to sit down with often. As it turns out, I’m also on the hook for several sessions:

  • Monday at 8:30pm, I’m moderating a BoF on “Teaching Rails,” which grew out of a discussion I had with Brian Hogan on IRC. We think there’s a real lack of focus on the experience of people new to Rails — there’s a lot of information scattered around, but there’s no authoritative way to bring people into the community.
  • Wednesday at 4:25pm, I’m participating in a panel discussion called “Starting Up Fast: Lessons from the Rails Rumble.” Nick Plante set this up, and got a number of the winners from the past two years. It should be fun, and I’m excited to hear about how the non-solo teams worked. Oh, and if you have a question for the panel you can submit it beforehand.
  • Thursday at 10:45am, I’m giving a session entitled “And the Greatest of These Is … Rack Support.” As big as the announcement of the Merb merger was, I think the biggest news in Rails over the past year was the adoption of Rack, and in this session I’ll explain why.

So it looks like I’ll be pretty busy, but I’m always eager to meet new Rubyists — if you see me in the halls, say hello! And if you’re on Twitter, take a look at Railsconf Tweetups, which looks to be a cool way to see who’s going to what.

Progressive Caching

Wednesday, April 15th, 2009

So I’ve been giving a new talk lately, titled Page Caching Resurrected. I brought it out for the first time at Developer Day in Durham, and just last night gave it again at CVREG in Richmond, VA (I was also supposed to give it at Locos por Rails, but ran into a buzzsaw of weather-related delays and cancellations).

Page caching is the most efficient of the markup caching methods that Rails provides, but it suffers from two major problems. First, page cached content is saved to the filesystem, where it is then publicly accessible - regardless of the protections originally placed around that content. Second, page caching is appropriate only for content that is relatively static - things that change quickly, or are relevant to particular users.

The talk I’ve been presenting introduces a technique for bypassing these problems. At the moment, I’m calling it “progressive caching,” though I’m open to alternative suggestions. Basically, the idea is that many pages in an application are mostly cacheable, with only a few distinct regions that change frequently or depend on the identity of the logged-in user. On my comic book site, for instance, the release list has only a few pieces of content that depend on the user:

My Pull List

Progressive caching this content would involve page caching the release list, and then firing off an AJAX request on the page load that, if a user is logged in, returns the appropriate data to fill in those chunks with client-side JavaScript.

This technique grows more powerful when it is paired with Rails Metal, which allows you to bypass some of the overhead of the Rails stack for specific requests. The sample app that I discuss in the talk, for instance, shows the following results:

Benchmarks

If you can’t read the numbers, that’s 617ms for a page running on my local machine, pulling back 150 or so covers and adding a tag to 45 of them based on the logged in user vs. 135ms for the same content with progressive caching. In fact, I was able to get the latter version down to 66ms, with some further optimizations.

All in all, progressive caching is a strategy that I think deserves a close look. I’ve worked on a number of applications that could benefit from it, and I imagine others have, as well.

Note: I’ve written a more in-depth exploration of the technique (with actual code!) on Viget Labs’ Extend blog.