归档
按时间倒序排列的全部文章。
共 84 篇
2026
- 10月7日把一座 Three.js 浮岛搬进静态站
- 10月7日摩斯电码:一张表、两处歧义、三个实现细节
- 10月7日让弹球对手会算落点,但算不太准
- 10月7日不建模也能有体积:手工三角化一座浮岛
- 10月7日一千二百个实例:把花园压进几次绘制
- 10月7日一个场景的光:三种灯与只算一次的阴影
- 10月7日两个着色器做水:水洼、溪流与瀑布
- 10月7日3D 的加载预算:分包、可见才加载、以及什么时候该停下
- 9月30日原子写文件:先写临时文件,再 rename
- 9月30日Base64:它不是加密,也不是压缩
- 9月30日大 O 的误用:常数和前提比阶更常决定成败
- 9月30日用 @layer 把样式优先级从「比权重」变成「排顺序」
- 9月30日防抖与节流:差别只在「谁决定何时执行」
- 9月30日工期估算:为什么「大概三天」永远变成三周
- 9月30日功能开关:它是负债,不是配置
- 9月30日游戏主循环:为什么必须用 delta time
- 9月30日git bisect:把「哪次提交弄坏的」变成一条命令
- 9月30日五子棋 AI:算杀层与搜索层怎么分工
- 9月30日优雅关闭:进程退出方式决定用户看到 502 还是正常响应
- 9月30日HTTP 缓存:Cache-Control 与 ETag 各管一半
- 9月30日幂等键:让重试变得安全的那一次写入
- 9月30日JSON 规范化:为什么同样的对象算出了两个哈希
- 9月30日内存布局:同样的算法,慢十倍往往是因为缓存
- 9月30日死锁的四个条件:破坏其中任意一个就够了
- 9月30日N+1 查询:ORM 最典型的性能陷阱
- 9月30日限流:令牌桶与漏桶的实际差别
- 9月30日灾难性回溯:正则为什么会让 CPU 打满
- 9月30日iframe sandbox:它收窄能力,不是加固
- 9月30日语义化版本:主版本号的承诺是「不会静默改变行为」
- 9月30日SQLite 索引:最左前缀不是限制,是排序的结果
- 9月30日技术债的利息长什么样
- 9月30日时区与夏令时:存 UTC,存本地时间一定会出事
- 9月30日把 AI 的思考过程做成一棵能翻的树
- 9月30日Unicode 规范化:看起来一样的两个字符串为什么不相等
- 9月30日URL 编码的三个陷阱:空格、加号与双重编码
- 9月30日写中国象棋规则,四处最容易错的地方
- 9月29日手写 cron 解析器:五段、并集规则,以及 2 月 30 日
- 9月29日CSV 不是「按逗号切」:RFC 4180 的引号与换行
- 9月29日黑白棋的合法落点:一次扫描,八个方向
- 9月29日数独生成器:挖洞、唯一解,以及一个把页面卡死的 bug
- 9月28日一致性哈希:加一台机器为什么不用重排所有键
- 9月28日五子棋的胜负判定:只查刚落下的那一点就够
- 9月28日滑动窗口:先定「窗口里维护什么」,再写循环
- 9月27日单调栈:把「下一个更大的数」从 O(n²) 拉回 O(n)
- 9月27日数二进制里有多少个 1:从循环到 SWAR
- 9月27日并查集:两行优化让每次操作几乎变成常数
- 9月26日Rust 的 Result 里,上下文要补在出错的那一层
- 9月26日什么时候该把一个 crate 拆成 workspace
- 9月26日结构化日志不是把 println 换成 tracing::info
- 9月25日Islands 不是 Web Components:两种「按需加载」根本不是一回事
- 9月25日静态站的缓存头:带哈希的永久,HTML 一律不缓存
- 9月25日WebAssembly 值得用的场合,比宣传里少得多
- 9月24日锚点跳转被页头吃掉:一次 scroll-padding-top 修全站
- 9月24日模态框用原生 dialog:白拿的东西比想象中多
- 9月24日深色模式下表单还是白的:color-scheme 才是开关
- 9月24日页头多高不该猜:ResizeObserver 实测回写 CSS 变量
- 9月23日设计令牌:一个文件管住整个站点
- 9月22日不用框架的 i18n:三语站点手写路由的代价
- 9月21日2048:把四个方向归一成同一个操作
- 9月19日扫雷:把布雷推迟到第一次点击
- 9月18日把孔版套印的约束翻译成设计令牌
- 9月17日进制与单位换算:唯一非线性的是温度
- 9月15日颜色与对比度:相对亮度不是通道平均值
- 9月14日纯静态站的全文搜索:构建期索引,运行时零后端
- 9月13日哈希与校验和:为什么 CRC32 和 MD5 得自己写
- 9月11日正则测试:命中、分组与替换预览,以及零宽匹配的坑
- 9月9日JSON 工作台:格式化、校验与结构对比放在同一个页面
- 9月8日1059 项断言,零测试框架:纯逻辑必须零 import
- 9月6日SharePoint 反序列化 RCE:CVE-2026-45659 分析
- 9月4日n8n 未授权 RCE(Ni8mare):CVE-2026-21858 分析
- 9月2日Cisco FMC 未授权 Java 反序列化 RCE:CVE-2026-20131 分析
- 9月1日用 Astro islands 把首屏 JS 压到零
- 8月30日Next.js 增量缓存路径遍历 RCE:CVE-2026-75604 分析
- 8月28日React Router 原型污染链式 RCE:CVE-2026-42211 分析
- 8月27日head 只有一个来源:SiteHead、JSON-LD 转义与 hreflang
- 8月24日静态站上线不是「把文件夹传上去」:缓存、压缩、以及诚实的 404
- 8月22日用 View Transitions 做主题切换水波纹
- 8月19日构建期分页:静态站的翻页为什么不该用查询参数
- 8月16日@/ 别名的三处配置:Vite、TypeScript 与 SCSS 缺一不可
- 8月13日zod 做 frontmatter 契约:把文章格式变成构建期错误
- 8月11日为什么我又搭了一个个人主页
- 8月8日零配置注册表:新增一个游戏等于新建一个目录
- 8月5日应用页不用 client:only:静态空壳加显式挂载
- 8月2日视图不存逻辑:把数据装配全部收进 src/server
