考虑到本小子是有追求的程序员,每到年底或年初,总会自个琢磨着该拿起键盘回顾整理一下自己这一年都干了些什么。不过每到这时候,语言的表达总是不及思维灵光,一则是平时书确实看得不多(一年下来,完整看下来的书也就那么几来本,囧),二则总觉得写来出的东西不能让自己满意,质量太过低劣。好在这里本是自己的自留地,不像SNS上东西,写出来的东西是让大家看的。不过话又说回来,写作作为知识的再次提炼,当然应尽力使自己写的东西有条理、有思想,而不是被spider爬到后散布在互联网上的垃圾。
做了什么
2014年我做了什么?这个问题要是算起流水账来,可能就是balabala一堆废话了,这样问起来其实是不妥的,没有抓住问问题的关键和要害,所以会让人觉得太过宽泛和笼统了,这么问起来应该更具体:2014年,除了一些按部就班的工作外,我做过哪些在自己看来有价值、有意义的事情?这个问题回答起来其实并不是那么容易,人成长的每个阶段、每一时期,对于自己做过的事的看法总会随着未来某些事的关联以及巧合而发生改变。最常见的一个例子是,一件事情在你当时看来,你觉得很有意义,而且觉得非做不可,于是你便follow your heart,但是当你在放下那件事情并隔一段时间后,你会觉得自己做过的这件事情可能不再和当时想的那么一样非常的有价值。所以经过这么一段时间的一倒腾,再看2014年做过的事情,很大一部分几乎都是无用功,剩下为数不多的几件,算是2014年里留下的一些较深的印记:翻译了一本侧重实战方面的专业书一本,发表了一篇论文,参与了一个973项目,以及自己私下捣鼓了一些失败的web应用。
译了一本书
出书最简单的就是翻译了。这件事说简单确实挺简单,怎么在翻译它的时候自己也有些许收获,本小子觉得翻译跟自己研究方向相关,或是自己有一定基础并且对该本书里的知识又非常感兴趣的东西比较合适;说难也确实挺艰辛,周内的忙碌后好不容易到了周末,别人在尽情的high,你丫在全情的翻译,而且还要赶翻译的进度。所以,一件事情要想坚持下来,在本小子看来,以兴趣驱动的坚持是最长久的。
本小子当时在捣鼓翻译这事的时候,跟money没半毛钱的关系。只记得某日在网上神游,突见《Program Computer Vision with Python》,下载下来翻了翻目录和某些章节,理论+很强的实战让这本书看来确实很棒,而且还有跟自己研究方向CBIR相关的章节,所以在中科院开源协会里一声吼,没想到应者云集(夸张了点),然后跟文涛兄一拍即合。文涛兄那边此前做过翻译的工作, 便有文涛兄负责联系图灵出版社版权方面的事宜,本小子则找个合适的模板准备给书做个在线阅读的版本,等跟图灵社区那边确定好了相关事宜后便开始了翻译,均分合作,文涛兄前6章,我后6章。其实这个翻译工作在13年大概10月份的样子就开始了,一直持续到14年4月的左右,其中包括翻译、审稿,代码实验结果重现、来回对其中的某些句子进行校对,以及在线主页等的筹建,捣鼓了大半年,这其中的艰辛,最后凝结成了寄过来的样本书《Python计算机视觉编程》,大半年的折腾值了。这其中,作为好基友的汤大神和涛哥,给予了很多的帮助。
这事其实一直应该没完,做一件事情应该具有连续性,用现在软件开发的流行术语“敏捷开发,快速迭代”讲,从翻译到印成铅字,这只是完成了产品原型并完成了几次迭代,后面还有很多东西需要优化,比如读者反馈过来的翻译错误,代码实例复现还不完整,在线版本还有很多内容没写完等问题。当然,这本书的连续性还很大程度上依赖于原作者,几个月前在原作者的github上跟他提交过issure,原作者说打算写第二版,不过,在随后的几个月里,本小子没看见他的PCV库没啥动静。
这事没完,虽然这本书跨过了14年进入15年内容已经比较陈旧了,但本小子会尽力找时间为它添砖加瓦,要做的几件事如下:
- 在线版本内容完整
- 增加读者提交错误反馈
发了篇文章
上半年,捣鼓了两三个月,终于完成了一篇会议论文,并借着会议在厦大举办的机会在厦门游玩爽了一把,厦门风景确实很不错。
厦大科学艺术中心,很有特色的一个建筑,天空很蓝
鼓浪屿某处海滩,水很清澈,柔柔的细沙踩在脚下,非常的舒服
那一段时间确实也是非常的累,在文章有幸成为oral后,实验室老师对自己做的PPT要求不断演练和修改,而那一段时间恰好期末(实验室政策特殊,研究生该不该去上课这件事就不吐槽了)。我还清楚的记得我和丽娜在到厦门后的当天晚上还在不断修改练习PPT直到凌晨1点多。不过在大厅做完报告后,就轻松多了,剩下的一天半时间便是听听自己感兴趣的报告啦,晚上的海鲜盛宴和闽南风俗歌舞剧确实非常的不错。
有些东西,并没有你想象的那么高大上到触手不可及。ACM收录链接传送门Learning Hash Functions Using Sparse Reconstruction。
参与了一个973项目
七月份,所里放高温假,我和另一个师兄踏上了去四川绵阳联调的火车,开始了跟C++和OpenCV实战之旅。我记得上一次写C++代码是在大三那年夏天,m张让我把数理方程里的Fortran代码改成C++的时候,之后便只看过书C++方面的书。
有时会跟好基友调侃研究僧就是学生狗,每天三点一线,实验室-食堂-寝室,而研究所里的清净,有时更是加剧了这种生活的单调。其实用学生狗来形容,倒也不觉得为过,反倒借此得以聊慰。老师有什么项目,懂与不懂,操刀便上架。在绵阳调试,读代码、查OpenCV函数接口、添加新需求,每晚折腾到一两点,同去的师兄丝毫帮不上忙,人家压根不懂C++,而且在实现了原来功能后主持的老师又会提新的需求。
有时候,实际操刀的人跟早已远离技术行列的人来解释某些东西,总是一件非常困难的事,更别提隔行如隔山的情况了。
这个973项目的全称是[复杂低空飞行的自主避险理论与方法研究],从我介入后这个项目集中联调了两次,在北京密云联调的那次时间最长了,整整半个月,大伙在一个河谷里顶着寒风和冬日里的冷,而且联调的时候问题总是不断,我也是醉了。虽然如此,说起来我还是蛮喜欢做项目的,一则通过项目实战的方式可以快速锻炼自己的编程能力,二则是我总觉得科研应该转化成实际的应用。更多关于该项目的一些信息可以参阅我的简历里的介绍。
密云联调合影,接收大boss的检阅
你在写,总有人在看的。前些天,大概2月26的样子,接到北京安达维尔科技有限公司陈老师(我是在电话交谈中询问了他的名字的)的电话,说他们航空公司有这方面的需求,有合作意向,不过这事我完全没发话权,所以大致跟他聊了下这个项目背景情况以及主持项目的单位,不知道他有没有联系上。
Web开发
本小子对网站开发这件事情兴趣甚浓,在自认为自学python学的差不多了后,又紧跟着学了django。学完后经过一段时间的练习,便开始捣鼓Web开发了。有一段时间非常的迷恋豆瓣,而作为一个文艺青年,特别喜欢豆瓣读书和goodreads,对比来对比去,发觉豆瓣读书总不够直观,功能相比goodreads要弱很多,而且又没有对阅读的数据做类似阅读DNA这样的分析,所以便开始捣鼓起做一个阅读书籍管理类的web应用。这事做到后面越做越大,最后做出了一个基础原型(自认为做得还可以啦)。前段框架用得比较混乱,即用了Bootstrap,又用了Flat-UI,后台采用的是django框架,用了很多开源插件。
登录界面
等把它部署到好基友的VPS上去的时候,配置端口那一块出问题,只能采用VPS+端口的方式访问,没法绑定域名地址。这事弄到后面,因为事情多,也渐渐没怎么去搞它了。
之后兴趣转移到了开发一个图像搜索引擎上去了,至于搜索引擎的事,这是后话,这里不说,而搜索引擎的开发相关记录和说明,可以访问CNN for image retrieval,其演示系统为PicSearch。