<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Parker Chen</title>
    <description>The latest articles on Forem by Parker Chen (@bhchen24).</description>
    <link>https://forem.com/bhchen24</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3557824%2Fb91474f6-e60b-4fec-8c5a-650e13bea4a4.jpeg</url>
      <title>Forem: Parker Chen</title>
      <link>https://forem.com/bhchen24</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/bhchen24"/>
    <language>en</language>
    <item>
      <title>OSD600 Release 0.2 Week 1 (Updated)</title>
      <dc:creator>Parker Chen</dc:creator>
      <pubDate>Fri, 10 Oct 2025 16:27:42 +0000</pubDate>
      <link>https://forem.com/bhchen24/osd600-release-02-week-1-updated-3p28</link>
      <guid>https://forem.com/bhchen24/osd600-release-02-week-1-updated-3p28</guid>
      <description>&lt;p&gt;🔔 &lt;strong&gt;Prelude:&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;Everything's hard in the beginning&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  In release 0.2 week 1…
&lt;/h2&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;What I did&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;This week I mainly focused on searching for suitable open-source projects to contribute to. I haven’t started submitting any pull requests yet, but I did manage to create an issue (see link below) and am waiting for it to be assigned.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/TemaDeveloper/library_proj/issues/17" rel="noopener noreferrer"&gt;https://github.com/TemaDeveloper/library_proj/issues/17&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Working on (issue/PR)&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;I opened an issue about setting up &lt;strong&gt;issue templates&lt;/strong&gt; for a repository. Although I think it was a simple one, it still was my first time dealing with this topic, so I referred to the official GitHub documentation. I surprisingly learned that using a &lt;strong&gt;&lt;code&gt;.yml&lt;/code&gt;&lt;/strong&gt; file for the issue template allows better formatting and a cleaner layout for users filling in issue forms than the &lt;code&gt;.md&lt;/code&gt; template.&lt;/p&gt;

&lt;p&gt;The process has been updated, please have a check on the "Updated" section in this post&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Need to know&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Still waiting for feedback or assignment on my issue. Once that’s done, I plan to contribute my first PR to this project or one of the other candidates I’ve found.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Difficulties&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;The main challenge this week was &lt;strong&gt;finding the right project&lt;/strong&gt; to start with. Some repositories are attractive and popular but have too many contributors already. It’s so hard to find available “good first issues” in those repos.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Fixes&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;After rewatching a previously recorded lecture, I realized I had overlooked GitHub’s &lt;strong&gt;advanced search&lt;/strong&gt; feature. By also researching the GitHub official documentation, I improved my efficiency in locating suitable issues by using &lt;code&gt;no:assignee&lt;/code&gt;, etc. I’ve already starred several projects for upcoming work.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Considerations&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Some classmates shared potential projects on our team channel, and I found that exchanging ideas and experiences is really helpful. I believe active communication and collaboration will be key to achieving our release goals.&lt;/p&gt;

&lt;h2&gt;
  
  
  Updated
&lt;/h2&gt;

&lt;p&gt;I have added templates to the repo and The PR has been merged. &lt;br&gt;
&lt;a href="https://github.com/TemaDeveloper/library_proj/pull/18" rel="noopener noreferrer"&gt;https://github.com/TemaDeveloper/library_proj/pull/18&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here are some things I want to share:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Even though this PR is simple, it is somehow a little bit tricky. Because the templates will not be applied until the PR has been merged into the main repo (Github needs to read them), I have to create a new test repository in my account to test the templates.&lt;/li&gt;
&lt;li&gt;And, this testing procedure did cause a bug: I mistakenly placed the templates in &lt;code&gt;.github/workflow/ISSUE_TEMPLATES&lt;/code&gt; instead of the correct path &lt;code&gt;.github/ISSUE_TEMPLATES&lt;/code&gt; in the original repo. However, in my separated test repo, the path is correct so that it didn't reflect any issue.&lt;/li&gt;
&lt;li&gt;So after noticing the PR has been merged and the bug appeared, I still need to communicate with the owner to let him know I will create a new PR to fix the minor bug (&lt;a href="https://github.com/TemaDeveloper/library_proj/pull/19" rel="noopener noreferrer"&gt;https://github.com/TemaDeveloper/library_proj/pull/19&lt;/a&gt;). This cost extra time.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This little issue got me thinking about how to handle PRs whose results only show after merging... I’d like to explore this topic further.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>github</category>
      <category>devjournal</category>
      <category>opensource</category>
    </item>
    <item>
      <title>OSD600 Lab 5</title>
      <dc:creator>Parker Chen</dc:creator>
      <pubDate>Fri, 10 Oct 2025 15:41:16 +0000</pubDate>
      <link>https://forem.com/bhchen24/osd600-lab-5-16hk</link>
      <guid>https://forem.com/bhchen24/osd600-lab-5-16hk</guid>
      <description>&lt;p&gt;🔔 &lt;strong&gt;Prelude:&lt;/strong&gt;&lt;br&gt;
Even more powerful commands for version control&lt;/p&gt;

&lt;h2&gt;
  
  
  Main Content
&lt;/h2&gt;

&lt;p&gt;Write a blog post about the process of refactoring your code.  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What did you focus on in your improvements? How did you fix your code so it would be better in each step?&lt;/li&gt;
&lt;li&gt;How did your interactive rebase go? Did you find any bugs in your code while you did this? Did you break your program while changing things?&lt;/li&gt;
&lt;li&gt;How did it go using Git to change your project's history?&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What did you focus on in your improvements?
&lt;/h2&gt;

&lt;p&gt;I mainly focused on looking for big code blocks to implement my improvements because it has a higher chance of discovering a function that can be exacted. At the same time, I was also looking for a chance to rename some vague variables and add comments to logic.&lt;/p&gt;

&lt;p&gt;I used a code quality checking plugin called &lt;strong&gt;SonarQube&lt;/strong&gt; (&lt;a href="https://www.sonarsource.com/products/sonarlint/" rel="noopener noreferrer"&gt;https://www.sonarsource.com/products/sonarlint/&lt;/a&gt;) to find potential issues in my code. Here is the showcase:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh8cymrxni1bj0cjnamai.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh8cymrxni1bj0cjnamai.png" alt="SonarQube showcase" width="800" height="440"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As you can see, SonarQube lists its concerns for my codebase. It’s convenient, but if you are also using Go for programming, you must have noticed that: &lt;code&gt;if err != nil&lt;/code&gt; is basically inevitable, counting it into the complexity value is meaningless. It's still a good tool for pre-checking our code though.&lt;/p&gt;

&lt;h2&gt;
  
  
  How did your interactive rebase go?
&lt;/h2&gt;

&lt;p&gt;Interactive rebase is surprisingly good, plus I found that &lt;strong&gt;GitLens&lt;/strong&gt; (&lt;a href="https://www.gitkraken.com/gitlens" rel="noopener noreferrer"&gt;https://www.gitkraken.com/gitlens&lt;/a&gt;) provides a pretty UI with the IDE like VS Code.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2oqafhzh73cwd98y46dz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2oqafhzh73cwd98y46dz.png" alt="GitLens" width="790" height="462"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;(Reference: &lt;a href="https://www.gitkraken.com/learn/git/problems/git-interactive-rebase" rel="noopener noreferrer"&gt;https://www.gitkraken.com/learn/git/problems/git-interactive-rebase&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;I don’t need to be too concerned about the looking of the submit tree now because I learned how to rearrange it by "rebase." Separately creating small commits also makes the workflow clearer when we are developing. But since it will break the branch - specifically, drop some commit histories - we should always use it on our own, personal topic branch (and we’d better know what we are exactly doing).&lt;/p&gt;

&lt;p&gt;Since I only made minor changes, I didn't confront big issues in this lab, but I do have a story to tell in the next section.&lt;/p&gt;

&lt;h2&gt;
  
  
  How did it go using Git to change your project's history?
&lt;/h2&gt;

&lt;p&gt;Here is the concise story of using Git in my lab 5:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I created new branch&lt;/li&gt;
&lt;li&gt;I made changes&lt;/li&gt;
&lt;li&gt;Too smoothly! I finished all 3 targets without making a commit!&lt;/li&gt;
&lt;li&gt;Had to pick the file that need to be committed, and saved others for later commits… Used &lt;code&gt;add&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;In the middle of the way, noticed that the names of the local branch and the remote were different! Had to change them… (Then I deleted the remote one first, I don’t know why I did that.)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Rebase&lt;/code&gt; but failed! Since Git couldn’t find the remote branch…&lt;/li&gt;
&lt;li&gt;…&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Well you see, even though I finally managed to rebase my branch, the most difficult part still wasn't applying some Git commands but driving Git well from the very beginning. However, I got to know at least one thing: Git has most of the methods to help you keep the code history safe and operable (again, if you know what you’re doing there).&lt;/p&gt;

&lt;p&gt;I feel like I only touched 30%~40% of Git's usages. It’s definitely worth investing time to learn it well.&lt;/p&gt;

</description>
      <category>devjournal</category>
      <category>git</category>
      <category>learning</category>
    </item>
  </channel>
</rss>
