一个英文字体文件通常只有 20KB-50KB,而一个包含全量汉字的中文字体(如 SourceHanSansCN-Regular.ttf)体积往往在 4MB 到 25MB 之间。

过去博客是这样加载字体的:

用户打开网页 -> 浏览器尝试下载一个 NMB 的 .woff2 文件 -> 页面文字留白数秒 -> 字体下载完成 -> 文字突然跳动变化。

直到发现了 unicode-range分层子集化(Subsetting) 技术,配合 HTTP/2,彻底解决了这个问题。

- 阅读剩余部分 -

在聚会中玩《谁是卧底》,最尴尬的时刻莫过于——“谁来当裁判?”

裁判不仅要全程禁言、无法参与进去,还错过了抖机灵的智慧,堪称聚会中的“最惨工具人”。为了彻底解决这一苦点,开发了这款 “谁是卧底出题助手”。配合创新的游戏规则,让在场所有人都能直接上场,真正实现零裁判、全员竞技

- 阅读剩余部分 -

很久没登录,不出意外又忘了密码。搜了一圈,全是教你手动改 typecho_users 表的,不仅操作繁琐,由于 Hash 加密版本问题还不见得适合。

分享一个通过 Typecho 内置 Hash 方法重置密码的脚本。不操作数据库,直接调用程序内核,确保 100% 成功。
操作步骤:

将以下代码保存为 reset-pwd.php。上传至网站根目录。
访问 https://你的域名/reset-pwd.php?k=123,即可。

增加了安全访问 ?k=123,防止忘记删除还有被别人扫描并访问。
自动识别:变量 $user 填数字就是改 UID,填字符串就是改 用户名,一行代码自动切换。

【重要!重要!重要!】 用完一定记得立即删除该脚本。重置为简单密码后,立即登录修改为强密码,或者直接重置为一个强密码(生成密码工具)。最后不要长期保留任何运维脚本在公网目录。

- 阅读剩余部分 -

最初想注册 liliill.li(“莉莉病了”)这个域名,但是不知道干啥,就一直没买来吃灰。直到偶然看到不知道多少个 oooo 那个长链接网址,觉得这个做成 Il 正好替换二进制的01也不错。

不过二进制表达实在太长,于是我开始尝试各种压缩方式:测试多种进制、尝试 Base64、Base91 等编码转换,甚至结合压缩算法再转码,试图找到平衡。

随后把目光投向 Unicode 字符集。找到眼都花了,从 1114112 多个字符中,筛选了前 8 万个,找到竖线状字符 102 个。
然后排除了那些:

  • 从右向左书写的字符
  • 字符过长或过短的
  • 位置明显偏上/偏下的
  • 字符间距过大的

- 阅读剩余部分 -

有需求啦。
有同学需要一个每次访问只能费1kb的流量。那就是连上包含 HTTP 头和 html 页面的能够正好达到1024Bytes。
技术拆解:这其实是个数学题
要让一个页面的 Content-Length 精确稳定在 1024 字节,我们面临三个问题:
Gzip 压缩:现代服务器都很“贴心”,会自动压缩文本。你写了 1KB 的代码,传输过来可能只有 几百 字节。
Favicon 图标:浏览器会自动请求 /favicon.ico,这又是额外的请求和流量。
动态长度:因为要显示“访问次数”,9 是 1 个字符,100 是 3 个字符。数字位数变化会导致总长度变化。必须自动填充!

- 阅读剩余部分 -