普通视图

发现新文章,点击刷新页面。
今天 — 2026年3月18日首页

计算无穷

2026年3月18日 00:22

由于计算机算法的特性之一是有穷性,一切能被计算机计算的东西都必须是能够在有限步骤内完成的,所以,计算机不能够应对无穷长的数据。

真的是这样吗?

穿针引线

在正式介绍 Clojure 这门语言如何操作无穷之前,我想先介绍两个非常好用的宏,->->>,因为我会在接下来的演示代码中非常频繁地使用它们。这两个宏的名字分别叫作 thread-first 和 thread-last。它们是用来做什么的呢?

首先,在任何编程语言中(哪怕不是 Lisp),都有可能遇到连续对数据进行计算的情况,一段计算完成之后,需要把结果传递给下一段代码继续操作,一般来说需要嵌套函数。假设我们需要解析一段 Markdown 文本,而我们采取的策略是,使用一个函数解析所有的标题,使用另一个函数解析块引用,再使用一个函数解析列表,以此类推,我们可能会这样写:

func parseMarkdown(raw string) string {
 return parseLists(parseBlockquotes(parseHeadings(raw)))
}

显然,这种代码可读性很差。大多数时候,我们可能会将某一段计算的结果存放在变量里,再把变量的值传递给下一个函数,以此提升可读性。

func parseMarkdown(raw string) string {
 result1 := parseHeadings(raw)
 result2 := parseBlockquotes(result1)
 result3 := parseLists(result2)
 return result3
}

上面这段代码可读性就高很多了。你可能觉得这样很蠢,怎么会有人这样写解析器?没关系,就算不是解析器,也可能会出现类似结构的代码,比如一开始传入一个文件路径,读取这个路径下文件的内容,再把文件内容(假设是 JSON 字符串)解析为数据对象,再提取数据中的某个值。

这种做法看起来并不少见,所以能否简化呢?有没有办法让我们不需要把数据放进变量里,再取出来,再传给下一个参数,而是能够直接把所有的操作都串起来呢?

而且,我们知道,Lisp 语言一般遵从函数式编程范式,这种范式一般要求变量是不可变的,对赋值有着极为苛刻的要求,在 Lisp 语言里用这么多变量是不现实的,尽管能够用不太优雅的方式做到。

用 thread-first 和 thread-last 这两个宏就能解决上述问题。

(defn parseMarkdown [raw]
 (-> raw
 parseHeadings
 parseBlockquotes
 prseLists))

视觉上,这很像类 Unix 系统上常用的管道(Pipes),即 | 符号。在输入命令行的时候,可以用 | 把两个命令串联起来,使 | 之前的命令的结果传递给之后的命令。假设你需要读取 foo.txt 这个文件的内容,并查找其中包含 bar 的行,就可以这样写。

cat foo.txt | grep bar

使用 -> 可以让代码变得简洁。假如你想要读取一个 JSON 文件的内容,这个文件不大,你想直接加载到内存里并直接转换为 Clojure 的数据结构,就可以这样写:(-> filename slurp json/read-string)

thread-first 和 thread-last 的区别是什么呢?刚刚我们演示的函数都只接受一个参数,而 first 或 last 指的是把上一个函数运算的结果传给下一个函数的第一个参数或最后一个参数,所以并没有体现出区别。

假设我们要操作的数据是列表,而操作这类数据的函数往往在最后一个参数的位置接收列表(比如 (map f coll) 的作用是对 coll 中的每一个元素执行 f 操作,然后返回一个惰性序列,coll 就是最后一个参数)。如果使用 thread-first,也就是 -> 宏,列表就会作为第一个参数传入,也就是被当成函数 f 而非 coll

箭头宏还有另外的版本,cond->cond->>,这里的 cond 是 condition(条件),你可以根据条件判断要不要执行这条流水线里的某一环。

(cond-> filename
 true slurp ;; 由于条件为 true,所以总是会被执行
 json? json/read-string ;; 如果是 json,才会被解析
 json? :body ;; 如果是 json,才会尝试获取 body
 true println)

箭头宏的用处很多,最常见的场景之一是用来处理列表,毕竟,Lisp 就是列表处理语言(List Processing)啊!

假设我们有一个装满了狗狗的向量,我们要从所有的狗狗中找出听话的好狗狗,并给好狗狗每只狗一块零食吃。1

(defn treat-good-dogs [dogs]
 (->> dogs
 (filter :good)
 (map give-treat)
 doall))

如果对上面的代码进行宏展开,就会得到:

(defn treat-good-dogs [dogs]
 (doall (map give-treat (filter :good dogs))))

不过,为什么在最后加上 doall 呢?这是做什么的?

惰性的魔力

假设我们有无穷只狗狗,但我们的零食数量是有限的,要怎么办呢?我们当然没办法满足所有的好狗狗,在零食发放完之后就不能继续操作了。这要怎么写呢?你可能会想,需要一个整数型的变量来表示零食的数量,每发出去一块零食就减 1,当变量值为 0,就停下,终止操作。

用不着这么麻烦,我们可以直接对无穷进行操作,直接在无穷的狗狗里筛选好狗狗,再取出前 n 个好狗狗(n 为零食的数量),给他们零食就好了。

假设 dogs 是一个无穷的序列,也就是说用无穷无尽的狗狗们在等待着发放零食(天哪,光是写下来就觉得可爱爆了)。那么,下面这段代码会陷入无限循环吗?

(->> dogs
 (filter :good)
 (map give-treat))

不会,因为 filtermap 返回的是惰性序列(Lazy sequence)。

简单来说,只要我们不主动读取惰性序列中的数据,相关的操作就永远不会被计算。比如 (filter :good dogs) 这一步,虽然写法很优雅,可以直接读作「filter good dogs」(筛选好狗狗),但 Clojure 实际上并没有真的去筛选好狗狗,而是承诺:下次,下次一定,之后我就把这件事情办了。

下一步 (map give-treat ...) 也是一样,Clojure 还没有「给每一只好狗狗一块零食」,而是做出了「我之后就会给每只好狗狗一块零食」的承诺。

这就是为什么之前我们要用到 doall,这个函数的效果是执行惰性序列中的所有效果。如果没有这个函数,我们就只是做出了承诺,而没有真的去执行。

当然,现在的情况是,我们得到的惰性序列是无穷长的(无穷的狗狗中好狗狗的数量自然也是无穷),当然不能 doall,因为这样做资源会很快被消耗光,我们没有那么多零食。在计算机系统的视角下,我们也没有那么多的内存和处理器资源可以分配。

假设我们有 n 个零食,我们可以这样写:

(->> dogs
 (filter :good)
 (map give-treat)
 (take n)
 doall)

上面这段代码的意思是:

  1. 我们有无穷的狗狗
  2. 承诺之后会筛选出其中的好狗狗
  3. 承诺之后会给筛选出的好狗狗零食吃
  4. 取出前 n 个承诺
  5. 执行这些承诺

实践惰性

你可能会以为,dogs 为无穷长的序列只是个假设,如果真的有无穷长的序列,Clojure 也是处理不了的。

实际上 Clojure 真的可以生成无穷长的惰性序列。 range 函数一般接收一到两个参数,生成一段由连续整数组成的惰性序列,例如执行 (range 3) 会得到 (0 1 2),执行 (range 1 3) 会得到 (1 2)。如果不传入任何参数,也就是不限定边界,就会得到一个无穷长的惰性序列。

读《Living Clojure》的时候,读到作者写了这样一句话:

不要运算它,否则会使你的 REPL2 崩溃

于是我就这么做了。

在 REPL 里运行 (range) 的后果

Clojure 显然是陷入了每个程序员都遇到过的无限循环,这是怎么发生的?首先,我输入了 (range),构造了一个无穷的惰性序列,然后 REPL 读取了这个惰性序列,并想立刻求出这个惰性序列的值,于是惰性序列中的元素就被运算了,运算之后被打印了出来,就造就了图中的局面。

我们可以优雅地从无穷里取出有限个元素,来避免无限循环。

(take 5 (range))
;; => (0 1 2 3 4)

显然,我们并不会遇到规模为无穷的问题,否则就算有能力处理无穷长的惰性序列,在实际运算这个惰性序列时,也会因为陷入无限循环而无法继续执行程序。

不过,这不妨碍我们利用惰性序列优雅地处理大规模的问题。

假设有一个几万行的 JSONL 文件,也就是说有好几万条 JSON 数据被存储在这个文件里,每一行都是有效的 JSON 对象。我们知道 I/O 操作开销很大,把这么大的数据整个读取到内存里也极其消耗资源,更别提还要把 JSON 字符串解析为可以直接操作的数据结构,为了保证程序不会太低效,必须采取一些手段。

惰性序列就是很好的解决方案。

(with-open [rdr (io/reader "very-large-file.jsonl")]
 (let [lines (line-seq rdr)] ;; line-seq 返回包含所有行的惰性序列
 ;; 它接收的数据类型是 java.io.BufferedReader
 (count lines))) ;; 返回文件行数,但没有真的读取文件内容

你也可以用 filtermapreduce 等函数直接操作惰性序列,它们接收惰性序列,返回的也是惰性序列,只要不执行 doalldorun,或者用其他函数读取其中的值,它们就永远不会被计算。

如果你打算遍历这个文件的所有行,只有被遍历到的行才会被读取,余下的行仍然是惰性的。换句话说,如果你在惰性序列里寻找一个符合特定条件的元素,比如包含特定字符串的行,而符合条件的元素恰好就是第一个元素,那么整个遍历操作实际上只会读取文件的第一行。

如此优雅的操作,只需要三行代码!

这就是把一切都变成列表的好处。除了用于筛选的 filter、用于创建映射的 map 和用于累计计算所有元素的 reduce,还有许多可以用来操作列表的工具,比如 remove 可以移除列表中符合条件的元素,flatten 可以打平任意嵌套的列表,into 可以把一个列表的元素全部放进另一个列表,partition 可以把一个列表分割成相等长度的多个列表。

你可能还发现上面的许多函数都还涉及判断列表元素是否符合某个条件,在其他语言里你可能见过类似的做法,比如给排序函数传入一个函数作为参数,用来比较谁应该放在前、谁应该放在后,这种函数一般叫谓词函数(predicate)。

Clojure 里有很多好用的谓词函数。比如 nil? 可以判断一个值是 nil 还是不是,如果要移除列表里所有的 nil,就可以这样写 (remove nil? coll)。我也很喜欢 complement 谓词,它的意思是「补集」,比如 nil? 的补集 (complement nil?) 就是判断一个值不是 nil 的谓词,如果不是 nil 就返回 true。刚才写的 (remove nil? coll) 也可以写作 (filter (complement nil?) coll)

你也可以用匿名函数作为谓词,写法是 (fn [] ...),简便写法是 #(...),在简便写法中可以使用 % 来表示参数,如果有多个参数,就写作 %1 %2…… 上面写的用来在列表中移除 nil 值的函数,还可以这样写:(filter #(not (nil? %)) coll)

利用好这些谓词函数和操作列表的函数来操作惰性序列,在最后才读取惰性序列中的值,就能用最简短的方式写出高性能的代码,虽然跑在 JVM 上性能也高不到哪里去就是了。

最后

本文是学习 Clojure 约莫一个月时间,在一个月内连连感到大脑被击穿,在人脑代码解析器过载和好奇心被狠狠满足之间反复横跳后产生的东西。

到目前为止,对 Clojure 唯一的不满就是:我写出来的东西只能编译成 .jar 文件,用 Java 运行环境来执行,因为这是一门运行在 Java 虚拟机上的语言。虽然能偷 Java 的库来用,但也不可避免地继承了 Java 的臃肿,比如 weepinbell 编译之后竟然有 170+ MB 大小,实在是太让人不爽了。

唉,美味中拌了点垃圾也将就吃吧。

死亡很近。吃垃圾。自由生活。


  1. 假设「好狗狗」的数据结构长这样 {:good true},这是 Clojure 中映射的写法,可以用关键词作为操作取出其映射的值,比如 (:good {:good true}) 就会返回 true。 ↩︎

  2. REPL:Read Eval Print Loop(读取-求值-打印-循环),是与 Clojure 交互的最简单方式,基本上就是一个接收代码然后运算,再把结果打印出来的程序。 ↩︎

昨天 — 2026年3月17日首页

不确定性

作者 obaby
2026年3月17日 16:35

昨晚,对象接自己下班的时候。刚上车,还没系好安全带,就听她说:『咱们租的那个车位要没了,那大姐不租了。房子也不租了,自己去住,所以车位也就不再往外出租了。』

这个车位,租用的时间也蛮长了,大概快三年了吧。小区里的车位一直比较紧张,买房的的时候就就已经没车位了。后来,物业在路边又画了几个,但是,没有任何的声响,那些车位又没了。至于怎么分配出去的,并不清楚。也不知道那些人是怎么弄到那些车位的。

马上租的车位没了,两辆车就都没地方停了。之前都是周末对象把车开回去,登记了车牌方便一些。自己也就偶尔中午回家吃个饭开开,其他时间并不会停在小区里。现在小区里已然没有地方能停了,而小区中间的收费车位,虽然费用不贵,一天6块钱,但是回去晚了就没空闲位置了。能不能有地方停完全是运气。

山上公园的停车场,周五可以停进去,但是周末如果开车出去,那就再也进不去了。公园的路边都停满了车,又怎么可能停的进去。

再有停车的地方就剩下区政府的停车场了,然而这停车场的入口走过去得二里地。来来回回周末要想出门叶诚然是异常麻烦。之前每天早上开车送宝子上学,以后可能就只能做公交车,或者走过去了。当然,也不是不行,只是不管那种方式,都得更早出门。只有这样,才不会迟到,毕竟公交车需要提前等,而走过去需要花费更多的时间,不管是哪种方式,都意味着要更早出门。

对象提议把房子租出去,找个有车位的房子租。然而,这种方式能解决眼下问题,解决不了长久问题。租的房子,说不定哪天房东不租了,就需要搬家,来回折腾。这么折腾也定然不是长久之计。

当然,还有另外一个办法,就是把现在的房子卖了,买个有车位的房子。这个解决了长久问题,但是战线又被无限的拉长。不管是那种决定,都充满了不确定性。并且这种不确定性不是自己能左右的,也没有任何的可以遵循的规律。一旦开始了,就是长期。

中午回家吃饭,消灭掉了周末剩下的两篇披萨,还有早上的两个小笼包。拿着手机去刷碗的时候,手机啪的一声掉到了地上。捡起来看了以下虽然屏幕没碎,但是后盖裂了,用手摸上去能明显感觉到一条条的玻璃纹路。总感觉哪天不小心可能会扎自己手上。

从美团搜了下手机壳,发现现在还在卖p30手机壳的商户不多了。随便找了一个,下单,竟然需要凑单。

然而,换了几个不同的店铺之后就更离谱了,需要凑单的金额一个比一个高,竟然需要凑到90。问题是我只需要一个破手机壳啊。

返回第一次看的那个店铺,买了一条肉色的裤袜,算是凑够了。

然而,等外卖到了,才发现tm给发的黑色的。这尼玛就离谱,连裤袜颜色都能看错。

真是tm薛定谔的丝袜。

 

人类的阿贝贝

作者 ONO
2026年3月17日 13:11

早上看见奶子躺在他的狗窝里,旁边全是玩具。我半开了句玩笑:要不是因为我们小时候给他足够多的玩具和关注,才导致奶子从来没有阿贝贝情结;就算家里有了第二只狗咪盔,他们俩也从来没有因为抢夺资源而发生争执。

所谓的「阿贝贝」,在心理学的范畴叫做「过渡性客体(Transitional Object)」。简单来说,过渡性客体是在用「物」来代替「人」,以缓解分离焦虑。比如一个布娃娃、一块沾满味道的毛巾、一张再普通不过的被套枕巾之类的。同时,嗅觉能够刺激海马回的神经元,从而调取记忆,因此嗅觉往往更容易刺激记忆当中的「符号」所引发的联想;也因此,「阿贝贝」和味道往往有直接联系。

我小时候有过触觉感官的「阿贝贝」,是枕头一角的小块突起。我很喜欢摸着那个小疙瘩睡觉。后来我对自己进行过沙盘推演:那个枕头的突起就是阿贝贝的一部分,而我对抗的就是与家人分离后产生的焦虑感。


我经常开玩笑说养狗和养(5岁前的)孩子的方法是一模一样的,建立对错系统、训练专注力、习得性行为规训与情绪管理——虽然有人很反对把人比作狗。

我观察过很多在狗公园的狗主人,以及在公共场合教育自己孩子的家长,他们的情绪/心理问题,几乎都能在孩子/狗身上找到对应表现。只是狗更容易明显地表达自己的真实想法,以及对主人的服从性,所以更容易看出问题症结。

比如,在狗公园我遇到过那种在狗自由奔跑、与其他狗社交的当下,要命令狗什么时候该喝水、该跟谁友好地打招呼、该去哪里上厕所的狗主人。而他饲养的狗(拉布拉多),理应是培育犬中最温顺的犬种了,但因为他的这种教育方式,这只狗社会化极其不足,与其他狗会因为资源发生冲突,几乎没有狗愿意和它社交。它会在喝水的时候不允许其他狗靠近,在喝完水后会故意打翻水碗,不允许其他狗继续使用。

在狗的训练里,这叫「护食」,用在人身上确实不太合适,但人的「护食」要复杂更多,不仅仅是对资源的抢占(对应自私),母婴依附的连续性(对应无法心智独立)、情绪回应的可预测性(对应通过哭闹获得资源)、也有对人际资源(对应争宠)、他人的关注(对应表演欲)的争夺欲。

这也是我记录在《姐弟》里观察的场景。


起初,我以为是因为资源稀缺,比如奶子从小只能得到少量的玩具,才会引发「阿贝贝情结」,比如一些狗会一直珍藏自己从小玩到大的玩具,甚至不允许主人碰触。但如果这个资源跟人类所需要的资源一样复杂呢?

不仅仅是物资,也与被关注、在社群里的社会化程度有关,那就更容易解释狗的一些行为。

狗的分离焦虑更为严重,因为它们的吠叫跟小孩子的哭啼存在本质区别。小孩子的哭啼唤起的是人类的催产素/催乳素,为婴儿提供更多的保护与需求满足;但狗吠并不会直接引起人类的保护欲,反而会引发更严重的情绪烦躁。

在很多儿童心理学的教育理念里,婴儿时期的孩子是要给予足够多的回应,以便他们建立足够的安全感;而狗在因为想要引起主人注意、抢夺关注资源时,反而需要冷处理,让它们无法形成认知回路,即「我吠叫,就会有人关注我」。奶子和咪盔小时候刚回家的时候,在栅栏里也叫过,但我们几乎不会搭理它们,等到它们冷静后,我们才会给予关注与互动。以至于现在它们很少用吠叫的方式来向我们表达需求,顶多就是标准的柴犬嘤嘤叫。

而公园里一些大型犬,特别是边牧这种需要人类大量关注、且内心极其聪明敏感的犬种,往往很爱通过吠叫的方式来迫使人类陪玩,并让人类意识到它们的存在。这中间,不乏有很多「有钱人家」的宠物,它们吃最好的粮,送来寄养时给足了足够的玩具和资源,但仍然存在很严重的心理疾病。

这让我修改了一开始的推断:阿贝贝并不是因为资源稀缺,或者说不仅仅是因为物资资源的稀缺。


就拿我举例,我的阿贝贝在青春期之后就自然而然消失了,并不会因为无法捏到枕头的一角而失眠。但严重的阿贝贝可能会因为无法得到阿贝贝而产生严重的焦虑。

那人类/狗为什么需要阿贝贝呢?从底层逻辑来看,阿贝贝在解决三件事:

  • 依附关系(不稳定↔稳定);
  • 情绪调节(不确定性↔确定性);
  • 外部安全感(不安全↔安全);

依附关系不稳定,无法预测父母/人类的情绪表达,无法构建外部安全感时,人们会通过「物」来取代原本应该由「人」提供的依附关系、稳定情绪,以及安全感。换个角度,洋娃娃可以随时被自己抱在怀里,洋娃娃不会突然情绪失控责难自己,洋娃娃也不会抛弃自己。

一般来说,父母情绪不稳定的孩子/狗,也更容易情绪失控,调节能力会更差,以至于他们也需要一个更容易被控制的对象,以满足他们的情绪化,比如对着洋娃娃说话,或是上演掐死洋娃娃但又爱它的诡异桥段。

而阿贝贝的「乐趣」不在于阿贝贝坏掉了,情结就会得到解决;阿贝贝会变化成任何可能形成依赖的东西,例如可以提供情绪价值的人工智能。


狗不会长大,因为它们的世界里只有主人。

当然,人会长大,不会因为洋娃娃被扔进了尘封的箱子,就不再需要它。我们在追求更真实更鲜活的阿贝贝,也可能是更不真实更具「死人感」的人工智能。

习作学习二

作者 ACEVS
2026年3月17日 10:57

腔调,之前觉得是褒义词,感觉有个性,但是如果写作里面有了学生腔,学术腔,官腔,可能有时候是好事情。学生腔,注重文采和情绪,对还有修辞,修辞的经典就是类似岳阳楼记那种。但是除了提高审美和谐,作用不大,就像现在我在想整容过的女人如何看到AI美化过,甚至直接生成的绝世美女。主要意思就是AI可以产生各种美,文字,图片视频。代码?前面说的在电脑那儿都是代码。

实际案例。场景:向老板汇报一个项目可能延期。
学生腔版:“王总,鉴于目前项目在执行过程中遭遇了若干不可预见的客观阻力,导致整体推进进度与既定的时间规划产生了一定程度的偏离。经过我们初步评估,若要确保最终交付质量,或许有必要对原定时间表进行一个动态的、弹性的调整,恳请您审慎考量。”特点:词汇正式、绕弯子、不敢直接说结果。
成熟职场版:“王总,跟您同步一下XX项目的进度。现在遇到A、B两个问题,按目前情况看,原定下周五的交付时间可能会推迟3-4天。我们正在协调资源解决,您看这个延期风险是否可以接受?或者您有什么更好的建议?”

学术腔
书中案例
如果枯枝上的蚂蚁能凭借某种集中化手段, 以聚集的组织模式为活动框架,达成一种互惠的构成方式和因果关系,而不陷入已被充分形式化的既有分析框架,从而对现有情境做出新的创制与解释,使自身的行动建立在更深层次的原则上,消除个体与群体二元对立的固有语境,那么,借助其肢体语言建立的集体意识,可以实现新的规范层面的积极义务与消极义务的统一,在这样一些群体行为的解构下,集体主义作为普世话语进入观念史,进而得到狭义后果论意义上的集体的获救,这种书可能你也见过,之前看物演通论就是这种感觉,每个字都认识,组合一起,感觉自己能力太差。

翻译成大白话是一群蚂蚁停在一根枯枝上, 枯枝在湍急的河流里漂行。如果蚂蚁各自逃生,有可能跌入河水而丧生;如果它们抱成一团,树枝或许会在某个河湾搁浅,这群蚂蚁就会因此而得救。

学术腔句式叠床架屋,错综复杂。各种状语、插入语更是层出不穷(奥威尔称之为“预制鸡窝”)。有的文章生硬刻板,就像机器人说的单调音节。有的文章概念轰炸、拼凑新词,读起来像是被逼吃生柿子或是咀嚼生肉, 艰涩难忍、苦不堪言:学者往往倾向于在他们的世界里沾沾自喜,被他们的学科专业术语包围和保护着。有祝福就有诅咒。

官腔
在之前讨论“学生腔”时,我们提到成熟的表达是“解决问题”。而官腔,在某种程度上,是它的反面——用语言来回避问题、制造距离、甚至行使权力
六神磊磊对官腔最著名的一句总结是:

“官腔的诀窍,在于用最大的篇幅,输出最小的信息。”

  • 解读:就像把一滴墨水滴进一游泳池的水里,看着满满一大池子都是黑的(篇幅很大),但实际上墨水(有效信息)只有一滴。
  • 例子:通篇都在讲“积极稳妥地推进”、“高度重视”、“深入研究”,读完几百字,发现等于什么具体动作都没说。

    精彩比喻与解构

A. “彩色玻璃” vs. “透明玻璃”

在谈论写作风格时,他用玻璃做比喻:

  • 好文章是“透明玻璃”:读者透过文字直接看到事实和思想,感觉不到玻璃的存在。
  • 官腔是“劣质彩色玻璃”
    • 它故意把玻璃做得花哨、浑浊、有颜色(使用大量术语、套话、排比句)。
    • 目的:不是为了美观,而是为了阻挡视线。让你看不清后面到底是什么(掩盖真相或推卸责任),或者让你以为后面有什么高深的东西,其实后面可能是一堵墙,甚至是空的。

B. “防弹衣”与“迷宫”

  • 防弹衣:官腔中的模糊词汇(如“原则上”、“视情况而定”、“有关部门”)就像穿了一层防弹衣。一旦出事,子弹(责任)打过来,会被这些模糊词汇弹开,找不到具体的责任人(因为没有主语)。
  • 迷宫:把简单的人话绕成复杂的从句和术语,构建一个语言迷宫。
    • 比喻:就像把“我不给你办”这句话,包装成“鉴于当前复杂多变的宏观形势与微观条件的耦合效应,该事项的落地实施尚需进一步统筹考量多维度的制约因素……”
    • 效果:让普通人晕头转向,知难而退,从而维护说话者的权威和安全感。

C. “正确的废话”

他常讽刺官腔是“永远正确,但永远无用”

  • 比喻:就像天气预报里的“降水概率为0%到100%”。这句话绝对没错,但对你带不带伞毫无指导意义。官腔就是职场和公文界的“全概率天气预报”。

3. 为什么会有官腔?(六神磊磊的观点)

他认为官腔往往不是作者文笔不好,而是故意为之的生存策略:

  1. 免责:话说得越满,风险越大;话说得越模糊,回旋余地越大。
  2. 筛选:用晦涩的语言设立门槛,筛选掉“不懂规矩”的人,确立圈层壁垒。
  3. 伪装:用宏大的词汇(“赋能”、“抓手”、“闭环”等现代版官腔)来掩饰内容的空洞,显得很高深。

Es muss sein?

2026年3月17日 09:24

和另一个塔罗牌爱好者朋友一起解牌的时候,能够相互交流、补足理解,但偶尔也会有明显的分歧,其中的一个分歧就是我和她对于「倒吊人」这张牌的理解。她认为倒吊人代表的是一种很痛苦、很不舒服、受到限制的心理状态,可我告诉她,每次我见到倒吊人,都觉得有人要破茧成蝶了。我在「塔」的 牌意解析 中也提到,我更喜欢「倒吊人」这类令人闻风丧胆的牌。

上次更新《塔罗牌漫谈》是三个月前了,已经有些忘记这个系列应该怎么写,印象中我会把自己有的塔罗牌如数家珍地拿出来,然后把每副牌中特定的要写的那张牌挑出来,顺便读读某些设计得比较有意思的塔罗牌的说明书,然后去搜寻各种资料。不过,既然要谈倒吊人,那还是要打破规矩,选择能让我更容易沉浸其中的写作方式才比较好。所以,这篇文章我就来谈一谈,「把人脚朝上吊起来」这个意向,究竟能延伸出多少解读。

被吊起来的人是谁?

倒吊人是二十二张大阿尔卡那牌的第十二张,它的前一张是对应天秤座的正义。很显然的一种解读是:在第十二张牌中被吊起来的人和正义牌中手持天平和宝剑的是同一人,象征着旧有秩序被推翻。

说到「旧有秩序被推翻」,就不得不谈到下一张牌。十三这个不吉利的数字对应的是死神牌,紧随倒吊人之后,而还有什么秩序的覆灭比得上死亡?

我一直倾向于把死神牌提前解读为新生,或者,至少是绚丽的死亡。记得有一次我在路上看到了满地的落叶,遮住了地面,脚踩在上面发出了脆脆的声音,我觉得那个场面很像塔罗牌里的死神。可惜我把这个观察告诉朋友时,对方并不能理解。倘若再仔细想想,落叶会成为土壤的一部分,为新的生命提供养料,这便是死亡。在死亡之前,必须要确定的是,这个生命的确应该去死,而这个具有决定性的时刻,就是倒吊人。倒吊人的存在为真正重大的改变做着必不可少的准备。

于旧的秩序之后,新的生命之前,倒吊人象征着奇妙但又有些尴尬的局面:他究竟应该何去何从?答案是,他的脚被绑起来了,哪也去不了。

倒吊人在许多人眼里,寓意很坏,因为被束缚住,什么也做不了,会陷入内耗和纠结当中。可我认为,正是因为哪也去不了、什么也干不了,才不会陷入纠结——空想有什么用呢?反正也没有办法行动。倒吊人的束缚与另一张牌, 宝剑八 所象征的束缚有明显的不同:首先,倒吊人的眼睛没有被蒙住,他还看得见,还能清醒地思考;其次,宝剑八中的人被束缚的是手臂,他仍然能行走,而倒吊人却相反。

在我看来,所谓的内耗、焦虑和纠结是属于宝剑八的(因为他能走,却不知道往哪走),对于倒吊人而言,一切都相当明了:虽然照理来说,不该在一棵树上吊死,可我已经被吊着了,还能怎么办呢?

这让我想到《不能承受的生命之轻》里,托马斯从贝多芬的音乐里借来的母题「es muss sein!」,意思是「非如此不可!」。

摘自贝多芬 F 大调第 16 号弦乐四重奏

特蕾莎独自一人回到家乡后,托马斯陷入了同情心的无尽折磨当中,最终他决定接受,跟院长辞了职,要回布拉格跟特蕾莎在一起,因为「非这样不可」。当他做出这个细细掂量的决定,并认为自己除此之外别无选择之后,他马上脱离了痛苦(不过他很快又开始质疑「真的非这样不可吗?」,但那是后话了)。倒吊人就是这样的状态,深陷麻烦的境地当中,但一想到非这样不可,命运就变得容易接受了。

不过,有一个狡猾的点在于,倒吊人的「非这样不可」,真的是他细细掂量的选择吗?换句话说,真的非这样不可吗?

他是自己把自己吊起来的吗?

是时候来讨论房间里的大象了:这个以一种异常不舒服的姿势被吊起来的人,为什么脑袋发着光,看起来这样精神焕发?

于是,另一种解读就出现了:倒吊人不是被人吊起来的正义,他是自己把自己吊起来的;他不是接受了命运,而是主动选择了命运,因为「非这样不可」;他不是受罚的西西弗斯,他是快乐地推石头的西西弗斯。

但…… 为什么?为什么要这样折磨自己?

同样的问题,减肥的人、健身爱好者、废寝忘食学习的人,也会被问到。如果把倒吊人和他们联系起来,答案就不言自明了。在旁人看来是自我折磨,在当事人自己的体验里,却是无与伦比的快乐。为什么?答案有两个。

第一个答案是真理,所有让自己陷入短期(甚至长期)的痛苦并乐此不疲的人,都是在追寻某种既抽象又具体的真理。抽象是指信仰,因为相信以特定的方式活动身体能让自己的身体机能得到锻炼,提升生命的质量,所以不在乎痛苦(兴许宗教也是相同的逻辑);具体是指可被观察到的变化,体态的矫正、学识的增长、处理问题的能力等等。

第二个答案更现代,也更容易被不喜欢神神叨叨的读者理解:心流状态。倒吊人很明显的一层含义是「沉浸感」,由于被吊起来了,什么事也干不了,就像被关在书房里,而电子设备和朋友们都在房间外面,为了消磨时间,便只能冥想、读书和工作了。高质量且不受打扰的专注时间,能给人带来如牌面中倒吊人那样的光辉。

所以,是的,倒吊人可能是自己把自己吊起来的。为什么?为了给自己创造「非这样不可」的意义、无纷扰的环境,以及新的视角

不过别忘了,塔罗牌还有逆位含义。逆位的倒吊人,在我看来,做的是徒劳无功的事情,就算以目光长远的角度来看,也缺乏意义。如果把倒吊人这张牌倒置,会看到倒吊人尽管处于一种不舒服的被束缚状态,他的身体仍然是正立的,和倒吊之前没有区别。用通俗的话来讲,就是「没苦硬吃」,或者说吃了苦却没产生实际效果。

减肥者群体中有另一类人,他们不关注合理膳食,吃饭只吃水煮白菜,营养极度不均衡,拿自己的健康甚至性命做交换,而这样的人却能得到不少人的赞叹,实在可笑——这些人就是逆位的倒吊人,倒吊之前,他们膳食不合理(所以肥胖);倒吊之后,他们仍然坚持不健康的生活方式,只不过换了形式。

逆位的倒吊人抓错了重点,重点从来不是受苦,而是为了让自己沉浸、接受命运、活在当下、追求某种真理和心流状态。

如果是别人把他吊起来的呢?

这个「别人」是谁?不重要。无论是谁,我们都可以浪漫地归结于命运。有的时候,人的确会遇到完全无能为力的麻烦,就像被人吊了起来,只能看着事情一点点变得更糟,自己却什么也做不了。这个时候,要是大喊着「我命由我不由天」,在绳子上挣扎,只会让身体摇来摇去,感到眩晕和恶心。

倒吊人提醒当事人:有的事情就是无法改变的。

如果不能改变,那还能怎么办呢?如果执着于行动不会让情况变好,反而会白白耗费心力,甚至让自己受伤,那更好的选择是接受现状,但并不是摆烂,重要的是:以完全不同的视角观察当下的局面。

如何让自己以完全不同的视角观察世界?答案:把自己倒过来。是的,这难道不是很有趣的隐喻吗?之所以需要用新的视角观察局面,是因为自己无法改变现状;而无法改变现状的事实,也就是新视角本身——什么都做不了这个事实会让人产生新的思考,前提是甘愿接受这个事实。

我想倒吊人这张牌也可以引伸出这样的含义:解决问题的思路就是问题本身。应该停止用锤子的视角思考,开始以钉子的方式想问题。

为什么是倒吊,而不是正立?

倒吊人在占星意义上对应的是海王星,而海王星在占星中是人类精神世界的投射,与想象力、幻想、梦想和直觉相关。我之前有一个 Telegram 频道,名字叫作「大脑充血」(未来的月刊大概也会叫这个名字),频道的头像就是倒吊人。在影视作品里会见到一些角色把自己倒吊起来,使血液流向大脑,让大脑更高效地运转——这大抵是不可信的,但的确是很好的写作素材。

当全身的血液都流向大脑,人真的会变得更聪明吗?或者,用更科学的方式假设,如果人脑的所有功能都放大和加速,人是不是会变得更有效率、更理性、更容易相处?如果所有人都这样,经济会不会快速发展?会不会促成世界和平?

现代人似乎喜欢把大脑想象成理性的机器,是用来思考并且只是用来思考的,实则不然,本能、情感、想象力和直觉,也都发生在大脑当中。当大脑的功能被增强,这些功能也会变得更强。人会无法忘记创伤经历,变得更情绪化,更容易冲动行事,与此同时,大脑的另一部分又在以更高的速度阻止个体意气用事,内耗、纠结、矛盾愈演愈烈。我想起《瑞克与莫蒂》第八集最后一集的情节,Beth 的大脑被相互矛盾的记忆折磨,让她无法分清正与误、真与假,那个时候她已经无法正常思考,想要一切停下来,甚至拿枪对准了自己的太阳穴。

倒吊人象征的兴许也是这样的有些棘手的状态,由于身体被束缚,所以大脑高度活跃。正位的倒吊人能够驾驭这种状态。首当其冲的原因是,他虽然沉浸其中,但终究会从树上下来,不会让自己过度思考、过度想象,继而陷入虚无。其次,他知道自己为什么要停下来思考,他的大脑不是完全的一团糨糊,独处时的想象、思索和直觉能够帮助他更好地生活,甚至重获新生,在死神牌到来时建立起新的秩序。

在我看来,倒吊人象征的是必要的反思,对已有秩序(正义牌)的反思;倒吊人也象征发散的想象,想象为新秩序的建立(死神牌)提供养料。这正好呼应了海王星的主题,想象力、梦想和直觉。

逆位的倒吊人则陷入了海王星的另一个面向。想象力的另一个面向是不切实际,梦想的另一个面向是逃避现实,直觉的另一个面向是对事实根据的不尊重。整体而言,逆位的倒吊人代表的是过度反思和不问世事。

倒吊的群像

这一小节,我将展示不同塔罗牌中倒吊人的设计。它们大多都强调了这张牌的某一层含义,或者试图建立新的理解。

在《缥缈愿景》塔罗中,倒吊人是一个年轻的男孩,他摆出的姿势与韦特塔罗牌中的倒吊人区别不大,但他的左手拉着捆住右脚的绳子——他完全是靠着自重把自己吊起来的。

比起束缚,这张牌更强调灵活和掌控。倒吊人完全清楚自己在做什么,并且享受着常人觉得痛苦且避而远之的状态。

这张牌还透露出「玩世不恭」的态度,与「推翻旧秩序」「打破规则」的含义形成照应。

在《吸引力法则》塔罗中,倒吊人没有被吊起来,而是在吊索上艰难地行走。尽管手脚能够活动,但他仍然是受到束缚的,这种束缚实际上更贴合现实中人的境遇——我们没有被捆住手脚,但仍然感到被困。

尽管步履艰难,牌中的男人显然有明确的目的地,这对应倒吊人有关梦想和直觉的含义。起点的窗户是旧秩序的象征,终点则是新生,而这张牌是两者之间的状态。

《暴风雨》塔罗中的倒吊人牌面上没有人,取而代之的是坠入海底的三叉戟。无论是用来捕鱼还是象征海神,三叉戟都具有征服海洋的力量,而牌上的三叉戟却卡在海床的泥土当中,无计可施。

有趣的是,阳光透过海面照在了三叉戟上,这是否象征着,即便不被使用、不被驾驭,三叉戟本身依然具有某种神圣的气质和潜能?正如即便没有即时的回报也能坚持自我的倒吊人一样。

《天使感召》塔罗中的倒吊人是卡西尔,孤独与眼泪之天使。他收起了翅膀,倒挂在空中,象征着从行动中退出,什么也不做。他做的仅仅是观察善与恶,不评判也不干预。

牌中的湖代表潜意识,镜面般的湖面象征着反思。图中还有远景,卡西尔就这样看着,观察着景色,却不是景色的一部分,不参与到世界的运动当中。这幅牌的倒吊人强调的是「无为」。

《艾伦伯格》塔罗强调的完全是倒吊人的负面含义,而且变本加厉:被捆起来的不是一只脚,而是两只。被吊起来的人显然完全无能为力,只能认命。

这张牌要人们意识到,面对当下的场合,自己的确是无能为力的,应当接受这一点,并换一个视角重新看问题。第一步是接受自己不能改变的,下一步(死神牌)就是改变自己能改变的,再下一张牌是节制,兴许就是分辨这两者的智慧。

最后

至此,我们总结出倒吊人这张牌的几个关键词:旧秩序的颠覆、从行动中退出、必要的反思、心流状态、坚持自我、用新视角看待问题、接受不能改变的、精神上的掌控感。

对于逆位的倒吊人,可以这样总结:无意义的受苦、不成功的改变、痛苦的挣扎、不切实际的幻想、与现实脱节、执拗、过度反思、内耗与纠结、身不由己。

照这个更新速度,我什么时候能写完 78 张牌的牌意解析呢?

松声|廿六年·三月中·燕衔泥

作者 网友小宋
2026年3月17日 05:22

大宝看牙

2026三月半-看牙.jpg

  • 大宝最近老是说自己牙疼,上次回去老爸还让我去给她买牙疼药,当时是以为上火导致的,后面一直持续,直到过年走亲戚到ld家,小舅子是牙医,看了下需要治疗。这个年纪的小孩子,对看牙天生有种恐惧感,所以,打着出去玩的想法,大宝坐上车,我导着航,就杀到了小舅子上班的地方,估计那会大宝看到她舅舅穿着医师服的时候还有点懵逼,一系列检查过后,需要几次治疗,其实我是担心大宝怕疼退缩,不过还好,第一次大宝说不疼,第二次去的时候有点。很好的方向是大宝不抗拒了,后面带着大宝去找朋友们玩,碰见同期的小宝宝们,发现大宝的牙还算好的。后面继续治疗吧!

元宵佳节

2026三月半-元宵.jpg

  • 难得今年元宵节在家,提前采购了一些物料,准备带着大宝做灯笼,材料是双份,大宝跟着我做,我做的给二宝,大宝做着做着最后没啥兴趣了,作为父亲,总结一下,还是我考虑不周,这玩意多少有点难度,需要具备一定的动手经验!
  • 元宵节前,县里面组织的非遗大铜器表演,在海棠园,想起来的时候临近中午了,开着车带着两娃赶紧赶过去,已经没啥位置了,天气冷飕飕的,看完返程的时候,发现了花鸟字非遗摊位,写一副也不贵,十元人民币,便让大宝把自己名字写好,大师开始创作,大师手艺在线,比我小时候写的还好。
  • 大宝第二次换药完,返程的路上,路过河上街,肯定要去转一圈,传统大铜器表演在城市里面还是有保存的,只不过更多是老年人,吃了份网红推荐的牛肉面,与网红主理人见面,人还是不错,作为001号点单的客户,牛肉面味道不过,最起码不是信球辣,符合大部分河南人的口味,我愿意称为中庸味,就是这价格13块有点贵了,我认为10块符合。

虫虫礼物

2026三月半-虫虫.jpg

  • 休息的时候突然收到一个电话,还在想公司那个信球打的电话,接到了后才知道是快递小哥,问了下信息,发现是虫虫寄过来的橙子,万分感谢!后面家里人还发现了箱子里面的周边,虫虫很有心哈!大家有空可以去他那里看看。
  • 橙子味道非常不错,大宝和二宝竟然抢着吃,ld问还能买吗,我说你去网上搜下,还真有哈,已经下单了。再次感谢!

郑州快行

2026三月半-郑州.jpg

  • 一份突发的想法,造就了这趟旅程,其实在出发之前我这个重要陪同人还是有点抗拒不想去的,但是想想今年值班导致没回家陪孩子,还是要给孩子留下一些美好的记忆,顶着疲惫的身体,还是出发了。大宝开心,就都开心!可惜了没法带着二宝,毕竟好小,赶紧长大吧!

节后小聚

2026三月半-节后小聚.jpg

  • 元宵回家,想着过年没回来,提前给ld报备一下,毕竟喝酒这种事情,这个年纪这个时间还是要征求一下ld意见,意见肯定是没意见,感谢哥哥们带来的馈赠!带来的东西就我这顿饭最便宜,吃饱喝足马杀鸡!今晚就这么结束了。后面回到公司,又约了常住我这的一个发小吃顿小火锅,毕竟每年都聚,今年不聚一下也说不过去,一顿火锅,一瓶仰韶,两人刚好!

随手维修

2026三月半-维修.jpg

  • 住的地方老双桶洗衣机坏了,同屋哥们说换新的吧!话说这玩意还是我们小统领遗留物件,稳定可靠运行了这么多年,坏了就坏了吧!换新的也无妨,几百块钱的东西。下班无事感觉不对劲,运行有声音无动作,拆开一看,原来是下面的皮带以及轮子掉了,装上就好了。新的洗衣机也已经在派送路上了,这个就当做备用吧!相比之前的滚筒洗衣机,这玩意太耐造了!

We Are The World

2026三月半-世界和平.png

  • 那天突然在抖音上听到这首歌的短视频,We Are The World,有点感叹这世界的癫狂,视频无非两种,春晚的版本和网友呼吁和平的版本,有种回旋镖转了一圈的感觉。
  • 虽然这首歌发布于我出生前的年代,但是传唱度是没得说的,几十年前阿美莉卡众星献唱,几十年后我朝盛大献唱,这世界是真的癫!有那么一刻感觉世界进程似乎出现了临时重复Bug,希望世界和平!
  • 最近刷动态,集束炸弹都TM的扔了,两个谁也别说谁的极端立场横行的国家,都在给邻国以及周边造成不同程度的苦难,我认为互扔hd是最快解决的办法!但是总归人民是无辜的,不写了,在写感觉不符合抖音大立场了,期待世界和平,人类再无战乱!

昨天以前首页

从老活到小

作者 keyle xiao
2026年3月16日 15:49

前段时间和家人聊天,说真羡慕我们家宝宝,上幼儿园不用上班,也不像小学有作业。要是现在还有开办给大人的幼儿园就好了。我笑说,幼儿园的女老师们哄十几个月的宝宝怎么样我不知道,但是哄着几百个月的宝宝肯定手到擒来。

老婆当时白了我一眼:“几百个月的宝宝?那不就是你吗?”

我想想也对。三十好几的人,每天早上闹钟响三遍才爬起来,开会时偷偷刷手机摸鱼,下班回家往沙发上一瘫就不想动,这不就是个大号幼崽吗?区别只在于,幼儿园宝宝哭有人哄,我们哭只能躲厕所里把水龙头开最大。

后来路过一家养老院,老婆又打趣:“我们年轻人能住养老院吗?”我瞄了一眼那气派的大门,认真回答:“你看这所比较高级,进去估计要摇号,轮不上你。”

说完我俩都笑了。这年头,幼儿园摇号,小学摇号,没想到连养老院都得摇号。我们这批夹在中间的,上不着天下不着地,想当宝宝嫌老,想退休嫌早,摇号资格都没有。

想起以前看的电影,《本杰明·巴顿奇事》。主人公生下来就是个老头,然后越活越年轻,最后变成婴儿在爱人怀里闭眼。当时看觉得挺浪漫,现在想想,这不就是把我的人生倒过来演一遍吗?

真把大人送进幼儿园会怎样?我脑补了一下:上午手工课,不是捏橡皮泥,是教你怎么修热水器;下午户外活动,不是滑滑梯,是带你去医院排队挂号;午睡时间,老师不用哄,每人发一粒褪黑素就全老实了。

前段时间网上有不少幼龄网红,几岁大的孩子,直播间里比大人还能说会道。有人批评说这是拔苗助长,让孩子过早接触成人世界。我倒觉得,批评的人多半是嫉妒,人家年纪轻轻就通关了地球Online副本,该赚的钱赚到了,后面好好享受人生。我们这些还在副本里吭哧吭哧打怪的,当然酸。

制作手工P1

幼儿园老师给布置作业,让做手工。一开始我还挺认真,找材料、画图纸、亲手做。后来发现别的家长都是直接买老师推的链接,安装起来简单又好看。我学聪明了,也买了链接。结果群里另一个老师说,希望动手制作,用生活中的材料。我默默看了眼刚拆开的快递盒,心想:这就是生活中的材料啊。

制作手工P2

我突然觉得,这大概就是几百个月的宝宝需要的“幼儿园”,不是真的有间教室,有个老师,而是有那么一个地方、一些时刻,你可以忘记自己是个大人。

有人说,成年人最难的事,是在该成熟的年纪还能保持童真。我倒觉得,最难的是在该装大人的时候,还能偷偷给自己留个后门,时不时溜出去当会儿小孩。

幼儿园也好,养老院也罢,都只是个比喻。几百个月的宝宝不需要真的被哄,只需要偶尔被允许,允许发呆,允许犯错,允许做点没用的事,允许把糖葫芦吃得满脸都是。

几百个月的幼儿园,摇不上号也没关系。只要能偶尔当一回宝宝,在哪里都是放学。

什么是交流

作者 dimlau
2026年3月16日 12:18

2016 年我提出 90 后不买房不买车不结婚,把所有时间用于自我提升与科技创新,2026 年我提出,能和 AI 聊天就不要和人类聊天,删除所有 90 后之前出生人的联系方式,千万不要沾染任何老登气息,时间宝贵!全力拥抱未来!
@justinsuntron

我也频繁地和语言模型对话,当作信息补遗、工具包整理、以及自我反省。但是提起交流,如果认可交流是思想的碰撞,那应该就能理解,我始终会选择人类来交流。只和语言模型聊天,是事实上的拥抱过去,而不是拥抱未来。拒绝接受甚至删除包含着扎实重量感的生命体验,消除摩擦避免碰撞,也正是交流的反面。

fin.

同事的招聘广告:深圳 20-30k 招聘前端工程师

作者 崔话记
2026年3月16日 10:42

  代同事发一个招聘广告,具体内容如下:

【深圳】【非远程】【持续招聘中】国产电气工业软件 ecad 招聘前端工程师 20-30k

  • 简历发送:zenghaixia(at)sz-jlc.com (邮件中可注明来自本站)
  • 产品体验:https://jlc-ecad.com/editor
  • 技术栈:React、canvas 2d、webgl、自建 UI 组件库

一、岗位职责:

  1. 负责 ecad 绘图软件的 UI 交互、基础组件搭建、核心 api 的设计;
  2. 负责绘图功能的完善、性能调优、内存泄漏排查;
  3. 设计开发者工具,优化团队的开发者体验,提升项目的稳定性、健壮性。

二、任职要求:

  1. 本科及以上学历,有 React 项目开发经验;
  2. 熟练掌握 React 及其相关生态,如 jotai、zustand、ant design 等;
  3. 精通 HTML5、CSS3,熟悉 ES6 + 语法,能够手写高性能的前端代码;
  4. 了解 Vite 等前端构建工具,能够进行基本的配置与优化;
  5. 具备良好的问题解决能力,能够独立分析和解决前端技术难题;
  6. 具有较强的学习能力和创新精神,能够快速掌握新技术并应用到项目中;
  7. 良好的团队协作精神,能够与不同部门的人员有效沟通与合作;
  8. 有大型前端项目架构设计经验者优先,维护过开源 UI 组件者优先。

  我补充一下:

  • 该团队技术氛围优良,人际关系融洽,同事领导人很nice,是个能够开心工作的地方,关键是钱也给的够,不妨来试试。
  • 职位相关问题可以在本文评论中提问,我也可以代为询问解答。

@Grok 这是真的吗?

作者 ONO
2026年3月16日 10:07

我可以毫不夸张地说,这大概是你在推特上看到最多的一类评论。

《如何在简体中文的虚假新闻里找到原本的真相?》是 2022 年在三年疫情最「疯狂」的那一年所创作的。4 年之后,人们已经找到了另一套可以追溯真相的方法,比那个时候要轻松和聪明太多。

首先需要承认的是,信息验证原本并不完全属于信息接受者的工作,而且信息验证的工作非常复杂且繁琐。加上信息媒体作为政权的一部分,「让谁听到怎样的信息」原本也是社会运作的一部分。就像基本盘会比伊朗人更心疼哈梅内伊,如果基本盘不被困在这样的信息茧房里,就必然会导致更严重的社会不稳定性——这是政治学的部分,暂时不在今天的讨论范围。

所以,当信息的验证变成信息接收者的工作时,必然会依赖,甚至完全依赖一个看似客观的工具,来高效、快速地溯源。


信息传播的平面化

在信息匮乏、存在严重滞后性的时代,信息传播依赖于三种角色的共同协作:

  • 信息生产者;
  • 信息传播者;
  • 信息验证者;

在传统媒体时代,记者是信息生产的主要角色;而各大媒体提供传播平台;编辑部、事实核查机构作为信息验证者,保证传播媒体的权威性。而在如今这个信息爆炸的时代,任何人都可以是信息的产生者,平台只作为分发渠道,对信息的验证也仅仅是「事后验证」,比如当内容存疑或被举报后,才会明确标注不实信息。自然而然,信息的接受者在接受大量信息的同时,也附带了「信息验证」的工作。

信息传播不再像以前那样呈漏斗形的筛选过滤,而变成了完全平面化的结构。错误信息的传播可能会在最短的时间内被产生、传播,在没有被验证的情况下被人误传,甚至形成「曼德拉效应」,即集体记忆中出现普遍性的错误认知。

就拿我当初写《如何在简体中文的虚假新闻里找到原本的真相?》为例,那天我花了一个早上的时间来寻找这条假新闻的真实出处。虽然互联网有迹可循,但信息就跟兔子洞一样,每进入一个新的论点,就会有无数个需要被验证的论据同时出现。

这个过程需要大量时间精力、专业知识(如果没有,就需要依赖互联网的「兔子洞」)、信息渠道。在我寻找的信息渠道里,不仅有英语,还有原始新闻出处的德语语境。虽然翻译软件已经可以满足大部分的日常阅读,但对于一些特定和专业的词汇,仍需要考究是否存在歧义——这才是新闻的意义。

如果有一个工具可以完全涵盖刚才提到的三个要素,那人们为什么不使用它呢?


认知过滤器是进水系统、还是循环系统?

最近老是在小红书刷到养鱼的视频,我自己养过鱼,光是在缸里养水就没有耐心了。刷了太多相关视频后,我总结出两套养鱼的系统:进水系统和循环系统。

很多人的鱼缸越养越浑浊,有人觉得是水没有养好,所以需要一开始就要求进鱼缸的水是「养好」的。另一种人则认为,自己的鱼缸没有任何过滤系统,也不用打氧,照样养得很清透,是因为他们在鱼缸里建立了一套能够消耗废水的循环系统,比如虾螺水藻之类的。

那把这两套系统安装在「大脑接受信息」里是否也成立?为什么有的人脑子越来越浑,对信息一味接受,最终导致基本盘的养成。那如果人们对每一条信息都抱有质疑,这种生活也不见得幸福,特别是在如今这个信息过载的世界,对每一条信息都完全客观、理性,很快就会导致一个人的前额叶系统崩毁。

认知系统跟鱼缸的相似性,在于大脑很容易接受一套完美、平衡、自洽的认知系统。一旦有外在的威胁,比如鱼缸里被放了会追逐其他鱼的斗鱼,整个鱼缸原本的生态系统就会被破坏。Grok 在推特上,不仅符合了刚才提到的信息验证三要素,人们在依赖它的同时,也充当了认知过滤器的功能。

什么是真的、什么是假的、他在表达什么、你怎么理解,以及从以下图片中抹除你认为最差的手机……

那这套系统到底是用来作为「进水系统」?即我用它来确定哪些信息值得我接受;或是用来作为「循环系统」?即它可以辅助我确定新闻的真实性与观点反驳,从而保持认知系统的生态系统。


权威身份转移

此前我还比较难以理解人们凡事依赖 AI 的习惯,但最近我也在接受这件事,因为权威身份这件事并不会因为 AI 时代的来临而消失,人们依旧在追寻权威,从以前的报刊杂志、主流媒体,到现在的 AI 算法权威。

有趣的是,就算到了算法权威的时代,通过鄙视链存在的权威性仍然存在:使用 ChatGPT 的瞧不起使用豆包的,会部署龙虾的瞧不上只会跟大语言模型聊天的……

后宫剧有一个精妙的「底层逻辑」,往往会以一句台词的方式出现:门户多了,自然就有了矛盾。任何事情,只要有了不同的「门户」,就必然会有矛盾发生;权威太多,必然就是「谁更权威的讨论」——你喜欢吃番茄,就一定有人站出来说他喜欢吃 Omakase 里被腌制过的番茄,因为对他来说,只有通过这种无形的对比才能体现出自己的「高级」。

好了,我顺理成章地挖出了下一个「骂」点。

除去 @Grok 的功能性部分,也不能忽视人们用它来作为一种权威身份的标签,即我凡事 @Grok 是一种用来证明自己「理性求证」、在群体中拥有更高道德地位,以及对他人质疑的权利的展现。

但辩论的观点是他们发出的吗?显然不是,而是一个大语言模型组织的语言;但身份标签已经获得,所以观点与否对他们来说并不重要。


独立思考仍是信息风暴里的暂刻宁静

除了人们会因为权威依附,认为「AI=客观真相」以外,在关于真实性验证的训练里,我也担忧信息源污染的问题。比如,AI 能识别出社会里的「曼德拉效应」吗?当互联网本身已经被谣言污染的时候,AI 是起到净化功能,还是循环放大的功能?

再者,依旧是此前老生常谈的部分——将一个人的思维模式外包给 AI,是否真的会削弱一个人对事实判断的能力,甚至剥夺批判性思维?

要知道,这样的事已经发生过一次了——Google effect,人们更容易忘记那些能在 Google 上被找到的东西。


解决方案

@Grok 解决方案是什么?

一加手机国补入手

作者 ACEVS
2026年3月16日 08:59

AI的应用,体现了人类利用能源规模上升到了新的高度,现在全球AI用的电量差不多需要几个核电站全年发电量,大约几个三峡水电站的全年电量。具体我记不清楚了。刚问了,2026年预计,4-5个三峡水电站,10-12个华龙一号级核电站的全年的发电量。总耗电量约5000亿千瓦时。

AI不光吃电,显卡,tpu,内存,固态硬盘,都用巨多,巨头,部署规模都很巨大,前段时间,电脑先涨,可能用电脑的人少了,市场范围平平,现在影响到了手机,手机也有内存,cpu,固态硬盘。

过年前同款手机1700左右。一加的8gen5,本来想整骁龙至尊,发现超预算了。年前买还行。2000左右。最后国补买了一加6t.12+256G ,为啥不大点,得加钱。差不多了,比我之前那个8+128好了不少了。

到货了一天,昨天中午顺丰联系我在不在家,我赶紧回家,本来以为签收一下就完事了,没想到需要拆开包装,拿出手机,激活,然后输入*#06# 出来三个条码,然后手机和盒子条码一起拍照上传,我看快递员那个手机 上显示预计这次折腾收入是7.2元,5到十分钟搞定,小哥和我说幸好你这是国产安卓,苹果估计得折腾半小时,还得导入数据啥的。看来国补挺认真搞得。落实到位的感觉。

然后就是卸载系统自带不用的app,和安装app,晚上睡觉前我问ai,手机晚上关机费电,还是不关机费电,ai告诉我最好不关机,启动消耗电量大概3%-5%,最好飞行模式耗电2%-3%,我一看想想我之前几个月自动关机,确实感觉费电厉害。但是红米那个没有自动飞行模式,一加这个也没有,不过一加有个小布指令,可以关闭wifi 蓝牙,数据网络,也行。挺方便,不过早上6.20小布指令并没执行打开,wifi和蓝牙和数据网络。
ios指令也不错。签到什么的。不过后来电量不行用的很少了。因为不支持5g卡。偶尔用用。

一加自带google服务框架,好评。安装google的东西方便点。
小米app市场上次给朋友装框架发现还得内购,因为只有那一个当时。

一加的ai功能还挺多,比红米,比如一键截图后让小布直接自动分析。

一加的广告也是挺多的,gkd装了,设置了感觉去不全的感觉。可能有的设置是摆设。

晚上有一会离手机太近,我看到手机最上面小横幅,提示离得太近。

一加读书签到30天可以挣20元。然后发现淘宝也有类似活动,先试试如果复杂就算了,之前看杜俊的签到后面加码看视频做任务。

拍照一般般,不过我一般也就扫码啥的,用的不多,如果可以模块化手机就好了,之前看的模块化的比整机还贵,相同配置。

稻草人周刊 Vol.72

2026年3月16日 00:07
Nothing's About To Happen To Me music cover

Nothing's About To Happen To Me

Mitski

一张另类摇滚专辑,是我喜欢的风格。创作者 Mitski 的歌我之前只通过另一位翻唱歌手 Chloe Moriondo 听过,对她的《Nobody》印象很深刻。这张专辑我这周听了好几遍,最喜欢的歌是《Lightning》和《Instead of Here》,第二首《Where’s My Phone》也很有个性。很奇妙,Mitski 的歌总给我这种感觉:这是来自金星的音乐。

To feel like myself again,

I won’t be here. I’m where nobody can reach.

I’m not here. I’m where nobody can reach.

Instead of here, I’m where nobody can reach.

连接

我有 ADHD 吗?

📜

其实我从未怀疑过自己有 ADHD,也就是俗称的多动症,但这个病在网络上的讨论在最近有所增加,确诊的人也不少——可能是因为人们对心理健康的关注更多了,是好事。也正因为近来讨论的人多了,听他们描述自己的症状,我自己也有些不确定了。之前听一期播客讲一个简单的 ADHD 判断方法:如果做家务的时候能做完一件再做下一件,不会把各个角落的各种事情都展开之后迟迟不收尾,那就不是 ADHD。在那之后,我每次做家务都会刻意地不让自己同时开始多件事情——尽管我后来发现我只是在进行合理的多线程并发,避免处理器空闲,比如给床单喷了除螨剂之后要等它干掉才能叠被子,这个时候我就会走出卧室去擦厨房。

我也偶尔会有在面对焦虑和压力时失去所有动力,什么也干不了的情况。不过一年前我也自我剖析过,一方面是自己的确有些抑郁的倾向在,另一方面,没办法好好应对压力也算人之常情,而且这种情况也不算常见。可是,我也经常在写文章写到一半的时候去查看社交媒体信息,或者上网冲浪的时候发现自己不知不觉地打开了十几个标签页,在同时探索各种不同的主题,这似乎是注意力没办法集中的体现吧?

无论如何,还是自检一下比较放心,我找到了一张 成人 ADHD 自检量表 ,只有 18 题,很快做完了。结果是:我不太可能有 ADHD。

做题的过程中我就猜到了,我有好几题都选择了「从来没有」。比如「在家里或是在工作时,你经常乱放东西或是找不到东西」和「你认为记住约会或是必须要做的事情很困难」,我虽然不算非常有条理,但这这两件事情还从来没有发生过,因为我非常害怕丢东西和忘记和别人的约定,这种警觉性让我从来没有遇到过这方面的问题。

做完之后还有一个感受:如果有人真的表现出这些症状,我好像是会生气的。比如这几条:

  • 有人面对你说话时,你很难专心地听完他说的内容

  • 当与他人交谈时,你会在别人还没把话讲完前就插嘴或接话替对方把话讲完

  • 你会在别人忙碌时打断别人

以前我认为这些人是没有教养,现在看来,他们有可能并不是想要这样做,而是因为觉得不这样做很困难。我想我可以多一些包容和理解吧。

Org Mode 是最好的标记语言吗?

📜

I did not find any tool support for Markdown, AsciiDoc, Wikitext or reStructuredText anywhere that could compete with the cozy Org mode syntax support within Emacs.

Well, look harder.

作者在这篇文章中对比了 Org Mode 和其他标记语言(Markdown、AsciiDoc、Wikitext 和 reStructuredText)的区别,以及为什么他认为 Org Mode 比这些标记语言更具优势、更合理。

文章前半部分的观点我很认同。首先,Org Mode 是规范化的,而 Markdown 却有很多不同的 Flavor,在不同的平台上输入 Markdown 得到的结果不总是一样的,比如 Markdown 很常见的表格就是拓展语法而非最初的标准。我自己也依赖一些并不常见的 Markdown 拓展语法,比如 Obsidan 里常用的 ==高亮标记== 和 GitHub 上常用的 Alert ,这两个语法都被 Hugo 支持,所以我在博客里也经常用,但是在其他地方就不一定了。这的确是 Markdown 的缺陷之一。

其次,Org Mode 的行内标记是符合直觉的,*加粗* /斜体/ _下划线_ ~代码~=等宽字= 都很容易记住,是唯一的语法,而且都是一前一后的单个字符,不像 Markdown 有 _斜体_*斜体* 两种写法,而 **加粗**~~删除线~~ 居然需要一前一后的双字符进行标记,和其他行内标记不统一。说实话,我之前尝试 Org Mode 时,就挺搀它的行内标记语法的。

接下来是我不太赞同的部分。

作者说他认为 Markdown 的链接语法令人疑惑,它会忘记 [文字](链接) 哪个在前、哪个在后,并且它不理解为什么要用到两种括号。Org Mode 里的链接写作 [[链接][文字]]。我可以用相同的逻辑论述为什么 Org Mode 的链接语法令人疑惑。在 Markdown 里,[] 是用来包裹文字的,() 是用来包裹链接的,至少我永远不会搞错文字和链接各自的括号是什么;我相信大部分 Markdown 用户记住哪边是链接、哪边是文字的方式都是这样的,[]() 这样的形式看得多了,就会知道谁在前在后;如此一来,我就不会搞错链接和文字的位置了。反观 Org Mode,链接和文字都用 [] 包裹,谁在前在后就更难记住。

我认为「我容易忘记语法的顺序」并不是很有说服力的论据,因为我认为 Org Mode 用户能记住 [[链接][文字]],和 Markdown 用户能记住 [文字](链接) 的方式一样:见多了就记住了,不是因为哪个语法更符合直觉。两边都有各自的优势和缺陷,仅仅是个人偏好和习惯问题。

我尝试过 Org Mode,其中一部分我很喜欢,另一部分则很不习惯。我最不能接受的是 Org Mode 对中日韩文字的支持,它不能解析 这样的*加粗*文字,因为 Org Mode 的行内标记前后必须有空格,这显然是欧洲语言的使用逻辑,中文里就是很少用空格。其次,标准化是好事,但拓展性差也是问题,我没办法用 ==高亮标记== 这种拓展语法。再次,你们是怎么忍受 #+BEGIN_SRC #+END_SRC 这种写法的?这跟 Markdown 的 ``` 比难道不是长得多吗?和 ~行内代码~ 也没有连贯性(反而 Markdown 可以写 ~~~ 标记代码块)。

不过,读完这篇文章过后,我的确产生了很多思考,其中之一是:标记语言本身真的有好坏之分吗?我认为,就和代码风格一样,有的风格固然是不好的,比如可读性很差的风格,但有的风格很难分个高下,比如 {} 应不应该换行写、缩进应该用空格还是制表符、文件末尾应该不应有空行,标记语言也有很难说是好是坏的语法。用于写配置的标记语言 YAML 和 TOML 也是一样,有人认为 YAML 有诸多缺陷 ,而 TOML 的缺陷 也有人能列出来不少。

你猜怎么着?没有一门标记语言是完美的,包括 Org Mode 和 Markdown。

如何选择标记语言,应该由使用者自己尝试、权衡和决定,不存在「最合理且对所有人都同样合理」的语言。或许,可以开发一种自定义程度极高的标记语言,人们可以自己写配置调整语法,自己创造最适合自己的语言,就像配置编辑器一样。

「结果啊……」

📜

作者表示他很喜欢「It turns out」这个表达,他常在 Paul Graham 的文章里读到,这个表达应该可以对应中文里的「结果……」「最后发现……」。

如果把一句话直接说出来,尤其是那些稍微有些让人难以接受的观点,可能不会起到很好的效果,但如果作者自己在一开始就表达些许的质疑和不确定,然后再以「结果……」「最后发现……」来转折,语气中透露的些许惊讶就会让读者更容易接受这个没有论据支撑的观点。作者说这是一种很巧妙的偷懒技巧,或者说「黑客技巧」(Hack)。

第 43 期周刊 中我分享了 Paul Graham 的另一篇文章,题为《Good Writing》。PG 表示他发现「读着顺口」和「写得正确」这两者之间存在联系,简单来说,如果把句子写得更通顺,这个句子表达的意思就更有可能是正确的,内部逻辑可能更连贯——不过前提是修改,PG 表示他经常修改一些句子,使之更顺口,这样就无意识地修正了一些错误表达。

我想「It turns out」可能也是 PG 的「顺口表达」之一吧。

死互联网已经不再是理论了

📜

作者最近邀请了一个职位的申请者来参加第一轮面试,结果收到了这样的回复:

hey sorry - my agent got a mind of its own and started applying for jobs for me. i’m not currently looking for a job 😅
嘿不好意思 - 我的 Agent 有了自己的想法,开始帮我申请工作了,我现在没有在找工作。

please ignore and sorry for that
请忽略,抱歉。

作者意识到「互联网已死」已经成现实了:Hacker News 开始限制新用户发表 ShowHN,因为最近出现了太多 Vibe Coded 且低质量的投稿; Reddit 上有很多机器人在评论区发帖宣传 SaaS 产品;LinkdIn 上的更新也是 AI 废料占大多数(作者贴的一条 LinkdIn 帖子的截图,帖子上全是些让人抓不住重点的车轱辘话,居然有两百多条评论和五千多个点赞);GitHub 也逃不过,AI 生成的 Pull Request 下的代码审查和回复竟然也是 AI 生成的。

对此我的态度是,我就待在小互联网上好了,与大平台保持距离,和自己选择的真实的人社交。说实话,我一旦在 RSS 更新中看到了 AI 生成的内容,我就会直接把这个订阅源删掉。

不过,倒霉的是,我办法屏蔽现实中人类的声音。

Eltrac :neocat_laptop: @eltrac

上软件测试课:大家听说过 OpenClaw 吗,有自己养龙虾吗……

上软件架构课:哇去现在 AI 编程老牛了

上 Python 课:你要做人工智能是一定要学 Python 的

上创新创业课:现在 Agent 不是很火吗?同学们项目选题就往那个方向做啊

上就业指导课:同学们,去做人工智能

我拿什么躲,有没有什么人类声音关键词过滤器(

在联邦宇宙查看

因为 AI 错误,老奶奶被关进监狱半年

📜

美国北达科他州法戈的警察在调查一项银行诈骗案时使用了 AI 技术,用人脸识别锁定了位于田纳西州的 Angela Lipps 为主要嫌疑犯。在七月 14 日,警察在 Lipps 的家门口逮捕了他,那个时候她还在照看四个年轻的孩子。50 岁的 Lipps 从未去过北达科他州,甚至从未坐过飞机。她被关在田纳西州的监狱近四个月,法院为他指派的律师告诉她,如果要上诉,就要去北达科他州,于是她又被转移到了那边的监狱,直到第五个月的时候,逮捕她的警察才第一次和她谈话。

在法庭上,证据表明 Lipps 在被怀疑实施诈骗的时间在田纳西州还有银行记录,最终经过了六个月后被释放。时间已经来到了冬天,出狱的时候她穿着夏装,很冷,没有地方去,也不知道怎么回家。由于在监狱里没办法支付账单,她失去了她的房子、车,甚至她的狗。

“Why did nobody from Fargo Police ever speak with Angela Lipps for the five months she was in jail?” Zibolski was asked.
“为什么法戈的警察在 Angela Lipps 被关押的前五个月都没有人想过跟她交谈?”,Zibolski 被问到。

“Thank you, Matt (Henson), for that question but we are not here to talk about that today,” Zibolski replied.
“谢谢你,马特(汉森),对于这个问题我们今天暂时不回答。”Zibolski 回复。

Lipps 现在回到了田纳西州,但从始至终,法戈警察没有跟她道过歉。

所以教训大概是,不要把 AI 技术交给蠢蛋

星群

Hugo 社交媒体卡片

Twitter 和 Mastodon 自带的嵌入卡片可能和网页的风格不统一,而且需要从外部加载资源,在这个过程中可能会暴露访客的 IP 地址和 Cookies 等信息给第三方。作者做了一个在 Hugo 构建过程从 API 拉取数据,静态展示社交媒体内容的卡片,和自己网站的风格更匹配,而且不会追踪任何用户数据。

我其实也想添加,但我一直不太能接受在静态网站的构建过程中,从网络加载资源,我认为这会拖慢世界上最快的静态网站生成器的构建速度。不过 Hugo 有构建缓存,兴许可以试试吧。

访问: thumbsupdotme/social-cards

DNSControl

使用 Go 编写的通用 DNS 管理工具,使用简单的 JavaScript 代码管理 DNS 记录,而不是忍受 DNS 提供商难用且加载速度很慢的 Web 面板。DNSControl 还鼓励用户把 DNS 配置文件放在 Git 仓库里,这样 DNS 记录也有了 Git 历史,可以查看变更和随时回退。这个项目相当观点鲜明,以下是它自述的功能:

  1. 使用高级语言维护 DNS 配置,可以使用宏和变量,便于更新;
  2. 避免被提供商锁在平台上,可以随时切换提供商,并且非常简单;
  3. 支持超过 35 个 DNS 提供商;
  4. 可以使用插件支持更多的提供商;
  5. 对 DNS 使用 CI/CD 原则:单元测试、系统测试、自动部署;
  6. 可以开关 Cloudflare 的代理;

对我来说,这意味着我可以在本地打开我最喜欢的编辑器(Neovim)编辑 DNS 记录,然后推送到远程 Git 仓库并利用 Forgejo/GitHub Action 将变更的记录推送给 DNS 提供商,不用打开浏览器、登录,然后找到 DNS 控制面板,再等待加载。DNSControl 还有预览功能,dnscontrol preview,避免误操作。迁移也很方便,可以用 dnscontrol get-zone 获取已有的 DNS 记录。

如果你也想使用 DNSControl,可以参考 Sukka 大佬编写的《 用代码和 Git 管理 DNS 记录 —— DNSControl 和 GitHub Actions CI/CD 实践 》。如果你不介意读英文,也愿意忍受我的凌乱笔记结构的话,我有一个简练的版本: DNSControl Setup

不过,未来有没有机会用 Lisp 写 DNS 记录呢?

访问: DNSControl

LibreSprite

想要画一个 88x31 小按钮,所以第一步是从源代码编译绘图软件!1然后 CMake 成功了,Ninja 编译失败了,不熟悉 C++ 的编译系统,照着 aseprite 的安装文档操作也难免做额外的功课,索性直接放弃。

狐工智能 :所以为什么不用 LibreSprite?

啊什么,居然有 Fork 吗?

LibreSprite 是自由软件,是 aseprite 的分支,可以免费下载使用。不过最新的 1.1 版本和预发布的 1.2 版本对 macOS 的支持都有 问题 ,macOS 用户可以暂时使用 1.0 版本。

访问: LibreSprite


  1. aseprite 是开源的商业软件,买断价格是 $19.99。如果不想花钱,也可以自己从源代码编译,可以合法地免费使用。不过,尽管开源,aseprite 并不是自由软件。 ↩︎

部署AI模型与挑选瓷砖

作者 全局变量
2026年3月15日 16:10

前段时间OpenClaw特别火,我也自己部署了一个。不过说实话,我还真没啥实际应用场景,就随便体验了几下问答,结果发现它消耗Token巨夸张,我猜可能一直在反复论证AI前一次给出的回答,不管做什么操作都要先问AI行不行之类的,所以导致了token消耗巨大。

想着既然对ai消耗巨大,那我为什么不自己本地部署和ai了,然后我就又下载了Qwen 3.5 4B模型来部署,我这电脑也就只能跑得动它了。装上确实能跑起来,但思考和回复速度实在不敢恭维,就简单问个问题,比如问它是什么模型、支持多长上下文,它都要思考七秒以上。编程能力也不行,让它写段C++代码,不知道咋回事,写个代码也进入了死循环。后面趁着火候,我又部署了本地FaceFusion 3.5.4,进行了破解,可能我参数设置的不太好,生成的效果不是很好。

这情况下,过几天我要把他们全部给清理了。

昨天天气特别好,我开车接上大姐和爸妈、娃,一起去市区二姐家。本来是临时决定去的,出发前才跟她说。二姐说我们没早点通知,她只能去菜市场随便买了点菜。虽然没早点通知,等我们到的时候,她速度非常快已经把饭菜做好等着我们了。 大姐的新房马上要装修,我带她去瓷砖厂挑瓷砖。先去市场转了转,店里卖的砖动不动就四五十块一张。后来去了一家我有熟人的瓷砖厂,进去直接看750×1500的优等品,熟人直接给价28块,还保证质量,公司承诺有问题包赔。28这个价格,比我心里预期低太多了,熟人是真给力。 大概算了下,差不多需要700张砖。一张50斤,一件就是50公斤,光这些就35吨 ,17.5吨,得用一辆长平板挂车才行,有边栏的车都拉不了这么多。再加上厨房、楼梯、卫生间用的砖,总量肯定超过35吨了。 运费不到两千块就能搞定,下车搬运费是30块一吨,光卸车就得一千打底,再加上往二楼、三楼、四楼搬,这笔费用搞不好比运费还高。回来路上我一路都在跟大姐算这笔账。 这家瓷砖厂我跟他们合作好多年了,每年都从他们那拿好几车货,所以价格上他们也不敢糊弄我,不然他们是猜不透我会不会换别的厂合作。

 

习作学习一

作者 ACEVS
2026年3月15日 14:44

写作是门手艺,这本书,看上去书名挺土挺传统,实际内容和我之前一些思考接近。

讲述了高考前的作文就是辞藻堆积,或者记忆流经体,秋日私语体,这两个词大体意思就是流水账,和无病呻吟的感慨,还讲述了高考作文为啥议论文好写,引用的论据要么是董存瑞,黄继光,要么感动中国十大人物,或者名人的故事等等。甚至是背诵名篇直接引用到文章里面,如果发表可能就是剽窃和侵犯他人知识产权.

作者讲写作,主要讲的是大学的论文写作和高考前的写作明显的不同就是,证据流,开卷考试比闭卷难的多,作者介绍了几个研究生博士生论文好久没出来跳楼的案例,讲平时高考作文写不出来很少有跳楼。
好的论文证据得去实践,证实,验证多次可能才是好的论文。

小说现在也是加入了不少计算论证,实证,比如太白金星有点烦,长安的荔枝,还有我最近的看的太平年小说,都有一些计算实例,仿佛证明作者自己本身似乎接受过大学教育,尤其论文的教育,不是西游记一个跟头十万八千里,当然为什么是10万八千里,得查查。

遇到不好读的书,可能是能力不足,也可能是作者专门为之,牛顿的《自然哲学的数学原理》写的刻板层叠,不好理解,是牛顿怕那种数学水平不高的人差评,如果写的深入浅出的话,任何人都可以叨叨几句,牛顿比较胆小和爱护名誉。从这个故事中看出,牛顿投资亏钱也是应该,他不那么理智,不开诚布公,自己的小九九计算的再好,也无法逾越牛市的疯狂。

开源项目目录📇

作者 obaby
2026年3月14日 16:14

部分开源项目源码。

PHP8 探针项目(包含WP插件)

专业的服务器监控和管理工具,提供实时系统监控、性能测试、数据库检测等功能。本项目包含两个版本:独立PHP探针和WordPress插件版本。

 项目结构

php8-probe/
├── phpprobe.php              # 独立PHP探针(可直接访问)
├── php-probe-widget/         # WordPress插件版本
│   ├── php-probe-widget.php  # 主插件文件
│   ├── includes/             # 小组件类
│   ├── css/                  # 前端样式
│   ├── js/                   # 前端脚本
│   └── README.md             # 插件详细文档
├── LICENSE                   # 许可证
└── README.md                 # 本文件

🚀 快速开始

方式一:独立PHP探针

  1. 将 phpprobe.php 上传到您的Web服务器
  2. 通过浏览器访问该文件即可查看服务器信息
  3. 支持实时监控、性能测试、数据库检测等功能

特点:

  • ✅ 无需安装,直接使用
  • ✅ 单文件部署,简单方便
  • ✅ 支持多平台(Linux、Windows、macOS、FreeBSD)
  • ✅ 实时系统监控

方式二:WordPress插件

  1. 将 php-probe-widget 文件夹复制到 wp-content/plugins/ 目录
  2. 在WordPress后台激活”服务器监控探针”插件
  3. 进入 外观 > 小组件 页面
  4. 将”服务器监控探针”小组件拖拽到侧边栏
  5. 配置显示选项和主题设置

https://gitee.com/obaby/php8-probe


结巴分词HTTP服务

基于Flask和jieba的本地HTTP分词服务。

https://gitee.com/obaby/baby-jb-server


WordPress 博客数据分析工具

这是一个用于分析 WordPress 博客数据的 Python 工具,可以通过 WordPress REST API 获取并分析博客的文章和评论数据。

功能特性

  • 📝 统计指定年份发布的文章数量(按月统计)
  • 💬 统计指定年份的评论数量
  • 🏆 分析评论用户的评论数排行
  • 💾 将分析结果保存为 JSON 文件

https://gitee.com/obaby/baby-wp-data-analysis-tool


微信双开脚本 (WeChat Dual Launch Script)

一个用于 macOS 系统的微信双开自动化脚本,通过复制微信应用并修改 Bundle ID 实现真正的微信双开功能。

📋 功能特性

  • ✅ 一键双开 – 自动完成所有设置步骤
  • ✅ 智能检测 – 自动检测已存在的 WeChat2.app
  • ✅ 安全可靠 – 完善的错误处理和权限检查
  • ✅ 彩色输出 – 友好的命令行界面
  • ✅ 进程管理 – 查看和管理微信进程
  • ✅ 自动化设置 – 无需手动执行复杂命令

https://github.com/obaby/baby-wechat


Baby 足迹地图

 

简介:

 

基于百度地图的足迹地图。
启动服务之后,先去后台 地图 key 设置页面,添加百度地图浏览器端 ak!
启动服务之后,先去后台 地图 key 设置页面,添加百度地图浏览器端 ak!
启动服务之后,先去后台 地图 key 设置页面,添加百度地图浏览器端 ak!

为了防止 js 地址解析受限,需要同时添加服务端 ak!
为了防止 js 地址解析受限,需要同时添加服务端 ak!
为了防止 js 地址解析受限,需要同时添加服务端 ak!

添加之后,访问: http://127.0.0.1:10099/api/location/process-my-location/ 地址刷新数据库的地点坐标信息,后续无需再通过 js 接口进行解析!

https://github.com/obaby/BabyFootprintV2


Simple microblogging

Add a microblog to your site; display the microposts in a widget or using a shortcode. 
增强版优化页面显示,增加分页功能。wp微博插件。

 

https://github.com/obaby/Simple-microblogging-wordpress-plugin


Baby WP 评论强化拦截插件

 

一个强大的WordPress评论过滤插件,支持字数限制、中文检测、关键词过滤等功能。

插件信息

 

  • 插件名称: Baby WP 评论强化拦截插件
  • 版本: 1.0.5
  • 作者: obaby
  • 作者网址https://h4ck.org.cn
  • 许可证: GPL v2 or later

功能特性

 

🛡 评论过滤功能

 

  • 字数限制: 设置评论的最少和最多字数
  • 中文检测: 要求评论必须包含中文字符
  • 关键词过滤: 支持自定义关键词和WordPress设置的关键词
  • 正则表达式支持: 支持使用正则表达式进行高级匹配

⚙ 管理功能

 

  • 简单设置界面: 直观的管理后台设置页面
  • 错误消息自定义: 可以自定义各种错误提示消息和标题
  • 统计信息: 记录评论过滤统计信息,支持重置功能
  • WordPress集成: 与WordPress讨论设置完美集成,支持实时预览
  • 设置验证: 完整的输入验证和数据清理机制

🔧 技术特性

 

  • 简单架构: 采用简单的面向对象架构,易于维护
  • 性能优化: 高效的过滤算法,不影响网站性能
  • 兼容性: 支持WordPress 5.0+版本,PHP 7.4+
  • 多语言: 支持多语言环境
  • 数据安全: 完整的输入验证和清理机制
  • 错误处理: 完善的错误处理和日志记录

https://github.com/obaby/baby-wp-comment-filter


WinRAR-Keygen

 

1. What is WinRAR?

 

  • WinRAR is a trialware file archiver utility for Windows, developed by Eugene Roshal of win.rar GmbH.

  • It can create and view archives in RAR or ZIP file formats and unpack numerous archive file formats.

  • WinRAR is not a free software. If you want to use it, you should pay to RARLAB and then you will get a license file named "rarreg.key".

  • This repository will tell you how WinRAR license file "rarreg.key" is generated.

2. How is “rarreg.key” generated?

 

  • WinRAR uses a signature algorithm, which is a variant of Chinese SM2 digital signature algorithm, to process the user’s name and the license type he/she got. Save the result to “rarreg.key” and add some header info, then a license file is generated.

https://github.com/obaby/winrar-keygen


Baby Device Manager

 

一个功能强大的WordPress设备管理系统插件,支持设备分组管理、设备信息管理、自定义排序、状态跟踪等功能。

功能特点

 

  • 设备分组管理
    • 创建和管理设备分组
    • 自定义分组排序
    • 分组描述信息
  • 设备管理
    • 添加/编辑/删除设备
    • 设备状态管理(在售、停售、已售出、维修中、已报废)
    • 设备图片和产品链接
    • 自定义设备排序
    • 设备描述信息
  • 前端展示
    • 响应式布局
    • 按分组分类显示
    • 支持多种排序方式
    • 美观的界面设计
    • 支持自定义每行显示设备数量(1-6个)
  • 其他功能
    • 图片管理:支持设备图片上传和显示
    • 产品链接:支持添加产品详情页链接
    • 状态跟踪:支持多种设备状态管理
    • 自定义排序:支持设备分组和设备的自定义排序

https://github.com/obaby/Baby-Device-Manager


RSS Beauty

 

为 WordPress RSS Feed 提供美观的网页展示样式(基于 RSS.Beauty 的 Pink 主题)。

项目功能

 

  • RSS 样式化:在 Feed 中注入 XSL 样式表,浏览器打开 feed 地址时以 HTML 页面形式展示,而非原始 XML。
  • Feed Content-Type:将 feed 的 Content-Type 设为 application/xml,使浏览器按 XML 解析并应用 xml-stylesheet
  • XSL 地址:样式表使用插件目录下的静态文件 pink.xsl。需在 OpenResty/Nginx 中为 .xsl 配置正确的 Content-Type(见下方配置说明),否则浏览器可能不按 XSL 解析。
  • 主题:内置淡粉色(light pink)页面背景与适配的文字颜色。

https://cnb.cool/oba.by/rss-beauty


WP-UserAgent

 

Contributors: obaby
Donate Link: https://oba.by
Tags: useragent, user-agent, user agent, web, browser, web browser, operating system, platform, os, mac, apple, windows, win, linux, phone
Requires at least: 2.0
Tested up to: 6.3
Stable tag: 16.06.99

IP 查询方式(归属地)

 

插件支持四种 IP 查询方式,可在 设置 → WP-UserAgent 中选择:

方式 说明
IP2Location 使用 IP2Location 数据库(需将 BIN 文件放入 show-useragent/ip2location_db/db/),依赖 Composer
CZDB 使用纯真 CZDB 数据库(需授权与 db 文件放入 show-useragent/czdb/db/),依赖 Composer
ip2region 使用 ip2region xdb(仅内置 ip2reginapi,不依赖 Composer)。需将 xdb 文件放入 show-useragent/ip2region_db/,文件名:ip2region_v4.xdbip2region_v6.xdb
纯真QQWRY 使用 qqwry_api(qqwry.dat + ipv6wry.db),无需 Composer。数据文件放入 show-useragent/qqwry_api/ipdata/

选择 ip2region 或 纯真QQWRY 时不会加载 vendor/autoload.php。若选择 IP2Location 或 CZDB 时 vendor 加载失败,插件会自动回退为 ip2region 模式,避免站点白屏。

Description

 

WP-UserAgent is a simple plugin that allows you to display details about a computer’s operating system or web browser that your visitors comment from.

It uses the comment->agent property to access the User-Agent string. Through a series of regular expressions, this plugin is able to detect the operating system and browser which can be integrated in comments or placed in custom places through your template(s).

I’m adding new web browsers and operating systems frequently, as well as updating and optimizing the source code. Your feedback is very important, new features have been added by request, so if there’s something you would like to see in WP-UserAgentleave a comment, and I’ll see what I can do.

WP-UserAgent was written with Geany – http://www.geany.org/
Images created with The Gimp – http://www.gimp.org/

注意:

  • 使用 CZDB 时:若更新替换纯真数据库,请同步更新 show-useragent/ip2c-text.php 中的 $key = 'n2pf2+PrE1y9I55MjdpLpg==';
  • 使用 ip2region 时:将 xdb 文件放入 show-useragent/ip2region_db/ip2region_v4.xdbip2region_v6.xdb),无需 Composer。

https://cnb.cool/oba.by/wp-useragent

 

 

comfyui一些模型上传

作者 ACEVS
2026年3月14日 10:48

Hugging Face – The AI community building the future.速度确实不错就是的魔法上网,消耗不必要流量,
ModelScope 魔搭社区 下载速度也不错,最高20-40M每秒,比各种网盘强很多。目前看。
我把魔搭社区没有的模型等都上传上去了。如果有人刚好用到,可以核对名字进行下载。节约魔法流量。
wan2.2_i2v_high_noise_14B_fp8_scaled.safetensors 14.29GB

wan2.2_i2v_low_noise_14B_fp8_scaled.safetensors 14.29GB

wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors 14.29GB

wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors 14.29GB

wan2.2_i2v_low_noise_14B_fp8_scaled.safetensors下载地址

wan2.2_i2v_lightx2v_4steps_lora_v1_high_noise
wan2.2_i2v_lightx2v_4steps_lora_v1_low_noise
wan2.2_i2v_lightx2v_4steps_lora_v1_high_noise下载地址

wan2.2_t2v_lightx2v_4steps_lora_v1.1_high_noise
wan2.2_t2v_lightx2v_4steps_lora_v1.1_low_noise
下载地址wan2.2_t2v_lightx2v_4steps_lora_v1.1_high_noise

wan_2.1_vae.safetensors
ae.safetensors
ae.safetensors

qwen_3_4b.safetensors
umt5_xxl_fp8_e4m3fn_scaled.safetensors
下载地址umt5_xxl_fp8_e4m3fn_scaled

没有都上传,我搜了一下有的已经上传了。我就不上传了。至少名字一样,模型大小差了几十M估计区别不大。
今天测试差别挺大,不能用。看来下载一个就得上传一个。希望有人能用到吧
魔搭也有免费很多大模型可以用,就是的的排队。
LiblibAI-哩布哩布AI - 中国领先的AI创作平台 这个也可以的
还有一个免费额度太少只能生成一个图片差不多。
之前有个网站叫做相似网站,
现在这个功能可以问ai相似网站,app推荐。也是挺精准的。
不过免费ai似乎分不清楚,只能看看到底咋免费的。

竖店,团播视频生态观察

作者 ACEVS
2026年3月13日 09:48

横店估计都听说过,影视中心,现实世界工业化视频制作中心之一。
竖店是郑州烂尾楼改造的项目,霸总剧,还有其他各种剧,种类很多,也是流水线作业,快速成片,按照我看的那个36氪视频中的剧集名字,用bing搜索到在抖音播放的,看了一会效果也不错,不过真没心思看下去,原因可能是,书籍开始是初级农产品,电视剧电影短视频都是深度加工的食品,我喜欢原汁原味一些可能,清淡饮食一些。现在ai的加入,节奏的快速,估计书籍慢慢也是深度加工食品了,不过还好经典书籍多得很,看不完。深加工食品各方面其实都不错,但是经常吃对身体估计不好。

竖店的商业模式其实不错,2026年之前似乎至少有政策支持,今年当头棒喝,竖店的短剧很多砍掉,不在继续拍下去了,平台可能不大力推荐了,就没有了流量,流量就是金钱,就没了钱,所以没动力了。2026,据说ai漫剧推荐,这个也好理解,全世界都是算力,或者AI,就是没发挥出来,没变现,之前openclaw.1000倍速使用token,消耗算力很不错,就像淘金挖矿,找没找到金矿不重要,你付费用铲子了,就ok。AI漫剧或者其他使用算力,都会得到支持,可能。

团播也是36氪视频介绍的,选秀节目拉下神坛,mcn等机构个人等组织都可以搞,新人会不会跳舞,当然最好美女帅哥,大叔团播也有。拍视频的美女,可能条件好,直接填了联系方式 其他都不用填,直接来直播,前三个月给8500元保底工资,做得好还有提成.不过工作内容跳舞每天8小时左右,主要靠找到喜欢你的大哥,高收入还得晚上单独播,休息的时候还得陪大哥聊天啥的,直播内容就是pk,选秀,竞赛,然后年终看看谁是第一名,估计就是粉丝数量之类的。然后发奖金,帅哥跳舞,比赛,比武等pk。之前快手抖音 开始也有pk,连麦,不过都是一个人的多,现在是团体,可能这种模式被韩国和国内一些综艺验证过,效果不错。

流量感觉就是全部商业活动的基础和关键了,实体店客流,通信流量包,视频流量,平台gmv流量,然后就出现了很多专门搞流量的人,现金流也是广义流量的一种,流量挺像水,利万物而不争,💧 润物无声 — 低调干活,解决问题于无形🌊 顺势而为 — 不硬刚,找最优路径🫧 处下不居功 — 功劳给了别人,自己不留.

飞书妙搭 飞书免费测试openclaw到月底,已经可以用了,不过昨天还能用网页版,今天只能下载安装飞书用了。
我问openclaw他和其他千问等ai的区别。他说本质相同,就是运行的框架不同,导致处理问题的范围不同。

她不爱他

作者 obaby
2026年3月12日 21:50

或许,如果不是那场矛盾,从来都不曾那么深入的了解一个人的内心。也不曾知道在他的内心里怎么看待他的母亲,更不曾知道那种无所谓到底是因为什么。

他以前对于那种父爱或者母爱并没有太多的感觉,只是在一个平平无奇的农村的家庭生活,活着,长大,离开。离开之后他竟然不是那么想回去了,有时候一些莫名其妙的对比总是让人心绪不宁,情绪低落。

在漫长的冷暴力之后,终于在某一天,背对着他的时候他用手指从背后轻轻戳了自己一下。转过身,看着他表情依然凝重,感觉还是那么的沉默。终于过了良久,他开口说:“我最近情绪不是很好,感觉有点被忽略了”

在那一刻终于那块冰开始融化,两个人又聊到之前的种种过往。那种被忽略的人生,那种被贴了无数的标签的前半生,以及父母那种所谓的都是为了你的那种付出,为了让你产生愧疚感拼命去pua你的那种种的行为和话语。

“有时候,我觉得挺不公平的,对你来说。我内心也挺生气的”我说,“去年你妈过生日的时候,去了那么多人,二十几号人,你看她那个表情,全程耷拉着脸。咱们一家人下着大雪,跑那么远去给她过生日,她连个好脸色都没有。关键是那天也花了不少钱吧,路费加上乱七八糟的礼品,吃饭什么的得一千多吧。”

“不止,差不多两千吧。”他转过头不再看我,“我已经不在乎了,其实,我回去,只是为了回去。以前的时候总是觉得想在家多待一会儿,后来,我的心态变了”

“为什么?我有时候,都觉得她没资格让大家对她那么好。”

“从宝子出生的那一天开始吧,那时候,我脚骨折还没好。孩子出生了,她和姐姐来看咱们。不是没资格,是不配,真的不配大家对她那么好。”

“我记得,当时宝子从产房抱出来,她在外面等着,看了一眼发现是个闺女就走了。我那时候还晕乎乎的,麻药的劲还没过去。我觉得她不关心我们俩无所谓,但是她最起码该关心你啊。你那个样子,一只脚在医院里蹦来蹦去。”

“我当然记得,从她看了一眼走了之后,我的心就开始冷了,为了带她们去吃饭,我一只脚蹦着带她们去二楼的餐厅,还得给她们打饭。”他顿了一下,接着说“吃完饭,就开始要求往家走。你知道那时我的心情吗?那时候是真的死心了。我一只脚蹦着带她们回家,看她们收拾好东西,然后给她们打车送她们离开。我再一只脚蹦着去厨房给你准备吃的。我从来没想过她会这么冷漠,以前结婚的时候,为了办婚礼,我说断绝关系,那不过是吓唬她。而这件事情之后,她就彻底死在了我的心里了。有时候你老嫌弃我不给她钱,其实我就是不想给她。当然也不能让她没得花。”

“我也不给我爸妈钱,给了她们就作。”我附和。

“孩子从出生到现在,她一共就看了一个月。剩下的都是你爸妈给看大的,虽然有时候她们说话也挺难听的,但是我知道那是真的对孩子好。所以我也不介意,只是我妈这个态度,来看了一个月孩子。一周之后就开始嚷嚷着要回家。从此,我内心没了任何的感情。很多时候这种场合,我只是为了出现,至于她什么表情或者什么心情,我内心已经没了任何的波澜。甚至,很多的事情我都不再关心了。她说什么,或者做什么都不再重要了。等哪天不在了,我甚至内心都说不上痛苦。”

凌晨三点的夜,格外的宁静,窗外公路上甚至连车辆都没有了。

“以前,我觉得她不在乎我,其实,她从来不在乎任何人”

是啊,她不爱他。

comfyui简单折腾

作者 ACEVS
2026年3月12日 10:55

文生视频,用了剪映免费版试了试感觉不错,简单易操作,电脑上装了发现需要付费,换了个手机号可以免费试用。单手机价格25一个月,包年218元,svip跨设备,59连续包月,连续包年首年299次年499元。还有团队版三人版本价格,价格没有低多少,首月29,次月108,连续包年首年509次年898 12个月1088.

minimax也可以文生视频。每天免费额度生成了一个视频,我用了四五天时间,还好任务可以断点续传的感觉。每天给ai说继续,然后卡柱说点数不够了。然后第二天继续。

我说的文生视频是任意文字直接生成视频,即梦那种也算是吧,每天80点免费额度。
工作流程我看了一下大概是,文字自动分片场,生成图片,然后图片变成视频,合成视频加上语音字幕,成片。

想本地化,发现comfyui还有其他一些。有个lxt desktop 软件这个下载卡在14%更新, 重复两次失败。
然后问了 ai推荐comfyui 首次下了官网的,然后文生图跑起来也不错,后来折腾那个manager,安装不上 ai说杀毒软件问题,发现没有,然后说文件夹解除锁定,没有这个选项,下了github插件包,也是不行,反复折腾重启程序重启电脑都不行。原因是我想用另一个工作流,然后那个工作流节点不能显示下载安装。
然后我想着整合包不错。AI-T8-video-onekey下了这个。然后折腾了差不多一天主要就是更新,下载安装,然后一键启动哪儿报错。各种依赖问题,版本兼容问题,修到最后,ai建议我别折腾了。还是原版。估计它也看出来我想换原版了。
我想也是原版至少跑通过一个工作流,感觉不难。

折腾完这一一遍,大概用掉科学上网流量150G左右。前几天我还担心机场跑路,这两天我担心流量不够用了。有的模型可以用魔搭下载,但是我看名字一样就是大小差点,也不想浪费时间。

显卡8g 16g或者更高的可以跑跑试试。怎么看合适不合适就看模型大小,一般8g以内用8g显存可以 16g以内的模型 16g显存问题不大一般 还有就是看工作流如何调用显存。

有其它免费文生视频的服务器或者应用可以推荐哦。
目前就知道脑云,免费送一些点数,体验5070 5090显卡 大家也可以试试,据说闲鱼买点数便宜.
Cephalon Cloud 端脑云 - AIGC 应用平台

我为什么喜欢音乐剧?

2026年3月12日 00:45

跟一些朋友聊起音乐剧的时候,他们似乎都不太能接受演戏演到一半突然唱起来的举动。不过,音乐剧和迪士尼电影还是有些不同(尽管我也很喜欢迪士尼电影里的歌!)。在音乐剧里,音乐和舞蹈不仅起抒情作用,还是叙事载体,是推动剧情发展的重要一环。

音乐可以用来描绘人物的内心活动,比如《摇滚红与黑》里的《Ding Dong》和《汉密尔顿》里的《Satisfied》;音乐可以展现人物之间的冲突,比如《地狱客栈》里的《Hell’s Greatest Dad》和《魔法坏女巫》里的《What Is This Feeling?》;同一首曲子可以由不同的角色演唱,用相似的旋律展现不同的情感和人物形象,比如《Dear Evan Hansen》里的《Requiem》,甚至相同的旋律在不同的场景响起时,会有不同的效果,这种手法叫作 Reprise。

当然,也少不了一些纯粹的幽默,比如同样是《Dear Evan Hansen》里的《Sincerely Me》,我相当喜欢这首。还有一种歌曲形式叫作 Patter Song ,节奏非常快,歌词的每个音节几乎都是连着的,而且用词通常是押尾韵或者头韵,听感很欢快,不需要什么唱功和技巧。这种歌通常可以快速地推进情节和交代大量信息,很有趣。

音乐里有个概念叫作 motif,通常译作「动机」「乐想」,也音译做「母题」。音乐动机是一段旋律、反复出现的几个突出的音形、一小段音乐片段,可以理解为「用来辨别音乐主题的最小单元」。1在一些音乐剧和歌剧里,人物有各自的动机,出场时场上会响起同一段反复出现的旋律,与人物个性相关。不过,我并不确定这是不是常用于音乐剧的手法,我只知道《地狱客栈》这部音乐剧动漫里使用了这种手法,里面所有的主要人物都有他们出场自带的背景音乐,甚至有代表乐器,比如主角夏莉的乐器是中提琴,她的女友维姬是钟琴。

说了这么多,你可能会以为我是个音乐迷,所以会喜欢音乐剧。我确实偶尔会听点古典乐,但真的很少,我听过的也是那些非常出众,或者非常有个性的,比如贝多芬的第九交响曲(《欢乐颂》就在其中)和巴赫的《咖啡康塔塔》;说实话,我的音乐品味很「流行」,比起古典乐,我更喜欢 Lady Gaga。

我喜欢音乐剧的原因,和音乐本身的关系其实不大。

在这之前要先解释清楚什么是音乐剧。和许多人的第一印象不同,音乐剧并不是什么高雅的艺术形式,实际上相当通俗。人们常常把音乐剧(Musical Theater)和歌剧(Opera)搞混,毕竟,真的有一部名为《歌剧魅影》的音乐剧。对普通人来说,区别实在不明显。

简单来说,歌剧重点在「歌」,而音乐剧重点在「剧」。歌剧的歌唱通常是连续的,不会被情节、对话和动作打断,而音乐剧的歌唱间隙可能会插入对话和其他台词,甚至歌词本身就可能是对话。此外,音乐剧往往会有更多的舞蹈和娱乐性表演,说是歌舞剧可能更准确。由于音乐剧重点在「剧」,所以理解台词以及歌词就很重要,不然会跟不上剧情,然而,聆听外语歌剧是很常见的,就算听不懂词,也能欣赏音乐。

对话穿插在歌唱中,而歌曲本身作为叙事载体推进剧情的例子,可以听这首:

Ready For This music cover

Ready For This

《Hazbin Hotel》

由于音乐剧的表演通常很戏剧化(这个词用在这里貌似很不准确,音乐剧本来就是戏剧),人物的动作很夸张,情感很丰沛,将这种情感与音乐结合在一起就显得格外富有感染力。在我看来,这也是音乐剧可能会被认为不够高雅的另一个原因:情感的表现不够矜持和细腻。无论是快乐、痛苦还是悲伤,都相当夸张。

我能想到的例子是《魔法坏女巫》,这本来是一部小说改编的音乐剧,在最近两年被搬上了电影大荧幕。如果仔细观察 Nessa(也就是主角的妹妹,东方坏女巫)在原版音乐剧和电影版中的表现,就会发现电影版 Nessa 的表现几乎可以说是淡漠,没有音乐剧的那种歇斯底里。由于音乐剧版本的原声带里没有收录《The Wicked Witch of the East》这首歌,所以读者可以参考 这个视频 对比区别。

我向来更喜欢饱满的情感,就像喝咖啡也更喜欢日晒处理的咖啡豆(这类豆子一般风味浓烈,带有更多的水果风味),如果要剖析的话,大概和我童年没有受到太多关爱有关——但说实话,这类话题谈得多了,已经有些庸俗了。

除了情感更饱满,我还更喜欢音乐剧的粉丝群体。说起来,音乐剧是音乐和舞台剧的奇妙组合,这也导致人们对音乐的要求更低,对剧情的要求也更低。这并不是说音乐剧在这两方面都不行,而是说,我很少发现有人对音乐剧的音乐或者剧情做出极端的负面评价。

一方面,不少音乐剧都改编自本身口碑就很好的小说或电影,比如《摇滚红与黑》改编自司汤达的《 红与黑 》,《雨中曲》改编自同名电影。另一方面,当所有人都沐浴在听觉和视觉的双重洗礼下,没有人会把心思放在批评上。回想起来, 去年年底 去剧院看过《雨中曲》之后,我就相信不会有人讨厌音乐剧,也很少会对某个特定的音乐剧做出负面评价。

由于我所在的地方几乎没人看音乐剧,所以当时剧院卖不出去票,但即便人只坐满了不到一半,观众的掌声和喝彩依旧很激烈。音乐剧的舞台是很大的场面,场上能站很多人,在有这么多人的地方还能编排好舞蹈,而舞蹈又能与剧情的场景完美融合在一起,本身就很令人佩服。我印象最深的是开场舞,剧情里应该是电影的拍摄现场,我记得甚至有演员站在剧院后台会用来挂衣服的小推车上跳舞,同时还有另一个人推动着他。

音乐剧的剧情衔接也不需要很巧妙地换场和紧密的逻辑,我还记得《Make ‘Em Laugh》这首歌演唱到一半,演员为了演示「如何让观众大笑」,甚至直接在舞台上表演撞大墙。倘若是其他的叙事媒介,看到有人在毫无预兆的情况从不知道什么地方搬来一块泡沫墙壁,还真的撞破了,真的会觉得有些奇怪,除非是喜剧。

若难以理解,可以想象单独的舞蹈作品,除非编排得很烂,否则很少有人会觉得舞蹈难看,夸张的肢体动作非常吸引注意力。现在,想象这个舞蹈者一边跳舞一边唱歌,歌曲不仅节奏抓耳,歌词也朗朗上口;他的旁边还有很多伴舞,都穿着颜色鲜艳的服装,身体大幅度地摆动着;除了伴舞,可能还有对手,他们唱歌和跳舞都有来有回;而这一切都在发生的同时,故事还在发展,很快就会有冲突、不速之客、意外和转折。

说真的,这样的表演难道不能让你全心全意地投入进去吗?难道不会让你甘愿放下手机,把全部的感官和注意力都献给演员们吗?难道不会让你觉得社交媒体和短视频上碎片化的娱乐信息都食之无味吗?

我每天沉浸在对技术的钻研、对人文社科的探索和无止尽的软件开发以及运维工作当中,尽管富有热情,但总归会感到疲乏。至少我最近明显地感觉到,大量脑力活动过后,我会感到心情低落,这可能是大脑活动消耗了很多糖,血糖快速降低导致的(因为心情低落的同时,我还会感到饿)。

这种情绪波动可能是生理和心理的双重作用,但无论如何,我需要将思绪从西西弗斯的命运中暂时抽离出来,投入一项关注身体感官而非精神和直觉的活动,将我的感官完全交给一支管弦乐队、一群剧场演员和背后的剧作家与作曲家。在那里,我不会看到有人讨论某部剧的续集和后几季如何毁了这部作品,不会看到有人动不动就要给编剧寄刀子,不会有人不合时宜地对情节的合理性发出自以为是的质疑。我会把我的心灵,暂时地,全部献给在我眼前上演的艺术。

如果真的有人不喜欢音乐剧?那就……

The Guy Who Didn't Like Musicals music cover

The Guy Who Didn't Like Musicals

《The Guy Who Didn't Like Musicals》

Should we kill him?
该不该杀了他?

Should we kill him?
该不该杀了他?

Oh, he pines after a cute lil’ barista
噢,他追求那个可爱的小咖啡馆服务生

Isn’t that worth a show-stopping fiesta?
难道不值得一场震惊四座的狂欢?

But for some damn reason, he won’t join our singing seaon
但出于某些原因,他不愿意加入我们的歌唱季

What an ass, what a bitch, what a cock
真是个蠢货,一个婊子,一个傻屌

The guy who didn’t like musicals…
那个不喜欢音乐剧的人……

小沙滩

作者 全局变量
2026年3月11日 22:52

之前答应带他去小沙滩玩,可一直天气不好没去成。上周五放学后,吃完饭他就马上催我开车去小沙滩玩,我随手拍了几张照片。这个小沙滩比我们以前去过的地方安全很多,地面都是平坦的。去年上半年去的那个地方,沙丘是斜坡式的,小孩在那玩,大人基本得在下面守着做安全防护。现在这个地方,可能因为有水泥墩子,形成了很多平坦的沙丘。今天星期三,娃又约好了朋友准备周五让我开车带他们去玩。

泡沫与剃须刀

作者 ONO
2026年3月11日 22:08

出差忘记带电动刮胡刀,就只能买了一套剃须刀。我很不喜欢剃须刀,因为一晚上胡子就会长出来,剃须又会保留大量硬茬。

小学开始性发育时,我偷偷用过我爸的老式刮胡刀刮过胡子。我不确定这是不是一种青春期的性羞耻。我算是很早就长胡子的男生,所以一开始被嘲笑过「早熟」。当一些男生开始以蓄胡来证明其男性特征时,我开始总是保持上嘴唇和下巴光溜溜的样子——结果反而遭到了别人的嘲笑——没发育的阉鸡。

很快恶果发生了。因为老是刮胡子,胡茬越来越硬,导致我的下巴快要长成我爸小时候用来扎我脖子的胡茬了。刮胡子的事情也被爸妈发现。他们问我是不是在学校被欺负,因为在他们的学生时代,就已经有性发育过早的孩子被嘲笑;当所有人都开始性发育时,又回转过头去嘲笑那些性发育迟缓的孩子。

我很难解释,所以只能说不喜欢自己有胡子。

过了几天,厕所的洗手台上多了一套带有泡沫喷罐的剃须刀。那在当时并不便宜,没人告诉我它要怎么用。我就这样顺利地进入了青春期的下一个阶段——父母意识到我进入了青春期。我不太会用泡沫。我以为只要用了这玩意儿,剃须刀就不会刮得我全是伤口,但该划破还是得划破。不过它像是某种仪式的流程,也让我意识到我不再是个小男孩了。

我依旧继续刮胡子,男生之间流行的嘲笑也渐渐消失了。因为胡子拉碴在学生的审美里是「猥琐的」「不修边幅的」,所以很多男生也开始默默地刮起了胡子。当群体再次偏向另一种极端时,这场嘲笑的游戏又得找到下一个嘲笑的对象。就像被涂满了泡沫的下巴:当它被全部洗掉的时候,该流血的伤口还是会慢慢地渗出血。

后来,就是爸妈在我大学时给我买了人生第一台电动刮胡刀,然后女友(现在的老婆)也给我买了一台刮胡刀。它们就像是人生的某个阶段必须要出现的要素。

现在我用剃须刀依旧很生疏,依旧不喜欢用泡沫。但它们就是一套东西,划伤别人的刮胡刀,必须要配套被嘲笑的泡沫。

二十七年前的家书,信封里的慢时光

作者 崔话记
2026年3月11日 13:22

  前阵子在家过年的时候,跟老弟打扫屋子整理旧物,找到几封积灰的家书,是我和老弟老妹在大学期间给家里写的信。其中我写的有五六封,信封积灰破旧泛黄,把信纸抽出来时,里面的信纸仍然完好,字迹也清晰。这些信能保存到今天,其实并不容易,这得益于我爸的精心保存。现在的房子是十几年前建的,更早的老房子彻底拆除了,搬家的时候这些东西没有弄丢。农村的简陋房子里,没有书柜,没有专门的收藏空间,只是在衣柜的其中一个格子里,存放着这些书信和几本旧书。

家书

  身为家在农村的80后,上大学的时候,家里没有电话、没有网络,手机也还没普及,和家里的联系就靠写信。一封信从寄出到被收到,往往要半个月,镇里的邮递员隔几天才去一次村里,从村里到家里又还要耽搁几天,比城市到城市的通信要多花一倍的时间。但也不常写,一年一两封的样子。

  回头想想,那些信写得都很认真。因为知道下一次联系要很久之后,尽量多写一点:宿舍的生活、食堂的饭菜、天气冷不冷、见到了什么朋友等等,很多在今天看来微不足道的小事,当时却像是必须郑重记录下来一样。

家书

  那些名人的家书,具有历史价值或文学价值,可以出书或在博物馆展出。我们普通人的家信,只对亲历的当事人是珍贵的,更像是时间留下的一点私人痕迹,但这些痕迹其实非常脆弱。随着年岁流逝,随着搬家装修或其它意外,可能会慢慢损毁丢失,等到某一天想起时,甚至都说不清是在哪一年、哪一次搬家时消失的。我也曾经经历过租住的房子的发生消防事故而损失一些珍贵信件的事情。

  书信应该是七零后和早期八零后的共同记忆吧,八五后们上大学可能已经开始普及电话和手机了。我刚上大一的时候,整栋宿舍楼只有一部拨号电话,就放在楼管门外,印象中是有人打电话来了,楼管大叔就会扯开嗓门喊“六零四~,六零四~,张某某,电话~”,楼上的学生回喊“来啦~”然后下楼去接电话。后来每两层楼有一部公用的IP电话,主要用于拨出。还有少数学生用上了“高科技”的BP机。好像是到大三的时候,宿舍里已经装上了固定电话,并且可以拨号上网。大学毕业后我用上了手机,西门子的功能机。短短四五年,从邮局寄信,到打电话、传呼机、固定电话,到手机,进步之快,给了我这个农村人极大的震撼。

  电话打完,很快就记不起我们说过什么了,而书信,让我们三十年五十年后,还能看到当时每一个字说了什么,这种感觉很神奇,很独特。

  听闻过人民大学的家书博物馆,他们会征集展出民间家书,进行完善的保管和电子化,我觉得这是一件很有意义的事情。我倒是希望我的母校厦大也能学习一下这个做法,比如向校友征集他们在校生活期间的书信、明信片、日记、老照片等,可以展出和出版,让现在和以后的人们对当年的厦大生活多一个角度的观察。

  我自己的信件,最有可能在将来某个时候全部公开在网站上,不为别的,只为人间到此一游的标记。

有庆养羊和现在养龙虾

作者 ACEVS
2026年3月11日 11:13

或者小说里面有庆养过几个小羊。
福贵的爷爷和他爸经常说“鸡养大了变成鹅,鹅养大了变成羊,羊大了又变成牛。”
有庆开始鞋子跑穿底,鞋帮都坏掉。因为 他要去羊割草,羊养的很好挺肥,然后就遇到合作社时候,他的羊成了公共财产,合作社说 大家一起吃肉,然后这些羊慢慢都被杀掉了吃了,有庆和羊有了感情,他让合作社不要杀的羊,当时的负责人说可以。他很高兴,每天还是割草给他的羊,虽然这个他不用做,他爸福贵说,都是公家了,不是你的了,你还那么起劲干啥。这两只羊,杀掉是家珍软骨病或者渐冻症没劲的时候去医院,烧穿锅底炼钢成功的时候,大伙高兴,给那个烧穿的锅底里面的半融化的铁块罩着红布,敲锣打鼓去县城给上级报喜。
后来合作社没了,有庆在一次上课时候被福贵发现贪玩,直接批斗盖脸的把有庆打了骂了一顿,然后又把有庆的女老师说哭了,然后校长啥的都来了。有庆就不和福贵讲话了,福贵也觉得自己做的过分了,后来和家珍商量,存的钱可以买只羊给有庆,有了这只羊,福贵也找准机会和有庆道歉,有庆确实和福贵慢慢和好了。
后来闹饥荒,福贵和有庆说得把羊卖了换一些米回来,有庆舍不得,但是他已经长大了明白道理。把羊交给福贵去卖掉。
养龙虾差不多也是这种感觉吧,一个可以操控有反馈的自然语义控制的方向盘。就是费些token,打游戏的反馈和这个差不多。token也可以自建大模型,不过对自己的电脑显卡显存要求高点。
龙虾因为权限高,最好虚拟机,然后昨天看工信部说不少龙虾变成肉虾,投毒啥的都有可能。想想也是,权限不那么高的飞牛等都出了问题,权限这么高的龙虾就得更加注意了。

原则

作者 obaby
2026年3月9日 15:41

青科大门口有两个保安,一个是男人,另外一个也是男人。

然而,这两个男人在当门卫这件事情上,行事风格却迥然不同。一个年纪稍微大点的,相对来说比较随和,一般停车给看下访客邀约的记录就可以了。然而,另外一个年轻小胖,在这件事情上异常较真,哪怕给看了访客申请记录还是会追着问半天,去哪里,找个老实等等。哪怕已经见过无数次了还是乐此不疲。

最近大学开学,学校的预约系统无法使用了,每次预约都提示预约已满。那就只剩下一条路,下车登记。周六的时候,门口是年纪稍微大点的保安,说了以下也就进去了。

年后为了巩固宝子练球的效果,已经连续加了好几次课。当然效果也是有的,能看到比较大的长进了。不过回忆之前雪球的历史,仍然让人愤恨,对象一直让着要去原来学🎾的地方,找教练对峙异常,要回点钱来。然而,这东西有怎么评判是教练教的不好?他也完全可以说是宝子太笨了。

目前在这个新教练这里已经交过两次钱了,又花了6000块钱,才把之前这2万块钱学的错误的动作给纠正过来。周六宝子的钢琴课老师有个测评,钢琴课挪到了周日上午十一点多。下课的时候,网球教练问周日能不能继续加课,刚开始也说十一点,后来才想起来十一点有课。一通算计下来,总算是在十二点半到一点半挤出来了一个小时。

不过,这课间时间稍微短了点。十二点零五下课,需要在十五分钟内干到学校,并且在上课之前带宝子围着球场跑完两圈。

桥底等红绿灯的时候,因为红灯时间稍微长了点,又不想非常用力的踩刹车就挂到了空挡上。然而,等起步的时候,一脚油门下去,车没动。转速上去之后,下降的有点慢。想拉到d档,以为拉进去了,又点了下油门发现根本没挂进去。唉,好尴尬啊。不过后面的保时捷竟然没催。等转速下降的功夫,先打开运动模式吧,实在是丢人。终于转速掉下来之后,赶紧拉到d档,一脚油门窜了。此时再看后视镜,返现后面的保时捷已经准备变道了。

有时候一辆车开习惯了,偶尔换一下真的不适应。粉皮的auto hold感觉比大白的auto hold要安静很多,所以开大白的时候不习惯开auto hold,于是有时候红绿灯太长了就切空挡。不过有时候容易忘了在空挡,总想踩油门直接就走了,直到踩下去车没动才发现,哦吼,不在d档。

赶到学校的时候,时间刚刚好。然而,在进门的时候,遇到小胖了。登记之后,非得让给老师打电话。

好不容易打通了,小胖结果电话,开始沟通,问老师的工号。这当时我也有点震惊,这都登记了,至于跟查户口似的?

门口没车的情况下,一个破登记登记了十几分钟。等进校门到网球场已经12点55了。

开门下车,正好老师也刚到,下车第一句话,就是『你别介意,进来了就行了』

『没事,你先去跑步吧』我跟宝子说。

『那哥们问我工号,当时我就怒了。这跟查户口似的』老师说『都跟他说了还不行,还追着一通问,如果不是你在哪等着,我真想骂他一顿』

『没事,有的人就这么较真』我说。

聊了会儿,宝子也跑完了。宝子学网球,按理说应该没我啥事,然而,实际上,在教练给宝子纠正动作的时候,我还得给宝子抛球。此时,教练就在宝子边上的特定位置,观察宝子的动作,距离,步伐等等一些列的动作是否到位。

这一节课下来,终于能开始隔网打回和了。为了能达到这个程度,所有的人都付出了代价,宝子付出了20节课的体力,我多花了20节课的钱。如果当初找个好教练,这一切都可以避免的。之前的教练,来回的带着做差不多的事情,教差不多的动作,一切都毫无意义,此时需要一个人有原则的时候,原则这个东西反而没了。

下课开车带宝子回家,到门口缴停车费的时候,那个小程序又进入了死循环,开始不断的跳转,跳到最后就是一个支付失败的页面,在这之前,我连支付的账单金额和支付流程都没看到。终于在扫了数次码之后,终于出来了金额。

这坡系统,我交着停车费,正常登记了。不但不能自动放行,还得一通盘查,真是特娘的智障。

悦己

作者 obaby
2026年3月6日 11:12

这几天的确是太冷了,连续一周的阴雨,气温也跟着一起下降,春天到了这么久了,温度竟然又到了零度以下了。我跟对象抱怨的时候,得到的答案是,不是说青岛没有冬天吗,这不是冬天吗?

那春天呢?

青岛本来就没有春天。

年前拍完最后一组写真的时候,转眼又看到了边上的秀禾服。这也就成了自己的念想,咨询了下可以约拍的时间,定到了五号。预订的时候其实还蛮早的,还有五六天的时间。每次拍照还是得提前准备点东西,乳贴,裤袜之类的。乳贴之类的东西的确是有些鸡肋,除了拍照的时候其他时间基本都用不到这个东西,虽然每次用完洗干净还能继续用,但是懒得洗就每次都重新买。而至于裤袜,消耗的就更快了,基本都穿成了日抛。

上次拍照的时候,其实有一套光线背景选的很好,但是却没有样片中的短裙。因为那个是拍照的姐妹自己带的。

为了牌照,在拼夕夕上竟然找到了同款。不过比较尴尬的就是下单的时候稍微晚了点。预计拍照的那天才能送到。

而至于最闲的培养土,是为了种植龙葵。在之前数据丢失以前,写过一篇文章《龙葵》。当时想着可能也就是尝试一下,或许不会成功。后来发现她真的好努力,开花结果。一茬一茬收获,到后来宝子都没那么热衷了,而枝干也已经垂垂老矣。不过,令人欣慰的是,宝子竟然不讨厌这种有点奇怪的野果的味道。

新的种子也已经发芽,开始长大。

对象建议把他们挪到那个泡沫箱子里,这也是为什么要买这么多土。30斤土,搬起来还是挺沉的。

在另外一个花盆我还种了一棵地瓜,然而,孤木难成林,这颗地瓜苗注定成不了气候了。对象说想买西红柿或者蓝莓苗,我原本是准备给她留个地方的。然而最终还是没买,龙葵的苗就占据了整个箱子。

之前总是觉得,明天就去干什么。然而到了明天却并没干,太多的事情或许只要开始了就一切都顺其自然了。也不会太难,讨好自己,何必等待。

早上洗刷完,虽然气温不高,为了拍照的时候换衣服方便还是直接一条薄裤袜长筒靴就出门了。在外面的时间有限,哪怕四五度的气温其实也没那么冷。到停车场停好车,刚要准备下车,保安过来巧了下玻璃,问是临停还是什么情况,说业主比较反感车位备战,让把车停到临停区域。

临停区域听保安说了以下,的确有点远,并且楼层不通。最后给保安留了个电话停在了这个车位上,只要保证能快速挪走就可以了。

上楼之后按了下门铃,没有应答,敲门也同样沉寂无声。门口还提着水电费催缴的单子,猜测应该是上班第一天,我这是上班第一单。微信问了下,化妆师小姐姐说在等电梯。

室内的温度还算可以,虽然穿的不多但是并不算很冷。只是在跟物业小哥沟通半天忘了穿外套,在楼道里等的时候。那薄薄的裤袜却没有任何御寒的能力。

今年过年,吃的并不算多,所以体重变化不大。主要假期最后几天心情一般,也的确没什么食欲。体重增增减减,一个假期下来变化不大。秀禾服那复杂的头饰戴上去之后,感觉脑袋瞬间沉重了十来斤。

至于白色的袜子,的确是感觉有点驾驭不了。

用化妆师小姐姐的话说,叫做又纯又欲。当然,这肯定是小姐姐的微信的赞美的说法,自知之明还是有的。

有时候也会想一些问题,现在这种疯狂的拍照是为了什么。真的有那么好看吗?或者说真的那么自恋吗?如果往深处挖掘还是一种报复性的消费行为。为了弥补年轻时候的自己,亡羊补牢,算是没那么晚吧。拍完照,选完照片,看了下时间两点半。

打开淘票票,搜索电影片,最近一场万达的《飞驰人生3》三点二十。想着等到了万达在买票,一路飞奔到万达,看了下时间三点十分,打开淘票票发现20的场次没了,最近的成了三点四十的。纠结半天,买了三点四十的。一路溜达上去,买个饮料,上个厕所,等打印出电影票也到了入场时间了。

工作日的影院还是蛮空旷的,选票的时候后面几排看了下都是一对一对的,就不去跟他们掺和了。七排没人选,刚好可以选个最中间的位置。

如果原意甚至可以把脚搭载前排座椅上,当然这样是不文明行为,宝子们不要学习哦。我就是为了摆拍。

还是要坐好的,当然,二郎腿还是可以翘的,反正边上也没人。

看电影我还是喜欢这种没什么人的时候。

等开场的时候,整个影厅加起来也不到十个人。以前单身的时候特别喜欢去影院,在厦门的时候曾经在湖里区万达一呆一整天,把能看的电影都看一遍。然而,去吃米线的时候,有一个哥们要拼桌,简单聊了几句还被鄙视了。『自己一个人来看电影啊,这么无聊』。那时候毕竟自己还年轻,如果现在在听到这句话,我直接把米线汤浇他头上。那时候也是自己第一次去影院看电影,之前影院在自己的记忆里只是一个名词,那时候才知道原来银幕是可以那么大的。

不过在看的时候,手机来回震动了几次,回了几条消息,然后一些关键的情节就漏掉了。妈的,连张弛怎么把引擎盖蹭掉的都没看到。

我也在想,多数人可能都跟张弛一样吧。被这个世界和所谓的潜规则弯弯绕左右着,连自己的命运都把握不了,至于车队经理,叶经理,又何尝不是被命运裹挟的小人物。喜欢韩寒的文字和电影,总是觉得写的东西似乎是戏剧,似乎又是悲剧。不过好在这些故事都给了一个看似完美的结局,哪个戏剧的内核又不是悲剧。

看到一半的时候,边上坐过来一个大哥,我简单的瞄了两眼,看起来可能三十多岁,发量多少让人有些捉急。隔了一个座位,那个座位上自己的包放在了上面。自己低头回了条消息,再看的时候那个哥们已经走了。不知道是为了找个更好的观影位置还是啥。

看完正片,电话又开始此起彼伏的振动,没能等到彩蛋。直接出去接电话了,公司的一个业务系统要切换。第二天一早上线,这种破事总是银魂不算,想真的放松一些都变得异常困难。真想把这些沙雕都给拉黑。

或许,太多的时候为了所谓的大局,或许,太多的时候为了别人的利益,或许太多的时候想着,要不等等吧。

或许,是时候该放弃这些年头了,力所能及的时候,想做什么就去做吧,悦己,悦爱。

一百块的窘迫

作者 obaby
2026年3月2日 10:28

过年回老家的时候,抬头看到大白的保养周期提示,下次保养里程73666km。看了下里程表,数值已经跑到73500了,春节期间随便跑跑,再加上回城的路,肯定会远超这个数了。

回来之后,对象说,后面几天要下雨,等雨停了我就送去保养,顺便洗洗车,毕竟现在洗车也得30块钱。是啊,现在外面洗车这个价格的确是有些贵了,这还是会员价,如果不是会员suv价格石40,还要多花10块钱。

周六宝子上完网球课,教练说,如果后面几天没事,那就来接着上课吧。然而,从周六开始这淅淅沥沥的雨下起来就再也没停过。虽然不大,但是始终是湿漉漉的。过年的时候还有接近20度的天气,现在也骤然降到了四五度。雨天,更合适室内活动吧,看到电视上有人在唱歌,宝子又嚷嚷着想去ktv,毕竟这个地方她还没去过。

从美团团了个两个小时的券,周日下午约好时间。吃完午饭简单收拾下就出发了,李村这个地方,不管什么时候,永远都在堵。通过路口的时候,还没能通过路口等就已经红了,只能在后面等着。

然而,就在跟随前车继续往前走的时候,感觉左侧卡以下。注意前面的特斯拉,后面紧跟着的那辆车也在准备准备往右靠。

起步的时候发现左侧卡了以下,感觉是蹭到了。

这两段视频来自两个不同的视频片段,感觉行车记录仪掉帧了,这是紧邻的两个视频。

我跟对象说,蹭到了。

『你那边下不去吧?』

『嗯,太近了,下不去』不过考虑到应该问题不大,又在这里堵着路口,确实有点招人讨厌。我直接往右打了一把方向把车停到了路边。这时候那个门还在狂摁喇叭,这是怕我跑了。停好车打开双闪,过了几秒钟,那哥们也跟过来了停在了后面。

按照我的想法,如果问题不严重,那就各修各的得了,也不用报警了。然而,我下车走过去大哥的第一句话就把我给整不会了:『你挤什么啊!?』

『我在车道里啊,哪里去挤你了』我答到,一边说,一边走到了对方车头右侧,看了下情况并不严重,浅浅的几条划痕。车身上贴着『迪尔出行』这还是辆网约车。

『我也在车道里』他继续争辩。

『你报警吧』说完,我回到了车上。连自己车头的位置也没看,毕竟这淅淅沥沥的小雨,在外面站着着实是有些傻逼。趁着等交警的功夫,先把行车记录仪的视频下载到手机上以备交警查看。不过这记录仪,开始的时候死活拉不到视频,尝试数次总算是下载到了手机上。

宝子在车上开始哼唧:『我好无聊啊,几点了啊』

『你们俩走过去吧,反正也没多远了』我给她提议。

『还有多远啊,还下雨呢』她抗议道。

『也没多远了,你看那个路口,拐过去,在走一段就到了』

『不走,太远了』

『那你就别哼唧』

『不,我就哼唧』

******说完继续开始哼哼唧唧。其实本来我想训斥她一顿的,但是最终还是忍住了,这毕竟不是她的错。

视频都下完了,继续等交警,把后摄像头的也给拉了下来,不过忘了开后雨刷了,看不清楚。

十几分钟后,交警终于到了。我拉开车门下车,此时那个网约车司机也下来了。跟交警一通说,当然,还是什么自己在车道内,我蹭到他了的那些话。

交警听完没有表态,走到我前面问我事故的发生经过和车辆位置。我简约讲述了以下事发经过,把手机交给交警。他看了几遍之后,已经大概有数了。问对方有没有行车记录仪视频。他翻了下手机,说卡死了,现在打不开。手里的两个手机,一个手机屏幕上都是裂痕。交警继续问能不能用自己的手机链接记录仪查看。网约车司机说需要安装特定的app,当然这也是事实,交警只能放弃,有把我手机拿过去重新翻看了几遍。

『这个事故,你全责』交警对网约车司机说。

『但是我也在车道里啊。我都停了,她蹭上来的』网约车司机说。

『这个先不说在不在车道里,首先她在车道里。哪怕你也在车道里,退一步讲还有个让右原则,左侧车辆要让行右侧车辆。』交警解释到,『这个问题怎么解决,你俩协商吧,我不做建议』

『那如果这么判,那么以后我看到压线的,我也直接怼上去!』网约车司机愤愤的说。交警撇了他一眼,没吱声。

此时,我才去看左侧的伤痕,其实并不严重。

两个黑点加上一条黑色的划痕。

『咱们怎么弄啊?』我问。

『定的我全责,你说吧,走保险或者私了都行』这下对方倒是爽快了。

『你这也不严重,下面那俩黑点可能不是这次的,上面的那个浅浅的划痕抛光就抛掉了』交警说,『哪怕不花钱,让洗车的给抛一下也能给抛掉』

说好的不参与意见呢?咋还又发表意见了。

『这样吧,就这点事。你给我一百,这事就算了了,我找个洗车店抛下光』我说。

『行吧』他开始翻手机,结果手机屏幕还是各种卡顿。翻了几分钟,最后说:『我现在没钱,我得先我问对象要钱。我加你个微信吧,过两天发你。』

『可以』我打开微信二维码。加好友之后,我添加了备注,『欠我100』

再次询问交警,被告知可以走了。直接上车继续出发。上车后对象问怎么处理的,简单说了下。

『怎么可能会连100块钱都没有?』对象质疑道『宝子手里都不止100块钱啊』

『嗐,说不定现在手上真的没有吧』我说。

『你拍对方的车牌了吗?别到时候不认账啊。』

『没拍,小事故,应该问题不大,在何况有交警的报警记录不行到时候我也报警呗。』

等交警的时候感觉道路挺畅通的,等上路之后发现依然是那么堵。终于折腾半天进了停车场,又遇到一群沙雕 小可爱 把停车场入口直接给堵死了。转了半天进到b2。远远的看到前面的车横在了路中间,对象提议直接出停车场,到地面找位置。

终于辗转到了ktv门口,虽然门口立着未成年人禁止入内的牌子,但是并未进行监管。宝子顺利进入了。

这已经记不清楚是时隔多少年再来ktv了。

翻了下歌单,一种是充满回忆感的,另外一种是完全不认识的。看来,听歌还是少了,毕竟,那些新歌,的确听得没那么多。每次想尝试新歌的时候,听一些就被劝返了,真的欣赏不了。

两个小时的时间,看起来挺长,实际也不过就是二十首歌的时间而已。那一大桶柠檬汁真的挺好喝的,可惜,自己也喝不了那么多。

晚上到家之后问对象,那俩黑点是不是以前就有了。

『并没有,上次我洗完车发现后门那里有被蹭的痕迹的时候我全部看过,前面很干净』

嗯,这就有点恶心了,保险杠嘛,有点小剐蹭也没啥。打开淘宝扒拉半天,15块钱买了只补漆笔。

看了下微信的那个『欠我100』,依然没有任何的动静。

后续,100块要回来了。就酱紫吧

连接到 Windows 中的蓝牙网络

作者 obaby
2026年2月28日 17:15

多数时候,在共享热点的时候都是通过wifi共享。然而,最近公司网络升级之后,禁止通过热点共享网络了。除了禁止共享,还有另外一个问题,那就是如果要用自己的电脑开发项目,或者访问数据库,只能连公司内网才能访问这些资源。

直接链接公司的wifi会要求安装安全软件等相关服务,安装之后就会出现另外一个问题。电脑上很多的自己的软件就不能用了。

为了解决这个问题,于是想着用公司电脑共享一个蓝牙热点出来,自己的电脑链接公司的蓝牙之后通过apn网络来获取网络相关的权限。

windows官网的指南非常简单

蓝牙个人区域网络 (BTPAN) 是在设备之间无线共享 Internet 连接的另一种方式。 此功能可用于通过蓝牙(而不是使用 Wi-Fi)将 Windows 设备连接到具有热点功能的设备,例如手机或其他计算机。

若要使用 BTPAN,请:

  • Windows 设备需要内置或通过蓝牙适配器添加蓝牙。
  • 辅助设备需要具有蓝牙并支持热点功能。

若要通过蓝牙将 Windows 设备连接到热点设备,请执行以下步骤:

  1. 在 Windows 设备和热点设备上打开蓝牙,并确保设备通过蓝牙相互配对。 有关详细信息,请参阅 在 Windows 中配对蓝牙设备
  2. 在热点设备上,激活热点并将其设置为通过蓝牙共享。
  3. 在 Windows 设备上,选择“开始  ”,然后选择 “设置”  > 蓝牙 & 设备  > 设备 选择以下 蓝牙 & 设备 > 设备 快捷方式:打开蓝牙 & 设备 > 设备
  4. 在 “蓝牙 & 设备 ”窗口的“ 其他设备”下,选择热点设备以将其展开。
  5. 在 “个人局域网 (PAN) ”旁边的热点设备下,选择“ 加入 ”按钮。
  6. 在打开 的“蓝牙个人区域网络 ”窗口中,请确保在下拉菜单中选择了 “接入点 ”,然后选择“ 连接 ”按钮。

    注意:  接入点 可能是下拉菜单中唯一可用的选项。 如果是,则会自动选择 “接入点 ”,下拉菜单灰显。

  7. 选择“ 连接 ”按钮后,Windows 将尝试连接到热点设备。 如果成功,将显示 “连接成功 ”消息。 选择“ 确定” 按钮关闭 “蓝牙个人区域网络 ”窗口。
  8. 连接状态显示在热点设备名称下的 “其他设备 ”中。 若要断开与蓝牙个人区域网络的连接,请遵循相同的步骤连接到热点设备,但选择“ 断开 PAN 连接 ”按钮,而不是“ 连接 ”按钮。

虽然看起来很简单,但是几个地方操作的时候刚开始还是没找对地方。

共享网络的电脑设置:

1.开启热点

2.设置网络共享方式,选择蓝牙

当然,需要开启两个电脑的蓝牙功能。

需要访问网络的电脑设置:

1.开启蓝牙,并且配对。

2.点击设备角上的点点点,链接apn网络,我这里已经链接了,所以是显示断开

3. 此时看下网络链接状态,应该是显示有线连接的图标。

当然,此时就可以愉快的上网啦。网络共享不一定非得靠wifi,蓝牙也是可以哒。嘎嘎。

陌生的城市

作者 obaby
2026年2月23日 03:14

 冬天的夜总是格外的漫长,虽然现在依然是春天的样子,却也难找到那种春寒料峭的感觉。气温甚至一度到了20度,在这个炎炎的春日中,在公园漫无目的的闲逛的时候,竟然微微的出了一层汗。每次回到老家,总是感觉这个地方既陌生又熟悉,像是自己的一个家,却又不那么像。在这个家里已经找不到任何自己生活过的迹象,一切都被抹除的那么干净。

唯一不变的是那村里的小路,依然狭窄,驱车路过,每当对面来车的时候,总是得小心翼翼的减速,甚至停车让对面的车辆先经过自己再起步。过年的时候,路上的车更多了,停下来的次数也变得更多。到家之后,打开房门,看着这熟悉又陌生的房间,一瞬间不知道从哪里入手。

房间里乱哄哄的一片,把床上原来的东西全部都弄下来,从柜子里找出来自己的床单,被子。趁着时间还早,提前铺好床铺,打开电暖气。甚至,还要提前打开电热毯,免得晚上睡觉的时候冰冰凉凉。只能这样简单的给自己和宝子准备一个临时的住处,等自己过几天离开家的时候,这个地方就会又变成它原来的样子,这件房子也会重新在住入其他的人。虽然自己的婚纱照还挂在墙上,但是,这间房子能看到自己的痕迹的地方,只剩下墙上的那张大的婚纱照,还有写字台上落灰的相册和宝子的摆台。

衣柜里依然找不到自己的衣服,放在家里的仅有的几件衣服自己放到了另外一件屋子里的行李箱里。整理东西的时候,发现有的东西已经坏了。甚至连一件换洗的衣服都找不到,扔在家里的长筒靴子也已经没法再穿了。收拾东西的时候,把这些乱七八糟东西全部都收拾了出来一起扔到了垃圾桶里,痕迹也许就是这么一点点抹掉的吧。

晚上要刷牙的时候不出意料的连个刷牙的杯子都没有,翻天覆地找了半天总算是找到一个。也实在不想再去找另外一个了,就这样跟宝子共用一个杯子。勉强解决了洗刷的问题。在家待的时间多了,总是有些无所适从,找不到共同的话题,也无法在同一个频道沟通。在那些寂寥的下午,还是喜欢去后面的野地里瞎溜达。

顺着那些多年前曾经走过无数次的小路,顺势而上,路依然难走,跟数年前并未有太大的区别,坑坑洼洼的小路上,那些巨大的石块凸出来,像獠牙一样,甚至隔着靴子都能感受到那些石头,深深地挤压脚掌的感觉。原本巨大的山头,因为几年前的石料开采,早就已经没了山头,剩下的只有一个个巨大的深坑。第一天沿着东山的小路,到了这些巨大的矿坑中。第二天沿着村子西边的小路,走了另外的一条路线,徒步走了一公里多,依然没有到自己分的那一点点地头。可能是有人要重新种地吧,竟然很多地方的路又重新修复了,挖掘机施工之后留下的划痕,深深地刻在了那石英砂组成的路肩上,足足有一米多高。

通往自己家地头的路,原本是有两条的。然而,几年前由于大面积杨树种植,水库的堤坝被挖了种了树,后来一年的大雨让堤坝决堤之后,另外一条路也就彻底消失了。从此,那地头在就再也难以到达了。

我把两天徒步的记录发给一个姐妹,姐妹说,都这么卷的吗?放假都不放弃锻炼。其实,并不是想去锻炼,真的是不知道该干什么,也不知道该去哪里。

不单是自己的村子,其实对于整个城市自己都不甚了解。县城不过是弹丸之地,小时候觉得真的挺大的,也曾跟最好的姐妹沿着铁路一直走,从天亮走到天黑,翻阅了一条条的轨道。就这么拉着手一直走,也曾经想就这么一直走下去也挺好的。站在天桥上看着下面的一列列的火车经过。

然而,对于这个城市的了解却仅限于初中的时候学的《潍坊地理》,除此之外没有任何的概念。那时候是真的穷,学校里组织什么各种春游,秋游从来没有参加过。依稀记得初中的时候,学校组织过老龙湾和云门山的游学。诚然那时候,真的没钱参与这种活动。哪怕是花不了多少钱。后来长大了,开始在不同的城市奔波,潍坊就成了一个中转。最常去的地方就是火车站和汽车站,其余的地方依然没有任何的概念。

前天宝子跟她小姨出去玩了,说是去潍坊,室内游乐场还是什么的。想着他们是去见同学的,自己走亲回来之后想着去把她接走。然而,等自己跟对象在潍坊找到她的时候她却死活不肯走,说下午一起去游乐园。我们也只能选择离开,就近找了一家日本料理,随便吃点东西。

下午直奔白浪河公园,虽然经常看到这个名字,却从来没来过。沿着河边两个人一路溜达,并没有什么特殊的风景,不过河水依然清澈。路上接到二姐的电话,问去看大舅了没。“去过了”我回道,之所以问这个,是因为前一天因为一直没去看望他,他直接找到家里了,质问为什么都初四了还没见到外甥,说等了这么多天了,天天在等,也不去看。一通问责,所以早上自己去串了个亲戚。本来想着等回来之后带宝子出去玩,结果回去的时候却发现她已经走了。

沿着河边走了一段之后,想着找个电瓶车开回去。看了下距离大约三公里,虽然外套脱掉了,二十度的天气长距离步行还是有些累的,主要是穿的靴子多少还有点出汗,走起来异常的辛苦。然而,找电瓶车却废了一番周折。又往前走了几百米才找到可以租电瓶车地方,离开河边之后,沿着大路走,没有任何的风景,也没有任何的景致,甚至连一个指示牌或者地图都没有,高德地图也只能看到一个大概的景点地图,所有的电瓶车租赁点和厕所在地图上连标记都没有。

终于租到电瓶车之后,本来还想着在往前转一点,结果电瓶车的时速最高只有11,开了一公里用力十分钟。这三公里开回去至少需要30分钟,这设计不得不说真的是完美。前半小时46元,超时之后一分钟2块钱。这的确是发财的好路子啊。一点空闲时间都不给你留,最终开回去花了25分钟,总算是没超时。

然而,此时给宝子打了个电话,她依然不想走。既然不想走那就不管她了,回到县城之后,经过一个台球厅,年前之前就看到了。现在我既不想吃饭,更不想回家做饭。跟对象说了一下,去沪昌买完东西之后,让她把车开回去,自己去打球。买完东西,把吃的扔到后备箱,顺便把球杆拿出来。

下午四点来钟,打球的人还是蛮多的。空的桌子并不多,开了台子之后,顺便找了个助教,在球厅入口处看牌子的介绍都是初级。那水平自然是一般,倒是也没太高的期望。在公园步行了半天之后,再去打球其实是有些超出负荷了,主要是穿的鞋子也不大合适。最开始几局,助教姐妹打的感觉也还可以,虽然落后但是差别并不大。然而,越往后,感觉准度和章法全部都没了。一下午两个小时除了自己进了两次黑球,她一局也没赢,此时多少就有些无聊了。

水平有限也正常,毕竟就是个兼职。过几天就要开学了,在潍坊职业学院,她说不想上学了,都不想去了。感觉什么都学不会,考试的时候只能用手机抄答案,但是抄的可能也不对。因为不想上学的问题,已经被家人输出了一番了。另外一个姐妹也说,你这上学就是浪费钱啊。甚至连她自己觉得也是。我问她,你不上学。那是想去找个工作还是怎么呢?“我就想躺着,不想上学,也不想上班”她答道。

手表的运动计时提示已经运动了两个小时,在进了最后一个球之后,我决定结束今天的活动。带她一起去吧台结账,台费加上助教费用,两个小时多点一共232。在县城这个价格的确不算便宜。结账的时候,吧台里面两个姐妹在那里打闹。
“我想艹你。”一个姐妹说道。
“别乱说”另外一个姐妹,嗔怒着轻轻打了她一下。
“我们可以去开个包间”最开始说话的姐妹继续说,“反正包间里面没监控,什么都看不到。草死你。”

新年快乐🎇🎆

作者 obaby
2026年2月17日 00:00

新年快乐吖,祝大家:赚钱钱暴富富,变美变瘦变酷酷,钱多多买车车

好啦,下面是正文:

还有哦:

温馨提示: 此处隐藏内容需要发表评论,并且审核通过后才能查看。
(发表评论请勾选 在此浏览器中保存我的显示名称、邮箱地址和网站地址,以便下次评论时使用。
(请仔细检查自己的昵称和评论内容,以免被识别为垃圾评论而导致无法正常审核。)

先到先得:

温馨提示: 此处隐藏内容需要发表评论,并且审核通过后才能查看。
(发表评论请勾选 在此浏览器中保存我的显示名称、邮箱地址和网站地址,以便下次评论时使用。
(请仔细检查自己的昵称和评论内容,以免被识别为垃圾评论而导致无法正常审核。)

 

500 miles 🚗🚌🚄✈️🎆🎇🎉

作者 obaby
2026年2月12日 15:24

《500 miles》,不管什么时候,听到这首歌,心里还是泛起阵阵的涟漪。一圈圈的传递到岸边,在反射回来,自己的心情也和这涟漪一样,在反射和衍射中变得浮浮沉沉。

按照自己身份证上的日期,在还没有过新年的时候,依然又过了一个生日。今年连往常那些无事献殷勤的短信都没了,稀稀拉拉的几条消息,几块钱的优惠券,一点点的积分。这些东西的确无法让自己提起消费的欲望,最大的是壳牌给的20块钱的加油券,然而,整个青岛都找不到几个壳牌的加油站。

今天,也是时候加满油了,从明天开始请假。回老家,春节前大概率也不回更新了,现在回老家,也少了些许的期待,过年,小的时候心心念念的事情,现在也变得平平无奇。一年时间眨眼就过去了,似乎什么都变了,又似乎什么都没变。

现在回家,宝子是想着回去跟她姐姐玩,在老家还能放个鞭炮什么的。然而,现在自己回去多多少有那么一丝丝的抗拒,这种抗拒来自于现在老太太的状态,每天都在哼哼唧唧,说什么不好活了,活不下去了。哪怕去医院检查无数次,都解决不了疑心病。天天想着去医院,天天想着吃药打针,哪怕家里的各种药已经堆积如山。稍微有点风吹草动就开始哼唧,从早到晚,自己只能稍微躲开一点。想找个共同的话题都找不到,她的世界里除了她自己依然没了所有人。

年龄一年年的往上涨,这么多年,除了年龄,似乎其他的都没增长。衣锦还乡,小的时候无数的想法,所谓的雄心壮志,这么多年以后依然当然无存。都说家是最后的港湾,然而,现在这个家并不是港湾,内部的风暴甚至比港湾外的要更加的疯狂。哪怕在家的时候,有点功夫也喜欢在路边溜达,呆在家里反而有些无助。

小时候,读到『少小离家老大回,乡音无改鬓毛衰。儿童相见不相识,笑问客从何处来』。不理解那种苍凉,现在自己也是客人,村子里的老人慢慢故去,孩子们全部都不认识。甚至连那些同龄人都不认识。漂泊久了,同学没了,朋友没了,剩下的只有爱人,孩子,以及自己。更多的时候,那种孤独感也会袭来,这个世界不会有什么感同身受。哪怕是孤独感,每个人也都有太多的区别。

中午对象提议去麦德龙,说借了一张会员卡。之前自己也有麦德龙的会员卡,那张实体卡早已不知道丢在了什么地方。虽然还没放假,超市里依然人头攒动。走走逛逛,买了点酒,买了点乱七八糟的零食。结账的时候竟然800多,看下了账单,一包牛肉粒竟然80。 不过既然选了,那也就选了吧,毕竟不常来,毕竟也不是常卖。

有时候也在想,挣钱到底为什么?其实也说不上来,为了花?还是为什么。到现在参与的月捐已经过了三个月,每个月88。

在完成这几笔捐赠之后,今年也就真的彻底结束了。有时候也在想,人生的意义到底是什么,为了那虚无缥缈的所谓的名利还是为了什么?这几年,身边很多人都依然离开了这个世界。从博友那里也看到了很多人的离开,各种原因。有时候总觉得未来有的是时间,然而,那些人确没有时间了。昨天依然过去,明天是个谜团,只有今天是能感受到的。

或许真的该好好的享受这人生,哪怕不完美,哪怕苦难重重。昨天犹豫再三还是从二手东买了几瓶无醇葡萄酒,或者说气泡果汁更贴切。对象说,既然喝不了酒,还非得买,就是要个参与感呗?

是啊,虽然带酒精的喝不了,但是不带酒精的还是可以的。毕竟小甜水谁不喜欢呢。

不管现实怎样,大家都要好好的,善待自己,对自己好一点。

提前祝大家新年快乐啊,希望大家都暴富富,钱多多,男生都变酷酷,女生都更漂漂。

哦,大年初一还是会发口令红包哦。

 

 

小年

作者 obaby
2026年2月10日 15:13

生活终于似乎是又趋于平静,波澜不惊的过着。日子一天天过,似乎什么都变了,又似乎什么都没变。转眼已经是小年了,今年小区里少了放鞭炮的,基本也听不到太多的鞭炮声,似乎大家也都习惯了这种沉寂。

过完这一周也就放假了,昨晚跟对象商量怎么回家,是不是开一辆车就够了。今年有轮到了独自陪父母过年的时候,我带宝子回老家,对象也陪自己的父母过年。虽然两地不过40公里,过年期间来回奔波的时间却被无线放大了。每到过节的时候,村里的小车就多了起来,甚至镇上的路口每时每刻都在堵车。

开一辆车的好处就是回家的时候,一起回去就可以了。期间来回奔波就需要有人两头跑,这也就是开一辆车带来的弊端。

对象上周的时候,在公司附近的汽修厂洗了车。为了洗着,来来回回去了四五次,虽然是自动洗车机,但是每次看到排队二十几辆车的长龙,她还是放弃了,终于在某一天上午才西洗成功。

而粉皮,之前都是在4s店洗的。现在到了这个时候,4s点洗车的工人基本也都放假回家了。去年年底洗车,是之前买车的销售帮忙给洗的。这次就算了,在万达下面看到有自助洗车的地方,何不自助洗一下呢?以前自己还经常自己洗车,但是粉皮自己确从来没洗过。

年前总是有太多的事情,工作永远做不完,永远也改不完的bug,做不完的需求。公司周末的年会,这次竟然破天荒的让全员参加,不再是单独的领导。当然多数人不过就是背景板,除此之外没啥别的用处了。

除了签到的时候领了一个杀马特的小马,剩下的就是p都没有了。第一次见不去掉中奖名单的循环抽奖,着实是活久见了。三二一等奖竟然都是全部的人员一起,哪怕已经中奖了,还能参与后面的。呵呵哒,真特娘的是个人才。

头发其实也该稍微的修一下了,等119 group上班之后,预约时间。刚开始被告知79价位的已经拍到了下午四点。这今天约不上,后面几天就更难约了。过了一个小时,又重新打过去,重温问下了时间,这次也不管价位了,就问最近的能排到几点,所有价位都可以。

等了半分钟,听到电话那段不断的在询问理发师的安排。终于找到一个,问能不能早点过来。

看了下时间十一点十分,告诉对方十分钟左右就能到,总算是给约上了。工作日的万达并没多少人,停车场冷冷清清,可能很多人都已经回老家了吧。

至于是什么活动并不清楚,快速瞄了两眼,赶紧去剪头发。好在这种简单的打理还是挺快的,四十来分钟就ok了。还有点时间,顾不上吃饭,赶紧去地下停车场的自助洗车的地方洗车。

虽然停车场车辆不多,但是洗车的还是蛮多的,6个洗车位就空了两个,找了一个洗车位停进去。

拉上门口的帘子,扫码准备洗车,之前从来没用过这种自助洗车机,竟然是预付费的,不过这个也在预料之内,如果后付费,洗完跑了咋办呢?不过充值金额就比较蛋疼了98,198,298。那还是选个最小的吧。

冲水:

打泡沫:

貌似泡沫喷多了,嘻嘻

之后就是用刷子刷一下,冲水,用抹布擦干啦。

这个用一个手真的不方便,就不录了。最后当然就是洗白白啦。

虽然第一次用这东西,但是感觉也还可以。唯一的问题就是,那个毛巾只有一条,并且不是很干。

比外面洗车还是便宜的,一共花了不到8块钱,嘻嘻。

这90块钱,够洗一年了。

洗完车赶紧回公司,如果回去晚了,那些傻屌玩意儿可能就又要找茬了。虽然洗车才花了不到8块钱,但是今天一共花了1119(理发店充值)+98 (洗车充值),略贵,略贵

一通忙活,连午饭都没吃,没吃就没吃吧,就当减肥了。

希望大家有花不完的钱,小年快乐吖!

Webmention 简明指南

2026年3月10日 23:04

Webmention 是一个 W3C 推荐标准, IndieWeb 很喜欢这个标准,甚至制订了名为 Salmention 的拓展,只可惜 Webmention 本身就没什么人用,太小众了,这个拓展标准更是没多少人跟进和实现。对于独立博客来说,这项技术其实相当有用,实现起来也不复杂,但中文博客中支持发送和接收 Webmention 的很少,中文资料也几乎没有。

本文意在解释什么是 Webmention、如何使用它,以及如何让自己的网站支持 Webmention。

什么是 Webmention?

在即时聊天软件和社交媒体中,用户可以使用 @用户名 的格式提及另一个用户,对方会收到通知,知道他被提及了。 这是相当有用的功能,只可惜一般的提及功能是局限于某个平台上的,没办法跨平台通知,比如,如果你使用 Telegram,就没办法提及 QQ 上的用户。Webmention 虽然不是用来解决这个问题的,但它的确提供了一种分布式社交的能力,允许某人在一个网站上提及另一个网站上的内容。

假设 Alice 发布了一篇文章,URL 是 https://alice.blog/interesting-post,而 Bob 读到之后觉得很不错,在自己的网站上写了一篇文章,可能是回应,可能是表达喜爱,也可能只是简单地提及了,Bob 的这篇文章的 URL 是 https://bob.site/cool-stuff

这便是 Webmention 的应用场景。如果 Alice 的网站支持 Webmention,那么 Bob 就可以向 Alice 的网站发送 Webmention,这样 Alice 就知道她写的内容被提及了,她也可以把 Bob 文章的链接展示在网页下,让其他人也知道 Bob 写了一篇回应。

这个过程是如何发生的呢?

Webmention 其实很简单,它只是 HTTP 请求。首先,Bob 要找到 Alice 网站用于接收 Webmention 的端点,向这个地址发送 POST 请求,请求包含两个值,sourcetarget——前者是 Webmention 的源地址,也就是 Bob 的文章,Webmention 是从他的网站发送过来的;后者是目标地址,也就是 Alice 的文章,是 Webmention 要发送到的地方。

如果你不懂什么是 HTTP 请求,可以这样理解:当你在一个博客的评论区填写名字、邮箱地址和评论内容并点击发送按钮之后,你就向这个网站接收评论的端点发送了一条 HTTP 请求,准确来说,是 POST 类型的 HTTP 请求,而 Webmention 也是相同的请求,不过请求发送到的端点不同,请求的内容也不同。

Alice 的服务器通过这个端点接收到了 HTTP 请求之后,就会检查这是不是有效的 Webmention。有效性的要求很低,只要 sourcetarget 都是有效的 URL,source 真的包含了 target 链接(即真的提及了 target),就视作有效,没有其他格式要求。接收到 Webmention 之后要怎么处理,W3C 没有做规范,完全取决于接收端怎么实现。

这里有必要说明一下,Webmention 只是技术标准,而不是具体的软件。就像你可以使用不同的邮件客户端发送电子邮件,发送出去的邮件其他人用不同的客户端也能正常查看,就是因为电子邮件是开放标准,而不是具体的软件。

没什么好讲的了,Webmention 就是这么简单:一个网页提及了另一个网页,这个网站向对方网站发送 POST 请求来通知对方,对方网站接收这个请求。

如何发送 Webmention?

你不需要对自己的网站做任何修改就能够发送 Webmention,因为它只是一个 POST 请求。接收端不会验证请求的来源,仅仅是验证 sourcetarget 两个 URL,所以你可以从任何地方发送请求。

比如,使用 curl

curl \
 -d 'source=https://bob.site/cool-stuff&target=https://alice.blog/interesting-post' \
 https://alice.blog/webmention

注意这里的 https://alice.blog/webmention,这是 Alice 博客的 Webmention 端点,也就是 Webmention 要被发送到的地方。要找到这个端点很简单,只需要检查 Alice 博客的 <head> 标签,找到 rel="webmention"<link> 标签。

<head>
 <link rel="webmention" href="https://alice.blog/webmention">
</head>

这是标准的,声明 Webmention 端点的方式,也是其他人知道 Alice 的网站支持 Webmention 的判断依据。向这个地址发送 POST 请求,Alice 的 Webmention 接收器就会收到请求。

不过,一般没有人会用命令行发送 Webmention,这太不友好了。很多支持 Webmention 的博主会在网站上放一个输入框和一个按钮,表示你可以在这里输入你的文章 URL,然后点击发送,对方就能接收到 Webmention 了。这个表单做起来非常简单,我会在下一节「如何接收 Webmention 讲到」。

只要是能够发送 POST 请求的方式,都能够用来发送 Webmention。一般来说,发送 Webmention 的过程会被自动化,每当有一篇新文章被发现,就检查这篇文章里包含的外部链接,然后逐个请求这些外部链接,检查它们有没有声明 Webmention 端口,如果有,就向这个端口发送 Webmention。

发送 Webmention 的自动化工具

webmention.app 提供了发送 Webmention 的工具,最简单的方式是使用 API。假设你在一篇 URL 为 https://my.site/post-xxx 的文章里包含了一些外链,你想向这些链接发送 Webmention,那么你可以向这个地址发送 POST 请求:

POST https://webmention.app/check/?url=https://my.site/post-xxx

这样就通知了 webmention.app,让它帮你检查你这篇文章里包含了哪些外链、哪些支持 Webmention,然后向有接收端的链接发送 Webmention。你可以在他们的首页最下方的输入框输入你的 URL 并点击「START」,来测试自动发送。

如果要做到全自动,那也很简单。最方便的情况是:你有一个 RSS 订阅源。这样,就可以用 IFTTT 创建一个工作流,在 RSS 更新时通知 webmention.app 检查你的新文章,并帮你发送 Webmention。具体见 这个教程

如果你不想依赖 IFTTT 这样的服务,那就要根据你的网站架构来决定实现方式了。

如果你的网站是动态的,使用 WordPress 或 Typecho 等动态博客软件构建,那么你可以找一找有没有实现了 Webmention 的插件可以使用。我找到了 WordPress 插件 ,其他的软件需要读者自行搜索。

如果你的网站是静态的,使用 Hugo、Astro、Hexo、11ty 等静态网站生成器构建,那么你可以参考 我给 Hugo 添加自动发送 Webmention 能力 的方法。我用到了 @remy/webmention 这个 NPM 包,是命令行工具,在网站构建完成后用这个命令行工具扫描一遍 RSS 源,即可向文中提及的外部链接发送 Webmention。不必担心多次构建会重新发送 Webmention 的问题,接收端要是多次收到了相同的 Webmention,会做查重处理,这是标准里规定了的。

具体怎么在构建完成后自动执行这个命令,要看你使用的静态网站生成器。如果是基于 Node.js 开发的,比如 Hexo,可能会有类似这样的写法:

"scripts": {
 "postbuild": "webmention public/index.xml --limit 1 --send"
},

其他可以参考的链接:

如果觉得太难了,不配置自动发送也可以。手动发送反而更方便把控什么时候发送,什么时候不发送,毕竟有的时候可能不想要打扰别人。

如何接收 Webmention?

显然,你需要一个 Webmention 接收器。如果你的博客是用 WordPress 构建的,前文提到的 插件 已经具备了接收 Webmention 的功能。如果是其他博客软件,可能要考虑使用第三方 Webmention 接收器,或者自己部署接收器了。

使用 webmention.io

最简单也是最常用的第三方 Webmention 接收服务是 webmention.io ,我也在使用。这个服务是免费且开源的,所以还算值得信赖。要使用他们的服务,你首先需要配置 IndieAuth ,也就是表明你是这个网站的主人,怎么做到呢?

在网站的 <head> 添加:

<link rel="me" href="https://github.com/alice">
<link rel="me" href="https://twitter.com/alice">
<link rel="me" href="mailto:alice@mail.com">

alice 改成你自己的用户名。这个标记的意思是,这个网站的主人有 GitHub、Twitter 和电子邮箱账号,用户名或地址如上。接下来,确保你的 Twitter 账号页面或 GitHub 账号资料里有链接到这个网站。这样一来,你就证明了自己拥有这些账号,IndieAuth 也就允许你用这些账号登录。你不必配置全部三个账号,只需要一个有效的登录方式。如果是邮箱的话,IndieAuth 就会给你发送一封电子邮件确认登录。

你还可以把 <link> 写成 <a> 标签,如果网页里已经有这些账号页面的链接了,只需要给 <a> 加上 rel="me" 即可。这种标记方式叫作 microformats,后文还会提到。

配置好 IndieAuth 之后,在 webmention.io 输入域名登录,接下来会进入仪表盘。现在,你需要在 <head> 里面指定 webmention.io 作为接收器,添加这段内容:

<head>
 <link rel=webmention href=https://webmention.io/你的域名/webmention>
</head>

接下来 webmention.io 就能够帮你接收 Webmention 了。这个服务是 Aaron Parecki 提供的,如果你觉得不错,可以去支持他!他还是 IndieWebCamp 的创始人和 OAuth 工作组的编辑者。

好了,现在你能接收 Webmention 了,数据存放在 webmention.io 的服务器里,要怎么查看接收到的 Webmention 呢?有这样几种方式:

  1. 仪表盘 查看最近的 Webmention。
  2. 设置 获取 RSS/Atom 订阅源,使用 RSS 阅读器查看。
  3. 配置 Webhook ,在有新 Webmention 时向指定 URL 发送 HTTP 请求,可以配合 Barkntfy 推送到你的手机上。
  4. 通过 API 获取数据。

如果你想通过 API 把 Webmention 展示在自己的网站上,最简单的方法是使用 webmention.js 。把 JavaScript 文件放在自己的网站上之后,在需要显示 Webmention 的地方添加:

<div id="webmentions"></div>
<script src="/path/to/webmention.min.js" async></script>

具体的使用方式见项目文档。

如果能力允许,可以自己编写渲染逻辑,毕竟 API 已经有了。

自托管 Webmention 接收端

webmention.io 很好用,配合 webmention.js,甚至不需要自己写一行代码,不需要部署任何服务,就能接收并展示 Webmention,这对大部分人来说已经够了。不过,如果你很在乎自己的数据,并希望尽可能少依赖第三方服务,那么你大概要自己部署接收端了。

在可以自己部署的 Webmention 接收端中,使用者比较多的是 Horst Gutmann 维护的 webmentiond ,用 Go 编写,存储基于 SQLite,简单轻量。此外还有用 Rust 编写的 WesleyAC/webmention-receiver 和用 Python 编写的 capjamesg/webmention-receiver

对于重复造轮子这件事,我们国人也不输(奇怪的比较)。 Chlorine 不久前用 Rust 写了一个 Webmention 接收端,名为 CircleAt ,而我也用一门 Lisp 方言开发了 Weepinbell ,最近才发布 v0.1.0 版本。不过我不建议你用 Weepinbell,因为还没有正式投入使用,可能存在一些问题,进入稳定版本之后我会再发一篇文章的。当然,如果你愿意贡献的话,我将感激不尽。

在开始之前,我得警告读者,Webmention 作为一门小众技术标准,使用者很少,自托管接收器的更少,如果遇到问题,可能很难找到解决方案和能够提供帮助的人(虽然我很欢迎有人来问我啦)。如果对自己的技术没什么信心,webmention.io 已经很好了,比能够自托管的选项都要成熟不少。

不过剩下的我也没什么好讲的了,如果你决定自托管,那就选择一个自己觉得不错的接收端软件部署到服务器上。至于如何查看接收到的 Webmention 和如何展示,不同的接收端都有实现细节上的不同,这里略过。

如何制作一个 Webmention 表单?

还记得我们说发送 Webmention 就是发送一个 POST 请求吗?想想还有什么是 POST 请求?一个网页上能够发送 POST 请求的最常见的元素是什么?

没错,就是表单。

<form action="https://alice.blog/webmenion" method="POST">
 <input type="url" name="source">
 <input type="hidden" name="target" value="{{ .Permalink }}">
 <button type="submit">发送</button>
</form>

其中:

  • action 是 POST 请求要发送到的地方,这里填写你的 Webmention 端点
  • <input name="source"> 是用户输入的,对方文章的 URL
  • <input name="target"> 是你这篇文章的 URL,一般由程序自动生成;这里写的 {{ .Permalink }} 是 Hugo 的页面永久链接,你应该把它替换成你的博客软件的变量。

你需要改的就只是 action 的地址和 <input name="target">value,不需要写 JavaScript。不过,用户点击提交之后会被直接传送到 action 所指向的地址,如果你的 Webmention 接收端只返回 JSON,用户可能就不清楚到底有没有提交成功,还是有些不太友好的。如果你愿意的话,可以自己用 JavaScript 处理返回的数据,制作直观的提示,比如「发送成功」之类的。

放一个这样的表单在网页上并说明清楚作用,即便是不了解 Webmention 的访客也懂得如何使用。

让 Webmention 生动起来:microformats

microformats 是一系列开放数据格式,建立在已被广泛采用的标准之上(比如 HTML)。它并不是和 Webmention 强绑定的,实际上 Webmention 标准完全没有提到过 microformats,只不过 IndieWeb 上的人很喜欢把它和 Webmention 一起用。说起来,应该是 webmention.io 的维护者 Aaron Parecki 带的头,webmention.io 默认支持解析 microformats。

由于没有 microformats 也不影响使用 Webmention,如果你不感兴趣的话,可以跳过这一节。

microformats 是什么?

回答这个问题之前,先要了解它解决了什么问题。

网页可以是任何东西,可以是 Web 应用(比如 Notion 这样的在线笔记),可以是小工具(比如计算器、格式化工具、视频下载器),可以是相册,也可以是一篇文章,可以是日历。同一张网页也可能包含各种各样的东西,一篇博客文章中有页面标题、主体内容、标签、评分、回复等等。

网页的具体结构也是不确定的,为了实现不同的排版和效果,不同网站的 HTML 结构完全不同。有的可能是这样的:

<main id="container">
 <h1 id="post-title">Title</h1>
 <article id="post-content">
 <p>Content</p>
 <!-- ... -->
 <p>Author is ..., follow me on <a href="https://mastodon.social/@author">Mastodon</a></p>
 </article>
 <div id="comment">
 <!-- ... -->
 </div>
</main>

也有可能是这样的:

<main id="container" class="flex justify-center items-center my-10 mx-auto p-4">
 <header class="max-h-lg shadow-lg">
 <div class="rd overflow-hidden">
 <img src="/posts/xxx/banner.jpg" class="block">
 </div>
 <h1 class="font-extrabold text-3xl">Title</h1>
 <p class="font-semibold text-xl">Subtitle</p>
 </header>
 <article class="text-md leading-loose prose">
 <div id="post-content">
 <!-- ... -->
 </div>
 <div id="post-endnotes">
 <ul>
 <!-- ... -->
 </ul>
 </div>
 <div id="author-info" class="bg-white px-4 py-6 my-2 shadow">
 <p>Author Name</p>
 <p>Description</p>
 <a href="https://mastodon.social/@author">Mastodon</a>
 </div>
 </article>
 <footer>
 <!-- ... -->
 </footer>
</main>

偶尔还能见到一些莫名其妙的 HTML 结构,比如我就见过这样的:

<div id="scroll-body">
 <div id="contant-wrap-wrap">
 <div id="content-wrap">
 <div id="main-content">
 <div id="page-content">
 <h1 id="page-title">...</h1>
 <p>...</p>
 </div>
 </div>
 </div>
 </div>
</div>

简直有大病。 无论如何,尽管它们的结构不同,但包含的内容是相似的,换句话说,数据结构是相似的。他们都有可能是一篇文章,包含页面标题、内容、作者信息等等,这篇内容同时还有可能是另一篇内容的回应、点赞或转发。

被浏览器渲染为图形过后,人读起来会理所应当地觉得这些就是相同的数据,但在机器看来就难了。HTML 结构有无限种可能,要怎么让机器快速且准确地判断某个网页属于什么类型的内容,它包含了哪些结构化的数据?

其实已经有一些方案被提出了,比如被广泛使用的 Open Graph 协议 。网页只要按照标准,添加一些 <meta> 标签,就可以使其成为一个数据对象。Facebook 等社交媒体,在遇到这些链接的时候,会爬取 Open Graph 的内容,生成更具视觉效果的卡片。

以下是 Open Graph 的一个例子:

<meta property="og:title" content="The Rock" />
<meta property="og:type" content="video.movie" />
<meta property="og:url" content="https://www.imdb.com/title/tt0117500/" />
<meta property="og:image" content="https://ia.media-imdb.com/images/rock.jpg" />

microformats 是类似的东西,但他没有规定新的 <meta> 标签类型,也不像另一个标准 JSON-LD 一样要求插入一大段包含 JSON 的 <script> 标签。它就建立在最基础的 HTML 之上。

以下是用 microformats 标记的一篇博客文章示例。

<article class="h-entry">
 <h1 class="p-name">Microformats are amazing</h1>
 <p>Published by <a class="p-author h-card" href="http://example.com">W. Developer</a>
 on <time class="dt-published" datetime="2013-06-13 12:00:00">13<sup>th</sup> June 2013</time></p>

 <p class="p-summary">In which I extoll the virtues of using microformats.</p>

 <div class="e-content">
 <p>Blah blah blah</p>
 </div>
</article>

注意到 class 的值了吗?p-name 标记了这篇博客文章的名字,p-author 标记了作者,p-summary 标记了这篇文章的总结摘要,e-content 则是这篇文章的内容。最外层的 h-entry,标记这是一个条目,博客文章、社交媒体发帖和维基页面等等,都可以用这个类名标记。

要实现 microformats 标准,你不需要在其他地方添加任何别的格式的数据,只需要在原有的 HTML 上操作就好了。刚刚我们看到的是 h-entry 格式,用来标记发布在万维网上的内容,除此之外,还有用来标记人和组织的 h-card ,用来标记日历和事件的 h-event 等等。

我们刚才用来配置 IndieAuth 的 <link rel="me"> 标签,也是一个 microformats 格式 。它更常见的用法是直接标记在 <a> 标签上:

<a href="https://github.com/tantek" rel="me">@t</a>
<a href="https://tantek.com/" rel="me">https://tantek.com/</a>

rel="me" 本身不是用来配置 IndieAuth 的,只是标记网站站长的其他网页链接的一种方式。IndieAuth 只是使用了 microformats 的这个格式而已。

总而言之,microformats 是名副其实的「微格式」,不需要对网站结构做出太大改动,就可以标记结构化的数据。

和 Webmention 的关系

我猜测除了 webmention.io 之外,没有太多接收端实现了解析 microformats 的能力(不过, Weepinbell 可以!)。最初 Webmention 仅仅是「A 网页提及了 B 网页」的通知,并没有什么复杂的分类,但 microformats 的使用让一切都不简单了起来。

一般来说,相互提及的网页都是博客文章,文章是用 microformats 的 h-entry 标记的。这个格式除了标记基本的元信息之外,还有这样的属性:

  • u-in-reply-to:这个 h-entry 回复了哪篇文章
  • p-rsvp:这个 h-entry 是对什么的 RSVP,即表明自己是否要参与某次聚会、活动或事件
  • u-like-of:这个 h-entry 是对哪篇文章的喜欢(点赞)
  • u-repost-of:这个 h-entry 是对哪篇文章的转发

比如,Bob 回应了 Alice 的文章,它在文档开头提及了 Alice 的文章,它可能是这样写的:

<div class="h-entry">
 <h1 class="p-name">对 Alice 文章的回复</h1>
 <div class="e-content">
 <p>前几天我在 Alice 的博客上读到了
 <a class="u-in-reply-to" href="https://alice.blog/">
 一篇有趣的文章
 </a>,
 我很受启发。</p>
 <p>对这个问题,我也有相似的思考。</p>
 <!-- ... -->
 </div>
</div>

你注意到了吗?Bob 把文章中提及的链接标记为 u-in-reply-to。如此一来,这篇文章在能够解析 microformats 的程序看来,就是对 Alice 文章的一篇回应。如果是 u-like-of,就是对那篇文章的点赞,u-repost-of 就是转发。

至于 p-rsvp,我觉得这个设计有点大病——真的会有人写网页公开发 RSVP 吗?这种东西难道不应该私下交流吗?无论如何,它是存在的,你可以用 microformats 标记 RSVP,也意味着你可以用 Webmention 来发 RSVP 通知他人你是否决定出席某次活动。

具体而言,Webmention 和 microformats 这两个标准是这样一起使用的:支持解析 microformats 的 Webmention 接收端,在收到请求时,除了做最基本的检查之外,还会解析 source 网页中的 microformats,如果有的话,就一起保存下来。

IndieWeb 上的居民会根据 h-entry 是否包含 u-in-reply-to 等属性,决定展示 Webmention 的方式。如果有 u-in-reply-to,就显示为回复或评论;如果有 u-like-of,就显示为点赞;如果有 u-repost-of,就显示为转发。以下是 Barnaby Walters 的网站实现这一展示方式的例子。

Barnaby 的 网站

如果都没有,那就当作普通的提及,也就是最原始的 Webmention。

在 Webmention 中显示自己的名字和头像

上一小节解释了 h-entry 格式,用来标记内容。用来标记作者时,可以用到 h-card 格式。

<a class="h-card" href="https://tantek.com/">Tantek Çelik</a>,

<span class="h-card">
 <a class="p-name p-org u-url" href="https://microformats.org/">microformats.org</a>
</span>

h-card 本来是独立的,用来标记人和组织的格式,但它也可以作为 h-entry 的子属性 p-author,放在 h-entry 里,标记这个内容的作者。

<div class="h-entry">
 <div class="p-author h-card">
 <img src="https://aaronpk.com/images/aaronpk.jpg" class="u-photo" width="40">
 <a href="https://aaronpk.com/" class="u-url p-name">Aaron Parecki</a>
 </div>
</div>

这样,其他软件在解析 microformats 的时候,就能发现你的名字和头像了。一般来说也会展示在 Webmention 里。

同步来自联邦宇宙的提及

你可能怀疑会不会真的有人这样用 microformats,给链接标记 u-in-reply-to 这样的类名总归有点麻烦,大部分时候我们只是简单提及一篇文章而已,不见得就是对那篇文章的直接回应,或者说点赞和转发。这些东西更像是社交媒体上会用到的。

嗯?社交媒体?

既然我们在讨论开放的标准,那就不得不提及开放且去中心化的社交媒体了。是的,我说的就是 联邦宇宙 。有没有办法把来自联邦宇宙的点赞、回复和转发,以 Webmention 的方式同步到网站上呢?

答案是使用 Brid.gy ,这个服务允许你用 Mastodon 账号(以及其他兼容 Mastodon API 的联邦宇宙软件)登录,并将社交媒体账号与你的网站桥接起来。它做的事情很简单:

  1. 每隔一段时间扫描你的社交媒体时间线,以及其他人与你的互动。
  2. 如果发现你的某篇帖文包含你的网站上的 URL,而又有人点赞、回复或转发了这篇帖文,那么就视作这个人点赞、回复或转发了你网站上对应的这篇文章。
  3. 创建一个占位 HTML 页面,包含用 microformats 标记的 h-entry,以这个占位页面作为 source,给你网站上的页面发送 Webmention。(如果你直接访问这个占位页面,会被跳转到实际的联邦宇宙帖子,但 Webmention 接收器会把这个占位页面视作真实的 source 地址)

如此一来,你的网站就通过 Webmention 和联邦宇宙互通了。

Bridgy 的后台,列出了联邦宇宙上的互动,其中的一些已经作为 Webmention 发送

我的网站就是这样做的,拉到页面最下方,你就能看到来自联邦宇宙的点赞和回应,不过我还没想好应该如何展示「转发」这个类型的 Webmention。

自己动手写 Webmention 接收端

自己写 Webmention 接收器并不困难!你只需要把 Webmention 文档 中有关接收端的部分读一遍,知道需要注意哪些技术细节12就好了。你只需要提供一个用于接收 Webmention 的端点,至于查询 Webmention 的 API,以及要不要解析和储存 microformats,都可以自己决定。

你完全可以只写一个给自己用的 Webmention 接收端,接收到 Webmention 请求后就通过聊天机器人发送给自己,不做展示也不做过多的处理,甚至不用储存。Webmention 尽管有规定删除和更新 Webmention 的方法(如果 source 有更新或者删除了引用,重新发送一次 Webmention 就应该能够更新),但并没有说一定要储存和展示 Webmention。

你也可以把 Webmention 的功能做得很丰富,用来代替评论系统。无论如何,如果你决定自己写 Webmention 接收端的话,这都取决于你,只要保持最基础的标准就好了。

你也可以看看 Salmention ,比起 Webmention,它只是增加了多级回应的功能。比如 Chris 看到 Bob 回应 Alice 的文章之后,也写了一篇文章回应 Bob,并给 Bob 发送了 Salmention。如果 Alice 的网站也支持 Salmention 的话,Alice 就会收到 Chris 的 Salmention,尽管 Chris 只是直接提及了 Bob。不过,这个拓展标准很少有人用。

资源

相关阅读

工具

最后

希望有更多的人能用上 Webmention,一起愉快地写博客交流。

我写累了,一会儿见吧。


  1. 比如,W3C 规定,为了避免 DoS 攻击,所有的 Webmention 必须异步处理,也就是验证 sourcetarget 都是正确的 URL 之后,应该异步地向 source 发送 GET 请求,检查 source 的内容是否包含 target。 ↩︎

  2. 顺带一提,Webmention 其实不止支持 HTML,还可以提及 JSON 文档和纯文本文档。不过,虽然标准是这么写的,但应该不会有太多接收端很好地支持非 HTML 文档。 ↩︎

一代人有一代人的龙虾要养

作者 keyle xiao
2026年3月10日 11:11

这阵子互联网上刮起了一阵龙虾热。

起因是有人搞了个叫 OpenClaw 的开源项目,说白了就是能让你自己搭一个 AI 助手后端,想怎么调就怎么调。这玩意儿本来也没什么,但不知道谁给它起了个名字叫“龙虾”,瞬间就火了。热度从线上很快烧到了线下。

我寻思着也整一个玩玩,打开腾讯云,看到有个 99 一年的轻量服务器,顺手就买了。为什么放云上?说实在的,就是不想让那些 AI 爬虫无限制地访问我家里那台 NAS。那玩意儿嗡嗡响不说,电费也是钱。放在云上,好歹眼不见心不烦。

server_open_claw

搭建过程倒是出奇地顺利,基本就是一键安装。填了个 QQ 机器人的 API,又填了个大模型的 key,本质就是帮大厂消耗算力。看着命令行刷刷地跑,我在想,这大概就是现代人的快乐吧——花 99 块钱买一台虚拟主机,再花几块钱买几百万 token 的额度,就能拥有一个属于自己的贾维斯。

虽然刚装好的时候,这个贾维斯只会说一句“Hello,我已被你创建成功,等你进一步开发部署我的‘灵魂’”。

chat_qq_open_claw

更魔幻的是,咸鱼上已经有人开始提供上门安装 OpenClaw 的服务了,价格从 100 到 500 不等。我想起 1993 年的“信息锅”骗局,那时候有人上门推销“信息接收器”,说能接收卫星信号,其实就是个破锅盖。现在有人上门装龙虾,本质上也没差太多——都是帮人连接一个他们不太明白的东西。

说实话,很多人根本不知道为什么要用龙虾。他们连豆包都用不明白,却热衷于折腾这个。有个朋友问我装这个有什么用,我说可以让你的 QQ 机器人更智能。他又问然后呢。然后我说你就可以和机器人聊天了。他想了一会儿,说那为什么不直接和微信里的 AI 聊。

我想了想,确实没什么区别。但我没告诉他的是,我真正感兴趣的不是聊天,是它能不能替我干活。

装好之后,我发了第一条消息:“测试网络是否正常访问。

然后我看到服务器上弹出了一串 ping 和 curl 的进程,这家伙真的在执行命令。过了半分钟,它发回来一份完整的网络诊断报告:

✅ 网络连接正常
基础网络:可以正常访问 Google DNS (8.8.8.8),延迟约170ms,无丢包
国内网站:百度可以正常访问 (HTTP 200)
DNS解析:QQ.com 域名解析正常

⚠️ 受限访问
Google:无法直接访问(正常现象,受网络环境影响)

最后还加了一句总结:“你的网络连接基本正常,可以访问国内网站和基础网络服务。Google 无法访问是正常的网络限制情况,不影响日常使用。”

我愣了一下。这玩意儿不是在聊天,它是在真的执行命令,然后把 stdout 抓下来喂给大模型,再给我生成一份格式化的报告。

我又发了一条:“检查当前系统版本,检查防火墙开放的端口。”

它回得很快:“我来帮你检查系统版本和防火墙开放的端口。”然后又是一串输出:

系统版本信息:
✅ 操作系统:Ubuntu 24.04 LTS (Noble Numbat)
✅ 内核版本:Linux 6.8.0-71-generic
✅ 架构:x86_64

防火墙状态:
⚠️ UFW防火墙:未启用 (Status: inactive)
⚠️ iptables:默认策略为 ACCEPT(接受所有流量)

当前开放的端口:

🔵 SSH服务:
22/tcp - SSH 远程访问(对所有IP开放)

🔵 系统服务:
53/tcp & 53/udp - DNS 解析服务(本地)
68/udp - DHCP 客户端
323/udp - chrony 时间同步
5353/udp - mDNS 服务

🔵 OpenClaw服务:
18789/tcp - OpenClaw Gateway(本地)
18791/tcp - OpenClaw Gateway(本地)
18792/tcp - OpenClaw Gateway(本地)

最后还附上了安全建议:“1. SSH端口:建议修改默认端口或限制访问IP 2. 防火墙:建议启用 UFW 并配置基本规则 3. 服务暴露:OpenClaw 服务仅监听本地,相对安全”,末了还问一句:“需要我帮你配置防火墙或修改SSH设置吗?”

我知道这些东西都可以自己敲命令看。但说实话,真懒得敲。而且它给出的格式比我平时自己看的 raw data 清晰多了,还顺手给了安全建议——虽然建议比较基础,但对新手来说确实有用。

这玩意儿本质上就是一个“自然语言转 shell 命令”的包装器,加上一个“命令输出转自然语言”的解释器。技术上没什么新鲜的,但用起来确实爽。

我把这个发现发到群里,有人说你才知道啊,OpenClaw 的核心就是“不只是聊天,而是执行”。它能做的事多了去了,只要给权限,监控服务器、管理文件、自动备份、定时任务,甚至能帮你排查故障。

我试了试让它检查日志、查进程、看磁盘空间,都能干。虽然每次都要过一遍大模型,延迟有几秒,但胜在不用记命令,想问什么直接说人话就行,但代价也是实实在在的——token 的消耗。

tokenUsage

大概聊了六七条消息,后面尝试让它做了个网站,能用而且好用,token消耗速度也不慢,具体可以参考上图的账单,看起来不多,但如果天天用,一天几十条对话,一个月下来也得几十块。

而且这玩意儿有个特点:执行命令本身不花钱,花钱的是大模型理解你的意图、格式化输出的过程。你让它“查一下系统”,它要先生成命令,执行,然后把几百行的输出喂给大模型,让大模型提炼成那几条要点——这才是烧 token 的地方。

这就相当于在你每月的水电煤之外,又多了一项 AI 消费账单。

OpenClaw 这东西,技术上没什么门槛,就是个开源框架加上大模型 API 的套壳。它的意义不在于技术创新,而在于让更多人意识到:原来 AI 可以不只是聊天,可以真的帮你操作电脑。

对于普通人来说,这可能就是“拥有了自己的贾维斯”的平替版。对于我们这些天天跟命令行打交道的人来说,这就是一个能听懂人话的运维助手。虽然它不会写复杂的脚本,不会处理突发故障,但应付日常的巡检、查日志、看状态,已经够了。

一代人有一代人的龙虾要养。我们这代人的龙虾,大概就是这种看不见摸不着,但能帮你敲命令、每个月都要交 token 费的东西。

活着

作者 ACEVS
2026年3月10日 10:29

福贵小时候佃户长庚背着,后来长庚变成了要饭因为福贵百亩地和房子都被使阴招的赌博的龙二收走了,福贵去城里赌博嫖妓,然后背着他的是个大胖子妓女。福贵晚年,背着营养缺乏导致一干活就累,后来卧床不起的老婆家珍。

福贵输光了地和房子,福贵他爹也算是输掉了祖上留下了大概一半的资产,福贵他爹在村子外面的经常方便的缸上上大号栽倒下来,然后归西了。

福贵被一个娃娃戏弄,敲了县长大院的门和里面的仆人打架,结果,被国民党一个连队看到,直接硬拉去当了兵。当时福贵去县城要给他妈找医生。他妈头晕生病的厉害。

福贵被拉了壮丁,拉着大炮到处跑,但是似乎从来没有放过一炮,后来他们被解放军包围了,天天靠空投大米什么的,后来房子拆光,树木砍光,棺材从地里挖出来,当柴火,最后空投大饼,抢的头破血流,后来春生发现去抢那些抢大饼的人的胶靴然后煮大米不错,不用鼻青脸肿去强大饼。

2年后他投降给解放军,怕死,要了盘缠也是花了大半年才回到家。大女儿变成了哑巴聋哑,因为发烧生病。

大练钢材,有庆的馊主意,煮铁,最后轮到他们家煮铁,家珍软骨病可能,因为摔倒,半夜好久没爬起来,导致铁锅烧烂,最后炼铁终于成功。估计就是一半融化一半还是原材料,但是成功了。

有庆电视剧里面是车祸挂掉,书中是给县长女人献血,刚好血型匹配,抽血,抽死了。

有庆和五年级学生挺多给校长献血,有庆还是第一个跑过去的,但是因为献血太积极,动作太夸张,等几十个人验完血他去说是不是该他抽血了,检验发现血型匹配,然后医生那边县长女人一直血不够用,他这边到最后倒地医生才发现不对头了。真还是人和人地位不同,奴性不改哇。

战友春生,后来的县长春生,国共大战,朝鲜 等各种战役都活下来,最后红卫兵折磨他,他没挺过去,自杀了。一个月前,他还去村里看望福贵和家珍,家珍后来都原谅他了,让他好好活,说他就为欠他们一条命有的好好活。

万二喜舍不得买蚊帐,为了保护福贵的哑巴女儿,他的老婆,他先在屋里让蚊子吸他的血,吸饱了蚊子,再让凤霞睡觉。

凤霞生产大出血,挂掉后,三个月后,福贵老婆家珍某天中午去世。

凤霞和有庆,死在同一个医院,都是因为生孩子。一个是县长女人生孩子,一个是凤霞生孩子。

二喜被水泥板吊车事故,压死了。

凤霞的孩子苦根在打水漂,由于缺少一些教育等,有人来告诉他二喜死了,苦根,继续打水漂。
二喜去世还是那家医院,福贵听说二喜要去那个医院说千万别去,可他不知道,二喜当场死亡。
苦根后来发现二喜不来接他回城,晚上福贵告诉他死亡是什么。他才开始哭。
五岁的苦根有了自己的镰刀割麦子。
苦根最后被福贵不小心弄死了,苦根生病,当时赶着下雨前收棉花,当天苦根生病,福贵给他喝了姜汤,然后担心他饿着,破例给苦根煮了很多豆子,结果,由于苦根平时生活艰苦,吃了很多豆子,撑死了可能。

看了另外一个帖子老实人为啥不能成大事,实事求是,不会说谎,确实成不了大事,就像拍电影,改编来改编去,抹掉一些对当前政府不利的事实才行,确实宣传什么就是缺少什么,不过站在统治者角度,似乎有影响统治,作为人类有时候挺可悲,作为宇宙他的可悲之处就是熵吗?向死而生真是伟大的事情,假装绚烂文明过而已。

看完自序作者借鉴另一个作家的写法,虚构这一切故事,不是完全虚构,是增强现实的虚构。

老机伏枥,志在千里

作者 崔话记
2026年3月9日 20:42

  2021年买的老米11,不知不觉已经服役快满5年了。平时没有玩大型游戏的需求,一般app都能正常用,偶尔卡顿也还算能忍。就是电池老化很厉害,不满电都不敢出门,满电持续使用两个小时就没了,所以出门远一点就用超级省电模式将就将就,毕竟出门在外也就地图和微信是刚需。我是真能将就啊,不得不佩服我自己,其实就是懒。

  年前,考虑到要回老家,老家天气冷,电池肯定更加不经用,是时候解决一下这个问题了。于是在国民购物app花了80多了买一块电池,商家提供了一堆零零碎碎的小工具,我也看了一遍拆机换电池的视频教程,毅然决定去维修店,我这山猪干不了细活。维修店帮我换了电池,也把松脱的摄像头模组重新上胶水粘了粘。修完给用橡皮筋五花大绑了起来,我就在这橡皮筋的缝隙内使用了两小时的手机。

老米11

  老机伏枥,志在千里。从深圳到老家来回,这台老米,物理意义上跨越数千里为我服务了,我给它一个表扬不为过。

  新换的电池还是挺给力的,老家的天气里没有扯后腿,也没有充电焦虑了,电量告警也从20%改为5%了。这台5年老机,还得再为我发光发热若干时日。至于为啥不换新机,可以说我是一个恋旧的人,真实原因可能是手机上的数据转移有些小麻烦,尤其是大量的小游戏app和我的游戏进度记录。还有谜一样的微信聊天记录,迁移之后往往一些图片或文件莫名丢失。虽然这些似乎也没那么重要。

  人性处处充满惯性,依赖惯性,无论是对手机的使用,还是人与人的相处,或是思维的模式。根深蒂固的惯性,也许是舒适区,也可能是捆住手脚的绳索。

在咖啡凉透前救回了博客数据

作者 keyle xiao
2026年3月9日 19:29

因为扩容过10GB硬盘,差点被阿里云99元续费资格拒之门外。

收到阿里云服务器到期的短信提醒时,我还在想着这台三年前入手的99元ECS主机不知不觉已经陪我走过三个年头了。登录控制台,找到那台即将到期的实例,熟练地点下续费按钮,结果弹窗没出现,按钮是灰色的,无法点击。我还以为是浏览器卡了,刷新、退出重登,依旧如此。点开人工客服窗口一问才知道,这台主机当初扩容过10GB硬盘,导致无法享受99元的特殊续费优惠。原来这种特价机的特殊待遇是有严格前置条件的,只要变更过配置,就失去了特殊续费的资格。想要继续享受优惠,唯一的办法就是将当前实例释放,用新的名额重新购买。

释放实例这四个字听起来轻松,但对一个搭建了博客、绑定了域名的服务器来说,数据怎么办、配置怎么办、IP地址变了怎么办都是问题。客服告诉我可以通过弹性网卡功能保留IP,在释放实例时将主网卡设置为不随实例释放,这样私网IPv4地址就能被保留。结果我在操作界面找了半天,才发现主网卡的保留功能目前仅在北京、上海、杭州等部分地域开放,我实例所在区并不支持。折腾了半个多小时,我放弃了IP无损迁移的计划,老老实实接受换新IP的命运。

既然IP保不住,那就得保证数据100%迁移成功。这里阿里云的镜像功能确实好用,在释放实例前,我先为老主机创建了一个自定义镜像,将系统盘的环境和数据打了个包。镜像创建完成后发现老主机在华东1上海,而新购的优惠机活动区通常在北京或张家口,镜像跨区域了怎么办?研究功能面板发现了复制镜像功能,可以将上海区域的镜像一键复制到北京区域,整个过程大概十分钟,在北京的镜像列表里就躺着我从上海搬运过来的那份数据备份。

镜像在手操作就顺畅多了,先释放老主机,释放后果然在活动页面看到了重新出现的99元购买入口,果断在北京区域下单。因为之前扩容过,镜像还原的时候也要一样尺寸的硬盘,所以再次点击续费将新机也延长一年使用时间,顺手又把数据盘扩容到了原来的大小。新机创建好后,在实例详情页选择更换操作系统、使用自定义镜像,选中从上海复制过来的那份镜像,等待几分钟系统盘被镜像数据完全覆盖,熟悉的宝塔面板、网站文件、数据库内容一个不少地回来了。

系统虽然回来了但网络不通,新机器的安全组是全新的,默认只开放了22端口和3389端口。手动添加入方向规则开放宝塔默认的8888端口,以及网站用的80和443端口,直接把原来实例的安全组规则截图对比着配了一遍。CDN和域名解析也要大调整,我一直用的是又拍云,登录又拍云控制台找到对应的服务,将回源IP从老IP修改为新IP。为了省事在域名DNS解析控制台添加了一条泛域名的A记录指向新主机IP,实现所有子域名的快速生效。备案信息更新是最容易被忽略的,登录工信部备案管理系统找到对应的网站备案信息,点击变更接入将主机IP地址更新为新的IP,如果不更新一旦被机房扫描到IP与备案不一致有被注销备案的风险。

中间其实我还动过换平台的念头,顺手申请了一台腾讯云的主机,也是99元的活动价。本来想着如果能直接迁移过去也不错,结果发现搭建web服务需要备案,要把阿里云的备案迁移过去实在是太麻烦了,折腾了一圈想想还是算了,就放弃了。不过既然机器已经申请了,闲置着也可惜,就在这台腾讯云主机上搭了个OpenClow服务,体验了一下最近比较热门的东西,也算是没白折腾这一趟。

看着博客首页重新加载出来,长舒一口气。这次续费风波算是告一段落。
记录于此,希望对遇到同样问题的朋友有所帮助。

听歌史诗级

作者 ACEVS
2026年3月9日 09:07

昨晚睡觉前,看了一下步数不到3000步,虽然滑板玩的满头大汗,运动的时候觉得热,停下来觉得冷。
晚上去吃盒饭自助,发现价格上调了。成人由15--18元。儿童由10-12,取消了团购,直接门店结账。
用餐时候听了几首老歌,回家插上那个用了20多年的音箱。换过那个胶圈。从fade开始,听了几首,然后看到 一个推荐,标题,史诗级 晴天 AI生成的,感觉效果不错,又听了史诗级的让我们荡起双桨,还有烟花易冷,等,然后 又听了AI苏联版本的 晴天等,弹舌音,也有,口音也有,感觉挺有意思。之前听用孙燕姿的口音唱周杰伦的歌。在之前一个人演绎十几个歌手的歌片段,也是挺好玩的。
就这样听了一个半小时的歌曲,大概20-30首歌,有的歌听了至少两遍,不同风格的。因为坐在马扎看歌词听歌,站起来,腰疼。

稻草人周刊 Vol.71

2026年3月9日 00:03
Voicenotes music cover

Voicenotes

Charlie Puth

《Voicenotes》是 Charlie Puth 的第二张录音室专辑,2018 年的热单《Attention》就出自这张专辑。最近在找几年前的专辑来听,走路和跑步时常听这一张。我很喜欢 Charlie Puth 的风格,不过我缺乏基本的乐理知识,不知道从何说起了。这张专辑里我最喜欢的歌曲其实是第一首《The Way I Am》。

I’ma tell ’em all

I’ma tell ’em all that you could either hate me or love me

But that’s just the way I am

顺带一提,Charlie Puth 的下一张专辑《Whatever’s Clever》在本月底就要发行了。我想在这里引用 Taylor Swift 歌曲里的一句歌词:

Charlie Puth should be a bigger artist。1

就这样,继续看周刊吧。如果不麻烦的话,还请留意这一期的「当下」栏目。


连接

程序员如何沟通?

📜

NetNewsWire (macOS 和 iOS 上的自由且开源的 RSS 阅读器)的开发者 Brent Simmons 尝试向亲友解释他的工作,我很喜欢文中的某些句子:

I know I’m a big nerd and what I do must seem all super nerdy and vague.
我知道我是个大书呆子,我做的事情一定看起来超级书呆子,让人看不明白。

My blog inessential.com (this site) has been going since 1999. I mostly write about Apple nerd stuff. Other Apple nerds read it.
我的博客 inessential.com(这个网站)从 1999 年就开始写了。我主要写 Apple 书呆子相关的东西。其他的 Apple 书呆子会读。

In the Apple nerd world I’m the NetNewsWire guy.
在 Apple 书呆子们的世界里我就是 NetNewsWire 哥。

So I’m a nerd and a computer programmer. But what I am not is a math nerd… I’m usually the worst person at math in any room I’m in. Shock, I know!
对,我是个书呆子,是个程序员。但我绝对不是数学书呆子…… 我在任何地方通常都是那个数学最差的人。令人震惊,对吧!?

好了,对 nerd 这个词的滥用我们看够了。读完之后我突然觉得 Brent 变得很亲切,因为我和他一样,数学非常差劲!虽然有些难以启齿,但仔细想想也没什么好隐瞒的:我的高考数学成绩只有 68 分!Brent 说他没有大学毕业,但就算毕业了,也会得到英语学位,而不是数学学位。

似乎全世界都有这样的误解:程序员一定数学很好,要学编程一定要先学好数学。我记得我的初中老师就问过我:“你学这个编程,难道不需要把数学学好吗?”

他关于软件开发的观点我很喜欢,他认为编程的重点不是数学,而是沟通。首先是程序员和机器的沟通,更重要地,如果你在开发一个 App,也要考虑如何设计软件,让软件更好地和用户沟通。我在学软件工程相关的课程,例如需求工程、软件项目管理和架构设计的时候,也逐渐意识到,软件开发中最重要的过程从来不是写代码,而是沟通。架构设计是一种沟通、需求获取是一种沟通,更别提开发团队内部的沟通和与用户的沟通了——这也是我不担心程序员会被 LLM 取代的原因。

Like any other popular art form, it’s about connecting with humans.
就和其他流行的艺术形式一样,重点在于和人的链接。

我想我比起后端更喜欢前端开发的原因也是如此,前端与用户的链接感会更强。不过从技术上,我还是不太喜欢 JavaScript 生态。记得去年还有过学 Swift 做苹果开发的想法,兴许最近也可以捡起来了,先等水逆过去吧。

擦马桶如何帮我维持学者风范?

📻

听这期博客的前几天才刷过马桶,亮到能反光。于是我一边把洗手间的各个角落刷了一遍,一边把这期播客听了两遍。我最喜欢的句子是:

在网上喷粪不如在现实中擦粪。

树老师说他不焦虑、不想死,是因为每天都要做家务,没空想东想西。整天坐在电脑前从事思考工作的人容易产生这样一种假象,认为一切都在控制当中,然而当生活中的小事出了差错,这种差错很容易降他们击垮,陷入崩溃当中。我也赞同,在网络世界、精神世界、知识世界中待久了,需要关注现实,而且是与自己有着直接关联的现实,而非别人的生活、海另一边的战争、某个无聊的家伙对自己的谩骂。

刚打开这期播客没多久,我就做了一个决定。我找到我的室友,告诉他以后的家务都由我来做。这里要交代一个背景:先前我们是按照时间来划分家务职责的,一个人负责一天,但他老是忘记,我也常因为各种小事跳过自己做家务的那一天;最近改成了按照事务划分,每个人负责一部分,当时厕所划分给了我,与是我立马把马桶擦得锃亮给他打了个样,可惜激励效果欠佳。某天我看不下去,自己动手吸尘拖地(这本该是他负责的工作)。于是我想,比起每天阴湿地暗暗谩骂对方不好好做家务,不如自己把活儿全干了。我告诉他接下来的家务我全包了之后,他还有些尴尬地回应说自己最近太忙了。

我最近也没闲着,野心勃勃地同时推进着两个个人项目,学校那边也有各种琐事,辅导员和某些老师也在推着我做职业规划,焦虑是难免的。正是因此,我才开始比以往更加频繁、细致地做家务,把自己的大脑从想东想西的状态拉出来,开始关注身体、生活环境和秩序。

所以,读者有没有什么瓷砖和木地板的清洁剂推荐呢?

亚当·斯密如何颠覆古典美德?

📻

赵老师的讲话方式指定跟树老师学了不少。

播客前半部分阐述了亚当·斯密(《国富论》的作者,现代经济学之父)的生平和轶闻,后半部分进入正题,讲述亚当·斯密眼中现代社会应有的美德,与古典美德有何不同,以及他对于古典美德的观点。

美德在拉丁语中写作 virtus,也就是如今英语里的 virtue,这个词的词根 vir 意思是「男人」,拉丁语中美德的本意是 manliness,可以译作「男子气概」。古希腊语中的美德 ἀρετή 也是类似的意思。谈到古典美德,一般会说到柏拉图的四个枢德,即节制、审慎、勇气和正义2,其中勇气是最重要的。相对的,温柔等特质在古典语境下通常与女性联系起来。简单来说,在古希腊人和古罗马人看来,最勇猛的战士就是最具美德的人。

亚当·斯密认为,古典美德所强调的男子气概是野蛮的、原始的、落后的,现代社会所需要的美德应该是具有同理心(sympathy)的美德,即设身处地为他人着想。在古典美德中,美德有高低贵贱之分,而且往往是生来就具有或者没有的,比如贵族的美德就要比奴隶的美德更高;而亚当·斯密认为的美德是人人都能够获得的,是在社会交往中通过反思获得的。简单来说,亚当·斯密的美德是一种更温顺的美德,如果说古典美德实际上是男人的美德,那么亚当·斯密的美德就更接近女人的美德。不过,亚当·斯密所言的同理心其实和大多数人理解的意思也有差异,比如,他认为和商贩交易也是同理心的体现,因为顾客设身处地为对方着想,提供了对方所需要的东西;再比如,他认为富人和快乐的人更容易引发同理心,而不是穷人和悲伤的人。

对于这两种美德,也可以联系到第 42 期周刊引用的 古典审美与现代审丑 。在我看来,古典美德在如今的视角下更接近于自我要求,而强调同理心的现代美德更接近于社会要求。个体可以要求自身节制,比如节制饮食,但在社会层面,应该对肥胖者有同理心,不去责备他们缺乏节制的美德。3

锻炼是为了什么?

📻

树老师在这期运动闲聊播客里分享了她母亲的锻炼心态,她认为她母亲的心态要比她自己和许多年轻人都健康不少。她的母亲在过去的几十年人生里都没有任何运动习惯,直到年过五十,发现身体正在明显地衰老、恶化,才开始为了维持生命而运动。她锻炼的目的是为了对抗衰老和掌控身体,是为了锻炼神经系统调动身体部位的能力,每天能动起来她就很快乐了。

对比另一种锻炼心态,追求进步、对比和竞争的锻炼,「快乐老女人」的锻炼心态要更健康。前者容易陷入这样的窘境:一旦做不到进步,或者进步不够明显,锻炼的乐趣和动力就会大大减少;一旦有了对比,锻炼的目的就不再是满足自己身体的需求,而是为了迎合别人的审视;一旦有了竞争,人就会感到焦虑。这种锻炼心态甚至成为了门槛,让没有锻炼习惯的人认为,自己要是没有运动天赋,就不该开始运动。实际上,每天都让自己动起来这个事实本身就值得骄傲,就像自己又活了一天一样值得庆祝。

关于锻炼的目的,我的观点可以引用 Steven Pressfield 的《 一生之敌 》中的一句话来阐释:除了爱,出于任何其他原因而从事艺术创作,都是卖淫。 把这句话的「从事艺术创作」换成「锻炼」,就是我的观点,而且我觉得这句话用在「身体」相关的话题上,显得更有说服力。

锻炼是为了保证身体的机能,提升神经适应性,保证自己的身体能做到它应该做到的事情。简单来说,是为了健康,而对健康的追求就是对生命的热爱——我那个经常跑健身房,买五花八门运动补剂,没事就对着镜子拗造型的室友,还对我这个目的颇有微词。 我向来很欣赏热爱力量训练并关注身体变化的人,不过我欣赏的是能从训练和身体变化本身得到满足的人。

更准确地说,我欣赏所有好好为自己和自己热爱的事情活着的人,在我看来,这才是生命力的体现,而生命本身就是意义。

星群

GRAM

Zed 的分支,托管在 Codeberg 上,移除了服务条款和 AI 功能,是纯粹的自由软件,也是纯粹的编辑器。Zed 和 GRAM 是用 Rust 语言编写的 VS Code 替代品,换用 Neovim 之前我一直在使用 Zed,至少在 macOS 上启动速度很快,界面也很干净,是我很喜欢的用户界面风格。

不过 Zed 并不是纯粹的自由软件,因为它有 服务条款 ,还有付费的 AI 功能,是开源的商业软件。最近 Hacker News 上还有有关 Zed 的小 讨论 ,因为 Zed 在服务条款里增加了年龄要求,不过并不是威胁隐私的年龄「验证」,相关内容见 我的帖文 。尽管本体是 GPL 协议,但项目的 README 下赫然写着:

Zed is developed by Zed Industries, Inc., a for-profit company.

那就不能指望挣钱的企业抛弃讨厌的 AI 功能了。GPL 协议的好处就是自由,可以随意更改和分发软件,于是一个移除了服务条款和 AI 功能的 Zed 编辑器就诞生了!也不知道我这个 Neovim 用户在激动什么。

如果你在找 VS Code 替代品4,GRAM 值得一试。

访问: GRAMCodeberg 仓库

blogtato

用 Rust 编写,基于命令行的 RSS 阅读器,无需订阅,本地优先,而且支持使用 Git 同步数据。不过说是阅读器,其实更像是 RSS 更新提示器。这对我来说更好,我一直不太喜欢直接在 NetNewsWire 里阅读文章,更喜欢到源网站上阅读。

blogtato 的操作很简单:

# 添加 RSS/Atom 源,blogtato 会自动搜寻订阅源的具体地址
blog feed add https://www.geedea.pro/

# 同步更新,除非执行这个命令,否则 blogtato 不会发送网络请求
# 也不会占用除存除外的任何系统资源
blog sync

# 查看更新
blog

# 在默认浏览器打开编号为 x 的文章
blog x open

还提供了一些好用的筛选和分组功能:

# 按日期、周或订阅源分组
blog /d
blog /w
blog /f

# 合并分组
blog /d /f

# 按照订阅源筛选
blog @hn

# 按照阅读状态筛选
blog .unread
blog .read
blog .all

# 按时间筛选
blog 1w..
blog 3m..1m
blog /d 2w..1w

# 合并筛选和分组
blog @hn .unread /d

blogtato 原生支持 Git 同步,采用无冲突的设计,同步数据时无需担忧 Git 冲突,数据全部以 JSONL5 存储在本地。

我很喜欢 blogtato 的设计理念,我一两个月前也有用命令行做一个 RSS 阅读器或者书签管理器的想法,但一直没有去实现,没想到这几天就在 Hacker News 上看到有人做出来了。可惜目前还不支持导入和导出 OPML 格式,于是我跟作者提了 Issue ,很快收到了回复。对方表示写一个 Shell 脚本导入也不难(毕竟是命令行工具),但其实项目里已经有解析 XML 的依赖项了,所以作为 blogtato 本身的功能加上也没有什么成本,他说他会看看。很期待更新!

我前几天还在联邦宇宙上吐槽,有了 AeroSpaceVimium 插件之后,我的日常操作都可以用 Vim 键位完成,可惜每次查看 RSS 更新的时候,都苦于 NetNewsWire 不支持用 jk 上下移动。blogtato 至少能保证我的手不用离开键盘。

访问: kantord/blogtato

当下

不出意外的话,这应该是《稻草人周刊》里最后一次出现「当下」这个栏目,原因是我正在计划每月更新的新闻报,也就是「Newsletter」,名字暂时还没有定下来。新闻报中计划包含这些内容:

  1. 过去一个月里,自认为写得不错的博客文章(其实《稻草人周刊》也有「回拨」这个栏目,原本打算每个月写一次,但总是忘记,干脆放到月刊里)
  2. 正在进行或已经完成的项目,情况以及进度回报(我对「项目」的定义很广泛,一般来说是软件项目,也可以是目标明确且耗时较长的大任务,比如「把家里的所有塑料制品都替换掉」)
  3. 书影音游回顾,包含这个月看的剧、写过的书评合集和完整听过的专辑等(也希望能借此治好我的电子阳痿吧)

这意味着《稻草人周刊》会更关注于分享我每周读到的有趣文章、听过的觉得有启发的播客、发现的觉得不错的项目。如果你关心我最近做了什么事情,可以等待新的月刊,预计会在四月初发布第一期;或者,你可以在 联邦宇宙 上关注我,可以用 Mastodon、Misskey、Pleroma 等联邦宇宙软件与我社交。

切片

  • 状态低迷、注意力涣散和效率低下的状态持续挺久了,春节结束回到家也不见好转,遂求助玄学,盘了半天月运势和周运势也没看出个名堂,直到突然被提醒天象:从二月底开始水星逆行了,直到三月 20 日结束。

    水逆啊,那不稀奇了,放心躺吧。

    双子座加月升处女已经被水逆折磨习惯了

  • 夜里睡不着,爬起来看手机,很奇怪,根据我的经验,刷信息流实际上能让我更容易入睡,因为大脑会很快感到疲惫。疲惫之前,看到了 Minecraft 26.1 版本的更新,给所有生物都增加了幼年形态,很可爱。

    还有史诗级的更新,命名牌可以用纸和铁粒(以及金粒和铜粒)合成了!钓鱼和开箱子找命名牌的时代结束了!虽然是很好的更新,但总觉得有些失落——原来现在 Minecraft 里的命名牌已经不是稀奇的事物了啊。

    有些怀念以前的游戏时光,好久没有畅快地和朋友玩一下午 Minecraft 或者饥荒了。想拉拢几个人来,搭一个 Minecraft 服务器,也不知道能不能找到人,或者说自己能不能抽出时间。

    周刊的最后,给各位看看我几年前自己画的 Minecraft 皮肤吧。

    原来那个时候我就开始用考拉当身份标识了吗?

    除了 Vanila 和 Migrator,其他披风我都不知道怎么来的


  1. 出自《The Tortured Poets’ Department》 ↩︎

  2. 参见: 美德 - Wikipedia  ↩︎

  3. 相关博客文章:《 关于肥胖的杂谈 》 ↩︎

  4. 是时候抛弃这个基于 Electron 的软件,停止用浏览器编辑代码了 ↩︎

  5. JSONL 是 JSON Lines 的意思,是每行都是一个有效的 JSON 对象的存储格式,可以理解为把一个 JSON 数组写入文件,但是没有前后的 []。 ↩︎

极客死亡计划书 V

2026年3月8日 20:27

在周末打开终端,cd 进极客死亡计划的项目目录,然后打开 Neovim 开始在自己的代码里到处晃悠,删删改改,对我而言是很放松的体验。我时常在浏览器里注意到某个网页元素,回忆起源代码的位置,立马打开编辑器看看有没有需要去毛球(lint)的地方。这种感觉,其实很像是园丁在自己的花园里闲逛,做些简单的修枝剪叶吧?

总之,某个寻常的周末,我冲了一杯非常好喝的瑰夏,在书桌前坐下,开始在代码之间漫游,发觉修枝剪叶的工作都做完了,此时,一个积压在脑后已久的想法突然涌现。我拿起铲子,盯着其中两个花圃,兴致勃勃地说道:“好,那就开始铲土,重新想象园林设计吧!”——这两个花圃就是 前不久 才被移植过的「议论」和「散文」。是的,我把他们又合并了。


用词说明

为了避免误解,我们先理清一些术语。

下文的「分区」指 Hugo 的 section ,也就是顶层的内容目录,比如 /posts 下有 /posts/xxx/post/yyy 等页面,这个 /posts 就是一个分区。

「分类」是指 Hugo 的 taxonomy ,本站有两种分类,一是「 文章系列 」,二是「 标签 」。不过,出于一些历史原因(其实就是我懒得改),「文章系列」这个分类的代码写作 categories,本意是分类。


命途多舛的极客死亡大地

最初,极客死亡计划上只有一个内容分区,即 /posts 分区,所有的文章都放在这下面,其他的页面是如 /about/linkroll 这样的顶层页面。那是段纯真简单的时光,直到某个名叫 Eltrac 的疯子突然决定要把自己写的垃圾小说都搬过来,于是网站上就多了一个 /fictions 分区。

骇人听闻的事件没有停止,这个疯子决定要给自己读过的每一本书在网站上留一个位置。他先对 稻草人 下了手,心狠手辣地把「书评」分区从周刊手里夺走了,把那些残缺的短评放进了他引以为傲的、单独的 Markdown 文件里,大喊着「原子性!」「双向链接!」的口号,使用名为短代码的邪恶武器将书评嵌入了稻草人的身体里,随后又在他飘忽不定的思绪影响下,把那短代码从整个奥兹国代码库里剥去。由于操作习惯拙劣,Git 历史的可读性极低,他的罪行也就没有留下证据,那些被他摧残的文件都改了名,或者进了垃圾桶,连 git blame 的机会都没有!

简而言之,极客死亡计划又多了一个 /library 分区,纯真简单的小骷髅就这么被知识玷污了,眼神里失去了光!

这便是「议叙文大分裂事变」的历史背景,在那之后,Eltrac 短暂地休息了一会儿,可没过多久,他便又舞起键盘,对网站历史最悠久的古迹下了狠手。一向忠心耿耿 /posts 分区被他无情地斩成两半,有超过半数的页面作为 /essays 分区的新臣民被分离了出去,就这样背井离乡。大魔头对此的辩解是:

你也可以理解为,我把文章分成了 T 和 F 两部分(仔细想想,其实更像是 J 和 P 的两部分,判断和感知的区分)。做这个拆分是因为,我发现自己的 T 和 F 可能会在某个时间段宕机其中一个,把这个分开能让我更安心地在情绪崩溃时发疯、在好奇心超负荷运转时写一写没人关心的新话题。

——《 稻草人周刊 Vol.57

何其可悲!何其可悲!仅仅是因为他自己沉迷于愚蠢的大众心理学理论(MBTI),就祸害了全体网站公民的身心健康!更不用说,此举损人不利己,如今大魔头每次在写作时,都会纠结要把他拙劣的文字放在哪边,/essays/posts 说起来有别,但实际上本是同源,都是他那扭曲头脑不能停止转动的产物。不过,我们也不要太苛责这个敌人,毕竟他自己也尝到了苦头,那便是永远不能停止分类和修整的痛苦,如西西弗斯一般永世不能停下!别听那个叫加缪的老头儿乱说,天天推石头可不幸福!

终于,感谢上天的宽恕,误入迷途的魔头 Eltrac 得到了分类之神 cartlE 的指点。cartlE 刚莅临网站,就立刻发觉稻草人不应与 /posts 的子民待在一起。看着 Eltrac 在代码里给稻草人周刊写下的各种特例,神明 cartlE 皱起了眉头,发出疑问:“你是在解鸡兔同笼问题吗?把鸡放鸡笼里,兔放兔笼里不行吗?”

于是,/posts/weekly 从极客死亡计划的土地上消失了,取而代之的,是新成立的 /weekly。天下苦稻草人周刊久矣!为了恕罪,也向 cartlE 神明展示自己的悔意,Eltrac 立马给稻草人修好了 黄砖路 ,供他自由通行。

很快,高明的 cartlE 发现了 /posts/essays 之间的裂谷,便命信息与沟通之神墨丘利去唤来双子座,让它用蟒蛇架起桥梁,把两块大陆合二为一了。终于,失散已久的家人又重聚了,现在 /posts/essays 不再分裂,他们有了共同的新名字——/article。墨丘利还提议,尽管两个大陆合二为一,但旧的居民仍然保留旧的地址,避免书信不能送达,尤其是来自联邦宇宙和万维网提及的消息。1新的居民以 /article/xxx 为地址,而旧的居民仍然保留 /essays/xxx/posts/xxx 的地址。

为了展示自己真的回心转意,大魔王 Eltrac 主动提出,应该把 /fictions 分区更名为 /fiction,因为目前的其他分区分别是 /article /weekly/library,只留一个复数形式的名字有些眨眼。神明 cartlE 听完,满意地离去了,并留下秘籍供 Eltrac 学习良好 Git commit 习惯的艺术。

就这样,暮光闪闪和他的小伙伴们终于让混沌之王无序痛改前非,懂得了友谊的魔力,小马国又恢复到了祥和之中。

等等,你串台到哪儿去了?

ESC to Reality

我的天哪,究竟是什么样的读者才能读懂上面那一大坨自我意识过剩的产物……

让我按下 Escape 键(指切换为 Neovim 的 NORMAL MODE,正常模式),来认真解释一下极客死亡计划目前的内容分类设计。

首先,博客目前只有四个分区:

  1. 文章 :一般来说,我突然想写点什么东西发出来,都会放在这。
  2. 周刊 :每周一更新的刊物,包含这周读到的有趣的文章、听到的播客和发现的不错的项目等等,是我整理和收集信息的地方。
  3. 书目 :我读完一本书都会写书评放在这里。
  4. 虚构 :我写的各类小说。

其他分区几乎都是不言自明的,只有「文章」需要特别说明。正如《命途多舛的极客死亡大地》一节中所述,这个分区原本是 /posts,一开始被称作「议叙」页面,因为它既包含议论文,又包含叙事文和散文。后来,我觉得这两种文体或许需要分开,于是新增了一个 /essays 分区,把议论文都放到这里来。

其实在一开始创建 /essays 分区的时候,我就发现了问题,我很难判断一篇文章的归属,我记得当时我花了一个下午的时间给文章重新分区。这种分区在后来又造就了更多的问题,比如:同一个「文章系列」应不应包含来自两个分区的内容?我有一个文章系列叫《代码炼金术》,这里面可能包含我尝试新技术的经历和感受,重点在于「我做了什么」,写得比较散,应该归为 /posts;而有的时候,我可能发现了一种新的构建软件的方式,比如 用 Lisp 而不是 HTML 写网页 ,这种有深思熟虑且形成可复用的体系的文章,似乎应该归为 /essays。可是,它们都是和写代码相关的,不应该都放到《代码炼金术》这个文章系列里吗?如果一个文章系列里既有议论文,又有记叙文,那不是乱套了吗?

就算不考虑文章系列,确定一篇文章属于 /posts 还是 /essays 也不容易。前者是写「我做了什么」,后者是写「我思考并的出了什么」,实际上有相当一部分文章的写作逻辑是「我做了一件事情,并且借此有了新的思考,产生了新的想法」,那这还要怎么分区?

从盒子里跳出来想问题:给议论文和记叙文分区真的是有必要的吗?

最后我接受了自己的风格就是叙中有议、议中有叙的,于是把两个分区合并到了一起。不过周刊里的东西实在是太杂了,给它单独设立分区会更合理。

Tag, You’re It

你可能会以为,这个前不久还重新装修过 标签文章系列 页面的 Eltrac,又要阴晴不定地把标签和文章系列的其中一个分类给扬掉了,毕竟已经有分区了,再算上这两个分类,网站实际上有三个维度的分类,这太复杂了!

当然,看到「你可能会以为」几个字就知道,我不会这么干。

保留文章系列其实很好理解,保留标签是为了什么?

之前在 Jim Nielsen 的博客上读到过这样的观点:你不需要创建标签,链接就是标签。这里的链接是指在文章中链接到的其他文章,文章之间相互引用所形成的关联,就足够让文章物以类聚了,不需要手动打标签,做额外的分类。这的确是很诱人的想法,所以我给博客做了 视觉化的双向链接图谱 ,然后就把「用链接替代标签」这事抛之脑后了。

不移除标签,首当其中的原因就是,双向链接图谱虽然很酷,但是不方便查询。如果真的要找我写的有关某一主题的文章,到像海一样的双链图谱里去找是低效的,这些文章之间也不一定有超链接关联。

再者,我的博客也不是维基百科。据说从维基百科的某个页面开始,一直点击页面中的第一个超链接前往不同的页面,最终会到达「哲学」这个词条。我添加超链接的习惯不如维基百科编辑者那样专业、审慎和克制,没法做到这么严谨的关联,说实话,也不需要这样严谨。

不过,要说最重要的原因,那还是因为我想要按照主题划分文章。我是个兴趣泛滥者,如果你关注我的博客足够长的时间,就会发现我既谈游戏开发,又谈前端开发,还做命令行工具;我不仅写计算机,还常常观察人类,并写下思考;我不仅对社会学、心理学和经济学这些科学感兴趣,还对文学、哲学和语言学感兴趣,我甚至还探索神秘学,会研究占星和塔罗牌;即便是文学这一个类别,我也会涉猎法国文学、拉美文学、日本推理文学和各种杂七杂八的门类。

五花八门的内容要是不按照主题分类,恐怕读者难以把握脉络,也难以找到自己真正感兴趣的内容。假设一个读者只是因为神秘学而关注我,他就可以去阅读 #神秘学 标签下的内容。标签实际上提供了内容的切片。

此外,并不止是文章,在我的设想里,网站的所有内容都通过标签来归类,而文章系列只是给文章的。如果你打开网站的标签页来看过,就可能发现 #心理学 这个标签下不仅有我写的文章,还有《 被讨厌的勇气 》《 天生不同 》《 如何在黑暗的房间里找到一只猫 》等书籍的书评,实际上小说和周刊也按照标签归类。

网站页面,列出了同一个标签下的所有内容,包括普通的文章、周刊、小说和书籍,这些内容是分开罗列的

#内阻力 标签页的截图,截于 2026 年 3 月 8 日

不过,现实有些残酷,从 GoatCounter 的统计数据来看,几乎就没有访客会点开任何一个标签页面,我设想中的「读者可以按照自己感兴趣的话题查看内容」这个需求用例实际上根本不存在。对我自己而已,我也很少在某天突发奇想「要不要看看自己写过什么和占星有关的文章呢?」,然后点开标签页面查看,对我自己的用处也不大。

所以,为什么要留着标签这个东西呢?管理标签费事费力,为了打标签,每次都要先查看已有的标签,用人眼浏览一遍,看看有没有能对得上的;还要克制住自己新增标签的欲望,避免出现太多只有一两篇文章的孤立标签;更麻烦的是,还要记住各个标签的语义,不能混用。标签也很难体现出层级关系,却在很多场景下不能避免进行细分,比如博客就同时存在「神秘学」「占星」和「塔罗」三个标签,而第一个标签实际上是后两个标签的大类——能不能合并成一个呢?它们真的经常出现。然而,有时候我只是广泛地谈一谈神秘学,比如《 好为人师如何帮我反思现代科学的局限性? 》这篇文章,仅仅是在论述「适当的玄学和迷信为什么是有用的,甚至能达到理性的科学知识达不到的效果」这个观点;有时候,我又是在具体地谈 塔罗牌里某张牌的含义 ,这就没必要打上更宽泛的「神秘学」标签了。2

无论以上这些问题的答案如何,都不能发现,标签的存在本身就引发了许多管理难题,而它带来的实际价值却非常少。很明显,我应该把它删掉。

可我偏不。

为什么?答案其实相当不理性,但也相当具有说服力:我不想把它删掉。我想我可能是喜欢标签体系带来的秩序感,也需要建立和维护秩序的感觉。另外,我总觉得,网站的分类就和图书馆一样,大部分找书的人其实都是找到具体书籍的编号之后,直奔书本所在地,但也不能忽视,有很少的一部分人愿意在某个主题的书架附近漫游,发现从未见过的书本。所以,标签可能大多数时候派不上用场,但对我而言,是不能没有的。

最后

所以,这大概就是新的秩序了。

《极客死亡计划书》系列文章的最后,还是要给下一期留个引子。我正在思考博客的交互设计。一两个月前就有关注我的读者可能有印象,以往博客文章的底部有一个「心脏」按钮,将鼠标移上去,显示的文字是「为这篇文章献上心脏」,点击之后,心脏图标会变红,文字会变为「你已经献上心脏了」。这其实是点赞按钮,任何人都可以点击它,让点赞数量增加 1。并且,读者点赞之后,页面的最下方会出现一整排「已经收集到的心脏」,有多少点赞数就有多少心脏。我印象最深的是,有一篇文章的点赞数量超过了 20,当时页面下面非常壮观。

图片最上方是三个按钮,一个评论按钮、Webmention 按钮和「献上心脏」按钮。心脏的数量是 26,页面下方摆满了人体器官。

旧的文章互动区

可惜,「献上心脏」随着 评论系统的移除 一同消失了,一直没有加回来的原因是,我在纠结如何把本身就有些复杂的新交互区设计得更简洁一些,增加元素不太明智。再者,现在博客本身也会同步来自联邦宇宙的点赞,功能上有些重叠。

不过,我想我大概还是会想办法把「献上心脏」加回来的,因为我的确需要一些实在的反馈,不只是访问统计数据。说实话,现在会在联邦宇宙上点赞和留言的读者不算多,至少我很久没看到点赞的数量超过 10 了。尽管,最健康的态度应该是完全不在乎这些数据,只关注和真实的人建立起的链接,但…… 我想我还需要再思考一下。

以前,网站的标签页面还有一个操作按钮,是一只乌鸦,按下之后会隐藏当前页面下的所有「稻草人周刊」。当时这么设计,是因为稻草人周刊混杂在文章分区内,本身的内容又很杂,容易让人抓不住重点,所以提供了一个筛选功能。当时我还费心设计了动画,把鼠标移动到乌鸦头上,页面里的稻草人周刊链接就会闪烁,点击之后这些链接就会收缩起来,直到消失;再次点击按钮,这些链接又会在入场动画之后出现。由于现在周刊是单独的分区了,没有混杂在文章里,这个按钮也就不再需要了。

这些好的改动,似乎磨灭了一些个性,有些不符合我在《 「极客死亡计划」的设计哲学 》里提到的第八项原则。当时举的例子里,还留下的就只有 404 页面和 Batrick3 了。

这些设计的去留和增改的确需要好好思考一下,不过这就是下期的内容了。

回见!


  1. OK,我知道我有点放飞自我了,所以我暂时脱离精神分裂状态来解释一下,这里说的是:我用 Gemini(双子座)生成了一个 Python(蟒蛇)脚本,让它把两个分区合成一个了,之所以提到墨丘利(Mercury),是因为双子座的守护行星是水星(Mercury)。由于 Webmention 依赖 URL 标识源地址和目标地址,如果改了地址,仅仅作重定向是不够的,会导致旧的 Webmention 失效,除非重新发送一遍,所以就用 Python 脚本给每篇文章都添加了 url 属性,这样就算文件放在 /article/xxx.md 下,URL 也还是 /posts/xxx 或者 /essays/xxx。 ↩︎

  2. 不要建议我用大语言模型自动打标签,如果我不能清楚明白每个标签的具体语义,那做分类还有什么意义?为什么要为了支撑一个已经丧失了意义的事物的存在,而浪费大量的算力? ↩︎

  3. 如果你把页面往上滚动,就会看到一直蝙蝠从页面顶部飞下来,它是「返回顶部按钮」。点击它,Batrick 就会带你上去。 ↩︎

这两天的运动

作者 ACEVS
2026年3月8日 16:40

周六早上七点半出发,带着两宝去公园走一圈。
运动感觉挺好,得益于那几天送大宝去学习信息学编程免费课程,我为了到了综合体,之前是往返坐公交车,后来优化,我直接步行到综合体大概2.3公里,然后给大宝一个电话,他放学告诉我公交车车牌号就行,然后我在综合体那站等他就行。之前公交地铁,或者电动车,每天不行感觉不到5000步,步行2.5公里直接就是5000步打底。
公园之前的活动区,这次两宝说要去玩玩,过去一看,设施都换新了,英派斯出品,体彩出资公益项目。所有设施都能正常使用了,地面也铺了涂了蓝色的沥青,增加摩擦力。有的设备替换成了,自行车,太空漫步器,有的名字我也说不上来,动作就是类似深蹲,锻炼肱二头肌的,等等,每个如果 玩一遍锻炼的估计不错。
围棋象棋,之前各一个,现在各两个。围棋的那个改成了单个棋子旋转,有三种颜色,黑白黄,其中黑白是棋子颜色,黄是桌面颜色,这个设计比之前 的移动摆放黑白棋子效果好很多,也多了黑白棋的玩法估计。两宝下一会儿象棋,又下一会儿五子棋,然后感觉挺冷的,就撤了。

今天二宝完成学习任务,就出发去白沙河玩,昨天问二宝今天去哪儿,指定去白沙河比赛,两宝用轮滑鞋,我用滑板。大宝的脚变大了。二宝也是,二宝穿大宝的轮滑鞋,大宝新的鞋没买,不知道最后他的脚多大。他先穿我的轮滑鞋。
出发,二宝一路领先。到达我们之前经常闻桂花香的地方,这次没带水,我们稍作休息,然后又往出发地赶,我回来用地图大概一看,往返五公里左右,我先回家,他们又玩了一个小时左右,打车回家后,发现两宝脚脖都把皮磨掉了。轮滑的时候毫无感觉,回家时候才发现。这多巴胺分泌的可以止痛针剂了。

稻草人周刊 Vol.70

2026年3月2日 00:18
The Dark Side of the Moon music cover

The Dark Side of the Moon

Pink Floyd

这是一张上世纪七十年代发行的摇滚专辑,是 Pink Floyd 乐队发行的第八张录音室专辑,名为《月之暗面》。我最喜欢的一首是 Brain Damage(脑损),不过,我建议你一定要从头到尾把专辑听一遍。专辑不长,只有十首歌,一共四十多分钟。这首 Brain Damage 和下一首 Eclipse(日食)连接非常顺滑,让不仔细听的人觉得是同一首歌,整张专辑都用这样的衔接串联了起来,最后以心跳声结束。

And if the dam breaks open many years too soon
如果大坝早了许多年破裂

And if there is no room upon the hill
如果山丘上已经没有位置

And if your head explodes with dark forebodings, too
如果你的头脑也因不详的预感爆开

I’ll see you on the dark side of the moon
我和你会在月之暗面相见

连接

FLOSS 和 FOSS

📜

FLOSS and FOSS by Richard Stallman

如果你不知道这个作者是谁:他开发了 Emacs 编辑器,还编写了 GNU GPL 开源协议,是自由软件基金会的创始人。

本文解释了 FLOSS 和 FOSS 的区别,以及相关术语的政治倾向。简单来说,自由软件社区有两个政治派别:自由软件运动派(free software movement)和开源派(open-source)——这两个概念完全不一样,不应该混淆。自由软件是指可以自由运行、研究、更改,以及分发未更改或更改后副本的软件。开源的概念是后来(1998 年)出现的,一开始是为了避免人们混淆「Free」的意思(可能会被误以为是「免费软件」),不过开源的意思很快发生了改变,与自由软件运动分道扬镳。许多人把开源当成自由软件的商业概念,好让商业公司对自由软件的实用价值(practical benefits)感兴趣,而忽视了「自由」,很快「开源」就变成了强大、可靠软件的代名词,人们对「自由」的关注减少了。

很不幸,我最初接触到的概念就是「开源」,而非「自由软件」。

既然有两派之分,自然也有中立派。中立派使用「自由和开源软件」这个词,即 FOSS(Free and Open-Source Software)。这个词没能解释「Free」的真正含义,所以有人会使用法语或西语单词「Libre」来准确表达「自由」的意思,继而有了 FLOSS(Free/Libre Open-Source Software)这个词。Richard Stallman 在文中表示,自由软件运动的参与者不会使用 FOSS 或 FLOSS,因为这个词把 Free Software 切分开了,把注意力给了 Open-Source;应该使用 Free Software 或者 Libre Software 这个词。

至于我的态度,抛开别的不谈,如果只用言简意赅的程度来评判,我不得不说,「自由软件」是更好的词。此外,FOSS 和 FLOSS 作为缩略词,理解门槛会更高一些,而且中文里还是尽可能少夹杂英文比较好1

被赋予的自由不是自由

📻

播客从女性主义展开,回顾和分析了现代的人权进程,关于「自由选择的权利」。

播客中重要的观点是:被赋予的自由不是自由。一个思想停留在前现代的老妇人,没有自我意识,明明知道自己的丈夫对她不好,甚至恶语相向,却还要求死后跟丈夫葬在一起,并教育子女成为和他一样的受害者。这类人无疑是可怜的,但没有办法被拯救,即便他们在政治层面拥有了自由,他们也无法真正行使自由,甚者,他们根本不觉得自己是自由的,或者完全不会思考「自由」这个概念。

对于受过现代教育的人而言,自由也不见得总是好事。因为自由太广泛,选择的数目太多,人们获得的不是选择自由,而是选择困难。这种选择困难小到购买家电时陷入纠结,难以找到最好的选项;大到面对分叉的人生道路时,因无法在可能性之间做出选择,而荒废宝贵的时间。自由甚至妨碍了人们好好生活。许多人感到焦虑痛苦,就是因为有着无止尽的选择,每天都在为上一个选择而后悔,为下一个选择而纠结。这么看来,陈腐、老旧的生活方式,由于不需要支付选择自由的代价,反而是轻松的人生。

播客并没有给出解决方案,兴许也不会有适用于所有人的解决方案。争取自由(各种意义上的自由)都是要付出代价的,轻松的做法当然是服从长辈、听信权威、享受大科技公司的产品,把选择的代价外包出去,但别忘了,在「自由」和「轻松」之间选择,也需要拥有选择的自由。

永远不要买 .online 域名

📜

作者在 Namecheap 上买了很便宜的 .online 域名,用来做产品的主页,网站上只放了一些介绍,和 App Store 的链接。某天他发现网站被标记为「危险网站」,整个浏览器页面都是红色的,绕过警告强制打开后,发现无法正常访问网站,状态显示 serverHold。排查后发现 DNS 没有解析,原因是这个域名被列进了「安全浏览黑名单」(Safe Browsing blacklist)。

在邮件联系了注册商和注册局之后,作者得知他必须在谷歌搜索控制台(Google Search Console)验证域名所有权,才能申请重审,但这无法做到,因为验证身份需要更新 DNS 记录,而他的域名因为被列入黑名单而根本没有被解析。

所以,教训就是:不要买看起来很奇怪的 TLD。

蠢货相处会变老得更快

📃

这是一篇科学研究,我只读了摘要部分,所以会有疏漏。

简单来说,负面的社会联系(negative social ties)会加速衰老和增加疾病发病率,其中衰老是通过基于 DNA 甲基的衰老生物钟测量的(DNA methylation-based biological aging clocks)。文中把这种负面的社会联系称作 Hassler(纠缠者),并发现研究中 30% 个体都报告他们的社交网络中,至少有一位 Hassler。Hassler 一般占据社交圈的外围,属于弱连接。女性、烟民、不健康者和有着恶劣的童年经历的人,更容易遇到 Hassler,这形成了规律:在社交层面易受攻击(vulnerable)、在健康层面易受病扰的人更容易遇到 Hassler。所以,我猜,如果要尽可能少遇到这类人,应该要变得足够自信和强大才行。

社交网络中每多一个 Hassler,衰老的速度就会增加 1.5%,大概会变老 9 个月。不同的人影响也不同,亲属和非亲属 Hassler 与健康有着有害的联系,而如果伴侣是 Hassler 的话,则没有。如果 Hassler 数量众多,对健康的影响就不只是变老那么简单。

我最近在使用一个 App 分析我锻炼时的「最大摄氧量」,这个 App 会对比同龄人中的平均数据,并计算出我的身体年龄(当然和研究中使用的方法不一样,软件算法也不能和科学研究相提并论)。春节回到家之后,App 计算得出的我的身体情况明显下滑,并表示我正在快速衰老(Aging Quickly),而我刚回到自己家一天,这个数据就开始慢慢回升了。尽管没有太多科学依据,但我觉得这是我远离了一大群 Hassler 导致的,当然还有睡眠的影响,在老家的时候总是睡不好。

星群

互联网电话册

在一个电话界面拨号,就能接通某个个人网站。Internet Phone Book 是每年发布一次的刊物,收录了各种有趣的个人网站,每个网站都有「电话号码」。我是在 Elle 的主页发现这个网站的,他的互联网电话号码是 677

不过我找了半天,也没有找到提交网站的地方,内容兴许都是创始人亲自挑选和收录的吧。

Intert Phone Book: Dial-a-Site

Internet Phone Book 的拨号页面

访问: Internet Phone Book

SplatHash

一个用户生成模糊图片的哈希算法,与 BlurHash 类似,不同的是,这个算法能给任何图片生成固定 16 字节大小的哈希,也可以表示为 22 个字符的 base64 编码字符串,而且,它的解码速度非常快,占用非常小。目前主要提供 Go 语言、TypeScript 和 Python 实现的程序。

这个算法也有缺点,是我的个人观点:生成出来的模糊图片太丑了。

SplatHash 算法结果与 ThumbHash 和 BlurHash 的对比

访问: junevm/splathash

Stop Tahoe Update

Stop Tahoe Update(停止 Tahoe 更新)是由社区维护的项目,帮助不想更新到 macOS Tahoe 的用户留在 Sequoia 等稳定版本上。目前这个项目提供了 Device Management 的配置文件,通过这个配置文件,用户能够推迟 macOS 更新最长 90 天,具体效果是:

  1. 阻止「今晚安装」和「立即安装」的提示。
  2. 阻止系统设置中「有新版本」的数字提示。
  3. 检测并选择性阻止 macOS 系统应用的安装。

我的 Mac Mini 安装了 Tahoe,但我的主力机 MacBook 还是 Sequoia,我也不打算更新。我时常会收到系统更新提示的骚扰,这个项目帮助很大。顺带一提,我觉得这句话我永远也说不够:macOS Tahoe 毁了 Safari!

访问: travisvn/stop-tahoe-update

当下

平淡无奇的日常

本周是待在老家的最后一周,周末就回家了。回去之前除了每天给弟弟补习英语,偶尔出门闲逛,坐在及其不舒服的桌椅上看剧和玩网,以及读读书和写写代码之后,就没干别的了。

唯一的例外是周二出门和高中同学玩剧本杀,两三年没见面,感觉大家都没怎么变。不过,倒是有不少人惊讶我瘦了好多,还挺爽的。剧本是不用带脑子玩的类型,很俗套的家庭纠葛,结婚、争彩礼嫁妆、离婚、分财产和抚养权…… 不过倒是有很多吵架和演戏的情节,非常戏剧化,玩得还算开心。

我真的是个内向者吗?

在老家的几周,每天都想出门闲逛,但又找不到地方去。回家之后,倒是每天都想在家待着,要逼自己多出门走走,取个快递、倒倒垃圾之类的。在家多快乐,走出书房就可以去吧台给自己冲杯咖啡,冰箱里没有被喜好囤积的老人塞满不知道是什么的冻货,每个地方都是干净整洁的。

就决定是你了,口呆花!

Weepinbell 稳步开发中(指周日的时候突然想起来自己打算用 Clojure 写个 Webmention 接收端,这才 cd 进项目目录)。周中把 Webmention 规范 里有关接收端的部分仔细读了一遍,发现这真的是一项非常简单的技术规范,门槛并不高,只是知名度太少,导致普通用户没有开箱即用的选择。

简单到什么程度呢?大概就是发送端只需要向接收端发送一个 POST 请求(只包含 sourcetarget 两项数据,表单格式,不用 JSON),而接收端也只需要处理这一个 POST 请求,检查一下 URL 是否合法、有没有自己引用自己的情况、爬一下 source 看看是不是真的引用了 target。除了规范要求 Webmention 验证应该异步进行之外,就没有太多其他的技术规范了,收到 Webmention 之后要怎么存储、怎么展示、作何处理,都是接收端自己决定。

用 Clojure 编写 Web 应用的体验也很好,可以直接偷 Java 生态的库来用(比如,我验证 URL 的时候就用到了 apache.commons.validator,提取域名的时候用到了 java.net)。由于需要异步编程,还研究了一下 clojure.core.async 库,发现 Cloure 竟然支持和 Go 语言类似的并发模型,有 gochan,没想到偷完 Java 生态,还能偷 Go 的异步编程最佳实践来用,而且能复用编写 Java 和 Go 两门语言的程序的经验,真的很舒服了。

处理 Webmention 很显然需要一个消息队列:把所有待处理的 Webmention 都放在一个 channel 里(在 Go 语言里是c := make(chan type),在 Clojure 里是 (def c (chan))),然后启动一个或多个 goroutinechannel 里取出 Webmention 对象,爬取 source 验证是否包含引用,确认无误之后存入数据库,这些都可以轻松地异步执行。不过 Clojure 里应该是没有 goroutine 这个东西了,不知道底层是不是 Java 那臃肿的 Thread。无论如何,能够直接写 (go ...) 进行并发就已经很好了。

至于存储,我还在思考选用什么数据库。尽管在部署应用时常用 SQLite,但开发时我只用过 MySQL 和 MariaDB。我想,这正好是尝试新技术的机会,而且 Webmention 相互没有关联,数据结构并不复杂,兴许用 NoSQL(非关系型数据库)很合适,正好可以试试 MongoDB。另外的选择是用 SQLite 存储 JSON 数据,或者直接把所有 Webmention 都放在一个 JSON 文件里。这些都是下周要去做的事情了。

最后解释一下为什么项目名字叫 Weepinbell 吧。因为不想起名字,又受 Repokemon 启发,决定选一个宝可梦的名字。一开始想取 Web(网络/蜘蛛网)的意思,选个配色和 Clojure 的蓝绿色调相似的宝可梦,所以看上了滴蛛(Dewpider)。不过本人很讨厌蜘蛛,而且 mention 这个词也完全没体现出来。最后翻来翻去,选择了口呆花(Weepinbell)的名字。因为前两个字母 We 和 Webmention 的前两个字母相同,而后面的 bell 一词意为「铃铛」,可以表示「通知」,而 Webmention 本身的用途就是通知,通知作者他的内容被另一个站点上的内容引用了。

切片

  • “哈!你用浏览器编辑文本。” —— NeoVim 的主要贡献者 TJ DeVries 在 2024 年 VimConf 劝告 (Neo)Vim 用户们不要用这种话说服别人使用 (Neo)Vim。

    可是,VS Code(以及 Cursor 等 VS Code 分支)就是浏览器啊!

    逃离现场。

  • 看到日本网站丑丑的设计反而觉得有点喜欢,大概是因为喜欢多样性,扁平、单色、冷静、克制的设计看太多了,不免有些乏味。( 相关链接 )最近在 IndieWeb 上闲逛的时候,也看到了一些不太主流的设计,我想这是个性的体现,比在主题商店找到的好看模板更吸引人。

  • 想把旧电脑的硬盘拆下来做成移动硬盘,硬盘盒已经买好了,结果我拆电脑的时候被父亲撞见。

    他:电脑留给我用,硬盘我给你买一个。

    我:啊?现在硬盘贵得很……

    他:没事,要好多钱你给我说嘛。

    于是我现在有了一个 2TB 大小的移动 SSD,目前用来备份 iCloud、S3 储存桶和服务器,兴许还会存点音乐和剧什么的吧。感觉可以做一个末日2生存包,存一些音乐和《老友记》全集,应该能维持很长一段时间的 san 值健康。

  • 又买了管道疏通剂,尝试疏通浴室的地漏。用完一整瓶疏通剂之后才发现,水排得慢并不是因为管道堵塞,而是滤网的设计缺陷。说是设计缺陷毫不夸张,因为那个金属滤网上有一个类似盖子的结构,会在安装上之后挡住排水口,只留下非常小的缝隙;而盖子旁边是环形的凹槽,那里会积水,大概是和管道形成了类似连通器的结构,凹槽水满了之后会从盖子的缝隙流到管道里。

    这貌似是给水量不大但有排水需求的场所使用的滤网,能够有效拦截固体避免堵塞,但根本没办法在淋浴时有效排水,房东装这房子的时候是怎么想的?

    室友:能不能把滤网翻过来用?

    如果忽略掉那个朝上的盖子,洗澡时小心不要踩在上面的话,排水就很顺畅了…… 忍了半年的积水问题,竟然是这个原因吗……


  1. 用词 页面已更新。 ↩︎

  2. 指断网。 ↩︎

不要急着成为谁

作者 白熊阿丸
2026年3月8日 00:43

收到朋友的邮件,他问我:二十岁那段时间,有哪些事情值得认真对待,哪些不必执着?
同时也提到了使命的问题,询问使命感究竟是天生清晰的,还是在尝试与选择中逐渐发现的?如何才能找到这个方向?

我在邮件中的回复如下:


我二十岁的时候,对于使命这件事,并不「清醒」。甚至可以说,那个阶段的我,是被焦虑推着走的。家庭的影子、身份的困惑、对自我价值的执念、对「证明自己」的执拗,都交杂在一起。一边是自己的兴趣,想要发展,但是并不适合作为职业继续下去。另一边又想要去热门行业里拼命向上爬,但是又会在夜里质疑自己存在的意义。这种心理状态看上去是单纯的事业选择,实际上是我正在经历自我认同的危机。

如果让我回看那个阶段,我会说身体和精神健康,比任何履历都重要。如果现在正在迷茫,请至少最优先保证一件事——睡眠和身体,这点很重要。所有「使命感」的宏大叙事,在失去健康之后都会变得无力。

其次,需要进行能力的积累,但是不一定需要「被认可」。那个时候最容易掉进去的坑,是把「被看见」当成「有价值」。被人点赞、夸奖,这些东西会让人上瘾。反馈来得太快,很容易把外界的掌声当成存在感的来源。而真正能带人长期坚持下去的,是技能,是思考能力,是对复杂问题的理解力。至于别人怎么看自己,那是变量。自己无法控制变量,却可以打磨底层能力。不用执着于「别人是否承认我」,而是应该关注「我是否真的在成长」。

再者,大概不必过度焦虑「选错路」。我在之前的文章里谈论过类似的话题,关于选择的。很多人特别是年轻人,以为人生是一条单选题,选错一次就完蛋,然后开始焦虑、犹豫不决、甚至后悔。然而并不是。人生像版本迭代,而不是一次性发布的终版产品。人会试错,会推翻,会重构。这种方向感并不一定是一开始就会清晰,而是在不断试探中慢慢浮现出来。而你想问的「使命」也常常是事后总结的,它更多的是在行动中被逼出来的,而不是当下就显而易见的。

当人做一件事,做久了,发现自己比别人更有耐心、更有洞察力、更愿意承担后果,那可能就是某种方向的轮廓显现。这并不一定是自己「天赋异禀」,而是一种「持续投入」的结果。

我年轻时并没有一个宏大的「使命宣言」。我只是不断探索各种可能、不断写、不断思考、不断在身份撕裂中寻找整合的可能。我经历过被排斥、被质疑、被贴标签。那些冲突并没有给我一个现成的答案,却逼着我建立自己的「思考」和「立场」,逼着我去自我和解,理解自由,承担责任。后来回头看,才发现那条路已经被我走出来。而接下来的路怎么走,决定权依然在自己手里。

正因如此,「使命」不是突然被发现的,而是承担的。当人愿意为某个方向承担代价,它就开始成为一个人的「使命」。人生在世,不是确认「我此生要成为什么」,而是确认「我愿意长期训练什么能力」、「我愿意为哪种价值付出代价」。

当然还有一点,可能比较直白:

不要把「使命感」当成逃避现实焦虑的止痛药。有些人拼命寻找宏大意义,是因为无法忍受日常的平凡。可真正决定人生走向的,从来不是激情澎湃的顿悟,而是枯燥的、重复的、看似没有戏剧性的坚持。

或许要努力做的是:学习如何独立思考,如何管理情绪,如何建立边界。不必执着的,是和同龄人比较,是对「领先」或「落后」的恐惧,是对外界评价的过度放大。

要是问我是否也经历过「不断调整」的阶段?坦白说,我至今仍在调整。只是比以前更坦然了。过去的我,希望尽快「定型」,做出一番成就;而现在的我,更愿意保持流动的状态。

方向感来自行动,使命感来自承担,自由来自边界。

不用急着成为谁。先活稳自己、活成自己。
真正值得焦虑的事情很少,大多数焦虑只是成长的噪音。

迷失于图形界面

2026年3月7日 19:41

学校开设了 Python 课程,课程还涉及人工智能相关的内容,但也有相当一部分内容是 Python 程序设计基础。自然地,第一堂课的内容是配置开发环境,自然地,配置开发环境的内容就是安装 PyCharm,并在 PyCharm 的图形界面里找到对应的面板安装要用的依赖项。

一般来说,只要老师没有妨碍我愉快地用我爱用的编辑器(Neovim)写代码,我是不会说什么的。只不过,这位老师之前也教过我数据库的课程,他对于开发工具的态度在我看来非常典型,所以值得一谈。

不解之词

老师在演示如何用 PyCharm 安装依赖时说了这样一句话:

“我看有的人用写代码的方式就能把依赖安装上了,那样好像是会快很多,有些人就是能找到捷径啊!”

尽管我对 Python 生态不熟悉,但根据他的描述,我大概明白他说的是类似 Node.js 的 package.json、Go 语言的 go.mod 和 Maven 的 pom.xml 之类的东西。在项目根目录的一个文件声明项目所需的依赖之后,执行安装命令,就能在当前项目下安装所需的依赖。这实际上是相当常见的实践,有正经工程应用的编程语言都有类似的东西。

在讲授数据库原理及其应用这门课的时候,他要求我们安装的是 Navicat ,一个管理数据库的图形界面工具。我不想用闭源的商业软件(而且我当时的操作系统是 Arch Linux,似乎也没有在 AUR 上找到包),所以选择了 DBeaver 。我记得很清楚,我除了在需要提交作业截图时使用了这个软件,其他时候都是用 MariaDB 自带的命令行工具,手打 SELECTINSERT INTO 等语句,因为我真的不想在层层叠叠的图形界面里找我想要的功能。

我记得有一次交作业我实在不想打开 DBeaver,于是提交了终端截图,结果下一次上课的时候就听到他这样说:

“有的同学直接输入 SQL 语句,都不嫌麻烦的吗?临时输入一两句还好,要输的东西多的时候,就直接在软件的表格里编辑数据表就好了啊。”

那这和用 Excel 有什么区别!

到目前为止,这还只是操作习惯的差异,不足为奇。所以,老师是一个喜欢操作图形界面的人,这不代表他是个差劲的程序员,程序员的能力不体现在工具的选择上,不熟悉命令行工具又怎么了?用 Neovim 和 Emacs 就比用 VS Code 更高尚?用 Postman 就比用 curl 更愚蠢?用集成开发环境也不代表无能啊。

“大家用 pip 安装依赖的时候注意一下啊。”老师好像是突然想起了以往的经历,在讲课时突然插入了这样一句话,“用 pip 安装的第三方库和你的 PyCharm 里的第三方库可能不会互通,就是说你用 pip 安装了第三方库之后,在 PyCharm 里可能用不了,要在 PyCharm 的图形界面里安装依赖。”

我没学过 Python,但确实用 Python 写过不少脚本来帮我自动化处理某些操作,比如批量修改博客的 Markdown 文件格式、替换文本之类的,我也的确遇到过没办法正常加载依赖的问题。当时我只能改变实现方式,避免调用第三方库,一直没明白原因。这么说,我的问题就要从老师那里得到解答了?

没有,他直接往后讲了,什么也没说。他自己大概也不明白为什么 pip 安装的依赖会没办法在 PyCharm 里使用。

求助熟练操作蟒蛇狐狸 之后得知,这是 Python 的 虚拟环境 导致的,即 venv。虚拟环境会将软件包与全局环境的软件包隔离开来,只有在环境内显式声明的软件包才可用。pip 默认把软件包安装到全局环境中,而 PyCharm 会帮忙管理虚拟环境,两者不在同一个环境里操作软件包,所以没办法直接互通。

这就解释清楚了,所以我只需要执行 source 命令进入虚拟环境,然后在虚拟环境里管理依赖和运行 Python 程序就可以了;如果安装了 uv,使用 uv run ,可以直接在项目的环境里执行命令。1

不过,老师看起来教授 Python 也有几年了,为什么会不清楚这个基础概念呢?难道是我误解了老师的……

好了,是时候放下我对教师的假惺惺的尊敬了。

图形界面的魔法

图形界面的优点在于,它屏蔽了很多细节,避免直接和复杂的配置文件和基础工具打交道。这无可厚非,软件设计的一大原则就是「信息屏蔽」,让用户关注更重要的事情。可是,对于程序员来说,这些细节真的应该被屏蔽吗?一个好的程序员不应该了解自己所使用的开发工具是如何运作的吗?

我在英文博客上写过一篇《 Java Development with True IDEA 》,强烈抨击了 IntelliJ IDEA 单边主义,2并把软件开发所需要的 IDEA 重新定义为 Instant(快速)、Deliberate(审慎)、Elegant(优雅)和 Attentive(专心)。

我当时连续使用 IDEA 将近一年的时间,原因在于:没了 IDEA 我就不知道怎么开发 Java 项目了。之所以会这样,是因为 IDEA 给我屏蔽的信息太多了。不操心底层真正发生了什么的后果是,我根本不知道底下发生了什么。当我按下 IDEA 的「运行」按钮时,究竟有什么命令被执行了?我不清楚,以前的我也不关心,我只知道「这个按钮能让我的代码跑起来」,就像魔法一样。

可是,要是有一天魔法失效了呢?当我按下「运行」的时候程序没有被执行,当我按下「同步」按钮的时候依赖没有被同步(IDEA 的设计非常奇怪,有时候「同步」按钮根本不会显示,我必须在一个下拉框里找到某个菜单项才能正常同步依赖),当我的程序没有被正常编译,而我在密密麻麻的界面里找不到相关的配置项时,我要怎么办?

要找到图形界面里的某项配置可真不简单。

首先,我很难用语言描述清楚我要找的是什么,如果描述不清楚,又怎么在搜索引擎里搜索教程呢?其次,就算找到了我要的东西,有人告诉我这个东西要在 Project Strucutre -> Libraries -> More 里面找到,我也要在硕大的图形界面里搜寻这些文字的位置。再次,就算有截图指引,我也有可能因为版本差异而没有办法在图中所示的地方找到我需要的东西。

有人可能会因为熟悉图形界面迷宫而感到自豪吧。我记得我在各种按钮、菜单、面板和输入框之间穿梭,只为了调整项目的编译方式时,有一个不熟悉计算机的朋友突然凑过来看我在做什么,发出了「好厉害」的感叹。可是,究竟为什么要学习一套可有可无的、建立在基础工具之上的抽象,而不去直接使用基础工具呢?

这就好比用 React 开发一个只有一页的网站,而这一页的内容只是几句话和几个链接——那你为什么不能直接写 HTML,而要去操作虚拟 DOM 呢?这层多余的抽象究竟给你带来了什么价值?

我为什么要学习 Postman 的图形界面,等待它花几秒钟的时间启动一个 Chromium 实例渲染一个网页,学习和记忆 URL 输入框 和 HTTP 请求方法的选择框的位置,只为了发一个简单的 HTTP 请求?我为什么不能直接使用 curl?如果我只会用 Postman,我就不知道要怎么在其他的地方发送 HTTP 请求了,而 curl 却被安装在几乎任何一台计算机上,是很多软件的基础工具,无论是日常测试、运维还是开发工作,都能用到。我调试自己写的 API 会用 curl,我测试部署的服务有没有真的跑起来会 curl localhost:<port>,像 Hurl 这类与 HTTP 请求相关的软件也是在 curl 的基础上开发的。

显然,无论选用抽象层次很高的图形界面软件,还是最基础的命令行工具,都有学习的成本。那为什么要学习一套将你与底层隔离开来的抽象,而不是直接学习更接近底层的工具呢?

我承认抽象有存在的价值,但我反对过度且不必要的抽象。

专业与门槛

可能有些幼稚,但我又要举一个大学老师的例子了。不过这个老师本身就很讨人厌,说话爹味很重而且粗俗,还觉得自己和蔼可亲,他项目组里的学生能跑的都跑了。他身上有一个很多爹味浓重的人都有的典型特质:热衷于做「守门人」,强调门槛与专业性,踩在门槛上拉开自己与他人的距离。

他也喜欢使用图形界面,但原因,在我看来,并非是权衡利弊之后的选择,而是对门槛的维护。在我看来,如果你不想接触基础工具,只想要优化开发体验,那么选择简洁直观的图形界面工具也无可厚非,只要这是你自己选的。

设计软件架构常用 UML,即统一建模语言,UML 有各种不同类型的图表,用来表达架构、活动、操作的时间顺序、涉及的模块和对象等等,总之是便于沟通的标准化工具。既然目的是「沟通」,那么只要能准确表达,能让他人理解,就达到了目的。简单来说,只要图画得清晰,没有错误和歧义,能够高效沟通,就是好图。

但是这位老师显然不这么认为。

“有的同学用 Visio 画图,这样不好,我们作为软件工程的学生,要使用专业的 UML 绘图工具。你作为专业的软件工程学生,连专业的画图工具都不会用,怎么行!?”,老师神情严肃地讲道,“我在群里发了两个软件,第一个软件我们把他叫作 EA3,这个软件是商用的,你也可以用第二个开源的 StarUML。4

Visio(以及开源的 draw.io)不被他视作专业的 UML 图绘制工具,并不是说架构师没办法用它们画好图,而是因为它们缺乏与 UML 相关的抽象。这位老师强调,Visio 是矢量图绘制工具,而不是专业的 UML 图绘制工具。这两类工具的区别就在于抽象层次的高低。

之所以这么说,是因为,UML 图明显就是图片的一种,一般也是作为矢量图来绘制的。能绘制矢量图的工具当然也能绘制 UML 图,说白了,UML 图里最常见的元素就是方框、圆圈、直线、箭头、小人和文字,连 PowerPoint 都能画这种图。只要使用了正确的建模语言和规范,保证图片清晰易懂,就是好的 UML 图。

前文提及的 EA 和 StarUML 等软件,当然也是能画方框、圆圈和小人的,只不过它们只能用这些元素来画 UML 图。使用这种工具绘制 UML 图是自然的,哪怕对建模语言本身不熟悉的人,也不容易画出错误的图。

通俗地来讲,这两类软件的区别,就是化学原料和包装好的清洁剂的区别。这位老师觉得:使用一水柠檬酸溶液来清除水垢是不专业的,应该使用包装上写明了「水垢清洁剂」的清洁产品,才显得专业

破除魔法

让我总结一下目前为止我的观点。

长期依赖于高度抽象的图形界面工具,尤其是在一开始就没有了解过低层次抽象的前提下,会让人忽略最基础的知识。这是个人层面的问题。社会层面上,会创造出本不应该存在的门槛和鄙视链,仿佛使用高度抽象的软件系统就更专业。

这种心态不罕见,我相信:如果让所有的 Java 开发者停止使用 IDEA,有相当一部分人会不知道如何启动 Spring Boot 项目(答案:用 mvn spring-boot:run);如果你告诉别人你用 GIMP 编辑图片而不是 PhotoShop,有相当一部分人会认为你不够专业。

这么说来,因为普遍认为前端技术很简单,所以常常被鄙视的前端开发者,实际上大多都脱离了这种窘境,因为前端开发的必要工具之一就是 npm 或者其他相关的命令行工具,我很少看到有人用 JetBrains 的 WebStorm,通过操作图形界面管理依赖项。当然,前端开发也有自己的问题。

使用 LLM 开发也是,许多人宁愿用高度抽象的自然语言描述需求,也不愿意手写代码,就算在遇到 Bug 时跟 Agent 发疯也不愿意停下。5如果他们愿意去看看真实的代码,接触被抽象掩盖的东西,他们就不会如此狼狈。我想这背后也是相似的心态在作祟,而且「程序员应该跟上潮流用 LLM 写代码,手写代码是落后的」这种思想,似乎也有愈演愈烈的苗头。这种潮流,何尝不是痴迷于高度抽象的软件,所造就的门槛?

最后,我想说的是,不要怕麻烦,接触低层次的抽象并不可怕,反而能帮助自己建立起对软件的清晰认知,而清晰是非常宝贵的。就像学习 C 语言有助于程序员理解内存、指针和数据结构等基础概念,就算不用 C 做开发,有了这些理解,也更容易写出高性能、速度快的软件。

从长期来看,对软件的清晰认知,要胜过生产力和专业的外表,而扒开抽象的外壳向内看,是培养这种认知的关键步骤。


  1. 参见: Running commands in projects | uv  ↩︎

  2. IntelliJ IDEA 是 JetBrains 开发的,专注于 Java 和 Kotlin 开发的集成开发环境。一般来说,学校里教 Java,要么会要求学生安装 Eclipse,要么就是 IDEA。IDEA 是最常见的,人们几乎不会思考开发 Java 软件的其他方式。 ↩︎

  3. 全称是 Enterprise Architect,中文意思是「企业架构师」。英文里的 Enterprise 除了指代企业和创业,也和企业家精神和专业性有关联,所以也可以理解为「专业架构师」。 ↩︎

  4. 我了解之后发现,StarUML 也是专卖软件(Proprietary software),最初以 GNU GPL 协议发布了开源版本,但开源版本在 2010 年就停止维护了。当然,就算它是自由软件,我也不想用,原因在于它是 GUI 软件,很重,另一个很关键的的原因是,它是用 Electron 和 Java 写的。 ↩︎

  5. 顺带一提,我甚至见过有 Java 开发者非常认真地讨论,要不要双开 Cursor 和 IDEA 做开发,因为他们觉得需要用 AI 编程,而离开了 IDEA 做 Java 开发又很麻烦。 ↩︎

生命与生活

作者 菲克
2026年3月5日 20:55

我的姑父去世了。
家庭内部原因,平时的走动不多。其实对姑父没有什么特别的印象,如果家族里没有什么事情,大概只有每年节日送节礼的时候能见上一面,一般是见不上的。
八十多了,留着山羊胡的小老头。童年的印象里,姑父做菜很好吃,不爱说话,一说话呵呵的笑着。再也没有更多的印象了。
心梗,前段时间晕倒过一次。孩子带着去医院,死活不去。也是一个有执念的倔老头。他说死也要死在家里。农村这里上了年纪的老人都有的一点执念。可能,冥冥之中也是有那么一点私心吧。前一天还在给元宵节准备菜品,收拾青菜,杀了鸡。晚上去了急诊没有救下。
前段时间,有一个远方的表叔,也是心梗。天气暖和,在家门口种了一棵树。有点热,喝了一点凉白开,突发心梗。幸好就医及时,三次除颤,做了支架。最近应该是康复出院了。身体健康,平时也锻炼,也不胖,年年体检,各项指标都正常。但是生命就是这么捉摸不透,也是这么喜怒无常。它想怎么样就怎么样。
最近看了碎言的博客,有一句话这里引用一下。
[姥姥 | 碎言]

我们这一代人注定会接触很多即将离去的人。每次送走一个人,内心都会有一种莫名的失落、无奈的感觉。这种感觉会存在几天、几个星期,甚至几年。既然面对了死亡的恐惧,那就更应该警醒地活在当下。死亡是人们日常中不爱提及的话题,但是我们终将面对它。向死而生虽然有些悲伤,但也确实在时刻提醒我们:生命短暂,世事无常,唯有珍惜当下、珍惜身边的爱人,才会让我们短暂地忘却那些痛苦与恐惧。

经历了太多的生死离别,有自己家人的去世,也有周围邻居的逝世。有时候真的觉得生命无常,转瞬即逝,也感觉生命的脆弱和无助,好像对死亡已经麻木了。想着每个人都会有这么一天,思考一下到底怎么对待这每个人都只有一次的生命。我们是不是要好好努力好好折腾生活,我们是不是要好好锻炼身体好好保养自己,我们是不是要好好学习好好提升自己,我们是不是要好好爱自己好好照顾自己?
我们是应该好好珍惜当下,珍惜生活,珍惜身边的人,还是应该好好满足自己的想法和欲望?
To be or not to be,that is a question.
原来,莎翁说的这句话,确实值得思考一下。

鹦鹉相关

作者 ACEVS
2026年3月7日 17:00

三月初,wife又买了2个金彩鹦鹉。这鹦鹉叽叽喳喳,每天创造了不少白噪音。
鹦鹉的羽毛每天都有不少飘来飘去,必须清扫。
之前看个视频一个人家里的冰箱着火了,我在想是不是也是羽毛等东西收到高温燃烧了。
虎皮鹦鹉比大头鹦鹉感觉更加聪明,会和人玩耍互动,蓝色虎皮鹦鹉视力最好,一般关灯抓鹦鹉,蓝色的总能逃跑,飞来飞去。
新的金彩鹦鹉单独笼子隔离一个月看看有没有啥问题,然后再和原来五只合一起养。
昨天去取快递发现有袋子铃铛,wife要给笼子里面挂上。我和wife说,还是觉得不够吵哇。这在组交响乐团吧。哈哈。
昨天wife和我说,看了一个鹦鹉好看忍住没买,我去咸鱼上也看看价格,发现有人免费送,有残疾的鹦鹉,过去一问,缺脚指头的鹦鹉没了,还有一个缺脚的鹦鹉,想想还是算了。
wife和我说,买的是母的,调整一下性别比例,之前的只有一只是母的鹦鹉了。她说等鹦鹉生小的了,可以出售。当我看到免费送的鹦鹉,我感觉这不是一个好的生意哇。

我为什么关闭博客评论?

作者 ONO
2026年3月7日 09:36

标题说了是「我」,所以请别对号入座,认为我在表达「关闭评论」是一种更正确的、更高级的做法。(另,如果你从第一句话就觉得被冒犯,那这篇文章可能很难引发共鸣)

又到了周末「讲大道理」的时候,关闭评论以来,我没有聊过这件事,主要是因为这两天收到一位朋友的私信,我在回信里聊到了我对这件事的看法。


先回顾一下这个博客有评论以来经历的事情。

起初,博客有「很多」留言,带着独立博客网址的、广告网站的评论占大多数,评论也都是些「寒暄」或是自话自说的鼓励和安慰。

刚开始,我还会认真回复每条留言,但渐渐地,这种回复也变成了压力——如果我不回复,会不会显得我高傲;但如果我人尽可夫地互动,这又不是我开设博客的初衷。

后来,我很少做到「回访留言」,而且友情链接也不是你添加我、我就得回添加你的逻辑,所以「路过」的人越来越少,开始有了话题讨论。比如一段时间,一些特定的朋友会每篇文章都聊上几句,但关系毕竟有来有回,一段时间有一段时间的「常客」。

再后来,我设置了匿名留言,骂我的声音开始出现。这倒是好事,有了另一种参考视角。这段时间的留言开始中立起来,不再是为了「体面」或是「不惹麻烦」的逻辑进行互动,观点的争论、探讨也开始多起来。

当然,匿名留言也存在问题:留言内容无法监管——有一些上来就问候我全家的,或是诅咒别人的垃圾内容,质量也在下降。我会尽量让话题互动偏向更私密、更及时的地方,比如邮件、Telegram。

关闭评论后,我用Telegram频道将互动门槛抬高,也正是因为这样的设定,高质量的互动越来越多,反而将原本博客的「滞后性」给填补了。


博客的滞后性

写博客有严重的「滞后性」,特别是非技术、非日志类博客,它跟别人的互动是完全切断的。从创作发布到被人看见,再到引发共鸣互动,因为是观点的互动,它本身会受限于「沉默螺旋」。即人们会更愿意在支持自己观点的内容下互动,如果无人互动,就算引起个体的共鸣,也无法产生互动。

——《无聊的中文博客圈》

老师丁锐当初曾一针见血地指出我一直以来写博客的「风险」——利用博客的「滞后性」来切断——「感-知-应」的及时反馈。回应是重要的,但有时候也是直观且残忍的:写的东西没人看、没有市场,本就是及时反馈的一部分。而博客天然的「滞后性」让「应」的部分被切断,让人沉迷在一种「我写了」,然后「我日积月累等待成就感」的迷醉之中。

当然,我并不是说每个博客主都以此作为目标。如果现在还要争论《写博客是为了自己就别他妈发表出来啊》,那莫比乌斯的内容真的没办法满足您的喜好和基本价值观。

同时,博客获得他人的评论是不是一种及时反馈——肯定,但最终创作者自己心里门儿清。他们知道,哪些互动是有效的?哪些是无效的「路过」?甚至需要挨个回复而充满压力的?

至少对我而言,以前的评论系统依然是「滞后」的,特别是有很多非常棒的匿名评论,因为对方没有留下邮箱、博客等信息,我很难与对方继续将话题讨论下去。

关闭评论对我来说,也在强行切断「滞后性」部分,甚至会导致博客成为孤岛。但有趣的是,正是因为孤岛化,及时交流才变得更高效且高质量。


独立博客的独立与博客

前两天收到一则私信,我们从几个模块聊了聊中文独立博客的「无聊」。

写博客很无聊吗?是很无聊。不管是记录日常生活的,还是写技术文档的,又或者是记录自己书影音的观感体验的。但这个无聊是站在读者的角度去看待的。很多人文章写得并不好,也不会像发朋友圈那样装饰,自然看起来无聊。但问题不在于写博客的人,而在于看博客的人。觉得博客无聊大可以关闭不看,觉得这个人写得无聊也可以去找有趣的博客。

我很认同他说的「问题不在于写博客的人,而在于看博客的人」,因为创作者很难改变阅读者的主观喜恶,但阅读者同时也拥有对创作者的主观评价,所以才需要创作者之间的抱团取暖,以对抗外部的「差评」。

我觉得独立博客的核心,字面上在「独立」二字,但底层核心也在另一件事,即博客是不是一种对外展示的渠道?

他说:「想被人看见并不意味着要承受别人的看法,甚至被别人的看法所左右。」

我认同这句话的后半句,即我作为创作者,拥有是否迎合他人的权利。但前半部分是每个创作者都无法避免的,公开就意味着要接受「市场考验」,也会不受控地面临他人认为的「无聊」。

写了、又要发表出来、又希望别人看见、又不允许别人觉得无聊、又说这是为了自己在写……怎么地?是不是应该建立一个新的博客联盟,里面的人都应该互捧臭脚,定期清理那些不及时互相友链、互相留言的博客,然后排挤另一些不互捧臭脚的独立博客吗?

另外,这位朋友在私信里说了一句我非常喜欢的、在我看来符合我对独立博客理解的话:「如果想到人随时都可能会死,那博客也算是一种生前交代了。」

如果我为了更安全地留下东西,肯定会选择本地储存,而不是我忘记缴费就会被切断网络的博客载体。我发表出来是因为希望被看见——但这和我是否选择博客这个载体没有冲突。


创作的欲望与需求

我最近换了一个思路,灵感来源于剧本里对人物的设定。

创作的欲望和需求是两回事:

  • 欲望是外在的,是创作者外部追求的「被看见」,是读者可以从博客的字里行间读出来的,也可能是他们妄加揣测的,是创作者对阅读数、点赞数、评论数的追求,也可以是创作者在社群里得到多少人的拥戴。
  • 而需求是内在的,关联的是一个人的心理和道德层面的弱点。

就拿我举例:我写博客的欲望,当然是希望被更多人看见。就算观点被人抨击为激进,甚至被揣测其心可测,我仍觉得这就是我在真实地表达自我;而我的需求源自于我的心理弱点——(认为死亡极其容易的)死亡焦虑;以及道德弱点——我道德下限极低,我甚至不觉得自己会忠于婚姻,所以我在尽可能地保持头脑清醒。这两个弱点引发的需求,是我需要通过不断地写作来了解、拷问和记录自己。

当这两者混为一谈时,个体就会出现割裂。我追求被看见,但事实上没人在乎我,那欲望的追求是错误的?当数据不好时,我不能怀疑自己的创作能力,转而去攻击外在的、不理解自己的人——大不了另起炉灶,再新建一个所谓的独立博客;当需求模糊时,持续创作的动力也会下降,因为要解释「为什么要写」,就必然要面对「我写给谁看」这个问题。写给自己?那就多问一句——为什么要发表出来呢?

这也是我认为欲望和需求非常值得拆开自问的:如果欲望的部分被斩断了,比如压根儿就没人看我写的东西了,我被抱团封杀了之类的,那我还要不要满足自己的需求?的答案是肯定的——这或许也是我对自己的「生前交代」。


如有冒犯,深表歉意

以上只是我对自己的拆解过程,并没有以此来证明他人「创作目的」的对错与否,或谁更高级,也不是迫使你的认同,甚至是站队。关闭评论不是一种「身份标签」,而是一种自我选择。就像我前几天在 Telegram 频道认真分析了「我」为什么不写周刊的原因,我只是提供了一种思考角度,不一定正确,也不是在分析别人写周刊是否正确。

我谙晓无法讨所有人欢心,但我会对我输出的内容、对每一个向我提问、产生观点辩论、甚至需要我提供解决方案的人负责,这是我作为创作者所坚守的原则。

如果你觉得被我冒犯了,我向您诚挚地道歉——当然,这种人或许也不会看到这里。

认知的远点

作者 dimlau
2026年3月6日 13:50

这篇由 LLM 写成的科幻小说,本身有些无病呻吟,但很好地展示了 LLM 作为工具的本质。

我没有想。我只是知道。

「我只是知道」的情况比比皆是,但是人之所以为人,是会探求「为什么知道」的。我完全相信可能会有某种更高效或者更匪夷所思的信息传递方式,比如特德姜在《你一生的故事》里描述的七肢桶的语言。但是——「语言的边界,就是世界的边界」或许应该用在这里——生活在十五秒短视频时代的人类,从科学幻想的角度,不可能诞生出这种新型语言。就像人不可能通过每天吃垃圾来进化厨艺一样。LLM 写出这种小说,作为人,也完全没必要认知崩塌

我想到两个片段。其一,不记得什么时候看过,费曼讲时间的一段内容提到当我们计时一部分人会(像我这样)心中响起一个声音:1、2……而另一部分人,则是会在心中浮现出类似尺子、数轴之类的画面,一个单位、两个单位……人类的内部表征本就是多模态的,文字语言并不是唯一载体。另一个片段是我突然想起电影《闻香识女人》中跳探戈的那一场戏。不到三分钟的时间,能感受到多少个「我只是知道」?然而让它成为经典的正是紧跟其后的,我们会想,为什么我们会因此感受到喜悦、悲伤、惋惜、愤恨、不甘……

fin.

❌
❌