Architects look at thousands of buildings during their training and study critiques of those buildings written by masters. In contrast most software developers only ever get to know a handful of large programs well - usually programs they wrote themselves - and never study the great programs of history. As a result they repeat one another's mistakes rather than building on one another's successes. This second volume of The Architecture of Open Source Applications aims to change that. In it the