<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:webfeeds="http://webfeeds.org/rss/1.0"><channel><title>personal-tool on 林協霆醫師</title><link>/tags/personal-tool/</link><description>林協霆醫師 (personal-tool)</description><generator>Hugo -- gohugo.io</generator><language>zh-tw</language><image><url>https://htl.physician.tw/favicon-32x32.png</url><title>林協霆醫師</title><link>https://htl.physician.tw/</link><width>32</width><height>32</height></image><webfeeds:icon>https://htl.physician.tw/favicon-32x32.png</webfeeds:icon><webfeeds:logo>https://htl.physician.tw/android-chrome-512x512.png</webfeeds:logo><webfeeds:accentColor>5bbad5</webfeeds:accentColor><lastBuildDate>Mon, 04 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="/tags/personal-tool/index.xml" rel="self" type="application/rss+xml"/><item><title>Mail：個人化郵件處理工具之 TypeScript 實作</title><link>/blog/mail-2026-05-04/</link><pubDate>Mon, 04 May 2026 00:00:00 +0000</pubDate><guid>/blog/mail-2026-05-04/</guid><description>&lt;h2 id="introduction引言" >
&lt;div>
&lt;a href="#introduction%e5%bc%95%e8%a8%80">
#
&lt;/a>
Introduction（引言）
&lt;/div>
&lt;/h2>
&lt;p>郵件仍是學術與行政溝通的核心管道，但個人收件匣的雜訊比急速攀升，重要訊息常被淹沒。商用郵件分類工具雖多，但缺乏針對醫療研究情境的客製能力，例如自動辨識期刊投稿狀態、研究合作邀約或臨床試驗 IRB 文件。本專案為個人探索性質的 Mail 處理腳手架，目標是建立可被 LLM 整合的可程式化收件匣。&lt;/p>
&lt;h2 id="methods方法" >
&lt;div>
&lt;a href="#methods%e6%96%b9%e6%b3%95">
#
&lt;/a>
Methods（方法）
&lt;/div>
&lt;/h2>
&lt;p>採用 TypeScript 作為主要語言，理由有二：一方面 TypeScript 在處理現代 IMAP／OAuth／Webhook 等網路協定上具備成熟生態系，另一方面便於與其他以 TS 撰寫的 LINE Bot、Cloudflare Workers 工具共用型別與資料結構。專案以模組化方式拆分郵件擷取、分類規則、LLM 介接與動作（標記、轉寄、回覆）等子系統，皆預留可被 MCP 或 Claude Skill 呼叫的 API 邊界。&lt;/p>
&lt;p>由於屬於個人實驗性質，目前優先確保「可在本地運行的最小可行版本」，再依需求擴充至遠端排程與多帳號支援。&lt;/p>
&lt;h2 id="results結果" >
&lt;div>
&lt;a href="#results%e7%b5%90%e6%9e%9c">
#
&lt;/a>
Results（結果）
&lt;/div>
&lt;/h2>
&lt;p>目前已完成基本的郵件擷取與標記實驗，並驗證 TypeScript 在處理跨服務 API 上的可行性。雖尚未穩定到日常依賴，但已能就特定收件人或主題自動產生整理摘要，作為通勤時間瀏覽的素材。&lt;/p>
&lt;h2 id="discussion討論" >
&lt;div>
&lt;a href="#discussion%e8%a8%8e%e8%ab%96">
#
&lt;/a>
Discussion（討論）
&lt;/div>
&lt;/h2>
&lt;p>本專案的價值在於把郵件視為「可被程式化處理的事件流」，而非僅是顯示介面。限制方面，郵件內容涉及他人隱私與敏感醫療資訊，必須謹慎設計儲存與處理界線；OAuth 設定與長期憑證管理亦須投入額外時間。未來方向包括：與既有 LINE Bot、Telegram Bot 整合形成統一通知中心、加入 LLM 摘要與優先序評估。&lt;/p>
&lt;h2 id="連結" >
&lt;div>
&lt;a href="#%e9%80%a3%e7%b5%90">
#
&lt;/a>
連結
&lt;/div>
&lt;/h2>
&lt;ul>
&lt;li>GitHub：&lt;a href="https://github.com/htlin222/Mail">htlin222/Mail&lt;/a>&lt;/li>
&lt;li>主要語言：TypeScript&lt;/li>
&lt;li>最後更新：2026-05-04&lt;/li>
&lt;/ul></description></item><item><title>green-box：以 Shell 腳本維護綠色／可信任二進位執行環境的私有專案</title><link>/blog/green-box-2026-03-24/</link><pubDate>Tue, 24 Mar 2026 00:00:00 +0000</pubDate><guid>/blog/green-box-2026-03-24/</guid><description>&lt;h2 id="introduction引言" >
&lt;div>
&lt;a href="#introduction%e5%bc%95%e8%a8%80">
#
&lt;/a>
Introduction（引言）
&lt;/div>
&lt;/h2>
&lt;p>軟體開發者長期以「執行不信任程式碼」為日常工作的一部分：無論是新工具、來路不明的腳本、或經 LLM 生成尚未審視的指令，都帶有潛在風險。&lt;code>green-box&lt;/code> 專案以「綠色執行盒」為核心隱喻：使用者只在進入此環境後才執行可疑指令，環境內預設無寫入權限至個人重要目錄，並以快照與快照恢復維護乾淨基線。&lt;/p>
&lt;h2 id="methods方法" >
&lt;div>
&lt;a href="#methods%e6%96%b9%e6%b3%95">
#
&lt;/a>
Methods（方法）
&lt;/div>
&lt;/h2>
&lt;p>實作以 Shell 腳本為主：建立隔離工作目錄、限制檔案系統可見範圍、提供「重置」指令快速回到基線。具體手段包含 chroot、namespace、container 等視作業系統而異；對於 macOS 則採用 dotfiles 風格的 sandbox profile 限制。設計上避免引入額外服務，使腳本可在最小依賴下被部署。&lt;/p>
&lt;p>整體理念是「降低使用者犯錯的後果」：當執行環境本身限制嚴格，使用者執行陌生指令的心理門檻降低，可更安全地進行探索與實驗。配合 Git 版本控制，每次重置可保證乾淨初始狀態，避免實驗副作用累積。&lt;/p>
&lt;h2 id="results結果" >
&lt;div>
&lt;a href="#results%e7%b5%90%e6%9e%9c">
#
&lt;/a>
Results（結果）
&lt;/div>
&lt;/h2>
&lt;p>該環境已成為作者執行 LLM 生成指令、嘗試新 CLI 工具的預設場域。即便指令中暗藏破壞性命令（如誤刪檔案、洩漏環境變數），其影響也被侷限於 green-box 內，不波及主系統。對於頻繁與 AI 協作開發者，此一隔離模式顯著降低意外風險。&lt;/p>
&lt;h2 id="discussion討論" >
&lt;div>
&lt;a href="#discussion%e8%a8%8e%e8%ab%96">
#
&lt;/a>
Discussion（討論）
&lt;/div>
&lt;/h2>
&lt;p>本專案實踐了「為個人工作流加入信任邊界」的設計：當不信任無法消除時，便應以技術手段限縮其影響。限制方面，Shell 隔離並非完整 sandbox，仍可能被刻意設計的惡意指令繞過；某些工具（需要全系統存取）無法在隔離環境內運作。未來可結合更完整的 sandbox 機制（如 macOS App Sandbox、Linux user namespaces）並提供易用包裝。&lt;/p>
&lt;h2 id="連結" >
&lt;div>
&lt;a href="#%e9%80%a3%e7%b5%90">
#
&lt;/a>
連結
&lt;/div>
&lt;/h2>
&lt;ul>
&lt;li>GitHub：&lt;a href="https://github.com/htlin222/green-box">htlin222/green-box&lt;/a>&lt;/li>
&lt;li>主要語言：Shell&lt;/li>
&lt;li>最後更新：2026-03-24&lt;/li>
&lt;/ul></description></item><item><title>casey-schedule：個人排程管理的 JavaScript 私有實驗專案</title><link>/blog/casey-schedule-2026-02-23/</link><pubDate>Mon, 23 Feb 2026 00:00:00 +0000</pubDate><guid>/blog/casey-schedule-2026-02-23/</guid><description>&lt;h2 id="introduction引言" >
&lt;div>
&lt;a href="#introduction%e5%bc%95%e8%a8%80">
#
&lt;/a>
Introduction（引言）
&lt;/div>
&lt;/h2>
&lt;p>時間管理工具市場上選項眾多（Google Calendar、Notion Calendar、Fantastical 等），但每位使用者的工作節奏與優先序皆有微妙差異。對於同時兼顧臨床、研究、教學與個人生活的醫師，現成工具常需多種變通用法才能契合現實，導致工作流複雜化。本專案是作者個人嘗試以最少程式碼建立屬於自己的排程管理工具，作為理解「我究竟需要什麼」的實驗素材。&lt;/p>
&lt;h2 id="methods方法" >
&lt;div>
&lt;a href="#methods%e6%96%b9%e6%b3%95">
#
&lt;/a>
Methods（方法）
&lt;/div>
&lt;/h2>
&lt;p>實作以 JavaScript 為主，採取迭代式開發：先建立最簡單的事件儲存與顯示，再依實際使用感受逐步增加功能（重複事件、優先序、與既有日曆同步、提醒）。每次新增功能皆要求自己回答「為何商用工具不夠用」，避免重複造輪。&lt;/p>
&lt;p>設計重點為「先有用再美觀」：UI 簡陋但邏輯緊密，使用一段時間後再依痛點優化視覺。所有資料留存於本地，避免綁定特定雲服務；可選地以 ICS 或其他開放格式與既有日曆軟體交換。&lt;/p>
&lt;h2 id="results結果" >
&lt;div>
&lt;a href="#results%e7%b5%90%e6%9e%9c">
#
&lt;/a>
Results（結果）
&lt;/div>
&lt;/h2>
&lt;p>雖屬探索專案，但累積過程已澄清作者個人在排程上真正在意的特性：對「待辦」與「事件」的清楚區分、對「能量水準」（能量高低時間）的標註、以及對「重複行為的儀式化」需求。這些觀察可能成為日後選擇正式工具或客製化現有工具的依據。&lt;/p>
&lt;h2 id="discussion討論" >
&lt;div>
&lt;a href="#discussion%e8%a8%8e%e8%ab%96">
#
&lt;/a>
Discussion（討論）
&lt;/div>
&lt;/h2>
&lt;p>本專案展示了「以自製工具理解自身需求」的實踐。其價值不在最終產品，而在過程中累積的需求洞察。限制方面，自製工具難以追上商用產品的功能廣度；維護成本對個人開發者長期構成壓力。未來可選擇將獲得的洞察反饋至既有開源排程工具的擴充模組，而非堅持自管完整應用。&lt;/p>
&lt;h2 id="連結" >
&lt;div>
&lt;a href="#%e9%80%a3%e7%b5%90">
#
&lt;/a>
連結
&lt;/div>
&lt;/h2>
&lt;ul>
&lt;li>GitHub：&lt;a href="https://github.com/htlin222/casey-schedule">htlin222/casey-schedule&lt;/a>&lt;/li>
&lt;li>主要語言：JavaScript&lt;/li>
&lt;li>最後更新：2026-02-23&lt;/li>
&lt;/ul></description></item></channel></rss>