It never fails - regardless of the skill level of the Drupal workshop that I'm teaching on any given day, the topic of Drush always sneaks its way into the conversation. Normally, it's because I have to quickly download a module to demonstrate something that has come up in class. Rather than navigating to the module's project page, I just quickly jump to the command line and do a "drush dl whatever" and hope that no one notices the witchcraft I just invoked - this inevitably results in the nerdiest student in the class perking up and wanting to know what the magic is that they just saw...
Ever since Arto Bendiken (Arto on drupal.org) made the first commits to the Drush project back in 2006, it was clear that this was a tool for hardcore Drupalers. Over time, as it has become easier to install and extend, more and more people have discovered it as a versital and time-saving tool. No longer limited to the nerdiest of us, Drush is rapidly finding a home in most Drupalists' toolboxes.
It was just a matter of time before presentations (shameless self-promotion), documentation, and screencasts started appearing on the Planet to spread the word and help increase its adoption. Now (finally), we have a printed book as well.
Packt Publishing has had hits and misses when it comes to their plethora of Drupal books, so I was curious to check out Drush User's Guide, published 4 months ago - especially considering the author is an active member of the Drupal community and the reviewers are two of the co-maintainers of the Drush project. So far, so good.
Juan Pablo Novillo Requena (I can't wait to hear Andrew try to pronounce his name on the podcast), juampy on Drupal.org, despite being a member of the Drupal community for less than three years, has an impressive lists of Drupal contributions and accomplishments under his belt. Jonathan Araña Cruz (jonhattan on drupal.org) and Greg Anderson (greg.1.anderson on drupal.org), two of the Drush project maintainers (with both having commits to the project in the last week) were the reviewers for the book. Before I got to page one of the book, I was already really looking forward to it based on their involvement alone.
But, proving that nothing is so perfect that it can't be complained about, before I even got to the main content, I tripped over a typo in the heading of the "About the Reviewers" section (they left off the "s"). Granted, I wasn't an English major, but they are a publisher. Stuff like that just bugs me and doesn't make for a good first impression...
So, for those of you with short attention spans (congrats on making it this far), I liked this book. It provides a solid introduction into Drush for beginners while also demonstrating new tips and tricks that all but the most seasoned Drush veterans can learn from (I learned that there's a drush_hook_post_COMMAND() and the very cool fn-hook command provided by the Devel module). Having said this, I still think there's room for improvement - but thankfully not all that much.
First off, this is one of Packt's smaller books, with only 4 chapters and 118 pages. How Packt can still charge $29.99 USD for the printed edition with a straight face is beyond me (the electronic version is currently $15.29). I was a little disappointed by the way the four chapters were broken up. Chapter 1 is the introduction and installation instructions chapter - makes sense, no complaints.
Chapter 2 ("Executing Drush Commands") covers pretty much everything else that 80% of the book's readers will ever need. While this chapter does a decent job of going through the basic commands that most people will ever need, it felt a bit rushed to me. I was hoping for more examples, sample workflows, and best practices to really show users new to Drush how to best leverage its power.
Rather than going chapter-by-chapter (yes, I know there's only two left), let me just say that I think the book could have easily been improved by splitting out various sections of chapters into their own stand-alone chapters. A good example of this is the "Drush Site Aliases" section of Chapter 3 and the "Working with Features" section of Chapter 4. There were quite a few sections like this that if they were made into separate chapters, I feel that the book would have been organized in a more meaningful way. I'm not advocating that there needs to be more content in each of these sections (although it would have helped in places,) just some improved organization.
Diving a little bit deeper, I was surprised by a few additional things as well:
- The information about installing Drush was centered on version 4.5 - granted, Drush 5 was released in the month prior to publication, but knowing that I've been using Drush 5 for as long as I remember, I'm not sure what the harm would've been to use version 5 in the example. The way it stands now, the book feels a little dated. Knowledgeable Drupal developers know that this doesn't matter all that much, but people new to Drush don't.
- I was a little surprised that there wasn't anything about ensuring Drush can make MySql commands. I know that I had to do some manual tweaking on my system to get it working...
- I found some grammatical errors (yes, I submitted them to Packt for the errata section) and some minor "code text" issues.
- Juan Pablo, you broke my heart. You broke my heart! Why was the Drush Make section so short? Drush Make should have had its own chapter! It coulda been a contender! (my apologies for mixing quotes from two Marlon Brando movies)
Even so, it's a solid addition to anyone's Drupal library, and I'm already looking forward to the second edition!Photo by John Goode http://www.flickr.com/photos/johnnieb/474398943/sizes/m/
Thanks for this objective review Mike. I don't think I could survive without Drush and I'm very keen to build on my Drush knowledge.
So, based on what you say, I will get a copy of this book...
If you already use drush,
drush topic is all you need. For free.