HSIUNG
SHAO
Work index / 13 records

系統、工具與長期維護。

這裡不是作品縮圖牆,而是一份可以追溯的工作索引。每個專案都保留它解決的問題、目前狀態,以及實際可閱讀的技術紀錄。

Current & maintained

仍在推進的系統

正在開發或持續維護的公開專案。展開每一列可以查看設計重點、技術組合與相關文章。

01

MultiStream Hub

持續維護 / Frontend

免費的多平台直播觀看工具,支援同時觀看 Twitch 與 YouTube 直播。

提供多視窗畫布、拖曳交換、聊天室整合、收藏與多語言介面,並針對桌面、手機與橫向模式調整操作方式。服務已部署上線,目前以穩定性、平台相容性與資料同步維護為主。

ReactTypeScriptViteTailwind CSSZustandTanStack QuerySupabaseCloudflare Pages
Key decisions
  • 多平台畫布 — Twitch 與 YouTube 多視窗觀看及聊天室整合
  • 跨裝置體驗 — 桌面、手機與橫向模式各自調整操作密度
  • 邊緣服務 — Cloudflare Pages Functions 搭配 Supabase 排程與資料同步
02

PobTools

持續維護 / Tooling

Path of Building 繁體中文化啟動器,PoE1 / PoE2 都支援,原本的 POB 不動、照常更新。

C++ 啟動器在執行時把翻譯與字型注入 POB,Lua 修補只存在記憶體,不寫回 POB 檔案。翻譯資料以官方遊戲客戶端為準,約 10 萬組英中對照,與程式分成兩條發佈線各自更新,更新內容都會先驗證簽章。啟動器另附翻譯編輯器、物品過濾器編輯器、輿圖策略、軍團珠寶計算器與搜尋字串產生器。

C++17CMakeLuaImGuiPythonvcpkg
Key decisions
  • 零污染注入 — POB 檔案不動,POB 自己更新也不會把中文化弄壞
  • CJK 相容 — 中文物品搜尋、繁中客戶端物品貼上與字型切換
  • 雙發佈線 — 翻譯資料與程式分開更新,安裝前驗證 ECDSA 簽章
03

Discord Bot 自動化機器人

持續維護 / Backend

長時間運行的模組化 Discord 機器人,負責通知、翻譯與遊戲服務自動化。

以 Cog 架構拆分新聞追蹤、排程通知、遊戲伺服器控制、跨頻道轉發與即時翻譯。設計重點是讓各功能能獨立停用、重試與維護,同時保護私有設定和部署環境。

Pythondiscord.pyAPScheduleraiohttpBeautifulSoupNLLBCUDA
Key decisions
  • 模組化服務 — Cogs 與排程工作可獨立載入及維護
  • 可靠通知 — 重試、去重與跨頻道推送
  • 本地推論 — 使用 GPU 執行即時翻譯並保留部署彈性
04

Minecraft MOD 翻譯工具

持續維護 / Tooling

使用本地語言模型或翻譯服務,將 Minecraft MOD 語系檔轉為繁中資源包。

支援 MOD 語系抽取、增量翻譯、格式碼保護、SQLite 快取與資源包輸出,並提供 Windows GUI 與單檔執行版本。目前功能已完成,維持相容性與翻譯引擎調整。

PythonTkinterSQLiteLM StudioPyInstaller
Key decisions
  • 增量翻譯 — 只處理新增或變更的字串並重用快取
  • 格式保護 — 保留遊戲色碼、變數與特殊標記
  • 本地模型 — 可透過 LM Studio 使用本機 GPU 推論
05

Poe Market zh

持續維護 / Tooling

Path of Exile 交易站的瀏覽器擴充:國際服 PoE1 / PoE2 中文化、書籤側邊欄,以及 poe.ninja / pobb.in 中文化。

Chrome 與 Firefox 共用同一份 Manifest V3 程式碼,零建置。翻譯資料依官方 id 對接美服與台服交易 API,再以遊戲檔補缺,字典可線上更新,不必重裝擴充。側邊欄提供兩層資料夾書籤、搜尋歷史、PoB 匯入與其他擴充的書籤匯入,國際服與台服都能用。所有資料只存在使用者的瀏覽器。

Chrome ExtensionFirefoxManifest V3JavaScript
Key decisions
  • 雙站雙代 — 依網址判斷 PoE1 / PoE2 與國際服 / 台服,資料各自獨立
  • 可驗證的譯名 — 依官方 id 對接美服與台服 API,無法印證的條目保留英文
  • 權限分層 — poe.ninja / pobb.in 走選用權限,新增功能不會讓既有使用者被停用
06

ExileAppraiser

開發中 / Tooling

Path of Exile 1 / 2 遊戲內查價工具,滑鼠指著物品按熱鍵,交易站結果直接出現在游標旁。

以 Electron overlay 疊在遊戲上,依前景視窗自動切換 PoE1 / PoE2,國際服與台服、繁中與英文客戶端都能解析。PoE2 另外用 OCR 辨識靈魂之井三選一與符文塑形面板,直接標出詞綴 Tier 與參考價。安裝版會在背景差分更新。

ElectronVue 3TypeScriptViteWindows OCRPoE Trade API
Key decisions
  • 雙版本雙區服 — 依遊戲視窗自動切換 PoE1 / PoE2,國際服與台服都能查
  • 畫面辨識 — OCR 讀取靈魂之井與符文塑形面板,旁邊直接標註 Tier 與價格
  • 可回報的錯誤 — 查價失敗時整理成 issue 草稿,由使用者確認後才送出
07

AI Music Workflow

開發中 / Tooling

從企劃、歌詞、生成到封面與影片輸出的 AI 音樂製作流程。

以 Python 工具與本地生成模型串接歌曲企劃、音訊分析、歌詞、品牌視覺與影片輸出,並用可追蹤的工作流程管理各首歌曲的素材與發布階段。目前以 Kumori Music 名義持續製作動畫靈感原創音樂。

PythonFastAPIReactComfyUIFFmpeglibrosa
Key decisions
  • 完整製作鏈 — 從歌曲企劃、生成與品質檢查一路銜接品牌視覺及正式影片
  • 引擎隔離 — 不同音樂模型和大型權重與作品資料分離
  • 發布流程 — 以 Remotion 與 FFmpeg 輸出橫式正式影片及直式 Shorts
Archive

已暫停與完成的探索

不是刪除紀錄,而是保留當時解決的問題、做過的取捨與可以延續的技術成果。

01

Game Server Control Panel

暫時擱置 / Full stack

自架式遊戲伺服器管理面板,整合安裝、啟停、即時主控台與遠端操作。

以 TypeScript monorepo 開發的本地優先管理工具。後端代理程式負責遊戲行程、安裝工作與狀態持久化,前端則提供伺服器建立精靈、即時主控台和工作進度。現階段正從可用的第一階段往自動安裝與更新流程推進。

TypeScriptFastifyReact 19WebSocketSQLiteZustandxterm.js
Key decisions
  • 程序生命週期 — 集中管理啟動、停止、異常退出與 Windows 終止備援
  • 即時互動 — WebSocket 串接遊戲主控台與遠端指令
  • 安裝工作流 — Minecraft 與 SteamCMD 安裝器採可追蹤的背景工作設計
02

Local Task Manager

暫時擱置 / Tooling

以專案為中心的 Electron 開發工作台,整合任務、Git、終端機與本地服務。

把分散在終端機、Git 工具與筆記裡的日常開發流程收進同一個桌面工作區。應用透過明確的 IPC 合約隔離主程序與渲染程序,並用 SQLite 保存專案、任務和工作階段狀態;目前持續改善終端機與專案工作區體驗。

ElectronReactTypeScriptSQLitenode-ptyTanStack QueryZustand
Key decisions
  • 單一 IPC 合約 — 集中管理主程序與前端之間的通訊邊界
  • 本地工作區 — Kanban、Git diff、檔案樹、編輯器與服務控制整合
  • 終端機生命週期 — PTY 建立、還原與工作階段管理
03

Awakened PoE Trade-zh-TW

已封存 / Tooling

Awakened PoE Trade 的繁體中文修正版,修復國際服繁中客戶端的物品解析與交易搜尋。

保留原作的查價、overlay 與快捷鍵體驗,針對繁中客戶端的分隔線、全形標點、魔法物品名、詞綴標籤、區域名稱與交易類型進行修正。提供安裝版與免安裝版,並改成由使用者確認後才下載更新。

ElectronVue 3TypeScriptVitePoE Trade API
Key decisions
  • 繁中解析 — 修正不定長分隔線、全形冒號、空行與無標註詞綴
  • 交易搜尋 — 修復海圖區域、傭兵流派與同名物品的查詢條件
  • 可控更新 — 只檢查版本,由使用者按下 Install now 後才下載
04

PoE Build Viewer

已封存 / Frontend

解析 Path of Building 分享碼並呈現角色裝備與配置的網頁實驗。

以 Next.js 實作 PoB code 解壓、XML 解析、裝備呈現與多語系資料對照。這個方向目前不再繼續開發,保留為資料解析與遊戲工具設計的階段性紀錄。

Next.jsReactTypeScriptZustandSupabase
Key decisions
  • 分享碼解析 — 解壓並轉換 Path of Building XML 資料
  • 遊戲資料對照 — 將裝備與詞綴映射為可閱讀內容
  • 階段性收尾 — 記錄停止投入的原因與可重用經驗
Protected work

客戶專案的技術切面

只談可公開的架構、工程方法與解題方向;不揭露客戶名稱、營運資料與商業細節。

C01

資料管理平台技術案例

Technical case

客戶專案案例;僅分享 React、PostgreSQL 與權限設計等工程實作。

+

為保護客戶與營運資訊,本案例不公開品牌、資料結構和實際流程,只整理前端型別安全、資料權限、狀態建模、報表輸出與第三方整合的通用工程方法。

  • 權限邊界 — 以前後端雙層規則限制資料存取
  • 型別安全 — 表單、驗證與資料存取共用明確結構
  • 狀態建模 — 將複雜操作拆成可驗證的狀態轉移
C02

品牌網站技術案例

Technical case

客戶專案案例;僅分享前端遷移、內容管理與部署架構。

+

此案例只描述可重用的技術決策:從既有框架遷移至 React 與 Vite、以 Supabase 管理內容和權限、處理 SPA 部署、圖片壓縮與搜尋引擎所需的基礎設定,不公開品牌或營運細節。

  • 框架遷移 — 保留功能的同時降低前端部署複雜度
  • 內容與權限 — 將公開頁面和管理功能清楚隔離
  • 靜態部署 — 處理 SPA fallback、SEO 與圖片輸出