2025-07-27 17:55:37
这是猫鱼周刊的第 75 期,本系列每周日更新,主要内容为每周收集内容的分享,同时发布在
博客:阿猫的博客-猫鱼周刊
RSS:猫鱼周刊
邮件订阅:猫鱼周刊
微信公众号:猫兄的和谐号列车
信心花舍,特殊为你开铺。——《信心花舍》陈奕迅
摄于香港赤柱市集。赤柱在香港的南端,远离城市喧嚣,旁边的山上很多别墅,有种度假村的感觉。从市区坐公交车可以直达,车程四十分钟左右;坐在双层大巴的上层右侧,大巴驶出市区,穿过山之后,就可以看到海景。由于比较远,也不是热门的景点,所以人很少,甚至以外国人居多。
这周写了一篇长文 你不是在 vibe coding,而是在十倍速生成屎山,在 2025 年中这个节点体验了一下 Agent Mode 的 AI 编程。简单来说,现在的 AI 编程工具确实能帮助编程小白非常迅速地完成一个像模像样的项目,但同时 vibe coding 的产物基本上就是屎山。
一旦你开始 vibe coding,你就只能 vibe 到底了。
在 vibe coding 十个小时后,我的代码库里出现了几千行我根本看不懂也没法维护的代码,以及一个「好像能用」的产品。说实话,这个项目如果要我自己一边查文档一边写,估计至少要花上一周。但是这在工程上没有太大的意义,完全就是十倍速生成屎山。
比较有意思的是,刚好尤雨溪也发了个推说这个事:
另外,在 AI 陷入瓶颈之后,如果使用者本身对技术不理解,不能帮助 AI 脱困,那只会跟 AI 一起深陷泥潭。所以到头来还是那句话:
AI 决定下限,人决定上限。
一个类似的尝试,作者也是对前端不是很熟悉,而 AI 在一些小众或者说疑难问题上,就是需要人去亲自上手来解决。
这个跟我有点相似的经历让我产生了一个想法:AI 编程真正利好的也许是跨技术栈工作的人,例如精通后端的人去写前端,或者反过来。如果你已经精通了一个技术栈,你的基础知识够扎实,了解解决疑难问题的路径和常用工具,并且有跨技术栈的一点点基础,就不会跟 AI 一块受困。
vibe coding 最近大火,所以经常在网上看到很多简陋的网站,或者项目,这些网站有个特点:样式都很相似、展示为主没什么后端逻辑,或者项目的文档都一股 AI 味。我觉得「AI 味」某种程度上就是「过于完美」,缺乏多样化的个人风格。我一直把编程视为一种「创作」活动(除了在公司做 CRUD 的需求不是很算),被 AI 大举入侵之后如果在编程中完全放弃自己创作,那会索然无味吧。
美团开源的两个评测集,分别是针对信息学奥赛级别算法以及复杂的工程场景的题库。
它的结果也挺有意思,挑一点说说:
首先是 BugFix 场景,AC Rate 最多也只有六七十的水平,在多函数的时候平均居然只有二十多,这解释了我的长文里提到的,如果你圈好上下文(例如你定位到某个可能出问题的函数)再让它去解决,效果会更好。
其次,AC@1(一次解决)也是一个很重要的指标,可以看到目前大多数模型这个指标都不到 50%,说明大多数情况模型都没法很高效地解决问题。从使用上观察,有些聪明的模型会引导你打日志,或者是做单元测试等,这都是比较好的解决方案。
从这个区分度高的评测来看,AI 编程在解决实际问题确实还处在比较「弱智」的水平,好听点说,跟非常初级的程序员相当。所以一天到晚嚷嚷程序员要被 AI 取代的哥们醒醒吧,要么尽早转行,要么好好学吧。
然后是这个能力图谱,可以作为平时 coding「选妃」的参考。跟我印象中的差不多,claude 不错,在复杂问题上选 thinking 模型,简单问题选基础模型。比较意外的是 Gemini-2.5-Pro 居然成绩一般,我还觉得挺好用来着。
在 Chrome 中遇到 SSL 错误时,可以盲打 thisisunsafe
强行打开网页。这个功能还有点小历史,几年间变过几次,看得出开发者不希望它变得流行。
本来可以水一篇 TIL 的,但是太短了,顺手发在这里好了。
影视飓风的「硬核科普」栏目,第一次看,其他几期感觉都比较偏向专业向的视频创作团队。
虽然我对摄影有点了解,但是确实很少在看电影或者视频的时候认真去观察或者去想画面是怎么拍的、用什么镜头拍的。看完这个科普视频反而让我觉得,作为业余,去折腾器材来提高所谓画质或者质感反而是没意义的事,在烧钱这块摄影出了名的无底洞,不如多出门拍来得有用和实惠。
本来没计划这么快就买 Switch 2,但是出了蓝凤凰(Harman Phoenix II),所以决定去香港的海边拍一卷(这个卷没拍完,等拍完洗出来再分享下),所以去了香港。因为赤柱地方很小,所以拍和逛完还剩下不少时间,所以顺便去把 Switch 2 买了。网上看攻略都是去 K11 Musea 的 nsew 买,他们在小红书有账号,而且现在不需要配货了,就挑了这个。地方稍微有点难找,在 B2,一开始看 B2 都是食街以为走错了,结果在比较里面的地方。
虽然说不用配货,但是我顺便买了咚奇刚的游戏,以及 microSD Express 的卡。列一下价格,仅供参考,单位都是 HKD。
另外咚奇刚还送了一把香蕉扇和一副扑克牌周边。招行的掌上生活 app 搜境外,可以领 2000-60 的券,店里可以刷 visa 卡,或者微信支付宝,不支持银联。现场会开机给你确认一下屏幕,帮你贴好膜,开机红要连手柄才会有,所以没必要录像(不是很懂为什么小红书会有这种赛博处女情结?)。购买的体验大概就是这样,店员的服务意识很好,也很友善,我很少在线下买东西,这点给我感觉挺好。过关的话也没什么,提着红袋子大摇大摆从西九龙高铁站走,没人会管你。
到家以后开机,转移数据,这一步稍微有点折腾。首先是要把 Switch 2 和 Switch 都先升级到最新的系统版本,然后要两台机都接入电源才能开始(但实际过程中可以拔掉电源,骗过一开始的检测就行了)。然后中间又有数次需要手机扫 Switch 2 上的码进行登录等等操作,每次都要打开网页输密码,也没有引导你去安装 Switch App。这点很蛋疼,建议参考一下 Steam 的操作,从 Switch App 扫码就可以授权就好了。
花了大概半个小时左右完成数据的转移,终于进入系统,又要下载游戏数据。如果是虚拟游戏卡(电子版),固然要等它下载;如果是 Switch 1 的卡带,需要等待的时间也比较长(估计是下载 Switch 2 的特有文件);如果是 Swtich 2 的卡带(非密钥卡),就稍微快点,也要等几分钟更新。我觉得作为主机,开箱即玩的体验很重要,我不反对电子版游戏,但是体验没有插入卡带就能开玩来得爽快。
吐槽了这么多,我对这个机器还是很满意的,尤其是我打开 Swtich 2 版本的塞尔达传说王国之泪的时候,1080p 60 帧的体验真的很好。在 Switch 上,这个游戏不仅糊还掉帧,体验实在拉跨(虽然这也不是我玩不下去的原因)。现在终于能以现代游戏的分辨率和帧率重新游玩,又开始让我感到上头。两个新游戏也简单玩了一下,没有太多特别,就是休闲娱乐型的游戏,认知负担不高。
其他方面的话,按键比 Switch 大了一点,Joycon 也大了一点,总体手感我觉得不错。虽然屏幕大了一圈,也重了不少,但是长时间握着玩没太多感觉。续航倒不是太满意,玩两个多小时塞尔达就没电了,不过性能的提升让我觉得我觉得这个 tradeoff 还算合理。
由美团、上海交通大学、Datawhale 等合作搞的一个评测,前面提到的两个数据集就在里面。希望这不是又一个 KPI 项目,而是能长久的运行下去。
本周刊已在 GitHub 开源,欢迎 star。同时,如果你有好的内容,也欢迎投稿。如果你觉得周刊的内容不错,可以分享给你的朋友,让更多人了解到好的内容,对我也是一种认可和鼓励。(或许你也可以请我喝杯咖啡)
另外,我建了一个交流群,欢迎入群讨论或反馈,可以通过文章头部的联系邮箱私信我获得入群方式。
2025-07-24 04:37:58
就在过去的一天我花了大概十个小时 vibe coding 了下面这么个玩意,主要有这些功能:
事先声明,我是 AI 编程的积极拥护者,去年初我还写过一篇用 GitHub Copilot 写前端的文章。时隔一年多,这个领域涌现出了很多新产品,Agent、MCP、Cursor、Claude Code 等等的推出,我觉得是时候更新一下这方面的体验了。
先说一下这趟 vibe 旅程的花费和成果吧。我主要使用了 Cursor(主要是 claude-4-sonnet 和 Auto 模式),以及 Claude Code(Kimi K2 和 Claude 模型)。其中 Cursor Pro 的额度被我用完了,Claude Code 花费了十几刀。「产出」的代码有 10000 行左右,虽然中间有部分组件的代码,我估计实际逻辑代码大概也有几千行。
是的,标题里说得很清楚了,我基本上是在十倍速生成屎山。这本来应该是一篇经验介绍的文章,但是我觉得非常应该「把丑话说在前头」,而且这也是我在 vibe coding 中最大的心得。
我之前就说过:AI 决定下限,人决定上限。我觉得 vibe coding 分为以下几种情况:其一,你对要实现的功能非常熟悉,只是让 AI 代劳敲键盘的工作;其二,你对要实现的功能略知一二,要你自己拿起来写会磕磕绊绊;其三,也是我这次的情况,你对要实现的功能基本一无所知。第一种情况下,你跟 AI 很可能会配合得亲密无间,而后两种情况,你的体验估计够呛。后面的体验基本都是基于第三种情况来说。
一旦你开始 vibe coding,你就只能 vibe 到底了。
在你不懂的时候,AI 一旦写出一大段代码,这会迅速超出你的上下文范围。是的,虽然 AI 只有 200K 上下文,但这已经比大多数人能理解的上下文要大得多了(我认为一个普通的程序员上下文应该在 500 行代码左右)。这时候你的代码质量就会快速崩塌:混用 AI 模型、多次生成之间使你的代码库出现了多种不同风格的代码;不清楚最佳实践,导致有各种可能蹩脚的实现。很快你就会发现你陷入一种循环:贴错误日志/截图/描述错误 - AI 修改 - 无脑接受变更 - 运行,你对代码已经完全失去了掌控。
在 vibe coding 十个小时后,我的代码库里出现了几千行我根本看不懂也没法维护的代码,以及一个「好像能用」的产品。说实话,这个项目如果要我自己一边查文档一边写,估计至少要花上一周。但是这在工程上没有太大的意义,完全就是十倍速生成屎山。
我这里决定把 Claude Code 和 Cursor 的 Agent Mode 放在一起说,他们在设计上是类似的,都是有个模型做规划(TODO),然后分步执行,调用工具这样的路子。先说优点:
缺点也有不少:
Cursor 和 Claude Code 都支持 MCP,有两个我觉得必备DeepWiki和context7。
DeepWiki 能让帮助 AI 快速梳理项目结构,理解包的使用,找到对应的 API 。它甚至提供了一个问答的功能,可以让 DeepWiki 的 AI 帮你找到项目中对应的实现。例如我这个主要是想参考 midscene 的 android playground,我就让他去读项目的 DeepWiki,理解 scrcpy 的实现。又例如,ya-webadb这个包中,DeepWiki 梳理出了这个实现的架构,这其实对我的理解也有很大的帮助。
至于 context7 则能够给 AI 提供对应版本对应包的 API 文档,极大地减少它出现幻觉乱编 API 的情况。
当然了,你可以直接贴网页地址,或者也可以通过 Cursor 的 @Docs 文档去指定对应的开发文档,来手动地给 AI 增加上下文。
另外,虽然 Agent 模式会自动选择上下文,你可以手动指定一些上下文来帮助它更好理解和解决问题。在 Cursor 中,你可以在代码、终端中按 Cmd + I
来添加多个上下文,或者按 @
展开下拉框选择。
主观来说 claude-4-sonnet >= gemini-2.5-pro > Auto > Kimi K2,我推测 Auto 应该是 DeepSeek-R1 或 GPT-4.1 之类。分享几个零散的观察:
能力强的模型一定贵而且慢,因此不可能成为万金油。Cursor 中的 Auto 可以算是一种万金油,在解决复杂问题时有一定的竞争力,解决简单问题时速度则很快,废话也少。
回到一开始说的三种情况,第一种情况我建议你用 Auto,或者 Kimi K2,或者 DeepSeek 也行,甚至最基础的 Tab 自动补全都已经很好用,因为只是帮你省打字功夫。后面两种情况,如果你要 vibe 到底,那基本只能选 claude-4-sonnet 或者 gemini-2.5-pro ,除了他们没人能看懂你的屎山。
Cursor 支持 cursor rules,也就是一个 markdown 文档,来告诉 AI 如何解决问题,或者代码的风格等。我没有一个完整的规则可以分享,但是网上有很多,可以自行参考。我提供一些思路:
这点我放到了最后,也是我觉得最难的。在规范良好、逻辑清晰的代码上,AI 的表现最好;而在一些老项目、屎山上,AI 很难做出有效的修改。其实所谓 AI 友好,其实也是对人友好,也就是「可读性」。把函数拆得原子化、加单测、加注释、简化逻辑,这些都是老生常谈的问题了。
激动的心,颤抖的手,写到现在已是凌晨四点半。在分享技巧之余我想回答的一个问题是,「AI 编程是否能提升效率」。我觉得能,但是有限,而且很大程度上还是取决于使用者本身。一是 AI 并没有显著降低人的认知负担,你还是要理解、维护同样代码量的东西;二是在屎山堆积的业务代码里,很难找到 AI 大显身手的空间;三是使用者的认知水平、技巧决定了 AI 的能力上限。
当然,市面上还有很多工具,例如 Gemini CLI、Kiro 等,我还没来得及去体验;本次的过程也是从「新手」的角度去体验,我也知道有些工作流、MCP 之类的组合的高阶玩法,我也没有涉及,但我认为总体的体验应该并无大异。我并非想泼 AI 的冷水,而是要跟它磨合好,人和 AI 协作必然是主流,人自身的能力和认知会更加重要。
2025-07-20 16:08:45
这是猫鱼周刊的第 74 期,本系列每周日更新,主要内容为每周收集内容的分享,同时发布在
博客:阿猫的博客-猫鱼周刊
RSS:猫鱼周刊
邮件订阅:猫鱼周刊
微信公众号:猫兄的和谐号列车
摄于澳门的街头,墙面红色与绿色门窗、电话亭形成强烈对比,画面色调明快,两个小孩使用电话亭的场景很有故事感。用的是富士 C200 胶卷,200 度卷只有在大晴天才好出片,可以说这张照片真是天时地利人和。
这周也有一篇 TIL,是 Clauce Code 使用第三方 API 并优雅地完成多个供应商切换(如 Kimi K2 等)。体验了比较便宜的 Kimi K2 和原生的 Claude,Kimi K2 能独立完成一个小功能(感兴趣可以看这个 pr),而且是一遍过,但是在比较复杂和屎山的项目上就没能完成任务。原生的 Claude 的话除了有点小贵,没有别的怨言(跟 Kimi K2 比起来大概差一个汇率)。
作者有意识地和「不甘心」和解,主动选择早睡,把更好的精力留给第二天,从而达成早睡的习惯转变。
过去,深夜不睡,与其说是在享受手机里的内容,不如说是在表达一种无声的「不甘心」。如果第二天是工作日,深夜刷手机便成了一种拖延,一种对个人时间的固执挽留,好像只要不睡,属于自己的这一天就不会那么快结束,明天的工作也就不会那么快到来。
我感觉「不甘心」的根源是上班耗费了一天中太多的自由时间和精力,尤其是如果工作没有完成了什么事情的满足感,那这种感觉尤为强烈。另外也有可能是因为在写字楼里由早待到晚,感觉不到时间的流逝,比较容易造成失眠。前段时间住院和在家养病的时候,我短暂地形成了早睡的习惯。一开始是住院的时候早上六七点护士就开始查房,倒逼我早睡,到后面出院回家,因为在家也比较无聊所以也经常很早就睡了。
我在「不甘心」的时候经常漫无目的地刷购物软件、刷短视频,最后的结果就是第二天依然筋疲力尽,可能还伴随着另一笔冲动消费。我觉得其实大家都明知「不甘心」是没有用的,那部分偷来的时间就是「垃圾时间」,但就是控制不住,那很有可能就是 burn out 了,正好引入下一篇文章。
Burn out(职业过劳/倦怠)是一种由慢性工作压力导致的症候群。
每天下了班都在想着工作,每天都不想上班。这个时候,你就知道这是 burn out 了。
作者提出了几个建议来应对 burn out:
我最近也在经历 burn out,我觉得可以补充一点就是「向上管理」。如果你的领导比较可以讲道理,不妨跟领导敞开说一下想法,也许领导能够帮你解决一些问题,毕竟这也是领导的工作之一。
跟第一篇文章是同一个作者(没想到吧,居然串起来了),讲的是他跟团队成员关于期望和心理落差的交流。
降低主观预期,清晰地认知自身能力的边界,并依据这个边界来为自己设定要求和目标。
这算是上面提到「跟领导敞开说一下想法」的例子,在这个例子中,领导通过闲聊、交流心得的方式去尝试解决问题,当然肯定也可以通过调整工作等方式去帮到你。
回到文章的主题,期望、现实和落差,作者提到有两种选择,一是调整自己的主观意愿,二是增大自己承受落差的能力,后者是比较难的。
我分享一点自己的经历。第一个是关于「调整自己的主观意愿」的,小时候学围棋,去参加围棋比赛,输了我就哭,觉得我一定要赢,每一场都要赢。当时我爸就跟我说,「胜败乃兵家常事」,比赛、竞技本就不是一定都会赢的。这算是人生中很重要的一课,后来我参加过很多比赛,游泳的、奥数的、英语的,以及后面大学参加的各种比赛,也没有再因为失利而非常沮丧。第二个是「承受落差」的,大学的第一年,因为我的基础挺好,对专业也很上心,在校内外比赛也拿了一些奖,成绩也不错,评奖学金的时候加分挺多。没想到公示的时候第一名的分数竟是我几倍之多,我当时觉得很沮丧,我离优秀的人竟这么远,我还远远不够卷。别看我现在把这件事说得如此云淡风轻,当时引起我连续几个学期的自我质疑,是不是我不努力,是不是我方向错了,是不是我能力就不行。后来才知道,那位同学确实很努力也很优秀,而我也找准了自己的方向和节奏,继续走着自己的路。
写着写着,我觉得其实这两种方式本质上都是妥协,区别是一种是战略性地放弃,另一种是坚持和理性调整目标。
最近小红书有一个「摄影视频笔记」的活动,发布对应形式的视频可以获得流量。
现在创作很大程度上是被平台绑架了的。各种话题、热点、流量池,要迎合平台算法才能获得曝光。社媒平台同质化的内容非常多,同一首 BGM、同一个梗在短时间内会反反复复刷到,遇到它就起鸡皮疙瘩。
诚然,大多数情况下,有限定范围的「命题作文」肯定比较好发挥,这是平台的初衷,给创作者提供创意。
一个极简风格的 Obsidian 主题,非常适合写作。
轻量化的 RAW 编辑工具,有很基础的 RAW 编辑功能(调色、锐化、降噪、裁剪等),也支持蒙版等,甚至还能接 ComfyUI 做 AI 编辑。
一款强大的工具,可将 Claude Code 请求路由到不同的模型,并自定义任何请求。
跟前面提到的方法不同的是,这个通过逆向了 Claude Code,把请求路由到其他模型,并且支持 OpenAI 请求格式的供应商和模型。
本周刊已在 GitHub 开源,欢迎 star。同时,如果你有好的内容,也欢迎投稿。如果你觉得周刊的内容不错,可以分享给你的朋友,让更多人了解到好的内容,对我也是一种认可和鼓励。(或许你也可以请我喝杯咖啡)
另外,我建了一个交流群,欢迎入群讨论或反馈,可以通过文章头部的联系邮箱私信我获得入群方式。
2025-07-17 20:33:51
Claude Code 除了登录 Claude 账号使用,还可以通过设定 ANTHROPIC_BASE_URL
和 ANTHROPIC_AUTH_TOKEN
/ ANTHROPIC_API_KEY
来使用第三方的 API 或者其他兼容 Anthropic 接口格式的模型。
一般的使用方式:
ANTHROPIC_BASE_URL=<YOUR_URL> ANTHROPIC_AUTH_TOKEN=<YOUR_TOKEN> claude
也有用以下这种的,不建议,会把环境变量留在当前会话里:
export ANTHROPIC_BASE_URL=<YOUR_URL>; export ANTHROPIC_AUTH_TOKEN=<YOUR_TOKEN>; claude
于是我们可以写一个简单的 zsh 脚本来实现切换多个供应商的功能。
function claude() {
# 定义不同服务的配置
local base_url=""
local auth_token=""
local api_key=""
case "$1" in
"kimi")
base_url="https://api.moonshot.cn/anthropic"
auth_token="YOUR_MOONSHOT_KEY"
shift # 移除第一个参数
;;
"aihubmix")
base_url="https://aihubmix.com"
api_key="YOUR_AIHUBMIX_KEY"
shift # 移除第一个参数
;;
"anthropic"|"")
# 默认或显式指定 anthropic
base_url="https://api.anthropic.com"
auth_token="YOUR_ANTHROPIC_API_TOKEN"
if [[ "$1" == "anthropic" ]]; then
shift # 移除第一个参数
fi
;;
*)
echo "未知的服务: $1"
return 1
;;
esac
# 设置环境变量并调用实际的 claude 命令
if [[ -n "$auth_token" ]]; then
ANTHROPIC_BASE_URL="$base_url" ANTHROPIC_AUTH_TOKEN="$auth_token" command claude "$@"
elif [[ -n "$api_key" ]]; then
ANTHROPIC_BASE_URL="$base_url" ANTHROPIC_API_KEY="$api_key" command claude "$@"
else
ANTHROPIC_BASE_URL="$base_url" command claude "$@"
fi
}
使用时,只需要输入 claude kimi
或者 claude aihubmix
就可以切换不同的供应商,同时还能支持 claude 原来的各种命令参数。
这种方式只能支持 Anthropic 接口格式的 API,如果你的供应商是 OpenAI 格式的,可以使用 musistudio/claude-code-router这个项目,同时还支持指定不同情况下使用的模型。但是毕竟这个方式是通过逆向接口、本地起代理来实现的,用起来并非 Claude Code 正宗的体验,也不是很优雅。
通过我这种方法,如果使用 aihubmix 或者 anyrouter 这种支持 Anthropic 接口格式的服务,就可以获得正宗的 Claude Code 体验啦。需要注意他们对应的接口不一定跟 OpenAI 格式的相同,具体可以参考使用文档。另外,aihubmix 使用 ANTHROPIC_API_KEY
而不是 ANTHROPIC_AUTH_TOKEN
,脚本里已经做了兼容。
Claude Code settings - Anthropic
Kimi K2 详测|超强代码和 Agent 能力!内附 Claude Code 邪修教程
AiHubMix Documentation Hub
2025-07-13 23:08:16
这是猫鱼周刊的第 73 期,本系列每周日更新,主要内容为每周收集内容的分享,同时发布在
博客:阿猫的博客-猫鱼周刊
RSS:猫鱼周刊
邮件订阅:猫鱼周刊
微信公众号:猫兄的和谐号列车
摄于中山公园。草坪上很多小孩在玩耍,有人吹泡泡,有人追泡泡,非常有活力。
其实这趟出门是为了把之前那卷胶片拍完。拍胶片有一种「车马慢」的感觉,与数码相机举起就拍、马上回看不一样,胶片相机需要过片、手动对焦,在冲扫之前都是盲盒。刚开始玩的时候觉得 36 张(实际上能拍到 37、38 张)很快就能拍完,结果每一卷至少都要拍一个月,出门至少两三趟才拍得完。就算在拍数码的时候,也开始习惯按快门前再多想一下,想象一下出片,而不是拍完下意识去按回放键。
这周也产出了一篇 TIL 文章 macOS 命令完成后展示一条通知。TIL(Today I Learned) 算是一种非常短篇的文章形式,有点类似「每天一个冷知识」。这种文章写起来还挺有趣,没有什么创作瓶颈,内容也不需要太多打磨,随笔记录、随手发布一下就行,后续可能还会多发这种。
F1 官方账号剪的霍肯博格英国站登台集锦,又一个 F1 的传奇故事。我当时在朋友圈是这么写的:
如果你觉得你的生涯很艰难,不妨看看在第 239 场大奖赛才登上领奖台的霍肯伯格(甚至开的索伯,从第 19 位发车,而且是雨战)。
如果大家有看 F1 电影,这简直是电影剧情!
作者认为写代码本身从来不是软件工程里的瓶颈,而:
真正的瓶颈过去是、现在依然是代码审查、通过指导和结对编程进行的知识传递、测试、调试,以及协调与沟通中的人力消耗。
LLM 的出现确实让写出「能用的代码」更加简单,甚至连外行都可以写出比较简单的产品。比较有趣的是,作者提到的「瓶颈」,正巧就是我在工作中相对比较讨厌的内容,看来这几年这些方面有点进步但是不多;而「写代码」则是我最喜欢的内容,甚至愿意加班在没人的时候听着歌把键盘抡冒烟,这算是纯享的 moment。
最近在整理订阅源的时候,发现有几个之前关注的周刊的停止更新了,有的一声不响停了,也有的留下了一篇通知:
两个作者都有提到时间和精力的问题,以及创作的压力。从我的经历来说,每周固定要花费两三个小时左右来进行周刊本身的编写,这是显性的时间精力成本;除此之外,每天我固定会花半个小时左右(虽然很大程度上是上班的时候摸鱼)来消费我的信息源,这算是隐性的成本。至于创作压力,我对周刊本身其实没有太多要求,从过往内容看有点「大小周」的样子(一周字数多,一周字数少),字数平均有两千字左右。有时候如果实在没什么料,或者周末出去玩了,我就会鸽一期(这种情况还挺多)。
所以说,如果要成为一个「可持续的周刊作者」,有几点一定要想清楚:
最后,坚持得下来固然值得称道,但弃坑也是一个合理的选择,尝试过后如果你发现有更有价值的事情值得你的时间和精力,那当然是投入更好的事情啊。
一个结合了 Docker 镜像加速和 GitHub 加速的服务,部署起来简单,没有任何依赖。
我部署了一个放在 Claw Cloud Run,相当于零成本白嫖,还不错。
LobeChat 团队推出的 MCP Servers 市场。我知道这类产品已经烂大街了,刚好碰上这个,就推荐下吧。
我之前对 MCP 期望很高,我觉得它会是通用人工智能的「最后一公里」。又过去一段时间,国内支持了 MCP 的日常服务还是不是很多,至少还没有很现象级的 MCP 服务出现。这其实是很多服务的架构决定的,如果一个服务它本身就没有「开放平台」,那它出现 MCP 服务的可能性也很小了。
本周刊已在 GitHub 开源,欢迎 star。同时,如果你有好的内容,也欢迎投稿。如果你觉得周刊的内容不错,可以分享给你的朋友,让更多人了解到好的内容,对我也是一种认可和鼓励。(或许你也可以请我喝杯咖啡)
另外,我建了一个交流群,欢迎入群讨论或反馈,可以通过文章头部的联系邮箱私信我获得入群方式。
2025-07-08 17:44:08
执行以下命令可以展示一条通知:
osascript -e 'display notification "The command finished" with title "Success"'
所以在 .zshrc
中定义一个函数:
function notifyMe () {
if [ $? -eq 0 ]; then
osascript -e 'display notification "The command finished" with title "Success"'
else
osascript -e 'display notification "The command failed" with title "Failed"'
fi
}
在运行某些需要比较长时间的程序时,执行以下命令:
> some_program; notifyMe
在执行完便能收到一条通知:
甚至可以设置通知音效(见下面第二条链接)
How to Use macOS Notifications with Command-line Programs – Small Sharp Software Tools
MacOS: notify when the terminal command is finished