<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Technical on GanniPiece Blog</title>
    <link>https://blog.gannipiece.tw/en/tags/technical/</link>
    <description>Recent content in Technical on GanniPiece Blog</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Sun, 29 May 2022 03:27:37 +0000</lastBuildDate>
    <atom:link href="https://blog.gannipiece.tw/en/tags/technical/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>How to Edit a Specific Commit Message in Git</title>
      <link>https://blog.gannipiece.tw/en/posts/how-to-edit-commit-message/</link>
      <pubDate>Sun, 29 May 2022 03:27:37 +0000</pubDate>
      <guid>https://blog.gannipiece.tw/en/posts/how-to-edit-commit-message/</guid>
      <description>&lt;p&gt;&lt;em&gt;(the post is automatically translated by AI)&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;When using &lt;a href=&#34;https://git-scm.com&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Git&lt;/a&gt; [1] for version control, it&amp;rsquo;s easy to accidentally make a typo in a commit message — or simply realize later that it could be worded better. In those cases, you need to go back and fix the commit message.&lt;/p&gt;
&lt;p&gt;The basic approach is &lt;code&gt;git commit --amend&lt;/code&gt; [2], which corrects the most recent commit message. In this article, I&amp;rsquo;ll document how to go back to an older commit — not just the last one — and edit its message for future reference.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Why Coroutine? (Part 1) — Is Multithreading Not Enough?</title>
      <link>https://blog.gannipiece.tw/en/posts/why-coroutine-part-1-is-multithreading-bad/</link>
      <pubDate>Sat, 28 May 2022 07:54:19 +0000</pubDate>
      <guid>https://blog.gannipiece.tw/en/posts/why-coroutine-part-1-is-multithreading-bad/</guid>
      <description>While working with UniVRM, I noticed that many Unity development scenarios rely on Coroutines — such as opening a file dialog or loading resources. In this article, I&amp;#39;ll explain what a Coroutine is and compare it with Threads.</description>
    </item>
    <item>
      <title>How to Enable and Detect Memory Leaks in the Unity Editor</title>
      <link>https://blog.gannipiece.tw/en/posts/detect-memory-leak-in-unity/</link>
      <pubDate>Tue, 03 May 2022 06:51:18 +0000</pubDate>
      <guid>https://blog.gannipiece.tw/en/posts/detect-memory-leak-in-unity/</guid>
      <description>&lt;p&gt;&lt;em&gt;(the post is automatically translated by AI)&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;A memory leak occurs when allocated memory is never freed. While it doesn&amp;rsquo;t necessarily cause immediate crashes, a leak gradually reduces the available memory, degrading system performance over time. In severe cases, it can lead to unpredictable errors or even security vulnerabilities &lt;a href=&#34;https://owasp.org/www-community/vulnerabilities/Memory_leak&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;1&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Memory: &amp;ldquo;Hmm? Something smells.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;One of the most common causes of memory leaks is forgetting to free dynamically allocated memory — for instance, calling &lt;code&gt;new&lt;/code&gt; on the heap and never calling &lt;code&gt;delete&lt;/code&gt;. The unpredictable timing of when this causes problems makes debugging quite difficult.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Implement an XY Pad with JUCE</title>
      <link>https://blog.gannipiece.tw/en/posts/juce-xypad-implementation/</link>
      <pubDate>Tue, 25 Jan 2022 14:13:30 +0800</pubDate>
      <guid>https://blog.gannipiece.tw/en/posts/juce-xypad-implementation/</guid>
      <description>The XY Pad is a common UI design in audio plugins that lets you control two parameters simultaneously. This article covers how to implement an XY Pad using the JUCE framework, explaining the relevant Component classes and override methods.</description>
    </item>
    <item>
      <title>How to Use git rebase to Integrate Branches</title>
      <link>https://blog.gannipiece.tw/en/posts/git-rebase-merge-branches/</link>
      <pubDate>Thu, 20 Jan 2022 11:43:53 +0800</pubDate>
      <guid>https://blog.gannipiece.tw/en/posts/git-rebase-merge-branches/</guid>
      <description>Our plugin development is wrapping up, and it&amp;#39;s time to integrate my partner&amp;#39;s changes. In this article, I explain how to use git rebase and walk through a hands-on example.</description>
    </item>
  </channel>
</rss>
