Week 1: Reintroduced to Open-Source

To me, open source used to just mean available online for free.

Now, its beginning to mean all the other things that initially felt like extra features (valid licensing, documentation, contribution methodology, etc.), along with nuances like the difference between “free” and “open-source”.

Free Lunch vs Freedom

I had never separated the idea of free from open-source. It still seems as if they are not too far off in the context of open-source, because I cannot think of an example where a project was open-source but cost money to access. Nevertheless, this Forbes article raises the point that one may incur cost indirectly through “software maintenance and upkeep”. Furthermore, our class discussion about a previous group’s experience with Google’s open-source policy provides a bit of distinction as well: if software is currently open-source, but in the future may be commercialized, it may be questionable to categorize it as cost-free.

Licensing

I had an understanding that for something to be considered open-source, it has to have licensing. Technically, if someone were to modify and resale something that does not have licensing, the action would be an offense. However, what I’m curious about is what makes a license valid. For example, does this Beerware license count? Or could I say:

This license allows for the user to do literally anything with this code.

and would that be valid?

Having better understood the nuances, the benefits and advantages of open-source are evident. It allows a larger community to contribute to a project in an organized fashion, allowing for the project to be improved, more accessible (adding to OpenStreetMap, different languages), and also allowing people to learn. Although, I believe it would be impossible to operate everything on an open-source basis. Of course, closed software allows for monetization, in turn allowing to build hyper-focused teams. So, an open-source may stifle productivity or speed of implementation because there is not a monetary incentive. Furthermore, if a project is opened up to a larger community, there may also be questions of ownership and inefficiencies if there is not better documentation or contributing guidelines. Overall, the issues, that I understand, with open-source stem from the decentralization of the project.

I decided to take this course because I want to better understand the community and be helpful in some way (either now or down-the-line). A lot of my education and skills are a result of open-source software; hence, I want to be equipped to be able to contribute or produce projects that may help others in the future.

Open Source Software I Use/ Have Used

Verilog

One of the open-source softwares I have used is Verilog, which is a hardware description language (HDL), used to design and simulate hardware. Interestingly, I had been introduced to HDLs through the Xilinx ISE Suite, which is not an open-source set of tools. However, in a different course we switched over to using Verilog. The stark contrast lay in the portability of the open-source toolchain; I didn’t have to use a license or a specific set-up to run my code. On the other hand, Verilog was less descriptive and helpful when it came to answering questions on how to use it.

Atom and PlatformIO

Another tool I use very often is Atom, which became my main IDE after I realized how modular and easy to use it was. It was especially helpful that it had PlatformIO (another open-source software) integration, making it easier to test and push code to a wifi-enabled device for tinkering around and personal projects. Although, I have little experience with other IDEs, I appreciate how I can very quickly enable and disable certain packages, as well as how certain packages are forked and built upon by others who realize there is a need to be met.

Bitwarden

I was introduced to this software by a friend as a suggestion for a password manager and I have fallen in love ever since. Firstly, it pushed me into building good habits for password management, but its also reassuring to see (and this stems from little to no knowledge about it was implemented) that despite having its source code publicly available, Bitwarden is not vulnerable to attacks. Moreover, its mobile app as well as browser extensions are seamless and have made using secure passwords even easier than just remembering them like I used to.

Overall, I’m quite excited to come across new open-source tools as well as learn to better equip myself so I can meaningfully contribute back to the open-source community.

Written before or on February 3, 2020