Week 15

Watching everyones’ presentations this week has been really awesome. I really enjoyed getting to see what everyone else has been working on for the whole semester and the progress they were able to make. I was particularly interested in the Godot presentation. I used to be into game development and used Unity extensively. I would love to get back into game development and would consider using and possibly contributing to Godot in the future. I also liked seeing other groups’ progress on projects that I have personally used and still use, such as FreeCodeCamp and Pandas. I was also happy with my group’s progress over the course of the semester. I think that things started off slow while trying to make MuseScore work. In retrospect, we should have changed projects much earlier but we sort of stubbornly tried to make it work. I think that I can take this as a learning lesson to not ignore red flags in a project down the road. However, we were able to last minute switch our project to Oppia and make some meaningful progress. I plan on continuing contributing to the project.

Read More

Week 14

This week’s class discussion on open source projects that were not software related was very interesting. I never have thought about how open source can be applied outside of the software world. For this assignment, I chose to look into Open Source Malaria, which works on providing an open source solution to developing a cure for malaria. Other people in the class talked about many different projects such as Open Source Pharmaceuticals, Open Source Malaria’s parent project, Open Bionics, which seeks to develop prosthetics in an open-source way, and Project Gutenberg, which is an open source library project. This week, my group has made a lot of progress for our open source project. I successfully made and merged a PR for a code change and am now looking for other issues to take on. My group members both have working solutions for issues but have yet to be assigned the issue. Once they are assigned the issue, they are both ready to make a PR. While waiting to be assigned, they are actively looking for other issues to take on.

Read More

Week 13

I thought that the lessons from the essay “The Cathedral and the Bazaar”, by Eric. S Raymond were both extremely interesting and very valuable to a programmer such as myself. In its essence, the essay explores the fundamental shift in attitude towards open-source projects after the creation of maybe the most famous open-source project to this day, Linus Torvalds’ Linux. Raymond writes about not just the markers of a good programmer, but the markers of a good “hacker”, from which much of the concept of open-source derives. Raymond says that Torvalds contributed to the shift in attitude towards open-source development by using the method of “bazaar-style” creation as opposed to “cathedral style”. By this, he means that Torvalds did not try to frame all of his desired functionality himself. Instead, he treated all users as prospective developers, allowing anyone to propose new functionality and make contributions. This management style allowed the project to take on a life of its own, creating functionality that Torvalds would never have initially imagined. As Raymond puts it, “Treating your users as co-developers is your least-hassle route to rapid code improvement and effective debugging”(CATB 3). Today, we see that lots of open-source software operates using this method of “bazaar-style” development where users can propose new features and make contributions to other feature requests. Another point that Raymond brings up about how Linux underwent such rapid development is by securing a large number of users and developers. This allows a project’s issues to be reported and fixed rapidly. On top of this, Raymond encourages developers to release often, instead of waiting a long time to make sure a particular version is bug-free. He says that with early and often releases, which incentives developers to create and become more interactive. He claims that his way, bugs get found more quickly, features get added more rapidly, and developers stay active. I think that many of the themes and lessons from this essay are important to anyone wanting to become more active in the open-source community, and serve as a great guidebook for principles to follow when creating.

Read More

Week 12

I thought that Christopher Snider’s presentation on Tidepool was extremely interesting. I think that Tidepool as a company, particularly the upcoming Tidepool Loop app, is extremely compelling, and has the potential to revolutionize lifestyles of diabetics. I believe that patients should be able to see and monitor their medical info much more openly and easily. Tidepool Loop is a step in the right direction, allowing diabetic patients to monitor their insulin levels as well as administer insulin automatically. Furthermore, users have complete access to view all of the source code of the app, so there is full transparency as to how the underlying code works. Many existing methods for insulin dosing are closed source, so users are kept in the dark about how the device they are using is operating. I think that Tidepool Loop becoming popular will pave the way for future open-source medical apps.

Tidepool, as an open-source project, behaves slightly differently from other open-source projects we know. While all of the code is accessible and viewable by the user, users that are not part of the core contributor team are unable to make code contributions. Thus, unlike other open source projects, not everyone is able to make a contribution. While some may see this as a detriment, I think that this is probably necessary due to the rigorous testing and domain-specific knowledge that is required to write code that is responsible for people’s lives. NASA also operates under a similar philosophy, where all code is free and open source, but only people within the organization can contribute.

Read More

Week 11

The discussions in the videos around Innersource and using open source for business are extremely fascinating to me. In particular, I found the discussion about how the film industry has incorporated the use of open source to streamline problem solving. In the discussion, they talk about how in the 90s and early 2000s, before the film industry had really started to incorporate open source, nearly all software they used was proprietary and prohibitively expensive. In 2003, the project called OpenEXR really brought the use of open source to the film industry. Because the project was open source and solved a problem many people in the film industry had, it became very widely used. Now, projects such as Blender and OpenEXR are widely used by the film industry and allow smaller projects to be created without the prohibitive costs of similar proprietary software. This week, I have been bogged down by many errors in my development environment. Now, I have fixed these errors and can press on and attempt to create a PR, which I would like to have done by Wednesday. I was having two main issues. One, my Qt creator, the IDE that the project is recommended to be developed on, was crashing and throwing all sorts of errors that I was unable to fix for a while. Upon being opened, it would throw many errors, time out, and crash my computer. As it turns out, after researching similar issues online, the fix for this issue was very simple. I needed to run a simple command in my terminal to make my .config file on my mac able to be written to, as it is read-only by default. Running this simple command to make the file read/write fixed all the issues I was having with Qt. My second error was a build error that I randomly started to have. It was due to one of the dependencies, which I had installed earlier, which must have been deleted somehow. I failed to recognize the error as a dependency issue and thought that I was somehow missing a file. After many headaches trying to figure out why the build was failing, it turned out all I had to do was re-install the package using homebrew. Now, once again, the project builds correctly.

Read More

Week 10

This week, I have been working with my group on finding issues on the MuseScore repository that seem doable and approachable. We have also been getting in contact with the maintainers of the MuseScore repository in the discord, discussing possible starting points and feature additions. I have now been assigned an issue that I told the project maintainers that I would be happy to take on. My first issue that I will attempt to tackle on the MuseScore repository is that a specific function called accidentalType, when called, does not return an integer. I am going to investigate the issue and attempt to remedy it.

Read More

Week 7

Learning about the origins of open source has been fascinating to me. I find it very interesting that in a world driven by profits, so much software exists created without the concern of making money. Many of the pioneers of the Open Source world, such as Linus Torvalds, Danese Cooper, and Tim Berners-Lee, created projects out of genuine interest and a desire to make software more accessible and transparent. The open source paradigm also makes it relatively easy for small personal projects to gain the rapid interest of other enthusiasts and quickly grow into something much bigger. Linus Torvalds started Linux as a personal project in his dorm room, but grew into one of the most influential operating systems and pieces of software ever created. While my group has not picked a specific project yet, we have a very narrow list and a pretty good idea of the type of project that we would like to work on. Right now, we are in between choosing Pandas, MuseScore, or Jupyter Notebook. Most of us in our group have an interest in music and/or data science, and these projects seem to allow us to merge those interests with open source. Also, all of these projects seem very approachable for us given our skill sets and have very active communities, which we value.

Read More

Week 6

I have thoroughly enjoyed looking through all of the different projects. I find it fascinating that there are open source projects relating to nearly every subject matter and in every field. There are so many options of choices of open source projects to contribute to that it can be overwhelming. In regards to working on an open source project, I am most excited about contributing something to a project that I have used before. My main choices right now are MuseScore, which I have used extensively to find sheet music, and Pandas, which I have used in the workplace and in school to analyze datasets. I think my biggest hurdle will be finding issues that I can meaningfully tackle with the knowledge that I currently have. I plan on reading lots of documentation and combing through issues to find problems that I will be able to tackle.

Read More

Week 5

This week, I chose to watch the videos about open source technology for education. I thought both videos were very enlightening and opened my eyes to an application of open source technology that I had not previously considered. The videos mainly focused on textbooks that are created as Open Education Resources, specifically through the project OpenStax, founded by Richard Baraniuk, a professor of engineering at Rice University. The textbooks through this project are all publicly available for free, which is a complete game changer for countless students who may have struggled with current extreme costs of standard textbooks. These textbooks have enormous possibilities and prevent students from spending additional money on new textbooks each semester. Furthermore, since these textbooks are open source, they are able to be copied and modified by any professor who chooses to use them in class. This allows professors to modify certain chapters and information to better suit their specific needs for teaching the course. This modifiability allows specific textbooks to be used in possibly significantly more classes than traditional textbooks as professors can customize the information to suit their lesson plans. I am excited at the prospects of what open source technology can bring to the classroom in the future.

Read More

Week 4

Working on the firefox extension project as a group was an overall very good experience for me. I enjoyed the collaborative aspect of the project and how we were able to split up tasks and delegate them out. Most projects that I have worked on in school have been solo projects, so it was cool to see how much faster development of the project went with more people. I personally did some of the design and worked on a lot of the underlying JavaScript code for the alarm clock. After completing the extension, I know many more things than I did before. For one, I know the basic process of creating a Firefox extension using a combination of HTML, CSS, and JavaScript. I would like to in the future work on another Firefox extension or attempt to make my own. I also very much enjoyed watching other presentations and trying out other groups’ projects. My favorite extension among the other groups was the pomodoro timer extension. I think it is designed super well and very intuitive to use. When I am studying or doing a lot of work, I very frequently utilize a pomodoro clock to improve efficiency. For that reason, I will certainly use the pomodoro clock extension in the future.

Read More

Week 3

This past week I have worked with my group to create our browser extension called insult reminders. This is the first open source project that I have worked on as well as the first browser extension I have tried to make. It has been a little bit difficult to style the browser extension as well as to get the html to correctly update with the JavaScript but it is doable. This has been a great learning experience as I have been able to practice working on a team with an open source project. I am excited to continue to contribute and develop this project. The in-class activity on git was very helpful. While I have used Git before, I have not thought critically about what each command is actually doing. I have only ever been a collaborator on a project, so I have never had to deal with upstreams and forking repositories which I found can add a layer of complexity to using Git.

Read More

Week 2

I think that having a code of conduct in an open source project is extremely important as it outlines a set of standards that users are expected to abide by. It also creates some sense of accountability to enforce these standards for all contributors. I think the existence of a code of conduct makes projects more open and approachable. I would be hesitant to contribute to a project that lacked a code of conduct. While enforcement of the code of conduct is difficult, I do feel that it is most likely achievable in a lot of cases, especially if the project is large enough to have a group of people investigate and respond to violations of the code.

Read More

Week 1 - Introduction to Open Source

When I hear the term “open source”, I think about the countless technologies the paradigm has brought us. From languages such as Python to information sharing websites such as Wikipedia, Open Source has worked wonders in advancing all corners of technology. There are numerous benefits to a particular piece of software being open source. For one, since the practice is not inherently profit-driven, the people working and contributing to it are usually doing so out of genuine passion for the project itself. Contributors to an open source program are very often the users of the piece of software themselves, adding features that they as a user wish to use. Open sourcing software allows users who know and love a project to make changes that users want to see. Open source can also lead to more secure pieces of software because the source code is available for everyone to see, allowing bugs to be found and corrected hastily. The non profit-driven nature of open source can of course have some downsides too. Sometimes, projects can lack enough developers to continually develop it, especially if they are not particularly large. Since there is no one on payroll for open source projects, there can be a lack of incentive for contributors to make deadlines which can often lead to projects fizzling out over time. However, with enough passionate developers, projects can and are regularly kept up to date and widely used. I chose to take this class out of a real interest in open source technology and a desire to contribute to projects that I have used or would like to use. I have never previously contributed to open source projects before taking this class but would love to get actively involved in the space. On a daily basis, I use a plethora of open source software such as Wikipedia, which I turn to for information about virtually any subject, Python, which I use for coding in the workplace, for fun, and at school, Firefox, which I use and love for browsing the internet, and Audacity, which I use for recording and editing audio.

Read More