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
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
|
+++
title = "稻草人周刊 Vol. 57"
subtitle = "父亲死后,我们找到了情书"
tags = [
"存在主义",
"性少数",
"互联网文化",
"写作",
]
date = 2025-12-01T09:23:00
draft = false
toc = true
+++
{{< music cover="https://img.eltr.ac/uPic/2025/11/download.jpg" title="有心論" artist="ずっと真夜中でいいのに。" apple="https://music.apple.com/cn/album/yushinron/1851385243?i=1851385244" spotify="https://open.spotify.com/track/4I0EvbsEe7EAGxLPM1QcLb" netease="https://music.163.com/#/song?id=3319483203" >}}
> 誰も命無駄にしないようにと 君は命に終わり作ったよ <br/>
> 是为了不让任何人虚耗生命 你才为生命设下终点的吗?
>
> だから君がいないその時は 僕は息を止め 待つ <br/>
> 因此当你不在身边之时 我便屏息凝神 静静等待
现在听英语歌已经没办法做一个听不懂词的麻瓜只听音乐了,所以偶尔还是会听听日语歌。其实,就算是从网易云音乐转到 Apple Music,我也有一直关注「ずっと真夜中でいいのに。」这个 [@Broca](http://brocalife.com/) 推荐给我的摇滚乐队,总觉得没有难听的歌呢。放在周刊开头的这首是翻唱作品,原唱是 RADWIMPS,原唱也很好听。<!--more-->
---
## ↺ · 回拨
> [!note] 🔍
> 这是 2025 年 11 月的最后一期周刊,照例进行本月的文章回顾。
这个月的文章数量有所减少,但字数却超过了十月,原因是这个月写了几篇万字长文。这个月整体的文章质量,我自我感觉都还不错。
1. [何以为人](/essays/何以为人/) <br/>
一篇~~神叨叨的~~讨论何为人性的议论文,写作目的是在我 20 岁的年纪里写下对如何做人的思考,以见证在未来几十年里我对「何以为人」这一问题的思想变迁。本文主要从「情绪-情感-博爱」和「本能-理智-绝对理性」两个层面对比了动物性、人性和神性,并以此为基础讨论人为什么应该专注于成为完全的人,而不是将自己降级为兽或妄图成神。
2. [阅读的目的从来不是获取知识](/essays/阅读的目的从来不是获取知识/) <br/>
妄图以使用计算机软件的方式代替阅读(指以刷短视频或与大语言模型对话的方式快速获取知识,或者说消费知识的行为)是可笑的,阅读的目的从来不是获取知识那么简单。阅读应当是一种体验,人学到的知识相比于思维方式的锻炼、人格的提升、体验的丰富来说,根本不值一提。
3. [我全面抛弃了数字记录](/essays/我全面抛弃了数字记录/) <br/>
虽然标题看着像是记录,但实际上是一篇指南。我在这篇文章中总结了自己使用数字笔记和纸质笔记的经验,说明了我为什么全面转向纸笔,以及我又是如何使用本子管理生活的。本文还简单介绍了常见的手帐尺寸、类型和记录的形式,供读者参考。
4. [乐观的代价](/essays/乐观的代价/) <br/>
乐观主义和悲观主义都是一种偏见,就事论事且不逃避地应对事件才是最好的做法。悲观者已经被批评得够多了,这篇文章聚焦乐观的代价,讨论为什么过度乐观会导致社交无能和某种病态。
5. [Go 语言的编程哲学](/essays/go-philosophy/) <br/>
本文整理了 Go 语言的共同设计者 Rob Pike,在 2015 年的一场演讲上整理发表的 Go 语言相关的「谚语」,阐释了在使用 Go 语言编程时应当怎样思考问题、使用工具,其中有不少也可以迁移到其他语言的软件开发中,而且有不少比起说是编程思想,不如说是工程哲学。
本月还发布了一篇十月份发布在 Backrooms 中文维基上的小说《[脸盲症](/fictions/脸盲症/)》,如果你感兴趣的话可以读一读。
## ⋈︎ · 连接
### 父亲死后,我们找到了情书
> [!note] 📜
> [after my dad died, we found the love letters \| Jenneral HQ](https://www.jenn.site/after-my-dad-died-we-found-the-love-letters/)
> [!note] 📜
> 后续: [dissolution \| Jenneral HQ](https://jenn.site/dissolution/)
作者的父亲去世几天后,他们在遗物里找到了很多情书,其中有一条是这样的:
> _i love dota and i love peaches, but i love you more. i will quit smoking and lose weight for you. the happiest days of my life are the ones that start with you across the breakfast table from me._
>
> 我爱玩刀塔爱吃桃,但我更爱你。我会为了你戒烟和减肥。我生命中最快乐的日子,就是以和你面对面吃早餐开始的日子。
这写信不是写给作者母亲的,作者的父母分别在 27 岁和 26 岁的时候,因为年龄太大,被父母逼婚才走到了一起。父亲与母亲和弟弟关系都很差,经常连续几个月甚至一整年都在外地工作,最近还去了加拿大的一个城市。正因为这种距离,作者对父亲唯一的亲子记忆,就是她七岁时,父亲在床边给发烧的她讲故事;但作者还是和父亲有种独特的亲近,他们以前会一起散步很长时间,在几十分钟的沉默之后,父亲会跟她分享他的悲伤和对生活的失望。作者从没觉得父亲真正幸福、为自己活过。
可是,很快作者遇到了她父亲的情人,他们认识了三年,在一年半之后在一起了[^1]。情人表示他们相遇时,两个人都感受到了前所未有的感觉,父亲说服他搬来加拿大和他一起住,所以三十多岁的情人为了他只身来到异国他乡。在情人眼里,他们像是订婚了一样,父亲似乎说过他迟早会出柜[^2],和母亲离婚,然后开诚布公地和他度过余生。当作者看到情人给她的照片时,他几乎不敢相信照片上那个洋溢着笑脸的幸福的男人,和在家里恍惚地坐在电视机前的父亲,是同一个人。
读到这里,我真的挤出了几滴眼泪,和作者自己一样,我本以为这是一个在恐怖的社会偏见下挣扎追求幸福的故事。作者「如果父亲还健在,我可以去他和他情人的真正的家里拜访,见证父亲真正幸福的模样」的美好幻想还没开始就结束了。
> because you see, my dad was a coward. mom had started asking for divorces by the time i was in my teens, and dad was the one who always said no. he would complain to _her_ mother, a traditionalist, to ensure that she would berate her daughter back into line. his family and his culture had no place for him, so he used her as a shield to make sure that he would be spared the scrutiny. slowly, we found evidence of other affairs, going back decades.
>
> 因为,你看,我的爸爸是个懦夫。妈妈在我只有十几岁的时候就开始要求离婚,我爸爸才是那个一直不同意的人。他会向丈母娘,一个恪守传统的人,抱怨这件事,来确保她会训斥她的女儿让她守规矩。他的家庭和文化容不下他,所以他把母亲当做盾牌,来保证他不会受到审视。慢慢地,我们找到了其他婚外情的证据,可以追溯到几十年前。
情人说,父亲大学时就知道他喜欢男人了,他在柜子里面藏了 **40 年**——作者写道,她想到这个数字都觉得有些幽闭恐惧症,只有 20 岁的我也无法想象这样活着是什么滋味。
> _he wasted his entire life_, my mom said to me, the evening we found the love letters. _his entire life, and mine as well._
>
> “他浪费了他的整个人生”,我妈妈跟我说,就在我们找到情书的那天晚上,“他的整个人生,还有我的人生。”
最终,他们找到了 14 起婚外情的证据,谁知道还有没有别的。要和父亲共度余生的情人是第 11 号。结果,父亲一直跟所有爱他的人隐瞒自己的真实生活——他的父母、兄弟姐妹、他的家庭,还有他的那个情人。
---
和现在的室友开始合租之前,他借给我一本漫画看,名字叫《暗流》,里面就有一个一声不吭就抛妻弃子离开的丈夫,漫画聚焦的就是这个妻子的故事。我忘记情节了,因为我没有很喜欢那本漫画,但室友很喜欢。我们在聊天的时候,室友说他展示在别人面前的自我可能只有不到 50%,甚至 80% 都是藏起来的,他还觉得大家都这样;他说漫画里的妻子并不了解他的丈夫,而且他并不觉得丈夫的举动有什么问题。
或许我不能谴责那些善于伪装和立人设的人,但我可以肯定他们活得没那么自在——明明过好一个人生就很累了。那部漫画里的妻子或许是不幸的,但她的确把自己的人生托付给了一个虚假的人,==他爱的从来不是那个丈夫,而是那个丈夫展现在她面前的一个假人,这的确是她自己要为选择而承担的代价;但在我看来,她是勇敢的,她没有通过**不诚**来逃避身而为人的选择。==
这两篇文章的作者没有批评社会,没有批评那些传统且保守的人,她批评的是她的父亲:
> because you see, my dad was a coward
>
> 因为,你看,我的爸爸是个**懦夫**。
#存在主义 #性少数
### 专业博客应该回归吗?
> [!note] 📜
> [Personal blogs are back, should niche blogs be next? – disassociated.com](https://disassociated.com/personal-blogs-back-niche-blogs-next/)
作者观察到,最近有不少人选择重新开始写个人博客,以抵抗社交媒体。作者回忆起十多年前的 Web 生态和博客圈,除了不限话题、内容繁杂的个人博客,还有一类专注于特定话题、高质量、信息来源可靠的博客,被称作 niche blog(下文称作「专业博客」)。这类博客质量很高,而且能作为可靠的信息来源,能在不牺牲读者体验的情况下盈利(和那种还没来得及开始读就弹出窗口请读者订阅 Newsletter 的博客不算)。作者举例说 Problogger 就是这样一个网站,从 2004 就有了,是一个教人怎么写博客的专业博客;评论区还有人自荐 [ResearchBuzz](https://researchbuzz.me/) 这个网站,从 1998 年到现在一直在坚持更新数据库、搜索引擎和在线信息集合相关的内容。
作者好奇,既然个人博客回归了,那这类专业博客是不是也应该回归?我们似乎没有别的选择:难道要从遍布社交媒体的错误信息里面找答案吗?难道要忍受在搜索引擎里查询内容时 AI 生成的总结吗?难道 Web 只能被 AI 生成的垃圾填满吗?在这样的背景下,我们可能比以往更需要专业博客,作为可靠的信息来源。
作者认为个人网站的东山再起是重建一个兴盛的 Web 的第一步,接下来人们应该关注如何重建那些向所有人开放的、可信的信息源。
---
我知道一个叫做 [Wait but Why](https://waitbutwhy.com/) 的博客,或许算不上严格意义的「专注某一话题」的专业博客,但这个博客的确比较出类拔萃,作者在某一篇文章里还称「自己已经把 Wait but Why 作为自己的事业了」(不过最近的更新评论、热度和质量似乎有略微的下滑)。在国外,人们或许更愿意为这样具有特色、有深度,同时也具有个人色彩的内容付费,国内就不好说了。
无论如何,在短视频横行霸道、社交媒体把互联网变得越来越极端、大语言模型让人们逐渐放弃思考的当下,专注写高质量的博客内容,对作者、读者和 Web 环境来说都有极大的好处。
#互联网文化 #写作
### 蒙田的认知论
> [!note] 📜
> [Montaigne's Epistemology \| Jenneral HQ](https://www.jenn.site/montaignes-epistemology/)
作者阅读了 16 世纪法国作家 Michel de Montaigne(米歇尔·德·蒙田)的随笔,产生了一些感想。这个人以《随笔集》(Essais)这一作品名留后事,基本上**发明**了随笔(Essay)这一写作形式[^3]。作者在他的一些文章中读到了有趣的观点,并分享了出来。
其中我认为最有意思的是这一条:
> Callicles 在《柏拉图》中说:极端情况下,哲学是有害的。他建议我们,超过了有益的界限之后,就不要再深入:适度的摄取哲学是愉悦且有用的,但最终可能会导致人的邪恶和野蛮,轻蔑宗教和现有法律,成为社会交流的敌人,人类愉悦的敌人,对统治城市、帮助人他人,甚至帮助他自己都毫无用处——对于这种人,你可以毫无顾忌地扇他耳光。
这和互联网俚语「touch grass」有相似之处,这个俚语的意思是:别宅在家里玩网了,出去摸摸草,接触真实的世界吧。
其次是这条:
> 我喜欢强烈、亲密、有男子气概的友谊,那种在**锋锐且剧烈的交流**中获得喜悦的友谊,就像爱情在见血的撕咬和抓挠中获得欢愉一样。
作者自认为是幸运的,因为他生活在一个已经被蒙田的作品改变过的世界里。他打下了基石,使得活在现代的他可以无需解释为什么人们应该欢迎反对意见、欢迎被证明是错的,就和朋友展开有趣的讨论——我真希望我也能说同样的话,至少我现在还没有找到太多在我提出反对意见时,不会被情绪劫持、不会逃避争执、愿意承认自己被说服的人。
#认知
## ⁂ · 星群
### Fran Sans Essay
作者发现旧金山轻轨上显示目的地的显示屏别具一格,他研究并模仿了这种显示屏显示字母的方式,把它们做成了一款字体。

访问:[Fran Sans Essay — Emily Sneddon](https://emilysneddon.com/fran-sans-essay)
### Penpot
开源版的 Figma。
访问:[GitHub - penpot/penpot: Penpot: The open-source design tool for design and code collaboration](https://github.com/penpot/penpot)
### Hammerspoon
一个允许用户编写 Lua 脚本控制 macOS 系统,以实现强大自动化的 App,开源免费,非常黑客。我发现这个 App 是因为最近改变了自己使用设备的逻辑。以前我出门会用 MacBook,在家就用桌面上的 Mac mini,但我逐渐发现在两台电脑之间同步数据非常痛苦,时常忘记 `git pull`,一些软件的配置项更难同步,再加上两台电脑上装的软件不一样,维护一个整洁的 `$HOME` 目录就已经很要命了,如果用同样的态度处理两台电脑,我大概会在扯不开的毛线堆里疯掉的。所以,现在我的思路是,需要敲代码和写文是,就用 MacBook,在家的话可以连接外界显示屏;而 Mac mini 就作为一台长期开机的 Home Server,同时起到娱乐功能(看剧,以及…… 用 Mac 打游戏)。
这样区分之后,MacBook 就经常需要连接外接显示器。在较小的屏幕上,我需要 Dock 栏自动隐藏,并且显示在最底部;但是在较大的外界显示屏上,Dock 栏最好是一直显示,而且放在左边会更好。然而,macOS 没有提供分显示器的 Dock 栏设置,于是我只能通过 Hammerspoon 这样的脚本工具来监听外接设备连接情况,然后自动更改设置。
因为只是想临时解决一个小需求,我就没有去看 Hammerspoon 的文档,而是让 ChatGPT 帮我写了一个脚本。如果以后有更黑客的需求,我大概会去读一下 Hammerspoon 提供的 API。
```lua
-- 自动检测屏幕变化并调整 Dock 行为
local function updateDockPosition()
local screens = hs.screen.allScreens()
local dockPos = "bottom"
local autoHide = true
local foundExternal = false
-- 查找名为 "P5" 的外接屏
for _, s in ipairs(screens) do
if s:name() == "P5" then
foundExternal = true
break
end
end
if foundExternal then
-- 外接屏存在:Dock 左侧 + 不自动隐藏
dockPos = "left"
autoHide = false
else
-- 无外接屏:Dock 底部 + 自动隐藏
dockPos = "bottom"
autoHide = true
end
-- 设置 Dock 位置 & 自动隐藏
local cmd = string.format(
'defaults write com.apple.dock orientation %s; ' ..
'defaults write com.apple.dock autohide -bool %s; ' ..
'killall Dock',
dockPos,
autoHide and "true" or "false"
)
hs.execute(cmd)
end
-- 监听屏幕改变事件
local screenWatcher = hs.screen.watcher.new(updateDockPosition)
screenWatcher:start()
-- Hammerspoon 启动时执行一次
updateDockPosition()
```
访问:[Hammerspoon](http://www.hammerspoon.org/)
## ◍ · 穿越
> [!announcement] 🎉
> 恭喜你发现了新栏目。
前两期周刊都有在「↯ · 当下」这个栏目里介绍「这周看了什么」,既然每周都想写,那不如就单独拿出的做一个栏目,这一周看的剧、音乐剧、电影之类的都会放在这里——当然也可能没有。
### 怪奇物语 第五季(上半季)
早早地就在日历上标注了 11 月 27 日开播的时间,但直到 28 日晚上我才想起来,于是踩着 11 月的尾巴把《怪奇物语》第五季的前四集看完了。这次的播出方式是 11 月底放出前半季,圣诞节放出第 5、6、7 集,在跨年的时间放出最终集——也就是说观众还要等一个月才能看到后续的剧情,~~混蛋啊!~~
第五集每一集都接近一个小时,而且,由于前四季积累起来了太多的人物线和故事线,在这一季里所有的人物都分成小组行动、探寻真相,人物有各自的支线任务和信息差,即使是这样剧情也没有乱成一坨毛线,推进得很紧凑,观感很好,总之是非常精彩的一季。
不过,第四集被绑起来的 Derek 一家人还被关在谷仓里啊!你们都不管了吗!为什么我要等一个月才能知道他们到底要怎么给这一票绑架收场啊!
### 同乐者
《同乐者》第五集的推进还算有趣,这里讲一个小点:在第五集的最后,Carol 发现了同乐者们一直在饮用的褐黄色液体的原材料,露出了震惊的表情,很多观众都在猜测 Carol 看到的是什么。
{{< gallery >}}


{{</ gallery >}}
一般人看到有人露出这种震惊的表情,应该都会猜测袋子下面是人肉吧。在这一集前面,有一段情节是 Carol 到牛奶工厂(实际上是生产这种褐黄色液体的工厂),看到有一群乌鸦在啄袋子,而乌鸦就是食腐动物;在前面还有郊狼刨坟的情节,虽然没有直接关联,但应该是一种暗示。有人指出褐黄色液体应该是「血粉蛋白胨」,颜色一致。同乐者在同化人类的时候因为意外,死掉了很多人,而 Carol 因为发脾气也让同乐者失控过,死掉了两批人;第二集的开头,有牛奶公司的卡车运输尸体的情节——所以基本可以肯定,同乐者一直在饮用死掉的人类同胞的尸体制成的液体。
## ↯ · 当下
### 开发 Growel
继 [wthis](https://github.com/BigCoke233/wthis) 这个命令行工具之后,我开始探索 Go 语言的 Web 开发能力,开启了 [growel](https://github.com/BigCoke233/growel) 这个项目的开发。Growel 的定位是用于构建轻量级 Web 后端的框架,只通过 JSON 进行数据交换而不使用模板语言,可以快速开发 API。目前大概是做出来了一个可以这么用的东西:
```go
api := growel.New()
api.GET("/hello", func(c *growel.Context) {
c.JSON(200, map[string]string{
"message": "Hello, Growel!"
})
})
api.GET("/user/", func(c *growel.Context) {
c.JSON(200, Users)
})
api.GET("/user/:uid", func(c *growel.Context) {
uid, err := strconv.Atoi(c.Params["uid"])
if err != nil {
c.BadRequest("Invalid user ID")
return
}
for _, user := range Users {
if user.ID == uid {
c.JSON(200, user)
return
}
}
c.NotFound("User not found")
})
api.Start()
```
~~谁敢想用 Java 写这样的东西会会写几个 Controller 类和 Service 类。~~
其实 Go 标准库提供的 HTTP 相关的方法就已经很好用了,而且 JSON 解析也非常丝滑,所以做一个 Web 框架非常简单,只需要封装一些方法、添加合适且必要的抽象层,让 Web 开发体验变得更丝滑就好了。
开发 Growel 的时候我才意识到,自己在学校里学了快一年的 Java Web 开发,一直在用 Spring 框架,连 Web 程序是怎么启动的都不知道,完全被 Java 生态系统里无处不在的「魔法」变成麻瓜了。虽然 Go 的 Web 框架已经足够多了,但重复造轮子其实是很好的**学习方式**,手写 Router、封装 `http.ResponseWriter` 和 `http.Request`、自己实现动态路由都让我学到了不少。
### 博客的内容分区变动
把原先的「议叙」(`post`)拆成了两部分:议论和散文。
1. 议论 / 结构
* 相对严谨,注重逻辑,一般来说会考究事实
* 对我而言,是我的理论框架、认知武器构建的地方,用来把知识和思维方式结构化
* 思维会跟着时间进化,能在时间轴上看到我的思想变更的过程
2. 散文 / 倾泻
* 主观,重感受
* 记录我在当下做了什么事情、我的生活发生了什么改变、我感受到东西是什么
* 这里的记录会更加和时间绑定,能帮我回顾「某年某月某日我在做什么」
你也可以理解为,我把文章分成了 T 和 F 两部分(仔细想想,其实更像是 J 和 P 的两部分,判断和感知的区分)。做这个拆分是因为,我发现自己的 T 和 F 可能会在某个时间段宕机其中一个,把这个分开能让我更安心地~~在情绪崩溃时发疯、在好奇心超负荷运转时写一写没人关心的新话题~~。
迁移到「议论集」分区的文章,URL 会从 `/posts/*` 变成 `/essays/*`,但都有做重定向,原先的链接还是能够访问,原先的 `posts` 变成「散文集」,URL 不变。
### 忙碌的城市里没人能好好走路
周日从学校回家时心情很差,于是步行去家附近的零食店。倒不是有多想吃东西,只是想顺便找个理由逛逛。作为处女座特质很强的人,在物资充足、商品整齐排列的地方待着怎么会心情不好呢?只不过,这一路上可不好走,路边的建筑工地一直在喷水降尘,大概是因为刚好在下风向,我必须穿过混杂着化工气味的水雾,而且这条路没有分出人行道和骑行道,摩托车电瓶车在这个时间点又开得飞快。不过,就算有专门的骑行道用处也不大,走到一条商铺比较多的街区时,到处都是外卖骑手在穿梭。

我很喜欢步行,去一个地方的时候只要能在 30 分钟内走到,我都会步行。我主要是喜欢走路时放空脑袋或者听听音乐、博客的感觉,走在路上的时候不需要在意任何事情;另一个附加的好处是可以锻炼身体,我走路比一般人快很多,尽管也达不到高效的锻炼效果,但每天走三四公里的路的确能消耗很多热量(以至于我在放假不需要步行时,都会悄悄地发胖)。
只不过,在这样一个大家都在赶路的城市时,这种愉悦也是奢求了。那天晚上回到家之后我心情很差,因为路上一直在避让该死的电瓶车和摩托车,没有办法匀速走动,让我本来就混乱的思绪都绞在了一起。我想不明白,即使是在公园里,为什么也会有摩托车在跑步道上开。
[^1]: 原文是「go exclusive」,这个词的意思是「排他的」「独有的」,比起中文的「在一起」,更有忠诚和契约的意味。
[^2]: 如果读到这里你还没懂的话,是的,文中的父亲是深柜同性恋者。
[^3]: 需要补充的是,在英文中 Essay 一词的定义比较模糊,一般是指给出作者本人观点的写作形式,属于短小的议论文,而 Essay 本身还有正式与非正式之分。中文里的「随笔」属于**较**为贴切的译名。
|