Tags: ruanyf/weekly
Tags
这里记录每周值得分享的科技内容,周五发布。 本杂志[开源](https://github.com/ruanyf/weekly),欢迎[投稿](https://github.com/ruanyf/weekly/issues)。另有[《谁在招人》](https://github.com/ruanyf/weekly/issues/6771)服务,发布程序员招聘信息。合作请[邮件联系](mailto:[email protected])([email protected])。  正在举行的第26届舟山国际沙雕节,主题是“海上音乐城”。海滩上50多座沙雕,组成了一把吉他。([via](https://www.news.cn/photo/20250518/c8528908d6da4bfa968423df86e61363/c.html)) 上周是 Java 语言诞生三十周年。1995年5月23日,Sun 公司正式发布了这种语言。  三十年了,大家觉得 Java 算不算老语言? 说实话,我一直以为,Java 跟 C++ 是同一时期的语言。但是实际上,Java 与 Python、JavaScript、PHP 同时期,属于年富力强的年轻语言。  全世界的计算机语言有几千种,**Java 是特别、特别成功的那一类**。从发布的第一天起,它就很成功,一直保持到今天。 Java 的成功体现在两方面。 **(1)它无所不在**。日常生活中,我们接触到的软件服务,尤其是企业级服务,后端的开发语言大部分都是 Java。 Java 在服务端是霸主地位,在桌面端也有广泛应用,很多人用它写桌面软件。至于手机端,就更不用说了,安卓系统就基于 Java。 **(2)它的工作岗位最多**。 如果你问我,学习什么编程语言,最容易找工作? 没有其他前提的情况下,我会建议学习 Java,它的工作岗位最多,最容易找。 Python 语言虽然也很热门,但是工作岗位往往要求高级程序员,中级和低级的岗位并不多。不像 Java,你只要具有一般水平,就可以去应聘,需要普通 Java 程序员的地方非常多。 国外有一条经验法则,叫做[林迪效应](https://zh.wikipedia.org/zh-cn/%E6%9E%97%E8%BF%AA%E6%95%88%E5%BA%94)(Lindy effect),说的是一种事物的预期寿命与它已经存在的时间成正比。它已经存在多久,你可以预期,它还会存在这么久。 那么,Java 已经流行了30年,接下来30年,很可能还会继续流行。 Java 语言的发明人是高斯林(James Gosling,1955-)。他在 Sun 公司时,发明了 Java。  2019年,美国的计算机历史博物馆采访他,一连两天,每天三个小时,后来制作了一个节目《高斯林口述历史》(Oral History of James Gosling)。 网上有视频 + 文字稿(PDF [上](https://archive.computerhistory.org/resources/access/text/2019/10/102781080-05-01-acc.pdf),[下](http://archive.computerhistory.org/resources/access/text/2019/10/102781105-05-01-acc.pdf)),他谈了很多东西。下面,我摘录跟 Java 有关的部分,非常有意思。 **问:你什么时候开始研究字节码?** 答:我在卡内基梅隆大学读研究生时,开始从事字节码方面的工作。 当时,我的导师要求我,将一些软件从一种计算机移植到另一种计算机。我不知道他怎么想的,移植软件非常困难。 但是我发现,写一个字节码到汇编代码的编译器却很容易,得到的代码质量比原生的 C 编译器还要好,能够顺利运行。 这件事让我记住了,只要生成软件的字节码,然后为不同平台写一个字节码到汇编语言的编译器,就能让软件在不同架构的计算机上运行。 **问:你怎么在 Sun 公司开始搞 Java?** 答:Sun 公司的产品是服务器,在消费电子领域错过了很多机会。 我们当时有一群人,核心小组大概只有四个人,想探索消费电子领域。首席执行官同意了,给了我们一笔钱,那时是1991年。 我们决定做一个原型设备,项目名叫 Star7。这个设备相当古怪,有点像后来的 iPad。事实上,我们团队后来有几个人,确实继续从事 iPad 的研发。  我们并不想做那种特定功能的设备,而是想要一个网络设备,可以跟其他设备相互通信,并进行远程控制。 我们设想的一个用途是,当时的电视和录像机都有各自的遥控器,我们想用一个设备同时遥控多种其他设备,不仅能够控制电视,还能控制灯光,并且可以互动。 当然,Star7 没有成功。但是过了30年,人们竟然还在打造这样的设备,感觉有点奇怪。 **问:你怎么想到要为这个设备,发明一种新的编程语言?** 答:我们最初的目标不是发明一种编程语言,但是我们意识到,很多问题都源于编程工具。 我们想改进一下 C 和 C++,让它们更适合我们的环境。我自愿承担了这项任务,因为我是小组里唯一一个之前开发过编译器的人。 随着时间的推移,我改动的部分越来越不像 C++ 了,开始像一种独立的语言。 **问:这种语言最初命名为 Oak?** 答:是的,它最初被命名为 Oak(橡树)。这纯粹是偷懒,我当时需要新建一个文件夹,存放代码。我坐在办公桌前,望着窗外,看到一棵橡树,就为文件夹起了这个名字。 **问:一开始,该语言就被设计为独立于特定平台?** 答:是的。平台独立性是我们从一开始就考虑的事情之一。 这其实来自那些消费电子公司,他们是这种语言的使用者。他们非常不乐意受制于特定供应商,如果某个供应商有问题,他们希望可以更换供应商。CPU 也是如此,他们不希望受制于特定的 CPU。 问题就来了:如何才能让他们轻松地从一种芯片切换到另一种呢?这不就是我在卡内基梅隆大学移植字节码时遇到的问题吗。 所以,新语言的核心特性就是字节码,这样才能轻松地针对不同的 CPU 指令集进行开发。 如果厂商要为某个芯片制造一些东西,比如下一代录像机或电视机,即使处理器架构发生变化,也不用重写大量代码。现有的代码可以有把握地在尚未发明的机器上运行。 **问:Java 的口号“一次编写,随处运行”(Write once, run anywhere)是这样来的吗?** 答:我完全不知道这句话是谁想出来的,它是公司的营销用语。这句话说得很棒,但把事情过分简化了。 **问:Java 是什么时候从机顶盒转向互联网?** 答:应该是94年或95年,我们决定放弃机顶盒。因为我们发现,大型媒体公司内心深处,并不想要一款强大的新设备,而是想要控制用户的眼球,多吸引广告商。 我们决定转向更广阔的领域,让新语言可以用在互联网开发。 **问:Java 是怎么赢得软件开发商的?** 答:我们发现,Java 与平台隔离的特性很有吸引力,它不关心你使用哪种浏览器,因此你可以把平台问题与应用程序的问题隔离开来。 我们不再以消费者和嵌入式为中心了,而是思考这种语言怎么帮助更广大的软件开发者。 如果你是一个软件开发者,你不必考虑在谁的平台上开发软件,Sun、微软的 Windows NT 或者惠普。如果你用 Java 开发,你可以把软件卖给使用不同平台的客户。 **问:你们发现 Oak 被另一家公司占用后,才想到了 Java 这个名字?** 答:是的。你要发布一款产品,必须给它起个名字。Oak 已经被其他公司注册成商标了,我们被迫选择一个新名字。 那时,我们已经准备好发布软件了,就是缺一个名字。我们组织了一场命名会议,询问大家的意见,列出一张大家感觉可以的单词列表,然后发给律师,让他们从上到下检查有没有商标问题,哪个单词第一个通过检查,我们就用那个。 **问:Java 是第四个单词?** 答:是的。我个人最喜欢的是排名第三的 Lyric,但它没通过检查。排名第一的单词,也就是项目组大多数人最喜欢的名字,是 Silk。我不喜欢这个词,觉得它有点吓人,让我想起了蜘蛛。尽管喜欢它的人说,它象征互联网。我忘了排名第二是什么词,但是第四是 Java,我们就用了它。 (1)内蒙古一煤矿,实现了[100台无人卡车](https://news.qq.com/rain/a/20250523A03FOF00)的编组运行,操作人员仅仅6人。  注意,无人卡车的驾驶舱位置是电池。  (2)戴森公司创始人,发布[世界最薄吸尘器](https://news.qq.com/rain/a/20250522A03Q5A00),机身仅高95毫米。  (3)杭州举行[人形机器人格斗赛](https://news.qq.com/rain/a/20250526A00IGB00)。  比赛机器人采用遥控操作。  (4)丹麦继日本之后,成为全世界第二个国家,将[退休年龄](https://www.telegraph.co.uk/world-news/2025/05/23/denmark-raise-retirement-age-70/)提高到70岁。 (5)[阿联酋](https://finance.sina.cn/7x24/2025-05-27/detail-inexywaf1592004.d.html)成为全球首个国家,为全体公民和居民免费提供 ChatGPT Plus,该服务目前的月费为20美元。 1、[CAPTCHA 没用了](https://behind.pretix.eu/2025/05/23/captchas-are-over/)(英文)  作者在一家票务网站工作。他提出,各种识别机器人的验证机制,要么可以被 AI 绕过,要么不适用于出票,难以找到有效的解决方案。 2、[我的同步备份方案](https://www.xda-developers.com/replaced-google-drive-backups-syncthing-backblaze-truenas/)(英文)  作者的备份方案分成两部分。(1)使用开源软件 [Syncthing](https://syncthing.net/) 在多台电脑之间同步目录,(2)使用 [TrueNAS](https://www.truenas.com/) 将本地内容同步到云存储。 3、[Bash 脚本执行心跳测试的写法](https://heitorpb.github.io/bla/timeout/)(英文)  本文教你一种简单的写法,使用 Bash 脚本执行心跳测试(验证服务器是否正常在线)。 4、[虚拟主机加固指南](https://www.kkyri.com/p/how-to-secure-your-new-vps-a-step-by-step-guide)(英文)  开通虚拟主机(VPS)后,应该如何设置,提高安全性,本文给出基本步骤。 5、[自解释的代码](https://lackofimagination.org/2024/10/self-documenting-code/)(英文)  本文通过一个例子,演示应该怎么写,才能让代码清晰易懂,自己解释自己。 1、[Defuddle](https://github.com/kepano/defuddle)  一个 JS 库,从 HTML 网页代码提取内容,转成文本。 2、[DockFlare](https://github.com/ChrispyBacon-dev/DockFlare) Cloudflare Tunnel 的开源管理工具。  如果内网有多个 Docker 容器,通过 Cloudflare Tunnel 向外网开放,DockFlare 可以对它们进行统一管理,参见[介绍文章](https://www.xda-developers.com/cloudflare-tunnels-easier-to-manage-free-open-source-self-hosted-tool/)。 3、[f2](https://github.com/ayoisaiah/f2)  一个命令行的文件批量改名工具,功能较强,参见[介绍文章](https://simonwillison.net/2025/May/24/f2/)。 4、[TypeID](https://github.com/jetify-com/typeid) 唯一身份识别码 UUIDv7 的改进版,加上了类型前缀。 5、[Starlight](https://starlight.astro.build/)  基于 Astro 框架的文档网站生成工具。 6、[ntfy.sh](https://github.com/binwiederhier/ntfy)  消息推送工具,向手机和桌面电脑推送消息,可以自搭建,也可以使用官方服务器,参见[介绍文章](https://www.xda-developers.com/set-up-self-hosted-notification-service/)。 7、[BillionMail](https://github.com/aaPanel/BillionMail)  开源的电子邮件营销平台,帮助企业和个人管理电子邮件营销活动,可以发送新闻通讯、促销邮件、消息。([@aaPanel](#6917) 投稿) 8、[Lynx Proxy](https://github.com/suxin2017/lynx-server)  开源服务器,代理 HTTP/HTTPS 和 WebSocket 流量,内置 Web 管理界面。([@suxin2017](#6924) 投稿) 9、[Text to SVG](https://github.com/JiuRanYa/text-to-svg)  字体转 SVG 的工具网站,可以用来制作文字 Logo。([@JiuRanYa](#6933) 投稿) 10、[DualPiP](https://chromewebstore.google.com/detail/dualpip-%E2%80%93-bilingual-subti/ddkmobcljbfggkmibabekgpbighaogpn)  Chrome 插件,提供增强版的画中画播放器,支持主流视频网站一键弹出。([@ymlluo](#6952) 投稿) 1、[Smart Mermaid](https://github.com/liujuntao123/smart-mermaid)  将文本转为 Mermaid 格式的可视化图表,省去手动编写 Mermaid 代码。([@liujuntao123](#6918) 投稿) 2、[Folda-Scan](https://github.com/oldjs/web-code-agent)  一个与代码库对话的 Web 应用,可以扫描本地文件夹,对其建立本地索引,从而用自然语言库对话。([@oldjs](#6929) 投稿) 3、[Ainee](https://github.com/luyu0279/Ainee)  AI 开源笔记工具,将音频、文字、文件以及 YouTube 视频等转换为笔记。([@luyu0279](#6940) 投稿) 4、[OpenDerisk](https://github.com/derisk-ai/OpenDerisk)  开源的 AI 运维助手,对线上系统提供 AI管家,与真人协同处理运维问题。([@csunny](#6953) 投稿) 1、[周刊 AI 总结器](https://blog.ronething.cn/ruanyf-weekly-insights/)  AI 提炼的每一期周刊重点内容,[代码开源](https://github.com/ronething/ruanyf-weekly-insights)。([@ronething](https://github.com/ruanyf/weekly/issues/6950) 投稿) 2、[日本語文章解析器](https://github.com/cokice/japanese-analyzer)  日语句子分析的网站。([@cokice](#6932) 投稿) 上周闭幕的台北 Computex 2025 电脑展,出现了很多奇特的 PC(来源[1](https://www.xda-developers.com/these-7-pc-builds-blew-my-mind-at-computex/),[2](https://www.mobile01.com/topicdetail.php?f=514&t=7124346))。 **1、招财进宝**  你以为这是金元宝吗?错了它是一台电脑。  它的背后就是机箱,金元宝上方的流水装置就是循环的液冷。  **2、变形金刚**  这个变形金刚也是一台电脑,头部会旋转,眼睛会变色,还能播放语音。 它胸部发亮的地方,就是电源按钮。  腿部就是放置显卡的地方。  **3、水族馆**  这个水族馆是真正的海景房电脑,里面有水母和金鱼的饰品。  风扇的 RGB 灯效,做得像灯笼一样,晚上亮起来肯定很漂亮。  **4、黄貂鱼**  这台电脑模仿了黄貂鱼,但是又好像一架飞机。  它的两侧前翼,可以用胸前的齿轮,调节移动。  **5、咖啡机**  这个咖啡机机箱是概念产品,应该不能用来冲咖啡。 **6、跑车**  这台跑车机箱,显卡插在车尾,引擎盖下面是主板和散热风扇。  **7、黑神话悟空**  黑神话主题机箱,外面包了一层“牛王铠甲”。  **8、河马**  河马机箱走可爱路线,下面的水盆好像是标配。 **9、茅草屋**  茅草屋机箱无敌了,上面真的覆盖了一层稻草,放在家里可以做盆景了。 1、 我从来不喜欢内容收费,我的所有写作和研究成果都免费发布,这带给我巨大的价值。 现在,我想尝试一种不一样的订阅:你付钱给我,我会少给你发送一些东西。 我会推出一份仅限赞助者的月度邮件,里面都是我精心选择的重点内容,你就不用每天看我的大量更新了。 -- [Simon Willison](https://simonwillison.net/2025/May/25/sponsors-only-newsletter/),著名开发者 2、 AI 是比真人更好的老师,但是以后的学校还会需要真人老师,他们的主要职责是看管孩子。 -- [路易斯·冯·安](https://fortune.com/2025/05/20/duolingo-ai-teacher-schools-childcare/) (Luis von Ahn) ,Duolingo 的首席执行官 3、 把 AI 当作工具,而不是拐杖,那些2019年时被认为有价值的基础工程技能,值得你继续投资。 -- [《不要让 AI 加速我们的无能》](https://www.slater.dev/accelerated-incompetence/) 4、 最有害的建议之一就是不要重新发明轮子。 这种建议会导致一种抑制好奇心和探索的氛围。现代生活的很多重要发明,都来自那些不听从这个建议的人们。 重新发明轮子就是一种学习,并且学习过程中,你可能会做出更好的版本。 -- [《重新发明轮子》](https://endler.dev/2025/reinvent-the-wheel/) [技术封建主义](https://www.ruanyifeng.com/blog/2024/06/weekly-issue-303.html)(#303) [训练材料用完之日](https://www.ruanyifeng.com/blog/2023/05/weekly-issue-253.html)(#253) [英国的名校签证,伯克利的计算机教育](https://www.ruanyifeng.com/blog/2022/04/weekly-issue-203.html)(#203) [机器翻译是对译者的侮辱吗?](https://www.ruanyifeng.com/blog/2021/04/weekly-issue-153.html)(#153) (完)
这里记录每周值得分享的科技内容,周五发布。 本杂志[开源](https://github.com/ruanyf/weekly),欢迎[投稿](https://github.com/ruanyf/weekly/issues)。另有[《谁在招人》](https://github.com/ruanyf/weekly/issues/6771)服务,发布程序员招聘信息。合作请[邮件联系](mailto:[email protected])([email protected])。  北京的护城河公共绿道,位于鼓楼附近。(via [visuals_china@instagram](https://www.instagram.com/p/DJi3qkuOTZ5/)) 上周的[《李飞飞自传》读后感](https://www.ruanyifeng.com/blog/2025/05/weekly-issue-348.html),还有后续。 那篇文章的结尾是,2012年一支加拿大团队使用神经网络算法,夺得了 ImageNet 比赛冠军。 今天就来说说,这支加拿大团队的故事。  大家看了就知道了,神经网络算法是怎么诞生的,背后的推手又是谁。 **(1)杰弗里·辛顿**(Geoffrey Hinton,1947-)  辛顿出生于英国,后移居加拿大。他是神经网络算法的奠基人和主要发明者。 神经网络的概念,是上世纪40年代后期提出的(提出人不是辛顿)。当时的想法是,既然人类通过神经网络进行思考,那么只要让机器模拟神经网络,机器就能思考了。 但是,那只是一个概念,并没有具体的算法。机器怎么模拟思考,人们并不知道。 1984年,辛顿在加州大学担任博士后,与两个同事一起提出了反向传播算法。 这个算法可以建立多层网络,产生一个输出结果,让神经网络变成了现实,也是后来更高级算法的基础。 由于它需要多层计算,后一层在前一层的结果上学习,所以被称为“深度学习”,辛顿因此成为“深度学习之父”。 辛顿后来因为这个贡献,获得了图灵奖(2018年)和诺贝尔物理学奖(2024年)。 **(2)杨立昆**(1960-)  杨·安德烈·勒坎(Yann André Le Cun,中文名杨立昆)是法国人。上个世纪80年代,他是多伦多大学博士后。 这一时期,辛顿也来到了多伦多大学任教,担任他的指导教师。 所以,杨立昆是辛顿的大弟子,继承和发展了辛顿的算法。他的主要成就是,为神经网络引入了卷积算法,并且做出了第一个有实际用途的神经网络。 1990年代,他用神经网络识别银行支票的手写数字,成功获得了企业的采用。  但是,这个应用也暴露了卷积神经网络的弱点:它需要大量样本的训练,耗费巨大的算力。银行支票只需要识别10个阿拉伯数字,如果是更多样化的场景,当时的计算能力难以做到。 学术界因此认为,卷积神经网络只适用特定的、计算量较小的场景,不具备推广的价值。这导致这种算法,以及辛顿和杨立昆,被冷落了二十年。 这二十年,杨立昆一直混迹于企业实验室和大学教研室。等到世界重新认识卷积神经网络,他在2018年与辛顿一起获得了图灵奖,现在是 Meta 公司的副总裁和 AI 首席科学家。 **(3)亚历克斯·克里泽夫斯基**(Alex Krizhevsky,1986-)  亚历克斯·克里泽夫斯基是乌克兰人,少年时随家人移民到加拿大。2007年,他进入多伦多大学,成为辛顿的博士生。 这时距离杨立昆提出卷积神经网络,已经过去快20年了。辛顿始终没忘记它,他鼓励亚历克斯和稍后要提到的伊尔亚·苏茨克维,使用这种算法,去挑战李飞飞的 ImageNet。 亚历克斯就写了一个程序,用 ImageNet 的1500万图片,来训练他的卷积神经网络。但是,计算量太大了,他的个人计算机根本跑不动,他就买了两块 Nvidia 显卡,每天24小时一刻不停地运算。 事实证明,卷积神经网络+大训练集+高速计算硬件,超过了其他一切已知的算法。最终,他们的三人团队以巨大优势,夺得了2012年第三届 ImageNet 算法比赛冠军。 这件事轰动了业界,各大互联网公司纷纷邀请辛顿和他的学生加入。百度也伸出橄榄枝,邀请辛顿担任首席科学家,但是最后输给了谷歌。 2013年,谷歌以4400万美元收购了辛顿成立的空壳公司,将辛顿、亚历克斯、伊尔亚三个人一起招入麾下。 2017年,亚历克斯辞职,现在一家创业公司研究 AI 技术。 **(4)伊尔亚·苏茨克维**(Ilya Sutskever, 1986-)  伊尔亚·苏茨克维出生于前苏联,后去了以色列,然后来到加拿大。他是亚历克斯·克里泽夫斯基在多伦多大学的博士同学,也是辛顿的博士生。 他与亚历克斯组成团队,共同赢得了2012年的 ImageNet 算法比赛。辛顿作为指导老师,也是团队一员。 他在2013年跟随辛顿加入谷歌,2015年辞职,成为 OpenAI 的联合创始人和首席科学家,后来是 ChatGPT 的主要作者之一。2024年,他离开 OpenAI,现在创立了自己的 AI 公司。 **(5)安德烈·卡帕斯**(Andrej Karpathy,1986-)  安德烈·卡帕斯出生于斯洛伐克,15岁随家人来到加拿大,在多伦多大学读完了本科。 他跟伊尔亚·苏茨克维很可能大学里就认识。但是,他没在多伦多大学读博士,而是去了斯坦福大学,指导老师就是李飞飞。 他的方向也是卷积神经网络,博士期间开设了斯坦福大学第一门深度学习课程,担任主讲。 2015年,他跟随伊尔亚一起加入 OpenAI,成为主要研究人员。 2017年,他离开 OpenAI,去了特斯拉,担任特斯拉 AI 总监,2022年离职。 **(6) 总结** 上面五人是神经网络算法的主要创立者和推动者。没有他们,就不会有今天的 AI 大模型。 但是,单单靠他们的算法,AI 不会成功。因为算法需要大量的数据进行训练,而训练需要高速计算的硬件。这三者缺一不可。 只有等到2012年,才万事俱备。神经网络算法 + 李飞飞的 ImageNet 训练集 + Nvidia 高速显卡,同时出现了。 历史于是翻开了新的一页,AI 时代正式来临。 (1)一家深圳公司推出了,可能最炫酷的[树莓派机箱](https://liliputing.com/pironman-5-max-turns-a-raspberry-pi-5-into-a-mini-tower-with-a-transparent-case-rgb-lighting-and-dual-nvme-ssd-support/)。  它自带机箱显示屏、RGB 灯光、风扇、NVMe SSD 扩展板,很适合用作 NAS 和 AI 边缘计算。  (2)芬兰尝试在[驯鹿的鹿角](https://www.smithsonianmag.com/smart-news/avoid-deer-strikes-finland-painting-deer-antlers-reflective-paint-180949792/),涂上荧光粉。  这是为了方便司机在夜间看到驯鹿,目前每年在芬兰公路上被撞死的驯鹿有4000头。 (3)在线会议软件 Google Meet,推出[实时语音翻译](https://www.engadget.com/apps/google-brings-live-translation-to-meet-starting-with-spanish-174549788.html),首先提供西班牙语版本。  在线会议时,对方说西班牙语,你听到的却是英语,而且声音、语调和情感都不变。 (4)意大利开源硬件公司 Arduino,研发出了[可降解 PCB](https://blog.arduino.cc/2025/04/22/arduino-is-at-work-to-make-bio-based-pcbs/)(电路板),减轻对环境的污染。  这种可降解电路板,将电路印刷在植物亚麻材料上,而不是传统的玻璃纤维和树脂。 不过,电路板上的铜无法降解,需要在丢弃电路板之前先回收。 (5)一家美国创业公司,准备发射卫星,将 [AI 机房建在太空](https://www.ycombinator.com/companies/starcloud)。  它依靠24小时的太阳能供电,也不用担心散热。 该公司希望通过这种方法,解决 AI 服务器的耗电和冷却问题。 1、[手机的 Linux 桌面环境](https://holdtherobot.com/blog/2025/05/11/linux-on-android-with-ar-glasses/)(英文) 作者出门不带笔记本,只带手机,再配上蓝牙键盘和 AR 眼镜。  他的安卓手机在获取 root 权限后,通过 chroot 安装了 Linux 发行版,从而可以运行桌面环境。  2、[AI 应用的核心逻辑](https://sketch.dev/blog/agent-loop)(英文)  作者提出,AI 应用(AI agent)的核心逻辑只需要9行代码。 3、[浏览器默认屏蔽的端口](https://www.keenformatics.com/ports-that-are-blocked-by-browsers)(英文)  你可能不知道,浏览器无法打开下面的网址`localhost:6000`,原因是6000是浏览器默认屏蔽的端口。 4、[推荐 RustDesk 远程桌面](https://www.xda-developers.com/i-tried-every-method-to-remotely-access-my-pc-this-method-is-the-best/)(英文)  Mac 电脑访问 Windows 电脑,一种方法就是使用远程桌面,作者推荐远程桌面工具 RustDesk。 5、[HTML `<dialog>` 的 CSS 技巧](https://cassidoo.co/post/css-for-dialogs/)(英文)  HTML 有一个原生的弹窗元素`<dialog>`,本文介绍两个配套使用的 CSS 技巧。 6、[Git 配置详解](https://blog.gitbutler.com/how-git-core-devs-configure-git/)(英文)  本文详细解释 Git 配置命令 git config 的几个最常见的设置。 1、[Pyrefly](https://github.com/facebook/pyrefly/)  Meta 公司发布的 Python 代码的类型检查器,参见[介绍文章](https://engineering.fb.com/2025/05/15/developer-tools/introducing-pyrefly-a-new-type-checker-and-ide-experience-for-python/)。 2、[Zen Browser](https://github.com/zen-browser/desktop)  新发布的一个开源浏览器,基于 Firefox,国外评价非常高,使用体验好,参见[介绍文章](https://www.xda-developers.com/zen-browser-better-brave-arc-chrome/)。 3、[xtool](https://github.com/xtool-org/xtool)  Xcode 的替代品,在 Linux/Win/macOS 开发 iOS 应用。 4、[Zero Convert](https://nextbconvert.com/)  在线批量转换文件,基于 WebAssembly 技术,完全本地完成,还可以编辑图片。([@xiaoshangmin](#6864) 投稿) 5、[耗子面板](https://github.com/tnb-labs/panel)  Go 语言开发的服务器管理面板。([@devhaozi](#6881) 投稿) 6、[Goravel](https://github.com/goravel/goravel)  Go 语言的 Web 开发框架,与 PHP 的 Laravel 框架保持一致,方便快速上手。([@devhaozi](#6882) 投稿) 7、[OpenSpeedy](https://github.com/game1024/OpenSpeedy) 开源的游戏变速工具,通过调整 Windows 系统时间函数来实现游戏速度变化。([@game1024](#6884) 投稿) 8、[SimonAKing-Gallery](https://github.com/SimonAKing/AnimatedGallery)  后端的 JS 相册应用,瀑布流展示图片,指定图片目录,直接运行即可。([@SimonAKing](#6886) 投稿) 9、[Jwno](https://github.com/agent-kilo/jwno)  网友开源的 Windows 10/11 平铺窗口管理器,键盘驱动。([@agent-kilo](#6891) 投稿) 10、[星河小程序](https://github.com/didi/dimina)  滴滴公司开源的跨平台开发框架,支持将小程序打包成为安卓、iOS、鸿蒙和 Web 四个平台的原生 App。([@dos1in](#6912) 投稿) 1、[aTrain](https://github.com/JuergenFleiss/aTrain)  一个跨平台、图形界面的自动语音识别工具,基于 Whisper 模型,支持识别50多种语言,参见[介绍文章](https://www.xda-developers.com/i-switched-from-otter-to-this-self-hosted-audio-transcription-app/)。 2、[AI Image Editor](https://aiimageeditor.me/)  在线的免费图像处理工具,提供多种 AI 功能,比如图片增强、去除水印、风格转换等十几种。([@worminone](#6883) 投稿) 1、[万物博物馆](https://mayeclair.itch.io/museum-of-all-things) 一个跨平台的桌面软件,将维基百科变成一个虚拟博物馆。  每件展品与维基百科的一篇文章相对应,墙上的画框就是文章图片,讲解牌就是文章内容。  走廊则根据文章的链接通向其他展厅,有几乎无限的展厅可以参观。  1、[《星球大战》的机器人](https://www.facebook.com/groups/1740302472949408/permalink/3918177945161839) 《星球大战》的第一部电影,拍摄于1976年,里面有一个机器人 R2-D2,会四处走动,做各种动作,还会说话。  其实,它根本没那么高科技,拍摄的时候,就是里面藏了一个真人演员。  2、[冰为什么体积大?](https://nautil.us/five-things-we-still-dont-know-about-water-3383/) 水变成冰以后,体积会增大10%,密度因此小于水,使得冰可以浮在水面上。 那么,冰的体积为什么会增大呢? 答案是冰的分子结构,跟水的分子结构不一样。  上图左侧是液态水的分子结构,右侧是冰的分子结构。其中,白色节点为氢原子,红色节点为氧原子。 可以看到,液态水是紧密聚合的网络结构,冰则是中空的网络结构。也就是说,冰的分子结构不是那么密合,所以体积就变大了。 1、[Slack 公司的 URL](https://blog.jim-nielsen.com/2023/examples-of-great-urls/) Slack 是一家即时通信的软件公司。它的官网有一个“公司介绍”的页面,通常来说该页面的 URL 会是`slack.com/about`,但是 Slack 没有采用这种做法。 它将这个页面命名为`is`,并分拆成若干个子页面。 所以,“公司介绍”页面的 URL 是`slack.com/is`。 子页面的 URL 如下。 > - slack.com/is/team-communication > - slack.com/is/everything-in-one-place > - slack.com/is/wherever-you-are 这样的好处是单单看 URL,就知道页面想要传递的信息,URL 本身就是对公司的一种宣传。 这种 is 的巧妙做法,后来被广泛借鉴。碰巧的是,`is`也正好是一个顶级域名,代表冰岛(iceland)。很多名人就申请了 is 域名,作为个人主页。 比如,艺术家杰西卡·希斯切(Jessica Hische)的个人网站,域名就是`jessicahische.is`,她介绍自己的页面 URL 就都是`jessicahische.is/xxx`的形式。 1、 我们很快会跟大家分享一个低调的研究成果。我们会给它起一个比 chatGPT 更好的名字,以防它流行起来。 -- [Sam Altman](https://x.com/sama/status/1923104596622246252),OpenAI 的 CEO 2、 加尔定律经常被引用:“一个有效的复杂系统,总是从一个有效的简单系统进化而来。” 但是,它的推论很少被引用:“一个从零开始设计的复杂系统永远不会有效,你必须从一个可以运行的简单系统开始。” -- [Stack Staves](https://www.stackstaves.net/post/2023-12-07-theres-more-to-that/) 3、 宇宙有两种可能:要么我们是孤独的,要么我们并不孤独。这两种可能性都同样令人恐惧。 -- [阿瑟·克拉克](https://www.planetary.org/articles/the-fermi-paradox-where-are-all-the-aliens),英国著名科幻小说家 4、 太阳绕银河系公转一圈需要2.3亿年,上一圈的时候,地球的主宰还是恐龙。 -- [Reddit 网友](https://www.reddit.com/r/Paleontology/comments/18wqvba/it_takes_the_sun_230_million_years_to_orbit_once/) 5、 我关注了一些教育工作者,他们都报告了同样的现象:他们的学生什么事情都用 ChatGPT,结果什么也没学到。 最终可能会出现这样一代人,自己的智力很低下,完全依赖于他们不理解的技术,一旦技术崩溃,他们永远无法从头开始重建。 -- [尼尔·斯蒂芬森](https://simonwillison.net/2025/May/18/neal-stephenson/#atom-everything)(Neal Stephenson),美国科幻小说家,“元宇宙”一词的创造者 [创业虽然好,不敢推荐了](https://www.ruanyifeng.com/blog/2024/05/weekly-issue-302.html)(#302) [互联网创业变难了](https://www.ruanyifeng.com/blog/2023/04/weekly-issue-252.html)(#252) [三个有启发的学习方法](https://www.ruanyifeng.com/blog/2022/04/weekly-issue-202.html)(#202) [从北大到技校](https://www.ruanyifeng.com/blog/2021/04/weekly-issue-152.html)(#152) (完)
这里记录每周值得分享的科技内容,周五发布。 本杂志[开源](https://github.com/ruanyf/weekly),欢迎[投稿](https://github.com/ruanyf/weekly/issues)。另有[《谁在招人》](https://github.com/ruanyf/weekly/issues/6771)服务,发布程序员招聘信息。合作请[邮件联系](mailto:[email protected])([email protected])。  5月1日,宇宙飞船造型的深圳科技馆新馆开馆,上图是设计团队在新馆前合影。([via](https://www.szstm.org.cn/)) 大家知道[李飞飞](https://baike.baidu.com/item/%E6%9D%8E%E9%A3%9E%E9%A3%9E/7448630)吧,AI 的明星教授。  她在斯坦福大学任教,是美国国家工程院等三院院士,担任过斯坦福 AI 实验室主任,以及谷歌云 AI 首席科学家。 她1976年出生于北京,在成都长大,16岁全家移民美国。 我一直好奇,她怎么走上 AI 这条路,从移民变成学术明星?  这几天,我读完她的自传[《我看见的世界》](https://book.douban.com/subject/36672955/)(中信出版集团,2024),才发现**她的人生很有戏剧性,每当重要关头,都有幸运的事情发生**。 她出生于一个普通家庭,中学阶段并无过人之处。 > 我们家位于成都当时的外环路旁边,小区由三栋一模一样的塔楼组成,我家住在四楼。这个环路是不断扩张的城市边缘,一侧是工厂,另一侧是农田。 > > 我进入了一所吸引全市优秀学生的中学。在那几年里,对女孩的预设和偏见让我越来越不耐烦,这种情绪已经超出了课业的范围。在同龄人中,我已经有“假小子”的称号。 1992年,移民美国后,她家的生活顿时变得困难。一家三口挤在新泽西乡下一间一居室公寓,她睡客厅,床就放在餐桌旁边。 父亲在一家华人商店修理旧相机,后来被辞退,从此失业。母亲做杂货店营业员,后因风湿性心脏病,回家休养。李飞飞下课后,就要去打工,有时在中餐馆端盘子12个小时,每小时2美元。 最后,实在走投无路,她们家决定买下社区的一家干洗店,靠洗衣为生。买下干洗店需要10万美元,全家仅有2万美元储蓄,其余8万美元都是借的。 1997年,李飞飞中学毕业,要申请大学了。 > 一开始,我的目标大学主要是州立大学和社区大学,而不是常春藤学校。但我一直对一所顶级高校念念不忘,那就是普林斯顿大学。 > > 我们是一个靠从车库市场淘来的旧货才能勉强度日的家庭,连我用的计算器都是坏的,我们怎么可能负担得起常春藤学校的学费呢? > > 尽管如此,我还是无法抑制内心的冲动,提交了申请。就算只是象征性地申请一下,我也感觉具有特殊意义。 她申请了普林斯顿大学,结果好梦成真,普林斯顿给了全额奖学金。 如果没有全奖,以她家的经济状况,负担不了学费。如果不去普林斯顿大学,她就不太可能走上学术道路了,更不要说后面的成就了。 大学毕业后,李飞飞原想去华尔街工作,解决家庭的经济问题。 母亲鼓励她,继续追求自己的梦想。于是,她选择去加州理工学院读研究生,方向是视觉识别机制。 2004年,李飞飞为了写博士论文,需要图片材料,来训练算法。她找了9000张图片,组成了一个图片集,手工对每张图片进行分类标注,一共分成101类。 这个图片集叫做 Caltech 101,算法经过训练,就能从新图片识别出这101类物品。她因此顺利拿到了博士学位。 博士毕业后,李飞飞先去伊利诺伊大学,后去普林斯顿大学,都是担任计算机科学的助教。 她继续探索视觉识别,想找到一种通用算法,能够识别所有种类的物品,而不是 Caltech 101 那样,只能识别出101类物品。 这意味着她需要一个超大的图片训练集,能够包含了世界上所有物品。这可太难了,所有人都反对这件事。 > 我们都是年轻的助理教授,所处的院系竞争激烈,在事业起步的那几年里,我们都面临着“要么发表论文,要么完蛋走人”的局面。压力之下,我们必须马不停蹄、保质保量地完成工作,因为我们知道,稍有懈怠就可能与终身教授的职位说再见,一同失去的还有获得稳定生计的最佳机会。 > > 我听到的劝阻之声已经多得够我用一辈子了(可能下辈子也够了). > > 有上万个类别的数据集有什么用?大部分模型连一两个类别都识别不准! > > 你知道用这么多图像训练一个模型要花多长时间吗?这个时间可是用“年”来计算的。 > > 别人要怎么下载呢?你这个图像总量比大多数硬盘的存储量还要大。 > > 具体怎么做,你有计划了吗?几百万张图谁来做标注?要花多长时间?怎么验证所有内容的准确性呢? 李飞飞坚持要做,这个通用图片集起名为 ImageNet。那时是2006年。 她想到一个思路,英语词典有一些基本名词,用来解释其他所有物品。只要统计一下,基本名词有多少个,每一个又有多少变体,那就得到了所有物品的基本类别。 统计结果是3万类。因此,李飞飞估计,ImageNet 将有3万个类别,总共包含2000万张图片,每张图片都要有分类和标注,需要从几亿张图片里面筛选出来。 > 我们发出了邮件,招募愿意帮忙从网上下载和标注图片的本科生,工作时间灵活,每小时10美元。我们招募到一些学生,但是按照这样的进度,完成整个项目需要19年。 这太慢了,项目方法做了改进,用脚本自动去谷歌搜索图片,然后抓取。但是这样也需要人工核对和筛选,只把19年的时间缩短到18年。 幸运的是,亚马逊刚刚发布了众包平台“土耳其机器人”(Amazon Mechanical Turk,AMT)。在这个平台上,你可以出钱,通过互联网,把任务分包给世界各地接活的人。 他们通过这个平台,将 ImageNet 分包出去,投入的人数一下子扩展到几千人,而人均费用只是原来的几十分之一。 > 2009年6月,ImageNet 的初始版本终于完成了。我们成功达成了目标:收集了1500万张图片,涵盖了2.2万个不同类别。这些图片筛选自近10亿张候选图片,并由来自167个国家的4.8万多名全球贡献者进行了标注。 ImageNet 虽然完成了,但在学术界毫无反响,没有太多人关注。 > 我们遇到了第一个也是最严重的挫折:在当年的“计算机视觉与模式识别大会”上,ImageNet 被降级为“海报展示”。 > > 所谓的“海报展示”是一个学术术语,意味着我们将不能在演讲厅内向听众展示我们的工作,只能在会场的指定区域里摆放一幅印有项目摘要的大幅海报,希望能引起路人的兴趣。 > > 我想过 ImageNet 可能被证明是对的,也可能被证明是错的,对于这两种可能性,我都做好了准备。无论是哪种结果,都会是一个学习的机会。然而,我万万没想到,它被忽视了。 由于 ImageNet 得不到承认,李飞飞想到一个办法,她要每年举行一次算法比赛,看看哪种算法识别 ImageNet 图片集的正确率最高。 这样一来,在计算机视觉领域,ImageNet 就会成为一个比较基准,各种算法都需要用它表示自己的识别能力,大家就不会忽视它了。这个比赛叫做 ILSVRC(ImageNet 大型视觉识别挑战赛,ImageNet Large Scale Visual Recognition Challenge)。 2010年,第一届比赛令人失望,11个团队提交了35个参赛算法。冠军算法是传统的图片向量比较,并无创新之处,正确率也不高。 2011年,第二届比赛更惨,获胜算法还是图片向量比较,正确率只提高了2个百分点。这意味着,没有任何创新和进展。 > 最糟糕的是,参赛人数也出现急剧下降,参赛算法从35个减少到15个,愿意为此付出努力的人似乎越来越少。 > > 说这种经历“让人羞愧”已经远远不足以描述我们的心情了。为了推动 ImageNet 的发展,我们倾注了多年的心血,搜集的图片数量远远超过以往的任何数据集,还精心策划了一场国际竞赛来探索它的能力,但结果却只是简单地重复了现状。如果说ImageNet 是一场赌注,是时候开始思考我们是不是已经输了。 眼看这个项目就要失败了,几年的心血付之东流。就在这个时候,李飞飞人生最大的惊喜和反转来临了。 2012年,第三届比赛,一个加拿大团队使用被学术界遗忘已久的卷积神经网络,一举将图片识别正确率提高了10%。 接下来的事情,就是被写进教科书的历史了。全世界被神经网络的效果轰动了,AI 研究出现突破,人类进入 AI 时代。 李飞飞彻底翻身,一举成名,从助教变成世界知名的 AI 研究领头人物,人生从此海阔天空。 她的故事令人感叹,如果神经网络算法没有在2012年出现,而是再晚几年,或者更早一点,亚马逊的土耳其机器人众包平台没有在2005年诞生,一切会怎样? 这就是时运吧。科学家的人生和科学发现一样,都是由一些偶然事件推动的。个人奋斗固然重要,但是关键时刻还是离不开幸运。 (1)传统的脑电图,需要在头上布满电极(下图),有很多限制,也不舒适。  美国宾州大学的科学家,发明了一种[头发电极](https://newatlas.com/medical-devices/3d-printed-hairlike-eeg-electrode/),细得像头发一样,可以直接粘在皮肤上,淋浴和运动也不会掉下。  这种电极目前还是有线的,但是有计划开发无线版本。 (2)[百度地图](https://finance.sina.cn/7x24/2025-05-09/detail-inevxzxx9213651.d.html)在导航路面植入广告。  (3)谷歌的 AI 笔记应用 NotebookLM,可能很快就会添加“[视频概览](https://www.xda-developers.com/notebooklm-video-overviews/)”功能。  它已经支持生成音频和 AI 问答,如果再支持生成视频,简直难以想象,是否还需要真人老师。 直接上传课本,它就生成讲课视频了。 (4)安卓官方的[桌面模式](https://www.androidauthority.com/android-desktop-mode-leak-3550321/),泄露了运行照片。下图是它的多窗口模式。  但是 Android 16 可能来不及,发布要等到 Android 17。  手机当作桌面电脑,已经不远了。 (5)百度公布“[动物语言转换方法、装置、电子设备及存储介质](https://www.sohu.com/a/892944913_120347736)”专利,使用 AI 识别动物的情感状态,转换为人类能够理解的语言,从而实现动物与人类之间的情感交流和理解。   1、[一段让 Chromium 机器人崩溃的代码](https://blog.castle.io/detect-and-crash-chromium-bots-with-one-weird-trick-bots-hate-it/)(英文)  作者介绍了一段 JS 代码,让Chromium 无头浏览器(Puppeteer 和 Playwright)崩溃。它可以用来识别,访问者是不是机器人。 2、[Git worktree 简介](https://opensource.com/article/21/4/git-worktree)(英文)  Git 仓库同时只能有一个工作区,如果想同时建立多个工作区,可以使用 git worktree 命令。 3、[用 Go 移植 TypeScript 的重要影响](https://imbant.github.io/blog/2025/05/07/ts-go/)(中文)  微软官方要用 Go 语言重写 TypeScript 项目,本文分析这样做的目的和影响。([@imbant](#6817) 投稿) 4、[为什么大模型可以控制手机](http://hanzilu.com/wordpress/?p=376)(中文)  开源项目 [droidrun](https://github.com/droidrun/droidrun) 可以通过大模型,以自然语言操作安卓手机的 APP。本文分析它是如何做到的。([@lezhi12](#6822) 投稿) 5、[创业公司可能无法承受微服务](https://nexo.sh/posts/microservices-for-startups/)(英文)  本文提出,微服务需要很强的运维能力,并会增加代码复杂性,创业公司不要盲目采用,单体应用更简单。 6、[从 Prettier 和 ESLint 迁移到 BiomeJS](https://blog.appsignal.com/2025/05/07/migrating-a-javascript-project-from-prettier-and-eslint-to-biomejs.html)(英文)  BiomeJS 是用 Rust 语言写的工具,对 JS 代码进行格式化和语法检查,速度极快,可以取代 Prettier 和 ESLint。 7、[如何自己托管 Obsidian](https://www.xda-developers.com/i-self-hosted-obsidian-so-i-can-access-it-in-web-browser-anywhere/)(英文)  Obsidian 是一个优秀的笔记软件,作者给出详细步骤,自己托管 Obsidian 服务器,从而在任何地方都可以通过浏览器使用。 1、[Void](https://github.com/voideditor/void)  开源的 AI 代码编辑器,Cursor 的替代品,基于 VS Code。 2、[Hyvector](https://www.hyvector.com/)  在线的矢量图(SVG 文件)编辑工具。 3、[Karakeep](https://github.com/karakeep-app/karakeep)  一个自搭建的书签 App,提供全文搜索和 AI 自动分类标签,参见[介绍文章](https://www.xda-developers.com/this-self-hosted-app-showed-me-been-using-bookmarks-wrong-all-life/)。 4、[PairDrop](https://pairdrop.net/)  局域网传输文件的 Web 应用,[代码开源](https://github.com/schlagmichdoch/PairDrop),类似于 [ShareDrop](https://github.com/szimek/sharedrop) 和 [LocalSend](https://localsend.org/zh-CN)。 5、[zVault](https://www.zvault.io/)  NAS 操作系统 TrueNAS 原本基于 FreeBSD,正在转向 Linux。zVault 是一个社区的分支,由社区推动继续在 FreeBSD 开发。 6、[YAMLResume](https://github.com/yamlresume/yamlresume)  使用 YAML 格式创建简历,并通过 LaTeX 输出 PDF,方便进行版本管理。([@xiaohanyu](#6837) 投稿) 7、[AllinSSL](https://github.com/allinssl/allinssl)  开源的 SSL 证书自动化管理平台,集证书申请、管理、部署和监控于一体。([@KincaidYang](#6842) 投稿) 8、[Basecoat](https://basecoatui.com/)  一套基于 Shadcn UI 的组件库,但是不使用 React。 9、[Scraperr](https://github.com/jaypyles/Scraperr)  网络爬虫的 Web 控制台。 1、[MathModelAgent](https://github.com/jihe520/MathModelAgent)  开源的 AI 应用,自动完成数学建模,生成一份完整的论文。([@jihe520](#6825) 投稿) 2、[BiliFilter](https://github.com/ddddng/BiliFilter/) 基于本地大模型的 Bilibili 弹幕过滤器,对弹幕分类过滤。([@ddddng](#6833) 投稿) 3、[AI 语音克隆](https://aivoicecloning.io)  免费的语音克隆工具,3 秒录音克隆人声。([@xiaodaidai0701](#6850) 投稿) 1、[I Don't Have Spotify](https://idonthavespotify.donado.co/)  一个音乐搜索引擎,输入 Spotify、YouTube、Apple、SoundCloud 的音乐链接,它会提供该音乐在其他网站的链接。 2、[IPinfo Lite](https://ipinfo.io/lite)  地理位置数据库 IPinfo 推出的免费服务,IP 查询地理位置,无需信用卡,API 请求次数不受限制。 1、[Web Component 教程](https://plainvanillaweb.com/index.html)  英文的 Web Component 入门教程。 1、[数字键盘的样式](https://www.doc.cc/articles/a-brief-history-of-the-numeric-keypad) 数字键盘来源于电话。 早期的电话都采用旋转的拨号盘。20世纪50年代,电话可以长途直拨了,拨打长途电话需要输入11个号码,拨号盘就太麻烦了,导致了数字键盘的诞生。 1955年,AT&T 公司的研究人员,做过一个研究,10个数字的小键盘应该怎样排列,效率最高? 他们一共列出了15种排列。  经过研究和比较,用户更喜欢从左到右、从上到下的布局。 具体来说,两排五列水平布局与现在普遍使用的 3x3+1 布局速度相当,差异很小。 AT&T 公司最终为电话选择了 3x3+1 布局,主要原因大概是它比较紧凑。 1、[我第一次加入创业公司的教训](https://blog.jacobstechtavern.com/p/the-side-hustle-from-hell) 一位开发者大学毕业后,加入了一家创业公司。 他逐渐发现,公司内部有很多矛盾,产品决策也有失误。 最终,公司开始走下坡路,他就提交了辞呈,放弃了自己的期权。 离职后,他写了[一篇文章](https://blog.jacobstechtavern.com/p/the-side-hustle-from-hell),总结了自己得到的教训。  (1)即使创业公司的每个员工都很有动力,但如果创始人并非顶尖人才,那么取得巨大成功的机会很低(但你仍然可以从中学到很多东西)。 (2)创业公司只有两种工作:开发和销售。如果创始人既不做开发,也不做销售,不知道他在做什么,那就相信你的直觉吧。 (3)创业公司的产品还未得到市场验证的情况下,为多个平台构建原生应用,是一种极其低效的行为。如果同时为两个产品在每个平台开发两个原生应用,简直是疯了。 (4)创业公司的路演,大多是浪费时间。产品的验证来自于与用户交流和迭代,而不是打动评委。 (5)没有什么比并肩作战、共同实现梦想更神奇的了。如果你经常见不到创始人,所有的沟通都只能通过远程进行,那可不是好兆头。 (6)如果创业公司没有经过严格的面试,就录用了你,这是一个危险信号。他们到底是基于能力来录用你,还是因为你是第一个同意只收很少的报酬,就为他们工作的工程师? 1、 科学项目日益大型化和制度化,使得个人的好奇心和创新,对于科学的推动正在减弱。科学的进步越来越依靠有效的组织和大量的投入。 -- [《思想家和实干家》](https://www.strangeloopcanon.com/p/on-thinkers-and-doers) 2、 除非你参与过历史遗留项目,否则你不能自称高级工程师。 -- [infobip.com](https://www.infobip.com/developers/blog/seniors-working-on-a-legacy-project) 3、 是什么让硅谷的公司如此强大? 不仅仅是它们数十亿美元的资金或数十亿用户,也不仅仅是因为它们拥有惊人计算能力和数据储备,让学术实验室的资源相形见绌。它们之所以强大,是因为成千上万个才华横溢的人在同一个屋檐下共同努力。 -- 《李飞飞自传》 4、 以前的小团队是1名高级开发人员 + 5名初级开发人员,以后是1名高级开发人员 + AI 大模型。 -- [Hacker News 读者](https://news.ycombinator.com/item?id=43955519) 5、 我打赌,以后的工程师必须深入底层,更接近硅片的层面。开发应用程序将不再需要精通技术的人,AI 让每个人都可以开发自己的应用程序。 -- [Hacker News 读者](https://news.ycombinator.com/item?id=43965599) [OpenAI 的图书馆工位](https://www.ruanyifeng.com/blog/2024/05/weekly-issue-301.html)(#301) [国产单板机值得推荐](https://www.ruanyifeng.com/blog/2023/04/weekly-issue-251.html)(#251) [中国需要成立半导体部](https://www.ruanyifeng.com/blog/2022/04/weekly-issue-201.html)(#201) [NFT 是什么,听说能赚钱](https://www.ruanyifeng.com/blog/2021/03/weekly-issue-151.html)(#151) (完)
这里记录每周值得分享的科技内容,周五发布。 本杂志[开源](https://github.com/ruanyf/weekly),欢迎[投稿](https://github.com/ruanyf/weekly/issues)。另有[《谁在招人》](https://github.com/ruanyf/weekly/issues/6771)服务,发布程序员招聘信息。合作请[邮件联系](mailto:[email protected])([email protected])。  烟台的“耕海1号”海洋牧场,是一个大型的网箱养鱼基地,同时也是海上休闲观光平台。([via](https://baike.baidu.com/item/%E8%80%95%E6%B5%B71%E5%8F%B7/58915052)) 新软件有一个超级难题,就是**发布的时候,没有用户**。 这叫做“冷启动”,比喻汽车在冬季发动,天寒地冻,很难点火成功。 我最近读了一本书,专门研究这个问题,新软件怎么才能有用户? 书名就叫[《冷启动问题》](https://book.douban.com/subject/35357704/)(The cold start problem)。  它的作者是安德鲁·陈(Andrew Chen),美国著名的风险投资家。  他自己创业过,也做过高管,还投了很多创业公司。 他觉得,冷启动是创业公司的头号难题。做出产品不难,找到用户才难。 只有解决冷启动,用户不断增长,项目才能生存和发展。 这本书的有些论断,让我感到很有意思,跟大家分享。 第一点,他提出,**解决冷启动,要靠网络效应**。 什么是网络效应?就是通过人与人的连接,增加产品粘性,吸引并留住用户。 最好的例子就是电话。电话也是冷启动,早期只能跟一个固定对象通话,就像对讲机,想用的人很少。 只有组成电话网,它才变得真正流行。入网的用户越多,越能留住用户。 说白了,网络效应就是你的产品要有这样一个功能,能让用户之间产生连接。 第二点,**新产品发布的时候,最好自带一个“原子网络”**。 原子网络就是最小用户网络,以最少的用户数量,让网络功能生效。 你找亲戚朋友也好,花钱拉人也好,总之要组成一个原子网络,让新用户一进来,就能感受到一个已经生效的用户网络。 第三点,原子网络的大小,根据产品不同而不同。经验法则是,**原子网络应该让新用户可以坚持使用3分钟**。 如果低于3分钟,就表示网络功能太弱,可能不足以留住人。 (1)Uber:网约车的原子网络应该包含15-20辆车,让用户能在3分钟内叫到车。 (2)Airbnb:民宿的原子网络应该包含300套房子,也就是300个房东,供用户挑选。 (3)reddit:社区平台的原子网络应该有1000个子频道,让不同的用户都能找到感兴趣的频道。 (4)Slack:讨论群组的原子网络应该有3个人,并已经产生了至少2000条消息。 第四点,有些产品只是单纯的工具,不具备人际网络属性,怎么办?安德鲁·陈认为,**如果产品没有网络属性,就要加上**。 用户为工具而来,为网络而留。 Instagram 最早只是一个照片滤镜 App,根本留不住用户,人们用了几次就走了。 后来,它转型成照片分享网络,添加订阅机制,让你订阅其他人的照片,一打开就看到好友的照片流。 这个变动让 Instagram 上线 18 个月后,被 Facebook 以10亿美元收购。 其他例子还有,Yelp 最初是一个本地商家的目录工具,后来变成了商家评价网络。LinkedIn 最初是一个在线简历工具,后来变成了职业人脉网络。 总之,你想要网络效应,就必须变成网络。 第五点,只要(一个细分市场的)**用户网络达到2万人,就能自己不断变大**,最终覆盖整个市场。 也就是说,2万用户是单一市场的阈值,突破这个数量,就渡过了冷启动。 字节旗下的 AI 原生 IDE—— [Trae](https://sourl.co/inA2ng),最近有大动作。 它发了新版本,**正式支持 MCP 服务器,并且大模型免费用**,比如 Doubao、DeepSeek、Claude、Gemini、GPT-4o 都不收费(海外模型需要 Trae 海外版)。 为了让更多同学尝试 AI 编程,它推出了 [万「友」引力计划](https://sourl.co/6M23d8)。活动在五一前就开始了,现在是**最后7天倒计时**。  活动规则很简单:<u>轻松完成任务,赢积分,兑礼品</u>。 (1)安装 Trae,连续两天使用一次 AI 功能,就可兑换网易云音乐或 qq 音乐会员。 (2)邀请有礼:成功邀请 1 位好友下载并使用 Trae,就可获得积分,**邀请越多,奖励越多**,有华为 MatePad Air、雷蛇机械键盘、京东购物卡等。 机会难得,既可以学习 AI 编程,又能拿奖品,大家不要错过哦。 扫码上方海报,或者点击[这个链接](https://sourl.co/6M23d8),了解活动详情。最后7天了,转发活动,找技术搭子,一起来参与。 (1)Meta 推出了新应用 [Meta AI](https://ai.meta.com/get-meta-ai/),跟 ChatGPT 竞争,底层是 Llama 4 模型。  它的一个亮点是,可以[控制 Meat 的智能眼镜](https://about.fb.com/news/2025/04/introducing-meta-ai-app-new-way-access-ai-assistant/),允许你从眼镜上调用 AI。 (2)一支法国研究团队,准备把鲈鱼胚胎(下图)送上月球,检验[月球养鱼](https://www.theguardian.com/environment/2025/apr/28/sea-bass-in-space-lunar-hatch-fish-farms-moon-aquaculture)的可行性。  他们的想法是,月球上最容易活的植物是藻类,鱼食用藻,人食用鱼,从而解决宇航员的食物问题。 (3)一家中国照明公司推出了“[AI 台灯](https://www.xda-developers.com/i-tried-an-ai-lamp-and-its-actually-incredible/)”。  它有一个手机 App,用户对着手机说出场景(“我正在看电视”),AI 会自动调节灯光模式,并给出备选模式。  (4)[华硕的 RTX 50 显卡](https://unikoshardware.com/2025/04/rog-astral-gpu-sag-check.html),被发现配备了陀螺仪和加速度计。  现在的显卡越来越重,突破了2公斤,插在机箱里,几乎必然发生倾斜或下压。这些传感器能够立刻发现,发出警报。 (5)美国建造了世界第一家 [3D 打印的星巴克](https://newatlas.com/architecture/3d-printed-starbucks-texas/)。  3D 打印建筑的成本低,工期短,可以快速复制,很适合临时性建筑。  (6)欧盟规定,2027年开始,交易商不得提供[加密货币的匿名账户](https://cointelegraph.com/news/eu-crypto-ban-anonymous-privacy-tokens-2027),即必须实名交易。 1、[ChatGPT o3 可以识别照片拍摄地](https://simonwillison.net/2025/Apr/26/o3-photo-locations/)(英文)  如果你给 o3 模型一张照片,问它这是哪里拍的,它会猜得相当准确。  举例来说,上图是加州海边的某个村庄。因为 o3 用街景地图训练过,如果碰巧你也在这个位置拍摄,它会给出极准确的位置(这是坐在xx咖啡馆,对着窗外拍摄的)。 还有[一篇相关文章](https://sampatt.com/blog/2025-04-28-can-o3-beat-a-geoguessr-master),人类的专业级选手(下图)与 o3 比赛,谁猜地点更准,里面有各种实例。  这件事告诉我们,AI 时代上传照片必须非常小心,你会透露自己的位置。 2、[Deno 的衰落](https://dbushell.com/2025/04/28/denos-decline/)(英文)  作者认为,Deno 作为一种 JavaScript 的运行环境,最近出现了很多问题,业务在收缩,前景不乐观。 3、[如何命令行设置新 MacBook](https://catalins.tech/how-i-setup-new-macbooks/)(英文)  macOS 内置了一些命令行工具,可以快速设置系统,非常适合用来配置新电脑。 4、[使用 Zip 炸弹保护服务器](https://idiallo.com/blog/zipbomb-protection)(英文)  作者痛恨网络爬虫,决定使用 Zip 炸弹对付它们。 zip 炸弹就是一个体积很小的压缩文件,但是解压后却极其巨大(比如 10GB)。 5、[Astro 框架的架构](https://overreacted.io/rsc-for-astro-developers/)(英文)  著名程序员 Dan Abramov 解释 Astro 框架的设计思想,以及它与 React 的服务器组件的差异。 1、[BongoCat](https://github.com/ayangweb/BongoCat)  一款开源的桌面宠物,支持 macOS、Windows 和 Linux。([@ayangweb](#6735) 投稿) 2、[Barcode Maker](https://barcode-maker.com/zh)  开源的条形码和二维码生成网站。([@LeonZeng919](#6748) 投稿) 3、[Fread](https://github.com/0xZhangKe/Fread)  开源的“微博客”安卓客户端,同时支持 Mastodon、Bluesky、RSS 三种协议。([@0xZhangKe](#6753) 投稿) 4、[DeckTap](https://github.com/Rico00121/decktap)  局域网的演示遥控器,在电脑上运行它,手机连上电脑,就能无线遥控幻灯片演示。([@Rico00121](#6779) 投稿) 5、[Input Source Pro](https://inputsource.pro/zh-CN)  Mac 电脑的开源小工具,方便切换输入法,可以指定不同应用/网站的默认输入法。([@runjuu](#6780) 投稿) 6、[QBin](https://github.com/quick-bin/qbin)  开源的在线文本编辑与分享服务,可以用作个人的文本、代码、图片、视频分享网站。([@kfcx](#6749) 投稿) 7、[EasyEditor](https://github.com/Easy-Editor/EasyEditor)  开源的低代码引擎,用于可视化搭建 Web 应用。([@JinSooo](#6739) 投稿) 8、[PakePlus](https://github.com/Sjj1024/PakePlus)  一款桌面应用,使用 Tauri2 将任意网站打包成桌面应用和手机应用。([@Sjj1024](#6759) 投稿) 9、[柠檬表单](https://github.com/bojue/lemon-form)  开源的表单问卷系统,类似于金数据和飞书问卷,自带管理后台。([@bojue](#6738) 投稿) 10、[MotionEaseTune](https://github.com/BHznJNs/MotionEaseTune) 一个安卓应用,通过播放 100Hz 声音来预防晕车,项目开源。([@BHznJNs](#6742) 投稿) 11、[OpenApi 接口代码生成器](https://github.com/otk-final/openapi-codegen) 一个命令行工具,根据 OpenAPI (swagger)文档,生成各种编程语言的客户端接口代码。([@otk-final](#6763) 投稿) 12、[MyOCR](https://github.com/robbyzhaox/myocr)  一个基于 Python 的本地 OCR(文字识别)框架。([@robbyzhao76](#6788) 投稿) 13、[SimonAKing-HomePage](https://github.com/SimonAKing/HomePage)  一个使用 WebGL 流体动画的个人网站模版。([@SimonAKing](#6790) 投稿) 14、[酷监控](https://github.com/star7th/coolmonitor)  开源的监控(网站/接口/HTTPS 证书)控制台,支持 Docker 一键部署。([@star7th](#6791) 投稿) 15、[FindJSONPath](https://www.findjsonpath.com/zh)  在线的 JSON 工具箱,可以生成 mock 的 JSON 数据,以及可视化选中某个路径。([@bingobray](#6796) 投稿) 16、[拼字幕](https://quotemaker.cc/)  在线制作字幕拼图的工具,上传图片、填写文本即可。([@xiaoshangmin](#6807) 投稿) 17、[YouTube Playlist Processor](https://github.com/Ebrizzzz/Youtube-playlist-to-formatted-text)  这个工具用 AI 将 Youtube 播放列表转成一本电子书,参考这篇[介绍文章](https://www.xda-developers.com/turned-youtube-playlists-into-ebooks/)。 1、[素材 SoSo](https://clipso.agilestudio.cn)  免版权的图片和视频素材搜索引擎,支持语义搜索。([@YeDaxia](#6757) 投稿) 2、[FeedMe](https://feedme.icu)  提供多个信息源最新内容的 AI 摘要,[代码开源](https://github.com/Seanium/FeedMe)。([@Seanium](https://github.com/ruanyf/weekly/issues/6756) 投稿) 3、[吉卜力电影的高清图](https://www.ghibli.jp/works/)  吉卜力工作室的官网,放出了它们几乎所有电影的几百张高清图。 1、[盘式胶卷](https://clickamericana.com/media/photography/what-happened-to-kodak-disc-camera-debuted-in-1982) 1982年,柯达公司推出了盘式胶片相机。这种相机的胶片不是传统的一卷,而是一张张放在圆盘上。  上图的圆盘,外围的一圈就是一张张胶片。 这张设计的好处是,胶片相机可以做得很薄,塞在口袋里。   这种相机的卖点是廉价和便携,最便宜的型号只要68美元。但是,它的胶片比标准胶片小很多,导致画质不佳,而且一张圆盘只能拍15张照片,并且需要专用的冲印机。 这些不利因素导致这台相机只生产了6年,到1988年就不得不停产。 1、[约翰·巴洛的人生格言](https://www.mail-archive.com/[email protected]/msg08034.html) [约翰·巴洛](https://en.wikipedia.org/wiki/John_Perry_Barlow)(John Perry Barlow,1947-2018)是一个美国的著名作家。  60岁生日的那一天,他告诉朋友,他的一生有25点信条,是一直遵守的。 其中有几条,表达了一个核心观念,就是时刻对自己、对他人保持怀疑,不要坚信不移。 (1)拓展你对可能性的感知。所有事情都是可能的。 (2)容忍模棱两可。有些事情是不确定的,说不清是好是坏,是对是错,要容忍这样的事情。 (3)经常自嘲。永远不要忘记,无论你多么确定,你都有可能犯错。 (4)要关心什么是对的,不要关心谁对谁错。 (5)一旦发现自己错了,不要放过,也不要不承认。 (6)懂得谦逊和原谅他人。 2、[Web 开发的未来](https://alex.party/posts/2025-05-05-the-future-of-web-development-is-ai-get-on-or-get-left-behind/) 这篇文章发布于25年前,现在的标题如下。 > Web 开发的未来是 AI,要么加入,要么落后 历史上,我曾经多次修改标题。为了便于后人参考,我把它们依次列在下面。 > Web 开发的未来是区块链,要么加入,要么落后 > > Web 开发的未来是 CSS-in-JS,要么加入,要么落后 > > Web 开发的未来是渐进式应用,要么加入,要么落后 > > Web 开发的未来是 Silverlight,要么加入,要么落后 > > Web 开发的未来是 XHTML,要么加入,要么落后 > > Web 开发的未来是 Flash,要么加入,要么落后 > > Web 开发的未来是 ActiveX,要么加入,要么落后 > > Web 开发的未来是 Java 小程序,要么加入,要么落后。 文章的正文一直不变。 > 如果你不使用这项技术,那你就是在搬起石头砸自己的脚。 > > 它在未来一定会占据主导地位,发挥重要作用。如果你不使用它,你就会失业。它解决了我们遇到的所有开发问题。 > > 购买我的5000元课程,我来教你,如何学会它。 1、 上个月的流行词是“氛围编码”(vibe coding),本月的流行词就是 MCP 了。 -- [《我的 AI 笔记》](https://levelup.gitconnected.com/mission-impossible-managing-ai-agents-in-the-real-world-f8e7834833af) 2、 两个想法之间的差距越大,它们的结合就越具有原创性和令人惊讶性。 -- [尤德·肯尼特](https://thereader.mitpress.mit.edu/the-creativity-hack-no-one-told-you-about-read-the-obits/)(Yoed Kenett),美国心理学家 3、 心甘情愿地接受限制,可以增强而不是抑制创造力。 -- [《受约束的创造力》](https://arun.is/blog/creative-power-constraints/) 4、 AI 研究的最终目的是,它编写我们不理解的程序,来解决我们不知道如何解决的问题。 -- [莱斯利·兰波特](https://thenewstack.io/tla-creator-leslie-lamport-programmers-need-abstractions/)(Leslie Lamport),美国著名计算机科学家,排版系统 LaTex 的创始人 5、 人们在夜晚和周末所做的事情,代表了世界上所有未充分利用的时间和精力。 -- [安德鲁·陈《冷启动问题》](https://andrewchen.com/solve-a-hard-problem-cold-start-problem/) [三十年,解决人生三大问题](https://www.ruanyifeng.com/blog/2024/05/weekly-issue-300.html)(#300) [新技术的最大风险](https://www.ruanyifeng.com/blog/2023/04/weekly-issue-250.html)(#250) [低期望,多尝试](https://www.ruanyifeng.com/blog/2022/03/weekly-issue-200.html)(#200) [当音乐还是稀缺的时候](https://www.ruanyifeng.com/blog/2021/03/weekly-issue-150.html)(#150) (完)
这里记录每周值得分享的科技内容,周五发布。(**[通知] 下周五一假期,周刊休息。**) 本杂志[开源](https://github.com/ruanyf/weekly),欢迎[投稿](https://github.com/ruanyf/weekly/issues)。另有[《谁在招人》](https://github.com/ruanyf/weekly/issues/6443)服务,发布程序员招聘信息。合作请[邮件联系](mailto:[email protected])([email protected])。  大阪世博会的中国馆,以“中华书简”为主题。([via](https://www.thepaper.cn/newsDetail_forward_30640983)) 有一类人叫做未来学家(Futurists),专门研究未来。  这类人通常很快被忘记,因为他们的预测基本不准。就算偶尔说对了,后人也会觉得稀松平常。 历史上最著名的未来学家,大概是一个叫做[阿尔文·托夫勒](https://baike.baidu.com/item/%E9%98%BF%E5%B0%94%E6%96%87%C2%B7%E6%89%98%E5%A4%AB%E5%8B%92/9533188)(Alvin Toffler,1928—2016)的美国人。  上个世纪七十和八十年代,他写过很多预测未来的书,非常畅销。1983年,国内就引进了他的书,轰动一时。 时过境迁,现在几乎没人提他了。 前些日子,一个朋友对我说,你可以去看看他的书,居然没有完全过时。 我看了一些片段,很震惊。这些片段根本不像写于半个世纪之前,更像写于现在。  托夫勒的第一本书,叫做[《未来的冲击》](https://book.douban.com/subject/1843857/),写于1970年,国内有中文版。 下面就是他的主要观点。大家一定要记住,这些话写于1970年,那个时候还没有信息革命,既没有个人电脑,也没有手机和互联网。 托夫勒认为,人类以前是农业社会,现在是工业社会,即将进入**超工业社会**。 超工业社会有两个特征。 首先,工业人口只占少部分,大部分人从事脑力劳动。 其次,即使少部分人从业工业,生产出来的工业品,也大大超过需要。 那么,问题就来了。如果50%、甚至40%的工业生产能力,就能生产出满足所有人需要的工业品,那么会怎样? 托夫勒说,**为了消化掉多余的工业品,结果就是加速**。社会开始让消费加速,让技术也加速,最终让商品的流通速度变快,只有这样才能消费更多的商品。 这意味着,人类社会将变快。**我们生活的根本特征,不再是持久,而是短暂**。 (1)生活用品变得短暂,越来越多一次性产品:一次性筷子,一次性圆珠笔,一次性塑料瓶,甚至一次性衣服。 (2)即使长期使用的产品,也在快速升级换代。微波炉、洗衣机这样的耐用消费品,人们也只要今年的型号,不要去年的型号。 (3)社会充斥着速成食品、速成教育,甚至城镇也可以速成。 (4)知识短暂化,用过即弃。 (5)工作变得短暂。职位、公司、甚至行业,随时都会消失,新的部门和行业不断涌现。 (6)生活环境变得短暂。人们经常搬家,不会在一个地方久居。 (7)人际关系变得肤浅。人与人之间很难产生稳定深入的关系,交流持续的时间缩短,更多的是偶遇和点头之交。 (8)人们面对快速变化,内心感到疲惫和衰弱,情绪变得不稳定,精神病人变多。 总之,未来的根本特征,就是永恒感的丧失,取而代之的是短暂感。 本周,字节的 AI 编辑器 [Trae](https://sourl.co/inA2ng) 发了新版,可以**调用 MCP 服务器**了。 这可是重磅消息,开辟了一个全新天地,我还写了[一篇教程](https://www.ruanyifeng.com/blog/2025/04/trae-mcp.html)。 官方为了推广,投入了大量资源,Doubao、DeepSeek、Claude、Gemini、GPT-4o,**现在都是免费用**(后三个模型需要 Trae 海外版)。  为了让更多的同学参与,只要你深度体验 Trae,**完成简单任务,就可以获得相应积分**,兑换奖品。 奖品包括 华为 MatePad Air、雷蛇机械键盘、热门 App 会员卡等。 详情访问[这个链接](https://sourl.co/6M23d8),或者扫描上方海报的二维码。 机会难得,**既能学习 AI 和 MCP,还能拿奖品**,大家不要错过哦。 1、[虚拟味觉](https://arstechnica.com/science/2024/11/licking-this-lollipop-will-let-you-taste-virtual-flavors/) 香港城市大学的科学家,提出了一种虚拟味觉的实现方法。 他们做了一个类似棒棒糖的“虚拟味觉器”,用户把它含在嘴里。  它会以“离子泳”的形式,释放水凝胶。目前,一共9种口味的水凝胶,也就是说用户可以尝到9种味道:糖、盐、柠檬酸、樱桃、百香果、绿茶、牛奶、榴莲和葡萄柚。 这里的关键是,水凝胶的释放可以编程控制,因此可以用来在电子游戏中增强用户体验,或者网上购物时让用户先品尝食品味道。 2、[旅行推销员问题](https://baike.baidu.com/item/%E6%97%85%E8%A1%8C%E5%95%86%E9%97%AE%E9%A2%98/7737042)是一个著名的计算机科学问题。  它的表述是,怎么规划出一条最短路线,可以拜访每一座城市一次,最终回到起始城市。 最近,一个国际团队打破了[旅行推销员问题的世界纪录](https://www.math.uwaterloo.ca/tsp/korea/index.html)。 他们规划出一条最短路线,可以一次性走遍韩国所有81,998家酒吧。  一刻不停的步行,完成这条路线一共需要178天。 此前的世界纪录是2021年创造的,走完荷兰57,912个纪念碑的最短路线。 3、[Vision Pro 的新用途](https://time.com/7093536/surgeons-apple-vision-pro/) 苹果的 AR 头盔 Vision Pro,售价高达3万元人民币,销量并不好。 用户普遍觉得,它的用处并不大,售价又这么贵。但是,它意外在一个场合非常受欢迎。  美国的一些医院发现,它可以用于微创手术。医生戴着头盔,给病人开刀,上图就是两个这样的医生。 很多手术,尤其是涉及血管和神经的手术,要求非常精细,动刀位置不能有一点差错。 医生不可能凑上去看,现在都是用摄像头放大后,看着显示器动刀。  Vision Pro 戴在眼前,影像更大,看得更清楚,而且还能叠加多窗口,显示心率血压等指标。 医生非常喜欢这个设备。价格完全不是问题,因为手术用显示器的价格是 Vision Pro 的好几倍。 4、**其他** (1)北京举行[机器人半程马拉松](https://www.yicai.com/news/102579232.html)比赛。21公里的路程,冠军成绩是2小时40分42秒,需要更换三次电池。  (2)4月25日的日出前,土星、金星、月亮,将组成[笑脸图案](https://www.popsci.com/science/smiley-face-triple-conjunction/)。  (3)亚马逊在欧洲实验,让送货卡车配备[心脏除颤器](https://www.bloomberg.com/news/articles/2025-04-10/amazon-turned-drivers-into-first-responders-in-europe-experiment),一旦送货时遇到突发心脏病的人,可以进行急救。  (4)索尼推出[全球最小的激光雷达](https://petapixel.com/2025/04/15/sony-unveils-the-worlds-smallest-and-lightest-lidar-depth-sensor/),适合用于无人机、机器人。  1、[昊龙:中国首个货运航天飞机](https://finance.sina.com.cn/tech/digi/2024-12-31/doc-ineciyiv2558351.shtml)(中文) 天宫空间站的补给,目前由天舟飞船完成。但是,天舟每次返回大气层,都会烧毁。 国内正在研究可以重复使用的“昊龙”货运飞船,以降低货运成本。  昊龙已经完成了设计,正在工程测试阶段。  2、[如何使用 UTM 在 Mac 电脑架设虚拟机](https://rkiselenko.dev/blog/development-on-mac-with-utm/development-on-mac-with-lima/)(英文)  一篇教程,教你如何在 MacBook 安装 utm 虚拟机,从而方便地使用 Linux 系统。 3、[清理`<head>`](https://getoutofmyhead.dev/)(英文)  网页的`<head>`部分里面,很多标签是不必要的,这个网站介绍可以删除的标签,比如 favicon、Apple touch icons。 4、[线上故障应急处理:4 年多 on call 经验总结](https://jt26wzz.com/posts/0007-online-firefighting-real-world-lessions-from-4-years-on-call/)(中文)  我的第一份工作是 CDN 基础设施研发,考虑到公司体量,那些年其实故障蛮多的。在故障处理中,积累了一些经验教训,总结回顾一下。([@swananan](#6654) 投稿) 5、[在 Docker 沙箱中运行 MCP Server](https://miantiao.me/posts/guide-to-running-mcp-server-in-a-sandbox/)(中文)  本地运行他人的 MCP 服务器有极大的风险,本文介绍怎么在 Docker 沙箱里面运行。([@ccbikai](#6727) 投稿) 6、[如何用 Whisper 生成字幕](https://kracekumar.com/post/subtitle-generator-using-whisper/)(英文)  本文是作者的操作记录,演示如何用 OpenAI 公司的 Whisper 模型为视频文件生成字幕。 1、[Open Props UI](https://open-props-ui.netlify.app/)  一个 CSS 组件库,使用最新的 CSS 规范,也就是说,不考虑兼容老旧浏览器。 2、[ts-blank-space](https://github.com/bloomberg/ts-blank-space)  一个从 TypeScript 脚本剥离类型代码的工具,也就是将 TS 脚本转成 JS 脚本,但是不进行类型检查。 3、[Better Auth](https://github.com/better-auth/better-auth)  一个 TypeScript 的用户身份认证库,功能全面,密码登录、双因素认证、外部身份提供商等都支持。 4、[Browspilot](https://browspilot.com/)  Chrome 浏览器插件,自动保存所有浏览过的网页,提供浏览历史的全文搜索。 5、[to-unocss](https://to-unocss.netlify.app/)  这个网页工具将 CSS 代码转成 unoCSS 或者 [TailwindCSS](https://to-tailwindcss.netlify.app/) 的写法。([@Simon-He95](#6726) 投稿) 6、[NoteGen](https://github.com/codexu/note-gen)  跨平台的 Markdown 笔记软件,支持接入 AI 模型。([@codexu](#6645) 投稿) 7、[speed-github](https://github.com/jvxiao/speed-github) 一个修改 hosts 文件,加快 GitHub 访问速度的 Python 脚本。([@jvxiao](#6655) 投稿) 这里还有一个 [Cursor](https://cursor-host.aolifu.org/) 的 hosts 文件生成器。([@Oliverwqcwrw](#6718) 投稿)  8、[旅游翻译器](https://besttraveltranslator.com)  网友做的旅行翻译网站,支持对话翻译和拍照翻译,[代码开源](https://github.com/traveltranslator1/traveltranslator1)。([@traveltranslator1](https://github.com/ruanyf/weekly/issues/6719) 投稿) 9、[Shui](https://github.com/rock-zhang/Shui)  开源的桌面软件,定时提醒喝水。([@rock-zhang](#6704) 投稿) 10、[SnowAdmin](https://github.com/WANG-Fan0912/SnowAdmin)  基于 Vue + Vite 的网站管理后台模版。([@WANG-Fan0912](#6705) 投稿) 1、[chatlog](https://github.com/sjzar/chatlog)  用 AI 处理微信本地聊天记录的工具。([@sjzar](#6653) 投稿) 2、[HowToCook-MCP Server](https://github.com/worryzyy/HowToCook-mcp) 一个 MCP 服务器,提供中文菜谱、餐食规划。([@worryzyy](#6714) 投稿) 3、[Midscene.js](https://midscenejs.com/zh/blog-support-android-automation.html)  字节推出的 JS 工具,最新功能是通过 AI 和 adb,完成安卓手机自动化。它早先已经可以浏览器自动化。([@yuyutaotao](#6725) 投稿) 4、[MCP Gateway](https://github.com/mcp-ecosystem/mcp-gateway)  一个 Go 语言写的网关服务,将已有的 API 转成 MCP 服务,无需改动任何代码。([@iFurySt](#6730) 投稿) 1、[全球地铁线路图](https://www.metrolinehub.com/zh)  这个网站收集了全球各大城市的地铁地图。([@027xiguapi](#6721) 投稿) 2、[如是我闻](https://rushiwowen.co)  佛经阅读平台,带有 AI 翻译和问答。([@bolechen](#6656) 投稿) 3、[They see your photos](https://theyseeyourphotos.com)  该网站对用户上传的照片给出详尽描述,从而可以发现照片泄漏了多少信息。 日本每年举行一次全国[木匠大会](https://www.bigsandwoodworking.com/kezurou-kai-39/)。  大会有一个项目,就是刨花比赛,看看谁的刨花最薄。  比赛规定,木材必须是宽55毫米、长1800毫米的桧木。进入决赛的5名选手,为了公平,将使用同一块桧木。   刨出来的刨花必须完整,没有裂口,长度在1米左右,才能参加评分。 工作人员把所有选手的刨花,挂在黑板上,进行公示,评委进行打分。  这些的刨花如此之薄,令人不敢相信。  冠军选手的成绩是50微米,也就是1毫米的20分之一。  1、[你是创造者还是消费者?](https://www.andrewlynch.net/blog/are-your-a-creator-or-a-consumer) 我是一个信息瘾君子,对各种信息上瘾。 当我想学习一项新技能,或者有了一种新爱好,我就立即前往亚马逊网上书店,购买3~4本该主题的书籍。 现在我的书柜里面、有关于 HTML 基础知识、纸牌魔术、高尔夫、编剧、赛车、冥想、举重以及大约10个其他主题的书籍。 我也会订阅一些博客和播客,阅读所有最受欢迎的帖子,聆听了各种专家访谈。有时候,我甚至会在 Evernote 做一些笔记,或者在浏览器为某些页面添加书签。 然而,我总是缺少一件事:实际成果。 我对那么多东西感兴趣,也学了很多,但是没有做出什么成果。 我只是查找和使用信息,这很容易,对于像我这样好奇的人来说,这通常也非常有趣。 但它实际上并没有完成任何事情,这是伪工作,一种自我安慰。 创造才是更有效的方式,你开始制作东西——网站、成功的高尔夫击球、剧本等等,不管是什么——然后,无非就是两种结果。一种结果是你意识到自己对它不那么感兴趣,另一种结果是你真的喜欢它,开始深入研究。无论哪一种结果,都是值得的,而盲目消费信息,则是一种无效的表面行为。 1、 AI 伴侣可以减少孤独感,但是会产生新的问题。它可能取代人际互动,让你丧失基本社交技能,从而变得更加孤立。 -- [哈佛商学院的一项研究](https://peakhorse.substack.com/p/empty-calories-of-ai-a-cure-for-loneliness) 2、 简单和优雅不受欢迎,因为它们需要努力工作和纪律才能实现。 -- [Edsger Dijkstra](https://github.com/tigerbeetle/tigerbeetle/blob/main/docs/TIGER_STYLE.md),著名计算机科学家 3、 规则就像汽车上的安全带:一开始可能会有点不舒服,但一段时间后,使用规则就会成为习惯,不使用规则就变得不可想象。 —— [Gerard J. Holzmann](https://github.com/tigerbeetle/tigerbeetle/blob/main/docs/TIGER_STYLE.md) 4、 企业编程必须始终依赖流程,而不是个人。 个人能力很重要,应该鼓励,但不能指望它,否则软件质量将不一致,没有可持续性。一旦顶级程序员跳槽,公司就会陷入困境。 企业应该努力改进工作流程,而不是努力改进人员,始终坚持流程优先于人员。 -- [《创作系统,而不是创造英雄》](https://vitonsky.net/blog/2024/10/11/system-approach/) 5、 我喜欢软件,因为软件可以创造无限可能性和一种非凡的民主。 -- [Hacker News 读者](https://news.ycombinator.com/item?id=42508594) [AI 的关键是语料](https://www.ruanyifeng.com/blog/2024/05/weekly-issue-299.html)(#299) [最成功的软件企业家](https://www.ruanyifeng.com/blog/2023/04/weekly-issue-249.html)(#249) [俄罗斯的 HTTPS 证书问题](https://www.ruanyifeng.com/blog/2022/03/weekly-issue-199.html)(#199) [新能源汽车,谁会是赢家?](https://www.ruanyifeng.com/blog/2021/03/weekly-issue-149.html)(#149) (完)
这里记录每周值得分享的科技内容,周五发布。 本杂志[开源](https://github.com/ruanyf/weekly),欢迎[投稿](https://github.com/ruanyf/weekly/issues)。另有[《谁在招人》](https://github.com/ruanyf/weekly/issues/6443)服务,发布程序员招聘信息。合作请[邮件联系](mailto:[email protected])([email protected])。  湖北宣恩县的竹筏夜游,两岸灯火辉煌。([via](https://estv.com.cn/tt/3015235.htm)) 今年一月,有一个消息,大家可能没关注,那就是 HDMI 接口发布了[2.2版](https://finance.sina.com.cn/tech/roll/2025-01-07/doc-ineeeanv7947700.shtml)。  今天说说这件事,我冒着打脸的风险,猜测一下,这个标准可能到头了。 HDMI 接口是最常见的影音接口,每个人应该都接触过,电视机和显示器一般都用它连接信号源。  这个接口一直在升级,每次升级都会提高信号的传输速率。 > - HDMI 1.0-1.2(2002):4.9Gbps > - HDMI 1.3-1.4(2006):10.2Gbps > - HDMI 2.0(2013):18Gbps > - HDMI 2.1(2017):48Gbps > - HDMI 2.2(2025):96Gbps 从上表可以看到,HDMI 接口的每次升级,信号的传输速率都会翻倍。这是为了应对现在的视频,越来越高清,数据量越来越大。 这一次,从2.1版升级到2.2版,速率从 48Gbps 加大到 96Gbps。 **96Gbps 这个速率,大到吓人**。 这是什么概念?最快的家庭网络现在是万兆网络(10Gbps),一般人根本不需要这么快,而 HDMI 2.2 比它还快10倍! 这是最快的影音接口,即使目前最高清晰度的视频,它可以同时传输多部,还有多余的带宽。  问题是,你用不到它。4K + 60帧 + HDR10 或杜比视界效果的视频,只需要 HDMI 2.0 就能实时传输。 8K + 60帧的视频,要用到 HDMI 2.1,而 **HDMI 2.2 支持 12K + 60帧的视频**。 可是,人们真的会在电视机上观看 12K 分辨率的视频吗?  大家可能听说过一个词“[视网膜分辨率](https://zh.wikipedia.org/wiki/Retina%E6%98%BE%E7%A4%BA%E5%B1%8F)”(retina display),指的是人眼能够感知的最高分辨率。 超过这个分辨率,人眼就感知不到清晰度的提高,再提高分辨率就毫无意义。 2010年,乔布斯在发布 iPhone 4 时,提出了这个概念。他说,正常距离25-30厘米时,肉眼感觉不出 iPhone 4 屏幕的像素点。  视网膜分辨率跟两个因素有关:观看距离,屏幕大小。 屏幕越大,距离越近,所需要的分辨率越高;屏幕越小,距离越远,所需要的分辨率越低。 国外有人[计算过](https://archimago.blogspot.com/2025/03/hdmi-musings-high-speed-cables-data.html),普通的家庭影院,**坐在距离3.6米的地方,观看 12K 视频,屏幕可以大到550英寸,也能达到视网膜分辨率**。 550英寸相当于宽12米,高6.8米,也就是广告牌大小!  换句话说,**小于550英寸的屏幕,根本不需要 12K 分辨率**。即使用到了,也是浪费,因为肉眼分辨不出这样的清晰度。 所以,普通家庭根本不需要 12K 分辨率。客厅里面,4K 电视机就能达到视网膜分辨率。 现阶段,视频效果的提升,主要已经不是通过分辨率了,而是通过色彩准确度、对比度(动态)等指标了。 音频也是如此。对于一般人的耳朵,CD 音质已经接近立体声的听觉极限,再提高也分辨不出来。它只需要 USB 2.0 (480Mbps) 就可以实时传输。 总之,影音标准在技术上还可以继续提高,但是**人类的感官是有极限的。现有的技术已经达到感官的极限了**,传输速率再提高,收益只会越来越少。 反正,我想象不出来,如果未来推出 HDMI 的2.3版或3.0版,传输速率将有多大,又是要满足怎样的场景? 1、[加州禁止“保质期”](https://www.foodandwine.com/california-bans-sell-by-dates-8723111) 美国加州通过一项法律,从2026年7月开始,食品不得标识“保质期”,而要改成“最佳食用日期”(Best Before)。  因为保质期往往被当作可食用的最后日期,一旦过期,食品就要下架,非常浪费。 实际上,保质期是指该日期之前,口味最佳。 据估计,保质期让美国33%的食物被浪费。这次的新法律,允许过期后食品继续留在货架上,每年可以让加州少浪费7万吨食品,大约节省3亿美元。 2、本周开幕的大阪2025世博会,建造了一个[全世界最大的木结构建筑](https://www.instagram.com/p/DIJbYlLsKEi/)。  那是一个圆形的环,周长2公里,象征世博会参展国之间的团结。    3、[升降人形机器人](https://www.facebook.com/moneysaveJP/posts/507308291818047/) 日本 JR 铁路公司有很多高空电线,维修人员不足,而且高空作业也很麻烦危险。 他们就别出心裁,在升降机上装了一个人形机器人。  这个机器人做成了漫画《机动战士高达》的样子,还特别将摄像头做成了两只眼睛。 底下有操作员,将机器人升到高空,进行作业。所以,它也不是智能的,更像拉线木偶。   4、**其他** (1)传统的[微软死机“蓝屏”画面](https://www.xda-developers.com/microsoft-blue-screen-of-death-replacement/),可能改变。  Windows Insider 最新的更新包,将死机画面改成了黑屏(下图),类似于 Windows 更新画面。  (2)[Notion](https://www.notion.com/product/mail) 推出邮件服务,目前只能用于连接 Gmail 邮箱。  (3)[网站 TLS 加密证书](https://www.digicert.com/blog/tls-certificate-lifetimes-will-officially-reduce-to-47-days)的有效期,将缩短为47天,2026年开始生效。 1、[我们正在进入大芯片时代](https://www.xda-developers.com/were-entering-the-big-chip-era-and-i-couldnt-be-more-excited/)(英文)  大芯片指的是 CPU、GPU、内存封装在一块芯片里面,典型代表是苹果的 M 系列芯片。 这种设计使得 CPU 和 GPU 共享内存,并且有极大的内存带宽,这就是为什么苹果电脑不需要 Nvidia 显卡,也能运行 AI 模型。 2、[我放弃了笔记本,只用袖珍电脑 + AR眼镜](https://www.tomsguide.com/computing/i-ditched-my-laptop-for-a-pocketable-mini-pc-and-a-pair-of-ar-glasses-heres-what-happened)(英文)  作者介绍他现在外出所携带的电脑设备:一个袖珍电脑,一个移动电源,一副 AR 眼镜和移动键鼠。  3、[为什么大写字母的二维码小于小写字母](https://shkspr.mobi/blog/2025/02/why-are-qr-codes-with-capital-letters-smaller-than-qr-codes-with-lower-case-letters/)(英文)  作者指出一个有趣的现象,如果把网址全部转成大写字母,再生成二维码,会小于小写网址的二维码(更稀疏)。 4、[JS 性能测试的一个技巧](https://ates.dev/posts/2025-01-12-accurate-benchmarking/)(英文)  通常测试 JS 代码的性能时,会使用循环,但是循环本身有开销。作者介绍消除循环开销的一个技巧,就是分成两个循环,前一次循环执行一次代码,后一个循环执行两次代码,后者再减去前者。 5、[让你的 RSS/Atom feed 更好看](https://taxodium.ink/pretty-feed.html)(中文)  一篇简单教程,介绍如何为 XML 格式的 RSS 文件加入样式。([@Spike-Leung](#6576) 投稿) 6、[text-wrap 的新设置](https://webkit.org/blog/16547/better-typography-with-text-wrap-pretty/)(英文)  text-wrap 在 CSS 里面用来控制文本换行。它有两个新设置 text-wrap: pretty 和 text-wrap: balance。 1、[yabs.sh](https://github.com/masonr/yet-another-bench-script)  一个用来测试服务器性能的 Bash 脚本,参考[这篇教程](https://blog.aawadia.dev/2023/08/26/yabs-august-2023/)。 2、[Pākiki Proxy](https://pakikiproxy.com/)  一个跨平台的桌面应用,用来拦截本机的 HTTPS 和 Websocket 通信,进行查看和编辑。 3、[Giant Log Viewer](https://github.com/sunny-chung/giant-log-viewer)  一个跨平台的桌面软件,轻松打开和查看极大体积的文件(可以到 TB 级)。 4、[OpenAPI DevTools](https://github.com/AndrewWalsh/openapi-devtools)  一个 Chrome 插件,可根据网络请求实时生成 OpenAPI 规范的 API 描述。 5、[Online 3D Viewer](https://3dviewer.net)  一个开源的在线 3D 文件浏览器,支持多种文件格式。 6、[Tirreno](https://github.com/TirrenoTechnologies/tirreno)  开源的访问者分析系统,基于 PHP。 7、[EaseVoice Trainer](https://github.com/megaease/easevoice-trainer)  一个本地的声音克隆软件。([@xxx7xxxx](#6569) 投稿) 8、[Lexe](https://github.com/Ray-D-Song/lexe) Node.js 应用打包成单个可执行文件,基于轻量级 JS 运行时 LLRT,打包体积小。([@Ray-D-Song](#6597) 投稿) 9、[Treex](https://github.com/shiquda/treex)  开源的命令行工具,用来输出目录的树状结构,有多种输出格式和过滤选项。([@shiquda](#6591) 投稿) 10、[py-xiaozhi](https://github.com/huangjunsen0406/py-xiaozhi)  一个使用 Python 实现的小智语音助手,支持语音交互、物联网设备控制、联网音乐播放等功能,无需专用硬件。([@huangjunsen0406](#6643) 投稿) 1、[PureChat](https://github.com/Hyk260/PureChat)  开源的 AI 聊天应用,可以接入 OpenAI、Ollama、DeepSeek 等大模型,基于 Vue3 和 Vite5 开发。([@Hyk260](#6567) 投稿) 2、[Vanna](https://github.com/vanna-ai/vanna)  一个开源的数据库分析 AI,用自然语言向数据库询问,它会自己生成 SQL,并给出运行结果。([@904192063](#6573) 投稿) 3、[AI 视频图文创作助手](https://github.com/hanshuaikang/AI-Media2Doc)  将任意视频/音频,转化为各种风格的文章,可在本地部署。([@hanshuaikang](#6584) 投稿) 1、[Flight Track in 3D Earth](https://flight.is26.com/)  在 3D 地球仪上,显示某个航班的飞行路线。([@foru17](#6583) 投稿) 2、[欧洲夜班火车地图](https://back-on-track.eu/night-train-map/)  这个网页的设计制作,让人过目难忘,可以借鉴。点击线路,会有详细信息的弹窗。 1、[市场结构入门](https://primer.prooftrading.com/)(Market Structure Primer)  一本英文电子书,向新手介绍美国证券市场的结构,如果想参与美股,可以读读。 世界最大的 CDN 服务商 Cloudflare,在世界各地的办公室,各自部署了一个奇怪的技术装置。 这些装置可以生成无法预测的随机数,用于通信加密。 比如,旧金山总部的熔岩灯。  每时每刻,每盏灯的颜色和图案,都在变化,计算机处理后就是不一样的随机数。 伦敦办公室则是“单摆墙”,每一盏都在摆动。   奥斯汀办公室是反光片天花板,任何气流都会让反光片转动。  [周刊305期](https://www.ruanyifeng.com/blog/2024/06/weekly-issue-305.html)详细介绍过这些装置。 上个月,Cloudflare [里斯本办公室](https://blog.cloudflare.com/chaos-in-cloudflare-lisbon-office-securing-the-internet-with-wave-motion/)开张了,又新增了一个装置。 那是50个波浪机,组成了一面墙。  每个波浪机就是一个透明的长条容器,里面装着蓝色、绿色或者橙色的液体。  电力驱动波浪机的马达,容器每分钟翻转14次,每天超过20,000次。里面的液体随着容器翻转,形成波浪运动。  波浪机背后的反光板,会放大液体流动的光影效果,从而适合用来生成随机数。 1、[韩式可爱](https://walkingtheworld.substack.com/p/the-unbearable-lightness-of-korean) 我很喜欢韩国首尔,过去四年已经去过了七次。 我注意到,首尔到处都是可爱的装饰物,令人应接不暇,根本无法逃避。所有东西都弄得像卡通人物。  人们都在大肆购买毛绒玩具。  小吃店的宣传招牌上,卡通章鱼甚至涂了口红,那是你最终会杀死然后吃掉的章鱼。  我觉得,韩国的年轻一代似乎通过拥抱可爱的东西,来应对猖獗的消费和物质主义,以及由此产生的空虚。 如果你把任何事物都塑造成可爱的形象,就能淡化生活的沉闷,避免那些严肃的问题,让消费主义没那么毫无意义了。 我完全接受把任何事物拟人化。但当它变成一种世界观时,就相当令人沮丧了。 在首尔,可爱文化几乎成了一种世界观。韩国年轻人用这种方式,应对没有灵魂的未来。 可爱文化虽然肤浅,但在消费社会却非常合理。更多可爱的毛绒玩具,产生更多的快乐,你购买越多,满足感越大。 一个幸福满足、运转良好的社会,需要有某种形式的信仰和美学,提升生活,超越物质。 但是,试图用可爱来做到这一点,只不过是一种自欺欺人。 1、 科幻电视剧《黑镜》完全是技术悲观主义,只谈技术的风险,不谈技术变革让现在的生活比过去好。它传播对未来的恐惧,让人们惧怕技术变革。 但是,如果我们想要更美好的未来,就只有依靠技术。 -- [英国《卫报》](https://www.theguardian.com/technology/2025/apr/10/black-mirror-tv-show-pessimism) 2、 我的编程风格是“面向痛苦的编程”。什么问题让我痛苦,我就去解决它,最痛苦的,最先解决,不痛苦的,就不去碰它。 这种编程可以确保你始终在做重要的事情,从而极大地降低了风险。 -- [《面向痛苦的编程》](http://nathanmarz.com/blog/suffering-oriented-programming.html) 3、 现在的社交媒体,不看重优质内容,而看重互动,看重通过货币化和 AI 吸引更多的流量。 这导致用户会被欺骗,会被诱导产生情绪波动,而看不到真正的创作和真实性。 -- [《没有人应该成为“内容创造者”》](https://christianheilmann.com/2025/03/12/nobody-should-be-a-content-creator/) 4、 黑客的学习方法是,开始玩某件东西,然后转头去读文档,继续玩这件东西,再次阅读文档,接着玩下去,再次阅读文档……不断重复,直到搞懂。 -- [黑客手册](https://web.archive.org/web/20160304012343/http://rdog.googlecode.com/hg/doc/hacker.txt) [轮到硬件工程师吃香了](https://www.ruanyifeng.com/blog/2024/04/weekly-issue-298.html)(#298) [不要夸大 ChatGPT](https://www.ruanyifeng.com/blog/2023/03/weekly-issue-248.html)(#248) [美国制造是否可能](https://www.ruanyifeng.com/blog/2022/03/weekly-issue-198.html)(#198) [微增长时代](https://www.ruanyifeng.com/blog/2021/03/weekly-issue-148.html)(#148) (完)
这里记录每周值得分享的科技内容,周五发布。 本杂志[开源](https://github.com/ruanyf/weekly),欢迎[投稿](https://github.com/ruanyf/weekly/issues)。另有[《谁在招人》](https://github.com/ruanyf/weekly/issues/6443)服务,发布程序员招聘信息。合作请[邮件联系](mailto:[email protected])([email protected])。  天津海棠花盛开,茶壶倒出的都是海棠。([via](https://www.sohu.com/a/876850404_121443915)) 本周分享一篇北京大学[张丹丹](https://www.nsd.pku.edu.cn/szdw/qzjs/z/262201.htm)老师的[文章](https://mp.weixin.qq.com/s/Td3LiMgqR36PPpd36rjBAg)。  她主要研究劳动经济学,也就是劳动力问题。 她注意到一个现象:**零工越来越多**。 所谓“零工”,就是不与用人单位签订劳动合同,也不缴纳社保的工人。 这里面包括两种情况。一种是派遣工,合同是跟人力中介签的。另一种是真正的零工,没有任何劳务合同,又称“日结工”(当日结算工资)。  正常情况下,零工是少数,大部分员工应该是正式的长期工。 但是,现实情况恰恰相反。**制造业自动化以后,零工不减反增**。越来越多的长期岗位消失,变成短期的零工岗位。  张丹丹团队调查了长三角和珠三角,发现工厂的零工非常普遍。 以江苏省昆山为例,“那里聚集了上千家劳务和中介机构,每天向当地及周边的数千家大规模制造业企业输送劳动力,日均进厂工人数高峰时可达数万。” 他们调查的企业里面,派遣工占企业用工的比例,**平时是1/3,旺季可以高达2/3**。那些万人大厂,派遣工比例更高达80%。 这很惊人,意味着,工厂的主要劳动力是零工,那种干几天就走的工人。 根据他们估算,中国制造业的派遣工已经达到了4000万人,占从业人员的31.12%。也就是说,三个工人里面就有一个是零工,并且还在增加。 为什么中国的制造业大量使用零工?文章分析了六个原因。 **(1)自动化增加了低技能岗位**。机器容易替代中等技能岗位,反而是低技能岗位尚难以替代。对于这些岗位,企业倾向于招零工。 **(2)招工平台极大方便了零工的招聘**。企业只要网上发布招聘信息,就能快速找到人。 **(3)消费市场存在季节性波动**。制造业的用工需求是周期性的,旺季人手不够,淡季有冗员。零工能够满足临时的用人需求。 **(4)城乡二元户籍制度,使得外来务工者倾向于短期岗位**。很多打工者来自外地,没有当地户口,享受不到当地的社会福利。这使得他们更愿意“多拿工资、少缴社保”的零工(由于不缴社保,零工的日薪高于长期工)。 **(5)企业降低用工成本**。通过劳务派遣、劳务外包等方式招聘零工,企业的成本更低。而且,派遣工由劳务中介机构管理,企业无需直接承担解雇成本,能够更灵活地调整用工规模。 **(6)市场的不确定性,加剧了零工化**。国内经济和国际市场不确定性增加,使得企业不敢冒然招聘长期岗位。 上面六点原因将长期存在,因此**零工化是不可避免的趋势,零工的比例还将进一步上升。** 我分享这个研究,主要目的就是,希望大家意识到这一点。不仅是制造业,以后软件业大概也是这样,长期的工作岗位越来越少,**职位短期化将是常态**。 当然,这对劳动者不利。很多零工岗位是随时走人,或者项目结束走人,要是没有劳动合同,不交社保,权益难以保障。而且,零工岗位很多是高度细分的低技能岗能,劳动者无法积累人力资本。 张丹丹呼吁,政府要重视这个问题,更好保障零工的权利,一是加强零工的社保,规范企业用工,二是加强零工的教育培训,防止劳动者被低技能的零工岗位长期困住,无法找到更高报酬的工作。 1、一家深圳公司创造了[飞天屏](https://zsrbapp.zsnews.cn/home/content/newsContent/1/665433)的世界纪录。  他们用无人机把一块72.66平方米的 LED 屏幕吊上了天,在空中播放视频。  2、上海时装周出现[机器人模特](https://chinaminutes.com/2025/03/27/robotics-meets-runway-unitree-g1s-catwalk-debut-at-shfw/)走秀。  3、加密货币早期投资者王纯,买下 SpaceX 公司的一次飞行,进行了一次[太空旅游](https://www.scmp.com/news/world/united-states-canada/article/3304663/chinese-born-entrepreneur-buys-entire-spacex-flight-ultimate-polar-orbit-adventure)。  整个机务组一共4人,4月1日进入太空,共飞行3天半,围绕地球的南北极飞行,上周五成功[返回地球](https://edition.cnn.com/2025/04/04/science/spacex-fram2-mission-return-earth/index.html)。  4、美国基因工程公司 Colossal 宣布,复活了一万年前灭绝的[恐狼](https://www.hollywoodreporter.com/news/general-news/game-of-thrones-dire-wolves-return-extinction-1236181901/)。  他们从化石提取了恐狼的 DNA,然后以其为样本,对现存最接近的动物灰狼进行基因编辑,才诞生出恐狼。  恐狼与灰狼的最大区别是,前者的体型要比后者大50%。 5、得克萨斯州的特斯拉工厂生产的全新 Model Y,被发现[自己从生产线上开下来](https://www.facebook.com/watch/?v=969020125422825)。  一直开到2英里外的停车场,全程自动驾驶。  6、上个世纪60年代,生物学家在新西兰的一个小岛,为一批壁虎佩戴了标牌。  最近一次调查,人们发现有[两只壁虎还活着](https://edition.cnn.com/2025/03/28/asia/new-zealand-worlds-oldest-geckos-intl-hnk/index.html),它们已经超过了60岁。 7、Mozilla 推出类似 Gmail 的邮件服务 [ThunderMail](https://thundermail.com/)。 8、[Spotify CEO](https://techcrunch.com/2025/04/07/shopify-ceo-tells-teams-to-consider-using-ai-before-growing-headcount/) 规定,招聘员工之前,必须先证明该岗位无法用 AI 替代。 1、[微软50周年的回忆](https://www.gatesnotes.com/meet-bill/source-code/reader/microsoft-original-source-code)(英文)  今年是微软诞生50周年,比尔盖茨写了这篇回忆文章,介绍了他怎么会创立这家公司,文末给出了微软第一个产品 Altair BASIC 的源码下载。 微软官方也提供了8款[五十周年纪念壁纸](https://blogs.windows.com/windowsexperience/2025/04/03/windows-wallpapers-worth-celebrating/)。  2、[NotebookLM 是你的最佳笔记本](https://www.xda-developers.com/notebooklm-tips-use-to-supercharge-productivity/)(英文)  作者提出,谷歌的 AI 笔记本 NotebookLM,从根本上改变了管理知识、提取信息的方式,是最佳笔记工具。只要把原始材料扔进去,它自己会生成整理好的笔记。 3、[Gemini 2.5 Pro 与 Claude 3.7 Sonnet:编码比较](https://composio.dev/blog/gemini-2-5-pro-vs-claude-3-7-sonnet-coding-comparison/)(英文) 这是目前生成代码最强的两个 AI 模型,作者对它们进行比较,看看谁更强。  结论是总体相差不大,但是 Gemini 2.5 Pro 的上下文窗口更大,而且免费。 4、[代码混淆101](https://socket.dev/blog/obfuscation-101-the-tricks-behind-malicious-code)(英文)  本文介绍几种最常见的代码混淆的做法。 5、[安卓不再是 iPhone 的竞争者](https://www.howtogeek.com/android-isnt-the-anti-iphone-anymore/)(英文)  作者认为,安卓变得越来越封闭,不再能 Root 和改装,完全依附于谷歌生态,那为什么不去用协同性更好的 iPhone 呢? 6、[NVIDIA 为 CUDA 添加原生 Python 支持](https://thenewstack.io/nvidia-finally-adds-native-python-support-to-cuda/)(英文)  CUDA 框架是 AI 模型的计算工具,它的官方编程语言主要是 C/C++,现在终于添加原生 Python 支持,不用通过第三方库了。 1、[NixVis](https://github.com/BeyondXinXin/nixvis)  开源的轻量级 Nginx 日志分析工具,自带 Web UI,使用 Go 语言开发。([@BeyondXinXin](#6414) 投稿) 2、[throttled-py](https://github.com/ZhuoZhuoCrayon/throttled-py) 一个 Python 库,用来对函数进行限流,提供各种限流算法。([@ZhuoZhuoCrayon](#6429) 投稿) 3、[pdf-craft](https://github.com/oomol-lab/pdf-craft)  命令行 Python 工具,用来将扫描的 PDF 文件转为 Markdown 和 EPUB,并通过 AI 进行 OCR。([@BlackHole1](#6442) 投稿) 4、[IOE](https://github.com/zhtyyx/ioe)  一个开源的库存管理系统,使用 Python 语言。([@zhtyyx](#6445) 投稿) 5、[DNS-Splitter](https://github.com/mycoco/DNS-Splitter)  一个浏览器插件,可以根据域名或 IP 地址,实现 DNS 分流。([@mycoco](#6446) 投稿) 6、[TransferFiles](https://github.com/CoderLim/transfer-files)  开源的浏览器点对点文件共享工具,无需安装软件和服务器,直接在设备间传输文件和文本消息。([@CoderLim](#6477) 投稿) 7、[Melody Canvas](https://github.com/RylanBot/melody-canvas)  一个开源网站,将音频可视化,可以导出视频。([@RylanBot](#6535) 投稿) 8、[EasyVoice](https://github.com/cosin2077/easyVoice)  开源的文本转语音工具,可以[在线体验](https://easyvoice.ioplus.tech/)。([@cosin2077](https://github.com/ruanyf/weekly/issues/6524) 投稿) 9、[QuickGo](https://github.com/Dolov/chrome-QuickGo)  很多网站会将外链导向一个中间页面,从那里跳转打开。这个开源的 Chrome 浏览器插件,可以省掉这个步骤,自动打开目标页面,支持自定义规则。([@Dolov](#6465) 投稿) 10、[wukong-minimap](https://github.com/jaskang/wukong-minimap)  游戏《黑神话:悟空》没有提供地图,这个开源工具在游戏的左上角加上实时地图。([@jaskang](#6447) 投稿) 11、[Subtitle Translator](https://github.com/rockbenben/subtitle-translator)  一个开源的字幕翻译工具,提供多种翻译接口,可以[在线体验](https://tools.newzone.top/zh/subtitle-translator)。([@rockbenben](https://github.com/ruanyf/weekly/issues/6450) 投稿) 12、[Path Motion](https://github.com/YYsuni/path-motion)  SVG 的路径动画开发工具,可以[在线体验](https://path-motion.yysuni.com/canvas)。([@YYsuni](https://github.com/ruanyf/weekly/issues/6451) 投稿) 13、[Retypeset](https://github.com/radishzzz/astro-theme-retypeset)  读者投稿的一款简约的 Astro 博客主题。([@radishzzz](#6470) 投稿) 1、[Nanobrowser](https://github.com/nanobrowser/nanobrowser)  一个开源的 Chrome 插件,基于 AI 大模型,使用自然语言操纵浏览器,可以看作 OpenAI Operator 的替代品。([@chandlerq](#6461) 投稿) 类似的工具还有 [Browser use](https://github.com/browser-use/browser-use),它是一个 Python 库,通过 AI 操作无头浏览器 Playwright,完成 UI 自动化。  2、[CMDLLM](https://github.com/yexia553/cmdllm) 一个开源工具,可以为任何命令行工具引入大模型,比如在 Docker 命令行里面,用自然语言进行操作 Docker。([@yexia553](#6460) 投稿) 3、[Query GPT](https://github.com/zhangchenchen/query_gpt)  一个开源应用,通过 AI 模型,将自然语言转成 SQL 语言。([@zhangchenchen](#6472) 投稿) 4、[QwQ AI](https://qwq32.com/)  一个在网页界面,聚合免费 AI 模型的网站。([@sing1ee](#6527) 投稿) 5、[MCPFlow](https://mcpflow.io)  MCP 的一个目录站。([@mcpflow](#6459) 投稿) 1、[墨西哥配色](https://seis.pointlessprojects.com)  这个网站提供各种基于墨西哥街景的配色方案。 2、[TV Garden](https://tv.garden)  这个网站提供世界各地的网上电视台。 3、[404s](https://www.404s.design)  这个网站收集各种 404 页面。 上个月,OpenAI 开放了 GPT-4o 模型的文生图功能。 它的效果非常惊人,其中一个效果是将照片转成吉卜力风格的卡通图,立刻就风靡了网络。      它还能将画像变成真人照片,我觉得效果也很惊人。下面是孔子、[千与千寻](https://x.com/yetone/status/1904999754163191844)的真人效果图。   另外,还有人用它生成[室内装潢效果图](https://x.com/sherwinwu/status/1904620108389212413),下图是装潢前的房间。  如果想装一个镶嵌入墙壁的书架,你可以让模型可以生成预览图。  总之,它的用途非常多,导致使用量巨大,OpenAI 不得不限制使用 GPT-4o 的作图功能,目前只开放给付费用户,未来将开放给免费用户。 1、[做一个互联网房东,而不是租客](https://den.dev/blog/be-a-property-owner-not-a-renter-on-the-internet/) 2025年的互联网与2000年完全不同。 2000年的互联网由大量个人网站、博客、论坛组成,它们绝大部分已经不存在了。 2025年的互联网由若干大平台组成。对于相当多的美国人来说,互联网就是 Facebook、Instagram、Discord 等等大平台的代名词。如果这些平台不存在,互联网也就不存在了。 人们可能没有意识到,你在那些大平台上,不是房东,而是租客,并且是待遇特别差的租客。 那些平台从来不把用户的利益放在心上,只关心他们自己的利益。 (1)平台不惜一切代价追求持续增长,拿用户换取广告收入,这就是为什么平台用户会看到越来越多的广告。 (2)平台不希望用户离开,会设法建造各种围墙,把你留在围墙内,让你走不了。 (3)平台最大限度地利用用户的注意力和时间,设置各种活动诱饵,吸引你的参与。 (4)平台大量收集用户数据,要么自己使用,要么出售。 (5)平台利用用户生成的内容。虽然用户拥有自己贡献的内容的版权,但是平台会无偿将这些内容用于自己的目的,比如训练 AI。 总之,那些平台是互联网房东,用户只是租户。房东设法让租户尽量不离开大楼,不去别的地方闲逛,同时希望租客不要在意、并且能够习惯房东施加的各种限制。 如果你想完全控制自己的内容,你需要做自己的互联网房东,而不是租户。 你需要有自己的域名,托管自己的网站,确保你发在平台的内容,在自己的网站上有一个副本,并且尽可能把链接指向自己的网站。 1、 计算机科学的一个神奇之处是,你在学校学到的抽象概念,会变成真实而有用的东西。 -- [《计算机科学中的数学》](https://www.sheffield.ac.uk/cs/blog/maths-computer-science) 2、 新式废话使用数学、科学和统计学的语言来包装自己,给人营造出严谨和准确的印象。 -- [voitto.com](https://www.votito.com/methods/mathiness) 3、 用户对 AI 越有信心,就越不会进行独立思考。反过来,用户越不信任 AI,就越可能质疑结果,验证信息,并深入思考。 用户并不懒惰,很多人都是经验丰富的专业人士。但当工具快速、自信、清晰地给出结果时,他们就会出于惰性,放弃困难的部分,不再质疑,不再核实,全盘接受。 -- [《AI 导致批判性思维逐渐崩溃》](https://www.dutchosintguy.com/post/the-slow-collapse-of-critical-thinking-in-osint-due-to-ai) 4、 只有那些有耐心做好简单事情的人,才能获得轻松完成困难事情的技能。 —— [席勒](https://boehs.org/node/dark-web-security),德国诗人 [饮水鸟玩具](https://www.ruanyifeng.com/blog/2024/04/weekly-issue-297.html)(#297) [扎克伯格的裁员信](https://www.ruanyifeng.com/blog/2023/03/weekly-issue-247.html)(#247) [如果这个世界有快乐机](https://www.ruanyifeng.com/blog/2022/03/weekly-issue-197.html)(#197) [寻找你愿意忍受的痛苦](https://www.ruanyifeng.com/blog/2021/02/weekly-issue-147.html)(#147) (完)
这里记录每周值得分享的科技内容,周五发布。(**[通知] 下周清明假期,周刊休息。**) 本杂志[开源](https://github.com/ruanyf/weekly),欢迎[投稿](https://github.com/ruanyf/weekly/issues)。另有[《谁在招人》](https://github.com/ruanyf/weekly/issues/6189)服务,发布程序员招聘信息。合作请[邮件联系](mailto:[email protected])([email protected])。  杭州临平的“天空草莓”农场,草莓种在悬空的钢架上,可以按需升降。([via](https://www.163.com/dy/article/JRHE1LAS05149IKJ.html)) AI 大模型公司,正在疯狂收集训练数据。 **它们派出无数爬虫,在互联网上无节制地抓取数据**。爬虫数量之多、频率之高,堪比 DDoS 攻击。  上周,代码托管网站 SourceHut 的站长,公开发表[文章](https://thelibre.news/foss-infrastructure-is-under-attack-by-ai-companies/)(下图),痛斥 **AI 爬虫太过份**,服务器无法承受访问压力,中断服务。  他非常生气,这些爬虫根本不遵守 robots.txt 文件,Git 仓库的每个页面、每个链接、每个提交都要爬取。 它们来自全球数万个 IP 地址,用户代理(user-agent 字段)也是随机的,伪装得像真实用户,难以有效拦截。 最可气的是,它们今天爬完了,过了六小时,又来爬同样的内容! 每一周,他要用20%~100%的工作时间,处理这些爬虫造成的服务器压力。SourceHut 已经中断服务好几次,对于一个 SaaS 工具,这是致命的。 最后,他说不只他遇到这种事,整个行业都深受其害。 > “我的系统管理员朋友,都在处理同样的问题。每次我坐下来和他们喝啤酒或吃晚餐时,我们很快就会抱怨机器人。这些对话中的绝望是显而易见的。” 那么,有什么办法,可以对付这些 AI 爬虫? 最简单的方法,就是使用 Cloudflare 公司的[免费防护](https://blog.cloudflare.com/declaring-your-aindependence-block-ai-bots-scrapers-and-crawlers-with-a-single-click/),它的 CDN 可以帮你挡掉 AI 爬虫。 但是,有些企业级服务不适合使用 Cloudflare,这时你就必须自己来挡爬虫。 今天,向大家介绍一个专门对付爬虫的工具 [Anubis](https://anubis.techaro.lol/)。  它是一个采用工作量证明的反向代理。所谓反向代理,就是**目标网站的所有访问请求,都会重定向给它**。 你首先要架设一个它的实例,然后把这个实例放在目标网站之前,当作反向代理(比如像下面设置)。 ``` reverse_proxy http://localhost:3000 ``` 于是,用户访问网站时,首先看到不是目标网站,而是 Anubis 的页面(下图)。  这个页面会在用户的浏览器上,执行一段 JS 程序,进行大量的数学计算。直到计算答案正确,才可以访问目标网站。 这个过程有时很耗时,可能需要1~2分钟。  (图片说明:上图的手机浏览器用了1分53秒,才计算完毕。) 对于爬虫来说,如果每个请求都要耗费大量计算,才能拿到数据,这会极大地消耗它的服务器资源,从而达到阻止爬虫访问的目的。 当然,真实的访问者也必须完成这样一个计算,这非常影响使用体验。但是,总比听任爬虫造成访问中断要好。 那么,Anubis 到底让爬虫计算什么? 具体来说,就是下面这行代码,计算一个哈希值。 ``` const hash = await sha256(`${challenge}${nonce}`); ``` 可以看到,它就是用 SHA256 算法,计算一个字符串的哈希值。 这个字符串由两部分组成,第一部分`challenge`,由用户的一些公开信息连接而成,包括用户的 IP 地址、浏览器 user-agent 字段、当前日期、Anubis 的公钥等。 第二部分`nonce`,表示迭代次数,第一次计算就是1,第二次计算就是2,以此类推。 Anubis 的默认设定是,**计算出来的哈希值的前五位必须都为0**,否则 nonce 自动加1,再次进行计算,直到满足要求为止。 有时,可能需要计算几百万次,才能得到合格的哈希值。熟悉比特币的同学,应该一眼看出来了,**这就是比特币的算法**。比特币是非常耗费算力的,所以 Anubis 也能很有效地消耗爬虫的 CPU。 当客户端终于算出满足要求的哈希值时(前五位为0),就会把这时的 nonce 值传给 Anubis 实例服务器,让后者验证哈希值是否正确。没问题的话,Anubis 就会将客户端重定向到目标网站,并在客户端写入一个 Cookie,以免后续请求再触发工作量验证。 这就是阻止爬虫的整个过程,不知道说清楚了没有,原理很简单,实施也不难。 事实证明,它很有效。一个站长说,两个半小时内,他的网站总共收到了81000个请求,其中只有3%通过了 Anubis 的工作量证明,这意味着97%的流量可能都是机器人! 这太疯狂了,可见现在的 AI 爬虫有多猖獗。如果你的网站也遇到了同样问题,又没法使用 Cloudflare,那可以试试 Anubis 的工作量证明。 1、中国矿业大学研发了一款[太空挖矿机器人](https://news.qq.com/rain/a/20250316A05V5Z00)。  它共有6足,其中3个是前进的轮子,3个是挖矿的爪子。 2、英国民众本周纷纷报告,夜空中发现[螺旋状的云](https://news.sky.com/story/glowing-spiral-appears-in-night-sky-as-met-office-reveals-likely-cause-13335297)。  英国气象局调查后宣布,那是猎鹰9号火箭发射时,快速旋转的箭体喷出的尾气。  尾气在太空中瞬间冻结,经过太阳光反射,看上去像云一样。 3、科学家提出,[生命起源地](https://ethz.ch/en/news-and-events/eth-news/news/2025/03/were-large-soda-lakes-the-cradle-of-life.html)可能不是大海,而是封闭的大型碳酸钠湖泊。  因为生命起源的化学反应,需要很高的磷浓度,但是自然界(包括大海)的磷含量很低,只有富含磷的碳酸钠湖泊符合条件。 4、盈通公司推出一款[有香味的 GPU](https://www.tomshardware.com/pc-components/gpus/this-scent-dispensing-rx-9070-assures-at-least-one-gpu-launch-this-year-doesnt-stink)。  这款 GPU 内置了香味剂。运行时,它的散热风扇就会将香味吹出去。 5、**其他** (1)根据 Cloudflare 统计,[41%的互联网登录](https://blog.cloudflare.com/password-reuse-rampant-half-user-logins-compromised/)使用泄漏的密码,原因是大部分用户习惯复用同样的密码。 (2)中国睡眠研究会统计,2025年[中国人夜间平均睡眠](https://finance.sina.cn/7x24/2025-03-21/detail-ineqmmwi9524193.d.html)6.85个小时,比去年增加6分钟。入睡时间平均为0点18分,比去年晚了17分钟。 (3)[一项研究](https://www.nia.nih.gov/news/timeframe-8-hour-restricted-eating-irrelevant-weight-loss)提出,每天的进食时间限制在8小时之内,其他16小时不进食,有利于肥胖者减肥,改善健康。 1、**Gemini 2.5 Pro 模型** 本周,谷歌发布它的最强模型 [Gemini 2.5 Pro](https://blog.google/technology/google-deepmind/gemini-model-thinking-updates-march-2025/),迅速登顶。  著名程序员 Simon Willison 对其[进行测评](https://simonwillison.net/2025/Mar/25/gemini/),评价很高。  [另有一个程序员](https://everything.intellectronica.net/p/negotiating-with-the-machine)让其执行一个非常复杂的任务,它想了半天后说,这个任务太复杂,不可能在一个步骤中完成,只能做出一个简化版。  这让人非常震惊,因为以前的 AI 遇到做不了的事情,只会给出错误的答案,而现在竟然会在分析后,承认超出了自己能力。 2、[谷歌将不开放安卓的开发](https://www.androidauthority.com/google-android-development-aosp-3538503/)(英文)  这篇报道称,谷歌将完全私有化安卓的开发,不再接受外部的代码提交,以避免安卓开源版 AOSP 与内部版本之间合并分支的麻烦。 以后,谷歌会把安卓新版本先提供给 OEM 厂商,然后再发一个不接受外部提交的开源 AOSP 版。 3、[Next.js 的中间件漏洞](https://simonwillison.net/2025/Mar/23/nextjs-and-the-corrupt-middleware/)(英文) 本周,Next.js 爆出一个高危漏洞。如果登录步骤是在中间件里面完成,那么可以绕过这个步骤,直接进入登录状态。本文简要介绍什么代码导致了这个漏洞。 4、[TypeScript 如何写函数类型](https://bhoot.dev/2025/typescript-function-type-syntaxes/)(英文)  本文是一篇初级教程,介绍函数的类型在 TypeScript 的三种写法。 5、[我对 MCP 的批评](https://taoofmac.com/space/notes/2025/03/22/1900)(英文)  MCP 是 Anthropic 公司提出的一个 AI 应用的接口协议,作者认为它并不好用,给出了自己的理由。 6、[只使用 ESM 模块](https://antfu.me/posts/move-on-to-esm-only)(英文)  本文提出,现在可以放弃 JS 语言的 CommonJS 模块了,只使用 ESM 模块,一个原因是`require`命令已经支持加载 ESM 模块了。 1、[CSS FlexCode](https://github.com/xutao-o/css-flex-code)  开源的 VS Code 插件,通过图标生成 flex、grid 布局的 CSS 代码。([@xutao-o](#6347) 投稿) 2、[StreamCap](https://github.com/ihmily/StreamCap)  一个桌面应用(支持 Windows 和 Mac),基于 FFmpeg 进行直播录制,覆盖40+国内外主流直播平台。([@ihmily](#6393) 投稿) 3、[Bilibili History Analyzer](https://github.com/2977094657/BilibiliHistoryFetcher)  B 站历史观看记录管理工具,可以保存观看记录,支持视频下载、数据分析、AI 摘要等功能,采用 Python + SQLite 开发,分为前端和后端。([@2977094657](#6366) 投稿) 4、[GoRead](https://github.com/Ray-D-Song/goread)  一个用 Go 语言编写的终端里面的 EPUB 阅读器。([@Ray-D-Song](#6369) 投稿) 5、[GateShift](https://github.com/ourines/GateShift) 一个 Go 语言写的命令行工具,用于一行命令切换网关,适合同时有 OpenWrt 路由和默认路由的环境。([@ourines](#6353) 投稿) 6、[Drawnix](https://github.com/plait-board/drawnix)  开源的在线白板工具,集成了思维导图、流程图、画笔。([@pubuzhixing8](#6379) 投稿) 7、[小米笔记的 Obsidian 插件](https://github.com/emac/obsidian-minote-plugin) 它将小米云服务里面的小米笔记,转换为 Markdown 格式保存到 Obsidian 文件夹。([@emac](#6355) 投稿) 8、[wxlogin](https://github.com/liyaodev/wxlogin)  一个基于 Next.js 的开源应用,基于微信公众号的网站登录,用户通过公众号获取验证码,从而在网页端登录。([@liyaodev](#6372) 投稿) 9、[Docxy](https://github.com/harrisonwang/docxy) 开源的 Docker Hub 镜像代理服务,可以通过它拉取容器镜像。([@harrisonwang](#6395) 投稿) 10、[Bondma](https://github.com/HeroIsUseless/bondma)  一个开源的多语言翻译管理平台,提供直观的 Web 界面。([@HeroIsUseless](#6389) 投稿) 11、[DeepPDF](https://deeppdf.ai/pdf-translator)  免费的 PDF 文件翻译网站,比如英文 PDF 翻译成中文,保留排版不变。([@icaohongyuan](#6398) 投稿) 12、[RSSPod](https://rsspod.pro)  收听、订阅播客的网站。([@Jaksay](#6399) 投稿) 13、[Supa Simple Socket](https://github.com/JustinGastby/supa-simple-socket) 网友投稿的 WebSocket 的 JS 客户端库,支持心跳机制、断点重连、事件订阅和文件传输。([@JustinGastby](#6406) 投稿) 14、[Inscribed.app](https://inscribed.app/)  一款在线工具,基于幻灯片制作创意草图和动画。 ([@chunrapeepat](#6388) 投稿) 15、[LinkAndroid](https://github.com/modstart-lib/linkandroid)  开源的手机连接助手,方便连接 Android 和电脑。([@modstart](#6408) 投稿) 16、[Teleprompter.today](https://www.teleprompter.today/)  一个在线的提词器,为演讲者、视频创作者和直播主播提供文本提示,可以定制各种属性。([@s87343472](#6412) 投稿) 1、[Web Design AI Agent](https://github.com/mggger/WebCraft) 开源的 AI 应用,根据文字描述和图片生成网页,使用 Claude AI 模型,部署在 Cloudflare worker。([@mggger](#6371) 投稿) 2、[AigcPanel](https://github.com/modstart-lib/aigcpanel)  开源的 AI 数字人生成工具。([@modstart](#6407) 投稿) 3、[EmojiMyFace](https://emojimyface.com/)  免费的 AI 挡脸工具,将脸部替换成 Emoji 符号。([@Takea-nap](#6410) 投稿) 4、[aisubtranslate.top](https://aisubtranslate.top/)  AI 模型翻译字幕文件的免费网站。([@LetheTK](#6397) 投稿) 1、[DNS 速度测试](https://dnsspeedtest.online/)  这个网站测试从你的计算机到世界主要公共 DNS 服务器的速度。 另有一个类似的命令行工具 [dnspy](https://github.com/xxnuo/dns-benchmark)。([@xxnuo](https://github.com/ruanyf/weekly/issues/6368) 投稿)  2、[Orbit](https://www.bbc.co.uk/orbitmusic)  该网站提供一种可视化的方式,发现你喜欢的新音乐。 3、[Top Hacker News](https://www.tophn.co/)  该网站展示“黑客新闻”实时的热门文章,有插图和内容总结。([@heyppen](#6384) 投稿) 4、[MusicMint](https://www.musicmint.ai/)  一个 AI 音乐网站。([@250465043](#6361) 投稿) 5、[旅行插头顾问](https://remit.ee/tools/check-plug-travel-adapter/)(Travel Plug Advisor)  该网站查询世界各地的插头类型和电压。([@imowen](#6351) 投稿) 1、[地球和太阳的大小](https://www.facebook.com/permalink.php?story_fbid=pfbid0xD8yB6UiCKtNhvyfM6w8ARCRXzxukjMgfYcShuAcNAthBbBToy9j3LC3vDExaz1yl&id=100064747956101) 太阳的大小远超地球,直径是地球是109倍,体积是130万倍。  上图中,左下角的蓝点就是地球。 所以,一丁点的太阳能,就足够地球使用。 2、[AI 生成表情包](https://www.facebook.com/Coyoter.Huang/posts/pfbid0gq7MrwSf7R1nM4ETzDoS2o8a4w4neu65We7fZBhEGgM9xr1W1fwX6U9qgrNcd9TJl) 上周,OpenAI 开放了 GPT-4o 的[图片生成功能](https://openai.com/index/introducing-4o-image-generation/)。网友发现,只要上传一张图片,就可以用它生成表情包,效果极佳。  [提示词](https://www.ettoday.net/news/20250327/2932962.htm)是:“请把照片里面的角色画成 Q 版,并用12个动作和文字做成表情包。”  1、[为什么重新发明轮子](https://tobloef.com/blog/wheel-reinventors-principles/) 我喜欢从头开始写东西,经常有人说,我在重新发明轮子。 我这样做有好几个理由。 (1)学习。通过重新发明轮子,我学到了很多东西,知道了工作原理,以及怎么动手做。 (2)定制。没有一种轮子适合所有情况。通过创建自己的轮子,我可以根据具体情况定制,让它更适合我。 (3)创新。现有的一些轮子很糟糕,重新发明轮子时,就有机会探索新的可能性。 (4)享受。事实上,前面三条理由可以不存在,重新发明轮子只是因为我喜欢动手,出色完成工作时,我会有一种满足感。 但是,我不推荐你也这样做。重新发明轮子并不都那么美好,有一些不可忽视的缺点。 (5)重新发明轮子可能很耗时,需要投入大量时间。 (6)最终产品可能不如现有解决方案。 (7)容易陷入无限递推的困境。为了制造轮子,我还必须重新发明锤子吗? 所以,如果你想重新发明轮子,一定要想清楚两点。第一,你有足够时间吗,尤其是涉及其他人的情况下。第二,重新发明的范围(或者说,你不打算重新发明什么),以免不必要地偏离主题。 1、 一个优秀程序员,最开始是实施者(implementer),然后进化到解决者(solver),最后变成发现者(finder)。 -- [《实施者、解决者和发现者》](https://rkoutnik.com/2016/04/21/implementers-solvers-and-finders.html) 2、 如果你正在开发一款希望长久使用的产品,那么前端框架就是你最不需要做的技术决策。你争论哪一个框架好的时间,都是在浪费精力。 无论你选择什么框架,5年后都会过时,即使那时你选择的框架还存在,也会变得完全不同,这就是前端社区的运作方式。 -- [《前端跑步机》](https://polotek.net/posts/the-frontend-treadmill/) 3、 在2025年开发 Web 应用,有点像组装宜家家具。你必须拼凑和配置许多单独的服务:前端、后端、cdn、https、数据库、身份验证、付款…… 你的工作不是写代码,而是配置、管道、编排、工作流、最佳实践。 -- [Andrej Karpath](https://x.com/karpathy/status/1905051558783418370),著名 AI 科学家 4、 愤怒是一种具有破坏性的情绪,会让人产生报复的欲望,这不利于你的根本利益。更理性的方法是,不要先想到报复,而要想想你与对方有没有共同利益,寻求合作和谅解。 -- [《超越愤怒》](https://aeon.co/essays/there-s-no-emotion-we-ought-to-think-harder-about-than-anger) 5、 各种宗教都驱逐异教徒,不是因为他可能是错的,而是因为他可能是对的。 -- [Edsger W. Dijkstra](https://www.cs.utexas.edu/~EWD/transcriptions/EWD08xx/EWD831.html) [xz 后门的作者 Jia Tan 是谁?](http://www.ruanyifeng.com/blog/2024/04/weekly-issue-296.html)(#296) [永不丢失的网络身份](http://www.ruanyifeng.com/blog/2023/03/weekly-issue-246.html)(#246) [掌机的未来](http://www.ruanyifeng.com/blog/2022/02/weekly-issue-196.html)(#196) [网课应该怎么上?](http://www.ruanyifeng.com/blog/2021/02/weekly-issue-146.html)(#146) (完)
这里记录每周值得分享的科技内容,周五发布。 本杂志[开源](https://github.com/ruanyf/weekly),欢迎[投稿](https://github.com/ruanyf/weekly/issues)。另有[《谁在招人》](https://github.com/ruanyf/weekly/issues/6189)服务,发布程序员招聘信息。合作请[邮件联系](mailto:[email protected])([email protected])。  四川省彭州市的中国蔬菜博览馆,设有一个“种子银行”,保存了200多种蔬菜的种子。([via](https://www.news.cn/photo/20250313/cefe18dc58ca4d2fa588b772e0fbdb15/c.html)) 大家肯定想到了,AI 的能力现在这么强,一定有人用来作弊。 求职作弊是最简单的,求职信和履历都可以让 AI 生成,但是你未必能想到,**面试也能 AI 作弊,派一个数字人来面试**。 “数字人”技术几年前就有了,现在添加了 AI,简直如虎添翼,可以乱真。 网上有很多教程,教你怎么生成数字人,哪怕不懂软件,都可以跟着做出来。    只要上传脸部照片和语音片段,**AI 就会生成你的数字化身**,它跟你长得一模一样,用你的声音和表情说话。你让它说什么,它就说什么,就像下图这样。  现在,很多公司采用视频面试,尤其是招聘远程员工,可能只有视频面试,根本没有线下面试。 数字人既然跟真人长得一样,当然可能冒充真人参加视频面试。 最近,网上就爆出了一个[真实的案例](https://newsletter.pragmaticengineer.com/p/ai-fakers),波兰的一家创业公司遇到了数字人参加面试。 这个叫做 Bratislav Rakočević 的应聘者,有着非常详细完整的 LinkedIn 主页(下图)。  简历也毫无问题(下图),看上去很有说服力,罗列了掌握的前后端技能,申请职位是全栈工程师。  顺理成章,他就进入了视频面试。面试官见到本人(下图右)时,就觉得跟网页头像(下图左)不太像。  而且,他使用了背景滤镜,整个人的影像是提取出来的,贴在背景上,头部边缘显得模糊而不自然。面试官当时也没有多想。 他的面试表现极佳,任何问题都能快速应对,在规定的2小时内完成了所有编码题目和后续提问,这是前所未有的。 但是,在交谈过程中,面试官逐渐产生了怀疑。首先,按照简历,这个人在塞尔维亚读大学,但是却不会说塞尔维亚语,只会说英语。(事后推测,原因很可能是,他的语音引擎没有塞尔维亚语,或者不如英语逼真。) 其次,他的英语缺乏语气语调变化,说话没有沟通技巧,让人感觉有点机械。 最后,他对以前职位的细节,说得不清楚,难以令人信服。 为了测试这是否真人,面试官临时加了一个项目。  面试官做了一个示范动作,举起一只手,张开五个手指,挡住自己的脸部,要求应聘者照着做(上图)。 结果,应聘者说了一堆理由,拒绝了这个要求。至此,面试官确定,对面是一个 AI 数字人。 他们把这件事公开到网上,希望其他公司提高警惕,不要被骗了。 这样的数字人面试,以后肯定越来越多,怎么应对呢? 下面是一些破解方法。 (1)要求应聘者给出推荐人,以供联系核对。 (2)查找应聘者的网络活动痕迹。如果网上根本搜不到什么痕迹,就说明很可疑。 (3)除了视频面试,再安排一场线下面试。 (4)在视频面试中,要求应聘者做一些数字人无法处理的事情,看看有没有破绽。比如,站起身围绕摄像头转一圈,头部前后左右转动,以及举起手做一些动作。 不知不觉,稀土掘金和 Trae 联合举办的 AI FOR CODE 创意挑战赛,已经赛程过半。 (1)“**创意赛道**“的提交入口,将在下周五(3月28日)截止。如果有好的 AI 编程创意(不需要动手实现),现在还能提交。 (2)**创意赛道的投票**正在进行中,参赛者的名次通过投票获得,想得奖的同学要积极拉票呀。 (3)“**应用赛道**“的提交入口,本周已经开启,大家可以提交自己的 AI 编程作品了。截止时间是3月31日,务必抓紧。  本次大赛设有**众多奖品**,包括奖金、iPhone 16、华为mate 70、大疆pocket3、索尼PS5、外星人键盘&显示器、任天堂switch、马歇尔音响等,参赛即有机会抽奖。 获奖的创意和作品,还可能获得投资公司的青睐,并且通过 AI 的助力,说不定可以解决很多人生活中面临的困境。 大赛的详细介绍,以及**提交/投票入口**,请[点击这里](https://sourl.co/5thdnz),或者扫描上方海报。祝愿大家都能得奖。 1、[特斯拉的自动驾驶](https://electrek.co/2025/03/16/tesla-autopilot-drives-into-wall-camera-vs-lidar-test/) 特斯拉的自动驾驶,完全依靠摄像头,没有激光雷达。也就是说,它只有视觉识别。 一位美国工程师认为,这样是不够的。他做了一个实验,在道路中央架起了一块巨大的画布。  掀起遮盖后,画上是延伸到前方的道路,跟周围融为一体。  结果,特斯拉的自动驾驶,根本认不出来这是画,一头就撞上去了。  相比之下,使用激光雷达的车型,则会在画前自动停下来。 虽然这个实验是极端情况,但是摄像头在浓雾和大雨天气,效果不佳,却是不争的事实。 2、[Windows 记事本的收费功能](https://www.pcworld.com/article/2614943/microsoft-is-paywalling-these-features-in-notepad-and-paint.html) 记事本(Notepad)和画板(Paint),一直是 Windows 的基本组件,每一代 Windows 都内置了,免费使用。 但是,Windows 11 最新一次的更新,为这两个软件加入了收费功能。  微软为记事本和画板配置了 AI,前者可以自动重写、缩写、扩写文章,后者可以自动生成图像。 这些 AI 功能只有 Microsoft 365 的订户才能使用(月费9.99美元)。如果没有付费,就无法使用,右上角的 AI 菜单会变灰色(上图)。 从此,记事本和画板不再是免费软件了,部分功能有付费墙。 3、[AI 去除图像水印](https://techcrunch.com/2025/03/17/people-are-using-googles-new-ai-model-to-remove-watermarks-from-images/) 很多美国用户在社交媒体上反映,谷歌新发布的 Gemini 2.0 Flash 模型,去除图片水印的效果极佳。 这是带有水印的原图。  这是大模型去除水印的效果。  该模型不仅能去除水印,还能填补去除水印而产生的任何空白。   虽然其他模型也能去除水印,但是 Gemini 2.0 Flash 似乎特别擅长这件事,而且它可以免费使用。 Gemini 2.0 Flash 可以在[谷歌官网](https://deepmind.google/technologies/gemini/flash/)使用。另外,网友 [@panjianning](#6340) 投稿了一个自己做的[调用地址](https://color-muse.tbonesoft.com/)。 4、**其他** (1)中国首款超长寿命[碳-14核电池](https://news.qq.com/rain/a/20250314A06UGW00)“烛龙一号”研制成功,利用同位素衰变供电,理论上可以持续放电上千年,适合高山海洋、宇宙空间、脑机接口、心脏起搏器等场景。  (2)美国劳工局统计,美国[在职的程序员](https://finance.sina.cn/7x24/2025-03-18/detail-ineqakci5392917.d.html)目前有30多万,是1980年以来的最低值,仅为21世纪初互联网繁荣时期的一半。 原因可能是 AI 的冲击,仅仅2023年一年,程序员就业人数就急剧下降了27.5%。 (3)[Nginx 服务器](https://www.phoronix.com/news/Nginx-Dark-Mode-Errors-Rejected)拒绝为默认的404页面,添加暗黑模式(下图右),理由是不愿增加复杂性,而且用户完全可以自定义这个页面。  (4)谷歌 AI 部门负责人称,[通用人工智能](https://finance.sina.com.cn/stock/usstock/c/2025-03-17/doc-inepyrty0298446.shtml)(AGI)将在未来五到十年内出现。 1、[服务器发送事件(SSE)被低估了](https://igorstechnoclub.com/server-sent-events-sse-are-underrated/)(英文)  本文详细介绍“服务器发送事件”是什么,以及目前的 AI 服务如何使用它。 2、[关于继承和子类型](https://blog.frankel.ch/on-inheritance/)(英文)  Java、Go、Python 这三种语言,有不一样的继承设计,本文比较了它们各自如何实现一个子类型。 3、[CSS 属性的 unset 值](https://www.silvestar.codes/articles/reset-with-css-unset/)(英文)  CSS 属性几乎都可以设成三个值 initial(不继承)/inherit(继承)/unset(取消默认值),本文用例子解释它们的含义。 4、[布尔属性的陷阱](https://katafrakt.me/2024/11/09/booleans-are-a-trap/)(英文)  本文提出一个编程技巧:尽量少在类(class)里面设置布尔属性,而要改用枚举(enum)。 5、[我从零制作了一个智能手表](https://andrewchilds.com/posts/building-a-t1d-smartwatch-from-scratch)(英文)  作者介绍怎么制作一款智能手表,可以用来了解硬件工程师的工作。 6、[:user-valid 伪类](https://html-css-tip-of-the-week.netlify.app/tip/user-valid/)(英文)  一篇 CSS 教程,介绍 :user-valid 伪类(表示用户的输入通过了 input 输入框的校验)。 7、[使用 GitHub Actions 和 GitHub Pages 构建和部署网站](https://til.simonwillison.net/github-actions/github-pages)(英文)  本文是一篇教程,介绍如何使用 GitHub Actions 构建网站,然后部署到 GitHub Pages。 1、[daylight](https://github.com/jbreckmckye/daylight)  命令行查询日出日落时间,可以指定地点和日期。 2、[FilePizza](https://github.com/kern/filepizza)  在浏览器里“点对点”传送文件的开源工具。 3、[git-who](https://github.com/sinclairtarget/git-who)  一个开源的命令行工具,显示 Git 仓库的提交者统计。 4、[rust-stakeholder](https://github.com/giacomo-b/rust-stakeholder)  一个命令行工具,唯一作用就是让你的终端显得很忙,源源不断有输出,适合摸鱼。 5、[hoarder](https://github.com/hoarder-app/hoarder)  一个自托管的书签应用,有 Web 端和手机端,可以用 AI 自动生成内容标签。 6、[微信群聊的永久二维码](https://github.com/xxnuo/serverless-qrcode-hub)  微信群聊的二维码频繁变动,这个工具可以生成永久二维码,基于 Cloudflare Workers 和 KV 存储。([@xxnuo](#6294) 投稿) 7、[Webcam Runner](https://github.com/Jamesun921/cam-run)  一个对着电脑摄像头的开源跑步游戏,检测用户动作来控制游戏角色在无限场景中奔跑,适合室内锻炼身体。([@Jamesun921](#6334) 投稿) 8、[Cover Page](https://www.coverpage.one/image)  免费的封面图制作网站。([@amuluze](#6307) 投稿) 9、[EchoShare](https://github.com/echoshare/echoshare)  开源的基于 WebRTC 的在线屏幕共享工具,允许与他人共享屏幕、摄像头和音频。 ([@shawroger](#6304) 投稿) 10、[Lazyeat](https://github.com/maplelost/lazyeat)  开源的 Windows 桌面应用,手势控制电脑。([@maplelost](#6310) 投稿) 1、[SVG 秀](https://www.svgshow.cn)  根据文字描述,生成 SVG 图片,并可以编辑,代码开源([前端](https://github.com/chaseFunny/svg-frontend)和[后端](https://github.com/chaseFunny/svg-backend))。([@chaseFunny](https://github.com/ruanyf/weekly/issues/6293) 投稿) 2、[MarkPDFDown](https://github.com/jorben/markpdfdown)  基于大模型的 PDF 转 Markdown 工具,实现文档结构化转换。([@jorben](#6296) 投稿) 3、[We0](https://we0.ai/)  通过 AI 生成应用程序,支持后端生成和前端生成,还可以 Sketch/Figma 设计稿1:1还原,[代码开源](https://github.com/we0-dev/we0)。([@Mashiro2000](https://github.com/ruanyf/weekly/issues/6309) 投稿) 4、[Githubhunt](https://githubhunt.top/)  使用自然语言,搜索 GitHub 仓库。([@xgzlucario](#6300) 投稿) 5、[Prompt Optimizer](https://github.com/linshenkx/prompt-optimizer)  开源的 AI 提示词优化工具。([@linshenkx](#6337) 投稿) 6、[Bob plugin MTranServer](https://github.com/gray0128/bob-plugin-MTranServer)  [Bob](https://bobtranslate.com/)(macOS 平台的翻译软件)的一个插件,引入本地翻译服务器 [MTranServer](https://github.com/xxnuo/MTranServer)。([@gray0128](https://github.com/ruanyf/weekly/issues/6311) 投稿) 1、[Maple Mono](https://github.com/subframe7536/maple-font)  开源的等宽字体,支持中文。([@subframe7536](#6306) 投稿) 2、[上网2005](https://2005.wong2.me)  还原20年前的中文互联网。([@wong2](#6316) 投稿) 3、[Bambot](https://github.com/timqian/bambot)  网友开源的低成本(约2000元人民币)的人形机器人。([@timqian](#6328) 投稿) 4、[OpenAPK](https://www.openapk.net/)  这个网站提供开源的安卓 App 下载。 1、[极光月全食](https://petapixel.com/2025/03/17/photographers-once-in-a-lifetime-shots-of-the-lunar-eclipse-and-aurora/) 上个月,一个美国摄影师前往阿拉斯加州拍摄极光。 他无意中发现,这段时间还有月全食,于是成功拍到了极光中的月全食。  上面照片中,右下角的红点就是月球。  月全食的时候,月球、地球、太阳成一条直线,月球落在地球的阴影里面,照不到直接的太阳光,而是被地球大气层反射的太阳光照亮。 地球反射的是太阳光的红光,所以月全食呈现红色,又称“血月”。这张绿色极光中的“血月”照片,非常难得。 2、[EK215 航班路线](https://www.facebook.com/permalink.php?story_fbid=pfbid0gizRWURNZxRtVa5nCGkADbYgbda71e1mE8J5xj6BsAk6WcwVnoue4mWsX2QwiJCml&id=100064747956101) 地球是圆的,但是世界地图是采用“墨卡托投影法”绘制的平面地图,它会让高纬度地区被大大拉长,变形严重。 阿联酋航空 EK215 航班,从迪拜飞往洛杉矶,下图是它的航线在地球仪上的样子,以及在平面地图上的样子。  可以看到,在地球仪上,这条航线基本是直的,路线非常合理。 但是,在平面地图上,北极地区的航线被拉长成了一条巨大的弧线,越靠近北极,航线的变形就越严重。 1、[耐力是一种优势](https://kupajo.com/stamina-is-a-quiet-advantage/) 人们常常低估耐力的作用,只把它理解成比别人更努力、更持久。 实际上,耐力也是坚守自己的价值观和目标的能力,即使在看上去很难做到的时候,也不放弃。 在缺乏明显进展的情况下,坚持去实现目标的能力,这就是耐力。 在一个充满诱惑分散你注意力的世界中保持专注,克服困难,继续前进,你需要耐力。 耐力是人们可以培养的最有用的品质之一。它比力量、智力、速度、魅力等特质,具有更大的适用性,日常生活很多时候都能用到。 更聪明的人某些时候会表现出色,比你更快地解决难题。但只要凭着耐力,你可以解决更多的问题。 1、 开源运动的人们完成了不可能的任务。他们创造了整个百科全书、地球上最成功、使用最广泛的操作系统、软件库和无数应用程序。他们对公共资源的贡献甚至在科幻小说中都难以想象,其中一些系统应该被视为世界的数字奇迹。 -- [《自由软件为了谁?》](https://tante.cc/2025/03/03/who-is-free-software-for/) 2、 你的应用最好不要依赖云服务商,要做到“可弹出”(ejectable),即随时可以切换到自托管环境。 你的应用应该有一个 workspace.zip 文件,里面包含了当前的所有状态。只要转移这个文件,就可以还原当前状态。 --[《本地优先且可弹出》](https://thymer.com/local-first-ejectable) 3、 我见过的最好的工程师,是那些愿意在周末花几个小时构建一个现有软件的自己版本的人。 这就是你获得创新和进步的方式。如果你不了解系统的工作原理,就无法找到改进的地方。 -- [《AI 让开发者变蠢》](https://eli.cx/blog/ai-is-making-developers-dumb) 4、 使用 GitHub Copilot 后,我得了一种叫做“Copilot 延迟”的病。这种病指的是工程师在每次操作后都会暂停,等待 AI 提示他们下一步该做什么。 很多工程师有了 AI 以后,就做不到只靠自己了,要靠 AI 告诉他们下一步。这类似于初级程序员在刚开始时,依靠资深的同事的指导开展工作。 -- [《AI 让开发者变蠢》](https://eli.cx/blog/ai-is-making-developers-dumb) 5、 如果你成功了,记住你要去哪里,记住你来自哪里,并选择你要成为什么样的人。 -- [《五周的独自创业》](https://taylor.town/5w) [巧妙的灯泡钟](https://www.ruanyifeng.com/blog/2024/03/weekly-issue-295.html)(#295) [摩天大楼是反人类的](https://www.ruanyifeng.com/blog/2023/03/weekly-issue-245.html)(#245) [你做过不在乎结果的项目吗?](https://www.ruanyifeng.com/blog/2022/02/weekly-issue-195.html)(#195) [大家不出门,经济怎么办?](https://www.ruanyifeng.com/blog/2021/02/weekly-issue-145.html)(#145) (完)
这里记录每周值得分享的科技内容,周五发布。 本杂志[开源](https://github.com/ruanyf/weekly),欢迎[投稿](https://github.com/ruanyf/weekly/issues)。另有[《谁在招人》](https://github.com/ruanyf/weekly/issues/6189)服务,发布程序员招聘信息。合作请[邮件联系](mailto:[email protected])([email protected])。  成都出现了花田火锅,火锅店开在盛开的油菜花地里,运营期两个月。([via](https://www.163.com/dy/article/JPP0TJOJ0552XKPD.html)) 这十几年,一批批程序员前仆后继,去搞低代码编程(包括无代码编程)。光在我身边,就有三四批。  他们搞的低代码编程,我理解就是通过图形界面,拖拉各种组件,自动生成软件 UI 的底层代码,减少手工编码。  这个想法很好,确实很多人需要,尤其不懂编程的人,这简直是生成程序的唯一可用方式。 但是很奇怪,他们无一例外都失败了,开发出来的低代码工具,开始还有一些好奇的用户,很快就不来了,用户越来越少,后来即使开源了,也没人用。 更奇怪的是,这似乎不是偶然现象,**业界所有的低代码工具好像都不成功**,至少我想不出成功的例子,哪一个受欢迎的应用程序是用低代码工具生成的。 它的背后有什么原因吗?是哪里没有做对,还是低代码编程本身就不可行? 我一直没有想通这个问题。虽然不看好,但是依然抱有一丝幻想,也许某一天醒来,低代码编程就成了主流,无论手机 App 还是桌面应用,鼠标拖几下,就可以生成。  直到上周,我读到一篇文章[《低代码编程受困于形式》](https://interjectedfuture.com/visual-programming-is-stuck-on-the-form/)(下图),才恍然大悟,**低代码编程有先天缺陷,恐怕不会成功**。  文章说,优秀的作品都是形式(form)和功能(function)的统一。**形式必须服从功能,功能决定了形式**,英文叫做“form follows function”。  对于优秀的程序员,只要弄清楚了底层,UI(用户界面)就会显而易见。 **低代码编程的问题在于,它是先有 UI(形式),再有代码(功能)**。 用户先拖拉生成 UI,系统再根据 UI 生成代码。这是本末倒置,让底层代码适配 UI,注定了两者都有问题:UI 是空想出来的,代码为了适配 UI,注定冗余和低效。 所以,优秀的软件不可能用这种方式生成,低代码编程不会成功。 我认为,他说的很有道理。**低代码编程解决不了这个根本缺陷**,适用场景有限,大概只适合一些简单任务,或者生成原型,不会成为主流工具。程序员应该谨慎开发这类工具,付出的劳动很可能打水漂。 写到这里,问题就来了:**AI 算不算低代码编程**(或者无代码编程)?如果低代码编程不会成功,那么 AI 编程会成功吗? 我认为,AI 不同于低代码编程。低代码编程是使用者给出 UI,系统来生成代码,而 AI 是系统同时生成 UI 和代码,用户只需要说出需求即可。 这种情况下,形式与功能的结合,完全取决于 AI 的能力。如果有一天,AI 视频能够成功,画面美,情节好,那么 AI 编程大概也会成功,生成形式与功能统一的应用程序。 现在的手机 App 有一个技术趋势,大家注意到了吗? 那就是**添加小程序容器**,让自家 App 能够运行其他应用程序。 不仅国内 App 这样做,海外的一些超级 App 也纷纷效仿,比如 YouTube、Telegram、Line。  上图就是 Youtube 应用内置的“小游戏”,类似于微信小程序。 究其原因,大概是因为小程序这种架构很灵活,可以方便地添加和更新功能,有利于形成外部生态和变现。 今天,就向大家介绍一款国产的小程序容器 [FinClip](https://www.finclip.com/landpage-product/?from=ruan)。如果你想为自己的 App 引入小程序,就用得到它。 它是一个完整的、开箱即用的小程序技术解决方案,提供现成的 SDK,**将小程序运行环境嵌入宿主 App**。 有了它,任何开发者都能在 iOS / Android / HarmonyOS 等平台,构建自己的"小程序宇宙"。下图是 FinClip 目前支持的宿主平台。  可以看到,除了手机系统,它还支持嵌入桌面应用、车机应用、电视应用等等。 此外,它还有一些很吸引人的技术特性。 **(1)跨平台统一性**。它直接兼容微信/支付宝/抖音小程序,可以一行不改,直接让微信小程序跑在你的应用里面,无需二次开发。 **(2)敏捷开发范式**。它的小程序更新无需应用商店审核,可以实现"小时级"迭代。 **(3)小游戏引擎**。跟它配套的还有一个小游戏实时内容互动引擎 RealClip,提供小游戏运行环境。  这个引擎重点针对小游戏的性能和兼容性,进行了优化,除了微信小游戏,还兼容 Unity、Cocos、Laya、Egret Engine 等主流引擎和 WebView。也就是说,无论哪种引擎制作的小游戏,都能够直接运行在你的 App 中。 **(4)配套开发工具 FinClip Studio**。这个工具能将现有的小程序/小游戏代码,一键转换成独立 App,做成可用于 iOS、Android 和鸿蒙的安装包。 总之,如果你的 App 想引入小程序,或者你现有的小程序需要运行在其他应用(手机或桌面),那么就可以尝试 FinClip。 欢迎访问 [Finclip 官网](https://www.finclip.com/landpage-product/?from=ruan)详细了解,免费注册试用。任何问题都可以加入官方社群交流(下图)。  上周五,周刊发布了消息。首届全国 AI 编程大赛的“创意赛道”,可以提交作品了,不管你会不会编程,**只要有 AI 创意,都可以参赛**。 消息发布后,大家反响热烈。我从组委会同学那里得知,已经有几百个创意提交了。  从今天(3月14日)开始,**大赛进入了投票阶段**,欢迎大家投票,评出最能打动你的创意。也许你还可以从中得到灵感,拿来自己实现。 **所有投票用户均可抽奖**,奖品有小夜灯、工卡套、手持风扇等等。因为投票是当天有效,第二天可以再次投票,所以每个人有多次抽奖机会。 当然,如果你还有创意没有提交,现在依然可以提交参赛。 已经参赛的同学,**不要忘了为自己拉票**,发布到社交平台上(公众号/b站/小红书/微信朋友圈/技术社群),分享比赛,争取大赛获奖。 大赛详情和作品投票,可以[点击这里](https://sourl.co/5thdnz),或者扫描上方海报。 1、[人工心脏](https://www.theguardian.com/australia-news/2025/mar/12/australian-man-survives-100-days-with-artificial-heart-in-world-first-success) 一个澳大利亚男子,植入了一颗人工心脏(下图),已经活了100天,并且成功出院,创造了世界纪录。  这相当于在胸腔植入一个血液泵,一天24小时推动血液循环。 他是目前世界唯一一个带有人工心脏的人,也是世界第六例人工心脏植入。前五例的人工心脏都只是过渡,病人后来又移植了其他人的心脏。 如果机器心脏以后技术成熟了,人类的寿命可望大幅延长。 2、[手机改路由器](https://www.cnx-software.com/2025/03/02/citronics-built-a-router-based-on-the-fairphone-2-mainboard/) 旧手机有什么用? 一家比利时公司取出手机主板,加上网线口、USB 口,将其改成了路由器。  上图左侧是手机主板,右侧是将手机主板安装在扩展板上,从而形成路由器主板。 手机的 CPU、调制解调器、内存等,都是可复用的,因此改装费用很低。而且,手机的硬件配置很高,性能比高端路由器强得多。 3、[静音图标](https://www.macrumors.com/2025/03/07/new-macbook-air-corrects-design-mistake/) 苹果上周发布的 MacBook Air M4,悄然改掉了一个26年之久的设计。 它把笔记本的静音图标(F10 按钮上的图标),在喇叭上加了一道删除线。 下图是以前的图标。  下图是现在的图标。  这么简单的一个图标,苹果用了26年才改掉。 4、[汽车的物理按钮](https://www.autocar.co.uk/car-news/new-cars/volkswagen-reintroducing-physical-controls-vital-functions) 德国大众汽车宣布,未来它的所有车型,都会同时配备触摸屏和物理按钮。  上图是大众 ID.3 车型的控制台,上方是触摸屏,下方都是按钮。 该公司表示,汽车不是手机,不能都靠触摸屏,重要的功能必须有固定的位置和真实的触感。 5、**其他** (1)一家英国生物公司,研发了[转基因香蕉](https://www.theguardian.com/science/2025/mar/07/gene-edited-non-browning-banana-cut-food-waste-tropic-norwich)。这种香蕉可以长期保持新鲜和黄色,不会变褐变黑。  即使剥开后12小时,香蕉皮也不变色,这样有利于香蕉销售。 (2)Android 15 将有一个[原生的终端程序](https://www.androidauthority.com/android-linux-terminal-app-available-3532999/),提供一个基于 Debian 的 Linux 发行版供用户使用。  这个功能的底层是虚拟机机制,它将大大方便程序员,将安卓手机当作 Linux 桌面电脑使用。  1、[AI 大模型2024年的进展](https://simonwillison.net/2025/Mar/8/nicar-llms/)(英文)  著名程序员 Simon Willison 3月7日的演讲稿,通俗地介绍了 AI 在过去一年的巨大飞跃,很好的综述。 2、[如何用 Claude Code 反编译代码](https://ghuntley.com/tradecraft/)(英文)  作者演示了一个惊人的例子,使用 Anthropic 发布的 Claude Code,将 Webpack 编译出来的文件反编译,还原成源代码。 3、[CSS 跨文档视图转换](https://simonwillison.net/2025/Mar/10/building-websites-with-llms/)(英文) 本文介绍一个示例,通过 CSS 新的跨文档视图转换功能,使得多页面应用的跳转,也像单页面应用(SPA)一样流畅顺滑。 4、[Cursor 上传 .env 文件](https://forum.cursor.com/t/env-file-question/60165)(英文)  Cursor 是现在非常流行的一个 AI 代码编辑器,它的用户论坛爆出一个帖子,有人发现它会上传用户的 .env 文件,由于里面都是环境参数,会带来安全隐患。 5、[JSON 与 JavaScript 的对象成员顺序](https://blog.gslin.org/archives/2025/03/07/12299/json-%E8%88%87-javascript-%E5%86%8D-object-%E8%A3%A1%E9%9D%A2%E5%85%83%E7%B4%A0%E9%A0%86%E5%BA%8F%E7%9A%84%E5%B7%AE%E7%95%B0/)(中文)  JSON 与 JavaScript 的对象,里面的成员顺序有没有规定?本文探讨这个问题。 6、[Go 语言错误处理机制的优点](https://rauljordan.com/why-go-error-handling-is-awesome/)(英文)  Go 语言的错误处理很特别,没有 try...catch 机制,错误是一个值,作者解释这样设计的好处。 1、[TypeScript 7](https://github.com/microsoft/typescript-go) 微软使用 Go 语言重写了 TypeScript 编译器 tsc,据说速度可以提高10倍,参看[介绍文章](https://devblogs.microsoft.com/typescript/typescript-native-port/)。  目前,TypeScript 的版本是5.8,等到这个工具稳定了,将发布为 TypeScript 7。 2、[QR Code Generator](https://fietkau.software/qr)  一个网页应用,可以定制二维码的颜色、斑点、徽标。 3、[WatchYourLAN](https://github.com/aceberg/WatchYourLAN)  一个开源的网页应用,用来扫描局域网的 IP 分配,可以发送主机上线和掉线的通知。 4、[XPipe](https://github.com/xpipe-io/xpipe)  一个跨平台的桌面应用,通过图形界面,将所有的服务器连接在一个地方管理。 5、[TransBridge](https://github.com/fruitbars/transbridge)  一个开源的翻译 API 代理服务,可以接入各种大模型,对外提供翻译服务,试用 [Demo](https://transbridge.fanyimao.cn/)。([@fruitbars](https://github.com/ruanyf/weekly/issues/6238) 投稿) 6、[DouYin Downloader](https://github.com/jiji262/douyin-downloader)  开源的 Python 脚本,用来下载抖音短视频。([@jiji262](#6240) 投稿) 7、[Java Thread Dump](https://www.threadanalyzer.online/)  免费分析 java thread 的网站,上传 jstack 导出的线程快照文件,分析线程池内线程状态。([@HbOrea](#6259) 投稿) 8、[Mono](https://mono.cards/zh)  制作内容分享卡片的免费网站。([@RiverTwilight](#6264) 投稿) 9、[Telegram Files](https://github.com/jarvis2f/telegram-files)  开源的 Telegram 文件下载器,支持多频道、多账户同时下载。([@jarvis2f](#6268) 投稿) 10、[Obsidian 云盘同步插件](https://github.com/ai-bytedance/obsidian-cloud-sync) 一个开源的 Obsidian 插件,将笔记自动同步到多种云盘服务。([@ai-bytedance](#6275) 投稿) 1、[Mistral OCR](https://mistral.ai/news/mistral-ocr) 上周,Mistral AI 发布了号称史上最强的 OCR 识别工具,具有公式和表格的识别能力,参见[介绍文章](https://finance.sina.com.cn/tech/roll/2025-03-07/doc-inenuzhm5927298.shtml)。  网友 [monsoonw](#6248) 做了一个免费的[试用网站](https://mistralocr.net/)。  著名程序员 Simon Willison 开源了[一个 Python 脚本](https://github.com/simonw/tools/blob/main/python/mistral_ocr.py),演示了怎样调用 Mistral 的 API 进行文字识别,参考[他的文章](https://simonwillison.net/2025/Mar/7/mistral-ocr/)。 2、[Free QWQ](https://qwq.aigpu.cn/)  免费、无限制的算力平台,为开发者提供 QwQ 32B 大语言模型 API。([@nexmoe](#6260) 投稿) 3、[Code-Review-LLM-Gitlab](https://github.com/mimo-x/Code-Review-GPT-Gitlab)  使用大模型对 GitLab 项目进行 Code review 的工具。([@mimo-x](#6261) 投稿) 4、[人话翻译器](https://github.com/DemoJ/HumanizeText) 一个 Chrome 插件,通过 AI 将难懂的中文翻译成好懂的中文。([@DemoJ](#6277) 投稿) 1、[辰宇落雁体](https://github.com/Chenyu-otf/chenyuluoyan_thin)  一个开源的中文手写字体。 2、[JetBrains Maple Mono](https://github.com/SpaceTimee/Fusion-JetBrainsMapleMono)  一款合成字体,解决 JetBrains Mono 没有中文字形的痛点,全部等宽无衬线,中英文 2:1 宽对齐。([@SpaceTimee](#6244) 投稿) 3、[BeddyStories](https://beddystories.com/zh)  一个儿童睡前故事网站,收集了全球经典的儿童睡前故事。([@yimiqidage](#6272) 投稿) 4、[IP 侦探](https://ip.aolifu.org/)  免费的在线 IP 归属地查询。([@Oliverwqcwrw](#6271) 投稿) 另有一个 Chrome 插件 IP Location Finder,选中 IP 地址,显示归属地。([@Yanel85](#6278) 投稿)  1、[红绿色盲](https://www.theverge.com/23650428/colorblindness-design-ui-accessibility-wordle) 红绿色盲的患者,看不到红色和绿色。在他们眼里,这两种颜色都会变成黄色。 下面是一半红、一半绿的树叶。  红绿色盲患者看到的却是一张黄色树叶。  大概每20个人里面,就有一个人有色盲或色弱问题。所以,设计界面的时候,使用红色或绿色必须非常谨慎,因为红绿色盲患者分不清。 下面的日历使用绿色和粉红色,表示特殊的日期。  但是,红绿色盲患者看到的是下面这样,根本分不清。  因此,用户界面轻易不要使用红色和绿色。 1、[如果 AI 和机器人接管一切](https://hyponymo.us/2013/01/29/100-percent-unemployment/) 我最近常常想一个问题:如果 AI 强大到所有方面都超过人类,它和机器人接管一切,人类要干什么呢? 凯文·凯利认为,随着工作都交给机器人,人类可以从事越来越多有趣的工作,就像工业革命后一样。 这种说法在短期内有一定道理,但是有一个前提,就是人类能做计算机做不到的事情。 我认为,没有理由认为这个前提会永远成立。 除非政府强制规定,计算机不得从事某些工作,只有人类可以做。但是那样的话,那些工作很可能就会停滞发展了。停滞发展的行业没有前景,收入也不会增长,从业者难以感到满意。 让我们假设一种极端的情况,如果机器完全超越人类,每件事都比人类做得好,大部分人无法为社会做出贡献时,一切会怎样? 如果一个人无法为社会做出贡献,也就失去了他的经济价值,就算他能靠政府的补助继续活着,那么对于他来说,个人价值是什么呢,就是活一天算一天? 目前来看,这个问题还比较遥远,就算那一天到来,也是很久以后的事情了。眼下比较现实的问题是,AI 正在大量减少高薪工作。随着机器的能力越来越强,很多白领工作的价值迅速变小,大多数人越来越难找到报酬丰厚、令人满意的工作。 这就是现在发生的问题,高薪的工作岗位不断减少,难以获得。 1、 以前的球票、音乐会票、景点票、电影票都是纸质的,现在全改成数字的。 我们的过去都保存在手机里,再也没有纪念物了。 -- [彭博社](https://www.bloomberg.com/news/articles/2025-03-07/the-case-for-ditching-digital-memories-for-physical-objects) 2、 越来越多的应用程序转移到互联网上,操作系统的软件差异变得越来越不重要。这就是为什么 M1 芯片对 Mac 的未来如此重要。 苹果应当利用这一波 AI,发挥其硬件优势,鼓励开发者在本地运行 AI 模型。 -- [《苹果 AI 的潜力》](https://stratechery.com/2025/apple-ais-platform-pivot-potential/),本文指出苹果芯片可以本地运行 AI 模型,不需要 Nvidia 显卡,苹果应该利用这一点,扩大销售 3、 自从有了 AI,我发现自己不再担心项目对我来说太大、太复杂,或者项目使用了我不了解的技术或编程语言,一切都变得容易得多。 我正在重新审视一些我曾认为太复杂或超出我能力范围的业余项目,只要有时间,我就会去尝试。这是一个令人兴奋的时代。 -- [《有了 AI,你需要想得更大》](https://rodyne.com/?p=1828) 4、 我认为,数学本质上已经没有什么好问题了。让大量数学家感兴趣的问题数量每年都在减少,而且几乎所剩无几。 现代数学研究越来越局限于少数人对某个特定主题的研究,即使是研究生也常常被现代数学问题的极端专业性和深奥性所困扰。 未来的研究生不应再需要证明一些全新的东西,相反地,他们的主要目标可能是简化过去的研究结果。 -- [《数学已经没有问题了》](https://medium.com/@jpolak/math-is-running-out-of-problems-14f2911fa46b) [崖门海战的感想](https://www.ruanyifeng.com/blog/2024/03/weekly-issue-294.html)(#294) [大数据已死](https://www.ruanyifeng.com/blog/2023/03/weekly-issue-244.html)(#244) [悲观者正确,乐观者成功](https://www.ruanyifeng.com/blog/2022/02/weekly-issue-194.html)(#194) [提高收入的根本途径](https://www.ruanyifeng.com/blog/2021/01/weekly-issue-144.html)(#144) (完)
PreviousNext