summaryrefslogtreecommitdiff
path: root/content/weekly/69.md
blob: 6f785d92e5bd4ecfbb12d93685627d2e80643483 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
+++
title = "稻草人周刊 Vol.69"
subtitle = "我不喜欢魔法"
tags = [
    "语言",
    "AI",
    "健康",
    "编程",
]
date = 2026-02-23T00:00:43
draft = false
toc = true
toot = "https://akk.eltr.ac/objects/8ef65a60-462b-4b0b-b380-a116393732fc"

+++

{{< music netease="https://music.163.com/#/song?id=1490999365" spotify="https://open.spotify.com/track/6Im9k8u9iIzKMrmV7BWtlF" apple="https://music.apple.com/cn/album/34-35/1537476578?i=1537476593" cover="https://img.eltr.ac/geedeapro/posts/weekly/69/34-35-album-cover.jpg" title="34+35" artist="Ariana Grande" >}}

如果第 69 期周刊都没有双关的话,~~那就是不尊重数字了。~~

> No shit. Math class. Never was good
>
> 真的,数学课,从来没学好过。

<!--more-->

## 连接

### 词典有什么用?

> [!note] 📻
> [《独树不成林》306 - 词典有什么用?](https://www.xiaoyuzhoufm.com/episode/699775f7de29766da9f64ccd)

很惊喜,写完《[论遣词造句](/essays/on-wording/)》这篇文章的三天后,我就听到了树老师的这期播客,讨论纸质词典的发展历史和现状,也谈到了语言的主观和规范等话题。

简单来说,词典在一开始是知识分子建立共识的工具,并非是像如今的《新华字典》一样人尽皆知的东西,如今人们认知中的词典其实是相当现代的产物。美国的韦氏词典,作为一本现代意义上的词典,实际上承担了相当大的政治作用,编撰者 Webster 本来想把它取名叫「美国语言词典」,因为当时美国正在从英国独立出来,所以他野心勃勃地想要创造出独立于 English language 的 American language,在文化上与英国做出区分。在中国,词典对用词乃至意识形态的规范,也是相当政治化的,比如「封建」一词就从对政体的中性描述,变成了贬义词,与「落后」关联起来,如今人们能轻松地说出「封建落后」这个词——用播客中的话来说:这是马克思主义对中文的强奸。还有「爹味」一词,也是互联网上的女性主义者对「爹」的贬义化,女人用这个词批评男人,男人用这个词自省,人们也用这个词评价女性。

不过,近年来,在词典行业内部已经建立起了这样的共识:词典不再主动规范语言,而是描述语言的变化。英语中 Literally(字面意思上地)这个词被滥用,以至于意思变得完全相反,人们可以自然地说出「I would literally die if I do that」(那么做的话,我字面意思上地就死了)这种话,这成了语气词,用来表示夸张。这显然是错误的用法,但词典不再揪着错误不放,而是把错误归入词典的一部分,描述这种变化:这个词也有表示夸张的意思,一些人会对这种用法感到不舒服,但就是有人会这么用。

播客最后讲到,语言本身就无法做到绝对的客观公正,事实上一些力求客观公正的人,也是用着主观的标准来判断是否客观公正的。过去人们尝试过规范语言,但无法做到。如今人们面临的困境,比如互联网俚语对词汇的污染,实际上和以前没有什么不同,以往任何一个时代的词典编撰者,都会说「这是语言最混乱的时代」,各种现象给语言带来了大量的新词汇,而互联网只是其中之一。即便互联网的信息传播速度再快,人类的脑容量也是一如既往地小。

无论语言怎么主观、怎么混乱,都是一个「凑合着用」的东西,只不过「凑合着用」的标准在不同的人眼里也是不同的,语言的使用也有高低之分。

顺带一提,我在这周发布了[用词表](/glossary/)页面,阐述了我的用语习惯和原则,意在自我规范。如果你感兴趣可以读读,也可以考虑给自己的博客加上 `/glossary` 页面。

### Token 焦虑和老虎机

> [!note] 📜
> ["token anxiety"; or, a slot machine by any other name](https://jkap.io/token-anxiety-or-a-slot-machine-by-any-other-name/)

许多美国科技公司开始学习中国的 996 工作制度,作者担忧雇主对 Agent 编程的鼓励(甚至强求)会让不道德的工作制度更容易实施,毕竟,如果你做的只是告诉电脑应该怎么做、审查它的代码、每天用十几个小时「带娃」,你真的是在工作吗?

也有不少人意识到,使用 LLM 编程就像是玩老虎机,让人以为只要再写一句提示词、再拉一下拉杆、再审查一遍代码、再听一句「You're Absolutely Right!」,就能得到梦寐以求的产品。实际上这不会发生,*但如果呢?* 有不少重度 Agent 编程使用者,发觉自己有成瘾倾向。作者指出,新型的瘾症往往需要一段时间以后才会被当作需要治疗的症状。对 LLM 上瘾完全有可能是下一个被发现的新瘾症。[^4]

动脑筋想一想:在工作场所推行(甚至强制使用)具有成瘾性的技术,实际上就是在让员工*对工作上瘾*。这不是很可怕吗?这真的道德吗?这会成为常态吗?情况会不会变得越来越糟糕?尽管我还没有开始工作,但我有在 V2EX 等中文程序员社区发现有公司开始给员工购买 AI 编程工具,这种风气似乎也会席卷国内?

容许我跑个题,如果读者有使用 LLM 的不良习惯,并且已经意识到了一些问题,我有或许值得一试的方法:选择一门小众到互联网上的公开信息少之又少的领域,让 LLM 没办法帮你。至少,我在折腾 [Akkoma](https://akkoma.social/) 的时候,LLM 只会自信地给我生成一大堆根本用不了的命令;我在自定义 [Forgejo](https://forgejo.org/) 的界面时,LLM 一直误导我,使我走了许多弯路、几次放弃,最后发现有一篇官方文档已经给出了详尽的指导——语料缺失了,幻觉就愈加明显。此外,我写 [Clojure](https://clojure.org/) 代码觉得有新鲜感和动力的很大一部分原因是,我知道 LLM 几乎帮不了我,而且,这门语言本身就足够有趣,我为什么要让 LLM 剥夺我的智识享受?

想象刷视频和阅读的区别,两者都能带来满足,性质却是完全不同的。**永远都要选择后者**。

### 高强度脑力活动对体能锻炼的影响

> [!note] 📜
> [Thinking Hard Burns Almost No Calories—But Destroys Your Next Workout](https://vo2maxpro.com/blog/thinking-hard-burns-no-calories-destroys-workout)

大脑每天消耗总热量的 20%,是最耗能的器官,但高强度的脑力活动并不会让大脑消耗更多的能量。这 20% 的热量主要用来维持神经元活跃,什么也不想和拼命思考,每分钟消耗的能量不会有实质性的差别。

然而,大量的脑力活动却对锻炼有影响,可能降低运动表现。

简单来说,脑力劳动会增加腺苷的积累。根据我从《[绝佳时间](/library/2025/绝佳时间/)》这本书里了解到的为数不多的生理知识,腺苷是「疲劳信号」,而咖啡因会阻碍腺苷与受体结合,这就使得咖啡具有提神作用,腺苷受体被阻碍过后,大脑就感觉不到疲惫了。高强度脑力活动会加快腺苷的积累,让人感到疲劳,如果在腺苷积累后锻炼,大脑对疲劳的判断就会提前,导致身体没累,但大脑觉得它累了,无法坚持下去。

总之,避免在长时间工作后进行剧烈运动。我的建议是把运动放在早上,那个时候腺苷的数量最少,而且运动还会使得身体释放其他激素,对专注有益。这篇文章的作者建议,每周安排两次高强度锻炼,在锻炼当天避免长时间工作,或者间歇性休息、放松、进行需要大脑参与更少的活动。其他日子也可以进行较低强度的运动,影响不大。

### 当「当预言失灵」失灵

> [!note] 📜
> [I swear the UFO is coming any minute](https://www.experimental-history.com/i/187399837/1-when-when-prophecy-fails-fails)

在《[如何在黑暗的房间里找到一只黑猫](/library/2025/如何在黑暗的房间里找到一只黑猫/)》里读过一段故事,我在之前的文章中也引用过:

> 这样被认知裹挟的例子,可以引入美国社会心理学家利昂·费斯廷格的认知失调理论来解释。这位心理学家和同事发表于上世纪五十年代的著作《当预言失灵》中讲了这样一个故事:一个小型的宗教相信世界会在 1954 年 12 月 21 日毁灭,只有信徒才会被外星人救走,当「世界末日」到来时,所有信徒都在屋子里祈祷,可十二点之后,什么都没有发生。在数十分钟的安静之后,这些信徒分别作出了以下解释来合理化自己的认知:
>
> 1. “或许是房间里的钟错了,我们应该再等等。”
> 2. 确认钟没有问题之后,有人说:“或许是外星人使用了不同的时区,我们应该再等等。”
> 3. 外星人直到早上也没有来,于是宗教领袖决定到房间外接受外星人的启示,之后她们告诉信徒:“因为你们的虔诚,人类被宽恕了,地球不会毁灭。”

{{< right "——《[挑食如何帮我发现自己的认知边界?](/essays/挑食如何帮我发现自己的认知边界/)》" >}}

一篇[新的研究报告](https://gwern.net/doc/psychology/cognitive-bias/2025-kelly.pdf)表明,案例中的宗教团体,有近半数都是卧底的研究人员,其中一个成为了他们的领袖,引导他们说出一些写在书里会有看点的话。当预言失灵时,其实有一部分成员收回了之前的言论,或者直接离开了。

这么看来,《当预言失灵》的罪行简直跟《[天才在左,疯子在右](/library/2025/天才在左-疯子在右/)》一样恶劣。后者是伪装成「真实精神病人访谈手记」的**网络小说**,不仅欺骗读者,还污名化精神病人;前者明明是正经的社会心理学著作,可竟然误导大众,在研究层面造假。书可以烂但不能骗人。

### 我不喜欢魔法

> [!note] 📜
> [Magic](https://adactio.com/journal/22399)

作者表达了他对软件开发中的「抽象层」的厌恶,尤其是前端开发中的 React 和充满了魔法的 LLM。作者承认他的态度不够务实也不够「商业」,对那些想找工作的开发者没什么价值,他的态度更像是「控制狂」——必须理解程序调用的每一行代码,盲目相信第三方库和第三方框架让他感到不舒服。也因此,他讨厌 NPM,因为通过 NPM 安装一个 JavaScript 库,这个库会转而安装更多的 JavaScript。

这不怪他,要怪就怪 JavaScript 生态,依赖地狱已经是常态,就算换用 PNPM 和 Bun 这些更现代的工具也无法解决。我已经不知道有多少个人吐槽过前端开发的体验极差,有大部分工作都是在维护和更新依赖。

*一只戴着眼镜的蓝色地鼠突然拖着小黑板出现,指着一行粉笔字念到:*

> A little copying is better than a little dependency.[^2]
>
> 来点依赖不如复制粘贴。 ☝️🤓

可惜几乎所有前端开发者都习惯了引入一大堆依赖库,这大概也是为什么 NPM 软件包这么容易被投毒吧…… *谁来救救我们前端开发者……*

至于 LLM,这种软件本身就是个巨大、复杂、计算昂贵的东西,用它来写代码尽管不需要维护很多依赖项,但也相当于是把自己没有理解的、别人写的代码放进代码库里,作者把它比作「涡轮加速且有更多抽象层的 NPM」。

过度依赖第三方库和框架,和过度依赖 LLM 编程,都会让代码变得难以维护。作者认为他对抽象层的厌恶来源于他对项目的忠实,他做的很多都是计划运行十多年、几十年的长期项目,因此,他更喜欢让自己更接近 HTML、CSS 和 JavaScript,扔掉 React 做的那层不必要的抽象,这使得长期而言,代码变得更容易维护。

扔掉了魔法,虽然开发速度慢,但开发体验令人愉悦——没有依赖地狱,也没有别人写的、自己不理解的代码,这种让人坐立难安的东西。

~~嗯,总而言之,远离 React——真可谓是前端界的 Java。~~

## 星群

### AllLookSame?

各种测试题,给难以分辨区别的人事物归类,其中一套题是在纽约街头拍到的 18 张中日韩人的照片,测试题的内容是分辨某张照片的人是中国人、日本人还是韩国人。

我答对了…… 8 题…… 平均成绩是 7……

中日韩人真的有明显的外貌区别吗?

此外,这个网站居然还是用 WordPress 做的,所以每道题之间加载时间太长我也没感到意外。WordPress 比起博客软件,说是通用型的建站软件还差不多,其功能何止是臃肿。

访问:[AllLookSame](https://alllooksame.com/)

### Hacker News 的 macOS 客户端

为 [Hacker News](https://news.ycombinator.com/) 设计的 macOS 原生客户端,用 SwiftUI 编写。~~这下在 macOS 上摸鱼变得更容易啦!~~

引用 Hacker News 上的一条回复:

> No No. Don’t do that, don’t make it better and easy to use. I’m already addicted and spent more time than I should. Now, this app that I can keep it open all day!
>
> 不不不,别这么做,别做得更好更易用了。我本来就上瘾了,花了不该花的时间。现在这个 App 我能一整天打开看!

访问:[IronsideXXVI/Hacker-News](https://github.com/IronsideXXVI/Hacker-News)

### modern.css

列举了一些老旧的前端开发模式,并给出了现代的 CSS 替代方案。比如弹出窗口就完全不需要用到 JavaScript,使用浏览器的 Popover API 就可以,可以只用 HTML 和 CSS 实现。本站也利用这个 API 移除了部分 JavaScript 代码。

访问:[modern.css](https://modern-css.com/)

## 当下

### 装修桉树

除夕夜当然没看春晚,而是在给 [Eucalyptus](https://akk.eltr.ac/)(我的联邦宇宙服务器)安装新的前端。由于我使用 [Akkoma](https://akkoma.social/)(Pleroma 的分支),而我很喜欢的 [Phanpy](https://phanpy.social/) 是为 Mastodon 设计的前端,Akkoma 自带的 Pleroma-fe 虽然不丑,但并不好用。于是,我安装了 [Nicolium](https://codeberg.org/mkljczk/nicolium),这个前端的设计更接近 Mastodon(以及 Twitter),对 Akkoma/Pleroma 的兼容性很好。

不过,Nicolium 也有我不太喜欢的地方,比如依赖 CSS-in-JS(一种在 JavaScript 里为元素编写样式的技术),还是用 React 编写的,所以性能…… 只能将就。*偷偷把「写一个兼容 Akkoma 的前端」加入愿望清单。*

尽管装新前端主要是为了优化自己的网上冲浪体验,但如果读者需要到文章对应的帖子底下评论的话,有一部分人可能会直接访问 Eucalyptus,如果有更友好、更现代的前端,对访客而言也是好的。

### 博客的调整

如果你翻到最底下,会发现文章的互动区有了一些改动:

首先,点击 `+` 按钮,互动浮窗会在网页正中间打开,这是通过 CSS 的 `popover` API[^5] 实现的,我把相关的 JavaScript 移除了。这个 API 很好用,要实现弹出窗口只需要:

```html
<button popovertarget="mypopover">Toggle the popover</button>
<div id="mypopover" popover>Popover content</div>
```

我想起还有同样好用的 `<details>` 标签,也能不借助 JavaScript 实现交互效果。点击互动区的一行字会展开 Webmention 回应(如果有的话),这个之前也是用 JavaScript 实现的,完全可以使用纯 HTML 的方案。

我还顺便优化了 Webmention 的样式,现在应该会看起来更舒服一些。

另外,最近总是在博客谈起 Webmention,但这项技术的普及率还是太小了,有许多人都不会用,中文资料少得可怜。我想我可以写一篇相关的文章,做点贡献。不过这意味着我要再深入了解一下这个规范,读读 W3C 的原文。

要对一门技术熟悉起来,最好的方式当然是…… 实现它!所以,我创建了 [Weepinbell](https://codeberg.org/eltrac/weepinbell),准备用 Clojure 写一个 Webmention 接收端。不过目前还处在新建文件夹的阶段。[^3]

### We code and we fight.

自定义了我的 Forgejo 实例的外观,把主题色改成了「鼠尾草色」,图标改成了「三头龙」。首页的模板也改了,现在访问[首页](https://src.eltr.ac/)只会看到图标和站点名字,干净不少。

技术细节请移步[罐子里的相关笔记](https://jar.geedea.pro/notes/customizing-forgejo/)。

![](https://img.eltr.ac/geedeapro/posts/weekly/69/hydra-dashboard.png)

其实刚装上 Forgejo 的时候我就动了自定义的心思。根据[官方的说法](https://forgejo.org/docs/next/admin/advanced/customization/#a-word-of-warning-here-be-dragons),修改前端界面的做法其实是「不被支持」的,而 Forgejo 本身比较小众,教程少之又少。当时的我~~心术不正~~,求助于*愚蠢又自信*的 ChatGPT,还在 DeepSeek 和 Kimi 之间辗转,没有一个帮我解决了问题,都非常自信地给我生成了一大堆根本用不了的解决方案。

这周又动了心思,重蹈覆辙,沮丧之际发现这篇[官方文档](https://forgejo.org/docs/next/contributor/customization/)提供了相当详细的指导,耐下性子读完过后就…… 非常顺利地实现了需求。

教训:不要吃 LLM 反哺的垃圾,

对了,我还没有在博客上解释过我的 Forgejo 实例为什么叫 Hydra。主要有两个原因:

1. 之前读过一篇文章,把创建个人项目,实现想法,比作「与恶龙战斗」。依稀记得原文写的是「Fight the Project Hydra」。忘记标题和来源了,但内容一直记得。
2. 在 [SVG Repo](https://www.svgrepo.com/) 上找到一个三头龙的图标,乍一看真的很像 Git 分支。

### 谈话间,有人又重写了个人主页……

上一版个人主页存活时间可能还不到一周吧!不过技术选择倒是没改,还是 Clojure。改来改去的主要原因是对结果一直不满意,现在感觉还不错,首页大概是不会改了,其他页面可能会调整一些细节。可以访问 [eltr.ac](https://www.eltr.ac) 看看效果,欢迎来玩。

![](https://img.eltr.ac/geedeapro/posts/weekly/69/homepage.png)

设计新主页的时候还找了很多参考,当时在联邦宇宙上发了个[讨论串](https://akk.eltr.ac/objects/33e0109a-a40b-4ada-8e0b-a79df028b399)收集素材,顺带提及那些我喜欢的创作者,送去喜爱,没想到收到了一些 Fedi 友的推荐。这里列出一些我比较喜欢的链接:

- [anhvn](https://anhvn.com/):关注了 anh 的 [Mastodon 账号](https://mastodon.online/@latte),某天发现她发了一条帖文,内容是「every other day im like i gotta redesign my website…………」[^1]。感同身受呢。
- [wukko](https://wukko.me/):我在使用的 [Helium](https://helium.computer/) 浏览器背后的开发者,他的个人主页简洁得十分优雅。头像是《宝可梦》里的喵喵,点击头像会下喵喵雨,*天哪……*
- [meyerweb](https://meyerweb.com/):很喜欢背景的质感和插图。
- [caffeine.computer](https://caffeine.computer/):想在我主页的某个角落放一个写着「千万别点!」的按钮,按下去之后我的头像就会变成一个有克苏鲁风格或者怪核风格的眼睛,背景会变成黑色,文字描述也会变得诡异……

## 切片

- 长辈对电子设备没有距离感,觉得屏幕是可以随便看的东西,尤其是电脑这么大的屏幕。还好,我浏览的页面有相当大一部分都是英文的,只会给他们留下「我在好好学习」的印象,这就是学外语带来的便利吧。
- *我究竟是买块大点的硬盘呢,还是再攒攒买台 Steam Deck 呢,还是买台 Steam Deck 呢,还是买台 Steam……*

    不过话说回来,要逐步脱离苹果生态和 iCloud 的话,我的确需要一块硬盘用来存个人数据,以及做本地备份,可现在这个行情买硬盘属实是太不赶巧了。

    *Deck 呢,还是买台 Steam Deck 呢,还是……*
- 在看《蛇蝎女佣》,目前看到第三季,主创也创作了《绝望的主妇》这部经典美剧。*嗯,很好看的狗血剧情。* 没别的,纯粹消遣。

[^1]: 译文:“每隔一两天我就这样:我必须重新设计我的网站……”

[^2]: 这句话来自 Go 语言创始者之一 Rob Pike,参见[这个 YouTube 视频](https://www.youtube.com/watch?v=PAAkCSZUG1c&t=9m28s)。

[^3]: ~~名字想好了,连图标都找到了,明明是很大的进展!~~

[^4]: 顺带一提,欧盟似乎已经对 TikTok 采取措施,认为短视频的推荐算法和无限滚动模式是具有成瘾性的。如果 TikTok 不整改,就会被罚款。参见:[Solidot](https://www.politico.eu/article/tiktok-meta-facebook-instagram-brussels-kill-infinite-scrolling/)

[^5]: 有关这个特性的资料,可以查阅 [MDN](https://developer.mozilla.org/en-US/docs/Web/API/Popover_API)。