普通视图

发现新文章,点击刷新页面。
昨天 — 2025年9月5日阮一峰的网络日志

科技爱好者周刊(第 364 期):最难还原的魔方

作者 阮一峰
2025年9月5日 08:13

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

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

封面图

厦门某超市的切片西瓜。(via

最难还原的魔方

说来奇怪,我认识的很多程序员,平时看上去没有共同点,但是一问,他们都喜欢魔方。

而且,水平都很厉害,一般来说不超3分钟,就能还原魔方。

有一段时间,我们办公室有好几个魔方,没事的时候,大家就拿在手里拧。

我想过一个问题:什么样的魔方最难还原?

不同的魔方,还原难度肯定是不一样的,但是怎么衡量难度呢?

最近,我意外发现,这个问题在国外早有人研究了。

而且,他提出了衡量标准,最难还原的魔方应该同时满足下面6个条件。

  1. 每一面都包含6种颜色。
  2. 每一面的任何一种颜色不超过两个色块。
  3. 任何一面上,不能有两个相同颜色的连续色块。
  4. 任何一面上,不能有两个相同颜色的色块在对角线上。
  5. 八个角上,不能有相同颜色的色块。
  6. 每一面的图案都必须不同。

更让人佩服的是,他写了一个 C++ 程序,去找出最难还原的魔方。

魔方的排列方式共有 43,252,003,274,489,856,000 种,他的家用计算机花了5天,才跑完所有计算。

最终发现,只有下面一种排列,满足上面六个要求

上面这个图案,就是最难还原的魔方。

这个图案包含了魔方的6个面。由于这6个面可以随机组合,因此一共有48种形态。

[本周软件] GeeLark:跨境营销的 AI 助理

很多企业和个人,都有使用境外社媒平台(Facebook、Instagram、X/Twitter、TikTok、YouTube、Reddit 等)的需求。

今天向大家介绍一款桌面软件 GeeLark一站式管理这些平台,简单好用,是跨境营销、电商出海的好帮手。

它内置了云手机与指纹浏览器,可以一键新建云端的手机实例,去访问社媒平台。

云手机有很多好处:(1)每个账号有独立隔离的运行环境,支持同时登录多账号;(2)体验与实体手机无异,操作都在桌面电脑完成;(3)提供指纹浏览器环境,每台云手机的指纹都不一样,不会被平台限流。

这一次,GeeLark 的最新版本增加了很多特色功能。

(1)加入了 AI 大模型,支持疑难解答、视频生成剪辑、AI 养号、文案撰写等。

尤其是图生视频功能(上图),有多个热门模型可选,可以用来产品照片快速生成视频。

(2)自动化常用操作。举例来说,它的 TikTok 有 AI 养号、视频与图集的自动发布、自动挂车、AI 数据助手、自动赞评等功能。

对于现在热门的短剧出海用户,它提供 AI "锚点"功能,为短剧引流。

(3)Reddit 自动化。值得一提的是,它还在自动化模板商店,上线了 Reddit 自动化功能,可以 AI 管理 Reddit 账号,自动发布内容。

要知道,AI 生成引擎引用最多的就是 Reddit 内容,做好 Reddit 自动化,有利于你的 GEO(内容生成引擎优化)。

(4)自定义任务。如果内置的自动化操作不够用,它还允许自定义任务,满足个性化运营需求。

比如,你可以在工作流中,自己接入一个具备图像识别能力的模型,对云手机画面进行智能识别,并基于画面内容执行自动化操作。

(5)开放 API。GeeLark 提供 API,你可以自己编程调用,新建云手机实例和自动化任务。这样一来,它的用途和想象空间就更大了。

总之,如果你需要跨境营销,管理境外社媒平台账号,GeeLark 值得一试。

用户/团队开通套餐后,根据使用量计费,用多少付多少,不按团队人数收取席位费。并且,团队可以对每个成员设置独立访问权限,团队成员无需知晓社媒平台的账号密码,即可操作。

欢迎访问官网 geelark.cn,下载试用,具体用法可参考官方教程

科技动态

1、韩国在夜晚的首尔公园,启用"全息警察"。

你会看到一个真人大小的警察,站在公园草丛里,还会说话和做出动作。如果距离远,根本看不出是投影。

警方说,该装置激活期间,公园的犯罪率下降了约22%。

2、一个美国程序员将一台老式咖啡机,改装成"咖啡机电脑"。

这台电脑既可以当作电脑,也可以当作咖啡机,两者的所有功能都是可用的。

这件事最难的地方是,咖啡机产生高温水蒸汽,而电脑不能进水,还需要散热。两者放在一起,电脑很难稳定运行。

3、Meta 公司发明了,可以控制电脑的腕带。

这个腕带的大小就像一块手表,据说可以替代鼠标甚至触控笔,控制电脑。

它的原理十分新颖,手指和手掌移动时,会产生肌肉的电信号,这个腕带能够读取这种电信号,并判断出动作的意图。

4、矿井储能

芬兰有一个1400米深的废弃矿井,一家英国公司计划将其变为储能电池。

它的思路很简单,就是在矿井中安装悬挂重物的起重机。多余的电力用来将重物吊起,需要用电时,则让重物缓慢下落,释放重力势能,带动涡轮发电机发电。

如果这种方法可行,废弃矿井就能利用起来,转变为储能基地。

5、地图广告

谷歌地图最近出现了一种新型广告。

当你使用导航时,它会突然跳出一个窗口(下图),告诉你可以在某个地方临时停一下。

不妨想象一下,以后导航路线可能会出现 n 个打卡点,只要你进店手机打卡,就能获得奖励或者消费优惠券。

文章

1、Cloudflare 的爬虫认证(英文)

Cloudflare 作为世界最大 CDN 服务商,推出了爬虫认证。如果想抓取它托管的网站,必须登记你的公钥,然后每个请求附上签名。

2、我在 Anduril 当工程师(英文)

Anduril 是美国新崛起的一家国防科技公司,专注于无人机的军事应用。它的创始人就是 AR 眼镜产品 Oculus 的创始人,自称要用无人机保卫美国。

本文是它的工程师介绍公司内部研发情况,很多细节,推荐阅读。

3、用数据库替换缓存(英文)

作者谈了他的看法,什么时候直接查询数据库,什么时候使用缓存。相比数据库,缓存有什么优缺点。

4、我们把 AI 编程放入一个 while 循环(英文)

作者写了一段指令,让 AI 自己生成代码,出现问题就自己提交 PR 修复。

他把这段指令放入 while 循环,就去睡觉了。第二天醒来,看看 AI 进展如何。(剧透:一个晚上,AI 用掉了800美元。)

5、我的 Python 工具箱(英文)

作者是 Python 语言初学者,本文介绍他使用的基本开发工具,比如 uv、ruff、ty 等等。

6、AMD 和 Intel CPU 之间的区别(英文)

AMD 和 Intel 都生产 x86 CPU,虽然是同质产品,本文介绍它们的架构差异。

工具

1、sping

ping 命令的增强版,会在终端图形显示每个数据包的延迟。

2、Beszel

轻量级服务器监控工具,带有 Web 界面,参考介绍文章

3、WinApps

Linux 系统运行 Windows 应用的工具,它会自动启动一个虚拟机来运行,跟 Wine 的原理不一样(它是模拟 Windows API)。

另有一个类似工具 WinBoat

4、YouTube TUI

YouTube 的终端客户端,在命令行操作 YouTube。

5、LabPlot

数据可视化的桌面软件,会将数据集转成各种图形,据说功能很强。

6、gitlab-to-github

一个 Python 脚本,一键将你的 GitLab 仓库全部迁移到 GitHub。(@wuuashen 投稿)

7、Telegram 广告拦截机器人

开源的 Telegram 机器人,使用贝叶斯算法自动拦截群组的广告帖,参见作者的介绍文章。(@ramsayleung 投稿)

8、Foxel

开源的私有云盘,支持 AI 语义搜索。(@DrizzleTime 投稿)

9、StoryMotion

一个基于 Web 的动画编辑器,用来制作嵌入网页的 Excalidraw 手绘风格动画,很适合用来演示。(@chunrapeepat 投稿)

10、Website Screenshot Online

在线免费截屏网站,用户输入网址,它返回该网址的截屏图片,另有录制页面滚动视频的工具网站。(@cryptobanksy 投稿)

AI 相关

1、拆书 AI 总结工具

这个 Web 应用可以按章节拆分电子书(epub 和 pdf 格式),通过 AI 生成该章的文字总结和思维导图,需要用户提供大模型 API Key。(@SSShooter 投稿)

2、VIVY

文生图模型 Stable Diffusion 的桌面客户端。(@surunzi 投稿)

3、ApeRAG

开源的 RAG(检索增强生成)平台,将图谱 RAG、向量搜索和全文搜索与 AI 代理相结合。(@earayu 投稿)

4、AI Video Transcriber

AI 视频转录&翻译&总结工具,支持YouTube、Tiktok、B 站等30+平台。代码开源,需要自己搭建前后端。(@wendy7756 投稿)

资源

1、OpenAnimation

这个仓库专门收集各种基于 Lottie 的动画。

2、Jujutsu 入门教程

Jujutsu 是一个新兴的代码管理系统,号称比 Git 更好用、更易懂。这个英文教程写给完全不懂 Git 的人。

3、我收藏的 50 个键盘

作者是一个国外的键盘收藏家,他列出自己最奇特的50个键盘。

比如,下面的键盘是竖立使用,还贴心地配上镜子,让你能看到按键。

再比如,手套上的键盘,用另一支手输入。

还有一个键盘,所有键帽都是一次性套上去的,可以随时换。

图片

1、乐器的内部

一位国外音乐家想到,我们每天看到的都是乐器的外部,那么乐器的内部是什么样?

他就拍摄了一系列乐器内部的照片,给人一种完全不同的视觉体验,仿佛进入了奇特的建筑物。

管风琴

小提琴

钢琴

大提琴

文摘

1、为什么 Facebook 留不住科学家

Facebook 公司最近投入重金,聘请了很多 AI 人才,但是其中不少人待了很短时间,就提交辞呈走了。这是为什么?

一位前员工给出了自己的解释,认为这跟公司使命有直接联系。

Facebook 的使命是 connect everyone(连接每个人),这和 AI 没有直接联系。虽然它的内部有大量研究人员,但是主要研究方向是排名算法和大数据分析,它历史上没有 AI 研究的基础。

而且,研究型人员在 Facebook 内部并不被重视。

许多招来的研究员原本在学术界或 Google/DeepMind 有自由探索的空间,能做长期的、前沿的研究。来了 Facebook 以后,他们的 AI 研究更多地被要求服务于广告、推荐系统和内容审核等短期业务目标。研究人员容易觉得缺乏长期愿景或突破性的研究方向。

Facebook 本质上是一家以"move fast"驱动的消费互联网公司,强调快速上线、快速推动公司业绩。

这样的基因让研究人员觉得缺乏学术环境,也难以在同行中保持声望。

同时,Facebook 的研究与产品部门割裂严重,研究成果很难直接落地产品,产品团队也不完全理解研究的价值。

很多科学家因此感到,在 Facebook 做不出真正的创新与成绩,每日要为业务忙碌,最后就选择离开了。

这说明大公司未必能用重金垄断人才,如果小公司真正在做革新性产品,有很大机会吸引到人才。

言论

1、

一项美国研究发现,AI 对于非名校的毕业生就业冲击最大,对哈佛、MIT 之类的名校毕业生的就业没有什么冲击。

AI 加剧了普通学校的贬值。

-- 《AI 对就业市场的冲击》

2、

自己的电脑运行 AI 应用,有三大危险:它能够访问你的私人数据,能够加载不受信任的内容,能够进行外部通信。

-- Simon Willison

3、

中国有一个概念"吃苦",美国没有这个概念。

-- Hacker News 读者

4、

氛围编码真的很有趣,你只需要构思,不需要自己编码。我用了以后才意识到,这才是我真正喜欢的。

-- 《我作为 VC 的氛围编码》

5、

SEO(搜索引擎优化)的游戏早就结束了。

大​部​分​人还​在​拼​命​追求 Google 排名,但​用户其实已经离开了 Google。现在只有27%的搜索发生在那里,剩下73%都发生​在 TikTok、Amazon、Reddit、YouTube、甚​至 ChatGPT。

-- Neil Patel,美国畅销书作者

往年回顾

驴子、老虎和狮子的寓言(#317)

5G 的春天要来了(#267)

沙特的新未来城(#217)

广告拦截器太过分了(#167)

(完)

文档信息

  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证
  • 发表日期: 2025年9月 5日
昨天以前阮一峰的网络日志

科技爱好者周刊(第 363 期):最好懂的神经网络解释

作者 阮一峰
2025年8月29日 08:11

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

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

封面图

广西河池市罗城县的天坑景区,在半山腰建造了一个"悬崖书店",非常壮观。(via

最好懂的神经网络解释

神经网络是 AI 的算法基础。

前些天,我在美国科普网站《量子杂志》(Quanta Magazine),读到一篇科普文章,用一个浅显的例子 + 插图,解释了神经网络,堪称我见过的最好懂的教程。

下面就是我整理出来的中文版。

1、

你的计算机里有一堆照片,想要从中找出猫的照片,应该怎么做?

你很快意识到,这其实是一个机器分类问题,计算机要把照片分成两类:一类是猫,另一类不是猫。

2、

让我们把这个问题想成一张地图,中间有一条分界线,把地图分成两个国家。

你的任务是,找出这条分界线的确切位置。这样的话,给出任意一个点,你就知道它在分界线的左边还是右边。

3、

作为已知条件,地图上很多点的归属,是已知的。比如上图中,三角点属于 A 国,方块点属于 B 国。

你要做的就是,从这些点推测出分界线。

4、

我们可以建立一个数学函数(上图的点 N),处理这个问题。

这个函数接受两个参数,分别是每个点的 x 坐标和 y 坐标,函数的返回值是0~1之间的一个值,表示该点有多大概率属于当前国家。

5、

你就用已知的点,去训练这个函数。

计算机自动根据每次训练的误差,调整每个参数的权重值,最终得到一条最接近的分界线。

6、

笔直的分界线只是最理想的情况,现实世界中,分界线更可能是七拐八弯的曲线。

7、

这时,只用一个函数来确定分界线,就不太够了。你需要多个函数,从不同角度进行判断。

8、

判断过程甚至需要分阶段进行,也就是需要多层函数。

这些函数组成的网络,很像人类的神经系统,所以称为神经网络。每个函数就是网络中的一个神经元。

9、

好了,现在再回到猫的照片。我们同样需要建立一个函数,来判断照片是猫的概率。

地图分界线的函数只需要 X 和 Y 两个参数,猫照片的函数就不行了,需要把整张照片输入进去。假如照片大小是2500个像素,那么函数就有2500个参数。

10、

函数的参数个数,可以看成空间的维度,2个参数就是二维空间,2500个参数就是2500维的空间。

猫照片的函数就是在2500维空间里面,通过大量训练,找到一条分界线,从而算出任意一张照片落在线内的概率有多大。

科技动态

1、青岛本周启用全球首栋"零碳大楼",使用100%的绿色能源。

大楼高117米,共23层,外部的幕墙都是光伏玻璃,每天可以发电1500度。

最有意思的是,它有一个地下能源室,放着14辆报废的电动汽车。它们的电池用来储能,供用电高峰时使用。

另外,停入车库的电动汽车,也会跟大楼的电网连接,为大楼反向供电,车主可以获得供电费。

2、广州医科大学完成了全球首例猪肺移植到人体手术。

他们把一个经过6处基因编辑的猪肺,移植到一个脑死亡病人体内。

起初,猪肺成功地输送氧气并排出二氧化碳,在24小时内,器官出现了损伤迹象,并在第三天和第九天出现了身体排斥该器官的迹象。

病人家属出于支持医学研究,同意了该项实验,但在第9天时要求实验结束。作为首次尝试,实验结果令人鼓舞,但因为只移植了左肺,病人的右肺是完好的,有人批评本次实验并未证明猪肺能够独立维持生命。

3、韩国人发明了一款90度订书机,可以钉上直角的订书钉。

这种订书机有很多好处,节约转角处重叠的纸板,也省掉了胶带和胶水。

4、美国笔记本品牌 Framework,以生产模块化笔记本闻名。

它最近推出了可以更换 CPU 和 GPU 的笔记本,我的印象中,这应该是世界第一款。

上图就是它的 GPU 模块,打开笔记本后盖,抽出来就能更换。这种做法值得推广,可以减少电子垃圾。

5、人死了,他的数据会留存下来。

一位美国律师最近提出,法律应该设立死者的数字遗产权,防止数字遗骸被利用。

大多数人死时,不会留下遗言说明,如何处理他在互联网平台上生成的内容。律师认为,法律应该明确规定,防止平台使用死者遗留的内容,用来训练 AI。

文章

1、谷歌宣布安卓开发者认证计划(英文)

安卓一直可以自行安装程序,不通过软件商店。谷歌打算改变这种做法,从明年9月开始,对所有应用作者进行认证。国产手机因为没有谷歌框架,估计不受影响。

2、OAuth 协议为什么这样设计(英文)

OAuth 是第三方登录协议,设计得有点复杂。本文解释这样设计的原因,每一个细节都讲得很清楚,让人豁然开朗。

3、CSS 的 random() 函数(英文)

本文介绍如何使用 CSS 的随机数函数 random(),用纯 CSS 代码制作星空、转轮等。

4、容器管理工具 Portainer 和 Dockge 比较(英文)

当你的计算机启用了多个 Docker 容器,就需要用到容器管理工具。本文比较了两种常用工具 Portainer 和 Dockge 的差异。

5、Mac 电脑如何查看进程信息(英文)

Mac 电脑有一个内置的 fs_usage 命令,可以查看进程信息,最有用的就是查看进程正在操作什么文件。

6、老旧 Kindle 改造成个人仪表盘(英文)

老旧 Kindle 怎么利用?本文将它改造成墨水屏的个人仪表盘。

工具

1、Gonzo

基于终端的日志文件查看工具。

2、Filestash

一个网页版的文件管理器,支持 S3、FTP、WebDAV、Git、Mysql、Backblaze 等各种协议和云服务。

3、Anchor Relay

生成免费 HTTPs 证书的网站。

4、PlutoPrint

一个 Python 库,将 HTML 网页/代码转为高质量的 PDF 文件。

5、MarkFlowy

跨平台的 Markdown 桌面编辑器,内置 AI 支持,代码开源。(@drl990114 投稿)

6、Pixel Art Generator

一个在线的 Web 应用,一键将图片转成像素画,可以设置像素尺寸、颜色数量、调色板风格。(@leah626888 投稿)

7、Peek Pop

开源的浏览器插件,鼠标指向某个链接时,弹出一个窗口,可以预览该链接。(@u-Sir 投稿)

8、naive-ui-pro

中后台管理面板的前端解决方案,基于 vue3 + vite。(@Zheng-Changfu 投稿)

9、文件快传

开源的 P2P 文件传输的网页应用,基于 WebRTC。(@MatrixSeven 投稿)

10、Dataset Viewer

开源的桌面文件查看器,支持绝大部分常用格式,可以快速查看本地或云端的大文件和压缩包。(@F-loat 投稿)

11、字帖生成器

输入中文文字,生成带有米字格和拼音的字帖的网页应用。(@luhuadong 投稿)

12、云之彼端串口助手

一款 Web 应用,在线串口调试助手,兼容 STM32、DSP、物联网 IoT 设备。(@xywml 投稿)

AI 相关

1、DeepWiki

这个网站把任意 GitHub 仓库,变成一个 Wiki,详细解释代码运行过程,阅读代码的好帮手,参见教程

2、Daily Commit Summarizer

一个 GitHub Actions 模版,用来为指定仓库的代码提交,生成每日的总结报告,发送到飞书。(@nanbingxyz 投稿)

3、VideoAdGuard

开源的浏览器插件,使用 AI 自动识别和跳过 B 站视频里面插入的广告片段。(@Warma10032 投稿)

资源

1、天体地图(Atlas of Space)

太阳系在线地图,会根据日期显示每个行星的运动。

2、all text in nyc

这个网站对纽约街景照片做了文字识别,可以搜索某个词在纽约街头(路牌/招牌)出现的地点。

3、机械图书馆(Mechanical Library)

这个网站详细介绍8种机械装置(比如减速齿轮)。

4、Is this tech dead?

用户输入一种技术的名字,这个网站会根据各种指标(网络热度、代码更新时间等等)判断该技术是否已经死亡。

图片

1、日本最恐怖的车站

日本群马县和新潟县交界处的土合站,是一个无人值守的车站,被称为最恐怖的火车站。

该车站位于山腹之中,从大门进来以后,要向山体内往下步行,整整462级、长338米的台阶(下图),才能来到站台。

站台也是阴森森的,还能听到地下流水潺潺的声音。

站台上只有一间小小的候车室和厕所。

候车室里面留有纸笔,供游客留言和贴照片,也是为了消磨时间。

墙上的匿名留言和照片,进一步给这个洞穴般的车站增添了诡异的氛围,仿佛置身于《寂静岭》之中。

文摘

1、不适感让你变强大

有一本畅销书曾经提出"兴奋效应"(hormesis)这个概念。它指的是少量的压力或不适感,会让我们变得更强大。

  • 练习举重,肌肉可以增长。
  • 接种疫苗,免疫力可以增加。
  • 承担失败的风险,信心会增长。
  • 通过解决难题,创造力得以扩展。

这种"兴奋效应"也适用于大脑,经常思考困难的问题,让思想经受考验,你才能学会思考。

但是,现在有了 AI,很多人就把问题交给 AI 去思考,让自己的大脑歇着。我担心,久而久之,我们会一步步丧失思考能力,直至变成生物傀儡。

最近有一项研究,科学家让参与者完全依靠 AI 来写论文,结果83%的人在写完后不久,无法引用自己论文中的任何内容。即使稍后让这些人重新独立写作论文,他们也会表现出大脑神经活动减少和无法完全投入思考,总是习惯性寻求 AI 的帮助。

研究人员创造出了"认知债务"这个词来描述这种现象:AI 确实带来了便利,但代价是牺牲我们的思考能力。

机器借给你脑力,你需要付出利息----你自身的思维能力。

我的建议是,明智地使用 AI,不要让它帮你解数学方程式,而要让它查看你的答案,来解释你可能错在哪里。你的原则是坚持独立思考,在这个基础上再加入 AI。

思考可能会让你觉得很累、不舒服,但它是你大脑的训练场,不适感让你的思考变得更强大。

言论

1、

我认为台积电是人类史上最好的公司之一,任何想买台积电股票的都是非常聪明的人。

-- Nvidia 董事长黄仁勋,台湾记者问他怎么看待美国政府可能入股台积电。他做了上面的回答,谁也不得罪,而且听了都很开心,他太会说话了。

2、

分布式系统,不是指系统分布在不同计算机,而是指系统包含两个或两个以上交互的进程,无论它们是否位于同一主机上。

-- 《什么是分布式系统》

3、

大模型是压缩信息的一种方式,即使不精确、有幻觉和遗漏,也比什么都没有要好。大模型已经是一个可用的、公开的、有损的互联网压缩视图。

-- 《大模型的权重是历史的一部分》

4、

以前,编写软件好于手工操作;现在,编写 AI 提示好于编写软件。

-- 《提示式编程》

5、

whisper-large-v3 模型将中文视频的语音转成文字时,遇到静音的片段,会自动生成文字"仅供学习/研究,请在48小时后删除",这说明它是用字幕组的字幕文件训练的。

-- Hacker News 读者

往年回顾

你一生的故事(#316)

自己做双语 EPUB 电子书(#266)

极简主义的胜利(#216)

视频学习胜过读书吗?(#166)

(完)

文档信息

  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证
  • 发表日期: 2025年8月29日

科技爱好者周刊(第 362 期):GitHub 工程师谈系统设计

作者 阮一峰
2025年8月22日 08:17

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

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

封面图

中国首艘火箭回收船"星际归航"本月成功下水,它的40米x60米的甲板,将用于火箭在海上降落。该船的拥有者是民营航天公司"星际荣耀"。(via

GitHub 工程师谈系统设计

上周,我读到一篇文章,作者是 GitHub 的高级工程师肖恩·戈德克(sean goedecke)。

文章题目是《我所知的良好的系统设计》

读完后,我觉得写得不错。GitHub 工程师总结经验,教大家设计一个良好的系统,不是空泛之谈。下面是我的一些摘录。

1、

程序设计是组装代码,系统设计是组装服务。

程序设计的组件是变量、函数、类等,系统设计的组件是服务器、数据库、缓存、队列、事件总线、代理等。

2、

如果一个系统很长时间不出错,它的设计就是良好的。

如果你进一步看了代码,脱口而出:"哈,这比我想的要简单",或者"这个部分不用我操心,即使出问题也容易解决",它的设计就是优秀的。

3、

良好的系统设计,总是从一个有效的简单系统发展而来。千万不要从零开始设计一个复杂的系统。

4、

系统设计的难点在于状态。尽量采用无状态组件,最小化"有状态组件"的数量。

状态的复杂性在于,你无法简单地重启服务。一旦出错,往往需要手动修复状态。

5、

状态需要保存在数据库。数据库是最重要的系统组件,用来管理状态。

数据库的设计目标是每张表易于理解:打开看一下表结构,就能大致了解存储的数据内容及其原因。

千万不要采用复杂的表结构(也就是数据结构),会给代码带来极大的复杂性和性能约束。

6、

数据库往往是系统瓶颈,因为每个页面请求可能要调用数十次、数百次数据库,而且是按顺序调用。

为了避免瓶颈,数据库可以做成一个写入节点和多个只读副本。数据查询都发往只读副本,数据写入发往写入节点。

写入节点与只读副本之间,存在数据复制延迟。如果更新一条记录后,你需要立即读取它,那么可以将数据放入内存,写入数据库成功后从内存读取。

7、

耗时的操作要拆分出来,放在后台作业(即系统外部的单独服务),排队完成。

后台作业主要分成两个组件:一个队列服务,一个作业运行器(从队列中获取任务并执行)。

队列任务的软件,可以用 Redis(需要尽快执行的任务),也可以用数据库(不着急的任务)。

8、

如果数据的生成速度和读取速度不匹配,经典解决方案就是缓存。

缓存的最简单做法,就是把数据保存在内存,否则就使用专门的键值存储软件(比如 Redis 或 Memcached),后者的好处是多个服务器可以共享缓存。

初级工程师希望缓存所有内容,而高级工程师希望尽量少用缓存。因为缓存是状态的来源,不可避免需要校验状态和处理状态过期。

9、

除了缓存和后台作业,大型系统通常还有事件中心,一般用的是 Kafka。

事件中心也是一个队列,存放的是"某件事发生了"的消息。比如,用户注册触发了"新帐户创建"事件,该事件就放入事件中心,然后由事件中心去通知订阅该事件的多个服务:发送欢迎电子邮件、设置个人空间等等。

事件中心适用于,发送事件的代码不关心其他服务如何处理事件,或者事件量很大且对响应时间不太敏感。

不要过度使用事件,很多时候,更简单的做法是让一个服务请求另一个服务的 API。

为了便于除错,所有日志最好都放在一起,你可以立即看到另一个服务的响应。

10、推拉

如果数据需要传送到多处,有拉取(pull)和推送(push)两种选择。

一般来说,拉取比较简单(比如大多数网站采用的轮询),推送更节省资源,不需要用户主动请求数据,一旦后端数据发生变化,服务器主动将数据推送给每个客户端。

如果你确实需要向100万个客户端提供最新数据(就像 GMail 那样),应该采用推送还是拉取?这要视情况而定。如果采用推送,就要把每次推送放入一个事件队列,并让一大群事件处理器从队列中拉取数据并推送。如果采用拉取,就要部署一堆(比如100台)快速的只读缓存服务器,处理所有读取流量。

谷歌的两个 AI 新产品

谷歌本周公开了两个新产品。

1、Imagen 4 模型

这是谷歌最新的"文生图"模型,可以在官网免费使用,参见介绍文章

我觉得,图片生成速度很快,效果相当好(比如下图"机器人拿着一块红色滑板")。

2、Learning About

Learning About 是谷歌的新型学习平台,使用 AI 生成学习教程。

先输入你想要学习的主题,比如 Java 语言。

它会返回一篇简单的教程,

除了总体介绍,里面还会列出各种学习主题,可以进一步深入学习。

科技动态

1、英国内政部宣布,英国的警车将加装面部识别系统

警车一边开,一边扫描路上行人的面孔,跟警方的数据库比对。如果发现可疑人士,就发出警报。

据称,该技术在伦敦试运行期间,12个月内已抓到了580名嫌疑人。

2、很多人喜欢旅行时邮寄明信片,作为纪念。

但是,明信片需要手写,而且只能传递文字,在手机时代显得很落伍。

一家美国公司最近推出了 Keeps(上图)。用户在它的网站,上传照片,并留下一段语音(下图)。

它会把照片打印成明信片,背后是一个二维码,然后把明信片寄给你指定的收件人。对方收到后,手机扫描二维码,就能听到你留下的语音。

3、维基百科的条目,有各种语言的版本。你知道最多语言的条目,是哪一篇吗?

出乎意料,居然是一个名不见经传的艺术家,名叫大卫·伍德沃德(David Woodard)。

他的条目居然有335种语言版本,是所有条目中最多的。

他的大部分语言版本都是一个叫做 Swmmng 的用户创建的,而且 IP 地址也一样,时间跨度持续了十多年。

很显然,这是一起自我推销行为,这个艺术家为了出名,为自己生成各种语言的维基百科条目。现在,他的大部分语言版本已被删除,只留下20种语言。

文章

1、GitHub Models 的免费 AI 服务(英文)

我刚刚知道,GitHub 提供免费的 AI 模型调用,有 GPT-4o、DeepSeek-R1、Llama 3 等模型,不过有用量限制。

2、用 JavaScript 生成迷宫(英文)

本文用通俗的语言,介绍一种生成迷宫的简单算法,给出 JS 的实现。

3、Cloudflare 不是 CDN(英文)

Cloudflare 提供无限流量的免费 CDN,那么为什么它还有收费的 CDN?本文告诉你,除了流量,CDN 还有其他指标。

4、Git 如何处理大文件(英文)

几十 MB 的大文件,不适合放入 Git 仓库。如果一定要放,要使用一个扩展 Git LFS。但是它不太好用,作者提出改进建议。

5、10个有用的 VS Code 插件(英文)

作者介绍10个他已经离不开的 VS Code 插件。

6、TCP 初始拥塞窗口的问题(英文)

TCP 协议有一个"拥塞窗口"的设计,会根据网络状况,自动调整发送数据包的数量。本文通俗地解释这个概念,并提出改进的方案。

工具

1、doxx

终端查看 docx 文件的命令行工具。

2、IntraScribe

面向企事业单位内网环境的一个"语音转文字"的管理协作平台。(@weynechen 投稿)

3、P2P Remote Desktop

一个开源的 Windows 远程桌面工具,直接运行可执行文件打开远程桌面,无需配置和安装。(@miroslavpejic85 投稿)

4、CuteClock

一个开源硬件项目,基于 ESP8266 的智能时钟,可以显示时间和天气,支持小爱同学语音控制,自带 Web 和小程序客户端。(@AkenClub 投稿)

5、CleanYourMac

开源的 Mac 应用,智能清理工具,使用 AI 分析要删除的文件。(@GitDzreal93 投稿)

6、Next QR Code Generator

Firefox 浏览器的开源插件,为页面生成类似 Chrome 的二维码。(@liuliangsir 投稿)

7、Translator 快速翻译

Chrome 浏览器的离线翻译插件,基于浏览器新的 Translator API 和 Language Detector API,不用网络也能翻译。(@AnYi-0 投稿)

8、Jupyter Notebook 转换网站

这个网站可以将 ipynb 文件转化为 PDF、HTML 和 Python。(@CurioChen77 投稿)

9、Docker Pull Script

一个 Python 脚本,用于从指定镜像源下载 Docker 镜像,支持并发下载、智能缓存(layer 增量更新)。(@luckfu 投稿)

10、Make Graph

在线图表制作网站,支持主流图表类型,可导出 SVG。(@bimohxh 投稿)

另有一个类似工具 ChartFromText,输入数据,在线生成各种图表。(@StevenWuHao 投稿)

AI 相关

1、OpenAI Progress

OpenAI 的官方项目,展示 AI 的发展历程:每一年,同样的提示语,不一样的输出。

2、MCP Playground

这个 Web 应用可以用作 MCP 客户端,指定 AI 模型和 MCP 服务器,在线使用。(@mcpexplorer 投稿)

3、Coro Code

基于终端的 AI 编码代理,Claude Code 的开源替代品。(@Blushyes 投稿)

4、Claude Code Status Bar Monitor

Claude Code 的插件,实时显示使用量和重置时间等信息。(@leeguooooo 投稿)

资源

1、中小学语文示范诵读库

中央人民广播电台中小学语文示范诵读库的 Web 前端,课文按年级、学期分类。(@ZedeX 投稿)

2、在线硬件测试平台

网页测试各种硬件(GPU、屏幕、网络、摄像头、声音、鼠标、键盘)。(@linhuaqian 投稿)

3、业余无线电执照考试模拟(2025 题库)

基于官方最新题库构建的在线模拟与练习的 Web 应用。(@AlliotTech 投稿)

4、Citywalki

这个网站让你感受在世界200多个城市步行/开车/飞无人机。选择城市和移动方式后,它会全屏播放相应的 Youtube 视频,体验不错。

图片

1、滚动时间最长的滚轮胎

推荐 Youtube 的一个视频

一群艺术家爬上智利最高的沙丘之一,在上面扔下一只轮胎,用无人机全程拍摄,看看它会滚动多久。

轮胎在沙漠里,差不多滚动了三分钟,视频就是这三分钟的全程滚动,非常壮观和纾压。

文摘

1、沃兹尼亚克的故事

今年8月11日,是苹果公司联合创始人史蒂夫·沃兹尼亚克 (Steve Wozniak) 75 岁的生日。

网络论坛 Slashdot 转载了新闻媒体关于他的生日报道。有人留言,惋惜地说,如果他没有卖掉苹果股票,早就是世界数一数二的富翁了。

沃兹尼亚克本人看到这条留言,在下面回复了一段话。

"我卖掉和捐赠了所有苹果股票,原因是财富和权力不是我生活的目的。

我更希望自己拥有快乐和幸福。我资助了圣何塞(我出生在那里)的许多博物馆和艺术团体,他们还以我的名字命名了一条街道。

二十年来,我一直公开演讲,收入可能达到1000万美元。这足够我用了。"

这段话令人想起一本介绍苹果公司历史的书籍,里面曾经提到沃兹的故事。

从学生时代起,他就对自己的财富漫不经心。后来有钱了,也依然如此。

他从不记录自己的开销,也懒得听取理财建议。别人寻求帮助时,他经常当场开出支票。

与乔布斯严格保管自己的苹果股票不同,他送给了父母、姐姐和弟弟400万美元股票,送给了朋友200万美元股票。父亲在他车里捡到过25万美元的未兑现支票,感叹说:"像他这样的人不应该有那么多钱。"

有一次,他来到苹果公司大声宣布:"我的律师建议多元化投资,所以我刚刚买下了一家电影院。"但这件事后来引起了一些麻烦。这家电影院位于圣何塞东区贫民窟,放映了一部黑帮电影,引发了社区的抗议。他参加了几次社区会议,听取了当地居民的意见,承诺他的剧院不会放映暴力或色情电影,然后他在空荡荡的、黑暗的剧院里度过了几个下午,坐着不停看电影,扮演审查员的角色。

言论

1、

我计划写一本 Gleam 编程语言的书。但是,AI 已经能非常清晰地解释 Gleam 了,而且还能回应读者的任何要求。

虽然我自信,自己目前写得要比 AI 好,但是实在没有理由,说服自己去这样做。你花数百小时写书,赚到的钱根本不值得这样付出。

有了 AI,我不知道,人们以后写书的动力是什么,大概只会为了乐趣而写作。

-- 《AI 引发的身份危机》

2、

让我难以抗拒的是,与中国打交道比与世界其他任何地方打交道都容易得多。我给中国某人发邮件,对方肯定会在24小时内回复,更有可能在4小时内。

给一家欧盟或美国公司发邮件,通常要等上好几天才能收到回复。在与中国公司打交道时,我从未见过这种情况,一次也没有。而且,他们的 B2B 大型电商平台几乎总是提供全天候在线客服和采购支持。

-- Hacker News 读者

3、

AI 不会减少你掌握新技能所需要付出的努力,只会让你产生不必学习就已经学会的错觉。

-- 《AI 让人产生虚假的掌控感》

4、

可靠、透明的程序通常不符合程序设计者的利益。

-- 尼克劳斯·维尔特(Niklaus Wirth),计算机科学家,图灵奖得主

往年回顾

一份谷歌离职报告(#315)

WiFi 的后面是 LiFi(#265)

互联网最喜欢的行为模式(#215)

全端 App 的时代(#165)

(完)

文档信息

  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证
  • 发表日期: 2025年8月22日

科技爱好者周刊(第 361 期):暗网 Tor 安全吗?

作者 阮一峰
2025年8月15日 08:04

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

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

封面图

去年建成开放的烟台时光塔,是一个海边的文化建筑,下层是露天剧场,中间是望海平台,上层是图书馆、展览厅、咖啡馆。(via

暗网 Tor 安全吗?

1、

大家知道 Tor 浏览器吧?

它是访问暗网(dark web)的主要工具。

所谓暗网,就是普通浏览器打不开、必须用专门工具访问的互联网。

之所以暗网要用专门工具访问,是因为它采用了特殊的设计,保证让访问者高度匿名,难以追踪

如果你希望执行秘密的互联网操作,就可以使用暗网。同样的,地下网站希望保密,不愿意暴露自己,那就可以做一个暗网版本,正常互联网无法访问。

暗网有专门域名 .onion,这种域名的网站都是要用 Tor 打开的。

2、

我一直以为 Tor/暗网很安全,可以保证访问者的匿名,无法找到真人。

因为它的设计是防追踪的。它不是直接访问目标网址,而是寻找一个随机的中继节点

它规定,必须通过3个中继节点,才能连接目标网站。每个中继节点,只知道上一个节点和下一个节点,因此该节点即使被黑,黑客也看不到完整的通信线路

理论上,只有三个中继节点都被破解,才能追踪用户。但是,这些节点是在全世界随机选择的,全被破解的概率实在很低。

这种设计叫做"洋葱路由",就像剥洋葱一样,必须一层层解开所有的中继节点,才能了解完整的访问链路。事实上,Tor 这个词就是洋葱路由(The Onion Router)的首字母缩写。

3、

上周,我读到一篇文章,彻底动摇了对 Tor 的信心。

我震惊地发现,Tor 是美国政府开发的

1997年,美国海军研究实验室(NRL)发明了 Tor。最初的动机是,防止外国政府追踪美国的机密通信

美国的情报人员在国外,要向中情局的服务器发送机密消息,不希望被外国政府察觉和追踪,但又必须使用外国的民用线路,怎么办?

答案就是 Tor。通过洋葱路由,Tor 可以在民用通信线路上,让外国的互联网提供商无法找到人员位置和目标网址。

2004年,美国政府公开了这个项目的源码。电子前沿基金会 (EFF) 接手继续开发,逐渐演变成今天的 Tor,但是底层设计并没有大的改动。

开源之后,美国政府并没有放手这个项目,多年来一直大力资助。2012年,Tor 项目的年度预算200万美元,80%来自美国政府

我查了最新的2023~2024年度财务报表,790多万的总收入中,依然有200多万来自政府。

美国政府大力资助 Tor,是因为这个项目对他们有利用价值。

我相信,Tor 源码应该是可靠的,没有植入后门,毕竟它是开源的,要经受全世界程序员的审查。但是,美国政府肯定了解源码的所有细节,很可能会部署他们自己修改过的版本,添加一些不为人知的改动。

根据以前透露的消息,很多的 Tor 中继节点是美国政府架设的(具体比例无法查实)。所以我认为,不能假设 Tor 是安全的,美国政府很可能监视 Tor 的通信

曾经非常著名的暗网黑市网站"丝绸之路"(上图),就是完全依托于 Tor 来访问。但是,2013年被美国政府查封,创始人也被抓了。这也从一个侧面说明,Tor 并不安全。

科技动态

1、上周,中国的载人月球登陆器"揽月",在河北省怀来县进行了着陆起飞测试。

它挂在一个钢盘下面,钢盘使用钢索牵引,可以上下运动,用来模拟月球引力。

2、美国宾州大学发布了一个演示,监视手机通话时的微小震动,可以还原出通话内容。

手机通话时,扬声器会震动,通过激光雷达,在3米外监视手机,可以感受到这种震动,从而还原出语音。

再通过 Whisper 模型,将语音转成文字,就能得到通话内容,准确率为60%。

3、一位美国程序员,制作了一个木质的像素显示器

这个显示器的每个像素点,都是一个小木块,有一面涂黑。

显示器的控制器是一个树莓派,收到显示图案后,计算出哪些木块需要转动,然后驱动一个机械臂转动这些木块。

最后的显示效果如下。

4、谷歌披露,安卓系统内置了一个全球地震预警系统,可以向用户发出地震警报。

安卓手机都有加速度计,就是手机横置时让屏幕翻转的那种传感器,它可以侦测到手机的移动。

如果系统发现,同一个地理区域的手机突然同时震动,就说明地震了。谷歌就会向该区域的用户推送地震警报。

该系统于2021年4月,首先在新西兰和希腊上线,已覆盖98个国家/地区。2023年11月的菲律宾6.7级地震,2023年11月的尼泊尔5.7级地震,它都发送了警报。

5、人类为什么需要睡眠?最近一篇论文指出,睡眠与细胞线粒体有关。

在有氧状态下,线粒体的不间断活动会导致自身裂变,所以需要一个静止期(睡眠)来修复,并补充能量。

结论就是,只要生物需要氧气,就需要睡眠,因为有氧活动会消耗线粒体。

文章

1、锚点定位简介(英文)

CSS 的新语法"锚点定位"(anchor position),可以不使用 JavaScript,只用 CSS 就完成弹出菜单对某个锚点元素<a>的定位。

2、使用 Rclone 挂载网盘到本地(英文)

本文介绍使用 Rclone 这个工具,将网盘(比如微软的 OneDrive),挂载成一个本地目录。

3、如何选择英文字体(英文)

本文介绍选择合适的英文字体的一些注意点。

4、我的 NotebookLM 使用方法(英文)

NotebookLM 是现在公认的最佳 AI 笔记工具,作者写了他的使用方法,用它来"看"没看过的电视剧,我觉得有参考价值。

5、Docker 运行图形界面软件的一种方法(英文)

本文介绍使用 Wayland 协议,把图形界面软件放在 Docker 容器运行。

6、为什么 π² ≈ g?(英文)

π² 等于9.86,很接近重力加速度 g 的9.8。本文告诉你,这不是巧合,跟米的定义(北极到赤道的距离的百万分之一)有关。

工具

1、Battery

一个 Macbook 笔记本的小工具,使得充电只能充到80%。

2、Readeck

一个自托管的 Web 应用,用来收藏书签,自动保存网页内容。

3、missing.css

一个 CSS 库,提供一套精简、可扩展的样式方案。

4、My idlers

一个自托管的 Web 应用,用来统一管理你的虚拟主机、共享主机和域名,参见介绍文章

5、Kimu

基于 Web 的视频编辑器,支持接入 AI,代码开源

6、vYinn(殷人)

古籍印章图案的制作工具。(@shanleiguang 投稿)

7、Call-Me

一个开源网站,在浏览器中实现一对一视频通话,有 Demo。(@miroslavpejic85 投稿)

8、Modern MD Editor

一个基于 Web 的 Markdown 编辑器,生成适配微信公众号/社交平台的可视化 HTML 代码。(@xiaobox 投稿)

另有一个使用 AI 生成的微信 Markdown 编辑器。(@geekjourneyx 投稿)

9、流畅阅读(FluentRead)

浏览器开源插件,"沉浸式翻译"的开源替代品,支持多种翻译引擎和 AI 大模型,提供双语翻译、划词翻译等特性。(@Bistutu 投稿)

10、Diff Excel

一个开源的桌面应用,用来比较两个 Excel 表格的差异,使用 Go 语言编写。(@zbuzhi 投稿)

AI 相关

1、LLM from URL

将提问直接附在 URL 后面,对大模型提问,比如 818233.xyz/你是什么模型 。(@yvonuk 投稿)

2、AI Short Video Factory(短视频工厂)

一个开源的 Web 应用,上传视频素材,给出提示词,AI 自动生成短视频和文案。(@YILS-LIN 投稿)

3、Mapedia.cc

AI 地图,用户搜索一个主题,它会显示相关地图和解释文章,比如苏东坡的地图。(@klemperer 投稿)

资源

1、One Million Screenshots

这个网页号称由100万张网页截图组成,可以放大缩小查看。

2、Engineering.fyi

这个网站将各大互联网公司的技术文章(英文)收集在一起。

3、Touch Mapper

这个网站的创意很棒,你输入一个街道地址,它输出该地址的 3D 地图文件,可以 3D 打印出来,供视障人士触摸使用。

4、Pricing Pages Design

这个网站收集各种定价页的设计。

图片

1、古典雕像 + 当代时装

一位法国摄影师为古典雕塑,穿上流行的当代服饰。

这样的组合不仅有趣,还给人一种耳目一新的感觉。

这说明,一个人给别人的感觉和自身的气质,很大程度上与服装打扮有关。

文摘

1、我的技术退步了

五年前,我大学毕业时,很热衷于软件开发,参与了一大堆开源项目。

我全身心投入,为这些项目投入了数千小时。虽然没有回报,但我非常享受这些时间,项目用户也对我的工作评价很高。

毕业后,我开始找工作。我认为,公司会看重我的开源经历。我想错了。

我申请了600多个职位,告诉公司我为开源项目做了许多贡献,但结果只收到了3个 offer。最终,我接受了一家创业公司的 offer。

白天,我为这家创业公司工作八九个小时。回到家后,我继续投入自己的开源项目,直到深夜。

我的薪水少得可怜,但是我乐在其中。我的技能快速提高,社区影响力也显著提升。

终于有一天,我认清了现实。公司的项目根本不能体现我的价值,知道我价值的人,又不是能付钱给我的人。我退缩了,开始苦练 Leetcode。

我不再在开源项目投入很多时间,项目社区也渐渐失去了活力。放弃开源项目让我很难过,但我因此进入了一家大公司,我的薪水增加了5倍。

我把所有时间投入了公司的项目,得到了领导的好评。我的邮箱开始塞满了各种挖我跳槽的邮件。

但是,我知道,自己的技术退步了。公司的项目很枯燥,没有挑战性,使用的是内部技术栈。

此外,我也远不如以前快乐。

我想我会攒点钱,过几年就退休,希望那时开源世界还像以前一样。

言论

1、

AI 公司的融资有多么疯狂,前 OpenAI 公司首席科学家伊尔亚·苏茨克维在2024年筹集了10亿美元,几个月前又筹集了20亿美元,他的公司估值320亿美元。

据我所知,它唯一的产出就是网站上仅有的370个词,每个词价值8000多万美元,其中148个词还是关于合伙人离开公司的事情。不过,至少他还有个网站,有些创始人拿到钱以后简直销声匿迹了。

-- Substack 周刊

2、

保险公司十分担心,随着全球变暖、极端天气越来越多,资产的损失风险快速上升,世界正变得无法保险了。

-- 《世界很快将无法投保》

3、

Windows 11 的更新包,原本叫做春季包和秋季包。后来,有人反映,这不适用于南半球,就改名为 H1 更新包 和 H2 更新包。

-- 《为什么 Windows 更新包叫做 H1 和 H2》

4、

十多年来,编程训练营一直是硅谷的支柱产业。如今,AI 使得公司减少入门级职位的招聘,并且学生可以跟随 AI 自学,编程训练营正在逐渐消失。

-- 路透社

5、

人们以为自己在思考,其实是在重新编排自己的偏见。

-- 威廉·詹姆斯(William James),美国哲学家

往年回顾

《黑神话:悟空》可以产业化吗?(#314)

Elasticsearch 的启示(#264)

你的地图是错的(#214)

培训班 vs 大学,求职成功率比较(#164)

(完)

文档信息

  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证
  • 发表日期: 2025年8月15日
❌
❌