In the last issue we covered five folks who are working on really interesting projects. In this issue, I'd like to pay some attention to five other Ruby hackers who have caught my attention through their excellent technical writing. As a technical author myself, I am particularly moved by folks who educate and inform our community through more than just code, but through written words as well.
Similar to Issue #16's list, this lineup is in no particular order, is far too short to do the community justice, and is purely subjective in nature. None of these folks knew I was going to write about them and my recommendations are completely unsolicited.
Magnus Holm (@judofyr)
If you've been on Twitter or Hacker News lately, you probably have run into an article or two from Timeless, a blog that Magnus is running with help from Steve Klabnik. The topics here range from the philosophical (see: There is No Talent), to the obscure low-level Ruby hack (see: Tailin' Ruby), but the quality is consistently well above that of your run of the mill blog.
As it turns out, the reason why Timeless feels different than your average blog is because it is designed to be that way. Magnus describes the project as "an attempt at creating a new kind of blog with a focus on frequently updated, quality content which last longer than the beta of your favorite framework". With so much web content being incredibly ephemeral in nature, the notion of timeless content is attractive, even if it means a considerable challenge for the author.
As a small historical note, Magnus is also one of the five folks who has written articles for the Ruby Best Practices blog. While he only wrote a total of two articles for us, both were very well received by our readers. So even if I can't take credit for his recent work, I can at least claim that I knew his potential years ago :)
Jeff Kreeftmeijer (@jkreeftmeijer)
Jeff is another blogger who has rapidly produced a ton of great material over the last year or so. The topics on his blog bounce around fairly frequently, though he seems to take a particular interest in developer practices, particularly surrounding git, gem packaging, and testing tools.
What interests me about Jeff's writing is that while he's talking about fairly common topics, he typically focuses on just a single discussion point, which makes each of his posts a conversation waiting to happen. The process of watching Jeff make a point about some opinion he has formed about a given tool or technique and then seeing the community respond to that point has been a really enjoyable experience so far. For a nice example of what I've just described, check out Jeff's Be awesome, write your gemspec yourself
Jeff's conversational approach to writing really leads to some productive conversations across a broad cross-section of the Ruby community. It's easy to see this phenomenon by either looking at the comments on the article above, or any other article of Jeff's that has gained some widespread attention (read: most of them).
Similar to Magnus, I admire Jeff for breaking out of the standard 'blogging template' and developing his own writing style that seems to work quite well.
I may be showing my long, flowing Ruby beard by recommending MenTaLguY on a list of bloggers who impressed me in 2010, since the bulk of the materials of his that interested me were published in 2005-2006. But two articles posted in 2010 really caught my eye, and are worth recognition on their own: Atomic Operations in Ruby and The Biggest Mistake Everyone Makes With Closures.
These two articles are guaranteed to expose edge cases that will surprise all but the most diligent Rubyists, and are representative of the two things MenTaLguY has historically been known for: concurrency and functional programming.
His blog is written in the old fashioned 'everything in one pot' style, and due to a mixture of non-technical and technical content, can be very challenging to dig through. For this reason, I've gone way back to his 2006 and 2007 writing and pulled a few articles worth checking out, which may intice you to dig even deeper.
- Simple Lazy Streams
- Currying in Ruby
- Monads in Ruby
- Concise Memoization
- Eavesdropping on Expressions
- Ruby Symbols Explained
- Concurrency Five Ways
The reason I've included MenTaLguY in this lineup is because I feel like he is a representation of an unapologetically deeply technical person that we are seeing less and less of in a more commercialized ecosystem that tends to value shiny tools and productivity tips over deep knowledge and theory. While the new world isn't a bad one because we all can find jobs in it, I remember a different community that leaned more towards MenTaLguY's direction as recent as five years ago.
So this is my hat-tip to old school Rubyists, and to MenTaLguY for frequently being ahead of his time by focusing on concurrency and functional programming before it was cool.
Aaron Patterson (@tenderlove)
Aaron is another Ruby hacker who has been in the Ruby community for a long time and has worked on a number of cool projects, including Nokogiri and Mechanize. I've been a friend of Aaron's for a while, and have always admired his abilities as both a hacker and story teller. But the thing that really impressed me about Aaron's work in 2010 is his writing for the AT&T Interactive Engineering.
Recently, Aaron has been performance tuning Rails 3 by rewriting the low level ARel relational algebra library. Doing major refactorings of Rails internals is no easy task, but you might think otherwise if you read Aaron's great posts about his work on ARel, due to their incredible clarity. It may just be the giant fonts or the pretty graphs, but the articles Aaron has written about his work on ARel have been the most easy to understand resources on performance tuning in Ruby that I have ever seen.
Aaron brushes up against a couple other Rails and Ruby 1.9.2 topics on the AT&T blog as well, approaching them in a similar clear and light-hearted style. But those looking for a lot more can dig through the archives of tenderlovemaking.com, which similarly has no shortage of great Ruby content.
UPDATE 2011.07.20: Looks like the AT&T interactive blog is down right now, so I couldn't provide any meaningful links above. But you can still find Aaron writing on his personal blog, Tender Lovemaking.
Peter Cooper (@peterc)
It may be a bit "meta" to acknowledge Peter, since he's typically writing about people who are writing code, or writing about people who are writing about writing code, but nonetheless, he is someone that deserves both attention and appreciation for the valuable service he's been offering our community for years.
While I find a lot of new Ruby resources over Hacker News or Twitter, or just by working with my friends and colleagues, Ruby Inside remains the place I go when I want to put my finger on the pulse of the Ruby community. While small things may go unnoticed by Peter, most major new releases of important projects are covered by Ruby Inside. RI also is the place to go to see announcements about big upcoming events, or just to get a general feel for what Ruby hackers are up to.
A number of my own projects, including Practicing Ruby itself, have gained a lot more attention by being featured on Ruby Inside than they would have on their own. Over the years, I've seen this site evolve from a time in which the existence of a Ruby news site seemed a bit ridiculous since everyone in the community already pretty much knew each other to the present day in which we absolutely need to have someone sifting through the endless stream of new content so that we know what things we just can't afford to miss.
For better or for worse, Peter has done a ton to help Ruby gain exposure in the broader technical community, and has helped those within our community find their way to some really great resources. The high degree of professionalism and consistency that Ruby Inside showcases does a lot to create a good first impression for our community as a whole.
I must admit, I actually don't spend a lot of time reading technical books or blogs. I find that I'm so busy writing and actively practicing that hooking myself up to the firehose of new information seems like it would cause me to burst. In general, I think we have a community that is too obsessed with the consumption of information, and for that reason, it makes it hard for me to come up with a list of folks who I'd say can't be missed.
That having been said, a little bit of well placed information goes a long way, and the five people I have acknowledged in this post have really given me some major new insights at one point or another in my career. There are others I could say the same about, but I'll leave it to you to find them on your own.
Who is a great hacker-writer that you think is worth knowing about?
NOTE: This article has also been published on the Ruby Best Practices blog. There may be additional commentary over there worth taking a look at.