RailsConf '07: Days 2 & 3

Day 2

Yesterday at RailsConf was mainly uneventful. Two good talks were the panel discussion on "The Business of Rails," and Ezra's deployment talk. The afternoon session with Nathaniel Talbott was underwhelming, mostly due to a Jeopardy-style format that didn't work for me. (It's important that Jeopardy questions have one and only one correct answer, and that the answer is objective fact. They didn't.) Judging from the earlier panel discussion, Nathaniel has a wealth of real-world information in this area. I like creative presentation formats, but this is one case where I think a traditional presentation would have delivered his message more effectively.

Day 3

Today's most interesting sessions were Josh Susser's talk on contributing to the Rails project and Jamis & Koz's discussion of "The Rails Way." The Right Way to do things in Rails seems to shift every 3-6 months -- so these efforts to educate are very valuable. But the talk from Twitter was not great, and the final session I chose on the internals of respond_to was dreadful enough that I left it for the spontaneous open mic demo that sprouted up in the vacuum of an AWOL presenter. It was chaotic, but entertaining nonetheless. And there were a few projects I had to note down for later. PragDave closed up the conference with a clear message: do not be seduced by snake oil; do not pray to false gods; do not imitate those you perceive as more wise than yourself unless you do, indeed, understand why you're doing it. In other words: Question Authority. Good advice.

More Better

Now that the conference is over I can start thinking about what I can take away. I came to Railsconf with an understanding of the philosophy and tech at the heart of both Ruby and Rails. I leave Railsconf with a far better understanding of who Rails is: behind the websites, books, documentation and blogs I read every day, there is a community of people as diverse as a can of mixed nuts (and perhaps there are other similarities?). In this community there is lots of youth -- and the boastful arrogance, sense of immortality and naivity that comes with it. There is a smaller population of time-hardened corporate IT types -- and the reluctance to the unproven that comes with that. There are hipster designers and "cool" developers who've never worked for anyone but #1 and who you might mistake for Jack Kerouac. Others appear inspired by Steve Wozniak's plentiful facial hair. Permeating the whole community, and perhaps a driving force behind it, there is a sense of celebrated rebelliousness, of gleeful insubordination. Perhaps it is this feature of the community -- what my high school advisor identified as "nefarious collusion" -- that many of us find so appealing.

I also return home with the realization that many developers who have attained Rails celebrity status are just regular work-a-day people like the rest of us. Inspiring, sure. But some are clumsy; others are socially awkward. Most are geeks, of course. They fumble with stupid projection problems and are a bit unpolished when it comes to presenting. It's easy to build a mental image of some infallible, superhuman genius as we follow their RSS feeds. Years of deliberate marketing can do that, and it's not a bad thing. What we should learn from this (and it was repeated many times by speakers themselves) is that there are dozens -- if not hundreds -- of DHHs, Jamis Bucks, Amy Hoys and Geoffrey Grossenbachs in the crowd with the ability to rise to that level. They just haven't done all it takes to get there yet.

I am carrying home renewed inspiration, but more importantly, more confidence in the industry that has blossomed around Rails. Is there really work to be had? Is the development profession still alive onshore, here in the U.S.? Is it possible to make a living -- exceeding a well-paid corporate salary -- in Rails consulting? I think we all know the answers to these questions now.

RailsConf '07: Day 1

Back from the first real day of RailsConf after yesterday's tutorial day.

DHH's talk mainly covered Rails 2.0. I like the way he presents because he goes fast. No dilly-dallying. If you can't keep up, you probably wouldn't find it interesting anyway.

Best session of the day was Dan Benjamin's story about his experience building a successful community-driven web property, Corkd. I've followed the Corkd story from the day it launched (to recently when he sold it). Dan is a fantastic speaker: extremely well prepared and covered ground that I was eager to hear about. Something tells me he has a prosperous career as a conference speaker ahead of him.

The clear highlight of the day was Ze Frank's keynote in the evening... he killed. This was a great choice by the organizers. I watched a lot of Ze over his year-long The Show. And I'm sure I managed to weird him out with the number of pictures I was taking -- I took the opportunity to use the evening keynotes as a photography project. It was great practice and I wound up with some nice pictures. When taking shots of speakers like this, about 80% end up with goofy faces, lazy eyes, blurry hands, etc., so you have to take a whole bunch just to get a few good ones. I'll try to get those up on Flickr soon.

Today's random observations:

  • Many Portland residents use light rail like the environment depends on it or something.
  • All clinically insane Portland residents use light rail, and they were all on my train this afternoon.
  • "Portland has more hybrids per household than any other US city" -- The Oregonian
  • Best beers I've had (in order): Bridgeport IPA, Deschutes Cascade Ale, Deschutes Obsidian Stout.

RailsConf '07: Day 0

I managed to snag a secondhand ticket on last week and drove to Portland yesterday for RailsConf '07. Today was "tutorial day." As Jason Hoffman noted in the first half of the day, "tutorial day" is a bit of a misnomer; it's simply a day with longer sessions.

Speaking of misnomers, there wasn't enough thought put into the title of Jason's session Scaling a Rails Application from the Bottom Up. Apparently I wasn't the only one surprised to be listening to a survey of IT /datacenter infrastructure best practices -- good advice, but I think it would have been more relevant to more of the audience had he told the story of growth, explaining what his team did at each breaking point to address the problem either within the application or through infrastructure improvements. I still enjoyed it because I'm a recovering IBM "systems analyst" and I dig ultrascalable architecture. Plus, Jason is a compelling speaker.

The afternoon session with Jamis Buck was closer to my expectations. Having used Capistrano for some sysadmin tasks some time ago, I was reminded just how endlessly useful a tool it is. Yes, there could have been more exploration behind the recipes, but considering the diversity of the audience, I think it stayed at the right level of detail. The only fault was Jamis' inexplicable disability when it came time to switch between presentation and demo screens. I'm not psychic, but I think I felt the vibes of everyone in the room mentally screaming "APPLE-TAB!! Goddammit!!"

Some other observations about the day:

  • Oregonians actually merge out of a merge lane well before the lane ends (we Californians know you're suposed to drive as fast as you can to the very end of the lane). I drove today but tomorrow I'm taking light rail.
  • Portland traffic sucks as much as Bay Area traffic.
  • Oregonians take environmental stuff seriously: the headline of today's paper: Paper or Plastic? It was an exposition of the benefits and drawbacks of each. Note to self: put newspaper in recycle bin.
  • I recognized some guy in the RailsConf crowd this morning, then I realized he was the Rails Guy. Sorry dude, you're now a minor celebrity in this world and you will have people staring at you at these events.
  • My 17" Powerbook is not a "laptop" by modern standards. I can, however, grill a mean omelette on its underside.
  • At 30, I bet I'm at least a standard deviation above the mean age. Dammit.
  • My choice of wine this evening was less than successful. It was so nasty that I abandoned the bottle. Wilamette Valley Pinot Noir recommendations, anyone? Might have to hit up the wine room at OCC tomorrow.
  • My beer selection this evening was much more successful.

    Re-entry

    I used to be an above-average programmer. I started coding BBS utilities in Pascal when I was 13, and eventually got to be pretty proficient with algorithms and problem solving. I even won a team programming contest back in high school. By the time I graduated from college I was proficient in C and C++, Java and Perl. I was confident in my abilities, and even today I don't think I was unjustified in my optimism.

    When I graduated and moved to Sunnyvale in 2000, I took a Technical Support job at Ariba. I was under the impression that the job would eventually allow for a transition into development after some time. But let's just say my timing was sub-optimal: the stock market, the job market, and the economy began swirling in the toilet the month I started, and I spent the next 4 years on the front lines supporting Ariba's procurement network and applications. I worked with a great bunch of people, learned a lot and had some limited opportunities to write code, but I couldn't help but feel my skills slipping away.

    In 2004 I took another job at another company, but it didn't deliver the development role it claimed to be offering. Instead, it was heavy on FTP but light on Java; it demanded unreasonable personal sacrifice as the status quo. While it is true I've learned quite a bit about Enterprise IT, system administration, project management and sales, deep down I know that tailing logs and copying files late on a Friday night can't be my raison d'tre.

    So here I sit, many years since I've written code seriously; years after I accepted my fate and put my programming hat in mothballs. Yet the curious, creative fire still burns. I still read development blogs and books; I still learn about new frameworks. Either I am in denial, or -- maybe -- I could relearn what I've forgotten? Train myself anew? Become the headstrong, independent and infinitely capable developer I thought I'd be?

    Can I reestablish proficiency as a coder? I'm betting the farm on it.

    One of these days

    One of these days I'm going to start a blog. It will be perfect.

    It'll be informative, thoughtful, witty, current; maybe a little snarky. It will have a hipster name and I'll post fun and artsy pictures to it. I'll contribute my own carefully considered commentary to the heated discussion du jour. It will be a place for me to wax philosophic about intellectual, political and technical matters that affect us all. It will be entertaining but also deep. I will have a hundred thousand readers.

    I will present useful, thorough tutorials for those eager to learn and post poignant stories about my life and my business. I'll share best practices, productivity tips and programming recipes. My posts will generate pages of real discussion and make people think. Did I say a hundred thousand readers? Make that a million.

    One of these days I'll start a blog with a glassy logo and a slick pro-designer color scheme. It will have cool web 2.0 features. I'll spend time each day writing articles and reviews of new technology, new companies and the Silicon Valley.

    Honest, one of these days I'm going to start a perfect blog. Or I could start something now: perhaps just a simple picture at the top; a sidebar that shows songs I've recently played in iTunes; and a page with a list of blogs that I read. And then I can just start posting. Whether anyone reads it or not. Yeah. I think I'll do that. Maybe I'll start Right Now.