{"@attributes":{"version":"2.0"},"channel":{"title":"Victor Zhang | Mobile & Systems Engineer | Apps from Device to Cloud","description":"Mobile and systems engineer building reliable, data-heavy product systems across iOS, React Native, device sync, backend flows, and telemetry.","link":"https:\/\/zywkloo.github.io\/","item":[{"title":"From Structure to Semantics: Using TEC-FIT for Executable Semantics","link":"https:\/\/zywkloo.github.io\/blog\/from-structure-to-semantics-tec-fit\/","guid":"https:\/\/zywkloo.github.io\/blog\/from-structure-to-semantics-tec-fit\/","description":"How TEC-FIT emerges from the core ideas of Domain-Driven Design and Designing Data-Intensive Applications.","pubDate":"Sat, 28 Mar 2026 00:00:00 GMT"},{"title":"Choosing the Right JavaScript Data Visualization Framework: Insights and Comparisons","link":"https:\/\/zywkloo.github.io\/blog\/javascript-data-visualization-frameworks\/","guid":"https:\/\/zywkloo.github.io\/blog\/javascript-data-visualization-frameworks\/","description":"A comprehensive guide comparing popular JavaScript data visualization frameworks to help you choose the right tool for your project","pubDate":"Fri, 01 Mar 2024 00:00:00 GMT"},{"title":"Keeping Domain Semantics Intact in a Transaction App","link":"https:\/\/zywkloo.github.io\/blog\/maintaining-domain-semantics-in-transaction-apps\/","guid":"https:\/\/zywkloo.github.io\/blog\/maintaining-domain-semantics-in-transaction-apps\/","description":"A practical framework for maintaining domain semantics in a transaction app across contracts, validators, policies, projections, UI states, and regression boundaries.","pubDate":"Sun, 29 Mar 2026 00:00:00 GMT"},{"title":"Chief Token Orchestrator \u2014 Manage Claude, Codex, and Gemini as a Structured Software Team","link":"https:\/\/zywkloo.github.io\/blog\/chief-token-orchestrator-manage-layered-agent-team\/","guid":"https:\/\/zywkloo.github.io\/blog\/chief-token-orchestrator-manage-layered-agent-team\/","description":"Spawning parallel agents is easy. Spawning them without hitting token limits, context pollution, or review bottlenecks is hard. Discover why you need a structured, layered team architecture.","pubDate":"Thu, 28 May 2026 00:00:00 GMT"},{"title":"Colored ICP Point Cloud Registration in 3D Scanning \/ 3D \u626b\u63cf\u4e2d\u7684 Colored ICP \u70b9\u4e91\u914d\u51c6\u7b97\u6cd5","link":"https:\/\/zywkloo.github.io\/blog\/colored-icp-3d-point-cloud-registration\/","guid":"https:\/\/zywkloo.github.io\/blog\/colored-icp-3d-point-cloud-registration\/","description":"How to solve the sliding ambiguity in 3D reconstruction using multi-scale Colored ICP, custom Metal rendering pipelines, and volumetric SLAM fusion.","pubDate":"Fri, 01 May 2026 00:00:00 GMT"},{"title":"Retrieval Augmented Generation (RAG): The Power of Hybrid Search","link":"https:\/\/zywkloo.github.io\/blog\/retrieval-augmented-generation-rag\/","guid":"https:\/\/zywkloo.github.io\/blog\/retrieval-augmented-generation-rag\/","description":"An in-depth exploration of RAG, comparing vector and keyword retrieval, understanding hybrid search strategies, and why RAG is essential for modern LLM applications.","pubDate":"Sat, 25 Oct 2025 00:00:00 GMT"},{"title":"Board Game AI Development: From Minimax to Modern Deep Learning","link":"https:\/\/zywkloo.github.io\/blog\/board-game-ai-development\/","guid":"https:\/\/zywkloo.github.io\/blog\/board-game-ai-development\/","description":"Exploring the evolution of artificial intelligence in board games, from classical algorithms to modern machine learning approaches","pubDate":"Sat, 01 Aug 2020 00:00:00 GMT"},{"title":"Sacred Geometry of Stylus Input & Ink Engine Math \/ \u89e6\u63a7\u7b14\u8f93\u5165\u4e0e\u7b14\u8ff9\u5f15\u64ce\u7684\u51e0\u4f55\u6570\u5b66\u516c\u5f0f","link":"https:\/\/zywkloo.github.io\/blog\/metal-geometry-math-part2\/","guid":"https:\/\/zywkloo.github.io\/blog\/metal-geometry-math-part2\/","description":"Why triangles and Bezier curves are the foundation of vector ink, detailing our Catmull-Rom smoothing algorithms, variable-width tessellation math, and dynamic end-cap rendering.","pubDate":"Mon, 20 Apr 2026 00:00:00 GMT"},{"title":"Metal + SwiftUI Layer Compositing & Lifecycle Gotchas \/ Metal + SwiftUI \u56fe\u5c42\u5408\u6210\u4e0e\u751f\u547d\u5468\u671f\u9677\u9631","link":"https:\/\/zywkloo.github.io\/blog\/metal-swiftui-gotchas-part1\/","guid":"https:\/\/zywkloo.github.io\/blog\/metal-swiftui-gotchas-part1\/","description":"Three bugs that had no warnings, no crashes, and no obvious causes. Just a blank canvas staring back at me at 2am. Here's what I learned building 8 Strokes.","pubDate":"Wed, 15 Apr 2026 00:00:00 GMT"},{"title":"Stop Reinventing the Agent \u2014 wtcraft Boundaries, Ledgers & Sign-off First \/ \u522b\u5377 Agent \u4e86\uff1awtcraft \u8981\u5148\u628a\u8fb9\u754c\u3001\u8d26\u672c\u548c\u9a8c\u6536\u505a\u597d","link":"https:\/\/zywkloo.github.io\/blog\/dont-build-another-agent-codex-claude-code-wtcraft\/","guid":"https:\/\/zywkloo.github.io\/blog\/dont-build-another-agent-codex-claude-code-wtcraft\/","description":"\u4ece Claude Code \u6e90\u7801\u6cc4\u9732\u4e0e CCB \u9006\u5411\u67b6\u6784\u51fa\u53d1\uff0c\u7528\u540c\u4e00\u5957\u516d\u5c42\u67b6\u6784\u5bf9\u6bd4 Codex \u548c Claude Code\uff0c\u5f97\u51fa\u7ed3\u8bba\uff1awtcraft \u4e0d\u8be5\u518d\u9020 runtime\uff0c\u800c\u8be5\u628a\u4efb\u52a1\u8fb9\u754c\u3001\u8fd0\u884c\u8d26\u672c\u548c\u9a8c\u6536\u6d41\u7a0b\u505a\u624e\u5b9e\u3002","pubDate":"Tue, 02 Jun 2026 00:00:00 GMT"},{"title":"Vibe Coding with Git Worktrees \u2014 A Playbook Most Devs Are Missing","link":"https:\/\/zywkloo.github.io\/blog\/worktree-refactor-playbook\/","guid":"https:\/\/zywkloo.github.io\/blog\/worktree-refactor-playbook\/","description":"Most people vibe-code with one model in one branch. Here is how to use multiple models, git worktrees, and a phased workflow to ship refactors without breaking everything.","pubDate":"Thu, 05 Feb 2026 00:00:00 GMT"},{"title":"React State Fundamentals \u2014 Why These Still Bite You in Fabric","link":"https:\/\/zywkloo.github.io\/blog\/rn-culprit-01-react-state-fundamentals\/","guid":"https:\/\/zywkloo.github.io\/blog\/rn-culprit-01-react-state-fundamentals\/","description":"The React state patterns from 2019 that remain directly relevant to understanding why Fabric crashes happen in 2024. Async batching, immutability, and re-render pressure are not new problems \u2014 Fabric just makes them lethal.","pubDate":"Sun, 01 Dec 2019 00:00:00 GMT"},{"title":"Ternary Swaps, Binary Crashes: Native Component Churn","link":"https:\/\/zywkloo.github.io\/blog\/rn-culprit-03-ternary-native-component-swap\/","guid":"https:\/\/zywkloo.github.io\/blog\/rn-culprit-03-ternary-native-component-swap\/","description":"Identical stack to RN Culprit #1. Same assertion. The fix looks like magic, but is deeply logical when you understand how Fabric commit queues process layout-only view unmounting.","pubDate":"Fri, 26 Jun 2026 00:00:00 GMT"},{"title":"Linear Gradients, Non-Linear Crashes: Fabric View Flattening","link":"https:\/\/zywkloo.github.io\/blog\/rn-culprit-02-fabric-view-flattening\/","guid":"https:\/\/zywkloo.github.io\/blog\/rn-culprit-02-fabric-view-flattening\/","description":"A 100%-reproducible crash in React Native Fabric. The stack points squarely at RN internals. The real culprit is two missing collapsable={false} props on absolute-positioned wrappers.","pubDate":"Thu, 25 Jun 2026 00:00:00 GMT"},{"title":"wtcraft \u2014 A Lightweight, Git-Native Governance Core for Claude Code, Codex, and Gemini","link":"https:\/\/zywkloo.github.io\/blog\/wtcraft-lightweight-git-native-multi-agent-scaffolding\/","guid":"https:\/\/zywkloo.github.io\/blog\/wtcraft-lightweight-git-native-multi-agent-scaffolding\/","description":"How do you actually enforce boundaries on autonomous agents? Explore Harness Engineering, the competitive landscape of task contracts, and how the wtcraft CLI implements bounded sandboxes locally.","pubDate":"Fri, 29 May 2026 00:00:00 GMT"}]}}