Archive for the ‘book review’ Category

Art of Community Now Available

Monday, August 24th, 2009

Jono Bacon’s new book The Art of Community: Building the New Age of Participation (Theory in Practice) is now available. I first heard about this book in January and I have tracked the progress and discussion on and off since then. As you would expect from a book about community, the development of The Art of Community was a very open process. I must say that I was a little underwhelmed by the activity around the book given the interest in the topic. Number 1 on the list of top 10 commenters had 29 comments. Number 10 had 7. Maybe most of the discussion happened over Twitter where Jono has over 2,400 followers.

I have no doubt that the book will sell well. Doesn’t everyone want to start a community? I just ordered my copy and will post a review here when I get through it. The incumbent for my favorite book in this category is The Success of Open Source by Steven Weber. Clay Shirky’s Here Comes Everybody: The Power of Organizing Without Organizations is also quite good. Both of these books effectively describe the community phenomenon. What may set The Art of Community apart is a set of instructions for creating your own successful community (Jono draws from his experience with Ubuntu and KDE). But if the techniques work so well, why hasn’t the community around the book thrived? Did Jono (who also works as community manager for Ubuntu and is a musician) not have adequate time to write the book implement his techniques?

NYC Agile Developer Book Club

Thursday, April 9th, 2009

My friend and colleague Brian Kelly and I are starting an Agile Developer Book Club in New York. The first meeting will be on April 29th (location TBD) and we will start by reading one of my favorite books on software development: The Pragmatic Programmer: From Journeyman to Master. After that, we will move onto other books in that genre. The general idea is to assemble a cross-language group of developers that want to improve their craft by learning from great books and each other. Each meeting we will discuss a section of the book. Beyond that, it is up to the group to figure out the details.

If you live or work in New York City and want to hang out with some people who also want to be great programmers, please join the Meetup group and block April 29th on your calendar. If you are not in New York, you should still read The Pragmatic Programmer and talk about it to whoever will listen.

Note: in case you were wondering, I have not relocated to New York. I still live in the heart of the beautiful Pioneer Valley but spend a lot of time working in New York.

Book Review: Django 1.0 Template Development

Thursday, March 26th, 2009

I just finished reading Scott Newman’s book Django 1.0 Template Development. This is the second Django book that I have read (the first was The Definitive Guide to Django
) and I am very impressed by the number (and quality) of Django books that have been published. 21% of the respondents to a recent “This Week in Django” poll said that they learned Django from reading a book (65% learned from the online documentation). Considering that until recently there were no Django books, this is significant.

Django 1.0 Template Development lives up to its title by focusing on the template layer of the Django web application framework although it does go through some basics of setting up your project and some of the details of the Django request handling pipeline. There is very little coverage of models – just enough to give the sample project some data to work with.

There is good coverage of how templates are loaded and guidelines of how to develop views [1] with plenty of tips on leveraging Django’s many convenience features (like generic views) and organizing code for better manageability. There are examples for using and writing custom middleware, filters, and tags [2] with special attention paid to best practices in security. A whole chapter is devoted to working with Django’s pagination system. Explanations are well supported with the theory behind and examples that demonstrate the details of Django’s behavior.

The area that I was hoping for a little more depth was in optimizing performance. Django gives the developer a lot of options of how to design the application. For example, in addition to the typical template “include” syntax, Django also supports template inheritance (where a child template can extend and override blocks of a page from its parent). There is not much information on the performance implications of deep template hierarchies. The caching chapter gives a nice overview of Django’s different caching options and engines and general guidelines but perhaps the art of really tuning a site is the topic for another book.

I would highly recommend Django 1.0 Template Development for anyone who wants to efficiently build a clean and manageable template layer for a Django project. In particular, a developer who needs to make the display tier flexible and extensible (such as the book’s example of managing a separate site skin for mobile browsers). Although the preface recommends the reader have a working knowledge of Django and Python, I don’t think that is really necessary. There is just enough information to help the developer to understand the overall Django framework but the emphasis is definitely on displaying data.

Notes:

  • 1 in Django, the “view” is the code that gathers and preprocesses the data for the template to render
  • 2 These are important for a template developer because Django deliberately limits the amount of logic you can put into a template to force developers to keep templates clean and make code more reusable. Logic belongs in filters (that manipulate data) and tags (that do more complex logic), and middleware (where you inject additional functionality into the request/ response cycle).