2014个人总结

目录

2015年已经过去一周,去年12月份以来单位就在做2014年总结和2015年计划,没有繁杂的任务,可惜这几周我还有些私人事情需要处理,一直没有静下心来好好回顾下我的2014年——参加工作的第二年。今天晚上我还是找出一些时间简单写些文字,包括许久没有写的心情文字。已经过去的2014年到底留下了什么,我真得好好看看。

写代码的2014年

一张图描述我的码农2014年

我的GitHub一年活动统计图,包括单位我参与的部分项目和所有的个人项目。

从图中可以看到,我的2014年明显集中到三个时间段:2月下旬至4月上旬、8月中下旬至9月、12月,分别对应不同的兴趣关注点,这就暴露我目前最大的一个问题:

频繁变化的兴趣

写代码高峰期的关注点:
1. 2月至4月:/weibo-analytics
2. 8月至9月:/nwpc-grapes-meso-script     /porter     /takler
3. 12月:/sms-log-collector   /sms-log-reporter 

weibo-analytics

一个做了好多年都没有实际应用的微博应用。最早在2012年自学PHP的时候练手,后来中断了。2013年关注点转向Python,在学习flask时改写首页后中断。2014年2月份时兴趣再一次转向Python,拾起这个小项目,完成了几个简单的功能,也部署到SAE上。但没有继续完善,没有参与审核,只能我自己用。总之,还是一个烂尾工程。

weibo-analytics每周提交数统计,提交峰值位于三月初。图片来自GitHub。

从2012年每天都发微博,到现在一个月才发个位数的微博,做这个项目的动力已经完全消失。也许我该找个可以替代新浪微博的类型社交平台,就可以继续这个项目了。

今天没办法继续写了,还是明天吧。2015年1月7日

2014年我的新浪微博统计,发微博数逐月下滑,11月甚至只有3条微薄。图片来自我的微博小应用。

这个项目中,总算有些眉目如何使用Flask开发简单的应用。但登陆模块Flask-Security依旧没有吃透,另外还应该看看Flask的源码。
五一长假过后,一直没有从放假的状态走出来,没有强迫自己写代码,当时晚上下班后大半时间都在玩游戏,从活动图中看得很明显。5月初写第一季度工作总结报告,7月初写年中工作总结报告,发现自己半年没有做什么事。这期间才开始利用工作和业余时间继续写代码,而这时候我的关注点又有新的变化。

grapes-meso-script

我觉得自己做与工作无关的项目没有实质利益,一次组会上意识到我应该学习如何运行数值预报模式。我开始手动运行GRAPES MESOV3.3模式,从最开始的跑模式源码提供的脚本,到自己编写按模块运行的shell脚本,到最后尝试使用Python改写脚本。期间写了一系列博文,即GRAPES MESO模式学习笔记01-08。

2014年grapes-meso-script每周提交分布图,图片来自GitHub。7月初完成shell版本的开发,7月末完成Python脚本的分解,8月末完成共有参数的提取。9月更新主要修改测试数据来源和日期。

但我只停留在规划路线图中的第四步——提取公共变量到配置文件,后续真正有价值的研究工作没有进行下去,也就没能将规划路线图升级为技术研发路线图。停留在代码阶段属于在做重复劳动,缺乏核心价值。什么能体现自己的不可替代?可不是写代码。
未来我们可能会使用ecFlow替代SMS,这是将独立脚本升级成可复用模块组件的转折点,今年可能会继续这方面的研究工作,重点完成规划路下图尚未完成的工作。
8月初我旁听单位一次新员工培训,一位前辈讲解数据转码工具的使用。当时我的工作项目也有一位前辈完成了一个数据转码工具。我的关注点转向研究GRADS的数据格式,也就有下面的这个小项目。

porter:perillaroc-data-converter

结合两位前辈的转码工具源码,我学习GRADS二进制数据格式,和Micaps第四类数据格式,半个月时间,写了一个将GrADS格式转为Micaps第四类数据格式的实验程序,又是一个半成品都不算,仅仅是实验性质的小项目。同时写了两篇博文描述GrADS数据格式及其解析,《GrADS格点数据格式》和《GrADS格点数据文件解析》。

2014年porter每周提交统计,图片来自GitHub。开发在8月中旬完成,只有没有再看过这个项目。

这个项目存粹是学习数据格式,但花了这么长时间才完成,我的效率实在是太低了。我关注的重点不在数据转码这方面,如果有机会,参与下同事的项目也是不错的哦。
之后的一个半月时间,我全部投入到一个最有技术含量、但有最没有实际意义的小项目中,又是一个重复造轮子的小项目。目标是仿制ecmwf的ecFlow,做一个任务调度工具。不过技术难度太大,十一过后没能坚持下去。

takler:task scheduler

我始终认为,我们应该有自己的工具,即便开发周期很漫长,生产效率低下,依然应该尝试。技术储备不够,就从仿制开始。开发出来的工具到底能不能用,到底会不会用,是最大的问题。但为了以后的发展,还是要有自己的东西。不是当前最优选择,或许是以后的发展方向。投资从来都是有风险的。
回归正题。8月份,我在尝试SMS中使用Python脚本时,觉得自己应该钻研下SMS这类任务调度软件是如何实现的,何不自己尝试写一个简单的示例出来。从八月末到九月的一个半月时间,我都在仿制ecFlow,包括任务树结构、状态传递、thrift通信、使用vagrant作为本地开发环境、创建独立的子进程执行任务、使用Python日志模块、任务树json编解码、任务文件解析等内容。可惜没有写些文章记录开发过程,导致很多细节现在已经记不住了。

2014年takler每周提交分布图,图片来自GitHub。8月中旬至9月末的一个半月时间,才跑通一个实验程序。

最终可以按指定顺序运行脚本,但距离实际应用还有更远的距离。
十一长假后一直到11月中旬的一个半个月时间,是2014年的第二个空窗期。这段时间经历大事件,每天下班后都在看电视剧、玩游戏,白天工作也不知道在干什么。每个一段时间,我就会对所有事情失去兴趣,进入混日子的状态。
10月末值班时,业务系统经常长时间排队而没有资源运行,想到要对这类现象定量化处理,做些对业务运行维护有帮助的工作,就锁定SMS日志这一方向。开启2014年最后一个兴趣关注点:日志分析。

sms-log-collector

最初的想法是将sms日志保存到MySQL数据库中,提供之后分析。所以,我先花时间尝试在AIX上编译、运行MySQL数据库。这项工作完全没有必要,我用默认配置在登录节点上运行的MySQL数据库实例非常不稳定,经常挂掉,后来我干脆使用工作电脑上的MySQL数据库。尽管性能不如服务器,胜在便于开发。又使用MySQL Python Connector在AIX上连接MySQL,才完成软件环境准备工作。
10月末完成第一个可用版本的开发,11月到12月重新设计数据库结构,并增加更多的解析器。年末的版本也仅仅是一个简单的日志数据采集工具,没有通用性和扩展性,今年需要大幅度提高,或者直接使用现有的开源数据采集工具。

2014年sms-log-collector每周提交分布图,图片来自GitHub。10月完成框架搭建,后续事件丰富功能。

数据收集是所有后续应用的基础,没有持续、可靠的数据,一切应用产品都无法保证质量,所以在形成完成的数据收集通路前去过多研究数据分析和数据可视化方面,实乃本末倒置。

sms-log-reporter

上一个项目开发到瓶颈时,开始进行数据展示部分开发。正如上节末提到的,在没有足够完整可信的数据收集模块时,不应该过多地研究如何分析、展示数据,不然得到的结论都是不精确的。
该项目依旧使用有一定了解的flask做后端,前端由我新学习的AngularJS驱动,可视化用上半年学习的d3.js实现。

为什么要用Python?技术储备?习惯?还是方便?

使用前端框架完全颠覆我之前的开发习惯,后端仅保留REST API,所有页面渲染交给前端框架实现。大大减少对后端实现的依赖,也方便前端功能的开发。AngularJS的优缺点有大量文章描述,我好不容易从一个又一个坑中爬出来,前面还有更多坑在等着我。

2014年sms-log-reporter每周提交分布图,图片来自Github。从11月末到现在一直保持更新,前面还有更多的工作等着我。

提高业务监控的技术含量,使我们业务运行人员的职责之一。希望这个项目会对我们的业务运行有帮助,今年会继续做这两个项目,争取申请一个项目来支持后续开发。许多同事意识到监控自动化的重要性,着手开展这方面的研究工作。如果有可能,参与相关技术的研发工作,提高我们的运维水平。

展望2015:明确主线

2014年没有明确的发展方向,精力过于分散。2015年要明确主线,不要广度而要深度。一切以需求为导向,以实用为目的。由纯粹学习技术过渡到应用学到的技术解决实际问题,在使用中逐步改进。更详细的计划待以后有时间再写(抓紧时间,一月份马上要过去了)。

阅读的2014年

2014年最大的收获不是来自写代码,而是来自一款阅读设备——Kindle Whitepaper。

Kindle改变了我的阅读习惯,大幅提升阅读体验,从此我舍弃手机阅读的爱好,喜欢上在Kindle上读书的感觉。
Kindle并没提升我的阅读品味,我依旧使用Kindle看着我的那些毫无营养的网络小说。但Kindle给了我阅读那些无法坚持阅读不下去的纸质书的可能,不用再带书,也能随时随地看书。对于坐地铁上下班的我来说,这是质的飞跃。尽管我的Kindle还有不少缺点,例如翻页速度过慢,我还是用它阅读了几本之前不可能看完的书:
《影响力》
《上帝掷骰子吗》
《把时间当作朋友》
《1984》
还有一些尚未读完的书。
整个2014年就看了这么几本书,还觉得自己看了不少,我真是该好好反省下了。今年至少也要做到每月一本书吧,不管人文类还是科技类,都应该用阅读开阔视野。

学习的2014年

一点儿题外话: 提到学习就头疼,工作后被说我怎么还天天想着学习而不想单位的事情、工作的事情。
回归正传。2014年断续参加过coursera的一些课程,没坚持下来。年底第一看,就完成了两个及其简单的数据处理入门课程,还全都忘记了。
唯一的亮点是2014年11月份参见软考中级软件设计师考试,比较简单,考了一个含金量不高的证。今年继续考一个有用处的困难的证书,加点儿硬件材料。

 2014年总结

总结就到这里,再见2014年。