<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Long Wang</title>
		<link>https://wanglong.cv/</link>
		<description>Recent content on Long Wang</description>
		<generator>Hugo</generator>
		<language>en-US</language>
		
		
		
		
			<lastBuildDate>Mon, 10 Aug 2026 00:00:00 +0000</lastBuildDate>
		
			<atom:link href="https://wanglong.cv/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>What Does TCP listen() Backlog Actually Control on Linux?</title>
				<link>https://wanglong.cv/articles/tcp-listen-backlog-linux/</link>
				<pubDate>Mon, 10 Aug 2026 00:00:00 +0000</pubDate>
				<guid>https://wanglong.cv/articles/tcp-listen-backlog-linux/</guid>
				<description>&lt;p&gt;What does the second argument to &lt;code&gt;listen()&lt;/code&gt; control?&lt;/p&gt;&#xA;&lt;div class=&#34;code-block&#34;&gt;&#xA;  &lt;button class=&#34;code-block__copy&#34; type=&#34;button&#34; data-copy-code data-copied-label=&#34;Copied&#34;&gt;Copy&lt;/button&gt;&#xA;  &lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-c&#34; data-lang=&#34;c&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nf&#34;&gt;listen&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sockfd&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;backlog&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;You will find three answers: the queue of incomplete handshakes, the queue of completed connections waiting for &lt;code&gt;accept()&lt;/code&gt;, or the sum of both. On modern Linux, the accurate answer needs two layers.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;At the API level, &lt;code&gt;backlog&lt;/code&gt; sets the nominal capacity of the accept queue. In Linux 6.10, the same stored value also participates in deciding when incomplete SYN requests are considered full, so it indirectly affects SYN-cookie or drop behavior too.&lt;/p&gt;</description>
			</item>
			<item>
				<title>How epoll Wakes a Waiting Thread in the Linux Kernel</title>
				<link>https://wanglong.cv/articles/epoll-kernel-wakeup-mechanism/</link>
				<pubDate>Wed, 05 Aug 2026 00:00:00 +0000</pubDate>
				<guid>https://wanglong.cv/articles/epoll-kernel-wakeup-mechanism/</guid>
				<description>&lt;p&gt;Most explanations of &lt;code&gt;epoll&lt;/code&gt; stop at two data structures: a red-black tree for registered descriptors and a ready list for events. That leaves the interesting questions unanswered.&lt;/p&gt;&#xA;&lt;p&gt;Who puts a socket on the ready list? How does &lt;code&gt;epoll_ctl(ADD)&lt;/code&gt; connect an ordinary socket to an epoll instance? Where does a thread in &lt;code&gt;epoll_wait()&lt;/code&gt; sleep? What happens when another event arrives while the kernel is copying results to user space?&lt;/p&gt;&#xA;&lt;p&gt;This article follows the normal readiness path in Linux 6.10. Device drivers, NAPI, protocol processing, and busy polling have additional branches; the focus here is the boundary where a pollable file meets epoll.&lt;/p&gt;</description>
			</item>
			<item>
				<title>What Actually Happens During a Linux System Call on x86-64?</title>
				<link>https://wanglong.cv/articles/linux-system-call-x86-64/</link>
				<pubDate>Sun, 02 Aug 2026 00:00:00 +0000</pubDate>
				<guid>https://wanglong.cv/articles/linux-system-call-x86-64/</guid>
				<description>&lt;p&gt;Calling &lt;code&gt;read()&lt;/code&gt;, &lt;code&gt;write()&lt;/code&gt;, or &lt;code&gt;connect()&lt;/code&gt; looks like calling an ordinary C function: pass arguments, execute code, receive a return value. Under load, the boundary becomes visible. A service can show high &lt;code&gt;sys%&lt;/code&gt;, and a profile can contain thousands of stacks entering through &lt;code&gt;entry_SYSCALL_64&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Be precise about what those observations mean. &lt;code&gt;sys%&lt;/code&gt; includes all CPU time spent in the kernel—not just the fixed cost of crossing the privilege boundary, but also VFS work, protocol processing, copying, faults, and drivers. Seeing &lt;code&gt;entry_SYSCALL_64&lt;/code&gt; identifies the entrance, not the expensive room further inside.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Why Fewer Syscalls Don&#39;t Make io_uring Faster Than epoll</title>
				<link>https://wanglong.cv/articles/io-uring-vs-epoll-performance/</link>
				<pubDate>Tue, 28 Jul 2026 00:00:00 +0000</pubDate>
				<guid>https://wanglong.cv/articles/io-uring-vs-epoll-performance/</guid>
				<description>&lt;p&gt;Moving a network service from &lt;code&gt;epoll&lt;/code&gt; to &lt;code&gt;io_uring&lt;/code&gt; can reduce its system-call count while leaving QPS unchanged. P99 latency can even get worse.&lt;/p&gt;&#xA;&lt;p&gt;There is no contradiction. A system call is only one line item in an I/O path. Data copies, protocol processing, scheduling, cache locality, application work, and queueing all remain. &lt;code&gt;io_uring&lt;/code&gt; changes how applications exchange requests and completions with the kernel; it does not make the rest of that work disappear.&lt;/p&gt;</description>
			</item>
			<item>
				<title>10M-Token Context Windows: What Fits Is Not What Works</title>
				<link>https://wanglong.cv/articles/long-context-lost-in-middle/</link>
				<pubDate>Wed, 22 Jul 2026 00:00:00 +0000</pubDate>
				<guid>https://wanglong.cv/articles/long-context-lost-in-middle/</guid>
				<description>&lt;p&gt;A very common scene: a user uploads a hundred-page technical manual and asks the model to find one interface parameter limit on page 82. The document is not even that long by today&amp;rsquo;s standards, and the answer is genuinely in there. The model replies, &amp;ldquo;I could not find that information.&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;Before blaming the model, rule out the ordinary suspects. The PDF parser may have dropped a table. The application layer may have truncated the input. The product may retrieve from the file instead of passing the full text at all. Only after you confirm that the target content actually entered the context, and test it placed at the beginning, the middle, and the end, can you call it a positional problem.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Redis Distributed Locks: Fine for Efficiency, Not Enough for Correctness</title>
				<link>https://wanglong.cv/articles/redis-distributed-lock-pitfalls/</link>
				<pubDate>Wed, 15 Jul 2026 00:00:00 +0000</pubDate>
				<guid>https://wanglong.cv/articles/redis-distributed-lock-pitfalls/</guid>
				<description>&lt;p&gt;I keep seeing the same line in design docs and interview answers:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;We take a Redis lock with &lt;code&gt;SET ... NX PX&lt;/code&gt;, with an expiry so a crashed process cannot deadlock anyone, and Redisson&amp;rsquo;s watchdog renews the lease while the job runs.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;That is a respectable answer. It shows you know how to &lt;em&gt;operate&lt;/em&gt; a Redis lock.&lt;/p&gt;&#xA;&lt;p&gt;But it stops one question short of the one that actually matters:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;While you believe you still hold the lock, is it possible the lock already belongs to someone else?&lt;/p&gt;</description>
			</item>
			<item>
				<title>mmap() vs read(): When Zero-Copy Is Actually Slower</title>
				<link>https://wanglong.cv/articles/mmap-vs-read-performance/</link>
				<pubDate>Mon, 13 Jul 2026 00:00:00 +0000</pubDate>
				<guid>https://wanglong.cv/articles/mmap-vs-read-performance/</guid>
				<description>&lt;p&gt;I have heard the same answer in interviews and design reviews for years: ask how to speed up reading a large file, and someone will say:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Use &lt;code&gt;mmap()&lt;/code&gt;. It is zero-copy, so it must be faster than &lt;code&gt;read()&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;A file-backed mapping can avoid copying data from the page cache into a separate user-space buffer. But “zero-copy” does not mean zero cost, and it certainly does not guarantee lower latency.&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;mmap()&lt;/code&gt; replaces one set of costs with another. It can save system calls and memory copies, but it introduces page faults, page-table work, TLB pressure, and I/O that may surface inside an ordinary pointer access.&lt;/p&gt;</description>
			</item>
			<item>
				<title>fork() in Multithreaded Programs: The Child Gets the State, Not the Threads</title>
				<link>https://wanglong.cv/articles/fork-multithread-risks/</link>
				<pubDate>Fri, 10 Jul 2026 00:00:00 +0000</pubDate>
				<guid>https://wanglong.cv/articles/fork-multithread-risks/</guid>
				<description>&lt;p&gt;I keep hearing the same one-liner in design reviews and interview answers:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;code&gt;fork()&lt;/code&gt; creates a copy of the process.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;True, and misleading in exactly one way: it makes you wonder whether the threads come along too. If the parent has eight threads, does the child get eight?&lt;/p&gt;&#xA;&lt;p&gt;No. After &lt;code&gt;fork()&lt;/code&gt; in a multithreaded process, the child contains only the thread that called &lt;code&gt;fork()&lt;/code&gt;. The other threads do not continue in the child.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Claude Opus 4.8 Released, But Not Showing Up in Claude Code? Here&#39;s the Fix</title>
				<link>https://wanglong.cv/articles/claude-opus-4-8-not-showing-in-claude-code/</link>
				<pubDate>Fri, 29 May 2026 00:00:00 +0000</pubDate>
				<guid>https://wanglong.cv/articles/claude-opus-4-8-not-showing-in-claude-code/</guid>
				<description>&lt;p&gt;Anthropic shipped Claude Opus 4.8 on May 28, and like a lot of people, I opened Claude Code, ran &lt;code&gt;/model&lt;/code&gt;, and&amp;hellip; it wasn&amp;rsquo;t there.&lt;/p&gt;&#xA;&lt;p&gt;If you&amp;rsquo;re staring at a model picker that stubbornly refuses to list Opus 4.8, this post is the two-minute fix — plus an explanation of &lt;em&gt;why&lt;/em&gt; it happens, because the reason turns out to be more interesting than &amp;ldquo;just update.&amp;rdquo;&lt;/p&gt;&#xA;&lt;h2 id=&#34;tldr&#34;&gt;TL;DR&lt;/h2&gt;&#xA;&lt;p&gt;Claude Opus 4.8 requires &lt;strong&gt;Claude Code v2.1.154 or newer&lt;/strong&gt;. If you&amp;rsquo;re on anything below that line, the model simply won&amp;rsquo;t appear in the picker. Run:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Hermes in Practice: Two Saves and a Sharp Edge</title>
				<link>https://wanglong.cv/articles/hermes-agent-for-daily-ops/</link>
				<pubDate>Thu, 21 May 2026 00:00:00 +0000</pubDate>
				<guid>https://wanglong.cv/articles/hermes-agent-for-daily-ops/</guid>
				<description>&lt;p&gt;Hermes has been part of my daily setup for a while. Most of the time it just quietly does its job — but a few moments from these months are worth writing down.&lt;/p&gt;&#xA;&lt;h2 id=&#34;a-diagnosis-from-a-machine-id-already-left&#34;&gt;A diagnosis from a machine I&amp;rsquo;d already left&lt;/h2&gt;&#xA;&lt;p&gt;This one was the unexpected one.&lt;/p&gt;&#xA;&lt;p&gt;One afternoon I was testing a program on my office MacBook. Initial spot-checks looked clean, so I packed up and headed home for the day. On the way back, I got a call from a colleague: the dashboard was showing odd behavior from my service, but it was running on my &lt;em&gt;personal&lt;/em&gt; office machine, so he couldn&amp;rsquo;t reach the logs himself.&lt;/p&gt;</description>
			</item>
			<item>
				<title>OpenClaw Telegram Multi-Agent Routing: Preventing Cross-Talk</title>
				<link>https://wanglong.cv/articles/openclaw-telegram-multi-agent-multi-bot-routing/</link>
				<pubDate>Fri, 27 Feb 2026 00:00:00 +0000</pubDate>
				<guid>https://wanglong.cv/articles/openclaw-telegram-multi-agent-multi-bot-routing/</guid>
				<description>Two Telegram bots, two isolated agents, zero cross-talk — but only if you respect OpenClaw’s default-agent and multi-account rules. Here’s the failure mode I hit and the canonical config that fixes it.</description>
			</item>
			<item>
				<title>Claude Code with LongCat-Flash-Chat: Surprising Performance</title>
				<link>https://wanglong.cv/articles/claude-code-with-longcat-flash-chat/</link>
				<pubDate>Tue, 23 Sep 2025 00:00:00 +0000</pubDate>
				<guid>https://wanglong.cv/articles/claude-code-with-longcat-flash-chat/</guid>
				<description>&lt;p&gt;As a long-time Claude Code user, I&amp;rsquo;m always searching for cost-effective AI programming assistants. From DeepSeek and GLM-4.5 to Kimi-k2, I&amp;rsquo;ve tested multiple models. Recently, Meituan&amp;rsquo;s open source LongCat-Flash-Chat caught my attention, and after several days of intensive testing, I must say: this is one of my most satisfying experiences to date.&lt;/p&gt;&#xA;&lt;h2 id=&#34;longcat-flash-chat-meituans-technical-showcase&#34;&gt;LongCat-Flash-Chat: Meituan&amp;rsquo;s Technical Showcase&lt;/h2&gt;&#xA;&lt;p&gt;LongCat-Flash-Chat is Meituan&amp;rsquo;s open source large language model, built on the company&amp;rsquo;s extensive data and technical expertise accumulated in the local services domain. This model not only demonstrates Meituan&amp;rsquo;s capabilities in the AI field but, more importantly, provides developers with a genuinely practical free AI tool.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Claude Code Multi-Model Launcher: Unified AI Provider Access</title>
				<link>https://wanglong.cv/articles/claude-code-multi-model-launcher/</link>
				<pubDate>Wed, 17 Sep 2025 00:00:00 +0000</pubDate>
				<guid>https://wanglong.cv/articles/claude-code-multi-model-launcher/</guid>
				<description>&lt;p&gt;After months of testing various AI models with Claude Code - from my positive experiences with &lt;a href=&#34;https://wanglong.cv/articles/claude-code-with-deepseek/&#34;&gt;DeepSeek v3.1&lt;/a&gt; and &lt;a href=&#34;https://wanglong.cv/articles/claude-code-with-glm-4.5/&#34;&gt;GLM-4.5&lt;/a&gt; to the frustrating encounter with Qwen3-Coder-Plus - I&amp;rsquo;ve developed a practical solution for developers who want to easily access multiple AI providers through a unified interface.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;m excited to share this multi-model launcher. This isn&amp;rsquo;t just another configuration - it&amp;rsquo;s a streamlined approach that addresses the core challenges I faced when working with different models.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Integrating Kimi-k2 with Claude Code: An Experience Report</title>
				<link>https://wanglong.cv/articles/claude-code-with-kimi-k2/</link>
				<pubDate>Mon, 15 Sep 2025 00:00:00 +0000</pubDate>
				<guid>https://wanglong.cv/articles/claude-code-with-kimi-k2/</guid>
				<description>&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;&#xA;&lt;p&gt;As an AI enthusiast and developer, I&amp;rsquo;m always exploring ways to integrate powerful tools into my workflow. My primary coding assistant, Claude Code, is already configured with several models, including DeepSeek and GLM. In the spirit of endless tinkering, I decided to see how the much-talked-about Kimi large model from Moonshot AI would perform.&lt;/p&gt;&#xA;&lt;p&gt;This article chronicles my experience integrating the Kimi-k2 model into Claude Code, from initial setup to real-world usage and my final thoughts.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Claude Code with Qwen3-Coder-Plus: My Test Results</title>
				<link>https://wanglong.cv/articles/claude-code-with-qwen3-coder-plus/</link>
				<pubDate>Mon, 08 Sep 2025 00:00:00 +0000</pubDate>
				<guid>https://wanglong.cv/articles/claude-code-with-qwen3-coder-plus/</guid>
				<description>After testing Qwen3-Coder-Plus from Alibaba Cloud with Claude Code, I discovered serious issues: poor code comprehension, 2x token billing discrepancies, and incompetent support responses that made this the worst AI coding assistant experience.</description>
			</item>
			<item>
				<title>Claude Code with GLM-4.5: Setup, Limits, and Value</title>
				<link>https://wanglong.cv/articles/claude-code-with-glm-4.5/</link>
				<pubDate>Sat, 06 Sep 2025 00:00:00 +0000</pubDate>
				<guid>https://wanglong.cv/articles/claude-code-with-glm-4.5/</guid>
				<description>I explored Zhipu AI&amp;rsquo;s GLM-4.5 integration with Claude Code. With 20M free tokens and competitive pricing, it offers a compelling alternative, though with performance comparable to DeepSeek v3.1 despite marketing claims.</description>
			</item>
			<item>
				<title>Claude Code with DeepSeek v3.1: Setup and Trade-offs</title>
				<link>https://wanglong.cv/articles/claude-code-with-deepseek/</link>
				<pubDate>Sun, 24 Aug 2025 00:00:00 +0000</pubDate>
				<guid>https://wanglong.cv/articles/claude-code-with-deepseek/</guid>
				<description>After experiencing limitations with Gemini CLI&amp;rsquo;s reduced free tier and frequent API errors, I discovered how to configure Claude Code with DeepSeek v3.1. This setup provides an excellent AI coding experience at a fraction of the cost, though with some trade-offs in context length.</description>
			</item>
			<item>
				<title>Gemini CLI Review: Hands-On Terminal AI Assistant Experience</title>
				<link>https://wanglong.cv/articles/beyond-the-gui-my-experience-with-gemini-cli/</link>
				<pubDate>Wed, 02 Jul 2025 00:00:00 +0000</pubDate>
				<guid>https://wanglong.cv/articles/beyond-the-gui-my-experience-with-gemini-cli/</guid>
				<description>Gemini CLI review: terminal AI assistant revolutionizing coding. Compare with Cursor IDE, deep terminal integration, massive context windows, free access advantages for developers.</description>
			</item>
			<item>
				<title>A Beginner&#39;s Guide to Installing and Using ComfyUI on macOS</title>
				<link>https://wanglong.cv/articles/installing-comfyui-on-macos/</link>
				<pubDate>Fri, 20 Jun 2025 00:00:00 +0000</pubDate>
				<guid>https://wanglong.cv/articles/installing-comfyui-on-macos/</guid>
				<description>Step-by-step ComfyUI installation on macOS Apple Silicon. Setup, configuration, optimization tips for stable diffusion workflow automation on Mac.</description>
			</item>
			<item>
				<title>Cloudflare MCP Server: Local to Global OAuth Deployment</title>
				<link>https://wanglong.cv/articles/deploying-remote-mcp-server-cloudflare/</link>
				<pubDate>Fri, 09 May 2025 00:00:00 +0000</pubDate>
				<guid>https://wanglong.cv/articles/deploying-remote-mcp-server-cloudflare/</guid>
				<description>My journey exploring Cloudflare&amp;rsquo;s remote MCP server deployment, transitioning from local stdio-based servers to cloud-hosted, OAuth-enabled MCP services accessible worldwide.</description>
			</item>
			<item>
				<title>Building an MCP Calculator Server - From Python to Go</title>
				<link>https://wanglong.cv/articles/building-mcp-calculator-server/</link>
				<pubDate>Wed, 07 May 2025 00:00:00 +0000</pubDate>
				<guid>https://wanglong.cv/articles/building-mcp-calculator-server/</guid>
				<description>A comprehensive guide to building a Model Context Protocol (MCP) calculator server using Go and go-zero framework, transitioning from Python&amp;rsquo;s stdio transport to Go&amp;rsquo;s SSE-based approach.</description>
			</item>
			<item>
				<title>MCP Client with OpenAI: A Practical Python Guide</title>
				<link>https://wanglong.cv/articles/building-mcp-client-with-openai-support/</link>
				<pubDate>Thu, 24 Apr 2025 00:00:00 +0000</pubDate>
				<guid>https://wanglong.cv/articles/building-mcp-client-with-openai-support/</guid>
				<description>A comprehensive guide on modifying Anthropic&amp;rsquo;s official MCP client tutorial to work with OpenAI and other compatible APIs, opening up possibilities for diverse model integration.</description>
			</item>
			<item>
				<title>Building an MCP Weather Server - A Hands-On Guide</title>
				<link>https://wanglong.cv/articles/building-mcp-weather-server/</link>
				<pubDate>Mon, 20 Jan 2025 00:00:00 +0000</pubDate>
				<guid>https://wanglong.cv/articles/building-mcp-weather-server/</guid>
				<description>A comprehensive walkthrough of building a Model Context Protocol (MCP) weather server following Anthropic&amp;rsquo;s tutorial, from setup to deployment and integration with Claude Desktop.</description>
			</item>
			<item>
				<title>DeepSeek-V3: Open-Source 671B Model Rivals GPT-4o</title>
				<link>https://wanglong.cv/articles/deepseek-unveils-deepseek-v3/</link>
				<pubDate>Thu, 26 Dec 2024 00:00:00 +0000</pubDate>
				<guid>https://wanglong.cv/articles/deepseek-unveils-deepseek-v3/</guid>
				<description>DeepSeek-V3: 671B open-source model matches GPT-4o performance at 3x speed. Complete analysis of capabilities and AI development implications.</description>
			</item>
			<item>
				<title>DeepSeek Disk Cache: API Cost Reduction for LLMs</title>
				<link>https://wanglong.cv/articles/deepseek-api-disk-cache-innovation/</link>
				<pubDate>Fri, 02 Aug 2024 00:00:00 +0000</pubDate>
				<guid>https://wanglong.cv/articles/deepseek-api-disk-cache-innovation/</guid>
				<description>DeepSeek&amp;rsquo;s disk caching slashes LLM API costs 90% while boosting response times. Game-changing innovation for developers using AI APIs regularly.</description>
			</item>
			<item>
				<title>Configuring VS Code with Local DeepSeek Coder V2</title>
				<link>https://wanglong.cv/articles/configuring-vscode-with-deepseek-coder-v2/</link>
				<pubDate>Sat, 22 Jun 2024 00:00:00 +0000</pubDate>
				<guid>https://wanglong.cv/articles/configuring-vscode-with-deepseek-coder-v2/</guid>
				<description>This article provides a complete guide to setting up and configuring VS Code to use the local DeepSeek Coder V2 model via Ollama, including installation, configuration, and optimization tips.</description>
			</item>
			<item>
				<title>Linux Processes vs Threads: NPTL and Clone() Explained</title>
				<link>https://wanglong.cv/articles/starting-with-processes-and-threads/</link>
				<pubDate>Tue, 24 Sep 2019 00:00:00 +0000</pubDate>
				<guid>https://wanglong.cv/articles/starting-with-processes-and-threads/</guid>
				<description>This article explains the differences between Linux processes and threads, focusing on how Linux implements threading with NPTL using the clone() system call.</description>
			</item>
			<item>
				<title>About Long Wang</title>
				<link>https://wanglong.cv/about/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://wanglong.cv/about/</guid>
				<description>&lt;p&gt;I’m an engineering leader who has been building backend, search, and AI systems since 2008. I currently serve as Department R&amp;amp;D Lead at TAL Education Group (TAL), where I lead teams and turn technology strategy into reliable delivery. My work spans backend infrastructure, distributed systems, Golang, big data, developer tools, and applied AI.&lt;/p&gt;&#xA;&lt;p&gt;Previously, I held engineering and management roles at Baidu, Tencent, and Sogou, with a focus on search engines and backend system architecture. I also co-founded the programming education company BestCode as Co-founder &amp;amp; CTO, gaining hands-on experience building a company and its technology from zero to one. I hold a Master’s degree in Computer Science from Tianjin University.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Archive</title>
				<link>https://wanglong.cv/archives/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://wanglong.cv/archives/</guid>
				<description></description>
			</item>
			<item>
				<title>Search</title>
				<link>https://wanglong.cv/search/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://wanglong.cv/search/</guid>
				<description></description>
			</item>
	</channel>
</rss>
