All Stories

被GCC坑了一把

被GCC坑了一把

前几日在重构一个小模块。这个模块的架构本来就很畸形,因为它被要求在不同的设备不同的平台不同的endpoint上运行不同的逻辑,却要做在一个模块里,能给用户一个.a或.lib就可以使用。于是第一版的实现中就有一个变量来区分当前endpoint是哪个,开始还好,后来越来越多的if条件判断endpoint来运行不同的逻辑,代码就丑到令我觉得恶心。于是我就蠢蠢欲动了好久,最后看重构的工作量也不是很大,就跟design这块的小leader打了个招呼开始重构了。

国内的环境真是恶劣啊

国内的环境真是恶劣啊

最近又被结结实实体验了一把国内的恶劣的网络环境。两件事情,一件还是说之前那位同事要搞个社区,域名备案的问题,用了阿里云的主机,然后说已经准备齐全了各种材料去备案,已经快递到了河南省内某处,过了大概快3个星期了,前几天他跟我说收到那边的消息,说还需要大概20个工作日才可能会给他进一步的是否备案通过的消息。我表示只能呵呵了,这么搞真的有意义么有意义么有意义么?

近况

近况

忘了从何时起,就不太乐意写blog了,一直在长草。前两天从知乎网友Jim处扒来一个非常简洁明快的Jekyll theme,于是打算写点文字除除草。

使用qterminal替代LXTerminal

使用qterminal替代LXTerminal

发现FreeBSD上的LXterminal很容易在输入长命令时换行错位,于是胡乱覆盖掉前面的内容,就很难好好地输入完一整条长命令。这事在Debian上没遇到过,我也只在Debian上装过LXDE并使用LXTerminal。其他在Linux上用过的Terminal也只有GNOME Terminal和Mate Terminal,感觉吧每种Terminal都是配合自家的DE的,虽然可以混用但心里总是有点疙瘩。

旧版本Protobuf在Serializing方法crash

旧版本Protobuf在Serializing方法crash

花了几天时间,把原本基于XML的IPC重要部分都改成用Protobuf了,之前以为会大幅度提高运行效率,结果发现原本用RapidXML库生成消息,比填充Protobuf结构慢不了多少。不过可以肯定的是,消息长度缩短为差不多是原来的1/4了,原本16KB左右,之后4KB多点。

学好数据结构很重要

学好数据结构很重要

今天早上csdn的人打电话来催了,让我快点提交应用,我说我已经写了一半了。其实不然,我只能说只搭了个框架,所有核心的内容都没开始动手呢。这次又是被block住了,又是因为不能为这个业务设计一个合适的数据结构而进行不下去了。总的说来简单的数据结构在学校时学过一点,然后就一直啃老到现在,但一直缺少能根据具体业务逻辑而举一反三地设计合理的数据结构的能力。真是忧伤啊!

第一篇

第一篇

最近在写一个彩票辅助分析程序,觉得研究彩票是个比较有意思的事情,在网上看了很多有根据没根据的文字,想把其中的一部分用程序实现出来,也不知道有没有道理,所以同时想把这些事情记录下来。

Google Reader客户端

Google Reader客户端

  最近有很认真地在写一个Google Reader客户端,仍然是使用的Qt,一切为了跨平台嘛。之前Ninayan用QML写的UI,虽然能做出一些比较炫的效果,但没有一个优秀的美工,再炫的效果最后得到的都是不好的用户体验。于是这次使用了传统Widget来做UI,感觉还不错,中规中矩的,源代码也放在github上了。   到现在为止,Google Reader的客户端功能基本上实现了,可能还有些小细节需要修改。前两天因为工作上的关系,找了点资料在看怎么提高socket的效率,公司那个产品全部是用的select模型,貌似Qt的QNetworkAccessManager类也是用的select,这个东西的好处在于大多数的系统都直接支持,思路也简单,但是对于追求高吞吐率的情况下,就得用各个系统内核各有的一套东西了,比如Windows下得用完成端口,Linux下,2.6以后版本的内核得用epoll/AIO,BSD/Mac下又有kqueue等等,可谓是八仙过海各有神通啊。然后我就又找到了asio,这个库以前用过Boost里的那个版本,没用好,当时的感觉是资料太少了,性能太差了,后来也都是尽量避开自己写socket相关的代码,直到后来用Qt中的QNetworkAccessManager。这两天抑制不住地想把QNetworkAccessManager改成用asio实现,以达到各平台优化的尽量大吞吐率。忍住!   基本功能完成后,我就开始想着把程序改成插件架构,以插件的形式支持从不同的源获取信息,比如Twitter,Facebook,国内的微博等等,也以插件的形式支持把当前内容分享到不同的宿。其实从功能上来说,跟Ninayan是有很大重叠的,毕竟当时写Ninayan也是为了做一个信息获取工具,只不过从UI的设计上限制了操作方式,最终在用户体验上会有很大的差别。

想买iPad Mini和Surface

想买iPad Mini和Surface

  iPad Mini和Surface都快要发布了,各种消息满天飞,我最关心的当然是价格了,因为作为当今世界上做软件系统最好的两家公司,他们的产品足够吸引我的注意力!   不过iPad Mini最低配的价格貌似还可以接受,Surface的就远远超出我的预期了。叹气啊!但是很可能过段时间仍然咬咬牙上了,再托阿菲帮忙从美国带吧,估计Surface至少比国内买行货少花费500人民币吧。