指南
关于工具如何运作及其背后理念的深入原创文章 — 从条形码校验位到数制、编码与浏览器隐私。
-
数字经过程序后为什么会变
0.1 加 0.2 得到 0.30000000000000004,一个很长的 ID 丢掉了末尾几位,一笔总额差了一分钱。这些几乎都来自同一个设计决定:数字是在固定的比特预算里,以二进制分数的形式保存的。
-
文字为什么会变成乱码
名字显示成 é,一份中文文件变成一整片看不懂的符号,或者所有重音字母都成了黑色菱形。文本是以字节保存的,而编码只是关于这些字节代表什么的一个约定,所以乱码的样子恰好能告诉你是哪个约定对不上了。
-
为什么你的二维码在有些手机上扫不出来
在自己桌上能扫,贴到海报上就不行。二维码是靠在干净留白里找到三个角上的方块来读取的,绝大多数扫不出来的情况是留白、明暗差或尺寸的问题,而不是里面的数据有毛病。
-
为什么你的 PDF 搜不到文字
页面上的字你每个都读得出来,搜索框却什么也找不到,想选中文字结果选中的是一张图。PDF 的一页是一组绘制指令,而扫描出来的一页只画了一张照片——你看到的那些字,从来就没有以文字的形式存下来过。
-
为什么照片一上传就转了方向
照片在手机上明明是正的,传到网站上却躺倒了。像素其实没有动过:相机按传感器读到的样子保存,另外附上一张写着哪边朝上的便条,而不是每个程序都会读那张便条。
-
为什么同一个 MP3 的标签在每个播放器里都不一样
一个播放器显示旧专辑名,另一个显示新的,封面只在手机上出现。多数情况下,文件里同时存着两套标签,而播放器们对该相信哪一套并不一致。
-
Excel 为什么会毁掉你的 CSV,以及如何阻止它
前导零消失、长订单号丢掉最后一位、产品编码变成日期。这不是缺陷,而是 Excel 在打开文件时为每个字段猜测类型。
-
Unicode 规范化与看不见的字符
两个看起来一模一样的字符串为何会判定为不相等、NFC/NFD/NFKC/NFKD 到底做了什么、粘贴文本里藏着哪些不可见字符,以及让文本处理保持安全的若干规则。
-
把 IP 地址与子网讲清楚
IP 地址到底是什么、如何读懂 CIDR 记法并数出前缀内的主机数、哪些地址段绝不能路由、IPv6 让算法发生了什么变化,以及把地址当字符串排序为何会出错。
-
cron 定时任务究竟如何运行
cron 的五个字段与语法、几乎人人都理解错的「日 / 星期」规则、夏令时对夜间任务的影响,以及如何设计能扛住重启的调度。
-
正则表达式实战
正则引擎究竟如何扫描字符串、锚点与贪婪量词为何能改变一切、什么是灾难性回溯,以及哪些格式绝不该用正则去解析。
-
色彩对比度与无障碍配色
WCAG 对比度到底在测什么、看起来没问题的颜色为何仍会不合格、色觉障碍如何改变判断,以及如何构建一套经得起考验的配色。
-
处理 CSV 文件而不把它弄坏
CSV 为什么总是出错——引号、分隔符、编码、前导零和日期——以及如何在表格、JSON 与 SQL 之间搬运数据而不发生无声损坏。
-
密码与口令短语:什么才真正决定强度
为什么长度胜过符号替换、强度检测条在哪里误导人、口令短语如何生效,以及双因素认证能防住什么、防不住什么。
-
为网页压缩和调整图片
如何在不损伤观感的前提下让图片变小:先调尺寸再压缩、选对格式,并理解质量滑块究竟在做什么。
-
无 bug 地处理时区与 Unix 时间戳
为什么时间在软件中如此难以处理对 — UTC、Unix 时间戳、时区与夏令时 — 以及一小组能避免最常见日期处理 bug 的规则。
-
如何选择 ID 格式: UUID、ULID、Snowflake 还是自增
选择标识符的实用指南 — 自增整数、UUID v4/v7、ULID 和 Snowflake — 以及在唯一性、排序、大小和隐私上的取舍。
-
哈希 vs 加密 vs 编码: 区别是什么
三个被不断混淆的术语 — 哈希、加密、编码 — 的清晰讲解: 各自的用途、何时用哪个,以及要避免的错误。
-
数制与文本编码: 开发者速查表
二进制、八进制、十进制和十六进制的实用入门,以及文本如何通过 UTF-8、Base64 和 URL 编码变成字节 — 附上你真正需要的规则。
-
为什么浏览器内的工具能保护你的数据隐私
客户端工具如何运作、为什么完全在浏览器中运行意味着你的数据永不离开设备,以及如何自己验证这一点。
-
条形码校验位的原理 (EAN-13、UPC-A、EAN-8)
清晰实用地讲解零售条形码上的 GS1 模 10 校验位 — 它如何计算、为何能发现错误,以及如何手动校验一个编码。