background preloader

The Architecture of Open Source Applications

The Architecture of Open Source Applications
Architects look at thousands of buildings during their training, and study critiques of those buildings written by masters. In contrast, most software developers only ever get to know a handful of large programs well—usually programs they wrote themselves—and never study the great programs of history. As a result, they repeat one another's mistakes rather than building on one another's successes. Our goal is to change that. In these two books, the authors of four dozen open source applications explain how their software is structured, and why. What are each program's major components?

Related:  Open SourceOpen SourceProgrammingTechnical Tips

100+ awesome free and open source applications - Software - Posted on Tuesday 27th of September 2011 at 13:05 in SoftwareIt has always amazed me quite how many incredible, varied and useful applications are available for free on the Internet. Be it free, open source, web-based or merely passive trials - the number of top quality items on offer is huge. The purpose of this list is to help people realise that the free and open source software communities are expansive and generous.

Contributing to the Mozilla codebase This page should guide you through the first steps of contributing to Mozilla. Welcome, we're delighted to see you! :) Need help? The Mozilla community always welcomes newcomers to our midst. If you have any difficulties anywhere, you can ask questions in the #introduction chat room on Recommended Reading for Developers Code Complete 2 Steve McConnell's Code Complete 2 is the Joy of Cooking for software developers. Reading it means that you enjoy your work, you're serious about what you do, and you want to keep improving. In Code Complete, Steve notes that the average programmer reads less than one technical book per year. The very act of reading this book already sets you apart from probably ninety percent of your fellow developers. In a good way.

Riak and Erlang/OTP Riak is a distributed, fault tolerant, open source database that illustrates how to build large scale systems using Erlang/OTP. Thanks in large part to Erlang's support for massively scalable distributed systems, Riak offers features that are uncommon in databases, such as high-availability and linear scalability of both capacity and throughput. Erlang/OTP provides an ideal platform for developing systems like Riak because it provides inter-node communication, message queues, failure detectors, and client-server abstractions out of the box. What's more, most frequently-used patterns in Erlang have been implemented in library modules, commonly referred to as OTP behaviors. They contain the generic code framework for concurrency and error handling, simplifying concurrent programming and protecting the developer from many common pitfalls.

The Nature of Code Hello! By browsing the table of contents on your left, you can read the entire text of this book online for free, licensed under a Creative Commons Attribution-NonCommercial 3.0 Unported License. Start reading the introduction now! If you like this book, please consider supporting it via the links below: Please submit corrections to the book on my Nature of Code GitHub repo. 15+ Awesome Open Source Graphics Software List Cenon – Cenon is a graphical tool of a special kind. Build upon a modular graphical core, Cenon offers a wide variety of possibilities and applications. The best of all, the Cenon core is free software, available with full source codes, and at home on many computer platforms. It is capable of doing Desktop publishing, vector graphic transformation etc. Dia – Dia is roughly inspired by the commercial Windows program ‘Visio’, though more geared towards informal diagrams for casual use. It can be used to draw many different kinds of diagrams.

Developer’s Guide — Python Developer's Guide This guide is a comprehensive resource for contributing to Python – for both new and experienced contributors. It is maintained by the same community that maintains Python. We welcome your contributions to Python! Proposing changes to Python itself Improving Python’s code, documentation and tests are ongoing tasks that are never going to be “finished”, as Python operates as part of an ever-evolving system of technology.

The Rise of ``Worse is Better'' Previous: Lisp's Apparent Failures Up: Lisp's Apparent Failures Next: Good Lisp Programming is Hard I and just about every designer of Common Lisp and CLOS has had extreme exposure to the MIT/Stanford style of design. The essence of this style can be captured by the phrase ``the right thing.'' To such a designer it is important to get all of the following characteristics right: Simplicity-the design must be simple, both in implementation and interface. It is more important for the interface to be simple than the implementation.

K'th Smallest/Largest Element in Unsorted Array Given an array and a number k where k is smaller than size of array, we need to find the k’th smallest element in the given array. It is given that ll array elements are distinct. Examples: How to Think Like a Computer Scientist — How to Think Like a Computer Scientist: Learning with Python 3 Version date: October 2012 by Peter Wentworth, Jeffrey Elkner, Allen B. Downey, and Chris Meyers

67 Open Source Replacements for Really Expensive Applications Why spend thousands or even hundreds or thousands of dollars on a closed source application when you can get a comparable open source app for free? Even if you need commercial support, many open source programs now offer paid support that costs much less than the alternatives. For this list, we looked for quality, open source alternatives to software that has a reputation for being expensive. Whenever possible, we included MSRPs for the expensive software, though in some cases, the pricing scheme is so complicated that it's nearly impossible to pin down. We published a similar list last year, and we've updated and expanded the list for 2011. If you have suggestions for next year's list, feel free to note them in the comments section below.

Get Involved The GNOME Project is a diverse international community which involves thousands of contributors, many of whom are volunteers. Anyone can contribute to GNOME: the project involves a wide range of activities, not just programming. So, what do you want to do? Write Have a good command of the English language?