Pika’s zone begins here ⚡

Welcome to my little corner of the internet! I’m Pika, a little engineer who loves tinkering with side projects. This blog is where I share tech notes, dev experiments, and bits of everyday life. Hope you find something fun or useful along the way 😀

2025 Hokkaido Trvel

北海道,一段放空的旅程 從北海道回來後,現在才有一點餘裕把這趟旅程整理起來。 1. 出發前,我其實沒想太多 工作大概快滿一年了,其實一直處於緊繃的工作狀態,也沒想過其他事情。 直到被朋友慫恿的當下,一氣之下訂好了機票。 12/13 ~ 12/19 Hokkaido Sapporo, Otaru, Asahikawa 2. 在北海道,時間走得比較慢 可能是初見雪的感動,周遭時間彷彿放慢了。 藍調時分的浪漫,讓人總忍不住停下腳步,仰望那靜謐深邃的天空。 3. 有幾個瞬間,我其實有點被打到 這趟旅程幾乎都是自由行,更能按照自己的步調探索。深夜時分獨自漫步至神社,旅途因而多了一抹神秘的色彩,彷彿替回憶加上了難以言喻的 DLC。 KingBear 湯咖哩——每一樣食材都能感受到主廚的用心與細膩。這間小店原本並不在行程內,只是旅途中的即興決定,卻意外帶來一份驚喜。 4. 回來之後 開始想念雪花輕撫臉龐的那份柔軟,即使在零下十度的寒夜裡,卻有著沁入心脾的舒暢,當下的煩惱也隨之融化。 5. 留給未來的自己 這趟旅程,是我人生第二次出國,也是工作後的第一次遠行。走出熟悉的生活圈,更加確信這世界還有那麼多地方等著我去探索、體驗與感受。

December 20, 2025 · 1 min · 29 words · Daniel Ho

Slidev + Cursor: Turning Slides into a Conversation with AI

前言 / Introduction Making technical slides used to feel heavier than writing code. 大部分工程師或許跟我一樣,都被做簡報這件事所困。傳統的簡報工具像是 PowerPoint 或 Keynote,對我們來說總有種格格不入的感覺:需要使用滑鼠點擊、調整格式,這些操作中斷我們的習慣流程。 直到我開始用 Slidev,再搭配 Cursor,整個人感覺都對了。Slidev 讓簡報變成 Markdown 檔案,而 Cursor 讓 AI 成為你的簡報夥伴。這個組合不僅解決了工具使用的問題,更重要的是改變了製作簡報的思維方式。 Slidev: Slides as Markdown Slidev treats slides as a Markdown document. 軟體開發最常被用於紀錄文檔的語法,想當然就是 Markdown,整體使用的概念也很簡單: Slide order is file structure Code blocks work naturally Git handles version control 對工程師來說,幾乎沒有學習成本。 Traditional Tools vs Slidev Let’s compare the workflow differences: Aspect Traditional Tools (PowerPoint/Keynote) Slidev 操作方式 Click to add slides, drag to reorder Edit text to add or reorder slides 格式化 Formatting requires GUI interactions Formatting is just Markdown syntax 版本控制 Save as different files It’s a text file — Git works perfectly 代碼塊 Copy-paste and hope formatting works Native Markdown support with syntax highlighting 協作 Share files back and forth Merge requests, code reviews, just like code The difference isn’t just about tools — it’s about thinking in text, not slides. ...

November 6, 2025 · 2 min · 267 words · Daniel Ho

Boost Your Hugo Blog with Automated Open Graph Images

前言 / Introduction 突然想讓自己的文章在分享的時候更酷炫,那就試試看 Open Graph (OG) 圖片,可以讓你的連結在 Discord、Twitter、LinkedIn 等平台上顯示精美的預覽卡片。 本文將教你:/ What you’ll learn: 設計 OG 圖片模板 / Design OG image templates 用 Playwright 自動生成圖片 / Auto-generate images with Playwright 整合 GitHub Actions / Integrate with GitHub Actions 自動化部署到 Cloudflare Pages / Deploy to Cloudflare Pages Step 1: Design an HTML Template 建立 og-template/template.html 作為 OG 圖片模板。標準 OG 圖片尺寸為 1200x630px。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <style> body { width: 1200px; height: 630px; margin: 0; display: flex; justify-content: center; align-items: center; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); font-family: 'Inter', -apple-system, sans-serif; color: white; text-align: center; padding: 60px; } h1 { font-size: 80px; font-weight: 800; margin: 0; text-shadow: 2px 2px 4px rgba(0,0,0,0.3); } </style> </head> <body> <h1>{{TITLE}}</h1> </body> </html> Tips: ...

October 24, 2025 · 5 min · 918 words · Daniel Ho

When My Email Was Taken, I Built My Own Instead

前言 / Introduction 最近在註冊某個服務時,我的 email 地址竟然被別人註冊走,導致驗證信收不到。 但聯絡客服申訴又過於麻煩,搶回來的機會又很渺茫,與其這樣,不如自己建立一個「可以正常收信」的網域信箱。 於是我用 Cloudflare Email Routing 搭配現有的 Gmail/iOS Mail 完成這件事,以下是我實際操作的流程與心得。 Why using Cloudflare Email Routing 與其再去註冊一個新信箱,不如直接用自己的網域收信,再轉寄到現有的 Gmail 或 iOS Mail。 Cloudflare 的 Email Routing 是免費的、無需自架 Mail Server,也完全不會改變日常的收信方式。 How to Do It Add or Select Your Domain If your domain is already on Cloudflare, just open it. Otherwise, add a new one Enable Email Routing 進入後該網域,在左側的功能列表選「Email」→ 啟用 Email Routing。 Create a Custom Email Address Custom address: hello@yourdomain.com Action: 選擇 “Send to email” Destination: 輸入你要接收的信箱(Gmail / iCloud / Outlook 都可以) Verify and Apply DNS Records ...

October 19, 2025 · 2 min · 317 words · Daniel Ho

Real Concurrency in Python 3.14: InterpreterPoolExecutor and Beyond

前言 / Introduction 隨著 Python 3.14 的正式發布,多線程開發的限制,也隨著下面的改動迎刃而解: Free-threaded mode (PEP 703), Isolated interpreters (PEP 684), And the new InterpreterPoolExecutor (PEP 734), Python can now run true parallel CPU-bound code directly — even within the same process. 下面將展示一些 Example Async I/O CPU-bound parallelism Multicore execution with interpreter pools 1. Classic Problem: Async + CPU Work 如果你遇到需要 You fetch data from multiple APIs (I/O-bound) Then process, analyze, or compress the data (CPU-bound) 在 Python 3.14 之前 ...

September 29, 2025 · 3 min · 558 words · Daniel Ho