<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://ossd-s26.github.io/harrywzl-weekly/harrywzl-weekly/feed.xml" rel="self" type="application/atom+xml" /><link href="https://ossd-s26.github.io/harrywzl-weekly/harrywzl-weekly/" rel="alternate" type="text/html" /><updated>2026-04-01T17:30:58+00:00</updated><id>https://ossd-s26.github.io/harrywzl-weekly/harrywzl-weekly/feed.xml</id><title type="html">Harry Wu</title><subtitle>CS @ NYU CAS, CSCI-UA 480 Student, Spring 2026</subtitle><entry><title type="html">Week 11</title><link href="https://ossd-s26.github.io/harrywzl-weekly/harrywzl-weekly/week11/" rel="alternate" type="text/html" title="Week 11" /><published>2026-04-01T00:00:00+00:00</published><updated>2026-04-01T00:00:00+00:00</updated><id>https://ossd-s26.github.io/harrywzl-weekly/harrywzl-weekly/week11</id><content type="html" xml:base="https://ossd-s26.github.io/harrywzl-weekly/harrywzl-weekly/week11/"><![CDATA[<p>Every bazaar model starts as a cathedral. A core team must build the base before opening the project to the public. AI tools for writing and reviewing code speed up this process. By making it easier to code, AI makes the opensource community open to everyone. This allows people with different skills to join the bazaar.
<!--more--></p>

<h3 id="contributions">Contributions</h3>
<p>For my personal work, I am writing a script to unpack the recent Claude Code 2.188 npm leak to look at its parts. For our group project on the Pandas repository, we have multiple pull requests open. The main issue is that the maintainers have not reviewed them yet. Most of our pull requests have been open for weeks, so we plan to ping the maintainers directly to get them merged before our class ends.</p>

<h3 id="thoughts-on-other-groups-contributions">thoughts on other groups contributions</h3>
<p>The nanobot group has made solid progress on their project. Their work fixing the integration for the Alibaba LLM is very practical. I recently used this model on OpenRouter, so I know that solving these integration issues is a helpful contribution.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[Every bazaar model starts as a cathedral. A core team must build the base before opening the project to the public. AI tools for writing and reviewing code speed up this process. By making it easier to code, AI makes the opensource community open to everyone. This allows people with different skills to join the bazaar.]]></summary></entry><entry><title type="html">Week 10</title><link href="https://ossd-s26.github.io/harrywzl-weekly/harrywzl-weekly/week10/" rel="alternate" type="text/html" title="Week 10" /><published>2026-03-27T00:00:00+00:00</published><updated>2026-03-27T00:00:00+00:00</updated><id>https://ossd-s26.github.io/harrywzl-weekly/harrywzl-weekly/week10</id><content type="html" xml:base="https://ossd-s26.github.io/harrywzl-weekly/harrywzl-weekly/week10/"><![CDATA[<h3 id="contributions">Contributions</h3>

<p>This week, my individual open source contribution focused on fzf, a command line fuzzy finder used to filter lists, files, and command history. 
I identified outdated information and updated the project’s documentation to align with its newest release. 
I submitted a pull request with these corrections, and it was successfully merged on March 27.
<!--more--></p>

<p>For our group project on pandas, my objective was to improve the library’s reference materials. 
I wrote and added inline cookbook examples that demonstrate how to prepend a MultiIndex level and how to flatten hierarchical columns. 
The pull request containing these code examples is currently open and pending review from the repository maintainers.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[Contributions This week, my individual open source contribution focused on fzf, a command line fuzzy finder used to filter lists, files, and command history. I identified outdated information and updated the project’s documentation to align with its newest release. I submitted a pull request with these corrections, and it was successfully merged on March 27.]]></summary></entry><entry><title type="html">Week 8</title><link href="https://ossd-s26.github.io/harrywzl-weekly/harrywzl-weekly/week08/" rel="alternate" type="text/html" title="Week 8" /><published>2026-03-13T00:00:00+00:00</published><updated>2026-03-13T00:00:00+00:00</updated><id>https://ossd-s26.github.io/harrywzl-weekly/harrywzl-weekly/week08</id><content type="html" xml:base="https://ossd-s26.github.io/harrywzl-weekly/harrywzl-weekly/week08/"><![CDATA[<p>Although I was unable to attend the recent stand-up, our team has established a clear direction and made measurable progress over the last two meetings.</p>

<p>We finalized our decision to contribute to Pandas. We based our choice on familiarity, as well as the project’s clear guidelines and welcoming community. We also fully set up the environment for freeCodeCamp as a functional backup, but Pandas remains our primary focus.</p>

<p>We are now moving past the initial setup phase. Everyone has successfully configured the Pandas environment and joined the project’s Slack workspace. 
<!--more-->
A major challenge with a repository as active as Pandas is that “good first issues” are claimed almost immediately. Rather than competing for these scarce tasks, we pivoted our strategy to target documentation issues. The volume of documentation tasks is higher, the competition is lower, and the issue descriptions provide straightforward, actionable requirements. We have already initiated communication on one such issue to get the process started.</p>

<p>Our immediate priority is community integration. I attempted to advance this by attending the scheduled newcomer contributor meeting, but it was canceled due to multiple maintainer absences.</p>

<p>Our goals for the upcoming week are:</p>

<ul>
  <li>
    <p>Secure official assignment for the issue we are discussing, ideally assigned to the entire team.</p>
  </li>
  <li>
    <p>Sign up for the Pandas mailing list.</p>
  </li>
  <li>
    <p>Attempt to attend the next contributor meeting on March 18.</p>
  </li>
</ul>]]></content><author><name></name></author><summary type="html"><![CDATA[Although I was unable to attend the recent stand-up, our team has established a clear direction and made measurable progress over the last two meetings. We finalized our decision to contribute to Pandas. We based our choice on familiarity, as well as the project’s clear guidelines and welcoming community. We also fully set up the environment for freeCodeCamp as a functional backup, but Pandas remains our primary focus. We are now moving past the initial setup phase. Everyone has successfully configured the Pandas environment and joined the project’s Slack workspace.]]></summary></entry><entry><title type="html">Week 7</title><link href="https://ossd-s26.github.io/harrywzl-weekly/harrywzl-weekly/week07/" rel="alternate" type="text/html" title="Week 7" /><published>2026-03-04T00:00:00+00:00</published><updated>2026-03-04T00:00:00+00:00</updated><id>https://ossd-s26.github.io/harrywzl-weekly/harrywzl-weekly/week07</id><content type="html" xml:base="https://ossd-s26.github.io/harrywzl-weekly/harrywzl-weekly/week07/"><![CDATA[<h3 id="project-selection">Project Selection</h3>
<p>During our recent Discord meeting, Bella, Tianlang, Willow, and I focused on selecting our open-source project. We chose Pandas as our primary target because it has a friendly community, clear contribution guidelines, and most of us have prior experience using it. We also established freeCodeCamp as our backup option. Narrowing our focus to these two projects was our primary group accomplishment this week.</p>

<!--more-->

<h3 id="current-obstacles">Current Obstacles</h3>
<p>We identified three specific blockers that prevent immediate progress. First, we cannot finalize our project decision until everyone is present. Second, we are currently unsure about the group’s overall proficiency and comfort level with Python. Third, we do not know if we can successfully configure the freeCodeCamp development environment on Windows, which complicates our backup plan.</p>

<h3 id="next-steps">Next Steps</h3>
<p>We assigned action items to resolve these blockers before our next meeting. The group will set up the Pandas development environment, and Bella will test the program from an end-user perspective. To validate our contingency plan, Bella and Tianlang will attempt the freeCodeCamp environment setup on Windows. Finally, all members are tasked with joining the project’s Discord server by next week to establish communication channels.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[Project Selection During our recent Discord meeting, Bella, Tianlang, Willow, and I focused on selecting our open-source project. We chose Pandas as our primary target because it has a friendly community, clear contribution guidelines, and most of us have prior experience using it. We also established freeCodeCamp as our backup option. Narrowing our focus to these two projects was our primary group accomplishment this week.]]></summary></entry><entry><title type="html">Week 6</title><link href="https://ossd-s26.github.io/harrywzl-weekly/harrywzl-weekly/week06/" rel="alternate" type="text/html" title="Week 6" /><published>2026-02-26T00:00:00+00:00</published><updated>2026-02-26T00:00:00+00:00</updated><id>https://ossd-s26.github.io/harrywzl-weekly/harrywzl-weekly/week06</id><content type="html" xml:base="https://ossd-s26.github.io/harrywzl-weekly/harrywzl-weekly/week06/"><![CDATA[<h2 id="project">project</h2>
<p>My primary goal for the group project is to contribute to high-utility developer tools, specifically targeting platforms like Appsmith or Visual Studio Code. The objective is to build functional features or develop extensions that provide direct, measurable value to the end-user. Currently, there are no blockers impeding progress. Success will rely on rigorous technical execution and efficient group communication. I will leverage my software development experience to handle the technical requirements and ensure the project maintains a strict timeline.
<!--more--></p>
<h2 id="contributions">contributions</h2>
<p><strong>1</strong> OpenStreetMap</p>

<p><strong>2</strong> AI Repository Analyzer: For another class, I am contributing to an open-source web application that utilizes AI to parse repository data and recommend beginner-friendly contribution tickets. The work involves ensuring the AI correctly analyzes the repository context and outputs actionable, accessible tasks for new developers.</p>

<h2 id="project-evaluation">project evaluation</h2>
<p>ChatGPT cannot access live websites. This makes it impossible to use AI to accurately evaluate the actual state of an open-source project. If you rely on it for current metrics, it fabricates data. It will invent file links and guess issue counts. AI is a tool to learn. It helps explain codebases and concepts, but it is not a shortcut to cheat the manual research required for a real evaluation.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[project My primary goal for the group project is to contribute to high-utility developer tools, specifically targeting platforms like Appsmith or Visual Studio Code. The objective is to build functional features or develop extensions that provide direct, measurable value to the end-user. Currently, there are no blockers impeding progress. Success will rely on rigorous technical execution and efficient group communication. I will leverage my software development experience to handle the technical requirements and ensure the project maintains a strict timeline.]]></summary></entry><entry><title type="html">Week 5</title><link href="https://ossd-s26.github.io/harrywzl-weekly/harrywzl-weekly/week05/" rel="alternate" type="text/html" title="Week 5" /><published>2026-02-18T00:00:00+00:00</published><updated>2026-02-18T00:00:00+00:00</updated><id>https://ossd-s26.github.io/harrywzl-weekly/harrywzl-weekly/week05</id><content type="html" xml:base="https://ossd-s26.github.io/harrywzl-weekly/harrywzl-weekly/week05/"><![CDATA[<h2 id="other-projects">other projects</h2>
<p>It was great seeing what other groups have been building. One project that really interesting was the browser extension where a popup appears just by hovering the mouse over the upper-right corner, and I already had some ideas for contributions while watching the presentation. Mind Melt and QuoteDaily were definitely the funniest projects of the bunch, they brought humor to the technical demonstrations.
<!--more--></p>

<h2 id="dev-process">dev Process</h2>
<p>My biggest takeaway from both our own work and watching others is that the development process rarely goes in a straight line. You can run into roadblocks that force a complete pivot.</p>

<p>For my group, this happened with our “Tab Color Changer” project. We originally targeted Chrome, but we quickly hit a wall when we realized Chrome’s API only allows users to group tabs, not color them individually. We had to pivot entirely to Firefox. Even then, we discovered that setting a tab color in Firefox would inadvertently change the entire browser theme. To fix this, we had to implement a background script to listen for the tab color changes and remember the state when the user returned to it.</p>

<h2 id="presentation-style">Presentation Style</h2>
<p>In terms of improving my own style, I’m taking a page out of Sebastian’s book. He mentioned a great tip for managing nerves and engagement: instead of scanning the whole room constantly, just make eye contact with one person or focus on one general area. It grounds the speaker and makes the delivery feel more personal. Definitely something I’ll be trying next time.</p>

<h2 id="thoughts-on-the-videoscd">Thoughts on the videoscd</h2>
<p>My biggest takeaway from these videos is that even though AI is changing the game and bringing new security risks, the human connection in open source is what really matters. It was reassuring to see that a strong community of people simply looking out for one another is still our best defense against hacks and bad code.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[other projects It was great seeing what other groups have been building. One project that really interesting was the browser extension where a popup appears just by hovering the mouse over the upper-right corner, and I already had some ideas for contributions while watching the presentation. Mind Melt and QuoteDaily were definitely the funniest projects of the bunch, they brought humor to the technical demonstrations.]]></summary></entry><entry><title type="html">Week 4</title><link href="https://ossd-s26.github.io/harrywzl-weekly/harrywzl-weekly/week04/" rel="alternate" type="text/html" title="Week 4" /><published>2026-02-12T00:00:00+00:00</published><updated>2026-02-12T00:00:00+00:00</updated><id>https://ossd-s26.github.io/harrywzl-weekly/harrywzl-weekly/week04</id><content type="html" xml:base="https://ossd-s26.github.io/harrywzl-weekly/harrywzl-weekly/week04/"><![CDATA[<h3 id="git-add--vs-git-add-">git add . vs git add <filename>:</filename></h3>
<p>I’ve always been guilty of using git add . out of pure laziness, but the exercises this week highlighted why git add <filename> is a routine I need to adopt. It forces you to be intentional about what you're staging rather than blindly sweeping everything, like including debug prints or unwanted config files, into the commit. It’s a small bit of friction that saves a massive headache later when you realize you accidentally committed a massive log file or broken code that you didn't mean to share.
<!--more--></filename></p>

<h3 id="cirq">Cirq:</h3>
<p>For the project evaluation, I looked at Cirq, Google’s open-source library for quantum circuits. Surprisingly, setting up the development environment on my Mac only took about five minutes—a rarity for a repo of this size. However, despite the seamless setup and a very active community, this is definitely not a beginner-friendly project. Because the domain barrier is so high, I’ve decided I won’t be contributing to Cirq this semester, I need a project where I can fight the code, not the laws of physics.</p>

<h3 id="refactoring-reality">Refactoring Reality:</h3>
<p>Outside of class, I’ve been bogged down at my internship refactoring a significant chunk of our web app, and honestly, it has been incredibly annoying. It feels less like engineering and more like archaeology, trying to decipher why previous developers made certain decisions without breaking the entire system. It is tedious work that drains my mental energy, reminding me that maintaining software is often 10% writing code and 90% untangling someone else’s knots.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[git add . vs git add : I’ve always been guilty of using git add . out of pure laziness, but the exercises this week highlighted why git add is a routine I need to adopt. It forces you to be intentional about what you're staging rather than blindly sweeping everything, like including debug prints or unwanted config files, into the commit. It’s a small bit of friction that saves a massive headache later when you realize you accidentally committed a massive log file or broken code that you didn't mean to share.]]></summary></entry><entry><title type="html">Week 3</title><link href="https://ossd-s26.github.io/harrywzl-weekly/harrywzl-weekly/week03/" rel="alternate" type="text/html" title="Week 3" /><published>2026-02-05T00:00:00+00:00</published><updated>2026-02-05T00:00:00+00:00</updated><id>https://ossd-s26.github.io/harrywzl-weekly/harrywzl-weekly/week03</id><content type="html" xml:base="https://ossd-s26.github.io/harrywzl-weekly/harrywzl-weekly/week03/"><![CDATA[<h2 id="work--progress">Work &amp; Progress</h2>
<p>We started by working through the Chrome extension Hello World tutorial as a team. It had some issues, like when Lu followed the wrong guidelines for firefox browser rather than the chrome browser we were working on and we helped him figure it out, and Jerry got stuck on the popups until he restarted his laptop to fix it. For our own extension, we brainstormed ideas including a Google Doc dark mode, a text magnifier, an assignment notifier that connects to school websites. We also discussed an email filter, a tab color changer, a compiler where you can highlight code and run it in the browser.
<!--more--></p>]]></content><author><name></name></author><summary type="html"><![CDATA[Work &amp; Progress We started by working through the Chrome extension Hello World tutorial as a team. It had some issues, like when Lu followed the wrong guidelines for firefox browser rather than the chrome browser we were working on and we helped him figure it out, and Jerry got stuck on the popups until he restarted his laptop to fix it. For our own extension, we brainstormed ideas including a Google Doc dark mode, a text magnifier, an assignment notifier that connects to school websites. We also discussed an email filter, a tab color changer, a compiler where you can highlight code and run it in the browser.]]></summary></entry><entry><title type="html">Week 2</title><link href="https://ossd-s26.github.io/harrywzl-weekly/harrywzl-weekly/week02/" rel="alternate" type="text/html" title="Week 2" /><published>2026-01-28T00:00:00+00:00</published><updated>2026-01-28T00:00:00+00:00</updated><id>https://ossd-s26.github.io/harrywzl-weekly/harrywzl-weekly/week02</id><content type="html" xml:base="https://ossd-s26.github.io/harrywzl-weekly/harrywzl-weekly/week02/"><![CDATA[<h3 id="reflecting-on-how-to-drive-consensus-and-transparency-within-open-source-communities">Reflecting on “How to Drive Consensus and Transparency Within Open Source Communities.”</h3>
<p>The video on driving consensus and transparency emphasized that open source projects rely heavily on effective communication rather than just technical contributions. 
The speaker argued that conflict is inevitable in any group setting, and therefore projects need clear mechanisms to handle disagreements. 
It made me realize that soft skills like active listening are actually the most important tools a developer has because without them the whole project stalls. I thought the idea of lazy consensus was really smart because it stops the group from wasting time on small decisions, but the speakers were right to point out that this only works if there is enough trust in the room. If the governance is not clear then the quiet people just get ignored which defeats the whole purpose of open source collaboration.
<!--more--></p>

<h3 id="part1-of-code-of-conduct">Part1 of Code of Conduct</h3>
<p>When I started reading the Go project rules it became obvious why these documents are so necessary because without them everyone is just guessing at what behavior is acceptable in a global group. The Go team took the standard Contributor Covenant and actually changed it by adding their own section on Gopher Values which focuses on things like patience and interpreting arguments charitably. This is a huge difference from the standard template and they likely did it because technical debates can get really aggressive and they needed specific rules to keep engineers calm. 
Then I went to find the Eclipse document and found it at <a href="https://www.eclipse.org/org/documents/Community_Code_of_Conduct.php">eclipse_code_of_conduct</a> and it was completely different. It reads like a strict legal contract with a whole section on how they investigate violations. I think this structure exists because Eclipse is backed by huge corporations so they need a legally defensible process to protect the foundation from liability which is something a smaller project might not worry about.</p>

<h3 id="part-2-of-code-of-conduct">Part 2 of Code of Conduct</h3>
<p>I went over to the Sugar Labs wiki and even though they hid their document in the legal section it is actually much warmer than the Eclipse one. It is definitely not based on the Go project because it focuses way more on being considerate and collaborative rather than technical correctness. I read through the bottom of the text and realized it is actually based on the Ubuntu Code of Conduct. This makes total sense to me because Sugar Labs is all about education and helping children so borrowing the values of humanity and collaboration from Ubuntu fits their mission much better than a corporate policy would.</p>

<h3 id="part-3-of-code-of-conduct">Part 3 of Code of Conduct</h3>
<p>For the last example I looked at Meta Open Source which manages massive projects like React. I found their code of conduct at <a href="https://opensource.fb.com/code-of-conduct/">meta_code_of_conduct</a> and noticed they just use the standard Contributor Covenant version 1.4 exactly as it is written without changing anything. This is probably the best move for them because they have so many different projects that using the standard template makes it easy for new contributors who already know the rules. The big difference I saw was in how they enforce it because they make you report issues to a central corporate email rather than the specific project owners. This is a smart way to ensure that a neutral team handles the conflicts so you do not have friends investigating friends.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[Reflecting on “How to Drive Consensus and Transparency Within Open Source Communities.” The video on driving consensus and transparency emphasized that open source projects rely heavily on effective communication rather than just technical contributions. The speaker argued that conflict is inevitable in any group setting, and therefore projects need clear mechanisms to handle disagreements. It made me realize that soft skills like active listening are actually the most important tools a developer has because without them the whole project stalls. I thought the idea of lazy consensus was really smart because it stops the group from wasting time on small decisions, but the speakers were right to point out that this only works if there is enough trust in the room. If the governance is not clear then the quiet people just get ignored which defeats the whole purpose of open source collaboration.]]></summary></entry><entry><title type="html">Week 1</title><link href="https://ossd-s26.github.io/harrywzl-weekly/harrywzl-weekly/week01/" rel="alternate" type="text/html" title="Week 1" /><published>2026-01-24T00:00:00+00:00</published><updated>2026-01-24T00:00:00+00:00</updated><id>https://ossd-s26.github.io/harrywzl-weekly/harrywzl-weekly/week01</id><content type="html" xml:base="https://ossd-s26.github.io/harrywzl-weekly/harrywzl-weekly/week01/"><![CDATA[<p>For me, open source is primarily about ownership and peace of mind. I prefer to keep my data and tools deployed locally rather than relying on cloud services, and open source software gives me the confidence to do that because I can audit the code myself at any time. The biggest advantage of this model is the educational value, it allows me to read the source code and see exactly how the best coders in the world think and solve complex problems, essentially letting me learn from the best. I would say the trade off is the friction, self-hosting demands technical patience that polished commercial tools usually automate away. I registered for this class because I want to move beyond just reading the code of these great projects to actually understanding how to contribute back to them.
<!--more--></p>

<h2 id="projects-i-use">Projects I Use</h2>

<p>My daily workflow relies on open source tools that prioritize privacy and local control:</p>

<ul>
  <li>Bitwarden</li>
  <li>KeePass</li>
  <li>Homebrew</li>
  <li>VS Code</li>
  <li>AltTab</li>
  <li>OBS Studio</li>
  <li>LuLu</li>
  <li>OpenCode</li>
</ul>]]></content><author><name></name></author><summary type="html"><![CDATA[For me, open source is primarily about ownership and peace of mind. I prefer to keep my data and tools deployed locally rather than relying on cloud services, and open source software gives me the confidence to do that because I can audit the code myself at any time. The biggest advantage of this model is the educational value, it allows me to read the source code and see exactly how the best coders in the world think and solve complex problems, essentially letting me learn from the best. I would say the trade off is the friction, self-hosting demands technical patience that polished commercial tools usually automate away. I registered for this class because I want to move beyond just reading the code of these great projects to actually understanding how to contribute back to them.]]></summary></entry></feed>