2025-12-31 08:00:00
在升级到 React 19 + Ant Design v6 之后,我明显感觉到页面的 CLS(Cumulative Layout Shift)性能变差。
最直观的表现是:
这在静态站点(如 Docusaurus)中尤为明显。
一开始我采用的是最“原始”的缓解方案:
通过 CSS 给部分组件写死 min-width / min-height,虽然能减少 CLS,但显然不是一个优雅或可维护的解决方案。
因此,我开始尝试 Ant Design 官方提供的 zeroRuntime 方案。
本文主要记录我在使用 Ant Design zeroRuntime 过程中遇到的核心问题、踩过的坑,以及最终为什么选择了 「只使用 CSS + 单一主题」 这一方案。
在排查过程中,我发现了一个关键事实:
antd/dist/antd.css 中大量使用 var(--ant-*)
但这些 CSS 变量并不存在于任何静态 CSS 文件中
原因在于 Ant Design v6 的样式机制:
--ant-* 这类 CSS 变量是:
对于 Docusaurus 这类预渲染的静态 HTML 来说:
即使已经引入了 antd/dist/antd.css,
只要 CSS 变量依赖运行时注入,首屏 HTML 本身仍然“感知不到完整样式”。
zeroRuntime 的核心目标非常明确:
在构建阶段生成完整样式,而不是依赖运行时 CSS-in-JS 注入
官方文档对此的描述是: zeroRuntime 会在构建时,根据配置生成一份完整、可直接使用的 CSS 文件。
具体表现为:
genAntdCss.mjs(或类似脚本)theme、token 配置不再生成或注入样式
组件默认假设:
所有样式已经存在于页面中
这直接带来一个非常重要的结论:
使用 zeroRuntime 后,所有样式相关配置必须在构建期确定
这是使用 zeroRuntime 必须接受的现实边界。
theme
ConfigProvider 设置 locale(不影响样式)ConfigProvider 动态设置 theme
theme.useToken()
componentSize 等样式相关 token一句话总结:
zeroRuntime = 样式在构建期“完全写死”,JS 不再参与样式生成
这并不是限制,而是 zeroRuntime 的设计前提。
在启用 zeroRuntime 时,有一个非常容易忽略、但影响极大的配置点:
cssVar: {
key: "aishort";
}
这个 key 的作用是:
作为 Ant Design CSS 变量的命名空间标识。
⚠️ 必须保证以下两处完全一致:
如果不一致:
一个非常简单的判断方法:
刷新页面是否出现样式闪动?
我曾尝试过生成 浅色 + 深色两套 CSS,并在运行时进行切换。
结论非常明确:
复杂度极高,不值得投入。
主要问题包括:
多套 CSS 同时存在时:
即使切换主题:
为了解决变量覆盖问题:
可维护性和可预测性急剧下降
最终结论是:
zeroRuntime 并不适合运行时多主题切换
因此目前站点仅保留 单一深色主题,不再提供主题切换能力。
Ant Design v6 提供了大量基于 ConfigProvider 和 theme.useToken 的定制能力。
但在 zeroRuntime 模式下:
这意味着:
本质上,这是一次明确的取舍:
用灵活性,换取首屏性能和样式稳定性
zeroRuntime 并不是一个“无脑开启就能提升体验”的方案,它更像是一个 为静态站点和性能极致优化而设计的工程取舍。
它确实解决了:
但代价同样明确:
如果你的项目:
那么 zeroRuntime 是值得使用的方案。
但如果你需要:
那么就必须接受 CSS-in-JS 带来的运行时成本, 或者等待 Ant Design 在未来提供更成熟的解决路径。
2025-11-16 08:00:00
5月底的赛里木湖,稍微下了点雨,上山后什么都看不见
人工智能的快速发展导致了数据中心的建设急剧增加,远远超出了制造商的生产能力。这种情况不仅导致了内存条的价格飙升,还引发了硬盘供应短缺,特别是企业级硬盘的交货时间已经延长到了两年。为了避免这种延迟,许多超大规模计算服务提供商(hyperscalers)开始转向使用 QLC NAND-based SSDs,以保持成本并实现足够的耐用性。然而,QLC NAND 的需求激增导致了全球 SSD 价格上涨的趋势,预计 QLC NAND 将在 2027 年初超过 TLC 成为主流存储技术。
AI 需求上涨不仅仅是内存受影响,也先导致机械硬盘短缺,然后转向 QLC 固态硬盘。
https://x.com/omar_quraishi/status/1988518627859951986
If you want, I can also create an even snappier “front-page style” version with punchy one-line stats and a bold, info-graphic-ready layout
2025-11-07 08:00:00
拍摄于11月的绍兴东湖。说是湖,但面积其实很小,1个小时就逛完了
https://timharford.com/2025/05/the-value-of-institutional-memory/
组织可能会忘记过去的经验教训,导致类似的错误重新发生,如大众汽车的排放测试欺骗事件和航天飞机爆炸事件。
AI 会把我们的知识不断压缩,让我们直接问它就可以了。但从机构记忆的价值可知。除非AI给出的已经是最终方案,我们依然不断记录自己的笔记和解决方案。
研究人员强调,当前的大型语言模型在生成 “流畅的无意义”(fluent nonsense)内容时,可能会创造出一种误导性的可靠感,这并不代表真正的推理能力。
目前的 AI 是随机生成,它只能对结果靠训练资料作出筛选。
为旧电脑清灰时发现一块 浦科特 M6S 128GB, 借助 2.5 寸转 3.5 寸硬盘盒,插入 NAS 做缓存盘了,提高了 Docker 容器的随机读写速度。
最初我用的是桌面电容麦克风(心形指向),收音音质很好,但必须离嘴巴非常近(约5~30厘米)才能听清楚,而且放在桌面上也很占位置。我大部分时间只是用它进行语音输入,这种“录音棚级”的音质其实完全没有必要。
因此,我开始考虑使用收音距离更远的麦克风,比如会议用的全向麦克风(音质会比较嘈杂)。
在这个过程中,我突然想到自己有一个很便宜的摄像头,它自带麦克风。于是我试着用它进行语音输入。结果发现,它虽然录音音质很差,但在语音输入时识别准确、能清楚听懂我的话,对我来说已经足够了。
周刊已经更新了一段时间,因为我总想着写一篇“大文章”或长文,结果反而导致输出变少了。
所以接下来一周,我打算把之前的一些文章——无论是半成品还是尚未完善的——尽量整理并发布出来,用这一周的时间来解决这个问题。
之后,周刊也会全面恢复正常更新。有时可能只会分享一些小内容,但重要的是不能中断更新。
2025-09-29 08:00:00
电脑变“卡”,很多时候并不是性能不够,而是散热与维护问题。本文记录了我对一台用了三年半的新机进行的排查:从软件优化、清灰、更换硅脂,到水冷报废、改用风冷,再到风扇调节与硬件升级。最后整理出一份维护计划和配置建议,供大家参考。
当电脑开始出现:开机变慢、应用响应迟缓、风扇噪音增大,甚至系统不稳定,原因通常有两个:
我家里有两台台式机:
没想到,用了三年半后,新机竟然开始“卡顿”。于是我开始了一次彻底的散热与维护排查,以下是全过程记录。
动手之前,先用工具排查:
👉 建议的排查顺序:
例如,我曾因开启 ManicTime 的屏幕截图功能,导致切换应用时出现短暂卡顿,关闭后问题立刻消失。此外,另一个可能原因是电源。我也是在一次突然断电黑屏后才察觉到这一点,而这通常难以及时判断。
散热问题往往来自灰尘。它会堵塞进气口、覆盖鳍片,导致温度升高、风扇狂转、最终触发降频。

我的 SSD 待机温度常年 60℃+。加装被动散热片后,降至 40–50℃,卡顿现象有所缓解。安装时注意:SSD 上的原厂贴纸可能是保修凭证,可自行选择是否移除。
👉 建议:SSD 长期高温会影响寿命,几十元的散热片立竿见影。
导热硅脂填充在 CPU 顶盖与散热器底座之间,保证热量高效传导。几年后会逐渐干涸、硬化,导致 CPU 温度升高。
更换步骤:
⚠️ 不要用消毒湿巾或低浓度酒精,避免水分残留损伤硬件。
我更换硅脂后,开机温度直飙到 100℃。排查发现,并不是涂抹问题,而是水冷散热器老化。
一体式水冷散热器寿命通常只有 3–5 年。随着时间推移,可能会出现以下问题:

我这套水冷用了三年半,性能已明显衰退,更换硅脂时甚至彻底坏掉。于是换上 200 元的双塔风冷,CPU 温度降至 30–50℃,比之前低了 20℃。
对比来看:
👉 建议:能用风冷就别折腾水冷。
更换风冷后,我在机箱顶部加装了两个 140mm 风扇。用 AIDA64 监控后发现:新风道是“负压”(出风大于进风)。虽然排热效率可能稍高,但容易从各处缝隙吸入灰尘。理想状态是略微正压,以兼顾散热与防尘。如果你搞不清风道怎么算,可以把传感数据都丢给AI分析。
于是我在 BIOS/UEFI 中调整了前置进风风扇的转速。操作流程是:开机时按特定键(通常是Del)进入BIOS设置,可以找到如“QFan Control”(华硕)、“Hardware Monitor”(微星)或“Smart Fan”(技嘉)等选项。在这里,您可以为CPU和机箱风扇选择预设模式(如静音、标准、性能),或根据温度手动设定风扇转速曲线。

调节时,注意记录主板接口与风扇的对应关系,便于后期调整。比如我的风扇布局如下:
进气:前 2(#3、#4)
CPU 风冷:双塔,从前吹后 (#2)
排气:上 2(#1)、后 1(#5)
GPU:自带 3 风扇
与机箱风扇不同,显卡风扇需要专门的软件来进行控制。

原本还计划顺便给显卡更换硅脂,但考虑到(手残)风险太大就放弃了。好在显卡平时温度维持在 60℃ 左右,属于正常范围。
电源问题对电脑的影响远比想象中严重,但又很难直接诊断。当电源老化或供电不稳时,可能出现以下症状:
排查与处理建议:
我这次卡顿的根本原因很可能就是电源。换新后,系统稳定性明显改善,再也没有出现过无故黑屏或随机卡顿。
⚠️ 电源故障不像温度问题那样有明确数据可看,排查时容易被忽略。如果前面的散热、软件都没问题,电源值得重点怀疑。
MSI Utility V3 是一款第三方开发的小工具,通过启用 Message Signal Interrupt (MSI) 模式,优化 Windows 的中断处理,避免传统线基中断容易因共享 IRQ 产生冲突而出现的高延迟(DPC/ISR 延迟)、随机卡顿。
十年内的电脑基本都支持 MSI Utility V3,我个人体验效果明显。AMD 显卡默认开启 MSI,NVIDIA 需手动切换。

使用方法:
推荐设置:显卡/声卡/网卡设为 High,NVMe 控制器设为 Normal。

把系统盘从机械硬盘迁移到固态硬盘(SSD),提升最明显:开机时间大幅缩短、系统响应变快。
实现迁移主要有两种途径:
内存不足时,系统会频繁调用虚拟内存(硬盘空间),造成明显卡顿。但在如今的大多数场景下,这个瓶颈已经不常见。对 Win11 用户来说,32GB 已经足够覆盖日常使用。我自己的 64GB 内存,常年占用不到 40%。
如果你要升级内存,要注意以下几点:
调整后,整机表现明显改善:
| 频率 | 任务 | | :
2025-08-12 08:00:00
在注册海外账户或申请 API(如 Telegram 的 api_id/api_hash)时,如果出现莫名的「ERROR」,很可能是平台将你识别为 “VPN/数据中心”流量,从而触发了风控。 此时,可以使用 Cloudflare WARP 获取更像“家用宽带”的出口 IP,从而提升通过率。
重要提示 Cloudflare WARP 不是“科学上网”工具,免费版的带宽和可用性一般,不建议作为常用 VPN。 它更适合在访问风控严格的网站时临时使用,完成操作后及时关闭。
Cloudflare WARP 基于 WireGuard 协议工作,让你的网络流量经过 Cloudflare 节点中转,获得更“干净”、更接近普通家庭网络的出口 IP。 在 Windows、macOS、Android、iOS 等平台都可以一键连接,使用体验接近普通 VPN,但更适合解决特定的风控问题。
下载并安装 WARP 客户端:前往 https://one.one.one.one 下载并安装 Cloudflare 1.1.1.1(WARP) 客户端。
切换到 WARP 模式:打开应用,将模式切换为 WARP,然后点击连接按钮。

申请 Telegram API:使用浏览器的无痕/隐私模式访问 https://my.telegram.org/apps,登录账户并申请 api_id 与 api_hash。
遇到 ERROR 时切换出口 IP:如果仍提示 ERROR,可在 WARP 客户端点击“断开/重新连接”,更换出口 IP 后再刷新页面重试。
小贴士 同一账号在短时间内多次失败可能触发额外风控,建议等待几小时后再尝试。
使用 ipdata 查询当前 IP 信息,重点查看 TRUST SCORE:

2025-08-08 08:00:00
封面图片拍摄于今年六月的新疆禾木。到了那,我才发现天能有多蓝,中午可以清晰的看见月亮。
https://afterburnout.co/p/ai-promised-to-make-us-more-efficient
人工智能工具本应释放我们的时间,但它们增加了我们的认知负荷,降低了我们的工作效率。 这种模式在各项研究中是一致的:人工智能工具创造了一种效率的错觉,同时经常使系统更努力地工作,而不是更智能。个人开发人员感觉更快,但团队交付速度更慢。人们报告说节省了时间,但组织发现协调成本增加。 即使生产力确实提高了,“在相同的时间内完成两倍的工作”——不是减少工作,只是在相同的时间里塞进更多的工作。我们不应该试图在相同的时间内做更多的工作;我们不应该以提高时间效率为目标,这样我们就不必每周工作 60+ 小时。
我们是不是过于追求效率,反而导致自己的生活失衡了?

https://colton.dev/blog/curing-your-ai-10x-engineer-imposter-syndrome/
10 倍的生产力意味着十倍的结果,而不是十倍的代码行。这意味着您过去在一个季度内发货,现在只需一周半即可发货。这些数字应该会让最真实的人工智能信徒停下来。传统上需要 3 个月的工作中的产品构思、故事点协商、错误修复、代码审查、等待部署、测试和 QA 的数量现在在 7 个工作日内完成?为此,这些瓶颈中的每一个都必须提高 10 倍的生产力。 LLM 产生的东西通常是损坏的、产生幻觉的或低于代码库标准的。这些错误的频率随着代码库的大小而增加。发生这种情况时,您必须重新提示,这可能会立即解决问题,或者可能会浪费大量时间。或者你可以自己进去修复代码。但随后你又回到了区区 1 倍的工程师身份,如果你已经习惯了 vibe 编码而忘记了如何编码 ,也许会更糟。
这篇文章戳破了 AI 生产力论的面具。如果你有相同的纠结,值得细读。
https://lambdaland.org/posts/2025-08-04_artifical_inanity/
我假设作者选择他们所用的词是有原因的,并且每个句子都是为了传达作者希望我理解的东西。 LLM 或类似生成文本时,此模式将失败。当我以为自己正在阅读真实的文本时,阅读草率的文本是令人筋疲力尽的:由于我对幻觉或无关紧要的事物没有警惕,所以每一个看似不合时宜的短语都会让我想知道为什么这个短语会在那里 ,以及我错过了什么 ,而实际上,这样的问题是格式不正确的:那只是一个偶然创作的短语, 听起来不错,但实际上根本没有太多意图。 缺乏意图是阅读人工智能如此令人反感的原因。在我们需要关心和关注的一切背后,都需要有一个人类的意图——人类的意志和人类的关怀。
我习惯用 AI 来修改文章的语法,但总会删掉其中一半的内容。除了废话过多外,更重要的是,我们往往忘了 AI 的生成原理是随机拼接。随机生成的内容,你会喜欢看?
http://gemini.google.com/gem/storybook
只需描述您能想象到的任何故事,Gemini 就会生成一本 10 页的插画书。英文支持语音阅读。可以用来给儿童讲故事,帮将简笔画、照片变成故事书。