Notes

Numbers measured and mistakes made while building this site. Every post is built on data actually measured, not general advice.

2026-09-16

同一個地點多出三十隻走失貓狗,深入調查之後,答案讓人意外Chinese only

把政府的走失寵物通報畫成地圖之後,嘉義縣六腳鄉出現一個很不對勁的點:同一天三十幾筆走失,同一個姓,資料幾乎全是空的。我寫信問主管機關,兩週後收到答覆。這篇寫下從發現到得到答案的過程,以及為什麼這件事會影響到正在找毛孩的人。

2026-09-09

Turning the police's daily lost-property notices into a searchable map: the item name is buried in a sentence, the location is just text

The National Police Agency posts every lost item found across Taiwan every day — over ninety thousand records — but they are spread across 34 receiving agencies, are text only, and even "what was found" is wrapped inside a sentence of officialese. A write-up of building it into one search box and a map: how to pull the item name out of the sentence, how to place a text-only address, which sources are off-limits, and how, after launch, we found a single government dataset actually held two files — one of which had gone five days without updating.

2026-08-31

A 42-second promo film without opening an editor: shooting a moving map frame by frame

The Find My Pet film: a photo shrinking into a map pin, then pulling back to eight thousand cases across Taiwan. The whole thing is AI generation plus computed frames — a dog from a local model, browser screenshots frame by frame, transitions worked out from Web Mercator, 722 pins cut out one by one, narration and music synthesised. How it was made, and the seven versions it took.

2026-08-25

Turning Taiwan's lost-pet register into a map: addresses, personal data, and pets without a microchip

Taiwan's Ministry of Agriculture publishes more than ten thousand lost-pet reports, but only as a text list. How it became a map: why free geocoding fails in Taiwan, how city-published address coordinates rescued it, how phone numbers get stripped at import, and why pets without a chip need somewhere to be listed.

2026-08-21

Turning Taiwan's flood potential maps into something clickable: the data, the numbers, and what must not be said

The flood potential maps are public but you need GIS software to see them. Rasterising ten rainfall scenarios into a 28 MB database, working out the flooded share of every township, and a few numbers that only appear once you compute them: where flooding grows fastest from 200 to 650 mm, the townships where a short cloudburst is worse than a long one, and why the law says this data cannot be used to say "do not buy here".

2026-08-21

Only 203 of 1,807 campgrounds in Taiwan are compliant: building a lookup from the official list, and the sentence of mine it forced me to correct

Nine out of ten campgrounds in the Tourism Administration's data are marked as breaching regulations, but the official search only finds the compliant two hundred. Merging both lists into one search box, sorting 62 spellings of regulation names, handling 24 self-contradictory records, and how one web article made me go back to primary sources and rewrite a sentence on my own page.

2026-08-20

Running AI models on a GPU at home: the real numbers from an RTX 5070 Ti

40 seconds and 2 Wh per image — about two hundredths of a NT dollar — but NT$400 a month just to leave the machine on. The actual cost, the bottleneck and the mistakes, written up with measured numbers.

2026-08-20

Why your uploaded photos should not live in the cloud: 417 scans in a single day

On its first day online this site was probed 417 times for config files — including the config file of an AI coding tool. What the risk of uploading a photo actually looks like, from real server logs, and the three questions to ask any service.

2026-08-20

How a still photograph becomes a 6-second loop: implementation notes and the traps

The whole path from a photograph to 73 frames to a ping-pong loop, plus the things only measurement revealed: telling the model not to move the camera makes it push in harder, and the picture frame has to be a page effect, not something the model draws.

2026-08-20

Cutting video generation from 80 seconds to 43: every change tried, with the measurements

Per-node timing showed the bottleneck was not compute but moving a 30 GB model into a 16 GB card. A smaller text encoder, 6 sampling steps down to 4, and dropping an unused audio decoder took one clip from 60–80 seconds (137 at worst) to a steady 42–45.

2026-08-20

Mapping a million road accidents: six mistakes found only after making them

Taiwan's police accident data looks clean and traps you at every step: one row is one party, not one accident; the biggest hotspot in the country is the front door of the New Taipei City Hall; and the database on a bind mount ran 74 times slower. Every pitfall with measured numbers.