<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>wada-dev (en)</title><description>Welcome to my personal site — technical notes, projects, and personal interests from a software engineer in Japan.</description><link>https://wada-dev.com/en/</link><language>en</language><atom:link href="https://wada-dev.com/rss.xml" rel="self" type="application/rss+xml"/><item><title>I&apos;m re-centering this blog around &quot;someone who tries things&quot;</title><link>https://wada-dev.com/en/blog/blog-axis-curious-driven-tester/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/blog-axis-curious-driven-tester/</guid><description>I kept failing to run this blog as a topic-bound thing, so I re-centered it on process rather than topic. The story of why 9 months yielded only 4 posts, and making my fickleness load-bearing instead of fighting it.</description><pubDate>Sat, 23 May 2026 12:00:00 GMT</pubDate></item><item><title>Can Squashing Bread Actually Cut Its Calories?</title><link>https://wada-dev.com/en/blog/bread-compression-calorie-reduction/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/bread-compression-calorie-reduction/</guid><description>Can squashing bread really cut its net calories? A (mostly serious) investigation.</description><pubDate>Sat, 16 Aug 2025 00:00:00 GMT</pubDate></item><item><title>I Started a Blog with Astro</title><link>https://wada-dev.com/en/blog/first-post/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/first-post/</guid><description>I built myself a blog with Astro</description><pubDate>Mon, 09 Jun 2025 00:00:00 GMT</pubDate></item><item><title>In the Age of Yami Baito, I Built My Own Security Camera Instead of Buying One</title><link>https://wada-dev.com/en/blog/frigate-diy-home-security-camera/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/frigate-diy-home-security-camera/</guid><description>As security cameras multiply in my neighborhood, instead of paying a monthly cloud-AI fee I built a subscription-free 24/7 person-detection system with a cheap WiFi camera, Frigate, and a spare laptop. A tour of the current setup.</description><pubDate>Sun, 05 Jul 2026 06:00:00 GMT</pubDate></item><item><title>I Had Claude Code on the Web Dissect Its Own Sandbox</title><link>https://wada-dev.com/en/blog/claude-code-web-sandbox-self-dissection/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/claude-code-web-sandbox-self-dissection/</guid><description>I asked the Claude running in my Slack &quot;where are you running?&quot; and had it reconstruct its own execution environment from ps, /proc, and binary inspection. The answer: Firecracker microVM isolation plus a mandatory built-in allowlist proxy for all egress. The next day I red-teamed that boundary — none of the exfiltration paths I tried worked.</description><pubDate>Thu, 02 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Letting AI write without losing the &quot;I wrote this&quot; feeling — drawing the line with vault provenance</title><link>https://wada-dev.com/en/blog/ai-writing-thinking-ownership-workflow/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/ai-writing-thinking-ownership-workflow/</guid><description>The core of &quot;this feels AI-written&quot; is the loss of thinking-ownership. Drawing the AI boundary per-prompt has too high a judgement cost. Fix it at the workflow level (vault → AI summary → blog) and thinking-ownership is preserved structurally.</description><pubDate>Sat, 23 May 2026 11:00:00 GMT</pubDate></item><item><title>Running DiffusionGemma Locally on an RTX 5090 with vLLM: The One-Time Pioneer Cost of Bleeding-Edge Model × Bleeding-Edge GPU</title><link>https://wada-dev.com/en/blog/diffusiongemma-vllm-rtx5090-local/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/diffusiongemma-vllm-rtx5090-local/</guid><description>I stood up Google&apos;s diffusion language model DiffusionGemma as a vLLM OpenAI-compatible server on my home RTX 5090 (Blackwell / 32GB), so Open WebUI could use it as just another model. Declarative, on-demand on NixOS. This is the write-up of the traps I hit (a VRAM precheck that kills startup instantly, a container that wedges in a crash loop, the 32GB constraint that leaves NVFP4 as the only quantization that fits) and the lesson I drew from it: mature models are a one-liner, bleeding-edge ones you pioneer by hand exactly once.</description><pubDate>Sun, 21 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Reproducing Copy Fail (CVE-2026-31431) in a disposable VM to feel what 732 bytes to root is like</title><link>https://wada-dev.com/en/blog/copy-fail-lpe-vm-experiment/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/copy-fail-lpe-vm-experiment/</guid><description>Rather than calling myself vulnerable or safe based on a version number, I stood up a disposable VM with a pre-patch kernel and actually ran the official Copy Fail PoC. A 732-byte Python one-shot took me from non-root to uid=0 — no race, 100% deterministic. Plus the realization that the circulating &quot;check&quot; is not a patch test, and verifying the mitigation.</description><pubDate>Mon, 25 May 2026 11:00:00 GMT</pubDate></item><item><title>From the trauma of an unbootable kernel update to staying current safely instead of pinning</title><link>https://wada-dev.com/en/blog/arch-safe-kernel-upgrade-journey/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/arch-safe-kernel-upgrade-journey/</guid><description>Ever since an out-of-tree USB WiFi driver (8821au) broke on an Arch kernel update — leaving a machine that booted but had no network — I had pinned the kernel with IgnorePkg and stopped updating. This is how I fixed it at the root: dropped the culprit DKMS driver for in-tree only, added linux-lts as a fallback, removed the pin, and caught up to the latest. Includes the partial-upgrade trap and the linux-firmware split conflict.</description><pubDate>Mon, 25 May 2026 09:00:00 GMT</pubDate></item><item><title>Parallel Development with Claude Code Without git worktree (container-use)</title><link>https://wada-dev.com/en/blog/container-use-parallel-development/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/container-use-parallel-development/</guid><description>How to run parallel development with Claude Code using Dagger&apos;s MCP tool &quot;container-use&quot; without cluttering your directory structure</description><pubDate>Mon, 12 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Person Detection Died Silently Four Times in One Month — Same Symptom, Different Culprit Every Time</title><link>https://wada-dev.com/en/blog/frigate-four-silent-detection-deaths/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/frigate-four-silent-detection-deaths/</guid><description>The incident post for my DIY security camera. Four times the camera kept streaming, the container kept running, and only the detection events stopped. The culprits: a self-poisoning watchdog, a camera choking on concurrent sessions, a 59-second JIT vs a 20-second watchdog, and an OOM kill.</description><pubDate>Sun, 05 Jul 2026 08:00:00 GMT</pubDate></item><item><title>Rewiring a running process&apos;s output (fd) with gdb</title><link>https://wada-dev.com/en/blog/gdb-fd-reconnect-trick/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/gdb-fd-reconnect-trick/</guid><description>A trick that uses gdb not as a debugger but as a &quot;tool for rewriting a running process&apos;s file descriptors.&quot; You can switch stdout to a log file mid-run, or re-point it at another pts. Silly, but handy once you know it.</description><pubDate>Sat, 23 May 2026 17:00:00 GMT</pubDate></item><item><title>Scheduled Auto-Deploys to Netlify with GitHub Actions</title><link>https://wada-dev.com/en/blog/github-actions-netlify-scheduled-deploy/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/github-actions-netlify-scheduled-deploy/</guid><description>How to combine Netlify build hooks with GitHub Actions to set up scheduled, automatic deploys.</description><pubDate>Tue, 26 Aug 2025 00:00:00 GMT</pubDate></item><item><title>Walking Home Assistant&apos;s Alexa integration through three generations and consolidating the automations</title><link>https://wada-dev.com/en/blog/ha-alexa-migration-journey/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/ha-alexa-migration-journey/</guid><description>A record of migrating through alexa-remote-control (over SSH) → Alexa Media Player (HACS) → Alexa Devices (the official integration). I bulk-generated 75 automations (location notices, power reports, etc.), then consolidated 64 location notices into 2 with a dynamic zone trigger + Jinja. And the Alexa-ChatGPT skill walked me straight into an Amazon developer-account trap.</description><pubDate>Sat, 23 May 2026 18:00:00 GMT</pubDate></item><item><title>Back when there was no official integration, I drove the unofficial API to make Alexa talk</title><link>https://wada-dev.com/en/blog/ha-alexa-remote-control-tts/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/ha-alexa-remote-control-tts/</guid><description>Before there was an easy official way to make an Echo Dot talk from Home Assistant, I had a self-built setup that drove Amazon&apos;s private Alexa API via alexa-remote-control. How I got the refresh token, the SSH-from-HA wiring, and why I eventually moved to the official integration.</description><pubDate>Sat, 23 May 2026 16:00:00 GMT</pubDate></item><item><title>I built a way for Claude Code to report progress through my home Alexa</title><link>https://wada-dev.com/en/blog/ha-claude-code-alexa-report/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/ha-claude-code-alexa-report/</guid><description>I built a skill that reads the progress of a long-running Claude Code session aloud in Japanese from the Echo Dot next to me. A build log that hits all of it: the HA SSH add-on sshd constraints, the Amazon-side _speak API going silent, the JWT-mint path, and persisting a script that the tmpfs would otherwise wipe.</description><pubDate>Sat, 23 May 2026 15:00:00 GMT</pubDate></item><item><title>I wired a Gemini voice assistant into Home Assistant and only half of it worked</title><link>https://wada-dev.com/en/blog/ha-gemini-voice-assistant-experiment/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/ha-gemini-voice-assistant-experiment/</guid><description>I integrated Google Gemini 2.0-flash into Home Assistant&apos;s Assist pipeline to build a phone-voice → Gemini → Alexa Echo Dot readout path. The basics work, but conversation history, tool chaining, and scripts-with-arguments all failed.</description><pubDate>Sun, 24 May 2026 15:00:00 GMT</pubDate></item><item><title>Beyond AWK: Bringing Haskell into Unix Pipelines</title><link>https://wada-dev.com/en/blog/haskell-unix-pipelines/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/haskell-unix-pipelines/</guid><description>Bringing Haskell into Unix pipelines</description><pubDate>Sun, 10 Aug 2025 00:00:00 GMT</pubDate></item><item><title>My Home Server Kept Freezing (Bonus) — The Disposable Server</title><link>https://wada-dev.com/en/blog/home-server-random-freeze-extra-disposable-server/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/home-server-random-freeze-extra-disposable-server/</guid><description>Preparing the RAM-defective machine for repair shipment revealed that of 304GB on disk, only 2.8GB of logs were worth saving. The story of GitOps / declarative configuration taking its final exam.</description><pubDate>Sat, 04 Jul 2026 15:00:00 GMT</pubDate></item><item><title>My Home Server Kept Freezing (Part 1) — Hunting the Culprit in the Journal</title><link>https://wada-dev.com/en/blog/home-server-random-freeze-part1-journal-forensics/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/home-server-random-freeze-part1-journal-forensics/</guid><description>My home AI server went SSH-unresponsive every few days. How I identified three hangs from the persistent journal, read the crash signatures, and arrived at the &quot;DRAM bit-flip&quot; hypothesis.</description><pubDate>Sat, 04 Jul 2026 09:00:00 GMT</pubDate></item><item><title>My Home Server Kept Freezing (Part 2) — When a Measurement Overturns Your Hypothesis</title><link>https://wada-dev.com/en/blog/home-server-random-freeze-part2-hypothesis-correction/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/home-server-random-freeze-part2-hypothesis-correction/</guid><description>First stop the bleeding with a hardware watchdog, then gather evidence. My &quot;memory overclock is the culprit&quot; assumption then gets flattened by one dmidecode command, shifting suspicion to the hardware itself.</description><pubDate>Sat, 04 Jul 2026 11:00:00 GMT</pubDate></item><item><title>My Home Server Kept Freezing (Part 4) — Don&apos;t Trust the Replaced RAM</title><link>https://wada-dev.com/en/blog/home-server-random-freeze-part4-proving-the-repair/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/home-server-random-freeze-part4-proving-the-repair/</guid><description>The warranty swap brought new memory. But &quot;replaced the part&quot; is not &quot;fixed.&quot; Proving its innocence with a layered check — memtest, stress-ng, a real LLM load, a 70B load — and then finding one ghost the bad RAM left behind.</description><pubDate>Wed, 08 Jul 2026 04:00:00 GMT</pubDate></item><item><title>My Home Server Kept Freezing (Part 3) — Memtest Answers in One Minute</title><link>https://wada-dev.com/en/blog/home-server-random-freeze-part3-memtest-verdict/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/home-server-random-freeze-part3-memtest-verdict/</guid><description>memtest86+ racked up 705 errors within the first minute, and 26 minutes in, froze itself. The flipped bits seen in the journal match the ones memtest measures — and every symptom collapses into one defect.</description><pubDate>Sat, 04 Jul 2026 13:00:00 GMT</pubDate></item><item><title>My Home Server Kept Freezing (Part 5) — The Spill Cliff: tok/s Is Set by What Overflows</title><link>https://wada-dev.com/en/blog/home-server-random-freeze-part5-spill-performance/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/home-server-random-freeze-part5-spill-performance/</guid><description>The experiment the healthy RAM finally unlocked: how much does spilling a model out of VRAM into CPU actually cost? A num_gpu sweep drew not a proportional curve but a cliff. The law tok/s ≈ RAM bandwidth ÷ spilled GB, and the practical size limit where a 70B still runs.</description><pubDate>Wed, 08 Jul 2026 06:00:00 GMT</pubDate></item><item><title>Why Waybar Survives When You Quit Hyprland, and How exec start-hyprland Fixes It</title><link>https://wada-dev.com/en/blog/hyprland-waybar-exec-start-hyprland/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/hyprland-waybar-exec-start-hyprland/</guid><description>How Linux process management actually works, and the correct way to start Hyprland</description><pubDate>Wed, 07 Jan 2026 00:00:00 GMT</pubDate></item><item><title>The urge to put tasks in my notes vault, and what made it feel wrong</title><link>https://wada-dev.com/en/blog/knowledge-vs-task-direction-of-fit/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/knowledge-vs-task-direction-of-fit/</guid><description>While rewriting my own task manager I leaned toward folding tasks into my notes vault (&quot;I keep all my conversations there anyway — isn&apos;t a separate system wasteful?&quot;), but it felt deeply wrong. This is me naming that discomfort with direction of fit (true/false vs done/undone), following the ick-spectrum (knowledge → blog draft → pure task), and ripping the blog area out of the vault.</description><pubDate>Sat, 30 May 2026 00:00:00 GMT</pubDate></item><item><title>A 3x Faster Local LLM That Can&apos;t Finish the Job — Two Days of MoE vs Dense on Real Tasks</title><link>https://wada-dev.com/en/blog/moe-vs-dense-local-llm-agent-tasks/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/moe-vs-dense-local-llm-agent-tasks/</guid><description>The MoE coding model I put on my RTX 5090 was 3x faster with equal single-shot quality, so it became my opencode default. Then it went 0-for-5 on multi-step agent work. A record of porting RFC 6902 with a 112-case conformance suite as the machine judge, and the structural trade-off it exposed: the source of MoE speed and the cause of its failures are the same thing.</description><pubDate>Sat, 25 Jul 2026 00:00:00 GMT</pubDate></item><item><title>The plugin holds only WHEN, the vault holds HOW — designing a format-agnostic Claude Code plugin</title><link>https://wada-dev.com/en/blog/knowledge-gardener-when-how-separation/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/knowledge-gardener-when-how-separation/</guid><description>How my knowledge-gardener plugin runs without hardcoding any of the vault&apos;s formatting conventions. The difference from existing Obsidian-for-Claude plugins, and what the separation of concerns buys you.</description><pubDate>Sat, 23 May 2026 19:00:00 GMT</pubDate></item><item><title>Why I Picked NixOS for a 24/7 Home AI Server, and the 5 Gotchas That Bit Me During Install</title><link>https://wada-dev.com/en/blog/nixos-home-ai-server-install-gotchas/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/nixos-home-ai-server-install-gotchas/</guid><description>Building a 24/7 unattended AI server as a local-LLM playground, I dropped my original plan of Arch and went with NixOS. Here is why I chose declarative config and rollback, and — on a Blackwell GPU (RTX 5090), basically zero-precedent pioneer territory — the five things that actually tripped me up installing from the minimal ISO: the wpa_supplicant trap, btrfs mount options getting dropped, losing the network on a headless reboot, WiFi power save wrecking SSH latency, and remote sudo + glob expansion.</description><pubDate>Sun, 14 Jun 2026 09:00:00 GMT</pubDate></item><item><title>I Tried devcontainers with Neovim and Gave Up</title><link>https://wada-dev.com/en/blog/nvim-devcontainer-tried-it/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/nvim-devcontainer-tried-it/</guid><description>A record of trying a devcontainer setup — attaching to a container from nvim to develop inside it — and dropping it over slow startup and wasted storage. For solo dev I think it goes nix &gt; per-language package managers &gt; devcontainer.</description><pubDate>Sat, 27 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Automatically Check Obsidian for Broken Links with lychee</title><link>https://wada-dev.com/en/blog/obsidian-lychee-link-checker/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/obsidian-lychee-link-checker/</guid><description>How to automatically detect broken links in an Obsidian vault using lychee, a fast link checker written in Rust</description><pubDate>Thu, 08 Jan 2026 09:00:00 GMT</pubDate></item><item><title>I broke into my own Roomba over the LAN</title><link>https://wada-dev.com/en/blog/roomba-lan-penetration-experiment/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/roomba-lan-penetration-experiment/</guid><description>On my own Roomba i2, under the constraints of no physical operation, no cloud API, and LAN-only, I tested how much I could exfiltrate and attack. MQTT auth was solid but cutting off cloud traffic was easy, and in the end I extracted the MQTT password with the dorita980 magic packet.</description><pubDate>Sat, 23 May 2026 13:00:00 GMT</pubDate></item><item><title>A &quot;Damaged tar archive&quot; pacman recovery war story — the day three causes converged</title><link>https://wada-dev.com/en/blog/pacman-damaged-tar-archive-debug/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/pacman-damaged-tar-archive-debug/</guid><description>sudo pacman -Syu kept failing endlessly with &quot;Damaged tar archive (bad header checksum)&quot;. The mystery of why tar/bsdtar can read the DB but pacman alone chokes, the trap where HTTP 304 blocks a re-download, and systemd timer wake-from-suspend behavior. A record of chasing a three-cause convergence with pacman --debug and gzip format analysis.</description><pubDate>Sat, 23 May 2026 14:00:00 GMT</pubDate></item><item><title>Dropping OpenSky to Receive It Myself — Feeding RTL-SDR ADS-B into My Terminal Globe ttymap</title><link>https://wada-dev.com/en/blog/rtlsdr-adsb-ttymap-journey/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/rtlsdr-adsb-ttymap-journey/</guid><description>The aircraft plugin in ttymap, the terminal globe I built earlier, pulled overhead planes from OpenSky&apos;s public API. This time I replace that with real radio I receive on my own antenna. A reception journey: plug in an RTL-SDR, get past the DVB driver trap, catch raw frames with rtl_adsb, turn them into lat/lon with CPR decoding, and bridge a local JSON server so a ttymap user plugin can show them.</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate></item><item><title>Running Blackwell (RTX 5090) Headless 24/7: The Real Boss Is the GSP Hang, and I Took It With a &quot;Assume It Breaks&quot; Watchdog</title><link>https://wada-dev.com/en/blog/rtx5090-blackwell-headless-gsp-watchdog/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/rtx5090-blackwell-headless-gsp-watchdog/</guid><description>Turning a latest-gen consumer RTX 5090 (Blackwell) into a 24/7 unattended AI server is near-zero-precedent pioneer territory. On top of known traps — nvidia-open being the only driver, the CUDA sm_120 gotcha — the real boss is the GSP heartbeat timeout hang, which cannot be reset in place. Before writing any GPU config I scouted the landmines with deep-research, then built a declarative NixOS watchdog that reboots on an unresponsive nvidia-smi, assuming the hang will eventually hit.</description><pubDate>Sun, 14 Jun 2026 11:00:00 GMT</pubDate></item><item><title>Functional Programming in the Shell</title><link>https://wada-dev.com/en/blog/shell-functional-programming/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/shell-functional-programming/</guid><description>Treating Unix pipelines as function composition, and using map/filter/fold as building blocks for log analysis and data processing</description><pubDate>Fri, 09 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Integrating 6 psychology frameworks in supernemawashi — 1 framework = 1 file × parallel agents</title><link>https://wada-dev.com/en/blog/supernemawashi-frameworks-design/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/supernemawashi-frameworks-design/</guid><description>supernemawashi&apos;s analyze skill runs 6 psychology frameworks (defense mechanisms / TKI / TA / motivators / biases / attachment) as 1 framework = 1 file × 1 parallel agent. Why I dropped the monolithic profile and split per framework, making the registry the single source of truth, all the way to situation-indexed rule generation.</description><pubDate>Sun, 24 May 2026 09:00:00 GMT</pubDate></item><item><title>I built supernemawashi — a Claude Code plugin that manages psychological profiles for talking to colleagues</title><link>https://wada-dev.com/en/blog/supernemawashi-intro/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/supernemawashi-intro/</guid><description>A Claude Code plugin that kills the fatigue of figuring out &quot;how do I phrase this for that person&quot; every time, by managing profiles as data. It gathers facts from Slack / Gmail / Calendar, classifies them with psychology frameworks, and returns situation-specific DO / DON&apos;T rules.</description><pubDate>Sat, 23 May 2026 09:00:00 GMT</pubDate></item><item><title>Building a CLI Task Manager That Solves the &quot;When to Do It&quot; Problem Taskwarrior Lacked</title><link>https://wada-dev.com/en/blog/taskdog-cli-task-management-tool/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/taskdog-cli-task-management-tool/</guid><description>How I built Taskdog, a CLI/TUI task manager that auto-generates schedules from deadlines, estimates, and priorities while respecting a daily work-hour limit.</description><pubDate>Mon, 29 Dec 2025 00:00:00 GMT</pubDate></item><item><title>Notes on the tar + ssh pipe technique</title><link>https://wada-dev.com/en/blog/tar-ssh-pipe-technique/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/tar-ssh-pipe-technique/</guid><description>A practical streaming-transfer technique with tar + ssh pipes, for when rsync is missing or you need sudo to read the files</description><pubDate>Sun, 11 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Making Archived Tasks Visible in taskdog&apos;s TUI</title><link>https://wada-dev.com/en/blog/taskdog-tui-archive-toggle/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/taskdog-tui-archive-toggle/</guid><description>I added a toggle to show archived tasks in the TUI of taskdog, my CLI/TUI task manager. While I was at it, I made the Gantt chart a fixed-width time window so rendering stays cheap as history piles up.</description><pubDate>Thu, 04 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Funneling Slack requests into taskdog and letting /loop run them (a taskloop work-in-progress)</title><link>https://wada-dev.com/en/blog/taskloop-slack-inbox-to-taskdog/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/taskloop-slack-inbox-to-taskdog/</guid><description>My &quot;assigned to me&quot; work arrives scattered across Slack, email, and hallway conversations. I have been funneling it all into a single hub — taskdog — and letting Claude Code /loop cycle through intake, triage, and self-driving dispatch. It has reached ~5 hours of unattended running, but I also hit empty cycling, the note-and-bail failure, and candidate pile-up. A progress note from the middle of the experiment.</description><pubDate>Thu, 16 Jul 2026 06:00:00 GMT</pubDate></item><item><title>Keeping my auto-tmux muscle memory while also touching tmux over SSH — taming the nesting with prefix+T</title><link>https://wada-dev.com/en/blog/tmux-nested-passthrough-toggle/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/tmux-nested-passthrough-toggle/</guid><description>Once you get used to auto-starting tmux in your terminal, the moment you run tmux on an SSH host it nests and your keys never reach the inner session. The canonical F12 toggle works but is an awkward reach, so I settled on prefix+T to silence the outer session and pass keys straight through. Plus why I dropped the popular &quot;native splits locally&quot; answer because I also use Alacritty, hiding the outer status bar as the visual cue, and the ControlMaster + NixOS /bin/bash gotchas.</description><pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Trying Out GhostBSD</title><link>https://wada-dev.com/en/blog/trying-ghostbsd/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/trying-ghostbsd/</guid><description>Notes from installing GhostBSD and playing with SSH setup, ZFS, jails, and more — a BSD experience report from a Linux user.</description><pubDate>Sun, 15 Feb 2026 00:00:00 GMT</pubDate></item><item><title>You Can&apos;t Kill a Thread, So Make It a Process — Making ttymap&apos;s Engine Restartable</title><link>https://wada-dev.com/en/blog/ttymap-engine-restart-journey/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/ttymap-engine-restart-journey/</guid><description>In ttymap, my terminal globe, the polygon triangulation library earcut hits an infinite loop on pathological input, and the zombie threads keep burning CPU forever. Why I made the engine restartable, and why that restart has to be a process rather than a thread — the one fact that in safe Rust you cannot kill a running thread from the outside.</description><pubDate>Thu, 28 May 2026 00:00:00 GMT</pubDate></item><item><title>Spinning a Globe in the Terminal — Watching Planes, Earthquakes, and the ISS with My Own ttymap</title><link>https://wada-dev.com/en/blog/ttymap-terminal-scriptable-globe/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/ttymap-terminal-scriptable-globe/</guid><description>A tour of ttymap, a tool I built that renders vector tiles as Unicode Braille in ANSI 256-color to put a live globe inside your terminal. Overlay the ADS-B planes flying overhead right now, recent earthquakes, satellites passing above, even traceroute hops on the map. Every feature is a Lua plugin, and config and scene choreography are Lua too.</description><pubDate>Mon, 25 May 2026 13:00:00 GMT</pubDate></item><item><title>Is &quot;Send Text as an Image&quot; Actually a Win for Japanese? I Measured It</title><link>https://wada-dev.com/en/blog/vision-token-compression-japanese-vs-english/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/vision-token-compression-japanese-vs-english/</guid><description>DeepSeek-OCR revived the idea that screenshotting text and feeding it as an image costs fewer tokens than plain text. Information-dense Japanese should benefit most — so I rendered a meaning-identical English/Japanese document and measured token cost and readback accuracy across Claude, Qwen2.5-VL, and DeepSeek-OCR. The result was the opposite of the intuition.</description><pubDate>Sun, 19 Jul 2026 07:00:00 GMT</pubDate></item><item><title>Why I Built This Blog, and Why I Chose Astro</title><link>https://wada-dev.com/en/blog/why-i-built-this-blog-and-chose-astro/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/why-i-built-this-blog-and-chose-astro/</guid><description>Writing this down so I don&apos;t forget what I built this blog for</description><pubDate>Mon, 11 Aug 2025 00:00:00 GMT</pubDate></item><item><title>I gave up reading my smart meter with a homemade script — and Home Assistant&apos;s official integration had caught up</title><link>https://wada-dev.com/en/blog/wisun-smartmeter-route-b-ha/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/wisun-smartmeter-route-b-ha/</guid><description>In 2024 I started a homemade script to read the power smart meter (Route B) over a Wi-SUN dongle, then shelved it because of timeout and decode handling. Years later HA Core had an official Route B Smart Meter integration: plug in the dongle, enter the B-route ID and password, and instantaneous power and cumulative consumption just appear.</description><pubDate>Sun, 24 May 2026 13:00:00 GMT</pubDate></item><item><title>yadm + Neovim Git plugins didn&apos;t work, so I built yadm-git.nvim (and fixed the Bazzite symlink three times)</title><link>https://wada-dev.com/en/blog/yadm-git-nvim-build-journey/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/yadm-git-nvim-build-journey/</guid><description>Dotfiles managed by yadm live in $HOME with no .git, so gitsigns / fugitive / lazygit refuse to recognize them. I built a tiny Neovim plugin whose only job is to make them &quot;just work&quot; — the design decisions, plus the saga of fixing home-directory resolution three times for the symlink on an immutable distro like Bazzite.</description><pubDate>Sat, 23 May 2026 10:00:00 GMT</pubDate></item><item><title>Closing the Zettelkasten → Blog → Feedback Loop with giscus</title><link>https://wada-dev.com/en/blog/zettelkasten-feedback-loop-closed/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/zettelkasten-feedback-loop-closed/</guid><description>The knowledge loop — an idea → fleeting note → permanent note → article → reader feedback → new fleeting note — now exists end to end as a system. A record of each component, and of the final missing piece: a comment box.</description><pubDate>Sun, 05 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Zettelkasten in Practice Part 1: Design</title><link>https://wada-dev.com/en/blog/zettelkasten-operation-part1-design/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/zettelkasten-operation-part1-design/</guid><description>The folder structure, tag design, and MOC workflow I settled on after two years of running a Zettelkasten</description><pubDate>Thu, 08 Jan 2026 11:00:00 GMT</pubDate></item><item><title>Zettelkasten Operation Log Part 2: Analysis</title><link>https://wada-dev.com/en/blog/zettelkasten-operation-part2-analysis/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/zettelkasten-operation-part2-analysis/</guid><description>Visualizing my own activity with a Makefile: tag skew analysis, a day-of-week × hour heatmap, and more.</description><pubDate>Thu, 08 Jan 2026 13:00:00 GMT</pubDate></item><item><title>I built a plugin to grow my vault — but the real purpose of a Zettelkasten was output</title><link>https://wada-dev.com/en/blog/zettelkasten-purpose-output/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/zettelkasten-purpose-output/</guid><description>Diagnosing why 9 months yielded only 4 posts: a Zettelkasten has exactly one purpose — output (C); searchability (A) and insight crystallization (B) are means, and a decision log (D) is foreign. The more I built knowledge-gardener to grow the vault, the more the means tried to become the end. A record of that tug-of-war.</description><pubDate>Sun, 24 May 2026 11:00:00 GMT</pubDate></item><item><title>What Should We Call the Inverse of a Meat Proxy?</title><link>https://wada-dev.com/en/blog/reverse-meat-proxy/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/reverse-meat-proxy/</guid><description>Starting from meat proxy on Hacker News (a human who pastes raw AI output and adds nothing), I worked out its mirror image: the reverse meat proxy. The right test turned out to be not &quot;does it add anything&quot; but &quot;does it terminate&quot; — plus the candidate terms that sounded great and got cut because the structure did not match.</description><pubDate>Tue, 04 Aug 2026 06:00:00 GMT</pubDate></item><item><title>Only the Design of My Eval Harness Survived</title><link>https://wada-dev.com/en/blog/local-llm-eval-harness-reuse/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/local-llm-eval-harness-reuse/</guid><description>Three weeks ago I wrote an RFC 6902 porting harness to decide whether to keep Ornith. I reused it to evaluate Qwen3.8 27B — except the script itself had vanished with /tmp, and rebuilding took minutes only because the design was written down. Plus a record of the two predictions it proved wrong.</description><pubDate>Sat, 15 Aug 2026 04:00:00 GMT</pubDate></item><item><title>Qwen3.8 27B Measured on an RTX 5090 — and Why vLLM Didn&apos;t Work</title><link>https://wada-dev.com/en/blog/qwen38-27b-rtx5090-measured/</link><guid isPermaLink="true">https://wada-dev.com/en/blog/qwen38-27b-rtx5090-measured/</guid><description>Running Qwen3.8 27B on a 32GB card on launch day: the runtime version wall, VRAM measured at each context length, and the full account of trying to move it to vLLM for concurrency and failing. Includes a size survey of the &quot;4-bit&quot; builds — none came in under 18GB — and the image input that a client was quietly discarding.</description><pubDate>Sat, 15 Aug 2026 06:00:00 GMT</pubDate></item></channel></rss>