Simply Patrick Hopes can always go up, tears can only come down.
posts TILs
  • categories
    • android 2
    • business 26
    • career 20
    • development 56
    • programming 246
    • web 10
  • tags
    • ai 30
    • ai-assisted 13
    • android 23
    • book 30
    • c++ 23
    • computer-vision 8
    • database 4
    • dotnet 62
    • embedded 9
    • emulator 6
    • game-dev 8
    • git 16
    • go 5
    • google 39
    • gui 32
    • ios 8
    • java 31
    • javascript 11
    • macos 4
    • microsoft 63
    • opencv 7
    • performance 30
    • productivity 18
    • python 11
    • ruby 21
    • rust 57
    • software-engineering 43
    • tooling 112
    • tools 3
    • web 25
    • work 39
  • series
    • fuchsia dev 2
    • jetpack-compose 2
    • modern c++ 4
    • rust-52-projects 34
    • tiny-llm-runner-deep-dive 9
    • zeroclaw 5
  • about
  • 深入解構非同步核心:C++20/23 協程與 Rust Async/Future 的設計哲學與架構差異 August 18, 2026
  • 使用 C++23 與協程打造極簡高效的 OpenAI 相容 AI Gateway August 18, 2026
  • 用 C++23 與 Cabin 開發 herdr 排序外掛 August 16, 2026
  • MiniCompose August 14, 2026
  • 在 Rust 中實驗本機語音助理 August 12, 2026
  • 深入剖析 Jetpack Compose 渲染架構 August 11, 2026
  • 打造跨平台高效能 IP Camera 視訊串流伺服器 August 9, 2026
  • 打造零延遲 AI 手勢作業系統控制器 August 8, 2026
  • 用 Rust 把 2D 相片變成 3D 列印浮雕 August 7, 2026
  • 影片自動人臉打碼 June 28, 2026
  • 即時人臉與特徵點偵測 June 27, 2026
  • tiny-llm-runner 深入解讀 (9) June 9, 2026
  • tiny-llm-runner 深入解讀 (8) June 8, 2026
  • tiny-llm-runner 深入解讀 (7) June 7, 2026
  • tiny-llm-runner 深入解讀 (6) June 6, 2026
  • tiny-llm-runner 深入解讀 (5) June 5, 2026
  • tiny-llm-runner 深入解讀 (4) June 4, 2026
  • tiny-llm-runner 深入解讀 (3) June 3, 2026
  • tiny-llm-runner 深入解讀 (2) June 2, 2026
  • tiny-llm-runner 深入解讀 (1) June 1, 2026
  • 純手工 vs. 全功能框架 May 30, 2026
  • 用純 Rust 跑 Llama May 30, 2026
  • 用 Rust 打造本地 LLM 工作站 (四) May 25, 2026
  • 理解多模態 LLM 原理 May 24, 2026
  • 用 Rust 打造本地 LLM 工作站 (三) May 24, 2026
  • 本地 LLM 工作站 May 24, 2026
  • 用 Rust 打造本地 LLM 工作站 (二) May 24, 2026
  • 用 Rust 打造本地 LLM 工作站 May 21, 2026
  • 用 Rust 手寫 GGUF 解析器 May 20, 2026
  • Bevy 與 Rust 的共舞 March 21, 2026
  • NES 模擬器完成 March 19, 2026
  • NES APU 模擬器 March 19, 2026
  • NES Mapper 模擬器 March 17, 2026
  • NES Joypad 模擬器 March 17, 2026
  • NES PPU 模擬器 March 16, 2026
  • 用 Rust 寫一顆 6502 CPU March 16, 2026
  • 用 Iced 打造漫畫閱讀器 February 23, 2026
  • Rust 媒體元資料探索器 February 18, 2026
  • TileSplit WASM February 15, 2026
  • TileSplit February 14, 2026
  • Rust Proc Macro February 13, 2026
  • WebGPU Game of Life February 9, 2026
  • 深入理解 cargo-apk February 8, 2026
  • 間隔重複記憶卡 App February 8, 2026
  • 吉他指板視覺化工具 February 7, 2026
  • Vibe Coding 實戰 February 5, 2026
  • Rust GUI 框架比較 February 1, 2026
  • GPUI 計算機實作 January 31, 2026
  • 我的 Geonix rev.2 鍵盤配置 January 25, 2026
  • Rust FFI 完整指南 January 17, 2026
  • 打造即時 Markdown 編輯器 January 6, 2026
  • 我的 VSCode Peacock 配色收藏 January 4, 2026
  • 使用 Rust 實作非同步任務佇列 January 3, 2026
  • The future of AI coding December 30, 2025
  • 試用 Gemini 3 Pro November 20, 2025
  • Git 的痛點到未來 November 11, 2025
  • 版本控制的個人效率追尋 November 11, 2025
  • 版本控制的「柔術」🥋 November 10, 2025
  • Rust with Jupyter Notebook January 2, 2021
  • 看 log 的好工具 December 25, 2019
  • Setup Fuchsia Rust Development on macOS June 6, 2019
  • Setup Fuchsia C++ Development on macOS June 5, 2019
  • Learning Rust April 8, 2019
  • Revisiting GN October 31, 2018
  • C++ 套件管理 March 12, 2018
  • C++ 單元測試 March 10, 2018
  • Kotlin Coroutines and Threads February 14, 2018
  • Kotlin Coroutine API February 13, 2018
  • Devdocs Desktop January 22, 2018
  • Better Way to Request Runtime Permissions May 30, 2016
  • The Elements of Good Commit Messages May 12, 2016
  • Android OpenCV 臉部偵測及辨識 March 5, 2016
  • Redesign Listener with RxJava on Android March 4, 2016
  • Running Android Studio with Custom JDK February 28, 2016
  • GN (Generate Ninja) January 23, 2016
  • CMake 筆記 June 19, 2015
  • About Code Review June 12, 2015
  • 撰寫 Git Commit Message June 12, 2015
  • Using OpenGrok on Mac OS X January 16, 2015
  • Useful Go Channel Types May 5, 2014
  • RubyMotion v.s. Xcode + Objective-C March 27, 2014
  • Book for Golang Learning March 19, 2014
  • 第一次在淘寶上買書 March 18, 2014
  • RubyMotion March 16, 2014
  • Page Scrapping By Go January 7, 2014
  • Using Native Libraries in Android January 4, 2014
  • Go on Heroku December 15, 2013
  • My Go Development Environment December 14, 2013
  • 用 Scala 開發 Android App November 11, 2013
  • Scala December 10, 2012
  • Ruby's Object Model December 8, 2012
  • Trying Scala on Android December 8, 2012
  • rb-appscript and iTunes December 2, 2012
  • Good Software Development Practice from Facebook November 25, 2012
  • Phabricator November 8, 2012
  • SCRUM and PDCA October 14, 2012
  • Inconsolata and Source Code Pro September 27, 2012
  • Ruby Singleton Class September 16, 2012
  • Terminal syntax highlight September 16, 2012
  • ACRA and BugSense August 19, 2012
  • AQuery August 19, 2012
  • PlantUML August 19, 2012
  • Ninja August 18, 2012
  • Reference Counting in Android libutils August 12, 2012
  • Smart Pointers in WebKit April 29, 2012
  • Reference Counting in WebKit April 28, 2012
  • Continuous Integration and Android April 7, 2012
  • ARM Architecture for Mobile Developers December 24, 2011
  • Build iOS App with rake December 24, 2011
  • Cheating on iOS games December 24, 2011
  • iOS App Localization using rake December 24, 2011
  • Git Workflow December 3, 2011
  • LiveReload and Octopress December 3, 2011
  • AppCode October 29, 2011
  • Git and SourceTree October 23, 2011
  • C and Dennis Ritchie October 14, 2011
  • Importing wordpress.com Blog October 9, 2011
  • Hello Octopress! October 8, 2011
  • Git and Jun June 17, 2011
  • 好久沒碰的 Buildbot 改的還不錯 May 30, 2011
  • 多平台手機遊戲開發 May 28, 2011
  • My preferred programming fonts on Mac OS X February 19, 2011
  • How to be a Star Engineer July 21, 2008
  • Software Simian July 19, 2008
  • 工作與生活 November 2, 2007
  • Michael Barr September 3, 2007
  • Beautiful Code August 18, 2007
  • Subversion 1.5 is coming August 5, 2007
  • 與所有的開發人員共勉之 August 5, 2007
  • XNA Game Studio Express May 20, 2007
  • BuildBot on Windows May 6, 2007
  • The Best Programming Language December 6, 2006
  • OpenStreetMap November 30, 2006
  • Encounter with the 20th Century Microelectronics November 24, 2006
  • Farewell, again. :-) November 10, 2006
  • Recursive Descent Parser in Ruby November 8, 2006
  • Ruby Quiz November 6, 2006
  • My Second Ruby Program November 5, 2006
  • My First Ruby Program November 3, 2006
  • Microsoft iPod November 1, 2006
  • Windows 1.0 October 31, 2006
  • Goodbye XAML October 30, 2006
  • Green Thread October 29, 2006
  • Getting Real October 27, 2006
  • Tinderbox3 October 22, 2006
  • git October 17, 2006
  • Bad Comments in Code October 16, 2006
  • Every Software Project Needs October 16, 2006
  • Embedding Grapics in RTF October 13, 2006
  • Google /* Code Search */ October 12, 2006
  • Management By Objectives October 11, 2006
  • Josh Bloch on Design September 25, 2006
  • ARM's way September 24, 2006
  • Embedded Programming with Eclipse September 24, 2006
  • IVII, Goodbye! September 4, 2006
  • Programmer's Font September 3, 2006
  • On New Web Applications... August 21, 2006
  • 從台大與Google看資訊世界 May 6, 2006
  • 無限的你 May 6, 2006
  • Books on Embedding System Programming April 1, 2006
  • Andrew S. Tanenbaum on Teaching Computer Science March 27, 2006
  • kludge March 24, 2006
  • Catch-22 March 4, 2006
  • New Stuff for Programtic Programmers February 26, 2006
  • 珍重再見! February 25, 2006
  • MeWare, ThemWare, and UsWare February 9, 2006
  • C# 3.0 October 2, 2005
  • Microsoft Campus September 29, 2005
  • .NET Performance Tuning September 23, 2005
  • 在公牛身上擠奶 September 23, 2005
  • Mini Microsoft September 18, 2005
  • PDC Sessions September 17, 2005
  • 9/16 Anders Hejlsberg on C# 3.0 September 16, 2005
  • 9/13 Bill Gates Keynote September 14, 2005
  • 9/12 The Sleepy Day September 13, 2005
  • 9/11 The First Day of PDC 2005 Pre-Conference September 12, 2005
  • 9/10 The Day Before PDC 2005 September 11, 2005
  • 4 Weeks before PDC 05 August 16, 2005
  • Reading Joel on Software August 16, 2005
  • Jack Welch July 18, 2005
  • PDC 2005 July 17, 2005
  • The Best Software Writing I June 21, 2005
  • Counting Semaphore in .NET June 19, 2005
  • Implement Singleton Pattern by Generic (in C# 2.0) June 19, 2005
  • Cdecl Calling Convention for Delegates June 15, 2005
  • Cdecl Calling Convention for Delegates, Part II June 15, 2005
  • Erich Gamma on Design Patterns June 11, 2005
  • Head First Design Patterns June 9, 2005
  • Start a Startup May 25, 2005
  • Windows Internals Guru April 12, 2005
  • The First Recorded Computer Bug April 11, 2005
  • developer-centric or not April 10, 2005
  • Learning Economics April 8, 2005
  • BitKeeper & Linux April 7, 2005
  • SCM Branch April 5, 2005
  • The Ten Rules of Performance March 31, 2005
  • Jolt Awards 2005 March 21, 2005
  • How to be a good programmer? March 14, 2005
  • Exception Handling Best Practices in .NET March 12, 2005
  • Bug Reporting Best Practices March 10, 2005
  • Knuth & TAOCP February 15, 2005
  • Stallman, Torvalds, Knuth, and Dijkstra February 14, 2005
  • Acronym February 1, 2005
  • What is LLP64? February 1, 2005
  • Async is hard January 27, 2005
  • NDepend & NAnt January 20, 2005
  • Writing Exception-Safe Code January 17, 2005
  • Installing CruiseControl.NET January 12, 2005
  • Continuous Integration on .NET platform January 9, 2005
  • CodeProject January 6, 2005
  • New Books about Agile Development December 10, 2004
  • John Lam on CLI Metadata December 8, 2004
  • Stan Lippman on C++/CLI December 6, 2004
  • Windows Forms Programming Tips December 3, 2004
  • Don't throw System.Exception directly! November 27, 2004
  • C++ Coding Standards November 23, 2004
  • Zero Bug Bounce November 18, 2004
  • beforefieldinit November 16, 2004
  • IanG on .NET Multi-thread Programming November 14, 2004
  • Knowing x86 machine code November 13, 2004
  • MIT OCW 中文化 November 11, 2004
  • Java theory and practice November 2, 2004
  • Effective Java November 1, 2004
  • GraphViz October 28, 2004
  • Blog for nightly build changelog October 26, 2004
  • GTA3 October 25, 2004
  • 技術人員轉型 October 25, 2004
  • Examining Google Desktop October 16, 2004
  • Google Server On Your Machine October 16, 2004
  • Dilbert on Extreme Programming October 12, 2004
  • Grady Booch's Blog October 11, 2004
  • Applied .NET Attributes October 4, 2004
  • 奇異果的滋味 September 13, 2004
  • .NET is better than COM September 4, 2004
  • Data Binding in Avalon August 31, 2004
  • ",hr" August 30, 2004
  • Coroutine implementation in C# 2.0 August 30, 2004
  • Dependency properties August 30, 2004
  • My Shopping Cart for Technical Books August 30, 2004
  • Add-ins for Reflector August 26, 2004
  • XAML & Avalon August 14, 2004
  • Minidump August 10, 2004
  • AccuRev July 10, 2004
  • Comments in Windows Source Code June 30, 2004
  • Programming Quotes from WikiQuote June 30, 2004
  • The BASIC Programming Language June 30, 2004
  • .NET, Just for Fun June 24, 2004
  • NoStepInto in VS 2003 June 17, 2004
  • Streamed Lines June 15, 2004
  • 勇氣、度量、與智慧 June 14, 2004
  • Custom Attribues and eXtensible C# June 9, 2004
  • Enjoy Code June 4, 2004
  • Nullable types June 4, 2004
  • The Weird "break;" in switch/case June 4, 2004
  • Playin' with IT June 2, 2004
  • Team System June 2, 2004
  • x86-64 May 31, 2004
  • Coder To Developer May 7, 2004
  • Free Visual C++ Compiler May 7, 2004
  • SourceUnsafe April 22, 2004
  • 英代爾管理之道 April 22, 2004
  • Real Sucks April 20, 2004
  • CC2 April 16, 2004
  • Avalon & Indigo April 9, 2004
  • Quit thinking and look April 2, 2004
  • The n Habits of Highly Defective Windows Applications April 1, 2004
  • 10 Tips from the Ruby Creator March 30, 2004
  • Show me the money March 30, 2004
  • Anonymous Methods in C# 2.0 February 24, 2004
  • Hard Reading on Garbage Collection February 24, 2004
  • 當個驕傲的工程師 February 23, 2004
  • Visual Assist February 19, 2004
  • 名人談軟體 February 10, 2004
  • Bruce Eckel's Weblog February 8, 2004
  • Leaky Abstractions February 5, 2004
  • 科技設計 February 5, 2004
  • .NET Performace Optimization February 4, 2004
  • A Conversation with Anders Hejlsberg February 2, 2004
  • C# Generics February 2, 2004
  • 軟體公司創業指南 February 2, 2004
  • Partial Types February 1, 2004
  • BitTorrent January 30, 2004
  • W32 API -> .NET Framework January 30, 2004
  • Selected Software Engineering Books January 28, 2004
  • Calling Convention January 14, 2004
  • Exception Handling Techniques January 14, 2004
  • Make More Mistakes January 8, 2004
  • SCM 好書推薦 December 27, 2003
  • Pragmatic Starter Kit December 26, 2003
  • 你還在用 VSS 嗎? December 26, 2003
  • 學習 December 22, 2003
  • Browser Wars December 21, 2003
  • Design Guidelines for Class Library Developers December 20, 2003
  • 10 things Google has found to be true December 16, 2003
  • Debugging December 12, 2003
  • The Legend of Zelda December 9, 2003
  • News Aggregator in C# December 3, 2003
  • Compiling a Compiler December 2, 2003
  • Good software, like wine, takes time. December 2, 2003
  • Beyond Chaos November 24, 2003
  • Programming Embedded Systems November 24, 2003
  • 程式員救星 November 21, 2003
  • 數位的花園 November 21, 2003
  • The Two Switches November 20, 2003
  • Microsoft and G5 November 4, 2003
  • Have you watched fight club? October 21, 2003
  • Software Development October 18, 2003
  • Flash Clock October 10, 2003
  • MIT OpenCourseWare October 4, 2003
  • Joel 的新辦公室 September 30, 2003
  • What does the customer want? September 30, 2003
  • Aspect-Oriented Programming, Part II September 29, 2003
  • SSCLI September 16, 2003
  • Leading a Software Development Team September 15, 2003
  • Multithreading in Windows Froms September 8, 2003
  • Under Pressure and On Time September 7, 2003
  • We will not ship shit July 27, 2003
  • Iceberg Sneak-Ins July 7, 2003
  • developer vs. programmer, part II July 5, 2003
  • ISV July 5, 2003
  • ::Manageability:: July 4, 2003
  • Eric.Weblog() July 4, 2003
  • Refactoring & Patterns July 3, 2003
  • Aspect-Oriented Programming July 1, 2003
  • How to Keep Your Job June 30, 2003
  • 履歷 June 24, 2003
  • 辦公室規劃 June 20, 2003
  • The Life of a Project June 18, 2003
  • M.C. Escher June 17, 2003
  • A Community of Software Thinkers June 11, 2003
  • Interview June 11, 2003
  • Manifesto for Agile Software Development June 11, 2003
  • Hardware breakpoints June 10, 2003
  • ILDASM June 10, 2003
  • Winamp author June 10, 2003
  • developer vs. programmer June 9, 2003
  • Assertions and Error Handling June 8, 2003
  • 悲哀的新辦公室 June 6, 2003
  • Language of the Year June 4, 2003
  • 選擇與天賦 June 4, 2003
  • Exceptional C++ May 22, 2003
  • Cleaning up code May 21, 2003
  • C# and Beautiful Code May 20, 2003
  • To Speak Perl May 17, 2003
  • Programmer Dvorak Keyboard Layout May 14, 2003
  • All I Really Need to Know I Learned in Kindergarten May 12, 2003
  • Pair Programming May 12, 2003
  • Software Process Management May 8, 2003
  • ~ ! @ # $ % ^ & * 到底要怎麼唸? May 7, 2003
  • Borland and Microsoft May 7, 2003
  • John Warnock May 7, 2003
  • Pragmatic Programmers May 5, 2003
  • Joel on Software May 4, 2003
  • Google May 3, 2003
  • Gödel, Escher, Bach May 2, 2003
  • Virus May 2, 2003
  • Applied Microsoft .Net framework programming May 1, 2003
© Patrick Tsai 2003-2026. Proudly powered by Hugo.