Week 1
Open Source
When I think of open source projects, I think of a piece of software that is built collaboratively by anybody that has something meaningful to contribute. Anybody is free to make changes to it, read through the code base, and learn from it. One huge benefit of open sourced software is that you have people contributing to this project for free, and many different users across different use cases testing out your code. People can see exactly where everything happens and add in very useful new features as well as bugfix for other users much easily. A downside to all this accessibility is that different contributors might not all adhere to similar coding styles or standards, and there may not be a dedicated team to fully review all the pull requests being sent in. Someone might accidentally introduce a security risk because most of the contributors aren’t fully experts on the codebase. The reason I registered for a course on open source software is because I’ve always had great respect for the open source community and their overall mission, but being a part of it has always seemed so daunting. To someone who has limited experience navigating through large projects of unfamiliar code, it is hard to know where to start. I hope to become more comfortable with all this throughout this semester.
Projects
-
Ubuntu - This is an operating system based on Linux that I use every day on my personal computer. I enjoy using it because of it’s customizability, low resource consumption, and it’s amazing terminal. Other alternatives are Mac OS and Windows.
-
Apache Hadoop - The Hadoop project is an open source project that focuses on distributed computing. I’ve done a lot of work this past summer on MapReduce and I have been amazed at everything that goes into large scale systems. An alternative to this might be Apache Spark, which has been quickly growing a lot of traction.
-
Node.js - This is an open source environment for JavaScript that has quickly swept up the software world. Node.js introduces lightweight, asynchronous programming with JavaScript that also lets it run outside of a browser. Alternatives to Node.js would be to use other programming languages.
-
Wikipedia - I love Wikipedia because not only is the software behind it open sourced, so are the contents of its articles. While this does sometimes invite malicious changes, the foundation does a lot to try and ensure the authenticity of its articles. While there may be different resources for you to find the information you are looking for, not many projects cover as many topics as Wikipedia.