All Stories

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来实现。

某日志查看程序开发小结

这几天写了个查看日志的程序,日志是公司里产品项目用户log4cxx生成的,用于定位问题。以前看到过其他同事自己开发的这类程序,但都只限于他们自己使用,等他们离职了,就基本失传了,尽管他们是交接给其他同事了。

纯净DNS解析

DNS污染主要是两种,一是丢包,二是抢答,两种方式基本上无规律出现。做纯净DNS解析基本上就是为了解决这两个问题,现在主流的方法大体有以下几种: