Open source, Week 12
A new week, the third week of the phase, the end can be spotted on the horizon and pressure starts to pile up. This week, may it be because of its timing near the end or because of the holiday season, was a bit slow and frustrating, however, these feelings don’t necessarily mean unproductive, so let’s recap what happened over the last few days.
At the start of the week, I figured I had 3 issue I could work on:
-
Farmbot Webapp: The issue is quite simple; the issue is setting up the Ruby on Rails environment. Since the owner provide a script for an automatic setup on Ubuntu, I could take a shot at setting up a virtual machine.
-
Prettier: An issue regarding an unexpected behavior when adding comments inside of a function. The main difficulty with this one comes from understanding exactly how the parsing algorithm worked.
-
Zulip: An UX issue in which a hotspot appears on top of other elements which it shouldn’t, the fix should only imply modifying the z-index value of a couple of components.
That was my outlook at the start of the week, and as plans most often do, things didn’t turn out as expected.
Upon my initial assessment, I figured out that setting up a virtual machine would be the most complicated task, so I put that task aside. Next up, I decided to reproduce the issue from the Prettier repository, as well as understanding how to set up the development environment and do some tests. After accomplishing this however, I encountered a roadblock, as I wasn’t really sure where to look for the problem. After burning myself out, I decided to move on to the Zulip issue, downloading the client and reproducing the issue both in the web and desktop apps. After fooling around a bit, I read the documentation a bit more in detail only to find that a development environment shipped with the repo. While setting it up, I found out about a service called Vagrant, which is a tool made with the intent of supporting and facilitating the shipment of virtual development environments, in this case docker, and which I can say it serves its purpose quite well, as setting up the docker image was quite easy. With the environment ready, what happened next was a bitter reminder that even when we think we know how and why something works, these expectations and intuitions are just hints, not answers per se. While working on this I would soon find out that the answer wasn’t as easy as I expected, and changing the z-index value didn’t seem to do much, I quickly grew tired and frustrated.
After taking a few days off, I realized that the issues I was working on, while easy on the surface, required some work to setup and properly fix, but the issue seemed to be that a part of me wasn’t that motivated to work on these issues, and another part of me was worried that I was focusing way too much on JavaScript issues. Realizing this, I decided to focus on searching projects with the second stack I chose: Python. While I don’t have a lot of experience using python, I know this language is quite easy to pick up, as its syntax resembles the English language.
I started working on a project called Open Library, and I picked a fairly simple to understand issue; a list of books, editions and authors, in which the only option that had a functional export function was that of the books. While I thought the problem would be fairly easy to comprehend and fix, I received a reminder of the objective of this phase: understanding other people’s code. The code I encountered was way more confusing, complicated and interconnected than I expected, which made this simple task I had in mind into a more challenging and interesting task than what I had anticipated. At the moment of writing this, I’m getting near to figuring out a solution with the knowledge I’ve acquired of the inner working of this repo, as well as the Solr tool used to execute queries inside the project.
So, while this week didn’t see much progress made, I feel better prepared to tackle the last week of this phase and fulfill the expectations and goals set for myself at the beginning. On a final note, the PR I submitted last week for the Math.js repo was successfully merged during the week, which filled me with joy and satisfaction with the work I put in, but as well with gratitude towards the open-source community, as since this phase started, I’ve been met with nothing short of absolute encouragement and guidance from other members in order to find my way around. I will elaborate on these thoughts and feelings in the closing week; however, I can say now that this phase has helped me break through the fear of not being good enough to collaborate on open source, and I feel like this has been a great step forward.
May this new year be filled with challenges and opportunities, and hopefully, our goals shall sooner or later be met. Happy new year! =)