




















这周没读什么文章,大部分时间都花在赶项目、焦虑、把头埋在被子里哀嚎、在心里咒骂同室、焦虑、出门乱逛、路过某个场景于是触发几年前的回忆然后陷入情绪波动、做健身计划但不执行、焦虑、幻想养一只萨摩耶、在小红书上看别人养的萨摩耶、幻想开一家咖啡馆并把萨摩耶带到店里让客人陪玩、幻想早上七点半被狗狗叫醒、焦虑等一系列活动上了,所以没读什么文章。
无论如何,还是要显得有诚意一点,所以我会讨论我最近正在读的一本书,以及相关的零碎思考。

Original Soundtrack
和朋友玩《饥荒》的时候连着麦,玩着玩着两个人就开始莫名其妙地唱起《Hamilton》和《The Phantom of The Opera》。后来我唱了一句《The Lonely Goatherd》,他没有听出来,于是我罚他去看一百遍《The Sound of Music》。
Anyway…… 于是我这周就把电影原声带找出来听了。不过那首《Sixteen Going On Seventeen》可真是不能拿给女性主义者听啊…… 《So Long, Farewell》也充满了对「健康儿童」的想象,这种想象令人不适的特质我已经在 上期周刊 讨论过了。不过,把这部电影当作受基督教影响的西方传统思想的研究样本也不错。
最后,歌还是很好听的,这毕竟是音乐剧嘛。我最喜欢的是《Maria》《My Favorite Things》和《The Lonely Goatherd》。
📖
汉娜·阿伦特《人的境况》(又名《实践生活》)
如果要分类的话,这本书应该属于政治哲学的范畴,译者是仲树(以及你怎么知道我有树老师亲签的版本?)。读这本书的时候我时常有一些不大不小的「啊哈时刻」(Aha Moment),大概是接收到新奇并且能解释清楚很多现象的理论时会产生的反应,但之所以说是不大不小,是因为阿伦特至少目前为止还没有很大程度上改变我对人类社会的看法,兴许再往后读读就会了。
我比较想拎出来谈的是这段话:
我们与之共享世界的,不仅是与我们同时代而生的人,还有在我们之前的人和我们之后的人。但只有当世界显现在公共领域之中时,这样的世界才可能超越世代的来去而持续存在。公共性的本质正在于,他能够容纳凡人竭力想要从时光的必然衰败中拯救出来的东西,在世纪的流转中保存它们。在漫长的世纪里,一直到现代的开端之前,人类之所以敢走入公共领域,都只是因为他们渴望使某种属于自身的或某种属于共同体的东西,比他们的尘世生命更加持久。
这里需要解释阿伦特所谓的公共性是什么。《人的境况》的德语原名其实是《实践生活》,她将人类活动分为三类:劳动、制造和实践。劳动是满足生活所需(生命的必然性)的活动,比如劳作以收获粮食,填饱肚子;制造是人类改变世界(自己所生活的境况)的活动,人生活在自然的境况(conditions)和人造的境况当中;实践是人作为政治动物(而非社会动物)的体现,人只有在公共生活中才能实践。阿伦特希望恢复古希腊的城邦制,因为城邦里真正卓越的人总是希望投身于公共事务,在实践中证明自己的「卓越」。她批评,现代社会强硬的平等让公共性减弱甚至消失了,现代社会的运作方式更像是「大家长制」,毕竟经济学(Economics)的本意实际上是家政。(当然她也承认联邦制只有在人口较少的情况下才能存在)
引用的这段话的意思是说,公共性允许人们实践并将实践的成果世代保留,这也让我想到了《Hamilton》这部音乐剧里 Hamilton 说的话:
I wanna build something that’s gonna outlive me.
公共性支撑的也不仅仅是如今人们所理解的「政治」,一切能被公众看见的,大家能共同感知或经历的现象,都在公众的范畴之内。读完那段话的时候我在想:嘿,自由软件运动似乎也在做这样的事。
尽管自由软件基金会创始人 Richard Stallman 本人的 事迹 …… 让人想要捏着鼻子远离,但若单单是从运动本身来看,它的确具有公共性,并且人们创造的东西的确能在创造者有限的尘世生命之外存活。比如 Vim 的创造者 Bram Moolenaar 在 2023 年与世长辞,而我仍然在用 Vim(尽管是 Neovim)写文章和写代码,而 Vim 的操作逻辑也影响了数不尽的软件和非 Vim 用户。
为什么人们想要把原本能闭源跑在公司服务器上的能赚钱的代码开放给所有人呢?我想这是开源社区和自由软件社区的公共性带来的,不排除有人希望用丰富的开源贡献经历为简历增添色彩,但大部分愿意把自己的作品无偿公开的人,我想都是出于某种希望在世界上留下一些东西的渴望吧。
只要稍加想象,就会发现黑客文化的确有些类似阿伦特笔下的古希腊城邦,人们在实践中证明自己的卓越,而不是归于平庸、阿谀奉承和小心翼翼。不过由于程序员人数众多,也会有人把戾气带到社区里(比如在 GitHub 上骂人把贡献者逼急了归档仓库的啦……),但若仅仅是远观黑客文化的话,相似性是存在的。
Hackers should be judged by their hacking, not bogus criteria such as degrees, age, race, or position. ( source )
应以技术能力评判黑客,而不是学历、年龄、种族或职位等虚伪的标准。
📜
📜
两篇文章都提出了同一个问题的相似解决方案,即浏览器不应该只能集成操作系统的明暗设置,还应该能调整浏览器本身以及单个站点的明暗设置,也就是允许用户在多个层级自定义 prefers-color-scheme 媒体查询的结果,这样网站开发者只需要编写 CSS 就好了,不需要自己用 JavaScript 再实现单站点切换的逻辑。
You can probably imagine the problems associated with every website in the world having to come up with their own bespoke solution to the same fundamental user problem.
你大概能想象,这个问题关联着全世界所有想出了他们自己对同样一个基础的用户问题的解决方案的网站。
然而,不同网站的实现会有差异,有的会把切换的按钮放在顶部,有的放在单独的设置里,有的是文字链接,有的是按钮,有的是太阳和月亮的图标,有的用空心和实心的圆表示。总之,明明是相同的操作,在不同的站点之间却不具有一致性。
And some of you psychos put it at the very bottom of an incredibly long page, I think because you’re out to get me.
还有你们有些疯子把它放在很长的网页的最底部。我觉得你们就是想要整我。
此外开发者也不好过,要自己实现单站点的明暗方案切换,就必须用到 JavaScript,不仅要编写覆盖 prefers-color-scheme 和储存用户偏好的逻辑,还可能要修改 CSS 层面的暗色模式实现方法,而且用于覆盖的 JS 脚本还必须放在网页的最前面,不能异步加载,否则用户就会在切换页面的时候看到网页突然闪一下。更关键的是,无数的人都要为这个不大不小的需求重新造轮子。
之前我的博客一直使用媒体查询实现暗色模式(@media (prefers-color-scheme: dark)),很简单省心,也应该这样。不过调查后发现不是所有人都会切换操作系统的明暗设置,更不用说浏览器级别的设置了,还有 LibreWolf 等隐私浏览器为了防止追踪器用「用户是否开启了暗色模式」这一信息生成指纹,界面永远都是亮色。1所以,我也不得不重造轮子,先把
媒体查询改成了 CSS 类
,方便 JavaScript 操作,然后
实现切换站点配色的 UI 和交互逻辑
。
1.
不过我想就算真的有单站点的色彩方案设置,也有隐私风险,LibreWolf 还是会默认屏蔽的。 ↩︎
如果有浏览器内置的切换方式,我就可以保留最简单的使用 CSS 媒体查询的实现方案,而不需要重造轮子了。
上面提到的两篇文章一篇是 2022 年发布的,一篇是今年三月发布的,三四年的时间里,这个功能都没有成真。不过,这看起来也不应该是 Web 标准,仅仅是浏览器自己的功能,所以仅仅「提议」想必用处不大,也只能寄希望于有人看到之后会给各个浏览器提交 Pull Request 吧。
支持渲染 3D 图形的终端模拟器,默认的光标是一只旋转的 3D 老鼠。根据
作者的博客文章
,你也可以替换别的 .obj 文件把光标换成别的东西。
重点是 Ratty 实现了一套图像协议(Ratty Graphics Protocol),让 2D 的终端支持渲染 3D 图形。此外 Ratty 还支持 Kitty 的 图像协议 ……
🐀:how ironic!
Kitty 协议貌似并不被许多终端模拟器和终端应用支持,Ratty 的未来就可想而知了,不过还是很好玩的。我本来想用 Ratty 写这篇文章,结果发现用 Ratty 打开 Neovim 会有字体问题,剪切板和输入法也都用不了,毕竟才刚发布嘛。
Fun Fact: Teletypewriter 的缩写是 TTY,所以许多终端应用都使用 TTY 结尾的名字,Kitty、Ratty 还有我一直在用的 Ghostty。
访问: Ratty Term
想着差不多到时候了,于是发布了 Venin(本博客使用的 Hugo 主题)的 v1.0.0 版本。
前两周疯狂重构 Weepinbell(本博客使用的 Webmention 接收器),总算是把架构整理干净了(大概),附带了一些功能上的改动,也如上期周刊所说把 MIT 协议换成了 AGPL 协议(因为我是唯一的贡献者,而 MIT 兼容 AGPL,所以这么操作应该没问题),遂发布了 v0.4.0 版本。
既然已经播报了两条版本更新了,那么就再加上一条:
GRAM 编辑器
发布了
2.0.0
版本。GRAM 最初是
Zed
的分支,是用 Rust 编写的 GUI 代码编辑器,在我看来是完美的 VS Code 替代(说真的,别再用浏览器编辑文件了!)。GRAM 移除了 Zed 的 “AI” 功能,也没有 ToS(服务条例;如果你不知道的话,Zed 有这个东西,因为它提供 “AI” 服务)。
在联邦宇宙上随手发的一条帖子被转发之后貌似引来了令人意想不到的关注,第一次见到这个互联网小角落会有这么多互动。看到有这么多人讨厌抽烟我就放心了。

周六发现 PayPal 突然没办法用银联卡支付,而我的 Contabo VPS 马上就要到账单日了,然后开始设想要是没办法付款的话服务器就会无法访问、数据会丢失…… 然后非常焦虑地用了两个小时尝试了各种方法都没办法正常支付,所以…… 大概是需要去办一张 Visa 或者 Mastercard 了吧。
由于非常担心数据丢失,所以托人帮忙垫付了服务器费用,结果第二天我就在小红书上做好攻略出门办卡了,除了因为当时还有不少人办卡(其中至少有三个也是办 Mastercard 的学生)排了半个小时的队之外,进行得意外地顺利,大概也是因为我提前焦虑了好久,最终在海量的选项里选择了办万事达借记卡吧,如果是信用卡的话不知道会有多麻烦。
总之,大概不必担心服务器会被停掉、用不了 Kagi 必须忍受搜索引擎广告以及狼狈地爬回 Cloudflare 这些光是想想就很可怕的事情了。这就是过度依赖 PayPal 这样的第三方服务的后果吗……?
不再使用 Emacs。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。