用 TypeScript 搶稀有車牌、拿 Accept 標頭餵 AI 讀 Markdown:三則工程師的今日話題
jack.bio · 2025-12-17(2026-08-26 於 Lobsters/Hacker News 重新引發討論)
2026 年 8 月 26 日,三則工程社群話題同時在 Hacker News 與 Lobsters 掀起討論:一名工程師靠自動化腳本搶到佛羅里達州的稀有雙字母車牌、一個新站點示範如何用 HTTP 的 Accept 標頭讓同一網址同時服務瀏覽器與 AI 代理人、以及一款網友自製的 GitHub 當機日曆工具引來上百則留言。三者都不是硬派技術突破,卻精準戳中工程師圈共同的幽默感與生活經驗。
車牌爬蟲:起因
工程師 Jack LaFond 想在佛羅里達州拿到雙字母車牌,這類車牌全州僅有 676 種組合,是最稀缺的號牌之一。他發現官方付費服務 PlateRadar 把「哪些稀有車牌現在可申請」的資訊鎖在付費牆後,於是決定自己動手查。佛州監理處提供一個公開的車牌可用性查詢頁面,但完全沒有速率限制或驗證碼保護。這個漏洞成為整篇貼文的起點。
核心巧思:不是型別系統,是自動化組合拳
文章標題掛著 TypeScript,但巧思其實不在型別系統,而在自動化爬蟲的組合拳:先用正規表示式從頁面擷取 ASP.NET 的表單驗證權杖,再把待查車牌打包成每批 5 筆送出 POST 請求,逐一比對回應裡的「AVAILABLE」字樣。查到的結果寫進 PostgreSQL 追蹤歷史變化,另外用 Next.js 做前端儀表板篩選組合。對雙字母、單字母這類高價值車牌,機器人每小時輪詢一次。
// 擷取 ASP.NET 驗證權杖並批次查詢
const token = html.match(/__RequestVerificationToken.*?value="(.*?)"/)?.[1];
const batch = plates.slice(0, 5);
const res = await fetch(url, {
method: "POST",
body: buildForm(token, batch),
});
const available = parseAvailable(await res.text());結果
十二月初,作者的機器人一度錯過釋出的雙字母車牌「EO」,不甘心之下持續掛著監控。幾天後系統即時抓到另一組雙字母車牌「HY」開放申請,作者搶在其他人之前完成預約,佛州核發客製車牌通常需要約 60 天。這篇原本發表於 2025 年 12 月的貼文,在 8 月 26 日被重新提交,再度引爆工程圈的熱議。
Accept 標頭:讓同一網址對人與 AI 說不同語言
與此同時,acceptmarkdown.com 在 Hacker News 上以〈Serve Markdown to AI Agents with Accept Headers〉引發討論,發文 3 小時內衝上 66 分、31 則留言。這個站點示範如何用 HTTP 的內容協商(content negotiation)機制,讓伺服器依請求端送來的 Accept 標頭決定回傳格式:瀏覽器拿到照常的 HTML,AI 代理人送出 Accept: text/markdown 就能拿到去除導覽列、樣式與腳本的乾淨 Markdown。
技術細節與現實動機
建議做法是伺服器端判斷 Accept 標頭是否把 text/markdown 排在 text/html 之前,是則回傳 Content-Type: text/markdown; charset=utf-8,並加上 Vary: Accept 告知快取依標頭分流,對不支援的型別回 406。省 token、少雜訊是最常被提到的動機:拿掉導覽與版面標記後,AI 讀取同一頁面所需的字數大幅減少,也不會被廣告或彈窗汙染擷取內容。網站另外提供 Nginx、Cloudflare Workers、Next.js、Rails、WordPress 等多種框架的設定範例。
curl -sI -H "Accept: text/markdown" https://example.com/article
# 期待回應:
# Content-Type: text/markdown; charset=utf-8
# Vary: AcceptGitHub 當機仔細算:isgithubcooked.com
第三則話題同樣來自 Hacker News,同批討論的〈GitHub Outage Tracker: Is GitHub Cooked?〉三小時內拿下 124 分、53 則留言。isgithubcooked.com 把 GitHub 官方 Status 事件紀錄整理成日曆熱圖,資料回溯到 2016 年 3 月,累積超過千起事件,並可依服務項目(API、Actions、Codespaces 等)與嚴重程度篩選。
網站名稱玩的是「is it cooked」這句網路用語的梗,用來吐槽服務是否又不穩定。頁面上有個距離上次事故的天數計數器,並統計出近三個月平均每月約 24 起事件,作者強調每個人依賴的 GitHub 服務不同,看到的可靠度故事也不一樣,這正是他做出可自訂篩選條件的原因。
- 車牌腳本:正規表示式擷取權杖 + 批次 POST + PostgreSQL 記錄 + Next.js 儀表板
- Markdown 標頭:
Accept判斷 →Content-Type: text/markdown+Vary: Accept+406 - 當機追蹤器:GitHub 官方事件史 → 日曆熱圖 + 依服務/嚴重度篩選