指南

关于这些工具所处理内容的简短实用说明。
HEX、RGB、HSL 与更新的颜色空间
HEX、RGB、HSL、LCH 和 OKLCH 彼此之间是什么关系,为什么用 HSL 做出来的配色在中间档会发浑,以及色域裁剪和 alpha 合成会如何改变你最终得到的颜色。
JSON Web Token 里到底装了什么
拆开一个 JWT 来看,讲解头部、载荷和签名,标准声明有哪些,以及为什么把令牌做 Base64url 解码并不等于验证了它。
PDF 到底是什么,以及为什么有时候复制不出文字
PDF 如何把字形放在坐标上而不是存储单词,如何分辨扫描件和真正的文本,以及在合并或拆分时字体、页面框、旋转标志和密码各自会做什么。
URL 的每个组成部分以及它们允许包含什么
用一个完整示例标出 URL 的每个部分,说明哪些字符必须在哪里做百分号编码、查询字符串实际上是怎么运作的,以及如何识别一个在主机名上撒谎的链接。
不靠猜也能达到 WCAG 的颜色对比度要求
对比度比值到底测量的是什么,文本和界面组件的 AA 与 AAA 阈值分别是多少,以及那些每次都悄悄不达标的白底灰字错误。
为什么一个 MP4 播放不了,以及容器到底是什么
MP4、MKV 这类容器与 H.264、AV1 这类编解码器有何不同,以及码率、关键帧、音轨和重新编码如何决定一个文件能否播放、又会有多大。
为什么你的 CSV 在 Excel 里打开是乱的
逗号、分号和制表符在各地区的差异,以及引号、转义、UTF-8 BOM,还有一套判断文件到底用哪个分隔符的可靠办法。
在 JSON、YAML、CSV 和 XML 之间转换会丢掉什么
JSON、YAML、CSV、XML 和 TOML 在注释、类型、嵌套、日期和键顺序上有何不同,以及它们之间的每一种转换会悄悄丢掉其中哪些细节。
在 PNG、JPEG、WebP 和 AVIF 之间做选择
一份平实的图像格式选择指南,涵盖透明度、有损与无损的区别、为什么反复保存 JPEG 会让它变差,以及大致的文件体积。
如何读懂 cron 表达式
详解 cron 的五个字段,包括范围、步长、列表、名称和快捷写法,以及那条几乎人人都栽过跟头的“日”与“星期”规则。
密码需要强到什么程度
以比特计的熵到底衡量的是什么,为什么长度胜过符号堆砌,重复使用要付出多大代价,以及口令短语和密码管理器各自的位置。
把一张图准备好再发布
在把图片放上页面之前如何确定尺寸、裁剪、重采样和压缩,包括像素比、质量参数、抠图边缘光晕、EXIF 旋转和元数据剥离。
排序和列表去重,不留意外
为什么“10”会排在“2”前面,德语和瑞典语里变元音字母为何位置不同,哪些重复才真的算重复,以及为什么用随机比较函数打乱顺序是有偏的。
时间戳、时区,以及那个发生两次的小时
Unix 时间到底在数什么,ISO 8601 的偏移量与 IANA 时区有何不同,夏令时会对闹钟和时长做什么,以及在哪些情况下“存 UTC”是错误答案。
清理从别处拿来的文本
那些让粘贴过来的文本行为异常的不可见字符、被替换的标点、行尾符、规范化形式和大小写规则,以及修复它们的先后顺序。
编码、散列和加密是三件不同的事
编码、散列和加密有何区别,Base64、百分号编码和 HTML 转义各自到底是干什么的,以及如何一眼认出一个来路不明的字符串。
进制、字节单位,以及那些人们争论不休的单位
十六进制如何对应到二进制位,为什么 1 TB 的硬盘显示成 931 GB,0.1 加 0.2 到底等于多少,以及舍入、百分比和区域格式如何悄悄改变一个数字。
选择标识符:UUID、短 ID,以及会泄露信息的那些
该用哪个版本的 UUID,为什么 v4 碰撞在实践中不值得担心,连续整数会暴露什么,短 ID 的字母表要如何取舍,以及随机比特该从哪里来。
音频格式、码率,以及为什么这一首听起来更响
如何在 MP3、AAC、Opus、WAV 和 FLAC 之间取舍,采样率和位深度真正改变的是什么,以及为什么按峰值做归一化会让一段安静的录音依旧安静。