Week 14

Reflect on Presentation

This week is the Group Project Presentation week, I learned about many open source projects from other groups. I think the most interesting one is the Gitlab. They contributed to a different platform as all the other groups contributed to some projects on GitHub. So they gave us a different view about the open source community. Also, they switched their project in the very beginning when they realized that the first choice was not that good, just as what happened to our group. Spicetify is also an interesting one, they implemented an application on Spicetify, I love their implementation of UI, it’s very attractive to me. Also, one group chose FreeCodeCamp, and it was impressive when I learned that FreeCodeCamp doesn’t accept very large PRs, they want each PR to only make some small changes. Then I checked the github repo of FreeCodeCamp and found that they already have more than 36000 closed PRs. For such a complex project, I think this is a wise choice. I guess this is because the community wants to keep every change easy to track. If the website crashes after some merges, they can easily find the PR that causes the bug and revert it.

Read More

Week 14

Reflect on Class Discussion

From our discussion about Open Source in other areas, it’s happy to learn that Open Source is also used in many other industries. Such as Open Source Cola provides non-commercial recipes of cola, and Open Source Film provides films that meet the open sources and free cultural licenses so anyone can view, edit, and recreate from these resources. But the most interesting and impressive one is the Open Source 3D Printer, this project allows users to print items on their own, so you can even print components for another 3D printer. Open Source is not only used in the software industry, it is also widely used in different aspects of our life.

Read More

Week 13

Reflect on Discussion about The Cathedral and the Bazaar

Before our discussion about The Cathedral and the Bazaar, my favorite one was “Good programmers know what to write. Great ones know what to rewrite (and reuse).”, and after the discussion, I added another one to my favorite lesson, “Release early. Release often. And listen to your customers.” This one shares some similarities with the agile development model, we can move fast under this pattern and accept advice from clients or customers. A very similar quote to this one is “Treating your users as co-developers is your least-hassle route to rapid code improvement and effective debugging.” So I think the critiques from users are much better than no comments.

Read More

Week 12

Reflection on Presentation by Christopher Snider

This week we had another invited talk from Christopher Snider. Interestingly, he talked about open source in an approach closer to business instead of technology, this is kind of similar to the talk from Gil Yehuda, he also shared the ideas about open source from more likely a business approach. If we can have some more invited talks in our class in the future, I hope to hear the discussion more focused on technical aspects.

From his talk, we learned about how Tidepool works. When we compare the use of open source by Tidepool to enterprise, I think it is the purpose of using open source. In enterprise, they have to deal with profitability, but Tidepool is a nonprofit organization, as from their website, their mission is to “make diabetes data more accessible, actionable, and meaningful for people with diabetes, their care teams, and researchers”, they also mentioned that they “Always put people with diabetes first”, but I think it is impossible to achieve this in enterprise and business, they have to focus on earnings. Thus, I think Tidepool is more transparent and closer to the diabetics.

Read More

Week 11

Reflect on “Why should you have an Open Source Program Office?”

In this video, the two speakers are Nithya Ruff, Executive Director of the Open Source Program Office of Comcast and chair of the board of the Linux Foundation, and Gil Yehuda, Head of Open Source Engineering and Technology at U.S. Bank. They shared a lot about the importance of the Open Source Program Office in their companies. In the beginning, the host Dave asked them a question, why their companies need an Open Source Program Office, as they are not some tech company. In Gil’s response, he mentioned that nowadays banks also have a lot of digital data, such as money and transactions, so in some ways bank is also a tech company and they need an Open Source Program Office. His response is not really convincing to me, because if we consider a bank as some sort of company because they also have digital data, this only proves that they need an IT Support department, this cannot prove that they need an Open Source Program Office. But for most of this video, his ideas are very interesting, especially when he mentioned that “Open Source forces engineers to do better”, as engineers knew that their code would be an Open Source project, they started to write better documentation, unit tests and comments :). Also, I agree with his idea that Open Source allows making engineers better, as they are both humble enough to accept issues and PRs and also bold enough to share their code, even if it is imperfect.

Read More

Week 10

Thoughts of Our Group Projects

Our team had three meetings this week, one in-person in Wednesday’s class and other two online. For this week, our group explored two issues from github. For the gif animation bug, Brad requested for working on this 5 days ago, but he haven’t been assigned to this one till now. For the other text alignment issue, Robin shared his understanding in the comments. We are also trying to find some issues in this projects, as Rodin suggests that this projects seems does not support displaying Chinese characters, but as I researched that it is related to the font in this project. If we add a open source font that supports Chinese characters, then it is ok to display.

Read More

Week 8

Midterm Progress

So in the first half of the semester, we learned about what is open source, the history of open source, and what part should an open source project include, such as the Code of Conduct and a License. And we also have some group work, my favorite one is the Browser Extension one. Because in this project, we finally released the extension to the Firefox marketplace and received ratings from other users. I am very happy and surprised that someone else is using our extension and give positive feedback. So it is not only a classwork by ourselves, now this extension can become a part of someone else’s life. This makes me very proud of it.

Read More

Week 7

Thoughts of Origin of Open Source

I think that the origin of open source is interesting. In some ways, such a great movement was triggered by an annoying printer. Start from Richard Stallman, then pushed by different individuals, such as Linus Torvalds, and Tim Berners-Lee, now we can enjoy the fruit of open source. I think every individual who ever worked or still works in an open source project should be respected and praised because running or maintaining an open source project takes a lot of time and effort. For instance, a very useful open source project for me is Summer2024-Internships, it is a collection of summer internships for 2024, we can find a new job and post it on the list, and we don’t need to search for new internships around LinkedIn, Indeed, Handshake… This is maintained and updated by thousands of individuals, I really appreciate them for saving me dozens of hours. And I started to contribute to this project, I found some closed job applications in their list, and I made issues to report these applications and remove them from the list.

Read More

Week 6

Open Source Project Thoughts

This week I checked three open source projects, Anubis, React and FreeCodeCamp, I realized that maintaining an open source project is not easy. For example, Anubis has a bunch of invalid links in the website, this will make contributors even harder to join the community. As for React and FreeCodeCamp, they have full-time developers to maintain these projects, so they are doing better in this part. As we search for some tools over GitHub, it is a common scenario that we find a relevant repository, but it is no longer maintained, so the repository may have some bugs, or is no longer available. Maintaining an open source project is not that easy, it requires patience and concentration.

Read More

Week 5

Open Source: Food Computer

Food Computer

I watched the Food Computer video this week, and I am impressed by the combination of computer science and agriculture. I know some examples of IoT, but most of them are in the city, and through this video I learned more about the usage of computer science in agriculture. Also, in the Farming for the Future video, developers from different places work together and share their ideas, they can discuss the difficulties and share their solutions through open source technology. The open source platform can be a great place to share and discuss the ideas. I think as a computer scientist, we can develop the technology and lower the cost of them to customers. As in the video it mentioned that a set of food computer may cost millions of dollar because sensors are expensive. If we can optimize the technology in these areas, I think the food computer can be used more widely.

Read More

Week 4

Browser Extension

Group Work

During the browser extension project, our team had a great time. We divided the tasks into three parts and everyone in the team can contribute to the best of their ability. For me, I implemented the Firefox pop-up part. I also tried something new because I took part in the non-coding part. I implemented the contributing file and code of conduct, I am also happy to see that some of my classmates contributed to our project by following the contributing guidelines. Some of them found issues in our add-on, and they also started to fix one of them by creating pull requests. Learning how to maintain and run an open-source project is something new to me.

Read More

Week 3

Git Exercise and Browser Extension

Git Exercise

Before our class activity, I would say that I am kind of familiar with basic git, but when I faced a merge conflict, I just became nervous and wasn’t sure if I could solve the problem. During this week’s class, we reproduced the merge conflict scenario and solved it step by step. Now I can solve similar situations more confidently.

Read More

Week 2

Code of Conduct

Importance of Code of Conduct

Why would we need the Code of Conduct? I think the Code of Conduct is just a kind of moral restrict over the developers, it is not a law or a clause. If we want to maintain one project and there are a bunch of developers, we need these conducts to restrict them and make the community a place that is conducive to discussion rather than full of arguments and conflicts.

Before learning this topic, I didn’t realize the importance of the Code of Conduct, but after these, I knew that the Code of Conduct can also be very easy, it can be based on some other Code of Conduct, so I am also thinking about adding the Code of Conduct for projects that I am currently maintaining.

Read More

Week 1

When I hear the term “open source”, I think it should focus on the word “open”, which means the code and program should be open to the public. Because of this, a great difference between open source and closed source is that closed source software keeps the source code inaccessible, users don’t know what is happening behind the screen. But there are also some potential problems with open source, such as the lack of maintenance. Sometimes we search for a specific software on Github, and we may find a project but the maintainer no longer updates it, then it is just left there.

Here are four open source projects that I regularly use.

Read More