文章 · 2025
「文章」栏目 2025 年汇总,共 48 期
第 379 期:《硅谷钢铁侠》摘录
1、分布式架构的演化(英文)

本文将分布式架构分成三种:P2P、联邦式(比如 Mastodon)、中继式(比如 Nostr)。作者认为,对于大型分布式应用,中继式架构才是未来方向。
2、什么是 GitHub 自托管 Runner?(中文)

GitHub Actions 有一个 self-hosted runner 功能,让 action 运行在你自己的服务器。本文详细介绍它的概念、原理,并结合案例进行实践。(@luhuadong 投稿)
3、CSS Grid Lanes 布局(英文)

浏览器开始支持 CSS 的 Grid Lanes 布局了,大大方便了瀑布流的实现。
4、6502 指令集适用汇编语言初学者(英文)

6502 是一块诞生于1975年的 CPU,很多早期电脑(比如 Apple II)都使用它。作者解释,为什么你应该用它,作为学习汇编语言的第一个指令集。
5、你应该多用/tmp目录(英文)

作者提出,Linux 系统的/tmp目录用起来很方便,完全可以把它当作自己的临时性目录。
6、中国的清洁能源战略(英文)

《纽约时报》驻华记者的长文,体验当代中国的生活,比如无人驾驶、无人机送餐,他说“感觉像生活在未来”。
第 378 期:预测是新的互联网热点
1、程序员为自己的工具命名时的彻底迷失(英文)

本文批评很多程序员为软件起名时,尽起一些烂七八糟的名字,根本看不出软件的用途,建议软件名称应该跟用途有相关性。
2、解读斯诺登文件(英文)

这篇文章详细分析了2013年斯诺登泄漏的文件,文章第一部分就是分析对北方工业公司的情报收集,美国的监控令人叹为观止。
3、从文本到词元(英文)

一篇科普文章,通俗地介绍搜索引擎如何将查询的文本转换成标准化的词元(token)。
4、大模型构建 HTML 工具的实用方法(英文)

著名程序员 Simon Willison 的长文,总结他使用大模型生成网页应用的经验。
5、GraphQL 蜜月期已结束(英文)

作者认为,GraphQL 解决的问题远比人们想象的小众,而且可以通过其他方式解决,这项技术最终往往弊大于利。
6、git add -p 的解释(英文)
本文介绍 git add -p 命令。它会显示一个互动界面,让用户逐个确认每个文件的变动,是否要加入暂存区。
第 377 期:14万美元的贫困线
1、内存价格为何暴涨?(英文)

现在的内存价格是上半年的三倍,原因是今年10月1日,OpenAI 公司同时与三星和 SK 海力士签署了协议,买断了全球40%的内存供应,引起了其他厂商的恐慌。
2、AV1 赢得艾美奖(英文)

美国电视最高奖艾美奖,将今年的技术与工程奖授予视频编码格式 AV1,本文是对 AV1 历史的简单介绍。
3、GitHub 不再使用 Toast(英文)

Toast 是一种 UI 组件,通过矩形弹框显示消息。GitHub 表示,这种组件的可访问性不佳,不建议使用。
4、2025岁末 AI 模型选型指南(中文)

现在的大模型如此之多,即使同一个模型还分成多个型号,应该如何选择?
作者从性价比的角度,谈了他的选型方法:大杯、中杯、小杯怎么选?Thinking 要不要关掉?缓存命中率值不值得做?(@thuwyh 投稿)
5、Linus 访谈(英文)

Linux 内核创始人 Linus Torvalds,上周上了一个视频节目,与主持人进行了深入对谈。本文是节目的内容总结。
6、Conventional Branch(英文)

这是 Git 分支命名规范,建议命名为feature/、bugfix/、hotfix/、release/、chore/等几类。(@shenxianpeng 投稿)
第 376 期:太空数据中心的争议
1、关于近期安全报告的情况说明(中文)

一个国外安全团队近日报告,某些浏览器插件(如 Clean Master、WeTab)是恶意软件。本文是这些插件的中国开发团队的回应。
他们表示,Clean Master 去年已经卖掉了,现在跟他们无关,至于其他插件属于误报。建议先读安全报告,再读这篇回应。(@yiGmMk 投稿)
2、Electron vs Tauri(英文)

Electron 和 Tauri 是目前跨平台桌面应用的两种主流开发方案。本文是它们的详细对比,各自的优缺点。
3、我为什么要从 GitHub 迁移(英文)

作者感到 GitHub 不符合需要,太重了,就做了一个自己的代码仓库托管方案。如果你也想自己架设代码服务器,可以参考。
4、Protobuf 好于 JSON(英文)

本文呼吁使用 Protobuf 格式代替 JSON。作者认为,JSON 唯一的优点就是人类可以识读。
5、如何写一份好的 CLAUDE.md 文件(英文)

很多 AI 编程工具,使用一份文本文件,作为每次查询的上下文。本文以 CLAUDE.md 为例,介绍怎么用好这个文件。
6、ZFS 文件系统好于 Btrfs(英文)

ZFS 和 Btrfs 是两种流行的现代文件系统,本文介绍它们的特点,提出前者更可靠。
第 375 期:一扇门的 Bug
1、为什么每个数据库都使用 B 树(英文)

一篇科普文章,介绍为什么 B 树比二叉树更适合数据库。
2、为什么评估新模型越来越难(英文)

著名程序员西蒙·威利森感叹,他已经评估不了最新的大模型了。因为各种模型的能力越来越强,简单的题目都会解,必须用很高深的题目去测。
3、固态硬盘不能长时间断电(英文)

本文指出,消费级的固态硬盘(SSD)在断电状态下,超过一年就会丢失数据。
目前,最好的固态硬盘也不能断电超过十年。所以,如果长时间不用,数据不要保存在固态硬盘。
4、中国龙芯的基准测试(英文)

一个老外程序员测试龙芯 3A6000 处理器,跟2021年发布的英特尔 Xeon Gold 6338 对比。
5、C 代码里面的 URL(英文)

上面这段 C 语言代码里面有一个 URL,居然是可以编译的,这是为什么?
6、如何做一个简单的搜索引擎(英文)

本文介绍搜索引擎的原理,如何自己动手写一个简单的搜索引擎。
7、DIY NAS:2026 年版(英文)

作者详细介绍自己组装 NAS 的配置,可以参考。
第 374 期:6GHz 的问题
1、中国 AI 模型是纸老虎(英文)

一个美国人的文章,批评中国 AI 模型不如看上去那样好。
我认为,他的观点太偏颇,很多论据站不住脚,读上去酸溜溜,但是可以作为参考。
2、WhatsApp 现在使用 WebView(英文)

通信软件 WhatsApp 的 Windows 版,原先是一个原生桌面应用。
作者震惊地发现,它的新版本居然退回了 WebView,成为网页版的包装器,性能急剧下降,内存占用 1GB。原因可能是 Meta 公司裁掉了 Windows 版的开发团队。
3、Vibe Coding 面试感受(中文)

作者团队的面试,开始改为让应聘者用 AI 实现一个功能,作者谈了实施的感受。(@thuwyh 投稿)
4、本地运行 AI 模型的方法(英文)

本文介绍在本地计算机运行 AI 模型的几种方法:LM Studio、Ollama、LMStudio。
5、我们在 Zed 里面办公(英文)

Zed 是一个全新的代码编辑器,正在密集开发。除了文档编辑以外,Zed 团队也用它来开会和讨论,它内置了讨论区和实时协作。
6、中级程序员的标志(英文)

今年是作者从事专业编程的第十年,他认为自己属于中级程序员,总结了自己的工作内容。
他说,做到了这些事,你就达到了中级程序员的标准。
第 373 期:数据模型是新产品的核心
1、一个伊朗程序员的求助(英文)
一个伊朗程序员开发了一个 AI 虚拟头像生成器,但是发现由于美国制裁,根本不可能向国外出售,于是在 GitHub 求助。
我没有客户,没有收入,积蓄已经用光,而且已经积极找了九个月的工作,却一无所获。我的妻子是一名护士,每天从早上五点工作到晚上七点,而我却坐在电脑前,开发一些连房租都付不起的东西。
我在伊朗无法使用 Stripe、PayPal 等西方支付处理商,也无法使用 AWS、GCP、Azure 等云服务商,我不能用西方银行账户接受付款,也不能接受顾客使用信用卡付款。
2、我讨厌代码截图(英文)

一个老外程序员呼吁,客户遇到问题时,不要再向他发送代码截图了,因为无法拷贝代码,而要发送代码链接。
3、图片是否比文字节省 token?(英文)

本文验证如果把提示词从文字转成图片,是否更节省 token?
答案是提示词本身确实节省了 token,但是模型会用更多的 token 来补全上下文,所以总体上并没有节省。
4、Dijkstra 算法详细图解(中文)

Dijkstra 算法是寻找两点间最短路径的经典算法,本文用一步步的详细图解,解释这个算法。
5、Web Monetization API 试用体会(英文)

浏览器有一个实验 API,用来让访问者向站长捐款,本文是这个 API 的试用报告。
6、AI 插件的模型成本比较(英文)

本文使用实际的编程任务,对 VS Code 的两个 AI 编程插件进行成本比较:Augment Code 和 Kilo Code。
前者不能更换模型,必须使用内置的 Claude Sonnet 4.5;后者可以配置自己的模型,到底谁更省钱。
第 372 期:软件界面如何设计
1、如何架设一个暗网网站(英文)

暗网网站(网址后缀 .onion)是只能用 Tor 浏览器访问的网站,作者记录自己架设的过程,看上去不难。
2、如何简单地过滤爬虫(英文)

作者提出一种简单的方法,可以让网站过滤掉爬虫的请求,不需要防火墙,只需设置一下 Web 服务器即可(作者用的是 Caddy)。
3、你知道 HTML 表格 API 吗?(英文)

有一个古老的网页 API,允许用 JS 操作表格,虽然这些年很少人用,但是浏览器一直是支持的。
4、编译器发展状况(英文)

本文是一篇综述,介绍目前编译器工具的总体发展状况。
5、树莓派的最佳方式是网络启动(英文)

树莓派一般都是 SD 卡启动,作者建议改用网络启动。对于经常切换操作系统,或者你需要管理多台树莓派,非常方便。
6、《小小作品》系列(英文)

1999年至2006年,动画师朱志强创作的 Flash 动画系列《小小作品》(又称“火柴人”系列),风靡了国内互联网。本文回顾了他的故事,如今已经很少人记得了。
第 371 期:一个乐观主义者的专访
1、苹果公司不再关注细节了(英文)

苹果的软件以精美著称,但是现在好像不是这样了。这篇长文罗列了苹果系统的各种疏漏,都是细节没有处理好,尤其是最新的液态玻璃效果,简直就是匆忙上架。
2、Chrome 默认启用 HTTPS 协议(英文)

Chrome 浏览器公告,从明年(2026)10月起,将始终使用 HTTPS 协议。如果访问 HTTP 协议的网站,会跳出一个弹框(上图),用户确认后才可以访问。
这意味着,以后除了内网,HTTP 协议实际上被淘汰了。
3、Linux 启动过程(英文)

本文简单清晰地介绍,按下电源开关后,电脑的启动过程,主板如何找到操作系统。
4、查看带宽占用的5种方法(英文)

什么程序在占用家庭网络的带宽?本文介绍5种查看方法。
5、表单的 dialog 提交方法(英文)

网页表单的提交方法,除了常见的 GET 和 POST,还有一个鲜为人知的 dialog(即<form method="dialog">),本文介绍它的用法。
6、CSS 相对颜色(英文)

本文介绍一个新的 CSS 语法,从基础颜色生成相对颜色。
7、行走郑州(英文)

作者是一个美国人来到郑州,发现这里跟中国其他大城市不太一样,充满了一种粗旷的年轻人的活力,让他觉得这里很像没有衰退之前的“汽车城”底特律。
第 370 期:正确的代码高亮
1、TypeScript 类似于 C#(英文)

这篇文章提出 TypeScript 的语法很像 C#,因为它们的设计者就是同一个人。
所以,当 TypeScript 需要提高性能时,可以考虑将代码转为 C#,现在 C# 也是跨平台的。
2、如何将网页动画压缩到每帧16.67毫秒(英文)

显示器的刷新率一般是每秒60帧,为了让动画流畅,每帧的渲染时间最好不超过16.67毫秒。本文介绍一个 CSS 知识点,可以提高网页动画性能。
3、从 HTTP 轮询到 MQTT:我们在 AWS IoT Core 的架构演进(中文)

作者公司的物联网项目,最早采用 HTTP 轮询,后来改成了 MQTT 协议,采用 AWS IoT Core 云服务。(@Konata9 投稿)
4、为什么 NetNewsWire 不是一个 Web 应用(英文)

NetNewsWire 是一个桌面的 RSS 阅读器,总是有人要求作者,将其改成 Web 应用。本文是作者解释为什么不开发 Web 版,理由很充分。
5、Burrows-Wheeler 变换(英文)

本文介绍一种奇妙的算法 Burrows-Wheeler Transform(简称 BWT),它会把字符串打乱,使得相同的字符倾向于组合在一起。
它的奇妙之处是,打乱后还可以用逆运算,将字符串还原,从而使得这种算法很适合用来压缩文本。

越来越多的公司推出了自己的 AI 浏览器,它通过截图阅读屏幕。现在已经出现在屏幕嵌入人眼不可见、但机器可见的文本,进行模型注入,让模型执行恶意操作(上图)。
7、Unicode 隐形字符的病毒(英文)

本文介绍一个令人叹为观止的 JS 病毒,它的恶意代码是用 Unicode 隐形字符写的,人眼看不见(上图的空白处),但是引擎会执行这些代码。

第 369 期:Tim 与罗永浩的对谈
1、破解加拿大航空的飞机上网(中文)

作者连接飞机 Wifi 后,出现一个登录页。作者发现,网关这时不限制 DNS 请求,可以发出到外网,通过这一点进行破解。(@ramsayleung 投稿)
2、面试官引诱我安装恶意软件(英文)

一个非常恶劣的案例,大家引以为戒。作者面试一家区块链公司,面试官给他一个代码库,让他运行后找出问题,结果里面藏着恶意代码,会窃取运行者的数字钱包。
3、Bun 1.3 新功能介绍(英文)

Bun 号称是最好用的 JavaScript 运行时,本周发了1.3版,本文介绍新功能,确实比 node.js 好用。
4、NGINX ACME 模块申请 HTTPS 证书(中文)

一篇操作教程,写得比较清楚,怎么让 nginx 服务器自己去申请 HTTPS 证书。(@hzbd 投稿)
5、如何根据 HTTP 标头防止 CSRF 攻击(英文)

最新版本的 Go 标准库,内置了防止 CSRF 攻击的功能。它完全根据 HTTP 请求的 Sec-Fetch-Site 标头来判断,本文解释原理。
6、我在一台10年前的笔记本安装 Proxmox(英文)

本文推荐过时的老电脑安装 Proxmox 系统。它是流行的虚拟化平台,可以方便地运行各种各样的虚拟机和容器。
第 368 期:不要这样管理软件团队
1、Cloudflare 推出电子邮件发送服务(英文)

Cloudflare 宣布,支持使用 worker 功能发送电子邮件了,以前只支持接收。这意味着,可以自己编程实现个人邮箱了。
2、为什么 Python 开发者喜欢类型系统(英文)

Meta 公司有一个 Python 类型检查器 Pyrefly。本文是开发团队介绍为 Python 加上类型有何好处。
3、为什么 TypeScript 代码库充斥 var 语句(英文)

一般来说,JavaScript 代码不应使用 var 语句,而要用 let 和 const。但是,TypeScript 官方编译器大量使用 var 语句,这是为什么?
4、浏览器遇到撤销的 HTTPS 证书会怎样?(英文)

本文介绍浏览器怎么检查 HTTPS 证书是否被撤销。
5、当你有 1M 上下文窗口时,谁还需要 git?(英文)

作者意外发现,大模型会记忆代码,从而相当于有了代码备份。
6、我用 Raspberry Pi Zero 搭建了一个 VPN 网关(英文)

本文是一篇教程,作者用 Raspberry Pi Zero 架设了一个内网的 VPN 网关,让外网可以访问内网服务。
7、URL 设计(英文)

一篇很多年前的文章,介绍怎么设计 URL。作者的理念是,URL 不是写给机器的,而是写给人看的。
第 367 期:Nano Banana 的几个妙用
1、超越沙盒(英文)

如何在网页上安全地运行第三方代码?谷歌提出一个全新的解决方案 SafeContentFrame。
它是一个 JS 库,会将第三方代码加载到一个单独域名 googleusercontent.com 上面,再用 iframe 将其插入当前网页,这样就提供了最大限度的隔离。
2、离线应用为什么尚未流行?(英文)

离线使用功能一直没有流行起来,作者认为,离线使用就相当于建立一个分布式系统,面临着复杂的同步问题,很难做对。
3、Elasticsearch 不适合用作数据库(英文)

Elasticsearch 是目前主流的搜索服务,能否把它用作主要数据库?本文告诉你不可以,它不是为数据库而设计的。
4、如何使用 Python 生成音频的文字稿(英文)

一篇简单的入门教程,一步步教你自己写 Python 脚本,通过 Whisper 模型提取音频的文字稿。
5、避免使用 @ts-ignore(英文)

TypeScript 的 @ts-ignore 标注,用来关闭下一行的所有报错。作者认为不应该使用它,宁愿改用 @ts-expect-error 标注或者 any 类型。
6、Apple 的私有 CSS 属性,为网页添加“液态玻璃“效果(英文)

作者发现,苹果为 Safari 浏览器添加了一个没有公开的 CSS 属性,让网页元素呈现“液态玻璃”效果。
7、如何调整 systemd 加快启动(英文)

一篇初学者教程,教你5个技巧,通过调整 systemd 设置,缩短启动时间。
第 366 期:旧金山疯狂的 AI 广告
1、你可能不需要高端 CPU(英文)

本文提出几个理由,普通用户购买8核以上的高端 CPU,可能是浪费。
2、如何用 make 命令编译 C 程序(英文)

一篇 C 语言初级教程,介绍 make 命令怎么编译一个程序。
3、去除多余的真值判断(英文)

ESlint 有一条规则,如果某条判断语句始终是true或者false,那么就报错,因为这个判断是多余的。
现在,TypeScript 5.6 也引入了这个规则,默认报错。
4、CSS 的 cos() 和 sin()(英文)

本文讲解使用 CSS 的三角函数,做出圆形布局。
5、HTTP 的 Options 方法(英文)

HTTP 方法,除了常用的 GET 和 POST 等,还有一个不常用的 OPTIONS,本文介绍它的用法。
6、你应该采用虚拟机,而不是双重启动(英文)

本文认为,不再有必要安装两个系统,做双重启动了,完全可以改用虚拟机。
7、神奇的苏联地图(英文)

苏联地图的细节程度令人难以置信。他们出版的外国地图会标注桥梁在水面上的高度、承载能力以及主要建筑材料,河流的宽度、流向、深度,森林的树木种类等等。
至今也不清楚,他们怎么得到这些信息,又为什么画在公开出版的地图上。
第 365 期:流量变现正在崩塌
1、数据库表名使用单数名词(英文)

本文解释为什么数据库的表名,user 好于 users。
2、一次 NPM 供应链攻击剖析(英文)

本周,几个流行的 npm 软件包(包括 Chalk 和 strip-ansi)被植入恶意代码,它们的周下载量达到10亿次。本文介绍这次攻击的详细情况。
3、Markdown 文件如何转成精美文档(英文)

本文介绍通过 Pandoc 模版功能,使用一行命令将 Markdown 文件转成精美文档。
4、CSS 和 SVG 模拟液态玻璃(英文)

本文介绍只使用 CSS 和 SVG 文件来模拟苹果的液态玻璃效果。大家可以先看结尾的效果展示,非常惊艳(只限于 Chrome 浏览器)。
5、成为一名独立数字音乐作者(中文)

作者没有任何乐理基础,使用 AI 做出了完全属于自己的第一首纯音乐,并且发布到 QQ 音乐。(@theodoruszq 投稿)
6、如何解决队列的吵闹邻居问题(英文)

如果有一个用户向队列提交了大量任务,会影响其他所有用户,这叫做“吵闹邻居问题”。本文介绍了一种解决方法。
7、美国的地理位置(英文)

本文详细解释美国的地理位置是多么优越,自然条件适合经济发展,外敌又很难入侵。
第 364 期:最难还原的魔方
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,虽然是同质产品,本文介绍它们的架构差异。
第 363 期:最好懂的神经网络解释
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 怎么利用?本文将它改造成墨水屏的个人仪表盘。
第 362 期:GitHub 工程师谈系统设计
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 协议有一个“拥塞窗口”的设计,会根据网络状况,自动调整发送数据包的数量。本文通俗地解释这个概念,并提出改进的方案。
第 361 期:暗网 Tor 安全吗?
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。本文告诉你,这不是巧合,跟米的定义(北极到赤道的距离的百万分之一)有关。
第 360 期:Dan Wang 的新书
1、达里奥·阿莫迪的故事(英文)

达里奥·阿莫迪(Dario Amodei,1983年出生)是 Anthropic 公司的创立者和首席执行官。本文是他的故事,一个生物学博士如何做出了 Claude AI。
2、硅谷的军事化(英文)
《纽约时报》的报道,硅谷科技公司正在不断加强与美军的合作。

它披露了一张令人震惊的照片。今年6月,美军特别为硅谷科技人员成立了一支技术创新部队,给予他们正式的军衔。上图为 Meta、OpenAI、Palantir 等四家公司的高管身穿军服,宣誓保卫美国。
3、Node.js 2025年的现代模式(英文)

Node.js 已经发生了巨大的变化,本文介绍现在应该采用的新写法。
4、.gitignore 如何变成白名单(英文)

.gitignore 默认是黑名单,会把指定文件排除出 Git 提交。本文教你把它改成白名单,只有提到的文件才能提交。
5、5个 Linux 基本命令的替代品(英文)

Linux 的很多基本命令(cd、cat、ls、du、df 等)现在都有更好的替代品。
6、一道谷歌编程竞赛题(中文)

题目是“(3 + 根号5) 的 n 次方“最后三位整数是多少,我觉得非常难。(@longluo 投稿)
第 359 期:Palantir 值得关注
1、浏览器用户指纹测试(英文)

我们知道,JS 脚本可以生成用户指纹,用来追踪用户。作者测试了 Chrome/Firefox/Tor,看看它们能否阻断用户指纹。默认情况下,只有 Tor 通过了测试。
2、为什么2025年仍然值得学习 Java(英文)

作者是一个资深 Java 程序员,向新人解释 Java 的优点。这门语言一直在进化,已经今非昔比。文章还给出了学习资源。
3、Python 脚本运行器 uv 教程(英文)

uv 可以用来运行 Python 脚本,本文是一篇初学者教程。
4、邮件附件 PDF 文件的处理方案(英文)

很多邮件带有 PDF 附件(比如发票、合同),很难管理。
作者想出了一个解决方案,使用文档管理系统 Paperless-ngx 自动下载邮件,实现附件的分类、排序、搜索。
5、如何定制 Bash 环境(英文)

作者以自己为例,讲述怎么改造 Bash 环境,每次打开都会自动输出一个提醒(上图)。
6、CSS 的 font-size-adjust 属性(英文)

如果网页使用了多种字体,font-size-adjust 属性可以让它们看上去一样大小。
第 358 期:如何拯救一家濒临倒闭的创业公司
1、绕过 Chrome 证书报错的口令(英文)

Chrome 浏览器遇到网站证书错误,会显示一个报错页面(上图)。
谁能想到,它居然有后门,只要输入口令thisisunsafe,就能跳过这个页面。
2、离职后,我的第一个出海产品上线了(中文)

作者一个人全职开发出海产品的故事。(@tahitimoon 投稿)
3、GPU 组网基础知识(英文)

AI 大模型需要成千上万的 GPU 连在一起,本文告诉你,这在技术上多么不容易。
4、CSS border-image 详解(英文)

本文详细介绍 CSS 的 border-image 属性,如何为边框设置背景图案。
5、Windows 任务管理器的四种替代品(英文)

Windows 进程如何管理?系统内置的任务管理器并不好用,本文介绍四种替代工具。
6、Tailwind CSS 的优缺点(英文)

本文详细分析了目前最流行的 CSS 框架 Tailwind CSS,它的长处并非没有代价。
7、粒子只有两类(英文)

物理学的科普文章,万物由已知的17种基本粒子组成。这些基本粒子可以分成两大类:玻色子(boson)和费米子(fermion)。
第 357 期:稳定币的博弈
1、Django 框架的起源(英文)

本周是 Django 框架的20周年纪念日,创始人 Simon Willison 回忆发明过程,很多有趣的细节,比如他最早只是想用 Python 替换掉 PHP 4。
2、树莓派安装 PiKVM 教程(英文)

登录一台远程计算机,控制它的桌面,一个简单的方法就是使用 KVM 设备。本文演示如何在树莓派上安装 PiKVM。
3、Elm 语言的现状(英文)

Elm 是一种 Web 开发语言,非常有特色,但是从2019年至今没有新版本。本文指出 Elm 没有死亡,而是一直在发展,社区非常活跃。
4、CSS 的 if() 函数(英文)

Chrome 浏览器的137版本,开始支持 CSS 的条件语句—— if() 函数。CSS 越来越像编程语言了。
5、如何添加 Git 子命令(中文)
本文教你怎么手动增加一个git branch.note命令。(@shangwenhe 投稿)
6、避免 continue 语句(英文)

本文提出循环结构的 continue 语句根本不必要,让阅读代码变得不流畅,你不应该使用这条语句。
第 356 期:公司强推 AI 编程,我该怎么办
1、Bloom Filters 示例讲解(中文)

本文通过例子,介绍 Bloom Filters 入门知识,可以用来判断元素是否在集合内。
2、阶乘的斯特林公式推导(中文)

一篇数学科普文章。斯特林公式一般用来快速计算阶乘 n!,本文尝试用通俗语言推导这个公式。(@longluo 投稿)
3、Git 用户应该尝试 Jujutsu (英文)

Jujutsu 是 Git 的一个前端,底层兼容 Git 代码库,但是大大简化了前端操作。本文比较了三种操作,都是 Jujutsu 简单得多。
4、在 Mac 电脑使用 Apple Container 的感受(英文)

在 Mac 电脑使用 Docker 容器,性能开销很大,好在苹果推出了自家的原生工具 Apple Container 取代 Docker。
本文是作者的使用感受,发现它目前只适合简单场景。
5、如何判断是否在线?(英文)

通过向某些特定网址发送 HTTP 请求(比如google.com/generate_204),根据它们的回复,判断当前是否在线。
6、点赞泄漏的个人信息(英文)

作者将过去7年中、自己点赞保存的近900篇文章,输入 o3 模型,让模型分析自己是怎样一个人。
结果令他大吃一惊,模型给出了2000多字的分析,准确说出了他的个人情况。
7、从 DNS 查询国际空间站的位置(英文)

本文介绍 DNS 的一个妙用,它可以提供 LOC 记录,表示服务器的经纬度。作者就用这个记录,来提供国际空间站的当前位置。
第 355 期:两本《芯片战争》
1、Meta 的 AI 人才名单(英文)

《华尔街日报》的报道,Meta 公司搞了一个50人的名单,包括了世界最顶尖的 AI 人才,准备把他们都挖过来,甚至传言开出了1亿美元的天价薪水。
我们可以从中了解,AI 人才的身价有多高,争夺有多么激烈。
2、ECMAScript 2025 的新增语法(英文)

JS 语法标准发布了2025版,本文罗列了今年的8个新增语法。
3、2010年江西高考理科数学压轴题(中文)

知乎上有个问题是高考数学最后一题可以有多难?公认史上最难高考数学题就是2008年江西高考理科数学压轴题,2010年的题目也很难。(@longluo 投稿)
4、通过超声波发送数据(英文)

本文介绍如何让手机浏览器发送超声波,并把数据编码在里面,从而就可以在用户毫无察觉的情况下,跟其他设备通信。
5、我的程序员人生(英文)

作者的一篇回忆文章,总结了自己的人生,写得很鼓舞人。
他在高中想学舞蹈,但是被 3D 动画片吸引,去读了计算机本科,毕业后成了 Python 程序员,后来靠着自学和努力,现在是分布式系统研究员。
6、如何用 JS 写一个浏览器的语音朗读器(英文)

本文是一篇 JS 教程,教你用浏览器的 API,通过内置的 TTS 语音引擎,写一个句子朗读器。
7、Cloudflare 和 Vercel 的沙盒功能(英文)

最近,Cloudflare 和 Vercel 这两家公司,不约而同推出了沙盒功能,运行不受信任的 JS 代码,主要用例是执行大模型生成的代码。
第 354 期:8000mAh 手机电池,说明了什么?
1、智能插头当作网站开关(英文)
作者想了一个很聪明的方法,将智能插头当作网站的浏览开关。

如果本机通过 Wifi 检测到插头,就立刻修改/etc/hosts文件,使得某些社交网站无法访问。反之,拔出插头,则计算机将该文件再改回原样。
2、网页压缩算法比较(英文)
服务器发送给浏览器的网页,一般都是压缩的,主要有四种算法:gzip、deflate、brotli、zstd。

作者用 Go 语言测试,哪种压缩算法对服务器开销比较小。
3、巧解 Docker 镜像拉取失败(中文)

本文介绍一种拉取 Docker 镜像的变通方法:通过 GitHub workflow 拉取,然后存储到阿里云个人镜像站,并给出脚本。(@you8023 投稿)
4、CSS 的部分关键帧(英文)

本文是 CSS 中级教程,介绍 CSS 动画如果只写一个关键帧(起始/结束),也有很多应用场景。
5、让 Claude Code 使用其他模型(中文)

Claude Code 只能使用自家模型,本文介绍使用 Claude Bridge,让它可以使用任意第三方模型,从而极大降低使用成本。(@jerrylususu 投稿)
6、git notes 命令(英文)

git 有一个鲜为人知的 notes 命令,可以往日志添加自定义数据,很适合为每次提交加入元数据。
7、如何减少 OpenAI 的音频/视频费用(英文)

作者让 OpenAI 概括一个视频的内容,意外发现,如果让文件的播放速度加快到2倍或3倍,OpenAI 的处理费用可以减少30%以上。
原因可能是,加速会让一些短音节变得不明显,从而减少输入 token 的数量。
第 353 期:苹果的“液态玻璃”是为了 AR
1、CSS class 的替代方法(英文)

作者认为,网页元素的 class 属性有很多弊端,可以不用,改用替代写法,很有启发性。
2、短信发送天气预报教程(英文)

本文介绍怎么使用短信,给自己发送天气预报。
3、更好的 Shell 历史搜索(英文)

本文教你怎么打造更好用的 Shell 历史搜索。
4、让 NotebookLM 更好用的3个浏览器插件(英文)

谷歌的 AI 笔记应用 NotebookLM 非常有用,本文介绍三个 Chrome 插件,让它更易于使用。
5、SSL 为何改名为 TLS(英文)

HTTP 的加密协议 SSL,后来改名为 TLS,本文解释原因,完全是大公司斗争的产物。
6、自适应网页的正确写法(英文)

为了适应手机浏览器,网页的 HTML 头部一般会加上缩放命令,比如width=device-width。本文介绍这个命令的正确写法。
第 352 期:Bug 追踪系统的正确样子
1、过去半年的大模型回顾(英文)

Simon Willison 点评过去半年的大模型,可以当成大事记来读。
AI 的进展实在太快,去年底的模型已经是上一代了。
2、我使用 Claude Code Max 的感受(英文)

作者购买了 Claude Code 的 Max 会员,一个月要200美元,使用后认为完全物有所值。
3、速率限制交互式指南(英文)

如何限制访问速率?本文介绍了四种常用算法:令牌桶、漏水桶、固定窗口、滑动窗口。
4、Amazon VPC 图解(英文)

本文用插图解释,云服务器的虚拟私有网络(VPC,Virtual Private Cloud 的缩写)是什么。
5、五个自搭建的书签服务(英文)

本文介绍五个开源软件,可以自己架设网址书签的收藏服务。
6、我的香港露营实验(英文)

2016年,一个老外在香港留学,他的奖学金很少,就想在海边搭帐篷居住,省下房租。本文是他对这段生活的总结,挺有意思的。
第 351 期:GitHub Issues(几乎)是最好的笔记应用
1、我的 Canonical 面试经历(英文)

Canonical 是 Ubuntu 背后的公司,作者记录了他的面试经历,从初试一直到老板的终面。
整个过程令人瞠目结舌,最重要的问题居然是高中成绩好不好。就凭这种面试,Ubuntu 就不值得看好。
2、microSD 卡可靠吗?(英文)

作者测试了200多张卡,发现 microSD 保存数据的可靠性很差。数据读写循环3000次后,大部分卡都会遇到故障或读写错误。
作者评价了10多个常见品牌,可以作为购买参考。
3、Go 不再修改错误处理的语法(英文)

Go 语言的错误处理,与众不同,报错会单独返回一个值,这导致代码冗余。
多年来,使用者一直要求有更好的写法,Go 团队想了很多办法,效果都不好。现在,官方终于宣布,不再寻求更好的写法,保持现状。
4、NLWeb 协议简介(英文)

NLWeb 是微软新提出的一个接口协议,类似于 MCP 协议,是网站跟 AI 大模型的对话协议,方便大模型从网站获取数据。本文是这个协议的简介。
5、运行本地 AI 的教程(英文)

这篇短文介绍,如何使用 Python 工具 llm,快速在本地计算机上运行 AI 模型。
第 350 期:Java 三十周年
1、CAPTCHA 没用了(英文)

作者在一家票务网站工作。他提出,各种识别机器人的验证机制,要么可以被 AI 绕过,要么不适用于出票,难以找到有效的解决方案。
2、我的同步备份方案(英文)

作者的备份方案分成两部分。(1)使用开源软件 Syncthing 在多台电脑之间同步目录,(2)使用 TrueNAS 将本地内容同步到云存储。
3、Bash 脚本执行心跳测试的写法(英文)

本文教你一种简单的写法,使用 Bash 脚本执行心跳测试(验证服务器是否正常在线)。
4、虚拟主机加固指南(英文)

开通虚拟主机(VPS)后,应该如何设置,提高安全性,本文给出基本步骤。
5、自解释的代码(英文)

本文通过一个例子,演示应该怎么写,才能让代码清晰易懂,自己解释自己。
第 349 期:神经网络算法的发明者
1、手机的 Linux 桌面环境(英文)
作者出门不带笔记本,只带手机,再配上蓝牙键盘和 AR 眼镜。

他的安卓手机在获取 root 权限后,通过 chroot 安装了 Linux 发行版,从而可以运行桌面环境。

2、AI 应用的核心逻辑(英文)

作者提出,AI 应用(AI agent)的核心逻辑只需要9行代码。
3、浏览器默认屏蔽的端口(英文)

你可能不知道,浏览器无法打开下面的网址localhost:6000,原因是6000是浏览器默认屏蔽的端口。
4、推荐 RustDesk 远程桌面(英文)

Mac 电脑访问 Windows 电脑,一种方法就是使用远程桌面,作者推荐远程桌面工具 RustDesk。
5、HTML <dialog> 的 CSS 技巧(英文)

HTML 有一个原生的弹窗元素<dialog>,本文介绍两个配套使用的 CSS 技巧。
6、Git 配置详解(英文)

本文详细解释 Git 配置命令 git config 的几个最常见的设置。
第 348 期:李飞飞,从移民到 AI 明星
1、一段让 Chromium 机器人崩溃的代码(英文)

作者介绍了一段 JS 代码,让Chromium 无头浏览器(Puppeteer 和 Playwright)崩溃。它可以用来识别,访问者是不是机器人。
2、Git worktree 简介(英文)

Git 仓库同时只能有一个工作区,如果想同时建立多个工作区,可以使用 git worktree 命令。
3、用 Go 移植 TypeScript 的重要影响(中文)

微软官方要用 Go 语言重写 TypeScript 项目,本文分析这样做的目的和影响。(@imbant 投稿)
4、为什么大模型可以控制手机(中文)

开源项目 droidrun 可以通过大模型,以自然语言操作安卓手机的 APP。本文分析它是如何做到的。(@lezhi12 投稿)
5、创业公司可能无法承受微服务(英文)

本文提出,微服务需要很强的运维能力,并会增加代码复杂性,创业公司不要盲目采用,单体应用更简单。
6、从 Prettier 和 ESLint 迁移到 BiomeJS(英文)

BiomeJS 是用 Rust 语言写的工具,对 JS 代码进行格式化和语法检查,速度极快,可以取代 Prettier 和 ESLint。
7、如何自己托管 Obsidian(英文)

Obsidian 是一个优秀的笔记软件,作者给出详细步骤,自己托管 Obsidian 服务器,从而在任何地方都可以通过浏览器使用。
第 347 期:冷启动的破解之道
1、ChatGPT o3 可以识别照片拍摄地(英文)

如果你给 o3 模型一张照片,问它这是哪里拍的,它会猜得相当准确。

举例来说,上图是加州海边的某个村庄。因为 o3 用街景地图训练过,如果碰巧你也在这个位置拍摄,它会给出极准确的位置(这是坐在xx咖啡馆,对着窗外拍摄的)。
还有一篇相关文章,人类的专业级选手(下图)与 o3 比赛,谁猜地点更准,里面有各种实例。

这件事告诉我们,AI 时代上传照片必须非常小心,你会透露自己的位置。
2、Deno 的衰落(英文)

作者认为,Deno 作为一种 JavaScript 的运行环境,最近出现了很多问题,业务在收缩,前景不乐观。
3、如何命令行设置新 MacBook(英文)

macOS 内置了一些命令行工具,可以快速设置系统,非常适合用来配置新电脑。
4、使用 Zip 炸弹保护服务器(英文)

作者痛恨网络爬虫,决定使用 Zip 炸弹对付它们。
zip 炸弹就是一个体积很小的压缩文件,但是解压后却极其巨大(比如 10GB)。
5、Astro 框架的架构(英文)

著名程序员 Dan Abramov 解释 Astro 框架的设计思想,以及它与 React 的服务器组件的差异。
第 346 期:未来就是永恒感的丧失
1、昊龙:中国首个货运航天飞机(中文)
天宫空间站的补给,目前由天舟飞船完成。但是,天舟每次返回大气层,都会烧毁。
国内正在研究可以重复使用的“昊龙”货运飞船,以降低货运成本。

昊龙已经完成了设计,正在工程测试阶段。

2、如何使用 UTM 在 Mac 电脑架设虚拟机(英文)

一篇教程,教你如何在 MacBook 安装 utm 虚拟机,从而方便地使用 Linux 系统。
3、清理<head>(英文)

网页的<head>部分里面,很多标签是不必要的,这个网站介绍可以删除的标签,比如 favicon、Apple touch icons。
4、线上故障应急处理:4 年多 on call 经验总结(中文)

我的第一份工作是 CDN 基础设施研发,考虑到公司体量,那些年其实故障蛮多的。在故障处理中,积累了一些经验教训,总结回顾一下。(@swananan 投稿)
5、在 Docker 沙箱中运行 MCP Server(中文)

本地运行他人的 MCP 服务器有极大的风险,本文介绍怎么在 Docker 沙箱里面运行。(@ccbikai 投稿)
6、如何用 Whisper 生成字幕(英文)

本文是作者的操作记录,演示如何用 OpenAI 公司的 Whisper 模型为视频文件生成字幕。
第 345 期:HDMI 2.2 影音可能到头了
1、我们正在进入大芯片时代(英文)

大芯片指的是 CPU、GPU、内存封装在一块芯片里面,典型代表是苹果的 M 系列芯片。
这种设计使得 CPU 和 GPU 共享内存,并且有极大的内存带宽,这就是为什么苹果电脑不需要 Nvidia 显卡,也能运行 AI 模型。
2、我放弃了笔记本,只用袖珍电脑 + AR眼镜(英文)

作者介绍他现在外出所携带的电脑设备:一个袖珍电脑,一个移动电源,一副 AR 眼镜和移动键鼠。

3、为什么大写字母的二维码小于小写字母(英文)

作者指出一个有趣的现象,如果把网址全部转成大写字母,再生成二维码,会小于小写网址的二维码(更稀疏)。
4、JS 性能测试的一个技巧(英文)

通常测试 JS 代码的性能时,会使用循环,但是循环本身有开销。作者介绍消除循环开销的一个技巧,就是分成两个循环,前一次循环执行一次代码,后一个循环执行两次代码,后者再减去前者。
5、让你的 RSS/Atom feed 更好看(中文)

一篇简单教程,介绍如何为 XML 格式的 RSS 文件加入样式。(@Spike-Leung 投稿)
6、text-wrap 的新设置(英文)

text-wrap 在 CSS 里面用来控制文本换行。它有两个新设置 text-wrap: pretty 和 text-wrap: balance。
第 344 期:制造业正在“零工化”
1、微软50周年的回忆(英文)

今年是微软诞生50周年,比尔盖茨写了这篇回忆文章,介绍了他怎么会创立这家公司,文末给出了微软第一个产品 Altair BASIC 的源码下载。
微软官方也提供了8款五十周年纪念壁纸。

2、NotebookLM 是你的最佳笔记本(英文)

作者提出,谷歌的 AI 笔记本 NotebookLM,从根本上改变了管理知识、提取信息的方式,是最佳笔记工具。只要把原始材料扔进去,它自己会生成整理好的笔记。
3、Gemini 2.5 Pro 与 Claude 3.7 Sonnet:编码比较(英文)
这是目前生成代码最强的两个 AI 模型,作者对它们进行比较,看看谁更强。

结论是总体相差不大,但是 Gemini 2.5 Pro 的上下文窗口更大,而且免费。
4、代码混淆101(英文)

本文介绍几种最常见的代码混淆的做法。
5、安卓不再是 iPhone 的竞争者(英文)

作者认为,安卓变得越来越封闭,不再能 Root 和改装,完全依附于谷歌生态,那为什么不去用协同性更好的 iPhone 呢?
6、NVIDIA 为 CUDA 添加原生 Python 支持(英文)

CUDA 框架是 AI 模型的计算工具,它的官方编程语言主要是 C/C++,现在终于添加原生 Python 支持,不用通过第三方库了。
第 343 期:如何阻止 AI 爬虫
1、Gemini 2.5 Pro 模型
本周,谷歌发布它的最强模型 Gemini 2.5 Pro,迅速登顶。

著名程序员 Simon Willison 对其进行测评,评价很高。

另有一个程序员让其执行一个非常复杂的任务,它想了半天后说,这个任务太复杂,不可能在一个步骤中完成,只能做出一个简化版。

这让人非常震惊,因为以前的 AI 遇到做不了的事情,只会给出错误的答案,而现在竟然会在分析后,承认超出了自己能力。
2、谷歌将不开放安卓的开发(英文)

这篇报道称,谷歌将完全私有化安卓的开发,不再接受外部的代码提交,以避免安卓开源版 AOSP 与内部版本之间合并分支的麻烦。
以后,谷歌会把安卓新版本先提供给 OEM 厂商,然后再发一个不接受外部提交的开源 AOSP 版。
3、Next.js 的中间件漏洞(英文)
本周,Next.js 爆出一个高危漏洞。如果登录步骤是在中间件里面完成,那么可以绕过这个步骤,直接进入登录状态。本文简要介绍什么代码导致了这个漏洞。
4、TypeScript 如何写函数类型(英文)

本文是一篇初级教程,介绍函数的类型在 TypeScript 的三种写法。
5、我对 MCP 的批评(英文)

MCP 是 Anthropic 公司提出的一个 AI 应用的接口协议,作者认为它并不好用,给出了自己的理由。
6、只使用 ESM 模块(英文)

本文提出,现在可以放弃 JS 语言的 CommonJS 模块了,只使用 ESM 模块,一个原因是require命令已经支持加载 ESM 模块了。
第 342 期:面试的 AI 作弊——用数字人去面试
1、服务器发送事件(SSE)被低估了(英文)

本文详细介绍“服务器发送事件”是什么,以及目前的 AI 服务如何使用它。
2、关于继承和子类型(英文)

Java、Go、Python 这三种语言,有不一样的继承设计,本文比较了它们各自如何实现一个子类型。
3、CSS 属性的 unset 值(英文)

CSS 属性几乎都可以设成三个值 initial(不继承)/inherit(继承)/unset(取消默认值),本文用例子解释它们的含义。
4、布尔属性的陷阱(英文)

本文提出一个编程技巧:尽量少在类(class)里面设置布尔属性,而要改用枚举(enum)。
5、我从零制作了一个智能手表(英文)

作者介绍怎么制作一款智能手表,可以用来了解硬件工程师的工作。
6、:user-valid 伪类(英文)

一篇 CSS 教程,介绍 :user-valid 伪类(表示用户的输入通过了 input 输入框的校验)。
7、使用 GitHub Actions 和 GitHub Pages 构建和部署网站(英文)

本文是一篇教程,介绍如何使用 GitHub Actions 构建网站,然后部署到 GitHub Pages。
第 341 期:低代码编程,恐怕不会成功
1、AI 大模型2024年的进展(英文)

著名程序员 Simon Willison 3月7日的演讲稿,通俗地介绍了 AI 在过去一年的巨大飞跃,很好的综述。
2、如何用 Claude Code 反编译代码(英文)

作者演示了一个惊人的例子,使用 Anthropic 发布的 Claude Code,将 Webpack 编译出来的文件反编译,还原成源代码。
3、CSS 跨文档视图转换(英文)
本文介绍一个示例,通过 CSS 新的跨文档视图转换功能,使得多页面应用的跳转,也像单页面应用(SPA)一样流畅顺滑。
4、Cursor 上传 .env 文件(英文)

Cursor 是现在非常流行的一个 AI 代码编辑器,它的用户论坛爆出一个帖子,有人发现它会上传用户的 .env 文件,由于里面都是环境参数,会带来安全隐患。
5、JSON 与 JavaScript 的对象成员顺序(中文)

JSON 与 JavaScript 的对象,里面的成员顺序有没有规定?本文探讨这个问题。
6、Go 语言错误处理机制的优点(英文)

Go 语言的错误处理很特别,没有 try…catch 机制,错误是一个值,作者解释这样设计的好处。
第 340 期:技术炒作三十年
1、流式 HTML(英文)

AI 的聊天对话都是流式加载的,本文介绍一个技巧,不使用 JS 也能加载流式内容。
2、不要用 TypeScript 枚举(英文)

TypeScript 官方已经不建议使用 enum(枚举)语法,作者建议改用字符串的联合类型代替。
3、我如何使用 roboscribe 音频转文本(英文)

一篇教程,作者使用软件 roboscribe 将播客转成可用的文本,这事要比听上去麻烦。
4、如何测试电梯(中文)

本文将电梯抽象成一个“有限状态机”,设计测试用例。(@lezhi12 投稿)
5、我为什么选择 Firefox(英文)

作者介绍 Firefox 浏览器胜过 Chrome 的几个地方,有些功能大家可能未必知道。
6、脚本代替别名(英文)

常用的终端命令,往往可以设置别名(alias)作为快捷方式,作者提出一种新的方式,用脚本代替别名,更容易维护。
7、Tailscale 对我很有用(英文)

作者介绍自己的 Tailscale 用法,将不同的设备组成一个虚拟局域网。
第 339 期:代币是什么
1、本地部署 DeepSeek 模型保姆级教程(中文)

网友的教程,家用 PC 怎么跑 DeepSeek,当然跑不了满血版,只能跑小参数的版本。(@lovefc 投稿)
2、从头构建大模型(英文)

作者按照教材(上图),从零开始做一个大模型,本文简要解释了大模型原理。
3、Svelte 5 不是 JavaScript(英文)

Svelte 是一个流行的前端框架,去年发了5.0版。作者使用后感觉,它的抽象层次太高,已经不像 JavaScript 语言,而像一种新的语言。
4、面试伦敦谷歌(中文)
作者面试伦敦谷歌,最后被拒,全程的记录。(@DoctorLai 投稿)
5、Proxmox 虚拟机的10个项目(英文)

Proxmox 是现在很流行的虚拟机软件,本文介绍它在家庭实验室的10种用途。
6、我如何用手势模拟鼠标(英文)

一篇教程,作者用谷歌的 MediaPipe 和 OpenCV,将摄像头捕获的手势动作,转化为鼠标操作,也就是不需要鼠标了。
7、如何制作网页的毛玻璃效果(英文)

本文介绍如何制作一个网页的毛玻璃透明区块。
8、CSS 局部作用域 @scope(英文)

本文介绍 CSS 局部作用域语法 @scope,它定义的规则只对当前区域生效,Chrome 浏览器已经支持。
第 338 期:重新思考 6G
1、废弃 Create React App(英文)

React 官方宣布,正式废弃 Create React App,建议通过框架来使用,也就是不建议直接用 React。
2、Unicode 字符的迷你柱状图(英文)

本文介绍怎么使用 Unicode 字符,来生成迷你的柱状图(上图)。
3、多页应用不输给单页应用(英文)

单页应用(SPA)是网页应用的主流,本文提出多页应用也可以做到 SPA 的各种优点。
4、详解 Linux 硬链接和软链接(英文)

Linux 有两种特殊文件:硬链接和软链接,本文详细解释它们的区别。
5、了解 CSS 的 overflow: clip(英文)

CSS 的 overflow 属性,有一个 clip 值,可以截去溢出部分。通过它,可以做出很多页面效果。
6、什么是网页的元信息?(英文)

本文介绍如何在网页中插入元信息(比如作者、关键词、内容描述等等),便于计算机检索。
7、如何安装 ADB(英文)

ADB 是电脑连接安卓手机必需的,本文分别介绍 Windows/macOS/Linux 如何安装 ADB。
第 337 期:互联网创业几乎没了
1、如何用 OPNsense 搭建家庭防火墙(英文)

OPNsense 是一个开源的防火墙和路由软件,本文介绍自己安装的详细步骤。
2、《软件设计哲学》笔记(英文)

作者阅读了《软件设计哲学》这本书,对怎样减少软件的复杂性,做了详细的笔记,给出了代码示例。
3、CSS 的 backdrop-filter 属性(英文)

本文介绍 backdrop-filter 属性,可以产生毛玻璃的效果。
4、为什么你应该用 Canva 制作幻灯片(英文)

本文提出 Canva 是比 PowerPoint 更好的幻灯片制作工具。
5、在虚拟机中开发(英文)

作者介绍在 MacBook Pro 安装 Ubuntu 虚拟机,所有开发都在虚拟机里面完成,保证本机系统始终是干净的。
6、基于 signal 的 Web 组件(英文)

作者介绍自己写的一个 Web 组件,可以在不加其他 JS 库的情况下,实现 signal 功能。
第 336 期:面对 AI,互联网正在衰落
1、DeepSeek R1 的推理实例(英文)

DeepSeek R1 会显示推理过程。作者问它,美国对加拿大征收25%的关税,对加拿大 GDP 有何影响。
DeepSeek R1 的回答过程,简直就是一篇经济学论文,而且只“思考”了12秒。
2、Canva 如何建立图像搜索(英文)

本文介绍 Canva 公司如何使用向量嵌入,建立相似图片搜索。
下面是另外一篇类似的文章《基于 pgvector 和 Next.js 构建语义电影搜索》,也是使用向量嵌入。

3、OpenMediaVault 与 TrueNAS Scale 的比较(英文)

OpenMediaVault 与 TrueNAS Scale 是两个开源的 NAS(网络文件系统),需要自己搭建,本文对它们进行比较。
4、同一个 GitHub 用户如何用不同身份 SSH 登录(英文)

有时,同一个 GitHub 用户使用不同的 SSH 密钥,去登录不同的仓库。本文教你这时怎么写 SSH 配置文件。
5、浏览器内置书签是最好的书签系统(英文)

作者认为,浏览器内置的书签系统,是最好用的保存网址的方法。
6、为什么 TCP 需要三次握手(英文)

建立 TCP 连接需要双方的三次通信,本文详细解释这个连接过程。
7、我从中国进口迷你电动挖掘机(英文)

作者是美国人,介绍他新近的一门生意,将中国的迷你电动挖掘机进口到美国来卖。这种挖掘机真的很像大玩具。
第 335 期:年底的未来已来
1、如何减少 Docker 的日志体积(英文)

Docker 容器会产生日志,长年累月变得越来越大,本文教你怎么减少日志文件的大小。
2、如何包装 try…catch(英文)

JavaScript 语言的 try…catch 用起来非常不直观,作者提供了一种方法,将其包装成函数用法。
3、iTerm2 的一些鲜为人知的功能(英文)

iTerm2 是 Mac 平台的终端模拟器,有许多内置的功能,但是很多人都不知道这些功能。
4、架设家庭 DNS 服务器的6个原因(英文)

本文介绍为什么你应该在家里架设自己的 DNS 服务器。
5、寻找易记忆的质数(英文)

本文介绍数学家如何寻找容易记忆的质数,其中提到两个大质数:1234567891 和1、2、3、4、5、6、7、8、9、10、9、8、7、6、5、4、3、2、1(把顿号去掉)。
6、Python 的链式表达式(英文)

作者作为面试官,发现面试者用了上图的奇怪语法。他认为这是错的,但实际却是 Python 的合法语法。
7、推特的纯 CSS 点赞效果(英文)

推特的点赞按钮是一颗心(上图),点击后出现一段动画效果。它是用 CSS Sprite 实现的,本文介绍如何做这个效果。
第 334 期:年终笔记四则
1、一个副业应用的开发心得(中文)

本文总结2018年作者为自己的安卓应用,加了一个收费功能的开发心得。(@javayhu 投稿)
2、俄罗斯和乌克兰各自有哪些知名软件?(中文)
本文介绍了两国的知名软件,都有不少很厉害的项目。(@mzhren 投稿)
3、为什么要学习写编译器(英文)

作者谈为什么你应该试试自己写一个编译器,并且提供了三个入门的学习资源。
4、国际数学奥林匹克金牌得主的去向(英文)

国际数学奥林匹克是高中生的数学比赛,作者做了一个调查,历届金牌得主后来怎么样?
5、AWS S3 与 Cloudflare R2 比较(英文)

AWS S3 是一个老牌的存储服务,Cloudflare R2 是它的新兴对手。本文比较这两种服务。
6、无限滚动轮播的 CSS 实现(英文)

本文教你只用 CSS 实现类似弹幕的无限滚动轮播效果,还能用鼠标悬停。
7、如何将笔记本用作第二个显示器(英文)

一篇电脑使用的教程,如何将笔记本当作显示器使用。
第 333 期:一切都要支付两次
1、段永平浙大师生见面会问答实录(中文)

段永平1月5日重返母校浙江大学,与现场观众进行交流,这是2万字的现场实录。“我没有鼓励过(别人创业)。我觉得该创业的人根本就不需要你鼓励,你有个很强烈的想法,你就会去做。”(@851235550 投稿)
2、如果 GPU 那么好,为什么我们还用 CPU(英文)

本文通俗地介绍 GPU 和 CPU 的差异,解释为什么它们彼此不能替代,写得很好。
3、如果不断要求 AI 改进代码会怎样?(英文)

作者做了一个有趣的实验,他让 AI 生成一段代码,然后要求 AI 改进这段代码,这样连续做四次,看看会发生什么。
4、关于 SQLite 的各种趣事(英文)

SQLite 是世界使用最广泛的数据库,本文收集关于它的各种趣事。
5、搭建免费的企业邮箱(中文)

本文使用 Gmail + Resend + Cloudflare 搭建免费的企业邮箱,可以接收/发送企业域名邮件。(@javayhu 投稿)
6、旧台式电脑的10个用途(英文)

本文介绍怎么利用旧电脑,提供了一些有用的思路。
第 332 期:西蒙·威利森的年终总结,梁文锋的访谈
1、2024年 Linux 发行版推荐(英文)

作者介绍他心目中,各种用途最佳的 Linux 发行版。
2、中美工作感想(中文)

“过去四年五个月,我随着工作从 SF 搬到北京,再搬到上海,后来搬回美国在洛杉矶住了一年半。”本文是国内做工程师和美国做工程师的对比。(@wukan 投稿)
3、开发者应该知道的10个终端命令(英文)

本文简单介绍10个终端命令,比如 grep、awk、sed、find 等。
4、Meta 四次面试经历(中文)
“这些年,我一共面试了四次 Facebook/Meta。虽然都未成功,但收获颇多。”(@DoctorLai 投稿)
5、算法面试心得(中文)

本文是作者对如何应付一般的算法面试的知识总结和心得。(@javayhu 投稿)
6、我们用 React 取代了 Next.js(英文)

作者难以忍受 Next.js 的庞杂和性能,改为直接使用 React,不再用基于它的框架了。
7、Windows 的增强剪贴板(英文)

我很少用 Windows,现在才知道它的剪贴板有同步功能,还能永久保存。