Field Notes
把踩过的坑、想明白的问题,慢慢整理成文章。
/
精选笔记

01
从一条 ngrok 命令说起:内网穿透到底是怎么「穿」过去的
以 ngrok 为例,把内网穿透的完整链路拆开讲清楚——NAT 为什么进不来、反向隧道怎么建、边缘服务器怎么路由、泛域名和证书如何配合,以及 frp/cloudflared 与它的异同。
工程实践 · 内网穿透

02
用 Multica 把 AI 对话回流进项目与脚手架
AI 让「生成」廉价到近乎免费,而对话本身是易逝的:窗口一关,那些踩过的陷阱、试探过的歧路、当时不易复得的判断,尽数沉入水底。真正稀缺的从来不是生成,是留存与复利。本文以一座登山编年档案库为锚,谈如何借 Multica 把临时会话持久化,并令其回流进认知、项目与脚手架。
工程实践 · 方法论

03
gh:把整个 GitHub 装进终端
gh 是 GitHub 官方命令行工具——PR、Issue、Actions、Release,乃至整个 REST/GraphQL API,都不必再切回浏览器。而它在 AI 时代被重新估值的真正原因是:CLI 与 LLM 都是「文本进、文本出」,天生适配。这是一份把 gh 用进日常工作流的完整指南。
工程实践 · CLI
全部文章共 65 篇
- 从一条 ngrok 命令说起:内网穿透到底是怎么「穿」过去的工程实践 · 21 min以 ngrok 为例,把内网穿透的完整链路拆开讲清楚——NAT 为什么进不来、反向隧道怎么建、边缘服务器怎么路由、泛域名和证书如何配合,以及 frp/cloudflared 与它的异同。
- 用 Multica 把 AI 对话回流进项目与脚手架工程实践 · 12 minAI 让「生成」廉价到近乎免费,而对话本身是易逝的:窗口一关,那些踩过的陷阱、试探过的歧路、当时不易复得的判断,尽数沉入水底。真正稀缺的从来不是生成,是留存与复利。本文以一座登山编年档案库为锚,谈如何借 Multica 把临时会话持久化,并令其回流进认知、项目与脚手架。
- gh:把整个 GitHub 装进终端工程实践 · 19 mingh 是 GitHub 官方命令行工具——PR、Issue、Actions、Release,乃至整个 REST/GraphQL API,都不必再切回浏览器。而它在 AI 时代被重新估值的真正原因是:CLI 与 LLM 都是「文本进、文本出」,天生适配。这是一份把 gh 用进日常工作流的完整指南。
- 金冰镐奖:四个关于「怎么登,比登了什么更重要」的故事随笔 · 16 min登山界的最高荣誉从不表彰「登了什么」,只在意「怎么登」。Latok I 跨越世代的执念、Rupal 壁的极简主义、安纳普尔纳的信任悖论、闪亮之墙上那场没有峰顶的「世纪之攀」——四个故事,拼出阿尔卑斯式攀登的精神内核。
- 缓存与数据库一致性:从 Cache Aside 到布隆过滤器工程实践 · 17 min从一个读多写少的业务接口出发,推演双写方案为何失败、Cache Aside 为何成为主流,再到击穿、雪崩、穿透三类失效场景与布隆过滤器的取舍——一条主线串起缓存一致性背后的完整决策链。
- 从静态服务器到 CI/CD:GitHub Pages、Jekyll 与 GitHub Actions 完全指南工程实践 · 33 min以「只服务静态文件」这一个约束为主线,串起 GitHub Pages 的托管原理、Jekyll 与前端框架的构建部署、GitHub Actions 自动化,直到 CI/CD 的完整图景。
- LeetCode Hot 100 | 10. 和为k的子数组算法题解 · 5 min利用前缀和与哈希表,将「寻找子数组和」转化为「寻找两个前缀和之差」,实现 O(N) 求解。
- LeetCode Hot 100 | 100. 寻找重复数算法题解 · 3 min利用值到下标的映射关系,通过正负标记法实现 O(1) 空间的原地哈希检测重复
- LeetCode Hot 100 | 11. 滑动窗口最大值算法题解 · 5 min通过自定义单调递减队列,在 O(N) 时间内求解每个滑动窗口的最大值。
- LeetCode Hot 100 | 12. 最小覆盖子串算法题解 · 1 minLeetCode Hot 100 第 12 题解析