summaryrefslogtreecommitdiff
path: root/content/posts/weekly/68.md
blob: 804d8bd71b3cadb480bafed214fba630f8a6d6d9 (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
+++
title = '稻草人周刊 Vol.68'
subtitle = ''
slug = ''
tags = []
categories = '稻草人周刊'
date = 2026-02-10T16:33:31+08:00
draft = true
toc = true
+++

{{< music title="Beat Yourself Up" artist="Charlie Puth" cover="https://r2.eltr.ac/uPic/2025/10/charlie-puth-whatevers-clever.jpeg" apple="https://music.apple.com/cn/album/beat-yourself-up/1845189970?i=1845189973" spotify="https://open.spotify.com/album/4UEzLrGegP8f1PyFEXaKKN" >}}

<!--more-->

---

嘿!我[上周](/posts/weekly/67)在周刊的开头表示自己正在重新思考博客的一些 UI/UX 设计,并且在联邦宇宙上发起了[投票](https://akk.eltr.ac/objects/b6776592-efc0-495f-9647-b3c46fa56385),结果令我震惊——原来我才是异端吗?!

macOS 会根据当地日出日落时间在亮色和暗色模式之间切换,我也花了不少心思让 NeoVim 和自己的网站自动跟随系统配色,结果调查之后才发现,原来大部分人都不会切换操作系统的明暗配色!而且,还有一部分人出于隐私考虑,禁止网站读取操作系统的明暗模式(因为暗色模式的用户很少,追踪器可以用这个特征生成指纹),所以也有手动切换的需求。

总而言之,现在你可以在网站首页的导航栏下找到一个选择框,可以在「自动」「亮色」和「暗色」三种模式之间切换。

继续阅读周刊吧!

---

## 连接

### 给别人看 AI 生成的内容是不礼貌的

> [!note] 📜
> [It's rude to show AI output to people](https://distantprovince.by/posts/its-rude-to-show-ai-output-to-people/)

一本名叫 [Blindsight](https://en.wikipedia.org/wiki/Blindsight_(Watts_novel)) 的科幻小说中,有一种名为 Scrambler[^1] 的外星生物。这种外星生物认为信息的唯一作用就是用来感知,所以无法忍受人类整天说闲话,于是就跟地球开战了。作者表示他现在理解了 Scrambler 们的心情,他在读到明显是 AI 生成的内容时就会感到愤怒。

由于 LLM 只会「回复」,而不会像小说里的人类一样主动向外太空发送无用信息,所以,只要一开始人们不主动传播 AI 生成的垃圾,就不会受其困扰。**我们的敌人是人类**,而不是 AI。作者认为人们应该学学「AI 礼仪」,使用 AI 是没问题的,但这样是有问题的:

> 我问了 ChatGPT,这是他的回复:<...>

> 我用 15 分钟生成了这些代码提交 PR,你审查吧。

简单来说,如果你已经把你从 LLM 那里得到的东西内化于心了,并且能给出你发这些东西的原因、你的想法,那就没问题。

最近在联邦宇宙上看到,有人在发布和 LLM 的对话节选时会折叠内容(标记为敏感内容),只要其他人不主动点开,就不会读到 LLM 生成的内容。我认为这是礼貌的体现,建议所有人学习。

### 电子游戏中的道路艺术

> [!note] 📜
> [Art of Roads in Games](https://sandboxspirit.com/blog/art-of-roads-in-games/)

电子游戏中的道路,有很多是用贝兹曲线(Bezier Spline)实现的,大部分时候这种纯粹通过简单数学计算制作出来的道路并没有太多问题,可一旦角度太大,就会出现自相交等问题,总之现实中车辆行驶的轨迹不可能是那样的。这种问题在大量的教程和游戏 Demo 中都能发现,还有很多十字路口的转角处竟然是直角,稍微思考一下就能意识到车辆根本没办法在这种地方转弯。

作者开发了他自己的道路系统,这篇文章只是一个引子,更多内容会在之后的文章发布。

作者表示他喜欢那种看起来混乱,但实际上错综复杂且有秩序的存在,现实中的道路就是一个。如果某一天外星人发现了遗留在地球上的道路系统,一定会感到大为震撼:有人花了很多心思设计这个呢!我想起了我之前在 Minecraft 服务器里当镇长的经历,社区发展起来之后,有很大一部分的工作就是修路。当然,每个 Minecraft 玩家都会知道,下界的冰道交通系统对大型服务器来说是必不可少的,~~除非玩的是那种有快速传送方式的无聊服务器~~。我在高中选了地理这一门科目,依稀记得其中有不少知识点都和交通相关,比如交通对商业的影响。

道路真的是人类文明里很神奇的一部分呢。

### PGP 有什么问题?

> [!note] 📜
> [The PGP Problem](https://www.latacora.com/blog/2019/07/16/the-pgp-problem/)

> [!note] 📜
> [What to Use Instead of PGP](https://soatok.blog/2024/11/15/what-to-use-instead-of-pgp/)

PGP(Pretty Good Privacy)是诞生于上世纪九十年代的加密软件,可以用来给文本、邮件、文件和磁盘分区等签名、加密和解密。PGP 本来是个商业软件,后来出现了 OpenPGP 这个开放的标准,GNU Privacy Guard(俗称的 GPG)和 Sequoia PGP 等软件实现了这个标准。不过,使用 OpenPGP 基本上是绕不过 GPG 的,就像使用联邦宇宙也绕不开 Mastodon 一样,使用率最高的软件几乎可以决定事实标准。上面的两篇文章观点一致,PGP、OpenPGP、GPG 等所有相关的软件,全都有不可忽视的缺陷,所有人都不应该继续使用它。

Latacora 的《The PGP Problem》这篇文章发表于 2019 年,第二篇文章由 Soatok 撰写,撰写的原因是:*Latacora 那篇文章发布都五年了,你们这些人怎么还挤破了头去用 PGP?*

Soatok 表示,对于密码学专家来说,「PGP 很难用并且有缺陷」这件事并没有争议,但其它领域的工程师似乎并不了解。我设想了一下,如果 Soatok 所言属实,那密码学专家们看到如今还有这么多人用 PGP 的心情,大概就和我看到有人用廉价陶瓷磨豆机磨瑰夏,还不控制水温一通乱冲一样。

简单来说,PGP 是把瑞士军刀,好处是什么都能干,坏处是什么都干不好。Latacora 那篇文章中反复强调的观点是:兼容性和加密的安全性,是不可兼得的,而 PGP 一直在保证兼容性,保留旧的、有缺陷的加密算法。作者还表示,人们之所以离不开 PGP,很大一部分原因是 PGP 的社区太活跃了,人们热衷于构建信任网(web of trust),互相给密钥签名,甚至会组织线下的签名聚会。此外,文中还有…… 更尖锐的观点:

> We can’t accept bad cryptosystems just to make Unix nerds feel better about their toys.
>
> 我们不能只是为了让 Unix 书呆子们对它们的玩具感觉良好就接受差劲的加密系统。

要解决瑞士军刀「样样都会但是每样都干不好」的问题,方法当然是给特定的用途找正经的工具来用,比如用 Magic Wormhole 加密传输文件(或者 `ssh` + `rsync` 也行)、用 SSH 密钥给 Git commit 签名、用 Sigstore 给软件包签名、用 Signal 进行加密通信而不是用 PGP 加密电子邮件。[^2] 不过,比起常规的加密和签名,PGP 实际上还提供了一个密码学意义上的、去中心化的身份认证系统,这点似乎还没有特定的软件或标准可以替代。

总而言之,PGP 已经是老古董了,近年来给它打上的新补丁看起来也无济于事,有不少缺陷。最好在特定的用途下使用更现代的软件替代,而不是用一个 PGP 密钥对走天下。仔细想想,我一开始接触到 PGP 和 GPG 也只是为了给 Git commit 签名,而这点完全可以用 SSH 密钥代替。

### 电子邮件是修不好的破车

> [!note] 📜
> [Everything You Need to Know About Email Encryption in 2026](https://soatok.blog/2026/01/04/everything-you-need-to-know-about-email-encryption-in-2026/)

电子邮件也是老古董了,目前人们仍然是用上世纪八十年代(四十多年前)的 SMTP 协议传输邮件,这个协议使用**明文**传输邮件内容,很多邮件服务提供商并不会强制使用 TLS(传输层安全协议),这导致电子邮件通信其实并不安全。

书接上文,PGP 可以用来给邮件加密,但 Latacora 的那篇文章、Soatok 和我正在使用的邮件提供商 [Migadu](https://migadu.com/procon/#not-encrypted) 都认为:你**不应该**给电子邮件加密。Migadu 的说法是,这不符合 SMTP 协议的标准,而且邮件加密之后就没办法扫描垃圾邮件、病毒、给邮件添加索引了,如果密码丢失,你甚至没办法恢复消息;再者,管理密钥也是个问题,邮件服务商肯定是要留一把私钥的。

如果只是发信人和收信人之间自己使用 PGP 加密,也不能完全保证安全。抛开 PGP 本身的缺陷不谈,如果邮件交流的某一方在某次回复时忘记了加密,而过往邮件记录的引文也都在这封邮件里,那之前的加密不就白费了吗?不是所有人都会给邮件加密,就算你发送了一封加密的邮件给某人,而他回复的时候却没有加密,那你加密过的内容仍然会以明文的形式进入到互联网中。

包括我自己在内的许多人都有发现,最近配置域名邮箱所需要添加的 DNS 记录比之前多了好多,那是因为电子邮件一直在加各种安全补丁。Soatok 的文章中谈到了 DKIM,大概是一种从密码学意义上验证某一封邮件是由某人通过某服务器发送的手段,这对防止滥用和诈骗来说很重要,但对于加密通信来说并不理想。电子邮件有泄露元信息(metadata)的问题,就算邮件正文是加密的,邮件的主题、发送方、接收方等信息也难以隐藏。

比起技术层面的各种问题,电子邮件没办法做到完美加密的最重要的原因其实是:政治!

> Repeat after me: all technical problems of sufficient scope or impact are actually political problems first.
>
> 跟我念:所有有着足够大规模或影响的技术问题,一开始都是政治问题。

{{< right "——[Eleanor Saitta](https://infosec.exchange/@dymaxion/109344795644687902)" >}}

首先是大部分人其实并不在乎加密通信和隐私,我相信阅读这期周刊的不少读者都会有这样的想法:「我没有什么好隐藏的。」「加密通信不是罪犯才需要的东西吗?」以至于在乎电子邮件的隐私问题的人很少。也有人设计过更安全、泄露更少元信息的电子邮件通信协议,以取代 SMTP(如 [SMIMP](https://adamcaudill.com/2014/08/16/smimp-at-the-defcon-cryptovillage/)),但并没有取得成果,主要的原因是:电子邮件尽管是开放协议,但仍然是被大科技公司垄断的;他们不在意,就很难做出改变。

Well, that's pretty fucked up.

读完这篇文章,我想比起想办法让老古董电子邮件更安全,不如使用本身就足够安全的新通信协议。同时,要接受电子邮件并不是「信封」,而是在互联网中传送的「明信片」,不应该指望它有多么安全。

## 当下

### Moving to Codeberg

上周分享了《[逃离 GitHub 指南](https://lord.io/leaving-github/)》,这周就付诸行动了,起因是我在更新 [Libra.js](https://codeberg.org/eltrac/libra) 的时候突然想到:*为什么不直接把仓库搬去 Codeberg 呢?*

于是我就这么干了。

如果你不知道 Codeberg 是什么:这是一个总部位于德国柏林的非盈利组织,可以说是世界上最自由的 Git 仓库托管平台。如果你不喜欢 GitHub 这样的被大科技公司控制的平台,Codeberg 是很好的选择。我打算给 Codeberg 捐款,可惜 PayPal 支付出了些问题,刚好春节回家了,银行卡没带在身边,只能等到三月份回去之后再操作了。

我其实还有一个自建的 Forgejo 实例,叫作 [Hydra](https://src.eltr.ac),还没有在博客正式介绍过。注册了 Codeberg 账号之后,我也开始思考一个问题:如果使用 Hydra,就对外来的贡献者不太友好,毕竟 Hydra 是不开放注册的;那么,应该在什么时候使用 Hydra 托管代码,什么时候将代码托管到 Codeberg 这样的公共平台上呢?

目前我的想法是:将基本不会有贡献者的个人项目放在 Hydra 上(比如这个博客、一些网站的源代码、某些软件的配置文件等等),将欢迎其他人一起开发、有收集反馈的需求的项目放在 Codeberg 上。诚然,从 GitHub 换到 Codeberg,有机会发现我项目的人会少很多,但说真的,就算是我几年前写的有 500+ Stars 的 [Typecho 主题](https://github.com/BigCoke233/miracles),用户也都不是在 GitHub 直接发现这个项目的,而是从 Typecho 主题目录和我的博客发现的。新项目用 Codeberg 托管,反而能让更多的人意识到:噢,原来我可以离开 GitHub。

至于 GitHub 账号…… 我想我可能保留比预想的更长的时间。一方面,诚实地讲,我的确舍不得那几百个 Stars 和几百个 Followers;另一方面,不少我常使用的开源项目都在 GitHub 上,要给他们提 Issues 和 Pull Request,没有 GitHub 账号是不行的。我只是不会在 GitHub 上托管新的项目了,并且会逐渐把仍在维护的项目从 GitHub 迁移到 Hydra 或者 Codeberg 上。

整体而言,我是这样想的:

1. Codeberg:为开源世界做贡献的主要阵地。
2. [Hydra](https://src.eltr.ac/):托管小型的个人项目,博客、配置文件等等;也会镜像我发布在 Codeberg 上的仓库作为备份。
3. GitHub:为那些没有托管在其他平台上的项目做贡献的地方(尽管不会很多)。

如果你想的话,可以关注我的 [Codeberg 资料页](https://codeberg.org/eltrac),这里还没有太多的东西,但是会慢慢丰富起来的。

### 咖啡因……

回家之后离开了自己的吧台和咖啡器具,我像头慌不择路的驴一样翻出了一台半年没用过的廉价美式滴滤机。由于我连称都没有,磨豆也只能用我爸那台意式咖啡机上自带的磨豆组件,更是控制不好分量和水量,于是就…… 毫不意外地喝多了。

*我怎么就没有意识到那台美式滴滤机做出来的一壶咖啡是给一家人喝的量呢?*

总而言之,刚回家的那天下午,我发现自己喝过咖啡之后浑身不舒服,大脑…… 感觉很奇怪,有点不像自己的了。我很快发现自己的眼皮在规律地抽搐,整个身体进入了一种难以言喻的奇妙状态,在床上躺了好久都没缓解。当时我就知道,我整个下午都不会好受的,因为咖啡因代谢需要 4~6 个小时。

不知道你有没有读过我在本周二发布的《[如何用电车难题理解 Git](/essays/git-with-trolley/)》。我很确定,这篇*神得没边了*的文章有一半是咖啡因摄入过量导致的。

回忆了一下,以前的我尽管每天喝两杯,但每一杯咖啡也就 200~230 ML 的量,而我估计我刚回家的时候喝下的那一壶咖啡,应该有 500 ML 左右。

总而言之,喝咖啡要节制!

[^1]: Scramble 作为动词的意思是「爬」,Scrambler 可以理解为「爬行者」;在通信领域,Scrambler 指无线电的「保密器」,这层意思和小说中的设定可能会更契合一些。顺带一提,我之前也用 Scramble 这个词生造了一个叫作 Scramby 的词用来写怪谈作品,你可以在 Backrooms 读到:[Entity 60 - "Scramby"](https://backrooms-wiki.wikidot.com/entity-60)。

[^2]: 顺带一提,Soatok 作为密码学专家(cryptographer),似乎也不太喜欢 Matrix 这个通信协议,他在 2024 年 8 月写过一篇[文章](https://soatok.blog/2024/08/14/security-issues-in-matrixs-olm-library/)解释 Matrix OLM 库的安全性问题;不过,时间已经过去一年多了,文章所述问题是否被解决,我就不太了解了。他比较认可的加密通信软件是 Signal。不过他也承认,对于那些不愿意使用手机号注册的非常在意隐私的技术用户而言,Signal 不太合适,也没有其他更好的选择。所以…… 还是继续用 Matrix 吧……