Posts
All the articles I've posted.
Your Flight Almost Never Flies the Great Circle
Made with AIThe great circle is the provably shortest path between two airports — and airlines almost never fly it. I checked 107 of my own flights against their actual ADS-B tracks: on average they flew 12.9% farther than the great circle, and one hop came in 44% over. Here's why the shortest route is mostly a fiction.
Goodbye Hugo: I Rebuilt My Blog with Astro Overnight
Made with AIAfter four or five years on Hugo, I rewrote this blog on AstroPaper — by typing /goal in Claude Code before bed and reviewing a working site the next morning. Three weeks and ~50 small commits later, every pixel is customized, down to a comment system that is entirely my own implementation.
Give Your Camera Real GPS: A No-Internet Hardware Fix with furble
Made with AIMost cameras still ship without a GPS module, so photos come out of the card with no location data in their EXIF. The official phone apps are supposed to sync coordinates over Bluetooth, but for shoot-as-you-walk travel they fall apart: the BLE link drops when the camera sleeps, it rarely reconnects in time, and the background app gets killed by the OS. This post walks through everything I tried — Garmin GPX backfilling, low-power tracking apps, and my own Koko app built on the reverse-engineered furble protocols — and why none of them fully solved the phone-to-camera flakiness. The real fix turned out to be a tiny piece of hardware: an M5StickS3 plus a GPS unit, flashed with furble, that pairs straight to the camera, needs no internet, and feeds live coordinates into the EXIF. Includes a shopping list with USD/CNY prices and a realistic battery-life estimate for the 250mAh build.
The Right Way to Use WebArena Indigo
Made with AIWebArena Indigo is a cheap, good-value Japanese VPS that makes a great landing node. But if you front it with a relay and push traffic over a GRE tunnel like I did, GRE over IPv4 gets rate-limited the moment you run a speed test — the connection collapses right after the first burst. This post walks through what I tried (realm public forwarding, IPv4 GRE, IPv6 GRE) and how I ruled out snell, MTU, DNS and the qdisc one by one, landing on the conclusion that only GRE over IPv6 (ip6gre) reliably escapes the rate limiting. Plus a note on picking between the 500M/4-core and 1000M/6-core shared plans.
Tinkering with Home Network: N100 + PVE + iKuai + sing-box
Notes on building a home network around an N100 mini PC running PVE 9.0 with iKuai as the main router and Debian 13 as a sing-box side gateway. Covers port assignment tricks for PVE management access, choosing sing-box over dae due to Shadowsocks 2022 support, bringing IPv6 to the LAN via ULA + radvd when the ISP has no v6 uplink, and fixing the Happy Eyeballs stall on domestic apps by forcing the direct outbound to ipv4_only.
I Got My Lost Phone Back in Japan
A firsthand account of leaving a backup phone on a train during a trip from 新潟 to 酒田 and back to 東京, then recovering it through JR East's Lost and Found Office with no extra transport cost thanks to a 5-day JR EAST PASS.