{"projects":[{"category":"tool","id":"infrastructure","route":"/infrastructure/","summary":"Public, sanitized description of the infrastructure behind Mayphus.","tags":["kubernetes","cloudflare","ops"],"title":"Infrastructure"},{"category":"tool","id":"alpine-builder","route":"/alpine-builder/","summary":"FriendlyElec and NanoPi Alpine image builder web UI for rootfs and SD-card builds.","tags":["alpine","nanopi","images"],"title":"Alpine Builder"},{"category":"tool","id":"typing","route":"/typing/","summary":"Rime and Yuanshu input-method builder with live keyboard previews and downloadable packages.","tags":["rime","yuanshu","input-method"],"title":"Input Method Builder"},{"category":"tool","id":"hanzi","route":"/hanzi/","summary":"Traditional Hanzi matrix with pinyin, zhuyin, and English details.","tags":["hanzi","language","reference"],"title":"Hanzi Matrix"},{"category":"tool","id":"unicode","route":"/unicode/","summary":"Wide Unicode character browser and inspector.","tags":["unicode","characters","reference"],"title":"Unicode Map"},{"category":"tool","id":"map","route":"/map/","summary":"Describe a city map in ordinary language and generate a bounded OpenStreetMap layer.","tags":["maps","openstreetmap","cities"],"title":"Natural Language City Map"},{"category":"tool","id":"ipa","route":"/ipa/","summary":"Clickable phonetic reference with local audio samples.","tags":["ipa","audio","language"],"title":"IPA Chart"},{"category":"tool","id":"gridpaper","route":"/gridpaper/","summary":"Printable guide-sheet generator.","tags":["print","paper","generator"],"title":"Gridpaper"},{"category":"tool","id":"starflash","route":"/starflash/","summary":"Guided macOS SD and USB image flasher CLI with standalone Ubuntu autoinstall support.","tags":["macos","usb","ubuntu"],"title":"Starflash"},{"category":"study","id":"periodic-table","route":"/periodic-table/","summary":"Square-cell periodic table with search, category focus, and click-to-inspect element details.","tags":["chemistry","reference"],"title":"Periodic Table"},{"category":"study","id":"origami","route":"/origami/","summary":"Origami crease geometry and generated folding-step study.","tags":["geometry","folding"],"title":"Origami"},{"category":"study","id":"milk-teeth","route":"/milk-teeth/","summary":"Animated primary-tooth eruption timeline for all 20 milk teeth.","tags":["timeline","animation"],"title":"Milk Teeth"},{"category":"study","id":"geologic-clock","route":"/geologic-clock/","summary":"Generated deep-time visual study.","tags":["time","diagrams"],"title":"Geologic Clock"},{"category":"study","id":"polychron","route":"/polychron/","summary":"Chinese regnal-era conversion and a generated timeline spanning 505 historical eras.","tags":["history","timeline","chinese"],"title":"Polychron"},{"category":"study","id":"motif","route":"/motif/","summary":"A restored Racket drawing DSL explored through geometric and decorative motifs.","tags":["generative","drawing","patterns"],"title":"Motif"},{"category":"study","id":"unix-timeline","route":"/unix-timeline/","summary":"A maintained Unix lineage chart extended through 2026 with refreshable release labels.","tags":["unix","history","systems"],"title":"Unix Timeline"},{"category":"note","id":"freebsd","route":"/freebsd/","summary":"A short personal introduction to FreeBSD: what it is, why I used it, and what stayed with me.","tags":["freebsd","bsd","unix","systems"],"title":"FreeBSD"},{"category":"artifact","id":"cell-field","route":"/cell-field/","summary":"A restored generative field of hand-drawn cellular forms, preserved for screen and print.","tags":["generative","cells","print"],"title":"Cell Field"},{"category":"note","id":"sugar-from-a-soldier","route":"/sugar-from-a-soldier/","summary":"Testing a grandmother’s memory of Japanese soldiers giving sweets to children in wartime Liu Yuan against Japanese and international records.","tags":["family history","archives","hubei"],"title":"Sugar from a soldier"},{"category":"note","id":"roku-remote-over-tailscale","route":"/roku-remote-over-tailscale/","summary":"How any available Wi-Fi, manual IP entry, and Tailscale made the official Roku app remote work from outside home.","tags":["roku","tailscale","homelab"],"title":"A Roku remote through Tailscale"},{"category":"note","id":"ai-workflow","route":"/ai-workflow/","summary":"A short explanation of how I use ChatGPT, Codex, Git, and Mayphus as one practical workflow.","tags":["ai","workflow","codex"],"title":"How I work with AI"},{"category":"note","id":"ai-native-website-interfaces","route":"/ai-native-website-interfaces/","summary":"An evolving proposal for websites built around AI-readable investigation objects, with the human interface as one view.","tags":["ai","interfaces","agents","web"],"title":"AI-native website interfaces"},{"category":"artifact","id":"so-101-simulator","route":"/so-101-simulator/","summary":"A working record from camera-guided MuJoCo learning to agent-assisted physical SO-101 setup, calibration, and fault isolation.","tags":["robotics","mujoco","lerobot","computer vision","simulation","hardware"],"title":"Robot: simulation to SO-101 hardware"},{"category":"artifact","id":"tinystories-rp2040","route":"/tinystories-rp2040/","summary":"Training, quantizing, and physically verifying a tiny Transformer on a custom Raspberry Pi Pico display board through intention-and-observation collaboration with an AI agent.","tags":["ai","rp2040","embedded","transformer","hardware"],"title":"A TinyStories model on my RP2040 board"},{"category":"artifact","id":"openlens","route":"/openlens/","summary":"Building a portable multilingual learning companion, testing offline vision on Android, and keeping model uncertainty visible.","tags":["ai","computer vision","android","multilingual","embedded"],"title":"OpenLens: a local-first camera that admits what it does not know"},{"category":"artifact","id":"nanopi-r2s-alpine-boot","route":"/nanopi-r2s-alpine-boot/","summary":"An evidence-led NanoPi R2S investigation: isolate an unreliable UART path, identify a wrong Rockchip image, boot Alpine Linux, and map the RK3328 SD-card chain.","tags":["nanopi","rk3328","alpine","uart","embedded linux"],"title":"From silent UART to a working NanoPi R2S"},{"category":"note","id":"router-service-tailscale-jump-recovery","route":"/router-service-tailscale-jump-recovery/","summary":"A short operations note on recovering a router service through an independent Tailscale jump host when direct access is gone.","tags":["ops","tailscale","router"],"title":"Router service recovery through a Tailscale jump"},{"category":"artifact","id":"learning-book-repair","route":"/electronic-learning-book-repair/","summary":"Repair note for a toddler's electronic learning book: inspect the power path, clean the battery compartment, replace batteries, and verify the fix.","tags":["repair","electronics","teardown"],"title":"Electronic Learning Book Repair"},{"category":"artifact","id":"nano-pi-teardown","route":"/nano-pi-teardown/","summary":"Transcript-based Nano Pi teardown note: RK3328 SoC, memory, dual Ethernet, SD-card slot, USB-C, reset, debug pins, and power points.","tags":["nanopi","hardware","teardown"],"title":"Nano Pi Teardown"},{"category":"artifact","id":"tp-link-security-camera-investigation","investigation":{"current_answer":"Two cameras still show IR and pan/tilt life; the opened unit maps the hardware, while UART remains silent.","date":"June 22, 2026","evidence":[{"body":"LED changes, reset response, IR activity, and pan/tilt movement reveal which subsystems still receive power.","title":"Power shows behavior."},{"body":"Both intact cameras still show IR and pan/tilt movement at power-on, so they can be compared before another teardown.","title":"Two units remain useful comparisons."},{"body":"The opened camera exposes the main PCB, camera module, motors, audio parts, SD-card slot, IR board, light sensor, UART pads, and power conversion.","title":"One unit is the hardware reference."},{"body":"The USB-TTL follow-up produced no boot output, narrowing the next work toward power rails and boot-state measurements.","title":"UART silence is evidence."}],"id":"tp-link-security-camera-investigation","next_action":"Power-check the remaining cameras, confirm rails, and capture the result before attempting deeper repair.","public_boundary":"Only selected teardown observations and measurements are public; no live room view, credentials, network identifiers, or private device data are published.","question":"What still works inside these three failed cameras, and which power or boot fault best explains the remaining failures?","status":"Active investigation","uncertainty":"The remaining rail voltages and boot state have not been measured, so a power fault, stalled boot, or failed main processor is not yet distinguished.","updated":"2026-07-31","workflow":"next"},"route":"/tp-link-security-camera-investigation/","summary":"Curiosity teardown of three TP-Link security cameras: power-on observations, reset/app behavior, internal modules, UART wiring, and what the cameras reveal about their design.","tags":["electronics","camera","teardown","embedded"],"title":"3 TP-Link Security Cameras"},{"category":"tool","id":"status","route":"/status/","summary":"Public site inventory and coarse runtime health.","tags":["status","operations","cloudflare"],"title":"Status"}]}