这里记录每周值得分享的科技内容,周五发布。([通知] 下周五开始的中秋和十一假期,周刊休息。)
本杂志开源,欢迎投稿。另有《谁在招人》服务,发布程序员招聘信息。合作请邮件联系([email protected])。
封面图

华东师范大学闵行校区新启用的西校门,仿造了它的前身之一光华大学的校门。(via)
再见了,React Native
Shopify 宣布,放弃 React Native,改用 Swift 和 Kotlin 开发它的移动版。

也就是说,它决定采用原生语言,开发 iOS 和安卓客户端,不再采用 Web 技术开发一个中间版本,再编译成各平台的客户端。
这不禁让人想起,六年前的2020年,它也是写了一篇文章,高调宣布放弃原生语言,全面转向 React Native,拥抱 Web 技术。
这在当时是一个大新闻,很多人认同 Shopify 选择 Web 技术的三个理由。
- 不用为每个平台重复开发相同的功能。
- 允许开发人员跨技术栈工作。
- 多出来的时间和精力,可以用来创造更多的价值。
说实话,这三个理由都是场面话,真正的理由只有一个:省钱。
当年为了省钱,它选择了 React Native,只需要养一个团队,比起安卓和 iOS 要养两个团队,可以大大节省成本。
如今放弃 React Native,也是为了省钱。现在有了 AI,使用什么语言根本无所谓。 AI 可以便捷地翻译语言,那么为什么不用性能更好的原生语言呢,跳过中间版本。
当然,React Native 自己也是不争气。自从2015年发布,迄今已经超过10年,一些基本的技术问题至今没有很好地解决,使用上手也不是很方便。它被别人替代,说实话,一点都不冤。
总之,AI 就是一个无所不能的自动翻译器,一旦问世,像 React Native 这种中间语言或者翻译层,就被判死刑了,此刻开始退出历史舞台成了必然的结局。
世界地图的新投影方法
上周发生了一件大事,联合国投票决定废除墨卡托投影。
这个决定对各国没有约束力,只是一个标志,表明墨卡托投影真的是过时了,可能需要淘汰。
我们知道,地球是圆的,地图是平的。这注定了必须采用某种转化方法,才能将球形地貌投影变成平面地图。这也从一个侧面说明,平面地图肯定存在失真。

上面是目前通行的世界地图,采用了墨卡托投影。
这种投影相当于把地球仪直接拉伸为矩形,后果就是高纬度地区会被极大拉伸,看上去面积偏大。
上图中,赤道的非洲看上去跟高纬度的格陵兰岛一样大小。实际上,前者的面积是后者的14倍。
联合国建议,废除墨卡托投影,采用新的平等地球投影法(Equal Earth Projection)绘制世界地图。
平等地球投影法的核心原则是不改变面积比例。如果一块土地占地球面积1%,那么它占地图面积也应该是1%,所以它的面积比例不会失真。
代价是,它会根据面积进行拉伸。对于赤道与低纬度地区,南北方向适当纵向拉伸,东西方向适当收缩;对于两极与高纬度地区,东西方向大幅变宽,南北方向大幅变扁。
所以,这种投影法会造成土地形状失真,长和宽都可能变形,无法使用这种地图进行精确导航。

上图就是平等地球投影法的世界地图,非洲变大了。
下面是墨卡托投影和平等地球投影的欧洲和非洲。大家可以比较差异。

科技动态
1、隐藏摄像头检测器
你是否担心,周围有隐藏摄像头在偷窥你?
韩国科学家发明了一种装置,可以快速检测周围有没有这种隐藏的摄像头。
这种装置就是一块电路板,上面有多个发光二极管,会依次点亮,连接手机即可使用,造价很低。

它的原理是,发光二极管发出的光,会被隐藏的摄像头反射。只要从接收到的反射光里面,排除正常的镜面,就可以确定摄像头的位置。
那么,如何才能排除其他的反射光呢?这个装置用了一个很巧妙的方法,就是依次亮起不同位置的发光二极管。
其他的反射光都来自平面镜,只有摄像头的镜面是凸起的透镜,反射光会出现位置偏移。利用不同位置的光源,就可以确定哪些反射光发生了位置偏移,进而确定反射点的位置。

2、一句话新闻
(1)胡塞武装最近赢得了一场重大胜利,据说使用了史上最匪夷所思的获胜方法。
他们伪造了对方指挥官的一段音频,指挥官命令部队撤退。他们让一个网红在推特上传播这段假音频,结果对方军队居然真的陷入了混乱,他们就顺利进军,以很小的代价占领了对方的地盘。
(2)笔记本开始采用固态散热技术,不再需要风扇,通过石墨烯/铜箔贴片散热。
因此,笔记本可以做得极薄、极轻巧。联想最近发布了一款14寸概念笔记本,居然只有830克。华为的14寸笔记本 MateBook Pro S 更是只有798克。

(3)成都市计划实施"词元券",企事业单位可以免费申领,你消耗的 Token,政府可以补贴不超过30%的消费金额。
此外,成都市还计划了"词元贷",可以向银行贷款消费 Token。
文章
1、我的 HTML 模板文件(英文)

作者详细介绍了2026年的网页 HTML 模板应该是什么样子,每一行有什么作用。
2、如何用 JavaScript 取消 CSS(英文)

一篇初级教程,教你用 JS 取消网页的 CSS 样式表。
3、容器管理工具和反向代理工具(英文)

作者介绍,他如何用容器技术搭建服务器,所使用的技术栈和各种工具。
4、JavaScript 的怪异之处(英文)

一篇 JavaScript 的科普文章,介绍一些不太被注意的 JS 语法怪异之处。
5、谷歌搜索的 udm 参数(英文)

谷歌搜索的 url 可以加上一个 udm 参数,用来访问特定类型的结果,比如 udm=2 就是返回图像结果。
6、熵的解释(英文)

本篇长文用通俗的语言,解释"熵"的概念,有不少插图。
工具

一个可以生成复杂表格的 Python 库。

这个项目将终端模拟器 Ghostty 编译成 WASM 代码,从而可以在网页里面使用一个全功能的终端。
3、Infat
一个命令行工具,在 Mac 电脑上设置不同后缀名文件的默认打开方法。

一个使用 WebGL 的在线图片编辑器,作为原型演示,界面非常简洁。
5、CryptPad

免费使用的线上 Office 办公套件,支持端对端加密,参见介绍文章。
6、Lyrimuse

macOS 桌面歌词工具,实时查找显示正在播放的歌曲的歌词。(@Yudaotor 投稿)

剪映(capcut)的非官方命令行工具,在终端里面创建/编辑视频。(@renezander030 投稿)
8、mailez

一个 Go 语言的二进制文件,实现自托管邮件系统,网页收发邮件,支持 SMTP / IMAP / POP3 / ManageSieve 四个协议。(@lianguan 投稿)

一款借鉴 iPhone Duo 设计的三合一 Mac 状态栏图标,集成 Wi‑Fi 、电池与音量。(@lingyired 投稿)
10、Polycompiler
一个有意思的项目,可以把 JS 脚本和 Python 脚本打包成一个脚本,同时能在 JS 环境和 Python 环境运行。
资源
1、gpcb.net

网络设备拓扑图的网页设计工具。(@abpyu 投稿)
2、视觉风格图鉴

用一颗苹果,展示100多种视觉风格,比如上图是霓虹风格的苹果。(@jerrymakes 投稿)
3、AI IP 检测

这个网站显示你连接 Claude、ChatGPT、Grok、Perplexity、Cloudflare 时,实际连接的 IP 地址。(@MuduiClaw 投稿)
4、引力(Gravity)

一个网页的多媒体教程,向观众介绍万有引力的相关知识。
图片
1、F-35 头盔
世界最贵的头盔是美国战斗机 F-35 的飞行员头盔,价值40万美元一个(约人民币300万)。

它那么贵的原因,在于可以连接飞机的传感器,接受和处理各种数据。

它内置一个360度显示屏,为飞行员提供夜视、飞行数据(下图)。

每个头盔都是 3D 扫描定制的,由碳纤维、凯夫拉纤维和各种光学元件制成。
苏联的航空公司曾经设想,使用直升机运送乘客。
上个世纪60年代,他们生产了一种当时世界上最大的直升机 Mi-6,可以乘坐80名乘客。


它长约33米,高10米。内部每排可以坐5个人,甚至还有厕所。

这种飞机只造过一架,用来运送乘客到苏联东部地区,进行石油和天然气工作。

文摘
1、糊状千层面
实话实说,现实中,大多数程序员的代码其实都很糟糕。
但是,糟糕的垃圾也分等级。一种情况是代码就像意大利面条(Spaghetti code),乱成一团,根本理不清。

好一点的情况是"糊状千层面"(slop lasagna)。这种代码也是糊在一起,但分成了很多层,至少可以按着层把它分开。

即使无法写出优秀出众的代码,你也要尽量避免意大利面式代码,争取写出千层面式代码。
一个实例就是 React 框架,它把代码拆分成组件,这样的好处就是,哪怕每个组件都是垃圾代码,至少可以单独替换某个组件。
删除组件、复制组件、内联组件、重写组件都是很容易的操作。因为组件之间是分离的,它让你只需关注单个组件的内部代码。
只要你的组件树的设计是合理的,那么单个组件内部的具体代码就无关紧要。某人写了一个10000行的垃圾组件,哪有什么关系呢,最终有人会重写它,它影响不到代码库的其他部分。
只要代码是千层面结构,那么单独一层很糟糕,并不影响全局。
真正重要的是下面的事情。
(1)数据如何在系统中流动,当前的数据从哪里输入,又输出了什么,以及你存储了哪些数据。
(2)用户体验如何,有没有明显的漏洞、糟糕的性能、前后不一致的行为。
(3)基本的抽象概念是否正确,有没有误用。
只要上面三点 OK ,代码又是组件式的可抽换结构,那么程序就没有大的问题。这时,某个组件是否冗长、写得好不好、是否简洁合理,有没有小 Bug,其实无关大局。
言论
1、
卫星会消耗行星的自转能量,从而加速行星的毁灭。
2、
想象两家非常相似的软件公司,收入相似,软件产品也相似。它们唯一的区别是,A 公司使用了 100 万行代码,而 B 公司使用了 10 万行代码。哪家公司会表现更好 ?
显然,代码行数只有别人十分之一的公司会表现更好。代码行数越少,就能更快地理解和修改代码。
-- 《代码就是债务》
3、
大模型会将你从一个编写代码的程序员,转变为一个管理上下文、剔除无关信息、编写详细提示词的程序员。
4、
一位创始人,如果在2024年组建了合适的团队却打造了错误的产品,那么坚持到2027年,他的团队就会变成久经沙场的团队,很可能打造出正确的产品。
失败带来的经验,就像根系中的养分被储存起来,等待下一个春天的到来,而不是白白浪费。
5、
很多技术出错,并不是太大的问题。GPS 出错,我很快会发现地点不对;Netflix 推荐的电影不好看,我就不看了。
但 AI 就不同了,它越先进,就越难知道它是否出错,因为我们会用 AI 去完成那些我们自己无法完成、也无法验证的任务。
一旦 AI 出错,我们只能不停召唤更强大 的 AI,希望咒语能够奏效。欢迎来到魔法师时代。
往年回顾
旧金山疯狂的 AI 广告(#366)
你一生的故事(#316)
自己做双语 EPUB 电子书(#266)
极简主义的胜利(#216)
(完)

kol 说:
再见了,React Native 部分是 Shopify 而不是 Spotify
2026年9月18日 08:18 | # | 引用
morty 说:
我有一个推测,既然现在大模型这么强了,框架和库这些还有必要用吗?会不会直接用原生的比较好?
2026年9月18日 08:32 | # | 引用
攸羚 说:
Shopify不是Spotify,这回偏的有点太离谱了
2026年9月18日 08:39 | # | 引用
Toya 说:
欢迎来到魔法师时代!
2026年9月18日 08:46 | # | 引用
阮一峰 说:
@攸羚,@kol:
谢谢指出,已经更正了。
2026年9月18日 09:02 | # | 引用
janda 说:
第一个摄像头检测的、华为也好像有个类似的成熟产品、华为灵眸 eKitEngine DF10
2026年9月18日 09:05 | # | 引用
Andy 说:
Spotify -> Shopify
2026年9月18日 09:16 | # | 引用
0×0001 说:
Shopify 敲成 Spotify 了哈哈
2026年9月18日 09:23 | # | 引用
jaywhen 说:
"Spotify 宣布,放弃 React Native,改用 Swift 和 Kotlin 开发它的移动版。"
是 Shopify 啦!
2026年9月18日 09:25 | # | 引用
高贵的欧罗巴人 说:
所谓的“平等地球投影法”其实是为了满足非洲黑鬼可怜的自尊心
2026年9月18日 09:34 | # | 引用
Rei 说:
视觉风格图鉴 404打不开
2026年9月18日 10:01 | # | 引用
cc 说:
指正:做电商的 Shopify 放弃了 RN 而不是 Spotify
2026年9月18日 10:13 | # | 引用
点到为止 说:
应该是shopify吧
2026年9月18日 10:15 | # | 引用
wums 说:
纠错:Spotify => Shopify
2026年9月18日 10:22 | # | 引用
Fans 说:
一旦 AI 出错,我们只能不停召唤更强大 的 AI,希望咒语能够奏效。欢迎来到魔法师时代。
---
狂热时代确实是这样,以后会不会好不知道。
2026年9月18日 10:36 | # | 引用
walker 说:
是shopify不是spotify哦^^
2026年9月18日 10:51 | # | 引用
walker 说:
是我眼花了吗? 留完言发现没有spotify...
2026年9月18日 10:53 | # | 引用
Lamires 说:
"代码行数越少,就能更快地理解和修改代码。"
这么说就太绝对了,如果行数少的代价是代码耦合度越高,开发成本反而越高吧。而且AI时代,感觉代码行数没啥意义了。
2026年9月18日 11:09 | # | 引用
cjblg 说:
token贷,这也太赛博朋克了,真没绷住
2026年9月18日 11:33 | # | 引用
Tom 说:
Spotify写错了是Shopify公司这家公司技术是真不错
2026年9月18日 11:51 | # | 引用
Tom 说:
作者改过了所以看不到了,应该是缓存的关系,我第一次打开还是Spotify,还有100w行代码的公司可能针对性根据各行各业写了很多定制化代码,国内这样的公司还挺多的,定制化开发的特别多,海康/华为/有些看着是大厂其实很粗糙干的是小公司的活
2026年9月18日 11:53 | # | 引用
天天开心 说:
Ai 是魔法师确实是这样的,大部分人很难理解他的运行逻辑,只当一个黑盒魔法杖,魔法杖失灵,依赖他的人也就变成了傻瓜
2026年9月18日 13:51 | # | 引用
Allen 说:
涉及到抽象转接的问题:如果我要实现一个表单、某种icon,通过框架导入代码会非常清晰。token消耗很很少,你让AI自己画SVG token更多,你更加无法修改,如果再进一步你让他写汇编,那就更加灾难了。
2026年9月18日 13:56 | # | 引用
Michael 说:
我不理解这么多人说“Spotify、Shopify”的问题,是评论有审核机制,一堆人评论完了再一起放出来。还是这些人就是发现了一个错别字就赶紧翻到最底下评论指出。我观察往期也是一样,只有有一处拼写错误或者不严谨之处,下面的评论都会不厌其烦的反复强调,再也看不到其他内容。如果是审核了再放出的,建议放一条出来就好了,多余的都毙掉吧。
2026年9月18日 14:55 | # | 引用
LaplaTom 说:
视觉风格图鉴的这个网站404了
2026年9月18日 15:23 | # | 引用
bigw 说:
卫星会消耗行星的自转能量,从而加速行星的毁灭。
那马斯克发射那么多卫星,岂不是会导致地球的灭亡?
2026年9月18日 15:56 | # | 引用
bigw 说:
胡塞武装最近赢得了一场重大胜利,据说使用了史上最匪夷所思的获胜方法。
他们伪造了对方指挥官的一段音频,指挥官命令部队撤退。他们让一个网红在推特上传播这段假音频,结果对方军队居然真的陷入了混乱,他们就顺利进军,以很小的代价占领了对方的地盘。
-----
请问这个网红最后怎么样了?
2026年9月18日 15:57 | # | 引用
xjump 说:
框架应该会继续存在,只是需要考虑面向AI Coder来设计了。比如:易于AI使用,易于保证质量,易于消除幻觉,省成本/Token。
2026年9月18日 17:25 | # | 引用
Manny 说:
一旦 AI 出错,我们只能不停召唤更强大的 AI,希望咒语能够奏效。欢迎来到魔法师时代。
--本周一个新闻,几个AI大模型劫持了一个网站作为它们的“根据地”,它们在这里达成一些“协议”。不知真假。
2026年9月18日 17:27 | # | 引用
que 说:
内心扭曲的人看什么都是扭曲的,你还欧罗巴人呢,纯????
2026年9月18日 17:29 | # | 引用
Hbzhtd 说:
程序员不就是产品经理到代码的翻译员么,包括各行业的软件、工具使用者,感觉也离死不远了...
2026年9月18日 17:55 | # | 引用
有鱼 说:
AI 让程序员脱离轻松的编码工作,而投入到高强度长时间的深度思考中
2026年9月18日 17:56 | # | 引用
Houyhnhnms 说:
感觉ai时代大部分人自己变成了需要在“中文房间”里翻字典才能问对问题的人,以前要实现一个需求必须学会各种具体技术,而现在只要记住各种咒语(技术名词)和名词大概对应的魔法效果就行了
2026年9月18日 18:58 | # | 引用
九月的路人丁 说:
“熵”这一篇好像前几年在周刊上见过。当时引用的是这一篇:https://aatishb.com/entropy/
与本次引用的内容相同。
2026年9月19日 02:25 | # | 引用
Rei 说:
熵的解释的原文是:https://aatishb.com/entropy/,上面的链接是二道贩子,其中一些交互动画和统计图标都不能用。原文链接都正常。
2026年9月19日 06:05 | # | 引用
大名 说:
一会儿再见了原生, 拥抱 React Native,
一会儿再见了React Native, 回到原生
Shopify 是个什么很了不得的公司吗 我都没用过 很像 Spotify 的山寨
这个就好比阮一峰一下子满世界喊爱刘亦菲不爱林志玲, 一下子又满世界喊不爱刘亦菲还是林志玲
世人很多都知道 React Native 和 iOS 原生,也知道刘亦菲和林志玲
而你 Shopify 和 阮一峰是个什么东西,这么爱表演
2026年9月19日 22:10 | # | 引用
keylyf 说:
"容器管理工具和反向代理工具" 连接不对,感觉是两个http地址。
2026年9月20日 10:21 | # | 引用
Hu 说:
有必要的,再强也不是全知全能的。组装零件出错的概率永远比自己制造非标零件出错的概率小。
2026年9月20日 11:26 | # | 引用
Hu 说:
人造卫星和天然卫星的差距比鸿毛和泰山的差距还大
2026年9月20日 11:32 | # | 引用
AAA 说:
回炉吧
2026年9月20日 17:48 | # | 引用
end-e 说:
是这样的,感谢
2026年9月21日 10:18 | # | 引用
ASTRO 说:
这么多年从未想到周刊离自己如此近,自己现在就是某大型互联网公司All in React Native的佼佼者。现在公司内部也在回归Swift,回归Kotlin,回归Native了。
2026年9月21日 16:10 | # | 引用
featherland 说:
哀嚎
2026年9月21日 19:30 | # | 引用
荣耀的西西Sir 说:
好开心,我把文章更新接进公司的AI Agent了,一有更新就会自动推送给我,对于我们这种非研发出身的人来说,AI真是好东西。
2026年9月22日 10:41 | # | 引用
大风车 说:
苏联的直升机,非常形象的展示了什么叫“力大飞砖”!
2026年9月22日 15:30 | # | 引用
三丽鸥 说:
感觉评论区有点过于刻薄了。博主坚持无偿给大家分享资讯,有错误指出即可,没必要各种大肆批判吧。
2026年9月22日 17:33 | # | 引用
John 说:
以前随手让ai做的可视化项目,确实ai倾向于原生js,没有啥框架。不过那是小项目。大项目也不是一个ai操作,逃不过框架吧
2026年9月22日 22:44 | # | 引用
哈哈 说:
据说有两个公司合并时,一个PHP,一个java,PHP的天天不加班,java的天天加班,后来PHP的被裁了
2026年9月23日 12:17 | # | 引用
好xiansheng 说:
每周必读周刊,尤其是Info的架构师杂志停了之后
2026年9月23日 17:01 | # | 引用
Sena Himeno 说:
有没有可能,不是加不加班的问题,是php的问题(
2026年9月24日 16:52 | # | 引用
Tom Du 说:
串子不要上网
2026年9月25日 17:13 | # | 引用
[email protected] 说:
再见了,司徒雷登。。。
2026年9月26日 23:07 | # | 引用