例行回顾一下2014年学习和看到的技术、思路、方案总结:

Native Code 型语言

C/C++

脚本 & 托管语言

Lua

  • 《Lua性能分析》 – 做这个得原因是lua profile不支持lua5.2。其他好用的工具都不免费。干脆就自己搞个性能分析工具,比较开心的是被gaccob拿去改装啦
  • 《tolua++内存释放坑》 – tolua++的坑真不少,已经发现的已经两个了,没发现的还不知道,所以为了保险起见,自己写了个lua函数绑定机制。等新的机制趋于成熟了再发分享出来

Javascript

  • 《基于Chrome插件的开发工具链》 – 之前在腾讯的时候,跨部门沟通效率太低,所以干脆自己写浏览器插件来做一些自动化和多个工具集成方面的工作。于是研究了一下浏览器插件的编写,实际上后来还研究了Firefox的,总结发到腾讯KM里但是忘记转发一份到blog了。现在离职了拿不到,过两天找人问问看能不能拿回来。

PHP

工具及其他

新增的开源项目

  1. WP Code Highlight.js
  2. libatbus
  3. xresloader
  4. libiniloader
  5. client-debuger

2014年的规划完成情况

  • [已完成] 第一是学习下Python,这玩意现在很火,有空得研究下;(目前挺多工具用python写得,但是都是小工具,不成体系所以并没有发布)
  • [已完成] 第二是看看Java的垃圾回收的一些实现,看看能不能用在C++里(java实现在语言层,算法比较多且复杂,c++的话暂时还没想到什么好办法移植)
  • [部分] 第三是继续看一些底层的技术书籍,比如TCP/IP详解等等(这本书没看,其他的倒是不少)
  • [已完成] 第四是基本完成协程框架(功能基本完成)
  • [已完成] 第五是重拾Java,使用Java制作小工具而不是C++,以达到更好地跨平台特性( xresloader 这货就是我一直想做没时间做,现在终于做出来的东东,java编写。跨平台,至少我自己这里Linux和Windows下都在用)

总结

总的来说,2014年感觉看得东西都更加深入一些,量少一些。今年没看多少书,大致浏览了下《C++ Primer 第五版》,精读了《深度探索C++对象模型 》,第一遍过了一下《Unix环境高级编程》这本书看一遍果断是不能完全理解的,我看完第一遍的感觉最模糊的地方是终端控制那一块。还有看了一点点的《Linux内核设计艺术》果然如gaccob所说,看起来没什么意思,有点教科书的感觉。其他的零零散散的也没什么意思的书也有,比如一个讲类似libevent的事件框架的,一个讲libuv框架的,等等。目前正在抽时间精读《程序员的自我修养—链接、装载与库》,这确实算是国人写得不多得的好书哇。

其实还是有很多平常研究的小东西应为时间原因并没有记上来,比如学习python之余大体看了一下hadoop和spark怎么用,并且试着用python+spark写了个日志分析的工具。

研究vpn的时候顺便把家里的路由器玩了一番。刷了几种开源系统,架设自动翻墙代理,甚至刷坏系统以后,淘宝买了个TTL模块焊接到路由器上,有点玩硬件的感觉。但实际上我也没深入研究,没有交叉编译系统或者软件,都是用得别人弄好的现成的东西。

今年在项目大量使用cmake以后,我也开始编写一些cmake的通用模块,但是现在还没有搞得很成熟,所以也暂时没分享出来。

其实c++方面,之前搞libcopp的时候想研究下gcc是怎么做动态栈的,然后加一个最大动态栈限制、然后让老的gcc版本使用libcopp的时候也能使用动态栈,甚至vc也能用。逐步看了些源码之后发现和abi有关,挺复杂的就作罢了。

web方面我开始用markdown来写作,主要是找到几个不错的工具,gaccob同时向我介绍了latex,我试了一下发现虽然功能很强大,但是过于复杂了,像我这种写blog又不是写书的,用起来还是不方便。所以最终还是转向markdown,然后wordpress使用markdown代码高亮没有太好的方案,于是WP Code Highlight.js 项目就诞生了。但是我以前写的文章都是用SyntaxHighlighter来高亮的,我又很懒不愿写工具转已发布的文章内容,所以做了对SyntaxHighlighterprettify的兼容。

xresloader是之前一直想做的转表工具,应为之前在公司用得转表工具配置好复杂,并且命令行版本很不好用,GUI版本一般般,还有很多很烦的编码问题,还拿不到源码。所以干脆重写一个。为了跨平台使用了java,效果不错。感觉性能一般,但是关键是跨平台而且开源哇。而且做了c++、lua、和pbc版本的读取器。还是比较爽的,有源码要拓展也是比较简单的。

其他的项目纯粹是项目中碰到一个工具需求,那么写一个工具,这种模式,所以2014年的新开项目比较多。比较开心的是有人开始给我开源的项目推送request啦。

2015年的规划

  1. 整理出通用的cmake模块
  2. 完善并整理出通用的lua模块和目前用的lua绑定机制
  3. 完善高性能的异步通信框架libatbus

其他的肯定有挺多零碎的,等2016年的总结吧。