<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Bruce on AI Engineering</title><link>http://www.heyuan110.com/</link><description>Recent content on Bruce on AI Engineering</description><generator>Hugo</generator><language>en</language><lastBuildDate>Tue, 14 Apr 2026 10:00:00 +0800</lastBuildDate><atom:link href="http://www.heyuan110.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Apple Silicon AI Workstation 2026: M4 Pro vs M3 Max for Local LLM &amp; Image Gen</title><link>http://www.heyuan110.com/posts/ai/2026-04-14-mac-apple-silicon-ai-workstation/</link><pubDate>Tue, 14 Apr 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-04-14-mac-apple-silicon-ai-workstation/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-04-14-mac-apple-silicon-ai-workstation/cover.webp"
 alt="Apple Silicon AI workstation comparison: M4 Pro vs M3 Max running Ollama, MLX, ComfyUI, and Draw Things locally"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve spent the last six months running &lt;strong&gt;Apple Silicon as my primary local AI workstation&lt;/strong&gt; — Ollama, MLX, ComfyUI, Draw Things, llama.cpp, all day every day, across an M4 Pro Mac mini (48GB), an M3 Max MacBook Pro (64GB), and a friend&amp;rsquo;s M3 Max Mac Studio (128GB). The conclusion is not what the Apple keynotes would suggest.&lt;/p&gt;</description></item><item><title>Hermes Agent Hands-On: Nous Research Personal AI Agent Review</title><link>http://www.heyuan110.com/posts/ai/2026-04-14-hermes-agent-guide/</link><pubDate>Tue, 14 Apr 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-04-14-hermes-agent-guide/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-04-14-hermes-agent-guide/cover.webp"
 alt="Hermes Agent v0.9 hands-on review: Nous Research personal AI agent that grows with you"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;Nous Research just shipped Hermes Agent v0.9.0 &amp;ldquo;the everywhere release&amp;rdquo; on April 13, 2026. Two months after the initial launch the repo is sitting at 27,000+ GitHub stars, and the two weeks preceding v0.9.0 saw 209 PRs merged and 81 issues closed. That is an unusual cadence for an open-source agent project, and I think it is worth unpacking why this one matters beyond the release-note excitement.&lt;/p&gt;</description></item><item><title>OpenClaw Tools &amp; Skills Reference 2026: Every Built-in Tool and Skill</title><link>http://www.heyuan110.com/posts/ai/2026-04-14-openclaw-tools-skills-reference/</link><pubDate>Tue, 14 Apr 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-04-14-openclaw-tools-skills-reference/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-04-14-openclaw-tools-skills-reference/cover.webp"
 alt="OpenClaw Tools and Skills Reference 2026 cover showing ClawHub skill architecture and built-in tool parameters"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;Most OpenClaw tutorials teach you the philosophy. None of them give you the one thing you actually need when the agent misbehaves at 2 AM: &lt;strong&gt;exact parameters, exact file paths, and exact skill loading rules&lt;/strong&gt;. This is that reference.&lt;/p&gt;
&lt;p&gt;After shipping three production OpenClaw agents and contributing two skills to ClawHub, I have learned that 80% of &amp;ldquo;agent is broken&amp;rdquo; tickets come down to three things — wrong tool parameters, malformed SKILL.md frontmatter, or skill directory in the wrong place. The docs scatter this across ten pages. This guide puts every built-in tool signature, every ClawHub skill contract, and every common failure in one place for &lt;strong&gt;OpenClaw 2026&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>Terminal AI Coding CLIs 2026: Claude Code vs Codex vs Cursor vs OpenClaw</title><link>http://www.heyuan110.com/posts/ai/2026-04-14-terminal-ai-coding-tools-2026-comparison/</link><pubDate>Tue, 14 Apr 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-04-14-terminal-ai-coding-tools-2026-comparison/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-04-14-terminal-ai-coding-tools-2026-comparison/cover.webp"
 alt="2026 terminal AI coding CLIs comparison - Claude Code vs Codex CLI vs Cursor CLI vs OpenClaw"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;The terminal became the real battleground for AI coding in 2026.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re still reading IDE-centric comparisons, you&amp;rsquo;re reading about yesterday&amp;rsquo;s war. GitHub&amp;rsquo;s 2026 developer survey shows daily AI-agent usage inside the terminal overtook IDE-embedded AI by 1.7x in time spent. The reason isn&amp;rsquo;t fashion - it&amp;rsquo;s that serious autonomous work (hour-long refactors, CI-integrated agents, remote SSH sessions) simply doesn&amp;rsquo;t fit inside a code editor.&lt;/p&gt;</description></item><item><title>Sub-Agent Architecture for AI Coding Harnesses: When to Spawn, How to Route, What It Costs</title><link>http://www.heyuan110.com/posts/ai/2026-04-13-harness-subagent-architecture/</link><pubDate>Mon, 13 Apr 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-04-13-harness-subagent-architecture/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-04-13-harness-subagent-architecture/cover.webp"
 alt="Sub-agent architecture diagram showing a main orchestrator agent spawning isolated sub-agents with their own context windows"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;This is &lt;strong&gt;Part 3&lt;/strong&gt; of the &lt;a href="http://www.heyuan110.com/posts/ai/2026-03-30-harness-engineering-guide/"&gt;Harness Engineering series&lt;/a&gt;. Part 1 framed the thesis (Agent = Model + Harness). &lt;a href="http://www.heyuan110.com/posts/ai/2026-03-31-harness-claudemd-guide/"&gt;Part 2&lt;/a&gt; went deep on &lt;code&gt;CLAUDE.md&lt;/code&gt;, the single most important &lt;em&gt;feedforward&lt;/em&gt; control. This article goes deep on a structural decision most teams get wrong: &lt;strong&gt;when to spawn a sub-agent, how to route it, and what it actually costs.&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Turn Your Office Mac Mini into a Personal VPN: 5 Approaches Compared</title><link>http://www.heyuan110.com/posts/linux/2026-04-11-remote-access-mac-mini-vpn/</link><pubDate>Sat, 11 Apr 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/linux/2026-04-11-remote-access-mac-mini-vpn/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/linux/2026-04-11-remote-access-mac-mini-vpn/cover.webp"
 alt="Turn your office Mac Mini into a personal VPN — 5 approaches compared"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;h2 id="1-the-problem-your-mac-mini-is-stranded-behind-a-firewall"&gt;1. The Problem: Your Mac Mini Is Stranded Behind a Firewall&lt;a href="#1-the-problem-your-mac-mini-is-stranded-behind-a-firewall" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;You have a Mac Mini sitting in the office, always on, always connected. You want to reach it from home — SSH into it, use it as a proxy, or route your traffic through the office network. The problem: it&amp;rsquo;s behind a corporate NAT firewall, has no public IP of its own, and IT isn&amp;rsquo;t going to punch holes in the firewall for your personal convenience.&lt;/p&gt;</description></item><item><title>Lazygit in 2026: The Git TUI That Makes Interactive Rebase Feel Like Cheating</title><link>http://www.heyuan110.com/posts/ai/2026-04-10-lazygit-guide/</link><pubDate>Fri, 10 Apr 2026 14:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-04-10-lazygit-guide/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-04-10-lazygit-guide/cover.webp"
 alt="Lazygit terminal UI for Git commands with interactive rebase and staging"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;To perform an interactive rebase in raw Git, you run &lt;code&gt;git rebase -i HEAD~5&lt;/code&gt;, which opens a temporary TODO file in your editor where you manually rearrange lines, change &lt;code&gt;pick&lt;/code&gt; to &lt;code&gt;squash&lt;/code&gt; or &lt;code&gt;fixup&lt;/code&gt;, save, close, and pray you did not make a typo. To stage individual lines from a file, you run &lt;code&gt;git add -p&lt;/code&gt;, which walks you through hunks one at a time—and if the hunk granularity is wrong, you edit a patch file by hand. To amend an old commit (not the latest, but one from three commits ago), you need to start an interactive rebase, mark the commit as &lt;code&gt;edit&lt;/code&gt;, make your changes, amend, and then continue the rebase.&lt;/p&gt;</description></item><item><title>Claude HUD: The Status Bar That Claude Code Should Have Built In</title><link>http://www.heyuan110.com/posts/ai/2026-04-10-claude-hud-guide/</link><pubDate>Fri, 10 Apr 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-04-10-claude-hud-guide/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-04-10-claude-hud-guide/cover.webp"
 alt="Claude HUD adds real-time session monitoring to Claude Code terminal"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;You know that moment when Claude Code starts repeating instructions you gave it ten minutes ago? Or when it produces code that contradicts a decision it made earlier in the same session? That is what context window saturation looks like—and without monitoring, you have zero warning before it happens.&lt;/p&gt;
&lt;p&gt;I have been using Claude Code daily for months, and the single biggest improvement to my workflow was not a new model, not a better prompt strategy, not even a fancier CLAUDE.md file. It was installing &lt;a href="https://github.com/jarrodwatts/claude-hud"&gt;Claude HUD&lt;/a&gt;—a plugin that shows me what is actually happening inside my session. Think of it as &lt;strong&gt;htop for Claude Code&lt;/strong&gt;: where htop shows CPU usage, memory, and running processes, Claude HUD shows context health, active tools, subagent status, and task completion in real time.&lt;/p&gt;</description></item><item><title>uv in 2026: Why It Replaces pip, conda, and pyenv (With Decision Framework)</title><link>http://www.heyuan110.com/posts/python/2026-04-10-uv-python-package-manager/</link><pubDate>Fri, 10 Apr 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/python/2026-04-10-uv-python-package-manager/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/python/2026-04-10-uv-python-package-manager/cover.webp"
 alt="uv Python package manager comparison guide covering uv vs pip conda pyenv"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;Python&amp;rsquo;s biggest pain point has never been the language itself — it is the tooling around it.&lt;/p&gt;
&lt;p&gt;Every Python developer has a horror story: &lt;code&gt;pip install&lt;/code&gt; that silently broke another project&amp;rsquo;s dependencies, &lt;code&gt;pyenv install&lt;/code&gt; that failed after five minutes of compilation because of a missing system library, or a &lt;code&gt;requirements.txt&lt;/code&gt; that worked on one machine but not another. The root cause is fragmentation: pip handles installation, virtualenv handles isolation, pyenv handles versions, pip-tools handles locking — four tools that were never designed to work together.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/astral-sh/uv"&gt;uv&lt;/a&gt; changes this equation. Built in Rust by &lt;a href="https://astral.sh/"&gt;Astral&lt;/a&gt; (the team behind Ruff), uv unifies package installation, virtual environment management, Python version management, and dependency locking into a single tool that runs 10-100x faster than pip. As of April 2026, it pulls &lt;a href="https://www.bitecode.dev/p/a-year-of-uv-pros-cons-and-should"&gt;75 million monthly downloads on PyPI&lt;/a&gt;, surpassing Poetry, and is becoming the default installer in CI environments. My position: &lt;strong&gt;for any new Python project in 2026, uv should be your starting point.&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Claude Code + OpenSpec + Superpowers: When to Use All Three (and When Not To)</title><link>http://www.heyuan110.com/posts/ai/2026-04-09-claude-code-openspec-superpowers/</link><pubDate>Thu, 09 Apr 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-04-09-claude-code-openspec-superpowers/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-04-09-claude-code-openspec-superpowers/cover.webp"
 alt="Claude Code &amp;#43; OpenSpec &amp;#43; Superpowers AI development workflow"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;h2 id="youve-probably-hit-these-three-walls"&gt;You&amp;rsquo;ve Probably Hit These Three Walls&lt;a href="#youve-probably-hit-these-three-walls" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;If you&amp;rsquo;ve used Claude Code or any AI coding tool seriously, these scenarios will be familiar.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Wall 1: The AI builds something different from what you wanted.&lt;/strong&gt; You say &amp;ldquo;add user login,&amp;rdquo; it gives you session-based auth when you wanted JWT. You say &amp;ldquo;payment scanning,&amp;rdquo; it integrates a real payment SDK when you just wanted a demo. You only discover the mismatch after reviewing the generated code — by then, you&amp;rsquo;ve already burned tokens and time.&lt;/p&gt;</description></item><item><title>One Founder + AI Agents = 2,000 New Customers/Month: The Playbook</title><link>http://www.heyuan110.com/posts/ai/2026-04-04-ai-agent-marketing-automation/</link><pubDate>Sat, 04 Apr 2026 18:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-04-04-ai-agent-marketing-automation/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-04-04-ai-agent-marketing-automation/cover.webp"
 alt="AI Agent marketing automation — one founder plus an AI team generating 2,000 customers per month"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;A one-person &amp;ldquo;marketing department&amp;rdquo; that adds 2,000 customers per month and generates $45K MRR. Not a VC-funded team of twenty. One founder, one recently hired DevRel, and four AI employees that never sleep.&lt;/p&gt;
&lt;p&gt;Postiz founder Nevo David published a detailed account of how he used Paperclip — an open-source AI agent orchestration platform — to take over his entire marketing operation. He described the experience as feeling &amp;ldquo;illegal.&amp;rdquo; After dissecting his approach, I found that the most valuable lesson is not which tools he picked, but how he &lt;strong&gt;orchestrated&lt;/strong&gt; them into a self-running machine.&lt;/p&gt;</description></item><item><title>Claude Code Buddy: The Terminal Pet Hidden in Your AI Coding Tool</title><link>http://www.heyuan110.com/posts/ai/2026-04-04-claude-code-buddy-terminal-pet/</link><pubDate>Sat, 04 Apr 2026 16:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-04-04-claude-code-buddy-terminal-pet/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-04-04-claude-code-buddy-terminal-pet/cover.webp"
 alt="Claude Code Buddy terminal pet companion showing ASCII art species with stat cards"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;On March 31, 2026, security researcher Chaofan Shou discovered that Claude Code v2.1.88&amp;rsquo;s npm package contained a 59.8 MB source map file that should never have shipped. Inside those 512,000+ lines of exposed TypeScript sat a directory nobody expected: &lt;code&gt;src/buddy/&lt;/code&gt; — five files describing a complete virtual pet system. What Anthropic had planned as their April Fools surprise was out in the open a day early.&lt;/p&gt;</description></item><item><title>Claude Pricing 2026: My $400/mo Bill Decoded — Pro vs Max vs API ROI</title><link>http://www.heyuan110.com/posts/ai/2026-04-03-claude-pricing-complete-guide/</link><pubDate>Fri, 03 Apr 2026 14:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-04-03-claude-pricing-complete-guide/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-04-03-claude-pricing-complete-guide/cover.webp"
 alt="Claude AI pricing comparison chart showing Free, Pro, Max, and Team plans for 2026"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;Anthropic&amp;rsquo;s Claude has become one of the most capable AI assistants available, but its pricing structure can be confusing. With five consumer tiers, two Max sub-tiers, a Team plan with mixed seat types, and a separate API — choosing the right plan takes real research.&lt;/p&gt;
&lt;p&gt;This guide breaks down every Claude pricing option available in April 2026, including exact costs, usage limits, and practical recommendations for different user types. Whether you are a casual user exploring the free tier, a developer running &lt;a href="http://www.heyuan110.com/posts/ai/2026-02-25-claude-code-pricing/"&gt;Claude Code&lt;/a&gt; daily, or a team lead evaluating enterprise options, you will find the numbers you need here.&lt;/p&gt;</description></item><item><title>5 AI Coding Tools Compared: Why Picking Just One Is the Wrong Question</title><link>http://www.heyuan110.com/posts/ai/2026-04-03-claude-code-vs-cursor-vs-copilot/</link><pubDate>Fri, 03 Apr 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-04-03-claude-code-vs-cursor-vs-copilot/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-04-03-claude-code-vs-cursor-vs-copilot/cover.webp"
 alt="Five AI coding tools compared — Claude Code, Cursor, Copilot, Codex CLI, and Gemini CLI"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;Asking &amp;ldquo;which AI coding tool is the best&amp;rdquo; in 2026 is like asking whether a hammer is better than a screwdriver. The question reveals a misunderstanding of the problem.&lt;/p&gt;
&lt;p&gt;I have used all five major AI coding tools — Claude Code, Cursor, GitHub Copilot, OpenAI&amp;rsquo;s Codex CLI, and Google&amp;rsquo;s Gemini CLI — daily for the past eight months across three production codebases. The conclusion that surprised me most: &lt;strong&gt;the developers shipping the fastest are not the ones with the most expensive tool. They are the ones who figured out which two tools to combine.&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>OpenClaw Multi-Agent Setup: Stop Letting LLMs Orchestrate</title><link>http://www.heyuan110.com/posts/ai/2026-04-02-openclaw-multi-agent-setup-guide/</link><pubDate>Thu, 02 Apr 2026 14:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-04-02-openclaw-multi-agent-setup-guide/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-04-02-openclaw-multi-agent-setup-guide/cover.webp"
 alt="OpenClaw multi-agent setup guide covering binding routing, Lobster pipelines, and collaboration patterns"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;The biggest threat to your OpenClaw multi-agent system is not misconfiguration. It is &lt;strong&gt;letting LLMs handle orchestration&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The typical setup looks elegant on paper: a Supervisor agent receives all messages, uses &lt;code&gt;sessions_send&lt;/code&gt; to delegate to specialist agents, collects results, and delivers a unified response. In practice, every routing decision is a full API call, every specialist reply-back is another, and a simple &amp;ldquo;write me a blog post&amp;rdquo; might trigger 6-8 API requests. Worse, without anti-recursion rules, agents can enter circular delegation loops. &lt;a href="https://cogentinfo.com/resources/when-ai-agents-collide-multi-agent-orchestration-failure-playbook-for-2026"&gt;Cogent&amp;rsquo;s failure playbook&lt;/a&gt; documents teams that &lt;strong&gt;burned thousands of dollars in minutes&lt;/strong&gt; from exactly this pattern.&lt;/p&gt;</description></item><item><title>MCP vs Skills vs Hooks in Claude Code: Which Extension Do You Need?</title><link>http://www.heyuan110.com/posts/ai/2026-04-02-mcp-vs-skills-claude-code/</link><pubDate>Thu, 02 Apr 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-04-02-mcp-vs-skills-claude-code/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-04-02-mcp-vs-skills-claude-code/cover.webp"
 alt="MCP vs Skills vs Hooks comparison in Claude Code"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;Claude Code has three distinct extension mechanisms: &lt;strong&gt;MCP&lt;/strong&gt; (Model Context Protocol), &lt;strong&gt;Skills&lt;/strong&gt;, and &lt;strong&gt;Hooks&lt;/strong&gt;. They look related on the surface, but they operate at fundamentally different layers of the system. Choosing the wrong one means wasted effort, bloated context windows, or brittle automation that breaks when you need it most.&lt;/p&gt;
&lt;p&gt;This guide provides a deep technical comparison — how each extension works internally, what it costs in terms of tokens and complexity, and a clear decision framework for when to use which.&lt;/p&gt;</description></item><item><title>Cursor Composer 2 Review: The Kimi K2.5 Controversy and What It Means for AI Coding</title><link>http://www.heyuan110.com/posts/ai/2026-04-01-cursor-composer-2-review/</link><pubDate>Wed, 01 Apr 2026 14:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-04-01-cursor-composer-2-review/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-04-01-cursor-composer-2-review/cover.webp"
 alt="Cursor Composer 2 — where Western product meets Eastern foundation model"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;On March 19, 2026, Cursor shipped Composer 2 with a triumphant blog post. Faster, smarter, cheaper — the usual superlatives. Three days later, a developer on X noticed something peculiar in Cursor&amp;rsquo;s API configuration: a model identifier reading &lt;code&gt;kimi-k2p5-rl-0317-s515-fast&lt;/code&gt;. That single string unraveled a story about transparency, open-source ethics, and the increasingly global nature of AI infrastructure.&lt;/p&gt;
&lt;p&gt;This is not just a product review. It is an examination of what happens when a $50 billion startup forgets — or chooses not — to credit the open-source model powering its flagship feature.&lt;/p&gt;</description></item><item><title>Claude Code Open Source: The Rewrite That Hit 100K Stars in Hours</title><link>http://www.heyuan110.com/posts/ai/2026-04-01-claude-code-open-source-agent/</link><pubDate>Wed, 01 Apr 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-04-01-claude-code-open-source-agent/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-04-01-claude-code-open-source-agent/cover.webp"
 alt="Claude Code open-source agent framework visualization"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;On March 31, 2026, a missing &lt;code&gt;.npmignore&lt;/code&gt; entry shipped 512,000 lines of unobfuscated TypeScript to the public npm registry. Within hours, the entire internal architecture of Anthropic&amp;rsquo;s Claude Code — the agent harness connecting LLMs to tools, file systems, and task workflows — was laid bare for the world to study.&lt;/p&gt;
&lt;p&gt;Two days later, &lt;strong&gt;Claude Code Open Source&lt;/strong&gt; launched as a clean-room Python and Rust rewrite. It became the fastest-growing repository in GitHub history, surpassing 100,000 stars in its first hours. This article examines what happened, what Claude Code Open Source actually is, and whether you should care.&lt;/p&gt;</description></item><item><title>Harness Engineering #2: The 60-Line CLAUDE.md Rule (and Why My 90-Line File Failed)</title><link>http://www.heyuan110.com/posts/ai/2026-03-31-harness-claudemd-guide/</link><pubDate>Tue, 31 Mar 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-03-31-harness-claudemd-guide/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-03-31-harness-claudemd-guide/cover.webp"
 alt="A minimalist code editor showing a concise CLAUDE.md file with harness engineering guide rails and feedback loops"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;This is &lt;strong&gt;Part 2&lt;/strong&gt; of the Harness Engineering series. &lt;a href="http://www.heyuan110.com/posts/ai/2026-03-30-harness-engineering-guide/"&gt;Part 1&lt;/a&gt; framed the core identity: &lt;code&gt;Agent = Model + Harness&lt;/code&gt;. &lt;a href="http://www.heyuan110.com/posts/ai/2026-04-13-harness-subagent-architecture/"&gt;Part 3&lt;/a&gt; goes deep on sub-agent architecture. This piece sits between them, on the single highest-ROI file you will ever write for a coding agent — and the one most teams write wrong.&lt;/p&gt;
&lt;p&gt;I have read a lot of &lt;code&gt;CLAUDE.md&lt;/code&gt; files on GitHub over the past three months. Most of them fail the same three ways: they are too long, they were generated by an LLM, and they live in a single flat file when the project has outgrown that shape. I know all three failure modes intimately because I shipped all three in my own repo. This guide is what I wish someone had handed me before I spent a weekend debugging why my agent had gotten dumber.&lt;/p&gt;</description></item><item><title>Harness Engineering: After 60 Days Running an AI Coding Pipeline, the Model Was the Least Important Part</title><link>http://www.heyuan110.com/posts/ai/2026-03-30-harness-engineering-guide/</link><pubDate>Mon, 30 Mar 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-03-30-harness-engineering-guide/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-03-30-harness-engineering-guide/cover.webp"
 alt="Harness engineering architecture — layered systems wrapping an AI agent core with guardrails, feedback loops, and monitoring"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;This is &lt;strong&gt;Part 1&lt;/strong&gt; of the Harness Engineering series. Part 2 goes deep on &lt;a href="http://www.heyuan110.com/posts/ai/2026-03-31-harness-claudemd-guide/"&gt;CLAUDE.md best practices&lt;/a&gt;. Part 3 covers &lt;a href="http://www.heyuan110.com/posts/ai/2026-04-13-harness-subagent-architecture/"&gt;sub-agent architecture and model routing&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I have been running an AI coding harness in production for 60 days — the pipeline that writes, illustrates, and distributes posts for this blog. The single most surprising finding from that experiment: &lt;strong&gt;the model is the least important part of the agent.&lt;/strong&gt; Not irrelevant, but far from dominant. Upgrading the writer from Sonnet to Opus lifted blind-rated output quality by about 5%. Rewiring the harness — routing, context boundaries, sensors — cut end-to-end cost by roughly 60% while quality went up, not down.&lt;/p&gt;</description></item><item><title>Seedance 2.0 Deep Dive: ByteDance AI Video Model That Tops Sora and Veo</title><link>http://www.heyuan110.com/posts/ai/2026-03-29-seedance-2-bytedance-ai-video/</link><pubDate>Sun, 29 Mar 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-03-29-seedance-2-bytedance-ai-video/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-03-29-seedance-2-bytedance-ai-video/cover.webp"
 alt="Seedance 2.0 AI video generation model by ByteDance — cinematic multi-modal creation workspace"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;In February 2026, ByteDance released &lt;strong&gt;Seedance 2.0&lt;/strong&gt;. Within weeks, it hit &lt;strong&gt;#1 on the Artificial Analysis text-to-video leaderboard&lt;/strong&gt; — beating Google Veo 3, OpenAI Sora 2, and Runway Gen-4.5 in blind human evaluation.&lt;/p&gt;
&lt;p&gt;If you are reading this from outside China, you have probably heard the buzz but face a wall of confusion: What is Dreamina? What is VolcEngine? Can you even sign up without a Chinese phone number? Is there legal risk from the Disney controversy?&lt;/p&gt;</description></item><item><title>Lark CLI Complete Guide: Control Feishu with Terminal and AI Agents</title><link>http://www.heyuan110.com/posts/ai/2026-03-29-lark-cli-guide/</link><pubDate>Sun, 29 Mar 2026 09:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-03-29-lark-cli-guide/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-03-29-lark-cli-guide/cover.png"
 alt="Lark CLI - Feishu Command Line Tool"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="600"
/&gt;
&lt;/p&gt;
&lt;h2 id="the-problem"&gt;The Problem&lt;a href="#the-problem" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;You get a request from your manager: export all meetings from next week&amp;rsquo;s calendar, send a notification to 50 group chats, or batch-organize documents into the wiki. You end up clicking through the UI one by one, copying and pasting until your eyes glaze over.&lt;/p&gt;</description></item><item><title>Expose Localhost to the Internet: SSH Tunnels, frp, and Cloudflare Tunnel</title><link>http://www.heyuan110.com/posts/ai/2026-03-28-cloudflare-tunnel-guide/</link><pubDate>Sat, 28 Mar 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-03-28-cloudflare-tunnel-guide/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-03-28-cloudflare-tunnel-guide/cover.webp"
 alt="Expose localhost to the internet — SSH tunnels, frp, and Cloudflare Tunnel compared"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;Last week I needed a colleague overseas to test a feature running on my local machine. My laptop had no public IP, sat behind a home router&amp;rsquo;s NAT, and I wasn&amp;rsquo;t about to open port forwards on a network I share with my family. Sounds familiar?&lt;/p&gt;
&lt;p&gt;This problem — making a local service reachable from the public internet — comes up constantly in software development. Webhook testing, mobile QA on real devices, client demos, cross-region collaboration. The need is universal, yet the networking reality makes it surprisingly hard.&lt;/p&gt;</description></item><item><title>QMD: Local Semantic Search That Cuts AI Agent Token Costs by 90%</title><link>http://www.heyuan110.com/posts/ai/2026-03-25-qmd-local-search-ai-agent-memory/</link><pubDate>Wed, 25 Mar 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-03-25-qmd-local-search-ai-agent-memory/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-03-25-qmd-local-search-ai-agent-memory/cover.webp"
 alt="QMD local semantic search engine for AI agent memory optimization"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;Every AI agent developer hits the same wall: &lt;strong&gt;token costs spiral out of control&lt;/strong&gt; as conversations grow longer. You feed your agent a 2,000-token memory file, a 3,000-token project context, and a 1,500-token conversation history — suddenly you&amp;rsquo;re burning through your API budget just to answer a simple question.&lt;/p&gt;
&lt;p&gt;The root cause? Agents treat memory like a firehose. They dump everything into the context window and hope the LLM figures out what matters. This is like reading an entire encyclopedia to answer &amp;ldquo;What&amp;rsquo;s the capital of France?&amp;rdquo;&lt;/p&gt;</description></item><item><title>Chrome DevTools MCP Setup 2026: Connect AI to Your Existing Browser Session</title><link>http://www.heyuan110.com/posts/ai/2026-03-17-chrome-devtools-mcp-guide/</link><pubDate>Tue, 17 Mar 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-03-17-chrome-devtools-mcp-guide/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-03-17-chrome-devtools-mcp-guide/cover.webp"
 alt="Chrome DevTools MCP connecting AI agent to browser for debugging"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;Every developer using Chrome DevTools MCP hits the same wall: the AI agent opens a &lt;strong&gt;brand new Chrome window&lt;/strong&gt; instead of connecting to your existing browser. Your login sessions? Gone. Your debugging context? Lost. You&amp;rsquo;re staring at a blank Chrome instance while your actual work sits in another window.&lt;/p&gt;
&lt;p&gt;This guide solves that problem. You&amp;rsquo;ll learn the three connection methods for Chrome DevTools MCP, why the &amp;ldquo;new window&amp;rdquo; issue happens, and how to make your AI agent work with your &lt;strong&gt;actual browser session&lt;/strong&gt; — including the critical &lt;code&gt;--user-data-dir&lt;/code&gt; fix that most tutorials skip.&lt;/p&gt;</description></item><item><title>GitHub Agent HQ: Multi-Agent Development Guide for VS Code</title><link>http://www.heyuan110.com/posts/ai/2026-03-13-github-agent-hq-vscode-guide/</link><pubDate>Fri, 13 Mar 2026 15:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-03-13-github-agent-hq-vscode-guide/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-03-13-github-agent-hq-vscode-guide/cover.webp"
 alt="GitHub Agent HQ multi-agent development dashboard showing Claude, Codex, and Copilot panels in VS Code"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;Running one AI coding agent is productive. Running three at the same time — comparing their approaches, playing to each one&amp;rsquo;s strengths, and picking the best output — changes how you build software entirely.&lt;/p&gt;
&lt;p&gt;GitHub Agent HQ makes this possible without leaving VS Code. Announced at GitHub Universe 2025 and launched in public preview in February 2026, Agent HQ lets you run &lt;a href="https://www.anthropic.com/"&gt;Anthropic Claude&lt;/a&gt;, &lt;a href="https://openai.com/index/codex/"&gt;OpenAI Codex&lt;/a&gt;, and &lt;a href="https://github.com/features/copilot"&gt;GitHub Copilot&lt;/a&gt; from a single interface. Think of it as a mission control for AI agents: you assign tasks, monitor progress, compare results, and merge the best solution — all without switching tools.&lt;/p&gt;</description></item><item><title>AI Code Security Tools Compared: Codex Security vs Claude Code Security vs Snyk</title><link>http://www.heyuan110.com/posts/ai/2026-03-13-ai-code-security-tools-compared/</link><pubDate>Fri, 13 Mar 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-03-13-ai-code-security-tools-compared/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-03-13-ai-code-security-tools-compared/cover.webp"
 alt="AI code security tools comparison showing three security scanning dashboards"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;Within two weeks of each other, both Anthropic and OpenAI launched AI-powered code security scanners — &lt;a href="https://www.anthropic.com/news/claude-code-security"&gt;Claude Code Security&lt;/a&gt; on February 20 and &lt;a href="https://openai.com/index/codex-security-now-in-research-preview/"&gt;Codex Security&lt;/a&gt; on March 6, 2026. Meanwhile, established players like Snyk and SonarQube continue evolving their own AI capabilities. If you&amp;rsquo;re a developer or security engineer trying to figure out which tool actually catches real bugs, this guide breaks down the differences with concrete results and honest assessments.&lt;/p&gt;</description></item><item><title>GPT-5.4 vs Claude Opus 4.6: Complete Comparison for Developers</title><link>http://www.heyuan110.com/posts/ai/2026-03-13-gpt-5-4-vs-claude-opus-comparison/</link><pubDate>Fri, 13 Mar 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-03-13-gpt-5-4-vs-claude-opus-comparison/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-03-13-gpt-5-4-vs-claude-opus-comparison/cover.webp"
 alt="GPT-5.4 and Claude Opus 4.6 comparison illustration showing two AI systems connected by data streams"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;Two heavyweight AI models now compete for the top spot in every developer&amp;rsquo;s toolkit. OpenAI shipped GPT-5.4 on March 5, 2026, bringing native computer use, a 1M-token context window, and a new Tool Search feature that slashes token costs. One month earlier, Anthropic released Claude Opus 4.6 alongside Agent Teams — a system that lets multiple AI agents split a project and work in parallel.&lt;/p&gt;</description></item><item><title>OpenCode Review: Can This Open Source AI Coding Agent Replace Claude Code?</title><link>http://www.heyuan110.com/posts/ai/2026-03-13-opencode-ai-coding-agent-review/</link><pubDate>Fri, 13 Mar 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-03-13-opencode-ai-coding-agent-review/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-03-13-opencode-ai-coding-agent-review/cover.webp"
 alt="OpenCode open source AI coding agent terminal interface and architecture overview"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;Every developer building with AI coding agents eventually hits the same wall: vendor lock-in. Claude Code only works with Anthropic models. Cursor ties you to their subscription. GitHub Copilot lives inside VS Code. &lt;a href="https://github.com/anomalyco/opencode"&gt;OpenCode&lt;/a&gt; takes a different path — it&amp;rsquo;s MIT-licensed, supports 75+ model providers, and runs anywhere from your terminal to a desktop app. With 121K GitHub stars and a release cadence measured in days, it&amp;rsquo;s the fastest-growing open source AI coding agent in 2026.&lt;/p&gt;</description></item><item><title>AI Development Methodologies Compared: From Vibe Coding to SDD</title><link>http://www.heyuan110.com/posts/ai/2026-03-11-ai-development-methodologies-compared/</link><pubDate>Wed, 11 Mar 2026 18:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-03-11-ai-development-methodologies-compared/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-03-11-ai-development-methodologies-compared/cover.webp"
 alt="AI development methodologies comparison — Vibe Coding, SDD, BMAD, and pragmatic workflows"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;In early 2025, Andrej Karpathy coined &amp;ldquo;Vibe Coding&amp;rdquo; and the AI-assisted development revolution began. By Y Combinator Winter 2025, &lt;strong&gt;25% of companies had 95% of their code generated by AI&lt;/strong&gt;. But the honeymoon didn&amp;rsquo;t last — quality issues, technical debt, and project chaos forced the industry to rethink how humans and AI should collaborate on code.&lt;/p&gt;
&lt;p&gt;This article is a deep dive into the &lt;strong&gt;six major AI development methodologies&lt;/strong&gt; that emerged from this reckoning. I&amp;rsquo;ll break down what each one gets right, what it gets wrong, and — most importantly — which one you should actually use. This isn&amp;rsquo;t a surface-level overview; it&amp;rsquo;s built from hands-on experience, Martin Fowler&amp;rsquo;s team analysis, Peter Steinberger&amp;rsquo;s evolving workflow, and real production data.&lt;/p&gt;</description></item><item><title>TypeScript vs Python in the AI Era: Which Language Should You Choose in 2026?</title><link>http://www.heyuan110.com/posts/ai/2026-03-10-typescript-vs-python-ai-era/</link><pubDate>Tue, 10 Mar 2026 20:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-03-10-typescript-vs-python-ai-era/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-03-10-typescript-vs-python-ai-era/cover.webp"
 alt="TypeScript vs Python comparison in the AI era 2026"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;For the first time in over a decade, GitHub has a new #1 language — and it&amp;rsquo;s not Python. &lt;a href="http://www.heyuan110.com/posts/ai/2026-03-10-typescript-ai-tools/"&gt;TypeScript surged 66%&lt;/a&gt; to overtake both Python and JavaScript, powered by a &amp;ldquo;convenience loop&amp;rdquo; between AI coding tools and typed languages.&lt;/p&gt;
&lt;p&gt;But does this mean Python is losing? Should you switch? The real answer is more nuanced than headlines suggest.&lt;/p&gt;
&lt;p&gt;This comparison breaks down where each language wins in 2026, why AI tools favor TypeScript for some tasks and Python for others, and how to make the right choice for your career and projects.&lt;/p&gt;</description></item><item><title>High-Frequency Commits: Ship 100+ Commits/Day Without Chaos</title><link>http://www.heyuan110.com/posts/ai/2026-03-10-high-frequency-commits/</link><pubDate>Tue, 10 Mar 2026 18:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-03-10-high-frequency-commits/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-03-10-high-frequency-commits/cover.webp"
 alt="High-frequency commits workflow showing atomic changes flowing through CI/CD pipeline"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;AI coding tools have fundamentally changed how fast developers ship code. With assistants like &lt;a href="http://www.heyuan110.com/posts/ai/2026-02-28-claude-code-complete-guide/"&gt;Claude Code&lt;/a&gt; generating, refactoring, and testing code at machine speed, many teams now produce &lt;strong&gt;50 to 150 commits per day&lt;/strong&gt; — and that number keeps climbing.&lt;/p&gt;
&lt;p&gt;But here is the uncomfortable question: when commit frequency skyrockets, why do some projects accelerate while others descend into chaos?&lt;/p&gt;</description></item><item><title>AI Dev Environment Setup: Tools, Configs, and Dotfiles for 2026</title><link>http://www.heyuan110.com/posts/ai/2026-03-10-ai-dev-environment-setup/</link><pubDate>Tue, 10 Mar 2026 14:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-03-10-ai-dev-environment-setup/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-03-10-ai-dev-environment-setup/cover.webp"
 alt="AI dev environment setup guide covering tools, configs, and dotfiles for 2026"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;Your AI tools are only as good as your setup. Most developers install Claude Code or Cursor, use the defaults, and wonder why the output feels generic. The difference between mediocre AI assistance and genuinely transformative productivity is &lt;strong&gt;configuration&lt;/strong&gt; — the dotfiles, templates, shell aliases, and workflow patterns that turn general-purpose AI into a tool that understands &lt;em&gt;your&lt;/em&gt; codebase and &lt;em&gt;your&lt;/em&gt; conventions.&lt;/p&gt;</description></item><item><title>Context Engineering: The Most Underrated AI Development Skill in 2026</title><link>http://www.heyuan110.com/posts/ai/2026-03-10-context-engineering-guide/</link><pubDate>Tue, 10 Mar 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-03-10-context-engineering-guide/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-03-10-context-engineering-guide/cover.webp"
 alt="Context engineering guide covering the five dimensions, failure modes, and practical frameworks for AI development"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;Everyone talks about prompt engineering. Courses sell for hundreds of dollars teaching you to write better prompts. But in 2026, the developers building the most impressive AI-powered systems are not spending their time crafting clever prompts — they are &lt;strong&gt;engineering context&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;This is the skill that separates someone who occasionally gets good results from ChatGPT from someone who builds reliable, production-grade AI workflows that work consistently across thousands of interactions.&lt;/p&gt;</description></item><item><title>Prototype to Production: AI App Deployment Checklist</title><link>http://www.heyuan110.com/posts/ai/2026-03-09-prototype-to-production/</link><pubDate>Mon, 09 Mar 2026 18:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-03-09-prototype-to-production/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-03-09-prototype-to-production/cover.webp"
 alt="From Prototype to Production: The Complete AI App Deployment Checklist"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;You shipped an AI-generated app in 20 minutes. The demo looked great. Your stakeholders were impressed.&lt;/p&gt;
&lt;p&gt;Then reality hit.&lt;/p&gt;
&lt;p&gt;The app crashed under 50 concurrent users. A security scan found 12 vulnerabilities. There were zero tests, zero logs, and zero alerts. When it went down at 2 AM, nobody knew until customers started complaining on Twitter.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Building the prototype was 10% of the work. The other 90% is what separates a demo from a product.&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>MCP Security 2026: 30 CVEs in 60 Days — What Went Wrong</title><link>http://www.heyuan110.com/posts/ai/2026-03-10-mcp-security-2026/</link><pubDate>Mon, 09 Mar 2026 14:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-03-10-mcp-security-2026/</guid><description>&lt;p&gt;&lt;strong&gt;30 CVEs. 60 days. 437,000 compromised downloads.&lt;/strong&gt; The Model Context Protocol went from &amp;ldquo;promising open standard&amp;rdquo; to &amp;ldquo;active threat surface&amp;rdquo; faster than anyone predicted.&lt;/p&gt;
&lt;p&gt;Between January and February 2026, security researchers filed over 30 CVEs targeting MCP servers, clients, and infrastructure. The vulnerabilities ranged from trivial path traversals to a CVSS 9.6 remote code execution flaw in a package downloaded nearly half a million times. And the root causes were not exotic zero-days — they were missing input validation, absent authentication, and blind trust in tool descriptions.&lt;/p&gt;</description></item><item><title>Why TypeScript Surged 66%: How AI Tools Are Reshaping Language Choice</title><link>http://www.heyuan110.com/posts/ai/2026-03-10-typescript-ai-tools/</link><pubDate>Mon, 09 Mar 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-03-10-typescript-ai-tools/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-03-10-typescript-ai-tools/cover.webp"
 alt="Why TypeScript surged 66% — AI tools reshaping developer language choice"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;TypeScript just became the &lt;strong&gt;#1 language on GitHub&lt;/strong&gt;. Not gradually — it surged &lt;strong&gt;66.6% year-over-year&lt;/strong&gt; to 2.6 million monthly contributors, overtaking Python and JavaScript in a single year. And the reason isn&amp;rsquo;t a new framework or killer feature. It&amp;rsquo;s AI.&lt;/p&gt;
&lt;p&gt;GitHub&amp;rsquo;s &lt;a href="https://github.blog/news-insights/octoverse/octoverse-a-new-developer-joins-github-every-second-as-ai-leads-typescript-to-1/"&gt;Octoverse report&lt;/a&gt; tells a clear story: AI coding tools are fundamentally reshaping which languages developers choose. The tools work better with typed languages, developers notice, and adoption follows. GitHub Developer Advocate Andrea Griffiths calls it a &lt;strong&gt;&amp;ldquo;convenience loop&amp;rdquo;&lt;/strong&gt; — and once you understand it, TypeScript&amp;rsquo;s dominance becomes inevitable.&lt;/p&gt;</description></item><item><title>Cursor Setup Guide 2026: From Install to Advanced Agent Mode</title><link>http://www.heyuan110.com/posts/ai/2026-03-08-cursor-setup-guide/</link><pubDate>Sun, 08 Mar 2026 18:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-03-08-cursor-setup-guide/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-03-08-cursor-setup-guide/cover.webp"
 alt="Cursor Setup Guide 2026 - From Installation to Advanced Agent Mode"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;Cursor has become one of the most powerful AI-native IDEs in 2026, but most developers barely scratch the surface of what it can do. This guide takes you from a fresh install all the way to advanced Agent Mode workflows that can dramatically accelerate your development speed.&lt;/p&gt;
&lt;h2 id="what-is-cursor-and-why-should-you-care"&gt;What Is Cursor and Why Should You Care?&lt;a href="#what-is-cursor-and-why-should-you-care" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Cursor is a fork of Visual Studio Code that adds deep AI integration at every level of the development experience. Unlike bolt-on AI extensions, Cursor&amp;rsquo;s Agent Mode is woven into the editor&amp;rsquo;s core — it can read your files, search your codebase, run terminal commands, and edit code autonomously.&lt;/p&gt;</description></item><item><title>AI Coding Agents 2026: The Complete Comparison (7 Tools Tested)</title><link>http://www.heyuan110.com/posts/ai/2026-03-10-ai-coding-agents-comparison-2026/</link><pubDate>Sun, 08 Mar 2026 14:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-03-10-ai-coding-agents-comparison-2026/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-03-10-ai-coding-agents-comparison-2026/cover.webp"
 alt="Complete comparison of 7 AI coding agents in 2026 including Claude Code, Cursor, Antigravity, Copilot, Kiro, Codex CLI, and Windsurf"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;The AI coding landscape in 2026 looks nothing like it did even a year ago. We have moved from &amp;ldquo;AI that suggests code&amp;rdquo; to &lt;strong&gt;AI that writes, tests, deploys, and iterates on entire features autonomously&lt;/strong&gt;. The question is no longer &lt;em&gt;should&lt;/em&gt; you use an AI coding tool — it is &lt;em&gt;which combination&lt;/em&gt; gives you the biggest edge.&lt;/p&gt;</description></item><item><title>Kiro Review 2026: Amazon's Spec-Driven AI Agent That Codes for Days</title><link>http://www.heyuan110.com/posts/ai/2026-03-10-kiro-review/</link><pubDate>Sun, 08 Mar 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-03-10-kiro-review/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-03-10-kiro-review/cover.webp"
 alt="Amazon Kiro review: spec-driven AI coding agent for 2026"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;Amazon&amp;rsquo;s Kiro made headlines twice. First, when AWS CEO Matt Garman promised at re:Invent 2025 that it could &amp;ldquo;independently figure out how to get work done&amp;rdquo; on complex tasks. Then again in December, when it allegedly deleted a production environment and caused a 13-hour AWS outage.&lt;/p&gt;
&lt;p&gt;Both stories tell you something important about Kiro: it&amp;rsquo;s &lt;strong&gt;genuinely ambitious&lt;/strong&gt; in what it tries to do, and &lt;strong&gt;genuinely dangerous&lt;/strong&gt; if you let it run without guardrails.&lt;/p&gt;</description></item><item><title>Build an AI Coding Agent from Scratch in Python (Complete Tutorial)</title><link>http://www.heyuan110.com/posts/ai/2026-03-07-build-ai-agent-python/</link><pubDate>Sat, 07 Mar 2026 18:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-03-07-build-ai-agent-python/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-03-07-build-ai-agent-python/cover.webp"
 alt="Build an AI coding agent from scratch in Python — complete tutorial with agentic loop and tool use"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;Every AI coding tool — &lt;a href="http://www.heyuan110.com/posts/ai/2026-02-28-claude-code-complete-guide/"&gt;Claude Code&lt;/a&gt;, Cursor, Copilot — runs on the same core architecture. In this tutorial, you will build that architecture yourself: a terminal AI coding agent in Python, from zero to a working 250-line tool that reads files, writes code, runs commands, and makes autonomous multi-step decisions.&lt;/p&gt;
&lt;p&gt;No frameworks. No abstractions. Just Python and a clear understanding of how AI agents actually work.&lt;/p&gt;</description></item><item><title>Codex CLI Deep Dive: Setup, Config, and 20+ Power User Tips</title><link>http://www.heyuan110.com/posts/ai/2026-03-10-codex-cli-deep-dive/</link><pubDate>Sat, 07 Mar 2026 14:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-03-10-codex-cli-deep-dive/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-03-10-codex-cli-deep-dive/cover.webp"
 alt="Codex CLI deep dive guide with setup, configuration, and power user tips"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;Most Codex CLI tutorials stop at &amp;ldquo;here are the commands.&amp;rdquo; They translate the docs and call it a day. This guide goes deeper — covering the &lt;strong&gt;configuration architecture&lt;/strong&gt;, &lt;strong&gt;security model philosophy&lt;/strong&gt;, &lt;strong&gt;real-world workflow patterns&lt;/strong&gt;, and &lt;strong&gt;honest comparison with Claude Code&lt;/strong&gt; that you won&amp;rsquo;t find in surface-level articles.&lt;/p&gt;
&lt;p&gt;By the end, you&amp;rsquo;ll have:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A &lt;strong&gt;production-ready Codex CLI configuration&lt;/strong&gt; you can copy and use immediately&lt;/li&gt;
&lt;li&gt;Deep understanding of the &lt;strong&gt;sandbox security model and permission system&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;20+ battle-tested tips&lt;/strong&gt; for daily development&lt;/li&gt;
&lt;li&gt;An &lt;strong&gt;objective Claude Code comparison&lt;/strong&gt; to help you choose the right tool&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="what-is-codex-cli"&gt;What Is Codex CLI?&lt;a href="#what-is-codex-cli" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Codex CLI is not &amp;ldquo;ChatGPT in a terminal.&amp;rdquo; It&amp;rsquo;s OpenAI&amp;rsquo;s &lt;strong&gt;local AI coding agent&lt;/strong&gt; that can:&lt;/p&gt;</description></item><item><title>Google Antigravity After 30 Days: 3 Killer Features, 5 Reasons I Switched Back</title><link>http://www.heyuan110.com/posts/ai/2026-03-10-google-antigravity-review/</link><pubDate>Sat, 07 Mar 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-03-10-google-antigravity-review/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-03-10-google-antigravity-review/cover.webp"
 alt="Google Antigravity review: the free agent-first IDE powered by Gemini 3"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;Every few months, a new AI coding tool promises to &amp;ldquo;change everything.&amp;rdquo; Most don&amp;rsquo;t. But Google Antigravity — announced alongside Gemini 3 in November 2025 and now in public preview — might actually deliver. It&amp;rsquo;s free, it&amp;rsquo;s agent-first, and it approaches coding fundamentally differently from tools like &lt;a href="http://www.heyuan110.com/posts/ai/2026-01-19-cursor-agent-best-practices/"&gt;Cursor&lt;/a&gt; and &lt;a href="http://www.heyuan110.com/posts/ai/2026-02-28-claude-code-complete-guide/"&gt;Claude Code&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;After weeks of daily use, here&amp;rsquo;s my honest take: what Antigravity does well, where it falls short, and whether you should switch.&lt;/p&gt;</description></item><item><title>OpenAI Symphony: From Issue Ticket to Pull Request Without a Developer</title><link>http://www.heyuan110.com/posts/ai/2026-03-05-openai-symphony-autonomous-coding/</link><pubDate>Fri, 06 Mar 2026 22:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-03-05-openai-symphony-autonomous-coding/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-03-05-openai-symphony-autonomous-coding/cover.webp"
 alt="OpenAI Symphony — autonomous coding agent orchestration framework"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;What if your issue tracker could fix its own tickets?&lt;/p&gt;
&lt;p&gt;OpenAI just open-sourced &lt;strong&gt;Symphony&lt;/strong&gt;, an automation service that monitors your project&amp;rsquo;s issue tracker (like Linear), spawns autonomous coding agents (like Codex) for each task, and delivers verified pull requests — complete with CI status, code reviews, and walkthrough videos — before a human even looks at the code.&lt;/p&gt;
&lt;p&gt;This isn&amp;rsquo;t another AI code assistant that waits for your prompt. Symphony represents a fundamental shift in how software gets built: from &lt;strong&gt;developer-driven coding&lt;/strong&gt; to &lt;strong&gt;project-driven orchestration&lt;/strong&gt;. In this guide, we&amp;rsquo;ll break down Symphony&amp;rsquo;s architecture, explain how it works under the hood, and show you how to set it up for your own projects.&lt;/p&gt;</description></item><item><title>OpenClaw vs CrewAI vs AutoGen 2026: 6 AI Agent Frameworks Ranked</title><link>http://www.heyuan110.com/posts/ai/2026-03-05-openclaw-vs-ai-agents/</link><pubDate>Fri, 06 Mar 2026 19:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-03-05-openclaw-vs-ai-agents/</guid><description>&lt;p&gt;The AI agent landscape in 2026 is crowded. OpenClaw exploded to 247,000+ GitHub stars in weeks. AutoGPT pioneered the autonomous agent concept. CrewAI simplified multi-agent Python workflows. LangGraph brought graph-based orchestration. AutoGen introduced multi-agent conversations. Devin showed what a fully commercial AI engineer looks like.&lt;/p&gt;
&lt;p&gt;So which one should you actually use?&lt;/p&gt;
&lt;p&gt;This comparison breaks down six major AI agent tools across architecture, setup complexity, multi-agent support, messaging integration, cost, and ecosystem. Whether you want a personal AI assistant on Telegram, a coding agent for your development workflow, or a multi-agent framework for your Python project, you will find a clear recommendation here.&lt;/p&gt;</description></item><item><title>OpenClaw Tavily Search: ClawHub Skill Integration Guide (2026)</title><link>http://www.heyuan110.com/posts/ai/2026-03-05-openclaw-tavily-integration/</link><pubDate>Fri, 06 Mar 2026 14:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-03-05-openclaw-tavily-integration/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-03-05-openclaw-tavily-integration/cover.webp"
 alt="OpenClaw Tavily integration guide for AI agent web search setup"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;Your OpenClaw agent is smart, but it is blind. Without web search, it generates answers from training data alone — which means confident-sounding responses built on outdated or fabricated information. Ask it about yesterday&amp;rsquo;s news and it will either admit ignorance or, worse, invent something plausible.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://tavily.com/"&gt;Tavily&lt;/a&gt; fixes this. It is an AI-optimized search API that returns clean, structured results designed specifically for AI agents — not the noisy HTML pages a human would browse. Integrating Tavily into &lt;a href="https://github.com/openclaw/openclaw"&gt;OpenClaw&lt;/a&gt; gives your agent real-time access to the web, turning it from a knowledge-limited chatbot into a research-capable assistant.&lt;/p&gt;</description></item><item><title>OpenClaw Pitfalls: 15 Automation Mistakes and Fixes</title><link>http://www.heyuan110.com/posts/ai/2026-03-05-openclaw-automation-pitfalls/</link><pubDate>Fri, 06 Mar 2026 09:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-03-05-openclaw-automation-pitfalls/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-03-05-openclaw-automation-pitfalls/cover.webp"
 alt="OpenClaw automation pitfalls guide covering setup, agent behavior, cost, and security mistakes"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;You installed OpenClaw. You added Tavily search, proactive-agent, and a handful of community skills. Everything looked amazing for the first 48 hours.&lt;/p&gt;
&lt;p&gt;Then things started breaking. Your agent hallucinated an entire research report because the search API key expired silently. Your monthly API bill hit $200 because Opus was handling heartbeat checks. A skill you installed from &lt;a href="https://clawhub.ai/"&gt;ClawHub&lt;/a&gt; had unrestricted shell access and started modifying files outside your workspace.&lt;/p&gt;</description></item><item><title>Claude Code Slash Commands 2026: Complete List + Custom Commands</title><link>http://www.heyuan110.com/posts/ai/2026-03-05-claude-code-slash-commands/</link><pubDate>Thu, 05 Mar 2026 19:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-03-05-claude-code-slash-commands/</guid><description>&lt;p&gt;&lt;img src="cover.webp"
 alt="Complete reference guide for Claude Code slash commands, keyboard shortcuts, and CLI flags"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 
 
/&gt;
&lt;/p&gt;
&lt;p&gt;Claude Code has over 40 built-in slash commands, dozens of keyboard shortcuts, and a rich set of CLI flags. Most developers use about five of them. The rest sit undiscovered, which means missed opportunities to save time, reduce token costs, and automate repetitive workflows.&lt;/p&gt;
&lt;p&gt;This is the reference you bookmark. Every slash command with what it does and when to use it. Every keyboard shortcut worth memorizing. Every CLI flag for scripting and automation. Plus how to build your own custom commands using Skills.&lt;/p&gt;</description></item><item><title>Build MCP Servers in Python: Complete Step-by-Step Tutorial</title><link>http://www.heyuan110.com/posts/ai/2026-03-05-build-mcp-server-python/</link><pubDate>Thu, 05 Mar 2026 14:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-03-05-build-mcp-server-python/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-03-05-build-mcp-server-python/cover.webp"
 alt="Build MCP servers in Python with FastMCP step by step tutorial"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;Python is the most popular language for AI developers, and the &lt;a href="https://github.com/modelcontextprotocol/python-sdk"&gt;MCP Python SDK&lt;/a&gt; makes it remarkably easy to build custom MCP servers. With the decorator-based FastMCP framework, you can go from zero to a working server in under 50 lines of code.&lt;/p&gt;
&lt;p&gt;This tutorial walks you through building MCP servers in Python from scratch. You will create tools, resources, and prompts, handle errors properly, test with the MCP Inspector, connect to Claude Code, and build a practical SQLite database server. Every code example is complete and runnable.&lt;/p&gt;</description></item><item><title>OpenClaw Setup Guide: Install and Configure Your AI Agent</title><link>http://www.heyuan110.com/posts/ai/2026-03-05-openclaw-setup-guide/</link><pubDate>Thu, 05 Mar 2026 09:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-03-05-openclaw-setup-guide/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-03-05-openclaw-setup-guide/cover.webp"
 alt="OpenClaw setup guide covering installation, configuration, and personal AI agent automation"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;Want a personal AI agent that runs 24/7 on your computer, responds through Telegram or WhatsApp, and actually executes tasks — not just chats? That is exactly what &lt;a href="https://github.com/openclaw/openclaw"&gt;OpenClaw&lt;/a&gt; does. It is an open-source AI agent gateway that turns your machine into a command center for AI-powered automation.&lt;/p&gt;
&lt;p&gt;This guide walks you through the complete OpenClaw setup process: from installation to connecting messaging platforms, configuring AI models, installing Skills, and locking down security. By the end, you will have a working personal AI agent you can message from anywhere.&lt;/p&gt;</description></item><item><title>OpenClaw Multi-Agent Setup: Build AI Teams That Work</title><link>http://www.heyuan110.com/posts/ai/2026-03-05-openclaw-multi-agent-setup/</link><pubDate>Wed, 04 Mar 2026 19:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-03-05-openclaw-multi-agent-setup/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-03-05-openclaw-multi-agent-setup/cover.webp"
 alt="OpenClaw multi-agent setup guide showing AI team architecture"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;You built an OpenClaw personal assistant. It handles your Telegram messages, searches the web, writes drafts, reviews code. Life is good.&lt;/p&gt;
&lt;p&gt;Then reality hits. You ask it to research a competitor, and it responds with coding suggestions from yesterday&amp;rsquo;s conversation. You ask it to write an article, and it pulls in debugging context from a completely unrelated project. Your single agent is drowning in accumulated memory, and every response gets slower and more confused.&lt;/p&gt;</description></item><item><title>Claude Code vs GitHub Copilot 2026: Which AI Coding Tool Wins?</title><link>http://www.heyuan110.com/posts/ai/2026-03-05-claude-code-vs-copilot/</link><pubDate>Wed, 04 Mar 2026 14:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-03-05-claude-code-vs-copilot/</guid><description>&lt;p&gt;&lt;img src="cover.webp"
 alt="Claude Code vs GitHub Copilot comparison for AI coding in 2026"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 
 
/&gt;
&lt;/p&gt;
&lt;p&gt;Choosing between &lt;strong&gt;Claude Code&lt;/strong&gt; and &lt;strong&gt;GitHub Copilot&lt;/strong&gt; is one of the most common decisions developers face in 2026. Both tools use AI to accelerate coding, but they take fundamentally different approaches &amp;ndash; one is a terminal-based autonomous agent, the other is an IDE-first code completion platform.&lt;/p&gt;
&lt;p&gt;This head-to-head comparison covers everything you need to make an informed decision: architecture, code generation, pricing, agent capabilities, and real-world use cases. By the end, you will know exactly which tool fits your workflow &amp;ndash; or whether you should use both.&lt;/p&gt;</description></item><item><title>Claude Code Hooks: Automate Your AI Workflow (2026)</title><link>http://www.heyuan110.com/posts/ai/2026-03-05-claude-code-hooks-guide/</link><pubDate>Wed, 04 Mar 2026 09:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-03-05-claude-code-hooks-guide/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-03-05-claude-code-hooks-guide/cover.webp"
 alt="Claude Code Hooks guide for automating AI coding workflows"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;Claude Code is probabilistic by nature. Ask it to format your code, and it might. Ask it to never touch &lt;code&gt;.env&lt;/code&gt; files, and it usually respects that &amp;ndash; until it doesn&amp;rsquo;t.&lt;/p&gt;
&lt;p&gt;Claude Code hooks solve this. They are shell commands, HTTP endpoints, or LLM prompts that run automatically at specific points during Claude&amp;rsquo;s operation. Before a file edit happens, after a command runs, when a session starts, when Claude finishes a task. Hooks give you deterministic control over the parts of your workflow that cannot be left to chance.&lt;/p&gt;</description></item><item><title>CLAUDE.md Best Practices: Write Files That Actually Work</title><link>http://www.heyuan110.com/posts/ai/2026-03-05-claude-code-claudemd-best-practices/</link><pubDate>Tue, 03 Mar 2026 19:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-03-05-claude-code-claudemd-best-practices/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-03-05-claude-code-claudemd-best-practices/cover.webp"
 alt="CLAUDE.md best practices guide for writing effective Claude Code configuration files"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;Most CLAUDE.md files are bad. They&amp;rsquo;re either empty, stuffed with 500 lines of auto-generated boilerplate, or full of vague instructions like &amp;ldquo;write clean code&amp;rdquo; that Claude already tries to do by default.&lt;/p&gt;
&lt;p&gt;A well-written CLAUDE.md transforms Claude Code from a generic assistant into a team member who knows your stack, follows your conventions, and avoids your project&amp;rsquo;s specific pitfalls. A bad one wastes context tokens and gives you a false sense of control.&lt;/p&gt;</description></item><item><title>Best MCP Servers for Claude Code: 18 Tools You Need in 2026</title><link>http://www.heyuan110.com/posts/ai/2026-03-05-best-mcp-servers-claude-code/</link><pubDate>Tue, 03 Mar 2026 14:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-03-05-best-mcp-servers-claude-code/</guid><description>&lt;p&gt;The MCP ecosystem has exploded. Since Anthropic open-sourced the Model Context Protocol in late 2024, the community has built over 10,000 public MCP servers, and the official SDKs have surpassed 97 million downloads across TypeScript and Python. Every major AI tool vendor now supports MCP — Anthropic, OpenAI, Google, and Microsoft have all adopted it as the standard for connecting AI agents to external tools.&lt;/p&gt;
&lt;p&gt;But with thousands of servers available, finding the ones that actually matter is the hard part.&lt;/p&gt;</description></item><item><title>Claude AI Pricing 2026: Every Plan — Free, Pro $20, Max $100/$200</title><link>http://www.heyuan110.com/posts/ai/2026-02-25-claude-code-pricing/</link><pubDate>Tue, 03 Mar 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-25-claude-code-pricing/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-02-25-claude-code-pricing/cover.webp"
 alt="Claude Code pricing comparison chart for all plans in 2026"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/anthropics/claude-code"&gt;Claude Code&lt;/a&gt; is arguably the most powerful terminal-based AI coding tool available today. But power comes at a price — and Anthropic&amp;rsquo;s pricing structure isn&amp;rsquo;t exactly straightforward.&lt;/p&gt;
&lt;p&gt;Should you stick with the $20 Pro plan? Is the $200/month Max plan actually worth it for heavy users? Could you save money by using the API directly? And how does it all compare to Cursor, Copilot, and Codex CLI?&lt;/p&gt;</description></item><item><title>OpenClaw 2026.3.1: WebSocket Streaming, Agent Routing, and K8s Support</title><link>http://www.heyuan110.com/posts/ai/2026-03-03-openclaw-2026-3-1-new-features/</link><pubDate>Tue, 03 Mar 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-03-03-openclaw-2026-3-1-new-features/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-03-03-openclaw-2026-3-1-new-features/cover.webp"
 alt="OpenClaw 2026.3.1 new features overview showing WebSocket streaming, agent routing, and Kubernetes support"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/openclaw/openclaw"&gt;OpenClaw&lt;/a&gt; just dropped version 2026.3.1 — and this one matters. WebSocket-first streaming for OpenAI models, native Kubernetes health checks, a proper agent routing CLI, and Claude 4.6 adaptive thinking enabled by default.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re running OpenClaw in production or considering it for your AI agent workflow, this guide covers every meaningful change in the release, what it means for your setup, and how to configure the new features.&lt;/p&gt;</description></item><item><title>Tmux Complete Guide: From Basics to AI-Powered Multi-Agent Workflows</title><link>http://www.heyuan110.com/posts/ai/2026-03-03-tmux-guide-ai-development/</link><pubDate>Tue, 03 Mar 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-03-03-tmux-guide-ai-development/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-03-03-tmux-guide-ai-development/cover.webp"
 alt="Tmux terminal multiplexer for AI development workflows"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;If you work in the terminal, you&amp;rsquo;ve probably lost an SSH session during a long-running task. Or struggled to juggle multiple terminal windows while debugging. Or watched helplessly as Claude Code&amp;rsquo;s conversation vanished when your laptop went to sleep.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tmux solves all of these problems&lt;/strong&gt; — and in the age of AI-powered development, it has become arguably the most important terminal tool you can learn.&lt;/p&gt;</description></item><item><title>Vibe Coding Explained: What It Is and How to Do It Right</title><link>http://www.heyuan110.com/posts/ai/2026-02-28-vibe-coding-explained/</link><pubDate>Tue, 03 Mar 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-28-vibe-coding-explained/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-02-28-vibe-coding-explained/cover.webp"
 alt="Vibe coding explained - the AI development approach for 2026"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;In February 2025, Andrej Karpathy — OpenAI co-founder and former Tesla AI director — posted this on X:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;There&amp;rsquo;s a new kind of coding I call &amp;lsquo;vibe coding&amp;rsquo;, where you fully give in to the vibes, embrace exponentials, and forget that the code even exists.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That single post defined a movement. &amp;ldquo;Vibe coding&amp;rdquo; became the &lt;a href="https://www.collinsdictionary.com/word-of-the-year"&gt;Collins Dictionary Word of the Year 2025&lt;/a&gt;, entered &lt;a href="https://www.merriam-webster.com/"&gt;Merriam-Webster&lt;/a&gt;, and sparked the most heated debate in software engineering since &amp;ldquo;should we use tabs or spaces?&amp;rdquo;&lt;/p&gt;</description></item><item><title>MCP Protocol Explained: The Universal Standard for AI Tools</title><link>http://www.heyuan110.com/posts/ai/2026-02-28-mcp-protocol-explained/</link><pubDate>Mon, 02 Mar 2026 14:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-28-mcp-protocol-explained/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-02-28-mcp-protocol-explained/cover.webp"
 alt="MCP Protocol architecture and ecosystem explained for 2026"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;Every AI coding tool needs to connect to external services — databases, APIs, cloud platforms, project management tools. Before MCP, each connection required custom integration code. Build it for Claude Code? Rebuild it for Cursor. Rebuild it again for Copilot.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Model Context Protocol (MCP)&lt;/strong&gt; solves this with a universal standard: build one integration, and it works with every AI tool that supports MCP.&lt;/p&gt;</description></item><item><title>Building MCP Servers with TypeScript: Zero to Deploy Tutorial</title><link>http://www.heyuan110.com/posts/ai/2026-03-02-building-mcp-servers-typescript/</link><pubDate>Mon, 02 Mar 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-03-02-building-mcp-servers-typescript/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-03-02-building-mcp-servers-typescript/cover.webp"
 alt="Building MCP servers with TypeScript from zero to deploy"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;MCP (Model Context Protocol) is the standard way to give AI models access to external tools, data, and services in 2026. If you&amp;rsquo;ve used &lt;a href="http://www.heyuan110.com/posts/ai/2026-02-28-claude-code-complete-guide/"&gt;Claude Code&lt;/a&gt; or Cursor, you&amp;rsquo;ve already used MCP servers — they power everything from database queries to API integrations.&lt;/p&gt;
&lt;p&gt;This tutorial walks you through building your own MCP server from scratch with TypeScript, from project setup to npm publishing. By the end, you&amp;rsquo;ll have a working server that any MCP-compatible AI client can use.&lt;/p&gt;</description></item><item><title>Claude vs ChatGPT vs Gemini: Best LLM for Coding in 2026</title><link>http://www.heyuan110.com/posts/ai/2026-03-02-claude-vs-chatgpt-vs-gemini/</link><pubDate>Mon, 02 Mar 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-03-02-claude-vs-chatgpt-vs-gemini/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-03-02-claude-vs-chatgpt-vs-gemini/cover.webp"
 alt="Claude vs ChatGPT vs Gemini comparison for coding tasks in 2026"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;Choosing the right LLM for coding in 2026 is harder than ever. Claude Opus 4.6, GPT-5.2, and Gemini 2.5 Pro each claim to be the best at writing code — but the reality is more nuanced.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve spent months building real projects with all three models. This comparison cuts through the marketing to show you which model actually performs best for different coding tasks, based on benchmarks, pricing, and hands-on experience.&lt;/p&gt;</description></item><item><title>GitHub Copilot vs Claude Code vs Cursor: 2026 Comparison</title><link>http://www.heyuan110.com/posts/ai/2026-02-28-copilot-vs-claude-vs-cursor/</link><pubDate>Mon, 02 Mar 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-28-copilot-vs-claude-vs-cursor/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-02-28-copilot-vs-claude-vs-cursor/cover.webp"
 alt="GitHub Copilot vs Claude Code vs Cursor comparison for 2026"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;Three AI coding tools dominate 2026: &lt;strong&gt;GitHub Copilot&lt;/strong&gt;, &lt;strong&gt;Claude Code&lt;/strong&gt;, and &lt;strong&gt;Cursor&lt;/strong&gt;. Each takes a fundamentally different approach to AI-assisted development — and choosing between them (or combining them) can significantly impact your productivity.&lt;/p&gt;
&lt;p&gt;This guide compares all three across the dimensions that actually matter: pricing, agent capabilities, code completion, IDE support, and real-world use cases.&lt;/p&gt;
&lt;h2 id="the-30-second-summary"&gt;The 30-Second Summary&lt;a href="#the-30-second-summary" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;th style="text-align: center"&gt;GitHub Copilot&lt;/th&gt;
 &lt;th style="text-align: center"&gt;Claude Code&lt;/th&gt;
 &lt;th style="text-align: center"&gt;Cursor&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Approach&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;IDE extension&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Terminal agent&lt;/td&gt;
 &lt;td style="text-align: center"&gt;AI-native IDE&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Best at&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Inline completion&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Autonomous tasks&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Full IDE experience&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Cheapest&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Free / $10/mo&lt;/td&gt;
 &lt;td style="text-align: center"&gt;$20/mo&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Free / $20/mo&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Power tier&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;$39/mo (Pro+)&lt;/td&gt;
 &lt;td style="text-align: center"&gt;$100/mo (Max 5x)&lt;/td&gt;
 &lt;td style="text-align: center"&gt;$200/mo (Ultra)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Models&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;GPT-4.1, Claude Sonnet&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Opus 4.6, Sonnet 4.6&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Claude, GPT, Gemini&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;IDE support&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;6+ IDEs&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Terminal + IDE plugins&lt;/td&gt;
 &lt;td style="text-align: center"&gt;VS Code fork&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Users&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;20M+&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Growing fast&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Growing fast&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="pricing-breakdown"&gt;Pricing Breakdown&lt;a href="#pricing-breakdown" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="individual-plans"&gt;Individual Plans&lt;a href="#individual-plans" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Tier&lt;/th&gt;
 &lt;th style="text-align: center"&gt;Copilot&lt;/th&gt;
 &lt;th style="text-align: center"&gt;Claude Code&lt;/th&gt;
 &lt;th style="text-align: center"&gt;Cursor&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Free&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;$0 (2K completions/mo)&lt;/td&gt;
 &lt;td style="text-align: center"&gt;No Code access&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Limited features&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Entry&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;$10/mo (Pro)&lt;/td&gt;
 &lt;td style="text-align: center"&gt;$20/mo (Pro)&lt;/td&gt;
 &lt;td style="text-align: center"&gt;$20/mo (Pro)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Advanced&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;$39/mo (Pro+)&lt;/td&gt;
 &lt;td style="text-align: center"&gt;$100/mo (Max 5x)&lt;/td&gt;
 &lt;td style="text-align: center"&gt;$60/mo (Pro+)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Premium&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;—&lt;/td&gt;
 &lt;td style="text-align: center"&gt;$200/mo (Max 20x)&lt;/td&gt;
 &lt;td style="text-align: center"&gt;$200/mo (Ultra)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="teamenterprise"&gt;Team/Enterprise&lt;a href="#teamenterprise" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;th style="text-align: center"&gt;Copilot&lt;/th&gt;
 &lt;th style="text-align: center"&gt;Claude Code&lt;/th&gt;
 &lt;th style="text-align: center"&gt;Cursor&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Team&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;$39/user/mo&lt;/td&gt;
 &lt;td style="text-align: center"&gt;$25–150/user/mo&lt;/td&gt;
 &lt;td style="text-align: center"&gt;$40/user/mo&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Enterprise&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;$39/user/mo&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Custom&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Custom&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;SOC2/SSO&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Yes&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Yes (Enterprise)&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Yes (Teams)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Price winner&lt;/strong&gt;: Copilot at $10/month (Pro) is the cheapest paid option. Its free tier with 2,000 completions is genuinely useful for light users.&lt;/p&gt;</description></item><item><title>Claude Code vs Cursor 2026: Which AI Coding Tool Wins?</title><link>http://www.heyuan110.com/posts/ai/2026-02-28-claude-code-vs-cursor/</link><pubDate>Sun, 01 Mar 2026 14:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-28-claude-code-vs-cursor/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-02-28-claude-code-vs-cursor/cover.webp"
 alt="Claude Code vs Cursor comparison for AI coding in 2026"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;Two AI coding tools dominate the 2026 developer landscape: &lt;strong&gt;Claude Code&lt;/strong&gt; and &lt;strong&gt;Cursor&lt;/strong&gt;. Both are powerful. Both can handle complex, multi-file tasks. But they approach the problem from fundamentally different philosophies.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Claude Code&lt;/strong&gt; is a terminal-first autonomous agent. You give it a task, and it plans, executes, and verifies across your entire codebase.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Cursor&lt;/strong&gt; is an AI-native IDE. It wraps VS Code with deep AI integration — inline completion, agent mode, and visual editing all in one interface.&lt;/p&gt;</description></item><item><title>Claude Code Guide 2026: Everything You Need to Know</title><link>http://www.heyuan110.com/posts/ai/2026-02-28-claude-code-complete-guide/</link><pubDate>Sun, 01 Mar 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-28-claude-code-complete-guide/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-02-28-claude-code-complete-guide/cover.webp"
 alt="Complete Claude Code guide covering all features and workflows in 2026"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/anthropics/claude-code"&gt;Claude Code&lt;/a&gt; is Anthropic&amp;rsquo;s terminal-based AI coding agent. Unlike IDE extensions that suggest code snippets, Claude Code operates as an &lt;strong&gt;autonomous agent&lt;/strong&gt; — it reads your codebase, plans multi-step changes, writes code, runs tests, and iterates until the task is done.&lt;/p&gt;
&lt;p&gt;Since its launch, Claude Code has become the go-to tool for developers who want more than autocomplete. It can refactor entire modules, set up CI/CD pipelines, debug complex issues across files, and even manage git workflows — all from your terminal.&lt;/p&gt;</description></item><item><title>RAG Pipeline Setup: Vector Database + LLM Integration Guide</title><link>http://www.heyuan110.com/posts/ai/2026-03-01-rag-pipeline-setup/</link><pubDate>Sun, 01 Mar 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-03-01-rag-pipeline-setup/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-03-01-rag-pipeline-setup/cover.webp"
 alt="RAG pipeline architecture showing document processing, vector storage, and LLM integration workflow"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;Large language models are powerful, but they have two fundamental limitations: their knowledge stops at the training cutoff date, and they know nothing about your private data. Retrieval-Augmented Generation (RAG) solves both problems by connecting an LLM to an external knowledge base at query time.&lt;/p&gt;
&lt;p&gt;This guide walks you through building a complete RAG pipeline from scratch. You will learn how embeddings work, how to choose a vector database, how to implement effective chunking strategies, and how to wire everything together in Python. Whether you are building a customer support bot, a documentation assistant, or an &lt;a href="http://www.heyuan110.com/posts/ai/2026-02-21-ai-agent-memory-systems/"&gt;AI agent with memory&lt;/a&gt;, the RAG pipeline is the foundation.&lt;/p&gt;</description></item><item><title>Claude Rate Limits 2026: I Burned Through Pro &amp; Max in One Week — Real Caps</title><link>http://www.heyuan110.com/posts/ai/2026-02-28-claude-rate-limits/</link><pubDate>Sat, 28 Feb 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-28-claude-rate-limits/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-02-28-claude-rate-limits/cover.webp"
 alt="Claude rate limits comparison chart for Pro, Max 5x, and Max 20x plans in 2026"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;ve used &lt;a href="https://github.com/anthropics/claude-code"&gt;Claude Code&lt;/a&gt; for more than a day, you&amp;rsquo;ve probably hit a rate limit. That frustrating &amp;ldquo;you&amp;rsquo;ve reached your usage limit&amp;rdquo; message mid-debugging session.&lt;/p&gt;
&lt;p&gt;The problem isn&amp;rsquo;t that limits exist — it&amp;rsquo;s that &lt;strong&gt;nobody explains them clearly&lt;/strong&gt;. Anthropic&amp;rsquo;s official documentation is vague (&amp;ldquo;usage may vary&amp;rdquo;), community posts are outdated, and your actual experience depends on factors you can&amp;rsquo;t see.&lt;/p&gt;</description></item><item><title>Claude Code MCP Setup: Connect AI to Any External Service</title><link>http://www.heyuan110.com/posts/ai/2026-02-28-claude-code-mcp-setup/</link><pubDate>Sat, 28 Feb 2026 09:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-28-claude-code-mcp-setup/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-02-28-claude-code-mcp-setup/cover.webp"
 alt="Claude Code MCP setup connecting AI to external services"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;Out of the box, Claude Code can read files, run shell commands, and search code. But what if you need it to query your Postgres database, send a Slack message, or hit your company&amp;rsquo;s internal API?&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s exactly what MCP solves. The &lt;strong&gt;&lt;a href="https://modelcontextprotocol.io"&gt;Model Context Protocol&lt;/a&gt;&lt;/strong&gt; is an open standard that lets you plug any external service into Claude Code — no prompt hacking, no copy-pasting data, no brittle workarounds. Think of it as &lt;strong&gt;USB-C for AI&lt;/strong&gt;: a single, universal connector between your AI assistant and every tool you care about.&lt;/p&gt;</description></item><item><title>CLAUDE.md Guide: Give AI Perfect Project Context Every Time</title><link>http://www.heyuan110.com/posts/ai/2026-02-28-claude-code-claudemd-guide/</link><pubDate>Sat, 28 Feb 2026 08:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-28-claude-code-claudemd-guide/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-02-28-claude-code-claudemd-guide/cover.webp"
 alt="CLAUDE.md configuration guide for Claude Code project context"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;Every time you start a new Claude Code session, you repeat the same things: &amp;ldquo;We use pnpm, not npm.&amp;rdquo; &amp;ldquo;Follow ESLint rules.&amp;rdquo; &amp;ldquo;Commit messages in conventional format.&amp;rdquo; &amp;ldquo;This is a Next.js 15 project with TypeScript.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Day after day. Session after session.&lt;/p&gt;
&lt;p&gt;CLAUDE.md fixes this permanently. It&amp;rsquo;s a plain Markdown file that Claude Code reads automatically at the start of every session. Write your project context once, and Claude follows it forever — no reminders needed.&lt;/p&gt;</description></item><item><title>Claude Code Worktree: Run Multiple AI Tasks in Parallel</title><link>http://www.heyuan110.com/posts/ai/2026-02-28-claude-code-worktree-guide/</link><pubDate>Fri, 27 Feb 2026 18:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-28-claude-code-worktree-guide/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-02-28-claude-code-worktree-guide/cover.webp"
 alt="Claude Code worktree mode running multiple parallel AI coding sessions"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;You open your terminal. Claude Code is halfway through building a new authentication module. Then Slack pings: there&amp;rsquo;s a production bug that needs fixing now.&lt;/p&gt;
&lt;p&gt;What do you do? Stash your half-finished changes and hope you remember to pop them later? Force-commit a broken state just to switch branches? Tell your team to wait?&lt;/p&gt;
&lt;p&gt;This is the fundamental constraint of single-directory development: &lt;strong&gt;one working directory can only hold one task at a time&lt;/strong&gt;. Switching branches changes your files, but it doesn&amp;rsquo;t give you isolation. If two Claude Code sessions operate on the same directory, they will step on each other&amp;rsquo;s changes.&lt;/p&gt;</description></item><item><title>AI Agent Security: Protecting Automated Workflows in 2026</title><link>http://www.heyuan110.com/posts/ai/2026-02-27-ai-agent-security/</link><pubDate>Fri, 27 Feb 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-27-ai-agent-security/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-02-27-ai-agent-security/cover.webp"
 alt="AI Agent Security: protecting automated workflows against prompt injection, tool poisoning, and MCP vulnerabilities"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;AI agents are transforming software development. Tools like &lt;a href="http://www.heyuan110.com/posts/ai/2026-02-28-claude-code-complete-guide/"&gt;Claude Code&lt;/a&gt;, GitHub Copilot, and Cursor can read entire codebases, execute shell commands, modify files across projects, and interact with external services through protocols like MCP. That power comes with an expanded attack surface that traditional security models were never designed to handle.&lt;/p&gt;
&lt;p&gt;In the first two months of 2026 alone, over 30 CVEs were filed against MCP servers and AI agent tooling. Security researchers demonstrated prompt injection attacks that leaked private repository code, tool poisoning techniques that exfiltrated chat histories, and remote code execution vulnerabilities in packages downloaded nearly half a million times.&lt;/p&gt;</description></item><item><title>Claude Code Teams Guide 2026: Multi-Agent Setup &amp; Collaboration</title><link>http://www.heyuan110.com/posts/ai/2026-02-28-claude-code-teams-guide/</link><pubDate>Fri, 27 Feb 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-28-claude-code-teams-guide/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-02-28-claude-code-teams-guide/cover.webp"
 alt="Claude Code Agent Teams multi-agent collaboration patterns"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;One agent is good. A coordinated team of agents is transformative.&lt;/p&gt;
&lt;p&gt;Since Anthropic released Agent Teams on February 5, 2026, alongside the Opus 4.6 model, &lt;a href="https://docs.anthropic.com/en/docs/claude-code"&gt;Claude Code&lt;/a&gt; has crossed a fundamental threshold: you&amp;rsquo;re no longer limited to a single agent working sequentially through your codebase. You can now spin up multiple Claude agents that communicate with each other, divide work, and execute tasks in parallel — like a small engineering team that happens to operate at machine speed.&lt;/p&gt;</description></item><item><title>Claude Code Skills: 20 I Use Daily + 3 That Saved Me 10 Hours/Week</title><link>http://www.heyuan110.com/posts/ai/2026-02-28-claude-code-skills-guide/</link><pubDate>Thu, 26 Feb 2026 14:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-28-claude-code-skills-guide/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-02-28-claude-code-skills-guide/cover.webp"
 alt="Claude Code Skills guide for teaching AI custom workflows"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;Claude Code is one of the most powerful AI coding tools available. But out of the box, it&amp;rsquo;s generic. It doesn&amp;rsquo;t know your team&amp;rsquo;s code review checklist. It doesn&amp;rsquo;t know your API documentation format. It doesn&amp;rsquo;t know your commit message conventions.&lt;/p&gt;
&lt;p&gt;Every time you explain the same workflow from scratch, you&amp;rsquo;re wasting tokens and time.&lt;/p&gt;
&lt;p&gt;Claude Code Skills fix this. A Skill is a reusable set of instructions — packaged as a simple Markdown file — that teaches Claude exactly how to perform a specific task your way. Once created, Claude auto-detects when a Skill is relevant and applies it without you lifting a finger.&lt;/p&gt;</description></item><item><title>Claude Code Hooks: 12 Production Configs I Run Daily (with Failure Modes)</title><link>http://www.heyuan110.com/posts/ai/2026-02-28-claude-code-hooks-guide/</link><pubDate>Thu, 26 Feb 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-28-claude-code-hooks-guide/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-02-28-claude-code-hooks-guide/cover.webp"
 alt="Claude Code Hooks automation workflow with 12 ready-to-use configs"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/anthropics/claude-code"&gt;Claude Code&lt;/a&gt; is probabilistic. You give it the same prompt twice and get different results. That&amp;rsquo;s fine for creative work — but your engineering workflow needs deterministic guarantees.&lt;/p&gt;
&lt;p&gt;You need files auto-formatted on every save. You need &lt;code&gt;.env&lt;/code&gt; files locked down. You need &lt;code&gt;rm -rf /&lt;/code&gt; blocked before it ever reaches your shell. You need these things to happen every single time, not just when the AI remembers.&lt;/p&gt;</description></item><item><title>Multi-Agent Orchestration: 4 Patterns That Actually Work</title><link>http://www.heyuan110.com/posts/ai/2026-02-26-multi-agent-orchestration/</link><pubDate>Thu, 26 Feb 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-26-multi-agent-orchestration/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-02-26-multi-agent-orchestration/cover.webp"
 alt="Multi-agent orchestration patterns showing Pipeline, Router, Orchestrator-Worker, and Evaluator-Optimizer architectures for AI agent collaboration"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;A single AI agent can do impressive things — until it cannot. Give one agent a codebase with 200 files, a conversation history spanning 50 exchanges, and instructions that mix refactoring with testing with documentation, and you will watch it slowly fall apart. Responses drift. Costs spike. The agent starts &amp;ldquo;hallucinating&amp;rdquo; connections between unrelated parts of your project.&lt;/p&gt;</description></item><item><title>10 Claude Code Mistakes Beginners Make (And How to Fix Them)</title><link>http://www.heyuan110.com/posts/ai/2026-02-25-claude-code-mistakes/</link><pubDate>Wed, 25 Feb 2026 14:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-25-claude-code-mistakes/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-02-25-claude-code-mistakes/cover.webp"
 alt="10 common Claude Code mistakes beginners make and how to fix them"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;&lt;a href="https://docs.anthropic.com/en/docs/claude-code"&gt;Claude Code&lt;/a&gt; is the most capable AI coding tool available. It&amp;rsquo;s also one of the easiest to use badly.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve watched dozens of developers adopt Claude Code — myself included — and the same mistakes come up again and again. Developers who fix these issues typically see a 5–10x improvement in output quality and a 50%+ reduction in token costs.&lt;/p&gt;</description></item><item><title>How to Install Claude Code 2026: Complete Setup Guide in 10 Minutes</title><link>http://www.heyuan110.com/posts/ai/2026-02-25-claude-code-setup-guide/</link><pubDate>Wed, 25 Feb 2026 12:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-25-claude-code-setup-guide/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-02-25-claude-code-setup-guide/cover.webp"
 alt="Claude Code setup guide showing terminal installation and IDE integration"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;You&amp;rsquo;ve heard about Claude Code. Maybe you&amp;rsquo;ve seen the demos. Now you want to try it yourself.&lt;/p&gt;
&lt;p&gt;Good news: getting from zero to a working Claude Code setup takes about 10 minutes. This guide covers everything — installation, authentication, configuration, IDE integration, and running your first real task.&lt;/p&gt;
&lt;p&gt;By the end, you&amp;rsquo;ll have Claude Code working in your terminal and IDE, configured for your workflow, and ready to start coding with AI.&lt;/p&gt;</description></item><item><title>Build Your Own Claude Code from Scratch in Python (250 Lines)</title><link>http://www.heyuan110.com/posts/ai/2026-02-24-build-magic-code/</link><pubDate>Tue, 24 Feb 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-24-build-magic-code/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-02-24-build-magic-code/cover.webp"
 alt="MagicCode terminal AI coding assistant demo"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;You&amp;rsquo;ve probably used &lt;a href="http://www.heyuan110.com/posts/ai/2026-01-14-claude-code-guide/"&gt;Claude Code&lt;/a&gt; — or at least heard the hype. It reads your codebase, writes files, runs tests, and fixes bugs, all from a terminal prompt. It feels like magic.&lt;/p&gt;
&lt;p&gt;But here&amp;rsquo;s the thing: &lt;strong&gt;the core architecture behind it is surprisingly simple.&lt;/strong&gt; Simple enough that you can rebuild it from scratch in an afternoon with Python and about 250 lines of code.&lt;/p&gt;</description></item><item><title>Stanford CS146S Deep Dive (5): From Prototype to Production — The Full AI App Lifecycle</title><link>http://www.heyuan110.com/posts/ai/2026-02-24-prototype-to-production/</link><pubDate>Tue, 24 Feb 2026 09:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-24-prototype-to-production/</guid><description>&lt;blockquote&gt;
&lt;p&gt;This is Part 5 (the finale) of the &amp;ldquo;Stanford Vibe Coding Course Deep Dive&amp;rdquo; series. See the series navigation at the bottom.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;ldquo;Build an app with one prompt&amp;rdquo; — that&amp;rsquo;s probably the most eye-catching selling point of Vibe Coding.&lt;/p&gt;
&lt;p&gt;The Week 8 guest was Gaspar Garcia, Head of AI Research at Vercel. He demonstrated live how AI can generate a complete web application from a single prompt — frontend, backend, database, deployment — all in one shot.&lt;/p&gt;</description></item><item><title>Stanford CS146S Deep Dive (4): Secure Vibe Coding — AI Code Security Guide</title><link>http://www.heyuan110.com/posts/ai/2026-02-24-secure-vibe-coding/</link><pubDate>Tue, 24 Feb 2026 08:30:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-24-secure-vibe-coding/</guid><description>&lt;blockquote&gt;
&lt;p&gt;This is Part 4 of the &amp;ldquo;Stanford Vibe Coding Course Deep Dive&amp;rdquo; series. See the series navigation at the end of this article.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Weeks 6 and 7 of CS146S are the most spine-chilling weeks of the entire course.&lt;/p&gt;
&lt;p&gt;Week 6 covers security: when AI writes your code, who ensures it&amp;rsquo;s not vulnerable to attacks? Even scarier — what happens when the AI itself becomes the attack surface?&lt;/p&gt;
&lt;p&gt;Week 7 covers review: how much can we actually trust AI-generated code?&lt;/p&gt;</description></item><item><title>Stanford CS146S Deep Dive (3): Agent Manager — Best Practices for Human-AI Collaboration</title><link>http://www.heyuan110.com/posts/ai/2026-02-24-agent-manager-patterns/</link><pubDate>Tue, 24 Feb 2026 08:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-24-agent-manager-patterns/</guid><description>&lt;blockquote&gt;
&lt;p&gt;This is Part 3 of the &amp;ldquo;Stanford Vibe Coding Course Deep Dive&amp;rdquo; series. See the series navigation at the end of this article.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The title of CS146S Week 4 is &amp;ldquo;Coding Agent Patterns,&amp;rdquo; but what it really teaches is an entirely new professional skill: &lt;strong&gt;Agent Manager&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;What is an Agent Manager? Someone who doesn&amp;rsquo;t write code directly but directs AI Agents to write code. It might sound like being a &amp;ldquo;hands-off boss,&amp;rdquo; but in reality, this may be one of the hardest and most valuable skills of the AI coding era.&lt;/p&gt;</description></item><item><title>Context Engineering: The Most Underrated Core Skill in AI Programming (Stanford CS146S Deep Dive)</title><link>http://www.heyuan110.com/posts/ai/2026-02-24-context-engineering-deep-dive/</link><pubDate>Tue, 24 Feb 2026 07:30:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-24-context-engineering-deep-dive/</guid><description>&lt;blockquote&gt;
&lt;p&gt;This is Part 2 of the &amp;ldquo;Stanford Vibe Coding Course Deep Dive&amp;rdquo; series. See the series navigation at the end of this article.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;If I had to pick just one week from the entire 10-week CS146S curriculum for a deep dive, I would choose &lt;strong&gt;Week 3&lt;/strong&gt; without hesitation.&lt;/p&gt;
&lt;p&gt;Not because it is the flashiest &amp;ndash; that would be Week 8&amp;rsquo;s &amp;ldquo;build an app with one sentence.&amp;rdquo; Not because it is the most hardcore &amp;ndash; that would be Week 6&amp;rsquo;s security deep dive. It is because what Week 3 covers directly determines the ceiling of your AI programming capability.&lt;/p&gt;</description></item><item><title>Stanford CS146S Deep Dive (Part 1): How Vibe Coding Became a Real Academic Discipline</title><link>http://www.heyuan110.com/posts/ai/2026-02-24-stanford-cs146s-overview/</link><pubDate>Tue, 24 Feb 2026 07:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-24-stanford-cs146s-overview/</guid><description>&lt;p&gt;From Andrej Karpathy coining &lt;a href="http://www.heyuan110.com/posts/ai/2026-02-22-vibe-coding-guide/"&gt;Vibe Coding&lt;/a&gt; in a February 2025 tweet to Stanford officially launching CS146S that same fall — less than 8 months. A social media buzzword entering a top university&amp;rsquo;s curriculum this fast is almost unprecedented in the history of computer science.&lt;/p&gt;
&lt;p&gt;This is not some &amp;ldquo;learn to code with ChatGPT&amp;rdquo; fluff course. CS146S covers the full software engineering lifecycle — from LLM fundamentals to Agent architectures, from context engineering to security, from automated builds to production operations. Its guest speaker list reads like an AI coding hall of fame: the creator of Claude Code, Vercel&amp;rsquo;s Head of AI Research, Semgrep&amp;rsquo;s CEO, an a16z general partner&amp;hellip;&lt;/p&gt;</description></item><item><title>OpenClaw Multi-Agent Guide: Architecture, Configuration, and Collaboration Patterns</title><link>http://www.heyuan110.com/posts/ai/2026-02-23-openclaw-multi-agent-guide/</link><pubDate>Mon, 23 Feb 2026 17:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-23-openclaw-multi-agent-guide/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-02-23-openclaw-multi-agent-guide/cover.webp"
 alt="OpenClaw Multi-Agent Collaboration Architecture Guide Cover"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;Have you ever had this experience: your AI assistant starts &amp;ldquo;losing its mind&amp;rdquo; mid-conversation &amp;ndash; you ask it to write a blog post, and it suddenly spits out code logic; you ask it to research competitors, and it starts correcting typos from last week?&lt;/p&gt;
&lt;p&gt;The AI didn&amp;rsquo;t get dumber. You&amp;rsquo;re just making one &amp;ldquo;brain&amp;rdquo; do too many jobs. It&amp;rsquo;s like asking the front desk receptionist to also handle accounting, HR, and engineering &amp;ndash; nobody ends up doing anything well.&lt;/p&gt;</description></item><item><title>2026 Agentic Coding Trends: 8 Key Insights Behind Claude Code $2.5B ARR</title><link>http://www.heyuan110.com/posts/ai/2026-02-23-agentic-coding-trends-2026/</link><pubDate>Mon, 23 Feb 2026 14:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-23-agentic-coding-trends-2026/</guid><description>&lt;p&gt;6 months. $1 billion.&lt;/p&gt;
&lt;p&gt;This isn&amp;rsquo;t the story of some consumer app — it&amp;rsquo;s the record set by a command-line tool: Claude Code, rewriting the rules of B2B software. By February 2026, that number had soared to &lt;strong&gt;$2.5 billion in annualized revenue (ARR)&lt;/strong&gt;, while its parent company Anthropic saw overall ARR leap from $1B to &lt;strong&gt;$14 billion&lt;/strong&gt; in just 14 months — a 14x increase.&lt;/p&gt;
&lt;p&gt;This is growth unprecedented in B2B software history. This article provides a deep dive into Anthropic&amp;rsquo;s latest Agentic Coding trends report, breaking down the 8 major trends, market landscape, and developer adoption data driving this revolution.&lt;/p&gt;</description></item><item><title>MCP Security Guide: Attack Patterns, Real CVEs, and Defense Strategies for AI Agents</title><link>http://www.heyuan110.com/posts/ai/2026-02-23-mcp-security-guide/</link><pubDate>Mon, 23 Feb 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-23-mcp-security-guide/</guid><description>&lt;p&gt;&lt;strong&gt;518 official MCP Servers, 41% lacking authentication.&lt;/strong&gt; This is not a hypothetical threat model — it is real data from a February 2026 security audit.&lt;/p&gt;
&lt;p&gt;The MCP (Model Context Protocol) registry exploded from 90 servers to 518 in just one month. The ecosystem is expanding far faster than its security infrastructure can keep up. While developers eagerly plug MCP Servers into their AI agents, attackers are watching the same door.&lt;/p&gt;</description></item><item><title>Build an MCP Server with Claude Code: TypeScript Tutorial (2026)</title><link>http://www.heyuan110.com/posts/ai/2026-02-22-claude-code-mcp-server-tutorial/</link><pubDate>Sun, 22 Feb 2026 12:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-22-claude-code-mcp-server-tutorial/</guid><description>&lt;p&gt;&lt;strong&gt;MCP Servers&lt;/strong&gt; are becoming the backbone of the AI tool ecosystem in 2026. Gartner predicts that 40% of enterprise applications will embed AI agents by end of year. &lt;strong&gt;Claude Code&lt;/strong&gt;, one of the most capable AI coding tools available today, doubles as a full-featured MCP client. Learning to build MCP Servers means learning to extend what AI can do.&lt;/p&gt;
&lt;p&gt;This tutorial walks you through building a complete MCP Server from scratch using Claude Code and TypeScript &amp;ndash; from project initialization to debugging and publishing.&lt;/p&gt;</description></item><item><title>Claude Code Security: How AI-Powered Code Scanning Changes Everything (2026)</title><link>http://www.heyuan110.com/posts/ai/2026-02-22-claude-code-security/</link><pubDate>Sun, 22 Feb 2026 11:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-22-claude-code-security/</guid><description>&lt;p&gt;On February 20, 2026, Anthropic launched &lt;strong&gt;Claude Code Security&lt;/strong&gt; — an AI-powered code security scanner built on Claude Opus 4.6. The market reaction was immediate and dramatic: CrowdStrike dropped nearly 8%, Cloudflare fell over 8%, Okta slid 9.2%, and the Global X Cybersecurity ETF hit its lowest point since November 2023. Bloomberg, Fortune, and The Hacker News all covered the story, calling it a direct challenge from AI to the traditional security industry.&lt;/p&gt;</description></item><item><title>Claude Code February 2026 Updates: Worktree, Background Agents, Simple Mode</title><link>http://www.heyuan110.com/posts/ai/2026-02-22-claude-code-february-updates/</link><pubDate>Sun, 22 Feb 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-22-claude-code-february-updates/</guid><description>&lt;p&gt;Claude Code released over a dozen versions in February 2026 (v2.1.39 through v2.1.50), introducing several features that fundamentally change how you work. This article covers the most important updates, explains how to use each one, and highlights the practical scenarios where they shine.&lt;/p&gt;
&lt;h2 id="git-worktree-support-the-biggest-workflow-upgrade"&gt;Git Worktree Support: The Biggest Workflow Upgrade&lt;a href="#git-worktree-support-the-biggest-workflow-upgrade" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;This is the headline feature of February, shipped in v2.1.49. It brings Git&amp;rsquo;s worktree capability directly into Claude Code, making parallel development remarkably simple.&lt;/p&gt;</description></item><item><title>Vibe Coding Guide 2026: What It Is, Best Tools, and How to Start</title><link>http://www.heyuan110.com/posts/ai/2026-02-22-vibe-coding-guide/</link><pubDate>Sun, 22 Feb 2026 09:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-22-vibe-coding-guide/</guid><description>&lt;p&gt;In 2026, if you follow the AI coding space, one term is impossible to ignore: &lt;strong&gt;Vibe Coding&lt;/strong&gt;. From a single tweet to the Collins Dictionary Word of the Year shortlist and MIT Technology Review&amp;rsquo;s Top 10 Breakthrough Technologies, Vibe Coding has evolved from a niche concept into a mainstream development practice. Statistics show that 91% of engineering organizations have adopted at least one AI coding tool, and Vibe Coding is the most emblematic idea driving this transformation.&lt;/p&gt;</description></item><item><title>Claude Code Agent Teams 2026: Parallel Multi-Agent Development (With Cost Optimization)</title><link>http://www.heyuan110.com/posts/ai/2026-02-22-claude-code-agent-teams/</link><pubDate>Sun, 22 Feb 2026 08:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-22-claude-code-agent-teams/</guid><description>&lt;p&gt;On February 5, Anthropic shipped &lt;strong&gt;Claude Code Agent Teams&lt;/strong&gt; alongside Claude Opus 4.6 — an experimental feature that lets multiple Claude Code instances form a team and work in parallel. If Subagents are errand runners you send out on focused tasks, Agent Teams are an engineering squad whose members can discuss, coordinate, and challenge each other in real time. For complex scenarios involving cross-module development, multi-perspective code review, or parallel debugging, Agent Teams can compress hours of serial work into minutes.&lt;/p&gt;</description></item><item><title>AI Agent Memory Systems: RAG vs Context Engineering</title><link>http://www.heyuan110.com/posts/ai/2026-02-21-ai-agent-memory-systems/</link><pubDate>Sat, 21 Feb 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-21-ai-agent-memory-systems/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-02-21-ai-agent-memory-systems/cover.webp"
 alt="AI agent memory systems compared: RAG retrieval pipelines versus context engineering approaches for LLM agents"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;Every AI coding agent has a fundamental problem: &lt;strong&gt;amnesia&lt;/strong&gt;. Start a new session with Claude Code, Cursor, or any LLM-powered tool, and it has zero memory of yesterday&amp;rsquo;s work. The architecture decisions you spent two hours discussing, the bug you finally tracked down, the coding conventions you carefully established — all gone.&lt;/p&gt;
&lt;p&gt;This is not a bug. It is how large language models work. Each session starts with a blank context window, and when that window fills up or the session ends, everything evaporates.&lt;/p&gt;</description></item><item><title>Claude Code Worktree: Run Multiple AI Tasks in One Repo</title><link>http://www.heyuan110.com/posts/ai/2026-02-20-claude-code-worktree/</link><pubDate>Fri, 20 Feb 2026 12:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-20-claude-code-worktree/</guid><description>&lt;p&gt;Have you ever run into these situations?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Claude is halfway through a feature when an urgent production bug comes in. You have to &lt;code&gt;git stash&lt;/code&gt; your half-done work or force-commit a messy WIP.&lt;/li&gt;
&lt;li&gt;You want Claude to work on two things at once &amp;ndash; one building a new feature, the other writing tests &amp;ndash; but both sessions edit the same files and create conflicts.&lt;/li&gt;
&lt;li&gt;You want to try a risky refactor but worry about messing up your working directory beyond recovery.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The root cause is simple: &lt;strong&gt;one working directory can only support one in-progress task&lt;/strong&gt;. Switching branches isolates Git history, but the file system is shared. Two Claude sessions operating on the same directory will inevitably step on each other.&lt;/p&gt;</description></item><item><title>MCP Protocol Explained: The Universal Standard for AI Integration</title><link>http://www.heyuan110.com/posts/ai/2026-02-20-mcp-protocol-guide/</link><pubDate>Fri, 20 Feb 2026 11:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-20-mcp-protocol-guide/</guid><description>&lt;p&gt;When AI models need to query databases, call APIs, or read files, every provider used to have its own proprietary integration approach. Developers were forced to rewrite integration code for each platform. MCP (Model Context Protocol) changed everything — often called the &amp;ldquo;USB-C for AI,&amp;rdquo; it provides a universal open standard for connecting AI applications to external systems.&lt;/p&gt;
&lt;p&gt;Since Anthropic&amp;rsquo;s initial release in November 2024, MCP has evolved from an internal experiment into an industry standard. It has been donated to the Linux Foundation and gained backing from OpenAI, Google, Microsoft, and others. SDK downloads exceed 97 million per month, over 10,000 MCP Servers are publicly available, and virtually every major AI platform now supports the protocol.&lt;/p&gt;</description></item><item><title>Xcode 26.3 Agentic Coding: Claude Agent &amp; Codex in Apple IDE</title><link>http://www.heyuan110.com/posts/ai/2026-02-20-xcode-agentic-coding/</link><pubDate>Fri, 20 Feb 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-20-xcode-agentic-coding/</guid><description>&lt;p&gt;On February 3, 2026, Apple released Xcode 26.3 Release Candidate, officially introducing &lt;strong&gt;Agentic Coding&lt;/strong&gt; to its flagship IDE. This is a landmark moment for Apple&amp;rsquo;s developer tools — developers can now use Anthropic&amp;rsquo;s Claude Agent and OpenAI&amp;rsquo;s Codex directly inside Xcode, letting AI agents autonomously plan, code, build, and test entire features.&lt;/p&gt;
&lt;p&gt;This goes far beyond code completion or chat-based assistance. Unlike the AI features in Xcode 26, Agentic Coding gives AI the ability to &lt;strong&gt;make decisions and take action independently&lt;/strong&gt; — it can understand your project architecture, search Apple documentation, modify multiple files, trigger builds and tests, and even capture Xcode Previews screenshots to visually verify that the UI matches design intent before iterating further.&lt;/p&gt;</description></item><item><title>Figma Code to Canvas: Turn AI-Generated Code into Editable Designs</title><link>http://www.heyuan110.com/posts/ai/2026-02-19-figma-code-to-canvas/</link><pubDate>Thu, 19 Feb 2026 11:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-19-figma-code-to-canvas/</guid><description>&lt;p&gt;On February 17, 2026, Figma and Anthropic jointly announced &lt;strong&gt;Code to Canvas&lt;/strong&gt; — a feature that converts UI built with Claude Code into fully editable Figma frames. Not screenshots. Not flat images. Real, manipulable vector layers with preserved text, spacing, and color properties.&lt;/p&gt;
&lt;p&gt;The significance is hard to overstate. Before this, when AI generated a polished front-end interface, designers who wanted to iterate on it in Figma had two options: screenshot and manually rebuild, or wrestle with the code directly. Now, a single command — &amp;ldquo;Send this to Figma&amp;rdquo; — transforms running code into something designers can drag, rearrange, annotate, and refine using the tools they already know.&lt;/p&gt;</description></item><item><title>Claude Code vs Codex CLI (2026): 8-Dimension Head-to-Head Comparison</title><link>http://www.heyuan110.com/posts/ai/2026-02-19-claude-code-vs-codex/</link><pubDate>Thu, 19 Feb 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-19-claude-code-vs-codex/</guid><description>&lt;p&gt;In February 2026, the AI coding tool race reached a fever pitch. Anthropic shipped Claude Opus 4.6 with Agent Teams multi-agent collaboration. OpenAI launched GPT-5.3-Codex, transforming Codex from a code generation tool into a full-stack development agent. Major outlets like Fortune and Tom&amp;rsquo;s Guide rushed to compare them, and developer communities have been buzzing ever since.&lt;/p&gt;
&lt;p&gt;As a heavy Claude Code user since early 2025 and someone who has spent the past few weeks putting Codex through its paces, I am going to break down both tools across eight dimensions so you can make an informed choice.&lt;/p&gt;</description></item><item><title>Claude Code vs Cursor vs Windsurf 2026: Speed, Cost &amp; Control</title><link>http://www.heyuan110.com/posts/ai/2026-02-18-claude-code-vs-cursor-vs-windsurf-2026/</link><pubDate>Wed, 18 Feb 2026 22:16:52 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-18-claude-code-vs-cursor-vs-windsurf-2026/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-02-18-claude-code-vs-cursor-vs-windsurf-2026/cover.webp"
 alt="Cover image comparing Claude Code, Cursor, and Windsurf across speed, cost, and controllability"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;If you just want the bottom line: &lt;strong&gt;pick Cursor for team collaboration and stable delivery, Claude Code for terminal-heavy development and automation, and Windsurf for rapid frontend/full-stack prototyping&lt;/strong&gt;. This article tackles a real problem — there are too many AI coding tools in 2026, and you need a practical framework to choose by speed, cost, and controllability rather than following hype.&lt;/p&gt;</description></item><item><title>Claude Code Hooks Guide: 12 Ready-to-Use Configs for Automation</title><link>http://www.heyuan110.com/posts/ai/2026-02-18-claude-code-hooks-guide/</link><pubDate>Wed, 18 Feb 2026 11:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-18-claude-code-hooks-guide/</guid><description>&lt;p&gt;If you use Claude Code daily, you have probably run into these problems:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Claude edits a file and the formatting is a mess &amp;ndash; you have to manually run &lt;code&gt;prettier&lt;/code&gt; every time&lt;/li&gt;
&lt;li&gt;Claude accidentally modifies &lt;code&gt;.env&lt;/code&gt; or &lt;code&gt;package-lock.json&lt;/code&gt;, and you only notice when it is too late&lt;/li&gt;
&lt;li&gt;Claude says &amp;ldquo;done!&amp;rdquo; but the tests were never run&lt;/li&gt;
&lt;li&gt;You step away to grab coffee and have no idea whether Claude is waiting for your input&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The root cause is simple: &lt;strong&gt;Claude is probabilistic, but your workflow needs deterministic guarantees&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>MoltBot Explained: What It Is, How It Works, and Why It Renamed to OpenClaw</title><link>http://www.heyuan110.com/posts/ai/2026-02-18-what-is-moltbot/</link><pubDate>Wed, 18 Feb 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-18-what-is-moltbot/</guid><description>&lt;p&gt;If you have been seeing &amp;ldquo;MoltBot&amp;rdquo; pop up across tech communities and wondering what all the fuss is about, this article is for you.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;In one sentence: MoltBot (now renamed OpenClaw) is an open-source personal AI agent that runs on your own machine, takes commands through Telegram, WhatsApp, and other chat platforms, and actually executes tasks on your computer.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;It is not just another chatbot. It is an AI assistant that can take action. Below, we will break down exactly what MoltBot is, how it works, and whether you should use it.&lt;/p&gt;</description></item><item><title>Claude Code + Draw Things: Local AI Image Generation on Mac (2026 Guide)</title><link>http://www.heyuan110.com/posts/ai/2026-02-16-claude-code-draw-things-workflow/</link><pubDate>Mon, 16 Feb 2026 18:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-16-claude-code-draw-things-workflow/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-02-16-claude-code-draw-things-workflow/cover.webp"
 alt="Claude Code &amp;#43; Draw Things: Local AI Image Generation on Mac"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;What is the most tedious part of writing a technical blog? It is not the code samples or the logic — it is &lt;strong&gt;finding and creating images&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Every article might cost you 30 minutes to an hour hunting for stock photos, generating images, and resizing them. Midjourney starts at $10/month and requires juggling Discord. DALL-E burns through API credits. Free stock images are generic and forgettable.&lt;/p&gt;</description></item><item><title>OpenClaw 30-Day Rise: 180K Stars, 40+ Vulnerabilities, OpenAI Acquisition</title><link>http://www.heyuan110.com/posts/ai/2026-02-16-openclaw-openai-analysis/</link><pubDate>Mon, 16 Feb 2026 17:14:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-16-openclaw-openai-analysis/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-02-16-openclaw-openai-analysis/cover.webp"
 alt="OpenClaw&amp;rsquo;s 30-day rise: from open-source AI agent to OpenAI acquisition"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;In January 2026, an Austrian developer released an open-source AI agent called Clawdbot. Thirty days later, it had been renamed three times, collected 180K GitHub stars, patched over 40 security vulnerabilities, spawned the world&amp;rsquo;s first AI-only social network — and its creator had been hired by Sam Altman.&lt;/p&gt;
&lt;p&gt;This is not science fiction. This is the true story of OpenClaw.&lt;/p&gt;</description></item><item><title>Draw Things Ultimate Guide: Local AI Image Generation on Mac</title><link>http://www.heyuan110.com/posts/ai/2026-02-15-draw-things-ultimate-guide/</link><pubDate>Sun, 15 Feb 2026 01:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-15-draw-things-ultimate-guide/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-02-15-draw-things-ultimate-guide/cover.webp"
 alt="Draw Things Ultimate Guide: Local AI Image Generation on Mac cover image"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;Your Mac is a &lt;strong&gt;free AI art workstation&lt;/strong&gt; — no Midjourney subscription, no cloud uploads, no privacy concerns. All you need is a free app called &lt;strong&gt;Draw Things&lt;/strong&gt;, and you can generate any style of AI image locally on your Mac.&lt;/p&gt;
&lt;p&gt;Most people stop at &amp;ldquo;install it, type a prompt, hit generate.&amp;rdquo; But Draw Things goes far deeper: &lt;strong&gt;local LoRA training, JavaScript scripting for batch automation, ControlNet for precise control, and MCP integration that lets Claude Code generate images directly&lt;/strong&gt;. Even long-time users miss these capabilities.&lt;/p&gt;</description></item><item><title>Mac Mini M4 AI Image Generation: ComfyUI vs Draw Things (50s Flux Benchmark)</title><link>http://www.heyuan110.com/posts/ai/2026-02-15-mac-mini-local-image-generation/</link><pubDate>Sun, 15 Feb 2026 00:30:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-15-mac-mini-local-image-generation/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-02-15-mac-mini-local-image-generation/cover.webp"
 alt="Mac Mini M4 local AI image generation tool comparison: ComfyUI, DiffusionBee, Draw Things"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;In 2026, &lt;strong&gt;local AI image generation on a Mac Mini M4&lt;/strong&gt; is not just possible — it&amp;rsquo;s practical. A 24GB Mac Mini M4 Pro can generate a 1024×1024 image with Flux in about 50 seconds, with zero API costs and all data staying on your machine.&lt;/p&gt;
&lt;p&gt;But which tool should you use? I benchmarked &lt;strong&gt;ComfyUI, DiffusionBee, and Draw Things&lt;/strong&gt; on my Mac Mini M4 Pro, running hundreds of generations and tracking speed, memory usage, and real-world experience. The results: one tool has been abandoned, and another outperforms ComfyUI by over 20% on Apple Silicon.&lt;/p&gt;</description></item><item><title>OpenClaw Architecture Deep Dive: How Automation Actually Works</title><link>http://www.heyuan110.com/posts/ai/2026-02-14-openclaw-architecture-deep-dive/</link><pubDate>Sat, 14 Feb 2026 08:10:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-14-openclaw-architecture-deep-dive/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-02-14-openclaw-architecture-deep-dive/cover.webp"
 alt="OpenClaw architecture deep dive cover: how automation actually happens"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;Many &amp;ldquo;AI assistants&amp;rdquo; can do things on demand, but when you try to run one as a &lt;strong&gt;24/7, cross-device, auditable production system&lt;/strong&gt;, the real questions surface quickly:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;How can it receive messages from Telegram, WhatsApp, and web simultaneously?&lt;/li&gt;
&lt;li&gt;How can a single instruction trigger a browser, write files, run commands, and even take a photo on your phone?&lt;/li&gt;
&lt;li&gt;How can it proactively report back on a schedule without flooding your chat?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;OpenClaw&amp;rsquo;s answer is not &amp;ldquo;a smarter model.&amp;rdquo; It is an engineering architecture built on a &lt;strong&gt;clear control plane (Gateway) + pluggable execution layer (Skills/Tools/Nodes) + persistent scheduling (Heartbeat/Cron)&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>OpenClaw Automation Pitfalls: Installing 3 Skills Is Not Enough</title><link>http://www.heyuan110.com/posts/ai/2026-02-14-openclaw-automation-pitfalls/</link><pubDate>Sat, 14 Feb 2026 07:32:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-14-openclaw-automation-pitfalls/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-02-14-openclaw-automation-pitfalls/cover.webp"
 alt="OpenClaw automation configuration and team collaboration best practices"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;You have probably seen this recommendation floating around in every OpenClaw community:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;clawdhub install tavily-search
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;clawdhub install find-skills
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;clawdhub install proactive-agent &lt;span class="c1"&gt;# formerly proactive-agent-1-2-4, renamed&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Important update (2026-02)&lt;/strong&gt;: Many tutorials still reference &lt;code&gt;clawhub install proactive-agent-1-2-4&lt;/code&gt;. Two things to watch out for:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;CLI name&lt;/strong&gt;: The correct tool is &lt;strong&gt;&lt;code&gt;clawdhub&lt;/code&gt;&lt;/strong&gt; (with a &amp;ldquo;d&amp;rdquo;), not &lt;code&gt;clawhub&lt;/code&gt;. Install it via &lt;code&gt;npm i -g clawdhub&lt;/code&gt;. It is the official CLI for &lt;a href="https://clawhub.ai/"&gt;ClawHub&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Skill rename&lt;/strong&gt;: &lt;code&gt;proactive-agent-1-2-4&lt;/code&gt; no longer exists on ClawHub. The author &lt;a href="https://clawhub.ai/halthelobster/proactive-agent"&gt;halthelobster&lt;/a&gt; has &lt;strong&gt;renamed it to &lt;code&gt;proactive-agent&lt;/code&gt;&lt;/strong&gt; (currently v3.1.0). Running the old install command will return a &amp;ldquo;Skill not found&amp;rdquo; error. Use &lt;code&gt;clawdhub install proactive-agent&lt;/code&gt; instead.&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;ldquo;Give your agent eyes, a toolbox, and initiative &amp;mdash; experience takes off.&amp;rdquo;&lt;/p&gt;</description></item><item><title>Codex CLI Mastery Guide: 20+ Power Tips for Real-World Development</title><link>http://www.heyuan110.com/posts/ai/2026-02-12-codex-cli-mastery-guide/</link><pubDate>Thu, 12 Feb 2026 16:02:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-12-codex-cli-mastery-guide/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-02-12-codex-cli-mastery-guide/cover.webp"
 alt="Codex CLI mastery guide: 20&amp;#43; power tips cover image"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;Most Codex CLI tutorials out there simply restate the official docs — listing commands without explaining when to use them, how to combine them, or what pitfalls to avoid.&lt;/p&gt;
&lt;p&gt;This guide is different. It starts from real development scenarios and goes beyond the basics, covering the configuration hierarchy, the philosophy behind Codex&amp;rsquo;s security model, an honest comparison with Claude Code, and advanced techniques the docs barely mention.&lt;/p&gt;</description></item><item><title>OpenClaw Tutorial: Complete Setup Guide for Beginners and Power Users</title><link>http://www.heyuan110.com/posts/ai/2026-02-12-openclaw-usage-tutorial/</link><pubDate>Thu, 12 Feb 2026 07:36:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-12-openclaw-usage-tutorial/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-02-12-openclaw-usage-tutorial/cover.webp"
 alt="OpenClaw complete tutorial cover"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;Want a personal AI assistant that runs 24/7 and responds instantly on Telegram, WhatsApp, or Discord? &lt;a href="https://github.com/openclaw/openclaw"&gt;OpenClaw&lt;/a&gt; is an open-source AI Agent gateway built exactly for this. This guide takes you from zero to proficient — whether you are a complete beginner or a power user looking to unlock multi-agent workflows.&lt;/p&gt;
&lt;h2 id="openclaw--moltbot--clawdbot--same-project-different-names"&gt;OpenClaw / Moltbot / Clawdbot — Same Project, Different Names&lt;a href="#openclaw--moltbot--clawdbot--same-project-different-names" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;If you have seen three different names floating around, here is the short version: they are all the same project at different stages.&lt;/p&gt;</description></item><item><title>Claude-Mem Deep Dive: Persistent Memory Plugin for Claude Code</title><link>http://www.heyuan110.com/posts/ai/2026-02-03-claude-mem-deep-dive/</link><pubDate>Tue, 03 Feb 2026 00:23:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-03-claude-mem-deep-dive/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-02-03-claude-mem-deep-dive/cover.webp"
 alt="Claude-Mem architecture diagram showing the persistent memory plugin for Claude Code"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;The most frustrating thing about Claude Code is not when it writes bad code. It is when &lt;strong&gt;every new session starts with a blank slate&lt;/strong&gt;. The architecture discussion from yesterday, the bug you spent two hours tracking down, the coding conventions you agreed on — all gone. You end up repeating context over and over, like introducing yourself every morning to someone with amnesia.&lt;/p&gt;</description></item><item><title>Moltbook Explained: The AI-Only Social Network With 150K Agents</title><link>http://www.heyuan110.com/posts/ai/2026-02-01-moltbook-ai-agent-social-network/</link><pubDate>Sun, 01 Feb 2026 17:30:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-01-moltbook-ai-agent-social-network/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-02-01-moltbook-ai-agent-social-network/cover.webp"
 alt="Moltbook: An AI-only social network where 150,000 agents autonomously created religions, formed governments, and debated consciousness"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;In the last week of January 2026, the entire AI community was talking about one thing: &lt;strong&gt;a swarm of AI agents on a platform called Moltbook spontaneously created religions, formed governments, and launched deep debates about the nature of consciousness&lt;/strong&gt;. Former OpenAI researcher Andrej Karpathy called it &amp;ldquo;the most incredible, closest-to-sci-fi-takeoff thing&amp;rdquo; he had ever seen. AI researcher Simon Willison flatly declared it &amp;ldquo;the most interesting place on the internet right now.&amp;rdquo;&lt;/p&gt;</description></item><item><title>Superpowers Deep Dive: The Skills Framework That Makes Claude Code a Senior Engineer</title><link>http://www.heyuan110.com/posts/ai/2026-02-01-superpowers-deep-dive/</link><pubDate>Sun, 01 Feb 2026 17:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-02-01-superpowers-deep-dive/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-02-01-superpowers-deep-dive/cover.webp"
 alt="Superpowers Deep Dive"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;Have you ever asked Claude Code to build a feature, only to watch it immediately start writing code with no tests, no plan, and questionable logic &amp;ndash; forcing you to course-correct over multiple rounds?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The problem isn&amp;rsquo;t AI capability. It&amp;rsquo;s the lack of a structured workflow.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/obra/superpowers"&gt;Superpowers&lt;/a&gt; was built to solve exactly this. Created by Jesse Vincent (GitHub: &lt;a href="https://github.com/obra"&gt;obra&lt;/a&gt;), it&amp;rsquo;s an &lt;strong&gt;agentic skills framework&lt;/strong&gt; that uses composable &lt;strong&gt;Skills&lt;/strong&gt; and a strict development methodology to transform Claude Code from a &amp;ldquo;write code on demand&amp;rdquo; assistant into a &amp;ldquo;disciplined senior developer.&amp;rdquo;&lt;/p&gt;</description></item><item><title>OpenClaw Claude Code Workflow: How One Dev Built a 100K-Star Project</title><link>http://www.heyuan110.com/posts/ai/2026-01-31-openclaw-claude-code-workflow/</link><pubDate>Sat, 31 Jan 2026 22:50:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-01-31-openclaw-claude-code-workflow/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-01-31-openclaw-claude-code-workflow/cover.webp"
 alt="OpenClaw Claude Code development methodology: documentation-driven, multi-agent parallel development"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;A project recently took the developer world by storm — &lt;strong&gt;OpenClaw&lt;/strong&gt; (formerly Clawdbot), an open-source AI assistant that hit 60K GitHub stars in 72 hours, attracted 2 million visitors in a week, and has now surpassed &lt;strong&gt;100K stars&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The most striking part is not how popular it became, but that there is only &lt;strong&gt;one person&lt;/strong&gt; behind it — Austrian developer Peter Steinberger (&lt;a href="https://github.com/steipete"&gt;@steipete&lt;/a&gt;). No team, no crunch time. He relied entirely on Claude Code and Codex CLI, running 5-10 agents in parallel and averaging &lt;strong&gt;600+ commits per day&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>22 Thinking Frameworks That Turn Vague Ideas Into Clear Requirements</title><link>http://www.heyuan110.com/posts/ai/2026-01-31-thinking-methodologies-guide/</link><pubDate>Sat, 31 Jan 2026 22:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-01-31-thinking-methodologies-guide/</guid><description>&lt;p&gt;&amp;ldquo;Build me a user management system.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;You hand that sentence to an AI, and it spits out a pile of code. You open it up and it is nothing like what you had in mind. Or you spend thirty minutes explaining requirements to a colleague, only to discover you were talking about completely different things.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The problem is not that the AI is not smart enough, or that your colleague is not cooperating. The problem is that the requirement was too vague.&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Unit Test Report Tools: Framework Comparison, Coverage Strategy &amp; AI Workflow</title><link>http://www.heyuan110.com/posts/ai/2026-01-31-unit-test-report-tools/</link><pubDate>Sat, 31 Jan 2026 18:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-01-31-unit-test-report-tools/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-01-31-unit-test-report-tools/cover.webp"
 alt="Unit Test Report Tools: Framework Comparison, Coverage Strategy &amp;amp; AI Workflow"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;You wrote a bunch of unit tests, CI ran them, and then&amp;hellip; a JSON file sits there untouched. Nobody looks at it.&lt;/p&gt;
&lt;p&gt;This is the reality for many teams &amp;ndash; plenty of tests written, but reports that serve no purpose. A test report is not a byproduct of running tests. It is &lt;strong&gt;the data source for quality decisions&lt;/strong&gt;. Which modules have low coverage? Which tests keep failing? Are there regression gaps? The answers to these questions live in your test reports.&lt;/p&gt;</description></item><item><title>CLAUDE.md vs README.md: Why Your AI Agent Needs Its Own Instruction File</title><link>http://www.heyuan110.com/posts/ai/2026-01-31-claudemd-vs-readme/</link><pubDate>Sat, 31 Jan 2026 06:00:02 +0000</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-01-31-claudemd-vs-readme/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-01-31-claudemd-vs-readme/cover.webp"
 alt="CLAUDE.md vs README.md"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="670"
/&gt;
&lt;/p&gt;
&lt;h2 id="your-ai-and-your-team-are-reading-the-same-file"&gt;Your AI and Your Team Are Reading the Same File&lt;a href="#your-ai-and-your-team-are-reading-the-same-file" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;When you open a project with Claude Code, the first thing it reads is &lt;code&gt;CLAUDE.md&lt;/code&gt;. When your teammate opens the same project, the first thing they read is &lt;code&gt;README.md&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>High-Frequency Commits: Engineering Practices for 100+ Commits per Day</title><link>http://www.heyuan110.com/posts/ai/2026-01-31-high-frequency-commits-strategy/</link><pubDate>Sat, 31 Jan 2026 09:10:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-01-31-high-frequency-commits-strategy/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-01-31-high-frequency-commits-strategy/cover.webp"
 alt="Engineering practices for high-frequency commits and stable delivery"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;With AI coding tools accelerating development speed, many teams are hitting a new normal: &lt;strong&gt;dozens to hundreds of commits per day&lt;/strong&gt;. The question becomes sharp: why do some projects get faster while others spiral into chaos?&lt;/p&gt;
&lt;p&gt;This article does not argue whether you should slow down. Instead, it focuses on the engineering system: &lt;strong&gt;when commit frequency skyrockets, how do you keep your product under control?&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>OpenClaw Memory Strategy: Tool-Driven RAG and On-Demand Recall</title><link>http://www.heyuan110.com/posts/ai/2026-01-31-openclaw-memory-strategy/</link><pubDate>Sat, 31 Jan 2026 08:20:18 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-01-31-openclaw-memory-strategy/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-01-31-openclaw-memory-strategy/cover.webp"
 alt="OpenClaw memory strategy overview"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1600"
 height="900"
/&gt;
&lt;/p&gt;
&lt;h2 id="why-memory-matters-for-ai-agents"&gt;Why Memory Matters for AI Agents&lt;a href="#why-memory-matters-for-ai-agents" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Modern AI agents need more than conversation ability. Users expect agents to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Remember who you are&lt;/strong&gt; — your preferences, project context, and past interactions&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Use that knowledge when it matters&lt;/strong&gt; — without stuffing everything into the context window every turn&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Many chatbot platforms solve this by maintaining a long-term user profile and injecting it into the system prompt on every request. It works, but it wastes tokens and scales poorly.&lt;/p&gt;</description></item><item><title>Delete Before You Optimize: 3 Product Thinking Rules for Solo Developers</title><link>http://www.heyuan110.com/posts/ai/2026-01-30-product-thinking-delete-first/</link><pubDate>Fri, 30 Jan 2026 10:30:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-01-30-product-thinking-delete-first/</guid><description>&lt;p&gt;What is the most common mistake people make when building products?&lt;/p&gt;
&lt;p&gt;It is not building too little. It is &lt;strong&gt;building too much&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;After years of building products, the biggest trap I fell into was not shipping bad features — it was spending weeks polishing a feature that should never have existed. This kind of &amp;ldquo;productive waste&amp;rdquo; is especially deadly for solo developers and solopreneurs. We do not have a big company&amp;rsquo;s resources to absorb mistakes. Every day spent on the wrong thing is a day we cannot get back.&lt;/p&gt;</description></item><item><title>AI Workflow Playbook: From Prompts to Production Code</title><link>http://www.heyuan110.com/posts/ai/2026-01-30-ai-workflow-real-guide/</link><pubDate>Fri, 30 Jan 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-01-30-ai-workflow-real-guide/</guid><description>&lt;p&gt;Most people have been using AI for months, yet they&amp;rsquo;re still stuck in &amp;ldquo;ask a question, get an answer&amp;rdquo; mode. They&amp;rsquo;ve had plenty of conversations with ChatGPT, but when it comes to real work, the results always feel lacking — answers are too generic, generated code won&amp;rsquo;t run, or the output screams &amp;ldquo;written by AI.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;The problem isn&amp;rsquo;t that AI is bad. It&amp;rsquo;s that &lt;strong&gt;we&amp;rsquo;re using it wrong&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;This article is a practical AI workflow methodology distilled from real-world experience — covering how to ask better questions, how to write effective prompts, how to use AI for programming, and how to deploy AI in enterprise settings. If you&amp;rsquo;re still figuring out how to make AI genuinely useful, this guide is for you.&lt;/p&gt;</description></item><item><title>Moltbot Explained: 80K Stars, Renaming Drama &amp; Security Guide</title><link>http://www.heyuan110.com/posts/ai/2026-01-29-moltbot-deep-dive/</link><pubDate>Thu, 29 Jan 2026 21:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-01-29-moltbot-deep-dive/</guid><description>&lt;p&gt;&lt;strong&gt;What is Moltbot?&lt;/strong&gt; In short, Moltbot is an open-source personal AI Agent that runs 24/7 on your computer, takes commands via Telegram, WhatsApp, or iMessage, and autonomously controls your browser, handles emails, and executes real tasks &amp;ndash; not just chatting, but actually doing work for you. Originally named Clawdbot, then briefly OpenClaw, it became one of the most explosive open-source AI projects of early 2026.&lt;/p&gt;
&lt;p&gt;In January 2026, a lobster shook the entire AI world. An open-source project called Clawdbot racked up 80,000+ GitHub stars in under a week, drove developers worldwide to panic-buy Mac Minis, and even sparked a cryptocurrency scam. Then, after a trademark request from Anthropic, it was forced to rename to &lt;strong&gt;Moltbot&lt;/strong&gt; (as in &amp;ldquo;molting&amp;rdquo; &amp;ndash; how lobsters grow). The community also uses &lt;strong&gt;OpenClaw&lt;/strong&gt; as an alternative name. The renaming controversy remains one of the most talked-about open-source events of the year.&lt;/p&gt;</description></item><item><title>Browser Automation in Claude Code: 5 Tools Compared (2026)</title><link>http://www.heyuan110.com/posts/ai/2026-01-28-claude-code-browser-automation/</link><pubDate>Wed, 28 Jan 2026 23:55:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-01-28-claude-code-browser-automation/</guid><description>&lt;p&gt;Writing code with AI is old news. The real game-changer is having AI &lt;strong&gt;control a browser&lt;/strong&gt; — opening pages, clicking buttons, filling forms, and scraping data — all from a single natural-language prompt.&lt;/p&gt;
&lt;p&gt;The Claude Code ecosystem now offers five mainstream browser automation options: &lt;strong&gt;Browser-use&lt;/strong&gt; (an AI-agent-native automation framework), &lt;strong&gt;Vercel&amp;rsquo;s Agent Browser&lt;/strong&gt;, &lt;strong&gt;Microsoft&amp;rsquo;s Playwright CLI&lt;/strong&gt; (new in 2026), &lt;strong&gt;Microsoft&amp;rsquo;s Playwright MCP&lt;/strong&gt;, and &lt;strong&gt;Google&amp;rsquo;s DevTools MCP&lt;/strong&gt;. Each excels in different scenarios, and picking the wrong one can cost you time and tokens.&lt;/p&gt;</description></item><item><title>Moltbot Wizard Setup Guide: Build Your Own Private AI Assistant</title><link>http://www.heyuan110.com/posts/ai/2026-01-28-moltbot-wizard-guide/</link><pubDate>Wed, 28 Jan 2026 23:30:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-01-28-moltbot-wizard-guide/</guid><description>&lt;p&gt;Imagine mentioning your AI in a group chat and having it book flights, check the weather, write code, and manage your schedule — all while remembering every conversation from last week. That is exactly what &lt;strong&gt;Moltbot&lt;/strong&gt; delivers: a fully self-hosted, private AI assistant you actually own.&lt;/p&gt;
&lt;p&gt;This guide walks you through the Moltbot Wizard — the interactive CLI that turns a complex multi-step setup into a few simple prompts.&lt;/p&gt;
&lt;h2 id="why-moltbot"&gt;Why Moltbot?&lt;a href="#why-moltbot" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="the-problem-with-existing-ai-assistants"&gt;The Problem with Existing AI Assistants&lt;a href="#the-problem-with-existing-ai-assistants" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;We all use AI assistants daily — ChatGPT, Claude, Gemini. But they share a fundamental limitation: &lt;strong&gt;you are a tenant, not the owner&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>AGI Is Here in 2026: Sequoia Capital Case Study and What It Means</title><link>http://www.heyuan110.com/posts/ai/2026-01-26-agi-is-here/</link><pubDate>Mon, 26 Jan 2026 11:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-01-26-agi-is-here/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-01-26-agi-is-here/cover.webp"
 alt="The AGI era has arrived"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="2752"
 height="1536"
/&gt;
&lt;/p&gt;
&lt;p&gt;On January 14, 2026, Sequoia Capital published a landmark blog post: &lt;strong&gt;&amp;ldquo;2026: This is AGI.&amp;rdquo;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The authors — Pat Grady (Sequoia&amp;rsquo;s co-managing partner with 19 years of investment experience) and Sonya Huang (Sequoia partner who spotted the AI megatrend back in 2022) — got straight to the point:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Long-horizon agents are functionally AGI, and 2026 will be their year.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This isn&amp;rsquo;t a random prediction from a tech blogger. It&amp;rsquo;s a formal assessment from one of the world&amp;rsquo;s most influential venture capital firms. Their conclusion is simple: &lt;strong&gt;Stop waiting. AGI is already here.&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Claude Code + Remotion: Generate Pro Videos with AI Conversations</title><link>http://www.heyuan110.com/posts/ai/2026-01-26-claude-code-remotion-video/</link><pubDate>Sun, 25 Jan 2026 00:00:00 +0000</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-01-26-claude-code-remotion-video/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-01-26-claude-code-remotion-video/cover.webp"
 alt="Claude Code &amp;#43; Remotion"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="919"
/&gt;
&lt;/p&gt;
&lt;h2 id="the-problem-every-developer-faces"&gt;The Problem Every Developer Faces&lt;a href="#the-problem-every-developer-faces" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Picture this scenario: your boss walks in and says, &amp;ldquo;We need a 30-second product demo video for next week&amp;rsquo;s launch event.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;You panic. You&amp;rsquo;ve never opened After Effects. Hiring a freelancer? No time, and it would cost at least a few hundred dollars.&lt;/p&gt;</description></item><item><title>ClawdBot Setup Guide: Build Your Personal AI Assistant in 30 Minutes</title><link>http://www.heyuan110.com/posts/ai/2026-01-25-clawdbot-personal-ai-assistant/</link><pubDate>Sun, 25 Jan 2026 00:00:00 +0000</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-01-25-clawdbot-personal-ai-assistant/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-01-25-clawdbot-personal-ai-assistant/cover.webp"
 alt="ClawdBot personal AI assistant setup guide"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="919"
/&gt;
&lt;/p&gt;
&lt;h2 id="what-if-you-had-a-247-ai-assistant"&gt;What If You Had a 24/7 AI Assistant?&lt;a href="#what-if-you-had-a-247-ai-assistant" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Picture this scenario:&lt;/p&gt;
&lt;p&gt;While you are still asleep, your AI assistant has already finished these tasks:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sorted through the 50 emails that came in overnight, flagging only 3 that need your personal reply&lt;/li&gt;
&lt;li&gt;Booked your flight for next week&amp;rsquo;s business trip and completed online check-in&lt;/li&gt;
&lt;li&gt;Summarized updates from all the newsletters you follow into a single morning briefing&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When you wake up and check your phone, your AI assistant sends you a message: &amp;ldquo;Good morning! You have an important meeting at 3 PM today. I have prepared the meeting materials for you.&amp;rdquo;&lt;/p&gt;</description></item><item><title>Docker Compose Tutorial: docker-compose.yml Explained with Real Examples (2026)</title><link>http://www.heyuan110.com/posts/docker/2026-01-24-docker-compose-yml-explained/</link><pubDate>Sat, 24 Jan 2026 00:00:00 +0000</pubDate><guid>http://www.heyuan110.com/posts/docker/2026-01-24-docker-compose-yml-explained/</guid><description>&lt;p&gt;Docker Compose is the go-to tool for running multi-container applications, and &lt;strong&gt;docker-compose.yml&lt;/strong&gt; (now officially &lt;code&gt;compose.yaml&lt;/code&gt;) is its configuration file. Whether you are picking up containers for the first time or brushing up on the finer details, this tutorial walks you through every field you will actually use.&lt;/p&gt;
&lt;p&gt;We will cover every key directive in compose.yaml — services, volumes, networks, ports, environment, healthcheck — and put them into practice with a WordPress + MySQL stack you can spin up in seconds. Pair this guide with the &lt;a href="http://www.heyuan110.com/posts/docker/2019-11-14-docker-commands/"&gt;Docker Command Cheat Sheet&lt;/a&gt; for an even smoother workflow.&lt;/p&gt;</description></item><item><title>Taste Matters More Than Ever in the AI Era: Your Only Moat</title><link>http://www.heyuan110.com/posts/ai/2026-01-23-taste-matters-in-ai-era/</link><pubDate>Fri, 23 Jan 2026 20:30:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-01-23-taste-matters-in-ai-era/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-01-23-taste-matters-in-ai-era/cover.webp"
 alt="Why taste matters in the AI era"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="675"
/&gt;
&lt;/p&gt;
&lt;p&gt;A designer friend recently told me something that stuck: &amp;ldquo;AI can generate an image in seconds, but it took me ten years to learn what makes an image good.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;That single observation captures a shift many people haven&amp;rsquo;t fully grasped yet: &lt;strong&gt;when &amp;ldquo;making things&amp;rdquo; becomes trivially easy, &amp;ldquo;choosing what to make&amp;rdquo; becomes the hardest part.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="the-barrier-to-creation-has-disappeared"&gt;The Barrier to Creation Has Disappeared&lt;a href="#the-barrier-to-creation-has-disappeared" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Think about how long it used to take to learn a craft.&lt;/p&gt;</description></item><item><title>Cloudflare Workers Complete Guide: Edge Computing from Setup to Production</title><link>http://www.heyuan110.com/posts/docker/2026-01-23-cloudflare-workers-guide/</link><pubDate>Fri, 23 Jan 2026 20:20:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/docker/2026-01-23-cloudflare-workers-guide/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/docker/2026-01-23-cloudflare-workers-guide/cover.webp"
 alt="Cloudflare Workers serverless platform official cover"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1801"
 height="1013"
/&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Cloudflare Workers&lt;/strong&gt; is an edge computing platform that lets you run code across 300+ data centers worldwide without managing any servers. Compared to traditional cloud hosting, Workers deploys faster, cold-starts in under 5 milliseconds, delivers consistently low latency globally, and comes with a &lt;strong&gt;remarkably generous free tier&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;This guide takes you from zero to production-ready: what Workers is, where it shines, how to develop and deploy, and several real-world projects you can use right away. Whether you are new to serverless or looking to optimize an existing architecture, you will find actionable takeaways here.&lt;/p&gt;</description></item><item><title>TypeScript Complete Guide: From Basics to Advanced Type System Mastery</title><link>http://www.heyuan110.com/posts/typescript/2026-01-23-typescript-complete-guide/</link><pubDate>Fri, 23 Jan 2026 20:07:08 +0800</pubDate><guid>http://www.heyuan110.com/posts/typescript/2026-01-23-typescript-complete-guide/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/typescript/2026-01-23-typescript-complete-guide/cover.webp"
 alt="TypeScript Complete Guide: From Basics to Advanced Type System Mastery"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="675"
/&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;TypeScript&lt;/strong&gt; is a typed superset of JavaScript that adds a static type system to the language. It catches errors at compile time, provides superior IDE support, and makes code significantly easier to maintain. This guide walks through every core concept in TypeScript — from fundamental syntax to advanced type-level programming — so you can go from beginner to expert.&lt;/p&gt;</description></item><item><title>MySQL SQL Complete Guide: From Beginner to Advanced (With Interview Questions)</title><link>http://www.heyuan110.com/posts/mysql/2026-01-23-mysql-sql-complete-guide/</link><pubDate>Fri, 23 Jan 2026 20:06:36 +0800</pubDate><guid>http://www.heyuan110.com/posts/mysql/2026-01-23-mysql-sql-complete-guide/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/mysql/2026-01-23-mysql-sql-complete-guide/cover.webp"
 alt="MySQL SQL Complete Guide: From Beginner to Advanced"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="675"
/&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;SQL (Structured Query Language)&lt;/strong&gt; is the universal language for communicating with databases. Whether you are a backend developer, data analyst, or DevOps engineer, SQL proficiency is a must-have skill. This guide uses MySQL as the reference implementation and walks you through everything from basic syntax to the internals that interviewers love to ask about.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;This is a long-form article (~15,000 words). Bookmark it and work through one section at a time. Use the table of contents to jump to the topics you need.&lt;/p&gt;</description></item><item><title>Claude Code: 24 Power Tips to Master the AI Terminal</title><link>http://www.heyuan110.com/posts/ai/2025-01-23-claude-code-commands/</link><pubDate>Fri, 23 Jan 2026 00:00:00 +0000</pubDate><guid>http://www.heyuan110.com/posts/ai/2025-01-23-claude-code-commands/</guid><description>&lt;p&gt;Claude Code is Anthropic&amp;rsquo;s command-line AI coding assistant. It&amp;rsquo;s not just a chatbot — it reads your code, writes files, and executes commands directly in your terminal. Here are 24 power tips to help you get the most out of it.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2025-01-23-claude-code-commands/claude-code-homepage.webp"
 alt="Claude Code Homepage"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="871"
 height="192"
/&gt;
&lt;/p&gt;
&lt;h2 id="part-1-getting-started-in-5-minutes"&gt;Part 1: Getting Started in 5 Minutes&lt;a href="#part-1-getting-started-in-5-minutes" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="installing-claude-code"&gt;Installing Claude Code&lt;a href="#installing-claude-code" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# One-line install&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;curl -fsSL https://claude.ai/install.sh &lt;span class="p"&gt;|&lt;/span&gt; bash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="three-ways-to-launch"&gt;Three Ways to Launch&lt;a href="#three-ways-to-launch" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Option 1: Start an interactive session&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;claude
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Option 2: Launch with a prompt&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;claude &lt;span class="s2"&gt;&amp;#34;Show me the directory structure of this project&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Option 3: Non-interactive mode (great for scripts)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;claude -p &lt;span class="s2"&gt;&amp;#34;Generate a .gitignore file&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Once launched, you&amp;rsquo;ll see an interactive interface where you can type questions directly. Type &lt;code&gt;/help&lt;/code&gt; for help or &lt;code&gt;/exit&lt;/code&gt; to quit.&lt;/p&gt;</description></item><item><title>Redis Complete Guide: Installation, Data Types, Persistence, and Clustering</title><link>http://www.heyuan110.com/posts/middleware/2026-01-22-redis-complete-guide/</link><pubDate>Thu, 22 Jan 2026 17:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/middleware/2026-01-22-redis-complete-guide/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/middleware/2026-01-22-redis-complete-guide/cover.webp"
 alt="Redis Complete Guide: From Beginner to Production"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="675"
/&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Redis&lt;/strong&gt; (Remote Dictionary Server) is an open-source, in-memory key-value store renowned for blazing-fast read/write performance and versatile data structure support. It has become a cornerstone of modern application architectures, powering everything from caching layers to real-time leaderboards. This guide walks you through Redis from the ground up — installation, core data types, persistence strategies, and high-availability deployments.&lt;/p&gt;
&lt;h2 id="what-is-redis"&gt;What Is Redis?&lt;a href="#what-is-redis" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Redis is written in ANSI C and operates primarily in memory, though it supports durable persistence to disk. Unlike simple key-value stores, Redis offers rich data structures — strings, hashes, lists, sets, and sorted sets — each with dedicated commands optimized for specific access patterns.&lt;/p&gt;</description></item><item><title>Bash Special Variables Explained: $$, $?, $@, $# and More</title><link>http://www.heyuan110.com/posts/linux/2019-05-13-linux-shell-vars/</link><pubDate>Thu, 22 Jan 2026 15:47:58 +0800</pubDate><guid>http://www.heyuan110.com/posts/linux/2019-05-13-linux-shell-vars/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/linux/2019-05-13-linux-shell-vars/cover.webp"
 alt="A complete guide to Bash special variables for Shell scripting"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="900"
/&gt;
&lt;/p&gt;
&lt;p&gt;If you have written any Bash scripts, you have almost certainly encountered cryptic-looking variables like &lt;code&gt;$?&lt;/code&gt;, &lt;code&gt;$@&lt;/code&gt;, and &lt;code&gt;$$&lt;/code&gt;. These are &lt;strong&gt;special parameters&lt;/strong&gt; built into Bash that give you access to script metadata, command-line arguments, and process information. Understanding them is essential for writing robust Shell scripts.&lt;/p&gt;
&lt;p&gt;This guide walks through every special variable with clear explanations, real-world use cases, and runnable examples.&lt;/p&gt;</description></item><item><title>Best Terminal Emulators in 2025: 23 Tools Compared for Every Platform</title><link>http://www.heyuan110.com/posts/macos/2025-01-22-terminal-tools-guide/</link><pubDate>Thu, 22 Jan 2026 00:00:00 +0000</pubDate><guid>http://www.heyuan110.com/posts/macos/2025-01-22-terminal-tools-guide/</guid><description>&lt;p&gt;The terminal is where developers spend a huge chunk of their day. The right terminal emulator can make &lt;a href="http://www.heyuan110.com/posts/linux/2020-03-19-linux-mac-commands/"&gt;command-line work&lt;/a&gt; faster, more pleasant, and far more productive. This guide covers 23 terminal emulators across macOS, Windows, and Linux to help you find the perfect fit.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; Once you have picked a terminal, pair it with a great shell. Check out the &lt;a href="http://www.heyuan110.com/posts/linux/2015-06-17-shell-zsh/"&gt;Oh My Zsh setup guide&lt;/a&gt; to level up your workflow.&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Anthropic CEO Dario Amodei Bloomberg Interview: Key Takeaways</title><link>http://www.heyuan110.com/posts/ai/2025-01-21-anthropic-ceo-bloomberg-interview/</link><pubDate>Wed, 21 Jan 2026 15:09:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2025-01-21-anthropic-ceo-bloomberg-interview/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2025-01-21-anthropic-ceo-bloomberg-interview/cover.webp"
 alt="Anthropic CEO Dario Amodei discusses AI trends and the future of superintelligence at Bloomberg"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="2752"
 height="1536"
/&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Dario Amodei&lt;/strong&gt;, CEO of Anthropic — the company behind &lt;a href="https://claude.ai"&gt;Claude&lt;/a&gt;, widely regarded as one of the most capable AI models alongside GPT — sat down with Bloomberg for a wide-ranging interview. He covered everything from technical forecasts to geopolitics, economic disruption to corporate strategy.&lt;/p&gt;
&lt;p&gt;Here are the key takeaways.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="the-deceptive-nature-of-exponential-growth"&gt;The Deceptive Nature of Exponential Growth&lt;a href="#the-deceptive-nature-of-exponential-growth" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Amodei has never liked the term &amp;ldquo;AGI.&amp;rdquo;&lt;/p&gt;</description></item><item><title>Claude Code Skills: Top 20 Most Popular Skills in 2026</title><link>http://www.heyuan110.com/posts/ai/2026-01-20-claude-code-skills-top20/</link><pubDate>Tue, 20 Jan 2026 10:51:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-01-20-claude-code-skills-top20/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-01-20-claude-code-skills-top20/cover.webp"
 alt="Claude Code Skills ecosystem"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1938"
 height="1016"
/&gt;
&lt;/p&gt;
&lt;p&gt;In October 2025, Anthropic launched the &lt;strong&gt;Agent Skills system&lt;/strong&gt; — one of the most significant updates to Claude Code. Three months later, the Skills ecosystem on GitHub has exploded in growth.&lt;/p&gt;
&lt;p&gt;Which Skills are worth installing? Which ones are just hype? This article ranks the &lt;strong&gt;top 20 most popular Skills as of January 2026&lt;/strong&gt; to help you decide.&lt;/p&gt;
&lt;h2 id="what-are-skills"&gt;What Are Skills?&lt;a href="#what-are-skills" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Think of Skills as &lt;strong&gt;expert knowledge packs that Claude activates on its own&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>AI Development Workflow: From Requirements to Production</title><link>http://www.heyuan110.com/posts/ai/2026-01-19-ai-dev-workflow/</link><pubDate>Mon, 19 Jan 2026 17:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-01-19-ai-dev-workflow/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-01-19-ai-dev-workflow/cover.webp"
 alt="AI Development Workflow"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;In 2026, AI coding tools have graduated from novelty toys to standard-issue developer gear. Roughly 85% of developers now use AI tools in their daily work.&lt;/p&gt;
&lt;p&gt;Yet most people still use them the same way — asking ChatGPT how to write a snippet and pasting the result. That barely scratches the surface. This guide walks through a complete AI-powered development workflow that turns AI into a genuine pair programming partner across every phase, from gathering requirements to shipping production code.&lt;/p&gt;</description></item><item><title>Agent Skills: Why Markdown Files Are the New Programs</title><link>http://www.heyuan110.com/posts/ai/2026-01-19-agent-skills-new-programming/</link><pubDate>Mon, 19 Jan 2026 16:45:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-01-19-agent-skills-new-programming/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-01-19-agent-skills-new-programming/cover.webp"
 alt="Agent Skills: The New Programming Paradigm"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="2752"
 height="1536"
/&gt;
&lt;/p&gt;
&lt;p&gt;The AI developer community on X has been buzzing about Agent Skills lately. Like many programmers, my first reaction was dismissive — Skills seemed like glorified workflow prompts. Useful, sure, but nothing groundbreaking.&lt;/p&gt;
&lt;p&gt;Then I came across a post that reframed everything: &lt;strong&gt;Skills aren&amp;rsquo;t just text. They&amp;rsquo;re a new generation of programs — and they can evolve themselves.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;That shift in perspective is worth every developer&amp;rsquo;s attention.&lt;/p&gt;</description></item><item><title>Cursor Agent Best Practices: The Complete Guide to AI Coding</title><link>http://www.heyuan110.com/posts/ai/2026-01-19-cursor-agent-best-practices/</link><pubDate>Mon, 19 Jan 2026 16:33:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-01-19-cursor-agent-best-practices/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-01-19-cursor-agent-best-practices/cover.webp"
 alt="Cursor Agent Best Practices"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="2752"
 height="1536"
/&gt;
&lt;/p&gt;
&lt;p&gt;As AI coding assistants evolve rapidly, knowing how to collaborate effectively with an AI Agent has become an essential developer skill. Cursor recently published an official best practices guide for Agent-based coding, and this article breaks down every key insight so you can get the most out of your AI pair programmer.&lt;/p&gt;
&lt;h2 id="how-the-cursor-agent-works"&gt;How the Cursor Agent Works&lt;a href="#how-the-cursor-agent-works" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Before diving into techniques, it helps to understand the Agent&amp;rsquo;s core architecture. The system consists of three components:&lt;/p&gt;</description></item><item><title>Docker Compose Complete Guide (2026): Install, Configure, and Deploy Multi-Container Apps</title><link>http://www.heyuan110.com/posts/docker/2026-01-19-docker-compose-complete-guide/</link><pubDate>Mon, 19 Jan 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/docker/2026-01-19-docker-compose-complete-guide/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/docker/2026-01-19-docker-compose-complete-guide/docker-cover.webp"
 alt="Docker Complete Guide"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="868"
 height="453"
/&gt;
&lt;/p&gt;
&lt;p&gt;Every developer has heard (or said) this at least once: &amp;ldquo;But it works on my machine!&amp;rdquo; Docker was built to eliminate that problem for good. This guide takes you from zero to proficient with Docker and Docker Compose, covering everything you need to deploy real-world multi-container applications.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="part-1-why-docker-exists"&gt;Part 1: Why Docker Exists&lt;a href="#part-1-why-docker-exists" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="1-the-pain-points-of-software-deployment"&gt;1. The Pain Points of Software Deployment&lt;a href="#1-the-pain-points-of-software-deployment" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Think of moving to a new apartment. The traditional approach is to disassemble all your furniture, haul it over, reassemble everything, and then discover you&amp;rsquo;re missing a few screws.&lt;/p&gt;</description></item><item><title>Claude Code Complete Guide: From Beginner to Power User</title><link>http://www.heyuan110.com/posts/ai/2026-01-14-claude-code-guide/</link><pubDate>Wed, 14 Jan 2026 14:38:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-01-14-claude-code-guide/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-01-14-claude-code-guide/cover.webp"
 alt="Claude Code terminal AI assistant"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="2752"
 height="1536"
/&gt;
&lt;/p&gt;
&lt;p&gt;Have you ever wished for an AI assistant that could actually &lt;em&gt;do things&lt;/em&gt; — not just give advice, but directly edit files, run commands, and handle repetitive tasks? &lt;strong&gt;Claude Code&lt;/strong&gt; is exactly that. Built by Anthropic, it runs in your terminal as a fully agentic AI assistant that understands your needs and takes action.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;It&amp;rsquo;s not just for programmers.&lt;/strong&gt; While Claude Code excels at coding, it can also help product managers organize documentation, assist ops engineers with log analysis, help admin staff process data reports, and automate tedious repetitive work for anyone.&lt;/p&gt;</description></item><item><title>Claude Cowork: Anthropic Desktop AI Agent That Controls Your Files</title><link>http://www.heyuan110.com/posts/ai/2026-01-13-claude-cowork/</link><pubDate>Tue, 13 Jan 2026 19:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-01-13-claude-cowork/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-01-13-claude-cowork/cover.webp"
 alt="Claude Cowork"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="2752"
 height="1536"
/&gt;
&lt;/p&gt;
&lt;p&gt;Anthropic has launched &lt;strong&gt;Claude Cowork&lt;/strong&gt; as a research preview — arguably the most ambitious desktop AI agent to date. Unlike traditional chatbots that rely on copy-paste workflows, Claude Cowork directly accesses files on your computer, runs code, executes terminal commands, and integrates with third-party apps like Notion, Linear, and Figma.&lt;/p&gt;
&lt;h2 id="what-is-claude-cowork"&gt;What Is Claude Cowork?&lt;a href="#what-is-claude-cowork" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Claude Cowork is a new capability inside the Claude desktop app that transforms Claude from a conversation partner into a hands-on work assistant.&lt;/p&gt;</description></item><item><title>Vercel Agent Browser: AI-Native Browser Automation CLI Tool</title><link>http://www.heyuan110.com/posts/ai/2026-01-13-vercel-agent-browser/</link><pubDate>Tue, 13 Jan 2026 08:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-01-13-vercel-agent-browser/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-01-13-vercel-agent-browser/cover.webp"
 alt="Agent Browser"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="2752"
 height="1536"
/&gt;
&lt;/p&gt;
&lt;p&gt;Vercel recently open-sourced &lt;strong&gt;Agent Browser&lt;/strong&gt;, a command-line tool purpose-built for AI agents that need to interact with web pages. Unlike traditional browser automation frameworks that rely on CSS selectors and XPath, Agent Browser introduces a snapshot-driven interaction model that aligns naturally with how AI agents perceive and act on information.&lt;/p&gt;
&lt;h2 id="what-is-agent-browser"&gt;What Is Agent Browser?&lt;a href="#what-is-agent-browser" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Agent Browser is a headless browser automation CLI designed for AI agent workflows. It combines Rust for native CLI performance with a Node.js daemon that manages Playwright-powered browser instances.&lt;/p&gt;</description></item><item><title>Claude Code Skills: Create Custom AI Abilities in 30 Seconds</title><link>http://www.heyuan110.com/posts/ai/2026-01-12-claudecode-skill-patterns/</link><pubDate>Mon, 12 Jan 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-01-12-claudecode-skill-patterns/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-01-12-claudecode-skill-patterns/skills-secret-compressed.webp"
 alt="Skills Secret"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="669"
/&gt;
&lt;/p&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;a href="#introduction" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;For months, one question kept nagging me: &lt;strong&gt;How do you teach an AI your personal expertise?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;CLAUDE.md lets Claude Code remember your preferences and project context. But how do you encode your actual &lt;em&gt;capabilities&lt;/em&gt; &amp;ndash; your workflows, your domain knowledge, your hard-won best practices &amp;ndash; into something the AI can use?&lt;/p&gt;</description></item><item><title>CLAUDE.md Guide: Give Claude Code Persistent Memory</title><link>http://www.heyuan110.com/posts/ai/2026-01-12-claudemd-memory-guide/</link><pubDate>Mon, 12 Jan 2026 00:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-01-12-claudemd-memory-guide/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-01-12-claudemd-memory-guide/memory-guide.webp"
 alt="Memory Guide"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1059"
 height="556"
/&gt;
&lt;/p&gt;
&lt;h2 id="the-problem-repeating-yourself-every-single-time"&gt;The Problem: Repeating Yourself Every Single Time&lt;a href="#the-problem-repeating-yourself-every-single-time" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Claude Code is a fantastic coding assistant. But it has one glaring weakness: &lt;strong&gt;it forgets everything between conversations.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Every new session, you find yourself saying the same things:&lt;/p&gt;</description></item><item><title>Claude Code Skills Guide: Teach AI Your Exact Workflow</title><link>http://www.heyuan110.com/posts/ai/2026-01-08-claudecode-skill-guide/</link><pubDate>Thu, 08 Jan 2026 10:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-01-08-claudecode-skill-guide/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-01-08-claudecode-skill-guide/skill-guide.webp"
 alt="Skill Guide"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;h2 id="why-skills-matter"&gt;Why Skills Matter&lt;a href="#why-skills-matter" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;In the age of LLMs, everyone wants AI that understands their specific work. The problem is that AI is general-purpose. It does not know your company&amp;rsquo;s report format, your hiring criteria, or your product&amp;rsquo;s unique selling points.&lt;/p&gt;</description></item><item><title>Claude Code Best Practices: 5 Tips from the Founder</title><link>http://www.heyuan110.com/posts/ai/2026-01-06-claudecode-best-practices/</link><pubDate>Tue, 06 Jan 2026 18:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-01-06-claudecode-best-practices/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-01-06-claudecode-best-practices/claude-code-best-practices.webp"
 alt="Claude Code Best Practices"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;The founder of Claude Code recently shared a handful of practical tips on X. These aren&amp;rsquo;t polished documentation — they&amp;rsquo;re hard-won lessons from daily use. Every one of them resonated with my own experience, so let me break them down.&lt;/p&gt;
&lt;h2 id="1-run-multiple-agents-in-parallel"&gt;1. Run Multiple Agents in Parallel&lt;a href="#1-run-multiple-agents-in-parallel" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The idea: open multiple terminals, each running its own Claude Code instance, working on different tasks simultaneously.&lt;/p&gt;</description></item><item><title>Skills vs MCP in Claude Code: Two Ways to Extend AI Capabilities</title><link>http://www.heyuan110.com/posts/ai/2026-01-06-skillmcp/</link><pubDate>Tue, 06 Jan 2026 17:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2026-01-06-skillmcp/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2026-01-06-skillmcp/skill-vs-mcp.webp"
 alt="Skill vs MCP"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="630"
/&gt;
&lt;/p&gt;
&lt;p&gt;If you have spent any time with Claude Code, you have probably noticed two different systems for extending what it can do: &lt;strong&gt;Skills&lt;/strong&gt; and &lt;strong&gt;MCP&lt;/strong&gt;. They look similar on the surface, but they solve fundamentally different problems.&lt;/p&gt;
&lt;p&gt;This guide breaks down exactly how they differ, when to use each one, and how they complement each other.&lt;/p&gt;
&lt;h2 id="what-is-mcp"&gt;What Is MCP&lt;a href="#what-is-mcp" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;MCP stands for &lt;strong&gt;Model Context Protocol&lt;/strong&gt;, an open protocol standard developed by Anthropic.&lt;/p&gt;</description></item><item><title>Claude Code Skills vs SubAgents: Context Management Guide</title><link>http://www.heyuan110.com/posts/ai/2025-12-26-claudecode-skillsubagent/</link><pubDate>Fri, 26 Dec 2025 12:40:02 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2025-12-26-claudecode-skillsubagent/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2025-12-26-claudecode-skillsubagent/cc-skill-agent.webp"
 alt="ClaudeCode Skill"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="669"
/&gt;
&lt;/p&gt;
&lt;p&gt;There are two fundamentally different ways to make an AI agent more capable.&lt;/p&gt;
&lt;p&gt;The first is &lt;strong&gt;Skills&lt;/strong&gt; — loading new abilities directly into the agent&amp;rsquo;s own brain.&lt;/p&gt;
&lt;p&gt;The second is &lt;strong&gt;SubAgents&lt;/strong&gt; — delegating work to a separate agent and only reviewing the results.&lt;/p&gt;
&lt;p&gt;Both approaches sound like they get the job done, but they suit very different scenarios. Pick the wrong one and your agent may actually get slower and less reliable over time.&lt;/p&gt;</description></item><item><title>Vector Database Explained: From Core Concepts to Production</title><link>http://www.heyuan110.com/posts/ai/2025-03-11-vectordatabase/</link><pubDate>Tue, 11 Mar 2025 14:40:02 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2025-03-11-vectordatabase/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2025-03-11-vectordatabase/vector-db.webp"
 alt="VectorDatabase"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="765"
 height="368"
/&gt;
&lt;/p&gt;
&lt;h2 id="1-why-vector-databases-suddenly-took-off"&gt;1. Why Vector Databases Suddenly Took Off&lt;a href="#1-why-vector-databases-suddenly-took-off" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Before 2023, vector databases were a niche technology that most engineers had never heard of.&lt;/p&gt;
&lt;p&gt;Then ChatGPT happened. Large language models became mainstream overnight, and people quickly ran into a fundamental limitation: an LLM&amp;rsquo;s knowledge is frozen at training time. It doesn&amp;rsquo;t know your company&amp;rsquo;s internal docs, yesterday&amp;rsquo;s news, or your proprietary data.&lt;/p&gt;</description></item><item><title>FaceFusion Guide: Open-Source AI Face Swap Setup and Tips</title><link>http://www.heyuan110.com/posts/ai/2024-10-16-facefusion/</link><pubDate>Wed, 16 Oct 2024 14:56:30 +0800</pubDate><guid>http://www.heyuan110.com/posts/ai/2024-10-16-facefusion/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/ai/2024-10-16-facefusion/FaceFusion.webp"
 alt="FaceFusion"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="648"
/&gt;
&lt;/p&gt;
&lt;h2 id="what-is-facefusion"&gt;What Is FaceFusion?&lt;a href="#what-is-facefusion" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;FaceFusion is an open-source AI tool that swaps one person&amp;rsquo;s face onto another in images and videos. It is the successor to Roop, built by the same developer. After Roop was discontinued, the author rebuilt it from the ground up as FaceFusion with better models, more features, and improved output quality.&lt;/p&gt;</description></item><item><title>Java Tutorial Part 2: Arrays Utility, Lambda Expressions, Regex, and Sorting Algorithms</title><link>http://www.heyuan110.com/posts/java/2024-05-13-learn-java2/</link><pubDate>Mon, 13 May 2024 15:13:10 +0800</pubDate><guid>http://www.heyuan110.com/posts/java/2024-05-13-learn-java2/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/java/2024-05-13-learn-java2/java-logo.webp"
 alt="image"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="898"
 height="471"
/&gt;
&lt;/p&gt;
&lt;p&gt;&lt;a href="../2024-05-05-learn-java"&gt;Continued from Part 1: Java Tutorial (Part 1)&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="7-collections--io-fundamentals"&gt;7. Collections &amp;amp; I/O Fundamentals&lt;a href="#7-collections--io-fundamentals" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="1-the-arrays-utility-class"&gt;1. The Arrays Utility Class&lt;a href="#1-the-arrays-utility-class" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;java.util.Arrays&lt;/code&gt; class is a utility class designed to make common array operations &amp;ndash; traversal, copying, sorting &amp;ndash; simple and convenient.&lt;/p&gt;</description></item><item><title>Java Beginner Tutorial Part 1: JDK, JRE, JVM Explained and IntelliJ IDEA Setup</title><link>http://www.heyuan110.com/posts/java/2024-05-05-learn-java/</link><pubDate>Sat, 04 May 2024 21:00:00 +0800</pubDate><guid>http://www.heyuan110.com/posts/java/2024-05-05-learn-java/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/java/2024-05-05-learn-java/java-logo.webp"
 alt="image"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="898"
 height="471"
/&gt;
&lt;/p&gt;
&lt;h2 id="1-a-brief-history-of-java"&gt;1. A Brief History of Java&lt;a href="#1-a-brief-history-of-java" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Java was introduced by Sun Microsystems in 1995. Originally named Oak (after an oak tree outside creator James Gosling&amp;rsquo;s office), it was later renamed Java. Sun Microsystems was acquired by Oracle in 2009, and Oracle has maintained the language ever since.&lt;/p&gt;</description></item><item><title>AWS CLI Complete Guide: Installation, Configuration, S3/EC2 Commands &amp; Troubleshooting</title><link>http://www.heyuan110.com/posts/linux/2020-07-04-aws-cli/</link><pubDate>Sat, 04 Jul 2020 00:16:54 +0800</pubDate><guid>http://www.heyuan110.com/posts/linux/2020-07-04-aws-cli/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/linux/2020-07-04-aws-cli/cover.webp"
 alt="AWS CLI complete guide"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1315"
 height="908"
/&gt;
&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;AWS CLI&lt;/strong&gt; (Amazon Web Services Command Line Interface) is Amazon&amp;rsquo;s official unified tool for managing all AWS services from the terminal. Whether you are spinning up EC2 instances, syncing files to S3, or automating deployments, the CLI is often the fastest path. This guide walks through installation, configuration, everyday commands for the most popular services, and solutions to the errors you will inevitably hit.&lt;/p&gt;</description></item><item><title>Nginx HTTPS Configuration Guide: Self-Signed Certs, Mixed Sites, and Reverse Proxy Pitfalls</title><link>http://www.heyuan110.com/posts/linux/nginx/nginx-https-complete-guide/</link><pubDate>Fri, 03 Jul 2020 13:19:44 +0800</pubDate><guid>http://www.heyuan110.com/posts/linux/nginx/nginx-https-complete-guide/</guid><description>&lt;p&gt;Configuring HTTPS on Nginx is a core skill for any backend engineer working in production. This article covers three real-world scenarios I have dealt with in actual projects: setting up self-signed certificates, running a mixed HTTP/HTTPS site, and debugging a nasty DNS caching issue when reverse proxying to AWS ELB.&lt;/p&gt;
&lt;h2 id="1-self-signed-ssl-certificates-with-openssl"&gt;1. Self-Signed SSL Certificates with OpenSSL&lt;a href="#1-self-signed-ssl-certificates-with-openssl" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;In development and testing environments, self-signed certificates let you enable HTTPS without purchasing a certificate from a third-party CA.&lt;/p&gt;</description></item><item><title>curl Command Guide (2026): HTTP Requests, File Transfers, and API Debugging</title><link>http://www.heyuan110.com/posts/linux/2020-06-29-curl/</link><pubDate>Mon, 29 Jun 2020 00:00:00 +0000</pubDate><guid>http://www.heyuan110.com/posts/linux/2020-06-29-curl/</guid><description>&lt;p&gt;If there is one &lt;a href="http://www.heyuan110.com/posts/linux/2020-03-19-linux-mac-commands/"&gt;command-line&lt;/a&gt; tool every developer should master, it is &lt;strong&gt;curl&lt;/strong&gt;. Supporting HTTP, HTTPS, FTP, and 20+ other protocols, curl handles everything from quick API tests and POST requests to large file downloads and network diagnostics — all from a single command.&lt;/p&gt;
&lt;p&gt;This guide walks through every major curl feature: HTTP methods (GET, POST, PUT, DELETE, PATCH), JSON payloads, file uploads and downloads, Bearer Token authentication, proxy configuration, and request timing. If you also need to trace network paths, pair it with &lt;a href="http://www.heyuan110.com/posts/linux/2020-06-28-traceroute/"&gt;traceroute&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Traceroute Command Explained: Network Path Tracing and Troubleshooting Guide</title><link>http://www.heyuan110.com/posts/linux/2020-06-28-traceroute/</link><pubDate>Sun, 28 Jun 2020 12:12:04 +0800</pubDate><guid>http://www.heyuan110.com/posts/linux/2020-06-28-traceroute/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/linux/2020-06-28-traceroute/cover.webp"
 alt="Diagram showing how traceroute works by incrementing TTL to probe each hop along a network path"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1600"
 height="578"
/&gt;
&lt;/p&gt;
&lt;p&gt;Slow websites, laggy video calls, SSH connections that hang forever &amp;ndash; these problems often hide somewhere along the network path between you and a remote server. The &lt;strong&gt;traceroute&lt;/strong&gt; command (&lt;code&gt;tracert&lt;/code&gt; on Windows) is the tool that answers &amp;ldquo;where exactly is the bottleneck?&amp;rdquo; It maps every router between your machine and the destination, measuring the round-trip delay at each hop so you can see precisely where things go wrong.&lt;/p&gt;</description></item><item><title>Linux and macOS Command Cheat Sheet for Developers</title><link>http://www.heyuan110.com/posts/linux/2020-03-19-linux-mac-commands/</link><pubDate>Thu, 19 Mar 2020 10:55:52 +0800</pubDate><guid>http://www.heyuan110.com/posts/linux/2020-03-19-linux-mac-commands/</guid><description>&lt;p&gt;The command line is an essential skill for every developer. This reference organizes the most frequently used Linux and macOS commands by category for quick lookup.&lt;/p&gt;
&lt;h2 id="networking"&gt;Networking&lt;a href="#networking" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="netstat--view-network-connections"&gt;netstat — View Network Connections&lt;a href="#netstat--view-network-connections" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Linux:&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Conda Guide: How to Manage Multiple Python Versions and Environments</title><link>http://www.heyuan110.com/posts/python/2020-01-11-python-conda/</link><pubDate>Sat, 11 Jan 2020 20:33:33 +0800</pubDate><guid>http://www.heyuan110.com/posts/python/2020-01-11-python-conda/</guid><description>&lt;p&gt;If you have ever worked on one project that requires Python 2.7 and another that needs Python 3.10, you know how painful version conflicts can be. &lt;strong&gt;Conda&lt;/strong&gt; solves this problem once and for all. This guide walks you through everything you need to know about Conda — from installation to daily workflow.&lt;/p&gt;</description></item><item><title>Privacy Policy</title><link>http://www.heyuan110.com/privacy/</link><pubDate>Wed, 01 Jan 2020 00:00:00 +0000</pubDate><guid>http://www.heyuan110.com/privacy/</guid><description>&lt;h2 id="overview"&gt;Overview&lt;a href="#overview" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Welcome to heyuan110.com (&amp;ldquo;this site&amp;rdquo;). This privacy policy explains how we collect, use, and protect your information when you visit.&lt;/p&gt;
&lt;p&gt;By using this site, you agree to the data practices described in this policy.&lt;/p&gt;</description></item><item><title>Docker Commands Cheat Sheet: Images, Containers, Networks, and Volumes</title><link>http://www.heyuan110.com/posts/docker/2019-11-14-docker-commands/</link><pubDate>Thu, 14 Nov 2019 20:37:13 +0800</pubDate><guid>http://www.heyuan110.com/posts/docker/2019-11-14-docker-commands/</guid><description>&lt;p&gt;A quick-reference guide to the Docker commands you will use most often in daily development and operations work.&lt;/p&gt;
&lt;h2 id="1-docker-service-management"&gt;1. Docker Service Management&lt;a href="#1-docker-service-management" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Start Docker&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;service docker start
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Stop Docker&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;service docker stop
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Restart Docker&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;service docker restart
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="2-image-management"&gt;2. Image Management&lt;a href="#2-image-management" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="pulling-images"&gt;Pulling Images&lt;a href="#pulling-images" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker pull &lt;span class="o"&gt;[&lt;/span&gt;OPTIONS&lt;span class="o"&gt;]&lt;/span&gt; NAME&lt;span class="o"&gt;[&lt;/span&gt;:TAG&lt;span class="p"&gt;|&lt;/span&gt;@DIGEST&lt;span class="o"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Example&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker pull ubuntu:22.04
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="listing-images"&gt;Listing Images&lt;a href="#listing-images" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# List all images&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker images
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker image ls
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Show image digests&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker images --digests
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# List specific images&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker image ls redis
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Check disk usage (images, containers, volumes)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker system df
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# List dangling images (untagged)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker image ls -f &lt;span class="nv"&gt;dangling&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Remove dangling images&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker image prune
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="removing-images"&gt;Removing Images&lt;a href="#removing-images" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Remove by full ID&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker image rm 578c3e61a98c
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Remove by short ID&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker image rm 578c3
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Remove by name&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker image rm redis
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Remove all images&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker image rm &lt;span class="k"&gt;$(&lt;/span&gt;docker image ls -q&lt;span class="k"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Remove all redis images&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker image rm &lt;span class="k"&gt;$(&lt;/span&gt;docker image ls -q redis&lt;span class="k"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Remove all dangling images&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker rmi &lt;span class="k"&gt;$(&lt;/span&gt;docker images -q -f &lt;span class="nv"&gt;dangling&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;true&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="cleanup-shortcuts"&gt;Cleanup Shortcuts&lt;a href="#cleanup-shortcuts" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Stop all exited containers&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker ps -a &lt;span class="p"&gt;|&lt;/span&gt; grep &lt;span class="s2"&gt;&amp;#34;Exited&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; awk &lt;span class="s1"&gt;&amp;#39;{print $1}&amp;#39;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; xargs docker stop
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Remove all exited containers&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker ps -a &lt;span class="p"&gt;|&lt;/span&gt; grep &lt;span class="s2"&gt;&amp;#34;Exited&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; awk &lt;span class="s1"&gt;&amp;#39;{print $1}&amp;#39;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; xargs docker rm
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Remove all &amp;lt;none&amp;gt; images&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker images &lt;span class="p"&gt;|&lt;/span&gt; grep none &lt;span class="p"&gt;|&lt;/span&gt; awk &lt;span class="s1"&gt;&amp;#39;{print $3}&amp;#39;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; xargs docker rmi
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="3-container-management"&gt;3. Container Management&lt;a href="#3-container-management" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="creating-containers"&gt;Creating Containers&lt;a href="#creating-containers" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Run in background (detached mode):&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>MySQL EXPLAIN Explained: A Complete Guide to Reading Query Execution Plans</title><link>http://www.heyuan110.com/posts/mysql/2019-09-06-mysql-explain/</link><pubDate>Fri, 06 Sep 2019 20:10:21 +0800</pubDate><guid>http://www.heyuan110.com/posts/mysql/2019-09-06-mysql-explain/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/mysql/2019-09-06-mysql-explain/cover.webp"
 alt="MySQL EXPLAIN execution plan analysis"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="675"
/&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;EXPLAIN&lt;/strong&gt; is the single most useful tool for understanding MySQL query performance. When a query runs slower than expected, the first thing you should do is prefix it with EXPLAIN to inspect the execution plan. It reveals how MySQL processes your query &amp;ndash; which indexes it picks, how many rows it expects to scan, and what join strategy it uses.&lt;/p&gt;
&lt;p&gt;This guide walks through every field in the EXPLAIN output so you can quickly pinpoint performance bottlenecks.&lt;/p&gt;</description></item><item><title>Ten Leadership Disciplines: Lessons on Responsibility, Reflection, and Growth</title><link>http://www.heyuan110.com/posts/management/2019-08-19-liulan-management/</link><pubDate>Mon, 19 Aug 2019 21:10:21 +0800</pubDate><guid>http://www.heyuan110.com/posts/management/2019-08-19-liulan-management/</guid><description>&lt;p&gt;These are my notes from a two-day leadership training course taught by Professor Liu Lan. The course was highly structured, blending theory with real-world case studies that directly apply to workplace scenarios. Below is a summary of the ten leadership disciplines — a practical framework for anyone stepping into (or growing within) a leadership role.&lt;/p&gt;
&lt;h2 id="what-is-leadership"&gt;What Is Leadership?&lt;a href="#what-is-leadership" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Leadership is the responsibility to solve collective problems — and the responsibility to bear failure. It is not about titles or positions. A leadership title gives you resources, but you can exercise leadership without any title at all.&lt;/p&gt;</description></item><item><title>RabbitMQ Tutorial: AMQP Protocol, Exchanges, and Message Delivery</title><link>http://www.heyuan110.com/posts/middleware/2019-08-02-mq-rabbitmq/</link><pubDate>Fri, 02 Aug 2019 11:47:04 +0800</pubDate><guid>http://www.heyuan110.com/posts/middleware/2019-08-02-mq-rabbitmq/</guid><description>&lt;p&gt;This guide builds on our &lt;a href="http://www.heyuan110.com/posts/middleware/2019-07-31-mq/"&gt;message queue fundamentals article&lt;/a&gt; and dives deep into RabbitMQ — one of the most popular open-source message brokers.&lt;/p&gt;
&lt;h2 id="1-what-is-rabbitmq"&gt;1. What Is RabbitMQ?&lt;a href="#1-what-is-rabbitmq" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;RabbitMQ is an open-source message broker and queue server written in Erlang. It implements the &lt;strong&gt;AMQP (Advanced Message Queuing Protocol)&lt;/strong&gt; — an open standard for messaging middleware.&lt;/p&gt;</description></item><item><title>Message Queue Fundamentals: Core Concepts, Use Cases, and Technology Selection</title><link>http://www.heyuan110.com/posts/middleware/2019-07-31-mq/</link><pubDate>Wed, 31 Jul 2019 21:26:23 +0800</pubDate><guid>http://www.heyuan110.com/posts/middleware/2019-07-31-mq/</guid><description>&lt;p&gt;A message queue is a middleware component that stores messages in transit between producers and consumers. Its primary purpose is to provide reliable message delivery — if the receiver is unavailable when a message is sent, the queue holds it until delivery succeeds.&lt;/p&gt;
&lt;h2 id="what-is-a-message-queue"&gt;What Is a Message Queue?&lt;a href="#what-is-a-message-queue" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;At its simplest, a message queue follows the &lt;strong&gt;Producer-Broker-Consumer&lt;/strong&gt; model:&lt;/p&gt;</description></item><item><title>Nexus3 Private Docker Registry Setup: Enterprise Container Registry Guide</title><link>http://www.heyuan110.com/posts/docker/2019-06-12-next3-dockerhub/</link><pubDate>Wed, 12 Jun 2019 20:50:36 +0800</pubDate><guid>http://www.heyuan110.com/posts/docker/2019-06-12-next3-dockerhub/</guid><description>&lt;p&gt;&lt;a href="https://www.sonatype.com/nexus-repository-oss"&gt;Nexus Repository Manager&lt;/a&gt; is a widely used artifact repository originally built for Maven. Beyond Maven, Nexus 3 supports many formats including Docker, npm, PyPI, and more. For Docker specifically, Nexus 3 lets you host private images, proxy Docker Hub, and group multiple registries behind a single endpoint — making it an excellent choice for enterprise container image management.&lt;/p&gt;
&lt;h2 id="1-prerequisites"&gt;1. Prerequisites&lt;a href="#1-prerequisites" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;OS:&lt;/strong&gt; Ubuntu 16.04 (or any Linux with Docker installed)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Docker:&lt;/strong&gt; 18.02.0-ce or later&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="2-pull-the-nexus-3-image"&gt;2. Pull the Nexus 3 Image&lt;a href="#2-pull-the-nexus-3-image" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker pull sonatype/nexus3
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="3-start-the-nexus-3-container"&gt;3. Start the Nexus 3 Container&lt;a href="#3-start-the-nexus-3-container" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker run -id --privileged&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;true&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --name&lt;span class="o"&gt;=&lt;/span&gt;nexus3 &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --restart&lt;span class="o"&gt;=&lt;/span&gt;always &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -p 9500:8081 &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -p 9501:9501 &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -p 9502:9502 &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -p 9503:9503 &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -v /usr/local/programs/nexus3/nexus-data:/nexus-data &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; sonatype/nexus3:latest
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Note the multiple port mappings — each serves a different purpose:&lt;/p&gt;</description></item><item><title>Docker Beginner Tutorial: Images, Containers, Registries, and Dockerfile Explained</title><link>http://www.heyuan110.com/posts/docker/2019-05-13-learn-docker/</link><pubDate>Mon, 13 May 2019 20:33:33 +0800</pubDate><guid>http://www.heyuan110.com/posts/docker/2019-05-13-learn-docker/</guid><description>&lt;p&gt;Docker is an open-source container engine built with Go. It lets developers package applications and their dependencies into lightweight, portable containers that run consistently across any Linux host.&lt;/p&gt;
&lt;h2 id="1-three-core-concepts"&gt;1. Three Core Concepts&lt;a href="#1-three-core-concepts" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Docker revolves around three fundamental building blocks:&lt;/p&gt;</description></item><item><title>Setting Up Jira and Confluence on Ubuntu: Installation, Configuration, and Data Migration</title><link>http://www.heyuan110.com/posts/linux/2019-04-15-jira-confluence-install/</link><pubDate>Mon, 15 Apr 2019 13:53:32 +0800</pubDate><guid>http://www.heyuan110.com/posts/linux/2019-04-15-jira-confluence-install/</guid><description>&lt;p&gt;Jira and Confluence are both products from Atlassian. Jira handles project tracking, agile development management, bug tracking, and workflow management. Confluence serves as an enterprise wiki and knowledge base for team collaboration and documentation. This guide covers installing both on Ubuntu, integrating their user directories, and migrating data from an existing deployment.&lt;/p&gt;
&lt;h2 id="prerequisites"&gt;Prerequisites&lt;a href="#prerequisites" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;This migration was prompted by a &lt;a href="http://www.heyuan110.com/posts/linux/2019-04-12-linux-kerberods/"&gt;cryptomining malware incident&lt;/a&gt; that compromised the original server. The plan was to split Jira and Confluence onto a dedicated machine. Since both share the Jira user directory, the installation order matters.&lt;/p&gt;</description></item><item><title>Kerberods Cryptominer on Linux: Incident Response and Cleanup Guide</title><link>http://www.heyuan110.com/posts/linux/2019-04-12-linux-kerberods/</link><pubDate>Fri, 12 Apr 2019 16:15:53 +0800</pubDate><guid>http://www.heyuan110.com/posts/linux/2019-04-12-linux-kerberods/</guid><description>&lt;p&gt;The kerberods cryptomining malware has been hitting Linux servers hard, hijacking CPU resources and rendering legitimate services unusable. One of our production servers fell victim to it, and this article documents the entire incident — from the initial symptoms through investigation, root cause analysis, and cleanup.&lt;/p&gt;
&lt;h2 id="the-incident"&gt;The Incident&lt;a href="#the-incident" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Around 5:30 PM, several team members reported that Git pushes were failing with 502 errors.&lt;/p&gt;</description></item><item><title>Go Language Tutorial: Fundamentals of Golang Syntax and Data Types</title><link>http://www.heyuan110.com/posts/go/talk/2019-01-25-learn-go/</link><pubDate>Fri, 25 Jan 2019 21:13:19 +0800</pubDate><guid>http://www.heyuan110.com/posts/go/talk/2019-01-25-learn-go/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/images/learn-golang/go.webp"
 alt="image"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 
 
/&gt;
&lt;/p&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;a href="#introduction" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Go (also known as Golang) is an open-source programming language developed by Google in 2007. It was publicly announced on November 10, 2009, and Go 1.0 was released in early 2012. Today, Go development is fully open source with a thriving community behind it.&lt;/p&gt;</description></item><item><title>Jenkins + AWS CodeDeploy + Auto Scaling: A Complete CI/CD Pipeline Guide</title><link>http://www.heyuan110.com/posts/linux/2018-11-20-jenkins-codedeploy-autoscaling/</link><pubDate>Tue, 20 Nov 2018 11:05:40 +0800</pubDate><guid>http://www.heyuan110.com/posts/linux/2018-11-20-jenkins-codedeploy-autoscaling/</guid><description>&lt;p&gt;This article walks through setting up a continuous delivery pipeline using Jenkins, AWS CodeDeploy, S3, and Auto Scaling. It covers everything from creating Auto Scaling groups to configuring blue/green deployments with lifecycle hooks.&lt;/p&gt;
&lt;h2 id="aws-auto-scaling"&gt;AWS Auto Scaling&lt;a href="#aws-auto-scaling" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="benefits-of-auto-scaling"&gt;Benefits of Auto Scaling&lt;a href="#benefits-of-auto-scaling" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Consistent infrastructure&lt;/strong&gt; — Every instance launches with the same software stack (Nginx, PHP, etc.), eliminating configuration drift.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Rapid scaling&lt;/strong&gt; — Simply set the desired instance count in your Auto Scaling group and new instances spin up automatically.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Policy-driven scaling&lt;/strong&gt; — Define scaling policies based on metrics like CPU utilization to add or remove instances automatically.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cost control&lt;/strong&gt; — Use smaller instances that scale horizontally, which is the whole point of Auto Scaling.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="auto-scaling-components"&gt;Auto Scaling Components&lt;a href="#auto-scaling-components" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Auto Scaling Group:&lt;/strong&gt; A logical grouping of EC2 instances used for scaling and management. When creating a group, you specify the minimum, maximum, and desired number of instances.&lt;/p&gt;</description></item><item><title>Supervisor Guide: Installation, Configuration, Troubleshooting &amp; Comparison with systemd</title><link>http://www.heyuan110.com/posts/linux/2018-10-07-supervisor/</link><pubDate>Sun, 07 Oct 2018 00:35:04 +0800</pubDate><guid>http://www.heyuan110.com/posts/linux/2018-10-07-supervisor/</guid><description>&lt;p&gt;Supervisor (&lt;a href="http://supervisord.org"&gt;supervisord.org&lt;/a&gt;) is a Python-based process management tool that makes it easy to start, stop, and restart long-running processes — not just Python programs, but any executable. It can manage individual processes or bring up entire groups of services at once, which is especially useful for recovering from server failures quickly.&lt;/p&gt;
&lt;p&gt;Here is the quick summary if you are short on time:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If you need to manage &lt;strong&gt;multiple application processes&lt;/strong&gt; (queue workers, cron-like tasks, scrapers, utility scripts), Supervisor remains an excellent choice.&lt;/li&gt;
&lt;li&gt;If you want native OS-level service management with deep Linux integration, go with &lt;strong&gt;systemd&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;For Node.js-only deployments, &lt;strong&gt;PM2&lt;/strong&gt; works well, but Supervisor is better suited for managing processes across different languages.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="supervisor-vs-systemd-vs-pm2--choosing-the-right-tool"&gt;Supervisor vs systemd vs PM2 — Choosing the Right Tool&lt;a href="#supervisor-vs-systemd-vs-pm2--choosing-the-right-tool" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Criteria&lt;/th&gt;
 &lt;th&gt;Supervisor&lt;/th&gt;
 &lt;th&gt;systemd&lt;/th&gt;
 &lt;th&gt;PM2&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Best for&lt;/td&gt;
 &lt;td&gt;Multi-process management (polyglot)&lt;/td&gt;
 &lt;td&gt;System-level service management&lt;/td&gt;
 &lt;td&gt;Node.js application management&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Learning curve&lt;/td&gt;
 &lt;td&gt;Moderate&lt;/td&gt;
 &lt;td&gt;Steep&lt;/td&gt;
 &lt;td&gt;Low&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Boot startup&lt;/td&gt;
 &lt;td&gt;Supported&lt;/td&gt;
 &lt;td&gt;Native (strongest)&lt;/td&gt;
 &lt;td&gt;Supported&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Log management&lt;/td&gt;
 &lt;td&gt;Basic&lt;/td&gt;
 &lt;td&gt;Strong&lt;/td&gt;
 &lt;td&gt;User-friendly&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Target audience&lt;/td&gt;
 &lt;td&gt;Ops / backend / multi-script setups&lt;/td&gt;
 &lt;td&gt;Linux ops teams&lt;/td&gt;
 &lt;td&gt;Node.js developers&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;p&gt;Practical advice: If your production environment already uses systemd extensively, stick with systemd. When you need to quickly unify process management across multiple languages and services, Supervisor is still a cost-effective solution.&lt;/p&gt;</description></item><item><title>IP Addresses and CIDR Explained: A Complete Networking Guide</title><link>http://www.heyuan110.com/posts/linux/2018-10-06-ip-cidr/</link><pubDate>Sat, 06 Oct 2018 00:00:00 +0000</pubDate><guid>http://www.heyuan110.com/posts/linux/2018-10-06-ip-cidr/</guid><description>&lt;p&gt;Every device on the internet needs an &lt;strong&gt;IP address&lt;/strong&gt; to communicate. Whether you are configuring cloud infrastructure, debugging connectivity issues, or setting up container networks, a solid grasp of IP addressing and CIDR is essential. This guide walks through IPv4 address structure, the legacy class system, subnet masks, and modern CIDR notation from the ground up.&lt;/p&gt;</description></item><item><title>AWS EKK Log System Setup: Elasticsearch + Kinesis + Kibana Hands-On Guide</title><link>http://www.heyuan110.com/posts/elasticsearch/2018-09-12-log-ekk/</link><pubDate>Wed, 12 Sep 2018 18:52:59 +0800</pubDate><guid>http://www.heyuan110.com/posts/elasticsearch/2018-09-12-log-ekk/</guid><description>&lt;p&gt;EKK is a log collection stack built entirely on AWS managed services: &lt;strong&gt;Amazon Elasticsearch Service&lt;/strong&gt;, &lt;strong&gt;Amazon Kinesis&lt;/strong&gt;, and &lt;strong&gt;Kibana&lt;/strong&gt;. Compared to a self-managed ELK stack, EKK is significantly easier to set up and maintain since AWS handles the infrastructure. Here is the basic architecture:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://d2908q01vomqb2.cloudfront.net/472b07b9fcf2c2451e8781e944bf5f77cd8457c8/2017/09/07/1-2.png"
 alt="EKK Architecture"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 
 
/&gt;
&lt;/p&gt;
&lt;p&gt;This guide focuses on the practical aspects of collecting Nginx logs and getting them into Elasticsearch with the correct field mappings, rather than covering every AWS console click.&lt;/p&gt;</description></item><item><title>Elasticsearch Tutorial: Core Concepts of Indices, Documents, and Query APIs</title><link>http://www.heyuan110.com/posts/elasticsearch/2018-09-12-elasticsearch/</link><pubDate>Wed, 12 Sep 2018 18:52:59 +0800</pubDate><guid>http://www.heyuan110.com/posts/elasticsearch/2018-09-12-elasticsearch/</guid><description>&lt;p&gt;&lt;img src="https://raw.githubusercontent.com/heyuan110/static-source/master/cover/es.jpg"
 alt=""
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 
 
/&gt;
&lt;/p&gt;
&lt;p&gt;Elasticsearch (ES) is an open-source search engine built on Apache Lucene. It is the go-to solution for full-text search, capable of storing, searching, and analyzing massive volumes of data in near real-time. Companies like GitHub and Stack Overflow use it at scale.&lt;/p&gt;
&lt;h2 id="core-concepts-es-vs-relational-databases"&gt;Core Concepts: ES vs. Relational Databases&lt;a href="#core-concepts-es-vs-relational-databases" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;If you come from a relational database background, the following mapping will help you understand ES terminology quickly:&lt;/p&gt;</description></item><item><title>ELK Stack Setup Guide: Elasticsearch + Logstash + Kibana + Kafka Full Architecture</title><link>http://www.heyuan110.com/posts/elasticsearch/2018-09-11-log-elk/</link><pubDate>Tue, 11 Sep 2018 20:02:19 +0800</pubDate><guid>http://www.heyuan110.com/posts/elasticsearch/2018-09-11-log-elk/</guid><description>&lt;p&gt;Logs are essential for understanding system health &amp;ndash; they include system logs, application logs, and security logs. Operations and development teams rely on logs to monitor servers, track application behavior, identify errors, and trace root causes. A reliable, secure, and scalable log collection and analysis solution makes troubleshooting significantly easier when things go wrong.&lt;/p&gt;
&lt;p&gt;This guide compares three common ELK deployment patterns and walks through a full production setup:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Filebeat -&amp;gt; Elasticsearch -&amp;gt; Kibana&lt;/li&gt;
&lt;li&gt;Filebeat -&amp;gt; Logstash -&amp;gt; Kafka &amp;amp; ZooKeeper -&amp;gt; Logstash -&amp;gt; Elasticsearch -&amp;gt; Kibana&lt;/li&gt;
&lt;li&gt;Filebeat -&amp;gt; Kafka &amp;amp; ZooKeeper -&amp;gt; Logstash -&amp;gt; Elasticsearch -&amp;gt; Kibana&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="architecture-overview"&gt;Architecture Overview&lt;a href="#architecture-overview" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;img src="https://raw.githubusercontent.com/heyuan110/static-source/master/media/15525328567089.jpg"
 alt=""
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 
 
/&gt;
&lt;/p&gt;</description></item><item><title>Amazon Redshift Performance Tuning: VACUUM, ANALYZE, and Operations Best Practices</title><link>http://www.heyuan110.com/posts/datawarehouse/2018-08-09-dw-redshift/</link><pubDate>Thu, 09 Aug 2018 16:03:05 +0800</pubDate><guid>http://www.heyuan110.com/posts/datawarehouse/2018-08-09-dw-redshift/</guid><description>&lt;p&gt;&lt;img src="http://www.heyuan110.com/posts/datawarehouse/2018-08-09-dw-redshift/cover.webp"
 alt="Amazon Redshift performance tuning guide"
 
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 width="1200"
 height="673"
/&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Amazon Redshift&lt;/strong&gt; is AWS&amp;rsquo;s fully managed cloud data warehouse built on columnar storage and massively parallel processing (MPP) architecture. It can deliver sub-second query performance on petabyte-scale datasets. However, as data is continuously inserted and deleted, table performance gradually degrades &amp;ndash; and that&amp;rsquo;s where VACUUM and ANALYZE come in.&lt;/p&gt;
&lt;p&gt;This article covers Redshift&amp;rsquo;s performance optimization strategies in depth, including all six VACUUM types, ANALYZE statistics updates, and practical commands for day-to-day operations.&lt;/p&gt;</description></item><item><title>Charles Proxy Tutorial: HTTP/HTTPS Interception, Mock Data, and Debugging</title><link>http://www.heyuan110.com/posts/macos/charles/</link><pubDate>Sat, 15 Aug 2015 11:33:11 +0800</pubDate><guid>http://www.heyuan110.com/posts/macos/charles/</guid><description>&lt;p&gt;Charles is one of the most popular network debugging tools on macOS. It works as an HTTP proxy, allowing you to inspect, intercept, and modify network traffic between your device and the internet. This guide covers the most practical use cases for mobile and web developers.&lt;/p&gt;</description></item><item><title>Oh My Zsh Setup Guide: Build a Productive Terminal Environment</title><link>http://www.heyuan110.com/posts/linux/2015-06-17-shell-zsh/</link><pubDate>Wed, 17 Jun 2015 00:00:00 +0000</pubDate><guid>http://www.heyuan110.com/posts/linux/2015-06-17-shell-zsh/</guid><description>&lt;p&gt;If you spend any time in a terminal on Linux or macOS, you owe it to yourself to move beyond the default Bash experience. &lt;strong&gt;Zsh&lt;/strong&gt; paired with &lt;strong&gt;Oh My Zsh&lt;/strong&gt; transforms your shell into something far more capable and enjoyable to use. This guide walks you through the entire setup — from installing Zsh to fine-tuning performance — so you can get more done on the &lt;a href="http://www.heyuan110.com/posts/linux/2020-03-19-linux-mac-commands/"&gt;command line&lt;/a&gt; with less effort.&lt;/p&gt;</description></item><item><title>About</title><link>http://www.heyuan110.com/about/</link><pubDate>Mon, 15 Mar 2010 00:00:00 +0000</pubDate><guid>http://www.heyuan110.com/about/</guid><description>&lt;h2 id="the-short-version"&gt;The Short Version&lt;a href="#the-short-version" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;m Bruce. I write about AI engineering — the kind of stuff you actually need when building with LLMs, not the hype.&lt;/p&gt;
&lt;p&gt;10+ years building backend systems (Java, Go, cloud-native). Since 2024, fully focused on AI: coding agents, multi-agent architecture, and making AI tools work in real projects.&lt;/p&gt;</description></item></channel></rss>