最近在关注
Golda
,从 ch0ccyra1n 写的 Issues 来看,她近期并不打算推进太多功能开发,更多是在做各个平台的发包和新 Fork 落地的工作,还有清理 Hugo 的某些遗留问题(比如 Hugo 的传递依赖太多导致不太容易打包到 Guix 的
问题
)。我在帮忙移除了 hugo deploy 之后也找不到什么能帮忙的事情了。
不过我在尝试把博客从 Hugo 迁移到 Golda 的时候,发现我依赖的某些较新的 API 没有被 Golda 实现。我去翻了 Hugo 的更新日志和相关的 commit,发现这些功能有不少是用 Claude 写的,不能拿来用。Hugo 也废弃了某些 API。这样下去,Golda 的 API 会和 Hugo 的变得越来越不容易兼容,但一直盯着 Hugo 更新,等人重新实现他们用大模型生成的功能,也不现实。关于此事,我提了
Issue
,与维护者基本达成一致。不过,这也意味着我要为了消除 LLM 写的代码,耗费好多精力修改我原来的代码。
你说你能理解那些人。你理解有的人想要脱离职场的苦海,求助于这生来就不洁的技术,抱着投机的心态创业,指望做出爆火的产品解救自己的生活。你说你看见了他们的挣扎,却还是在读到他们用 Codex 和 Claude Code 时心头一震。你能要求他们去看看背后发生了什么吗?你说你理解有的人带着一种愚昧无知的上进心,理解他们关注“时代发展方向”,使用这项技术不过是为了自己的职业生涯考虑,是在适应变化。你自己也在做这样的事情,你深知你不在简历上写自己的 Agent 使用经验和上下文管理技巧就会被市场淘汰,你也在适应变化,你也是车轮下的蚂蚁。你与他们唯一的不同是,你非常清楚自己在车轮之下,而不是在风浪之上,你非常清楚自己随时会被轧死,而这不会让你变得更容易在车轮下生存,只会让你更容易陷入绝望。
职场前辈对你随口说的某句话你难以忘却。那天上午你没有工作,给 Golda 提交了代码之后,午餐时聊起此事,但避开了与大模型有关的词句。你说你给开源项目提 PR,前辈说挺好,“可以丰富自己的简历”。你总觉得自己没有背叛那个每天下午坐在电脑面前发现一个个奇迹的孩子,可你总归还是背叛了。那个孩子从来不会想到,追随自己的好奇心和他逐渐锻炼起来的品味,最终导向的仅仅是简历上的一行字,甚至写不进简历,因为没有人在乎你用 SSG 做网站、用 Lisp 写代码、用终端还是 IDE 做开发(神奇的是,他们很在乎你用不用大模型写代码,有没有跟上趋势)。
你说你清楚,你知道,人们只在乎成果。你也认可,你也不在乎某个数学家在证明某个定理时是否感到心潮澎湃。你知道你只需要交付可靠的软件(有很多时候,他们只要求你快速交付能符合短期要求的软件),没人在乎你用的是不是你喜欢的语言,没人在乎你用了什么设计模式,没人在乎你的代码整不整洁(“以前古法编程确实这有这个说法,现在都用 AI 写了啊”)。如果可以,他们真想完全除掉代码,而且他们已经这么干了。如果可以,你也想除掉数学、除掉昆虫、除掉令人大脑萎缩的短视频,而你也已经这么干了。你致力除掉你讨厌的东西,他们致力除掉他们讨厌的东西;你朝你的目标前进,他们朝他们的目标前进。
宇宙没有预装意义。 动物不去创造意义,只是单纯存续;人类可以主动选择创造属于自己的意义。 不是 “我们天生有价值”,而是:意义不是被找到的,是被做出来的。 AI 可以完成任务,但 AI 没有主观感受,没有欲望、痛苦、热爱、遗憾。主观体验这件事,目前只有生物拥有。 你可以不去拔高这个体验,它只是生命附带的产物,不是什么神圣天赋。
(defn make-route
"Returns a function that will only call the handler if the method and path
match the request." [method path handler]
(-> handler
(wrap-response)
(wrap-route-middleware)
(wrap-route-info [(or method :any) (str path)])
(wrap-route-matches method path)))
对谈中,Berkowitz 提及了真理的霸权(Tyranny of Truth)这个概念。他说他之前读到了西塞罗(Cicero)说过的一句话,那句话让他读过之后的几年内都感到内心不安:
I prefer, before heaven, to go astray with Plato, your reverence for whom I know, and admiration for whom I learn from your lips, rather than hold true views with his opponents.
第 95 期周刊
中我提到《独树不成林》主播仲树洗稿抄袭一事。有人发现她发布的好几期播客节目从内容、结构和例证上都与
Old School with Shilo Brooks
等播客十分相似,而舆论发酵后,仲树本人并没有回应,连着发布了三期播客之后,就陷入了一个多月的沉默期。上一节提到的播客是她在那之后发布的第一期播客。
新播客是一起访谈,仲树只是提问者,偶尔提出自己的见解,内容基本都是 Roger Berkowitz 输出的,所以不太可能构成洗稿。不过,先前的洗稿基本上坐实了,她自己也没有为自己开脱。我不能为其他听众说话1,我自己的感想是,这个有洗稿前科的人推出了新的内容,质量很不错,我听完也写了不少感想(见上),但这些内容出自一个“罪人”,所以我现在的心情很复杂。
Do you have an iPhone? A Mac or iPad?
你有 iPhone 吗?一台 Mac 或者 iPad?
Do you order from Amazon, buy groceries from Whole Foods, or use any of their other properties (Prime Video, Twitch, Audible, etc.)? Do you use AWS or any websites that rely on AWS?
你从亚马逊买东西,从 Whole Foods 买杂货,或者用过他们的资产(Prime Video、Twitch、Audible 等)吗?你用 AWS 或者用依赖 AWS 的网站吗?
Do you use GitHub or Office or Windows or Azure or Typescript? How about DuckDuckGo, which uses Bing?
你用 GitHub 或者 Office 或者 Windows 或者 Azure 或者 Typescript 吗?那 DuckDuckGo 呢,它用的是 Bing?
Do you run Linux, which now includes AI-assisted code? Do you use Claude or ChatGPT or any of those?
你运行 Linux 吗?现在它包含 AI 辅助生成的代码了。你用 Claude 或者 ChatGPT 或者其他同类软件吗?
Do you use any Meta social networks (Facebook, Threads, Instagram)?
你用 Meta 的社交网络吗(Facebook、Threads、Instagram)?
Do you write Ruby code? (Which features DHH prominently on its home page.)
你写 Ruby 代码吗?(他们的官网上显眼地放上了 DHH 的大名)
Do you have an Android phone or use Google search or Gmail or write code in Go?
你用 Android 手机或者用 Google 搜索或者 Gmail 或者用 Go 写代码吗?
没有人的技术选择是纯洁的,许多技术的诞生或许就不纯洁。我用 iPhone、Mac 和 iPad;我虽然远离 GitHub,但大半个软件世界的基础设施都依靠 GitHub;我用 Linux,不可能不用;我写 Go 代码,我也真的非常喜欢 Go。我是法西斯主义者吗?我当然不是。
那,那些 LLM 用户就要么无知要么邪恶吗?当然不是。
These days we need all the righteous fury we can rally — and we also need the clarity to know where to focus it.
It’s clear that if you are somebody who already has an effective throughput, then the specifics of the underlying mechanics are uniquely personal and you should continue doing whatever works for you.
LWM(Linux Weekly News)报道了 Scott Jenson 在 KDE 的年度会谈上的讲话。Jenson 在 Apple 和 Google 都有做 UI/UX 设计师的经验。如果读者也接触过 Linux 桌面端或者别的开源桌面软件,会发现自由和开源的桌面端软件中很难找到 UI/UX 设计精良的。Jenson 想要「现代化」开源桌面端。
Jenson 表示开源桌面端的一大问题是,他们在过去一直跟随 Windows 和 macOS 的设计,但事到如今,这些操作系统背后的公司其实也有些摆烂了,他们不再稳定产出值得参考的 UX 设计。我仔细回忆了一下最近 Microsoft 和 Apple 在桌面端做了些什么,我只能想到:
Windows 现在才在快照版本的 File Explorer 里支持 ~
,他们在 Windows 11 才支持 sudo(并且我自己体验下来觉得很难用),还有刚过去不久的 macOS Tahoe 的丑陋 UI 设计和噩梦般的性能消耗(Golden Gate 要好很多的,但依旧没有好的创新)。
I have to talk about AI, and it pisses me off because there’s so many cool things we could be talking about, and AI just sucks up all the oxygen, and it’s all you can talk about.
我不得不提到 AI,我很生气,因为我们明明有很多很酷的事情可以讨论,但 AI 占据了所有的氧气,你能谈的就只有 AI 了。
Jenson 认为开源用户也是在意 UI/UX 体验的。他记得之前向 KDE 提过一个功能,在 macOS 上,在窗口之间拖拽元素时,在鼠标释放之前,被拖拽元素所在的窗口都不会升起来(raised),也就是不会突然挡住要拖过去的那个窗口。窗口是在鼠标释放之后才升起来的。之前 KDE 不是这样,他提出之后,这个功能很快就被一个贡献者实现了。
Subtasks available:
template A meta-template for 'lein new' templates.
plugin A leiningen plugin project template.
default A general project template for libraries.
app An application project template.
todo 是 filter 和 map 返回的惰性序列,如果没有被访问就不会执行 process-data。之后通过 seq 检查 todo 是否非空,如果是的话就 doall,这个函数可以执行惰性序列中所有的元素。外层的 do 用来把多个表达式放在一个形式(form)里,不然会被 if 当作多个参数处理。