Archives
All the articles I've archived.
-
A Beginner's Course in Photographic Lens Optical Design: From Aberrations and Classic Lens Groups to Computational Optics
From paraxial ideals and Seidel aberrations to classic lens groups like the Cooke Triplet, Double Gauss, telephoto and retrofocus, then on to aspherics, special glass, MTF and computational optics — a beginner's course that threads photographic lens design into one coherent picture.
-
Tricks Claude and ChatGPT into Accepting API-Key-Only MCP Servers
Facing Claude and ChatGPT's OAuth-only restriction, I built MCP-Key2OAuth — a lightweight Cloudflare Workers proxy that lets any API-key-authenticated MCP server connect to major AI clients without touching the backend.
-
Taiwan Travelogue
A travel log from late 2025 with a friend, going from Taipei south through Taichung, Tainan, and Kaohsiung, then returning home via a Hong Kong layover.
-
Idle Router + Xiaomi Speaker: Hardcore Guide to Low-Cost LAN AirPlay 2 Audio Bridging
A practical guide and troubleshooting record on using an idle OpenWrt/ImmortalWrt router to build a low-latency AirPlay 2 receiver for the Xiaomi Smart Speaker Pro.
-
AI Secondary Screen (Part 2): Building a Personalized Multi-Source News Recommendation Feed with LLMs
A practical project demonstrating how to build a personalized news recommendation system using LLMs.
-
AI Secondary Display (Part 1): Reviving a Forgotten Kindle, Crafting an Elegant E-Ink Desktop Dashboard
Transform a dust-gathering Kindle Oasis 2 into an elegant desktop E-Ink secondary display.
-
OSS Migration Log: Moving Image Hosting to Cloudflare R2
Countdown to Tebi.io Shutdown. A log of the emergency migration of my image host to Cloudflare R2. Encountering pitfalls with KV storage high-frequency write limits, I solved the index reconstruction challenge at a low cost by using a Python script to modify backup metadata and switching to the D1 database.
-
No Longer Writing for Utility: Upgrading Both Content and Framework
When the requirement shifts from a "public resume" to "long-term writing," the tech stack should also switch to something lighter and handier.
-
Hands-On with Gemini 3 Pro: Rapidly Developing an Auto-Battler Game from Scratch
Gemini 3 Pro SOTA Model Capability Test
-
Immich GPU Acceleration: Empowering the Home AI Photo Library with Integrated Graphics
Engraving memories with computing power.
-
Live Photo and HDR Media Library Compression Scheme
Existence precedes perfection.
-
Travelogue of Japan
Scenery has no fixed bounds; it is revealed by the mind’s illumination.
-
From Megabytes to Megawatts: A Comprehensive Guide to High-Performance LLM and Diffusion Kernels with CUDA and Triton
All content is generated by LLM, please exercise discretion.
-
From Zero to LLM: A Complete Guide to the Large Language Model Tech Tree
All content herein was generated by an LLM and compiled into this document to facilitate sharing with family and friends.
-
Tinkering with the Cudy TR3000 and ImmortalWrt
How to set up ImmortalWrt on the Cudy TR3000 router.
-
The HomeLab Power Diet: How to Encode AV1 Without Burning Your Wallet
Pro tip: This guide has been seasoned with DeepSeek V3's special humor sauce.
-
Solving High CPU Usage Issues with Incus LXC Containers
Incus CPU usage bug
-
Using CF Workers to Enable Open WebUI to Directly Use xAI's Grok 2 Image Generation Model
Grok 2 IG in Open WebUI.
-
Good .XYZ Domains
Good cheap domains
-
Steam Deck Savior: Fixing MTools Translation Errors for NW.js RPGs Running on Proton
Play more games on Steam Deck.
-
From Snail NAS to a Proper Homelab: A Tech Enthusiast's Upgrade Journey
How my homelab evolved.