Week 4 - Version Control
Version Control
Version Control Systems are important in allowing developers to safely interact with code. It is not a flawless system but it allows for mistakes to be made in a way in which they can be undone which is extremely useful for everyone involved in production.
One can create, initialize, and clone a repository without ever really needing to know git commands by using certain IDEs and github but knowing and being familiar with these commands helps to understand the mechanics of git. For example git status
is a much quicker way of seeing that there are untracked files rather than looking through your repository on github.
Another great command to know is git restore
which allows us to “undo” changes that have been made since the last commit. Furthermore being able to create a branch, work on it, then merge it to the origin later is an amazing tool for large group projects where many changes are being made.
Open Source Browser Extensions
I was recently able to view some open source project presentations that have been newly developed and would love to share some comments about them.
-
Virtual Pet was an exciting project that brought the concept of Tamagotchi to FireFox. Users can feed and care for a mini virtual pet. I liked how in their open source CONTRIBUTING.md they added guidelines on how to frame commit messages. I do wonder if in the future, this extension could allow for the virtual pets to retain their levels even after exiting FireFox and returning.
-
Website Time Tracker allows for users to track their time on any website which could be especially interesting if there was a pop-up telling them they have spent an excess amount of time on a specific site. Within their code I found their code of conduct interesting as it stated “This project adheres to No Code of Conduct. We are all adults. We accept anyone’s contributions. Nothing else matters.”. This is an unusual code of conduct which allows for a lot of potential innovation and behavior from contributors.
-
Quick Notes is an extension focused on efficiency. Users are able to take notes while on a webpage as well as use LATEX. While made with students in mind, it could be a useful tool for those in business, marketing, research, etc. I also like how in their file on contributing they included a current bug that could be fixed.
-
I Did That is a political humour extension that works exclusively on whitehouse.gov. I appreciated how because this is an open source project the creators chose to add a disclaimer clarifying that post spring 2025 they would be unable to accept new pull requests.
-
Browser Scroller automatically reloads/scrolls the content from the top of a webpage. This could be useful for users viewing textbooks or other large pieces of text. The extension also uses simple clean aesthetics emphasizing that this is an extension built for utility. My favorite thing about this project is how the creators included a detailed style guide so contributors could match the current aesthetics.
-
GitHelper is an extension suited for developers, creators, and contributors as it adds a quick reference guide for important relevant git commands. This project included very detailed instructions on how to contribute which I feel is great especially for those who are new to contributing to open source projects.
-
TomatoClock is also an essential extension for students as it allows for easy access to a pomodoro clock. For those who are unfamiliar the pomodoro method is a proven strategy for successfully retaining information. For those who are interesting in contributing to this project, this could be an interesting project as there are a lot of different features that could be implemented.
Takeaway
My biggest takeaway from creating an extension was that settling on a project idea is easiest once you focus on what would be helpful for yourself and therefore what might be helpful to others. Most of the extensions mentioned previously where made by students for students which is why there was so much creativity and effort put into them.
Another takeaway is the importance of a README.md. I found that while looking through these projects a clear yet appealing README.md could effect how interested I was in contributing to the extension. With my own group, we created a logo, added screenshots, and used formatting to make our extension appealing to not only users but also contributors who might be more interested in working with creators that care about the utility but also the appearance and aesthetic of their product.