All Stories

开了个微信公众号《软件开发谈》

前段时间开了一个微信公众号《软件开发谈》,可以通过搜索ID“softwaredevtalk”找到,也可以通过扫描文末二维码找到,主要发些与我本职工作相关的Go、C++、软件工程方面的文章。到目前为止发了十几篇文章都是罗列了些modern C++的新特性:

CoreDNS搭建无污染DNS

我之前整理过在国内搭建无污染DNS的一些方法,github上各种轮子也层出不穷,但基本原理几乎不变。自从半年多前开始用CoreDNS,我觉得可以不用dnsmasq/overture/chinadns这些轮子了,CoreDNS完全符合我的需求:

双色球技术派app

这个app在2014年就上架过,除了一开始送出去一堆兑换码以外,以每月大约不到1个付费用户的速度卖出过几份。后来也就更新过1个版本,后来就懒得更新了,直到2017年10月因长期不更新被下架了。

Derfla,快捷应用启动器

这是好几年前就开的坑,当年是对标Launchy,后来推翻重写,想对标Alfred,到目前为止,也仅仅是完成了很少几个功能,很多精力和时间都花在UI上了。一开始是照Launchy的完全图片自绘,最近加上了Alfred风格的UI。

Qt Creator使用clang-cl

之前已经在Windows上用clang编译Qt程序,但当时的Qt Creator并没有好好地支持,所以需要在控制台上直接使用命令行进行编译。今天偶然发现最新的Qt Creator已经支持clang-cl套件了,试了一下效果不错。

试用C++ Builder社区版

偶然在Embarcadero的营销邮件中发现现在C++ Builder有Community Edition即社区版可以免费下载使用,想当年从大一买了自己第一台电脑开始,也曾用过6年左右C++ Builder写了些小程序,为了情怀也得试用一下。

胎动计数器app

自从知道怀孕28周起要数胎动,我就花了几天时间写了个简单的app给老婆数胎动用。

C++中RAII的实现手法

Go语言中有defer可以在退出当前作用域时执行一个函数调用,C++中以前常用的做法是创建一个类的对象,在该类的析构函数中写入需要执行的代码。而这个对象可以创建在栈中,也可以放在std::auto_prt<>或std::unique_prt<>之类的地方,只要退出作用域就会被销毁就可以。这在网上能找到不少的讨论,比如C++之父的这段,C++ Core Guidelines中的这段,以及Cpp Reference中的这篇。

SQLCipher Android平台升级踩坑

公司项目里使用SQLCipher用于本地加密存储数据,之前发现在iOS上打开数据库后执行第一条CRUD特别慢,经过几番优化尝试,发现只要在编译选项指定使用Apple Common Crypto,就能比使用OpenSSL提升100倍性能。但是Android平台上也只能使用OpenSSL,性能问题两年多来一直没解决。