All Stories

修正Qt app在Android 7上显示中文字符

今天手头上的Nexus 6通过OTA升级到了Android 7,之后发现几个用Qt写的App显示中文字符全变成方块了。这个问题在当时系统刚升级到6.0时也遇到过,解决办法是自己带一个中文字体,再在程序中指定使用这个中文字体。这是比较繁琐的解决方法,Qt官方也收到了问题报告,只不过修正后的版本还没有发布,但是问题报告下面有人提到了问题代码,所以要自己出个workaround也很容易,只要在自己的程序开头加这么一段代码就可以了:

济州岛几日游

我终于也算是出过国的人了,上周四到周日,公司组织的旅游,虽然是报了团,但到了济州岛后是自由行。作为第一次出国的人,很多事情都是第一次。幸亏年初把户口迁回老家了可以方便地拿到户口本,不然没有居住证还不能在上海办护照。上海办护照还算方便,可以在微信里预约,外地人要等大半个月才能拿到。济州岛不需要签证,这也特别适合第一次出去的人。

Go在CJK编码和UTF-8间转换

之前也折腾过,但是没完美解决,最近在爬些数据,然后想保存成统一的编码,于是自然而然地有编码转换的问题,在网上找最多的解决方案是通过CGO调用iconv实现,这个方案在mac或Linux之类的系统上很好解决,因为基本上都会有iconv的链接库,即使没有,一条命令就装上了,但在Windows上就麻烦些,首先Windows上用CGO就要稍微麻烦点,需要首先装一个gcc编译器,比如MinGW或其衍生品。我的系统上有个msys2,上面也有iconv的链接库,直接从网上go get一个iconv的go封装package就会通过CGO试图寻找那些归档文件,但它会说找不到mingwex和mingw32的归档文件,这个问题可以通过在CGO_LDFLAGS环境变量中设置链接器搜索路径解决。

在Mac上给Qt程序用Developer ID签名

最近想着赶紧弄个程序出来上架到Mac App Store去,因为我只会用Qt写Mac的GUI程序,所以要研究一下如何把Qt程序签名上架,结合网上找到的这篇、这篇,以及这篇文章,折腾了几天了,最终,仍然没搞定怎么签能上架Mac App Store的Qt程序,貌似只搞定了Developer ID类型的,即在Mac App Store以外发布的程序,这种签名唯一的用处貌似是别人拿去能直接运行而不会弹出个消息框说来自不受信任的开发者(其实我是猜的,没验证过。

avege Android版的计划

前些天看到有人移植了SSR Android版,我就顺便看了看代码,结合网上的一篇文章,觉得似乎挺简单的,它(官方也)用Java/Scala写了个外壳和启动VPN service,其他功能是几个用C写的程序共同完成,包括redsocks,tun2socks,ss-tunnel,ss-local,pdnsd。

终于把Netgear R6300v2固件刷了

一直以来对刷路由器固件很抗拒,觉得麻烦,收益小,可玩性低,风险大,就跟刷Android手机一样。但是实在受不了Netgear R6300v2那渣渣的官方固件了,功能弱也就算了,信号太弱就不能忍了,相隔不到10米的房间就关上门,屋里一票电脑手机就要罢工!

近期小结和计划

从淘宝花了几十块钱买了个Nexus 5的尾插排线,然后自己掰开后盖换上,Nexus 5复活了!有点小遗憾是我的手工不好,换上后不是很紧凑的样子。

Nexus5出问题了

周四周五的时候妹子跟我说她的Nexus 5屏幕在抖动,当时我也没放在心上,只想着可能是系统或某个app的缘故,等抽空把数据备份一下,然后还原出厂设置试一下。结果拖延症一拖也就过去了,昨天妹子出去参加什么沙龙去了,晚上回来手机已经抖得几乎没法用了,我就着急想把数据备份一下,主要就是(垃圾)微信聊天记录,照片以及通讯录。结果一插到电脑上,干脆花屏了!然后妹子就大发脾气。

让Qt的sqlite插件支持REGEXP查询

仍然是日志查看程序,突然想要加个按正则表达式的查询,记得sqlite是支持REGEXP的,不过sqlite官方文档上说了,需要程序自己提供一个进行正则匹配的函数,然后调用sqlite3_create_function来实现。