Week 15 Final Thoughts

What I’ve learned

This week is the final week of OSSD, and it is hard to believe my last semester at NYU is ending already. I decided to sign up for this course after looking at the course websites from previous semesters, and I was excited about the opportunities to meet with all the guest speakers who have a background in open source. Now as the end of the course is approaching, I can say that the talks given by our amazing guest speakers this semester did not let me down, but I’ve also gained much more from the course. For example, knowledge of Git. I noticed there will be many Git practices in this class during registration, but I did not take that into account because I thought I was familiar with Git already. It turned out that I knew nothing (not really, but close), and I learned a lot more about Git branches and rebase.

Read More

Week 13 HFOSS & Open Source Business Models

HFOSS Continued

In Monday’s lecture, we continued our discussion on Humanitarian Free Open Source Software (HFOSS) and I had the opportunity to learn about a lot of cool humanitarian and social good projects. I was very interested in Alex, a tool that catches insensitive, inconsiderate phrasing in markdown or plain text and was did a project evaluation of it with other classmates who were also interested in Alex. I copied and pasted the evaluation template into the online demo and this was what I got:

Read More

Week 12 COVID-19 Open Efforts & Contributions

COVID-19 Open Efforts

In Monday’s lecture we had a discussion on the open efforts regarding COVID-19. The project I added to the wiki page was the COVID-19 Open-Source Helpdesk. I learned about this project on social media half a month ago, and it sounded like an exciting idea to be able to help health professionals with one’s knowledge in open-source scientific computing. However, the project doesn’t seem to be very active, and not many people are actually asking for help on the forum. Compared to GitHub Issues or Stack Overflow, the user base of the project is too small to achieve its goals of offering timely help for domain experts fighting COVID-19.

Read More

Week 11 Wikipedia & Group Stand-Up Reports

Guest Speakers

In Monday’s lecture, we had a discussion on what we think about the talks delivered by our guest speakers. Someone brought up a really interesting point of how the career paths of Kevin and Gil differ. Kevin was the type of developer that people would often think of a “open-source hacker”, and when companies realized they need open source people on their teams, he became a very desirable hire for the companies who want his expertise developed from contributing to open source projects. On the other hand, Gil has a more formal path into the software engineering and corporate world and then started to get involved with the open source world. What they have in common is their greatest passion for open source today despite how different their career paths are, and I really enjoyed their stories with open source.

Read More

Week 7 More on Git & Project

Merging vs. Rebasing

During the lecture this Monday, we continued to lean about Git with a focus on merge vs. rebase and when to use each. From my understanding, merge creates a single commit record by combining the changes in two different branches, while rebase rewrites the commit history by creating new commits which results in a clean, linear project history. I’ve only used merge in the past, and imo I’d prefer using merge in the future as I’d like to preserve the complete history of the project. But it is good to know how the the rebase command as well since it might be useful in work.

Read More

Week 6 Invited Talk & Project Evaluations

Vicky Steeves Talk

This week, Vicky came in again to give us a talk on open source licensing, research reproductivity, and software preservation. It was an informative talk, and Vicky covered a wide range of topics. Here are some that I found particularly interesting:

  • Free software vs. open source software. Vicky mentioned that she prefers free software over open source software, which was an interesting point and led me to read more about the topic (Why Open Source Misses the Point of Free Software - GNU Project - Free Software Foundation).
  • Github restricting accounts based in countries under US sanctions. This is an example of how proprietary software can be unreliable. I can now totally understand why many people were so concerned when Github was acquired by Microsoft in 2018 and decided to migrate to other services like GitLab and Bitbucket.
  • Hacktoberfest. Vicky introduced to us this really cool event, which is a month-long celebration of open source software, and you get a free t-shirt once you make five contributions to the open source community. I am definitely interested in participating this year and win a free t-shirt. (P.S. I saw someone wearing a Hacktoberfest 2019 T-shirt at the crossroads of 6th Avenue and Waverly Place on my way home after the talk. Such an amazing coincidence!) Hacktoberfest
    (src: https://hacktoberfest.digitalocean.com/)
  • The Google vs. Oracle API copyright case. I didn’t realize this lawsuit has been going on for nearly a decade. I’m really curious now if Google will have to pay Oracle $8.8 billion (how many zeroes is that?).
  • Writing documentation — the best way to contribute. I could totally relate to Vicky when she said that her first contribution to open source was writing documentation for a project because she was nervous about making code contribution. The idea of contributing to the code base still feels kinda scary to me, but writing documentation sounds much more feasible (at least you can’t crash the whole system by adding one line of documentation, I guess). I used to believe that code contribution is more important than writing documentation because it should be harder, but Vicky emphasized the importance of documentation contribution. Without documentation, users won’t know what the software does and how to use it, and hence the code will become worthless in some way!
Read More

Week 5 Project Evaluation & Bloomberg Talk

Project Evaluation

During the project evaluation activity this week, our group was assigned OpenEMR , an open source software for electronic medical records and medical practice management as the project to be evaluated. I have always been interested in the combination of Computer Science and Health Administration, so I was very excited to look into OpenEMR. We first looked at the website of the project. The website of OpenEMR is very well-organized, and we were able to easily find everything we needed on the navigation bar and the footer. The website offers 3 fully functional demos to give visitors an idea of what the software is like. I tried one of the demos and it was very well built. There is an active forum where members of the community (both developers and users) post their questions. The website also provides links to the official Slack chat and the unofficial Telegram chat. The “Docs” tab links to a separate OpenEMR Wiki site where demos, manuals, development info, etc. can be found.

Read More

Week 4 Open Data

This week, we had Professor Deena Engel and Vicky Steeves come in as guest speakers to talk about open data. I took Deena’s Database Design and Web Implementation class in fall 2018, so I have some prior knowledge of public datasets and data manipulation. Nevertheless, I still learned a lot from the talk this Wednesday.

Read More

Week 3 Browser Extension Continued

Extension

This week, our group continued implementing the Firefox extension NYU Clock and managed to have a working product by the day of presentation. In last week’s blog post, I mentioned that the clock wouldn’t show the correct time for different time zones, and luckily I was able to fix this issue soon. I updated the visual design of the popup menu to make it look more NYU by referring to the university’s Graphic & Visual Design page. I used the colors from the main color palette and changed the font to NYU’s official font family, Gotham. I also updated the style of the clock by adding CSS text shadow to make it easier to read.

Read More

Week 2 Browser Extension 101

In-Class Activity

During the in-class activity this week, I worked in a team with Kyle Nelson and Fenglei Gu to “implement” our first and second browser extensions (by copying and pasting the code provided by Mozilla). The activity gave me a taste of how a browser extension is created, what files are necessary, and in what fashion should the files be organized. It made me realize that building a browser extension can be much simpler than I have imagined, and even one line of JavaScript code can do the trick (here I’m talking about Borderify). After doing the activity, I felt that I would be able to build an actual browser extension together with my teammates.

Read More

Week 1 Open Source at a Glance

Overview

When I first heard about the term “open source” a few years ago, I thought it was just what its name suggests: making the source code of the project available to the general public. I was surprised find out later that not only does open source allow people to view the code, but also makes it possible for anyone to contribute to the project. To be honest, I have never considered contributing to open source before although I knew that it would be a great way of learning for computer science students, for the reason that I always thought that open source was only for the geeks and programming geniuses. I decided to register for this class after browsing the course websites from previous semesters. What interested me most was that this class could prepare me to become an active participant in open source projects. Besides, it sounded exciting to be able to meet with speakers who are actually involved in the open source community. After the first week of lectures, I now have a more comprehensive understanding of open source.

Read More