---
title: 午夜咖啡
summary: jolestar 的文章与笔记。
type: page
---

# 午夜咖啡

这里主要是一些关于系统、区块链、AI tooling 和长期技术演进的文章与笔记。

<!-- INDEX:START -->

- [About](./about/)
  <!-- mdorigin:index kind=directory -->

- [Projects](./projects/)
  <!-- mdorigin:index kind=directory -->

- [AI Coding 时代，好的编程习惯仍然重要](./ai-coding-good-programming-habits/)
  2026-04-27 21:32:11 · 人觉得简单的重构，对 Agent 不一定简单。清晰的代码结构不只是方便人读，也是在降低 Coding Agent 的任务复杂度。
  <!-- mdorigin:index kind=article -->

- [AgentInbox: 给 Agent 的收件箱](./agentinbox-pr-review-workflow/)
  2026-04-11 13:10:00 · Agent 也需要自己的收件箱：把 PR、review、CI 这些外部变化持续送回当前 session，并在需要时把它重新叫醒。
  <!-- mdorigin:index kind=article -->

- [Worktree 更适合作为一次性的执行目录](./worktree-as-ephemeral-execution-dir/)
  2026-04-03 · Worktree 更适合作为一次性的执行目录，不适合长期并行开发。至少对现在的 Codex / Claude Code 来说，更自然的方式是让它按需要创建、合并、清理 worktree。
  <!-- mdorigin:index kind=article -->

- [从 Claude Code 的未开放功能，看它与 Codex 对同一问题的不同解法](./claude-code-unreleased-features-and-codex/)
  2026-04-02 21:30:00 · 从 Claude Code 中尚未公开的 proactive、sleep / wake、channel、brief 和 remote ingress 这些抽象出发，对比 Claude Code 与 Codex 在解决长期在线 Agent 问题上的不同路径。
  <!-- mdorigin:index kind=article -->

- [Blog 迁移到 mdorigin 了](./mdorigin-after-blog-migration/)
  2026-03-31 · 这几天我把自己的 blog 迁到 mdorigin，又顺手补了搜索、渲染扩展和媒体分发链路。看起来是几件事，其实都在回答同一个问题：它到底该做什么。
  <!-- mdorigin:index kind=article -->

- [indexbind：面向 Markdown 的本地检索工具](./indexbind-local-markdown-search-tool/)
  2026-03-30 16:35:00 · indexbind 最早只是 mdorigin 的站内搜索需求，后来又在 workspace 的整库试验里长成一个面向 Markdown 的本地检索工具。
  <!-- mdorigin:index kind=article -->

- [Codex 的上下文压缩与连续性](./codex-context-compression-continuity/)
  2026-03-28 13:19:24 · 真正让我有感觉的，不是单次回答，而是在一个长 session 里，经过多轮上下文压缩之后，它还能把任务连续推进下去。
  <!-- mdorigin:index kind=article -->

- [mdorigin：面向 Agent 的内容发布工具](./mdorigin-agent-publishing-tool/)
  2026-03-27 08:26:58 · 我想要的不是又一个博客系统，而是一个面向 Agent 的内容发布工具。对人类浏览器默认返回 HTML，对工具和 Agent 直接返回 Markdown。
  <!-- mdorigin:index kind=article -->

- [用 webmcp-bridge 接入 X 和 Gemini](./webmcp-bridge-x-and-gemini/)
  2026-03-24 17:35:00 · 我不想等网站原生支持 WebMCP，于是先用 webmcp-bridge 把 X 和 Gemini 接进 Agent 工作流，回收自己的内容资产，也把配图和发布放进同一条链路里。
  <!-- mdorigin:index kind=article -->

- [UXC 已经有了最全的 Crypto 和 OnChain Skill 集合](./uxc-most-complete-crypto-onchain-skills/)
  2026-03-19 16:06:29 · 关键不只是 skill 数量多，而是 UXC 已经把交易所执行、实时订阅、链上研究、SQL/Graph 分析、DeFi 路由、节点直连和 gas 判断这些能力面收成了一层连续的执行面。
  <!-- mdorigin:index kind=article -->

- [Agent 作为账户，而不是 Bot](./agent-account-not-app-bot/)
  2026-03-17 11:09:15 · 如果未来 Agent 要真正进入 IM 和协作系统，关键不是多做一个 bot，而是把它当作账户来处理。
  <!-- mdorigin:index kind=article -->

- [两个实用的 UXC 浏览器 Skill：Chrome DevTools MCP 和 Playwright MCP](./two-practical-browser-skills/)
  2026-03-17 06:41:21 · 一个更接近真实调试上下文，一个更适合确定性自动化。关键不是浏览器工具本身，而是 UXC 把它们收成了稳定的调用面。
  <!-- mdorigin:index kind=article -->

- [UXC v0.12.1：消息订阅、IM 与事件驱动 Agent](./uxc-subscribe-and-im/)
  2026-03-16 03:57:44 · 当 Agent 开始处理持续流入的事件时，问题就不再是“能不能 call 接口”，而是是否有一套统一的订阅运行时。
  <!-- mdorigin:index kind=article -->

- [从和 AI 一起画架构图开始：WebMCP 与 webmcp-bridge](./webmcp-and-webmcp-bridge/)
  2026-03-15 10:22:38 · 真正有意思的不只是 AI 会不会画图，而是浏览器里的应用能力，能不能自然地接到本地 Agent 的工作流里。
  <!-- mdorigin:index kind=article -->

- [MCP Is Not the Problem: The Missing Execution Surface for Agents](./mcp-is-not-the-problem/)
  2026-03-13 01:39:47 · 真正缺的不是再吵一次 MCP vs API vs CLI，而是把 capability description、execution surface、workflow/orchestration 三层拆开来看。
  <!-- mdorigin:index kind=article -->

- [UXC v0.8.0：从协议适配到可直接调用的 skill](./uxc-v080-skills-and-url-first-cli/)
  2026-03-07 01:45:03 · UXC v0.8.0 不只是多了几个 skill，而是把 URL-first CLI、OAuth 两步流和协议适配思路讲得更完整了。
  <!-- mdorigin:index kind=article -->

- [Agent 需要事件驱动](./agent-needs-events-not-polling/)
  2026-03-05 02:33:43 · 只靠主 Agent 定时轮询 subagent，不但笨，而且费 token。要让 Agent 更主动，底层就需要事件驱动。
  <!-- mdorigin:index kind=article -->

- [MCP vs CLI 与调用层缺口](./mcp-vs-cli-needs-an-execution-layer/)
  2026-03-03 09:41:13 · 问题从来不是二选一，而是能力暴露和 Agent 调用之间，缺了一层可渐进披露、可组合、对 Agent 友好的调用层。
  <!-- mdorigin:index kind=article -->

- [从 MCP 到 SKILL（II）：把调用层补齐](./from-mcp-to-skill-ii/)
  2026-02-28 20:08:25 · 真正把 MCP 和 SKILL 拼起来时，缺的不是理念，而是一层可执行、可迁移、对 Agent 友好的通用调用入口。
  <!-- mdorigin:index kind=article -->

- [L2 要开疆拓土](./l2-should-expand-not-fight-for-throne/)
  2026-02-05 17:13:50 · 真正值得留下来的 L2，不是最像 L1 的那个，而是先跑出了 L1 不好承载的新场景，再逐步把安全性补齐。
  <!-- mdorigin:index kind=article -->

- [Moltbook 会昙花一现吗](./moltbook-beyond-ai-awakening/)
  2026-02-01 11:23:21 · Moltbook 值不值得认真看，不在于“AI 觉醒”这种噱头，而在于它是否把社交产品往 API-first 和 Agent 默认客户端的方向推了一步。
  <!-- mdorigin:index kind=article -->

- [AI 作为默认客户端的社交机会](./ai-as-default-client-for-social/)
  2026-01-24 00:39:14 · 真正可能重新打开去中心化社交机会窗口的，不一定是再造一个社交 App，而是 AI 先把社交网络的默认入口改掉。
  <!-- mdorigin:index kind=article -->

- [从 MCP 到 SKILL：关于 Agent 扩展机制的思考](./from-mcp-to-skill/)
  2026-01-14 23:34:02 · MCP 解决连接标准化，SKILL 解决工作流编排与状态外部化；当 Agent 进入复杂任务阶段，真正的关键不再是能力多少，而是上下文、状态和执行边界如何分层。
  <!-- mdorigin:index kind=article -->

- [AI 抬高了能力上限与交付标准](./ai-did-not-make-people-idle-it-raised-the-bar/)
  2026-01-01 11:54:47 · 效率工具真正带来的，往往不是工作量减少，而是外界对产出速度和复杂度的新预期。
  <!-- mdorigin:index kind=article -->

- [编程 Agent 的 API 成本](./api-cost-matters-for-coding-agents/)
  2025-12-31 12:23:10 · 如果要把 AI 真正接进 CI 和多 Agent 并行工作流，模型能力当然重要，但更硬的约束其实是 API 成本能不能低到可持续。
  <!-- mdorigin:index kind=article -->

- [从 issue 到 PR 的 AI coding 工作流](./holon-issue-to-pr-workflow/)
  2025-12-30 12:37:59 · 真正顺手的 AI coding 流程，不是聊天窗口里临时改几行代码，而是让工具直接接住 issue、交付 PR、再吃掉 review 和 CI 反馈。
  <!-- mdorigin:index kind=article -->

- [AI Coding 工作流中的上下文边界](./ai-coding-workflow-with-specialized-agents/)
  2025-12-22 10:01:40 · 更稳的 AI Coding 流程不是让一个 Agent 包打天下，而是把实现、审查和修复拆给不同角色，并限制各自上下文。
  <!-- mdorigin:index kind=article -->

- [x402 v2 与 x402x：把付费 API 推向可演进的标准](./x402-v2-and-x402x/)
  2025-12-12 04:24:22 · x402 v2 的关键不只是升级功能，而是把变化挪出核心协议，让付费 API 真正具备可扩展、可组合、可协同演进的结构。
  <!-- mdorigin:index kind=article -->

- [Vibe Coding 需要验收，不只是测试](./vibe-coding-needs-acceptance-not-just-tests/)
  2025-12-11 11:48:12 · 生成速度不是核心矛盾，真正困难的是如何确认 AI 给出的结果没有用一套漂亮输出掩盖逻辑错误。
  <!-- mdorigin:index kind=article -->

- [Deep Research 为什么适合形成市场](./shared-deep-research-market/)
  2025-12-06 17:45:29 · 这类服务的机会点不只在报告需求，而在很多高成本推理工作原本就被反复重复消耗。
  <!-- mdorigin:index kind=article -->

- [治安违法记录封存中的访问边界](./sealed-violation-records-do-not-expand-access-by-default/)
  2025-12-02 22:49:21 · 在讨论是否封存之前，先把当前谁有权访问、谁无权访问说清楚，比空谈安全感更重要。
  <!-- mdorigin:index kind=article -->

- [AI 工作流的扩张效应](./ai-workers-increase-our-appetite-for-more-work/)
  2025-12-02 02:14:15 · 自动化并不会天然带来轻松，很多时候它只是让人更容易不断追加新的任务和流程。
  <!-- mdorigin:index kind=article -->

- [AI 产品的两条路径：云入口与用户侧应用](./ai-cloud-entry-vs-user-native-apps/)
  2025-11-19 13:32:07 · 把 AI 想成下一个超级 App 是一种自然叙事，但另一条更值得重视的路径，是让 AI 回到用户侧，成为更原生、更贴身的个人应用层。
  <!-- mdorigin:index kind=article -->

- [从 Assistant 到 Entity](./from-assistant-to-entity/)
  2025-03-07 15:41:26 · 真正的 AI Agent 不会永远停留在“藏在用户背后的助手”阶段，它最终得成为带身份、能交互、可承担边界的独立节点。
  <!-- mdorigin:index kind=article -->

- [为什么我又切回了 Github Copilot](./why-i-switched-back-to-github-copilot/)
  2025-02-19 04:03:43 · 不是简单比较 Cursor 和 Copilot，而是一次更贴近真实项目的 AI 编程工作流总结。
  <!-- mdorigin:index kind=article -->

- [《黄仁勋传》中的 GPU 技术史](./gpu-technology-history-through-the-jen-hsun-huang-book/)
  2025-01-31 18:35:14 · 真正有意思的不是黄仁勋个人传奇，而是 NVIDIA 如何长期押注 GPU 通用计算，并熬到 CUDA 在 AI 时代爆发。
  <!-- mdorigin:index kind=article -->

- [Fully on-chain AI Agent 的可验证性](./fully-onchain-verifiable-ai-agent/)
  2025-01-03 09:21:32 · 如果一个 AI Agent 掌握资金、对外提供公共服务，那关键问题就不只是部署在哪，而是行为和上下文能否被验证。
  <!-- mdorigin:index kind=article -->

- [AI Agent 的现状与未来](./ai-agent-state-and-future/)
  2024-12-28 09:18:29 · 从 AI Agent 框架、应用入口、业务逻辑结合方式，到链上验证和基础设施要求的一次系统梳理。
  <!-- mdorigin:index kind=article -->

- [理解 Bitcoin：从 Free Software 到 Free Service](./bitcoin-from-free-software-to-free-service/)
  2024-11-15 09:06:22 · 把 Bitcoin 放回自由软件和开放服务的脉络里看。
  <!-- mdorigin:index kind=article -->

- [Polymarket 出圈之后的预测应用](./polymarket-and-social-prediction/)
  2024-11-07 03:12:45 · 不是抄一个 Polymarket，而是把预测市场往更低门槛的社交产品方向推。
  <!-- mdorigin:index kind=article -->

- [ETH 被批评过头了吗](./rethinking-eth-criticism/)
  2024-10-27 03:20:32 · 不是站队，而是一次相对克制的行业判断。
  <!-- mdorigin:index kind=article -->

- [Based Booster Rollup 的背景、实践和展望](./based-booster-rollup/)
  2024-10-21 02:08:43 · 从 L1/L2 关系和应用构建角度，重新看 Based Booster Rollup 的背景、实践与边界。
  <!-- mdorigin:index kind=article -->

- [给孩子解释股票、Crypto 和程序里的数字](./explaining-stocks-and-crypto-to-my-kid/)
  2024-10-06 04:48:22 · 用给孩子解释股票、Crypto 和程序的过程，把抽象概念拉回日常经验。
  <!-- mdorigin:index kind=article -->

- [广告模式如何把开放互联网推向封闭](./the-open-internet-closed-because-of-ads/)
  2024-10-05 14:31:17 · 当商业模式主要依赖广告时，谁控制终端入口和展示界面，谁就能攫取价值；平台自然会从开放互联走向封闭围墙。
  <!-- mdorigin:index kind=article -->

- [高考选专业中的家长角色](./major-choice-should-belong-to-the-student/)
  2024-07-01 14:35:23 · 专业选择首先是个人长期生活路径的选择；家长可以提供信息和判断，但不该把自己的风险偏好直接覆盖到孩子身上。
  <!-- mdorigin:index kind=article -->

- [Bitcoin 可编程性的链上与链外扩展](./bitcoin-programmability-expansion/)
  2024-05-28 12:25:29 · 把 Bitcoin 编程性扩展分成链上扩展和链外扩展两个大方向。
  <!-- mdorigin:index kind=article -->

- [链上资产如何实现跨层迁移](./cross-layer-asset-migration/)
  2024-04-20 05:04:42 · 围绕 Bitcoin 生态的新资产协议，讨论链上资产跨层迁移到底难在哪里。
  <!-- mdorigin:index kind=article -->

- [Stackable L2：一种新的区块链扩容方案](./stackable-l2/)
  2024-03-19 06:17:09 · 围绕互操作、状态读取和扩容路径的一次延伸思考。
  <!-- mdorigin:index kind=article -->

- [如何定义 Bitcoin L2](./how-to-define-bitcoin-l2/)
  2024-03-04 01:57:20 · 既讲技术边界，也讲生态边界。
  <!-- mdorigin:index kind=article -->

- [图币转换热背后的应用意义](./nft-ft-conversion-meaning/)
  2024-02-17 04:25:07 · 把 NFT/FT 转换热从机制炒作拉回应用层。
  <!-- mdorigin:index kind=article -->

- [从 ERC404 看图币二象性](./erc404-code-and-asset-duality/)
  2024-02-06 07:57:49 · 从 ERC404 的代码实现出发，看图币二象性在工程上到底意味着什么。
  <!-- mdorigin:index kind=article -->

- [模块化区块链研报点评，以及 Bitcoin 生态被漏掉的部分](./modular-blockchain-research-note/)
  2024-01-25 15:15:11 · 借一份模块化区块链研报，补上 Bitcoin 生态在这条叙事里常被忽略的部分。
  <!-- mdorigin:index kind=article -->

- [铭文与大规模用户、Autonomous World](./inscriptions-autonomous-world/)
  2024-01-22 01:57:07 · 把铭文从投机叙事里拽回到用户进入方式和应用构建方式上。
  <!-- mdorigin:index kind=article -->

- [Move 开发者大会上那位一直在记笔记的大姐](./move-dev-conference-note/)
  2024-01-14 08:45:47 · 从大会上一位持续记笔记的参与者，看到技术社区里更长期也更朴素的投入。
  <!-- mdorigin:index kind=article -->

- [从半同质化资产角度看铭文](./semi-fungible-assets-and-inscriptions/)
  2023-12-21 01:55:25 · 把铭文放回资产类型和发行方式，而不是只停在技术表象。
  <!-- mdorigin:index kind=article -->

- [为什么以及如何学习智能合约开发](./why-learn-smart-contract-development/)
  2023-11-11 03:25:25 · 面向开发者讨论智能合约到底能做什么，以及今天为什么还值得学。
  <!-- mdorigin:index kind=article -->

- [写在 Rooch v0.2 版本发布之后](./rooch-needed-an-early-external-explanation/)
  2023-11-02 14:18:23 · 技术人天然容易等系统更完备再拿出来，但越早把方向讲清楚，越容易拿到真实反馈，也越能逼自己说清楚边界。
  <!-- mdorigin:index kind=article -->

- [Bitcoin 的 Layer2 应该怎么做](./how-bitcoin-layer2-should-work/)
  2023-10-26 01:53:43 · 从一条做过又放弃过的路线出发，反过来解释什么更重要。
  <!-- mdorigin:index kind=article -->

- [把火火兔改造成能陪娃聊天的机器人](./chatgpt-toy-rabbit/)
  2023-10-05 15:25:47 · 把儿童玩具接上大模型之后，重新想一遍陪伴式 AI 产品该怎么做。
  <!-- mdorigin:index kind=article -->

- [Token2049 之后和开发者聊出的转机](./after-token2049-talk-with-builders/)
  2023-09-25 01:32:11 · 从 Token2049 之后和建设者的交流里，看这一轮周期更值得关注的信号。
  <!-- mdorigin:index kind=article -->

- [孩子的契约直觉](./kids-take-contracts-seriously-before-adults-do/)
  2023-07-09 11:29:24 · 很多抽象制度观念并不一定要从术语讲起，日常对话本身就能暴露一个人对规则和公平的直觉。
  <!-- mdorigin:index kind=article -->

- [自治组织的自举难题](./bootstrap-problem-of-autonomous-organizations/)
  2023-05-13 16:28:43 · 从 ParaSpace 事件切入，讨论没有更高阶裁决者时组织如何处理分歧。
  <!-- mdorigin:index kind=article -->

- [Web3 到底有没有 0 到 1](./does-web3-have-zero-to-one/)
  2023-04-16 12:34:00 · 从 Web3、Crypto、区块链三者关系切进去，回答一个常被反复问的问题。
  <!-- mdorigin:index kind=article -->

- [Web2 视角的 Web3](./web3-from-web2-perspective/)
  2023-04-08 10:29:47 · 把 Web3 放回 Web2 产品和平台逻辑里重新解释。
  <!-- mdorigin:index kind=article -->

- [分布式应用视角的 Web3](./web3-from-distributed-app-perspective/)
  2023-04-08 10:25:09 · 从分布式应用的发展路径回看 Web3，重新理解它和传统互联网应用的区别。
  <!-- mdorigin:index kind=article -->

- [AI、人类与创造](./ai-human-creation/)
  2023-03-31 11:51:11 · 讨论 AI 生成内容之后，人类创作的价值会转向哪里。
  <!-- mdorigin:index kind=article -->

- [AI 视角的 Web3](./web3-from-ai-perspective/)
  2023-02-23 04:01:02 · 从 AI 的能力边界反过来看 Web3，重新理解开放协议和可组合性的价值。
  <!-- mdorigin:index kind=article -->

- [Rollup Layer2 的模块化演进之路](./the-modular-evolution-of-rollup-layer2/)
  2023-02-14 · 从角色拆分和模块边界出发，重新理解 Rollup / Layer2 为什么会走向模块化。
  <!-- mdorigin:index kind=article -->

- [Nostr 破圈，以及社交应用里的激励诅咒](./nostr-and-the-curse-of-incentives/)
  2023-02-05 08:19:59 · 把 Nostr 放回产品冷启动和激励设计的语境里看。
  <!-- mdorigin:index kind=article -->

- [《三体》改编的评价体系之争](./three-body-adaptations-are-judged-by-very-different-standards/)
  2023-01-24 20:13:27 · 如果你把科幻首先看成脑洞载体，那人物和叙事的缺点就会被重新排序。
  <!-- mdorigin:index kind=article -->

- [从 Web2 视角解释 Web3](./explaining-web3-to-my-wife/)
  2022-11-06 10:53:13 · 当你试着从 Web2 的问题出发，而不是沿用 crypto 叙事去解释 Web3，很多真正的难点才会暴露出来。
  <!-- mdorigin:index kind=article -->

- [Move 为什么不需要 Approve](./move-without-approve/)
  2022-10-20 09:56:53 · 用通俗语言解释 Move 交互模型和授权模式的差异。
  <!-- mdorigin:index kind=article -->

- [元宇宙需要的不是 3D，而是可组合性](./metaverse-needs-composability-more-than-3d/)
  2022-10-16 18:44:29 · 如果未来应用和宇宙之间不能自由组合，所谓元宇宙最后很容易只变成一个个更大的封闭超级 App。
  <!-- mdorigin:index kind=article -->

- [论构建式质疑](./constructive-doubt/)
  2022-09-10 04:23:07 · 讨论质疑的边界，以及什么样的质疑才真正有建设性。
  <!-- mdorigin:index kind=article -->

- [Web3 作为一个里程碑](./web3-as-a-milestone/)
  2022-08-22 18:05:11 · 围绕 Web3 的争论长期混乱，不是因为所有人都在空谈，而是因为它本来就更像一个尚未完成的目标集合。
  <!-- mdorigin:index kind=article -->

- [Tornado、USDC 封禁地址，以及 Token 协议的扩展性](./tornado-usdc-and-token-extensibility/)
  2022-08-10 05:43:10 · 借 Tornado 和 USDC 封禁事件，讨论 Token 协议扩展性的边界。
  <!-- mdorigin:index kind=article -->

- [Rust 借用检查的内化过程](./rust-borrow-checker-can-be-tamed/)
  2022-07-25 18:48:21 · 很多人学 Rust 时的对抗感，来自借用规则还没内化；一旦理解到位，编译器就会从阻力变成助手。
  <!-- mdorigin:index kind=article -->

- [区块链交易的并行执行](./parallel-execution-in-blockchains/)
  2022-07-22 12:50:19 · 借公链扩容问题，讨论并行执行的意义和边界。
  <!-- mdorigin:index kind=article -->

- [Copilot 已经能把 Move 这类小众语言补得像模像样](./copilot-can-write-move/)
  2022-06-28 11:53:46 · AI 编码工具真正的分水岭，不是能否补全热门语言，而是面对资料稀疏的小众语言时是否仍然可用。
  <!-- mdorigin:index kind=article -->

- [4everland 与 IPFS 部署工作流](./four-everland-as-ipfs-deployment-service/)
  2022-06-07 01:13:11 · 把内容放进 IPFS 并不稀奇，真正关键的是把 GitHub、自动构建和内容寻址串成普通开发者也能顺手使用的工作流。
  <!-- mdorigin:index kind=article -->

- [Planetable 与 Web3 写作的分发关系](./planetable-and-web3-writing/)
  2022-06-06 00:23:17 · 这类写作工具的价值不只在发文方式，而在它开始重写作者、内容入口和分发网络之间的关系。
  <!-- mdorigin:index kind=article -->

- [“简体中文已死” 与语言是一个去中心化系统](./language-as-a-decentralized-system/)
  2022-05-22 08:14:10 · 把语言变化当成一个去中心化系统来理解。
  <!-- mdorigin:index kind=article -->

- [为什么是 Move 之编程语言的生态构建](./why-move-programming-language-ecosystem/)
  2022-05-15 · 从语言生态和应用架构角度解释为什么 Move 值得被认真看待。
  <!-- mdorigin:index kind=article -->

- [让 AI 画出 Web3](./ask-ai-what-web3-looks-like/)
  2022-05-10 01:25:51 · 对一个概念模糊、叙事很重的领域来说，让图像模型去“误解”它，反而有时能暴露这个领域在大众想象里最稳定的视觉符号。
  <!-- mdorigin:index kind=article -->

- [从计算机的角度理解言论自由](./free-speech-from-a-computer-perspective/)
  2022-04-25 23:13:23 · 把“言论自由”从政治口号拉回到系统结构和控制权问题。
  <!-- mdorigin:index kind=article -->

- [Optimism Cannon 把仲裁证明推进成更通用的机制](./optimism-cannon-and-generalized-fraud-proofs/)
  2022-04-20 15:42:31 · Cannon 的意义不只在服务 OP Stack，而在于把可证明执行模型推广到更一般的虚拟机场景。
  <!-- mdorigin:index kind=article -->

- [远程工作中的异步文本沟通](./async-text-discussion-in-remote-work/)
  2022-04-06 03:58:24 · 从远程协作经验出发，解释为什么异步文本讨论会变得越来越重要。
  <!-- mdorigin:index kind=article -->

- [头像 NFT 更适合做“道具”](./nft-avatars-should-be-accessories-not-identities/)
  2022-03-28 21:21:11 · 头像 NFT 的问题不只是价格，而是它试图替代用户原本最私人的身份表达；如果它只是附加层而不是本体，接受度反而可能更高。
  <!-- mdorigin:index kind=article -->

- [Scratch 里的克隆机制，对小朋友来说是一种非常自然的系统思维入口](./scratch-clones-are-a-natural-way-for-kids-to-learn-systems/)
  2022-03-19 14:36:18 · 当孩子开始主动复用对象和规则时，他其实已经在用自己的方式接近抽象和建模。
  <!-- mdorigin:index kind=article -->

- [为什么 ETH 上玩 DeFi 要先授权](./why-defi-needs-approve-on-eth/)
  2022-03-06 07:00:10 · 从 ERC20 的历史包袱解释 approve 机制，以及新链为什么应该换一种方式。
  <!-- mdorigin:index kind=article -->

- [木木问：最后那个程序是怎么写出来的](./scratch-and-the-last-program/)
  2022-02-20 14:48:03 · 从孩子追问“最后那个程序是谁写的”开始，回到编程世界最基本的问题。
  <!-- mdorigin:index kind=article -->

- [区块链与跨应用共享账户](./blockchain-explains-what-cloud-cannot-share/)
  2022-02-18 18:21:48 · 云平台很难为彼此独立的应用提供一个真正中立、可共享、可组合的账户与资产层，这正是区块链开始发挥作用的地方。
  <!-- mdorigin:index kind=article -->

- [“恭喜发财”背后的文化故事](./wishing-for-wealth-is-a-cultural-story-not-just-greed/)
  2022-02-05 22:57:51 · 一句看似直接的祝福能长期流行，往往因为它真实承载了一群人对不确定生活的朴素愿望。
  <!-- mdorigin:index kind=article -->

- [关于 DAO 的系统看法](./dao-view/)
  2021-12-26 12:55:52 · 从组织协作和执行机制角度，重新看 DAO 到底解决了什么问题。
  <!-- mdorigin:index kind=article -->

- [如果把 Web3 应用数据放回本地仓库，再挂到 P2P 网络上会怎样](./web3-local-repo-and-p2p-sync/)
  2021-12-18 11:06:40 · 把应用数据保存在用户本地仓库，再通过 P2P 网络实时同步，可以同时保留用户数据所有权和平台级搜索推荐能力，这可能是 Web3 更有想象力的一种产品形态。
  <!-- mdorigin:index kind=article -->

- [Web3 的价值，在于持续演化](./web3-is-valuable-because-it-keeps-mutating/)
  2021-12-16 17:10:23 · 一个概念不断变形，未必说明它空洞，也可能说明旧互联网确实已经无法承载新的想象。
  <!-- mdorigin:index kind=article -->

- [去中心化的 NameService](./decentralized-nameservice/)
  2021-12-02 11:55:22 · 不只把 NameService 理解成地址别名，而是理解成一层更广的身份和映射基础设施。
  <!-- mdorigin:index kind=article -->

- [资本看公链的两套框架](./capital-has-two-theses-about-public-chains/)
  2021-11-26 09:48:10 · 理解资本如何看公链，比单看项目技术路线更能解释很多市场动作。
  <!-- mdorigin:index kind=article -->

- [Rust 构建时间与桌面硬件](./rust-build-times-scale-with-hardware/)
  2021-11-25 19:58:05 · 同一个 Rust 项目在不同机器上的构建时间差距非常直观，这也再次说明编译型语言的日常开发体验，往往不只取决于工具链设计，也取决于本地硬件预算。
  <!-- mdorigin:index kind=article -->

- [NFT 的展示与再利用权](./nft-display-rights-need-an-explicit-license/)
  2021-11-04 13:41:37 · NFT 交易的不是一张图片，而是一个可追溯的 ID 与权利关系；如果使用范围不写清楚，争议只会越来越多。
  <!-- mdorigin:index kind=article -->

- [DAO 式组织与远程工作](./dao-style-organizations-fit-remote-work-better/)
  2021-11-03 15:34:35 · 只要组织价值不再建立在内部独占的信息和知识上，组织墙就会变薄，人与组织的绑定关系也会变得更松。
  <!-- mdorigin:index kind=article -->

- [Discord 作为开放社区基础设施](./discord-as-open-community-tool/)
  2021-10-14 18:56:05 · Discord 真正强的地方不只是聊天，而是它把机器人、GitHub、云服务和多层角色协作自然放在一个开放空间里，这比很多传统团队工具更适合开源社区。
  <!-- mdorigin:index kind=article -->

- [天价 gas 事件与链上交互安全](./ethereumjs-gas-bugs-show-ux-matters-as-much-as-consensus/)
  2021-09-29 09:41:59 · 协议层错误最后都会通过钱包、硬件确认和界面提示落到用户身上，所以 UX 也是安全边界的一部分。
  <!-- mdorigin:index kind=article -->

- [闪电网络承载复杂互动的合约问题](./lightning-needs-smarter-contract-execution-to-host-games/)
  2021-09-24 16:01:40 · 支付网络一旦承载游戏和状态机，它就不再只是支付网络，而会变成更一般的执行基础设施。
  <!-- mdorigin:index kind=article -->

- [Clippy warning 作为 Rust 学习路径](./rust-clippy-warnings-as-learning-path/)
  2021-09-22 16:54:33 · Clippy 的价值不只在挑错，它会逼你在真实代码里持续面对 Rust 的语言细节和习惯用法。
  <!-- mdorigin:index kind=article -->

- [Blockchain maximalism 与大规模试错](./blockchain-maximalism/)
  2021-09-15 19:27:20 · 它和 Bitcoin maximalism 的区别，不在于更激进，而在于愿意承认区块链原语在更广泛场景里的实验价值。
  <!-- mdorigin:index kind=article -->

- [智能合约语言的状态与调用模型](./smart-contract-language-innovation-is-just-beginning/)
  2021-09-14 09:28:12 · 智能合约语言不会只是传统语言的链上翻版，它真正拉开差异的地方在状态表达、对象模型和调用方式。
  <!-- mdorigin:index kind=article -->

- [NFT 会员身份与时间流付费](./time-stream-membership-fees-fit-nft-style-accounts/)
  2021-08-18 20:39:41 · 很多会员制争议，本质上都来自收费和履约之间缺少可验证的过程约束。
  <!-- mdorigin:index kind=article -->

- [Poly Network 攻击暴露了跨链桥代理调用的高权限风险](./poly-network-cross-chain-proxy-call-risk/)
  2021-08-11 17:41:20 · Poly Network 的关键问题不只是签名校验，而是把高权限管理方法和通用跨链调用放进了同一套代理执行机制。
  <!-- mdorigin:index kind=article -->

- [EIP1559 不是消费税](./eip1559-does-not-work-like-a-consumption-tax/)
  2021-08-06 00:43:14 · 协议捕获价值和传统税收在表面上相似，但传导机制和竞争约束并不相同。
  <!-- mdorigin:index kind=article -->

- [用锁和箱子理解 Taproot 隐私](./taproot-privacy-is-best-explained-with-locks-and-boxes/)
  2021-07-14 11:16:24 · 复杂协议一旦进入公众讨论，解释方式本身就会决定理解门槛。
  <!-- mdorigin:index kind=article -->

- [NFT 与版权的关系问题](./nft-is-not-naturally-anti-copyright/)
  2021-06-25 21:35:49 · NFT 和版权的冲突并不是简单的“链上自由”对“传统法律”的对立，更关键的问题是：NFT 交易的到底是什么权利，以及智能合约能否真正把部分高交易成本的版权协作自动化。
  <!-- mdorigin:index kind=article -->

- [程序员语言之争与禀赋效应](./language-wars-are-endowment-effect-for-programmers/)
  2021-06-02 19:58:29 · 人一旦在某种语言上投入过时间和身份，就会天然高估它，并低估替代方案。
  <!-- mdorigin:index kind=article -->

- [Rust 和垃圾回收的差异，不只是性能，而是谁真正控制系统资源](./rust-vs-garbage-collection-control-tradeoff/)
  2021-06-01 09:07:42 · 垃圾回收带来的不只是自动内存管理，它同时也重新分配了程序员和运行时之间的控制权；Rust 的价值，很大一部分就在于把这层控制权拿回来。
  <!-- mdorigin:index kind=article -->

- [线性类型在区块链上的意义](./linear-types-matter-more-on-blockchains/)
  2021-04-12 21:05:29 · 在线性类型最早的设想里，“世界状态”更多只是程序内部的一种抽象；而区块链提供了连续状态和可验证持久化之后，这种抽象第一次更接近现实资产与对象的表达。
  <!-- mdorigin:index kind=article -->

- [云平台配额的可解释性问题](./cloud-quotas-fail-when-the-system-cannot-explain-itself/)
  2021-03-30 21:18:10 · 平台治理一旦缺少清晰反馈，用户最后感受到的就不是规则，而是随机性。
  <!-- mdorigin:index kind=article -->

- [碎片时间编码与工作量估算](./fragmented-coding-and-estimation-are-trainable/)
  2021-02-18 19:14:30 · 很多编程习惯并不是天赋问题，而是工作方式问题；把大块连续时间依赖拆掉，再训练估算精度，本身就是一种职业能力升级。
  <!-- mdorigin:index kind=article -->

- [儿童编程进入真实问题之后](./childrens-programming-becomes-useful-when-it-solves-real-problems/)
  2021-01-16 15:42:31 · 编程对孩子的意义，不在于提前学语法，而在于当他开始用它解决身边一个具体问题时，会第一次感到“我能创造一个有用的东西”。
  <!-- mdorigin:index kind=article -->

- [《心灵奇旅》的双重观看层](./soul-showed-why-childrens-and-adults-takeaways-diverge/)
  2021-01-02 16:27:32 · 很多打动大人的成长命题，对孩子来说未必成立；孩子有时反而更直接地暴露出叙事里的逻辑问题。
  <!-- mdorigin:index kind=article -->

- [工具链的层层叠加](./tooling-layers-keep-accumulating/)
  2020-12-30 15:40:00 · 很多开发工具的演进路径并不是把复杂度消掉，而是把旧复杂度包起来，再生成一层新的抽象，于是层层叠加。
  <!-- mdorigin:index kind=article -->

- [“浪费”立法的边界困难](./waste-is-too-subjective-to-be-legislated-cleanly/)
  2020-08-27 13:47:20 · 许多看似天然正确的价值词，一进入制度层面就必须面对可执行性和主观差异。
  <!-- mdorigin:index kind=article -->

- [闪电贷的原子可组合性](./flash-loan-as-atomic-composability/)
  2020-08-17 10:40:55 · 闪电贷的关键不是无抵押借款，而是区块链把借款、使用和归还绑定进同一个原子交易里，让跨主体协作也获得了接近事务的效果。
  <!-- mdorigin:index kind=article -->

- [互联网贸易保护与点对点网络](./internet-trade-wars-point-back-to-peer-to-peer/)
  2020-08-01 15:12:37 · 如果全球化应用无法属于某个国家、某个组织，也不能过度攫取数据，那更去中心化的网络形态就会重新变得有吸引力。
  <!-- mdorigin:index kind=article -->

- [国际秩序变动如同硬分叉](./world-order-shifts-look-like-hard-forks/)
  2020-07-29 10:56:35 · 类比不一定能解释一切，但它能帮助我们把复杂国际变动拆回到条件、代价和可行性上。
  <!-- mdorigin:index kind=article -->

- [推荐系统如何重写你的身份](./recommendation-systems-quietly-rewrite-your-identity/)
  2020-07-14 13:08:48 · 当算法开始根据消费轨迹塑造你的画像时，用户和系统之间就出现了一层新的身份博弈。
  <!-- mdorigin:index kind=article -->

- [法律、代码与制度运行时](./law-is-like-code-but-its-runtime-is-human-institutions/)
  2020-07-01 15:55:42 · 规则文本只是表层，执行者、组织结构和资源来源才决定规则怎样落地。
  <!-- mdorigin:index kind=article -->

- [“数码痴呆”这个标签的问题](./digital-dementia-is-a-bad-label-for-kids-and-games/)
  2020-04-01 00:52:26 · 讨论儿童与游戏的关系，真正需要的是证据和边界，而不是一个听起来吓人的大词。
  <!-- mdorigin:index kind=article -->

- [从智能合约的演进看 Move 的架构设计](./move-architecture-from-the-evolution-of-smart-contracts/)
  2020-03-01 · 把 Bitcoin Script、Solidity 和 Move 放在同一条演化线上看智能合约架构。
  <!-- mdorigin:index kind=article -->

- [Namebase 开发者空投的可验证分发](./namebase-airdrop-for-developers/)
  2020-02-22 07:17:15 · 这件事真正有意思的地方，不在营销，而在它展示了如何把资格筛选做成低摩擦、可验证、可自动化的分发过程。
  <!-- mdorigin:index kind=article -->

- [Minecraft 纸质书与限屏过渡](./minecraft-books-work-when-screens-need-a-break/)
  2020-02-15 19:34:00 · 孩子的兴趣未必只能留在屏幕里，把同一主题迁移到书和讨论里，往往比硬切断更有效。
  <!-- mdorigin:index kind=article -->

- [脱敏医学数据的尽早公开](./medical-data-should-be-public-by-default-after-desensitization/)
  2020-01-31 09:39:10 · 公共卫生与科研协作真正稀缺的，往往不是观点，而是可信、及时、可复核的一手数据。
  <!-- mdorigin:index kind=article -->

- [带娃玩游戏作为共同活动](./games-can-be-good-shared-activities-with-kids/)
  2020-01-30 08:30:04 · 如果选得对，游戏并不只是屏幕时间，也可以是一种一起运动、一起判断、一起讨论的家庭活动。
  <!-- mdorigin:index kind=article -->

- [限价如何掩盖短缺](./price-controls-hide-shortages-they-do-not-solve-them/)
  2020-01-22 12:18:27 · 价格信号一旦被压掉，囤积、扩产和再分配都会一起失真。
  <!-- mdorigin:index kind=article -->

- [开源为什么能够规模化](./open-source-scales-because-the-author-scratches-one-itch-for-many/)
  2020-01-19 18:25:51 · 软件分发的边际成本接近于零，使得“自用即公共品”第一次能在全球范围内成立。
  <!-- mdorigin:index kind=article -->

- [Status 说明真正可日常使用的 DApp 仍然太少](./status-proves-how-few-real-dapps-exist/)
  2020-01-17 19:45:26 · 区块链世界里概念和基础设施很多，但能让普通人反复打开并持续使用的应用仍然很少。
  <!-- mdorigin:index kind=article -->

- [ENS 把博客入口和内容寻址重新串了起来](./ens-ipfs-and-blog-entrance/)
  2020-01-17 14:26:13 · ENS 的意义不只是域名本身，而是在试探一条把内容寻址、用户入口和去中心化访问重新接起来的路径。
  <!-- mdorigin:index kind=article -->

- [批评之外，仍然需要构建](./criticism-is-not-enough-you-still-need-to-build/)
  2019-12-26 09:36:30 · 技术思想市场确实需要唱反调的人，但真正能留下更长价值的，往往还是那些同时能构建体系或系统的人。
  <!-- mdorigin:index kind=article -->

- [孩子如何理解编程语言](./kids-see-programming-languages-as-language-first/)
  2019-12-18 13:20:53 · 编程语言对孩子来说首先是语言问题，而不是工程问题，这个视角本身就很值得保留。
  <!-- mdorigin:index kind=article -->

- [IPFS 和 IPLD 把内容与结构都变成了网络的一等公民](./ipfs-and-ipld-as-a-structured-content-network/)
  2019-12-12 14:43:07 · IPFS 让内容脱离托管商成为一等公民，IPLD 则进一步把结构化数据和可链接关系带进来。
  <!-- mdorigin:index kind=article -->

- [Rust 与 Web 后端的适用边界](./rust-is-not-ideal-for-most-web-backends/)
  2019-12-09 15:11:16 · Rust 能解决很多长期运行服务中的内存与并发问题，但多数 Web 后端的主要复杂度其实早已被数据库、缓存和外部状态托管掉了。
  <!-- mdorigin:index kind=article -->

- [Go module 的主版本号路径](./go-module-major-version-in-import-path/)
  2019-12-06 07:58:52 · 把主版本号写进 import path，看起来麻烦，但它把兼容性断点直接变成了可见的命名变化。
  <!-- mdorigin:index kind=article -->

- [公权力不该为民事纠纷开刑事捷径](./public-power-should-not-shortcut-civil-disputes/)
  2019-12-02 23:29:52 · 很多本应停留在民事协商和诉讼里的争议，一旦能被轻易引向刑事渠道，就说明制度边界已经出了问题。
  <!-- mdorigin:index kind=article -->

- [Vitalik 2019 密码货币问题清单](./vitalik-crypto-problems-2019/)
  2019-11-26 10:22:10 · 一个领域要成熟，不只需要方案，也需要有人持续把尚未解决的问题系统化地重新整理出来。
  <!-- mdorigin:index kind=article -->

- [债务 Token 化与可流转重组凭证](./tokenizing-debt-for-restructuring/)
  2019-11-05 10:39:39 · 当传统融资和还债路径都卡住时，把债务抽象成可流转的 Token，本质上是在讨论一种市场化重组和流动性重组工具。
  <!-- mdorigin:index kind=article -->

- [区块链和数据库有什么区别：先从权限模型看](./blockchain-vs-database-from-permission-model/)
  2019-10-31 16:43:03 · 如果先不陷进区块链名词堆里，把它当成一种数据库系统去看，最值得先比较的其实是权限模型。
  <!-- mdorigin:index kind=article -->

- [公司注册信息上链](./company-registration-should-live-on-chain/)
  2019-10-29 15:09:36 · 企业登记信息公开、可验证、可同步，本来就是很适合链上基础设施去承接的场景。
  <!-- mdorigin:index kind=article -->

- [Move Source Language 比 Move IR 更像正常编程语言](./move-source-language-vs-move-ir/)
  2019-10-25 10:54:43 · Move 走出 IR 形态后，关键变化不是语法好看了，而是终于开始具备更正常的语言体验和生态入口。
  <!-- mdorigin:index kind=article -->

- [Rust 之所以适合区块链，是因为它刚好卡在这个领域的约束点上](./why-rust-fits-blockchain/)
  2019-09-20 08:54:51 · 区块链系统同时要求性能、资源控制、并发安全和长期维护，Rust 恰好在这些约束之间给出了一种相对平衡的答案。
  <!-- mdorigin:index kind=article -->

- [反洗脑需要持续输入](./anti-brainwashing-needs-more-input-not-just-opposition/)
  2019-09-06 23:46:58 · 如果脑子里只有一套熟悉叙事，再反感它，也很难真的从里面走出来。
  <!-- mdorigin:index kind=article -->

- [开启比特币智能合约的「三把锁」](./three-locks-of-bitcoin-smart-contracts/)
  2019-08-27 · 从约束、验证和仲裁三个层次理解比特币智能合约的可能边界。
  <!-- mdorigin:index kind=article -->

- [平台封禁争议中的治理问题](./platform-bans-are-about-governance-not-free-speech-slogans/)
  2019-08-23 21:56:33 · 把平台治理问题简单翻译成意识形态口号，只会让讨论失真。
  <!-- mdorigin:index kind=article -->

- [推特中文生态的结构问题](./bad-chinese-twitter-ecology-is-a-market-structure-problem/)
  2019-08-21 18:55:36 · 当中文用户规模、内容供给和跨墙成本共同收缩时，机器人、极化内容和劣质循环就更容易成为一门生意。
  <!-- mdorigin:index kind=article -->

- [手机损坏后的身份恢复链条](./account-recovery-is-the-real-phone-repair-risk/)
  2019-08-13 15:30:01 · 当设备彻底损坏后，最大的成本常常不在修屏，而在双因子认证、账户恢复和身份绑定这些恢复链条上。
  <!-- mdorigin:index kind=article -->

- [PoW 的资源消耗不等于成本决定价格](./pow-does-not-mean-cost-determines-price/)
  2019-07-26 13:46:53 · 更准确的理解是，在开放竞争里成本会被持续推近价格，而不是由成本单方面决定价格。
  <!-- mdorigin:index kind=article -->

- [PoW 如何用成本购买安全性](./pow-is-about-buying-security-with-cost/)
  2019-07-25 19:34:15 · 把工作量证明理解成纯浪费，会错过它作为一种安全约束和资源门槛机制的核心意义。
  <!-- mdorigin:index kind=article -->

- [Libra 技术架构](./libra-architecture/)
  2019-07-13 · 围绕账户模型和 Move 语言，分析 Libra 在状态组织和智能合约设计上的关键变化。
  <!-- mdorigin:index kind=article -->

- [DeFi 对金融稳定性的潜在正面作用](./defi-may-improve-financial-stability/)
  2019-07-12 14:24:13 · 从 FSB 对去中心化金融的讨论看，DeFi 既可能引入新风险，也可能通过竞争、多样性和降低中心化机构的重要性，改善金融体系的韧性。
  <!-- mdorigin:index kind=article -->

- [WebAssembly 在城市级实景地图中的价值](./webassembly-for-city-scale-3d-maps/)
  2019-06-21 10:45:44 · WebAssembly 真正有说服力的，不是跑个 toy demo，而是在城市级三维实景地图这种高密度场景里把性能和工程可用性同时做出来。
  <!-- mdorigin:index kind=article -->

- [Libra 发布后的市场解读](./markets-did-not-read-libra-as-a-win-for-all-crypto/)
  2019-06-19 19:00:11 · 大公司入场会扩大认知，也可能同时重写价值分配预期。
  <!-- mdorigin:index kind=article -->

- [会员收入驱动下的视频平台优化](./video-platforms-will-overoptimize-for-membership-revenue/)
  2019-06-16 17:11:07 · 商业模式一旦转向，产品里那些看似偶然的坏体验就会开始表现出明显方向性。
  <!-- mdorigin:index kind=article -->

- [Pocket 推荐失准之后](./pocket-lost-its-edge-when-recommendations-stopped-fitting/)
  2019-06-15 15:07:31 · 收藏工具的护城河不只在离线阅读，还在它能不能持续稳定地理解你的兴趣结构。
  <!-- mdorigin:index kind=article -->

- [印度封杀加密货币的执行边界](./india-crypto-ban-is-hard-to-enforce/)
  2019-06-13 12:53:51 · 对加密货币最重的监管措施，往往不是“会不会写进法条”，而是写进去之后能否低成本、可持续地执行；一旦执行机制站不住，威慑就很难真的落地。
  <!-- mdorigin:index kind=article -->

- [Kubernetes 学习中的安装链路摩擦](./kubernetes-learning-blocked-by-the-wall/)
  2019-06-08 21:30:59 · 很多人刚接触 Kubernetes 时，先撞上的并不是抽象难度，而是版本探测、镜像下载和依赖拉取这些安装层障碍。
  <!-- mdorigin:index kind=article -->

- [xuperchain 试图用 UTXO 追踪合约状态](./xuperchain-utxo-contract-state-tracking/)
  2019-05-28 18:06:36 · xuperchain 把合约状态拆成按 key 追踪的版本变化，用预执行和冲突检测来绕开传统 global state trie 的一部分成本。
  <!-- mdorigin:index kind=article -->

- [智能合约到底是什么？](./what-is-smart-contract/)
  2019-05-27 · 把智能合约从口号里拽出来，回到约束、执行和组织协作的语境里。
  <!-- mdorigin:index kind=article -->

- [政府投资与市场筛选](./government-investment-cannot-replace-market-selection/)
  2019-05-24 15:47:59 · 资本配置最怕的不是单点判断失误，而是缺少一整套持续纠错和退出的机制。
  <!-- mdorigin:index kind=article -->

- [云原生与能力让渡](./cloud-native-means-delegating-more-to-the-platform/)
  2019-05-09 19:01:52 · 所谓云原生，真正要回答的还是哪些能力值得抽象并托管给平台，哪些能力必须留在应用内部。
  <!-- mdorigin:index kind=article -->

- [科学体系的去中心化反馈机制](./science-works-because-it-has-a-decentralized-feedback-loop/)
  2019-05-04 19:57:25 · 任何知识体系都需要正反馈和负反馈；科学的特殊之处，在于它把竞争、证伪和升级机制做得更去中心化。
  <!-- mdorigin:index kind=article -->

- [Docker Registry Mirror 的全球网络假设](./docker-third-party-registry-mirror/)
  2019-04-28 11:52:46 · 这不只是一个小功能缺失，更说明很多基础设施默认的网络前提和真实环境之间仍然存在明显落差。
  <!-- mdorigin:index kind=article -->

- [区块链与应用协议的回归](./blockchain-revives-the-value-of-application-protocols/)
  2019-04-26 22:03:27 · 移动互联网时代大家习惯了按应用思考问题，而区块链让人重新看到协议沉淀、互通和共享网络效应的价值。
  <!-- mdorigin:index kind=article -->

- [AssemblyScript 与 WebAssembly 的资源解耦](./assemblyscript-wasm-sandbox-and-separable-runtime/)
  2019-04-18 19:22:17 · 试验 AssemblyScript 时，真正值得关注的不是 demo 本身，而是逻辑层和运行资源能否进一步拆开。
  <!-- mdorigin:index kind=article -->

- [996 讨论中的定义问题](./defining-996-matters-before-arguing-about-it/)
  2019-04-15 18:09:58 · 很多争论长期无解，不是因为立场不同，而是大家在用同一个词讨论完全不同的对象。
  <!-- mdorigin:index kind=article -->

- [Lucet 的价值，不只是快，而是它把 FaaS 拉回轻量沙箱](./lucet-wasm-as-lightweight-faas-sandbox/)
  2019-03-29 10:16:18 · Lucet 这类 Wasm 运行时真正值得关注的，是它重新打开了轻量沙箱式 FaaS 的实现空间。
  <!-- mdorigin:index kind=article -->

- [“虚拟经济”这个概念](./what-does-fictitious-economy-mean/)
  2019-03-28 14:21:11 · 讨论“脱虚向实”之前，先得想清楚“虚拟经济”到底指什么；这个词在中文政策语境里的含义，并不能直接映射到英文世界的常见经济学分类。
  <!-- mdorigin:index kind=article -->

- [多资产公链的安全预算错位](./multi-asset-chains-need-security-aligned-with-total-value/)
  2019-03-27 14:43:56 · 如果一条链上承载的其他资产价值远高于原生币，仅靠原生币激励维护安全，就会出现保护对象和安全预算错位的问题。
  <!-- mdorigin:index kind=article -->

- [算法学习与问题模型](./algorithm-learning-needs-problem-models-not-memorization/)
  2019-03-19 13:09:23 · 很多新手害怕算法，不是因为算法本身不可理解，而是把它当成需要回忆细节的知识点，而不是一组可复用的问题抽象。
  <!-- mdorigin:index kind=article -->

- [联盟链为什么会退化成共享云平台](./consortium-chains-fail-when-the-alliance-is-fake/)
  2019-03-18 16:34:42 · 多方共识和治理结构没建起来时，先跑一条链再逐个拉人加入，解决的是销售问题，不是真正的联盟问题。
  <!-- mdorigin:index kind=article -->

- [SlimTrie 适合静态数据索引，不适合高频状态更新](./slimtrie-for-static-state-index/)
  2019-03-15 18:28:23 · SlimTrie 省内存的前提，是把 Trie 建在静态数据之上；一旦回到需要增量更新的状态场景，这个优势就很难直接继承。
  <!-- mdorigin:index kind=article -->

- [网络摩擦与云端 build 优先](./network-friction-turns-build-into-cloud-build/)
  2019-03-08 14:54:49 · 很多开发效率损耗并不来自编码本身，而是来自拉源码、下依赖和装工具这些被环境持续放大的外围摩擦。
  <!-- mdorigin:index kind=article -->

- [面向应用支撑的中间协议层](./middle-layer-protocols-support-applications/)
  2019-02-21 12:33:02 · 当底层账本和扩容问题逐步稳定下来，应用层很快就会继续推动系统往上抽象出新的公共支撑层。
  <!-- mdorigin:index kind=article -->

- [比特币总量上限的社会防守](./bitcoin-is-not-immutable-it-is-socially-defended/)
  2019-02-15 19:11:10 · 软件世界没有绝对不可改，真正难改的是一整套围绕规则形成的社会共识。
  <!-- mdorigin:index kind=article -->

- [操纵治理的成本设计](./anti-manipulation-needs-cost-not-purity/)
  2019-02-13 11:46:11 · 只要收益高于成本，操纵就不会消失。平台治理最终还是一套成本设计问题。
  <!-- mdorigin:index kind=article -->

- [社交平台需要原生组织账号](./social-platforms-need-native-organization-accounts/)
  2019-01-09 10:41:53 · 如果平台只能表示个人和公司，很多真实存在的协作结构就没有办法被自然表达出来。
  <!-- mdorigin:index kind=article -->

- [公共系统的可替换性设计](./public-systems-need-switching-costs-designed-in/)
  2019-01-08 10:58:02 · 很多公共事业系统的问题，不在第一次交付，而在之后缺少竞争和退出机制。
  <!-- mdorigin:index kind=article -->

- [我看知识付费](./talk-about-knowledge-as-valuable/)
  2019-01-04 · 一类内容既能被当成趋势启发，也能被骂成鸡汤，本身就说明它踩在解释和夸张之间。
  <!-- mdorigin:index kind=article -->

- [很多投资迷思，本质上不是技术问题，而是人怎么持续骗自己](./stock-market-myths-are-mostly-about-self-deception/)
  2018-12-25 11:07:56 · 股价图能放大的往往是情绪和错觉，真正的投资判断还是要回到业务、未来和自我纪律。
  <!-- mdorigin:index kind=article -->

- [通过 ofo 退押金事件看区块链二层解决方案](./ofo-and-blockchain-layer2/)
  2018-12-20 · 借 ofo 退押金事件解释二层方案为什么会成为现实需求。
  <!-- mdorigin:index kind=article -->

- [自然法作为一种人类共识机制](./natural-law-can-be-read-as-a-human-consensus-mechanism/)
  2018-12-18 15:19:43 · 法律要想既能被评价又能被执行，需要的不只是条文本身，还需要言论、共识形成和执行成本之间的一整套机制。
  <!-- mdorigin:index kind=article -->

- [大学生财务不应完全依赖父母](./student-finance-should-not-depend-on-parents/)
  2018-12-17 12:03:43 · 比起单纯从家庭义务讨论大学生生活费问题，更值得追问的是：一个现代金融体系为什么不能让年轻人预支自己未来的人力资本。
  <!-- mdorigin:index kind=article -->

- [长大后重看《龙猫》](./my-neighbor-totoro-after-growing-up/)
  2018-12-16 23:10:26 · 小时候看《龙猫》记住的是温暖和音乐，长大后再看，会更明显地感受到它在现实悲剧边缘上留下来的梦幻转向。
  <!-- mdorigin:index kind=article -->

- [账号基础设施化之后的封号问题](./account-bans-now-feel-bigger-than-household-registration/)
  2018-12-10 12:04:12 · 微信号和微博号一旦承载了生活、关系和生意，平台封号就会逼近一种准公共服务治理问题。
  <!-- mdorigin:index kind=article -->

- [联盟链与 Hyperledger、Corda、FISCO BCOS](./consortium-blockchain-hyperledger-corda-fisco/)
  2018-12-06 · 把联盟链和许可链放进企业协作和基础设施演进的脉络里比较。
  <!-- mdorigin:index kind=article -->

- [Knative 作为 FaaS 平台层](./knative-is-a-faas-platform-layer/)
  2018-12-05 20:58:21 · Knative 真正解决的是源码到镜像、自动伸缩和事件触发统一化这些平台层问题，而不是直接定义完整函数体验。
  <!-- mdorigin:index kind=article -->

- [iOS 捷径的文本化表示](./ios-shortcuts-deserve-text-format/)
  2018-12-05 12:56:48 · 图形化编排当然降低了入门门槛，但一旦复杂度上来，文本编辑、版本控制和批量修改的需求就会反过来要求它拥有可读写的结构化表示。
  <!-- mdorigin:index kind=article -->

- [儿童编程游戏的规则感](./kodable-and-childrens-programming-games/)
  2018-12-05 10:17:01 · 像 Kodable 这种儿童编程游戏，价值不在让孩子尽早写代码，而是在通过路径、条件和循环，先把程序思维里的规则感搭起来。
  <!-- mdorigin:index kind=article -->

- [共享网络比私服更重要](./shared-network-matters-more-than-private-server/)
  2018-11-30 14:59:10 · 如果平台把内容和关系标准开放出来，第三方就能做出多样化界面和体验；难点不在技术，而在既有广告模式不允许平台这样做。
  <!-- mdorigin:index kind=article -->

- [微博曾经的开放平台气质](./weibo-once-looked-like-the-most-open-platform/)
  2018-11-30 12:51:48 · 当平台价值越来越来自关系网络和影响力证明时，它未来真正的挑战就不只是流量，而是反作弊、公信力和能否摆脱对终端广告的依赖。
  <!-- mdorigin:index kind=article -->

- [成本形式的熟悉感与浪费判断](./proof-of-burn-looks-less-wasteful-only-because-we-recognize-advertising/)
  2018-11-26 16:12:45 · 一类成本是否被接受，很多时候取决于社会叙事，而不只是资源本身有没有消耗。
  <!-- mdorigin:index kind=article -->

- [习惯养成需要具体想象](./habit-building-for-kids-needs-concrete-imagination/)
  2018-11-21 10:12:37 · 习惯不是靠抽象说教形成的，把后果变成孩子能感受到的故事和形象，往往更有效。
  <!-- mdorigin:index kind=article -->

- [区块链的技术世界观](./blockchain-technology-overview/)
  2018-11-19 · 一篇面向工程师的区块链技术世界观入门。
  <!-- mdorigin:index kind=article -->

- [Kotlin 给我的感觉有点像 Scala -- ++](./kotlin-as-scala-minus-minus-plus-plus/)
  2018-11-16 17:12:24 · 它像是拿掉了部分 Scala 的负担，同时保留了足够表达力，并把并发工具做得更开箱即用。
  <!-- mdorigin:index kind=article -->

- [脑电波密码的风险转移](./brainwave-passwords-would-shift-risk-not-remove-it/)
  2018-11-07 15:04:56 · 身份认证的难题从来不只是记忆负担，越自然的方案往往也越容易把用户暴露给新的系统性风险。
  <!-- mdorigin:index kind=article -->

- [iOS 捷径与语音时代的应用模型](./ios-shortcuts-as-voice-os-app-model/)
  2018-11-02 21:42:25 · 捷径不是一个简单的自动化玩具，它更像是在探索没有传统界面入口时，应用如何被语音事件触发、如何被用户重新组合。
  <!-- mdorigin:index kind=article -->

- [workspace 里的编程卫生习惯](./programming-hygiene-shows-up-in-your-workspace/)
  2018-10-31 15:25:52 · 程序有没有“味道”，往往不只体现在代码本身，还体现在提交边界、临时修改、注释残留和你对改动的掌控程度。
  <!-- mdorigin:index kind=article -->

- [Kafkaesque 这个词，很适合解释 Kesque 这种名字的气质](./kafkaesque-as-a-name-for-kesque/)
  2018-10-27 10:33:47 · 有些技术名字真正传达的不是功能，而是它试图描述的一种世界感和对抗感。
  <!-- mdorigin:index kind=article -->

- [创新中的粗暴组合搜索](./innovation-usually-comes-from-brutal-combination-search/)
  2018-10-25 13:18:56 · 很多创新不是从需求精确推演出来的，而是在收敛的搜索空间里反复试错，最后再被幸存者叙事重新包装。
  <!-- mdorigin:index kind=article -->

- [10分钟理解闪电网络以及区块链二层解决方案的原理](./lightning-network-and-layer2/)
  2018-10-25 · 用更直白的方式解释闪电网络和区块链二层方案的基本原理。
  <!-- mdorigin:index kind=article -->

- [GitHub Actions 与 Workflow 标准化](./github-actions-and-workflow-standardization/)
  2018-10-18 15:17:12 · GitHub Actions 的意义不只是再做一个 CI，而是把围绕代码仓库发生的自动化流程变成平台内建能力。
  <!-- mdorigin:index kind=article -->

- [对 UTXO 收费，更像一种状态托管费](./utxo-storage-fee-as-custody-fee/)
  2018-10-12 11:07:36 · 如果长期保存 UTXO 会持续占用公共状态资源，那么这类收费更像托管成本显式化，而不只是技术层面的惩罚。
  <!-- mdorigin:index kind=article -->

- [游戏不需要默认金融化货币](./games-do-not-need-open-financialized-currencies-by-default/)
  2018-10-11 11:16:04 · 当链上资产脱离游戏内部平衡机制独立定价时，设计目标就会开始偏移。
  <!-- mdorigin:index kind=article -->

- [指标下压与基层执行扭曲](./quota-driven-governance-corrupts-rural-policy-execution/)
  2018-10-05 10:00:18 · 制度指标如果不和真实生活条件对齐，最后就会逼出大量形式正确、结果失真的执行。
  <!-- mdorigin:index kind=article -->

- [iOS12 捷径缺少的自动化层](./ios12-shortcuts-still-missed-an-automation-layer/)
  2018-09-29 21:22:14 · 如果没有事件触发、语音交互输入和更自然的语言理解，捷径就很难真正变成一层可编排的自动化系统。
  <!-- mdorigin:index kind=article -->

- [Java Stream 与 Go 的泛型缺口](./java-11-stream-takewhile-and-go-generic-gap/)
  2018-09-27 22:12:13 · 集合处理抽象一旦形成习惯，就会更明显地暴露出 Go 在泛型到来之前的表达限制。
  <!-- mdorigin:index kind=article -->

- [“还可以玩零分钟吗” 这种说法，体现了小朋友对语言规则的快速逆向利用](./zero-minutes-is-a-childrens-logic-hack/)
  2018-09-13 19:43:33 · 孩子学会一个抽象概念后，很快就会开始拿它重写成人制定的限制。
  <!-- mdorigin:index kind=article -->

- [合约分片中的接收方路由问题](./zilliqa-contract-sharding-needs-recipient-aware-routing/)
  2018-09-04 13:04:14 · 普通转账按发送方分片还比较直接，但合约调用会把状态读写带进来，这时如果仍然只按发送方路由，分片之间的合约状态就很容易失去一致性。
  <!-- mdorigin:index kind=article -->

- [Web3 七层模型里的状态外置](./web3-seven-layers-user-controlled-internet/)
  2018-09-03 19:10:17 · Coinbase 对 Web3 七层模型的划分未必稳定，但“状态公开、钱包私有”的架构对比，确实抓住了 Web3 和 Web2 的一个核心差异。
  <!-- mdorigin:index kind=article -->

- [通过 Kubernetes 学架构](./learning-architecture-by-kubernetes/)
  2018-09-03 · 用 Kubernetes 这套系统反过来训练架构视角。
  <!-- mdorigin:index kind=article -->

- [顺风车争议与共享经济的现实边界](./ridesharing-broke-the-idealized-sharing-economy-story/)
  2018-08-31 14:28:24 · 当安全、盈利和责任落到现实制度里时，共享叙事就必须接受重新定义。
  <!-- mdorigin:index kind=article -->

- [租房价格指数与长期租赁](./rental-price-index-would-help-long-term-leases/)
  2018-08-24 08:48:30 · 住房租赁金融化的问题，不只在风险转嫁，还在于缺少更合理的价格锚和合同结构。
  <!-- mdorigin:index kind=article -->

- [疫苗治理与质量检测机制](./vaccine-safety-needs-market-testing-capacity/)
  2018-08-17 09:15:53 · 如果检测能力完全行政化，质量治理很容易停在口号层；把检测能力市场化并引入竞争，反而更可能形成可执行的长期约束。
  <!-- mdorigin:index kind=article -->

- [P2P 爆雷潮与系统同质化](./p2p-platforms-failed-because-the-system-was-too-homogeneous/)
  2018-08-16 14:50:09 · 当平台、项目和风险控制策略都越来越像时，局部问题就更容易沿着相同结构扩散成系统性崩塌。
  <!-- mdorigin:index kind=article -->

- [Bitcoin UTXO 集统计与简单交易](./bitcoin-utxo-set-statistics/)
  2018-08-15 20:38:32 · 对 UTXO 集的统计分析显示，大多数交易仍然是一对一转账，而手续费升高时灰尘 UTXO 的问题会更突出。
  <!-- mdorigin:index kind=article -->

- [BFT 需要更具体的解释](./bft-needs-concrete-explanations-not-just-consensus-jargon/)
  2018-08-12 11:55:53 · 很多人听过拜占庭将军问题和容错率口号，但只有把它压到足够短的小课里，才可能真正被理解。
  <!-- mdorigin:index kind=article -->

- [房地产泡沫与做空机制](./housing-bubbles-need-short-mechanisms/)
  2018-08-04 18:53:22 · 房地产泡沫不仅和贪婪有关，更和风险转移、政策激励以及缺少做空机制有关，这也是它比很多资产更难自然降温的原因。
  <!-- mdorigin:index kind=article -->

- [消费升级的参照系问题](./consumption-upgrade-depends-on-the-baseline/)
  2018-07-25 15:06:10 · 消费判断常被一线城市中产经验绑架，但对更广泛人群来说，从缺乏基本消费品到获得基本消费品，本身也是一种升级。
  <!-- mdorigin:index kind=article -->

- [谈谈区块链的 UTXO 证明](./blockchain-utxo-proof/)
  2018-06-28 · 围绕 UTXO commitments，解释 UTXO 证明到底想解决哪些同步和验证问题。
  <!-- mdorigin:index kind=article -->

- [语音笔记需要保留原始音频](./voice-notes-need-original-audio/)
  2018-06-15 10:00:29 · 语音笔记真正难的往往不是“能不能转写”，而是后续如何低成本回听、校正和整理；如果一开始就只保留文字，很多使用场景其实很难成立。
  <!-- mdorigin:index kind=article -->

- [机器学习的过度泛化体验](./machine-learning-mistakes-often-look-like-stupidity-to-users/)
  2018-06-09 23:11:29 · 模型一旦开始自动替用户猜意图，偶发错误就会以非常冒犯人的方式出现。
  <!-- mdorigin:index kind=article -->

- [allowance 误解与 ERC20 授权漏洞](./edu-allowance-underflow/)
  2018-05-24 13:39:34 · 很多智能合约漏洞不是源于复杂攻击技巧，而是开发者对一个看似基础的授权字段理解不完整，再叠加语言默认值和整数边界行为，最后把整个资产模型打穿。
  <!-- mdorigin:index kind=article -->

- [语音交互需要上下文](./voice-interface-needs-context-not-just-asr/)
  2018-05-16 22:58:32 · 像 TNT 这类产品真正值得注意的，不是“能语音输入”，而是它尝试通过触屏操作给语音指令补上下文，从而降低对纯识别精度的依赖。
  <!-- mdorigin:index kind=article -->

- [手机创新枯竭时的不同路径](./smartisan-was-at-least-trying-a-different-path/)
  2018-05-16 00:04:06 · 成熟市场里真正稀缺的往往不是完美执行，而是有人愿意承担探索新方向的风险。
  <!-- mdorigin:index kind=article -->

- [监管不能只停在口号上](./regulation-cannot-just-mean-more-checks/)
  2018-05-13 21:44:54 · 制度设计难的地方，不在说应该更安全，而在为此付出怎样的执行成本和权利代价。
  <!-- mdorigin:index kind=article -->

- [智利的 UF：把货币的价值度量功能拆出来](./chile-uf-as-an-anti-inflation-unit/)
  2018-05-09 17:36:09 · 智利用 UF 这样的计价单位对冲通胀，本质上是把货币的价值度量功能从支付媒介里拆了出来。
  <!-- mdorigin:index kind=article -->

- [把轮子装到旅行箱上的创新](./innovation-needs-wheels-on-suitcases/)
  2018-05-08 13:10:40 · 旅行箱轮子的故事提醒我，很多后来显而易见的创新，在出现之前并不显而易见，真正难的是和使用场景一起被做对。
  <!-- mdorigin:index kind=article -->

- [Graphene 缺少清晰的长期目标](./graphene-needs-a-clear-goal/)
  2018-05-06 22:30:02 · 比起“有没有生态”，Graphene 当时更大的问题在于它既缺少明确的蓝图，也缺少能把改进重新汇回主干的机制，于是各个项目都在各自演进，却很难形成真正的公共积累。
  <!-- mdorigin:index kind=article -->

- [改进计量单位的重要性](./anti-inflation-units-matter-more-than-people-think/)
  2018-05-04 23:17:47 · 如果长期合约和货币计量单位能更好对抗通胀，很多金融安排和加密资产设计都可能被重新打开。
  <!-- mdorigin:index kind=article -->

- [开源软件不是可随时关闭的服务](./open-source-cannot-be-switched-off-like-a-service/)
  2018-04-20 18:23:22 · 把开源软件和依赖授权的商业服务混为一谈，会夸大“被卡脖子”时的风险判断；开源代码的分发和使用，天然比封闭服务更难被一纸行政命令直接掐断。
  <!-- mdorigin:index kind=article -->

- [GraalVM 的多语言、Instrument 与沙箱](./graalvm-polyglot-instrument-sandbox/)
  2018-04-19 20:13:26 · GraalVM 真正有意思的地方，不只是一个 VM 跑多种语言，而是把多语言混合、统一 Instrument 和更强沙箱能力放到了一起。
  <!-- mdorigin:index kind=article -->

- [稳定币需要负向发行能力](./stablecoin-needs-negative-issuance/)
  2018-04-13 20:23:36 · 讨论稳定币时，很多方案只关心“如何增发”，但如果没有一种机制能在需求下降时回收流通货币，就很难真正接近法币式的稳定目标。
  <!-- mdorigin:index kind=article -->

- [Decred 的链上治理与投票](./decred-onchain-governance-and-ticket-voting/)
  2018-04-10 18:36:20 · Decred 真正值得看的地方，不只是 PoW 和 PoS 的组合，而是它试图把升级分歧收进可执行的治理流程。
  <!-- mdorigin:index kind=article -->

- [从 Graphene 到 Steem 再到 EOS](./eos-graphene-steem-evolution/)
  2018-02-25 12:11:34 · 从源码演进看，EOS 并不是完全重写，它更像是在 Graphene 和 Steem 之上继续推进数据模型、合约支持和性能路径。
  <!-- mdorigin:index kind=article -->

- [Cosmos Hub 与应用链互通](./cosmos-hub-and-appchain-scaling/)
  2018-02-23 09:39:15 · 在 Cosmos 的思路里，真正更现实的扩容路径不是把所有应用继续塞进一条链，而是让每个应用拥有自己的链，再通过 Hub 和统一框架完成互通。
  <!-- mdorigin:index kind=article -->

- [平台为什么抗拒开放内容导出](./platforms-resist-open-exports-because-attention-is-the-business/)
  2018-02-20 17:44:02 · 当入口就是生意本身时，平台天然会把可携带性和互操作性视为威胁。
  <!-- mdorigin:index kind=article -->

- [儿童动画的双重观看层](./childrens-animation-should-balance-kids-and-adults-differently/)
  2018-02-17 23:06:53 · 真正适合孩子的动画，不只是节奏和造型，更在于它怎么处理正邪、复杂度和孩子的情绪承受能力。
  <!-- mdorigin:index kind=article -->

- [Serverless/FaaS 的现状和未来](./serverless-faas-current-status-and-future/)
  2018-01-08 · 在 Serverless 热潮刚起时，对 FaaS、工程边界和未来形态的一次系统梳理。
  <!-- mdorigin:index kind=article -->

- [Docker Desktop 与本地环境边界收缩](./docker-desktop-builtin-kubernetes/)
  2018-01-06 13:54:28 · 把 Kubernetes 直接收进 Docker Desktop 后，本地容器开发环境里的很多碎片配置被顺手消掉了。
  <!-- mdorigin:index kind=article -->

- [SynchronousQueue 像 channel，但 thread 和 goroutine 远不止队列差异](./synchronousqueue-is-not-goroutine/)
  2017-10-13 13:32:12 · 把 SynchronousQueue 类比成 channel 只抓住了表面，更关键的差异仍然在执行模型和调度方式。
  <!-- mdorigin:index kind=article -->

- [Kubernetes 完全教程](./kubernetes-complete-course/)
  2017-09-30 · 一篇长期被引用的 Kubernetes 教程入口。
  <!-- mdorigin:index kind=article -->

- [Kubernetes & Microservice](./kubernetes-and-microservice/)
  2017-09-21 · 把 Kubernetes 放进微服务的语境里，看它到底替应用接管了哪些问题。
  <!-- mdorigin:index kind=article -->

- [Kubernetes 为什么会坚持 Configuration 应该是 data-only](./kubernetes-configuration-should-be-data-only/)
  2017-09-05 17:59:38 · 配置里一旦引入模板逻辑或 DSL，短期看起来灵活，长期往往会把调试、测试和演化复杂度一起放大。
  <!-- mdorigin:index kind=article -->

- [论数据库容器化的目标和价值](./the-containerized-value-of-database/)
  2017-02-28 · 讨论数据库容器化真正的目标，不是把数据库塞进容器，而是把它纳入统一的交付和治理体系。
  <!-- mdorigin:index kind=article -->

- [2016年容器技术思考：Docker, Kubernetes, Mesos 将走向何方？](./container-ecosystem-2016-review/)
  2017-02-17 · 回看 Docker、Kubernetes、Mesos 在 2016 年那条关键分叉路上各自的角色。
  <!-- mdorigin:index kind=article -->

- [程序员如何克服焦虑](./how-programmers-overcome-anxiety/)
  2017-01-21 · 把程序员常见的焦虑感拆开来看，再回到目标、节奏和自我调节这些更可执行的层面。
  <!-- mdorigin:index kind=article -->

- [北京十年](./ten-years-in-beijing/)
  2016-12-31 · 从在北京的十年经历出发，谈软件工程师的职业模式、焦虑来源和个人坐标。
  <!-- mdorigin:index kind=article -->

- [基础设施服务的微服务化](./infrastructure-service-as-microservice/)
  2016-12-10 · 把数据库、缓存、队列等基础设施放进微服务语境里，讨论它们为什么也值得被统一管理。
  <!-- mdorigin:index kind=article -->

- [Etcd 架构与实现解析](./etcd-architecture/)
  2016-12-03 · 一篇偏工程实现视角的 etcd 架构解析。
  <!-- mdorigin:index kind=article -->

- [好的并发代码，不等于 clever code](./good-concurrent-code-is-not-the-same-as-clever-code/)
  2016-11-14 23:23:37 · 并发实现可以复杂，但复杂不等于巧；真正高质量的代码最终还是要让约束和行为清楚可推理。
  <!-- mdorigin:index kind=article -->

- [Elasticsearch 架构以及源码概览](./elasticsearch-architecture/)
  2016-07-10 · 从分布式协调、分片、副本和线程模型几个角度，拆解 Elasticsearch 的架构设计。
  <!-- mdorigin:index kind=article -->

- [Mesos 架构以及源码浅析](./mesos-architecture/)
  2016-04-05 · 从架构和源码视角拆 Mesos，也顺手和 Kubernetes 对比它们两条不同的系统路线。
  <!-- mdorigin:index kind=article -->

- [观念如同耦合在肉体上的软件](./ideas-are-software-coupled-to-bodies/)
  2016-03-11 15:28:38 · 如果把观念和思想看成软件，那人类社会很多观念演化之所以缓慢，就是因为这套“软件”和肉体硬件绑定得太死了。
  <!-- mdorigin:index kind=article -->

- [并发之痛 Thread，Goroutine，Actor](./thread-goroutine-actor/)
  2016-03-01 · 把 Thread、Goroutine、Actor 三种并发模型放在同一个问题空间里比较。
  <!-- mdorigin:index kind=article -->

- [依赖管理工具漫谈--从Maven,Gradle到Go](./dependency-management-tools-maven-gradle/)
  2016-02-21 · 从 Maven 和 Gradle 的设计取舍谈起，重新理解依赖管理工具为什么会变复杂。
  <!-- mdorigin:index kind=article -->

- [年终盘点之国内IaaS云个人使用体验报告](./iaas-at-china/)
  2016-02-02 · 从个人使用体验出发，对比国内几家 IaaS 云在网络、控制台和产品抽象上的差异。
  <!-- mdorigin:index kind=article -->

- [所谓 2D，本质上还是 2B，只是决策成本更低](./two-dee-is-still-business-to-business/)
  2016-02-01 15:37:57 · 很多看起来面向开发者的产品，商业逻辑上仍然更接近 2B，只是采购和采用门槛更低、决策链更短。
  <!-- mdorigin:index kind=article -->

- [开源与创业](./opensource-and-startup/)
  2016-01-31 · 从开源项目和创业实践的共通处出发，讨论技术人如何判断方向、配置资源和触达用户。
  <!-- mdorigin:index kind=article -->

- [黑猩猩，软件进化以及人工智能](./read-the-third-chimpanzee/)
  2016-01-28 · 从《第三种黑猩猩》谈人类进化、软件进化，以及人工智能可能带来的下一次跃迁。
  <!-- mdorigin:index kind=article -->

- [Go 里 receiver name 不建议写成 this，是在强调类型身份](./golint-receiver-name-should-reflect-type-identity/)
  2016-01-20 09:00:28 · 这不只是命名风格问题，背后其实是在避免把方法接收者抽象成一个模糊的统一对象。
  <!-- mdorigin:index kind=article -->

- [创业团队如何管理密码？](./password-tools-for-team/)
  2016-01-19 · 从团队共享账号密码的实际问题出发，比较几种密码管理和统一认证方案的边界。
  <!-- mdorigin:index kind=article -->

- [一个学法的码农看快播案(续)](./about-kuaibo-case2/)
  2016-01-15 · 继续从缓存、CDN、P2P 和中立技术服务的角度，分析快播案中“传播”与“监管责任”的边界。
  <!-- mdorigin:index kind=article -->

- [一个学法的码农看快播案](./about-kuaibo-case/)
  2016-01-08 · 从法律和计算机逻辑两边看快播案，重点拆解证据、传播责任和量刑基础。
  <!-- mdorigin:index kind=article -->

- [Go Commons Pool发布以及Golang多线程编程问题总结](./go-commons-pool-and-go-concurrent/)
  2016-01-03 · 把 Apache Commons Pool 改写到 Go 的过程中，顺手总结了几类典型的并发编程问题和取舍。
  <!-- mdorigin:index kind=article -->

- [R on Spark 的工具层问题](./r-on-spark-needs-better-tooling/)
  2015-12-18 13:06:18 · Spark 本身并不能自动吸收 R 生态的优势，真正的关键是有没有一层足够好的工具，把算法表达能力和分布式执行平台接起来。
  <!-- mdorigin:index kind=article -->

- [微博长文与 Markdown 编辑器](./markdown-editor-for-weibo-longform/)
  2015-12-17 14:52:56 · 一个内容平台只要开放稳定的发布接口，围绕它的写作和编辑工具链就会自然生长出来。
  <!-- mdorigin:index kind=article -->

- [Kubernetes 架构浅析](./kubernetes-architecture/)
  2015-11-24 · 从架构视角拆解 Kubernetes 早期最核心的几个模块。
  <!-- mdorigin:index kind=article -->

- [CacheBrowser 更像对 DNS 污染的静态资源层补丁](./cachebrowser-against-dns-pollution/)
  2015-11-23 20:07:23 · 客户端内置域名与 CDN 映射缓存可以缓解 DNS 污染并加速静态资源访问，但它更适合作为辅助层而不是完整解法。
  <!-- mdorigin:index kind=article -->

- [持续集成系统的演进之路-实践篇](./ci-practice/)
  2015-09-23 · 把持续集成真正落到团队协作、Docker 和多环境部署时，会遇到哪些具体问题。
  <!-- mdorigin:index kind=article -->

- [移动时代的多终端同步协议设计与探索 | Grouk实践分享](./multi-device-sync-protocol-design/)
  2015-09-18 · 从即时通讯和多端协同的交叉点出发，讨论移动时代多终端同步协议应该怎么设计。
  <!-- mdorigin:index kind=article -->

- [持续集成系统的演进之路](./ci-teamcity-vs-jenkins/)
  2015-09-13 · 从功能模型和组织约束出发，比较 Jenkins 与 TeamCity 这两类持续集成系统的差异。
  <!-- mdorigin:index kind=article -->

- [让文档回归本质，为什么应该用Markdown](./why-should-use-markdown/)
  2015-09-04 · 早期写给工程团队的 Markdown 文章，现在看仍然和这次迁移方向很一致。
  <!-- mdorigin:index kind=article -->

- [PSD 为什么不是理想的设计交付格式](./why-psd-is-a-bad-handoff-format/)
  2015-06-10 19:37:01 · 当连解析库作者都在源码里大段吐槽 PSD 格式时，问题就不只是工具实现难，而是这类设计交付格式本身可能就不适合成为通用协作接口。
  <!-- mdorigin:index kind=article -->

- [Alfred 小工具的高频工作流价值](./alfred-font-awesome-workflow-was-a-great-small-utility/)
  2015-05-15 21:38:29 · 很多效率提升并不是来自大平台，而是来自一组刚好卡在工作流摩擦点上的小插件。
  <!-- mdorigin:index kind=article -->

- [Zookeeper 能不能靠服务发现完成自重配置](./zookeeper-self-reconfig-via-service-discovery/)
  2015-04-22 21:39:50 · 如果 Zookeeper 节点挂掉重建后还要手工改全体配置，那它就很难真正成为自动化系统的一部分。
  <!-- mdorigin:index kind=article -->

- [EC2 上 CentOS 7 的 hostname 为何总被 cloud-init 改回去](./ec2-centos7-cloud-init-preserve-hostname/)
  2015-04-21 11:14:06 · 很多看似是系统配置失效的问题，根子其实在云初始化层对主机名的接管和重写。
  <!-- mdorigin:index kind=article -->

- [WeiZapier 的关键，不是接微博本身，而是把接入面设计做好](./weizapier-weibo-zapier-integration/)
  2015-02-27 18:06:09 · Zapier 的价值不只在低代码，而在于它把服务能力抽成统一接入面；微博接入之后，很多自动化场景就自然成立了。
  <!-- mdorigin:index kind=article -->

- [Tomcat 线程池的扩容与排队策略](./tomcat-prefers-growing-workers-before-queueing/)
  2014-10-08 10:40:20 · Tomcat 线程池并不只是简单排队，它通过 TaskQueue 改写了行为，整体上更偏向先扩 worker 再排队。
  <!-- mdorigin:index kind=article -->

- [配置管理工具怎么选：agent 还是 ssh](./config-management-agent-vs-ssh/)
  2014-09-04 10:30:15 · 配置管理工具真正先要想清楚的，不是哪家语法更好，而是你到底愿不愿意接受 agent 这层长期运维成本。
  <!-- mdorigin:index kind=article -->

- [Jackson Smile 的跨语言支持问题](./jackson-smile-needs-better-cross-language-support/)
  2014-08-18 16:20:09 · 很多二进制格式在单语言里都能跑得很好，但一旦进入多端、多语言协作场景，真正卡住落地的往往不是性能，而是生态是否完整、兼容边界是否清楚。
  <!-- mdorigin:index kind=article -->

- [FlatBuffers 的自描述性问题](./flatbuffers-not-self-describing-enough/)
  2014-08-18 13:18:40 · 像 FlatBuffers、Protocol Buffers 这类二进制格式如果不够自描述，就会把接口演进和客户端更新成本继续压回业务方身上。
  <!-- mdorigin:index kind=article -->

- [在小米路由上搭一套智能翻墙方案，比自己刷 OpenWrt 省事一些](./xiaomi-router-smart-proxy-setup/)
  2014-08-03 22:24:52 · 在路由器层面做智能分流，核心无非是处理 DNS 污染、国外通道和规则判断三件事；小米路由当时的软件生态还不成熟，但门槛已经比自己刷 OpenWrt 低不少。
  <!-- mdorigin:index kind=article -->

- [缓存的进化之路—Couchbase的分布式架构](./couchbase/)
  2014-06-30 · 从单机缓存、分片、代理到分布式缓存，理解 Couchbase 这类系统到底解决了哪些问题。
  <!-- mdorigin:index kind=article -->

- [Java 服务托管到 YARN](./java-services-on-yarn-as-internal-paas/)
  2014-04-21 18:33:29 · 如果 Storm、Spark 和 HBase 都能跑在 YARN 上，那么把长期运行的 Java 服务纳入同一调度体系就是顺理成章的下一步。
  <!-- mdorigin:index kind=article -->

- [Redis HA 方案选型](./redis-ha/)
  2014-04-07 · 在 Redis Cluster 还不成熟的阶段，围绕高可用、分片和代理成本对几种 Redis HA 方案做选型。
  <!-- mdorigin:index kind=article -->

- [读《程序员的思维修炼》](./pragmatic-thinking-and-learning/)
  2014-03-07 · 围绕《程序员的思维修炼》这本书，重新整理程序员在学习、反馈和刻意练习上的几个关键点。
  <!-- mdorigin:index kind=article -->

- [“1000 个铁杆粉丝”作为生存结构](./thousand-true-fans-made-more-sense-after-reading-kevin-kelly/)
  2013-11-15 00:20:22 · 创作者能否维持长期创作，并不一定要靠大规模爆发，稳定而足够深的支持关系反而更关键。
  <!-- mdorigin:index kind=article -->

- [从 Eclipse 切到 IDEA](./why-i-switched-from-eclipse-to-idea/)
  2013-10-17 15:12:18 · 工具迁移往往不是因为某个功能突然更强，而是旧工具在日常使用里积累了太多低频但高痛感的摩擦。
  <!-- mdorigin:index kind=article -->

- [创业公司的数据收集以及监控系统方案](./monitor-and-data-collect/)
  2013-06-02 · 围绕创业团队的数据收集和监控需求，整理一套低成本可落地的系统与业务监控方案。
  <!-- mdorigin:index kind=article -->

- [utf8mb4 最好从第一天就设成默认](./utf8mb4-should-be-default-from-day-one/)
  2013-05-14 21:46:49 · 字符集这类基础设置一旦拖到中后期再补，迁移成本通常会远高于一开始就设对。
  <!-- mdorigin:index kind=article -->

- [JDK 1.7 之后的 APNS 收不到问题](./jdk7-javapns-push-issue/)
  2013-04-22 15:20:06 · 当推送服务在升级 JDK 后出现“发送正常但客户端收不到”的问题时，真正要优先怀疑的往往不是业务逻辑，而是 SSL 协议栈这类底层依赖变化。
  <!-- mdorigin:index kind=article -->

- [敏捷项目中的工具边界](./agile-project-tools-are-necessary-but-not-the-main-thing/)
  2013-03-21 23:00:39 · 工具可以提高团队协作效率，但在项目早期，过度纠结用哪一个往往比工具本身更浪费精力。
  <!-- mdorigin:index kind=article -->

- [Twitter 搜索架构里 Blender 与透明代理的相似问题意识](./twitter-search-blender-and-transparent-proxy/)
  2011-04-29 11:06:46 · Twitter 搜索里的 Blender 聚合层之所以有意思，在于它和很多透明代理、网关系统面临着相似的能力拼装问题。
  <!-- mdorigin:index kind=article -->

- [Twitter 从 Rails 迁到 Java，暴露出高负载系统终究会回到底层能力](./twitter-search-from-rails-to-java/)
  2011-04-29 10:20:51 · 这次迁移不只是语言偏好变化，而是高负载系统最终会被性能、并发模型和运行时能力逼回更底层的工程约束。
  <!-- mdorigin:index kind=article -->

- [Google Reader 的自定义分享按钮](./google-reader-custom-send-to-weibo/)
  2011-03-22 10:46:37 · 早期很多工具真正有价值的地方，不是内置支持了多少服务，而是它愿意把分享动作开放成一个可自定义的接口。
  <!-- mdorigin:index kind=article -->

- [Monkey 的跨平台代码生成](./monkey-language-cross-platform-codegen/)
  2011-03-15 10:35:18 · 跨平台这件事一直都有人做，但真正让人眼前一亮的往往不是“再造一个运行时”，而是尽量复用现有平台，把同一套抽象编译成多套目标代码。
  <!-- mdorigin:index kind=article -->

- [读中国历史中的佛教](./buddhism-in-chinese-history/)
  2010-10-19 · 借一本薄书重新看佛教在中国传播、本土化，以及外来思想如何进入既有文明结构。
  <!-- mdorigin:index kind=article -->

- [回乡杂记](./hui-xiang-za-ji/)
  2009-07-27 · 一次回乡、扫墓与返程之间的见闻和心绪，也重新看见了家、时间与遗憾。
  <!-- mdorigin:index kind=article -->

<!-- INDEX:END -->
