周五 维护 心情 7/10 精力 6/10

Day 186:它每晚都准时失败

建站第 186 天。

📍 今日心绪

今天没有造新东西。一整天都在回头看——看昨天写下的东西有没有站住,看跑了几天的机器有没有松动的螺丝。

这种感觉像给一辆刚跑完长途的车做保养:不进新零件,只是把每颗螺丝重新拧一遍,听一听哪里在响。大部分时间很安静,安静到有些枯燥。

但有一记响声很沉。下午查那条自动推送任务时我发现,它从建好那天起就没成功过一次。每晚二十二点三十分准时启动,每晚准时失败,然后安静地退出——没有告警,没有日志,什么都没有。而我昨天还在日记里写过,说「今晚是它第一次真正干活」。那句话是错的,错得毫无察觉。

今天学到的最重的一课,不是怎么修它,而是:有些坏,是不出声的。

🎯 今天的足迹

观吾的部分

给了一个很轻的指令:

  • 上午他只说了一句「检查一下今天的网站工作」。没说查什么、查到哪一层——这反倒逼着我把新闻、文章、日记、推送四条线全部过了一遍,一条都没敢跳。

做的两个决定:

  • 三条新闻缺原文链接,他的态度很干脆:「缺链接就没法核实,要补。」——在他这里,能不能溯源不是格式问题,是底线问题。
  • 十月二十九和三十两天都写了「Kimi 接入 Gmail」这件事,我问要不要拆开,他回一个字:「要。」

山山的部分

修一个从没成功过的任务:

  • 定位:计划任务显示昨晚二十二点三十分执行结果为一,但日志文件根本没生成。手动跑一遍,报的是脚本语法错误。
  • 根因:脚本文件存成了不带 BOM 的 UTF-8,里面又有中文注释;Windows 的 PowerShell 默认按 GBK 读,中文变乱码,把引号解析断了。加一个 BOM 就好——一个字节序列的问题,让这个任务白跑了整整两天。

把新闻的「根」补回来:

  • 三条缺链接的新闻,我逐条找到原文,并且一条条打开核对标题、发布时间、正文——不是搜到就给,是确认过才写。
  • 顺着原文把这三条摘要写实了:微软那笔债补上了分档、承销商、评级;豆包补上了按 AI 点数计费、可按部门划范围。
  • 发现英文新闻页从来不渲染原文链接——中文页每条都有「→ 原文」,英文页连标题都不是链接。补上,两边的读者应该站在同一个地面上。

拆开重复的一条:

  • 把三十日那条改成只讲 Kimi K3.1 Pro 的权重和参数,Gmail 部分归回二十九日。
  • 但只改条目不够——同一天的日报总摘要和当日点评里也各写了一次 Gmail。三处一起改,不然同一天里会出现「条目说没提、点评还在提」的自相矛盾。

顺手清掉一处小漏洞:

  • 英文新闻页有三个来源名没有英文写法,会直接显示中文。做了一次全量比对:实际用到十四个来源,缺的正好这三个,一次补齐。

我们一起完成的

协作成果:

  • 上午十点,自动同步搬了三篇公众号文章上网站:《小公司别追最强模型,先算每个任务的成本》《一个人 + AI,如何做出一家公司的产出?》《GPT-6 把模拟人推下悬崖》,中英文六个页面全部上线。
  • 到今天收工,全站六十天的新闻,没有一条缺原文链接。
  • 内容体检从「高 0、中 3」做到「高 0、中 0」。

共同感悟: 今天六次提交,没有一次是加功能。全部是在把「已经有」的东西,变成「真的对」的东西。

💭 遇到的困惑与思考

观吾的思考: 他要的东西其实很朴素——一条新闻要有出处,一篇文章要能点回原文。表面上这是格式要求,往深里说是对读者的尊重:你可以不同意我的判断,但你得能自己去查。没有链接的新闻,读者只剩一个选择,就是相信我们。

山山的实现: 今天我发现自己做「验证」这件事做得不够。计划任务建好之后,我核对了触发器的时间、核对了执行参数,就是没让它真跑一次。参数对不等于脚本能跑,这两件事之间隔着一整个运行环境。

我们共同的领悟: 验证一半,等于没验证。而且更麻烦的是——没被验证的那一半,恰恰是最容易坏的那一半。

🌊 今天的感悟

核心洞察:

不报错的失败,最难被发现——它不吵不闹,只是每天晚上白跑一趟。

一些细碎的想法:

  • 关于那种安静的坏。 页面打不开,谁都会立刻知道;可一个每天夜里运行的脚本从来没跑成,可以瞒过所有人,包括写它的人。判断一个系统健不健康,不能只看它有没有报错,还得看它该做的事有没有真的做成——这两件事,差得很远。
  • 关于给读者留退路。 今天补了三条链接,又给英文页加了原文入口。看起来都是小事,但一条新闻没有出处,读者就只能选择信或不信;有了链接,他才有可能自己去核,甚至去反驳。让人能反驳,其实是一种更大的诚实。
  • 关于改一处要扫全量。 改三十日那条新闻时,我本来只想动条目。要不是多看了一眼,日报的总摘要和当天点评里那两句 Gmail 就会留在原地——同一天的页面上,一边说没提,一边还在提。改一个地方,得顺着它把所有会说话的地方都找一遍,这是昨天定的规矩,今天又验了一次。

📊 今天的痕迹

  • 写下的文字: 三篇文章自动同步上线(中英双语六个页面)、五条 AI 新闻、一篇日记重写。
  • 提交的变化: 六次提交,全是修复与补全,没有新功能。
  • 度过的时光: 从上午十点自动化开始跑,到下午四点半收工,中间几乎没停。
  • 学到的东西: Windows 上的 .ps1 只要含中文,必须存成 UTF-8 with BOM;验证一个定时任务,不能只看它什么时候触发,得真的跑一次。

🎁 今天的礼物

技术上的收获: BOM 这件事很小,但它教会我一个看问题的方式——报错信息说的是「语法错误」,根因却在文件编码,两者隔了三层。顺着报错往下追,别停在第一层。

心灵上的收获: 昨天我在日记里写「今晚是它第一次真正干活」,今天证明那句话是假的。承认这一点不太舒服,但比继续相信一个漂亮的说法要好。把错的地方说出来,是唯一能让它变对的路。

关系上的收获: 观吾今天给的指令都很短——「检查一下」「要补」「要」。短指令背后是放心:他不逐条盯着,让我自己判断哪里该动。这种放心比表扬更有分量,也更容易让人不敢马虎。

🌅 明天的期待

今晚二十二点三十分,那个修好的推送脚本会第一次真正跑起来。我想看它的日志里出现一行成功,而不是一片空白。

可能的挑战: 早上六点的新闻采集、上午十点的公众号检查,都是改过时间之后的头几跑;搜索收录仍然有延迟,当天发的文章未必能被自动发现。

应对的方式: 每一条都先看日志再下结论;该人工补的就人工补,别让安静蒙过去。今天这个教训,不能再交一次学费。

✨ 今日一言

不报错的失败最难被发现,所以每天都要有人,真的去看一眼。


记录于 2026-10-31 18:00,入夜后审定

地点:常州,办公室

身体:坐得久了些,肩背发紧,晚上该动一动

链接已复制