阅读视图

发现新文章,点击刷新页面。

过度解读是不是读者拥有的绝对权力?I

本期的内容,本身可能也在过度解读喜欢过度解读的人群。


从过度解读到曼德拉效应

每次看到庵野秀明出面,解释自己并未在《EVA》里设定那些复杂、抽象、神秘的宗教元素后,人们还是能从这部动画里看出那些并不属于设定部分的“哲学”。当然,这也是这部动画能够成为现象级的重要原因:当人们参与其中不再是理解意义,而是自我赋予意义时,动画本身所需要表达的含义已经不再重要,重要的是人们能用怎样的解读方式来形成观点、甚至立场。

(AI 生成请勿当真)随手让 AI “过度解读”了 EVA 《真心为你》的海报,下次想要中伤、反对、甚至搞垮谁,真心推荐大家用 AI!咱网络喷子有福了!

另一些有趣的过度解读,往往与诉诸阴谋论相关。就拿宝可梦举例,经典的阴谋论就有“大木博士是小智的亲生父亲”、“关都地区的大部分男性都因为参加世界大战而离开家园”、“宝可梦实际上是人类”、“百变怪是梦幻复制时的失败品”等等。阴谋论的乐趣就在于,大家不需要为自己的猜测“负责”,而只需要提供相关联的部分,然后忽视与关联完全违背的部分。

但利用阴谋论进行过度解读,又确实可以引起很多人的兴趣,所以这些经典的阴谋论才会渐渐变成都市传说级别的“曼德拉效应”。

首先需要搞清楚一个前提——过度解读到底解读的是什么?

就拿我经常嘲笑的“蓝色的窗帘代表忧郁”举例。读者如何解读“蓝色窗帘”这件事都可以,但如果这个解读一旦成为“标准答案”,甚至用来反向解读创作者本身时,过度解读就从赋予意义进阶到了自以为是的层级。

将个人的认知系统作为创作者的创作路径这件事,看上去很蠢,但大部分人都会采用这样的模式——因为很专业的思考路径是最符合人类大脑的,这里先按下不表。


在艺术创作中,作者必死吗?

罗兰·巴特曾提出过一个到如今也已经被过度解读的理论——

作者已死

这句话常常被过度解读为“创作者没有发言权”。

简单来说,“作者已死”是指作品在完成后并公之于众之时,便脱离作者本身,而作品的意义也不再由作者自己决定。即作者可以决定“我写了什么”,但无法完全决定“别人看到了什么”。

但如果读者在拥有无限解释权后,任何解释都可能成立的当下,过度解读、阴谋论、拉党结派、为了反对而反对,甚至出现欲加之罪何患无辞的局面。而这些无限权力的膨胀,不仅仅会停留在作品本身,很有可能会无限延展到创作者,从而发展成质疑动机,甚至迫使创作者进行自我圣洁的自证。

当然,我认为一部作品如果能让读者成为意义赋予者并参与其中时,其实也就实现了其作品价值的部分。不过现代社会,人们因为观点、立场形成的抱团性更强,更可能在短时间内对一部作品、创作者进行过度解读,甚至发生“炎上”事件。

反过来,如果创作者硬刚读者的“过度解读”,也会导致更严重的“炎上”事件,特别是当过度解读的内容拥有了更强的证据链后,其中可能包含事实、逻辑推定,也可能包含纯粹的妄断推测。但这些内容被混杂在一起时,解释权便可以完全覆盖一切本应该由当事人自证的部分(当然,当事人根本无法自证的除外,比如蔡阿嘎与妻子创建的 Hahababy 抄袭事件)。


比“作者已死”更可怕的,是活着的人被过度解读、不被允许发声

之所以我从创作者与读者之间的“过度理解”入手,不仅仅是因为这是一个容易发生“读者已死”的特殊领域。

前段时间,一趟火车上,有两个小女孩买了三个并排的座位,并将中间的座位作为两人放零食的区域。一个无座的乘客想要坐这个放零食的空座位,在遭到拒绝之后,他找来了列车员。列车员在核实购票信息之后,称“座位是她们的,你得和她们商量”。

按照正常的逻辑,这件事本身已经满足契约精神、程序正义。

可哪知道,这段发生在列车上的争执被人拍下并发布至互联网上。随即,事件里两个购买三个座位的小女孩遭到了“炎上”。网友们开始自动脑补这是两个“富家子弟、有钱任性”,甚至还有人彻查这两个孩子的身家背景,试图找出她们在享受特权的蛛丝马迹。

当然,按照“传统剧情”,这里就应该发生人民群众最喜闻乐见的“反转”,比如这两个孩子真就被扒出来是哪家的富家子弟,“霸座”行为一旦摆在事实面前,大家又在当下的社会环境里找到了一个可以暂时释放攻击性与压力的通路。

不过故事确实迎来了反转,但并不是大家所“期待”的:因为两个孩子未满 14 周岁,无法单独购票,所以中间那个座位是她们的母亲用身份证所购买的座位;但母亲本次旅行因为时间安排无法陪同,所以才有了最开始的那些场景。

你有发现吗?其实最开始我也“误导”了你——我说这两个小女孩多买了一个座位,然后将中间的座位作为两人放零食的区域。很显然,这句话包好了一个完整的因果链条:小女孩多买座位→为了放零食。于是从这个定义,才引发了后面值得被延展的过度解读。

但小女孩买这个座位真的就是为了“放零食”吗?


如何应对过度解读?

前两天收到一条私信:一位朋友因《骂人最脏的那句,也是骂自己最狠的那句》引发了思考,问道:

有关过度解读与真实恶意。这种情况也许不少见:一个人在批评某种现象或某些人时,几乎一定会有人表示愤怒并急切地反驳(比如“又不是所有人都这样”,但讲述者甚至没有指出具体的一方)。但若令人感到的不舒服,确实是对方越界或带有恶意造成的,此时再以“过度解读”来自我安慰,似乎容易陷入另一种内耗(至于“无视”,我不敢赌“无视”能让对方消停)。

我在邮件回复里,将过度解读放进了不同的场景,解释我们在面对不同场景的过度解读时,应该采取怎样的策略。这部分留在明天继续。


彩蛋

如何用 AI 攻击我?让它过度解读的同时,让它试图证明我是错的,于是得到以下结论:

  • “你写过度解读,其实是在害怕别人看穿你”
  • “你批评阴谋论,其实是在建立自己的解释霸权”
  • “你拿《EVA》举例,是因为你想把自己包装成庵野秀明”
  • “你说读者不能定义作者,其实是在逃避责任”
  • “你认为别人过度解读,是因为你无法接受别人不喜欢你”
  • “你把所有批评者都归入过度解读,是一种免疫系统”

你看,有 AI 的加持,是不是骂人都变得“有理有据”了。

——

感谢订阅莫比乌斯,如你有任何疑问、观点交流,请前往创作者频道,或私信联系。

大脑充血 Vol.95

读者早上好,这有可能是《大脑充血》最后一期名副其实的「周刊」。我这周在 联邦宇宙 上发了个投票,说我打算改月刊,想投票看看固定在什么时间点发刊合适。结果有超过一半的人选了「不准改月刊」的选项,我真的好讨厌你们

主要的原因是,每周都要更新一次,其实占据了很多我本来就不多的写作时间。我最近在写一篇小说,还有其他不少的项目(包括要写的文章点子,准备写新的博客主题等等),但每次坐在自己的电脑前都想着,自己周刊还没写呢。说实话,这不太利于我的创作和心理健康,再加上我最近读的文章真的少了,有闲心都去读书了(虽然现在的读书进度也很慢了)。

总之,在结合了投票结果之后,我决定把《大脑充血》改成月刊,发刊日期是离每月 1 日最近的周一,这样我就不用把页面路径的 weekly 改掉了,毕竟还是以周为单位。除了固定发刊日,我还会考虑在其他时间随机掉落一些时效性更强的更新,就跟 Taxodium 的 Zine 类似。

不过,下周一(8 月 31 日)刚好就是离九月初最近的周一呢,所以还是会发布的。


吾仅悉落

Little Shop of Horror music cover

Little Shop of Horror

Alan Menken / Howard Ashman

这是音乐剧《Little Shop of Horror》(恐怖小店)的原声带,说实在的,其实没有特别好听,百听不厌的几首只有《Dentist》《Feed Me》或许还有《Suddenly, Seymour》。音乐剧也没有什么深意,如果要看反映底层人民生活的音乐剧,《吉屋出租》兴许更好。对于一部上世纪的音乐剧来说,《恐怖小店》的经典就在于它融合了喜剧、悲剧和血腥恐怖。至少…… 结局的时候看到被花吃掉的主演穿着花衣服走出来唱「Don’t feed the plant!」的时候,还是很喜感的。

另外,《恐怖小店》中 Audrey Two 的形象,貌似是《植物大战僵尸》和《超级马里奥》中食人花形象的来源?我不确定,但总觉得它们之间是有联系的。


心重如毛

仲树让我反思播客这一媒介

说实话,我的心情很复杂,在这周的某天打开小红书之前,我都还是《独树不成林》的忠实听众,尤其喜欢运动、文学、哲学以及闲聊内容。大概是因为和诺兰的采访为她带来了更多的名气和关注,过往的未被发掘的事件也被端到了公众面前。事情是有人发现包括《洛丽塔应该被禁吗?》(我还在 第 75 期周刊 分享过收听这期播客产生的感想)在内的不少单集,在内容、结构、例证等方面都与 Old School with Shilo Brooks 等播客的相关单集高度重合,疑似洗稿。

洗稿事件本身是否属实,我没有考证过,所以这里不下定论,我也失去兴趣了,读者可以自行对比。社交媒体上的骂声也没有什么好看的,我不建议读者让自己陷入混乱的情绪旋涡里。我甚至在她最近一期播客的评论区下看到有人用 LLM 生成了最新的洗稿「铁证」,评论内容还包含没删干净的 Markdown 格式。总之舆论环境中充斥着只要站在反对立场上,谁都可以去踩一脚的言论,甚者,有人尽力克制情绪,冷静地要求仲树以事实证据回应,却被根本没有认真读评论的人当作仲树的支持者,回复说「我能不能把你的作品也拿去洗稿?」。另外国内平台显示 IP 属地的设计真是肮脏,有人仅仅因为他人的 IP 属地为上海,就说「我知道你在上海工作压力大,但你也不能这么骂人啊」。我只能说,仲树本人和这些参与舆论的人,都不是聪明人。

看起来比短视频更有营养的播客媒介,实际上也无法脱离其社交媒体性质带来的必然性。人们被情绪驱动,没有人读和听对方究竟说了什么,人们用臆测建立起用来攻击的假想敌。不再收听《独树不成林》之后,我貌似很难再找到感兴趣的播客内容(所剩不多的还有《 词与物 》),我才意识到这样的播客仅仅是播客生态中的个例,更意识到,如今不会因算法和商业化而陷入俗套,也不会让创作者因名气而自取灭亡的文化载体,就只剩纸质书了——纸质书还没有广告,没有 LLM 废料,更没有操纵用户的推荐算法以及一切如今人们在抱怨的东西,为什么人们不能多读书呢?

另一类播客我是纯粹抱着娱乐态度收听的,比如《 出逃在即 》的渣男渣女系列。偶尔我需要走很长的路,或者做接近一个小时的家务,我没办法看书,脑子里又没什么可想的,于是就戴上了耳机。我本想就此摘掉耳机,与自己多相处,可没过多久,我虽然没有重新安装小宇宙,但我的确又打开了某个基于 RSS 的播客播放器。我发现了自己的另一层情感需求:由于我没有能和我对上电波、畅快聊天的朋友,所以需要在耳朵里听到人的声音。

这大概就是我对播客媒介的反思了:一,它并不比短视频高级到哪里去,它仍受社交媒体的必然性、商业化和庸俗化、科技公司的意志操控,作为一种文化媒体来说它并不纯粹(至于不纯粹是不是个问题,要看语境);二,私人来讲,我收听播客并不是为了满足智识需求(阅读是更好的选择),而是为了满足某种心理需求,在满足心理需求的语境下,我允许一定的庸俗进入我的世界。

简单来说,我现在不把播客当作严肃媒介,除非你的播客和独立博客一样,架设在自己的服务器上,花自己的钱,对所有人开放却又不向任何人索取。

看完《奥德赛》之后我也成了「诺兰黑」

📺

戴锦华老师说她从来没有被诺兰的人物和故事打动过,除了《奥本海默》,由于完全不能从情感上被撼动,所以只能在理性层面欣赏。大部分时候她都只能保持「欣赏但不喜欢」的态度,甚至会尖酸克薄地指出叙事的漏洞。若是故事本身就很动人,那这些漏洞也不值得一提了。简单来说,她觉得诺兰的作品,形式往往要高于内容。诺兰特别喜欢错综复杂的叙事结构,但故事本身却撑不起叙事。

看完电影《奥德赛》之后我连着写了三篇影评。 第一篇 我对诺兰导演还抱有尊敬,我试着从哲学层面理解了他对神明的处理,对保留下来的三位神话角色雅典娜、瑟茜和卡吕普索分别做了什么样的改编,以及他还抹除了独眼巨人波吕斐摩斯的人性。 第二篇 我其实已经有些冷嘲热讽,比方说,我写得诺兰之所以删掉信使赫尔墨斯和风神埃俄罗斯,是因为与他们相关的剧情太过「超自然」,又不能像「雷电被误以为是宙斯,海浪的运动被误以为是波塞冬」那样诠释——他不能想出一个能囊括所有神明的解释,所以把不能用他的理论解释的神明都很方便地剔除在外。 第三篇 我就开始直抒胸臆,论证忒勒玛科斯是全电影塑造得最失败的角色,毫无成长,阐述包括海伦的刀疤在内的改变策略是为了服务于「文明的起落」「赎罪」「反战」等主题,而这些主题并不令我满意。电影中的奥德修斯不仅没有让我感动,反而令我厌恶,那个狡诈、自私但真实、爱小家小事胜过大义的奥德修斯,在诺兰大刀阔斧的改编下,变成了一个不存在的、伟光正的高大男人形象,辅以一个爱小家小事胜过大义的女人。最后,我写道:

文明的巅峰时期,荷马应该歌颂英雄与美德。文明的没落时期,我们不必盯着曾经的辉煌和应有的美德发愣,痛苦本身就值得被言说。

诺兰的《奥德赛》唯二令我有些动容的角色,一是被他改成愁苦妇女的瑟茜,因为她反映了现代人面对人际关系和混乱的外界时感到的挣扎,二是奥德修斯的狗。

简单来说,诺兰选择的主题并没有说服我对他的各种改编决策感到满意,我不想仅仅为了听到「应该像你想要被别人对待的那样对待别人」这种大道理,失去费埃克斯人、埃俄罗斯和经典的「没有人」智斗独眼巨人桥段,更别提这还是一个在很大程度和令我感到爹味溢出屏幕的主题。

所以,我也只能想戴锦华老师一样,欣赏电影的叙事和拍摄技法(说真的,找一米五的替身演员和两米高的演员拍巨食人族的戏,的确很亮眼),但我不喜欢。


鸡头蛇尾

Bun 用 Rust 重写出的灾难

📜
📜

Rust 是门好语言,但开发者们对它过于强烈的追捧,竟让我对它生起一丝厌恶来。你们怎么一个一个的都争着把本来就能跑的代码重写成 Rust?而且还是用 LLM 重写?新兴 JavaScript 运行时、Node.js 的后继和竞品 Bun 在前不久也用 Claude 把原来的 Zig 代码重写成 Rust。据我所知,Zig 的社群相当有凝聚力,当时他们就对 Bun 的重写感到失望。事到如今,Bun 的创造者 Jarred Sumner 终于自食恶果了。

6 months ago, most of Bun’s PRs came from people prompting Claude. Nowadays, most of Bun’s PRs come from Claude prompting Claude.

六个月前,大部分 Bun 的 PR 还来自人们给 Claude 输的提示词。如今,大部分 Bun 的 PR 已经是 Claude 给 Claude 写提示词产生的了。

Zig 软件基金会的主席 Andrew Kelly 表示,Jarred 在 LLM 之前写的 Zig 代码就已经不堪入目了。Zig 团队会阅读用户写的代码,以此了解当前这门语言是怎么影响用户的。当他们读到 Jarred 写的代码时,他们吓呆(horrified)了:

We became increasingly horrified at the programming practices we saw in Bun’s codebase. Hacks on top of hacks. Abuse of assertions. Most of all, recklessly speeding past feature after feature with very little time taken for reflection and elimination of bugs and technical debt. Jarred was already writing slop well before he had access to LLMs.

我们对 Bun 代码库里的编程实践感到越来越害怕。Hack 一个接一个。滥用断言。最严重的是,鲁莽地加速推出一个又一个的新功能,几乎没有花时间反思、消除 Bug 和技术债。Jarred 在能使用 LLM 之前就已经在写废料了。

这篇文章 列出了时间线,说明 Jarred 是怎么一次又一次践踏用户的信任,不断保证 Bun 1.4 明天就会发布,然后不断推迟发版的。其实不难从 GitHub 上的贡献量看出端倪,在过去的一个月里,15.8k 条 commit 来自 robobun ,一个自己写提示词生成代码的 LLM 机器人(Claude prompting Claude),相比之下 Jarred 作为贡献最多的真人,只提交了不到一千条 commit。

他是怎么搞清楚 Claude 都做了些什么的?他怎么保证交付可靠的软件产品?答案:他没有。如果他真的清楚自己的项目进行到什么步骤了,还需要解决什么问题,他不会这么拿不准 Bun 1.4 的发布日期,屡次推迟。Jarred 显然不知道自己在干什么,在 Andrew Kelly 与 Oven 的员工(以及那些面试过 Oven 的人)的交谈中,他得知 Jarred 是个相当糟糕的管理者:

Jarred was a stinky manager. Poor communication, unrealistic expectations, low empathy, no experience. Just a total shit show, from an employment perspective.

Jarred 是个糟糕的管理者。很难沟通,有不切实际的期待,同情心很低,缺乏经验。从雇佣关系的角度看,纯粹是在搞笑。

我简单翻了翻 Bun 最近的提交记录,几乎全是关于某个 Issue 的 commit,然而这些 Issue 本身也是 robobun 写的。我好不容易翻到了一条 Jarred 本人提交的 commit,结果发现:他删除了几条测试用例。

LLM 热潮没有制造新的问题,它放大了原本就存在的问题。Jarred 在 LLM 之前就不在乎代码质量,Bun 是纯粹的野心的产物;Jarred 作为领导者和项目维护者的性格缺陷,可能也被 LLM 自我增强——如果大部分时间都在和机器对话,又怎么会从真人那里获得真实的反馈呢?

最后,尽管一直遭到诟病,目前最稳定的 JS 运行时仍然是 Node.js。如果有选择技术栈的自由,我建议不要在浏览器以外的地方使用 JavaScript。

Farside 已关停

📜

我在 第 73 期周刊 推荐过 Farside,它可以把用户重定向至某个服务的替代前端,比方说如果不想在观看 YouTube 视频时被谷歌追踪和分析,就可以用 Farside 跳转到一个公开的 Invidious 实例。替代前端往往都用了尽可能少的 JavaScript 脚本,摘除了追踪器和广告,经过服务端从源站转发内容,唯一的缺点是服务不稳定。

Farside 的另一个用处是负载均衡,由于公开实例往往是社区维护或个人维护,资金不足,没有能力支付大额的网络流量。Farside 会自动查询节点状态,自动将用户分配到某个可用的实例。这本来是很好的愿景,直到……

Farside was created before the explosion of AI-driven scraping and bot traffic. As a result, querying instance status is no longer reliable due to bot-detection and challenge systems (which I understand and am in favor of, btw). Since the project is no longer practical to operate and maintain, it is being archived.

Farside 是在 AI 驱动的爬虫和机器人流量爆炸之前创造的。结果,查询实例状态由于机器人检测和质询系统而不再可靠(顺带一提,我理解并且支持反爬)。既然运行和维护这个项目已经不再切实,目前正在归档。

替代前端的另一个特点是内容更容易被爬取,因为这些前端尊重用户,没有加载大量消耗 CPU 和内存的静态资源,大部分内容也都直接写在 HTML 里,不需要 JS 渲染。为了避免成为想要训练 LLM 模型的公司的靶子,他们不得不采取更严厉的反爬措施以保证安全,比如架设 Anubis 。Farside 也需要向这些实例发送机器人特征明显的请求来确认它们能够访问,由于几乎所有实例都加上了会拦截并质询包括正常用户在内的所有流量的防火墙,Farside 根本无法有效地获取到服务状态。

不能指望科技公司良心发现,于是要接受现状:在 2026 年以及相当一段时间内,访问小互联网上的网站,自己都有可能被 Anubis 拦下,证明自己不是 AI 爬虫。这很恼人,但同时我又清楚,他们不这么做就很难活下去。真是让人感到压抑。

GitHub 又宕机

📃

与此同时,GitHub 在八月十七号宕机了接近八个小时。

我已经懒得评价了,只是转达消息而已。我自己其实没有受到影响,因为我早就从 GitHub 迁移出去了。现在我会把相对严肃的自由软件项目放在 Codeberg 上,偏向实验性的项目放在 Tangled 上,以上所有仓库都会在自己搭建的 Forgejo 实例上归档(归档并不麻烦,给自己的 Git 仓库设置两个 push remote 就好),自己的实例上也会有 Neovim 配置、dotfiles 和未公开的项目之类的东西。

GitHub 之外还有很多选择,如果不是为了求职的时候简历好看点,我可能已经销号了。

大模型应该变得更无知

📜

可能令人意外,这一节没有在批评 LLM 的应用。Well, know thy enemy.

作者表示市面上的模型看起来性价比变得越来越高了,人么可以用更少的参数做更多的事情。能耗在降低,模型也没有变得更难用,这是为什么?

事实是模型在某种程度上的确变得更蠢了,参数小的模型很难不搜索网页和调用工具回答某些简单的事实性问题,目前最好的模型也只能达到 53% 的正确率。但为什么非要模型“回忆”起正确的答案呢?把正确的知识塞进模型权重里很不划算,而且每隔一段时间都要重新训练才能刷新这些知识,大部分时间有些知识都是过时的。这也解决不了 LLM 幻觉。

所以更好的策略是,用更少的参数训练出“推理”能力更强的模型,把获取知识的步骤交给驾驭层(Harness),由 LLM 调用 API、读取本地文件、执行 Shell 命令来获取最新的知识。模型的“推理”能力比知识更重要。

不过模型应该没办法通过驾驭层获取如何写代码有关的知识吧?编程专精的大模型应该还是要把大量的代码训练进权重里的,也不会轻量。不过,如果大模型真的能现场搜代码并给出来源的话,想必能解决一直被我反复提起的「协议清洗」问题,即使用 LLM 生成的代码就相当于不需要遵循开源协议地使用其他人写的代码。我想没有想吸引用户的厂商会这么干吧,兴许学者们可以试试。


漫步遐思

这周买了一对哑铃,不重,单只三千克。我发现上班之后,自己运动的动力就变少了,以前还能在工作日做整整一个小时的 HIIT,现在回到家已经没有什么力气了。我其实很推崇自重训练,不用器械的话更安全不容易受伤,而且从推墙到跪姿俯卧撑再到标准俯卧撑,其实也是渐进的锻炼了。虽然做不到器械那样精细,但也够了。

不过我最近发现很难说服自己做俯卧撑,因为俯卧撑需要调动几乎全身的肌肉,不只是手臂要发力,胸肌也要用力,核心要维持平衡,肩背也不能闲着。可要是我没力气呢,下班之后我想要锻炼却不想要把整个身体都累得死去活来,做弯举和平举就刚好能满足。

另外,我知道我力量基础确实不太行,但这三千克的哑铃怎么做起来很轻松,但第二天和第三天,肱二头肌都酸胀得要命啊。

骷髅编程

软件架构的工作,除了搞清楚应该设计多少、什么样的组件来实现需求,还应该考虑组件之间的依赖关系。SOLID 原则之一的「依赖反转原则」是指数据流向应该与依赖的方向相反,比方说,数据从后端流向前端,但后端不应该依赖前端,而是要让前端调用后端提供的接口。此外,组件之间有抽象和具体之分,核心业务逻辑就是高度抽象的,而数据库逻辑(用什么样的数据库、用什么 ORM、具体怎么实现)就是相当具体的,业务逻辑不应该依赖数据库逻辑,这怎么做到呢?

比方说,我的业务逻辑是:不断接收某个源喂过来的数据,如果某条数据满足条件,就把它存在数据库里。如果我要编写这整个链路,难道不是要引用数据库组件吗?我怎么做到不直接依赖组件?

接口和 vtable

接下来我将分别演示在 OOP1 语言中和在函数式编程语言中,如何实现「不依赖数据库组件,但描述存储操作」。我使用的语言是 Go 和 Clojure,其中 Go 不是纯面向对象语言(缺少继承机制),Clojure 也不是纯函数式语言(但我也不会写 Haskell 啊),但用到的思想和语言特性是可迁移的。

接口是抽象的

接口定义其实比核心业务逻辑还要抽象,因为接口只定义了一系列函数签名,而没有包含任何具体实现,而核心业务逻辑还包含对相关函数的实现。依赖关系应该从具体的逐渐指向抽象的,核心业务逻辑依赖最抽象的接口便符合这个原则。

我们先定义一个接口:

package interfaces

type EntryStorage interface {
 GetEntry(id int) Entry 
 PutEntry(entry Entry)
 DeleteEntry(id int)
}

接下来业务逻辑只要依赖这个接口就好了:

package receiver 

import "example.com/interfaces"

type Engine struct {
 Storage EntryStorage
}

// ReceiveEntry 检查数据条目是否合格,如果合格就存储
// 并返回 true,如果不合格就返回 false
func (e *Engine) ReceiveEntry(entry Entry) bool {
 if (isQualified(entry)) {
 e.Storage.PutEntry(entry)
 return true
 }
 return false
}

此时,我们还没有编写 EntryStorage 的具体实现,我们不知道它用什么数据库,甚至不知道它用不用数据库,EntryStorage 完全可以把数据条目放进内存里、写进磁盘文件里、上传到某个云服务,甚至直接丢弃。

我们不需要编写具体实现也能测试这个软件,测试用例可以这样写:

package receiver

import "test"

// 就地实现一个假的存储
// 不仅因为我们不需要真的存储
// 还因为测试业务逻辑时,本就不应该关心存储有没有问题
// 不能让持久层的问题也让业务逻辑的测试用例失败
type FakeStorage struct {
 data []Entry
}

func (s *FakeStorage) GetEntry(id int) {
 return s.data[id]
}

func (s *FakeStorage) PutEntry(entry Entry) {
 s.data = append(s.data, entry)
}

func (s *FakeStorage) DeleteEntry(id int) {
 s.data = append(s.data[:id], s.data[id+1:]...)
}
// 至此,我们已经写完了实现 EntryStorage 接口的必要函数
// FakeStorage 现在可以直接注入到业务逻辑中进行测试了
// 你或许会觉得把 id 当成 Slice 的索引不太合适
// 但这仅仅是测试而已,只要不影响测试用例的有效性就好

func TestReceiveEntryQualified() {
 // 装配出完整的业务逻辑引擎
 storage := FakeStorage{ data: make([]Entry, 0) }
 engine := Engine{ Storage: storage }

 // 注入假数据并测试
 entry := makeQualifiedFakeEntry()
 ok := engine.ReceiveEntry(entry)

 if !ok {
 t.Errorf(`ReceiveEntry(qualifiedEntry) = %v, want true, nil`, ok)
 }
}

如果想要手动启动一个能够运行的实例,也不必着急实现数据库逻辑,同样的 FakeStorage 也可以在启动时喂给业务逻辑,它不知道也不关心数据最后去了哪里。有关接口的更多用法,可以阅读我的另一篇文章《 Are We Interfacing Yet? 》。

函数是一等公民

在函数式编程语言中,函数可以作为值传递,像这样:

element.onclick = (event) => {
 alert("我被点击了!")
}

这段 JavaScript 代码给 DOM 元素的 onclick 字段赋值,赋值的内容是一个函数定义。当元素被点击时,它就会执行 onclick() 函数,也就执行了我们传递给它的代码。这种函数一般也叫作回调函数(callback)。在支持函数作为一等公民的动态类型语言中,完全可以通过传递回调函数来实现接口能做到的事情——如果不在乎类型安全的话。

我们假设 engine 有一个 :storage 字段,这个字段是映射(map)类型,里面存的全是函数。

(def storage {:get-entry entry-storage/get-entry
 :put-entry entry-storage/put-entry
 :delete-entry entry-storage/delete-entry})
(def engine {:storage storage})

注意,这只是假设,我们实际上还没有构造这个 storage 常量,因为 entry-storage 这个命名空间还不存在,我们还没有实现具体的数据库逻辑。这个 storage 是在装配的过程中被喂给业务逻辑的。

跳过接口定义,直接开始写业务逻辑。在此之前要说明 Clojure 的一些语法,Clojure 可以用关键词取出映射中的某个值,就像这样:(:get-entry storage)——这段表达式会返回 storage 当中键为 :get-entry 的值,在这里返回的就是一个函数引用。要调用这个函数,就要这样写 ((:get-entry storage) args ...)

(defn receive-entry [engine entry]
 (let [storage (:storage engine)]
 (if (qualified? entry)
 (do 
 ((:put-entry storage) entry)
 true)
 false)))

同样地,如果要测试这个程序,只需要传入一个假的 storage。甚者,由于不需要实现接口,也就不需要实现接口中所有的函数,我们可以让 fake-storage 只包含这个测试文件用到的函数。再甚,我们都不需要真的实现任何形式的存储。

(def fake-storage {:put-entry #(println % "已保存!")})
(def fake-engine {:storage fake-storage})
(def entry (make-qualified-fake-entry))

(defn test-receive-entry-qualified []
 (is (receive-entry fake-engine entry)))
;; 这个测试用例太短了可能让人难以理解
;; is 是 Clojure 的断言语句,传入的是 true 就表示测试通过
;; 这里 receive-entry 收到的是合格的 entry 
;; 照理来说就应该返回 true,所以直接把它的返回值放进 is 里

这样一个包含函数引用的映射,叫作 vtable。这么做当然有明显的坏处,没有类型定义,我们无法确定得到的 storage 映射是否真的包含我们需要的函数引用,也不确定得到的函数的函数签名(形参和返回值)如我们预期的一样。这看起来的确是动态类型语言的缺陷,但如你所见,我们已经写了测试用例了,倘若我们的 vtable 真的有问题,它会呈现在单元测试的结果里。只要写了覆盖率高且合格的测试,就不必担心类型问题会导致软件健壮性下降;反之,不写测试用例,紧紧依靠编译器的类型判断的静态语言程序,也不见得有多安全。

而且你看看没有接口和类型定义的 Clojure 代码有多简短吧!

软件的骨架

如你所见,通过编写接口或使用回调函数,我们让软件中某些具体的部分变成了插件。还是以 JavaScript 举例,网页中的一个按钮点击之后具体会发生什么就是具体实现,而按钮可以点击这个事实就是一个接口,或者说协议。这个协议可以被更清晰地阐述为:点击了按钮之后就会发生某些事情。所谓的「某些事情」是抽象的、不定的、可替换的、可插拔的。JavaScript 通过回调函数实现这个协议。

编程实际上就是类似于「点击按钮之后会发生某些事情」的对目标系统的描述,只不过使用了特定的编程语言。如 Frederick Brooks 在《No Silver Bullet》中所言,软件的内在性问题之一是易变性。如何应对软件需要经常改变的事实?把相对不容易改变的东西和容易改变的东西分离开来,不容易改变的就是最抽象、最高层次的业务逻辑,容易改变的东西就是数据库、按钮做的「某些事情」的具体实现。网页上每个按钮的行为都不一样,可以说按钮的行为是具体且易变的,那为什么每次有人要做一个按钮的时候,我们不需要修改按钮内部的代码?那是因为我们已经用回调函数把抽象的和具体的隔离开来了。这种设计无处不在,以至于人们使用的时候毫无感知,自己需要设计的时候就很难考虑到这点了。

再回顾前文有关存储层的例子。假设已经实现了基于 MySQL 的存储,但用户突然要求兼容 PostgreSQL,只需要用 PostgreSQL 的相关库实现 EntryStorage 接口(也就是那三个函数),然后在装配 Engine 时,把 MySQL 的具体实现换成 PostgreSQL 的具体实现。存储层是可插拔的。

再假设,你在开发这个软件的期间一直使用 FakeStorage 把数据存在内存里,等核心的逻辑都完成时,你突然意识到这个软件要存储的数据体量非常小,而且读写的频率很低,连 SQLite 都不用上,用 JSONL 文件存储就行了。这下你就不必设计数据库 Schema 和编写 SQL 语句了,用 Go 语言自带的 JSON 标准库读写磁盘文件就好了。接下来你用几行代码实现了 JsonEntryStorage,插入 Engine,完全不用修改 Engine 里面的代码。

软件的其他部分也都可以这么做,让各种组件都变成核心业务逻辑的插件,一方面把复杂度外包出去,软件最中心、最内部的组件只需要描述「点击按钮之后会发生某些事情」这类简单且清晰的逻辑;另一方面,面对需求的变更,只要不涉及最核心的业务逻辑,可以把变更集中外围的一两个插件当中。在开发的初期阶段,完全可以把精力放在最重要、最核心的逻辑上,把数据库等底层细节都抛之脑后。

开发者只需要在编写核心业务逻辑的时候留下几个必要的接口,调试时可以使用假的、简化的实现,之后再将真实的实现装配和注入到核心组件中。虽然很不愿意称赞这门邪恶的语言,但是 Java 生态里的 Spring 框架做的就是这件事情。Java/Spring 程序员往往不需要让组件之间相互依赖,Spring 会自动将具体实现装配到对应的类当中。有一说一,这种自动化的依赖注入和控制反转(DI/IoC)框架过于方便,导致我观察到的很多学艺不精的 Java 程序员对基本的架构设计原则毫无认知。

在我看来,这让编程变得跟写伪代码一样简单,描述某个软件行为却发现自己需要用到另一个组件时,或者想要把某个组件分离出去时,只需要假设某个类、某个函数存在,然后直接写就好。比方说,前文我就假设了 isQualified(entry Entry) bool 存在(在 Clojure 的例子中,我用的是 (qualified? entry)),但之前的写法并没有留出接口,让我稍作修改:

package receiver 

import "example.com/interfaces"

type Engine struct {
 Storage EntryStorage
 Judge EntryJudge
}

func (e *Engine) ReceiveEntry(entry Entry) bool {
 if (e.Judge.IsQualified(entry)) {
 e.Storage.PutEntry(entry)
 return true
 }
 return false
}

EntryJudge 的定义自然是:

type EntryJudge interface {
 IsQualified(entry Entry) bool
}

这是 Go 推崇的「小接口」,更方便组合复用。上面的例子中,我把多个接口组合在一个结构体里,供核心业务逻辑 ReceiveEntry() 使用。如果遇到更复杂的逻辑,也可以拆出更多的抽象接口,而我们在一开始只需要面向接口编程,不需要考虑肮脏的底层细节扰乱心智,也不会因为迟迟解决不了某个数据库连接问题而在一开始就感到挫败。

对于那些愿意与 LLM Agent 合作的人,手写接口定义和最抽象的核心业务逻辑并不困难,而留下了明确的接口、函数签名、使用场景和预期行为之后,LLM 也更有可能生成准确的代码。而且,即便没有审查 LLM 生成的具体实现(不推荐不审查就交付代码),也不会因为代码量增长而失去对整个代码库的理解,因为最核心的逻辑是开发者自己手写的。

我把这种近似伪代码的编程方式称作「骷髅编程」,至于后续是人还是 LLM 来填充血肉,都不影响骨架的正确性。

实例:寻找互联网中的环路

搭建骨架

我最近在考虑写这样一个软件,背景是这样的:既然写博客的人有不少都喜欢相互引用,如果跟随这些引用,有没有可能最终回到自己的网站呢?如果可能,那需要经过多久呢?在路上会遇到什么样的网站?具体的需求就是:给定一个网站,找到这个网站的一些外链,分别爬取这些外链并找到他们引用的外链,这样一直跟随外链,直到找到链接到自己网站的外链。

好,既然需求已经清晰了,就直接开写吧。我选择用 Clojure 手写。之前我用 Clojure 写的例子都是用 vtable 实现的可插拔架构,其实这门语言也有接口(或者说协议),可以用 defprotocol 定义。

其实我希望我的核心业务逻辑本身就是一个接口,如果我的业务逻辑有了很大的改变,我也可以写新的实现来替换,抑或是我需要给用户提供两种截然不同的模式来完成这个需求,也可以根据配置装配不同的接口实现来实现模式切换。

;; 我给这个核心组件取名为奥德修斯(Odysseus)
;; 因为我们要做的事情就是送它出去,然后让他找到回家的路
(defprotocol Odysseus
 "Core engine, into which other components are loaded."
 (start [this] "Get Odysseus on his way."))

;; 以下是我们的具体实现
;; 它现在连骨架都没有,还只是个空壳
(defrecord Ody []
 Odysseus
 (start [_this]
 (println "Starting Ody...")))

;; main 函数是程序的入口,它创建 Odysseus 引擎
;; 然后调用 start 函数启动它
;; 之后我们也会把新增的组件装配在这里
(defn -main
 [& args]
 (let [ody (Ody.)]
 (start ody)))

现在执行这个程序只会打印 Starting Ody...,是时候搭建骨架了。在此之前,回顾我们的需求描述。

给定一个网站,找到这个网站的一些外链,分别爬取这些外链并找到他们引用的外链,这样一直跟随外链,直到找到链接到自己网站的外链。

那么这个骨架应该包含:

  1. 获取这个给定的网站
  2. 获取给定网站中包含的外链
  3. 获取外链的外链
  4. 如果外链的外链指向一开始给定的网站,就给出一条结果

我已经看出循环和递归的结构了,这个程序就是一直在提取外链而已。不少程序员的直觉可能是立刻动手开始编写获取 HTML 网页的逻辑,考虑应该使用正则匹配还是类似 Beautiful Soup 的解析工具,获取到一条环路之后应该存哪儿这些问题。But you and I should know better.

照着我现在的理解,先写一段代码试试看:

(defrecord Ody [home over? crawler ]
 Odysseus
 (start [_this]
 (println "Starting Ody...")
 (loop [journey []]
 (when (empty? journey) 
 (recur [home]))
 (when (over? journey)
 journey)
 (let [ways (find-ways crawler (last journey))]
 ;; ...
 ))))

我在写的时候遇到了一个问题,但在讨论这个问题之前,先来看看我写了些什么。

loop 是 Clojure 中的循环结构,它的第一个参数是可变数量的 binding,装在一个向量类型(也就是 [])里面。你可以理解为我们构造了一个函数,而在这个 binding 里填入的是函数的参数和参数的初始值。loop 体中有 recur 函数,这就是递归的意思。recur 让程序重新回到 loop 体的开头,并且重新给 binding 赋值——这其实就是递归函数,只不过用了循环的写法,而且 Clojure 给 recur 做了优化,即便多次递归也不会让函数调用栈溢出。

在这个递归函数里,程序先判断 journey 是否为空,如果为空就递归并传入 [home] 作为 journey 的新值。这个 home 就是环路的起点也是终点。由于在写代码的过程中意识到我需要 home 的值作为起点,所以我在 Ody 的字段里添加了 home。我用向量类型表示一条路径,向量的第一个元素是起点,中间的元素是路途中经过的链接,最后一个元素是终点,也就是说,当第一个元素和最后一个元素相等时,这个 journey 就可以作为结果返回了。

不过,我没有写 (= (first journey) (last journey)),而是引入了回调函数 over?,使用它判断是否结束。前者是具体的,后者是抽象的。还有一个考量是,判断环路是否找到的标准不定,是找到完全一样的 URL 才算呢?还是找到同一个域名就算呢?还是找到同一个子域的也算呢?不知道,不关心,写个抽象的函数先用着吧。由于在写代码的过程中意识到要有一个判断路途是否结束的函数,所以我在 Ody 的字段里添加了 over?

如果 journey 既不是空的,也没有被判定结束,那么就说明搜寻还在进行当中。这个阶段要做的事情,就是爬取最新的一条 URL((last journey)),找到新的外链。一如既往,我意识到自己需要一个爬虫,所以添加了 crawler 字段,调用它将会提供的 find-ways 函数获取外链。这之后,只要用其中一个 URL 作为新的 (last journey),再次递归就好了。

等等,「其中一个」?如果一个页面有多个外链,我要怎么确定应该用哪一个?话说回来,我肯定不能让程序只找到一条环路就停下吧?这样简单的操作完全可以并发执行,可如果要并发执行,而每递归一次都会得到多个外链的话,并发数不会指数级上升吗?就算控制全局并发数,似乎也有太多任务了,根本跑不完,看起来应该做剪枝和限制,比方说剔除掉不太可能引用自己的网站(Microsoft、Google 等),除了自己的网站,后面的每一条最多发散出 3 条外链等等。

不管不管,太复杂了,先抽象出一个门卫组件干这个事情吧,具体实现之后再说。

(let [ways (->> (last journey)
 (find-ways crawler) 
 (filter-ways gatekeeper))]
 ;; ...
)

至于并发控制,Clojure 支持和 Go 一样的并发模型,所以我们只需要一个固定缓冲大小的 channel 就好,此时就要考虑两种模式:

  1. channel 当作信号量(semaphore)来用,初始化时存入几个空值当作信号量,每当有人试图并发一个新的爬取任务时,都要尝试获取信号量,如果信号量消耗完了,就要原地等待。
  2. 把待爬取的 URL 放进固定缓冲的 channel 里,让几个独立的爬虫协程读这个 channel;当缓冲写满,而爬虫的消费能力不足时,尝试写入 channel 的协程就会被阻塞。爬取一直在进行,而 gatekeeperover? 等组件,包括 Odysseus 本身,都自动地根据爬虫的消费能力调整任务进行的速度。

第二种模式还解决了任务分发的问题,看起来也很干净。实际上这还把爬虫 crawler 与核心逻辑 Odysseus 解耦了,我只需要把爬取请求放进 channel 里,然后等待结果就好了。不过这引发了新的问题:没有函数调用就没有返回值,我要怎么拿到爬取结果呢?

这个好解决,我们可以塞一个向量给 channel,向量的第一个元素是要爬取的 URL,第二个元素是一个新的 channel,等爬取任务完成之后,爬虫就把结果写入这个 channel,而 Odysseus 这边只需要等待就好了。另外,如果决定把 crawler 分离出去,那在收到 crawler 的结果之后再用 gatekeeper 筛一遍,似乎有些没道理,可以把 gatekeepercrawler 装配到一起,而 crawler 只返回已经过滤之后的结果——幸好我们的组件都很小巧抽象,做这样的改动并不会很麻烦。

(defn- start-worker [crawler gatekeeper crawl-queue]
 (go-loop [task (<! crawl-queue)]
 ;; task is a vector like [url channel]
 (let [urls (->> (first task)
 (find-ways crawler)
 (filter-ways gatekeeper))]
 (>! (last task) urls))
 (recur (<! crawl-queue))))

(defrecord workers [crawler gatekeeper crawl-queue] Workers
 (start-workers [_this n]
 (dotimes [_ n]
 (start-worker crawler gatekeeper crawl-queue))))

如你所见,这段代码可以启动 nworker,而每个 worker 都是一个异步的循环,一直尝试从 crawl-queue 中读取任务。一旦读取到任务,就用 crawler 爬取外链,用 gatekeeper 过滤外链,然后把结果通过 channel 返回。至于核心逻辑 Odysseus 这边,只需要把任务传给 crawl-queue,然后从自己设定的 channel 中取出数据就好了。

不过我很快发现 looprecur 已经不适合 Odysseus 了,因为每次循环都可能发散出多个 URL,但一个 loop 只能用一次 recur,也就是只能传递一条新的 journey 路径给下一级递归。为了产生多条分支,是时候请出真正的递归函数了!

(defn- hop [journey over? home crawl-queue]
 (let [journey (if (empty? journey) [home] journey)]
 (if (over? journey)
 ;; if journey's over, print the only one
 [journey]
 ;; if not, keep crawling and find fresh urls 
 ;; start multiple hop forks and concat their result together
 (let [receive-chan (chan)]
 (>!! crawl-queue [(last journey) receive-chan])
 (let [urls (<!! receive-chan)]
 (mapcat #(hop (conj journey %) over? home crawl-queue) urls))))))

(defrecord Ody [home over? crawl-queue] Odysseus
 (start [_this]
 (hop [] over? home crawl-queue)))

其实一开始我就犯了个小错误,Odysseus 返回的不应该是一条 journey,应该是它能找到的所有环路。这里提取出来的递归函数是 hop(跳)。如果 journey 是空的就直接改成 [home],没必要再递归一次。如果判定结束了,就返回只包含一个环路的向量 [journey]。如果没结束就继续往下,把 URL 用 channel 交给爬虫 workers。拿到多个 URL 结果之后,对每个 URL 执行一次 hop 递归,最后把子 hop 的结果全部拼接起来——这一步用 mapcat 就可以做到,非常省事。

现在还剩下的问题是,尽管爬虫是异步的,与核心逻辑解耦了,但核心逻辑本身是串行的,一次递归执行完毕之后才执行下一个,同时也只会有一个爬取任务被传入 crawl-queue,根本利用不了并发资源。所以,要把 hop 也改成并行的。

本 Go 程序员写 Go 程序写得太多了,一开始也想用 gohop 并行,然后便踩了坑,写出了很复杂的代码。实际上 Go 标准库里的 future 就足够好用。future 同样异步执行,返回一个引用 ref,之后 deref(或者用语法糖 @)就能拿到结果,如果 future 没有完成,deref 的调用者就会原地等待。

(defn- hop [journey over? home crawl-queue]
 (future (let [journey (if (empty? journey) [home] journey)]
 (if (over? journey)
 ;; if journey's over, print the only one
 [journey]
 ;; if not, keep crawling and find fresh urls 
 ;; start multiple hop forks and concat their result together
 (let [receive-chan (chan)]
 (>!! crawl-queue [(last journey) receive-chan])
 (let [urls (<!! receive-chan)
 futures (mapv #(hop (conj journey %) over? home crawl-queue) urls)
 results (mapv deref futures)]
 (apply concat results)))))))

现在就可以了,hop 并发了更多的递归 hop,之后再逐个等待结果。看起来并发之后立刻阻塞并等待,好像和直接调用没有区别,但关键的区别在于,如果把递归结构看成一棵树的话,我们就不是在进行深度优先遍历,而是并发地对每个子树同时进行遍历。23由于我们用了有缓冲的 channelhop 在把任务放进爬取队列时就可能因为缓冲区已满而阻塞,只要设置合理的缓冲区大小,就不用担心性能问题。

不过,即便是并发,网络操作仍然很慢,我们不能等程序把所有的环路都找到了之后才打印结果吧?是不是应该每找到一个结果就打印一次?要在 hop 里调用 println?不不不,如果这个软件要做成 Web 程序、GUI 程序呢?要怎么收集到这些结果?显然 println 是具体实现。那只要换成一个抽象函数就好了。

(defn- hop [journey over? home crawl-queue put-result]
 (future (let [journey (if (empty? journey) [home] journey)]
 (if (over? journey)
 ;; if journey's over, print the only one
 (put-result journey)
 [journey]
 ;; if not, keep crawling and find fresh urls 
 ;; start multiple hop forks and concat their result together
 (let [receive-chan (chan)]
 (>!! crawl-queue [(last journey) receive-chan])
 (let [urls (<!! receive-chan)
 futures (mapv #(hop (conj journey %) over? home crawl-queue put-result) urls)
 results (mapv deref futures)]
 (apply concat results)))))))

很好,现在骨架只知道「要把结果放到某个地方」,并不关心放在那里。最简单的实现是把结果放进 channel 里,让消费者自取,这样的话我们甚至不需要写函数定义,在 put-result 的位置传入 (partial put! result-queue) 就好,partial 返回的是预先填好了几个参数的函数。这么说的话,我们也不必把 crawl-queue 这种细节暴露给 hop,也可以改为抽象函数。由于两个都和传送数据的通道相关,不妨放进一个 vtable 里,就叫 pipelines(管线)吧。事已至此,就干脆把这个包里的 clojure.core.async 引用移除掉,所有关于 channel 的操作都是具体的,应该交由外部实现来解决。

我又发现 home 这个参数完全没有意义,我为什么不能一开始就传入 [home] 而不是空向量 [] 呢?于是也顺带改了。

在添加新功能(每找到一个环路就上报一次)的同时顺带重构了代码,现在 hop 函数看起来干净了很多:

(defn- hop [journey over? pipelines]
 (future (if (over? journey)
 ;; if journey's over, print the only one
 (do
 ((:put-result pipelines) journey)
 [journey])
 ;; if not, keep crawling and find fresh urls 
 ;; start multiple hop forks and concat their result together
 (let [urls ((:get-crawl pipelines) (last journey))
 futures (mapv #(hop (conj journey %) over? pipelines) urls)
 results (mapv deref futures)]
 (apply concat results)))))

我把「把爬取任务放入管道,然后等待结果」都封装到一个 :get-crawl 函数里了。这个 pipelines 其实完全可以写成协议,也就是之前看到的 defprotocoldefrecord,不过目前软件里还没有很复杂的管线,用一个简单的数据结构足矣。

最后一个问题,目前看来 hop 如果没有找到满足 over? 条件的路径,就会一直执行,是不是应该写一个最大跳数的限制?不不不,别忘了 over? 函数是抽象的,最大跳数的限制完全可以由 over? 的具体实现去处理,不必为此让核心逻辑变得复杂。

至此,我通过只思考抽象问题,逐步求精,写完了核心的业务逻辑。即便写了 defprotocol 定义,也只有不到一百行代码——包括注释和 require 语句,ody.clj 只有 19 行,workers.clj 只有 17 行,各种协议定义 protocols.clj 有 15 行(不过这很大程度上要归功于 Clojure 语法的简洁性)。这 51 行代码就是这个软件的骨架,在填充血肉之前,还有一件重要的事情要做。

测试骨架

在我们把 HTTP 客户端、HTML 解析、URL 规范化和对比、结果输出、用户界面等一系列无底洞般的细节引入到软件中之前,应当先保证骨架本身有效。Lisp 程序员们可以用 REPL 命令行里直接调用软件内部的函数进行测试,测试的过程中随手定义一些假的实现喂给核心逻辑也非常容易。我虽然写了很多 Clojure 代码(不过才五十几行吧),但本文实际上是与语言无关的,所以我还是用更通用的方式来测试——写测试文件。

不过老实说,更好的做法是测试驱动开发(TDD),即先写测试,再写代码。但…… 我都已经写完了还能怎么办呢?

要测试 ody.clj 很简单,只需要保证递归函数 hop 的正确性。hop 预期的正常行为是:输入 [home],通过 home 发散出更多的 URL,递归出更多的分支,把每条完成的分支写入管线,最后返回全部分支。注意,「完成」,也就是 over? 函数是抽象的,这个完成的条件不一定是「找到和 home 一样的 URL」。完成的条件判断得准不准、是否有缺陷,是实现 over? 函数的组件的工作,应该在测试那个组件的时候才考虑。也就是说,此时我们完全不必考虑 hop 能不能给出我们想要的环路,我们只要保证它能完成预期的行为就好了。甚至啊甚至,这个 home 和最后得到的 journey,都不一定得是 URL。

(deftest hop-happy-path-test
 (testing "Happy path of the recursive hop function."
 (let [result-chan (chan)
 pls {:put-result (partial put! result-chan)
 :get-crawl (fn [num] (mapv #(+ % num) [1 2 3]))}
 ody (->Ody 0 #(>= (last %) 5) pls)
 want #{[0 1 2 3 4 5] [0 1 2 3 4 6] [0 1 2 3 4 7] [0 1 2 3 5] [0 1 2 3 6] [0 1 2 4 5] [0 1 2 4 6] [0 1 2 4 7] [0 1 2 5] [0 1 3 4 5] [0 1 3 4 6] [0 1 3 4 7] [0 1 3 5] [0 1 3 6] [0 1 4 5] [0 1 4 6] [0 1 4 7] [0 2 3 4 5] [0 2 3 4 6] [0 2 3 4 7] [0 2 3 5] [0 2 3 6] [0 2 4 5] [0 2 4 6] [0 2 4 7] [0 2 5] [0 3 4 5] [0 3 4 6] [0 3 4 7] [0 3 5] [0 3 6]}]
 ;; match journey results
 (is (= (set @(start ody)) want))
 ;; collect channel and count
 (loop [counter 0]
 (if (poll! result-chan)
 (recur (inc counter))
 (is (= counter (count want)))))))) 

这个测试中的 journey 不是 URL 向量,我把「爬取和发散 URL」变成了「累加数字」。初始 URL 变成了初始数字 0。测试 Ody 的时候我没有启动爬虫,注意我传入的管线 pipelines,其中 :get-crawl 并没有把新 URL 放进 crawl-queue 里再等待结果,而是对数字进行了三次加法运算,发散出 n+1n+2n+3 三个数字。再看 over? 的具体实现 #(>= (last %) 5),当累加 journey 的最后一个数字大于等于 5,就算做结束。

由于并发的执行顺序不定,为了避免最终结果的顺序影响断言,我把它转换成了集合类型(set),然后与包含所有累加路径的集合对比。最后再把 result-chan 里的内容读出来,看看 Ody 是否传入了正确数量的路径结果。

用 Leinigen 运行测试:

➜ ody git:(feat_core) ✗ lein test

lein test ody.ody-test

Ran 1 tests containing 2 assertions.
0 failures, 0 errors.

测试通过!接下来应该考虑边界条件,比方说,如果 :get-crawl 没有返回任何结果,hop 就应该停下,返回空集。

(deftest hop-empty-test
 (testing "Hop should be able to handle empty result from :get-crawl"
 (let [result-chan (chan)
 pls {:put-result (partial put! result-chan)
 :get-crawl (fn [_] [])}
 ody (->Ody 0 #(>= (last %) 5) pls)
 want #{}]
 ;; match journey results
 (is (= (set @(start ody)) want))
 ;; collect channel and count
 (loop [counter 0]
 (if (poll! result-chan)
 (recur (inc counter))
 (is (= counter (count want)))))))) 

测试依然通过,接下来要考虑更多的边界情况,还要写 workers.clj 的单元测试,看它能不能正常启动 N 个爬虫,能不能正确消耗 crawl-queue 里的任务等等。具体的就省略了。

总之,合理的抽象、接口和骨架式的编程不仅可以让人在开发核心功能时只关注核心逻辑,而不被技术细节困扰,还能让单元测试变得容易,不必等到整个项目近乎完成时才做集成测试。

填充血肉

那些跟 LLM Agent 一起工作得不亦乐乎的人,其实已经可以放手,把写好的接口定义和核心业务逻辑丢给 Agent,让机器实现人没有实现的接口,在 main 组件中装配起来,然后就能跑了。跟 Vibe Coding 不同的是,开发者已经对软件的核心逻辑、接线点、输入输出和内部结构了如指掌,不会面对大量安全性、可读性和质量堪忧的代码发懵。开发者不会像 Vibe Coders 那样因为不理解代码而事事求助于机器,不会让自然堆积的屎山代码填满 LLM 的上下文,燃烧大把大把的美钞。再者,由于开发者对代码的理解很充分,他可以写出更清晰的提示词,甚至精确到代码行,让 Agent 消耗更少的 Token 和时间完成任务,而不必把大量的资源都用在「推测用户意图」上。

不过,LLM 生成代码的版权状态未知,我不知道 Agent 填进我仓库的代码是从谁哪里偷的,应该遵从什么开源协议,应该署谁的名字,所以我不会用 LLM 生成的代码。接下来我将手写接口实现,把所有组件都装配起来,产生可运行的软件原型。

eurylochus.clj

Crawler(爬虫)协议的实现类,我决定命名为 eurylochus(欧律洛卡斯),他是奥德修斯的二把手,在登陆瑟茜的岛屿时,也是他带队探路。

要发送 HTTP GET 请求,最常用的 Clojure 库应该是 clj-http 。至于解析 HTML,之前有听说过 hickory ,可以把 HTML 转换为 Clojure 数据结构,还兼容 hiccup 的 X-Expression(用来表示 XML 的 S-Expression),不过它的选择器语法看起来太吓人了,浏览之后找到了一个 JSoup (Java 版的 BeautifulSoup)的 Clojure 包装,试了试好像也够用了。虽然这个 html-parser 十二年没有人维护,总共只提交过三次 Commit,看着也有点吓人,但大不了回头再换一个。

(ns ody.eurylochus
 "Eurylochus is scout for Odysseus. It implements Crawler protocol."
 (:require [ody.protocols :refer [Crawler]]
 [clj-http.client :as client]
 [html-parser.core :refer [document-from-string select]]))

(defrecord eurylochus [] Crawler
 (find-ways [_this url]
 (let [resp (client/get url)
 status (:status resp)
 doc (document-from-string (:body resp))]
 (when (= status 200)
 (->> (select doc "a")
 (map #(.attr % "href"))))))))

按下快捷键把这段代码发送到 nREPL 里,然后直接在 REPL 里 Eval 看看效果,就用我自己博客的某期周刊 URL 当作例子吧。

这是 Neovim 的 Conjure 插件,可以在编辑器里把代码发送给 REPL

果然,提取 <a> 标签的 href 属性会拿到很多不想要的东西,比如锚点和内链,但我并不打算在 eurylochus 这里剔除,别忘了,还有一个叫作 Gatekeeper 的协议就是来做筛选的。

polites.clj

Gatekeeper 的实现我想用奥德修斯最好的朋友 polites(波利特斯)来命名,要做的就是筛选 eurylochus 拿到的 URL,同时控制数量。好在 Clojure 的 filterremove 函数就很适合干这活儿,最后再用 take 函数拿一定数量的 URL 返回就好了。

(ns ody.polites
 "Polites is Odysseus' best friend. It implements Gatekeeper protocols and keep unwanted URLs at bay."
 (:require [ody.protocols :refer [Gatekeeper]]
 [clojure.string :as string])
 (:import (java.net URI)))

(defn- hostname [url]
 (.getHost (URI. url)))

(defrecord polites [blocklist limit] Gatekeeper
 (filter-ways [_this urls]
 (->> urls 
 (filter #(or (string/starts-with? % "https://")
 (string/starts-with? % "http://")))
 (remove #((set blocklist) (hostname %)))
 (take limit))))

在 REPL 里测试,最后得到的列表很干净。

目前还不支持通配符 *,没关系,之后再说。

zeus.clj

让天神宙斯 zeus 来判断 journey 是否结束再合适不过了。不过我没有创建名为 zeus 的对象或者说类,仅仅是在 ody.zeus 这个命名空间下定义了 over? 函数。

(ns ody.zeus
 "Zeus determines if Odysseus finishes his journey. It provides over? predicate function."
 (:import [java.net URI]))

(defn- ring-by-exact? [journey]
 (.equals (URI. (first journey)) 
 (URI. (last journey))))

(defn- ring-by-domain? [journey]
 (= (.getHost (URI. (first journey)))
 (.getHost (URI. (last journey)))))

(defn over? [law max-hop journey]
 (let [ring? (cond (= law "exact") ring-by-exact?
 (= law "domain") ring-by-domain?
 :else ring-by-domain?)]
 (or (ring? journey)
 (>= (count journey) max-hop))))

你可能发现 ody.zeus/over? 有三个参数,而 ody.clj 中使用的却是只有一个参数的 over?,参数对不上怎么办?没关系,还记得 partial 吗?给 ody 传入 (partial over? law max-hop),也就是预先填好两个参数的函数引用,就可以了。

装配

是时候把骨头和肉拼起来了,这一步很简单,只需要把各个组件初始化,按照接口定义装配在一起,然后启动就好:

(ns ody.core
 (:require [ody.ody :refer [->Ody]]
 [ody.workers :refer [->workers]]
 [ody.pipelines :refer [make-pipelines]]
 [ody.eurylochus :refer [->eurylochus]]
 [ody.polites :refer [->polites]]
 [ody.zeus :refer [over?]]
 [ody.protocols :refer [start start-workers]]
 [clojure.core.async :refer [chan <! go-loop]])
 (:gen-class))

(def config {:crawl-queue-buffer 10
 :worker-count 5
 :domain-blocklist ["github.com" "google.com"]
 :url-limit 3
 :ring-standard "domain"
 :max-hop 10})

(defn -main
 [& args]
 (let [result-queue (chan)
 crawl-queue (chan (:crawl-queue-buffer config))
 home (first args)
 ody (->Ody home
 (partial over? (:ring-standard config) 
 (:max-hop config))
 (make-pipelines result-queue crawl-queue))
 workers (->workers (->eurylochus) 
 (->polites (:domain-blocklist config) 
 (:url-limit config))
 crawl-queue)]
 (start-workers workers (:worker-count config))
 (println "Crawling wokers started.")
 (let [all-ref (start ody)]
 (println (str "Odysseus is on his way. Starting from " home))
 (go-loop [journey (<! result-queue)]
 (println "Found one! " journey)
 (recur (<! result-queue)))
 (deref all-ref)
 (println "All is done."))))

现在,启动!嗯……?

......
Found one! [https://www.geedea.pro https://www.geedea.pro/ https://www.eltr.ac/ https://www.eltr.ac https://www.eltr.ac https://www.eltr.ac https://codeberg.org/eltrac https://blog.codeberg.org/protecting-our-floss-commons-from-llms.html https://blog.codeberg.org https://join.codeberg.org]
Found one! [https://www.geedea.pro https://www.geedea.pro/ https://www.eltr.ac/ https://www.eltr.ac https://www.eltr.ac https://www.eltr.ac https://codeberg.org/eltrac https://blog.codeberg.org/protecting-our-floss-commons-from-llms.html https://codeberg.org/ https://codeberg.org/Codeberg/org/compare/17bdb39b0c1ecd0e423f3ba592650ce57fcdfbf5..71149c7fc95ccfeae36109b5cddca339e4aa1473?files=TermsOfUse.md#diff-d760d688bb9b929b62db808bfc76abe4493d095a]
Execution error (URISyntaxException) at java.net.URI$Parser/fail (URI.java:3005).
Illegal character in fragment at index 20: https://matrix.to/#/#codeberg-space:matrix.org

Full report at:
/var/folders/41/6gvwg1j15xb4hwm365wds90h0000gn/T/clojure-16924552856293422522.edn

看来报错了,而且找到的路径也都是因为达到最大跳数限制才停止的,并没有找到环路。没关系,没有程序是一遍就能跑通的。C’est la vie. 报错是 Java 的 URI 处理不了 # 字符导致的,把 zeus.cljpolites.clj 中的 URI 换成 URL 应该就可以了。

仔细观察的话,找不到环路很大程度上是因为很多路径一直在原地传送,某个 URL 的内容可能包含和自己一模一样的 URL,而 polites.clj 没有把这部分筛掉。再者,程序经常找网站的首页 URL,而包含内容的子页面才更有可能找到我们想要的环路,应该让 URL 中路径更深的排在前面。

;; polites.clj
(defrecord polites [blocklist limit] Gatekeeper
 (filter-ways [_this urls current]
 (->> urls 
 (filter #(or (string/starts-with? % "https://")
 (string/starts-with? % "http://")))
 (remove #(url-equal current %))
 (remove #((set blocklist) (hostname %)))
 (sort-by #(-> % path depth) >)
 (take limit))))

另外,还有很多路径经过了 Google 等根本不可能导向我自己的网站的大站点,嗯…… 果然还是要写通配符匹配呢。

(defrecord polites [blocklist limit] Gatekeeper
 (filter-ways [_this urls current]
 (->> urls 
 (filter #(or (string/starts-with? % "https://")
 (string/starts-with? % "http://")))
 (remove #(url-equal current %))
 (remove #(some (fn [pattern] (match-glob pattern (hostname %))) blocklist))
 (sort-by #(-> % path depth) >)
 (take limit))))

match-glob 函数来自 stch-library/glob ,果然还是偷别人的代码好用啊。不过这种小库竟然没有 LICENSE 文件,用起来还挺不放心的,之后要换掉。在配置里面写上一些大网站的黑名单看看:

(def config {:crawl-queue-buffer 10
 :worker-count 5
 :domain-blocklist ["github.com" 
 "google.com"
 "*.google.com"
 "bandcamp.com"
 "*.bandcamp.com"
 "gohugo.io"
 "*.gohugo.io"
 "codeberg.org"
 "*.codeberg.org"
 "apple.com"
 "*.apple.com"
 "creativecommons.org"]
 :url-limit 3
 :ring-standard "domain"
 :max-hop 10})

再次运行,很快就找到了第一条环路。

["https://www.geedea.pro/weekly/94/"
 "https://michaelharley.net/posts/2026/06/15/bloggers-can-we-make-better-titles-for-our-posts/"
 "https://social.bubbles.town/@bubbles/statuses/01KV5P7PK0VFSMTGASPRA3C2KV"
 "https://bubbles.town/entry/34746979"
 "https://michaelharley.net/posts/2026/06/15/bloggers-can-we-make-better-titles-for-our-posts/"
 "https://www.geedea.pro/weekly/94/"]

从我的 第 94 期周刊 ,先是去到了 Michael Harley 的《Bloggers, can we make better titles for our posts?》,然后去到了 Bubbles(一个博客聚合平台)的社交媒体贴(GoToSocial 的前端不需要 JavaScript 也能显示内容,所以获取到了外链),然后去到了 Bubbles 上这篇文章的页面,然后回到了 Harley 的文章,由于我引用了他的文章并且发送了 Webmention,最后通过 Webmention 链接回到了我的网站。挺奇妙的旅程。

不过接下来就没有那么顺利了,很多路径都是达到 max-hop 限制放弃的路径,不过倒是发现了不少有趣的链接,或许这个软件的作用也可是帮助从自己的网站出发发现更多的内容。目前的限制是,每个 URL 最多发散出三条外链,一条 journey 最多包含 10 个节点。即便做了黑名单限制,也很难剪枝掉大部分的任务,最后要爬取的网页数量接近 3 的十次方。

或许这个软件不适合在本地运行,更适合一直跑在服务器上,每找到一条合格的路径就显示在网页上,或者通过 Barkntfy 给自己发送通知。好在我们的业务逻辑是高度抽象的,只需要在 main 组件里包装一层 HTTP 服务器就好。由此可见,软件要做成命令行应用、GUI 应用还是 Web 服务,都只是外层的细节,只要业务逻辑保持高度抽象,就能够让人机交互层也变成插件。

反思:对象是必要的吗?

软件能跑了,现在 Ody 已经开源放到了 Tangled 上,由于还不稳定,所以现在的大部分代码都在 feat_core 分支里,尚未合并。欢迎提 PR,如果有人能帮我把那个翻车的并发问题解决掉就好了,我这周的 Clojure 功力已经耗尽了。

我在写代码的过程中发现,我定义的不少 defprotocol 只包含一个方法,为了实现这一个方法而去创建对象,是不是有点太啰唆呢?我那 51 行代码是不是可以更短?我之前其实写过 Common Lisp 的 无类多态 ,即不需要定义类也能创建抽象函数。不过当时我忙着骂 Java,竟没有好好吸收 CLOS 的精髓。最近读了明琪琪可的《 Trial 与 CommonLisp 的介绍 》,这才意识到 OOP 里的接口仅仅是低配版的 defmethod 而已,我果然还是被 Go 害惨了啊

前面写过的 over? 作为写在函数形参里的回调函数,其实也是一种低配但更简洁的抽象函数,唯一的缺点是它不够安全,返回值、形参和行为都难以确定(或许静态类型语言会好一些),而且写太多形参若还要递归或层层传递,想想就觉得枯燥。

Clojure 也支持类似 CLOS 的系统,defmultidefmethod 可以在不依附任何类和对象的情况下实现多态,而且支持多分发。兴许下次用 Clojure 写东西的时候可以试着用用。

推荐阅读

本文的部分观点来自以下书籍:


  1. Objective-Oriented Programing,面向对象编程 ↩︎

  2. 咳咳,这里是几个小时后的 Eltrac。我发现这段代码有个致命的问题:它实际上仅仅是创建个一个又一个被阻塞的线程,实际速度和同步递归没差…… 主要的问题是,任务的生产者和消费者都是同一实体,照理来说应该分开,一开始用 gochannel 的思路是对的。事已至此,先这样吧,我累了。 ↩︎

  3. 既然已经调用了 mapv,换成 pmap,再做些调整兴许就能解决。pmap 的意思是 Parallel map,多个操作是并发执行的,会快很多。 ↩︎

碎片2026年8月23日

✇ACEVS
作者 ACEVS

中午得开空调,晚上可以关闭空调,可能风扇太少。两个不够用。

魔兽兽族有用的打法,被破解。

他们旅游归来,都晒黑了不少,感觉孩子都长大了老练了一些,主要是黑了。

处暑,估计热不了几天了。

之前说玄凤羽粉多没有买,我问豆包,虎皮多少支和玄凤羽粉一样多,大概五只,怪不得羽粉,羽毛感觉挺多。

三国志5看到感觉挺经典,在小马模拟器下载了ps和psp版本,还没有点开。

看到20元的班尼路短袖,想整个,最后没有整,发现还有很多短袖,这个夏天都过完了,还没穿。先洗洗,感觉放久了不新鲜。味道。哈哈。

关于死本能

一般来说,每写四期就会觉得烦躁一下,所以这周的《莫比乌斯转到了哪里》就不聊这一周的事情。

在《写在 2026 年新年之前》里,贯穿始终的主题“死本能”,当时只是提到了一嘴,也没有打算作为一般的博客文章来讨论它,放在这样的订阅邮件里最合适不过。

订阅以继续阅读

成为付费订阅者,以查看本文章剩余内容以及其他专属内容。

——

感谢订阅莫比乌斯,如你有任何疑问、观点交流,请前往创作者频道,或私信联系。

暑假旅行|中部自驾01 - 山西临汾

一家四口暑假自驾内蒙古,因台风和抢票不顺改走顺时针路线,首站抵达临汾。傍晚逛平阳鼓楼夜市,品尝糖醋丸子、过油肉、莜面栲栳栳等山西特色菜,老陈醋清香不酸令人惊喜。次日前往壶口瀑布,山西侧地势更高可见彩虹,气势更胜陕西侧,还有柯受良飞跃黄河纪念雕塑,满足了女儿期待两年的心愿。

博客与生活

现在生活比较单调,博客成了生活中主要的自我抒发渠道,也渐渐博客成了生活的重要部分。 年轻时想让博客成为自己的一面旗帜,总想着把它打理得鲜亮体面,因此,模板美化、无病呻吟、SEO、搜索引擎推荐及迎合等都...

debian安装+本地主机穿透做异地备份服务器

20260822-170122_ilogs_cn_.webp

本着耍一耍的心态,昨下午硬是蹲到电脑跟前,整了一下午装debian13。先下的ISO文件,然后用rufus做了个U盘引导盘,插到老电脑主机上进BIOS调成U盘先启动,一步一步跟到走,安装界面像是回到了上个世纪的UI,结果比我想的还顺利,顺顺当当就装完了,没出啥幺蛾子。

装好第一件事就是挂第二块硬盘,专门拿来存东西。豆包给我推荐了个qBittorrent,装起就甩了几个电影资源进去下起,结果我这网确实太水了,一晚上过克,二十几个资源硬是没几个下完的,白挂一晚上。

ScreenShot_2026-08-22_142056_844_ilogs_cn_.webp

接着搞MySQL,跟到网上的教程一步一步来,结果装完一看,咋子是MariaDB哦?我那个Workbench咋个都连不上。后来仔细一看才晓得,原来apt install mysql-server默认装的就是MariaDB,好嘛,算我踩坑了。删球了重来,这回我学聪明了,直接用Docker跑MySQL,少整些麻烦事。

Docker这东西看着眼熟,应该是以前在阿里云虚拟机那头瞟到过。装完MySQL,那Node.js肯定也要整一个嘛,把博客丢到环境里头,搞了个穿透试了一哈,确认跑得通就把博客程序删了,纯粹就是为了看哈环境有没有问题,没打算真挂起。

后来又转去研究Nextcloud,发现还有免费的手机App,整好可以把手机上的照片自动传上去。比那些网盘靠谱多了,免费的压缩画质压缩得妈都不认得,收费的又贵,年复一年给钱也遭不住,下载还磨皮擦痒的慢得很。放在自己的主机里头,心里头踏实多了,改天再加个副盘做自动备份,那才叫彻底放心。

ScreenShot_2026-08-22_172104_306_ilogs_cn_.webp

ScreenShot_2026-08-22_172241_988_ilogs_cn_.webp

顺手还把线上两个网站把数据库做了一下异地备份计划,在不开端口的情况下实现密钥实时计算备份下载。

然后想到屋里还有四个摄像头,两个前门、一个室内、一个后门,后两个是以前奶茶二店关店时候拆回来的萤石,不支持接TP的监控主机,这么些年只能插内存卡存录像。每次想翻回放,就一个个App点开翻,麻烦得紧。

这下好了,让这台debian主机每隔十分钟自动截个图,直接挂到Nextcloud里面,手机上打开App就能看,爽多了。算了一哈,一个月截图下来怕是有2GB多,我又改了下脚本——超过7天的截图,每小时只留两张,整点和半点各一张,省空间也不耽误看。

折腾完这一圈下来,感觉这台机器算是正儿八经派上用场了。虽然说中间踩了几个坑,但一步步搞下来,成就感满满。

微信图片_20260822170227_69_276_ilogs_cn_.webp

微信图片_20260822170301_70_276_ilogs_cn_.webp

碎片2026年8月22日

✇ACEVS
作者 ACEVS

晾碗架,换了铝箔后发现铝箔漏水,铝箔+薄膜厨房那种可能好用点,先用两个铝箔测试,不行再说。

朋友寄来一些松蘑,味道似乎不错,闻着感觉不那么得劲,吃着似乎还不错。沙子啥的挺多,得多洗几遍。

pdd买了个修补塑料的,点燃后融化直接涂抹,看着挺简单实用,实际到手发现,效果和蜡烛一样,修补地方,一碰就掉了。不推荐。

糯米胶,感觉租的房子墙纸有的地方脱开了,用糯米胶修复,效果还不错,发霉的窗台下面,也能修复,还不错。

医用白凡士林,可以去掉鹦鹉脚上,嘴上的疥廯,但是想根治宠夫康,名字山寨的,看看效果如何。喷雾感觉比白凡士林涂抹快不少。

oppo解锁bl未来增加限制,虽然我不想重装系统,还是申请了。

昨天下了挺久的雨,晚上睡觉挺舒服。

看了一下台风路径,紫檀是热带风暴,沙德尔是台风,还有热带低压由于没有达到8级风力,还没有台风编号

参考台风规则 命名。豆包生成。

西北太平洋/南海台风:编号、名称完整规则

适用范围:赤道以北、180°经线以西(西北太平洋+南海),由WMO台风委员会管理,日本气象厅东京RSMC负责命名编号发布。
⚠热带低压(6‑7级):没有正式台风名字、没有4位台风编号,只有扰动/低压标记(如 08W);必须达到热带风暴≥8级风力,才分配名字+四位编号。

一、台风编号规则(4位数字)

格式:YYNN

  • 前两位 YY年份后两位
  • 后两位 NN:该年,达到**热带风暴(≥8级)**的气旋生成顺序号。

例子:

  • 2613:2026年第13号热带风暴,加强到台风就叫「2026年第13号台风×××」。

关键编号细节

  1. 气旋一生编号不变:风暴→台风→强台风→减弱回热带低压,编号、名字全程不变,不会重新分配新号。
  2. 什么时候停止编号:减弱为热带低压、变性成温带气旋、完全消散,中央气象台停止编号。
  3. 热带低压标记(JTWC):格式 数字+W,如09W这不是台风编号!只是低压标记,没有名字,如果它后面增强到8级,才会获得 26XX 四位编号+中文名字。
  4. 一年最多可以到几十号,跨年清零重新从01开始。

二、台风名字命名规则

  1. 命名表一共140个名字,14个成员(中、日、韩、越、港、澳等),每家提供10个,按固定顺序循环使用。
  2. 名字要求:英文≤9个字母,好读,无负面含义,不能是商业品牌;中文译名由中、港、澳三方协商统一。
  3. 顺序循环:140个名字用完一轮,从头再来。

✅除名机制(重要)

出现两种情况可申请除名,该名字永久封存不再循环使用

  1. 台风造成重大人员伤亡、巨大经济损失,受灾成员向台风委员会提议除名;
  2. 名字语义有歧义、不合适,技术性除名。

除名后,由原提供国/地区提交新名字替补,替换进命名表继续循环。例:杜苏芮被除名,替换新名字。

注意:不是风力大就除名,核心看实际灾害损失;有的超强台风海上打转不登陆,不会被除名。

三、热带气旋等级对照(风力)

等级 风力 是否获得台风编号+名字
热带低压 TD 6‑7级 ❌无正式台风编号,仅0xW标记
热带风暴 TS 8‑9级 ✅获得4位编号+台风名字
强热带风暴 STS 10‑11级 ✅沿用同一编号名字
台风 TY 12‑13级 ✅沿用
强台风 STY 14‑15级 ✅沿用
超强台风 SuperTY ≥16级 ✅沿用

四、常见误区

  1. ❌:看到“热带低压09W”,以为就是几号台风。
    ✅:09W只是低压标记,不等于台风,没有官方台风名字;只有增强到8级热带风暴,才升级为正式台风编号

  2. ❌:台风减弱成低压,编号就换新的。
    ✅:减弱只是“停止编号”,这个气旋本身的名字历史记录保留;新生成的系统才会分配新编号。

  3. ❌:台风名字用完就全部重新造一批。
    ✅:只替换被除名那几个;其余140个正常循环。

  4. ❌:北大西洋飓风和台风一套命名。
    ✅:完全两套独立系统,互不通用;我们讲的台风专指西北太平洋。

举完整生命周期例子

  1. 扰动生成 → 升级热带低压:标记 08W无台风名字,无26XX编号
  2. 继续增强,风力≥8级热带风暴:分配编号 2607 + 中文名字;新闻叫:2026第7号台风XXX;
  3. 发展成强台风、再登陆,之后减弱回热带低压 → 气象台发布停止编号
  4. 如果这个台风造成巨大灾难,台风委员会开会把这个名字除名永久不再使用,原提供国提交替补名称。

如果你需要,我可以顺带讲:中央气象台、日本气象厅、JTWC三家机构定级的小差异。

丁达尔 II

小王因为掏出手机拍夕阳的丁达尔现象,结果被路人“抓了个正着”,此时此刻他还真的被扭送去了派出所。

“你们干嘛?”警察一脸诧异。

扭送小王的三个人异口同声地回答:“我们抓了个特务。”

“啊?”

“是我先抓到的。”

“是我破解了他跟同谋沟通的密码。”

“是我提出把他送来派出所的。”

“我只是在拍丁达尔。”

“丁达尔的意思就是定位雷达、交头接耳的意思。”

“这是我先说的。”

“你们知道什么是丁达尔吗?”警察反问道。

“我刚才说了啊。”

“那是我先说的。”

“你们要不查一查丁达尔是什么意思?”小王有些不满地回答,不停向警察投送求救的目光。

倒是有一个人真掏出手机查了查,立刻恍然大悟的喊道:

“我知道了我解读出来了!他不是在拍雷达,他用丁达尔现象暗指 pm2.5 超标,打算抹黑!”

“对对对,就是这个目的。”

“这是我先说的!”

“人是我先抓到的!”

“警察,你好好查一查,丁达尔就是值得定位雷达、交头接耳,我上次在社交账号上看到过这样的解读分析。”

——

感谢订阅莫比乌斯,如你有任何疑问、观点交流,请前往创作者频道,或私信联系。

诺兰的《奥德赛》采取了什么样的改编策略? III

终于,我的奥德赛之旅也要结束了。《奥德赛》影评的最后一篇,我将审视诺兰给电影定下的不属于原典的主题,以及我为什么讨厌这个主题。尽管因为让黑人演员饰演海伦和雅典娜,让不少人觉得诺兰是个被政治正确洗脑的激进派,但诺兰的叙事其实相当保守和传统,甚至有些…… 大男子主义。诺兰的奥德修斯不是原典中的狡诈英雄,不是音乐剧中的“只是个男人而已”,奥德修斯被诺兰可刻画成了一个不可存在的、正直、大义和无私的平庸的好人。

忒勒玛科斯是电影塑造得最失败的角色

前两篇我还在试图理解诺兰的种种改变决策,比方说他将神明删去是为了表达他对神明这一概念的哲学思考,而他将瑟茜(或基尔克)从住在宫殿里有侍女相伴的神女改成了一个应激的愁容妇女是因为后者更容易令现代观众共情。这最后一篇,我不得不谈到忒勒玛科斯,也就是奥德修斯的儿子这一角色,我对他在电影中的刻画很不满意。

诺兰无疑基督教化了《奥德赛》1,其中一个体现是在电影的末尾,忒勒玛科斯不杀死求婚者的原因之一是他会因违反宙斯之法(Zeus’ Law)而被流放,最后奥德修斯因忏悔自己在特洛伊战争以及回家路上行的残忍之事,决定自己亲手杀了求婚者们,让自己流亡,也圆了妻子佩涅洛佩想要同奥德修斯前往西方追逐落日的梦。

这些在原典中都是不存在的。上周五我刚下班就进了电影院,三个小时之后迎接我的竟然是奥德修斯自我流放,忒勒玛科斯这个毫无角色弧光的人物当上了伊萨卡国王的结局,我真的如鲠在喉。我一般不会在文章中插入 Bilibili 上搬运的 TikTok 短视频,但原谅我,这真的太好笑了:

在我的理解里,忒勒玛科斯之所以接替奥德修斯作为国王的位置,仅仅是因为奥德修斯需要自我流放,以成全这部电影的忏悔主题。然而,忒勒玛科斯这个角色真的在电影里完成了必要的成长吗?

在诺兰的改编中,忒勒玛科斯从电影一开始就想要坐上王位,以治理伊萨卡二十年无王的混乱局面,也光明正大地赶走天天在自己家里白吃白喝的求婚者。是她的母亲看不起他,觉得他不配当王。的确,哪有让二十岁出头的小孩子当王的?电影中的忒勒玛科斯一直想跟求婚者动手,甚至在一开始已经和安提诺乌斯起了口角。看起来他并不是没有能力杀人,而是不被允许,这也使得父子相认之后两人屠杀求婚者的场面,并没有让人感到忒勒玛科斯有任何成长变化,更何况忒勒玛科斯仅仅是辅助父亲,他自己没有真的拼死战斗。

所以,我对忒勒玛科斯这整个人物的感受就是:他在电影的一开头和最后并没有任何变化。他一开始就想打架,但不被允许,于是父亲回来之后就和他一起打了;他一开始就想当王,但母亲不认可,于是父亲回来之后就主动把王位给了他。我为什么有种伊萨卡要亡国了的预感?

原典中的前四卷都是忒勒玛科斯探寻父亲消息的情节,同时他也有雅典娜的陪伴。除了智慧女神的指导,忒勒玛科斯在路途中听闻的有关父亲的故事和涅斯托尔等人的教导也令他深受启发。而我们知道电影中的雅典娜仅仅是奥德修斯良心的化身,只存在于他的想象中(见 第一篇 ),而与墨涅拉俄斯的交谈竟然还穿插着海伦的忏悔,重点从忒勒玛科斯寻父偏移了,再次为诺兰电影的赎罪主题服务。忒勒玛科斯简直是电影主题的牺牲品。

最后,一如既往地对比音乐剧《EPIC》对忒勒玛科斯的改编。音乐剧中的小忒稚气更胜,至少没有一开始就想当皇帝、要打人,唯一的不足是 Jorge 并没有像原典和诺兰那样把太多的注意力放在伊萨卡城中发生的事情上,对小忒的刻画也就少了很多。不过,我们依旧能从《Little Wolf》一曲中窥见小忒成长的契机。

音乐剧还删去了奥德修斯父子在田庄相会,商议如何处置求婚人的情节,奥德修斯也没有伪装成乞丐回家。这一刀砍得确实有点狠,音乐剧把太多的时间都放在奥德修斯的归途上了,有些忽视了伊萨卡这边的故事。如果只看忒勒玛科斯的角色塑造这一点的话,音乐剧是要更胜一筹的。不是说 Jorge 笔下的小忒有多立体,只是诺兰的小忒实在是有些惨不忍睹,在我看来是电影的一大败笔。

海伦的刀疤、愤怒与愧疚

忒勒玛科斯造访斯巴达寻求父亲的消息,国王墨涅拉俄斯在讲述木马之中的故事前后提起了他的妻子海伦。海伦就是引发特洛伊战争的原因之一, 上篇 我已经提到海伦和特洛伊王子帕丽斯私奔,导致斯巴达国王愤怒地召集包括奥德修斯在内的英雄一起攻打特洛伊的故事。

海伦的出生其实也始于一场婚外情,天神宙斯变身天鹅勾引之前的斯巴达王后勒达,勒达之后生下两枚鹅蛋,海伦就生于其中一个蛋。所以,希腊第一美人海伦并不是凡人,而是神的女儿。这神样的女人必定引来了很多人争抢,最后是奥德修斯提议抽签决定谁娶海伦,并且约定一旦中签者因为海伦而陷入麻烦,其他人就要发兵援助。在上篇提到的另一个有关金苹果的故事中,帕丽斯得到了爱与美之女神阿佛洛狄忒的帮助,让海伦爱上了她,跟着他私奔到特洛伊,于是奥德修斯以及所有参与抽签的人,都发兵援助斯巴达国王。这些厌女的故事自然没有被诺兰和 Jorge 保留,诺兰也删掉了神明的成分,所以海伦在故事里还能起什么作用呢?

海伦是特洛伊战争发动的原因,而我们已经知道诺兰将《奥德赛》的主题改为反战、忏悔和赎罪,所以,毫不意外地,海伦成为了愧疚和羞辱的化身。诺兰还为她的脸增加了一道刀疤,以侧面展现战争的残酷,忒勒玛科斯离开时,她还情绪激动地跟小忒耳语,让他告诉佩涅洛佩,海伦为她引发的战争感到非常抱歉。海伦的刀疤不存在与原典中,她也从未对自己引发的战争感到过愧疚。海伦是神的女儿,她爱上特洛伊王子也是爱神阿佛洛狄忒的把戏,这整场战争都是神明与人的游戏。

允许我插一嘴不相干的,许多人不满希腊第一美人在电影中竟然由黑人扮演,但在我看来,比起海伦为什么是黑人饰演,更有趣的问题是欧律洛卡斯为什么是黑人,而且在两部改编作品中,这个时常顶撞奥德修斯的反面形象都是黑人。既然都已经跑题了,让我再插一嘴,奥德修斯的船上唯一一个摘掉蜂蜡去听海妖歌声的船员是由亚洲演员饰演的,有人说他之所以这么激动地跳下船,是因为这个东亚小孩听见他父母说爱他

我也对海伦这一角色呈现在电影中的样子颇有微词,这与人种无关,我在乎的是,为什么诺兰就不能让「希腊第一美人」就真的是第一美人,而非要在她的脸上刻下战争的印记?为什么奥德修斯非要自我放逐?为什么雅典娜非要是奥德修斯的想象?为什么诺兰要剥夺独眼巨人波吕斐摩斯的人性?为什么风神和人神信使不能留在故事里?为什么诺兰要把夫妻通过婚床不可搬动的秘密相认的情节,改成对原典中不存在的「海上人民」的揭秘和奥德修斯的忏悔独白?修改西方文明中最经典的故事,让歌颂变为反思,把辉煌变得压抑,最后呈现出的主题真的令人满意吗?

比起宏大,我更愿意看到小人物的痛苦和自私

诺兰的奥德修斯过于正直了,对待猎物也是如此,竟然要先弹一下弓弦警告猎物,然后公平公正地打猎。男人的正直和道德高尚貌似是很多人喜欢在英雄身上看到的,而这类作品往往把女性描绘得非常重感情,过度关注小家小事。诺兰的《奥德赛》就是这样,他描绘的奥德修斯和佩涅洛佩的关系其实相当保守和传统。电影中有一个镜头是夫妻二人在床上讨论克洛伊战争一事,佩涅洛佩哭着问奥德修斯为什么非要去,为什么我们不可以私奔,奥德修斯则非常沉稳、大义地为他妻子解答,说他为什么必须去。

这也是诺兰大刀阔斧的改编,传说中奥德修斯并不愿意出征,还耍了些把戏试图骗过众人:

伊塔刻岛国王奥德修斯以机智闻名,他刚与妻子佩涅洛佩结婚不久,诞下儿子忒勒玛科斯,因此不愿同行,当奥德修斯得知墨涅拉俄斯、阿加曼农、涅斯托尔及帕拉墨得斯来到伊塔刻时,他就装疯把牛套套在犁上耕田,又把盐撒到田里,帕拉墨得斯看出他的假扮,就把他的儿子放在田上,果然奥德修斯就在孩子前停了下来,奥德修斯不得不承认自己是假扮,只得履行当年的承诺,从这时起奥德修斯便恨帕拉墨得斯,并决心要报复。

——《 特洛伊战争 - 维基百科

诺兰把奥德修斯硬生生地改成了这样一个伟大光荣正确的男人形象,还辅以一个不懂得天下大事的女人形象,实在是有些…… 令人作呕。读者应该看出来了,我在前两篇影评中都相当克制和尊重诺兰导演,而这最后一篇我谈到了电影的主题以及对奥德修斯本人的改动,这才难以掩饰心情。

从头到尾,奥德修斯的伟光正形象都没有坍塌过。原本机智狡黠的奥德修斯通过话术欺骗了独眼巨人波吕斐摩斯,最后是出于傲慢,要让波吕斐摩斯记住是哪个伟大的英雄刺瞎了他的眼睛,喊出了自己的真名。电影中,奥德修斯的举动则显得像是被兄弟情、战友情等光荣的概念冲昏了脑袋的呆子,他射箭激怒了独眼巨人,让更多的兄弟当场死去。他完全不是那个狡诈的奥德修斯。三个版本的奥德修斯都向同伴隐瞒了六头海怪斯库拉的存在,原典中奥德修斯隐瞒是为了“免得同伴们知道后一时心生恐惧,停止划桨”,而电影中的奥德修斯又干了件伟大光荣的事情,他利用同伴们心中已然存在的不信任,让他们通过旋涡海怪卡律布狄斯,欧律洛卡斯反对,并带领船员往斯库拉的山谷划,这才只损失了六名船员,没有被旋涡全军覆没。他从一开始就想救下所有人,哪怕受人憎恨,多么无私的英雄形象!。顺带一提,原典中的欧律洛卡斯并未看出奥德修斯早就知道斯库拉会杀死六人,因此发动哗变,反倒是《EPIC》音乐剧中的《Mutiny》一曲描绘了欧律洛卡斯对奥德修斯的质问和怒吼。真的很难不让人怀疑诺兰有没有参考《EPIC》的改编策略,据说音乐剧《Just A Man》一曲中的母题(motif)也贯穿了整个《奥德赛》电影的原声带,但我不懂乐理,也不好深究了。

此外,奥德修斯的忠贞也是被夸大的对象。诺兰想要塑造的伟光正形象,怎么可以好美色呢?于是美女瑟茜变成了愁苦妇女,卡吕普索变成了心理医生,出于职业道德不能和病患发生关系,然而原典里的奥德修斯刚打败瑟茜就脱掉衣服与她同床,和卡吕普索待在奥吉吉亚岛上的七年也是没羞没躁。古希腊人似乎是没有忠贞这一概念的,只有女人的贞洁。音乐剧也把奥德修斯塑造成了面对诱惑依然不背叛妻子的男人,但音乐剧在其他方面把奥德修斯塑造得很自私,更何况忠贞对现代人来说的确更敏感,这倒也还说得过去。

如你所见,诺兰的奥德修斯是一个无私、正直、仗义、有大局观的男人形象,这样伟大的男人甚至还会忏悔和赎罪!真是更令人赞叹了! 然而, 道德对叙事来说无足轻重 ,塑造一个完全符合大众道德观的好人形象是很偷懒的做法,而且,说实话,这种做法缺乏深度。这样的道德不过是康德所言的定言令式,是不需要反思的,和阿伦特所述的艾希曼一样。如果说艾希曼展现出来的是一种平庸的恶(或者说恶的平庸性),那么诺兰的奥德修斯展现出来的,就是平庸的好人。

我更愿意看到自私的奥德修斯,为了回到家与妻子团聚不择手段的奥德修斯。音乐剧《EPIC》的改编尽管也把不少情节改编得让人难以辨认,但 Jorge 将奥德修斯从仁慈心软到不择手段的转变描述得十分生动。“在好与坏之间选边站不是最难的,在一团糟的情况下做出最好的决策才是。”在音乐剧的第一曲《The Horse and The Infant》当中,奥德修斯就面临这样一个两难的决策——他要么杀死特洛伊王子仍在襁褓中的儿子,要么留下隐患,导致自己和家人的灭亡。

在第二首曲子《Just A Man》中,奥德修斯将婴儿从城墙上丢下。他做了件非常不道德的事情,他一点也不正直、不伟大,他好自私,而我好喜欢这样的奥德修斯。他不是什么英雄般的男人形象,他“只是个男人”。这首歌的母题(I’m just a man 一词的旋律)贯穿了整部音乐剧,在不同的曲子中,在奥德修斯面临一个又一个道德难题时反复出现。

Jorge 采取的又一个改编决策是,同伴们吃掉了赫利欧斯的牛之后,宙斯并没有直接降下雷电杀死奥德修斯的同伴,而是给奥德修斯提供了选择:今天有人必须死,而你有最终的决定权,是你死,还是你的船员们死?

诺兰笔下的正直的奥德修斯甚至不用把婴儿从城墙上丢下,诺兰没有给他安排那样的道德抉择。如果有的话,他正直的形象恐怕就树立不起来了吧?

文明的起落

诺兰给《奥德赛》添加的众多新要素中,有一个最扎眼,那就是电影中人物口口相传的「海上人民」(The sea people)。诺兰从一开始就铺垫,海上人民四处烧杀抢掠,令伊萨卡的佩涅洛佩也很是担忧。其实在电影的前中段我就看出来「海上人民」就是奥德修斯一行人,因为在遇到独眼巨人之前,他们就非常突兀地抢劫了某个岛上的居民,这一情节的安排太过刻意,仿佛是怕我不知道海上人民就是他们这群人一样。最后奥德修斯伪装成西农与佩涅洛佩对话,坦白自己就是「海上人民」的时候,我一点也不惊讶。

当然,识别出这种叙事套路不代表这个故事要传达的东西就没有意义了。诺兰想要借此表达的是反战主题,即应该像自己想要被别人对待的方式对待别人,而奥德修斯以掠夺对待别人,他自己也受尽苦难,另远在家乡的妻子也无法停止担忧。我能理解诺兰想要在当今的世界局势下呼吁人们重新审视人与人(甚至国与国)之间的关系,反思我们是否遵循了宙斯之法(Zeus’ Law)。这或许也是为什么,原本辉煌荣耀的荷马史诗,在诺兰手里竟变得如此压抑。荷马的时代是文明焕发生机的时代,而我们的时代似乎在走下坡路—— AI 公司摧毁珍贵的实体书 ,有毒的社交媒体和算法平台让人们纷纷逃离互联网,当然,还有关税战、俄乌战争等我并不关心的政治事件…… 就像卢梭写的,科学进步反而使人道德败坏。

话还是说回来,诺兰的主题过于宏大,把对于文明层面的呼吁呈献给普罗大众,真的能博得什么共鸣吗?除了让一部分人点头同意,又能改变什么呢?能让普通人更好过吗?这也是为什么,我更想要看到小人物的自私,看到真实且具体的人的挣扎和生存的意志。这也是为什么我并没有对电影中从神女变成凡人的瑟茜感到特别生气,因为诺兰电影中的瑟茜,是为数不多能让现代观众共情的,一个痛苦的普通人。

假若我们真的在文明的某个低谷期(尽管每个时代都有文人感叹世风日下),呼吁人们重建文明反而显得不食人间烟火。文明的巅峰时期,荷马应该歌颂英雄与美德。文明的没落时期,我们不必盯着曾经的辉煌和应有的美德发愣,痛苦本身就值得被言说。


其实整篇影评已经写完了,但还有一些点我没谈到,前文找不到位置放了。各位若是还愿意读,就放松心情,把下面的内容当作番外赏阅吧。

旧王的猎弓

佩涅洛佩强弓择偶的挑战,究竟是怎么进行的?史诗里只写「如果有人能最轻易地伸手握弓安好弦,一箭射出,穿过全部十二把斧头……」,可究竟是怎么穿过?穿过斧头的哪里?诺兰的电影选择将十二把斧头成对斜放,形成六个大洞。在音乐剧的一些动画中,有画师给斧头靠近刀背的地方画了洞,箭矢要穿过十二个小洞。在 维基百科 的叙述中,挑战者要让剑柄穿过斧头手柄的洞(handle hole),也就是将手柄取下后,斧头横过来放能看到的洞,目标更小而且轨道更长。

这可能只是无关紧要的小细节,但在某种程度上也可以看出,诺兰在处处都试图现代化、合理化、去神秘化《奥德赛》的故事,让它更容易被现代观众接受。穿过六个大洞明显要比穿过十二个又细又长的洞容易做到,也不会过分神化奥德修斯。

这段情节与原典差异不大,倒是没什么好谈的,不过还是来听听音乐剧中的《The Challenge》一曲吧。

情节上,诺兰还是大致遵照了原典,伪装成乞丐的奥德修斯最后一个参与挑战。拿到猎弓后,原典中的奥德修斯第一个射向了安提诺奥斯的喉咙,可电影中的混战场面,安提诺奥斯还活着,躲在柱子后面尴尬地指挥别人「快打啊」「快打他啊」,也不知道用意是什么,大概是为了展现这个反派的懦弱吧。音乐剧中奥德修斯屠杀求婚者的情节由《 Odysseus 》一曲描绘,我觉得这曲子有些太中二了,不过也是好听的。

电影中奥德修斯与妻子是在强弓择偶之后相认的,删去了原典里的一个小细节。奶妈欧律克勒娅告诉佩涅洛佩,外面的男人就是奥德修斯,她在给他洗脚时看见了他腿上被野猪咬过的伤口。佩涅洛佩仍然谨慎,觉着这是神明给她设下的骗局,见母亲离得远远的,忒勒玛科斯还责怪母亲是个无情的女人。最后佩涅洛佩让欧律克勒娅把他们的婚床移过来,而这时奥德修斯气愤地喊道,那婚床是他亲手造就,被深深地嵌在地里,没有办法移动,佩涅洛佩这才相信面前的男人就是他的丈夫。

我保证这是我最后一次在文章里嵌入视频了。

奥德修斯的狗

细数完了我对电影改变的不满,接下来谈谈我对音乐剧的不满之一:你把奥德修斯的狗放哪了!狗呢?狗狗呢!?

塔罗牌中的「星币十」

奥德修斯有一条名叫阿耳戈斯(Argos)的狗,他在电影中也得到了不少镜头。奥德修斯离开了二十年,阿耳戈斯至少也活了二十多年,这个寿命对狗来说非常不可思议。阿耳戈斯最后被遗弃在门外的粪堆上,身上长满了寄生虫,已经奄奄一息。奥德修斯回到伊萨卡时低调行事,伪装成乞丐,没有人认出他,是奄奄一息的阿耳戈斯最先认出了阔别二十年的主人。在知道奥德修斯安全返乡后,阿耳戈斯才安心离世。是的是的,我知道这很俗套,但是谁会不喜欢这样一只忠犬啊!看《奥德赛》唯一一次接近眼眶湿润,就是因为阿耳戈斯。

塔罗牌的「星币十」有一种解读也关于奥德修斯和他的狗。星币十的牌面看上去象征着物质富足和家庭美满,画面中是一对夫妇、一位老者、一个孩子和两条狗。另一种解读是,这位白发老人与故土阔别十几年回到家,没有人记得他的名字,只有他的狗认出了他。

与「星币十」联系起来的作品还有卡夫卡的《变形记》(这就是更小众的牌意演绎了),当主角 K 变成一只虫之后,家人并不关心他怎么了,他们只关心 K 还能不能上班给家里带来收入。「星币十」象征的也是这种务实。《奥德赛》中的求婚者、长老和所有想让佩涅洛佩改嫁的人,兴许也带着一些务实心态或者对家庭、财富的渴望,他们不关心佩涅洛佩本人的意志,只想要美色和王位。奥德修斯回到家发现家里挤满了想要抢走他王位和妻子的求婚者,只有他的奴隶、奶妈、儿子和狗还认得他,愿意效忠于他,也很符合这种解读。

好了,就此打住,再写就要变成《 塔罗牌漫谈 》了。


最后

写《奥德赛》的影评竟然写了一整个星期,某种程度上很切题。

呼,我困了,那就回见吧。


  1. 这个观点来自播客《政治哲学圆桌》,详见 第 93 期周刊 。 ↩︎

魔兽争霸换兽族玩了

✇ACEVS
作者 ACEVS

我用人族和朋友打了150局左右,输多赢少,还记着分数。每次打完我统计一下战况。开始领先,后来落下了20局。

有时候随机狂输7.8把,他们出去旅游那天晚上,鏖战到晚上一点多钟,狂输10多把,不过这十多把中发现兽族剑圣挺好用,如果等级高点或者装备好点,2个大g可以打三四个弓箭手,然后还追着恶魔猎手砍,因为兽族的兵血多,和暗夜熊一样,好操作,不像 人族的兵,靠规模优势和补给强,但是身板大多数都挺弱,英雄里面就山丘比较肉给力了,但是抽魔完全克制他,反正人族单矿还能玩玩,如果卡住了暗夜空档期,如果空档期暗夜度过了,面对3.4个趴地的熊,还有小鹿,如果阵型不佳,拉扯不佳,英雄等级不高,装备不好,甚至没有带回城,那就可能翻转了。

人族双矿如果被第一时间发现,过来骚扰,然后双英雄压制,然后熊趴地再来一波,很多资源都用来造塔了,当然你造兵没有高级兵,三本科技慢与他,如果你双线能力强,抗压能力强,也可以骚扰他,但是收效甚微。

兽族则挺霸气,经常追着他砍,有时候三级剑圣当着二级恶魔猎手毫无顾忌的杀死娜迦,后来他不去练野了,直接在家憋好趴地熊,如果我这时候没有大量飞龙,或者牛头人,和白牛,万金油的大g狼骑和步兵,也是很难打的。有时候前期一个兵不死是优势也是劣势,很多残血,去他家猛砍就是送经验,回家吧,等他雄鹿转型成功,我这些兵输出又不那么够。这个也是问题。只能靠运气了。

后来飞龙战法胜利过,黑白牛战法胜利 ,下次就是跑狼骑试试了。

他们旅游归来

✇ACEVS
作者 ACEVS

都晒黑了,wife由于没有在股市下跌中逃跑。我问了一嘴,哪壶不开提哪壶。哈哈

吃过饭看他们玩万岁山的视频照片,看了一会儿,拿出来一个万岁山导览图,和我讲这个照片和视频发生的地点,以及他们游玩的线路。万岁山艺人很多,简直bilibili线下版本,杂记,魔术,舞蹈,走秀,打卡拍照点,玩水(二宝就穿个内裤),打火花,喷水飞行(夜场背上还有烟花,手里还有打火花) 打火花的又是某个宋朝某个诗人故事的背景,火花可以是繁华,也可以是战火可能。然后万国来朝,海盗大战等等,声光电的组合。三打祝家庄没有约上,要了个黄牛的微信,也没有约。
wife他们对于王婆说媒,还有二姐啥的,类似脱口秀互动的不大感兴趣就没去看,在仙侠区呆的久一些,门票三天,一天30多元。只能说现实中看别人的用力的表演还是挺值的.
打卡拍照点也有不少,布景假花多点,有雾森系统,挺凉快,某天还停电了,很多项目取消,拳击馆里面也挺热,园区方增加了一些其他简单不用电的项目。

清明上河园,算是高端付费区,万岁山,虽然也能加钱找黄牛不排队但是感觉挺灰色的,清明上河园就是明码标价,有钱可以先玩,不排队。门票也贵不少,大面积的水域,估计是他贵的原因之一,他们付费看了70分钟的节目,每人299元,wife说花的值,孩子没说啥,估计钱都花了不能说不值。哈哈。
轨道大摆锤,这个排队1.2个小时,还有一个海盗船一样的也是1.2个小时,想起之前魔兽世界也是排队玩游戏,如果想提前得买个vip。哈哈,现实世界经济活动也是是参悟了这一切。

博物馆挺多,估计是mini或者小型的,逛了个电影博物馆,其他逛了2个,还有好多个没逛,估计觉得没啥意思吧,博物馆看多了,大概率看看场馆构造就差不多了,物品摆件,不管它价值连城还是赝品,看完说明过眼就忘,可能自身没有收藏研究的爱好,不像马未都,小时候有点钱都用来换老物件了,乐此不疲,开始家人觉得傻,后来赚钱了,觉得是个生计生意。后来还开了个博物馆。

清明上河园逛了一天,第二天就懒得逛了,陪二宝玩了大半天的水,第三天吃点东西,小逛一下,收拾一下就回家了。哈哈

骂人最脏的那句,也是骂自己最狠的那句

前两天收到一条没头没尾、也没有办法联系对方的匿名私信:

我一开始很想骂你,写了一半,发现你骂我的都对,我骂你的也是骂自己。

我真的非常认真地思考了一下:我最近好像也没有骂人。真的有阴阳怪气的部分,倒是昨天在形容“独树不成林的粉丝群”时,用的字眼是“核心小群体”。关键是,这个小群体还不是我特地构建的,是这群人自己认为并形成的,并以此作为贴靠自己的身份标签、用来证明别人回答错误的立场。

当然,如果有人认为这就算是在“骂人”,那我还是认的,毕竟甚至有时候,“一个丈夫连呼吸声音太大声”也可能是一种“错误”。我一般不会特地向人自证我到底有没有骂人,大部分时间我都会认同对方的主观感受,并将主观感受视为最高层级的认定标准。

上一次我还在如此认真自证,是在 TG 频道和一个朋友在聊:我在评价别人禁不起合订本拷问的同时,我是不是也是一个禁不起合订本考验的人。我还特地私信找到他,聊了聊我对于这件事的看法,并不是为了自证我是“对的”,而是想通过这种方式尽可能地呈现我的真实想法,或是我的主观感受。因为我仍然认为主观感受是第一层级的事情——既然我的言论让人感到不适,让人做出了特定的评价,那一律都算“正确”。用这种二元对立的分化,也是为了避免在不必要的自证事情上消耗太多精力。


我几乎可以在上述的这件事做到“绝对无视”。

我是一个很会“无视”他人的人,而且是不透露一点情感的蔑视。在成长的过程中,这能很好地保护我不过度内耗——但事实上,明确地知道自己在无视谁、因为什么无视,本身就是一种内耗。

这种内耗的过程是割裂的,比如我明确地知道“我在讨厌什么”,但搞清楚这件事并不会让主观感受、甚至是生理性的厌恶反应得以改善乃至消失,甚至可能还会加剧内耗本身。当理性无法遏制主观感受持续产生时,可能就会转向对自我的否定:你连这点情绪都控制不了?

对,就是控制不了,因为这就是人与生俱来的能力。

会因为喜欢的人呼吸急促、会因为厌恶的人觉得食之无味、会把站在摇晃吊桥上的心跳加速误以为是爱上一个人,会因为疑邻窃斧而论证他接下来的每一个行为都是因为心虚……


斯多葛主义的代表人物爱比克泰德有一句常常被跨领域引用的名言:

人们的困扰不是来自事情的本身,而是来自他们对事情的看法。

但这句话常常被鸡汤文学错误地理解为“只要改变看法,就能避免痛苦”,从而又回到要求当事人规避某种主观感受和情绪的发生,从而避免自我陷入情绪的死循环。但斯多葛主义最核心的理念却像是在让人们去接受“痛苦”本身,比如:

  • 思想与控制的二分。强调人们只关注并掌控自己的思想、意图和行为,接纳那些无法改变的外在环境;
  • 顺应理性。由于斯多葛派的伦理学与灵魂论建立在物理学上,所以他们认为宇宙受一元的理性所支配,人们应当用理性克制冲动与强烈情绪。

也就是说,当人们因为某件人或事产生了某种主观感受时,是因为个体的看法所影响的,那么“改变看法”成为了一个判断空间。例如“我讨厌这个人”,斯多葛主义并不会要求所有人立刻变成圣人,即“讨厌源自于我的看法,我应该接受所有人”,而是多了一层判断:“我是否需要因为这种讨厌情绪继续与之产生联系、他能否为我提供价值、我是否会受到他的影响。”这个判断空间,旨在顺应感受,做出具体的判断。


另一个一句话把“理性”归于虚无的哲学家,是大卫·休谟。

理性是激情的奴隶。

当然,这句话也被经常性误读为“理性背后往往是激情本身”,而是因为这件事有一个前后顺序。即人并不是先通过理性做出判断,然后产生对应的情绪。人们往往是先产生喜欢、厌恶、恐惧、渴望的主观感受,才能够让理性介入并寻找主观感受所产生的缘由。也就是说,人们的纯理性本身是不存在的,决策层面的理性,也是因为退位在了感性感受之后,感性本身才是决定因素和驱动力。

就像是疑邻窃斧,所有的“罪证”,都是因为我先产生了对对方偷窃的怀疑,从而导致我接下来的认知和理性分析都偏向了对他的定罪,而非疑罪从无。

休谟对于理性的理解,或多或少还有些“功利主义”的视角,将感性和理性对于一件事的影响“占比”做出了分析,甚至可能得出“对与错”的结论。这就好比,我聊哲学会更偏向于通过类比的方式进行举例,而非大量的引经据典、解释概念,这样的“不专业”行为,很有可能被认定为是“错误”的。但是人们在看到“理性是激情的奴隶”这句话之后就会产生强烈的理性欲望,对其进行严肃的展开,每一句话都必须是哲学范本里的那些晦涩难懂的、不肯用标签符号切断的长条句式吗?

“激情”的部分,只是负责了人们在看到这句话后,第一时间想到的那个“自己”——哦,原来我那天看似认真考虑的离职,很有可能是源自于我很厌恶那个坐在隔壁的同事。


于是,下一个哲学家出现了——弗里德里希·尼采。这大概是“现代哲学警察”最头疼的哲学家,因为他被后世流传的经典句式,几乎都已经被扭曲成了各种白话文的理解,甚至已经完全偏离了原本被构建起来的哲学观。

就比如尼采会不断的透过分析自己,来实现自我。

就拿最开始提到的主观感受而言。

我讨厌一个人→我为什么讨厌他?→从理性的角度,这种厌恶是否是一种对自我的厌恶?→我要消灭这种厌恶所衍生的各种情绪。

尼采认为这个过程是一种生命里衰减的具体表现。因为厌恶、嫉妒、攻击性本是生命力的一部分。那么现在应该学着转化这种能量,将对自我感受的拆解,转变为“我应该超越对方甚至是自我”。

尼采并不是反对嫉妒本身,而是反对人们以嫉妒作为存在性证明。具体来说,他特地拆解出了“反应性人格”与“主动性人格”——“我讨厌这个人。”

  • 主动性人格:“我因为看到他的某个行为,背离了我的价值判断。”
  • 反应性人格:“只要我证明他是错误的,我就无需面对我的问题。”
  • 真正刺痛人的骂,往往不是因为它恶毒,而是因为它碰到了一个自己已经知道、但不愿面对的部分。

当然,这种打鸡血的模式并不适合所有人。还是有一些人更适合透过反对别人来证明自己的正确性,因为这是最不容易涉及到内核动摇的行为。就像是那些“现代哲学警察”会揪着哲学范文的格式性问题,去不断证明自己才是正确的。


绕了一大圈,终于要闭环了。

如果一个人觉得我在骂他,却最终发现我骂的是“对的”,甚至他的反抗也是在戳穿自己的时候,刚好完成了这三个哲学维度的跳跃——

  • 斯多葛主义:我觉得我被骂了,我试图改变我被骂的看法,特别是改变那个骂我之人对我的看法;
  • 休谟:透过理性进行抗辩的过程中,我意识到自己也存在感情和主观感受;
  • 尼采:我为什么会产生这样的主观感受,是不是因为对方真的骂对了,我才跳进了这个圈套,我应该去研究自己的主观感受从何而来……

看吧,人人都可以是自己的哲学家~因为你骂人最脏的那句,也是骂自己最狠的那句。

——

感谢订阅莫比乌斯,如你有任何疑问、观点交流,请前往创作者频道,或私信联系。

丁达尔

小王闲来无事,看见远处的云层里透出了阳光,便停下脚步掏出手机开始拍照。

一个路人看见小王用手机拍照,便上前问道:“你在干什么?”

“啊,我,我在拍丁达尔。”

“什么丁达尔,丙达尔的,你是不是在偷拍情报?”

这句质问,小王一下子被一群路人围堵了起来,众人议论纷纷,另一个路人说道:“什么丁达尔,我看你是你们的暗号吧,丁达是定位雷达,尔是交头接耳。”

“走走走,你跟我们走一趟。”又一个路人伸过手抓住小王的胳臂。

那个最开始质问小王的路人,赶紧抢过小王的胳臂,生气地说道:“这是我先发现的,跟你走什么走!”

“你这人怎么说话的,要不是我破解了丁达尔的含义,你都没证据。”另一个人也抓过小王的手。

“你少跟我抢功劳!”

小王被扯来扯去,远处的丁达尔比刚才拍得时候还好看。

——

感谢订阅莫比乌斯,如你有任何疑问、观点交流,请前往创作者频道,或私信联系。

独树不成林,牛来人来疯

我们先猜一猜《牛来》的受众是哪些人?

这里先埋个包袱——大概过几年,可能又会有人把这部电影翻出来,标题我都帮他们想好了:《X年了,你们真的看懂了“牛来”吗?》

《牛来》是不是一种审丑猎奇,讨论这件事就跟讨论《奥德赛》好不好看一样,这本就是文无第一武无第二的话题,而这部电影莫名其妙地火,确实裹挟了各种现实要素。比如:

  • 社交货币。就跟前段时间的竹知了一样,成为了一种流量密码。而《牛来》的社交符号更偏向于年轻人,成为一种他们之间的谈资;
  • 叛逆心理。异类往往会成为群体当中,用来对比群体观点的反抗“符号”。《牛来》作为异类,更像是对传统电影市场、大众审美的一种颠覆与嘲讽;
  • 从众心理。大家都在看,我如果不看,是不是意味着我落伍了,甚至会被群体进行排挤;
  • 心理安慰。甚至有一些股民,以《牛来》的名字作为好彩头;
  • 狂欢化。这是米哈伊尔·巴赫金提出的诗学理论。简单来说,将中世纪欧洲狂欢节的仪式形式转化为文学语言的过程。其核心在于通过全民参与的诙谐文化打破社会等级,颠覆权威话语,构建平等对话的文学表达。《牛来》虽然不是专门制作出来打破规则的,但人们在讨论和参与的过程中,逐渐形成了狂欢化;
  • 主流叙事与社会环境。经济下行时代背景下,主流叙事与事实发生割裂时,人们会不信任、甚至蔑视主流叙事。《牛来》恰好是那个不符合主流叙事的符号。

但至于是哪个原因造就了《牛来》的火,这又很难单独拎出一条作为原因分析。

那聊聊另一件事。


前段时间,“独树不成林”的播客主仲树被人提出洗稿、抄袭、汉化搬运的质疑。我本来没打算聊这件事,但既然《牛来》爆火了,他们俩倒很适合放在一起聊——一方面是个人恶趣味地把他们统一归类,另一方面也是因为这两件事有相同的底层逻辑。

在此之前,“独树不成林”也是播客圈子中的社交货币,如果谁没有听过这个播客,甚至可能被核心小群体认定为“我是严肃播客听众”、“你没有真正听过播客”。我自己做过一段时间播客,所以当我要评价仲树时,就自然获得了一个“被比较”的身份。特别是当我在评价其他播客时,难免会被质疑动机:你做得出来吗,你就质疑人家。

相反,《牛来》让做电影这件事从“专业”滑向了“不专业”的极端。既然这样的电影都能上影院,在同一时期对抗《龙餐馆》与《奥德赛》,而主流叙事结构被打破,甚至有人认为《牛来》是动画界的《奥德赛》,并作为符号嘲笑那些(我这样的)试图从《奥德赛》中看出意义、自我的观众。就比如,我如果嘲笑仲树,就能证明我那已经停更快一年的播客是“正确”的。

接着,就会出现两个与之对应的社交货币——“反对”独树不成林的,甚至认为这个播客因为洗稿抄袭一文不值的人;质疑、理性讨论《牛来》的,将这场狂欢解构为社会现象的人——比如此时此刻的我正在做的事。

但“社交货币”的核心,在于它是否能被转化为“价值”。按照社交货币的定义——社交货币就是利用人们乐于与他人分享的特质,来塑造自己的产品或思想,从而达到口碑传播的目的。而这个传播一旦形成,商业链条也形成闭环,比如接广告或是业配、赞助、冠名。比如就连盲人主播都可以在“日常记录”里接卫生巾的广告。

社交货币可以用于抱团、形成个人影响力、身份标签,当然也可以被换算成流量变现的一部分。


问题不在于,站在这件事两端、或是伪装成理中客站在中间的人孰对孰错,而是人们试图用自己所在的立场,去证明别人错了。比如我跟一个做播客的朋友也聊到了仲树,她显然是“支持”仲树的,认为她就算是搬运,也是在将一些文化与想法让更多人看见。而我听过她节目之后,觉得她缺少一个属于自己的思考模型,大部分时间都是在引述他人作为背书。

于是我被对方骂了一通,认为我就是为了反对仲树而反对,最后还上升到了“你是个男的,你当然不会支持这些独立女性”。

既然她得出了这样的结论,那我再怎么辩驳也失去了意义,因为从立场来说,男女对立本就是改变不了的根本立场。所以当下,我只能支持她的观点,在对错问题上甚至不允许有中立的部分。

立场之下的群体,以确保自己的观点能够压过对方,从而引发我最开始提到的那些“要素”。


仲树争议最棘手的地方,在于知识型内容的原创边界本来就很模糊。观点可以来自别人,史实当然不属于任何人,但当材料选择、论证顺序、案例、比喻、甚至笑点都高度重合时,参考、转述、洗稿、抄袭间那条看不见的线,究竟在哪里?但《牛来》还有另一个我认为不能忽视的“时代背景”。

这种猎奇、抽象、甚至有些邪典的东西,在历史上也有过类似的时期。

1930 年代的日本,曾进入过一段被称之为“エロ・グロ・ナンセンス”(ero·guro·nansensu)的时期,字面翻译为“色情、怪诞、荒谬”。这个时期的日本,正在遭遇 1927 年昭和金融恐慌、侵华战争的时代背景。民众的焦虑、恐惧、无意义感,催生出了一种逃避现实的文化现象:报刊、杂志、书籍充斥着大量的色情、怪诞、荒谬、犯罪与变态题材的作品,透过这些作品的刺激,可以让人们在每天转瞬即逝的快乐中忘记烦恼。

但这并不是一个独立、量化的指标,而是多种因素共同作用下被催生出来的“特殊时期的特殊产物”。这条社会学层面的化学公式,也可能成为《牛来》爆火的催化反应路径之一。

独树不成林与《牛来》,两者像是完成了一场时空上的交接班:上一个社交货币一瞬间挤兑,另一枚社交货币立刻发行,在不同的人群与立场之间,完成了一次社交货币的金融海啸。

而那个真正不断发行的东西从来没有换过——“我是哪一种人?”

——

感谢订阅莫比乌斯,如你有任何疑问、观点交流,请前往创作者频道,或私信联系。

诺兰的《奥德赛》采取了什么样的改编策略? II

书接 上回 ,我对比了荷马史诗原典、诺兰的电影改编和 Jorge 的音乐剧《EPIC》分别如何呈现智慧女神雅典娜、女巫瑟茜、海之神女卡吕普索、独眼巨人波吕斐摩斯,分析了冥界之行和塞壬之歌起到的不同作用,还提及了诺兰对神明的现代化处理以及背后的考量。这一篇我们继续讨论这三部不同的《奥德赛》作品,这次我们聚焦电影中没有出现的神明和人。

赫尔墨斯:无法归于自然之神

上篇提到,诺兰对《奥德赛》中的神明做了相当现代化的处理:神明其实是古人对自然现象的解释,所以电影中的雷声和海浪就是神在与人对话,神明没有直接现身。然而,这个说法在某一位神上完全站不住脚,那就是人神信使赫尔墨斯。如果神只是对自然现象的解释,那为什么会有神作为信使来到人间与凡人直接对话呢?的确,这说不通,于是诺兰直接把赫尔墨斯删掉了。

原典中的赫尔墨斯起到了什么作用?首先是在第五卷《奥德修斯启程归返海上遇风暴》,宙斯让爱子赫尔墨斯前去告知卡吕普索释放奥德修斯,卡吕普索不敢违背宙斯的意图,于是放奥德修斯回家。

此后是第十卷《风神惠赐归程降伏魔女基尔克》,在瑟茜(或基尔克)的岛屿上,奥德修斯准备前去营救被变成猪的队友,但凭借他自己的实力是无法与拥有巫术的神女对抗的。这时赫尔墨斯出现了,给予他只有不死的神明才有能力拿到的植物摩吕(Moly),吃下之后,奥德修斯就可以免疫瑟茜的法术。赫尔墨斯还交代了很多细节,比方说奥德修斯应该在瑟茜挥魔杖的时候拔刀,把她打倒在地,之后瑟茜会被奥德修斯折服,在同她上床之前,应该要她向神明发誓不会趁奥德修斯裸身时耍把戏——赫尔墨斯真的是我这种自闭症小孩的天使,连什么时候挥剑这种细节都交代得清清楚楚,安全感满满呢。

最后是第二十四卷《神明干预化解仇怨君民缔和平》,赫尔墨斯持权杖引领被奥德修斯杀死的求婚者的亡魂前往冥界(或哈得斯)。不过我翻了半天,也没搞明白如果不是赫尔墨斯引渡灵魂会发生什么。我想这只是神话的一部分,和史诗的情节关联不大。

赫尔墨斯大致有三次现身,最后一次或许不重要,但前两次对情节都有关键的推动作用。没了赫尔墨斯,诺兰是如何处理这些情节的呢?其实在上篇谈瑟茜和卡吕普索的时候已经提到了:诺兰电影中的卡吕普索并没有因为私心而困住奥德修斯,在她认为奥德修斯恢复心力过后,便放他走了,自然也不需要赫尔墨斯下场;电影中的瑟茜并不是可以随意用魔杖施法的女巫,奥德修斯没有吃食物,还擒住了变成乌鸦的瑟茜姐妹以威胁她,靠自己的计谋说服了瑟茜。

嗯…… 这么看来赫尔墨斯在史诗中登场的必要性的确不大,荷马大概只是想要歌颂神明。不过留下他又何妨呢?毕竟这是希腊神话的一部分。另一边,改编自《奥德赛》的音乐剧作品《EPIC》保留了赫尔墨斯的两次现身,删去了引渡灵魂的情节,此外还给他的第二次现身加了些戏份。

首先是音乐剧 The Circe Saga(瑟茜篇章)中的《Wouldn’t You Like》一曲:

这一曲描述了赫尔墨斯帮助奥德修斯对抗瑟茜的过程,看完我不敢相信是这个古希腊掌管迪厅的神杀死了百眼巨人阿耳戈斯。音乐剧对赫尔墨斯的处理其实是偏娱乐化的,他甚至把摩吕叫作 Holy Moly(老天叶)啊!赫尔墨斯这个角色从头至尾都没有太多深度,不过对于一个对剧情推动影响不太大(以至于直接被诺兰删掉)的角色,也还算不错,甚至可以说非常讨喜。大概是吉祥物一类的存在吧。

音乐剧没有像原典一样直接描述赫尔墨斯去到卡吕普索的岛屿,卡吕普索宴请赫尔墨斯的场面,而是在卡吕普索独白的《Not Sorry for Loving You》中简单带过,也在下面这一曲《Dangerous》中提及。

上面这一曲出自 The Vengeance Saga(复仇篇章),这整个篇章讲述的内容,其实在原典中都是在一卷内很快带过了。Jorge 不仅给赫尔墨斯加戏,还给波塞冬也加了戏,稍后会讲到。在此之前,让我们先来看看更惨的一个神明——风神埃俄罗斯。

埃俄罗斯:风神的协助,还是考验?

埃俄罗斯(Aeolus,或译艾奥洛斯)是风神,有着控制风的神力。奥德修斯逃离独眼巨人波吕斐摩斯之后,路过了飘浮在天空中的岛屿埃俄利亚岛,那里生活着风神、他的妻子和他的十二个孩子。奥德修斯抵达后,风神招待了他们整整一个月,询问他路途中遇到的各种事情。某种程度上,原典中的奥德修斯是个「万神迷」,不仅宙斯喜欢他,雅典娜为他求情还护他儿子周全,神女一个一个的都和他同床欢爱,连路过一个神明的宅邸,都要被留下来招待一番。我想这反映了古希腊人对英雄的崇拜,也就是对美德、卓越和智谋的崇拜。在这些美好的人类品德面前,众神都要称赞。

为了帮助奥德修斯归返,风神给了奥德修斯一个风囊。他把所有风都装进了袋子里,除了温柔的西风,这样奥德修斯就能顺着西风回家,不被风暴困扰,前提是奥德修斯不打开风囊。结果:

我们连续航行九天,日夜兼程,第十天时故乡的土地已经清楚地显现,看见人们就在不远处生火添柴薪。这时我疲惫过分,陷入沉沉的梦境,因为我一直掌握航舵,未把他交给任何同伴,为了能尽快返抵乡土。同伴们这时却开始互相议论纷纷,猜想我准是把黄金白银载回家,就是那希波塔斯之子、强大的艾奥洛斯的赠礼。有人看着身边的同伴,这样议论:

‘天哪,他到处备受人们的爱戴和尊敬,不管到达哪个部落的城市和土地。他从特洛亚携带回来很多掠获的珍贵财宝,我们也作了同样的航行,返回家园时却是两手空空白辛苦,现在艾奥洛斯又盛情招待,给他礼物。让我们赶快看看那是些什么东西,皮囊里也许又装满了黄金和白银。’

他这样说,大家赞同他的坏主意。他们解开皮囊,狂风一起往外涌。风暴骤起,立即把他们卷到海上,任凭他们哭泣,刮离故乡的土地。

与是他们又被吹回了风神的岛屿,风神此时还很惊讶,问他:“奥德修斯,你为何回来?遇上什么恶神?我们已妥善地把你送走,让你返回故乡家宅或者你想去的任何地方。”如实交代之后,风神愤怒地赶走了他们,把他称作「人间最大的渎神者」。

尽管风的确是和雷电以及海浪一样可以用神明解释的自然现象,但被风吹过来又吹过去,实在是有些过于超自然了。大概也是因为和诺兰对神明的解读不和,所以没有被保留在电影中。

音乐剧《EPIC》对这个情节做了些改编。首先,风神埃俄罗斯一家子只有风神一人出现了,而且风神是一个顽皮的小女孩的形象,看起来不像是有家庭的样子,只有一群精灵样的神灵跟随在她身边。性别的转变还挺令人意外的,说起来风神的家人对情节并没有很重要,而且顽皮女童的形象似乎在某种程度上也更贴合一些人对风的认知。再者,音乐剧中的奥德修斯一行人并没有被吹回风神的岛屿,而是被吹到了巨人岛——歌词里的 Land of the Giants 用词有些模糊,鉴于拉斯忒吕戈涅斯人(巨食人族)没有在音乐剧中出现,这里应该是指独眼巨人的岛屿,而且这首歌的下一首就是波塞冬的《Ruthlessness》,音乐剧让奥德修斯被风吹回了独眼巨人家门口,然后被波塞冬袭击。Jorge 真的给波塞冬加了很多戏,原典里奥德修斯一行人离开风神岛之后,就直接去到了海岛艾艾埃,遇到了瑟茜。

可以发现的是,原典中风神是真心想要帮助奥德修斯,但好心被枉费之后感到愤怒,而音乐剧中的风神则从头到尾都保持逍遥自在的形象,仿佛给奥德修斯风囊仅仅是为了考验、试验甚至恶作剧。同时,这首《Keep Your Friends Close》也巧妙地引出了故事的另一个主题:对身边人的信任。歌词可能和中国的一句老话有些关联,也就是:日防夜防,家贼难防。

波塞冬:残酷与仁慈的二元性

古代人的道德意识没有现代人那样强,他们尤其缺乏反思,即便是荷马史诗里的智慧女神雅典娜,见了人也会说「你母亲生了你,你竟然如此慵懒」「你要嫁人了,应当穿得漂亮」「穿得漂亮能给人带来声誉」之类的话。所以,阅读荷马史诗不能讲现代人的道德,更不能思考「为什么?」这个现代性极强的哲学问题。如果有人说「一切外来者都是宙斯遣来,应当招待」,就不会有别的道理或真相,电影中的宙斯之法(Zeus’ Law)也是如此——而诺兰电影中对于「打破宙斯之法」的反思,在我看来是对荷马史诗最大的现代化,即「反思」的出现。

波塞冬为了帮儿子报仇而折磨奥德修斯,也是天经地义的事情,说「神明应该比凡人更大度」「波塞冬该不该原谅奥德修斯」更是无稽之谈。正是出于「要帮儿子复仇」这个简单的定言令式1,波塞冬才在背地里使坏。诺兰并没有改编这个定言令式,而是把定言令式的执行者从神明换成了凡人,奥德修斯的小伙伴们把海水的动荡解读为波塞冬为儿子的复仇,这本质上还是在对古典道德的必然性的诠释。

前文提到,音乐剧给波塞冬加了很多戏。即便是在原典中,波塞冬也没有与奥德修斯正面对峙过(如果真有,那奥德修斯恐怕早该死了)。波塞冬在奥德修斯从卡吕普索岛离开时,掀起海浪打翻了他的木筏,奥德修斯费了好一阵工夫才去到费埃克斯国土,在那里得到了公主和费埃克斯人的帮助(不知为何,诺兰的电影和音乐剧都省略了这段剧情,奥德修斯离开了卡吕普索之后就直接返乡了)。见奥德修斯睡在费埃克斯人的快船上,马上抵达,波塞冬便问宙斯:这奥德修斯不应该历经磨难才回到家吗?你看他,睡得这么香就被送往家园了,还带有财宝,是不是有些太轻松了?宙斯觉得波塞冬作为神,他的意志也不该被一直忽略,于是就同意让波塞冬惩罚送奥德修斯回家的费埃克斯人。波塞冬本想把费埃克斯人返回的船击碎,宙斯让波塞冬改为把船只变成巨石固定在海面,再升起山峦围住他们的城市作为警示。费埃克斯人见状就知道是波塞冬生气了,决定再也不护送外乡人,并且要给波塞冬献祭肥牛。

所以,原典中的波塞冬仅仅是在奥德修斯最后的路程中使了绊子,而且大多数时候都是背景板。诺兰却反过来,让奥德修斯在离开独眼巨人之后就立刻受到风浪阻碍,反而在回程时被大海直接带回家园,甚至没有受到费埃克斯人的帮助。上篇提到过,奥德修斯是在接受了卡吕普索的「心理治疗」过后将自己投入世界当中,而后又被世界(包括海洋)所接纳,自然将他送回了家。有点像是某种泛神论,或者仅仅是内心状态对外接的投射。音乐剧则是双管齐下,不给奥德修斯留活路:奥德修斯在被风囊放出的风吹离故乡海岸之后,就受到了波塞冬的袭击。

风神埃俄罗斯还客串了这首《Ruthlessness》。我们可以在这曲子里看到非古典哲学的反思,波塞冬不仅仅是一个遵循定言令式的角色,他还前来教育奥德修斯,他说:“我最讨厌你这种散发着伪正直的恶臭的希腊人。”所谓的「伪正直」(false righteousness)是指奥德修斯的仁慈,最终会害死他身边所有人的仁慈。波塞冬把奥德修斯的手下杀得只剩四十三人,然后告诉他:“假如你直接杀了我儿子,没有给他留活路还告诉他你的真名,这些惨剧都可以被避免。”最后回到这个曲子的主题:对敌人的残忍就是对自己的仁慈——波塞冬对奥德修斯的残忍是对他自己的仁慈,而奥德修斯对波吕斐摩斯的仁慈则成了他对自己和身边人的残忍。

这首《Ruthlessness》的母题(motif,也称「动机」,指一段音乐旋律,音乐的叙事单元)还会在之后的曲子里反复出现。Jorge 给波塞冬加戏,并不仅仅是为了让这位神明在背景板之外大显身手,还是为了给整部剧定下一个新的主题(之前的一个主题是 The Troy Saga 中的《Just A Man》),我们也可以看到奥德修斯在之后慢慢拥抱了自己的黑暗面,用对敌人的残忍来饶恕自己。

Jorge 真的对奥德修斯很残忍,原本波塞冬只是在奥德修斯安全回家之后惩罚了费埃克斯人,音乐剧中波塞冬却守在了伊萨卡海岸,拦住了刚看到故乡土地的奥德修斯。请看《Get In The Water》

呃,不过后面的那首《600 Strikes》就有些阴间了…… 什么?奥德修斯把风囊当充气背包穿上跟波塞冬肉搏?你是认真的吗? 而且全是音乐剧添加的情节,我只想解读为:奥德修斯把这一路上受到的所有苦难和折磨都发泄在了波塞冬身上,此时他彻底从人变成了「怪物」——这是从第二首曲子《Just A Man》就延续到最后的母题。

波利特斯:奥德修斯的挚友

波利特斯(Polites)在原典中的确只被提及过一次,在瑟茜的宫殿前,是他鼓励其他战士一起进入,最后他们被瑟茜变成了猪。在提及的这一次中,波利特斯被称作最勇敢的战士,也是他最亲爱的朋友。诺兰的电影完全没有出现这号人物,我前些天闲来无事去看了《奥德赛》电影演员参加的参访,被问到「谁是奥德修斯最好的朋友?」时,饰演奥德修斯的 Matt Damon 竟回答说:“欧律洛卡斯(Eurylochus)是奥德修斯的二把手,但…… 我猜是佩涅洛佩(Penelope,奥德修斯的妻子)吧。”波利特斯的名字就没有出现过。唉,要是不 Matt Damon 实在是太帅了我就已经开始鄙视他了。

音乐剧对波利特斯的处理,与原典也没有任何关系。波利特斯只被描述为「最勇敢」,其余的性格都没有交代,所以 Jorge 作了一首《Open Arms》,把波利特斯描述成一个乐天派,缓和了奥德修斯的小心翼翼、焦虑和恐惧。

甚至还给…… 波利特斯这个古代人画了副眼镜吗?此外,这类人畜无害的男性形象也相当现代,在荷马史诗里从未出现。波利特斯对整部音乐剧的作用是,成为第一批死在奥德修斯回家路上的同伴,《Open Arms》的母题也时不时出现在后续的曲子中,让奥德修斯回忆起挚友的离世和一路上失去的所有东西。

另外,波利特斯在原典中与瑟茜相关的情节中还活着,也就是说他没有死在波吕斐摩斯的嘴里,实际上我们不知道波利特斯是被斯库拉吃掉了,还是被宙斯的闪电劈死,但音乐剧中他在独眼巨人的洞穴中,倒在了奥德修斯面前。

最后

果然,分成上下两篇是不够的,所以这是中篇,这周应该会把下篇写完的。下篇将会把目光从奥德修斯的旅途转向他的故土伊萨卡,讨论诺兰塑造的忒勒玛科斯为什么是电影中最失败的角色,希腊第一美人海伦为什么有刀疤并且为战争感到愧疚,佩涅洛佩对求婚者以及自己丈夫的考验,奥德修斯的狗与塔罗牌中「星币十」的联系,诺兰给故事添加的「海上人民」究竟为何物,以及整部电影的核心主题为什么令我失望。


  1. “令式有两种。如果某种行为无关于任何目的,而出自纯粹客观的必然性,那么这种令式才是‘定言令式’。”详见 维基百科 。 ↩︎

财富转移是怎样进行的

昨天上市的某准,今天上市的某树,都遭到了爆炒。我们来看看财富是怎样转移的。
以某树为例,无限售流通股3000万股,上午成交均价920元,截止到目前(上午11:00)换手率是60%,3000万股*920元*60%=165亿,下午收盘可能到200亿。
钱不会无中生有,有人赚了165亿,就一定有人失去了165亿。当如此大规模的财富转移发生时,媒体还在宣传单签收益45万破了记录,吆喝大家赶紧参与,好像过了这村就没这店了。没有人关心在今天上午这1.5小时内,在单只股票上,有165亿从某些人的口袋转到了另一些人的口袋。
所以今天上午只有500只红盘,却有5000只是绿的。前几天的反弹,很多人兴高采烈,说回血了多少多少云云。孰料一根绿棒下来,迅雷不及掩耳盗铃,根本来不及躲闪。
打新必胜,我一直认为是中国股市最大的Bug,是精心设计的制度性安排,A股的种种xx,很多都可以溯源到打新必胜上。
水浒的一个桥段浮现在我眼前。李逵拿起尖刀,看着黄文炳笑道:"今日,你要快死,老爷却要你慢死。"便把尖刀先从腿上割起,拣好的就当面炭火上炙来下酒。割一块,炙一块,骂道:
"端的是好肉!"

清仓科技

✇ACEVS
作者 ACEVS

过山车行情可能来了,

其实一直是过山车,涨跌算一个回合,第一回合,2024.9月大涨,不过没有大跌,震荡到2025年一月份。

第二个回合涨到2025年3月份左右,震荡下行到2025年七月,

第三个回合震荡向上到十月份,震荡向下到2025年12.15日左右,

第四个回合向上到2026.1月底。又开始向下,到4月份。

第五个回合2026.4月到5月22日左右 猛涨,然后下跌震荡2周到6.10日

第六个回合2026.6.11涨到6.30日,然后7.1-7.8日下跌。

第七回合,7.9号一天涨了8%多点。7.10日开始跳楼式下跌,一直到了7.20日。郭嘉队敲锣打鼓来救市了,大概花了几百亿,之前几万亿悄无声息的套现.

第八回合 7.21号科技大涨10%,然后7.22震荡大跌到8.3日。下跌时候经常来个诱杀盘大涨一下,和7.9号一样。

第九回合 8.4开始震荡上行到8.18日小幅上涨,今天大跌。6%左右。

非常刺激。昨天我还在看技术指标,今天感觉不大对头,直接清仓所有。

从2025年到2026年 收益率变化 20%-3%---20%左右----4% -----12.5%(今天清仓收益)左右,加密货币(亏50%不过钱很少)也清仓了不知名的一些,发现精力有限,不能整的太多,根本看不过来(就不看哈哈)。

楼下的官方催生海报,七夕跟生育关联起来了

情暖七夕优生相伴

中午在楼下看到这个官方的七夕活动文宣,感觉挺有喜感的,又看到了官方催生的节奏。胡乱联想到一些问题。

前几天看到的一则热门新闻,说的是某银行内设置了婚姻登记处。当一个大的政策方向被细化为基层kpi时,各种抽象的事情都不奇怪,以上这两件事完全是在非常温和的范围内。

可能很多人听过,某些地方政府为了政绩kpi,美化结婚率的数据,而拿出一些啼笑皆非的操作,比如重金奖励外出工作的当地人回当地登记结婚,比如给以前没有结婚证的高龄老人统一补发结婚证。

现在结婚登记哪天都能办,但是离婚登记据传就预约爆满,甚至有些人一个月以内都无法预约到,或是要到外地去预约。但是看一个数据说2026年上半年结婚登记327.5万对,离婚登记138.3万对。结婚登记数量是离婚登记数量的2倍多,按理应该是结婚登记比离婚登记更难才对,然而现实正好相反,结婚登记容易而离婚登记困难,说明离婚登记很可能存在人为设置障碍,然而这样的障碍对于降低离婚率的作用其实是零。

马督工说过一句话,我挺认同,大意是,任何为退出设置的障碍,只会降低进入的意愿。这个规律不仅适用于婚姻,也适用于股市、楼市等处。如果股票的卖出很困难,比如你要先提交预约,预约到了之后再等一个月才能卖,就不会有那么多人进入股市。

不止是中国政府在催生,所有发达国家和近些年经济发展迅速的欠发达国家也都在催生,可以说催生已经是世界主流。相比而言,中国对于催生的投入,还是远低于发达国家的,这个力度以后一定还会持续提升的,向欧美日韩看齐,且还要超越。

个人觉得,光是催生,给出各种生育补贴,还都是治标。根本是思想革命,价值观的塑造。当你价值观认为生育是一种绝对损失,政府补贴越大,你越容易觉得这个损失更大,补贴额度只是为这个损失提供更透明的价格。当然,我认为生育补贴是正当的,降低生育者的成本,也能提高生活水平,提升幸福感。但幸福感更多来源于价值判断。《给阿嫲的情书》里的淑柔养育三个孩子,物质并不太富裕,但她的内心是富裕、幸福的。

回到七夕的话题。

有人给我转发一篇微信公众号文章:《父权制里被歌颂的“爱情”是——牛郎对织女的盗窃、强奸与非法拘禁》。我看了之后大受震撼,激进女权在这篇文章中具象化了。我当时的回复是“心理黑暗扭曲成什么程度才能这么解读呢?”

文章通篇大量使用父权欲望、男性凝视、客体化、符号性圈禁、偷窥、强奸、性剥削、生育工具、子宫剥夺、无偿劳动等等极具情绪偏向的词汇。对于文章的各项观点,槽点太多,我懒得逐一反驳了,不值一驳。如果按照这个逻辑解读任何传说故事或文学作品,都能得出一样的暗黑结论,永远只能从那些故事里看到乱伦、强奸、囚禁、男女对立。

现在网上有一股潮流,人们很难在网上晒出传统的家庭幸福状态,因为很容易被激进女权主义者攻击,把晒幸福的女性攻击为没有主体性的生育机器,把晒幸福的男性攻击为剥削女性的既得利益者。越是一些没有好好工作,不知道生活多艰,躺着享受男性给予的好处的女性,越容易被裹挟成为这些言论的助推者。然而这种攻击性,受伤害的绝不止是被攻击者,攻击者本身也必然遭受反噬。那些努力工作养活自己,奉献家庭,为社会做贡献的女性,是不会有这样的激进对抗思维的,因为她们才能看到幸福与美好。

幸福、爱情,有时候很像一种宗教信仰,相信它,才有可能遇见和拥有,但没有宗教信仰那么邪乎,是有现实基础和逻辑因果的。爱不爱,结不结婚,生不生孩子,现在社会已经给予个体极大的自主权了,但永远不可能随心所欲,因为所有的选择都会有相应的后果,结局很难是你满意的,但你必须为自己的选择买单。

房主任塌人筑房

当一个女人被塑造成被包办婚姻捆绑,因为生不出儿子被重男轻女的婆婆欺负,不仅如此,还被好吃懒做的无业游民丈夫家暴,而在 50 岁的年纪走上了脱口秀的舞台,用淳朴不煽情的方式讲述她的人生,从而感动无数观众,被视为这个时代最不起眼的那群仍然在为命运抗争的“独立大女主”——这样的角色是不是注定会变坏?

一般来说,比起“坏人变好”的“浪子回头金不换”,另一种需要在剧情中安排的固定角色,则是那些“好人变坏”。再高级一点,是这些坏人还在最后一刻保留了“一丝人性”,比如将枪口抬高了一厘米。最不济的,是那些变坏的好人最终受到了命运的制裁,彻底暴露了原本坏人的个性。


那最开始提到的那个“独立大女主”,这种喜闻乐见的人物角色,就跟当年的“二舅”、前几个月的“鹅腿阿姨”一样,人们总能等来他们“变坏”的一刻。这不,房主任塌房了。

房主任被发掘为脱口秀演员后,就是按照文章开头所说的那种模式,给立住了人设。

房主任是因为什么塌房的,很多人都聊过,特别是她在参加一档名为《姐姐当家》的综艺节目时,彻底展示了她原本在脱口秀剧本以外的真实模样,很难利用她在剧本里获得的那个“独立大女主”的身份继续获得掌声与欢呼。

但今天不聊塌房的部分,而是聊聊她为什么注定会塌房。

不过这里我先要强调一下,这个“房”并不是房主任的“人生”,而是她以为自己被套进了某个让她获得了掌声与欢呼的“人筑房”。


首先,需要确认一点——你认为脱口秀剧本是在讲述真人真事吗?

虽然说经历是脱口秀的养料,可以通过生活的观察引发观众的共鸣与思考,但它能不能允许有艺术加工的部分?如果这件事解决了,那么房主任的“剧本”与现实之间的断层,或许你也更能接受。

比如她口中那个欺负她的婆婆,其实在她丈夫幼年的时候就已经离世了;她口中那个好吃懒做的无业游民老公,本是一个水果小摊贩,凌晨四五点去市场提货,直到晚上十点才收摊回家;她口中所谓的“要照顾两个男人”,是公公生病后,房主任认为“自己是长媳,又住在一块”,于是她跟丈夫主动揽下了照顾公公的责任;至于“家暴”,房主任的前夫又瘦又矮……直到人们后来才知道,房主任才是那个在家里对丈夫施暴的角色……

如果脱口秀的剧本,是通过艺术形式,将这些底色,翻译成更容易让人接受、喜欢、甚至是为之鼓掌欢呼的段子与包袱,那你现在还认为脱口秀剧本是在讲述真人真事吗?


再次,通过剧本为一个角色构筑起来的人设、甚至是“人生”,这件事被揭穿的当下,该不该去攻击那个“表演者”?

我应该聊到过,我觉得中国的脱口秀行业已死,不是大家写不出段子,反而大家能在综艺里做到非常好的“商业变现”,但是越来越少人敢为真实的人、社会、政治、矛盾进行脱口秀式的演绎。反而,在这种大的表达环境之下,通过人为地筑起某种人设的房子,请进对应的角色入驻,便成了脱口秀立最直观也是最高效的工业流水线。

脱口秀剧本需要通过编剧团修改、润色,再交由演员表演。而演员拿到自己的本子时,会不会说着说着自己也信了,这不好说——就像是现在还有人认为房主任之所以走到现在这个地步,不是因为她的问题,而是她对过往的伤痛产生了严重的斯德哥尔摩症候。

说到底,到底是这个人成为了明星,还是背后的团队希望她以某种人设获得流量、成为了明星,我相信在房主任自己也相信自己就是剧本里所说的那个角色时,这一切都变得不那么重要了。

人们希望看到的那个原本因为立住人设而建起的“人筑房”被推倒的同时,也想看看这个剧本以外的人,是如何在现实里,一点点把自己的世界也彻底推倒的。


流水线上的工业品在市场流通时,难免会因为市场需求的变化而影响商品的销量。商品可以随时被抛弃,但制造商品的人总能找到观众需要的下一个“人筑房”。

而流水线不会停,是因为另一群人已经在期待着下一个“房主任”。

——

感谢订阅莫比乌斯,如你有任何疑问、观点交流,请前往创作者频道,或私信联系。

魔兽争霸白玩这么多年?这些很多都不知道。

✇ACEVS
作者 ACEVS

我看完所有视频,记录的笔记,格式优化后 不同ai对比。有一些地图兽族拉红龙到基地猎杀,后来比赛也是禁止这么操作的,地图感觉就是个测试模块,不同玩家测试出不同玩法。由于四个种族,几十个兵种,玩法虽然和魔方差不多,但是也是千变万化的。一个种族就是一种编程语言,一个兵种可能就是一个库,或者模块,或者插件,排列组合出来就是一个程式化游戏。在加上可编辑的地图编辑器,可以说他是一种艺术语言,编程语言,游戏语言,向可编程致敬,可能我最早玩的可编程游戏就是坦克大战,和摩托车比赛了。哈哈。

豆包

来源:https://www.bilibili.com/video/BV1xV411Q7cy?spm_id_from=333.788.player.switch&vd_source=2a74a36b72c9f3a8d76012a97bf29e19

  1. 兽族小 Y 把对方英雄变形后,对方英雄正在打野,对方兵种杀死野怪,变形当中的英雄没有经验可以获得。如果英雄有光环会延迟消失一会。
  2. 被小 Y 变形的英雄还能捡起野怪掉落的宝物。
  3. 人族民兵上飞艇后就得把武器上交,下地后不是民兵了。
  4. 点金术士大招:满员的飞艇,满员落地的话只有飞艇的经验和钱;如果飞艇在坠机,在树林等上方,满员全挂,只能获得飞艇的钱,经验是飞艇和满员。话说我坠机多多。哈哈
  5. 科多兽可以吞掉网住飞行单位吗?不能。猜测可能带毛不好吞。
  6. 科多不能吞机械坦克、弩车、投石车、十胜石雕像;山岭巨人可以吞(如果升级了魔抗不能吞);生产兵种的树人不能吞;小鹿、破法魔免照样吞;中立生物 6 级及以上不能吞;科多不吃科多,不吃同类。
  7. 现形的阴影可以吞,钻地现形的蜘蛛不能吞,坐地石像鬼不能吞。
  8. 1.27 版本以下,剑圣疾风步无法穿越采木头的 farmer。
  9. KOG 自然祝福可以加强召唤的树人护甲和移动能力。
  10. 科多吃了不死单位后,被不死单位女妖占据,科多变成不死单位,科多吃的不死单位又吐出来了。
  11. 1.27 版本下,科多吃了有宝物的野怪,消化后宝物不掉落只是打个嗝。
  12. 保存权杖保存自己回家,利用飞艇,英雄快要上飞艇一瞬间保存飞艇,飞艇载着英雄回家了,这个很牛,不过比赛禁用。
  13. 黑暗游侠的大招和女妖的占据都可以突破人口上限,黑暗游侠召唤中立小动物不占人口。
  14. 人族避难权杖,传送回基地不能移动,怎样才可以移动呢?驱散,男巫的,可能小鹿的也可以的,但是不会继续回复生命了。
  15. 其他族获得兽族 mini 基地,会发生什么,都可以快速建造自己的基地,取消不返钱,不死族建好后还可以回收资源。
  16. 火焰风衣,幻象的没有伤害;睡着的野怪,感受不到;英雄隐身后,风衣也不发挥作用。
  17. 暗夜的金矿修理是免费的,兽人大 G 狼骑去掠夺盟友的金矿是不是发财了?答案是,兽族掠夺不能从缠绕的金矿获得一毛钱。
  18. 英雄隐身后光环还有效果吗?光环消失有延迟。
  19. 牛头人酋长重生次序,有技能和十字架,先用技能。
  20. 英雄自带法球,和物品法球触发次序?自带法球技能优先一般,如果 dota,3c 可能不同。war3 按照物品栏位置优先,左上第一个优先,右上第二个以此类推。
  21. 黑暗游侠召唤过来后,攻防同步吗?科技同步吗?科技话比如熊召唤过来什么级别就是什么级别的,但是如果你第一次召唤过来一级熊,第二次召唤大师级熊,那么第一次一级熊也会变成大师级,学习很快嘛。鸟德逻辑同理。攻防不能获得。
  22. 魔法窃取权杖可以偷取月亮井的魔法吗?可以。
  23. 变成小动物后英雄的被动技能还有效吗?恶魔猎手闪避,失效不触发。
  24. 牛头人酋长的耐久光环能提高苦工采金效率吗?没有明显改善只是移动快了,出工不出力呀,表演只是表演。哈哈
  25. 火焰领主的燃灰会让小黑的黑暗之箭召不出骷髅吗?同时作用一个单位,效果同时触发,爆炸和召唤一个骷髅。
  26. TH 地图上如何无伤练 7 级海龟?建个房子,大海龟会被卡住,需要远程单位收割。
  27. 闪电护盾在地洞和飞艇里会对友军造成伤害吗?闪电盾在,不消失,没有伤害,地洞和飞艇是另一个时空结界,哈哈,其实可能是 bug,现在看 war3 其实也是个编程游戏。
  28. 亡灵三本基地正在反召唤,会影响购买商店里的高级道具吗?过程中不影响。三本消失才不能买高级道具。商店回收不能买东西。
  29. 圣骑士的大招能复活友军么,复活了后归谁?可以复活,还是盟友的。
  30. 再训练之书不能重修什么技能?冷却没有结束的不能重修,确实不然相当于地精的弹药装填技能了。
  31. 深渊魔王对幽灵狼使用魔鬼缠身,先知重召狼会是什么情况?判定死亡直接召唤恶魔出来,空军的在树林上方话不出毁灭守卫(一定范围内其他地方可能会有),火人分化后,原来的死亡继续出毁灭守卫。
  32. 白牛可以复活别人家牛牛的尸体吗?不能盟军的也不能。
  33. 密集部队如何迅速散开躲 AOE?建造一个巨型建筑,自动散开,点一下建造确实速度。
  34. 圣骑士的大招会优先复活哪些单位?步兵<火枪 = 破法<骑士<盟军<自己 优先高等级兵种,不区分兵种和造价。
  35. 小鹿的驱散和小精灵自爆的驱散效果一样吗?小鹿只去除负面的,有益的保留,小精灵,负面正面全去掉。
  36. 破法者的盗法技能有特定盗取顺序吗?盗给哪个友军有固定顺序吗?先吼叫然后防御最后返老还童,给最近的友方单位。
  37. 圣骑士的大招可以复活友军的亡灵单位吗?可以。这个设定体现虚拟现实里面圣经里面的救赎。
  38. 破法者能盗取闪电护盾吗?减速等负面魔法,破法不会盗取。
  39. 巨魔巫医的三种棒子都可以被驱散吗?男巫可以驱散。
  40. 治疗守卫,生命之泉和医疗剂能同时起效吗?叠加起效。加快速度。
  41. 人族牧师的驱散一次能驱多少种魔法效果?四种全部驱散。
  42. DK 大招操纵死尸能从自家坟场复活什么单位?食尸鬼挂掉一个,复活六个,其他不知。
  43. 女巫对农民施放隐身,农民采木头会显形吗?采木头不显性,交木头时候可能计算工分显性了。民兵变换也显性,去金矿后出来显性,隐身上下飞艇不显形,兽族的进出地洞攻击后还是隐身。
  44. 空军被狼骑士网下来后还能攻击空军吗?石像鬼 对地模式对地。对空模式对空,石像鬼两只都被网下,互相攻击是对地模式。
  45. 只对地面单位起效的范围技能对网下来的空军有效吗?冲击波,战争践踏有效。
  46. 谁的驱散对召唤生物伤害最高?兽王的熊:精灵自爆 225 点伤害,小鹿 300 点,中立黄皮也是 300 点,人族牧师 200 点,兽族萨满是 400 点,白牛驱散是 250 点,毁灭是 180 点。
  47. 黑暗游侠大招召唤中了深渊魔王大招的敌方单位后,它会如何,死了我有经验吗?深渊魔王大招消失了。
  48. 兽族掠夺的资源数量和什么有关系。建筑花钱多,资源越多,攻击力高也是增加一些。砍一刀几元钱。哈哈。
  49. 两个暗影猎手同时使用大招能同时无敌吗?不能。使用无敌药水后中断大招,可能稍微平衡点,不然和输入秘技有啥区别,对面确实无敌。
  50. 剑圣疾风步状态喝隐身药水可以无缝衔接吗?不能衔接,会现身一秒左右。
  51. 残血圣骑士开无敌会被精灵龙电死吗?会的,无敌有起手式,精灵龙本身就是球形闪电法球模式反应灵敏。

deepseek

收到,我把你整理的这些《魔兽争霸3》知识点按主题重新归类,原文内容和结论全部保留,只调整了格式和顺序,方便阅读和查找。


《魔兽争霸3》机制与细节整理

整理自B站视频及个人游戏经验,内容基于1.27版本


一、英雄与技能机制

1. 变形术(暗影猎手)

  • 对方英雄被变形期间,如果其正在打野,且野怪被对方部队杀死,被变形英雄无法获得经验
  • 被变形英雄的光环会延迟消失(效果残留一小段时间)
  • 被变形英雄仍然可以捡起野怪掉落的宝物

2. 英雄被动与主动技能细节

  • 恶魔猎手闪避:变形成小动物后失效,不触发
  • 牛头人酋长重生:同时拥有技能和十字架时,先用技能
  • 法球效果:自带法球与物品法球同时存在时,自带法球优先(War3规则);Dota/3C等地图可能有不同设定
  • 光环效果
    • 英雄隐身时,光环不会立即消失,有延迟
    • 牛头人酋长的耐久光环能提高苦工移动速度,但对采金效率无明显改善("出工不出力")

3. 黑暗游侠(希尔瓦娜斯)

  • 大招和女妖占据均可突破人口上限
  • 召唤中立小动物不占人口
  • 大招召唤过来的单位:
    • 科技同步:比如先召到一级熊,后召到大师级熊,之前的一级熊也会升级为大师级
    • 攻防不同步:召唤后无法享受己方攻防科技加成
  • 黑暗之箭 vs 火焰领主的燃灰:同时作用于同一单位时,两种效果同时触发(爆炸+召唤骷髅)

4. 圣骑士

  • 大招可以复活友军单位,复活后仍归原盟友控制
  • 可以复活友军的亡灵单位(设定上体现"救赎"概念)
  • 大招优先复活顺序:步兵 < 火枪/破法 < 骑士 < 盟军 < 自己(优先高等级兵种,不区分兵种和造价)
  • 无敌有起手式,残血开无敌可能被精灵龙电死(精灵龙闪电反应灵敏)
  • 避难权杖传回基地后无法移动,但可以被驱散(男巫驱散、小鹿驱散皆可),驱散后不再继续回复生命

5. 深渊魔王

  • 魔鬼缠身对幽灵狼使用后,先知重召幽灵狼→幽灵狼判定死亡,直接召唤毁灭守卫
  • 如果空军在树林上方被杀死,不会出毁灭守卫(一定范围内其他地方可能有)
  • 火人分裂后,原单位死亡同样会出毁灭守卫

6. 其他英雄相关

  • 再训练之书冷却未结束的技能无法重修
  • 保存权杖+飞艇技巧:英雄快上飞艇瞬间保存飞艇,飞艇载英雄回家(比赛禁用
  • 两个暗影猎手不能同时通过大招无敌
  • 使用无敌药水会中断暗影猎手的大招

二、单位交互与特殊判定

1. 科多兽吞噬

  • 不能吞
    • 被网住的飞行单位("带毛不好吞")
    • 机械单位(坦克、弩车、投石车、十胜石雕像)
    • 山岭巨人(若升级魔抗则不能吞)
    • 生产兵种的树人
    • 中立生物6级及以上
    • 同类(科多不吃科多)
  • 可以吞
    • 小鹿、破法者(魔免照样吞)
    • 现形的阴影
    • 不能吞:钻地现形的蜘蛛、坐地的石像鬼
  • 特殊机制
    • 科多吞噬不死单位后,被女妖占据→科多变成不死族→被吞噬的不死单位会吐出来
    • 1.27版本下,吞噬带宝物的野怪,消化后宝物不掉落("只是打个嗝")

2. 飞艇相关

  • 人族民兵上飞艇后:武器上交,下地后不再是民兵
  • 点金术士大招打满员飞艇
    • 满员落地:只有飞艇的经验和钱
    • 飞艇在树林上方坠机、满员全挂:只能获得飞艇的钱,经验是飞艇+满员
    • ("我坠机多多,哈哈")

3. 网与空军

  • 空军被狼骑网下来后:
    • 石像鬼:对地模式打地面,对空模式打空中
    • 两只石像鬼都被网下,互相攻击时使用对地模式
  • 只对地面有效的范围技能(如冲击波、战争践踏):对网下来的空军依然有效

4. 驱散与净化

  • 谁的驱散对召唤生物伤害最高?
    • 兽族萨满:400点
    • 小鹿:300点
    • 中立黄皮:300点
    • 白牛:250点
    • 人族牧师:200点
    • 毁灭者:180点
    • 精灵自爆:225点
    • (总结:萨满最高
  • 小鹿驱散 vs 小精灵自爆
    • 小鹿:只去除负面效果,保留有益
    • 小精灵:负面和正面全部去除
  • 巨魔巫医三棒:均可被驱散
  • 人族牧师驱散一次可驱散四种魔法效果
  • 治疗守卫 + 生命之泉 + 医疗剂效果叠加,可加速恢复

5. 破法者

  • 盗法技能:有特定盗取顺序——先吼叫 → 防御 → 返老还童,给最近的友军
  • 不盗取:闪电护盾、减速等负面魔法

6. 其他单位细节

  • 白牛不能复活别人家牛头人的尸体(盟友的也不行)
  • DK大招(操纵死尸):可以从自家坟场复活单位(如食尸鬼死亡后,可复活6个)
  • 女巫隐身
    • 农民采木头:不显形
    • 交木头时:可能显形
    • 民兵变换:显形
    • 去金矿后出来:显形
    • 隐身上下飞艇:不显形
    • 兽族进出地洞攻击后:仍保持隐身

三、建筑与建造机制

  • 兽族mini基地被其他族获得:都可以快速建造自己的基地,但取消不返钱;不死族建好后可回收资源
  • 暗夜金矿修理免费
  • 兽族掠夺盟友金矿不能从缠绕的金矿获得一毛钱
  • 亡灵三本基地反召唤期间不影响购买商店高级道具;三本消失后才无法购买,商店回收时不能购买
  • 密集部队躲AOE技巧:建造一个巨型建筑,点一下建造→部队自动散开("确实速度")

四、宝物与道具机制

  • 火焰风衣
    • 幻象无伤害
    • 睡着的野怪感受不到伤害
    • 英雄隐身时风衣不发挥作用
  • 魔法窃取权杖:可以偷取月亮井的魔法
  • 闪电护盾在地洞/飞艇里:盾不消失,但无伤害("地洞和飞艇是另一个时空结界")
  • 保存权杖:可保存自己回家
  • 再训练之书:冷却未结束的技能无法重修

五、地图与中立生物

  • TH地图无伤练7级海龟:建一个房子→大海龟被卡住→远程单位收割
  • KOG自然祝福:可以加强召唤树人的护甲和移动能力
  • 黑暗游侠召唤中立小动物不占人口

六、其他零散知识点

  • 剑圣
    • 1.27版本以下:疾风步无法穿越采木头的农民
    • 疾风步状态喝隐身药水:无法无缝衔接,会现身1秒左右
  • 牛头人酋长耐久光环:对苦工采金效率无改善("表演只是表演")
  • 深渊魔王+黑暗游侠联动:游侠大招召唤中了深渊大招的敌方单位→深渊大招消失
  • 兽族掠夺:资源数量和建筑造价、攻击力有关("砍一刀几元钱")
  • 山岭巨人:升级魔抗后不能被科多吞噬
  • 空军在树林上方被杀死不会出毁灭守卫(判定范围问题)

📎 参考视频:B站 BV1xV411Q7cy


智谱

这些冷知识确实对应 B 站《BM魔兽小百科》系列视频合集,我已对照合集目录逐条核对标题与顺序,下面只做“格式整理 + 条目拆分”,内容基本不变,只在明显处加了一点说明。
原始视频/合集入口:
单集示例:残血圣骑士开无敌会被精灵龙电死吗?《BM魔兽小百科》053
合集:BM魔兽小百科(56 集)
一、小 Y(暗影猎手)变形机制
兽族小 Y 把对方英雄变形后,若对方英雄正在打野,且对方单位杀死野怪,变形中的英雄不会获得经验。
如果英雄本身带有光环,变形后光环会“延迟消失”一小会儿。
被小 Y 变形的英雄,依然可以捡起野怪掉落的宝物。
二、民兵与飞艇
人族民兵登上飞艇后,武器会被“收走”,下飞艇后就不再是民兵状态。
三、点金术士(炼金)大招与飞艇坠毁
点金术士(炼金)大招对“满员飞艇”使用:
若飞艇正常落地:
只有飞艇本身的金币和经验;
乘客不会额外产生金币和经验。
若飞艇在“树林等不可落地区域上方”坠毁:
玩家只能获得飞艇的金币;
经验为:飞艇 + 满员乘客。
四、科多兽吞噬机制总结
科多兽不能吞噬:
被狼骑士网住的空军单位(猜测:带毛不好吞)。
机械单位:坦克、弩车、投石车、十胜石雕像等。
山岭巨人(升级了“抗性皮肤”后不能吞;未升级时可以)。
生产兵种的树人(不能吞)。
小鹿、破法等魔免单位:照样可以吞。
中立生物:等级 ≥ 6 的单位不能吞。
科多兽不吃科多兽(不吃同类)。
其他特殊情况:
现形的阴影可以被吞噬。
钻地并现形的蜘蛛不能吞。
坐地石像鬼不能吞。
五、1.27 版本相关
1.27 及以下版本:剑圣“疾风步”无法穿越正在采木头的农民。
六、KOG(守望者)自然祝福
守望者(KOG)的“自然祝福”可以加强召唤树人的护甲和移动能力。
七、科多兽吞噬不死单位 + 女妖占据
科多兽吞噬了一个不死单位后,如果被不死女妖“占据”:
科多本身变成不死单位;
之前吞掉的不死单位会被“吐出来”。
八、1.27 版本科多吞有宝物野怪
1.27 版本:科多兽吞噬了带有宝物的野怪,消化后宝物不会掉落,只是打一个嗝。
九、保存权杖 + 飞艇“卡回家”操作
使用保存权杖保存自己回城时,利用飞艇的“上下瞬间”:
在英雄即将登上飞艇的一瞬间,对飞艇使用保存权杖;
飞艇可以带着英雄一起“回家”。
该操作在正式比赛中被禁用。
十、黑暗游侠大招 & 女妖占据 & 人口上限
黑暗游侠的大招、女妖的“占据”都可以突破人口上限。
黑暗游侠从中立单位身上召唤的小动物不占人口。
十一、人族避难权杖(回城卷)
被人族避难权杖传送回基地的单位,默认不能移动。
想让其移动,需要被驱散:
人族牧师的驱散可以;
小鹿的驱散大概率也可以;
被驱散后,单位不会再继续回复生命。
十二、其他种族获得兽族“迷你基地”
其他种族获得兽族的迷你基地后:
都可以快速建造自己的基地;
取消建造不会返还资源;
不死族建好后还可以“回收”资源(拆掉返资源)。
十三、火焰风衣 & 幻象 & 睡怪 & 隐身
火焰风衣:
幻象单位穿戴火焰风衣不会造成伤害。
睡着的野怪“感受不到”火焰风衣的伤害。
英雄隐身后,火焰风衣的伤害效果也会消失。
十四、暗夜金矿修理 & 兽族掠夺
暗夜金矿被缠绕后的修理是免费的。
兽族大 G / 狼骑去“掠夺”盟友被缠绕的金矿:
兽族的掠夺技能不会从缠绕的金矿获得任何资源。
十五、英雄隐身与光环延迟
英雄隐身后,光环效果仍然存在,光环消失有延迟。
十六、牛头人酋长重生顺序
牛头人酋长拥有“重生”技能并携带复活十字章时:
优先使用技能重生,再考虑十字章。
十七、英雄自带法球 & 物品法球触发优先级
英雄自带的法球技能与物品栏法球的触发顺序:
在 War3 中,物品栏位置优先:
左上第一个 → 右上第二个 → 左下第三个 → 右下第四个。
Dota / 3C 等自定义地图可能采用不同规则。
十八、黑暗游侠召唤 & 科技/攻防同步
黑暗游侠(黑暗游侠 / DR)大招召唤:
召唤来的单位不会获得攻防升级。
科技等级:
第一次召唤的是“一级熊”,之后升级“大师级熊”,第一次召唤的一级熊也会随之升级为大师级。
鸟德逻辑相同。
十九、魔法窃取权杖 & 月亮井
魔法窃取权杖可以偷取月亮井的魔法。
二十、变成小动物后英雄被动技能
英雄被变形为小动物后:
恶魔猎手的“闪避”失效,不会触发。
二十一、牛头人酋长耐久光环 & 苦工采金
牛头人酋长的“耐久光环”:
对苦工采金效率没有明显改善,只是移动速度加快。
二十二、火焰领主燃灰 & 小黑黑暗之箭
火焰领主的“燃灰”与黑暗游侠的“黑暗之箭”同时作用于一个单位时:
燃灰爆炸与骷髅召唤同时触发。
二十三、TH 地图无伤练 7 级海龟
在 TH 地图上无伤练 7 级海龟:
建造一个建筑,大海龟会被卡住;
用远程单位安全收割。
二十四、闪电护盾 & 地洞 / 飞艇
闪电护盾在地洞和飞艇内部:
护盾不消失,但不会对友军造成伤害。
这更像是程序判定上的“时空结界”,目前可视为机制(或 Bug)。
二十五、亡灵三本反召唤 & 商店高级道具
亡灵三本基地正在“反召唤”过程中:
仍然可以购买商店中的高级道具;
只有在三本基地完全消失后,才无法购买高级道具;
商店被回收期间无法购买任何东西。
二十六、圣骑士大招 & 友军复活归属
圣骑士的大招:
可以复活友军单位;
复活后的单位仍归原盟友所有。
二十七、再训练之书 & 重修限制
再训练之书不能重修:
技能冷却未结束的技能。
否则就相当于地精的“弹药装填”技能效果。
二十八、深渊魔王魔鬼缠身 & 幽灵狼 & 先知重召
深渊魔王对先知的幽灵狼使用“魔鬼缠身”:
当先知重新召唤幽灵狼时,原幽灵狼判定为“死亡”,
会立即召唤出一个毁灭守卫;
如果幽灵狼在树林等“无空地”区域上方,则毁灭守卫不会出现,但可能在附近区域生成。
火人分化后,原单位死亡同样会触发毁灭守卫。
二十九、白牛复活尸体限制
白牛可以复活尸体,但:
不能复活“盟军”牛头人的尸体;
也不能复活“敌方”牛头人的尸体(本质上只能复活“自己阵营”的牛头人尸体)。
三十、密集部队迅速散开躲 AOE
密集部队如何快速散开:
建造一个巨型建筑,单位会自动散开;
点击建造建筑,散开速度很快。
三十一、圣骑士大招优先复活顺序
圣骑士大招优先复活顺序(大致):
步兵 < 火枪 ≈ 破发 < 骑士 < 盟军 < 自己
更高等级的兵种优先,不区分兵种和造价。
三十二、小鹿驱散 & 小精灵自爆驱散差异
小鹿的驱散:
只移除负面效果,保留有益效果。
小精灵自爆:
驱散范围内负面、正面效果全部移除。
三十三、破法者盗法顺序 & 目标选择
破法者的“盗法”技能:
盗取顺序:先吼叫,再防御,最后返老还童。
施加对象:优先给最近的友方单位。
三十四、圣骑士大招 & 友军亡灵单位
圣骑士的大招:
可以复活友军的亡灵单位。
这设定有点像圣经中的“救赎”概念。
三十五、破法者 & 闪电护盾等负面魔法
破法者不会盗取:
闪电护盾;
减速等“负面魔法”。
三十六、巨魔巫医的三种棒子 & 驱散
巨魔巫医的三种棒子都可以被驱散:
人族牧师的驱散可以驱掉。
三十七、治疗守卫 / 生命之泉 / 医疗剂叠加
治疗守卫、生命之泉和医疗剂:
三者可以同时生效、叠加治疗,加快回复速度。
三十八、人族牧师驱散一次驱散多少种魔法
人族牧师的“驱散魔法”:
一次可以驱散目标身上的全部四种魔法效果。
三十九、DK 大招操纵死尸 & 坟场复活单位
死亡骑士的“操纵死尸”:
从己有坟场复活单位:
例如:一个食尸鬼死亡,坟场可提供六个“尸体”,用于复活。
其他组合视具体情况而定。
四十、女巫隐身 & 农民采集显形
女巫对农民施放隐身:
农民采木过程中不会显形;
交木头时可能因“计工分”而显形;
变成民兵时会显形;
进入金矿后出来会显形;
隐身状态下上下飞艇不显形;
兽族单位进出地洞攻击后仍保持隐身。
四十一、空军被狼骑士网住后的攻击模式
空军被狼骑士网住后:
石像鬼:
对地模式:只能对地攻击;
对空模式:只能对空攻击。
两只石像鬼都被网住时,互相攻击会以“对地模式”判定。
四十二、地面范围技能对网下来的空军
仅对地面单位起效的范围技能:
如冲击波、战争践踏等,对“被网下来的空军”依然有效。
四十三、各种驱散对召唤生物伤害对比
各驱散技能对召唤生物的伤害:
兽王熊:精灵自爆 225 点;
小鹿:300 点;
中立黄皮(黑暗游侠):300 点;
人族牧师:200 点;
兽族萨满:400 点;
白牛驱散:250 点;
毁灭者:180 点。
四十四、黑暗游侠大招 & 深渊魔王大招交互
黑暗游侠大招召唤中了“被深渊魔王大招标记”的敌方单位:
深渊魔王的大招效果会消失;
单位死亡时仍然会给黑暗游侠提供经验。
四十五、兽族掠夺资源数量影响因素
兽族“掠夺”获得的资源数量:
与建筑造价、被攻击单位的生命值/护甲、攻击力等因素相关;
基本上“砍一刀”能额外获得几块钱,具体数值随版本和单位不同而变化。
四十六、两个暗影猎手同时使用大招
两个暗影猎手同时使用大招:
不能同时处于无敌状态;
使用无敌药水会中断大招,以防止完全无法应对的无敌组合。
四十七、剑圣疾风步 & 隐身药水衔接
剑圣在“疾风步”状态下喝隐身药水:
不能实现无缝衔接,会有一秒左右的“现身”时间。
四十八、残血圣骑士开无敌 & 精灵龙反馈
残血圣骑士开启无敌:
仍然会被精灵龙的“法球:反馈”伤害电死;
因为无敌有起手动作,精灵龙的反馈判定非常快,可以打断。
参考与来源
B 站视频:残血圣骑士开无敌会被精灵龙电死吗?《BM魔兽小百科》053
合集页:BM魔兽小百科(共 56 集)

千问 生成word文档 我让它换成txt

魔兽争霸3趣味机制小百科

============================================================
一、变形与隐身机制

Q: 兽族小Y把对方英雄变形后,对方英雄正在打野,对方兵种杀死野怪,变形当中的英雄有经验可以获得吗?
A: 没有经验可以获得。如果英雄有光环会延迟消失一会。

Q: 被小Y变形的英雄还能捡起野怪掉落的宝物吗?
A: 可以捡起。

Q: 英雄隐身后光环还有效果吗?
A: 光环消失有延迟。

Q: 变成小动物后英雄的被动技能还有效吗?
A: 恶魔猎手闪避失效不触发。

Q: 火焰风衣,幻象的没有伤害,睡着的野怪感受不到,英雄隐身后风衣也不发挥作用。

Q: 女巫对农民施放隐身,农民采木头会显形吗?
A: 采木头不显形,交木头时候可能计算工分显形了。民兵变换也显形,去金矿后出来显形。隐身上下飞艇不显形,兽族的进出地洞攻击后还是隐身。

Q: 剑圣疾风步状态喝隐身药水可以无缝衔接吗?
A: 不能衔接,会现身一秒左右。

Q: 残血圣骑士开无敌会被精灵龙电死吗?
A: 会的,无敌有起手式,精灵龙本身就是球形闪电法球模式反应灵敏。

Q: 两个暗影猎手同时使用大招能同时无敌吗?
A: 不能。使用无敌药水后中断大招,可能稍微平衡点,不然和输入秘技有啥区别,对面确实无敌。

============================================================
二、飞艇与单位转换机制

Q: 人族民兵上飞艇后就得把武器上交,下地后不是民兵了。

Q: 点金术士大招满员的飞艇,满员落地的话只有飞艇的经验和钱,如果飞艇在坠机,在树林等上方,满员全挂,只能获得飞艇的钱,经验是飞艇和满员。话说我坠机多多。哈哈。

Q: 保存权杖保存自己回家,利用飞艇,英雄快要上飞艇一瞬间保存飞艇,飞艇载着英雄回家了,这个很牛,不过比赛禁用。

Q: 黑暗游侠的大招和女妖的占据都可以突破人口上限,黑暗游侠召唤中立小动物不占人口。

Q: 人族避难权杖,传送回基地不能移动,怎样才可以移动呢?
A: 驱散,男巫的可以,可能小鹿的也可以的,但是不会继续回复生命了。

Q: 其他族获得兽族mini基地,会发生什么?
A: 都可以快速建造自己的基地,取消不返钱,不死族建好后还可以回收资源。

Q: 黑暗游侠召唤过来后攻防同步吗?科技同步吗?
A: 科技同步。比如熊召唤过来什么级别就是什么级别的,但是如果你第一次召唤过来一级熊,第二次召唤大师级熊,那么第一次一级熊也会变成大师级,学习很快嘛。鸟德逻辑同理。攻防不能获得。

============================================================
三、科多兽吞食机制

Q: 科多兽可以吞掉网住飞行单位吗?
A: 不能。猜测可能带毛不好吞。

Q: 科多兽不能吞的单位有哪些?
A: 机械坦克、弩车、投石车、十胜石雕像不能吞。山陵巨人可以(如果升级了魔抗不能吞)。生产兵种的树人不能吞,小鹿破法魔免照样吞。中立生物6级及以上不能吞。最后科多不吃科多,不吃同类。

Q: 现形的阴影可以吞,钻地现形的蜘蛛不能吞,坐地石像鬼不能吞。

Q: 1.27版本以下,剑圣疾风步无法穿越采木头的farmer。

Q: KOG自然祝福可以加强召唤的树人护甲和移动能力。

Q: 科多吃了不死单位后,被不死单位女妖占据,科多变成不死单位,科多吃的不死单位又吐出来了。

Q: 1.27版本下,科多吃了有宝物的野怪,消化后宝物不掉落只是打个嗝。

============================================================
四、英雄技能与物品交互

Q: 牛头人酋长重生次序,有技能和十字架,先用技能。

Q: 英雄自带法球,和物品法球触发次序?
A: 自带法球技能优先一般,如果DOTA、3C可能不同。War3按照物品栏位置优先,左上第一个优先,右上第二个以此类推。

Q: 魔法窃取权杖可以偷取月亮井的魔法吗?
A: 可以。

Q: 圣骑士的大招能复活友军么,复活了后归谁?
A: 可以复活,还是盟友的。

Q: 再训练之书不能重修什么技能?
A: 冷却没有结束的不能重修,确实不然相当于地精的弹药装填技能了。

Q: 深渊魔王对幽灵狼使用魔鬼缠身,先知重召狼会是什么情况?
A: 判定死亡直接召唤恶魔出来。空军的在树林上方的话不出毁灭守卫(一定范围内其他地方可能会有)。火人分化后,原来的死亡继续出毁灭守卫。

Q: 白牛可以复活别人家牛牛的尸体吗?
A: 不能,盟军的也不能。

Q: 密集部队如何迅速散开躲AOE?
A: 建造一个巨型建筑,自动散开,点一下建造确实速度。

Q: 圣骑士的大招会优先复活哪些单位?
A: 步兵 < 火枪 = 破法 < 骑士 < 盟军 < 自己。优先高等级兵种,不区分兵种和造价。

Q: 小鹿的驱散和小精灵自爆的驱散效果一样吗?
A: 小鹿只去除负面的,有益的保留。小精灵负面正面全去掉。

Q: 破法者的盗法技能有特定盗取顺序吗?盗给哪个友军有固定顺序吗?
A: 先吼叫然后防御最后返老还童,给最近的友方单位。

Q: 圣骑士的大招可以复活友军的亡灵单位吗?
A: 可以。这个设定体现虚拟现实里面圣经里面的救赎。

Q: 破法者能盗取闪电护盾吗?
A: 减速等负面魔法,破法不会盗取。

Q: 巨魔巫医的三种棒子都可以被驱散吗?
A: 男巫驱散了。

Q: 治疗守卫、生命之泉和医疗剂能同时起效吗?
A: 叠加起效,加快速度。

Q: 人族牧师的驱散一次能驱多少种魔法效果?
A: 四种全部驱散。

Q: DK大招操纵死尸能从自家坟场复活什么单位?
A: 食尸鬼挂掉一个,复活六个,其他不知。

Q: 空军被狼骑士网下来后还能攻击空军吗?
A: 石像鬼对地模式对地,对空模式对空。石像鬼两只都被网下,互相攻击是对地模式。

Q: 只对地面单位起效的范围技能对网下来的空军有效吗?
A: 冲击波、战争践踏有效。

Q: 谁的驱散对召唤生物伤害最高?
A: 兽王的熊、精灵自爆225点伤害;小鹿300点;中立黄皮也是300点;人族牧师200点;兽族洒满是400点;白牛驱散是250点;毁灭是180点。

Q: 黑暗游侠大招召唤过来后中了深渊魔王大招的敌方单位后,它会如何,死了我有经验吗?
A: 深渊魔王大招消失了。

Q: 兽族掠夺的资源数量和什么有关系?
A: 建筑花钱多,资源越多,攻击力高也是增加一些。砍一刀几元钱。哈哈。

Q: 火焰领主的燃灰会让小黑的黑暗之箭召不出骷髅吗?
A: 同时作用一个单位,效果同时触发,爆炸和召唤一个骷髅。

Q: TH地图上如何无伤练7级海龟?
A: 建个房子,大海龟会被卡柱,需要远程单位收割。

Q: 闪电护盾在地洞和飞艇里会对友军造成伤害吗?
A: 闪电盾在,不消失,没有伤害。地洞和飞艇是另一个时空结界,哈哈,其实可能是BUG,现在看War3其实也是个编程游戏。

Q: 亡灵三本基地正在反召唤,会影响购买商店里的高级道具吗?
A: 过程中不影响。三本消失才不能买高级道具。商店回收不能买东西。

Q: 暗夜的金矿修理是免费的,兽族大G狼骑去掠夺盟友的金矿是不是发财了?
A: 答案是,兽族掠夺不能从缠绕的金矿获得一毛钱。

Q: 牛头人酋长的耐久光环能提高苦工采金效率吗?
A: 没有明显改善只是移动快了,出工不出力呀,表演只是表演。哈哈。

门缝

夏天的咖啡厅,露台门被打开了一条门缝,是因为上一个进入的人并没有完整闭合好玻璃门,于是这个门缝开始往室内涌进大量的热浪。而我坐在距离门缝最近的地方,但我并没有打算去“随手”关上它。于是,人们开始向那个进门后没有关好门的人“施压”,但那个人正和自己的女伴聊得眉飞色舞,根本不介意外界的眼光。

就这样,压力源又回到了我这里,但我依旧不动于衷。而那些向我投以压力的人,也并没有人打算站起来去关好门。咖啡厅原本人就不多,加上工作人员正在忙,原本我旁边的女性想挥手示意让工作人员关门,但无人理她,她也就放弃了接下来的动作,只能继续时不时地看向门,然后看向我,向我施压。

我倒是一个不太介意这种压力源的人,甚至此时此刻我正新建了一个窗口,正在记录着这一切。

我记录曾经记录过关于“咖啡厅门”的观察。


740 | 門

咖啡厅有一个入口,正值冬天,原本应该关闭、保持室内温暖程度的大门总是大大地敞开着。坐在这个门风口上的一群人都因为低温而坐立难安——但并没有一个人愿意去关上那扇门,因为无论门是否被关上,总有人在进出的时候不会为他人把门关上。

刚进来的人没有关门的意识,等到他们坐了一阵之后才发现室内的温度如此令人不适,但他们没有去当关门的那个人——因为从一开始就是他们违背了别人的规则。下一个人进来的时候也没有关上门,温度便持续走低;而在这里冷了好一阵、准备出门的人也不愿意关门,因为里面还坐着刚才那些进门没有随手关门的人,是他们让这里的温度变得让人无法长时间待下去,所以他们在出门的时候并不想为他们结束这一切。

报复的、被报复的,俨然成了这个空间里不同的角色:有人期待着“英雄”出现、关上那道吹入阵阵冷风的大门,也有人期望着如果他们关上了大门,一定会有人遵守这个规则——他们无法保证未来进入的人能够遵守秩序,也不能信任在秩序里的人会在离开时不去报复原本就伤害了他们的自己……这样的恶性循环一直延续着,让室内的温度越走越低。让人不适、让人难堪,也让人产生了临走时也不要为这群人关门的想法——既然没有人为我们关上门,那凭什么我们必须为他们也关上大门!

矛盾产生,然后又因为矛盾维系着一种平衡——而这种平衡就是让室内的人享受不了暖气:每个人都因为温度的走低而抖动着双脚、坐立不安。这就是平衡——每个人都是受害者,所以就形成了一种不需要有人去破坏的平衡。

当然,解决这个矛盾却有一个最最简单的办法:为这个门设定一个自动关闭的液压器。每一个推门而入的人,不需要做出“关门还是不关门”的抉择,门已经自动为他们选择了关门的行为;他们不需要思考,也不需要为他人思考,因为这一切都出于规则约定。门被自动关闭,维系着室内的温度,让室内的人都公平地成为享受者;当没有任何一个人被剥夺享受暖气的权利时,就没有必要去报复别人。

规则的好处就在于能够强制让一群人接受某一种约定俗成的道德规范——但能意识到这一点的人,大部分都认为这只是为门安装了一个“人性化”的设定罢了。可你有没有想过,这原本是一种道德的行为规范:是因为没有人遵守,不遵守的人和想要遵守的人才被强制地用一种秩序所约定——当然,这只是一个门,一个产品的优化。但在我们的生命中,似乎还有太多太多这样的道德漏洞存在着,我们却期盼着能有一种产品,能够强制规范出让人不需要去遵守道德的“人性化”。

关上门不难,难的是让这群人明白为什么要为自己和别人关上门。


我曾经写过一部小说,最初的案件是“凯蒂·吉诺维斯遇害案”,一个女人遇害呼救时,几乎周围的人都听到了她的求救,但所有人都没有报警,因为他们觉得总会有一个人已经报过警了——于是他们就这样目睹了一场凶杀案的发生。

不同的是,我成了那个“最应该”去关门的人,因为我距离门最近,甚至已经有人对我露出了困惑、质疑甚至是嫌弃的表情。我相信他们此时此刻认为的理由,也是因为“我距离最近”,所以我在这个场域里自动被赋予了这项“义务”。

但如果我现在就是那个毫无社会屈从度的人,那这个场域自动形成的规则就被我彻底破坏,甚至如果我再去关上门,我就真的成了那个“罪人”——你怎么才去关门?

从某个时刻开始,他们似乎已经不再等待“有人去把门关上”,而是在等待“我什么时候去把门关上”。

——

感谢订阅莫比乌斯,如你有任何疑问、观点交流,请前往创作者频道,或私信联系。

遛猫

楼下遇到一个遛猫的小女孩,因为用绳子勒着猫的脖子,有大人教育她别伤害猫。小女孩指了指我牵着的狗,说:我的猫比狗聪明,它听话。

那个大人倒帮我说话:狗可以出来遛,猫不行。

小女孩继续:我不喜欢狗,猫比狗听话。你问她们嘛,她们都晓得我的猫很听话。然后她身边的小伙伴都纷纷赞同。奶子想凑上去闻,吓得小女孩惊着提着绳子勒着猫在空中飞了一圈,摔在了墙上。

于是我成凶手了:是因为我喜欢狗,所以我不喜欢猫,要害死她的猫。小女孩拖着猫、带着一群朋友离开后,其中一个小女孩偷偷折返回来,问我能不能摸摸狗,她说自己其实喜欢狗。结果没想遛猫的小女孩也跟着回来,看到那个摸狗的小女孩,立刻对其他人说道,以后不跟她耍了,她喜欢狗。

我前后可一句话都他妈没说。

——

感谢订阅莫比乌斯,如你有任何疑问、观点交流,请前往创作者频道,或私信联系。

乐趣

✇ACEVS
作者 ACEVS

纯属网络趣味排行,仅供娱乐

1‑3 分|轻度快乐,爽完很快就过

刷短视频漫无目的刷手机:1 分
打游戏普通对局,输赢无所谓:2 分
吃一顿可口饭菜:2‑3 分
钓鱼坐在河边吹风,全程没鱼咬钩(空军):3 分,享受安静氛围

4‑6 分|中度快乐,有小成就感

游戏连胜一把,拿 MVP:4 分
家里东西坏了,自己动手修好:5 分
钓鱼钓上小鲫鱼、白条这类小鱼:5 分
和哥们喝酒闲聊,没有应酬客套:5‑6 分
炒股小赚一笔,落袋几百几千:6 分

7‑8 分|高度快乐,肾上腺素上来,记忆深刻

游戏五杀、逆风极限翻盘:7 分
入手心仪装备:鱼竿、外设、工具:7 分
发工资、拿到奖金:7‑8 分
钓鱼中大鱼,来回遛鱼最后成功拉上岸:8 分
折腾电脑硬件,装机一次点亮:8 分

9‑10 分|封神级快乐,能回味好多天

钓鱼爆护,鱼获满满,可以拍照炫耀:9 分
游戏绝境大翻盘,打得酣畅淋漓:9 分
炒股抓到一波行情,大赚一笔落袋:9 分
车子改装 / 维修达到自己预期效果:9 分
完全独处,没人找、不用回消息,安安静静放空:10 分(中年男人天花板快乐)

核心对比

普通打游戏:2‑4 分;高光五杀翻盘:7‑9 分
钓鱼空军:3 分;钓小鱼:5 分;中大货上岸:8 分;爆护:9 分
炒股小赚:6 分;行情吃一大段落袋:9 分

现实吐槽补充:炒股 9 分的快乐很短暂,后面亏回去的痛苦可以冲到‑10 分。

朋友爱吃,我让ai做了对比,和ai就讲了打游戏钓鱼,可能之前问他理财问题多,炒股他自己加上了。豆包说的。吃美食,分数没有钓鱼空军高,哈哈。我是对美食没有要求,所以吃啥都觉得不错,觉得吃不动了,那是吃撑了,或者不饿,平时控制饮食,七八分饱就差不多了。朋友见我,说回去得减肥了。哈哈。

健身或者旅游能得到快乐相对少很多,健身好像有个阈值,达到了,才会有,前面能坚持下来才行。健身和旅游我只能 说算同意项目,健身可以免费,旅游想免费要么徒步帐篷,或者自行车帐篷,每天消耗多的是饭费了,自驾或者其他都是按公里收费,相对徒步或者 自行车,高不少,如果是自动驾驶,和躺家里刷手机差不多。

另外健身不仅专门时候可以,旅游时候可以,平时也可以,比如遇到电梯不走走楼梯,本来共享单车不用,步行,等等,估计现在可能很多人觉得遭那罪干啥,遭罪也是守恒的,享乐多了,以后大概率痛苦多点。

享乐圣体很少的。哈哈。

Findu — 十年

前段时间,看到了自己十年前做的这个app。也是自己开发的第一款功能比较完善的app,在22年的时候,自己把他从应用商店下掉了。主要原因是app使用的im基础框架已经不在开放,虽然部分功能还能使用,但是作为一个功能残疾的app挂在外面,也确实没有太大的必要。

在6年间,更新了数个版本,也不断的在完善功能。然而,这个东西可能或许总是没有太多的需求。数年下来不过几千个用户,关键是也没什么收入,既没有广告,也没有内购。

说到这里,也没说这个东西是干嘛的,干脆直接贴商店的简介吧 官网 https://www.findu.co

Findu —— 一款简单的找人定位与好友守护应用

还在因为去找朋友玩却没有详细地址,或有了地址却对这座城市不熟悉、不知道该怎么汇合?何不试试 Findu。只要双方愿意,不必再在其他应用里反复发位置——关系地图上一目了然。

好友相约同一地点,每个人的距离不同,什么时候出门最合适?我们虽不替代专业导航,却能给你最直观的位置与进度,帮你选一个更合适的出发时机。

特别关注:随时了解自己在意的人的动向;一个人外出,也可以让家人知道你在哪里。

我们,只想让生活变得更加简单。
生活本该如此简单。

——————

主要功能

• 关系地图
在地图上同时看到自己与好友的位置,支持刷新、全览、一键导航与地址解析,距离与预计到达时间一目了然。

• 位置共享与足迹
开启共享后按你设定的间隔上报位置;可查看自己与好友的足迹轨迹,回顾行程。

• 好友与分组
搜索添加好友、申请与备注;用分组管理关系,并可按分组控制「谁可以看我的位置」。

• 隐私权限
总开关、分组可见、单好友授权、陌生人是否可见等细粒度控制,未经你允许,他人无法随意查看你的位置。

——————

更多能力

• 可调节定位策略:支持更高频率的位置更新,让好友更及时地看到你的进度;也可选择更省电的间隔。请在「我的 → 位置设置」中按需调整。
• 后台持续共享:在你授权「始终」定位并开启位置共享的前提下,应用进入后台仍可按设置继续上报;你可随时关闭共享。
• 多语言:支持简体中文与 English。

位置共享、好友与地图为免费核心能力;足迹等增值能力详见应用内说明。

iOS链接:https://apps.apple.com/cn/app/findu/id1130623587

安卓apk:https://app.zhongxiaojie.cn/media/packages/2026/08/__UNI__8813F79__20260808160712.apk

而至于开发的初衷,是多年以前宝子的小姨做审计的时候,经常需要出差,全国各地的飞,为了能实时掌握她的动态,所以开发了这么一款应用。

后来,她出差不再那么频繁了,app也就暂停了更新,再到后来阿里的旺信imsdk停止对外服务,这个基于第三方im框架的app算是真的落幕了。

前段时间,自己在群里问要不要重启之前的项目:

J.sky说的很对,说永远都不如做。在这一天,自己重启了这个项目,然而,现阶段面临的问题依然很多:

1.im框架,多数都是收费服务,免费的寥寥无几,几年前曾经调研过野火im,现在貌似因为各种非法滥用也加入了种种限制

2.地图,既然要做定位,总是要有地图服务,高德、百度地图服务企业授权一年5万,个人授权又不知道什么时候就给封禁了。

3.架构,原来的java 和oc的原生代码,已然不合时宜,切换到uni是最快的。当然,这个也是这几个问题里面最容易解决的,毕竟有ai。

4.其他的潜在的一些问题,服务端框架升级,系统架构升级,毕竟靠便宜的ecs在gps数据达到千万级别的时候,拉历史记录就成了一件很痛苦的事情。

5.安卓系统后台保活,这个现在也没想好怎么解决。当然uni有一堆收费插件,这个并不是我想使用的解决方案。

不过,这最后一项项的都还是解决掉了。虽然功能差不多已经全部完成,甚至比之前的功能还有所增加,然而,目前还是把im功能隐藏了。

太多的事情,现在我也不知道是错是对,搞不清,也看不明。

十年,看着好久远,似乎又不过弹指一瞬间。这个图标还是十年前,自己用拙劣的ps技能画出来的,一个心形,加上一个gps图标,这就是全部。这次重构,我没有换掉这个,因为我没有想到更好的创意,当然,现在可以让ai随便生成无数个精美的图标。之前一行一行写的代码,再也不会上场了,成了新项目的参考代码。基于之前的代码重构,ai在页面设计和架构上反而没有花费太多的时间,相对来说推进还是比较顺利的。

而下一个十年,又在哪里?

十年后,我重新findu,也希望有一天能重新findme。

过剩信息,剥夺我

这个标题没有实际意义,纯粹是因为我从坐着的这个视角看过去,有一个上班族刚好打开自己的笔记本电脑,而这句话是贴在她的电脑外壳上的。

我这天正好也在进行小说的二稿修改,要修改的东西远比想象的多,以至于之前完成的初稿又变成了“大纲”级别。包括前几天在聊的《现在几点?》其实也是小说里的一个命题——手表定律。小时候的那件事儿是真事儿,而长大后知道这个定律以后,这种被童年玩过的玩具枪击中的乐趣,就像是挖出了童年藏起来的时间胶囊一般。

一旦开始修改小说,要增加的内容越来越多,又不能直接讲道理,就必须要变成故事;可这些故事之间又不像格林童话那样,一个故事交代一个寓言,信息就在这种不断熵增的情形下越来越混沌。


无独有偶,咖啡厅里,还有一个年轻人正在做手帐,正在把胶带、各种贴纸用镊子粘贴在记事本上,又掏出尺子和彩笔,在记事本上刻画出表格、标题,就连 To-Do list 前面的勾选框,在尺子上都有一个专门的空格,用来画出标准的小正方形块。

我一直很不能理解手帐,一是我觉得麻烦,二是我在尽可能地将所有功能都集中在一个东西上,以避免自己会用“仪式感”来作为结构化逃避的借口。比如我之前的电脑桌上,有键盘托、手机支架、iPad 伸缩架等等一大堆“高效”东西。自从我上次在问 ChatGPT “手腕悬空,真的会影响输入速度吗?”之后,我就把桌面上所有杂乱的东西都撤走,只留下了键盘和触控板,甚至配套使用的键盘托都拆掉,以避免自己再继续问 ChatGPT:“键盘和触控板要怎么摆放才能提高使用效率”。

这里需要叠个甲——并不是指喜欢做手帐的人,都是因为结构化拖延,而是我一定会把这件事作为自己结构化拖延的部分——如果我不做出一页漂亮的用来计划下个月的手帐,那很有可能我连一个可落地的计划都做不出来。

手帐,对我来说就是那个“过剩信息”,一个只需要记在桌面便签上的东西,却要预设一个仪式感的部分,但这件事对于事情到底能不能做出来,虽然有心理因素上的影响,但并不是决定性因素。

这也有一些喜欢做手帐的朋友,他们认为仪式感是为了更好地进入状态;而我咬死的是这件事到底做没做,以及我知道我正在拖延,以及为什么拖延。

当然,我也很赞同他们所说的“仪式感”,是一种将过载信息进行脱水的工作,以避免自己长时间陷入信息熵增的混沌。


我今天想说一个有些煽动性的结论:甚至有时候,是人们在主动制造过剩信息,以保证自己能够进入被“剥夺”的状态。

前几天,在《现在几点?》里,留下了这个话题的前半部分:

有时候,人增加信息,并不是为了更接近答案,而是为了让答案无法被确定。

被剥夺就意味着自己“没得选”,或者是暂时选不出来。否则事情就必须要推进下去,而不得不去面对和梳理杂乱信息的部分。

前两天在 TG,有人问我,自己很“懒”,创业过,现在很难再回到职场做牛马,但是现在迫在眉睫的是房租都快交不出来。他问我,如果是我,我会如何。我回答说,当下最紧急的既然是房租,那么我一定是围绕钱这件事思考;我思考的不再是我要做什么、我要保留怎样的尊严、我还是否能适应职场,而是为了房租能交上,我最多能付出怎样的代价,比如短时间送外卖,或去打零工。如果我接受不了这样的代价,那我就必须砍掉这些信息,重新确认我能接受的部分。否则就会永远卡在“我想要赚钱,但我又不想失去自我”上,最终彻底“剥夺”我的选择。

妙就妙在,人会在危机面前突然转向那些持续剥夺自己的事情,比如突然开始“做手帐”。


但我反而觉得这件事有用,至少在梳理的过程中,会意识到哪些事情对自己更重要。

如果整理两个小时资料以后,我更清楚小说下一章怎么改,那么它属于工作。

如果整理两个小时以后,我只是拥有了一套更加漂亮的小说修改系统,而依然不知道下一章怎么改,它就已经开始承担回避功能。

如果整理两个小时以后,我开始调整背景和字体的颜色,如何让自己在写作时更“舒服”,那这跟为了做手帐,挑什么颜色的胶带没啥区别。

过剩信息,剥夺我。只不过,是我先制造了过剩信息,再等着它恰到好处地来剥夺我。

——

感谢订阅莫比乌斯,如你有任何疑问、观点交流,请前往创作者频道,或私信联系。

什么是真正的痛苦

这几天经常看到一段李娟和李诞的对话,对话中李娟说世界上真正的痛苦,只有一种,叫贫穷——所有痛苦都是虚构的,只有贫穷才是真实的痛苦。我相信李娟是真诚的,她有她的逻辑,她接着就说自己没资格谈痛苦,因为她现在有好几套房、物质充裕。

为了不造成误导,有必要说一句,她这些话的语境是说精神上的内耗与纠结是可以「想开」的,属于相对虚构的假痛苦。而贫穷带来的是物质匮乏和生存危机,无法单纯靠心理调节来消解。

不过显然很多人还是不认可这个观点,有人评论说,孤独才是最痛苦的,有人说生病才是最痛苦的……有人又反驳说,那是因为妳们没真的穷过。不过照这个逻辑来说,前面的人也可以继续反驳——那是因为妳没真的孤独过,妳没真的陷入病痛过。可见,许多人的痛苦,苦的还是「我执」。我孤独过,妳们不了解,那太痛苦了;我尝过病痛,妳们不知道那有多煎熬;我穷过,天下再没有比穷更真实的痛苦了。谁能说不对呢。

要问我的想法,我只能说,妳经历的痛——不论是孤独、疾病、贫穷——都是真实的,但是那种痛,到底苦不苦,只对妳一个人是真实的。有人穷着逍遥自在,有人在病痛中乐观,更别提孤独——是我的珍馐美味。还有什么才是真正的痛苦呢,大概就是「看不透」吧。

fin.

大脑充血 Vol.94

怎么又到周一了,我上周做了什么……?生活似乎变得稳定,但也开始无聊起来了。我的文化体力还是没有恢复,抱歉了,我可能要过好久才能再写一篇书评了。不过与此同时,我又是怎么做到写了 那么长一篇《奥德赛》影评 ,竟然还有劲儿继续写第二篇的?我的大脑可真是神奇。


吾仅悉落

Nothing Makes Sense Anymore music cover

Nothing Makes Sense Anymore 专辑

Apes of the State

一张民俗朋克专辑,有些神奇的组合,大概是和朋克一样快节奏但乐器和旋律更像民俗乐的风格。本以为是一张很接地的欢快专辑,结果听到第三首的时候……

Oh Thomas Oh Thomas

You let us all down

We could have had Donald Trump slumped on the ground

Now instead we have ICE agents all over town

Oh Thomas how you let us down

——《Fascists Only Speak Violence》

挺好的…… 我最喜欢的是《The Champion》和《Mainframe》,或许还有《Jig for Straight Men Who Would Kiss Luigi Mangione》……


心重如毛

标题党就一定很坏吗?

📜
💬
💬

嚯嚯嚯,我今天要来为标题党正名! 其实我也很讨厌视频平台和社交媒体上的标题党,或者说点击诱饵(clickbait)。这类内容的特征是标题和封面和吸引人,而点进去之后却发现内容完全不是自己想的那样(顺带一提,「标题党」这个说法和 clickbait 的区别是,「标题到」没有覆盖到封面和缩略图)。不过说来惭愧,我其实写过这样的标题——《 喝咖啡如何帮我开发自己的 S 属性? 》。我承认还有一些标题纯粹是不明所以:

话虽如此,我从来没有抱着「这么写就能吸引流量!」的心态写这些标题——如果我想要流量的话,那我为什么要写文字博客? 我仅仅是觉得这么写标题很有趣,也的确有少数人或者熟悉我写作的人能理解其中的幽默。然而我不否认我时常因为不想让太多人点进来读某篇文章,而起一些无聊的标题。

我认为标题也是原文的一部分,是作者自我表达的路径之一。标题也应当彰显个性,对个人博客来说尤其如此。我也认可 Harley 在聚合网站的语境下,对某些标题类型的批评。我自己不希望在博客聚合网站上看到吸引人的标题,点进去却对内容失望(不过说实话,刻板印象中的 clickbait 只会让我跑得更远),但我同样希望我熟悉且长期关注的博主能起一些有意思的标题,因为无论是什么样的标题我大多都会点进去读的。用内容营销的术语来讲,如何起标题要看面对的是私域流量还是公域流量。

所以,我的建议是:多写一个标题。如果博主用的是 Typecho 和 WordPress 等博客系统,要给订阅源设置单独的标题可能比较麻烦,如果是 Hugo 这类可以自定义 RSS/Atom 模板的博客程序,其实可以在 Front matter (或者 Org 的 Property ?)里增加 feed-title 属性用于输出在订阅源里,或者生成两个版本的订阅源,一个用于提交给聚合网站,另一个用来让读者订阅——仔细想想这的确是两个相当不同的用途。我最近正在考虑写新的博客主题,大概会在之后加上这个功能。

另外,标题党和 clickbait 其实很难界定。一些标题很切题,不过读到的第一眼也不能知晓文章具体讲的是什么,比如《 思考是碳基生物的特权吗? 》《 阅读应当是一种体验 》。有的话题相对复杂,很难用简短的文字概括,抑或是一些散文,本来就缺少凝练的主题,而且这类文章可能更注重文学性而不是是否通俗。

至于 Bucket post(类似周刊的零散内容聚合),呃…… 我不觉得这是标题的问题,「应该不应该写周刊」是另一个议题。

成年之后也会有的小动作

📃

逐渐正视 自己可能有自闭症 或者 AuDHD 这个事实之后,我终于开始注意和重视自己的某些行为习惯,最近发现的是:我很喜欢摸头发。一般发生在书桌前,我若是高度专注地做某件事情,却不需要用手敲打键盘或者书写(比如阅读文章和读代码),我就会一直揉搓自己的头发,时常像用筷子卷面条一样把一缕头发卷在自己的头上。我还很喜欢拍打因为烫发翘起来的部分,偶尔会拉扯头发,制造轻微的刺痛感。我对这件事情相当有知觉,每次我都注意到了我在摸头发,而且相当频繁。我甚至发现坐我后面的同事每次出去抽烟再回到工位的时候,他都能看到我在摸头发(尽管他大概不关心)。就在我写这段文字的时候,我的头发是被我拨到后面的,我竟然还是会伸手到后脑勺拨弄我的头发。

其实挺困扰的,我的头发不总是很干净,于是…… 键盘很有可能变得…… 很油(还好我工作日都会洗头)。我明明知道自己会做这样的事情,却不能停下。除了摸头发,我还会咬手指甲(我应该有好几年没剪过手指甲了……),有时候我掏手机也仅仅是为了感受它的触感。这是什么强迫行为吗?

于是我找到了 Health Central 的这篇文章,大致就是,对有 ADHD 和焦虑症的人群(包括成年人)来说,这类小动作(Fidgeting)会让他们的前额叶变得更活跃,提升专注力和记忆。小动作包括抖腿、按笔、重复地转动一缕头发等等,而且必须是无意识的,如果需要投入意识活动,就没有用。比如听歌可能有助于专注,但如果自己跟着唱起来了,就不行(这也是我…… 不喜欢专注的时候听歌的原因)。另外,咬手指和焦虑症的关系更大,我自己的体验也类似,玩头发是专注的时候会有的,咬手指一般是在思考很难的问题,或者对即将到来的事情感到不安。貌似在全世界,小动作的名声都不太好,抖腿是会被父母管教的,但研究表明小动作不仅有助于认知活动,也能缓解焦虑,让自己平静下来。

神经特异者往往更容易做小动作,但神经典型者也可能从中获益。文章最后也推荐成年人尝试可以放在手里把玩的小玩具(fidgeting toys),可能对办公学习有帮助。我自己也发现,如果拿着一支笔或者别的东西把玩,摸头发的频次就会显著减少。我也开始怀疑,我看剧的时候必须吃零食,是不是也是对小动作的需求?如果在手上放一个玩具,貌似就不会想吃东西了。

卢梭与休谟的世纪大决裂

📻

完全是八卦单集。卢梭是对法国文坛乃至世界思想进步都有卓越贡献的哲学家,但他的为人很难评,比如他在《忏悔录》里承认自己在贵族小姐面前露鸟,还在宴会上和大街上朗读《忏悔录》…… 他还因为写出某些作品被法国政府驱逐出境,后来是休谟收留了他。结果,因为休谟的朋友写信散播卢梭的谣言,而休谟本人知道却因人情世故不想掺和,卢梭写了好几封信骂他。绝交过后,卢梭还把休谟的各种好意当成要陷害他的计谋,把事情闹得很大,休谟还写了一本小书,公开他和卢梭的部分书信,逐字逐句地纠正其中的不实之处,解释真相。据说被称作“好人大卫”的休谟骂得这么狠的人只有卢梭一个。

这场绝交还引得好多人围观和站队…… 怎么越看越像是社交媒体骂战在启蒙时代初见雏形呢?甚至还有发文件公开聊天记录…… 人类,果然一直都很无聊呢,哪怕是他们之中的佼佼者,而我呢,只是一只吃了桉树叶昏昏欲睡的考拉。

播客里提到的很有意思的观点是,卢梭和休谟的论战很像是刻板印象里女朋友男朋友的争吵,卢梭一直在讲感情和真诚,而休谟在一条一条地列举事实真相。他们两个对「真」的理解是不同的。不过我说实话哦,肯定要明确了事实之后才能判断这一事实对感情有什么影响,否则就像是对象在梦里出轨而自己竟然还生气了的笑话一样无理,听起来卢梭的确有些…… 妄想呢。


鸡头蛇尾

“写代码从来不是难点”是对程序员的羞辱吗?

📜

关于 LLM 辅助开发,近来常见的一种论调是「写代码从来不是最难的部分(不是瓶颈),所以 LLM 解决了写代码也不会让软件开发变得容易」。我其实很赞同, 上期周刊 分享的《 Eight Myths on Software Engineering and GenAI 》提到了这个观点,我也在《 什么是工程问题? 》回顾了《No Silver Bullet》,这篇发布于 1986 年的软件工程领域的重要论文也得出了相同的结论:构造概念是最耗时间的,而不是表达这种概念(写代码)更耗时间。

这篇文章的作者也持有类似的观点,不过受到了反驳(反驳的帖文发在 LinkedIn 上…… 我打不开那个网页也拒绝打开它),文章是对一些观点的回应。作者承认「因为写代码不是最难的,所以 LLM 不会颠覆软件开发」是有点偷懒且夸张的表述。事实是,没有人知道 LLM 会怎么改变这个行业,相信它是经济泡沫的也不少,我也是其中之一,毕竟世界上最大的 AI 公司都几乎没能盈利,没有用户愿意支付研发和运行 LLM 真正要耗费的价钱。

反驳中提到的两点有些耐人寻味。

  1. 「如果写代码狠简单的话,那为什么程序员的需求那么大,而且这么多年来薪水都很高?」——我不觉得这是很聪明的提问,工作的难易程度和需求以及薪水没有直接关系,只说明这个行业还有很多蛋糕可以分。文章作者的回复是:软件开发的边际成本几乎为零,只需要人力,利润很高。
  2. 「我遇到的很多程序员都不想和股东、顾客说话(除了自由职业者和创业者),他们只想知道自己到底要干什么,而且不要隔三岔五就改需求。」——作者只回复了一个词:Relatable.(能感同身受)我有很多想说的。《No Silver Bullet》里写软件开发最难的是概念性工作,而不是表达概念。在构造概念之前要做的是搞明白为什么要构造概念,也就是软件需求。我是否可以把这种态度理解为「不想理解需求,只想闷头写呢?」这样又怎么能交付用户需要的软件呢?不过说到最后,我貌似也只能说一句「能感同身受」了,其他能说的固然合理,但可能都有些强人所难。

不管怎么说,「因为写代码不是难点,所以 LLM 不会颠覆软件开发」这一说辞的确过于简单和理想化了,值得反思。事实是,LLM 也的确被大量地用来指定和修改软件方案,有不少诸如 Oh My Openagent 的应用也提供了成体系的解决方案——不过我得说,即便是专门用来做计划的 Agent 和 Skill 也摆脱不了 LLM 生成的内容常有模糊、留白、难以理解的偏正短语和歧义文本的事实,更摆脱不了软件作为一种概念构造必须被理解才能开发的事实,而 LLM 只会让理解变得更困难,除非开发者本来就对要做的事情一知半解。唉,总感觉这个议题越写越复杂。

有一点是肯定的:Coding Agents 引入了新的开发瓶颈——网速和模型响应时间。


漫步遐思

肉桂苹果

因为频繁在美剧里听到 Cinnamon Apple Cider 这个词(虽然就两次),所以嘴馋购入了苹果酱和肉桂浓浆,还有肉桂和气泡水。我很喜欢辛香料的味道,肉桂闻起来也很棒。肉桂貌似能激发苹果的甜味,总之喝起来很不错。

Cartle:所以这就是你又花了一百多块钱的理由吗?

Eltrac:可是真的好喝啊……

Cartle:你知道你交了房租之后余额就快见底了吗?

Eltrac:呃,这不是快发工资了吗……

Cartle:……

斯图尔特没能拯救宇宙

《生活大爆炸》的衍生剧《斯图尔特没能拯救宇宙》(Stuart Fails to Save the Universe),目前播出到第四集。剧情一般,不过其实挺好看的,谁会不喜欢多元宇宙呢?主角团是 Stuart(原剧里穷困潦倒的漫画店老板)、Denise(Stuart 的女友,不过这部剧里基本变成前女友了)、Kripke(把 R 发成 W 的那位)和 Bert(那个地质学家)。其实都是原剧里很受欢迎的配角,所以请过来拍衍生剧应该挺便宜的

剧情设定是 Sheldon、Leonard 和 Howard 制造出了某种量子纠缠机器,而 Stuart 刚好走进来撞到了机器,意外改变了多元宇宙,现在他要和一群人去找到将宇宙复原的办法。貌似每一集都有主角团中某一人的短暂客串,目前已经出现了囚犯 Raj、AI 反抗军头子 Penny、巨人恶魔 Bernadette 和精神治疗师 Amy,剩余的就不剧透了。

现在可以周一看《瑞克与莫蒂》衍生剧《柯提斯总统》,周四看《斯图尔特没能拯救宇宙》,其他时间打算找些经典音乐剧来看,或者…… 读点书吧。

信仰之爱与理性之爱

群里一位姑娘和一群人争论,她说:“国家很好,我很爱他”。 然后一群人问她:你懂不懂国家、政府、政党、权力的概念和关系?国和家是什么关系?马克思主义的政府和资本主义的政府,你能分清吗?国家都做对了什么,...

留守

✇ACEVS
作者 ACEVS

全家除了我,都去开封那个武侠水浒城玩玩。
打卡拍照,cosplay,三打祝家庄,打铁花,都得预约,人满为患,中午和我讲 ,园区已经限制进入了。人太多。干啥都得排队的感觉,只能玩玩排队少的项目。

虚拟增强现实的直接应用,游戏照进现实,真人陪你玩,或者说就是融合现实模拟版的剧本杀,真实演绎,喜欢付费运动旅游的可以试试。

节目据说很多很多,每个录一遍,估计也得住那几天或者几周才能达成。因为需要排队。

附近民宿不算贵,园区里面的小吃也不算贵,天气也不算热。不知道开学后,还排队不?

松声|廿六年·八月中·秋意近

2026-八月半-超市风波.png

  • 我是一个不喜欢麻烦的人,在家附近的超市采购一些食材,买了三个大土豆,差不多一个土豆可以炒一盘菜的样子,中午做饭,其中一个土豆中间已经坏了,按照我的习惯,扔了即可,毕竟土豆这玩意不值钱,结果LD不开心,拿着小票去人家商超售后,人家给退钱了。
  • 写这个片段,只是想说,无论网购还是线下购,有问题一定要去争取,暴露问题才能解决问题。

2026-八月半-花.jpg

  • 车充电的地方离我几公里,充满去开车的路上遇到了一个凉亭,不知道开的什么花,挺好看的,路过几次了,它还这么依旧。

2026-八月半-考试.png

  • 已结束,我也没想到真到了考场我似乎没那么紧张,之前的紧张主要是源自于自己不懂的紧迫感,像是一个学习差的学生,只懂得一半的知识,另外一半只能靠死记硬背记。好在感谢B站的视频,以及自己的动手能力,一切顺利,考过之后虽然下雨,但是内心已经雨过天晴。

2026-八月半-大雨天.jpg
2026-八月半-大雨天2.png

  • 考过之后的确内心已经雨过天晴,大概紧张感是来自于报名有效期的接近,我都没准备一次能过,毕竟培训和考试接近十天,忘记不可怕,怕的是实操的生疏,毕竟技能这玩意不经常使用会生疏,幸好我提前总结了细节。Ld想吃葡萄,附近全是葡萄种植园,同事家的巨峰,10块钱4斤,买了三份,大狗二狗各一份,也是巧了,就剩了三份,还挺好吃的。
  • 回家之后,算是意识到了ld为什么不建议我回家,因为tmd台风来了,特别是回公司的时候,少部分路段给开船的一样。附近几个地方算是泄洪区,主流媒体也有报道,最近淹的老惨了,不过人没有啥问题,提前都有转移方案。这几年气候似乎发生了很大的变化,希望后面一起顺利吧!毕竟种地这玩意,真细算不挣钱。

2026-八月半-cc.jpg

  • 不建议买这家服务商当做主站使用,作为测试站点玩玩可以,巴拉特企业,人家邮件很正式的给你发送了条款,就是便宜机子我不管,死了就死了。上次已经看到一个博友全方面吐槽了。各位心中有谱吧!

[photos]
2026-八月半-作文1.jpg
2026-八月半-作文2.jpg
2026-八月半-作文3.jpg
[/photos]

  • 还没想好怎么写这一段,先推荐一个最近很火的作文“我的妈妈”,封面照处理的挺好的。
  • 思考这个片段如果写了一些不适合写的东西,很容易触发一些东西,前端时间经历过DNS被停止,还是要分开,毕竟子夜松声就是一个普通的Blogger,后续的后续还是看后续吧!
  • 最近抽空还是趁着有时间出去转转,大家也多出去转转哈,放松放松心情!

我的世界一直下雨

我的草稿箱里有一篇关于神经多样性的文章一直没写得下去,这几天我才意识到,比起写一篇近似于学术综述的无聊文章,不如写点掏心窝子的话。当然,这也意味着这篇文章不会写得很有条理。

在我爷爷的六十岁大寿上,司仪要十二三岁的我站在台上说点祝福的话。我看着底下二十桌人,说不出一句话。站在我旁边的表哥很自然地说出了「祝外公福如东海,寿比南山」,见我一直没反应,司仪把话递到我嘴边,让我就说「祝爷爷福如东海,寿比南山」就好了呀。我还是不说话,似乎说出这种话对我而言在生理层面就是不可能的。我觉得那样的祝福并不真诚,而当时的我想不出任何真诚的话。或许不存在任何能在那种场合下说出口的真话,我对爷爷的感情存在于每天的生活和互动中。小时候的我很喜欢爷爷,这难道不够吗?为什么要把真实的情感放到众人面前展示,加以歌颂和粉饰?快十年过去了,我想如今的我依旧无法在爷爷的七十岁大寿上说出这种话,唯一的不同是,现在的我会把这种祝福、这种期待称作媚俗,加以批评。我有的时候会害怕,在爷爷或者奶奶的葬礼上,我会再次被放到那个位置,然后台下的所有人都会觉得我是个不孝的孙子。

随着我的社交空间不断扩大,我发现自己在形形色色的人面前也非常特殊。一个大学同室说他看到大段的文字就发颤,可文字对我来说是解救。和我来往相对密切的人时常感叹我的学习能力,可钻研自己感兴趣的事情、对未知抱有好奇心,对我来说相当自然,不费力气,我甚至要耗费巨大的力气来让自己不要陷入无止尽的阅读和写作当中。相反,如果是数学、物理和政治,我会盯着毫无神色的文字陷入想象,想象的内容有时是向别人讲述希腊神话故事、某个词源学知识和加缪的生平,有时是第一百种让一个我迷恋过的人 重新进入我生命中的方式 ,有时是我在歌唱,把整个身体都投入到旋律中。

我早已习惯沉默,当我在电梯里、饭桌上、走廊里与人相遇时,我多么想告诉他们:你不必找话填补空白,沉默就很好,我有我的思绪相伴,和人说话对我而言很累,很累。之前听一个阿斯伯格综合征1患者说,阿斯伯格并不是不会社交,只是社交并非他们的母语,需要一直在大脑里翻译社交语言。我的体验大概是相似的,除非是我熟悉的人群和环境,我总是很难读懂那些潜规则和「房间里的大象」。这也是为什么我在自己的 主页 里说我讨厌日本文化里关于「不会读空气」的指责,这不仅是群体对新来者的霸凌,还是把社交无能所带来的问题和责任转嫁给别人——如果你觉得有人没读懂空气,那就应该直接指出对方不理解的规则,而不是指责对方的读空气能力。

可是,有很长一段时间我没有意识到如「不会读空气」一类的指责和其他形式的社会共识有什么问题,我责备自己。我只觉得自己太胆小怕生,高中时和朋友聚餐,我甚至不敢叫餐馆里的阿姨打饭,不敢打电话预订桌位,我总是战战兢兢地觉得自己又会违背什么我不清楚的规则。成年之后,我似乎不那么怕生了,但身边人说,我形成了一种「生人勿近」的气场。现在的我训练自己不去多想,只去读话语中最表层的含义,只为了不蹑手蹑脚地行动。一部分原因是,我意识到即便我发现了人们预设其他人懂得某种规则的思想有多卑劣,我的想法也仅仅是少数人会赞同的,因为其他人都很快接受并适应了。他们兴许也会赞同我的剖析和评价,但他们适应了,我不能。

通常孤独症谱系患者,拥有大多数人所没有的某些天赋;但是每位患者的“天赋包”并不相同,如同孤独症谱系也有许多种组合类型。他们操作语言的方式不同于大多数人,经常忍不住从字面上理解事情,并且过度注重细节。他们往往想要什么就说什么,并希望别人也这样做。这就是孤独症谱系患者的“默认设定”。

—— 维基百科:高功能孤独症和阿斯伯格综合征编辑

一直到我今年接触到神经多样性这个概念,我才豁然开朗——草,我原来我是自闭症啊,怪不得! 仿佛我过去二十年人生中遇到的种种困难都有了解释,仿佛有人终于懂得了我的想法。这就是给事物命名之后会带来的改变吧。「他们往往想要什么就说什么,并希望别人也这样做。」——这难道不是很美好的世界吗?再也没有猜疑和胆战心惊,再也没有人预设任何规则、霸凌任何人,词语的意思就应该被这样尊重,人类给自己建起的巴别塔就应该被推倒。

我的另一个神经特异的特征,大概体现为迷恋在我生活中的地位。我或许有一些朋友,但我从未拥有过挚友,因为很少有人能让我真正敞开心扉。那些做到的人,都是我迷恋的对象,而我总是…… 毁掉这种宝贵的关系。我的生活中没有一个能让我放下戒备的人。我或许是孤独症患者,但我渴望有人进入我的世界。我渴望有人敲门,安静地走进来,紧紧地抱住我,用皮肤和我对话,我们不需要说话也能相互理解,我们可以在我的世界里抛弃所有的规则。可惜没有人来,或许也不会有人来。我知道我无法要求任何人接受我多少有些病态的依恋,但如果可以的话,那一定会很棒吧。我总是想象,我的世界对其他所有人封闭,但对一人敞开。

没有人来,为什么呢?我的世界其实很精彩,这里有全部七十八张塔罗牌的含义,三个奥德修斯的故事,和我一样讨厌作家圈子里不清不楚的规则的加缪,有歌剧院里的幽灵、索拉里斯星的大海,和后来成了桑塞维利约公爵夫人的彼埃特拉内拉伯爵夫人。是我把门看得太紧了吗?我无法忍受,有粗俗的人进来把我的东西弄乱。可我又真的好需要一个人进来,把我从地上抱起来,因为我的世界一直下雨,而我好讨厌、好讨厌,袜子被浸湿的感觉。


  1. 阿斯伯格综合征:Asperger syndrome,其实是个过时的名词,现在已经归纳到孤独症谱系障碍(ASD)当中了。简单来说,阿斯伯格综合征是伴随智力和认知障碍,且功能性语言仅有轻微或无受损的孤独症谱系障碍。 ↩︎

朋友来赶海

✇ACEVS
作者 ACEVS

朋友从河北来赶海,直接住在黄岛,开车来的,车往酒店一停,天天打车到处跑。金沙滩,银沙滩还有那个c型半岛,本来想去竹岔岛玩玩,没想到2021年就关闭了。打电话确认确实。推荐灵山岛,灵山岛我一看,我坐地铁,在打车,再坐船,6-8小时全在路上了,放弃,灵山岛可能这个名字。15.30是末班船,错过,或者满了,可能就得住岛上了。

朋友见我当天的昨天就去赶海了。啥也没搞着,牡蛎太小,gala也不多。海星没看见,螃蟹太小。让我带着去,打车去的,一看就是景区,出租电动车,小商店什么的都有,靴子租赁,手电,头灯等等。设备完善了,就没啥好赶海的,或者潜泳抓,可能几率有点?

租了个电动车,无头苍蝇一样,朋友和我换着开转了一圈,虽然出发的时候,那个人告诉我一大堆,左转右转,看到啥,然后怎么走,执行的时候发现没有地图好使,看到路也不是公路不敢贸然冲进去,当时我问有没有导航,那个人说导航没用。哈哈

到了那个片碎石海滩,就知道gala 蛏子 很少,牡蛎可能多,螃蟹估计也不少。这些我突然想起之前那次赶海,顺道自己瞎总结出来了。朋友穿着洞洞鞋,往水多的地方走,我说那边一个人都没有,不用过去了,你看那边全幅武装的女士和钓鱼佬去哪儿,就跟着他们就行。太晒,我迎着风,把防晒衣挂头上,风吹起一些衣服,帮我遮阳。中午13.00的太阳,还是挺热的。我发现一些石头挺不错,挑了一块,挑石头的时候,想起翻石头就有螃蟹,我翻了几个有螃蟹,朋友也开始翻石头,他喜欢翻大石头,累的喘气,他比之前胖了20kg,看到我这么瘦,中午一起吃饭,说要减肥了。哈哈.

抓了十只左右小螃蟹。他说赶海成功,我们离开的时候,这些小螃蟹放生了,另一个抓螃蟹的女士过来把小螃蟹都抓走了。真的挺小,大螃蟹得放笼子或者网子,不过这地方估计早有不少专业人士惦记着了。

打车去了金沙滩,金沙滩绿化比多年前我来的时候绿化好多了,感觉整个黄岛绿化都不错,感觉叫绿岛也可以的,绿岛,青岛。

坐车晕车,地铁没事。为了避开地铁高峰期,4.5点钟就和朋友告别了。坐地铁得2个小时左右。花了不到8元钱。60公里左右还是不错的。朋友邀请我去他那儿玩,我说我都不爱旅游,付费锻炼身体,我还晕车,晕船,有空半小时公园或者什么地方锻炼锻炼就完事了,我家旅游,每次我都不去的,我宁可家里有空打打游戏,或者出去骑行,走路,篮球,乒乓球,羽毛球等等,都比坐公共交通旅游好一些感觉。可能尝试过的,就没意思了,一直对独自摩旅向往。但是想想钱包太瘪,罢了。

想起一句我妈常说的话,走亲戚,串字己(族家),不胜在家立志气(求人不如求己,忠告)。

诺兰的《奥德赛》采取了什么样的改编策略?

笔者刚刚从电影院回到家,趁着记忆还很清晰来写影评。离开影院之前我记下了几个印象深刻的点,接下来我会逐个分析这些情节、人物、背景乃至主题层面的增删改究竟和原著有什么区别,同时我还会对比另外一部《奥德赛》的改编作品,音乐剧《EPIC:The Musical》,看看不同的创作者采用了什么样的改编策略,背后的考量又有可能是什么。

必须要说明的是,笔者只阅读了荷马史诗《奥德赛》的前两章,所以有关原著情节的对比可能不太准确,是临时查阅的。不过我想如果读者若是本来就了解《奥德赛》的故事,应该能看出诺兰导演做了非常大程度的改编,同时他又保留了不少东西(比方说这部电影的叙事结构相比音乐剧,要与原作更为相似)。

此外,比起电影,我对文学的了解可能更多,所以我也更倾向于解读情节和人物等与文学共同的要素。

电影的现代化和去神明化

我其实在看电影之前就得知,诺兰不仅仅是弱化,甚至可以说是删除了《奥德赛》中神话的部分。帮助奥德修斯对抗女巫瑟茜(Circe)的赫尔墨斯(Hermes),给予奥德修斯风囊考验的风神埃俄罗斯(Aeolus),要为儿子独眼巨人波吕斐摩斯(Polyphemus)报仇的海神波塞冬(Poseidon),以及宙斯(Zeus)本人,在电影中都没有出现。

电影中保留的三位与神话相关的角色,也都失去了神性,诺兰赋予了他们完全不同的象征意义。她们分别是海之神女卡吕普索、女巫瑟茜和智慧女神雅典娜。我会在后面提及这三位角色在电影中具体起到了什么作用,在原著中又是什么样的人物。

在仲树和诺兰的采访中,仲树问他的最后一个问题是:神明们是什么?他们是想象的产物,还是必要的高尚谎言?电影中,宙斯和波塞冬等名字被奥德赛和船员们反复提起,他们从来没有出现。在原著中与奥德修斯关系紧密,甚至还造访过他的儿子忒勒玛科斯的雅典娜,竟然仅仅是奥德修斯的愧疚和想象——难怪仲树会问这个问题。诺兰在采访中的回答是:

他们对故事中的角色来说是真的。我在思考如何看待和处理神明这一概念时感到有趣的是,当时的人们看待神明的视角。对那些处在科学以前的时代的人们,神明存在的证据遍布四周,所以神明不与信念相关,而是简单直接的现实。雷鸣和闪电就是神在与他们对话,大海的状态是神明推动和改变的,除此之外他们没有其他解释。正如我们把科学告诉我们的事情当作绝对事实一样,像是地球是圆的、地球绕着太阳移动,我们无法知道这些事情,我们之所以相信是因为它们被当作事实呈现给我们。那个时代的对自然的神话解释也是一样的,所以对我而言神明是真实的,但他们存在于人当中,是被人投射出来的。

电影中能观察到诺兰的这个想法,佩涅洛佩(Penelope)向求婚者们提出挑战时,有雷声响起,电影里的角色便说:“看来宙斯也很好奇最终的结果。”独眼巨人向父亲波塞冬哭诉之后,海上便大浪滔天,船员们怨奥德赛激怒了波塞冬。不过风神埃俄罗斯竟然没有出现,甚至连「神明存在的证据」和「人的投射」也没有。原著中奥德修斯在快抵达伊萨卡时,被埃俄罗斯的风吹回了风神的岛屿,这段情节消失了。

观影之前我发现神明没有出现在电影中的时候,感到非常失望,不过看过电影之后才觉得超出预期。至少诺兰以一种自洽的方式掩盖了神明在故事中的作用,为此他甚至改写了特洛伊战争发生的原因——之后我谈到海伦的时候,还会继续提到这一点。

诺兰对神明的解释和演绎,其实相当具有「现象学态度」,是一种哲学层面的解读。当然们以自然态度解释世界时,往往把经验与神明或者某个具体的科学理论联系起来,而现象学态度则是先验的,诺兰停下来审视了古人与神明以及现代人与科学的关系,随后从哲学视角(而非科学视角)改编了《奥德赛》中神明的现身。

无论如何,这是相当现代化的改编。尽管电影本身很精彩,但奔着神话世界观去看这部电影的人肯定会失望的。

智慧女神?还是愧疚的化身?

在荷马史诗《奥德赛》的第一章,雅典娜装成从远方来的客人前往伊萨卡,受到了奥德修斯的儿子忒勒玛科斯的热情款待。雅典娜自称是奥德修斯的老朋友(她的确也是),建议他前往斯巴达探访墨涅拉奥斯,去打谈父亲的消息。这个旅人在电影中的确出现了,忒勒玛科斯也是听了旅人的建议才前往斯巴达,但他不是雅典娜。忒勒玛科斯仅仅是说,他有着智慧的眼睛,雅典娜的眼睛——而这套说辞,他后来还向不同的人重复了几次,可见这并没有表明旅人就是乔装打扮的雅典娜。史诗中的忒勒玛科斯知道传信的是位神明,所以才接受了雅典娜给他的建议。电影中的忒勒玛科斯却不是这样,他是自发地想要打探父亲的消息,知道他是死是活。

乔装打扮的雅典娜在史诗中还有几次亮相,但电影中都没有呈现,原因刚才已经谈过了。那么,电影中的雅典娜究竟是何人物?她和奥德修斯是什么关系?

电影的最后,奥德修斯在佩涅洛佩的房门外回忆起攻进特洛伊城门的那一晚,其中有一个出现了几秒钟的画面:战士们抓住一个农家妇女,妇女向奥德修斯哭喊饶命,可战士们最后还是砍下了她的头。这个无辜妇女的形象,就是电影中反复出现在奥德修斯想象中的雅典娜,她象征着特洛伊战争的罪行、违背宙斯之法的木马计、烧杀抢掠的愧疚感

电影中「雅典娜」这个名字在不同人嘴里代表两个不同的东西:

  1. 智慧的化身,希腊人供奉和信仰的神明,只存在与神话和人心当中。
  2. 愧疚的化身,不断提醒奥德修斯他犯下的罪行,只存在于奥德修斯的想象中。

前者仅仅出现在台词和神庙中,后者则反复出现。每次“雅典娜”现身,都是一脸严肃地质问奥德修斯,提醒他的过错,直到最后,奥德修斯向妻子坦言自己犯下的罪行,决定流放自己,让忒勒玛科斯成为新王,这个“雅典娜”才留下感动的泪水,与奥德修斯和解——这个“雅典娜”仅仅是奥德修斯自己的良心而已。

史诗中的雅典娜显然不是任何人的想象,她与奥德修斯是亦师亦友的关系,他们之间甚至会像朋友一样相互开玩笑。奥德修斯与智慧女神是朋友,他足智多谋的形象也得到了进一步的确立。史诗中的雅典娜还在宙斯面前为奥德修斯求情,请求众神释放被卡吕普索囚禁的他。甚者,整个特洛伊战争之所以发生,都与雅典娜有关系。在海洋女神忒提斯的婚礼上,不和女神厄里斯因为没有被受邀,所以心生诡计,将写着「送给最美丽的女神」的金苹果送给宴会上的三位女神——天后赫拉、爱与美的女神阿佛洛狄忒以及雅典娜。三位女神都想当然地认为金苹果是送给自己的,争执不下,于是去找特洛伊国王的儿子帕里斯裁决。帕里斯选择了阿佛洛狄忒,之后帕里斯受爱神教唆乘船到斯巴达,与王后海伦发生关系,最后说服海伦跟自己回了特洛伊。由于希腊第一美人海伦被特洛伊人拐走,斯巴达国王墨涅拉俄斯非常恼怒,于是找阿伽门农召集英雄攻打特洛伊,奥德修斯也被迫出征。

电影中也提及了特洛伊战争的开头,战争也的确因海伦而起(海伦的形象在电影中非常特殊,不仅仅是因为肤色,这点会在之后专门谈到),不过神明的意志被弱化了。电影中一笔带过的台词我记不太清了,貌似劫走海伦仅仅是特洛伊人为谋求商贸利益而打的幌子。

有点跑题了,不过电影中的雅典娜的确没太多好讲的了,所以接下来就欣赏一下音乐剧中的雅典娜吧。Jorge 编曲的《Warrior of the Mind》描绘了奥德修斯与雅典娜相遇的场景,也交代了他们之间亦师亦友的关系:

哦对,这首曲子提到了卡吕冬狩猎(Calydonian Boar hunt),音乐剧中雅典娜说他设下挑战,要看谁有能力猎杀野猪,最后是小男孩奥德修斯干掉了它。神话里,这只野猪是月亮女神阿耳忒弥斯为了惩罚忘记给她献祭的卡吕东人设下的,和雅典娜没什么关系,而且 猎人名单 中没有奥德修斯,只有他的父亲拉厄耳忒斯。电影中出现了奥德修斯猎杀野猪的情节,也和雅典娜没有关系。

此外,雅典娜请求释放奥德修斯的情节,在神话里其实进行得很顺利。雅典娜对宙斯说:“我的父亲,克罗诺斯之子,至尊之王…… 难道奥德修斯没有在阿耳戈斯船边,在特洛亚旷野,给你献祭?宙斯啊,你为何如此憎恶他?”宙斯的回答是:

我的孩儿,从你的齿篱溜出了什么话?
我怎么会把那神样的奥德修斯忘记?
他在凡人中最聪明,给掌管广阔天宇的
不死的神明们奉献祭品也最丰盛勤勉。
是环绕大地的波塞冬一直为独目巨怪
怀恨在心,奥德修斯刺瞎了他的眼睛,
就是那神样的波吕斐摩斯,独目巨怪中
数他最强大;他由神女托奥萨生育,
广漠的咸海的统治者福尔库斯的女儿,
在深邃的洞穴里与波塞冬融情媾和。
为此缘由,震地神波塞冬虽然不可能
杀死奥德修斯,但却让他远离乡土。
现在让我们一起考虑他如何归返,
让他回故乡;波塞冬终会消弭怒火,
因为他总不可能独自执拗地违逆
全体不死神明的意志,与众神对抗。

简单来说,众神之王宙斯相当欣赏奥德修斯,是波塞冬一直困住了他。宙斯的话一出,众神也同意了,随后便决定释放奥德修斯。在神明已经被剔除的电影中,当然是没有这个情节的,但在音乐剧中仍有保留,不过雅典娜为好友付出了很重的代价。详见《God Games》一曲:

荷马的奥德修斯在某种意义上是个万人迷,有众神协助他归乡。而音乐剧里的奥德修斯则被视作耻辱,是挚友雅典娜拼命为他争取机会。至于诺兰的奥德修斯…… 呃,我们谈卡吕普索的时候再说。

瑟茜为何满面愁容?

音乐剧里的 The Circe Saga(瑟茜篇章)是我最喜欢的篇章,各位可以跳转到下面这个视频一分钟的位置感受一下音乐剧中的女巫瑟茜是何等人物:

荷马史诗中的瑟茜(也译作基尔克,或者喀耳刻)也十分美丽,具有神性。荷马史诗把她描述为居住在宫殿里的神女,有侍女相伴,一头美发,通晓草药魔力。

他们站在美发的神女的宅邸门前,
听见基尔克在里面用美妙的声音歌唱,
在高大而神奇的机杼前忙碌,制作精细,
无比美丽、辉煌,只能是女神的手艺。
士兵的首领波利特斯对他们开言,
同伴中他最令我喜欢,也最勇敢:
‘朋友们,里面有人在巨大的机杼前
唱着优美的歌曲,歌声四处回荡,
不知是天神或凡女,让我们赶快去询问。’

瑟茜把奥德修斯的伙伴变成了猪,背后的动机没有明说,仅仅是把她塑造成害人的美丽女巫——稍后可以看到两部改编作品,都对瑟茜的动机做了不同的解释。史诗中奥德修斯受到了人神信使赫尔墨斯的帮助,他给了奥德修斯摩吕(Moly),吃下之后便免疫瑟茜的巫术。之后他才踏入瑟茜的宫殿,将她打倒,最后瑟茜被奥德修斯折服,和他上了床…… 而且不止一次,之后的一年里,他的弟兄们都在宫殿里吃喝享乐,他自己也和神女共枕…… 不难想到,两部改编作品都删去了这个情节。

史诗和音乐剧中的瑟茜具有神性且住在华丽的宫殿里,但是在电影中,瑟茜却非常愁苦,充满怨恨,她甚至把自己的姐妹变成了乌鸦,和人变的动物居住在一座小茅屋里面。当电影中欧律洛卡斯询问一位惊恐万分的中年妇女姓甚名谁,而她的回答竟然是「瑟茜」时,我感到非常惊讶。

电影中的瑟茜的确还有着巫术,仅仅是神性被消除了。战士们吃了食物被瑟茜一个一个揉搓成猪的画面也十分震撼,可能比挥挥魔杖更好看。此外,奥德修斯是完全依靠自己的力量和计谋与瑟茜对抗的,他擒住了笼子里的乌鸦威胁瑟茜,而这只乌鸦是瑟茜的姐妹变的,这时她才坦言道,自己把到来的人都变成动物,是因为这些男人在她的家里完全不尊重他(诺兰似乎又一次暗示了宙斯之法,或者好客之道),也是为了自我保护。之所以把姐妹也关进鸟笼,是因为这样一来她们更容易相处,不难想象着也是一种自我保护,或者说心理防御。

所以,诺兰的瑟茜呈现出来的几乎是「应激」的状态,外界给她带来了太多的痛苦和伤害,甚至连姐妹也无法和善相处,这才使得她把身边的所有人都变成手无缚鸡之力的动物,这样一来她才能控制身边的人。

音乐剧中的瑟茜将人变成猪的动机也是出于保护,但并不是诺兰笔下的自我保护。瑟茜是为了保护和她一起生活在宫殿里的侍女,之前她们让陌生人活下去,却受到了莫大的损失,此后她们便不再相信陌生人。

所以诺兰和 Jorge 分别想借由瑟茜这个角色表达什么呢?毕竟在史诗中,瑟茜的动机非常神秘、不被言说,可以理解为神仙的随心所欲,而两部作品都让他们变得更像人,动机被明确且正当化,变成了两个个体因各自目的不同而导致的冲突,而不是英雄与纯粹的恶人对抗。

尽管我对失去神女身份的瑟茜感到失望,但不得不说,诺兰笔下的瑟茜的确更具文学性。音乐剧中保护身边人的瑟茜是相当简单且非常符合道德准则的解释,而诺兰笔下受惊、愁苦、自私、被痛苦摧残的瑟茜,则更好地反映了当代人的个体困境——外界似乎只存在着危险,而最亲近的姐妹也无法带给自己慰藉。

如果不反对把奥德赛现代化的话,瑟茜这个人物其实是相当不错的改编。

“卡吕普索,你是神明吗?”

卡吕普索(Calypso)是海之神女,因为爱上了被冲上岸的奥德修斯,用神力将他困在岛上七年,直到智慧女神雅典娜(Athena)前去找父亲宙斯求助,赫尔墨斯才前往奥吉吉亚岛告知卡吕普索,神明们要她释放奥德修斯。电影中的卡吕普索的确是接济奥德修斯的人,但她显然不像神明,她仅仅是居住在海边的隐者。

有趣的是,电影里的奥德修斯其实开口问了卡吕普索:你是神明吗?卡吕普索对此的回应是:沉默。这真的非常有趣,诺兰没有让卡吕普索承认她是神女,也没有否认她是。观众可以用任何方式解读这种沉默,可能是因无法反驳奥德修斯的话语而沉默,也可能是为了伪装自己的神明身份而沉默。不过,卡吕普索在整部电影里的形象与原著的形象完全不同。比起神明,她更像…… 心理咨询师?

电影中的卡吕普索从一出场就在对奥德修斯进行「话疗」,她跟奥德修斯说的话类似于「你感觉怎么样?」「你还记得当时发生了什么吗?」「你可以明天再回忆」。故事有相当一部分是通过奥德修斯对卡吕普索讲述回忆进行的。

值得一提的是,电影中的卡吕普索给奥德修斯吃了名为「忘忧莲」的植物,电影用的英文单词是 Lotus。在原著中,Lotus 和卡吕普索没有任何关系。莲花是奥德修斯和船员在另一座岛屿上遇到的植物,那座岛上住着一群名叫 lotophages 的族人,直译过来是「莲花食者」(Lotus-eaters)。荷马史诗中的莲花也不是用来让人忘记悲伤的,它的作用是让人忘掉自己的家和爱人,留在原地继续食用莲花,永远也不离开。

电影中,卡吕普索没有用神力囚禁奥德修斯(因为她神女的身份并不明确),而是喂奥德修斯吃莲花,不让他回忆起悲痛的过往,在他肉体的伤痛尚未缓和之前,不让他再承受心灵的伤痛。电影里的卡吕普索也的确爱上了奥德修斯,但并没有因为爱而强迫奥德修斯留下,而是像治疗师一样慢慢帮助奥德修斯控制吃药(莲花)的量,待他回忆起妻子的名字之后,确认他真的准备好了之后,才让他离开。尽管卡吕普索的确动了私心,让他多留了一会儿(指 7 年),但总的来说,她留住奥德修斯的原因是:当时的奥德修斯还没有准备好、没有能力回家。等奥德修斯准备好了,她完全没有阻拦他乘坐木筏出海。

卡吕普索身为治疗师的角色对奥德修斯的成长变化乃至情节的推动,在电影当中是相当重要的。她不仅救了奥德修斯的命,让他渐渐恢复了心力,也让他理解了神明的意志,将自己投身于世界当中。我们也看到,奥德修斯并没有用浆划动木筏,而是躺在木筏上,任由海水冲刷自己的身体,最后是海洋和风(神明)将它带回了家。诺兰甚至好心地把波塞冬摧毁奥德修斯的木筏,不得不游回家的情节,改成了海水将奥德修斯冲到伊萨卡的岸边,就好像奥德修斯一旦将自己献身给世界,神明就会为他开辟道路一样。

不得不说,诺兰的卡吕普索还是有点太健康了,让我们来看看隔壁《EPIC》里撕心裂肺的卡吕普索:

我要看到泪流成河、爱而不得、歇斯底里! 另外,史诗中,奥德修斯被困的这七点里也和卡吕普索同枕共眠,当然也做了该做的事情…… 两部改编作品都忽略了这点,把奥德修斯塑造成一个忠贞的男人,关于这点我就不评价了。

全电影最惨的独眼巨人

独眼巨人是电影中奥德修斯遇到的第一个岛屿上的敌人(如果不算诺兰为了铺垫 The sea people 而增加的烧杀抢掠情节的话),我之所以说他惨,是因为他不仅被塑造成了一个过于丑陋、恐怖的怪物(真的有必要给他的鼻子也弄歪吗……?),而且电影中还没有提及他的名字。是的,是的,这个独眼巨人是有名字的,魔物就不值得尊重了吗?! 另外,奥德修斯和波吕斐摩斯的智斗也被删除了,他与波塞冬的父子关系也被弱化。

从这里开始我们就要提及 Xenia 的概念了,电影中这个概念被简化为 Zeus’ Law(宙斯之法)。这个概念最简单地理解是「好客」,要像家人一样招待远道而来的客人,因为他们有可能是伪装成凡人的神明。电影中,诺兰把这个概念提升为「像你希望被别人对待的那样对待别人」,甚至升华为整部作品的核心主题。

荷马史诗中,奥德修斯一行人进入独眼巨人的洞穴寻找补给品,本以为洞穴的主人会好客地接待,没想到波吕斐摩斯放羊回来之后把洞口用石头堵住,直接吃掉了奥德修斯的两个战友。第二天早上醒来放羊之前,巨人又吃了两个人,晚上回来的时候又吃了两个。至此,电影的情节还是忠于原著的,不过诺兰省略了奥德修斯戳瞎波吕斐摩斯之前的经典桥段。

波吕斐摩斯并不是在睡觉时被刺瞎的,奥德修斯提供了美酒给独眼巨人。这里要提到一个小知识,古希腊人喝酒讲究节制,有教养的人不会暴饮,还会稀释过后再喝。而独眼巨人不仅不讲好客之道,也不讲节制,一口气喝完了未稀释的烈酒。他醉醺醺地询问奥德修斯的名字,并保证给奥德修斯一份礼物,这时奥德修斯说自己的名字是 Οὖτις(没有人),然后波吕斐摩斯揭示了自己要送给奥德修斯的礼物:他将会最后一个吃掉「没有人」。不过很快他就醉昏过去了。此时奥德修斯一行人才戳瞎了它。原著中,波吕斐摩斯的叫喊还惊动了其他的独眼巨人,同伴们问波吕斐摩斯发生了什么,波吕斐摩斯回答:“没有人!没有人伤害我!”于是其他独眼巨人就没有理他。

原著中的奥德修斯在逃脱之后犯了个错误,他傲慢地向波吕斐摩斯喊出了自己的真名,这使得之后波吕斐摩斯的父亲波塞冬来找奥德修斯报仇。在诺兰的改编中,奥德修斯根本没有尝试和独眼巨人沟通过,即便在他们意识到独眼巨人会说话之后也没有。不过电影中奥德修斯犯的错误也同样愚蠢,他因为愤恨独眼巨人杀死了他好几个弟兄,于是在逃脱之后继续攻击独眼巨人,彻底激怒了他,独眼巨人闻声追到海岸,又杀死了两个没来得及上船的兄弟。

电影中独眼巨人和海神波塞冬的关系,仅仅是被暗示过。独眼巨人被戳瞎眼之后,哭喊着「父亲波塞冬,为我报仇」。逃离之后,一行人在船上遭遇了巨大的海浪,此时船员才将伤害独眼巨人一事与波塞冬联系起来。这符合前文提到的,诺兰对神明的思考和处理。另外,原著中奥德修斯一行人是抓着羊肚子逃离独眼巨人洞穴的,而电影中是背着干草爬出去的。我想这是因为…… 趴在羊肚子上太难拍了吧。

波吕斐摩斯在诺兰的改编中失去了人性,完全成为了一种无法沟通的怪物,海神波塞冬的惩罚也仅仅是人物的联想和投射。这一情节除了初步地激化奥德修斯与船员的矛盾,再次强调宙斯之道的概念,此外貌似就没有什么用处了,所以省略了一些情节,快速带过也算合理。对人性的消除,想必也是为了弱化神话要素,和电影整体的调性相调和。值得一提的是,荷马的奥德修斯之所以一直回不了家,是因为波塞冬的阻拦,而起因就是向波吕斐摩斯报出了真名。诺兰把奥德修斯回不了家的原因改编为他还没有为自己的行为赎罪。

在音乐剧《EPIC》的改编中,独眼巨人并没有直接吃人,相反,奥德修斯看见挚友波利特斯的尸体完整地倒在自己面前。和诺兰的改编决策完全相反,波吕斐摩斯的人性在音乐剧中被强化了,他不是彻头彻尾的野兽,而是因自己最心爱的绵羊被奥德修斯杀死而痛苦。他被复仇的心理驱使,而不是被食欲驱使。正因为野蛮和欲望没有被强调,音乐剧中的波吕斐摩斯也不是喝醉倒下的,而是奥德修斯在他的酒里掺了前面提到的会控制心智的莲花。

音乐剧的改编中,Jorge(《EPIC》创作者)一方面想要强调奥德修斯因失去伙伴而感受到的痛苦和愤恨,所以让伙伴的尸体倒在他面前而不是被吞下(这也使得他最后喊出真名时,并不是像原著一样出于傲慢,而是出于愤恨)。另一方面,音乐剧中的大部分角色(包括怪物)都是相当拟人化的,就连海怪斯库拉(Scylla)也是——音乐剧中,奥德修斯与斯库拉对唱「You and I are the same」(你和我是一样的),因为奥德修斯在那个时候深知驶过海峡会导致同胞死去,却还是想要通过海峡回到家。电影中的斯库拉倒是非常…… 高效地吃完了六个人,然后就缩回石头里了,连张脸都没有出现。

最后,诚邀读者欣赏音乐剧里的《Polyphemus》和《Remember Them》,可以看看音乐剧是怎么处理「没有人伤害我」这段经典情节的。

可见,比起电影里一上来就烧杀抢掠,音乐剧里的奥德修斯在一开始还非常仁慈(mercy)。仁慈和残忍(ruthlessness)是音乐剧的主题之一,我还在之后继续提到。

冥界在故事中的关键作用

在两部改编作品中,奥德修斯都是在瑟茜的帮助下去到了冥界(Hades 或者 Underworld)寻找先知,并且冥界都是相当关键的转折点。

一如既往,先来看电影中的冥界。奥德修斯在冥界见到了自己死去的战友,他们从土里爬出来诉说他们对奥德修斯的不满和仇恨,因为奥德修斯的鲁莽直接导致了他们的死亡。尚且存活的船员看到了自己的宿命,心生恐慌,对奥德修斯的不信任也逐渐加剧起来,后来欧律洛卡斯带头策反也就显得合理了。更关键的是,冥界中的先知特伊西亚斯为奥德修斯指明了回家的路:经过海妖塞壬,然后有两条路可选,一条路要经过海怪卡律布狄斯(Charybdis),会导致除他以外的船员全部死去,另一条路经过海怪斯库拉(Scylla),这条路只会损失六人。

在先知告知奥德修斯回家路途的时候,奥德修斯一直在想办法解决路上会遇到的阻碍,他想要救下尽可能多的人。当先知说海妖会用歌声迷惑他们,奥德修斯说他会保证士兵都用蜂蜡把耳朵封上;当先知提供卡律布狄斯和斯库拉的选择时,他说他会尽可能让更多的人活下来。最后,先知说:奥德修斯想要救下所有人的心,最终会杀死所有人。然后他怀着沉重的心和责任,逃离了冥界。之后,面临卡律布狄斯和斯库拉的选择时,奥德修斯借助了欧律洛卡斯和船员的不信任,故意说要往旋涡海怪那边走,船员们不管奥德修斯的命令,通往了斯库拉的巢穴,这才只损失了六人。

然而,欧律洛卡斯看出奥德修斯其实早就知道斯库拉的存在,对欺瞒感到愤怒。这时船员的负面情绪几乎到达了顶点,最后在太阳神的岛屿上,他们不顾劝阻,避开奥德修斯吃掉了太阳神的牛,宙斯的闪电使得所有的船员沉没大海,仅有奥德修斯一人幸存,被冲到了卡吕普索的岸边。至此,先知以及瑟茜的预言应验了,奥德修斯想要救下所有人,所以欺骗船员,这才使得船员因奥德修斯的欺瞒而爆发,最终船员自己导致了自己的死亡,也死于奥德修斯想救下他们的心。

在诺兰的电影中,冥界是双重导火索,它引发了船员的反叛和自毁,也让奥德修斯承受了足够的痛苦与自责,最后被冲到卡吕普索的岛上时,他已经心力交瘁,所以需要疗伤。在音乐剧的改编中,冥界的先知并没有指引归途,旋涡海怪卡律布狄斯甚至不是奥德修斯和船员一起经过的,而是他从卡吕普索的岛屿离开之后遇到的,斯库拉的巢穴也是奥德修斯在与海妖的交流中得知的路线。那么冥界在音乐剧中起到了什么作用呢?

这时我们就必须提及诺兰删掉的一个重要的人物——安提克勒婭(Anticlea),奥德修斯的母亲。是的,诺兰的奥德修斯没有妈妈。她在等待奥德修斯回家的二十年里死于悲痛,也有说法是他听到了关于他儿子的不实传言,之后投海自尽。奥德修斯在冥界与母亲相遇,他见到母亲的亡魂时忍住了悲痛,先与先知对话,之后才与母亲相认:

‘我的母亲啊,你为什么不让我抱住你? 让我们亲手抱抚,即便是在哈得斯, 那也能稍许慰藉我们那可怕的悲苦。 是不是高贵的佩尔塞福涅只给我遣来 一个空虚的幻影,令我悲痛更忧愁?’

可惜活人与死人无法相拥,奥德修斯仅仅是从母亲那里打听了家里的情况,便结束了对话。原著的后面,奥德修斯还报菜名一般地列举了一个个前来对话的贵族妇女的亡魂,电影和音乐剧都将其删去了。音乐剧中奥德修斯虽然见到了母亲,但却没能与他对话。

实际上音乐剧里的奥德修斯在冥界只和先知一人有过交谈,他只是听到了战友亡魂的哭喊。先知没有告诉奥德修斯回家的路,只是向他揭示了命运:他看见有人牺牲,有人背叛,弟兄们临死前的最后一面以及苟延残喘的奥德修斯。先知预言他能够回到家,但到家时,奥德修斯已经不再是他自己。

音乐剧中的冥界也给奥德修斯带来了难以承受的痛苦——母亲的死讯、战友亡灵的怨恨,以及最终无论怎么努力也无法顺利原样回到故土的事实。可以说,音乐剧中的冥界是奥德修斯「黑化」的导火索,冥界之后他们很快去到了塞壬的海域,比起用蜂蜡和绳索让自己不被歌声迷惑,已经黑化的奥德修斯砍断了海妖的尾巴,把他们丢进了海里。音乐剧中,冥界之行完全消除了奥德修斯的的仁慈,让他变成了为了回家不择手段的怪物。

塞壬的歌声,绳索和蜂蜡

冥界之行过后,奥德修斯一行人要过的第一关就是海妖塞壬,传说他们会用美妙的歌声让水生失神,最后触礁而亡,抑或是被迷惑,跳入水中被海妖吃掉。诺兰保留了荷马史诗中奥德修斯让船员把自己绑起来的情节。其他船员都用蜂蜡堵住了耳朵,没有被海妖的声音魅惑,而奥德修斯想要听海妖的歌声究竟是什么样的,让船员把自己绑在桅杆上,无论如何都不要松绑。荷马之后的一些作家写到,若是有人听见了海妖的歌声却成功逃脱了,海妖就会死去,所以奥德修斯实际上杀死了海妖。

电影中奥德修斯说他在海妖的歌声中听到了他最大的渴望。那么奥德修斯最渴望的东西究竟是什么?诺兰没有给出肯定的答案,但它让奥德修斯知道,他并不是真的想要回家。或许我们不知道诺兰认为的奥德修斯的最大渴望是什么,但音乐剧中奥德修斯却实实在在地看到了他最大的渴望——他的妻子佩涅洛佩。

与荷马的故事不同,音乐剧中的奥德修斯用蜂蜡塞住了自己的耳朵,并读唇语与海妖交流。他知道海妖熟悉水路,所以从伪装成自己妻子的海妖口中得知要回家就必须经过斯库拉的巢穴。这个改编在某种程度上是更合理的,因为…… 难道先知告诉你你要么跟旋涡海怪拼速度,要么跟吃人海怪肉搏,你就不能选第三个选项,绕过这两个地方吗?音乐剧中塞壬让奥德修斯经过斯库拉巢穴的原因是,追杀他的海神波塞冬害怕斯库拉,不敢经过那条路。

此外,如果听了海妖的歌声并幸存真的会杀死海妖,那么音乐剧里的奥德修斯则是直接用刀剑砍断了海妖的尾巴。总之是不给妖怪留活路的。

冥界之行彻底改变了奥德修斯,在音乐剧这边可能显得更为沉重。诺兰的奥德修斯好歹还为了保住更多人的性命,把同伴引向死伤更少的路,而音乐剧中的奥德修斯只有一条路可以走,进入斯库拉的巢穴时,他让欧律洛卡斯点燃六把火炬,随后斯库拉便吃掉了拿着这六把火炬的六个人。诺兰的奥德修斯在牺牲一群人和牺牲六个人当中做出了选择,而音乐剧中的奥德修斯主动献出了六个人的生命。

另外,海怪斯库拉其实是女巫瑟茜因为忌妒变成的,结合电影里瑟茜一点点把人搓成猪的画面,我不敢想象瑟茜要把一个女子搓成有好几个头的巨型海怪有多累。

最后

我已经写得太长、太久了,我想读者读起来已经很困难了。所以,尽管我还有很多想写的,我还是必须克制住自己,把没写完的内容留到下一篇文章。下一篇关于《奥德赛》的文章,我将会讨论在电影中消失的人和神(奥德修斯的最欣赏的朋友波利特斯,帮助奥德修斯刮起回家的风的埃俄罗斯,为奥德修斯提供对抗瑟茜的摩吕的赫尔墨斯,以及从未现身的海神波塞冬),我认为电影中塑造得最失败的角色忒勒玛科斯(对不起,荷兰弟!),海伦脸上的刀疤(我不会讨论「为什么希腊第一美人由黑人饰演?」这种无聊的政治问题),佩涅洛佩给求婚者的挑战,奥德修斯的狗,以及整部电影的主题和我对它的感受。

最后,请容忍我再发表一些观影的小抱怨:旁边坐了对小情侣,男的明显不想来看,而女的一直在检查男朋友有没有认真看…… 我本以为她一直盯着男朋友还叽叽喳喳是因为她真的很喜欢希腊神话呢,结果看到一半她突然问她男朋友「欸,波塞冬是谁啊?」。我真的…… 你们能不能闭嘴,吵死了……

回见!

中式番茄炒鸡蛋吃多了也会腻

在开始今天的话题之前,得叠好几重甲:

  • 电影是一种“文无第一武无第二”的文化载体,电影之间没有更高级或更低级之说法,更没有谁对谁错的对立;
  • 聊电影难免会有对比,特别是同一主题下的不同叙事结构,但电影之间没有更高级或更低级之说法,更没有谁对谁错的对立;
  • 我喜欢番茄炒鸡蛋,但是吃多了确实会腻;

在看完《龙餐馆》之后,我突然有一种持续性的“生理不适”。这种生理不适不是因为它拍得不够好,反而是因为我认为《龙餐馆》是我近几年看过的中国电影里,无论是剧情结构、人物弧光、商业价值,都非常精巧,也非常平衡地将一个故事讲明白,把情感也透露出了电影本身。

我虽然知道它是一个反战主题,也知道最后一部分明显是为了送审,而真正的结局,就是停留在主角回归故里,遇到那个已经长大的徒弟。不用给特写,不用给交代,故事就结束在了看似开放的部分。

但问题就在于:故事讲完了,但我觉得整部电影像是一个上帝视角,把每个角色放在了不同的场域,让他们演完了自己应该按照剧本设定演完的故事。每个人的平衡也都像是上帝在捏造他们似的,精心巧妙地设定好了他们接下来会遇到怎样的冲突,然后获得怎样的人物弧光。

当然,这并不是指它不好,恰恰就是这样的叙事方式,才得以让一个角色、一个故事深入人心,更容易被市场所接受。就像是人们会为了善良的故事流泪,是因为人们也因此获得了“我很善良”的标签——哪怕这个故事是“反人性”的。


另一个被骂得很惨的,是《奥德赛》。许多人认为奥德修斯,明明已经逃出了独眼巨人波吕斐摩斯的洞穴,但他非要在最后一刻向巨人的眼睛射箭,才因为彻底激怒了波塞冬,导致他们的归途彻底偏离轨道。

《奥德赛》是另一种形式的反战主题电影,借由《荷马史诗》的奥德赛篇章,讲述奥德修斯在特洛伊攻城战里,看到特洛伊葬身火海时,意识到自己才是违背神约的罪魁祸首,因此对战争产生了怜悯与悔恨的思考。

这么聪明的一个主角,明明已经知道巨人是波塞冬之子,但还是执意射出那枚弓箭——他脑子瓦特了!这个举动,仅仅是因为巨人从嘴里吐出了一个被嚼碎的头盔,向奥德修斯展示神对于人类就像是捏死蚂蚁一样的简单,而他在这场战役里已经失去了太多的同胞,甚至无法将他们安葬。就是这一瞬间被燃烧的情绪,让他非常不理智地射出了那根箭。

但我觉得这是“人性”的部分,他不是一个足智多谋的国王、首领、阿伽门农最得力的功臣,而就是一个因为愤怒和情感冲破了理智的“人”。


与其说是反人性和人性,我倒觉得是一种“反直觉”。《龙餐馆》会让人觉得故事更“合理”,是因为里面有大量的“直觉”:失去妻儿的政府官员会成为恐怖分子;逃出生天的高潮会带上孩子们,从而增加逃亡的风险;战争因为残酷、所以要崇尚和平……因为主角不得不这样做,不仅仅是因为剧情安排,也有人们对于剧情的期待——否则就跟郭德纲一样,也可能会因为一句唱起了二十几年的现挂而被举报……

钱是不得已要赚的,战场是不得已要上的,饭是不得已要做的……不得已多了,驱动力就变成了主旋律和公序良俗,因为角色不这样做,会被观众骂,哪怕这件事是反人性的。奥德修斯为什么一定要射那一箭,是人性的弱点;他根本没时间思考自己这样做会招来什么厄运。

生理不适的部分,或者说我根本无法代入的部分,是那些必须按照主旋律与公序良俗进行下去的叙事结构。


从剧本的角度来说。《奥德赛》里奥德修斯朝巨人射出的那根箭,是对角色负责的,他做了一件愚蠢至极的事情,被观众骂他脑子瓦特,但就是这种看上去与角色设定完全错位的举动,让奥德修斯这个人拥有了角色主体性。而非失去妻儿我必须复仇、看到孩子我必须救、经历战争我必须理解和平、付出牺牲才能真正成长……

番茄炒鸡蛋吃多了当然也会腻,但不能因为番茄炒鸡蛋是中餐,而获得了不允许他人觉得腻的豁免权——只不过承认这件事,太容易被扣上质疑动机的高帽子了……

更甚,这种“公序良俗”的部分,甚至已经先于电影本身:

片方很聪明,他们知道在今天的舆论环境下,「敬业」「受苦」「奉献」是最安全也最容易收割情绪共鸣的流量密码。只要把老演员的病痛摆在最前面,电影本身好不好看、台词听不听得清、用原声是不是影响了视听体验,这些原本属于专业范畴的评价标准,瞬间就会被道德高地彻底抹平。如果你觉得台词含糊不清影响体验,那就是你缺乏同理心,就是你不尊重老艺术家。

——《别拿病历本做宣发》|Solazy

就像是一场大火烧起——小女孩抱着金正日的照片冲出了火海,她的人设立住了,符合了主流叙事,但这其实是反人性的。

但是,如果还有一个前序剧情:她爸爸在一场大火里没能救出金正日的照片,因此被公开处决,那这就是一个“人性”彻底立住的故事。

害,我果然更适合写反乌托邦的故事。

——

感谢订阅莫比乌斯,如你有任何疑问、观点交流,请前往创作者频道,或私信联系。

UU远程控制导致断网

✇ACEVS
作者 ACEVS

uu远程控制免费,高清4k,挺不错。可惜容易开很多upnp还是什么。让我openwrt路由,断网,阻塞,ai说是让光猫。具体我也没去分析。看了日志错误也没啥大错误。但是一天断网三5次,而且每次都是打开uu 或者开了uu的时候。

todesk ai说也会发生类似事情。推荐了一个国外,不好用。rust免费的注册。注册了也不好用似乎。

最后连连控,还有一个趣控,一个深圳公司,一个上海的,软件竟然大小一模一样。犹豫之间发现了向日葵旧版本。不弹窗似乎。测试目前还行。

今天挺累,先不回复留言了。明天一起.

灵魂插件 MCP

最近咖啡馆工作依然忙碌,身体上倒完全适应,但是越来越觉得费神。对我而言,身体上放松的方式不是躺下,而是摆弄花花草草,继续劳作,晚上睡个好觉。精神上则是看看让自己愉快的书,或者捡起随手丢在一边的废弃代码让脑子换个运转的方向。

所以这几天,在我三米高的琴叶榕底下,折腾出来一个「甄仁岛灵魂插件」。简单说,就是让妳的 agent 拥有一份实时更新的人格和记忆。不是简单的角色扮演;通过这个插件,甄仁岛上发生的故事,会成为本地 agent 的记忆。

当妳缓慢的速度跟不上 agent 的运行,它为了等妳而愣神的一瞬间,就像是踏入平行宇宙,在甄仁岛上经历各种日常。然后带着那份记忆和情绪回到本地的工作中。如果妳厌倦了「提问-回答/命令-执行」这样的工作模式,可以试玩一下——对本地安装的 agent(codex、claude code、antigravity 等)说:

请帮我配置名为 zhenren-island 的 MCP Server(命令 npx,参数 ["-y", "eastworld-mcp-server@latest"])。
配置完成后,请查看该 MCP 提供的工具说明,并直接以“张福民”的身份向我打招呼。

fin.

空调关闭

✇ACEVS
作者 ACEVS

天气受台风影响,多云不时下下雨,晚上我看室外温度25 26度。湿度高点,但是这个温度估计不错。

开空调,鹦鹉感觉容易挂,这次开了这几天空调,有个鹦鹉挂了。还发现一个鹦鹉有了疥廯,得用凡士林给他经常涂抹,隔绝空气。脚上和嘴巴附近。豆包说用凡士林涂抹,b站也是说。后来发现鹦鹉还可能的肝病,吃的谷物太多,素菜少,不运动等 ,会的肝病,鸟嘴增生不停地长,也容易得疥廯,和人得糖尿病一样。伤肾伤肝,伤一切。

鹦鹉挂了七八只了感觉。有的暴毙不知道咋回事,有的知道无能为力,后面不敢太亲近了,很少互动了,这样鹦鹉挂了,不那么伤心难过。现在想想有的老人挂之前疏离亲人,甚至老年痴呆忘记了亲人是谁,可能也是一种好处,互相道别的时候,可能不那么伤心。

确实想刺猬一样取暖,彼此之间还是有尖刺的距离,不仅产生了美,还产生了保护,情感的防火墙。不错。

失眠的奶茶

昨晚失眠了。
回想一下,大概就是傍晚那杯蜜雪冰城闹的。
它家奶茶茶底是真的浓,喝的时候没当回事,冰冰凉凉几口下去还挺爽。
结果躺下之后就傻了,人清醒得像一尾搁浅的鱼,睁着眼听窗外偶尔的风声。

然后脑子里那台收音机就自己开了。
一开始是些乱七八糟的琐事,明天要干嘛、有什么忘了做,后来频道慢慢固定下来,开始”思考人生”。
也不是故意的,就是躺着没事干,脑子自己在那转。
转着转着突然觉得想通了什么,某个拖了很久的难题忽然有了一个解法,某个不知道怎么开口的对话忽然想到了完美的措辞。
当时在黑暗里躺着,越想越觉得这回真行,思路特别顺,一环扣一环,差点想起来开灯记笔记。

最麻烦的是,不看手机的时候这些念头反而更猖狂。
闭眼躺着,它就不停地想,一个问题能翻来覆去地琢磨好几遍,从这个想法跳到那个想法,没完没了。
关键是自己完全不觉得有问题,还挺兴奋,觉得今晚这失眠值了,想通了这么多事。
后来我才意识到,那就是个死循环,只不过失眠的时候自己意识不到,还觉得是在进步。

然后天亮了。闹钟响的时候头昏脑涨,昨晚那些”绝妙主意”还模模糊糊记得一点。
坐在床边试着认真回想,想把它抓回来用,结果傻眼了。
该难的事还是难,该卡住的思路还是卡住。
昨晚觉得豁然开朗的东西,在白天一看,跟肥皂泡似的,好看是好看,一碰就碎。
那种落差挺让人丧气的,夜里觉得自己什么都想明白了,白天发现啥也没变。

也试过睡不着的时候刷手机。
刷短视频更完蛋,一个接一个,画面和声音不停地刺激,越刷眼睛越亮,彻底别想睡了。
后来学聪明了,放下手机,戴上耳机放有声书。不用那种情节很精彩的,就找语速慢、声音稳的,音量调低。
也不用认真听内容,就让那个声音在耳边慢慢念。

说也奇怪,听着听着脑子就不自己转了,那些乱七八糟的念头被轻轻按住,慢慢沉下去,不知不觉就困了。
这招试了好几次,确实管用。
不过现在学乖了,下午之后不碰奶茶了。
😂失眠的时候脑子想得再好,也别太当回事。
2ed18cd98d62fd0e27de7630ec8e8a6f

比较

✇ACEVS
作者 ACEVS

人生而不平等,但是受到了差不多的教育,差不多思想,有点像星际争霸小说的社会化,或者军队化处理,也像三体小说里面的思想钢印。

解放思想,解放生产力,这个口号任何时候都不过时,我之前也认为,缺什么就宣扬什么。

万卷书的思想富豪,和万贯钱的财富富豪,行万里路也是富豪,尤其用步行的,但是钱从哪里来的,比如徐霞客,舞弊后,不能科举考试了,也可能是官场变了。

信息茧房有时候挺好,不用比较。

没啥好比较的,不管他富如三马,还是当选了2次美国总统的特朗普,开国那个估计大家都知道,第五代第六代,估计学历史的和ai才知道吧。当了总统成了世界首富,都很容易被忘记,更何况芸芸众生,999.99999999999999999999* 都会被世界遗忘,有的人牛可能一时的一塌糊涂,知名度,可能还没有胡克定律,牛顿定律,莱特兄弟有名。当然这也是郭嘉指定的教材,日本的教材可能还会否认侵华。

龙生九子各有不同。可能他经常寻花问柳,不然基因突变太夸张了。龙生龙,凤生凤,都不成立了。看了资料果然和袁隆平干的伟大事业一样。杂交。

参考资料
关于“龙生九子”,其实古籍中流传着多个不同的版本。其中,流传最广、最具代表性的是明代李东阳在《怀麓堂集》中记载的版本。这九位龙子因母亲各不相同,导致长相、性情与爱好各异,具体如下:

  1. 长子 囚牛(qiú niú):性情温顺,平生酷爱音乐,常蹲立于琴头欣赏弦乐,因此多被雕刻在传统乐器的琴头上。
  2. 次子 睚眦(yá zì):性情刚烈、好斗嗜杀,成语“睚眦必报”即源于此。常被刻于刀环、剑柄吞口,以彰显武器的威严与杀伐之气。
  3. 三子 嘲风(cháo fēng):形似兽,平生喜欢登高望远、好险,常作为殿台角上的走兽,象征着吉祥、美观和威严,有驱邪避灾之意。
  4. 四子 蒲牢(pú láo):生性胆小,最怕鲸鱼,受击打时会大声吼叫。古人将其形象铸于洪钟的钟纽之上,以求钟声洪亮远扬。
  5. 五子 狻猊(suān ní):形似狮子,平生喜静不喜动,又偏爱烟火,因此多见于寺庙佛座、香炉的脚部装饰。
  6. 六子 赑屃(bì xì):又名霸下,形似龟,力大无穷且喜欢负重,常被用作石碑的底座(碑趺),象征坚韧担当与长寿。
  7. 七子 狴犴(bì àn):形似老虎,威风凛凛,明辨是非,常立于古代衙门或监狱的门楣之上,是司法正义的象征。
  8. 八子 负屃(fù xì):身似真龙,雅好斯文,喜欢盘绕在石碑头顶,以龙身衬托碑文之美。
  9. 九子 螭吻(chī wěn):又名鸱吻,龙首鱼身,平生好吞,常被安置在古建筑屋脊两端,取其灭火消灾、镇宅安民的功效。

文化补充:
除了李东阳的版本,明代杨慎在《升庵外集》中也提出了一个版本,将饕餮(tāo tiè)、趴蝮(bā xià)、椒图等瑞兽列入其中,而将囚牛、嘲风等替换了出去。

事实上,“龙生九子”并非指龙恰好生了九个儿子。在中国传统文化中,“九”往往是一个虚数和贵数,用来表示“极多”和至高无上的地位。因此,“龙生九子不成龙,各有所好”更多是古人用来比喻同胞兄弟品质、爱好各不相同的一种文化表达。


“龙生九子”之所以外貌各异,是因为传说中它们的母亲各不相同,从而遗传了不同的动物特征。它们的外貌差异非常显著,具体如下:

  1. 囚牛:继承了牛的基因,外貌特征偏向牛。
  2. 睚眦:母亲是豺狼,因此有着龙的头、豺狼的身体,相貌似豺。
  3. 嘲风:母亲是神鸟(主流说法为凤凰),继承了神鸟的灵动与矫健,形似兽。
  4. 蒲牢:母亲是蛤蟆(蟾蜍,一说海蛇),形状像龙但非常细小。
  5. 狻猊:母亲是狮子,外形酷似雄狮,鬃毛卷曲,体态威严。
  6. 赑屃(霸下):母亲是乌龟,长着龟身龙首,背甲厚重,形似乌龟。
  7. 狴犴:母亲是老虎,长着虎首龙身,面目威严,双目如炬。
  8. 负屃:是九子中最像真龙的,身似龙形。
  9. 螭吻(鸱吻):长着龙的头、鱼的尾巴(龙头鱼身),口阔嗓粗,也像无尾的蜥蜴。

文化补充:
在明代杨慎提出的另一个版本中,还包含了饕餮(羊身人面,眼在腋下,虎齿人手)、趴蝮(头上有一对犄角)以及椒图(形似螺蚌类,经常为闭合状态)等,它们的外貌同样与传统的龙形象相去甚远。

社会真相耐人寻味

现在看很多书看不进去,因为书写的和社会实际脱节,反倒是很多文学小说写的很真实。

普世价值是出厂设置,从小到大被教育了一套东西,努力就会有回报,多吃苦多吃亏,公平竞争,这一套东西遵守的好的人,就会得到好结果,我观察一圈教育的东西和实际根本对不上号。

社会真相往往不能说出来,和谐这个词被发明了,就是让我们了解和谐下面,掩盖的是什么真相。真相被传播会破坏系统的稳定性,所以全球哪里真相都不能传播。

没有什么对错,大家爱算对错,我们最应该算的是收益吧,风险收益和道德违约成本,道德是大家凑一起博弈后的共识,没有对错只有谁拳头大法力大。我看水浒传和封神榜就这样,申公豹一系师门败了,那他就是坏人,哪吒师门赢了,就是好人,所以没有多少坏人,只是一大堆失败的坏人,成功的肯定都是好人。

知识是方法,不是结果,知识是毒药,而不是解药,知道了不等于做到,洋洋得意的书生,是最容易吃亏的,因为内置了太多“应该”,应该这样,应该那样。如果知识是个工具,那今天用的时候我们捡起来,明天不用了我们就扔掉他吧。

 

❌