Categories

2009 飘着

2009 年快要过去了,虽然我总是觉得奥运会明明就是今年举行的,但是日历上确实写着 2009 年。大家都写总结了,于是我也写吧,又不想用“总结”这么土的标题,就打开播放列表,找来找去看到“飘着”这首歌,回想自己这一年,也许这个词是很贴切的呢,寒假没有回家,也就飘在学校了,上半年住在玉泉校区,几乎每天飘来紫金港,下半年搬到紫金港校区,也几乎每天飘去玉泉。所以,就这个标题吧,很合适呢,歌也是很好听的。

说起来要写总结还真不是一件容易的事,我自己的记忆向来比较混乱,又是喜欢大幅度跳跃式的搜索,所以需要借助一些辅助的东西,比如 blog 、记事本、零碎的日记等等。其实这个新 blog 的开始大致就是从 2009 年开始的,所以目前的 Post 几乎就可以代表 2009 年了。

2009 年的第一篇 blog 就是关于 2008 年的总结,在那里提到了要给 2009 年定计划,然而最后其实也没有什么计划,甚至连新年愿望也没有什么想法,然而一下子就又该新年了,似乎是到了每天都要感慨光阴似箭的年龄,所以今年写总结的气氛明显感觉比去年要沉重一些呀。 :p

2009 年其实发生的事情还是比较多的吧,一个寒假和一个暑假让我明白了不少事。

寒假没有回家,没有回家的原因当然不是为了要好好学习,但是既然留在了学校就想一定要好好学习吧!实际上收获似乎比较小,主要的事情是在实验室做一个实验,好像是 Active Learning 以及 Content Based Image Retrieval 相关的,不过既然我连实验是做些什么都不记得了,可以看出来并没有太多 interesting 的东西出来。不过由于时间比较宽松,虽然可以在一些现有的代码基础上跑新的实验,我还是重新把整个 code base 写了一遍,并开始尝试各种 fancy 的 Matlab 代码组织方式,包括 packaging 以及 OOP 等,最后我写了一篇 blog 放弃在 Matlab 中 OOP 了,结论很明显,此路不通,自找麻烦。当然,与 Matlab 的斗争并没有这么终止,反正我是相当方案那种杂乱无章的代码组织方式,于是我还评估过一些 alternative ,比如 numpy/scipy ,各有好处吧,我也写过一篇 blog Matlab vs. scipy & numpy ,结论大致是,numpy 看起来很美好,但是还是用 Matlab 吧……事实上,我还尝试至少在一些小范围的实验上使用 numpy ,比如“漫谈 Clustering 系列”的实验,甚至尝试把所有提到过的算法都用 numpy 实现,做成一个库,然而也没有能坚持下来,一来我通常对某一个算法的具体最优实现方法并没有太多了解,比如 kmeans 如何用 KDTree 来加速,如何处理 sparse 的情况等等,这样一来我做这样一个东西似乎除了用作 blog 文章的 demo 代码之外,在实际应用中意义并不大了;二来虽然 Matlab 确实很 ad hoc ,但是 it just works ,对比这两者,numpy 就好比优质新鲜的各种食材,如果下功夫并且有那个能力的话,做出满汉全席应该都不是不可能的;而 Matlab 就好比面包,最大的好处就是可以直接吃。所以,选择哪一个其实就取决于你是要填饱肚子还是要学习厨艺了。

除了跑实验之外,就是看各种书以及乱七八糟的论文吧,用这些形容词是因为确实很乱,说起来,相关的可以看的书真的很多的,然而我其实每一本都没有能认真看完了,而论文则是从某个 topic 找到一些相关的论文,然后通过引用等关系找到更多的,各种都看,也没有太在意论文的质量、出处、作者之类的。然后对自己学到的一些东西做了一些总结,“漫谈 Clustering 系列”的不少文章应该就是在这段时间写的吧,算是一个整理吧,好处还是很多的,可以加深理解,加固记忆,而且这样的中文资料也比较少,对别人也有一些帮助。不过发现我自己的遗忘效率还真是有点高,有时回过去看,发现不少文章里总结过的东西,自己也一点没有印象了,大概还是没有理解得透彻吧。

不过,越来越多地偏向于理论算法相关的东西,我也稍有些担心,有一些自己更加擅长的 industry 相关的东西不能随便丢了,所以也尝试不要太脱离,比如 Open Source ,寒假把 Yasnippet 加入 ELPA了;自己也开始关注 Google V8 Javascript Engine 的东西,翻译了一下它的 Design Principle,本来还打算仔细研究它的实现代码的,因为我对 Language VM 也有一些经验和兴趣,不过最后这个愿望实际上是搁浅了,似乎并不是一件可以花“不太多”的时间就可以完成的事;另外,也帮朋友做一些东西,这个待会再细说好了;如果还有什么的话,大概就是 VIM 的渐渐熟悉吧,我目前的状态是 VIM 和 Emacs 两者都用,主要是 VIM 在 Windows 下用起来要稍好用一些,但是写 TeX 文件的话,还是 AucTeX+cdlatex 最舒服啊。

其实寒假是相当松散的,除了学习之外,我还时常冒着冷风去画画,春节是学校给没回家的同学组织过的,免费蹭了一顿饭,相当丰盛啊,伤心的是为啥自己那么容易就饱了?然后在 11 楼寝室看到杭州烟花齐放的景象,相当漂亮的。

总而言之,额,悲剧,我本来想说的是,寒假是相当虚度的,可是为什么写了这么多东西?-_-bbbb 啊,那看来其实还是做了一些事的,怎么会?是不是我把时间搞错了?反正,不管怎么说吧,其实寒假,大概还是很痛苦吧,一个人。而且读了这么多年的书,生物钟大概是形成了,整个寒假学习的效率其实是相当低的,而且最终也还是没有忍住,把《空之轨迹 3rd》装上玩了一遍。另外,关于家里,我一直都觉得,自己的父母对我约束并不多,平时也会尊重我自己的一些决定,所以我也很尊重他们的决定,而且这几年也一直都觉得自己对这些事也很淡然,不管他们分不分开,我无非是再多了一个家吧,或者再多一个叔叔再多一个阿姨好了,爸爸还是爸爸,妈妈还是妈妈,并没有太多变化。小时候在外面读书,其实是不太想家的,因为那个时候似乎没有注意到家的温馨,然而等到我开始注意时,又没有了。当然我现在依然很淡然,其实关于家庭,我不知道是我们这一代还是一直都是这样,其实我的情况比许多人要幸福吧。我只是觉得有点可悲的是自己直到这么多年以后才发现自己并不是那么不在意的。每个家里应该都还是挺温馨的吧,不过似乎与我无关,大家对我也都很客气,甚至很关心,可是我却很沉默,仿佛自己是一个陌生人一样。但是不能不回家的呢,我向来是一个比较听话的人,这次实属意外,所以在 3 月底还是回了一趟家,给爷爷扫墓。总是让父母惦记着,朋友们也时常问起,其实是很过意不去的。

啊,气氛不太对,总之呢,我的得出的结论是,还是时常回家看看吧,至于学习,假期的时候还是可以更多地放松一些吧,不要太勉强,这个寒假看起来做了不少事吧,其实也都是零零碎碎,并没有完成的或者完整的东西,也就是那种“忙忙碌碌但是什么都没有做”吧。

另一个是暑假。错过了自己想要做的事。发现机会不是等来的,而且像大四暑假这种黄金时段,错过了就不会再有第二个了。本来想,Google Summer of Code 或者实习,至少做一件事。由于自己悲剧地到现在为止还没有正式地去公司实习过,所以想去了,于是放弃了 GSoC 。取舍是必须的,然而提前退出大概算是失误吧,或者说我对“去实习”这件事太有信心了?与导师稍微聊了一下,他也支持,甚至还很主动地表示如果实验室到时候没有特别的事的话,应该还可以帮我联系 MSRA 的熟人,让我可以在那边做一些更有趣而不像平常实习那样那么多苦力的事情,我很高兴,于是也就没有自己去联系任何公司,实际上由于 moonykily 的推荐,他实习的那个组(似乎是多媒体组?)还打电话来面试过我,而且后来听说结果也还不错,但是我也并没有再去联系。到后来导师几次问我暑假自己有没有什么安排,我也都很腼腆地说自己没有安排,不过如果实验室不忙的话,还是想去实习一下。

结果是暑假我留在了实验室,什么都没有做。不知道导师是忘记了,或者是实验室有事。其实实验室是有一些事,我在暑假也做了一些事,Image Annotation 相关的,总之我觉得不是需要花一个暑假来做的事吧。不过,结果是我留下来了,浪费了一个很大的机会,当然不是怪导师,这个事情如果有失误的话也完全是在我自己了,大家应该都明白如果真的想要去做一件事,通常都是能做成的。其实另一方面也是一样,如果自己本身就没有很坚定的话,那是肯定什么都做不成的吧。至少我还是得到了一个教训的。我太被动了。

那么暑假呢?留下来之后,由于生物钟的关系(好吧,其实是个很好的借口),效率变得非常低下,到后来果然又玩了些游戏:之前没有玩过的《仙剑三》、《天之痕》和之前玩过的《三国志 11》。我有一个记事本,主要功能是对每天的事情做简单的计划或者记录,每当我看到里面 8 月整个是空白时都觉得一阵心寒…… -.-bb

不过我也没有完全堕落掉啦,从 blog 上来看的话,大致做了几件事:

  • Yasnippet 维护和后续开发工作的移交:Open Source Never Die
  • Windows 7 各种测试版趋于稳定,发布在即。于是我将笔记本装成了 Windows ,开始明确划分笔记本和实验室的台式机的职能。
  • 试图研究输入法(特别是在装 Windows 之前),因为 sunpinyin 的文档比较丰富,所以看了一些它的设计文档以及相关的代码,本意是想是否能把自己学的一些相关的东西用到里面加以改进,期间再结合看的一些其他相关的东西,开始写“漫谈 Language Model 系列”,计划写四篇,其实大致结构也都有谱了,本来想应该可以很快写完,但是最后写了两篇之后搁置了,直接原因是我想在实现篇中用一些实际搜集的数据。
  • 于是为了搜集数据我开始折腾一些爬虫相关的东西,反正假期时间比较充裕,于是我“完美主义”的瘾有些犯,最后无意中找到 Scrapy 这个东西,很有意思,研究了一下,也写了几篇 blog [1][2]。不过,由于到 8 月份真正做事情的效率已经算落到低谷了,搜集实际数据的进展相当缓慢,最后 8 月末去做了另一件事,所以最终这个任务没有完成,Language Model 系列 blog 也无限期暂停了,暑期对于输入法的研究所完成的全部工作也到此为止。

总结呀,暑假真悲剧呀!同寒假一样吧,很快就会颓废起来,但是这么长的时间不能全让他颓废了,仅靠自律还是很不靠谱的,如果是在实习之类的有外部约束的情况下应该会好一些吧。我不得不认识到,原来我的自制能力还是不行啊,特别是在比较长期的情况下。所以我现在比较担心的是我的整个研究生阶段了。其实两年半时间非常短,实验室比较宽松,导师总是说给大家更多的自有大家可以自己选感兴趣的研究方向,然而实际上并不好选。第一学期有很多课还是比较好的状态,到后来没有课了,一切全由自己来把握的话,我真的很担心猛然发现已经是毕业前夕了却还没有选出自己感兴趣的研究方向。那可真是天大的悲剧。自己也要多花心思,也要多和导师沟通一下才行。 >_< 另外,2009 年也尝试了一些类似于兼职的事吧,不过像我这么懒散被动的人,确实几次都是被抓的,在我看来几次都是悲剧吧——我都没有坚持到做完。一次是关于 Sentiment Analysis 的东西,朋友的创业,找我的时候我只是说可以帮忙,其实也是在给自己留后路,由于那段时间实验室一直比较忙,所以一直没能太深入,后来就渐渐没有再关注了。再一次是 LaTeX 排版,完全是人力活,我也不知道那个人是怎么找到我的,而且我也不知道我为啥就答应了,也许是我说话太委婉了,是不是该好好学习一下如何来拒绝别人?结果也是比较枯燥,最后粗略地完成了任务,并表示拒绝任何后续的东西了。=.=bb 然后 8 月低去了一趟温州,是朋友的创业公司,直接去同客户接触了,一个 Erlang 的项目,算是从某种程度上体验了一下实习吧,最后没有能坚持下去一方面也可以说是没有办法吧,项目的计划是 2 个月,我参与了 9 月和 10 月,项目没有按预期完成,但是我不能再花太多时间在里面了,实验室、课程和俱乐部的事迫使我退出了,当然还有一个重要的原因是这样结果延期的项目到后期其实是相当痛苦的工作。不过总结起来在这件事情上还是有相当多的收获的:

  • 与客户直接接触,幸运的是这是一个挺有想法并且也很聪明的客户,不过,我想以后我再也不想做这样的事了吧。另外,特别讨厌他抽烟。
  • 体验了一下“上班”的生活:起床,去公司,下班,回来睡觉。每天重复,让人崩溃。还是在学校里好啊,读书真好!
  • 了解了一些创业公司的事情(虽然并不深入),结论是,太辛苦啦,真不容易啊,所谓辛苦在于,即使你是一个很纯粹的技术公司,你也不能只是关注与技术,而是要去 care 一个公司运作的方方面面,各种细节的问题会瞬间让一个人的大脑离散化吧,特别是像创业公司这样小规模,没有成熟的管理流程,没有足够的人手,什么都要靠自己的情况。特别是在成为俱乐部 President 并开始关心整个俱乐部的各方面事情之后,越发觉得维持一个公司的运作对于我来说是 totally mission impossible 的吧。
  • 在实际项目中使用 Erlang ,得到了一些经验,也有不少失败的尝试。对于 Erlang 这个语言,只好说是又爱又恨相当恶心吧,不过关于 Actor 以及 Message Passing 这样的东西我是彻底喜欢上了,导致后来自己在其他语言里写一些多线程的程序时都会不自觉地开始做一些“山寨版的 Actor 实现”了。

不过反正也还是中途退出了嘛,我可以找出许多理直气壮的理由来,但是说到底还是有些愧疚的。每次都没能帮忙帮到底,下次各位要找兼职什么的还是不要来找我了…… =.=!!

然后呢,9 月开始由临时宿舍搬到紫金港,开始了正式的研究生生活。一如 houshui 在 MSTC 月刊里的那篇文章一样,读的不是研,是寂寞。关于同班同学,除了实验室原本就认识的两三个人之外,其他的人至今完全不认识,连班长是谁都不知道,荒唐的事还有更多,比如,我至今不知道三个室友叫什么名字,再比如,我至今还在睡着凉席。其实我也就是这样样子了,不熟悉的人,即使上下铺一年也几乎不说话,这样的事情也不是第一次在我身上发生;熟悉的人,站在路边也能一口气聊上一个多小时不知道时间,也是有过的。但其实这就是研究生生活呀。其实我该习惯了,因为本科无非是稍微好一点而已,不过现在是连寝室也不是一个让人觉得值得回去的地方了。

如我一开始说的那样,自己这一年不停地在 ZJG 和 YQ 之间来回,之前住在 YQ 来 ZJG 是因为要来实验室,现在住在 ZJG 要去 YQ 是因为要上课。然而有时候我发现自己即使没有课或者跷课了还是会跑到 YQ 去,到了 YQ 自己在 bgs 里转来转去,又很想回 ZJG 了,好像不停地在找什么东西一样。当然什么都没有找到。最近听到一首歌里有唱这样一句:

there’s a reason why
people don’t stay where they are

不知道是不是说的这个意思,但是当我细想自己一天的生活时,才发现如果没有 MSTC 的话,我也就是每天早上起床去实验室,晚上回寝室睡觉,大概数周甚至数月只开口说几句话也是有可能的啊——真是太恐怖了。

其实对于俱乐部,大家也都应该是有很深的感情的,而我想我和大部分人的区别大概在于:MSTC 是我的课余生活或者说社交圈的全部,特别是现在这个情况越发极端了。于是接手俱乐部 President 时没有犹豫。我以为我能干得很好呢,才发现这是一件多么不容易的事。当然我会努力,从九月份到现在,其实是能很明显地感觉到自己在慢慢成长的。当然,变得成熟了我也还是会是 kid 啦 :p ,另外,作为主席也和更多的人有了接触,越发体验到大家各自的强大和可爱之处了。 😀

困死了,两点半了,接下来我开始列表式吧…… >_<

  • 本科毕业,穿了学士服,同学各奔东西,一切无非是一眨眼之间。
  • 自己买了一个 Thinkpad X200 。
  • 感情上巨大波折,重新思考许多问题,以及自己的处事方式。
  • 喜欢上孙燕姿的歌,之前总是单纯喜欢歌,现在大概是第一次开始因为歌手的声线而喜欢歌吧,也是第一次把一个歌手的几乎所有歌都找来听。
  • 犬夜叉漫画结局了。
  • 开始使用记事本,一年的时间证明,对我来说,这是优于各种电脑或者电子设备上的各种 GTD 类工具的,不管是做 plan 还是简单的记录。
  • 有些时候变得不那么完美主义了,开始接受许多“it just works”的方案。没有太多的精力来折腾了。
  • GIP 0 结束,GIP 1 也将在本周结束。活动形式趋于成熟,然而目前来看气氛有一些不太健康的感觉,不知道是不是因为《Beautiful Code》这本书本身的原因,大家在读每一章的时候似乎有些不自觉地以一种批判的态度来对待了,而不是更加注重我们从中能得到什么或者是怎么去吸收作者试图传达给我们的东西。今后我会尝试改变吧。
  • 仍然在与 Matlab 作斗争中,尝试了 fancy 的 OOP ,再尝试了无比混乱没有任何组织的代码方式,目前正在尝试折衷方案。发现自己解决很多问题的方法都是通过一些尝试来逐步调整。
  • 仍然没有 paper ,虽然帮导师做了一些工作,然而运气不太好的是投的几篇 paper 都被据了,自己原创的 idea 则更是没有,要做一些理论推导就更显得功底不足了,有一点点迷茫,不过应该会慢慢好起来吧。
  • 完整看了《梦断代码》、《麦田里的守望者》、《明朝那些事》、《炼金术士》、《上帝与新物理学》、《世界是平的》。
  • MSTC President 和实验室 IRML Group 小组长,一些管理方面的事情开始多起来,时常被外部事情打断,处理事情的方式开始出现严重多线程时间分片的情况,目前平衡还没有把握好,最典型的情况是拿出手机看时间,看的过程中突然去想其他事了,当看完把手机放回口袋的时候发现完全不知道是几点了——这样的情况现在还时常发生。
  • 第一次坐船。杭州的水上巴士。
  • 见了一个小学 & 初中同学,解开了八年的结——对自己很无语呀……
  • 参与 Rhythm 发起的 CPiE 的翻译,除了 V8 设计文档之外,第一次翻译东西吧。
  • 尝试再恢复 iRobot 开发,最终还是再次暂停。 T_T
  • 手机又丢了一个,新手机依然是 Nokia ,第一次用智能手机,虽然是最低档的那种。
  • 第一次用 RPGMaker。
  • 选了日语课,开始学日语,虽然现在还非常非常初级。
  • 第一次吃披萨。
  • 第一次从玉泉步行到紫金港。
  • 第一次看日食。
  • 第二次 K 歌。
  • 似乎渐渐开始能喝出各种茶叶的不同了。
  • 现在睡前总是会在大脑里把各种各样的事都过一遍,结果每次都要非常困难才能睡着,亟待改进。
  • ……

列了好多,总结起来,其实就是整天都在忙碌,但是却什么都没有做,或者说做了很多事情,却一事无成吧。不过我也不是那么沮丧。毕竟看起来还是相当充实的一年。而且失败的东西其实是能得到许多教训的吧。

太晚了,要赶回去睡了,都快要四点了,于是不写了吧。每次写都要这么悲剧啊。 >_< bb

8 comments to 2009 飘着