When I initially registered for the course, I thought of the git skills I’d gain by the end of the semester. But looking at it now, open source development is not all about git/github like most would think. Instead, it’s a collective effort made to support communities. Throughout the semester, our class was exposed to several open source projects that served different purposes. Some were created in a humanitarian effort to provide underserved regions with the help they need (e.g. healthcare, education, environment) and others were made as a side project that was shared with the rest of the world. We also had the opportunity to dive into these projects and experience the whole lifecycle of making our first contributions.
This past week, my team and I had the opportunity to present our progress so far with the rest of the class. We mentioned that a lot has happened since our first stand-up report. For instance, we had our first pull request regarding documentation merged. It’s exciting to see that a contribution you’ve made is now visible to the rest of the community, and more importantly, will help new contributors start their journey within the project. At the time, our goal was to resolve open issues in order to get our foot “in the door.” But ironically enough, we couldn’t do that because we didn’t know how to actually set up the development environment. Our first contribution was an issue that we’ve experienced ourselves and we’re glad that we brought awareness to it. Our second contribution was creating a dark mode version of the website. My team and I had a lot of fun building it and thought that the design looked better than the actual website. I wished we were able to show our feature to peers during this stand-up, but we will have to wait until our final presentation. With this contribution, we haven’t gotten any new feedback from members of the community. So, our pull request remains in limbo (but hopefully not for long!)
After researching COVID-19 open efforts, we spent a few classes learning about social good & humanitarian projects in the realm of Open Source. HFOSS - Humanitarian free and open source software - is an initiative in which open source is used to solve humanitarian problems around the world. COVID-19 open efforts is one exemplary example of HFOSS today. With the shortage of PPE, life-saving equipment, and testing, individuals have come together to address these issues via ventilator designs, rapid test kits, and data transparency. In this way, open source software is not only helping our medical workers on the front lines of the pandemic, but is saving lives.
Living in the epicenter of the COVID-19 pandemic is scary and overwhelming, especially when > 90% of the news coverage revolves around my home - Queens. The borough, which is home to many hardworking families, is being hit the hardest because of the lack of support for these underserved communities. Most families are living paycheck to paycheck to make ends meet, and unfortunately, don’t have the privilege to work from home. Thankfully, many organizations and individuals have made donations to relieve the financial burden of working, low-income families due to the virus.
This week, I had the opportunity to learn more about Wikipedia and its purpose as an open encylopedia, listen to the contributions and progress of other group projects, and most importantly, make our first pull request to OpenFoodFacts!
First steps into OpenFoodFacts
This week, my group and I had a zoom session to install the development environment needed to start contributing to our project- OpenFoodFacts. However, we felt overwhelmed by the installation guide provided on their website. To start contributing to the project, we need to install “Product Opener”, which is the software that is used by openfoodfacts to create and maintain its food database. But, this program required a lot of dependencies and modules (e.g. Perl) that we were unfamiliar with. My team and I spent a long time trying to dissect the guide into understandble bits but even so, we knew we were stuck. Fortunately, Openfoodfacts’ slack had a channel solely dedicated to Product Opener, and in there, we were able to find another installation guide that enables contributors to install a ready-to-use development environment. Using Docker, we can use the virtual machine that has all the required modules pre-installed. This installation guide is a precious resource and would save new contributors time if it was linked in the readme. Despite finding this file through slack, we realized that it had been inside of a “Docker” folder within the repository the whole time. But even so, individuals unfamiliar with what docker is, like myself, would forgo looking into that folder. Therefore, we thought it’d be a great idea to create an “installation” folder within the repository that holds the docker installation guide and the regular installation guide found on the website (in an .md file) to make them more accessible to new contributors. As of today, we’ve been in touch with the admin via slack on ways we can contribute and have submitted an issue for the documentation trouble.
One of my goals for this class is to learn more about Git version control. Although I know Git basics (e.g. add, commits, pull requests), I don’t understand why they worked the way they did and why I always got weird
<<<< HEAD comments on my files when a merge conflict arises. This week, our lecture was dedicated to helping us understand git version control, enough to prepare us for our final project contributions.
Importance of Preservation
Software preservation is essential for future generations. This week, we had another opportunity to learn from speaker Vicky Steeves on how data drives GLAM communities and how important it is to preserve software. GLAM (e.g. Galleries, Libraries, Archives, Museums) are underfunded institutions that rely largely on open source software to continue doing critical work. The contributions behind these open source softwares also come from individuals in these institutions who care about data and code.
This week we had the opportunity to not only look at great examples of open source projects, but hear how involved open source software is in the financial sector. Now that we’re almost halfway through the semester, we have to start thinking about what projects we’d like to contribute to. With the knowledge I gained from the Project Evaluation activity and the Open Source Talk, I am better equipped to find impactful open source projects.
This past week, we had guest speakers Deena Engel and Vicky Steeves talk to our class about open data. From how data is organized to where to look for open data sets, each one of us became equipped with valuable knowledge that we’ll use in future data-driven projects. Now, what exactly is open data? How is it any different than proprietary data?
Since last week’s post, StudyBuddy has undergone great change in functionality. Initially, our vision was to create an extension that allowed users to set a designated study time so in this way, the extension would block sites autonomously. However, with the time crunch of having a presentable product, we ultimately decided to settle for a manual way to stop and start site blocking. Although this feature wasn’t made in time for our class presentation, we still have the goal of integrating time and making it easier for our student users. Our extension project is open source, so if anyone would like to integrate this time feature can do so through a pull request.
Throughout the past few days, my team and I have been working on an open source browser extension that would enable students to improve their study habits. At first, we had trouble coming up with ideas until we realized that we all had a bad habit when it came to studying. We had trouble focusing and staying on task because we would either check our social media or do online shopping. From there, we brainstormed features for StudyBuddy:
An extension that “helps you not fail by blocking access to sites that distract you from studying.”
What is open source?
The first thought that comes to mind with the term “open source” is collaboration. An open source project is readily available to anyone and can be changed to meet the needs of individuals who (or will) use it. With open source development, there are greater opportunities of creating a tool that reaches a wider audience. In the tech industry, the most powerful and thriving field is Artificial Intelligence. But, it is also the most vulnerable to bias.