2014个人总结
2015年已经过去一周,去年12月份以来单位就在做2014年总结和2015年计划,没有繁杂的任务,可惜这几周我还有些私人事情需要处理,一直没有静下心来好好回顾下我的2014年——参加工作的第二年。今天晚上我还是找出一些时间简单写些文字,包括许久没有写的心情文字。已经过去的2014年到底留下了什么,我真得好好看看。
写代码的2014年
一张图描述我的码农2014年
从图中可以看到,我的2014年明显集中到三个时间段:2月下旬至4月上旬、8月中下旬至9月、12月,分别对应不同的兴趣关注点,这就暴露我目前最大的一个问题:
频繁变化的兴趣
写代码高峰期的关注点:
2月至4月:perillaroc/weibo-analytics
8月至9月:perillaroc/nwpc-grapes-meso-script perillaroc/porter perillaroc/takler
12月:perillaroc/**sms-log-collector perillaroc/sms-log-reporter **
weibo-analytics
一个做了好多年都没有实际应用的微博应用。最早在2012年自学PHP的时候练手,后来中断了。2013年关注点转向Python,在学习flask时改写首页后中断。2014年2月份时兴趣再一次转向Python,拾起这个小项目,完成了几个简单的功能,也部署到SAE上。但没有继续完善,没有参与审核,只能我自己用。总之,还是一个烂尾工程。
grapes-meso-script
我觉得自己做与工作无关的项目没有实质利益,一次组会上意识到我应该学习如何运行数值预报模式。我开始手动运行GRAPES MESOV3.3模式,从最开始的跑模式源码提供的脚本,到自己编写按模块运行的shell脚本,到最后尝试使用Python改写脚本。期间写了一系列博文,即GRAPES MESO模式学习笔记01-08。
porter:perillaroc-data-converter
结合两位前辈的转码工具源码,我学习GRADS二进制数据格式,和Micaps第四类数据格式,半个月时间,写了一个将GrADS格式转为Micaps第四类数据格式的实验程序,又是一个半成品都不算,仅仅是实验性质的小项目。同时写了两篇博文描述GrADS数据格式及其解析,《GrADS格点数据格式》和《GrADS格点数据文件解析》。
takler:task scheduler
我始终认为,我们应该有自己的工具,即便开发周期很漫长,生产效率低下,依然应该尝试。技术储备不够,就从仿制开始。开发出来的工具到底能不能用,到底会不会用,是最大的问题。但为了以后的发展,还是要有自己的东西。不是当前最优选择,或许是以后的发展方向。投资从来都是有风险的。
回归正题。8月份,我在尝试SMS中使用Python脚本时,觉得自己应该钻研下SMS这类任务调度软件是如何实现的,何不自己尝试写一个简单的示例出来。从八月末到九月的一个半月时间,我都在仿制ecFlow,包括任务树结构、状态传递、thrift通信、使用vagrant作为本地开发环境、创建独立的子进程执行任务、使用Python日志模块、任务树json编解码、任务文件解析等内容。可惜没有写些文章记录开发过程,导致很多细节现在已经记不住了。
sms-log-collector
最初的想法是将sms日志保存到MySQL数据库中,提供之后分析。所以,我先花时间尝试在AIX上编译、运行MySQL数据库。这项工作完全没有必要,我用默认配置在登录节点上运行的MySQL数据库实例非常不稳定,经常挂掉,后来我干脆使用工作电脑上的MySQL数据库。尽管性能不如服务器,胜在便于开发。又使用MySQL Python Connector在AIX上连接MySQL,才完成软件环境准备工作。
10月末完成第一个可用版本的开发,11月到12月重新设计数据库结构,并增加更多的解析器。年末的版本也仅仅是一个简单的日志数据采集工具,没有通用性和扩展性,今年需要大幅度提高,或者直接使用现有的开源数据采集工具。
sms-log-reporter
上一个项目开发到瓶颈时,开始进行数据展示部分开发。正如上节末提到的,在没有足够完整可信的数据收集模块时,不应该过多地研究如何分析、展示数据,不然得到的结论都是不精确的。
该项目依旧使用有一定了解的flask做后端,前端由我新学习的AngularJS驱动,可视化用上半年学习的d3.js实现。
为什么要用Python?技术储备?习惯?还是方便?
使用前端框架完全颠覆我之前的开发习惯,后端仅保留REST API,所有页面渲染交给前端框架实现。大大减少对后端实现的依赖,也方便前端功能的开发。AngularJS的优缺点有大量文章描述,我好不容易从一个又一个坑中爬出来,前面还有更多坑在等着我。
展望2015:明确主线
2014年没有明确的发展方向,精力过于分散。2015年要明确主线,不要广度而要深度。一切以需求为导向,以实用为目的。由纯粹学习技术过渡到应用学到的技术解决实际问题,在使用中逐步改进。更详细的计划待以后有时间再写(抓紧时间,一月份马上要过去了)。
阅读的2014年
2014年最大的收获不是来自写代码,而是来自一款阅读设备——Kindle Whitepaper。
Kindle改变了我的阅读习惯,大幅提升阅读体验,从此我舍弃手机阅读的爱好,喜欢上在Kindle上读书的感觉。
Kindle并没提升我的阅读品味,我依旧使用Kindle看着我的那些毫无营养的网络小说。但Kindle给了我阅读那些无法坚持阅读不下去的纸质书的可能,不用再带书,也能随时随地看书。对于坐地铁上下班的我来说,这是质的飞跃。尽管我的Kindle还有不少缺点,例如翻页速度过慢,我还是用它阅读了几本之前不可能看完的书:
- 《影响力》
- 《上帝掷骰子吗》
- 《把时间当作朋友》
- 《1984》
还有一些尚未读完的书。 整个2014年就看了这么几本书,还觉得自己看了不少,我真是该好好反省下了。今年至少也要做到每月一本书吧,不管人文类还是科技类,都应该用阅读开阔视野。
学习的2014年
一点儿题外话: 提到学习就头疼,工作后被说我怎么还天天想着学习而不想单位的事情、工作的事情。 回归正传。2014年断续参加过coursera的一些课程,没坚持下来。年底第一看,就完成了两个及其简单的数据处理入门课程,还全都忘记了。 唯一的亮点是2014年11月份参见软考中级软件设计师考试,比较简单,考了一个含金量不高的证。今年继续考一个有用处的困难的证书,加点儿硬件材料。
2014年总结
总结就到这里,再见2014年。