The Architecture of Open Source Applications
The Architecture of Open Source Applications
If you enjoy these books, you may also enjoy<br>Software Design by Example in Python<br>and<br>Software Design by Example in JavaScript.
Architects look at thousands of buildings during their<br>training, and study critiques of those buildings written<br>by masters. In contrast, most software developers only<br>ever get to know a handful of large programs<br>well—usually programs they wrote<br>themselves—and never study the great programs of<br>history. As a result, they repeat one another's mistakes<br>rather than building on one another's successes.
Our goal is to change that. In these two books, the authors of<br>four dozen open source applications explain how their software<br>is structured, and why. What are each program's major<br>components? How do they interact? And what did their builders<br>learn during their development? In answering these questions,<br>the contributors to these books provide unique insights into how<br>they think.
If you are a junior developer, and want to learn how your<br>more experienced colleagues think, these books are the place<br>to start. If you are an intermediate or senior developer,<br>and want to see how your peers have solved hard design<br>problems, these books can help you too.
AOSA Volume 1
Buy Volume I
Introduction<br>Amy Brown and Greg Wilson
1.<br>Asterisk<br>Russell Bryant
2.<br>Audacity<br>James Crook
3.<br>The Bourne-Again Shell<br>Chet Ramey
4.<br>Berkeley DB<br>Margo Seltzer and Keith Bostic
5.<br>CMake<br>Bill Hoffman and Kenneth Martin
6.<br>Eclipse<br>Kim Moir
7.<br>Graphite<br>Chris Davis
8.<br>The Hadoop Distributed File System<br>Robert Chansler, Hairong Kuang, Sanjay Radia, Konstantin Shvachko, and Suresh Srinivas
9.<br>Continuous Integration<br>C. Titus Brown and Rosangela Canino-Koning
10.<br>Jitsi<br>Emil Ivov
11.<br>LLVM<br>Chris Lattner
12.<br>Mercurial<br>Dirkjan Ochtman
13.<br>The NoSQL Ecosystem<br>Adam Marcus
14.<br>Python Packaging<br>Tarek Ziadé
15.<br>Riak and Erlang/OTP<br>Francesco Cesarini, Andy Gross, and Justin Sheehy
16.<br>Selenium WebDriver<br>Simon Stewart
17.<br>Sendmail<br>Eric Allman
18.<br>SnowFlock<br>Roy Bryant and Andrés Lagar-Cavilla
19.<br>SocialCalc<br>Audrey Tang
20.<br>Telepathy<br>Danielle Madeley
21.<br>Thousand Parsec<br>Alan Laudicina and Aaron Mavrinac
22.<br>Violet<br>Cay Horstmann
23.<br>VisTrails<br>Juliana Freire, David Koop, Emanuele Santos, Carlos Scheidegger, Claudio Silva, and Huy T. Vo
24.<br>VTK<br>Berk Geveci and Will Schroeder
25.<br>Battle For Wesnoth<br>Richard Shimooka and David White
Bibliography
AOSA Volume 2
Buy Volume II
Introduction<br>Amy Brown and Greg Wilson
1.<br>Scalable Web Architecture and Distributed Systems<br>Kate Matsudaira
2.<br>Firefox Release Engineering
Chris AtLee,<br>Lukas Blakk,<br>John O'Duinn, and<br>Armen Zambrano Gasparnian
3.<br>FreeRTOS<br>Christopher Svec
4.<br>GDB<br>Stan Shebs
5.<br>The Glasgow Haskell Compiler
Simon Marlow and<br>Simon Peyton-Jones
6.<br>Git<br>Susan Potter
7.<br>GPSD<br>Eric Raymond
8.<br>The Dynamic Language Runtime and the Iron Languages<br>Jeff Hardy
9.<br>ITK
Luis Ibanez and<br>Brad King
10.<br>GNU Mailman<br>Barry Warsaw
11.<br>matplotlib
John Hunter and<br>Michael Droettboom
12.<br>MediaWiki
Sumana Harihareswara and<br>Guillaume Paumier
13.<br>Moodle<br>Tim Hunt
14.<br>nginx<br>Andrey Alexeev
15.<br>Open MPI<br>Jeff Squyres
16.<br>OSCAR<br>Jennifer Ruttan
17.<br>Processing.js<br>Mike Kamermans
18.<br>Puppet
Luke Kanies
19.<br>PyPy<br>Benjamin Peterson
20.<br>SQLAlchemy<br>Michael Bayer
21.<br>Twisted<br>Jessica McKellar
22.<br>Yesod<br>Michael Snoyman
23.<br>Yocto<br>Elizabeth Flanagan
24.<br>ZeroMQ<br>Martin Sústrik
Bibliography
The Performance of Open Source Applications
Buy POSA
Introduction<br>Tavish Armstrong
High Performance Networking in Chrome
Ilya Grigorik
From SocialCalc to EtherCalc
Audrey Tang
Ninja
Evan Martin
Parsing
XML
at the Speed of Light
Arseny Kapoulkine
MemShrink
Kyle Huey
Applying Optimization Principle Patterns to Component Deployment and Configuration Tools
Doug C. Schmidt,<br>William R. Otte,<br>and<br>Aniruddha Gokhale
Infinispan
Manik Surtani
Talos
Clint Talbert and Joel Maher
Zotonic
Arjan Scherpenisse<br>and<br>Marc Worrell
10
Secrets of Mobile Network Performance
Bryce Howard
11
Warp
Kazu Yamamoto,<br>Michael Snoyman,<br>and<br>Andreas Voellmy
12
Working with Big Data in Bioinformatics
Eric McDonald and<br>C. Titus Brown
500 Lines or Less
Buy 500 Lines
Introduction<br>Michael DiBernardo
Blockcode: A visual programming toolkit<br>Dethe Elza
A Continuous Integration System<br>Malini Das
Clustering by Consensus<br>Dustin J. Mitchell
Contingent: A Fully Dynamic Build System<br>Brandon Rhodes and Daniel Rocco
A Web Crawler With asyncio Coroutines<br>A. Jesse Jiryu Davis and Guido van Rossum
Dagoba: an in-memory graph database<br>Dann Toliver
DBDB: Dog Bed Database<br>Taavi Burns
An Event-Driven Web Framework<br>Leo Zovic
A Flow Shop Scheduler<br>Dr. Christian Muise
10<br>An Archaeology-Inspired Database<br>Yoav Rubin
11<br>Making Your Own Image Filters<br>Cate Huston
12<br>A Python Interpreter Written in Python<br>Allison Kaptur
13<br>A 3D Modeller<br>Erick Dransch
14<br>A Simple Object Model<br>Carl Friedrich Bolz
15<br>Optical...