Week 9

Guest Speaker, Kevin Fleming

March 26, 2020 :clock10: – Kevin Fleming’s Visit

This week we had our first guest speaker, :star: Kevin Fleming :star:, member of the CTO Office at Bloomberg LP. He joined us on Zoom and talked about Bloomberg’s involvement with Open Source Project. I heard about Bloomberg a lot, but I didn’t know much about the connection between Bloomberg system and its users. It was surprising to know that many people need Bloomberg system to do their jobs, and when Bloomberg system is down, people couldn’t sell or buy bonds. He also gave a brief story on how Bloomberg transitioned from using proprietor software to open source software. The first open source project that they worked on is Apache Solr. Open source software is a better choice because it allows them to add new features, debug errors, and at the same time not worrying about it might be out of the business.

I was impressed by the contributions that the Bloomberg team have had made. For example, in project Jupyter UX Design, they had users coming in and let them do some activities with the user interface, such as asking them look for certain information or section on the screen or ranking the menu bar. As a result, the data they received and concluded from the activities helped them decide how to increase usability and effectiveness of the JupterLab user interface. Similarly, Bloomberg team also worked on adding JavaScript ‘private fields’ in TypeScript. Overall, if their requirements cannot be met directly by the tools they use, then they would find a way to contribute to make the project more efficient and utilizable for the user community.


They Might Never Tell You It’s Broken

When I read up to the part where the author mentioned a few reasons why people won’t report the problem, my first impression was is he talking about me? :fearful: I thought only the new contributors would feel this way because they are hesitating to ask for help. I totaly agree with what he said about the software set-up, “If your software requires the user to perform 20 steps to get it running, you’ll be losing potential users even before they have a chance to figure out if it works on their system or no.” A long installation process or a unclear installation instruction does frustrate both the users and the contributors.


Next.js Progress

[Thursday, March 26, 2020]

:clock930:

Michelle found couple grammar mistakes and typos in the Next.js repo and added to our Google Docs, such as “libraray” instead of “library”.

:heavy_check_mark: Look for typos or grammar mistakes in Next.js repo


[Friday, March 27, 2020]

:clock7:

As I mentioned before, we though adding the resource links, such as the Next.js handbook and the Next.js community chat channel, on the repo can be a great contribution choice. When I look at the Next.js README, I think it will be a good place to add those links, similar to the labels “JOIN THE COMMUNITY”, which directs to the GitHub Discussions.

:heavy_check_mark: Look for possible place on repo to add resources links

After reading other classmates’ blogs, I saw Gillian Pantaleon’s blog on how her team drafted an issue to ask for clarification of certain issue. Many Next.js issues are somewhat challenging to begin with. Drafting an issue or a discussion post is definitely a good idea to start with. This reminds me of what Kevin Fleming was saying, “working on an open source project is a collaborative process”. When you have an idea, it’s better to talk to the community first, share your thoughts, maybe there are people who have the same thought as you and want to work with you.

:white_large_square: Pick an issue


:clock1:

Next.js repo has a directory that stores many different example projects. My teammates also suggested creating a new example project as our contribution. I started to look into couple examples, such as amp and with-storybook.

:heavy_check_mark: Look at existing example projects by running them and deploying them

:white_large_square: Come up with some ideas to create an example project


[Saturday, March 28, 2020]

:clock10:

In our Google Docs, I divided the list of ways to contribute into two categories: “Easy to start”, and “Advanced”. I also continued working on the interactive tutorial on Next.js website, and I’m half way done with it. This tutorial allows me to be more familiarized with Next.js and helps me to come up with ideas of JavaScript application.

:white_large_square: Finish the interactive tutorial

:white_large_square: Skim through Next.js handbook


:clock2:

I decided to start changing or adding the link on README.md like what I’ve mentioned before. I remembered from the class that we should create a new branch as our first step. When I pushed my branch to GitHub, my terminal showed permission denied. I thought I did something wrong, so I created a SSH key on my laptop by following this link and cloned the project again with SSH. It still didn’t work, then I ask my teammates. It turned out to be that my teammate needs to give me access to write. I saw Shania named her branch “fix-with-aphrodite-typo”, which clearly explains on what she’s working on. As a result, I decided to renamed my branch to “changing-adding-links”, so I deleted my old remote branch and pushed a new branch.

When I opened up README.md, this is what I saw:

 <a aria-label="join us in spectrum" href="https://github.com/zeit/next.js/discussions">

The label is “join us in spectrum”, but the link is directing to the GitHub Discussions. I thought this might be great opportunity to do a PR by changing the link directing to the Next.js spectrum chat channel. Even though that’s a minor change, I feel excited and nervous when I was creating my first PR. I recognized some difference between the PR we did in class and the PR that I just opened. Whenever I opened my pull request to my classmates, no error will be shown, and within 10 seconds it would state something like can be merged without conflict. When I opened my first Next.js PR, it had to go through many tests to check if it can be built, tested, and deployed successfully. I know that it will pass all the tests because I only modified README.md. It was only THREE MININTUES later after I opened a PR, one of the core contributor reviewed it and left a comment! :open_mouth: He said the community is acually the GitHub Discussions, so he modified the label to “join us in GitHub” instead. I committed his suggestion, and he approved my PR. :smiley:

At the same time, Shania’s PR and Michelle’s PR also got approved within in couple minutes. :clap: :clap: :clap: After merging the PR, I pulled from upstream, fixed merge conflict, deleted remote branch, and pushed back to origin. Overall, things went well except the part when our team kept writing to the canary branch via merges or commits while working on it. As a result, we had to re-fork the project and added some security measures to the repo. Anyway, that was a good start!

:heavy_check_mark: Open a PR

P.S. I added couple emojis on this blog, and it was inspired by Shania’s blogs. She also assisted me on displaying them on my blog through a PR.


Wikipedia Contribution

I added an image of AliExpress on Wikipedia. I also uploaded a photo of my guinea pig on Wikimedia Commons. I was going to inserted it in Guinea Pig, but the article is semi-protected, so I don’t have access to it. I also added an image of on Hello Kitty article.

I find it hard to look for a relevant and clear image on Wikimedia Commons for the article because there aren’t that many image/photos available to be selected. Also, many articles have a lock icon on their upper-right corner because it’s semi-protected. I understand that it prevents significant amount of disruption or vandalism from new or unregistered users, but I still feel sad that I couldn’t insert a photo of my guinea pig on the article. :disappointed:

Written before or on March 29, 2020