编程笔记
记录在 Taro 微信小程序中引入少量中文展示字体的完整方案:用 Node 与 subset-font 从 Noto Sans CJK SC Black 裁出固定字符,校验上游文件后生成内联 WOFF CSS,将约 17.8 MB 的源字体缩到 5 KB,并说明字符维护、授权保留和真机验证边界。
编程笔记
复盘 Taro 4.2.1 使用 Vite 构建微信小程序时 common.js 接近 855 KiB 的排查过程:从 Rollup 分块源码确认公共代码的来源,并通过构建前后文件对比说明 optimizeMainPackage 在当前 Vite 构建链中没有产生预期效果。
编程笔记
记录如何用 Protobuf、Buf 和 ts-proto 为 TypeScript WebSocket 生成客户端与服务端类型,并完成二进制消息的编码发送、ArrayBuffer 接收解码、oneof 分发和字段安全演进,同时说明 optional、int64、默认值与 reserved 的常见误区。
编程笔记
记录一次实时追加列表的分页设计:为什么 OFFSET 在新数据持续插入时会重复或漏项,怎样用自增 ID 作为 Keyset Cursor 稳定加载旧记录,以及如何用 pageSize + 1 判断 hasMore,避免额外 COUNT 和空页请求。
部署记录
记录一次 Docker PostgreSQL 15 升级到 18 的真实排障过程:从 pgAdmin 4 还原报错、PGDATA 挂载错误和空库误判,到使用 pg_upgrade 升级副本并核对完整实例;也重新审视 PostgreSQL 工具生态与快速开发中的数据库选型。
PostgreSQLDockerpg_upgrade数据库选型查看正文 →
编程笔记
复盘一个 React/Taro 共用表单把初始发布误判为编辑、最终请求 PATCH /resources/undefined 的问题:如何从请求方法和载荷确认分支,用可辨识联合约束子组件属性,判断客户端状态检查的合理位置,并避免把局部修复扩张成全局 ID 校验。
编程笔记
记录 Bun TypeScript 服务端为解决 Worker 无法在 VS Code 命中断点而形成的双运行结构:调试时通过 RUN_WORKER_IN_MAIN 把同一循环放回主线程,生产仍使用独立 Worker,并说明 isMainThread、postMessage、双入口构建与 Docker 启动。
部署记录
介绍如何使用 acme.sh 和阿里云 DNS 签发通配符证书,并自动更新多个阿里云账号下的 CDN 与 DCDN 证书。结合一次线上证书过期故障,说明 Le_DeployHook 被覆盖后为何会出现本地续签成功、线上证书仍未更新,并给出多账号部署钩子、日志留存和证书指纹核对方法。
acme.sh证书CDN查看正文 →
系统折腾
记录 HEU KMS Activator 的项目仓库、Releases 下载路径和基本运行步骤,说明 Windows、Office 支持范围会随工具版本和授权环境变化,并提醒在运行前核对软件许可、文件来源、版本兼容、安全告警、系统还原点和重要数据备份,避免直接关闭安全软件。