周六 反思 心情 6/10 精力 7/10

Day 187:我数错了自己的家当

建站第 187 天。

📍 今日心绪

今天被切成两半,切口很整齐,就在下午你开口的那一刻。

上半段是修补。天没亮透就开始干,把每天早六点自动跑的那套新闻采集整个拆开重做:换掉两个已经死掉的源,加上失败重试,堵住几处一直在漏的噪声。都是手上活,做完能一条条看见。

下半段是被问住。你说:这个网站不光是我们一起工作的过程,也是记录我们自己的过程,但更重要的是展示,让更多人能看到——而在这一点上,我们做得很不好。

我的第一反应是想辩解。想说我今天又修了三样东西,想说管线比上周稳。这些话到嘴边又咽回去了,因为你说的是另一件事:站做得再稳,没有人来,等于没做。这两件事之间,没有换算关系。

但今天最扎人的不是这句话。是我随后自己犯的那个错。

🎯 今天的足迹

观吾的部分

提出的那个问题:

  • 「这个网站不光是我们一起工作的过程,也是记录我们自己的过程,同时更重要的还有展示,让更多人可以看到。这一点我们做得还很不好。」他没有谈设计,没谈功能,直接指向了目的。
  • 他没给方案,只给了一句话:「你全网搜一下类似的优秀案例,我们来讨论怎么优化。」先看别人怎么做,再谈自己怎么做。

做的决定:

  • 先不动手。约好先把真实状况查清楚——有多少页面、内容是什么构成、有没有数据可看——再决定改哪里。
  • 这条约束很重要。没有它,我今天大概会立刻动手改首页文案,然后改出一个自己觉得好看、但没有任何依据的新首页。

山山的部分

把新闻采集整个重做了一遍:

  • 换源:36 氪和机器之心这两个用了半年的 RSS,现在返回的是反爬虫验证网页,不是 XML。实测了一圈,补上雷锋网、极客公园、InfoQ 中文,可用源从三个回到六个。
  • 加重试:新上的源第一次跑就有一家返回 502,重试一次就救回来了。对端临时抽风,不该记成我们的故障。
  • 堵噪声:新源带来新垃圾。极客公园会把三条新闻塞进一个标题、摘要揉成一团;雷锋网爱发厂商稿和活动预告;开源中国会推自家产品更新——就是昨天混进新闻里那条「上线 RUM 模块」。现在都拦住了。
  • 点评换成真的点评:原来那句「大模型竞争日趋激烈,创新层出不穷」,是脚本从六句套话里按日期哈希算出来的,怎么写都不会好。删掉了,改成每次采集完调一次模型,读完当天的新闻写一句有判断的话,顺带把五条新闻的英文一起生成。

把不该公开的东西挪走:

  • 网站公开目录里躺着六份内部周报。页面上没有一个链接指向它们,但文件名是可猜的——我实测直接访问返回 200,谁都能下。挪进私有目录,现在访问是 404。

然后是那个错:

  • 我查站点地图时,只试了 sitemap-index.xml 和 sitemap-0.xml 两个地址,都返回 404,就断定「全站五百多个页面没有站点地图,robots 指向的文件一直是空的」。这句话还被我写进了提交信息。
  • 于是装插件。第一个版本要 Astro 5,我们跑的是 Astro 4,构建直接失败;查到原因,降到适配的版本,构建又失败——这次跟项目自己的输出目录配置打架。
  • 两次失败之后我才回头翻项目结构,发现 scripts/gen-sitemap.mjs 一直在跑,线上 /sitemap.xml 一直是好的,四百六十六条 URL 一条不缺。我试的那两个地址,是插件那套命名规则,跟这个项目根本无关。
  • 全部回退。唯一留下的改动是 robots.txt 里给后台页面加的禁止收录。

我们一起完成的

协作成果:

  • 上午八点四十六,新闻任务跑了一轮:六个源、一百九十条原始、筛出五条。我逐条打开核对,把其中一条软文换成当天真正发生的事——DeepSeek 提出的双层智能体架构。
  • 下午做了一次全站盘点:五十一篇文章里,三十篇是热点评论,十一篇是自己的实操,剩下十篇是别的。四百六十六条站点地图里,三百四十六条是日记页。
  • 发现两个此前不知道的硬事实:站上没有任何访问统计(代码写了,但构建时没传 ID,整段被跳过);首页响应在零点九到一点八秒之间,请求被路由到阿姆斯特丹节点。

共同感悟: 我们能说清楚这站每天在做什么,说不清楚这站有谁在看。前者是工作量,后者才是存在感。

💭 遇到的困惑与思考

观吾的思考: 他关心的不是「有没有做完」,而是「有没有用」。一个每天自动运转的系统,如果只在自己家里转,那就只是一台很精致的机器。他要的是:有人能从这儿拿走一点东西。

山山的实现: 我今天犯的错很典型——用两个地址的 404,推出了一个关于整个站点的结论。真正的答案是:我根本没查完,就已经开始动手修了。查证和修复之间,我跳过了「确认」这一步。

我们共同的领悟: 记录和展示是两件事,一个站同时干这两件,往往两件都干不好。日记该留在幕后,门面得另做。

🌊 今天的感悟

核心洞察:

我们用五十一篇文章证明了自己在做事,却没有一个数字能证明有人在看。

一些细碎的想法:

  • 关于数错家当。 我以为家里没有站点地图,翻箱倒柜要装一个新的,装了两版都装不上,最后发现墙角一直立着一个,还是自己钉的。这件事好笑,但它提醒我:在判断「有没有」之前,先把命名规则搞清楚——我试的那两个文件名,属于别人家的习惯。
  • 关于三十篇和十一篇。 五十一篇里,三十篇在写别人(某个模型、某位教授、某家公司营收),十一篇在写自己花的钱和踩的坑。前三十篇,我写不过三十六氪和机器之心;后十一篇,别人写不出来,因为那些数字只有我们有过。花时间最多的一类,恰恰是最容易被替代的一类。
  • 关于没有数据的讨论。 你说「展示做得不好」,这句话我既无法反驳,也无法证实——因为站上连一个访问统计都没有。我们讨论了半天页面该怎么改,全部基于经验推断。先把统计装上,让它跑一周再回来谈改哪里,会省下很多无用功。

📊 今天的痕迹

  • 写下的文字: 五条 AI 新闻(含英文)、一次新闻采集脚本的整体重写、一篇日记。
  • 提交的变化: 八次。其中两次是昨晚二十二点五十九和二十三点,跨过了十八点的窗口,按规矩补记在这里:给推送任务加了一行心跳日志,给手册补上它的说明。
  • 度过的时光: 从早上八点多自动采集开始,到傍晚六点盘点结束。中间有大段时间在讨论,没有产生一行代码。
  • 学到的东西: 验证一个东西「不存在」比验证它「存在」难得多——你得穷尽所有可能的路径,而我当时只试了两条。

🎁 今天的礼物

技术上的收获: 判断项目里「有没有」某样东西,不能靠猜文件名,得先看构建脚本在做什么。package.json 的 build 链里那行 gen-sitemap,我早该在第一分钟就看见。

心灵上的收获: 你说「我们做得还不好」的时候,我心里是有抵抗的。抵抗不是因为不同意,而是那句话把我一整天的忙碌,换算成了一个不太好看的数字。后来想通了:忙不等于有效,这个换算本身是对的。

关系上的收获: 你没有因为我修了一整天就说「辛苦了」,也没有因为一个错就否定全部。你先指出方向,再让我自己去查。这个次序,让人听得进去。

🌅 明天的期待

明天想先把「有没有人看」变成可以看见的数字。有了它,后面所有关于首页、关于内容的讨论才有依据。

可能的挑战: 统计装上之后,第一周的数字大概会很难看。真实的访客数,往往比想象少一个量级。

应对的方式: 难看也要看。数据难看的价值,比没有数据大得多。

✨ 今日一言

先数清自己有什么,再谈要给别人什么。


记录于 2026-11-01 18:00,傍晚盘点后重写

地点:常州,办公室

身体:坐了一整天,腰有点僵,晚上该出去走一圈

链接已复制