Week 2: My First Ever Extension

This was my first time ever writing a browser extension. It was not as daunting during, given that we had all the code for the couple runs, but it became daunting when we had to come up with our own.

Given that the point of this exercise was to get a repository up and running, with the proper documentation, I was really excited about putting to use a README template I had found online a while ago. Interestingly, after the previous lecture, I began to pay attention to details like what license it was using. Looking at the project repository, I realized that it was released under the MIT license, which meant that we could release our project under a license of our choice.

However, once we started using code from the Mozilla examples to guide us, I realized we would have to swap our license from the original AGPL-3.0 to the MPL-2.0, because the Mozilla code was released under MPL-2.0 and doesn’t provide freedom of license choice. Overall, it was interesting to me because I would’ve never bat an eye before; but, after realizing how critical these licenses are, I found myself to be more vigilant. It makes me wonder how often projects are released under the incorrect license because they were an extension of a different project with a restrictive license.

This did raise the question of what happens if I am using modifying code from multiple repositories with different licenses: how do I resolve the issue of requiring to release my project under both licenses? Also, if that README template were released under MPL-2.0 or AGPL-3.0, would I have to restrict my project to that as well, even if it just some markdown rather than source code?

Our team started a bit late for our project; as a result, we did pivot from our original idea to make it simpler for us. Originally, we had proposed writing an extension that would replace a sentence of text, that contained NYU, to a togglecase sentence. LiKe ThIs. But, after a bit of discussion we wanted to go with something easier so that we could finish by the Wednesday deadline. We moved on to “dropmoji”, which is a tool that allows you to quickly access some complex ASCII emojis with keywords. It was borne out of my frustration of having to google “shrug emoji” and going to a website to copy it every time I wanted this: ¯\_(ツ)_/¯

I realized that I actually really prefer using slack because it allows you to quickly switch between sub-groups and channels based on what needs to be discussed. Otherwise, this project has sort of thrown me in the deep-end with javascript, which I’ve barely touched in my CS career so far because its just not where my interests lie. But, the great thing is, there is a lot of open-source code out there that’ll help be hack together something, and in the process I will learn!

Written before or on February 9, 2020