Koi.rest:看看鱼,找回内心的平衡
文章摘要
Koi.rest 是一个只做一件事的网页:打开后是一方虚拟的锦鲤池,你可以什么都不做,就看着鱼游来游去。欢迎页写着”欢迎来到池塘,一个找回平衡的安静之所”。页面上有一句关键说明:“你看到的锦鲤,是和你一起在池塘边的其他访客。” 你可以想待多久就待多久,也可以设一个 10、15、30、60 分钟或自定义的计时器。设置面板很简单:声音(可以一键全部静音);视觉(一个”焦散光效”开关,注明”关掉可能提升帧率”,以及”我想看到其他人”开关);计时器。页脚署名是 Paul Glushak,网名 hxii。
作者的自述是这个项目真正的内核。 他在 Show HN 帖子和站内”关于这片池塘”页面写道:”我叫 Paul,是个开发者,是个探索者,我有 ADHD。从八月初开始,我也失业了。”失业,加上过去一年发生的种种事情,给他带来了巨大的压力。他和家人一直想在阳台上做一个禅意花园,还没做完,于是他冒出一个念头:做一个人人都能用的虚拟禅意花园。
“我让完美成了’足够好’的敌人。” 他坦白这个想法拖了很久,主要是因为”我他妈完全不知道怎么做,我不会 JavaScript,现在也没有精力去学”。于是他”让完美成了足够好的敌人”,一直把想法憋在心里。后来他说了句”去他的”,用 AI 做出了自己真正想做的东西。”我意识到我要的不是’完美’,我要的是’足够好’。我调整、增加、删除、画图、查资料、提问、测试……只是写代码的不是我。”
把想法从脑子里放到互联网上。 他写道,这个想法以前一直占据着他的大脑,现在它住在互联网上,供别人享用。”是的,完全靠自己做出一样东西有某种高贵之处,但一个只待在我脑子里的想法有什么用呢?”他称它为”一个古怪、小小的、安静的锦鲤池”,”一个充满热情的傻项目”,”互联网上一个小角落,让陌生人一起安静地看鱼”。他最后说:”我希望这片池塘能像帮助我一样帮助你。”站内的关于页面还加了一句附言:”是的,我仍在找工作!”
多人机制的实现方式。 作者在评论里解释了技术细节:池塘里始终有三条”基础”锦鲤,这样即使只有一个人来访、没有其他人在线,也”永远不会孤单”;每当有人加入,在线计数加一,本地就会多生成一条锦鲤。他原本想同步每条鱼的游动轨迹,这次先简化了,以后可能会做。网站部署在 Railway 上,HN 流量涌入后后端开始返回”429 Too Many Requests”。
HN 评论精华
60 条评论。一部分人真诚地被打动,留下了鼓励和感谢;另一部分讨论很快转向了”氛围编程”(vibe coding):不少人遇到严重卡顿,由此引发了一场关于”不懂代码用 AI 做东西,出了问题能不能自己排查”的争论。
先是温暖的一面。 suzukivenom 说:”谢谢!今天过得真的很糟。”henrydoughty 写道:”在这里坐了一会儿。确实需要这个。谢谢你把它放出来,而不是留在脑子里。”Coeur 给了作者”一个大大的虚拟拥抱”。thoughtpeddler 说自己也深受完美主义困扰,”很高兴这次’足够好’赢了,我们都因此受益”。natnatenathan 说:”我理解你分享这个时的忐忑,毕竟’氛围编程’这个词常被用来贬低人。我喜欢你做的东西。”skibz 注意到作者用 Voronoi 图来近似水下焦散光效,觉得很妙。
“数字第三空间”。 jeromechoo 说他特别着迷于这种社交互动被极度限制的”数字第三空间”,比如 Neal 做的 cursor camp,”我想这和它在现实生活中不可能发生有关”。他一开始怀疑”锦鲤就是其他访客”的说法是真是假,因为他只看到三条鱼,作者解释了三条基础锦鲤的设定。applfanboysbgon 说他看了 10 分钟,池子里有 10 条左右锦鲤,不断有鱼突然出现或消失,”就像有人加入或离开一样”。
锦鲤凭空闪现太出戏。 p1necone 建议新来的锦鲤从屏幕外游进来,离开的锦鲤游出屏幕再消失。dolebirchwood 说得更直白:他根本没读介绍文字,看到”Enter”按钮就点了,所以一开始以为这就是个粗制滥造的东西;进去后池子里塞满了鱼,完全不禅意,鱼还不停闪现,”作者不应该假设人们会读任何东西”。pozol 也说鱼突然出现会把人拉出禅定状态。marcuskaz 说”锦鲤太多反而让人紧张(还很卡)”,想要一个没有多人模式、只有禅意的版本;mcint 发现鱼的数量在首次加载时就固定了,他开了 30 分钟一直只有 3 条鱼,重新打开后变成了三十几条,希望能自己选择热闹程度。作者都一一记下,说会考虑用淡入淡出或缩放来处理锦鲤的进出,并加上”不看其他人”的选项。
卡顿引出的氛围编程之争。 hatthew 说页面只有 3 帧左右,efilife 回了一句”看起来是’氛围编程’的问题”。作者说他在两台桌面电脑、两个浏览器和一部手机上都测过,没有任何卡顿,所以之前没法发现这个问题。efilife 不依不饶:”你不知道它为什么这么卡,因为代码不是你写的。你现在得去逆向工程’你自己的代码’。这就是氛围编程的问题。”Jtarii 讽刺说”你可以让 ChatGPT 提高一下鱼动画的帧率”,ecto 反击说”你可以让它教教你礼貌,以及人类为什么需要礼貌”。
applfanboysbgon 的批评最有代表性。他说如果你懂自己在做什么,本可以推理出代码的行为,这就是”试错式氛围编程”的危险;他自己关掉标签页,是因为音频过几分钟就会莫名中断。他希望作者能从中意识到”LLM 不仅不完美,而且只有当你对’足够好’的标准特别低时它才算足够好”,并以此为动力多学一点。nullify88 认为这太苛刻了:即便在 AI 出现之前,软件和游戏也常常在一台电脑上运行良好、在另一台上表现很差,硬件、固件和软件组合的差异太多,谁也没法保证处处一致。applfanboysbgon 回应说,他真正在意的是作者说”我不可能发现这个问题”,这是一种习得性无助;LLM 经常产出明显无法扩展的粗糙代码,而懂编程的人能在很多问题出现之前就解决它们,”编程远没有被解决”。solarkraft 折中地说,”不可能”确实说得太满,多测总是可以的,但就算多测也可能漏掉,这和用不用 AI 完全无关。
lionkor 用一种”欢迎入行”的口吻给出了具体建议:他的笔记本有 96 GB 内存和锐龙 AI 9 HX PRO 370,照样只有 3 帧。在一两台设备上测试是不够的,关键在浏览器性能和网络延迟;你需要跨浏览器测试,评估帧时间、CPU 和 GPU 负载,发现某个浏览器(比如 Firefox)不够快时,就用它的性能分析器找出慢在哪里。”LLM 大概只会去猜,但你必须去测量。欢迎来到软件工程。”hatthew 补充说他用的是较新的 Mac 上的 Firefox,卡顿发生在鱼多到盖满整个屏幕、看不到池底的时候。作者的态度一直很平和:”氛围编程不一定意味着性能差……我不是说’这是你的问题’,而是我目前还不知道卡顿在什么情况下出现。”
要不要加互动? dylanhouli、samrj12、lakeffect 都希望能和池塘互动,比如点击荷叶、投喂鱼食、让水面泛起涟漪。作者说他的初衷就是完全不设互动:”根据我的经验,我们总是在做’点什么’,而这是一种反过来的方式,让你什么都不做。”但他也承认一些微交互可能有用,就像”捏泡泡纸”那样。applfanboysbgon 认为离线的池塘不需要互动,但在线的版本加一点点互动能增添人情味,让人感觉到能和其他人以某种微小的方式互动。
其他有意思的反馈。 rickydroll 说他也遇到了两三秒一帧的情况,但意外发现自己其实在听声音而没看鱼,”这对我的 ADHD 大脑来说极其舒缓”,建议如果音频是本地生成的,干脆单独做一个纯音频页面。同为 ADHD 的 Paradigm2020 从 ADHD 用户的角度提了几条细致的 UX 建议:他点了 15 分钟计时后一直在等,没意识到还要按 Enter;进去后不确定计时器有没有在走,希望先显示几秒倒计时再淡出;他还建议参考某个像素风应用的模式,免费提供基础版,一次性付费解锁不同背景和鱼的样式。rhplus 想起了 Windows 95 时代经典的 Serene Screen”海洋水族馆”屏保,bosunknows 想起 2008 年的 iOS 付费榜第一名应用 Koi Pond,”那时可以泼水搅水,太惊艳了”。johnsmith1840 则由此感慨:既然 AI 让网页开发容易多了,我们应该做更多美好的体验,”我一直觉得极简主义部分是为了对抗 bug……我希望我的 SaaS 里也有更多锦鲤游来游去”。
“你其实什么都没做”。 JKCalhoun 说这正是他对氛围编程的感受:用 LLM 做那些他原本懒得做的东西,已经给自己做了半打小工具。DiabloD3 回怼”你根本什么都没做”,并警告在美国和大多数伯尔尼公约国家,机器生成的东西不受版权保护。JKCalhoun 说他不纠结软件算不算他创造的,”没有 Claude、Gemini 和我,它就不会存在”,”就算是一群小精灵趁我睡觉时按我的规格写的软件,我也无所谓”,”我从来不喜欢工作中通水管的部分,我只想要干净的自来水”。fxwin 认为大多数人不完全属于”只在乎结果”或”只在乎过程”的哪一派:工作时或做小工具时在乎结果,学新语言或做 Advent of Code 这类题目时在乎过程。JKCalhoun 同意这更像一个光谱。