RubyLearning participants talk to Michael Hartl the author of the Ruby on Rails Tutorial (railstutorial.org).
Satish Talim>> Welcome Michael and thanks for taking out time for RubyLearning. For the benefit of the readers of this blog could you please introduce yourself and tell us what you do for a living?
Michael>> Happy to be here. I’m a programmer, educator, and entrepreneur. Recently, I’ve been focused on making educational products and selling them online. I’ve been doing web development since around 2001 and Rails development since 2005. I also have a background in academic teaching and research, principally in theoretical and computational physics.
My current products are the Ruby on Rails Tutorial book and the Ruby on Rails Tutorial screencasts. The book is available for free online, for buy as a PDF, and as a print edition. The screencasts are available for purchase from the Rails Tutorial website or (if you have a subscription) from Safari Books Online. I especially recommend the Rails Tutorial PDF/screencast bundle.
Ricardo Astorquia, Spain>> How do you get the right balance for teaching in a book for those folks that may have different backgrounds, where more details are necessary while another reader may need just a little more guidance than just a reference book?
Michael>> It’s important to realize that advanced readers rarely mind a little basic material, especially if including it is a core part of your style, and that basic material helps bring the newbies up to speed. One inspiration is The Economist magazine’s house style, which usually includes some information about a company or person, no matter how famous; for example, they might write “General Electric, an American conglomerate” or “Steve Jobs, boss of Apple”. I try always to include enough detail that even a beginner has a place to start if they need further information.
Vince Vincent, USA>> Do you intend to create a sequel as new Rails versions are released? If not, what is the speediest way for a Rails developer to progress from here (aside from reading the API which many suggest)?
Michael>> I plan to keep the Ruby on Rails Tutorial up-to-date. The book is easy to edit, but the screencasts are trickier, so for a while I might only supplement the screencasts. Eventually, though, I anticipate having to re-cut the entire series once Rails has changed enough to justify the effort.
Imhotep Albasiel, USA>> Would you be writing about Rails development on Windows in the future?
Michael>> I am hoping to cover Rails development on Windows in future editions. Part of the issue has been the lack of a standard Windows installation method, but the new Rails Installer aims to change that, so I’m optimistic that Rails development will start to take off on Windows.
Samnang Chhun, Cambodia>> Is it important to understand Rack when learning Rails?
Michael>> Rack is a Ruby library that provides a standard interface between web frameworks and web servers. Most Ruby web frameworks, including Rails and Sinatra, use Rack, and it is certainly important in some contexts, but I think that Rack can be skipped when first learning Rails. It’s really more of an intermediate-to-advanced topic.
Samnang Chhun, Cambodia>> What should I do next to become a Rails guru?
Michael>> There are lots of great Rails resources out there, and I particularly recommend Railscasts by Ryan Bates. Of course, there’s no substitute for writing your own application, so I suggest picking a problem that interests you and plunging ahead.
Victor Goff, USA>> On January 25th, you were notified that your RailsTutorial was banned by a certain country. Have you cashed in on the notoriety yet!?
Michael>> I’m not sure being blocked by the Great Firewall of China is a big enough story to earn me much notoriety. It is weird, though, and disappointing. I guess it means I’ve made the big time?
Victor Goff, USA>> How do you manage having a publication that can be broken by updates in the gems that you use, either in the production directly, or in testing?
Michael>> This is a big lesson I learned from my first Rails book, called RailsSpace. In that book, my coauthor and I made the mistake of not using specific version numbers for the gems, but the Ruby on Rails 3 Tutorial book avoids this error. Every one of the gems in the book is tied to a particular version number, so the tutorial is (virtually) guaranteed to work as advertised. Of course, I do occasionally update the book with new gem versions, but I always test the new gems to make sure they work. (The sample application’s test suite proves invaluable in this context.)
Robin Gowin, USA>> Where do you see Rails going, and what do you think of the Rails – Merb merger?
Michael>> I think Rails is off to the races now, especially with the release of Rails 3. The Rails core team and the Merb developers deserve immense credit for setting aside their differences and joining forces to make Rails 3 happen. Given how modular the core of Rails is now, I expect all kinds of great innovation in the next few years.
Mohnish Jadwani, India>> If developers want to migrate from an application built on Rails 2 to an application built on Rails 3, what are the challenges one would face for this migration (I understand this would be an app specific question, I only want to know in generic terms). How best can this be dealt?
Michael>> Since the Rails Tutorial is aimed mainly at beginners, I didn’t feel that covering the upgrade from Rails 2 to Rails 3 fit with the core philosophy of the book. Moreover, there are already lots of resources to help make the Rails 2.x to 3.x upgrade, including an e-book dedicated to this subject (Jeremy McAnally’s “Rails 3 Upgrade Handbook“).
Zachary S. Scott, USA>> Do you have plans for any other Ruby (non-Rails related) project?
Michael>> I am contemplating making a Ruby tutorial at some point, but no promises! I’m also planning to open-source PolyTeXnic, the Ruby program I use to make the HTML and PDF versions of the book.
Zachary S. Scott, USA>> What do you think of Sinatra?
Michael>> I’ve only dabbled with Sinatra, but I’d like to know it better. It seems very clean and elegant.
Satish Talim>> Anything else you would like to add?
Michael>> Web development is hard, so don’t get discouraged if you run into difficulties. All web developers run into difficulties all the time. With practice, you’ll get better at powering through the problems &mdash and you’ll also learn that sometimes you have to give up and hack around them.
Thank you Michael. In case you have any queries and/or questions, please post your questions here (as comments to this blog post) and Michael would be glad to answer.