A directory of resources inthe field of technical communication.

Architecture of Open Source Applications, The

7 found.

About this Site | Advanced Search | Localization | Site Maps




Audacity is a popular sound recorder and audio editor. It is a capable program while still being easy to use. The majority of users are on Windows but the same Audacity source code compiles to run on Linux and Mac too.

Crook, James. Architecture of Open Source Applications, The (2013). Articles>Software>Audio>Open Source



Implementing software modularity is a notoriously difficult task. Interoperability with a large code base written by a diverse community is also difficult to manage. At Eclipse, we have managed to succeed on both counts. In June 2010, the Eclipse Foundation made available its Helios coordinated release, with over 39 projects and 490 committers from over 40 companies working together to build upon the functionality of the base platform. What was the original architectural vision for Eclipse? How did it evolve? How does the architecture of an application serve to encourage community engagement and growth?

Moir, Kim. Architecture of Open Source Applications, The (2013). Articles>Collaboration>Software>Open Source



Git enables the maintenance of a digital body of work (often, but not limited to, code) by many collaborators using a peer-to-peer network of repositories. It supports distributed workflows, allowing a body of work to either eventually converge or temporarily diverge. This chapter will show how various aspects of Git work under the covers to enable this, and how it differs from other version control systems (VCSs).

Potter, Susan. Architecture of Open Source Applications, The (2013). Articles>Collaboration>Software>Open Source



Graphite performs two pretty simple tasks: storing numbers that change over time and graphing them. There has been a lot of software written over the years to do these same tasks. What makes Graphite unique is that it provides this functionality as a network service that is both easy to use and highly scalable. The protocol for feeding data into Graphite is simple enough that you could learn to do it by hand in a few minutes (not that you'd actually want to, but it's a decent litmus test for simplicity). Rendering graphs and retrieving data points are as easy as fetching a URL. This makes it very natural to integrate Graphite with other software and enables users to build powerful applications on top of Graphite. One of the most common uses of Graphite is building web-based dashboards for monitoring and analysis. Graphite was born in a high-volume e-commerce environment and its design reflects this. Scalability and real-time access to data are key goals.

Davis, Chris. Architecture of Open Source Applications, The (2013). Articles>Software>Technical Illustration>Charts and Graphs



Mercurial is a modern distributed version control system (VCS), written mostly in Python with bits and pieces in C for performance. In this chapter, I will discuss some of the decisions involved in designing Mercurial's algorithms and data structures. First, allow me to go into a short history of version control systems, to add necessary context.

Ochtman, Dirkjan. Architecture of Open Source Applications, The (2013). Articles>Collaboration>Software>Open Source



Moodle is a web application used in educational settings. Moodle provides a place online where students and teachers can come together to teach and learn. A Moodle site is divided into courses. A course has users enrolled in it with different roles, such as Student or Teacher. Each course comprises a number of resources and activities. A resource might be a PDF file, a page of HTML within Moodle, or a link to something elsewhere on the web. An activity might be a forum, a quiz or a wiki.

Hunt, Tim. Architecture of Open Source Applications, The (2013). Articles>Software>Instructional Design>Open Source


The NoSQL Ecosystem

Unlike most of the other projects in this book, NoSQL is not a tool, but an ecosystem composed of several complimentary and competing tools. The tools branded with the NoSQL monicker provide an alternative to SQL-based relational database systems for storing data. To understand NoSQL, we have to understand the space of available tools, and see how the design of each one explores the space of data storage possibilities.

Marcus, Adam. Architecture of Open Source Applications, The (2013). Articles>Information Design>Databases>SQL

Follow us on: TwitterFacebookRSSPost about us on: TwitterFacebookDeliciousRSSStumbleUpon