{ "stream_id": "user/-/state/com.google/reading-list", "requested_limit": 5, "entry_count": 5, "extracted_success_count": 5, "results": [ { "item": { "item_id": "sha256:4139f277b8cb621b02b3398f8a7bd78e3f9eef7bcd320b70b8590e802540c6ca", "source_id": "freshrss:66c2d55d7563e741", "external_id": "tag:google.com,2005:reader/item/00064dc1a1f5c0dd", "title": "套壳中国大模型撑起500亿美元估值?扒一扒 Cursor 的\"套壳\"疑云", "url": "http://www.ruanyifeng.com/blog/2026/03/kimi-cursor.html", "author": "阮一峰", "published_at": "2026-03-21T10:19:11Z", "discovered_at": "2026-03-25T08:40:22.917124Z", "content_kind": "article", "language": null, "raw_summary": "

1、

\n\n

本周末,有一条最热闹的 AI 新闻,震动了太平洋两岸,连马斯克都关注了。

\n\n

昨天,AI 编程工具 Cursor 推出了\"自己的\"模型 Composer 2。

\n\n

\"\"

\n\n

上图是官网截图,现在点进去还写着\"自有模型\"。

\n\n

自从2024年10月,Composer 1 发布以来,外界就一直怀疑,它是套壳的中国模型,因为行为很类似,但苦于找不到证据。

\n\n

现在 Composer 2 来了,很多人就开始研究,它的背后到底是什么模型,真的是 Cursor 自家的吗?

\n\n

Cursor 为了防止破解,做了很多限制,但是百密一疏。国外推友 @fynnso 发现,有一个地方在上一个版本是禁止的,但是这个版本却可以执行。

\n\n

首先,你自己架设一台服务器,充当 AI 模型的调用接口,有没有模型无所谓,只要能收到客户端请求就行。

\n\n

然后,你在本地的 Cursor 里面,设置使用的模型为 Composer 2,模型网址就是你刚架设的服务器。这样一来,Cursor 就会向你的服务器发出请求,从而可以看到它到底在请求什么模型。

\n\n

真相就暴露了,它请求的模型 ID 居然是 kimi-k2p5-rl-0317-s515-fast(下图)。

\n\n

\"\"

\n\n

2、

\n\n

这位国外推友就把上面的截图,发布到网上。这下炸锅了,明眼人都看出来,这是铁证,Composer 2 实际上是套壳的 Kimi K2.5。

\n\n

\"\"

\n\n

可笑的是,事情一爆发,Cursor 第一时间就把漏洞堵上,现在已经没法复现这个请求(下图)。

\n\n

\"\"

\n\n

但是为时已晚,网上传遍了,就连马斯克也发推:\"它就是 Kimi K2.5\"。

\n\n

\"\"

\n\n

这下好了,变成了公开的秘密,再也无法掩盖了。

\n\n

3、

\n\n

大家的关注点,很快就转移到 Cursor 是否侵权。因为 Kimi K2.5 虽然是开源模型,但是采用的是修改的 MIT 许可证(下图)。

\n\n

\"\"

\n\n

许可证这样说:你可以任意使用这个模型,唯一的条件是如果你的商业产品月活用户超过1亿,或者月收入超过2000万美元,你必须在用户界面的醒目位置披露,你使用了 Kimi K2.5。

\n\n

Cursor 最新披露的年化收入是20亿美元,相当于月收入1.67亿美元,显然满足上面的条件。但是,它隐藏了使用 K2.5 的事实。

\n\n

就在大家认定 Cursor 侵权的时候,他们的一个负责人终于坐不住了,出来说话了。

\n\n

\"\"

\n\n

他承认确实使用 Kimi K2.5,但是没有侵权,他们的许可证来自合作伙伴 Fireworks AI。

\n\n

稍后,Kimi 官方也发推了。

\n\n

\"\"

\n\n

Kimi 官方确认,Cursor 是从 Fireworks AI 得到了授权。后者是一家硅谷的华人 AI 公司,从事 AI 模型的微调和强化学习,它从 Kimi 得到授权对模型进行再训练,然后又转授权给了 Cursor。

\n\n

4、

\n\n

事情到这里就基本清楚了,Cursor 并没有违反 Kimi 的授权条款,因此不存在侵权。

\n\n

既然如此,为什么它拼命掩盖这个事实,大大方方承认,提供 Kimi K2.5 的修改版模型,很难吗?

\n\n

我猜测,原因跟 Cursor 不断膨胀的估值有关。

\n\n

彭博社本月报道,Cursor 正在进行下一轮融资,估值达到500亿美元。

\n\n

\"\"

\n\n

大家知道吗,它以前的估值是多少?

\n\n

2023年10月,Cursor 成立时的估值是5000万美元;2024年8月的 A 轮融资,估值上升到4亿美元;12月的 B 轮融资,估值快速上升到26美元;2025年11月的最新一轮融资,估值已经到了293亿美元。

\n\n

可以看到,每过几个月,估值就会翻倍。这种火箭式的上升速度,需要有业绩支持。但它本身只是一个 VS Code 的修改版,使用的都是开源技术。

\n\n

为了支撑越来越高的估值,它有动机把自己从 AI 工具,包装成具有模型研发能力的大模型公司。

\n\n

我认为,这才是它不愿意披露使用了 Kimi K2.5 的主要原因。

\n\n

5、

\n\n

纵观整个事件,Cursor 无疑是输家,Kimi 则是这次的赢家,免费得到一大波高价值的曝光。

\n\n

Cursor 发布 Composer 2 时,披露了性能和成本比较。

\n\n

Composer 2 的性能低于 GPT-5.4,但高于 Opus 4.6。

\n\n

\"\"

\n\n

但是,它的生成速度比 GPT-5.4 和 Opus 4.6 都快,成本也是最低的。

\n\n

\"\"

\n\n

既然 Composer 2 就是微调的 Kimi K2.5,那么直接使用 Kimi,也能得到同样的效果。

\n\n

6、

\n\n

以前,国外总是有人指责,中国公司窃取外国技术。但是,这个事件证明了,中国公司也有技术输出。那些国外的明星公司,背地也在偷偷摸摸使用中国技术。

\n\n

联想到上周,Kimi 的创始人杨植麟收到黄仁勋的邀请,在 Nvidia GTC 大会演讲,是唯一的中国大模型公司代表。

\n\n

\"\"

\n\n

他在台上宣讲,Kimi 团队刚刚发表的论文《注意力残差》(Attention Residuals)。

\n\n

\"\"

\n\n

这种新技术据说可以显著提升大模型的推理能力。

\n\n

我的想法是,大家要对国产大模型有信心,日常工作完全可以放心使用。国产大模型与国外旗舰模型的差距,正在不断缩小,而且价格实惠。

\n\n

\"\"

\n\n

据杨植麟说,下一个要发布的 K3 模型性能提升巨大,即便没有强10倍,也比 K2.5 强得多,我们可以期待一下。

\n\n

(完)

\n\n

文档信息

\n
\n
", "raw_content": null, "metadata": { "upstream": "freshrss", "origin": { "streamId": "feed/2", "htmlUrl": "http://www.ruanyifeng.com/blog/", "title": "阮一峰的网络日志" }, "categories": [ "rss", "user/-/state/org.freshrss/main", "Developer" ], "crawled_at": "2026-03-24T09:18:21.528000Z", "published_epoch": 1774088351 }, "fetch_state": "pending" }, "extraction": { "success": true, "article": { "extract_id": "sha256:122a02c6bb154069e5b8d5cc9c7127f92c48bd940a032559b1812f6d861f1e36", "item_id": "sha256:4139f277b8cb621b02b3398f8a7bd78e3f9eef7bcd320b70b8590e802540c6ca", "source_id": "freshrss:66c2d55d7563e741", "url": "http://www.ruanyifeng.com/blog/2026/03/kimi-cursor.html", "title": "套壳中国大模型撑起500亿美元估值?扒一扒 Cursor 的\"套壳\"疑云", "author": "阮一峰", "published_at": "2026-03-21T10:19:11Z", "language": null, "content_kind": "article", "plain_text": "1、\n本周末,有一条最热闹的 AI 新闻,震动了太平洋两岸,连马斯克都关注了。\n昨天,AI 编程工具 Cursor 推出了\"自己的\"模型 Composer 2。\n上图是官网截图,现在点进去还写着\"自有模型\"。\n自从2024年10月,Composer 1 发布以来,外界就一直怀疑,它是套壳的中国模型,因为行为很类似,但苦于找不到证据。\n现在 Composer 2 来了,很多人就开始研究,它的背后到底是什么模型,真的是 Cursor 自家的吗?\nCursor 为了防止破解,做了很多限制,但是百密一疏。国外推友 @fynnso 发现,有一个地方在上一个版本是禁止的,但是这个版本却可以执行。\n首先,你自己架设一台服务器,充当 AI 模型的调用接口,有没有模型无所谓,只要能收到客户端请求就行。\n然后,你在本地的 Cursor 里面,设置使用的模型为 Composer 2,模型网址就是你刚架设的服务器。这样一来,Cursor 就会向你的服务器发出请求,从而可以看到它到底在请求什么模型。\n真相就暴露了,它请求的模型 ID 居然是 kimi-k2p5-rl-0317-s515-fast(下图)。\n2、\n这位国外推友就把上面的截图,发布到网上。这下炸锅了,明眼人都看出来,这是铁证,Composer 2 实际上是套壳的 Kimi K2.5。\n可笑的是,事情一爆发,Cursor 第一时间就把漏洞堵上,现在已经没法复现这个请求(下图)。\n但是为时已晚,网上传遍了,就连马斯克也发推:\"它就是 Kimi K2.5\"。\n这下好了,变成了公开的秘密,再也无法掩盖了。\n3、\n大家的关注点,很快就转移到 Cursor 是否侵权。因为 Kimi K2.5 虽然是开源模型,但是采用的是修改的 MIT 许可证(下图)。\n许可证这样说:你可以任意使用这个模型,唯一的条件是如果你的商业产品月活用户超过1亿,或者月收入超过2000万美元,你必须在用户界面的醒目位置披露,你使用了 Kimi K2.5。\nCursor 最新披露的年化收入是20亿美元,相当于月收入1.67亿美元,显然满足上面的条件。但是,它隐藏了使用 K2.5 的事实。\n就在大家认定 Cursor 侵权的时候,他们的一个负责人终于坐不住了,出来说话了。\n他承认确实使用 Kimi K2.5,但是没有侵权,他们的许可证来自合作伙伴 Fireworks AI。\n稍后,Kimi 官方也发推了。\nKimi 官方确认,Cursor 是从 Fireworks AI 得到了授权。后者是一家硅谷的华人 AI 公司,从事 AI 模型的微调和强化学习,它从 Kimi 得到授权对模型进行再训练,然后又转授权给了 Cursor。\n4、\n事情到这里就基本清楚了,Cursor 并没有违反 Kimi 的授权条款,因此不存在侵权。\n既然如此,为什么它拼命掩盖这个事实,大大方方承认,提供 Kimi K2.5 的修改版模型,很难吗?\n我猜测,原因跟 Cursor 不断膨胀的估值有关。\n彭博社本月报道,Cursor 正在进行下一轮融资,估值达到500亿美元。\n大家知道吗,它以前的估值是多少?\n2023年10月,Cursor 成立时的估值是5000万美元;2024年8月的 A 轮融资,估值上升到4亿美元;12月的 B 轮融资,估值快速上升到26美元;2025年11月的最新一轮融资,估值已经到了293亿美元。\n可以看到,每过几个月,估值就会翻倍。这种火箭式的上升速度,需要有业绩支持。但它本身只是一个 VS Code 的修改版,使用的都是开源技术。\n为了支撑越来越高的估值,它有动机把自己从 AI 工具,包装成具有模型研发能力的大模型公司。\n我认为,这才是它不愿意披露使用了 Kimi K2.5 的主要原因。\n5、\n纵观整个事件,Cursor 无疑是输家,Kimi 则是这次的赢家,免费得到一大波高价值的曝光。\nCursor 发布 Composer 2 时,披露了性能和成本比较。\nComposer 2 的性能低于 GPT-5.4,但高于 Opus 4.6。\n但是,它的生成速度比 GPT-5.4 和 Opus 4.6 都快,成本也是最低的。\n既然 Composer 2 就是微调的 Kimi K2.5,那么直接使用 Kimi,也能得到同样的效果。\n6、\n以前,国外总是有人指责,中国公司窃取外国技术。但是,这个事件证明了,中国公司也有技术输出。那些国外的明星公司,背地也在偷偷摸摸使用中国技术。\n联想到上周,Kimi 的创始人杨植麟收到黄仁勋的邀请,在 Nvidia GTC 大会演讲,是唯一的中国大模型公司代表。\n他在台上宣讲,Kimi 团队刚刚发表的论文《注意力残差》(Attention Residuals)。\n这种新技术据说可以显著提升大模型的推理能力。\n我的想法是,大家要对国产大模型有信心,日常工作完全可以放心使用。国产大模型与国外旗舰模型的差距,正在不断缩小,而且价格实惠。\n据杨植麟说,下一个要发布的 K3 模型性能提升巨大,即便没有强10倍,也比 K2.5 强得多,我们可以期待一下。\n(完)\n小饿 说:\n大家要对国产大模型有信心,日常工作完全可以放心使用。国产大模型与国外旗舰模型的差距,正在不断缩小,而且价格实惠。\n2026年3月22日 07:58 | # | 引用\n游钓四方 说:\nCursor 也到头了\n2026年3月22日 08:35 | # | 引用\nEdward 说:\n好呀你个cursor,居然用的是我们的kimi:)\n2026年3月22日 11:54 | # | 引用\njake 说:\n国产大模型的真实性能应该是没问题的,但是最大的问题是使用过程中突然就会明显降智,这种情况使用codex和claude中都没感受过。\n2026年3月22日 16:22 | # | 引用\nAlex 说:\nCursor膨脹全靠一開始vscode支援的慢了點,支援agent mode後cursor就一文不值了\n2026年3月22日 18:27 | # | 引用\n张三 说:\n太慢了,即便cursor套壳也比国产的直接用快多了\n2026年3月23日 11:37 | # | 引用\n一拳超人罢了 说:\n笑死了,几个月前用cursor的时候就发现了,使用composer1模型,思考逻辑里会突然蹦出中文来,我一开始以为是套壳的deepseek\n2026年3月23日 14:13 | # | 引用\n大名老王 说:\n老说国产慢,充钱就不慢了呀\n2026年3月23日 16:59 | # | 引用\ncolor 说:\n```12月的 B 轮融资,估值快速上升到26美元;```, 这句话少了亿字吧?阮老师\n2026年3月24日 06:42 | # | 引用\nHaKu 说:\n国模确实还行,问题就是太缺算力,高峰期降智问题很严重,如果这个问题可以解决还是很有性价比的\n2026年3月24日 08:39 | # | 引用\nbillzbc 说:\ncursor估值泡沫太大了\n2026年3月24日 10:57 | # | 引用", "quality_flags": { "is_paywalled": false, "is_truncated": false, "is_low_content": false }, "metadata": { "content_source": "fetched_html", "extractor": "trafilatura", "char_count": 2922 }, "pipeline_state": "extracted" }, "error": null, "debug": { "content_source": "fetched_html", "extractor": "trafilatura" }, "warnings": [] } }, { "item": { "item_id": "sha256:a16942c9699333155498d2bc59c530358bd6d81d9afe01e2b96e0e862edfc6a6", "source_id": "freshrss:66c2d55d7563e741", "external_id": "tag:google.com,2005:reader/item/00064dc1a1f5c0dc", "title": "科技爱好者周刊(第 389 期):未来如何招聘程序员", "url": "http://www.ruanyifeng.com/blog/2026/03/weekly-issue-389.html", "author": "阮一峰", "published_at": "2026-03-19T23:59:16Z", "discovered_at": "2026-03-25T08:40:22.917124Z", "content_kind": "article", "language": null, "raw_summary": "

这里记录每周值得分享的科技内容,周五发布。

\n\n

本杂志开源,欢迎投稿。另有《谁在招人》服务,发布程序员招聘信息。合作请邮件联系(yifeng.ruan@gmail.com)。

\n\n

封面图

\n\n

\"\"

\n\n

唐山河头老街景区的轨道车\"大唐云车\"。(via)

\n\n

未来如何招聘程序员

\n\n

前些天,讨论区有一个帖子,提出一个问题。

\n\n

如果未来的代码都是 AI 写的,那么我们怎么招聘程序员呢?

\n\n

\"\"

\n\n

程序员负责代码,但代码是 AI 写的,不是程序员写的,那么应该怎么面试他呢?

\n\n

你仔细想想,这个问题比预想的难多了。

\n\n

首先,考察他的代码能力不重要(代码不是他写的),更重要的是考察他会不会 AI。只要善于使用 AI,能够产出合格的代码,对公司来说就是合格的人选。

\n\n

但是,什么样的面试问题,能够考察出一个人是否掌握 AI?下面是我想出的一些问题:

\n\n\n\n

这些问题能识别出 AI 编程高手吗?我完全没有把握。

\n\n

其次,除了 AI,还要考察什么呢? 这也很不好想。

\n\n

我应该还会问一些架构问题,你可以不写代码,但要懂怎么组织代码,架构出一个系统。但我也不确定这是必需的,因为 AI 生成的大型系统迟早变成一个黑箱,可能对于架构知识的要求也不是很高。

\n\n

另外,我还要看看他以前的项目,如果以前他用 AI 做过类似的东西,那么应该问题不大。但这也不可靠,且不说完全类似的项目非常少,就看 AI 进化速度这么快,两年前的经验早不适用了吧。

\n\n

总之我发现,很难确定什么面试问题是一定有效的,能够可信地筛选出合格的应聘者。AI 颠覆了软件开发,也连带颠覆了程序员面试。大家有好的面试问题吗?

\n\n

有一点是确定的,面试各种编程细节意义不大了,因为你不需要记住语法细节了,直接问大模型就行。

\n\n

科技动态

\n\n

1、访达小子

\n\n

苹果公司最近发布了 Macbook Neo,有人注意到,官方的 Tiktok 宣传海报里面出现了一个全新的吉祥物(下图)。

\n\n

\"\"

\n\n

上面海报的左上角有一个玩偶,以前没见过。

\n\n

这个玩偶明显来自 Mac 电脑的访达工具(Finder),所以被称为\"访达小子\"(Lil Finder Guy)。

\n\n

\"\"

\n\n

几天后,苹果公司又在一场直播里面,使用了这个形象。

\n\n

\"\"

\n\n

人们纷纷猜测,这到底是偶然的行为,还是苹果公司真的会推出它作为吉祥物?

\n\n

热心的网友让 AI 绘制了\"访达小子\"的完整形象。

\n\n

\"\"

\n\n

\"\"

\n\n

看上去很可爱,就跟 Labubu 似的,有可能大受欢迎。

\n\n

2、红外线编码

\n\n

英国科学家发明了一种新的通信方式,通过热辐射二极管,将数字信号以热量形式传递。

\n\n

\"\"

\n\n

肉眼看不见这种信号(因为它是红外线),也检测不到无线电波,但是它的热量以编码方式散发,在红外线热成像仪上能识别(上图)。

\n\n

因此,这种方法接收信号需要热成像仪,再传入电脑的解码器。这可能对某些工业和军事场景很有用。

\n\n

3、机柜种植

\n\n

家里有多余的服务器机柜,怎么利用起来?

\n\n

\"\"

\n\n

一个国外程序员想到机柜里面有电源,拉线和搁板都很方便,可以用来水培种植。

\n\n

\"\"

\n\n

他买了一些 LED 灯带,用来模拟日照,每一层还安装了一个泵,用来自动进排水。

\n\n

\"\"

\n\n

如果你想在家里种一些暖房植物,或者需要长时间光照的植物,服务器机柜确实是一个很好的方案。

\n\n

\"\"

\n\n

文章

\n\n

1、我放弃了 Elasticsearch,转而使用 Meil​​isearch(英文)

\n\n

\"\"

\n\n

Meil​​isearch 是一种开源的搜索软件,作者介绍怎么用它替代 Elasticsearch。

\n\n

2、2016 年,我做过一次 AI 写代码创业(中文)

\n\n

\"\"

\n\n

作者徐宥(Eric Xu)回忆他在2016年的 AI 创业,当时他想训练一个大模型,需要25万美元,但是找不到投资人。(@gengxiuli 投稿)

\n\n

3、信息过载时代,我的漏斗式阅读工作流(中文)

\n\n

\"\"

\n\n

每天有太多东西值得看,作者介绍他的信息处理工作流,通过 AI 过滤出值得读的内容。(@shawnxie94 投稿)

\n\n

4、编译器的前端与后端(英文)

\n\n

\"\"

\n\n

一篇科普文章,介绍编译器(比如 LLVM)的前端和后端的概念。

\n\n

5、CSS 的 lh 单位(英文)

\n\n

\"\"

\n\n

CSS 有一个字体大小属性lh,表示行高。

\n\n

6、寻觅杜鹃花之王(中文)

\n\n

\"\"

\n\n

大树杜鹃是最高大的杜鹃,是一颗会开花的大树(上图),1919年由英国人在云南发现。

\n\n

后来,这个英国人死在云南,就无人知道哪里有这种杜鹃了,直到1982年才重新在高黎贡山找到。本文讲述这种植物的故事。

\n\n

工具

\n\n

1、APTUI

\n\n

\"\"

\n\n

一个 Linux 的终端应用,用于充当 Debian/Ubuntu 安装管理器,管理 APT 软件包。

\n\n

2、my.WordPress.net

\n\n

\"\"

\n\n

如果你想尝试 WordPress,但没有服务器,可以使用官方新推出的这个服务,打开上面网址就可以了。

\n\n

它把所有 PHP 脚本编译成 JS,在本地运行,不需要服务器,而且数据都在你的浏览器,下次打开这个网址,网站数据还在,参见介绍文章。

\n\n

3、GrobPaint

\n\n

\"\"

\n\n

一个跨平台的图像编辑器,特点就是非常轻量级,可以在浏览器运行,也可以编译成二进制文件。

\n\n

4、Apple Matting

\n\n

\"\"

\n\n

一个 Mac 抠图软件,大小只有 8MB。(@pangxiaobin 投稿)

\n\n

5、HealthTick

\n\n

\"\"

\n\n

macOS 菜单栏久坐提醒工具。(@lifedever 投稿)

\n\n

6、CheatReader

\n\n

\"\"

\n\n

一个跨平台的阅读软件,可以悬浮在桌面上,支持单行模式,适合想在工作流里\"偷偷读书\"的人。(@yaoyao2mm 投稿)

\n\n

7、锤子便签

\n\n

\"\"

\n\n

开源的网页版锤子便签,可以作为 Skill 调用。(@zhaoolee 投稿)

\n\n

8、WeChat Download API

\n\n

\"\"

\n\n

开源的微信公众号转 RSS 工具。(@tmwgsicp 投稿)

\n\n

9、Speech Speed

\n\n

一个很有意思的 Chrome 插件,根据语速调节视频播放速度。如果剧中人说话慢,视频就快速播放,说话快,就慢速播放。

\n\n

AI 相关

\n\n

1、VibeGo

\n\n

\"\"

\n\n

Vibe Coding 的开源 Web IDE,支持 Claude Code、Gemini CLI、CodeX、OpenCode 等。(@xxnuo 投稿)

\n\n

2、Mimic Them

\n\n

一个开源应用,使用字节 seedream 图像模型,复刻小红书的图文笔记,从一篇可以衍生出另一篇。(@zhanchey 投稿)

\n\n

3、AICheck

\n\n

\"\"

\n\n

一个 Rust 语言编写的命令行工具,离线检测图片、视频、音频和文档是否由 AI 生成。(@MatrixA 投稿)

\n\n

4、AionUi

\n\n

\"\"

\n\n

开源的 Cowork 与 OpenClaw 的替代品,自动化各种电脑操作。(@cdxiaodong 投稿)

\n\n

5、Lumo

\n\n

\"\"

\n\n

一个 Claude Code 的本地桌面工作台,查看成本、Token、会话和编码时段数据。(@zhnd 投稿)

\n\n

6、AIComicBuilder

\n\n

\"\"

\n\n

开源的 AI 动漫视频生成系统,只需输入文字剧本,即可自动完成角色提取、分镜设计、关键帧生成、视频合成的全流程。(@twwch 投稿)

\n\n

资源

\n\n

1、canirun.ai

\n\n

\"\"

\n\n

网页检测你的机器,能够运行哪些本地的 AI 模型。

\n\n

2、AI 是怎么回事(中文)

\n\n

\"\"

\n\n

面向普通读者的通俗 AI 原理教程。(@wmyskxz 投稿)

\n\n

3、TypeScript 数据结构与算法(Algorithms with TypeScript)

\n\n

\"\"

\n\n

免费阅读的英文电子书,使用 TypeScript 语言介绍数据结构和算法。

\n\n

4、频道冲浪者(Channel Surfer)

\n\n

\"\"

\n\n

这个网页把 Youtube 改成传统的电视频道,每个频道都有节目表,可以切换频道。如果你不知道用 Youtube 看什么,就可以看这个网站。

\n\n

图片

\n\n

1、巧妙的古建筑

\n\n

因为缺乏机械和动力,古代建筑物往往包含了很多巧思。

\n\n

(1)19世纪的英国麦克尔斯菲尔德运河,由于没有水位落差,需要马拉着船前进。

\n\n

有时,马的牵引道从河的一边转到了另一边,马这时就需要过河。

\n\n

为了不解开牵引绳,马就能过河,工程师就设计了\"蛇桥\",马可以直接走上去,中间还有让牵引绳通过的孔。

\n\n

\"\"

\n\n

(2)法国南部的巴尔贝加尔水磨坊,建于公元2世纪,现在只剩下了遗址。

\n\n

这个磨坊的位置在山坡上,连续建了16个相互连接的水车,充分利用了水能,每天能够生产25吨面粉,被认为是欧洲第一个大规模工业生产的磨坊。

\n\n

\"\"

\n\n

(3)伊朗纳什提凡的古代风车,建在连片的屋顶上,一根木轴安装了由粘土、稻草和木材做成的立轴式风帆,强风会带动木轴,转动下面屋子里的磨盘,来磨碎谷物。

\n\n

\"\"

\n\n

\"\"

\n\n

(4)中国西安的秦代上林苑遗址,发现了战国时期的陶瓷水管,现保存于西安博物院。

\n\n

\"\"

\n\n

文摘

\n\n

1、避免使用定制框架

\n\n

很多小团队在工作中,往往会发明自己的\"定制框架\"。

\n\n

他们原来使用的是通用框架,但有不满意之处,于是决定在通用框架基础上定制自己的框架。

\n\n

这种\"定制框架\"有一些共同特点:

\n\n
\n

(1)由小团队创建,旨在解决他们的痛点;

\n\n

(2)底层是其他更通用的技术栈或框架;

\n\n

(3)引入原有技术栈不存在的新概念和术语;

\n\n

(4)创建者声称这个定制框架\"神奇地\"解决了许多问题,并推广更多人使用它。

\n
\n\n

我的个人经验是,\"定制框架\"非常难用,引入了许多新概念,意图掩盖它带来的更多复杂性。

\n\n

我建议,大家避免使用\"定制框架\",原因有下面这些:

\n\n

(1)定制框架常常声称,它们能消除或隐藏原始框架\"不必要的复杂性\",但实际上做不到。即使定制框架能很好地处理80%的用例,但是因为引入了新的语法,剩余20%的用例就不如原始框架的灵活性和功能性。

\n\n

(2)定制框架不易改动。它仅对开发团队的用例建模,以解决他们的特定问题,未来需求变化时,往往跟不上。另外,定制框架通常改动了原始框架的实现细节,而原始框架将来随时可能变动,你修改的细节越多,就越难跟上原始框架的变动。

\n\n

(3)定制框架反映了开发团队的心理模型,这些团队专注于自己的问题,往往有很强的个人意见。这本身是好事,但也使得定制框架不适合其他人的心理模型。

\n\n

(4)定制框架往往导致技术栈碎片化。你改动的只是跟你相关的一部分,其他部分保持不变。随着新的层不断增加,框架变得越来越难整体迁移,必须不断改动你原来没改的部分。

\n\n

(5)定制框架缺乏维护。通用技术往往有一个专门团队或公司来维护,但定制框架通常由一两个创建者拥有。一旦他们离开团队或公司,就很难找到接班人。定制框架很大可能会随着原作者离开而消失,除非在此之前获得了大量采用,才有人愿意接手,而这种情况很少发生。

\n\n

我不是说,你不要开发自己的框架,而是建议最好遵循三个原则:(1)新概念引入越少越好,(2)优先创建库,而不是框架。(3)不要做现有框架的包装器,而要从零开始构建。

\n\n

言论

\n\n

1、

\n\n

我想要的网络世界,是一个万物皆可塑的世界,让你不由自主地成为创造者。

\n\n

-- David Miranda

\n\n

2、

\n\n

AI 让软件的成本从代码转移到测试和文档,一套好的测试套件的价值可能比编写代码本身更高。

\n\n

-- lucumr.pocoo.org

\n\n

3、

\n\n

编程的核心在于抽象,即用一种远离底层技术的高级思维方式来思考代码。

\n\n

-- 《生活在\"平面国\"的程序员》

\n\n

4、

\n\n

领导力就是让别人去做你想让他们做的事,而且是心甘情愿的。

\n\n

-- 艾森豪威尔,美国前总统

\n\n

往年回顾

\n\n

面试的 AI 作弊----用数字人去面试(#342)

\n\n

所有代码都是技术债(#292)

\n\n

一次尴尬的服务器被黑(#242)

\n\n

最大的机会来自新技术(#192)

\n\n

(完)

\n\n

文档信息

\n
\n
", "raw_content": null, "metadata": { "upstream": "freshrss", "origin": { "streamId": "feed/2", "htmlUrl": "http://www.ruanyifeng.com/blog/", "title": "阮一峰的网络日志" }, "categories": [ "rss", "user/-/state/org.freshrss/main", "Weekly" ], "crawled_at": "2026-03-24T09:18:21.528000Z", "published_epoch": 1773964756 }, "fetch_state": "pending" }, "extraction": { "success": true, "article": { "extract_id": "sha256:28f701753f6d82111e2f9105d9180bb359a75608b2669cb1e7dc741ff5ca17c6", "item_id": "sha256:a16942c9699333155498d2bc59c530358bd6d81d9afe01e2b96e0e862edfc6a6", "source_id": "freshrss:66c2d55d7563e741", "url": "http://www.ruanyifeng.com/blog/2026/03/weekly-issue-389.html", "title": "科技爱好者周刊(第 389 期):未来如何招聘程序员", "author": "阮一峰", "published_at": "2026-03-19T23:59:16Z", "language": null, "content_kind": "article", "plain_text": "这里记录每周值得分享的科技内容,周五发布。\n本杂志开源,欢迎投稿。另有《谁在招人》服务,发布程序员招聘信息。合作请邮件联系([email protected])。\n封面图\n唐山河头老街景区的轨道车\"大唐云车\"。(via)\n未来如何招聘程序员\n前些天,讨论区有一个帖子,提出一个问题。\n如果未来的代码都是 AI 写的,那么我们怎么招聘程序员呢?\n程序员负责代码,但代码是 AI 写的,不是程序员写的,那么应该怎么面试他呢?\n你仔细想想,这个问题比预想的难多了。\n首先,考察他的代码能力不重要(代码不是他写的),更重要的是考察他会不会 AI。只要善于使用 AI,能够产出合格的代码,对公司来说就是合格的人选。\n但是,什么样的面试问题,能够考察出一个人是否掌握 AI?下面是我想出的一些问题:\n- 请将一个复杂的项目需求,转化成提示词,要求是清晰、逻辑性强、切中要害。\n- 描述一个你认为需要使用 Skill 和 MCP 的场景,并阐述它们的工作原理和构建方法。\n- 如何将一个大项目分解,设计出一个多 Agent 协同工作的机制。\n- ......\n这些问题能识别出 AI 编程高手吗?我完全没有把握。\n其次,除了 AI,还要考察什么呢? 这也很不好想。\n我应该还会问一些架构问题,你可以不写代码,但要懂怎么组织代码,架构出一个系统。但我也不确定这是必需的,因为 AI 生成的大型系统迟早变成一个黑箱,可能对于架构知识的要求也不是很高。\n另外,我还要看看他以前的项目,如果以前他用 AI 做过类似的东西,那么应该问题不大。但这也不可靠,且不说完全类似的项目非常少,就看 AI 进化速度这么快,两年前的经验早不适用了吧。\n总之我发现,很难确定什么面试问题是一定有效的,能够可信地筛选出合格的应聘者。AI 颠覆了软件开发,也连带颠覆了程序员面试。大家有好的面试问题吗?\n有一点是确定的,面试各种编程细节意义不大了,因为你不需要记住语法细节了,直接问大模型就行。\n科技动态\n1、访达小子\n苹果公司最近发布了 Macbook Neo,有人注意到,官方的 Tiktok 宣传海报里面出现了一个全新的吉祥物(下图)。\n上面海报的左上角有一个玩偶,以前没见过。\n这个玩偶明显来自 Mac 电脑的访达工具(Finder),所以被称为\"访达小子\"(Lil Finder Guy)。\n几天后,苹果公司又在一场直播里面,使用了这个形象。\n人们纷纷猜测,这到底是偶然的行为,还是苹果公司真的会推出它作为吉祥物?\n热心的网友让 AI 绘制了\"访达小子\"的完整形象。\n看上去很可爱,就跟 Labubu 似的,有可能大受欢迎。\n2、红外线编码\n英国科学家发明了一种新的通信方式,通过热辐射二极管,将数字信号以热量形式传递。\n肉眼看不见这种信号(因为它是红外线),也检测不到无线电波,但是它的热量以编码方式散发,在红外线热成像仪上能识别(上图)。\n因此,这种方法接收信号需要热成像仪,再传入电脑的解码器。这可能对某些工业和军事场景很有用。\n3、机柜种植\n家里有多余的服务器机柜,怎么利用起来?\n一个国外程序员想到机柜里面有电源,拉线和搁板都很方便,可以用来水培种植。\n他买了一些 LED 灯带,用来模拟日照,每一层还安装了一个泵,用来自动进排水。\n如果你想在家里种一些暖房植物,或者需要长时间光照的植物,服务器机柜确实是一个很好的方案。\n文章\n1、我放弃了 Elasticsearch,转而使用 Meilisearch(英文)\nMeilisearch 是一种开源的搜索软件,作者介绍怎么用它替代 Elasticsearch。\n2、2016 年,我做过一次 AI 写代码创业(中文)\n作者徐宥(Eric Xu)回忆他在2016年的 AI 创业,当时他想训练一个大模型,需要25万美元,但是找不到投资人。(@gengxiuli 投稿)\n3、信息过载时代,我的漏斗式阅读工作流(中文)\n每天有太多东西值得看,作者介绍他的信息处理工作流,通过 AI 过滤出值得读的内容。(@shawnxie94 投稿)\n4、编译器的前端与后端(英文)\n一篇科普文章,介绍编译器(比如 LLVM)的前端和后端的概念。\n5、CSS 的 lh 单位(英文)\nCSS 有一个字体大小属性lh\n,表示行高。\n6、寻觅杜鹃花之王(中文)\n大树杜鹃是最高大的杜鹃,是一颗会开花的大树(上图),1919年由英国人在云南发现。\n后来,这个英国人死在云南,就无人知道哪里有这种杜鹃了,直到1982年才重新在高黎贡山找到。本文讲述这种植物的故事。\n工具\n1、APTUI\n一个 Linux 的终端应用,用于充当 Debian/Ubuntu 安装管理器,管理 APT 软件包。\n如果你想尝试 WordPress,但没有服务器,可以使用官方新推出的这个服务,打开上面网址就可以了。\n它把所有 PHP 脚本编译成 JS,在本地运行,不需要服务器,而且数据都在你的浏览器,下次打开这个网址,网站数据还在,参见介绍文章。\n一个跨平台的图像编辑器,特点就是非常轻量级,可以在浏览器运行,也可以编译成二进制文件。\n一个 Mac 抠图软件,大小只有 8MB。(@pangxiaobin 投稿)\nmacOS 菜单栏久坐提醒工具。(@lifedever 投稿)\n一个跨平台的阅读软件,可以悬浮在桌面上,支持单行模式,适合想在工作流里\"偷偷读书\"的人。(@yaoyao2mm 投稿)\n7、锤子便签\n开源的网页版锤子便签,可以作为 Skill 调用。(@zhaoolee 投稿)\n开源的微信公众号转 RSS 工具。(@tmwgsicp 投稿)\n一个很有意思的 Chrome 插件,根据语速调节视频播放速度。如果剧中人说话慢,视频就快速播放,说话快,就慢速播放。\nAI 相关\n1、VibeGo\nVibe Coding 的开源 Web IDE,支持 Claude Code、Gemini CLI、CodeX、OpenCode 等。(@xxnuo 投稿)\n一个开源应用,使用字节 seedream 图像模型,复刻小红书的图文笔记,从一篇可以衍生出另一篇。(@zhanchey 投稿)\n3、AICheck\n一个 Rust 语言编写的命令行工具,离线检测图片、视频、音频和文档是否由 AI 生成。(@MatrixA 投稿)\n4、AionUi\n开源的 Cowork 与 OpenClaw 的替代品,自动化各种电脑操作。(@cdxiaodong 投稿)\n5、Lumo\n一个 Claude Code 的本地桌面工作台,查看成本、Token、会话和编码时段数据。(@zhnd 投稿)\n开源的 AI 动漫视频生成系统,只需输入文字剧本,即可自动完成角色提取、分镜设计、关键帧生成、视频合成的全流程。(@twwch 投稿)\n资源\n网页检测你的机器,能够运行哪些本地的 AI 模型。\n2、AI 是怎么回事(中文)\n面向普通读者的通俗 AI 原理教程。(@wmyskxz 投稿)\n3、TypeScript 数据结构与算法(Algorithms with TypeScript)\n免费阅读的英文电子书,使用 TypeScript 语言介绍数据结构和算法。\n4、频道冲浪者(Channel Surfer)\n这个网页把 Youtube 改成传统的电视频道,每个频道都有节目表,可以切换频道。如果你不知道用 Youtube 看什么,就可以看这个网站。\n图片\n1、巧妙的古建筑\n因为缺乏机械和动力,古代建筑物往往包含了很多巧思。\n(1)19世纪的英国麦克尔斯菲尔德运河,由于没有水位落差,需要马拉着船前进。\n有时,马的牵引道从河的一边转到了另一边,马这时就需要过河。\n为了不解开牵引绳,马就能过河,工程师就设计了\"蛇桥\",马可以直接走上去,中间还有让牵引绳通过的孔。\n(2)法国南部的巴尔贝加尔水磨坊,建于公元2世纪,现在只剩下了遗址。\n这个磨坊的位置在山坡上,连续建了16个相互连接的水车,充分利用了水能,每天能够生产25吨面粉,被认为是欧洲第一个大规模工业生产的磨坊。\n(3)伊朗纳什提凡的古代风车,建在连片的屋顶上,一根木轴安装了由粘土、稻草和木材做成的立轴式风帆,强风会带动木轴,转动下面屋子里的磨盘,来磨碎谷物。\n(4)中国西安的秦代上林苑遗址,发现了战国时期的陶瓷水管,现保存于西安博物院。\n文摘\n1、避免使用定制框架\n很多小团队在工作中,往往会发明自己的\"定制框架\"。\n他们原来使用的是通用框架,但有不满意之处,于是决定在通用框架基础上定制自己的框架。\n这种\"定制框架\"有一些共同特点:\n(1)由小团队创建,旨在解决他们的痛点;\n(2)底层是其他更通用的技术栈或框架;\n(3)引入原有技术栈不存在的新概念和术语;\n(4)创建者声称这个定制框架\"神奇地\"解决了许多问题,并推广更多人使用它。\n我的个人经验是,\"定制框架\"非常难用,引入了许多新概念,意图掩盖它带来的更多复杂性。\n我建议,大家避免使用\"定制框架\",原因有下面这些:\n(1)定制框架常常声称,它们能消除或隐藏原始框架\"不必要的复杂性\",但实际上做不到。即使定制框架能很好地处理80%的用例,但是因为引入了新的语法,剩余20%的用例就不如原始框架的灵活性和功能性。\n(2)定制框架不易改动。它仅对开发团队的用例建模,以解决他们的特定问题,未来需求变化时,往往跟不上。另外,定制框架通常改动了原始框架的实现细节,而原始框架将来随时可能变动,你修改的细节越多,就越难跟上原始框架的变动。\n(3)定制框架反映了开发团队的心理模型,这些团队专注于自己的问题,往往有很强的个人意见。这本身是好事,但也使得定制框架不适合其他人的心理模型。\n(4)定制框架往往导致技术栈碎片化。你改动的只是跟你相关的一部分,其他部分保持不变。随着新的层不断增加,框架变得越来越难整体迁移,必须不断改动你原来没改的部分。\n(5)定制框架缺乏维护。通用技术往往有一个专门团队或公司来维护,但定制框架通常由一两个创建者拥有。一旦他们离开团队或公司,就很难找到接班人。定制框架很大可能会随着原作者离开而消失,除非在此之前获得了大量采用,才有人愿意接手,而这种情况很少发生。\n我不是说,你不要开发自己的框架,而是建议最好遵循三个原则:(1)新概念引入越少越好,(2)优先创建库,而不是框架。(3)不要做现有框架的包装器,而要从零开始构建。\n言论\n1、\n我想要的网络世界,是一个万物皆可塑的世界,让你不由自主地成为创造者。\n2、\nAI 让软件的成本从代码转移到测试和文档,一套好的测试套件的价值可能比编写代码本身更高。\n3、\n编程的核心在于抽象,即用一种远离底层技术的高级思维方式来思考代码。\n4、\n领导力就是让别人去做你想让他们做的事,而且是心甘情愿的。\n-- 艾森豪威尔,美国前总统\n往年回顾\n面试的 AI 作弊----用数字人去面试(#342)\n所有代码都是技术债(#292)\n一次尴尬的服务器被黑(#242)\n最大的机会来自新技术(#192)\n(完)\njhc 说:\n国外的情况我不清楚,我认为在国内技术面试并不是考候选人能不能写出正确代码,而是一种筛选手段\n2026年3月20日 09:22 | # | 引用\n小白 说:\n访达小子有点“幻视”阴阳脸的意思[:狗头]\n2026年3月20日 09:53 | # | 引用\nNobita 说:\n看完了AI创业的文章,作者结尾的感慨发人深省\n“未来并不是线性展开的。\n所以,焦虑并不能真正帮助我们接近未来。更重要的是,在你当下所能看到的边界之内,做一个对得起自己的选择;至于剩下的部分,就交给时间。”\n2026年3月20日 09:56 | # | 引用\nDeathGhost 说:\n访达小子 像 奶龙~哈哈\n2026年3月20日 09:57 | # | 引用\nvxcoder 说:\n以前研发讲究的是要理解系统里细化到每个字节的运行原理,现在跟我说这是黑箱,但你可以放心的交给一个概率模型去维护。\n2026年3月20日 10:22 | # | 引用\n陆波 说:\nai时代来了,感觉突然多了很多新知识和技术需要学习\n2026年3月20日 10:26 | # | 引用\nJK 说:\nCheatReader 来源于我对象的摸鱼需求,用了2小时使用OpenSpec辅助开发的项目,很荣幸第一次投稿就被选上了。如果有朋友使用过程中遇到问题或者有新的需求,欢迎提ISSUE~\n我烧了几个B的token去实验各种开发的姿势,慢慢的也有一些心得,我和几个朋友最近在做一款很有意思的项目,期待可以出现在下个月的周报中!\n2026年3月20日 12:25 | # | 引用\nk 说:\n你如果没有自已的想法,而整个项目或系统都交给AI,那么AI写出来东西,不都是抄袭现成的吗?\n它也不能自已创建出来一套新的架构或模式吧?\n2026年3月20日 14:25 | # | 引用\nmorty 说:\n服务器养殖蔬菜这不纯纯浪费电力吗?这种没脑子的文章怎么出现在这里。。。。\n2026年3月20日 14:45 | # | 引用\nLY 说:\n如果你想在家里种一些暖房植物,或者需要长时间光照的植物,服务器机柜确实是一个很好的方案。\n—— 看起来很赛博和有趣,但是\n室内、光照、隐蔽性\n这玩意儿更适合种的是某种加麻大特产\n2026年3月20日 14:47 | # | 引用\nDylan Yu 说:\n访达小子好像弗兰肯斯坦\n2026年3月20日 15:15 | # | 引用\nXZY 说:\n未来面试方也更加依赖AI,反正都是黑盒,都交由AI来判断啦。\n又或者是多开几个agent,减少程序员的需求。\n2026年3月20日 15:59 | # | 引用\nLeon 说:\n关于程序员面试问什么问题,我觉得除了考察 AI 的熟练度,还要考察对方的计算机基础、数据结构算法、设计模式,这些东西永远都不过时,如果时间充裕,可以给个课题,让对方现场用 ai 工具实现,看看效果如何\n2026年3月20日 16:34 | # | 引用\nh29 说:\n定制化框架可以理解为固化一些内部共识,但是也要能跟得上行业发展才行。\n2026年3月20日 16:58 | # | 引用\n求面试 说:\n对于程序员来说结构化表达越来越重要, 这包括能清晰的描述需求, 把需求讲解的编程Agent能充分理解, 清晰的表达技术要求, 需要作者有技术功底, 让大模型Agent理解设计质量, 避免写出一堆屎山代码。\n2026年3月20日 21:54 | # | 引用\nhttps://yijinlee.com李奕锦 说:\n未来的超级个体,是一个程序员带着一群 AI 助手,交付一支团队的产能。\n面试桌上,请放下笔试题,打开电脑,让他展示那些真正用 AI 辅助落地的项目。能把 AI 当作武器去攻城略地的实战派,才是 AI 时代真正稀缺的将才。\n2026年3月22日 10:38 | # | 引用\n徐晖 说:\n这一期质量很高,今后可以多转载些来自其它博客的文章\n2026年3月22日 10:39 | # | 引用\n阿楚 说:\n巴尔贝加尔水磨坊,近2000年还能保存这么多砖石?还是说后人修缮后的现状?\n2026年3月22日 12:16 | # | 引用\n勇者 StartUp 说:\n我来面试,会加上二分查找、冒牌排序的手写编码,难道一个程序员写不出排序和查找?\n2026年3月22日 21:31 | # | 引用\nwuqi 说:\n其实ai没那么全能,还有个问题,烧token是要钱的,有经验的至少知道怎么烧,你可以试试直接让产品烧token,看能不能烧出来正确的结果,ai一般是不会拒绝错误提议和方案的,正经程序员会考虑程序规模和布设成本,ai并不会管那么多...\n一个傻逼领导或者产品可是真的能提出来我们要做一个淘宝,ai也真的能附和这个傻逼\n2026年3月23日 08:45 | # | 引用\nSiu 说:\n我應徵過多次就只有一次是現場寫程序的。可能本港公司都不會現場考人。誰有這時間。\n2026年3月24日 12:47 | # | 引用", "quality_flags": { "is_paywalled": false, "is_truncated": false, "is_low_content": false }, "metadata": { "content_source": "fetched_html", "extractor": "trafilatura", "char_count": 6599 }, "pipeline_state": "extracted" }, "error": null, "debug": { "content_source": "fetched_html", "extractor": "trafilatura" }, "warnings": [] } }, { "item": { "item_id": "sha256:0d315d9489010cfd470a8d479e4e4443722fffdc34ecc1245c1b92458ace5093", "source_id": "freshrss:66c2d55d7563e741", "external_id": "tag:google.com,2005:reader/item/00064dc1a1f5c0db", "title": "科技爱好者周刊(第 388 期):测试是新的护城河", "url": "http://www.ruanyifeng.com/blog/2026/03/weekly-issue-388.html", "author": "阮一峰", "published_at": "2026-03-12T23:59:16Z", "discovered_at": "2026-03-25T08:40:22.917124Z", "content_kind": "article", "language": null, "raw_summary": "

这里记录每周值得分享的科技内容,周五发布。

\n\n

本杂志开源,欢迎投稿。另有《谁在招人》服务,发布程序员招聘信息。合作请邮件联系(yifeng.ruan@gmail.com)。

\n\n

封面图

\n\n

\"\"

\n\n

重庆涪陵某景区架设了世界首座\"巨石索桥\",桥面就是一块块巨石,一不小心就会踏空。(via)

\n\n

测试是新的护城河

\n\n

Next.js 是目前排名第一的 JS 框架。平时遇到的 JS 全栈应用,我估计,一半用它开发。

\n\n

\"\"

\n\n

两周前,这个框架被一则新闻颠覆了。

\n\n

一个 Cloudflare 工程师宣布,他只用一个星期就用 AI 重新实现了 Next.js,起名为 vinext。

\n\n

\"\"

\n\n

事实上,一天就生成产品原型了,后面几天只是在完善。

\n\n
\n

\"真正动手是2月13日,当天晚上,基本功能已经实现。第二天下午,11个路由器做好了10个。第三天,已经部署到我们的服务器,实现了完整的客户端水合。

\n\n

接下来的几天,主要进行安全加固:修复极端情况,扩展测试套件,提升 API 覆盖率至 94%。\"

\n
\n\n

这个新的实现,比原版 Next.js 性能更好。

\n\n
\n

\"早期基准测试中,构建速度提升了4倍,客户端软件包的体积缩小了57%,生产环境的 Next.js 应用已经直接跑在上面了。\"

\n
\n\n

这个 vinext 的代码已经放出来了。

\n\n

\"\"

\n\n

我觉得,这件事对 Next.js 的打击非常大。

\n\n

Next.js 是 Vercel 公司的产品,背后有一个大型开发团队,每年都是巨额投入,已经整整做了10年。虽然是开源软件,但是企业版、云服务、插件、皮肤都要收费,去年的年收入达到2亿美元。

\n\n

这种看似难以逾越的护城河,在 AI 面前不堪一击。一个工程师用了一个星期,就复刻了大团队十年的工作成果,现有的网页应用不改一行代码,放上去就能跑,原版的每个功能都支持。

\n\n

你知道花了多少钱?Token 费用仅仅为 1100 美元!

\n\n

这叫 Vercel 怎么再向 Next.js 的开发投钱,客户又怎么愿意再为某个功能付出高昂的使用费。

\n\n

推而广之,所有的商业软件都受到了重创。代码的护城河不存在了,只要投入一小笔金钱,AI 就能复刻出大型软件。

\n\n

那么,为了保护自己,软件公司下一步肯定要防止 AI 复刻。

\n\n

怎么防呢?关键就是测试用例。

\n\n

Cloudflare 工程师这一次能够复刻成功,主要原因是 Next.js 有完备的文档、庞大的社区文章、以及完整的测试用例。AI 模拟的每一个 API,只要能够通过原有的接口测试,就能确认百分百兼容。

\n\n

如果拿不到测试用例,谁知道代码行为是否一致,谁敢放到生产环境运行。

\n\n

可以想象,为了防止复刻,大型软件项目一定会保护自己的测试用例。测试才是新的护城河。

\n\n

\"\"

\n\n

世界最流行的数据库 SQLite,本身代码15.6万行,但是测试用例9205万行,足足大了590倍!

\n\n

其中,最核心的测试套件 TH3 是闭源的,不公开,主要测试航空、医疗等关键行业的极端情况和边缘案例,属于核心技术资产。正是这些保密用例,才让 SQLite 难以复刻。

\n\n

无独有偶,就在前两天,另一个开源项目 tldraw 也准备将测试用例闭源。

\n\n

\"\"

\n\n

说实话,保密的测试用例肯定不利于开源项目的发展,但是开发者需要保护自己的利益。在日益强大的 AI 面前,越来越多的软件可能会选择这样做。

\n\n

AI 复刻的版权问题

\n\n

AI 复刻软件还有一个版权问题,也引起了很大争议。

\n\n

\"\"

\n\n

Next.js 是最宽松的 MIT 许可证,所以复刻没有版权问题。但是,有人复刻了一个叫做 chardet 的项目,就争议巨大。

\n\n

chardet 本来采用的许可证,是限制较多的 LGPL,复刻以后改成了 MIT 许可证,引发了原始作者的抗议。

\n\n

网上的意见也分成了两派。

\n\n

支持者说,AI 只复刻了功能和接口,代码完全不一样,当然可以更改许可证。

\n\n

反对者说,GPL 规定了,所有衍生作品都不能更改许可证,AI 复刻就属于衍生。

\n\n

更麻烦的是,美国法律规定,AI 生成产物无版权,属于公共领域。这意味着,AI 复刻的软件不能设置许可证,设置了无效。

\n\n

按照这条法律,软件许可证就意义不大了。管你是什么许可证,任何人 AI 复刻一下就能规避,AI 实现的版本一律没有版权。

\n\n

科技动态

\n\n

1、AI 改写脏话

\n\n

游戏平台 Roblox 宣布,将用 AI 实时修改玩家的对话,让其变得更文明。

\n\n

\"\"

\n\n

以前,如果玩家在游戏里面骂脏话,系统只会将其过滤,显示为 ####,你还是知道他在骂人。

\n\n

现在,AI 将重新修改整个句子,让表达变得更礼貌、更文明,你就察觉不到对方在骂人。

\n\n

虽然这样未免有点虚假,但确实有必要。网络论坛也应该跟进,不要让人身攻击毁掉交流氛围。

\n\n

2、飞机的激光上网

\n\n

欧洲航天局成功进行了飞机的\"激光上网\"实验,通过激光将一架飞机与一颗卫星连接,实现了高速通信。

\n\n

\"\"

\n\n

飞机上网现在都通过无线电波,比如星链就通过无线电,让飞机连接卫星。本次实验则是通过激光连接卫星。

\n\n

\"\"

\n\n

上图就是安装在飞机舷窗上的激光终端。

\n\n

激光通信的优点是带宽大,不受无线频谱的限制,这次实验的上网速度达到了 2.6Gbps,是星链的8到10倍。

\n\n

缺点是激光与卫星之间必须保持直线,不能有云层和大气的障碍物。所以采用这种方式,大概只有飞到高空时才能上网。

\n\n

3、Grammarly 的专家意见

\n\n

Grammarly 是一个写作服务,提供一个收费功能\"专家意见\",让专家点评你的文章。

\n\n

\"\"

\n\n

一个国外用户使用该功能时,震惊地发现,点评专家里面有他的前老板(下图),但是他知道老板已经去世了。

\n\n

\"\"

\n\n

原来这不是真人点评,而是 AI 为每个专家建了一个分身,用他们各自的文章进行训练,然后让分身点评你的文章。

\n\n

这引起了争议,我们是否有权搭建别人的\"数字分身\",然后冠以原始人物的名义(比如\"孔子分身\"或者\"爱因斯坦分身\")?

\n\n

4、太阳能邮筒

\n\n

网络通信普及以后,传统的邮筒怎么办?

\n\n

英国皇家邮政想出一个办法,将英国各地3500个邮筒,变为\"太阳能邮筒\"。

\n\n

\"\"

\n\n

邮筒顶部加装了太阳能光伏片,功能也从寄信,变成了收寄小包裹。

\n\n

\"\"

\n\n

这样既保存了传统的红色邮筒,成为街道的景观,又为人们邮寄包裹提供了方便。

\n\n

\"\"

\n\n

文章

\n\n

1、GitHub Issue 标题的注入攻击(英文)

\n\n

\"\"

\n\n

这可能是第一起 AI 模型注入的真实攻击。Cline 项目使用 AI 对 GitHub Issue 进行分类,有人就在标题插入恶意提示词,从而成功拿到 npm 令牌,发布了一个恶意版本。本文告诉你这是怎么做到的。

\n\n

2、重新评估 AGENTS.md(英文)

\n\n

\"\"

\n\n

最近的一项研究提出,跟推荐做法相反,AGENTS.md 文件对 AI 编码不是促进,而是阻碍。

\n\n

它只是让模型\"思考\"得更多(成本上升),生成结果却没有更好(性能下降)。

\n\n

3、Temporal API 的九年历程(英文)

\n\n

\"\"

\n\n

本周,Temporal API 正式通过了第四阶段。这意味着,它进入了 ES2026 标准,成为了 JavaScript 语法的一部分。本文是这个标准的起草者对九年推进历程的回顾。

\n\n

4、AI 的胡说测试(英文)

\n\n

\"\"

\n\n

国外有一个 BuillshitBench,专门问 AI 一些胡说八道的问题,看 AI 能不能分辨这是胡说,还是一本正经地回答。

\n\n

5、原生 CSS 就足够了(英文)

\n\n

\"\"

\n\n

本文展示了 37Signals 公司的 CSS 代码,表明不使用任何框架(比如 Tailwind)和构建工具(比如 Sass),只用原生 CSS 代码完全可以。

\n\n

6、粪便物理学(英文)

\n\n

\"\"

\n\n

一篇很另类的科普文章,解释为什么动物不管大小,排便时间都在5~19秒之间,平均12秒。

\n\n

工具

\n\n

1、KULA

\n\n

\"\"

\n\n

Linux 服务器的监控工具,只有一个二进制文件。

\n\n

2、AnsiSaver

\n\n

\"\"

\n\n

mac 电脑的屏保程序,用彩色的 Ansi 字符画作为屏保图案。

\n\n

3、upiano

\n\n

\"\"

\n\n

在命令行下模拟钢琴弹奏。

\n\n

4、WSL Distro Manager

\n\n

\"\"

\n\n

一个开源 Windows 应用,通过图形界面管理 Windows Subsystem for Linux(WSL)发行版。

\n\n

5、Mole

\n\n

\"\"

\n\n

开源的 Mac 电脑清理和优化工具。

\n\n

6、PipeGate

\n\n

一个将内网服务映射到外网的隧道工具,特点是比较简单,就是几个 Python 脚本,并且可以设置 UUID 客户端认证。

\n\n

7、HookListener

\n\n

\"\"

\n\n

一个管理、测试 Webhook 的在线工具,个人可以免费使用。

\n\n

8、Sentinel

\n\n

\"\"

\n\n

将安卓手机转化为网络摄像头,实现实时监控和图像采集。(@suzuran0 投稿)

\n\n

9、Flux Monitor

\n\n

\"\"

\n\n

Mac 电脑的系统监控、管理面板。(@chentao1006 投稿)

\n\n

AI 相关

\n\n

1、Agentic Metric

\n\n

\"\"

\n\n

一个 Python 命令行工具,监控本地各种 coding agent(比如 Claude Code、Codex、OpenCode)的使用量。(@MrQianjinsi 投稿)

\n\n

2、cc-connect

\n\n

\"\"

\n\n

一个开源的连接器,将各种 AI 编程工具与手机聊天软件相连。(@chenhg5 投稿)

\n\n

3、Page Agent

\n\n

\"\"

\n\n

只要在网页插入这个 JS 库,就可以使用自然语言操作页面,比如\"点击导航栏的文档链接,总结其内容\"。

\n\n

4、Agent Safehouse

\n\n

一个 macOS 沙箱工具,用来在沙箱里运行 AI 编程工具。

\n\n

5、Repo Tokens

\n\n

\"\"

\n\n

一个 GitHub Action,为你的仓库添加一个图形标签(上图),显示该仓库相当于多少 Token,用来大模型的计算量。

\n\n

资源

\n\n

1、世界监控(World Monitor)

\n\n

\"\"

\n\n

世界局势的一个实时看板,把各种消息源都放在一个网页里。

\n\n

2、炼油厂探索

\n\n

\"\"

\n\n

一个动画互动网站,展示炼油厂怎样将石油变成汽柴油。

\n\n

3、Mechanical Pencil

\n\n

\"\"

\n\n

弹簧笔、打火机等生活小物品的机械装置动画。

\n\n

图片

\n\n

1、密码的替代方法

\n\n

一位程序员发明了一种新的密码方法,你觉得可行吗?

\n\n

系统向用户展示一副扑克牌,让其从52张牌中依次挑出5张,作为密码。

\n\n

\"\"

\n\n

下次登录时,用户必须按同样顺序挑出同样的5张牌。

\n\n

文摘

\n\n

1、复杂社会的崩溃

\n\n

我们都知道,一个软件的复杂度不断上升,超过某个极限后,就会难以维护,最后往往被放弃。

\n\n

美国历史学家约瑟夫·坦特(Joseph Tainter)认为,人类社会也是如此。如果社会的复杂度超过极限,这个社会最终也会崩溃。

\n\n

\"\"

\n\n

1988年,他出版了一本名为《复杂社会的崩溃》的书,描述了罗马人、玛雅人和查科人等伟大文明的兴衰,试图回答几个世纪以来一直困扰着思想家的一个问题:为什么强大的社会会崩溃?

\n\n

他认为,原因是这些社会有一个敌人----复杂性。

\n\n

随着文明的发展,社会增加了越来越多的复杂性:更多的等级制度、更多的官僚机构、更深层次的社会结构。

\n\n

一开始,新的等级、官僚、组织都是有用的,比如可以增加经济产出、税收等。但到了某个时刻,收益递减规律开始出现,每增加一点复杂度带来的回报越来越少,直至变成零甚至负数。

\n\n

(1)法律条文和官僚越多,政府开销也就随之上升,长期很可能令社会无法负担。

\n\n

(2)复杂度变大,会增加社会的不平等,因为能理解所有规则的人就越少,你就越离不开律师。懂规则的人会比其他人占优势。

\n\n

(3)规则越多,维护和执行这些规则的机构也就越多,不利于社会提高效率。

\n\n

(4)复杂性最终导致社会各阶层的差距变大,对立也随之而来。

\n\n

以上因素的共同作用,导致历史上很多强大的社会最终崩溃。

\n\n

言论

\n\n

1、

\n\n

2021年,我感觉做一名优秀的软件工程师棒极了。软件行业蓬勃发展,机会很多,我热爱这份工作,觉得可以永远做下去。

\n\n

2026年,我已经不确定软件行业十年后会怎样,即使还存在,必定与现在极不相同。我也许能找到出路,也许不得不离开这个行业。无论如何,我热爱的软件工作即将消失。

\n\n

-- 《我不知道十年后我的工作是否还存在》

\n\n

2、

\n\n

与强大的 AI 对抗会是什么感觉?

\n\n

你会感觉自己莫名其妙地弱了不少,AI 做的每件事都超出你的预期。

\n\n

这就好像你和一位实力强劲的玩家玩一款随机性很强的游戏,你会感觉这位高手总是运气爆棚。

\n\n

-- probablydance.com

\n\n

3、

\n\n

阅读商战书籍是浪费时间。它们将简单的故事变成通用的建议,将偶然的成功转化为普遍的策略,并用激励人心的口号取代复杂的市场。

\n\n

这些书的成功并不是因为内容正确,而是因为易于阅读并且让读者感觉良好。

\n\n

-- 《阅读商战书籍是浪费时间》

\n\n

4、

\n\n

我想让 AI 告诉我怎么使用一种全新的、AI 也不会用的工具,就会提示 AI \"执行 xxx-tool --help 来了解该工具\"(假定工具名字是 xxx-tool),然后 AI 就学会用了。

\n\n

-- Simon Willison,著名开发者

\n\n

5、

\n\n

时间是唯一不可再生的资源。AI 大模型是目前我所知的最便宜的赚取额外时间的方式。

\n\n

-- 《不要太看重 AI 大模型的订阅费》

\n\n

往年回顾

\n\n

低代码编程,恐怕不会成功(#341)

\n\n

AI 没有护城河(#291)

\n\n

中国的增长动力在内陆(#241)

\n\n

一个程序员的财务独立之路(#191)

\n\n

(完)

\n\n

文档信息

\n
\n
", "raw_content": null, "metadata": { "upstream": "freshrss", "origin": { "streamId": "feed/2", "htmlUrl": "http://www.ruanyifeng.com/blog/", "title": "阮一峰的网络日志" }, "categories": [ "rss", "user/-/state/org.freshrss/main", "Weekly" ], "crawled_at": "2026-03-24T09:18:21.528000Z", "published_epoch": 1773359956 }, "fetch_state": "pending" }, "extraction": { "success": true, "article": { "extract_id": "sha256:fdc9230d42ec24f867f94f3198960e8104f633fb8ab532645b384baf1df6b369", "item_id": "sha256:0d315d9489010cfd470a8d479e4e4443722fffdc34ecc1245c1b92458ace5093", "source_id": "freshrss:66c2d55d7563e741", "url": "http://www.ruanyifeng.com/blog/2026/03/weekly-issue-388.html", "title": "科技爱好者周刊(第 388 期):测试是新的护城河", "author": "阮一峰", "published_at": "2026-03-12T23:59:16Z", "language": null, "content_kind": "article", "plain_text": "这里记录每周值得分享的科技内容,周五发布。\n本杂志开源,欢迎投稿。另有《谁在招人》服务,发布程序员招聘信息。合作请邮件联系([email protected])。\n封面图\n重庆涪陵某景区架设了世界首座\"巨石索桥\",桥面就是一块块巨石,一不小心就会踏空。(via)\n测试是新的护城河\nNext.js 是目前排名第一的 JS 框架。平时遇到的 JS 全栈应用,我估计,一半用它开发。\n两周前,这个框架被一则新闻颠覆了。\n一个 Cloudflare 工程师宣布,他只用一个星期就用 AI 重新实现了 Next.js,起名为 vinext。\n事实上,一天就生成产品原型了,后面几天只是在完善。\n\"真正动手是2月13日,当天晚上,基本功能已经实现。第二天下午,11个路由器做好了10个。第三天,已经部署到我们的服务器,实现了完整的客户端水合。\n接下来的几天,主要进行安全加固:修复极端情况,扩展测试套件,提升 API 覆盖率至 94%。\"\n这个新的实现,比原版 Next.js 性能更好。\n\"早期基准测试中,构建速度提升了4倍,客户端软件包的体积缩小了57%,生产环境的 Next.js 应用已经直接跑在上面了。\"\n这个 vinext 的代码已经放出来了。\n我觉得,这件事对 Next.js 的打击非常大。\nNext.js 是 Vercel 公司的产品,背后有一个大型开发团队,每年都是巨额投入,已经整整做了10年。虽然是开源软件,但是企业版、云服务、插件、皮肤都要收费,去年的年收入达到2亿美元。\n这种看似难以逾越的护城河,在 AI 面前不堪一击。一个工程师用了一个星期,就复刻了大团队十年的工作成果,现有的网页应用不改一行代码,放上去就能跑,原版的每个功能都支持。\n你知道花了多少钱?Token 费用仅仅为 1100 美元!\n这叫 Vercel 怎么再向 Next.js 的开发投钱,客户又怎么愿意再为某个功能付出高昂的使用费。\n推而广之,所有的商业软件都受到了重创。代码的护城河不存在了,只要投入一小笔金钱,AI 就能复刻出大型软件。\n那么,为了保护自己,软件公司下一步肯定要防止 AI 复刻。\n怎么防呢?关键就是测试用例。\nCloudflare 工程师这一次能够复刻成功,主要原因是 Next.js 有完备的文档、庞大的社区文章、以及完整的测试用例。AI 模拟的每一个 API,只要能够通过原有的接口测试,就能确认百分百兼容。\n如果拿不到测试用例,谁知道代码行为是否一致,谁敢放到生产环境运行。\n可以想象,为了防止复刻,大型软件项目一定会保护自己的测试用例。测试才是新的护城河。\n世界最流行的数据库 SQLite,本身代码15.6万行,但是测试用例9205万行,足足大了590倍!\n其中,最核心的测试套件 TH3 是闭源的,不公开,主要测试航空、医疗等关键行业的极端情况和边缘案例,属于核心技术资产。正是这些保密用例,才让 SQLite 难以复刻。\n无独有偶,就在前两天,另一个开源项目 tldraw 也准备将测试用例闭源。\n说实话,保密的测试用例肯定不利于开源项目的发展,但是开发者需要保护自己的利益。在日益强大的 AI 面前,越来越多的软件可能会选择这样做。\nAI 复刻的版权问题\nAI 复刻软件还有一个版权问题,也引起了很大争议。\nNext.js 是最宽松的 MIT 许可证,所以复刻没有版权问题。但是,有人复刻了一个叫做 chardet 的项目,就争议巨大。\nchardet 本来采用的许可证,是限制较多的 LGPL,复刻以后改成了 MIT 许可证,引发了原始作者的抗议。\n网上的意见也分成了两派。\n支持者说,AI 只复刻了功能和接口,代码完全不一样,当然可以更改许可证。\n反对者说,GPL 规定了,所有衍生作品都不能更改许可证,AI 复刻就属于衍生。\n更麻烦的是,美国法律规定,AI 生成产物无版权,属于公共领域。这意味着,AI 复刻的软件不能设置许可证,设置了无效。\n按照这条法律,软件许可证就意义不大了。管你是什么许可证,任何人 AI 复刻一下就能规避,AI 实现的版本一律没有版权。\n科技动态\n1、AI 改写脏话\n游戏平台 Roblox 宣布,将用 AI 实时修改玩家的对话,让其变得更文明。\n以前,如果玩家在游戏里面骂脏话,系统只会将其过滤,显示为 ####\n,你还是知道他在骂人。\n现在,AI 将重新修改整个句子,让表达变得更礼貌、更文明,你就察觉不到对方在骂人。\n虽然这样未免有点虚假,但确实有必要。网络论坛也应该跟进,不要让人身攻击毁掉交流氛围。\n2、飞机的激光上网\n欧洲航天局成功进行了飞机的\"激光上网\"实验,通过激光将一架飞机与一颗卫星连接,实现了高速通信。\n飞机上网现在都通过无线电波,比如星链就通过无线电,让飞机连接卫星。本次实验则是通过激光连接卫星。\n上图就是安装在飞机舷窗上的激光终端。\n激光通信的优点是带宽大,不受无线频谱的限制,这次实验的上网速度达到了 2.6Gbps,是星链的8到10倍。\n缺点是激光与卫星之间必须保持直线,不能有云层和大气的障碍物。所以采用这种方式,大概只有飞到高空时才能上网。\nGrammarly 是一个写作服务,提供一个收费功能\"专家意见\",让专家点评你的文章。\n一个国外用户使用该功能时,震惊地发现,点评专家里面有他的前老板(下图),但是他知道老板已经去世了。\n原来这不是真人点评,而是 AI 为每个专家建了一个分身,用他们各自的文章进行训练,然后让分身点评你的文章。\n这引起了争议,我们是否有权搭建别人的\"数字分身\",然后冠以原始人物的名义(比如\"孔子分身\"或者\"爱因斯坦分身\")?\n4、太阳能邮筒\n网络通信普及以后,传统的邮筒怎么办?\n英国皇家邮政想出一个办法,将英国各地3500个邮筒,变为\"太阳能邮筒\"。\n邮筒顶部加装了太阳能光伏片,功能也从寄信,变成了收寄小包裹。\n这样既保存了传统的红色邮筒,成为街道的景观,又为人们邮寄包裹提供了方便。\n文章\n1、GitHub Issue 标题的注入攻击(英文)\n这可能是第一起 AI 模型注入的真实攻击。Cline 项目使用 AI 对 GitHub Issue 进行分类,有人就在标题插入恶意提示词,从而成功拿到 npm 令牌,发布了一个恶意版本。本文告诉你这是怎么做到的。\n2、重新评估 AGENTS.md(英文)\n最近的一项研究提出,跟推荐做法相反,AGENTS.md 文件对 AI 编码不是促进,而是阻碍。\n它只是让模型\"思考\"得更多(成本上升),生成结果却没有更好(性能下降)。\n3、Temporal API 的九年历程(英文)\n本周,Temporal API 正式通过了第四阶段。这意味着,它进入了 ES2026 标准,成为了 JavaScript 语法的一部分。本文是这个标准的起草者对九年推进历程的回顾。\n4、AI 的胡说测试(英文)\n国外有一个 BuillshitBench,专门问 AI 一些胡说八道的问题,看 AI 能不能分辨这是胡说,还是一本正经地回答。\n5、原生 CSS 就足够了(英文)\n本文展示了 37Signals 公司的 CSS 代码,表明不使用任何框架(比如 Tailwind)和构建工具(比如 Sass),只用原生 CSS 代码完全可以。\n6、粪便物理学(英文)\n一篇很另类的科普文章,解释为什么动物不管大小,排便时间都在5~19秒之间,平均12秒。\n工具\n1、KULA\nLinux 服务器的监控工具,只有一个二进制文件。\nmac 电脑的屏保程序,用彩色的 Ansi 字符画作为屏保图案。\n3、upiano\n在命令行下模拟钢琴弹奏。\n一个开源 Windows 应用,通过图形界面管理 Windows Subsystem for Linux(WSL)发行版。\n5、Mole\n开源的 Mac 电脑清理和优化工具。\n6、PipeGate\n一个将内网服务映射到外网的隧道工具,特点是比较简单,就是几个 Python 脚本,并且可以设置 UUID 客户端认证。\n一个管理、测试 Webhook 的在线工具,个人可以免费使用。\n8、Sentinel\n将安卓手机转化为网络摄像头,实现实时监控和图像采集。(@suzuran0 投稿)\nMac 电脑的系统监控、管理面板。(@chentao1006 投稿)\nAI 相关\n一个 Python 命令行工具,监控本地各种 coding agent(比如 Claude Code、Codex、OpenCode)的使用量。(@MrQianjinsi 投稿)\n一个开源的连接器,将各种 AI 编程工具与手机聊天软件相连。(@chenhg5 投稿)\n只要在网页插入这个 JS 库,就可以使用自然语言操作页面,比如\"点击导航栏的文档链接,总结其内容\"。\n一个 macOS 沙箱工具,用来在沙箱里运行 AI 编程工具。\n一个 GitHub Action,为你的仓库添加一个图形标签(上图),显示该仓库相当于多少 Token,用来大模型的计算量。\n资源\n1、世界监控(World Monitor)\n世界局势的一个实时看板,把各种消息源都放在一个网页里。\n2、炼油厂探索\n一个动画互动网站,展示炼油厂怎样将石油变成汽柴油。\n弹簧笔、打火机等生活小物品的机械装置动画。\n图片\n1、密码的替代方法\n一位程序员发明了一种新的密码方法,你觉得可行吗?\n系统向用户展示一副扑克牌,让其从52张牌中依次挑出5张,作为密码。\n下次登录时,用户必须按同样顺序挑出同样的5张牌。\n文摘\n1、复杂社会的崩溃\n我们都知道,一个软件的复杂度不断上升,超过某个极限后,就会难以维护,最后往往被放弃。\n美国历史学家约瑟夫·坦特(Joseph Tainter)认为,人类社会也是如此。如果社会的复杂度超过极限,这个社会最终也会崩溃。\n1988年,他出版了一本名为《复杂社会的崩溃》的书,描述了罗马人、玛雅人和查科人等伟大文明的兴衰,试图回答几个世纪以来一直困扰着思想家的一个问题:为什么强大的社会会崩溃?\n他认为,原因是这些社会有一个敌人----复杂性。\n随着文明的发展,社会增加了越来越多的复杂性:更多的等级制度、更多的官僚机构、更深层次的社会结构。\n一开始,新的等级、官僚、组织都是有用的,比如可以增加经济产出、税收等。但到了某个时刻,收益递减规律开始出现,每增加一点复杂度带来的回报越来越少,直至变成零甚至负数。\n(1)法律条文和官僚越多,政府开销也就随之上升,长期很可能令社会无法负担。\n(2)复杂度变大,会增加社会的不平等,因为能理解所有规则的人就越少,你就越离不开律师。懂规则的人会比其他人占优势。\n(3)规则越多,维护和执行这些规则的机构也就越多,不利于社会提高效率。\n(4)复杂性最终导致社会各阶层的差距变大,对立也随之而来。\n以上因素的共同作用,导致历史上很多强大的社会最终崩溃。\n言论\n1、\n2021年,我感觉做一名优秀的软件工程师棒极了。软件行业蓬勃发展,机会很多,我热爱这份工作,觉得可以永远做下去。\n2026年,我已经不确定软件行业十年后会怎样,即使还存在,必定与现在极不相同。我也许能找到出路,也许不得不离开这个行业。无论如何,我热爱的软件工作即将消失。\n2、\n与强大的 AI 对抗会是什么感觉?\n你会感觉自己莫名其妙地弱了不少,AI 做的每件事都超出你的预期。\n这就好像你和一位实力强劲的玩家玩一款随机性很强的游戏,你会感觉这位高手总是运气爆棚。\n3、\n阅读商战书籍是浪费时间。它们将简单的故事变成通用的建议,将偶然的成功转化为普遍的策略,并用激励人心的口号取代复杂的市场。\n这些书的成功并不是因为内容正确,而是因为易于阅读并且让读者感觉良好。\n4、\n我想让 AI 告诉我怎么使用一种全新的、AI 也不会用的工具,就会提示 AI \"执行 xxx-tool --help 来了解该工具\"(假定工具名字是 xxx-tool),然后 AI 就学会用了。\n-- Simon Willison,著名开发者\n5、\n时间是唯一不可再生的资源。AI 大模型是目前我所知的最便宜的赚取额外时间的方式。\n往年回顾\n低代码编程,恐怕不会成功(#341)\nAI 没有护城河(#291)\n中国的增长动力在内陆(#241)\n一个程序员的财务独立之路(#191)\n(完)\n一剑飘红 说:\n密码的替代方法?往期周刊好像提到有人开发过一种图像密码,就是点击图片中的某几个位置来作为密码的\n2026年3月13日 09:11 | # | 引用\ndong 说:\n我fork了一个next.js仓库,算是重新生成了一个next.js的替代品吗?\n有大公司会用AI生成的吗?\n保证没有bug吗?\n以后的升级、维护,以及支持,有人管吗?\n2026年3月13日 09:12 | # | 引用\nqiba 说:\n关于那个原生css就够了。所有的框架和构建工具最终都还是要转成原生css的,并没有在原生之外使用什么新的技术,所以不存在原生css就够了这个问题。框架和构建工具只不过是为了方便开发者,减轻部分重复的工作量\n2026年3月13日 09:18 | # | 引用\n北石 说:\n昨天公司也裁员了,现在AI的大力推广对于普通程序员来说并不是一件好事,可替代性太强\n2026年3月13日 09:52 | # | 引用\nAmaF 说:\n扑克牌密码我觉得非常不可行,5个数字好说,5个花色的顺序好难记\n2026年3月13日 10:34 | # | 引用\nF^[email protected] 说:\n在未来,AI会被政府所完全掌控,包括所有的能用到的AI领域与边界。由政府来分配AI资源。因为AI的产生与使用本身就是集整个社会资源与一体的东西。所以,这样的东西不应被任何资本或个人滥用。就像WIFI-水-电-油-粮这样的基础设施。\n只有这样,才能维持稳定的人口结构与避免陷入全球内卷的陷阱。\n当然,这时候的世界,已经很像《我们》与《美丽新世界》了。\n当我前段时间想到这样的未来时,我豁然开朗,不再焦虑。\n2026年3月13日 10:44 | # | 引用\n4cos90 说:\n重新实现? ❌\n照着开源代码优化了一版 √\n没有原版的产品原型和代码 AI 能用这么少token实现吗,光整理需求输入都费劲吧。\n2026年3月13日 11:03 | # | 引用\njiangnanboy 说:\nai的发展是码农的终结者,一声叹息\n2026年3月13日 11:09 | # | 引用\napp 说:\n为什么不能用ai生成测试用例\n2026年3月13日 11:37 | # | 引用\nid17 说:\nClinejection 那个攻击一顿操作猛如虎,最后是装 openclaw。最近付费装 openclaw 的可以装个 cline 解决一下哈哈。这是真的安装免费,付费删除了\n2026年3月13日 12:03 | # | 引用\nanny 说:\n我觉得裁员和ai没有必然的关系,无论有没有都会拆员,AI的出现会提高程序员效率是显而易见的,就像不断有新的技术和框架出现一样,你如果停滞不前被淘汰是早晚的问题。和技术没关系。\n2026年3月13日 12:49 | # | 引用\nLeo 说:\n8、Sentinel\n实际仓库名是 CCTV-Smartphone-AI-Monitoring。\n2026年3月13日 13:12 | # | 引用\nNoOne 说:\n涉及复杂的专业业务场景,这些是不公开的。\n2026年3月13日 13:52 | # | 引用\nlio 说:\nAI对于各个代码第三方包。并不进行校验,而是依赖于文字描述\nai的知识库中并没有对于人类和ai进行合作的知识。所以ai的回答并不是最优解。人类社会甚至还没发明出成熟的 “AI协作方法论”\n上下文腐烂问题。聊的越久,可能反应的越差\n自动化的程序越高,需要人力参与的进度越多,Automation Paradox(自动化悖论)自动化越高,人类越关键。并不是解决了问题,而是将问题进行转移了。\n当 AI 模型不知道某件事时,它并不总会说“I don't know.” 相反,它会基于见过的模式生成看起来最可能的内容。这几条是我整理出来的对于ai的一些心得。不知道大家是什么看法\n2026年3月13日 13:55 | # | 引用\nXZY 说:\n就像唱片普及了之后,去听音乐会的人就少了。现场听的确沉浸感更强,但是大多数人能够忍受这样的品质下降的了。\n没有test case保证的AI生成的代码,也会有那些只要短时间能上而不是那么在意品质的人喜欢用的。毕竟大部分软件都没有办法活到类似sqlite的高度的。\n2026年3月13日 14:00 | # | 引用\nBFlower 说:\nwindows 锁屏可以设这种图片密码诶\n2026年3月13日 14:03 | # | 引用\nmirakyux 说:\nwindows之前的登录方式里就有个这样的图片密码\n2026年3月13日 14:05 | # | 引用\n老牛 说:\n大概率都是:黑红梅方 LOL\n2026年3月13日 14:11 | # | 引用\nrz 说:\n我建议可以搞一个“爱泼斯坦”分身,谁赞成?谁同意?\n2026年3月13日 14:12 | # | 引用\n秋风于渭水 说:\n即使chardet 7.0开发者只给 AI 提供 chardet 的 API 文档、功能描述和测试用例,完全不给 AI 看 chardet 的底层源码。看上去 AI 真的是凭空写出了一套能通过所有测试的代码。\n但像 GPT-4、Claude、Gemini 这样的超大模型,其训练数据中极大概率已经包含了开源的 chardet 源码。当chardet 7.0的开发者要求 AI “写一个类似 chardet 的工具”时,AI 实际上可能是从它的权重记忆中“回想”并“拼凑”出了原版 LGPL 代码的逻辑或片段,而不是真正从零开始推导。如果生成的代码中带有原始 chardet 的“代码指纹”或特有的非标准逻辑,并不是真正意义上的从0开始写的,我感觉在法律上依然会被判定为衍生作品。\n2026年3月13日 14:35 | # | 引用\nxsng 说:\n不就是以前的卡密吗?\n2026年3月13日 15:00 | # | 引用\nDangGwanHOu 说:\n扑克牌密码的复杂度应该是(A_52)^5,即排列组合的A、52下标、5上标,存在52 * 51 * 50 * 49 * 48 = 311_875_200种可能,即3.11亿种。如果网站没有设置锁IP等防暴力破解的安全措施,理论上很容易被破解\n2026年3月13日 15:13 | # | 引用\nbaochuquan 说:\nAI发展至今,一切始于代码开源,程序员最终把自己的命革掉了\n2026年3月13日 15:44 | # | 引用\ntietouwa 说:\n人类成功从cmd发展出UI,现在又回到了cmd,以后人手一个AI,是不是就不需要UI了\n2026年3月13日 16:17 | # | 引用\n草梅友仁 说:\n扑克牌密码从本质上讲是52个字符选5个到排列数,甚至不能重复,粗略算了下一共就3亿多种可能性。\n字符数量其实跟只使用英文字符大小写是一样的,而通常安全的密码还会要求添加数字、特殊字符等来扩大字符范围,也会要求更长的密码来增加破解时间。\n故扑克牌密码作为一个秘密是不怎么安全的,只是看上去花哨。\n2026年3月13日 16:35 | # | 引用\nzheng 说:\n数字芯片设计,不仅RTL代码不开源,工具链还支持代码加密,可以商业IP买卖,验证代码一样,各种协议的验证代码,测试用例,都有商业化,比如synopsis。想AI化?连训练素材都拿不到,只有使用文档,有问题就人工技术支持\n2026年3月13日 16:38 | # | 引用\n云闲 说:\n“早晚”的问题对于程序员来事就是最大的问题。多工作一年多赚一年,AI的快速进步使得问题变得更严峻。虽然未来很美好,可惜现阶段人们需要工作来赚钱养家糊口。\n2026年3月13日 17:18 | # | 引用\nLance 说:\n问题是,走向这一最终图景(且是积极的结局,而非cyberpunk)的过程是很痛苦黑暗动荡的\n2026年3月13日 17:25 | # | 引用\nKsir 说:\n代码正在变得廉价,而“解决问题的逻辑”正在变得昂贵。 测试中包含了解决什么问题的细节和验证\n2026年3月13日 19:24 | # | 引用\n老鱼 说:\n你错了。你们公司并不是因为 AI 才裁员的。而是因为现在经济很不好,巨头们拿走了大多数利益并且掌控了互联网上面的多数变现渠道。你们公司因为利润过低亏损而开始裁员。AI 当然提升了效率,增加了需求和岗位,但是这些岗位又被集中到大厂去,因为只有大厂才有资源训练 AI 以及对应用场景进行试错。并且现在的大厂似乎并不愿意把生态让出来给中小厂,而是自己亲自动手做应用。因此,这次的 AI 狂潮,对于国内,几乎只是大厂们自己的狂欢。\n另外,有可能你们公司已经亏损很久了,所以用 AI 这个借口开始裁员而已。\n这就是一句名言所说的“雪崩时,没有一片雪花是无辜的。”国内经济不好时,只要身处这个环境就不可能独善其身。\n2026年3月13日 19:54 | # | 引用\n老鱼 说:\n这基本上就是做梦。这种许愿发生的可能性很低。AI 必然会被资本控制。普通人,还是准备好迎接时代大山压来吧。几乎每次工业革命都会带来战争,第一次、第二次都是。第三次信息革命带来了冷战。很快就要热战了。大家不打几仗是打不成共识的。\n2026年3月13日 19:59 | # | 引用\n明知故犯 说:\n人类目前的排便时间应该会超过这个平均数字,如果是拿着手机,时间会更久一些\n2026年3月13日 21:01 | # | 引用\nRedNax 说:\n略扯。\n先不说第一次第二次工业革命是不是“带来”了战争,第三次信息革命发生的时候都苏联解体冷战结束了,哪来战争?海湾战争也要按到信息革命上去吗?\n2026年3月14日 04:50 | # | 引用\ndg1245 说:\n过去记录密码是:脑子想一组数字字符,注册账号输入密码,然后用纸笔记录密码;\n现在是:从一副扑克牌里随机抽取几张牌,注册账号选择扑克牌作为密码,然后把抽取的扑克牌按顺序塞到信封里放到抽屉里;\n好处是:抽牌比脑子想更随机,不用费劲写字,实物存储密码比网络存储安全;\n缺点很多,不一一列举。\n2026年3月14日 12:49 | # | 引用\ndatou 说:\n《复杂社会的崩溃》-复杂性边际收益递减,我觉得AI有机会解决这个问题,类似规则太多和需要律师的事,需要使用AI工具打破,包括阶级也是。现在有些医疗种类,明目张胆地结团牟利,感觉已经形成了利益阶层,没有重大变故,难以打破。需要AI工具支持下的平权冲击。\n2026年3月14日 21:20 | # | 引用\nc0m4r 说:\n感谢您提到我的监控工具 - KULA。我邀请所有中国朋友来尝试一下!如果您有任何问题或想要提出更改建议,请在 Github 上写一个问题 - 可能会用您的语言!谢谢。\n2026年3月15日 09:13 | # | 引用\nmat 说:\n很多测试用例都是根据实际问题衍生的,这种测试用例AI没法生成\n2026年3月15日 13:31 | # | 引用\nplaster 说:\n不同的是,速度太快了。\n原来新的技术、新的框架出来,到真正大规模应用都有一个比较长的过程,在这个过程中会产生更多的需求,因此效率提高了但对人的需求不会显著降低。\n现在AI替代编程的这个速度,直接把人的岗位的替代了,而新岗位还没有产生\n2026年3月16日 12:03 | # | 引用\n光 说:\n不但不需要ui,我看高级语言也不需要,直接二进制。反正AI写的一定大概率会比人写的好,而且只要通过测试,管它代码怎么写的呢?参考AlphaGo下围棋人类看不懂之案例。\n2026年3月16日 21:42 | # | 引用\ndodo 说:\n这不就是安卓的锁屏密码嘛\n2026年3月17日 11:35 | # | 引用\nshen 说:\n1. 巨石悬索桥是怎么保证游客安全的?\n2. 英国红色邮筒,太阳能板和寄包裹有啥关系呢?\n2026年3月18日 17:52 | # | 引用\nshen 说:\n说明不相信AI\n2026年3月18日 18:03 | # | 引用\nKit Yeung 说:\n虽然测试用例可以用于复刻开源产品,但是生态还是无法复刻的。而且从用户的角度来看,其实这是好事,谁的点子多,功能好,就可以取代你,相应的会促进当前产品开发的居安思危,才能把产品做得更好,否则随时被取代。\n不然想A\\一样,面对opencode和openclaw的行为,只会增加公众对他的厌恶\n2026年3月20日 15:27 | # | 引用\n阿债 说:\n大树杜鹃那个原文,“0.25平方米内发现了40多株”,西双版纳植物所的研究员,都不看自己的稿子了,对吗?\n2026年3月20日 17:29 | # | 引用", "quality_flags": { "is_paywalled": true, "is_truncated": false, "is_low_content": false }, "metadata": { "content_source": "fetched_html", "extractor": "trafilatura", "char_count": 10296 }, "pipeline_state": "extracted" }, "error": null, "debug": { "content_source": "fetched_html", "extractor": "trafilatura" }, "warnings": [ "Potential paywall detected in content." ] } }, { "item": { "item_id": "sha256:419828361de854cd29dbcd3e8205d3da50ff955ac9c85861d2e195bc888b2103", "source_id": "freshrss:2987af960359c5c0", "external_id": "tag:google.com,2005:reader/item/00064dc18f09d916", "title": "FreshRSS 1.28.1", "url": "https://github.com/FreshRSS/FreshRSS/releases/tag/1.28.1", "author": "Alkarex", "published_at": "2026-01-25T18:20:16Z", "discovered_at": "2026-03-25T08:40:22.917124Z", "content_kind": "article", "language": null, "raw_summary": "\n

This is a release focussing on bug fixing, in particular regressions from the release 1.28.0.

\n

Selected new features ✨:

\n\n

Improved performance 🏎️:

\n\n

Many bug fixes 🐛

\n

This release has been made by @Alkarex, @Frenzie, @Inverle and newcomers @ciro-mota, @eveiscoull, @hackerman70000, @Hufschmidt, @johan456789, @martgnz, @mmeier86, @netsho, @neuhaus, @RobLoach, @rupakbajgain.

\n

Full changelog:

\n
\n\t

\n\t\t\"\"\n\t

\n
", "raw_content": null, "metadata": { "upstream": "freshrss", "origin": { "streamId": "feed/1", "htmlUrl": "https://github.com/FreshRSS/FreshRSS/", "title": "FreshRSS releases" }, "categories": [ "未分类", "user/-/state/org.freshrss/main" ], "crawled_at": "2026-03-24T09:13:04.078000Z", "published_epoch": 1769365216 }, "fetch_state": "pending" }, "extraction": { "success": true, "article": { "extract_id": "sha256:169f2b50eec3d198df126a8daedb95c48cff252ead9d4d2598a449e128cae2b8", "item_id": "sha256:419828361de854cd29dbcd3e8205d3da50ff955ac9c85861d2e195bc888b2103", "source_id": "freshrss:2987af960359c5c0", "url": "https://github.com/FreshRSS/FreshRSS/releases/tag/1.28.1", "title": "FreshRSS 1.28.1", "author": "Alkarex", "published_at": "2026-01-25T18:20:16Z", "language": null, "content_kind": "article", "plain_text": "Alkarex\nreleased this\n25 Jan 18:20\n·\n78 commits\nto edge\nsince this release\nImmutable\nrelease. Only release title and notes can be modified.\nThis is a release focussing on bug fixing, in particular regressions from the release 1.28.0.\nSelected new features ✨:\n- New customisable message for closed registrations\n- Add username in Apache access logs (also in Docker logs): for GReader API, and for HTTP Basic Auth from reverse proxy\nImproved performance 🏎️:\n- Disable counting articles in user labels for Ajax requests (unused)\nMany bug fixes 🐛\nThis release has been made by @Alkarex, @Frenzie, @Inverle and newcomers @ciro-mota, @eveiscoull, @hackerman70000, @Hufschmidt, @johan456789, @martgnz, @mmeier86, @netsho, @neuhaus, @RobLoach, @rupakbajgain.\nFull changelog:\n- Features\n- Bug fixing\n- Fix unwanted expansion of user queries (saved searches) applied to filters #8395\n- Fix encoding of filter actions for labels #8368\n- Fix searching of tags #8425\n- Fix refreshing feeds with token while anonymous refresh is disabled #8371\n- Fix RSS and OPML access by token #8434\n- Fix MySQL/MariaDB\ntransliterator_transliterate\nfallback (when thephp-intl\nextension is unavailable) #8427 - Fix regression with MySQL/MariaDB index hint #8460\n- Auto-add\nlastUserModified\ndatabase column also during mark-as-read action #8346 - Do not include hidden feeds when counting unread articles in categories #8357\n- Remove wrong PHP deprecation of OPML export action #8399\n- Fix shortcut for next unread article #8466\n- Fix custom\nsession.cookie-lifetime\n#8446 - Fix feed validator button when changing the feed URL #8436\n- Performance\n- Disable counting articles in user labels for Ajax requests (unused) #8352\n- Security\n- Deployment\n- Add username in Apache access logs (also in Docker logs): for GReader API, and for HTTP Basic Auth from reverse proxy #8392\n- SimplePie\n- Update of\nCURLOPT_ACCEPT_ENCODING\n#8376, simplepie#960, simplepie#962 - Fix don’t preserve children inside disallowed\n