Pat has become a well known online author in the Ruby community with frequent book reviews, interviews and post on various useful topics. When he asked the community who we would like to see interviewed, I turned the tables on him.
You've become a well known blogger in the Ruby community. You're active in organizing the MountainWest RubyConf and have started or helped start multiple Ruby brigades, including Seattle.rb, as well as other programming user goups. What makes you stay so outwardly involved in the software development community?
Pat Long before I was involved in the Ruby community, I'd become involved in the Free Software community. Before that, I was involved in other groups that had cultures of community involvement. Joining a community and then working to improve it had become sort of second nature too me. (It's a case of enlightened self interest though, not altruism.)
Some people give back to the Ruby community by creating cool new libraries (or improving the existing ones). Others by taking new programmers under their wings and helping them develop Ruby skills. I don't really have the programming chops to do that, so I found a niche as a community hacker.
Beyond the general value I derive from a better, stronger, friendlier community, there are also some more specific benefits that accrue. Since I hang out on a bunch of .rb mailing lists, I hear about things that are happening. I've been invited to meet with groups in places I travel to. There's also a sort of vicarious sense of accomplishment when I see a group I've been involved with do something really cool.
You were one of the co-founders of the Seattle Ruby Brigade. What was it like when the group first started?
Pat Well, the skit that Aaron Patterson did in the Seattle.rb presentation at RubyConf last year wasn't completely accurate — it is pretty fun, and not too far off though.
When things actually started, it was Ryan Davis, Doug Beaver, and me. We met at a little cafe the first couple of times, then moved to Seattle Pacific University's library. I think that's where Eric came into the picture.
At first we did a lot of talking. We started hacking together on a Ruby mail application, but it went nowhere fast. I remember meetings where we talked about the ruby debugger, ten cool libraries, and this cool window manager someone was writing in Ruby. There's just an incredible amount of Ruby talent in Seattle.
Having RubyConf in Seattle as we were starting really gave us a jump start. That's where I met Phil Thomson and talked with him about getting the pdx.rb rolling. It also got me thinking about doing something locally. We tried it with 'Ruby in the Rainforest'. A local min-conference we held over on the Olympic Peninsula — I think we had 6 people there, but it was fun.
What did the Seattle.rb do right and what made it so successful?
Pat I think some of the biggest things that the Seattle.rb does right are: they meet regularly, even if not everyone can make it; they combine hacking, learning, and socializing; and they advertise heavily. When you combine these three factors, you find that the ruby community knows that there will be a meeting and that it's going to be a good time.
Of course, it doesn't hurt that they've had some brilliant hackers there over the years. I mean, who wouldn't want to get and hear Evan talk about rubinius, hack with Eric and Ryan, or just hang out with some of the smartest Rubyists anywhere.
What other Ruby groups have you helped start and how have they done?
Pat I've been involved to some degree or another with a lot of groups. Most of them have taken off and flourished and I no longer have any role with them other than hanging out on their mailing list and wishing I could make a meeting. The group I'm most involved with these days is the URUG (Utah Ruby Users Group). This is really an umbrella group and includes the the Logan.rb, the Layton.rb, the SLC.rb, and the UtahValley.rb. I used to attend the UtahValley.rb most months. These days, I'm limited to making the occasional hacking lunch. :(
What drew you to Ruby in the first place?
Pat I was consulting at Fidelity and had just finished a fairly large Y2K monitoring app in Perl. Looking at my next opportunities, I decided I needed to become a better Perl programmer by learning another language. Since I got the idea from 'The Pragmatic Programmer', and since Dave and Andy had just released the Pick-axe, it seemed like a good fit.
For a while it seemed to work. I tested my Perl code better, it even became more legible ... Pretty soon though, I found myself not enjoying Perl anymore. I wanted to write things in Ruby instead. I'm sure the other guys I worked with got tired of hearing me praise Ruby, but it just fit the way I think. It seems like it fits the way a lot of other folks think too, Matz did a pretty good job with it.
Do you think of Ruby as a full fledged development language or do you think of it mainly as a web and scripting language?
Pat I actually do very little web programming, so I think of it more as a programming and scripting language that some people use for web stuff.
For me, things kind of sit on a continuum. At one end, there's BASH. I do a lot of quick, one-off stuff here, but I don't like to write anything over 20 or 30 lines in it since it's harder to maintain. On the other end is some kind of fast, compiled language like C. I only go here when I really need the speed, otherwise the pain just isn't worth it. Ruby sits in the middle and is where I'd like to do most of my work.
I know you actively learn other languages than Ruby. What languages currently have your interest and what do you like about them? Do you see other languages competing with Ruby or do you learn them to fill other gaps?
Pat I try to look at languages to learn ideas or approaches that I can use, but I'm also on the lookout for several things:
- A fast, compiled language that's near-C speed but friendlier and safer. I'm currently looking at OCaml as a possibility here. Haskell is interesting too because it sort of sits on the border between Ruby and C in terms of how I could see myself using it.
- Another language that fits my mind even better than Ruby. I don't know that I'll find one, but you never know — so far, I've found several that don't.
- A good concurrent language. There are a bunch of options out there Erlang, Reia, Scala, maybe OCaml ... I need to learn more and do more with them to figure out where I should be looking hardest.
How do you think working as a system administrator changes your perspective on programming languages?
Pat I don't know that it changes my perspective on languages as much as my goals in programming. I'm a lot more focused on little tools that help me do my job. (Which is probably one reason I don't do much web programming.)
On the other hand, I spend a lot more time with programmers than a lot of other sys admins. I think my exposure to the Ruby community has really helped me there. I understand it when the developers dive into 'Agile mode' and start talking about sprints, unit tests, coverage, and what not. I think that makes me a better infrastructure guy.
It's also kind of fun to work on 'real' programming more as a hobby than a job. If I don't grok something right away, I don't mind filing it away to come back to later since I don't have a job or a deadline looming. I guess this could become a handicap at times too, since I don't always have an incentive to buckle down and figure something out.
How did you get started in technical writing?
Pat I used to do a lot of training, and the writing is just sort of an outgrowth of that. The first article I wrote was about functions and aliases in shell scripting. I just got tired of people asking me about it, so I wrote up an article. I was floored to find that I enjoyed writing it (I used to hate writing in school). And things sort of took off from there.
After writing some stuff for free, I landed some more 'professional' writing gigs. I ended up writing some magazine articles, a few tutorials, even a book (no, it didn't sell very well). Today, I'm pretty happy writing for my blog. Who knows where writing will take me next month or next year though.