Our November meeting was a primer on Open Source Software. We were privileged to have three talented and experienced Open Source evangelists as presenters: Dawn Pattison, Saman Ehsan and Erin Braswell, all developers at the Center for Open Science.
What is Open Source Software? How is it different than free software?
Open Source Software (OSS) is not just ‘free’ software in the sense that it is distributed at no charge; it is ‘open’ in that the source code itself is available for free. This full exposure of the code means that anyone can study, modify, and build on top of it for her own purposes.
However, such freedom doesn’t mean the original code can just be changed at will. It’s free, but the managed process of modification prevents it from being a chaotic free-for-all; each project has a gatekeeper (or a team of them) who reviews changes and decides whether to accept them into the code they distribute going forward.
Open source is primarily used for cost savings. It is usually completely free-of-charge and can be a great alternative to expensive software (ex. Open Office vs. Microsoft office). But people also choose to use Open Source for security reasons, since its wide availability means many eyes have looked at it and thus perfected it. It is also used because it it is easily customized, thus saving many time to create new software.
Surveys show that contributions to open source projects are evenly split between volunteers and paid individuals. Volunteers who contribute to Open Source usually do so for the enjoyment or self-satisfaction of contributing to something they believe in. But it is also a great way to hone your technical skills; companies often hire the very people who have contributed to their code!
Some companies build Open Source projects because they believe in the mission or believe in the principle of Open Source. Others do so because it creates an opening for other, revenue-generating opportunities. For example, some firms will allow part of their code to be open and then close off other portions. Firms that give away entire tools (e.g., Google) often have other revenue streams to rely on and can therefore use Open Source to contribute to public good, generate publicity, or to create a talent pool.
Do I already use open source software?
Yes! Almost every device and application you use has some element of open source. Some popular software examples include the Android OS, Firefox, Chromium and WordPress. There is also open source hardware, such as the BeagleBone (similar to Raspberry Pi) and the LulzBot 3D printer. In fact, there are already open source blueprints for 3D printed objects, meaning that soon there will be open source stuff!
The Center for Open Science has three examples of Open Source work ongoing: Water butler, MFR (Modular File Render) and SHARE. SHARE is a “barn-raising” (as opposed to a hackathon) focused on asking the community to help build efforts for Open Science. The last SHARE event worked on an open data set over a weekend with lots of people that want to contribute.
How does the process work?
There is a simple and standard process for working with OSS. Typically you would go to an Open Source site like GitHub. Find a project you want to contribute to. Once there, look for issues or items that need resolution. At that point you will be using a version control process set up for contributing. At GitHub, the process requires “Git” – the Version Control software.
Once you’ve downloaded Git, you can then copy the code you want to change or fork the software. Once you have your own fork of the software, you can then, save it to your local machine to make changes. Once you’ve altered the code they way you think it should work, you can then save your changes back to the fork copy you have on Git. Then you submit a request to get your version approved or not approved. If approved, your code will be mainlined into the primary code.
How can I become a contributor?
Getting started can be daunting. But there are several places to go to get started. Openhatch.org is a nonprofit dedicated to helping people get started with open source projects. You can also try CodeTriage or GitHub. Both sites host projects that anyone can participate in working on. It might be helpful to start with smaller changes like bug fixes or adding libraries. Also, you can contribute even without technical skills, as many OSS projects appreciate assistance with documentation.
OSS could also benefit from gender diversification: currently only 11% of contributors to OSS projects are women. To encourage involvement, Red Hat offers an award for Women in Open Source.
We want to thank our speakers for an excellent and educational overview of open source. You can view the slides here. And you can check out the Center for Open Science’s open source projects on GitHub.