2017年个人总结

目录

翻看博客中文章,上一篇像样的个人总结还是2014年的。15年虽然写了一些话,但连标题都写成16年的,文章的用心程度可想而知。而今年年初一直想写一篇对2016年的总结,结果拖到春节后还没有动笔,就不了了之了。对于刚结束的2017年还是要写一篇态度认真的个人总结。最近工程博士答辩给我带来巨大的压力,我需要锻炼一下自己的心态调整能力,本篇个人总结要赶在18年的第一周内完成。

人生有三喜

2017年最重要的经历当然就是我与心爱的她步入婚礼的殿堂,从此我不再是一个人,而是一家的一部分,需要承担家庭的责任,需要从一个丈夫、一个家庭的角度考虑问题。感谢父母对我们的养育,感谢爱人对我的关爱,我也会更加用心地经营我们的家庭。

诗和远方

诗只是标题,远方才是目标。远方是爱人的理想,我也渐渐爱上这个神奇的词汇。
今年清明,我们去了香港,去了这个无数次出现在电影和电视剧中的地方。品尝了港式美食,浏览了商业中心,寻觅了街道市场,也游玩了迪士尼乐园。除了人多点儿,价高点儿,香港还是个挺值得一逛的地方。
十月下旬,我们去了泰国的普吉岛,深刻感受了大海的气息。从普吉老城到海边沙滩,从佛教庙宇到特色秀场,充分感受了一把异国他乡的风土人情。这是一个以旅游业为支柱的地方,可以看到成熟的旅游业态。我们还出海去了斯米兰岛、攀牙湾和蜜月岛,虽然爱人吐得一塌糊涂,我们下次一定还要出海看美丽的海岛风景。

第一个五年

从2013年入职至今,五年时间将我从一个对未来充满理想的热血青年变成一名陷入日常重复性工作的麻木青年。都说体制内犹如温水煮青蛙,我觉得自己快要被煮熟了。之前保留的些许创造力被消耗殆尽,去年我再也没有创新性的贡献,而这对于立志于走技术路线的我来说尤为致命。与科学研究类似,技术人员一旦无法保持创新的趋势,就会淹没在繁杂的琐事中,职场再无发展前景。从最新的研究成果寻找灵感是获得创新性的一种方式,而我去年恰恰缺乏对新技术、新趋势的了解,对气象行业的最新进展也没有足够的关注,今年必须要注重这方面的训练。 下面还是进入本节的正题,总结下去年我的工作情况。

职场发展

去年年初赶上一波红利,单位要提拔年轻员工,推选年龄35岁以下、硕士以上学历的年轻人为副科长,而我们科符合条件的就我一人,因此我就幸运地被选为副科长,试用期一年。不过,除了每周参加处室例会和编写科长安排的文字材料外,工作上没什么改变,工作方式依然和之前一样,每人负责各自的任务。总之,做好自己的工作是最重要的,可惜这点上我不算优秀。
去年我花了三个月的时间,将前年开发移动端维护平台的技术写成一篇论文,投给《气象科技》。不过直到现在也没有准确的消息该论文是否被接收,审稿的效率令人担忧。青年基金项目需要一篇核心期刊论文,因此今年必须要写一篇关于分布式调度系统的论文。但去年这方面的工作没有太多创新性,今年我将面临巨大的挑战,必须投入足够的精力拿出有价值的成果。或许我还可以在移动端维护平台方面开启新的论文方向,引入新技术实现新功能。
去年我去郑州参加了中国气象学会年会,并在分会场做了一篇报告《基于SMS的数值预报运行日志分析系统》。在见识郑州遍地工地快速发展的同时,拿到一篇会议论文,走出评高工的第一步。

工作任务

诊断平台

从入职起至今都在开发物理过程诊断软件平台,依然没法拿出一个可以试用的版本。说实话今年我在这上面投入的精力太少,我总会逃避自己无法控制的工作和有困难的工作。我的团队合作能力有待提高。作为现在工作中唯一需要团队协作的项目,我却难以专注地研究下去,白白浪费锻炼项目管理能力的机会,也在浪费树立自己核心竞争力的机会。当然,我总愿意寻找外部原因来逃避寻找自身的问题。这个项目到现在这个地步,有诸多原因,我应该好好想一想这个项目接下来到底该做什么,好像几年前我就在总结中这样写,但现在我依然这样说,真是个悲剧。提到诊断软件,就不得不说单位目前的项目开发,去年一年我看明白了一些事情,有些事情不是我能决定的,所以我只能尽量不参与这些。期望现有的方式能做出有价值的成果,实在是一件颇具挑战性的任务。所以,我倾向于尽量缩小外包公司的任务量,指定明确的任务目标,如果再无法顺利完成,我只能放弃这部分工作了。

运维工具

开发运维工具依旧是我的最爱,毕竟值班要使用到。2017年我更加注重不同项目的关联,将通用的功能放到底层模型库中,并在这些模型库的基础上开发运维工具。

底层模型库

包括工作流模型库(nwpc-work-flow-model)和HPC信息模型库(nwpc-hpc-model)。
nwpc-work-flow-model 包括对业务系统的调度软件SMS的模拟。
nwpc-hpc-model 包括对高性能计算机的作业调度软件 LoadLeveler 状态的模拟。

移动监控工具

这是2015-2016年度最重要的工作成果,虽然缺乏切实的成果证明,但对于值班工作的帮助有目共睹。2017年主要工作是将重复性强且容易忘记的人工操作变为自动化工作,降低运维的工作量,提高自动化水平。主要新增以下两个异常检测功能:

  • SMS节点异常
  • LoadLeveler队列异常
SMS节点异常

检测节点变量是否正常,主要检测当前系统的日期时候是当前日期。
检测节点状态是否正常,主要检测某个系统的某个时次是否按时启动。

LoadLeveler队列检测

检测长时间运行的作业,当前有以下两个规则:

  • nwp, nwp_qu, nwp_pd, nwp_sp业务户头下运行时间超过12小时
  • nwp_pd户头下upload作业运行超过4小时


这两个功能使用 Celery beat 实现定时调用。目前各个检测任务是通过配置文件定义的静态任务,一旦 Celery 服务启动就无法更改,2018年计划引入动态任务。

实时监控网页

2017年我还学习了Prometheus,并将Prometheus的数据在Grafana中显示,配置了高性能计算机的实时监控网页。

获取得高性能计算机状态包括:

  • LoadLeveler队列:各个class的详情
  • 用户磁盘空间限额:业务账户的磁盘空间使用情况
  • 磁盘空间:HPC磁盘空间使用情况

获取高性能计算机状态的 exporter 详情见 nwpc-hpc-exporter 项目。该项目还提供各个 exporter 的 docker 封装,方便使用。

LoadLeveler命令行工具

2016年我开发了一款桌面软件提供对 LoadLeveler 队列的查询和操作功能,但单独的软件使用不太方便,因此2017年我开发了能在高性能计算机上使用的 LoadLeveler 命令行工具,封装业务值班常用的 LoadLeveler 查询操作。包括:

  • 提高llqn的查询速度
  • 支持对查询结果排序
  • 查看作业脚本,标准输出和标准错误输出文件


详情请查看 nwpc-hpc-exporter 项目

科研项目

2017年参与部分工程项目材料的编写,但遗憾的是某个项目在写过项目申请的情况下,没有按时完成项目设计的编写。这点必须要提一下,也是从这个事情中我认清了某些事实。

雷达工程项目

当时我已休假去泰国,没带笔记本,无法编写设计文档。联系科长想让他安排其他同事写下,但他说如果我没法按时完成,则让我和领导说我们科没有详细的想法,放弃这项工作。我很难理解为什么要这样做,毕竟这是能给整个部门带来效益的工程类项目,完成的软件或许能给值班工作带来便利。也许是我在前期编写文档时缺乏与科长的沟通,也许是因为某种我不知道的原因,但事实就是这样,我们自己放弃了提案,也导致领导对我们科有些想法。我还不清楚我们科的未来工作方向,期待下周我会有更清晰认识。

青年基金课题

2017年以《基于分布式调度的绘图技术研究》成功申请单位的青年基金课题,2016年没申请成功,今年只有四个同事申请,虽然我的项目被接收,但要求更严格,需要发表一篇二级核心或以上的论文,据说是与项目的级别相吻合。今年我的首要任务就是完成这篇论文。
去年完成了项目的架构设计和原型开发,但还没投入应用,需要在诊断软件中实际使用,形成一套完整的解决方案。

地球模式系统平台

很幸运能从头参加一个科研项目,上面的雷达工程是略显鸡肋的工程项目,但地球模式则是实打实的科研项目,有机会做出创新性成果的科研项目。尽管对项目的部分内容认识不够到位,但我还是能看出这是一个走在科研前列的课题,一个能深入研究的课题。我以该课题的研究项目申请工程博士,不过从本周五的答辩来看,希望不大。

技术开发

2017年我还编写了几个工作中需要的其他项目,走过弯路,留下烂尾项目。

绘图库

为时间线绘图库 nuwe-timeline 做小更新,但添加核心功能。
创建日历绘图库 nuwe-calendar,但尚未完成。

桌面软件

将桌面分析工具 nwpc-operation-system-analytics-toolnwpc-operation-system-tool 中分离,作为新的项目。同时使用 ant design 重写工具界面,并添加绘制系统时间线功能。
为了检测业务系统运行情况,开发定时软件 nuwe-timer-app,但后来功能由其他程序实现,该项目现已废弃。

数据分析

为绘制系统时间线开发单独的工具 nwpc-system-time-line-tool,开发命令行程序。

编程 v2017


从 Github 的提交量来看,写代码量呈逐季度下降趋势,这也和2017年玩游戏过多相吻合。提交量集中在1-2月和5-6月,后半年编程量下降明显,尽管11-12月意识到问题,但仍然没有本质改变。年中一段时间捡起放下多年的《魔兽世界》,持续到现在的《风暴英雄》,在加上《文明6》等其他游戏,占据了大量时间,压缩了写代码时间。没有锻炼就没有进步,作为以编程为生的程序员,不编程就代表着退步。为什么2016年的动力没能持续到2017年?如此明显地退步,值得我反思。从去年一年的经历来看,我缺乏专研一件事情的毅力,做项目缺乏耐心,遇到困难或者兴趣被其他事情吸引,就会将项目抛在脑后。即便我有规划,但不具备操作性,缺乏足够清晰的路线图。今年应该在这方面加强下。
下面简单介绍下2017做的个人项目。
为了解决 launchy 不支持 4k 显示器的问题,开发了 roc-launcher,实现简单的打开程序功能,但后期发现 Wox 能满足需求,就没有继续开发下去。
开发了下载小说的桌面软件 novel-downloader,提供三个网站的小说下载功能。
去年入手了 steam 上的 Wallpaper Engine,开发了两款桌面背景。
实现背景切换的 image-slideshow,仍有BUG尚未解决。
显示数字时钟的 digital-clock。在拍摄婚纱照的时候看到工作室电脑屏幕上有动态的时钟显示,因此开启了这个项目。目前仅实现简单的数字显示功能。
上面的多个项目都没有完整的版本,是我一贯的风格。何时才能克服这个毛病呢?

拿不起来的书本

2017年最遗憾的就是没怎么读书。前几年爱不释手的 Kindle 被打入书包,再无出头之日。我倒是看了大量的网络小说,可从这些消磨时间的作品中无法获得知识,也无法增长见闻。一个原因是搬家后坐地铁可以坐到座位,路上都在睡觉,最有机会看书的时间消失了。可这也同样是个借口,在我不睡觉的时间,我依然没有掏出 Kindle,而是抱着手机看小说。
去年我也尝试培养自己的阅读兴趣,比如放弃难读的书,重新选择一本有趣的书,但看了一两本后就无法坚持,转身投入浅显易懂的网络小说世界。书籍是培养世界观、提升修养的重要途径,今年我应该将兴趣转向有意义的书籍,开拓视野,增长见识。我不善于利用碎片时间,不喜欢花时间去读书,害怕一看书就困。但没有锻炼就没有成长,得让自己适应看书。一看书就困很可能只是一个心理作用,得克服这个毛病。今年要列一个书单,从最有意思的书开始,培养自己的阅读习惯。
去年看过最有意思的书就是《赤裸裸的统计学》,一本浅显易懂的统计学入门教程。

新年的钟声

2018年已经过去一周,我现在才写2017年的个人总结,有些不合时宜。不过做个总结一定会有收获,期盼2018年我会继续努力下去,为更好的生活而奋斗。
2018,我来了。