At the Forge - 2009 Book Roundup

A look at the publications Reuven recommends on Ruby, Rails, JavaScript, Git, Web development and more.
Git Books

Software developers have been using version-control systems for some time. But Git, a distributed version-control system developed by Linus Torvalds, has taken much of the open-source world by storm. For me, the killer feature in Git is its ridiculously simple (and fast) branching and merging. I fall into the category of CVS and Subversion users who have worked with those tools for years, dreading any branching or merging operation that I would have to perform, because it was so painful and time consuming. Git has totally changed that for me, altering the way I develop software.

Numerous Web sites exist for Git users, such as “Git ready” ( and the Git community book (, which offer useful information. But for a complete introduction to Git, you might want to consider one of three books on the subject. The first book that came out, Pragmatic Version Control Using Git by Travis Swicegood (Pragmatic Programmers, ISBN 978-1-93435-615-9), is a good introduction to Git and covers the basics nicely.

However, I felt that this book was lacking some depth and was happy to read Version Control with Git by Jon Loeliger (O'Reilly, ISBN 978-0-596-52012-0) and Pro Git by Scott Chacon (Apress, ISBN 978-1-4302-1833-3). Chacon is well known in the Git community as one of the founders of GitHub and as a screencaster, author and speaker about Git. Chacon convinced Apress to put the book on-line for free (, so you can take a look for yourself. I have found that the Loeliger and Chacon books complement each other, and I've been reading them in parallel, learning from both. You can't go wrong with either one of them.

Web Development and Administration

No matter what technologies your Web site uses, certain issues will crop up. For example, you will have to map out a database and server architecture, ensure that your server's performance is being monitored, and set your URLs and content to reflect best SEO (search engine optimization) practices. It is unlikely that one person on a Web site will need to tackle such a wide variety of problems alone, but if you are a freelance developer, knowing about different tools can be quite helpful and makes you even more valuable to your clients.

Website Optimization by Andrew B. King (O'Reilly, ISBN 978-0-596-51508-9) is a good introduction to the subject of optimizing your site in a number of ways, both for SEO and for speed. Generally, I've been quite skeptical of SEO in the past, thinking (somewhat naively) that with well-written content, Google and other search engines will find you and mark you as relevant. It turns out that well-written content is necessary but insufficient. This book shows what you can do to improve in that arena. To be honest, I have read the SEO portions of this book much more thoroughly than the performance-related optimization portions, some of which I have seen elsewhere.

A well-known business mantra says, “If you can't measure it, you can't improve it.” For this reason, getting a handle on how your Web site performs is a crucial task if you are to understand where and how you can improve it. The book Complete Web Monitoring by Alistair Croll and Sean Power (O'Reilly, ISBN 978-0-596-15513-1) is the most comprehensive list of Web monitoring tools and techniques I have seen to date, looking at every type of monitoring I can think of and then some. It describes how to monitor your site's network connectivity, performance, conversion rates and usability, recommending a mixture of built-in, open-source and commercial tools. It even describes ways in which you can use on-line communities and social networks to monitor reactions to your site, so that the analysis you get is not just a bunch of statistics.

JavaScript continues to occupy center stage in the Web development world. If you aren't yet using a JavaScript framework, by all means, you should start! Frameworks (such as Prototype/Scriptaculous, jQuery, YUI and Dojo) allow you to ignore most of the differences between browsers and provide a huge amount of support for the type of development that you likely want to do. I typically prefer to use jQuery and enjoyed the introductory Learning jQuery by Jonathan Chaffer and Karl Swedberg (Packt Publishing, ISBN 978-1-847192-50-9) as a good introduction to that framework.

Many serious developers now are working on JavaScript in various ways, and JSMag is a new for-pay, PDF publication that aims to give such developers serious articles ( JSMag reminds me of other language-specific magazines I have seen over the years, with very high-quality content that addresses topics developers need to deal with. It tries to be framework-neutral, meaning you are as likely to read an article about YUI or jQuery as Ext or Dojo, so if you are interested only in jQuery, you might be slightly disappointed. That said, a majority of the articles are about using the JavaScript language, rather than any one particular framework, which means that no matter what you're using, you will probably get something out of JSMag.

Finally, two well-known figures in the Ruby community, Amy Hoy and Thomas Fuchs (the latter of whom is the author of the Scriptaculous visualization framework that works with Prototype) have published an on-line PDF book called JavaScript Rocks!, available for purchase and download from If you are familiar with Hoy's writing, you won't be surprised that this book is an easy read, with a terrific sense of humor and high-quality technical content, addressing everything from reducing JavaScript code size to improving the perceived (not actual!) performance of your application's user interface. The book comes with a copy of the terrific “DOM Monster” tool for optimizing the number and type of DOM elements on a page and for an instant analysis of your page.