Week 5 - The Scale of Open Source

This week was pretty jampacked with different types of open source projects and ways to contribute to these projects. To begin with, we had to evaluate several huge open source projects. Next, we had a guest speaker come in from Bloomberg to talk about how the company uses open source projects to do their job as well as how they contribute to open source projects to give back to the community. Finally, I’m going to talk about some very small contributions to open source projects that I made myself :)

Evaluating Open Source Projects

Alright, let’s start with the task of evaluating open source projects. While browsing the website and github of some suggested open source projects, I was very intimidated with the large scale of the communities. There were two projects that I was particularly interested in: GNOME Clock and Godot.

GNOME Clock was interesting to me because of its simplicity. It doesn’t seem to have as large of a code base as some of the other projects, the idea seems simple enough to not have a steep learning curve to understand what is going on, and there is a clear way of communicating through the IRC Channel. However, the main problem is that I have never used GNOME before and the languages used in this project like Vala. It seems difficult to set up the development environment because since I have never used GNOME before, I would have to install it and get familiar with it before I can even start looking at what I can contribute. What I learned from GNOME Clock is that open source projects don’t have to be very complex and can be as simple as making a clock app. However, I would want to make sure I am familiar with the platform that the open source project is improving first instead of just purely the idea.

Additionally, I was interested in Godot because I love playing videogames and Godot is an application used to make videogames. I found the website very useful in finding lots of information about the open source project, in particular the documentation on ways to contribute. There was also another repository separate from the main repo (containing the application’s code) that contains a bunch of demos. This helped me learn that I could possibly contribute to open source projects by becoming familiar with using the application and creating examples and tutorials for others to learn. Contributing to the code base of Godot seems challenging since I have not worked on anything like it in the past, but Godot would definitely be an open source project where I would try to contribute to the examples or the documentation.

The takeaway I got from evaluating these open source projects was to definitely have experience with the programming the projects use if I want to make a contribution to the code, try to avoid large and established communities since it will be harder to make a meaningful contribution and focus on communities that have a lot of documentation and instructions on how to contribute. After this activity, I think I most likely will want to focus on contributing through documentation or providing examples, however I do not feel ready to select a project to contribute to because there seems to be a lot of criteria to meet in order to find a project that is the right fit for you.

Bloomberg and Open Source

After the experience of evaluating open source projects I learned about the smaller commits one could make to a large open source project. The talk that Mr. Kevin Fleming gave about Bloomberg and open source showed me the large scale contributions that could be made.

First, Mr. Fleming talked about the numerous open source softwares that Bloomberg uses to run their business. The list was basically endless and I have never heard about the majority of the softwares that he listed. However, one story that he shared stuck. Mr. Fleming started talking about the scale of the programs they are running and how some developers would run their machine learning algorithms for a long period of time, even though they know that it won’t work. This is easy to do because our concept of computers is always very abstract, it sort of magically does things for us. However, this is not the case and when a developer at Bloomberg runs an application on this massive amount of data, there is an insane amount of power being used that could go towards less fortunate communities. And all of this is run using an open source machine learning software. This story amazed me because it just shows the scale that some of these open source softwares are being used.

The talk then transitioned into the open source projects that Bloomberg contributed to. One contribution that stood out to me was their contribution to JupyterLab. The team at Bloomberg wanted to improve the UI of the menu, so they used their resources to conduct research tests on participants and have them try to navigate and find things on the JupyterLab menu. They then used the results of the research to fix the menu titles and the actions under each menu. I was interested in this because it was a contribution that only a large corporation could make. They made use of the resources they already had (the research team) that individuals wouldn’t have to contribute to a project that they use themselves. It made me start wondering what open source projects I have used that large corporations have contributed to.

My Contributions

In a sharp change of pace from talking about large scale contributions, I would like to talk about the contributions I made so far. All of my contributions are either in OpenStreet Maps or Wikipedia (you can see a list of my contributions here).

While browsing OpenStreet Maps, I found that a lot of restaurants are not documented yet. I personally love trying new places and just eating good food in general, so some of my contributions through there were adding some of the restaurants that I have been to in the past. I found it easy to contribute to places that were not very well known and not a lot of people would be contributing to, like my hometown and places in Ithaca (near Cornell).

Some of my other contributions are for Wikipedia. Wikipedia seems harder to contribute to than OpenStreet Maps, probably because with OpenStreet Maps its hard to document the whole world while with Wikipedia, each page has a dedicated fan base that is passionate about that page and will update it regularly. An easy contribution I did was just simply fixing a typo. Another contribution was adding some additional information about a band that I like (it took a while to try to find gaps of information in these pages).

Right now, I enjoy contributing to OpenStreet Maps and Wikipedia because it is a break from always looking at code in other classes. They are contributions that anyone can make, and you are not limited by technical knowledge. Even though I like contributing to these platforms, I look forward in the future to contributing to some Firefox extensions that we made in the past.

Conclusion

This week was packed with information regarding all sorts of contributions, small and large. This is why the title of this blog post is “The Scale of Open Source”: an individual can contribute by just fixing a minor typo, while a large corporation can contribute by completely changing something or adding a huge feature. I hope that this blog post gave a good insight into the world of contributions and be sure to look out for my week 6 blog post! :)

Written before or on March 2, 2020