时间线
长一点的写在这里,短一点的也写在这里。没有分类,只有先后。
不追上游:把博客做成一次性交付
fork 一个开源博客引擎,然后宣布「不追上游」,听上去是一种自由:改动随便做,不用评估合并成本。但它真正的含义是—— 你一个人接管了这个项目的全部技术债 ,包括那些你还不知道存在的部分。 成本不会出现在第一天。它出现在第三年的某个下午:你…
把「发布即生效」当成硬约束之后,很多原本理所当然的架构选择突然不成立了:静态生成不行、增量构建不行、队列延迟也不行。约束越硬,方案越少,但剩下的那个往往更简单。
Serverless 的账单总在你不看的时候长出来
一台 2C2G 的首尔小机器,一个月不到一杯咖啡的钱,扛住一个每天几百访问的博客绰绰有余。 而同样流量的 Serverless 方案,账单会随爬虫、随图片、随一次误配置的缓存策略悄悄翻倍。你很难在收到账单前发现它,因为每一笔都很小。 什么时…
今天什么都没写,但把备份脚本跑通了。恢复演练也做了一次——从 tar 包到本地能打开文章,一共 11 分钟。没做过演练的备份不叫备份,叫心理安慰。
中文排版里那三毫米
行高从 1.7 调到 1.85,段间距从 1em 调到 1.4em,字距几乎不动——整页读起来的感觉就完全不同了。 这三毫米不值得写进需求文档,但它决定了别人愿不愿意读完第二段。 几条具体的 不首行缩进,用段间距代替; 每行 37 个汉字左…
双链不是链接,是承诺
一旦你在正文里写下 [[某个标题]] ,你就承诺了这个标题会一直存在。 所以按标题锚定的双链,本质上是一种写作纪律:要么别链,要么别改名。按 slug 锚定则宽松一些,代价是写的时候要记一串英文。 两种都要的时候,就得定义解析顺序——标题优…