等宽字体不是必须的:为什么开发者对编程字体的执念可能是错的

1955年,IBM的字体设计师Howard “Bud” Kettler接到一个任务:为公司的电动打字机设计一套新字体。他交出的作品就是Courier——这个名字源于他最初的想法:“让文字像信使一样传达信息。“七十多年过去了,Courier和它的后代们依然统治着程序员的屏幕。 ...

10 min · 4875 words

Gamma 校正:为什么显示器都在"欺骗"你的眼睛

2009 年 8 月,苹果发布 Mac OS X 10.6 Snow Leopard 时,悄悄修改了一个很少人注意的默认设置:系统 Gamma 值从 1.8 改为 2.2。这个改动让无数设计师抱怨屏幕"突然变暗了"。但苹果并非心血来潮——这是向行业标准的靠拢。而这个被称为"Gamma"的参数,背后藏着一段横跨 80 年电视广播史的技术演化。 ...

8 min · 3904 words

为什么同一张图片在不同设备上看起来颜色不一样

1996年,HP和Microsoft联合发布了一个名为sRGB的色彩空间规范。这份文档的初衷很简单:让数字图像在不同设备上显示一致。将近三十年后,这个目标依然没有完全实现——你在电脑上精心调整的照片发到手机上看起来完全不同,设计师交付的作品在客户显示器上"面目全非"。 ...

11 min · 5135 words

写倾斜异常:为什么可重复读隔离级别还是会出现一致性问题

1995年,IBM 的研究人员发表了一篇名为"A Critique of ANSI SQL Isolation Levels"的论文。这篇论文指出了 ANSI SQL 标准对事务隔离级别定义的模糊性,并引入了一个在当时鲜为人知的异常现象:写倾斜(Write Skew)。近三十年后,这个概念仍然是数据库领域最容易被误解的问题之一。 ...

8 min · 3787 words

TLS 1.3 与 QUIC:互联网传输层十年重构的技术逻辑

1994年,Netscape 发布了 SSL 2.0,首次为 HTTP 加上了加密层。二十年后,IETF 发布了 TLS 1.3(RFC 8446),彻底重构了这个协议。又过了三年,QUIC(RFC 9000)正式成为标准,HTTP/3 随之诞生。这不仅是版本号的更迭,而是互联网传输层设计哲学的根本性转变。 ...

11 min · 5110 words

TCP 三次握手与四次挥手:从 SYN 到 FIN 的状态机演进

1981 年 9 月,Jon Postel 发布了 RFC 793,定义了传输控制协议(TCP)的核心规范。这份文档中有一张著名的 TCP 状态转换图,包含 11 个状态和错综复杂的箭头指向。四十多年后的今天,这张图依然是网络工程师面试的必考题,也是无数系统故障排查的起点。 ...

8 min · 4003 words

数据可视化:为什么你的图表总是选错

1983年,统计学家 Edward Tufte 在《The Visual Display of Quantitative Information》一书中提出了一个简单却深刻的问题:一张图表中,有多少"墨水"是用来展示数据的,又有多少是用来装饰的?他称之为"数据墨水比"(Data-Ink Ratio)——一个图表中数据相关的墨水量与总墨水量的比值。 ...

8 min · 3954 words