Week 6: Contributions

Reflections and Goals

I am not exactly sure what project specifically I would like to contribute to yet. It has been tough trying to find a project that balances being active, not being too techincally challenging, and also being interesting to me. Maybe it would be easier if I was a more experienced programmer and understood what areas of computer science I gravitate towards, but I guess now is a good time to explore that. I am pretty open to trying out a project that a group member may feel passionate about, as long as I am learning something in the process. Despite my lack of confidence when it comes to technical knowledge, I know that I will be able to be a good group member who emphasizes communication and consistent progress.

The small contribution have not been going that smoothly, I have submitted a wikipedia page draft for review and am waiting to hear back, but other than that I have been having difficulty finding things to contribute to. When I looked at openstreetmap, I noticed that there was nothing for me to add in my neighborhood and that all the parks and bike trails I know were already there. It may be possible for me to try to do contributions to some of the projects I was researching (ActivityWatch, Xournal++, Anki, Jellyfin, VaultWarden) but most of them seem to require more technical knowledge than what I currently have. By default, the contribution I am most proud of would be my wikipedia one, I wrote a biography about a Japanese animation director and it was rewarding seeing my page come together. It was kind of tedious reading through the wikipedia documentation and making sure that I have the correct formatting, but I understand why it is necessary for articles to be consistent across the website.

Read More

Week 5: Presentations

Extension and Conference Presentations

I felt that everyone did a great job giving their presentations on the extensions they ended up making. Although I do not see myself personally using any of them, I thought the tab down extension was cool and the lobotomy one was also fun. Our group was unable to present this week, but it was cool seeing what ideas other groups had. One of the biggest takeaways I had from this activity is that open source does not have to be some sort of intimidating environment that only the experienced are allowed to participate in. We all created our own open source projects and it made open source less intimidating for me. I definitely want to create a project of my own in the future if I ever run into a problem that I want to solve. Something else that I realized through the group project is that delegating work can be pretty difficult when the implementation road map is not clear. For our group we made a tab color changer and I had a hard time thinking of how we could split the work when it comes to making the simple extension. What ended up happening was I implemented the main functionality and then everyone else added useful features to it. With a small scale project like this I am not sure if there was a way to cleanly and evenly distribute the process of development.

All of the presentations in the OSS conference were well done and informative. It was interesting to see the different approaches to them and the resulting vibes it created. I felt like Kelsey Hightower’s presentation was more anecdotal and like an easy to follow story, Craig McLuckie’s more straight forward and informational, and Linus Torvalds’s to be conversational and low stakes. They all took different approaches to presenting in order to fit their own goals and personalities. I really enjoyed Kelsey’s presentation and felt that it really spoke to the ideals of open source and why people engage with it. I feel like if I was in his shoes and another company basically copied my work and put their name on it I would be frustrated, but his reaction and explanation of the situation was inspiring. Linus was the only person I already knew beforehand so it was kind of reassuring to hear him say that he chose his style of presentation because he does not really enjoy public speaking. I’ve never been the best public speaker and do not have much experience when it comes to group presentations but I have often found that practice and a lot of preparations is the best way for me to feel comfortable going into a presentation.

Read More

Week 4: Git and Version Control

Learning more about git and open source

I’ve never used git much before and only had more surface level knowledge of it so this past week has been a great learning experience. Through the in class exercise and especially through working on the browser extension with my group, I feel that I have gotten way more familiar with the general git workflow. Thankfully have not run into any merge conflicts or anything, probably because the extension is a more simple project. Learning git feels like one of those useful skills I will take with me outside of college, unlike what I learn from some other courses.

It has been kind of tough looking for a project I would like to contribute to. The difficulty mainly stems from balancing factors such as my own inexperience, finding open source projects that I actually use, and seeing if they have an active community or not. I think I end up interacting with a decent amount of open source projects through using linux and self hosting stuff, but most of these projects are pretty robust and have very niche or difficult issues. Although I use services like Jellyfin and Vaultwarden, I do not have enough knowledge on related topics to make a meaningful contribution. Recently I looked at a time tracker and window manager that I used a little on my macbook, but they don’t seem that active and I stated using my linux laptop as my daily driver. For now I will keep on searching for possible projects to contribute to.

Read More

Week 3: Browser Extension Project

Team Green Progress

Team green is off to a great start, we decided on an idea for our browser extension and created a repository for the project. Our current idea is to make an extension that allows you to change the color of your tabs. If all goes well, I think it would also be cool to explore if we can add more color options for tab groups. We have not run into any major problems yet, although we will probably run into some when we start implementing our ideas. My biggest contributions so far were creating the repository, README, and CONTRIBUTING files, although I have yet to add much content to them. I started on the general structure of the README file, but would like to discuss with the group more to have a more robust idea of how we want to execute this. Overall I am excited to see what our group ends up creating and to see how our first project turns out.

Read More

Week 2: Collaboration in Open Source Projects

Code of Conducts and Communication Within Open Source Projects

Code of conducts may seem unnecessary or like common sense to some, but they provide benefits by making sure that everyone is aligned when it comes to values and communication practices. When it comes to open source projects, people from a variety of backgrounds may work together and it is always important to be respectful of different perspectives and cultures. Having a document to clearly define how others should interact with one another offers transparency to those who may have needed it.

Different projects may want to convey different messages through their code of conducts. This is only natural since not every project is going to share the same values. The Go project’s code of conduct attributes the Contributor Covenant’s version but makes some changes of their own as well. Before it uses the original version, the Go project’s code of conduct first talks about itself and its values. They may have felt the need to write about this because the original document did not fully capture their message. Another change that the Go project made was switch out the “Enforcement” section from the original code of conduct with their own “Conflict Resolution” section. The Contributor Covenant had more of a professional/corporate tone and maybe the Go project wanted to write their own version because of that. Another example of changing up the orginal document can be seen with Eclipe’s code of conduct, which also attributes Contributor Covenant. Despite being attributed from the same source, the Go and Eclipse code of conducts look very different from each other. This may have to do with the nature of the projects as Go is a programming language and Eclipse is an integrated development environment. These projects aim to serve diferent purposes and their code of conducts reflect that.

Another code of conduct to look at is that of Sugar Labs. Most code of conducts share a similar message of just being a decent person and the same is true for Sugar Labs. But where they differ from Go’s code of conduct is formatting. This seems mainly due to Sugar Labs attributing their code of conduct from Ubuntu and not Contributor Covenant. Similar things could be said about Jellyfin’s code of conduct. Although the formatting is different, it mostly says the same stuff as other code of conducts.

It seems that cultivating consensus and a sense of transparency within open source communities comes down to proper communication. Understanding that people may come from wildly different backgrounds as you is important when taking other perspectives into account. As open source is not a one person endeavor, it is important to develop soft skills like communication.

Read More

Week 1: Intro

Open Source To Me

When I hear the term “open source”, I think of collaboration and transparency. Open source has more of a positive connotation in my head as opposed to big tech companies that may do questionable things with your data. One of the reasons I love open source software is that it is usually free for anyone to use. Another advantage is that you know exactly what you are getting through the source code unlike with closed source. One disadvantage that I can think of when it comes to open source is that the barrier to entry may be higher than when it comes to using a closed source software.

I decided to register for this open source software development class because I have always been interested in open source and how one would even get started trying to contribute to one. I am hoping to learn that through this class.

Projects I Use

Docker

I have gotten into self hosting recently and Docker allows me to easily host apps that I may have otherwise had a harder time setting up. I have containers always running for the following two projects so that I am able to access them.

Jellyfin

Jellyfin allows me to stream any media that I own through any of my devices and I have found it very convenient.

Vaultwarden

I use Vaultwarden as my self hosted password manager and it has been serving me very well. I have always felt a bit iffy putting all of my passwords into Google password manager, so this option feels a lot better to me.

Vim

I have started using Vim pretty recently and have been getting used to it. I like it so far and will probably stick with it unless I find other alternatives to test as well.

Read More