<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Personal Blog</title><link>https://ddainet.cn/</link><description>Recent content on Personal Blog</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sun, 08 Nov 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://ddainet.cn/index.xml" rel="self" type="application/rss+xml"/><item><title>Orca as mission control for my coding agents</title><link>https://ddainet.cn/posts/2026-11-08-orca-mission-control/</link><pubDate>Sun, 08 Nov 2026 00:00:00 +0000</pubDate><guid>https://ddainet.cn/posts/2026-11-08-orca-mission-control/</guid><description>One Mac mini runs several AI agents across four repos. Orca is the layer that keeps that sane: every task becomes a git worktree with its own terminals, browser tabs and agent sessions, a CLI lets agents drive all of it programmatically, and a pairing code turns my phone into a second screen on the same runtime.</description></item><item><title>Self-hosting OmniRoute as my LLM gateway</title><link>https://ddainet.cn/posts/2026-11-01-run-omniroute/</link><pubDate>Sun, 01 Nov 2026 00:00:00 +0000</pubDate><guid>https://ddainet.cn/posts/2026-11-01-run-omniroute/</guid><description>One container routes all my agents&amp;rsquo; LLM traffic. Getting it healthy took three fixes: container DNS that sidesteps poisoned resolver records via Clash fake-IPs, admission control tuned for agent fan-out, and a rate-limit &amp;ldquo;timeout&amp;rdquo; that was secretly killing long-reasoning models mid-flight.</description></item><item><title>Self-hosting HopToDesk with a web client, because every alternative I tried wanted my wallet</title><link>https://ddainet.cn/posts/2026-10-17-self-host-hoptodesk-with-web-client/</link><pubDate>Sat, 17 Oct 2026 00:00:00 +0000</pubDate><guid>https://ddainet.cn/posts/2026-10-17-self-host-hoptodesk-with-web-client/</guid><description>I needed a browser-based web client to reach my home machine from a work PC that locks down software installs. RustDesk, RayLink, and ToDesk all gate the web client behind a paid plan, so I self-hosted HopToDesk instead, and wrote the missing web-client relay bridge along the way. Notes on what worked, what surprised me, and the one TLS gotcha that ate an afternoon.</description></item><item><title>oMLX models on an external SSD, backed up with Kopia</title><link>https://ddainet.cn/posts/2026-10-06-omlx-external-ssd-kopia-backup/</link><pubDate>Tue, 06 Oct 2026 00:00:00 +0000</pubDate><guid>https://ddainet.cn/posts/2026-10-06-omlx-external-ssd-kopia-backup/</guid><description>Moving oMLX&amp;rsquo;s model library to an external SSD on a Mac mini, then letting Kopia take hourly deduplicated snapshots to a second drive — so 36 GB of local models restore in minutes instead of hours of re-downloading.</description></item><item><title>Agile Hybrid Project Pro</title><link>https://ddainet.cn/certs/agile-hybrid/</link><pubDate>Mon, 05 Oct 2026 00:00:00 +0000</pubDate><guid>https://ddainet.cn/certs/agile-hybrid/</guid><description/></item><item><title>AWS Certified DevOps Engineer — Professional</title><link>https://ddainet.cn/certs/aws-devops/</link><pubDate>Mon, 05 Oct 2026 00:00:00 +0000</pubDate><guid>https://ddainet.cn/certs/aws-devops/</guid><description/></item><item><title>AWS Certified Solutions Architect — Professional</title><link>https://ddainet.cn/certs/aws-sap/</link><pubDate>Mon, 05 Oct 2026 00:00:00 +0000</pubDate><guid>https://ddainet.cn/certs/aws-sap/</guid><description/></item><item><title>Certified ScrumMaster (CSM)</title><link>https://ddainet.cn/certs/csm/</link><pubDate>Mon, 05 Oct 2026 00:00:00 +0000</pubDate><guid>https://ddainet.cn/certs/csm/</guid><description/></item><item><title>PMI Agile Certified Practitioner (PMI-ACP)®</title><link>https://ddainet.cn/certs/pmi-acp/</link><pubDate>Mon, 05 Oct 2026 00:00:00 +0000</pubDate><guid>https://ddainet.cn/certs/pmi-acp/</guid><description/></item><item><title>Professional Scrum Master I (PSM I)</title><link>https://ddainet.cn/certs/psm-i/</link><pubDate>Mon, 05 Oct 2026 00:00:00 +0000</pubDate><guid>https://ddainet.cn/certs/psm-i/</guid><description/></item><item><title>Professional Scrum Product Owner I (PSPO I)</title><link>https://ddainet.cn/certs/pspo-i/</link><pubDate>Mon, 05 Oct 2026 00:00:00 +0000</pubDate><guid>https://ddainet.cn/certs/pspo-i/</guid><description/></item><item><title>Project Management Professional (PMP)®</title><link>https://ddainet.cn/certs/pmp/</link><pubDate>Mon, 05 Oct 2026 00:00:00 +0000</pubDate><guid>https://ddainet.cn/certs/pmp/</guid><description/></item><item><title>Self-hosted memory for Claude Code with mem0</title><link>https://ddainet.cn/posts/2026-10-01-self-hosted-mem0/</link><pubDate>Thu, 01 Oct 2026 00:00:00 +0000</pubDate><guid>https://ddainet.cn/posts/2026-10-01-self-hosted-mem0/</guid><description>Wiring Claude Code to a fully local memory stack: oMLX serves the LLM and embeddings, pgvector stores the vectors, and the open-source mem0 MCP server glues it together over SSE.</description></item><item><title>About</title><link>https://ddainet.cn/about/</link><pubDate>Tue, 01 Sep 2026 00:00:00 +0000</pubDate><guid>https://ddainet.cn/about/</guid><description>&lt;p&gt;This is a trial-run personal blog scaffold, built with &lt;strong&gt;Hugo&lt;/strong&gt; and the &lt;strong&gt;OpenDesign &lt;code&gt;clean&lt;/code&gt; design system&lt;/strong&gt;.&lt;/p&gt;&#10;&lt;p&gt;The theme (&lt;code&gt;themes/clean-blog/&lt;/code&gt;) is a faithful conversion of the static HTML produced by OpenDesign: same tokens, same typography (Poppins / Roboto / Inconsolata), same primary color (&lt;code&gt;#3B82F6&lt;/code&gt;), same layout grid. Content comes from markdown files in &lt;code&gt;content/&lt;/code&gt; — the credential list is driven by entries in &lt;code&gt;content/certs/&lt;/code&gt;.&lt;/p&gt;&#10;&lt;p&gt;To see how the system composes, look at &lt;code&gt;content/posts/&lt;/code&gt; — each &lt;code&gt;.md&lt;/code&gt; file becomes a card on the homepage and a full article at its permalink.&lt;/p&gt;</description></item><item><title>Getting a Hugo site running locally in 20 minutes</title><link>https://ddainet.cn/posts/2026-09-01-hugo-quickstart/</link><pubDate>Tue, 01 Sep 2026 00:00:00 +0000</pubDate><guid>https://ddainet.cn/posts/2026-09-01-hugo-quickstart/</guid><description>A pragmatic walkthrough: install Hugo, scaffold a site, write three posts, and build a static bundle you can open in any browser.</description></item><item><title>Designing a typographic system that scales</title><link>https://ddainet.cn/posts/2026-08-20-typographic-system/</link><pubDate>Thu, 20 Aug 2026 00:00:00 +0000</pubDate><guid>https://ddainet.cn/posts/2026-08-20-typographic-system/</guid><description>How a small set of type and spacing tokens can hold up a whole site without ever needing a redesign.</description></item><item><title>Why I stopped using boxed shadows on cards</title><link>https://ddainet.cn/posts/2026-08-12-boxed-shadows/</link><pubDate>Wed, 12 Aug 2026 00:00:00 +0000</pubDate><guid>https://ddainet.cn/posts/2026-08-12-boxed-shadows/</guid><description>Restraint, proximity, and the case for letting a 1px border do the work of a 24px blur.</description></item><item><title>Scaffolding before you ship</title><link>https://ddainet.cn/posts/2026-08-05-scaffolding/</link><pubDate>Wed, 05 Aug 2026 00:00:00 +0000</pubDate><guid>https://ddainet.cn/posts/2026-08-05-scaffolding/</guid><description>A 20-minute primer on getting a static site from blank directory to something worth iterating on.</description></item></channel></rss>