Airports and Anthills


Published on

An open source tutorial for those who want to get a better understanding the who, how and why of open source projects

Published in: Technology
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

  • “It's interesting to reflect on the ways that evolution has shaped different species. Consider, if you will, the lowly ant. It is hard to imagine a creature that functions differently from a human being. The story of human progress has been shaped dramatically by the actions of singular individuals, people who drive society in a new direction through force of arms, intellect, or will. By contrast, ants have evolved into a purely collectivist species; instead of free will, which allows individuals to control the destiny of the group, they operate through fixed behavior patterns. On their own, each ant's behavior is relatively useless, but when swarms of ants come together, the patterns optimize naturally and allow them to accomplish tasks that should be far beyond their reach. To the outside observer, their self-organizing efforts seem to be directed by some larger force or collective intelligence. Theirs is a society that is truly more than the sum of its parts.”

  • An impact diagram from github of one of the great open source project - homebrew. Each column is a week, each brick is a contributor. Brick size is determined by the line of code contributed. The small bricks are at the bottom of the pile and the leading contributors are at the top.
  • There’s an interesting situation now with the OpenOffice project. Oracle just bought it and pissed the community members off, sending them to start a competing non-profit organization.

  • “...Other principles weren’t intended as timesavers. Sometimes they were quite the opposite:
    The Python implementation should not be tied to a particular platform. It’s okay if some functionality is not always available, but the core should work everywhere.
    Don’t bother users with details that the machine can handle (I didn’t always follow this rule and some of the of the disastrous consequences are described in later sections).
    Support and encourage platform-independent user code, but don’t cut off access to platform capabilities or properties (This is in sharp contrast to Java.)
    A large complex system should have multiple levels of extensibility. This maximizes the opportunities for users, sophisticated or not, to help themselves.
    Errors should not be fatal. That is, user code should be able to recover from error conditions as long as the virtual machine is still functional.
    At the same time, errors should not pass silently (These last two items naturally led to the decision to use exceptions throughout the implementation.)
    A bug in the user’s Python code should not be allowed to lead to undefined behavior of the Python interpreter; a core dump is never the user’s fault.

  • ×