<?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>技術 on GanniPiece Blog</title>
    <link>https://blog.gannipiece.tw/zh-tw/categories/%E6%8A%80%E8%A1%93/</link>
    <description>Recent content in 技術 on GanniPiece Blog</description>
    <generator>Hugo</generator>
    <language>zh-tw</language>
    <lastBuildDate>Wed, 20 May 2026 10:50:26 +0000</lastBuildDate>
    <atom:link href="https://blog.gannipiece.tw/zh-tw/categories/%E6%8A%80%E8%A1%93/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>如何在 Mac 上，將 iPad 作為 ROS2 的 sensor 並取得數據</title>
      <link>https://blog.gannipiece.tw/zh-tw/posts/202605/how-to-connect-ipad-and-macbook-by-ros2/</link>
      <pubDate>Sat, 09 May 2026 12:00:00 +0000</pubDate>
      <guid>https://blog.gannipiece.tw/zh-tw/posts/202605/how-to-connect-ipad-and-macbook-by-ros2/</guid>
      <description>&lt;h2 id=&#34;background&#34;&gt;Background&lt;/h2&gt;
&lt;p&gt;最近在學習 ROS，但目前手上沒有機器人。於是，想以手邊的 iPad 作為 ROS node，並在 mac 上面獲取對應的，諸如 IMU, Camera, Battery &amp;hellip; etc 資訊，理解 ROS node sensor 搜集回來的數據跟對應的命令。&lt;/p&gt;</description>
    </item>
    <item>
      <title>闖蕩新創 0002 | 自動擴展怎麼都沒效？系統一下就爆</title>
      <link>https://blog.gannipiece.tw/zh-tw/posts/%E9%97%96%E8%95%A9%E6%96%B0%E5%89%B5/%E9%97%96%E8%95%A9%E6%96%B0%E5%89%B5-0002--%E8%87%AA%E5%8B%95%E6%93%B4%E5%B1%95%E6%80%8E%E9%BA%BC%E9%83%BD%E6%B2%92%E6%95%88%E7%B3%BB%E7%B5%B1%E4%B8%80%E4%B8%8B%E5%B0%B1%E7%88%86/</link>
      <pubDate>Sat, 11 Apr 2026 06:32:00 +0000</pubDate>
      <guid>https://blog.gannipiece.tw/zh-tw/posts/%E9%97%96%E8%95%A9%E6%96%B0%E5%89%B5/%E9%97%96%E8%95%A9%E6%96%B0%E5%89%B5-0002--%E8%87%AA%E5%8B%95%E6%93%B4%E5%B1%95%E6%80%8E%E9%BA%BC%E9%83%BD%E6%B2%92%E6%95%88%E7%B3%BB%E7%B5%B1%E4%B8%80%E4%B8%8B%E5%B0%B1%E7%88%86/</guid>
      <description>闖蕩新創 0002。開始健檢舊系統</description>
    </item>
    <item>
      <title>闖蕩新創 0001 | 有，又好像沒有</title>
      <link>https://blog.gannipiece.tw/zh-tw/posts/%E9%97%96%E8%95%A9%E6%96%B0%E5%89%B5/%E9%97%96%E8%95%A9%E6%96%B0%E5%89%B5-0001--%E6%9C%89%E5%8F%88%E5%A5%BD%E5%83%8F%E6%B2%92%E6%9C%89/</link>
      <pubDate>Fri, 03 Apr 2026 15:27:00 +0000</pubDate>
      <guid>https://blog.gannipiece.tw/zh-tw/posts/%E9%97%96%E8%95%A9%E6%96%B0%E5%89%B5/%E9%97%96%E8%95%A9%E6%96%B0%E5%89%B5-0001--%E6%9C%89%E5%8F%88%E5%A5%BD%E5%83%8F%E6%B2%92%E6%9C%89/</guid>
      <description>闖蕩新創 0001。我們的環境要一致！</description>
    </item>
    <item>
      <title>闖蕩新創 0000 | To Join or Not To Join</title>
      <link>https://blog.gannipiece.tw/zh-tw/posts/%E9%97%96%E8%95%A9%E6%96%B0%E5%89%B5/%E9%97%96%E8%95%A9%E6%96%B0%E5%89%B5-0000--join-join/</link>
      <pubDate>Sat, 21 Mar 2026 10:00:00 +0000</pubDate>
      <guid>https://blog.gannipiece.tw/zh-tw/posts/%E9%97%96%E8%95%A9%E6%96%B0%E5%89%B5/%E9%97%96%E8%95%A9%E6%96%B0%E5%89%B5-0000--join-join/</guid>
      <description>新創日誌 0000。我離開軟體大廠，加入新創公司啦！</description>
    </item>
    <item>
      <title>如何在 macOS 上安裝 Sushi DAW</title>
      <link>https://blog.gannipiece.tw/zh-tw/posts/install-sushi-daw-on-macos/</link>
      <pubDate>Sat, 01 Jun 2024 10:11:44 +0000</pubDate>
      <guid>https://blog.gannipiece.tw/zh-tw/posts/install-sushi-daw-on-macos/</guid>
      <description>Sushi 數位工作站是 Elk 音訊作業系統 (Elk Audio OS) 上的 Plugin Host 和數位工作站。它在 1.0 版本後也支援了 macOS 上的編譯選擇。在這篇文章中，我們會紀錄如何在 macOS 上進行 Sushi DAW 的安裝，並驗證安裝的結果。</description>
    </item>
    <item>
      <title>如何部署 Hugo 至 gitlab page 並導向 Gandi 網域？</title>
      <link>https://blog.gannipiece.tw/zh-tw/posts/2023-10-28-%E5%A6%82%E4%BD%95%E9%83%A8%E7%BD%B2-hugo-%E8%87%B3-gitlab-page-%E4%B8%A6%E5%B0%8E%E5%90%91-gandi-%E7%B6%B2%E5%9F%9F/</link>
      <pubDate>Sat, 28 Oct 2023 03:49:22 +0000</pubDate>
      <guid>https://blog.gannipiece.tw/zh-tw/posts/2023-10-28-%E5%A6%82%E4%BD%95%E9%83%A8%E7%BD%B2-hugo-%E8%87%B3-gitlab-page-%E4%B8%A6%E5%B0%8E%E5%90%91-gandi-%E7%B6%B2%E5%9F%9F/</guid>
      <description>之前的個人網頁一直是存放在 Github 上面，透過 Github Action 部署 Hugo 靜態網頁，然後再將自己的網域導向 Github Page 的位置。想說就趁這個機會，將原先的流程轉移到 Gitlab 上來。</description>
    </item>
    <item>
      <title>如何將 MediaPipe 的骨架轉換到 Unity 人體骨架？</title>
      <link>https://blog.gannipiece.tw/zh-tw/posts/%E5%A6%82%E4%BD%95%E5%B0%87-mediapipe-%E7%9A%84%E9%AA%A8%E6%9E%B6%E8%BD%89%E6%8F%9B%E5%88%B0-unity-%E4%BA%BA%E9%AB%94%E9%AA%A8%E6%9E%B6/</link>
      <pubDate>Wed, 08 Mar 2023 00:00:00 +0000</pubDate>
      <guid>https://blog.gannipiece.tw/zh-tw/posts/%E5%A6%82%E4%BD%95%E5%B0%87-mediapipe-%E7%9A%84%E9%AA%A8%E6%9E%B6%E8%BD%89%E6%8F%9B%E5%88%B0-unity-%E4%BA%BA%E9%AB%94%E9%AA%A8%E6%9E%B6/</guid>
      <description>透過 MediaPipe 進行 Motion Capture，並將之對應到 Unity 上的人物骨架</description>
    </item>
    <item>
      <title>為什麼是 Coroutine？（二）- 使用 C語言實作 Coroutine</title>
      <link>https://blog.gannipiece.tw/zh-tw/posts/%E7%82%BA%E4%BB%80%E9%BA%BC%E6%98%AF-coroutine%E4%BA%8C-%E4%BD%BF%E7%94%A8-c%E8%AA%9E%E8%A8%80%E5%AF%A6%E4%BD%9C-coroutine/</link>
      <pubDate>Mon, 10 Oct 2022 03:00:17 +0000</pubDate>
      <guid>https://blog.gannipiece.tw/zh-tw/posts/%E7%82%BA%E4%BB%80%E9%BA%BC%E6%98%AF-coroutine%E4%BA%8C-%E4%BD%BF%E7%94%A8-c%E8%AA%9E%E8%A8%80%E5%AF%A6%E4%BD%9C-coroutine/</guid>
      <description>&lt;h2 id=&#34;前言&#34;&gt;前言&lt;/h2&gt;
&lt;p&gt;在前一篇文章 &lt;a href=&#34;https://blog.gannipiece.tw/zh-tw/posts/%E7%82%BA%E4%BB%80%E9%BA%BC%E6%98%AF-coroutine%E3%84%A7-multithreading-%E4%B8%8D%E5%A5%BD%E5%97%8E/&#34;&gt;為什麼是 Coroutine？（ㄧ）- Multithreading 不好嗎?&lt;/a&gt; 中，我們講解了 Coroutine 的相關原理。除此之外，我們也列舉出如果想要使用 C 語言實作 Coroutine 的話，我們需要的介面。在這篇文章中，我們會透過程式碼逐行的解釋如何完成 C 語言的 Coroutine。&lt;/p&gt;</description>
    </item>
    <item>
      <title>程式碼的擴展 - macro 與 inline function 的比較</title>
      <link>https://blog.gannipiece.tw/zh-tw/posts/%E7%A8%8B%E5%BC%8F%E7%A2%BC%E7%9A%84%E6%93%B4%E5%B1%95---macro-%E8%88%87-inline-function-%E7%9A%84%E6%AF%94%E8%BC%83/</link>
      <pubDate>Sat, 08 Oct 2022 16:06:04 +0000</pubDate>
      <guid>https://blog.gannipiece.tw/zh-tw/posts/%E7%A8%8B%E5%BC%8F%E7%A2%BC%E7%9A%84%E6%93%B4%E5%B1%95---macro-%E8%88%87-inline-function-%E7%9A%84%E6%AF%94%E8%BC%83/</guid>
      <description>&lt;h2 id=&#34;前言&#34;&gt;前言&lt;/h2&gt;
&lt;p&gt;macro 與 inline function 皆是擴展或是重複利用的方法之一。與一般我們重複利用程式碼的作法 —— function —— 不同之處在於，透過 macro 或是 inline function，程式在運行時可以減少主程式 subroutine 間 push / pop 的步驟，近一步加快執行速度。&lt;/p&gt;</description>
    </item>
    <item>
      <title>#：前置處理器的語言</title>
      <link>https://blog.gannipiece.tw/zh-tw/posts/%E5%89%8D%E7%BD%AE%E8%99%95%E7%90%86%E5%99%A8%E7%9A%84%E8%AA%9E%E8%A8%80/</link>
      <pubDate>Wed, 05 Oct 2022 08:30:53 +0000</pubDate>
      <guid>https://blog.gannipiece.tw/zh-tw/posts/%E5%89%8D%E7%BD%AE%E8%99%95%E7%90%86%E5%99%A8%E7%9A%84%E8%AA%9E%E8%A8%80/</guid>
      <description>前處理器 (preprocessor) 會在編譯階段之前執行。它可以完成條件式的編譯、檔案引入、巨集定義等任務。在這篇文章中，我們將介紹前置處理器的幾種類型語言，如 Conditional inclusion 與 replacing text macros。</description>
    </item>
    <item>
      <title>如何設定使 iPad 成為無線 MIDI Controller？</title>
      <link>https://blog.gannipiece.tw/zh-tw/posts/%E5%A6%82%E4%BD%95%E8%A8%AD%E5%AE%9A%E4%BD%BF-ipad-%E6%88%90%E7%82%BA%E7%84%A1%E7%B7%9A-midi-controller/</link>
      <pubDate>Thu, 14 Jul 2022 02:57:32 +0000</pubDate>
      <guid>https://blog.gannipiece.tw/zh-tw/posts/%E5%A6%82%E4%BD%95%E8%A8%AD%E5%AE%9A%E4%BD%BF-ipad-%E6%88%90%E7%82%BA%E7%84%A1%E7%B7%9A-midi-controller/</guid>
      <description>在本文中，我們將紀錄如何將 iPad 作為 MIDI 鍵盤，並在不同平台的電腦上接收訊號</description>
    </item>
    <item>
      <title>如何修改特定 commit 的提交訊息？</title>
      <link>https://blog.gannipiece.tw/zh-tw/posts/%E5%A6%82%E4%BD%95%E4%BF%AE%E6%94%B9%E7%89%B9%E5%AE%9A-commit-%E7%9A%84%E6%8F%90%E4%BA%A4%E8%A8%8A%E6%81%AF/</link>
      <pubDate>Sun, 29 May 2022 03:27:37 +0000</pubDate>
      <guid>https://blog.gannipiece.tw/zh-tw/posts/%E5%A6%82%E4%BD%95%E4%BF%AE%E6%94%B9%E7%89%B9%E5%AE%9A-commit-%E7%9A%84%E6%8F%90%E4%BA%A4%E8%A8%8A%E6%81%AF/</guid>
      <description>&lt;h2 id=&#34;前言&#34;&gt;前言&lt;/h2&gt;
&lt;p&gt;在使用 &lt;a href=&#34;https://git-scm.com&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Git&lt;/a&gt; [1] 進行版本控制時，有時候提交 commit message 不小心手滑打錯字，或是覺得寫得不好想要修改，#事後越想越不對勁。這時候，我們就需要回到之前的版本去做提交訊息的更正。&lt;/p&gt;</description>
    </item>
    <item>
      <title>為什麼是 Coroutine？（ㄧ）- Multithreading 不好嗎？</title>
      <link>https://blog.gannipiece.tw/zh-tw/posts/%E7%82%BA%E4%BB%80%E9%BA%BC%E6%98%AF-coroutine%E3%84%A7-multithreading-%E4%B8%8D%E5%A5%BD%E5%97%8E/</link>
      <pubDate>Sat, 28 May 2022 07:54:19 +0000</pubDate>
      <guid>https://blog.gannipiece.tw/zh-tw/posts/%E7%82%BA%E4%BB%80%E9%BA%BC%E6%98%AF-coroutine%E3%84%A7-multithreading-%E4%B8%8D%E5%A5%BD%E5%97%8E/</guid>
      <description>這陣子在使用 UniVRM 時，發現在 Unity 中有許多開發情境會使用到 Coroutine 這個方法，好比說開啟系統視窗選取檔案或是載入資源時。在這篇文章中，我會說明什麼是 Coroutine ，並且將它與 Thread 進行比較。</description>
    </item>
    <item>
      <title>如何在 Unity 編輯器中開啟並偵測 Ｍemory Leak？</title>
      <link>https://blog.gannipiece.tw/zh-tw/posts/how-to-detect-memory-leak-in-unity-project/</link>
      <pubDate>Tue, 03 May 2022 06:51:18 +0000</pubDate>
      <guid>https://blog.gannipiece.tw/zh-tw/posts/how-to-detect-memory-leak-in-unity-project/</guid>
      <description>&lt;h2 id=&#34;前言&#34;&gt;前言&lt;/h2&gt;
&lt;p&gt;Memory Leak 通常被翻譯作記憶體流失，是記憶體的管理不當所產生的現象。發生記憶體流失時，不一定會馬上造成程式本身運行的問題，然而，很有可能因為可用記憶體數量的減少，逐漸造成電腦效能降低，嚴重時可能會造成程式一些不可預期的錯誤，甚至是安全性的問題&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;</description>
    </item>
    <item>
      <title>如何將 VRoid Studio 的模型匯入 Unity 中並加入 Mixamo 的動畫？</title>
      <link>https://blog.gannipiece.tw/zh-tw/posts/%E5%A6%82%E4%BD%95%E5%B0%87-vroid-%E7%9A%84%E6%A8%A1%E5%9E%8B%E5%8C%AF%E5%85%A5-unity-%E4%B8%AD%E4%B8%A6%E5%8A%A0%E5%85%A5-mixamo-%E7%9A%84%E5%8B%95%E7%95%AB/</link>
      <pubDate>Fri, 04 Feb 2022 09:08:23 +0800</pubDate>
      <guid>https://blog.gannipiece.tw/zh-tw/posts/%E5%A6%82%E4%BD%95%E5%B0%87-vroid-%E7%9A%84%E6%A8%A1%E5%9E%8B%E5%8C%AF%E5%85%A5-unity-%E4%B8%AD%E4%B8%A6%E5%8A%A0%E5%85%A5-mixamo-%E7%9A%84%E5%8B%95%E7%95%AB/</guid>
      <description>最近想要來了解 vtuber 的生態與製作，因此開始接觸相關的知識。今天我會簡單介紹如何透過 VRoid Studio 這套工具快速的製作一個 vtubuer 的模型，並且將匯出的 VRM 檔案放到 Unity 中，再進一步在模型上套入動畫。</description>
    </item>
    <item>
      <title>如何使用 JUCE 實作 XYPad？</title>
      <link>https://blog.gannipiece.tw/zh-tw/posts/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8-juce-%E5%AF%A6%E4%BD%9C-xypad/</link>
      <pubDate>Tue, 25 Jan 2022 14:13:30 +0800</pubDate>
      <guid>https://blog.gannipiece.tw/zh-tw/posts/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8-juce-%E5%AF%A6%E4%BD%9C-xypad/</guid>
      <description>XY Pad 是 Audio Plugin 中很常見的 UI 設計方式，可以同時對兩個不同面向的因子進行操作。本文將介紹如何使用 JUCE 這個 Framework 來實作 XY Pad，並說明相關的 Component 類別與覆寫方法。</description>
    </item>
    <item>
      <title>如何使用 git rebase 與其他分支合併？</title>
      <link>https://blog.gannipiece.tw/zh-tw/posts/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8-git-rebase-%E8%88%87%E5%85%B6%E4%BB%96%E5%88%86%E6%94%AF%E5%90%88%E4%BD%B5/</link>
      <pubDate>Thu, 20 Jan 2022 11:43:53 +0800</pubDate>
      <guid>https://blog.gannipiece.tw/zh-tw/posts/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8-git-rebase-%E8%88%87%E5%85%B6%E4%BB%96%E5%88%86%E6%94%AF%E5%90%88%E4%BD%B5/</guid>
      <description>最近 Plug-In 開發得差不多了，接下來要與夥伴改進與測試目前的合成器，首先遇到的問題就是如何將我們兩個的修改版本進行整合。在這篇文章中，我會先說明 rebase 的使用方法，並提供一個簡單的範例。</description>
    </item>
    <item>
      <title>如何使用 std::function 撰寫 Callback Function？</title>
      <link>https://blog.gannipiece.tw/zh-tw/posts/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8stdfunction%E6%92%B0%E5%AF%ABcallback-function/</link>
      <pubDate>Tue, 18 Jan 2022 00:53:58 +0800</pubDate>
      <guid>https://blog.gannipiece.tw/zh-tw/posts/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8stdfunction%E6%92%B0%E5%AF%ABcallback-function/</guid>
      <description>std::function 是 c&#43;&#43;11 後的新功能，定義於 header &amp;lt;functional&amp;gt; 中。有點像是 c 語言中的 function pointer，任何 CopyConstructable 的 Callable 物件皆可以 std::function 儲存、複製以及調用。</description>
    </item>
    <item>
      <title>如何在 Docker 中運行 GitLab Runner？</title>
      <link>https://blog.gannipiece.tw/zh-tw/posts/%E5%A6%82%E4%BD%95%E5%9C%A8-docker-%E4%B8%AD%E9%81%8B%E8%A1%8C-gitlab-runner/</link>
      <pubDate>Mon, 25 Oct 2021 12:38:23 +0800</pubDate>
      <guid>https://blog.gannipiece.tw/zh-tw/posts/%E5%A6%82%E4%BD%95%E5%9C%A8-docker-%E4%B8%AD%E9%81%8B%E8%A1%8C-gitlab-runner/</guid>
      <description>一般來說，我們可以在使用本地端安裝的 GitLab Runner 來作為專案 CI/CD 的機器。除此之外，GitLab 亦提供 GitLab Runner 的 Docker images，讓我們在 Docker 的 container 中運行 GitLab Runner。本篇文章將參考官方文件來進行介紹。</description>
    </item>
  </channel>
</rss>
