要不要给佛振发邮件告诉一声...

我从没想过有一天作为一个 openSUSE developer 居然发布了一个 windows 软件...rime-plum-go 有 windows 版了,不用像 rime-install.bat 那样下载什么 git 什么 7zip…直接一个 binary 完事了

要不要顺手丢 CI 释出一个 Windows 版本来干掉原版又依赖 git 又依赖 powershell 的 plum bat 呢

我居然顺带着让 rime-plum-go 可以跑在 Windows 上了...

于是要求用 0 补位的地方就可能搞错了,google 认为每个 table 都应该补位,Microsoft 的做法可能是直接补在最后...果然草案写再好也不如实现为了省事...

golang.org/x/image/font/sfnt 解析不了文泉驿的原因原来是只有这个实现严格遵循 Microaoft 的 opentype specification,对单一 table 检测是否长度或 offset 能被 4 整除,其他包括微软自己在内都是看整个字体文件长度能不能被 4 整除...

文泉驿在 golang 下不能 parse 的原因找到了,是因为 golang.org/x/image/font/sfnt 强制要求 table offset 必须能被 4 整除,因为它认为所有的数据都是 uint32 和 uint16 的。但文泉驿使用了 fontforge 的私有 table 格式 BDF,这个格式在 table 的最后面附了 string table 是 ASCII byte array,所以这里就没法控制一定是 4 位的了。于是只要这个 BDF table 后面的 offset 都会不能被 4 整除。取消被 4 整除限制就好

人生第一次 Github Actions 之旅献给了做 AppImage release...熟练掌握了在 Github Actions 里用 openSUSE 做 CI

之前有说 rankmirror-ng 的 appimage 在 leap 15.2 上用不了的。准备用 leap 15.1 做个 ci 自动更新 appimage

所以 rime-plum-go 回退一个版本就好了。现在已经在更新 brise 包了。

好消息!我找到了 go-git plainClone 失败的原因了!原因是最近的一条不把大文件载入内存的 commit 中进行了 reference hash 的 check,但是这个玩意不是所有的文件类型都给出了 hash,只有一种文件类型有,其它都是 nil。github.com/go-git/go-git/issue

于是乎,我的本意是想简简单单的像 python 一个循环调用 fonttools 一样去看一下系统上所有 truetype 字体是否都有 fpgm 表,这个需求简单吧?你后缀是 ttf 不一定是 truetype 字体,但是你要是自带了一个 byte instruction interpreter 肯定是 truetype 字体。于是现在我得写一个 ttc collection parser,parse 的是基本不会在 ttf 中出现的 bdf 字体...

golang 有时候确实很让人崩溃,别的编程语言一定会有的东西 golang 要么没有,要么有一个在你的用例下必然不行的。比如 golang.org/x/image/font 提供了 font.Face 接口,感觉是把 truetype opentype 这些全大一统了是吧?你写程序可不可以依赖 font.Face 呢?当然不可以,除非你 CJK 不要了,或者凡是那种 bimap embedded in ttc 的都不行。你连 Windows simsun.ttc 都用不了

上一次这么折腾还是写一个 golang 版的 Logname,花了很多功夫去适配 go-gnulib,结果上游可能写的时候就没指望那段代码能运行...改完之后也 pull 不回去...被逼无奈最终还是用了命令行调用 logname 直接取输出的封装大法,早知如此,三分钟写完的,我何苦...

于是现在要给 rime-plum-go 加一个 use_system_git 变量支持...来支持类似于命令行直接调用 git clone 而不是用库...

众生皆苦,修好了 go-stdlib,本以为有自己写的比 regexp 快一丢丢的 extglob 的加持,rime-plum-go 终于能用了,结果 go-git 崩了……难道真的要所有 dependency 都自己手写才叫做一个强健的程序吗……

赶紧把 rime-plum-go 搞完好去重写 golang-packaging,趁着 1.16 的各种变化之际争取把源里的 bash 版本替代掉。

好消息是 go-stdlib 从 pattern 模块变到我自己写的 extglob 模块了,更加强大...坏消息是这个写了3个月,忘记了重写的 rime-plum-go 当初为什么不好用了。

我说昨晚怎么 rankmirror-ng 所有的 mirror 都飘红了...原来是 mirrors sync 崩了…

Show older
Moew!

Have fun and play together~