大脑充血 Vol.97
宣布 周刊改月刊 已经有两周了,我怎么还在周更……?
这篇是九月的正刊,正刊在每月的第一个周一发布。上周发布的是一篇 小报 ,小报可能会随机出现在非正刊发布日的周一,也可能没有。简而言之,这篇之后,九月就没有正刊了。国庆再见!
吾仅悉落
London Calling
The Clash
起因是在 YouTube(Invidious)上看到了这个《Hazbin Hotel》第二季歌曲的 反应视频 (至于我为什么看这个类别的视频,是因为我意外发现然后被这个男人迷住了,他长得太帅了声音又好听,然后就看完了)。视频里他评价 Abel 的配音演员有朋克的嗓音(punk voice),我便想起来自己有段时间没听新的朋克专辑了。所以,比起停下来分析我的 Daddy issue,我找到了 The Clash。
听完之后好像只记得第一首《London Calling》,每天脑袋里都在重复 London Calling~。整体上这张专辑不是特别硬的朋克,或者说是非常早期的朋克,和《Ramones》的风格更像。Ramones 乐队据说是朋克摇滚的开创者,不过我其实不太喜欢他们的第一张专辑(不过我只听过第一张,听完之后只记得《Beat On The Brat》:打小孩、打小孩、拿着棒子打小孩……)。
The Clash 的第一张专辑《Combat Rock》我也去听了,原来《怪奇物语》第一季里的《Should I Stay or Should I Go?》就是来自这张专辑,有些奇妙。
心重如毛
魏小河与柏琳对谈
📻 《不止读书》对话柏琳:在人人追求松弛的时代,我仍然相信卓越
我对具体的访谈内容没有太多能聊的,因为我的确不了解南斯拉夫的历史,我也没有读过《废墟是座桥》这本书。不过整场对话中跑题的部分我很喜欢,我更喜欢柏琳的谈话方式,她的很多想法都让我感到不谋而合,我听的时候真的忍不住拍手喊道:终于有人说出我一直想说的话了!
首先,她很讨厌互联网上「家人们」「宝宝」这种用词,有人甚至把这种过于亲密的语言用到现实生活中,让她感到很不舒服,甚至可以说是没教养的体现。「活人感」这个词也是不好的,那些被评价有活人感的人,尤其是为了被评价为有活人感所以把自我表演得特别夸张的人,实际上没有成为「活人」,只是活成了别人想看到的样子。此外,承认有「活人感」,也就意味着有「死人气」,声称有一种人生值得过就意味着有另一种不值得过,这很糟糕。
其次,她认为人与人待在一起交流就应该把注意力放在对方身上,而不是一边盯着手机一边聊天,她自己会把手机倒扣放在桌面上,把注意力完全放在对方身上。这听起来可能很老派,但我就很讨厌有人和我说话的时候注意力放在别的东西上面,仿佛不把我当回事儿,只可惜大多数时候都是这样,而且我也很难找到能够深入交流的人,渐渐地我也不说话了。柏琳说她也改变了这个想法,因为她的好朋友批评她,不是所有人都有时间,有些人就是要一直处理很多事情。尽管我也像柏琳一样不能理解有什么事情不能等等再说,比眼前的人更重要,但事实似乎就是这样,一些人就是必须一直盯着手机看。其实我大部分时间拿起手机都没有什么要看的,社交媒体都被我卸载了,零碎的时间也不足以支撑我看完 RSS 阅读器里的一篇文章。屏幕成了我的伪装,因为我不想逼迫对方放下手机。我独处的时候,可以完全不看消息,处理自己的事情。柏琳最后得出的结论是,就算自己知道一种好的生活,也不应该要求别人去过这种生活,最终只能要求自己。
此外,她还批评了在谈话中被追问某个词句的意思时,回复「你知道的」「我差不多就是那个意思」「你懂了就行」之类的话。她认为语言的懒惰就是思维的懒惰。我深有同感,我自己就因此和以前的同室发生过争执,他说他不喜欢我一直问他某个词是什么意思,觉得我是在「抬杠」。我说我是不理解他具体指什么才追问的,他却说「应该能够理解」「大概就能知道是什么意思」——什么意思?这是在要求我曲解他的话语吗?还是说他根本不在乎有没有被理解,只是想要说一些模糊的、听起来会让人觉得很神秘很有学问的话?柏琳在对谈中也有一些时刻会追问魏小河某个词具体是指什么,某个比喻或描述是什么意思,告诉他「我想听」。这在许多人看来可能有些咄咄逼人,但我看到了一个个体迫切地想要理解另一个个体,我看到能人类能够相互交流和理解的可能性,而不是沉溺于 模糊性 ,只浮光掠影地让对话停留在表层。
最后,她还表达了这样的观点:一个写作者不应该一直在公共场所演说,跟别人说自己是怎么想的、做了什么、最近在写什么,写作者大多数时候应该与自己的文字独处。我也深表赞同。不过我最近意识到,一些人似乎就是更偏好演说,Cytrogen 也 提到 她室友是这样的人。尽管都是表达,写作和演说其实相当不同,我一年多之前写过一篇《 写和说的区别 》分析过。
知道世界上有和自己想法一致的人,让我感到没那么孤单了。
如今的孩子
📜 Kids These Days
关于这篇文章让我产生的思考,我已经在《 少年承载了太多年长者的恶臭投射 》中谈过一些,此处附上引文:
Bloom 说,如果人们真的是为了让孩子多出去玩玩儿,指责社交媒体让他们不出门的话,那为什么不责备书籍呢?他的儿子整个周末都在玩 Call of Duty,他的女儿则窝在沙发上读俄国小说,显然第一个更惹人厌。两个人都没有出门,为什么人们不责备后者?电子设备定有特殊的令人讨厌的特质。他还观察到,人们讨论社交媒体禁令时常常回忆往昔,回顾起以前的小孩在外面快乐玩耍的日子。 这些人想象里的「以前的小孩」会是谁呢?大部分人都是第一次为人父母,他们的小孩子都用社交媒体,难道他们还有更早出生的,不用社交媒体的小孩子吗?显然这个「以前的小孩」是指他们自己,只是他们不这么说而已。 人们在讨论小孩该不该用社交媒体的时候,常常陷入怀旧情绪。海特或许还有在用逻辑和数据的语言说话,但不少支持者都在诉诸情感。交织在怀旧情绪中的还有对大科技公司的憎恨,有人认为某些家长比起爱孩子,更恨科技公司。我想补充的是,很多大人比起花时间真正认识自己的孩子,他们更愿意把自己的怀旧和想象强加在孩子身上。他们不是想要孩子出去玩,所谓的「在阳光下成长」不过是口号,他们想要的是在孩子身上满足自己的想象。这就是为什么,窝在房子里读书的孩子没有「在阳光下成长」却不被讨厌,人们没有提出书籍禁令。 读书的孩子满足了他们的怀旧和想象,出去和同学一起玩的孩子、在运动场上挥洒汗水的孩子、在人群中表演才艺的孩子,都符合他们对「以前的孩子」「健康的孩子」的想象。他们从来都不想要认识自己的孩子。
不过 Bloom 在文章最后提到的一个点我不太认同。他批评那些不关心自杀的青少年的人,说他们应该换一个道德观。这句话本身没什么问题,但出发点似乎错了。Bloom 已经提到「怀旧」这种情绪不利于解决问题,但他似乎没有注意到,自己依然在把孩子和青少年当作和家畜一样行为一致的整体来看待。不应该要求人们去关注自杀的青少年们,应该要求监护人去关注具体的孩子。不应该在整体上、统计规律上试图给「青少年自杀率升高」找到普遍性的原因,然后怪罪社交媒体或者别的东西,应该在个体层面了解每一个孩子,搞明白自己的孩子、身边的孩子,为什么感到不快乐。
家长们好像把自己投入到宏大的社会问题当中,他们怪罪科技公司,指责社交媒体禁令的反对者道德败坏,然而,他们真的去关心自己的孩子了吗?还是说,他们只是想要投身到这场声势浩大的群体狂热之中?
仅需几匙就能让人倒地的蜂蜜
📜 ‘Mad honey’ that can stop your heart is now being sold online worldwide
作者在过去的十几年里都在研究植物和昆虫之间的化学战争,植物生产有毒的化合物,而昆虫则想办法利用这些毒素。尼泊尔有种杜鹃花会产生一种毒素,驱赶那些偷花蜜但是不授粉的昆虫(是怎么把这种昆虫和蜜蜂区分开的?好神奇)。喜马拉雅大蜜蜂(Himalayan cliff bee)会在杜鹃花盛开的时候采集带有毒素的花蜜,科学家还没搞明白为什么蜜蜂不会因此中毒,但他们产出的蜂蜜的确会让人中毒。当人类食用超过一茶匙的这种蜜蜂,毒素就会干涉心脏生成电信号,导致心率下降到危险的水平。患者在半小时到一小时内就会感到头晕、恶心和无力。
本地人在几个世纪以来都收获这种蜂蜜,并且学会了安全的剂量,狩猎野蜜蜂是他们的神圣传统之一。不过这个知识貌似失传了,中毒事件偶有发生,好在没有人因此死亡。
但糟糕的是,这种蜂蜜被放到网上销售,扩散到了全世界不了解其危险性的消费者手上。韩国在 2013 年就有中毒案例,而最近法国和卡塔尔也有案例被报告。为什么人们一直没有采取措施?真是恐怖。
鸡头蛇尾
Java 其实是“内存高效”的
📻 Inside Java: “Java is Memory Efficient”
Java 一直给人消耗很多内存的印象,事实也的确如此,不过 Oracle 的 Java 架构师表示:It’s not a bug. It’s a feature.
简单来说,Java 的垃圾回收机制选择消耗更多的内存,以换取更少的 CPU 周期。即便是在内存价格暴涨的今天,CPU 的成本也比 RAM 高,所以多用 RAM 以减少 CPU 时间无可厚非。再者,假设某个程序占用了 100% 的 CPU 时间,那还不如也占满 100% 的 RAM,因为此时已经没有其他能够取得 CPU 时间片的程序去用剩余的内存了。
不过 Java 是怎么做到用 RAM 换取更少的 CPU 周期的?逻辑上似乎说不通,从算法的角度考虑,选择更好的数据结构的确能减少时间复杂度,但从编程语言的机制来看,很难理解占用更多的 RAM 是怎么减少机器指令的数量的。
Ron Pressler 是这么解释的:想象内存无限的机器,有一个 C 程序固定调用很多 malloc() 和 free() 函数来分配和释放内存,内存管理所需要的步骤是确定的;另一个 Java 程序得益于 Java 的内存机制,永远不会回收内存,因为 Java 的垃圾回收只会在限定的堆大小快被占满的时候释放内存,所以 CPU 时间就减少了。
合理,但是我有点无语。
此外,他们还顺带反驳了「Java 很慢」的这个观点。我同意他们说的「基准测试是不准的,除非专门为自己的程序定制测试方法」这个观点,但这并没有说服我「Java 不慢,慢是算法问题」。在各种不同类型的 基准测试 中,Java 都不能排在前面,更何况 JVM 启动耗时也是消除不了的瓶颈。
不过这期播客也让我意识到,Java 如果只用来写较大型的 Web 后端,的确不用为内存操心,人们对 Java 内存占用极高的印象往往来自与内存本身就比较受限的场景,比如桌面应用和在配置较差的小 VPS 上部署的应用。用对了地方兴许是好的,但这不妨碍我继续认为 Java 是一门很丑的语言,语法(syntax)和语义(semantics)都很丑。
Linux 内核也难逃 “AI” 爬虫毒手
📜 Creepy crawlies - Konstantin Ryabitsev
kernel.org 管理员 Konstantin Ryabitsev 表示,爬虫越来越来势汹汹,他们怎么提高防御措施都感到难以承受。如今他们超过一半的 CPU 时间都花费在把 Git commit 渲染成 HTML 页面上,这些爬虫想要用爬取网页的方式获取 Linux 内核仓库所有的 commit 信息(大概有上十亿条)。真正合法合规(包括真人和遵循 robots.txt 的爬虫)的访问大约只占 2%。
爬虫在用最蠢的方式获取训练数据,因为 Linux 内核无论是代码还是讨论存档,都是对所有人开放的,他们完全可以把仓库克隆到本地,可他们就是想要浪费别人服务器的算力资源,读那些给人看的 HTML 页面。
一开始他们只是不断地标记和封禁可疑 IP,后来发现不管用了,因为这些爬虫用上了住宅代理,不仅 IP 分散,而且看起来网络流量是从住宅区发来的(顺带一提,你的智能电视里可能就装了为住宅代理提供商服务的 SDK)。封禁 IP 不管用了之后,他们就装上了 Anubis ,这类防火墙的原理是拦截所有请求,在访客的浏览器里做一系列复杂的运算,完成之后提交结果通过请求——这能拦截简单的不能运行 JavaScript 的爬虫,还能提高其他爬虫的成本,毕竟要进行一大堆无用的运算之后才能获取结果。代价是用户感到有些不爽,但至少局势控制住了。没过多久,爬虫又回来了,于是他们提高了 PoW 的运算难度,然后爬虫也开始解决这些更耗时的运算,硬要读 HTML 页面,就是不肯把仓库克隆下来读……
如今,Linux 内核网站的管理者不得不关闭许多功能来减少能够被爬取的 URL 数量。仔细想想,这些爬虫运行在 Linux 服务器上,他们的代码也依赖 Linux 这样的开源项目,大量的工作都是生活在小互联网上的志愿者完成的,如今 “AI” 公司却反过来派出爬虫让他们的生活变得糟糕。
无 “AI” 星期五
📜 No AI Fridays
HTMX 的 CEO 发起了一项倡议,他说:
If the productivity gains from AI are so big, spending one day a week to minimize its downsides shouldn’t be a difficult trade-off. 如果从 AI 那儿得到的生产力提升真有那么大,那么每周一天不用应该不会带来很难取舍的坏处。
总之他提议管理者让员工每周五(或者任何一天,甚至比一天更多)不用大语言模型写代码。在 FAQ 一栏,他还把 Claude、Codex 之类的工具描述得像是香烟一样令人上瘾的东西。在页面的一开始,他引用了好几篇论文说明这项技术的负面影响。
目前,除了 HTMX,还没有任何一家企业签名。我毫不意外。
安全上网实用指南
📜 My practical approach to surfing the web safely
作者简述了他为了保护隐私和安全性,在浏览器和工具层面做的选择。
首先他对比了两个极端:一是使用未经修改的 Chrome 和 Edge 等浏览器,完全不屏蔽广告、追踪器和跨站 Cookies,它们还会直接在电脑上安装 LLM 吃掉几 GB 存储;二是用 Tor 浏览器和 Tails 操作系统,不仅保护隐私,还能做到相当高程度的匿名。前者当然一点也不安全,后者则更倾向匿名而非只是隐私和安全,适用于跨国记者等需要绝对隔离身份的人。
作为普通人,作者是这样浏览网页的:使用受限的 Firefox 浏览器,打开各种隐私设置,启用 uBlock Origin (顺带一提,现在你已经没办法在 Google Chrome 上用这个插件了,换成别的 Chromium 浏览器吧)。她还默认拦截所有 Cookies,启用多账号容器隔离不同的身份,默认容器里绝对不登录任何网站,要登录的网站专门用一个容器。Firefox 如今确实有很多问题,更好的选择是 LibreWolf 或 Waterfox 等分支,不过作者不用这些分支的原因是,他们跟进安全漏洞修复更新的速度会慢一些。
作者还推荐了 Vivaldi 和 Ungoogled Chromium,后者和 Chrome 很像,但删掉了 Google 的后台服务和各种侵犯隐私的特性。我自己比较推荐的是基于 Ungoogled Chromium 开发并且内置 uBlock Origin 的 Helium ,他的默认设置就相当尊重隐私,无需太多繁杂的配置。Helium 背后的开发团队是 imput ,他们在 Liberapay 上有 赞助页面 ,我有给他们捐款。如果你觉得 Helium 好用的话,我也建议你捐款,毕竟他们不通过浏览器盈利。
好的文化才是最好的生产力秘诀
📜
文章挺长,不过可以总结为…… 呃,就是标题上的那句话。说真的,我很赞同作者的观点,但他完全可以写得简练一些。
他认为,就算有了 LLM “提效”,若团队内部本身就没有好的文化,人们不敢提出反对意见,人们只是被分配工作而不了解具体的业务问题,不关注客户的满意度和团队中个人的参与度,不会找乐子,那 LLM 只会让烂产品加速成形。团队应该思考怎么才能让优秀的人发挥他们最大的能力,之后才考虑要不要引入 LLM。
面对那些被 LLM 热潮冲昏头脑的管理者裁掉一批一批工程师的行为,作者觉得这个时候反而应该雇佣更多的人,因为人才是增长的关键,而不是技术。
不过我还挺悲观的,正如除了 HTMX 之外没有人签署 No AI Friday 提议一样,我不觉得会有多少企业真的接受这种观点,他们只在乎降本增效。装睡的人叫不醒。
漫步遐思
闲聊花花
读了 Bluepikachu 写的《 边想边聊 》,看到了他的闲聊花花,有整点报时功能,还会闲聊。我之前玩《超级马里奥:惊奇》的时候就很喜欢这朵花,于是就下单了。
花花可以按下按钮,根据当前时间播报一些固定的句子,比如「找到要找的东西了吗?」「你家待起来真舒服啊」「库巴他们…… 应该不会到这里来吧?」「石头剪刀布!——你挺厉害的嘛」。如果是早上,他还会说「加油哦」「今天的运势是…… 超优秀!」,晚上则会说「今天也辛苦你了」「今天的月亮是什么形状的?」。如果不按按钮,他也会随机地说一些句子,有些句子是不按按钮才会出现的,比如打喷嚏、打哈欠和「喂喂,过来一下!——只是想叫叫看而已」。设置好时间之后,他会整点报时,会在设置好的起床时间和睡觉时间说「早安」和「晚安」。
总之很好玩,我跟他聊得很开心。
花花还会说十种语言,其中包括英语和法语。英语我总觉得听起来不太对味儿,法语我只听懂了 Quoi de neuf?(类似于 What’s up?),还是切回中文吧。
我觉得任天堂这个玩具的主要功能是报时和提供情绪价值,我很容易陷入过度专注的状态然后忘记时间,偶尔被随机的句子和时间提醒打断也算是有帮助。而且,他吸一大口气再大喊「十点!十点!」真的好可爱啊。
《天才雷普利》
找了 Matt Damon 的早期作品来看,结果《天才雷普利》就成了我第一部打五星好评的电影。比起电影的叙事手段和形式结构,我更在乎人物和故事能不能真正打动我,而雷普利做到了:
Ripley 在火车上嗅 Dickie 的腋窝,在房间里兴奋又焦急地提出要帮 Dickie 顶罪,在船上看着 Dickie 笑的样子、说的那句「你知道我们之间有感觉的」,Dickie 对他发火的时候,我感觉我就是 Ripley,想让他快点停下、停下、停下…… 这一切对我来说都太真实了。 他在血泊中抱住 Dickie 的时候,我已经没有办法安心地坐在屏幕面前。
—— 我的 NeoDB 标记
这是一部让我无法安心坐在座位上欣赏的电影,我甚至没办法欣赏它。电影里的故事对我来说太过真实。雷普利看着迪克的神情,那种纯粹的欣喜和迷恋,失落和不解,不被欢迎时的面无表情,我全都经历过。雷普利在船上,大海中央,与迪克对峙,回忆起迪克在浴缸里和他下棋,他那么坚信迪克和他有一样的感觉,我也有过一样的坚信;他在船上被情绪灌满无法逃脱,我也有过那样感到羞愧而却无法逃跑的时刻,那些时刻还历历在目;迪克开始辱骂雷普利,我从座位上站了起来,走到房间另一边用手护住自己,那个男人对我说过的咄咄逼人的话在脑海里闪回。雷普利砸烂了迪克的脑袋,最后他和迪克一起倒在血泊中,只有在他死了之后,雷普利才能安心地拥抱他。
电影的后半部分是雷普利掩盖自己罪行的过程,在令人心惊胆战的密谋、伪装和随机应变中,我还沉浸在海上的那一幕中久久不能平静。此后更多的情节,我就不叙述了。被一部电影击碎理智,完全陷入感性中的体验,还是头一次。
结尾还是轻松一些吧。Matt Damon 把每个男同都必然会有的经验和一个深柜者的自我封闭及矛盾演得相当动人,以及他不仅年老时非常好品,年轻时的细皮嫩肉也十分诱人啊。
- 原文是 CPU cycles,应该是指 Instruction cycles,即指令周期,CPU 完成一条机器指令所需要的时间。
- 我在《 “现在上网哪有隐私?” 》一文中区分过这三个概念。