GithubHelp home page GithubHelp logo

500lines's Introduction

500 Lines or Less

"What I cannot create, I do not understand."

-- Richard Feynman

This is the source for the book 500 Lines or Less, the fourth in the Architecture of Open Source Applications series. As with other books in the series, all written material will be covered by the Creative Commons - Attribution license, and all code by the MIT License: please see the license description for details. In addition, all royalties from paid-for versions will all go to Amnesty International.

Mission

Every architect studies family homes, apartments, schools, and other common types of buildings during her training. Equally, every programmer ought to know how a compiler turns text into instructions, how a spreadsheet updates cells, and how a browser decides what to put where when it renders a page. This book's goal is to give readers that broad-ranging overview, and while doing so, to help them understand how software designers think.

Contributions should not focus on the details of one algorithm or on the features of a particular language. Instead, they should discuss the decisions and tradeoffs software architects make when crafting an application:

  • Why divide the application into these particular modules with these particular interfaces?
  • Why use inheritance here and composition there?
  • Why multi-thread this but not that?
  • When should the application allow for or rely on plugins, and how should they be configured and loaded?

Contribution Guidelines

Writing for a book like this should be fun, so we're trying to keep process to minimum. Here is our basic set of procedural guidelines:

  1. When you start coding, try to submit one pull request early (e.g. somewhere between 50-100 lines), so that we can catch any early problems that we never thought about.

  2. After that first commit, feel free to submit pull requests as often or as infrequently as you like.

  3. When you are done your "first draft" of your code, do let us know in the commit message, or by emailing us directly (emails below). We'll assign a reviewer or two to your work at that time.

Contributors

Name Affiliation Project Online GitHub Email (if you choose)
Mike DiBernardo freelance editorial MichaelDiBernardo [email protected]
Dustin Mitchell Mozilla cluster   djmitche [email protected]
Audrey Tang g0v.tw, Socialtext, Apple spreadsheet audreyt [email protected]
Greg Wilson Mozilla web-server gvwilson [email protected]
Kresten Krab Thorup Trifork torrent client krestenkrab [email protected]
Taavi Burns Points.com data-store taavi [email protected]
Guido van Rossum Dropbox crawler gvanrossum [email protected]
Erick Dransch Upverter Modeller EkkiD [email protected]
Sarah Mei Ministry of Velocity testing framework sarahmei  
Ned Batchelder edX templating engine nedbat [email protected]
Leah Hanson Google static analysis astrieanna [email protected]
Christian Muise University of Melbourne flow-shop haz [email protected]
Carlos Scheidegger AT&T Research rasterizer cscheid [email protected]
Marina Samuel Mozilla ocr emtwo [email protected]
Cate Huston Image Filter app catehstn [email protected]
Yoav Rubin Microsoft In-memory functional database yoavrubin
Dessy Daskalov Nudge Rewards Pedometer dessy [email protected]

500lines's People

Contributors

dessy avatar audreyt avatar yoavrubin avatar djmitche avatar michaeldibernardo avatar ekkid avatar nedbat avatar dethe avatar cfbolz avatar jhamrick avatar taavi avatar haz avatar ashald avatar catehstn avatar gvwilson avatar krestenkrab avatar astrieanna avatar malini avatar aosabook avatar drincruz avatar chrisseaton avatar juanitofatas avatar jvns avatar emtwo avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.