The Architecture of Open Source Applications

blobcode2 pts0 comments

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&eacute;

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&eacute;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&uacute;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...

open source applications books michael architecture

Related Articles