Interview with André Ben Hamou, Author of “Practical Ruby For System Administration”
Practical Ruby For System Administration, a recently released Apress book authored by André Ben Hamou, will help you pick up practical tips on Ruby coding style, learn how to analyze and improve script performance, and make use of no-nonsense advice on scripting workflow, including testing and documentation.
In this book you'll see why Ruby’s flexibility, superb feature set, and gentle learning curve make it a natural choice for system administration tasks, from the humblest server to the largest enterprise deployment.
André was kind enough to let Ruby Inside ask a few questions for this interview.
Ruby Inside: What is your background in the computer industry?
André Ben Hamou: During the five years I spent at Imperial College, I acted as the Apple systems administrator for its Department of Computing. The majority of this work was centred around integrating the UNIX-y bits of OS X with the core Linux-based cluster of services.Straight out of university I got a job as the senior systems architect for a UK ISP where I've been doing everything from building e-stores to maintaining server clusters for the last nearly-three years.
How did you know Ruby and what were your first impressions about this new programming language?
I actually remember the day I was first shown Ruby by another administrator at Imperial. Although I could see immediately the improvements it made over the languages I had been using for administration (principally Perl) it took me another six months to start thinking in Ruby and then there was no looking back.
What inspired you to write a book about Ruby? I'm also curious as to the reasons you picked the theme of system administration.
I love the language and spend so much time enthusing about it that it seemed natural to commit something to paper.In particular, Ruby is still seen as relatively new in Europe and the US and part of the reason for this is that the existing books really only cover the core topics - the language and the major framework(s). I feel that Ruby deserves to have tons of books written about its potential applications and I chose system administration because I know it well and use Ruby to make it easy and fun every day.
What are the difficulties and challenges in system administration that administrators usually encounter? How does Ruby help to solve these problems?
The main problem I've encountered again and again as a sysadmin has been the issue of scaling. A lot of system administration relies on traditional software engineering skills and paramount among these is the design of systems that scale up gracefully.This isn't just a question of load-balancing or fail-over. As systems become more complex, so too does the software that drives them.
Ruby's combination of object-oriented purity, powerful meta-programming approaches and overall terseness makes it ideally suited to the rapid-development environment of systems deployment. As I say in the book, Ruby often makes the 'right' way to do something the same as the 'quick' way to do that thing. This singular quality is worth its weight in gold.
What about Ruby's limitations and how we can overcome them?
It's important that, no matter how engaged and enthusiastic our community becomes, we never come to view Ruby as a panacea. To paraphrase Scotty, we should always try to choose the right tool for the right job.In the context of system administration, Ruby's main limitations are the relative youth of libraries pertinent to the task (for manipulating IP addresses, tape libraries, UPSs and so forth). This situation should improve naturally as the community continues to grow.
What interesting or amusing things did you experience while writing this book?
I'd always known that American cultural conventions and sensibilities were a little different to British ones but it was staggering to suffer under these differences in black and white.
For example the US is still so stuck using Imperial units that I had to push quite hard to retain the word 'kilo' in the first chapter. I was tempted to include a flyer with my book with the title 'support the campaign to measure electrical potential in pounds per square furlong per fluid ounce'.
What are your predictions and hopes regarding system administration, the Ruby programming language, and the Ruby community in the future?
My most general answer with regard to the future of system administration is that I hope companies like Sun, Apple, HP and IBM get together and work with the FOSS community to finally ratify common (patent-unencumbered) standards on persistent object storage, package management and policy-driven configuration. With such standards in place, individual administrators could concentrate on higher order problems instead of continually having to re-implement the wheel in these areas.As to Ruby - I am confident that it's the language that we'll all be using for general systems and web development within a few years. In fact, I am so sure of this that when I was recently asked in a job interview whether I would stake my career on Ruby's sustained growth and adoption my response was 'unequivocally'.
Anything you'd like to add?
I'd like to thank the Ruby Inside team not only for providing a fantastic resource to the community but also for being the site that first brought Apress' call for Ruby authors to my attention. Without you, this book would never have happened.