2018新年好

2017年,我做了这些事:

– 网络生活

写了2篇博客,太懒了,除了开年的新年好和年末的新年音乐会两大作业文,2017年其它的内容居然什么都没写。其实有好几篇都在草稿箱里,只是都没有最终完成。博客空间总访问量31646 PageView(Google Analytics数据),数字下跌接近50%。跟前两年一样,依然是在吃老本,2010年和2013年写的几篇旧文章撑起了半边天。饭否发消息49条,其中包括照片16张。

calibre修了两个微不足道的豆瓣元数据获取的Bug,给Seastar修了一个微不足道的Bug。

继续维持Linux Kernel Patch Statistics网站的运行,处理各种用户反馈过来的数据问题。几次想重构这个网站,方案也想了好几版,但是还是没有着手去做。最初的思路是想写个Flink的任务,流式去处理新的Patch信息,然后更新统计结果。后来仔细想了想,其实不用这么复杂,就目前的数据规模,直接把原始往数据库里一塞,然后正常查询就足够了。同时数据精准度也还有待进一步提高,但是这个主要是人肉工作,有不小的难度。期望2018年能把这个事情落地了。

– 几个IT产品

Amazon Echo Dot:对智能音箱的第一次尝试,总体感受是低于期望值。最重要的原因是它并不面对中国市场,所以很多功能并不适合在中国使用。最明显的就是在音乐播放这个功能上,无法识别中文歌名就是一个硬伤,播放自有音乐也非常困难。在智能家居方面,跟Home Assistant可以有一定程度上的集成,但是在国内依然用处不大。所以目前已几乎闲置。

天猫精灵:公测时第一批买到的,支持中文就是它最大的优点,智能家居的功能目前在国内也比Echo要稍稍接地气一点。从公测到现在有快半年时间了,能够看到它的明显进步的。目前在家里还是经常使用它的音乐、提醒、天气时间、智能家居等功能的。不过在有魔盒、魔盘等产品在先,我个人是不看好这类天猫XX的硬件产品的未来的。

SONY MDR-1000X蓝牙降噪耳机:在上下班的大巴上使用,降噪效果还是不错的,可以把音量保持在比较低的程度。不过这个产品有时会让我的耳朵产生胀痛的不适感。但是我其实一直没想明白,降噪的原理是把噪音声波的相位颠倒一下播放,那是不是就等同于一直有跟噪音音量相同的声音给灌到我耳朵里了?音量虽然开低了,但这个降噪的声音本身会不会损伤耳朵呢?

Brother PT-1230PC标签机:用几次就会吃灰的东西,所以买了个廉价的全新二手机器。接电脑使用是一件很不方便的事情,好处是可以完全自定义打印的内容。每次打印都会浪费很长一段标签纸,所以最好一批多打印几个才环保。然而它没有自动半切的功能,所以打印完以后还要手工把标签一段段的剪开(即使一次只打一个,也得手工剪掉前面浪费的那一段),这才是这个机器最不方便的地方。淘宝上的廉价耗材完全堪用,除了标签薄一点、表面光泽度稍差,在家用环境下应该都没有问题。

佳能CP910照片打印机:也是一个大部分时间吃灰的东西,所以也是买了个廉价的全新二手。现在偶而会有临时打印照片的需求,家附近的照相馆的打印的价格坑爹不说,主要是打印效果惨不忍睹,而线下或在线冲印服务则时效性不够。总体来说,对这个产品是满意的,打印的品质稍逊于冲印的品质,锐度和饱和度稍差。但是可以自己把屏幕调到跟打印出来的效果一致,这样就不用担心PS得好好的照片打出来不合心意了。

Synology DS918+:又换了个NAS,去年买的916+才用了一年多就把它换掉了。原因是新机器比旧机器便宜,买新卖旧,损失不大,而新机器可以支持NVME的SSD Cache,这样就不用浪费宝贵的硬盘槽位来做SSD Cache了。然而现实却并不美好,Synology的SSD Cache只能对一个存储空间生效,并且不会对系统文件分区进行加速,而且只用一条SSD时,只能进行只读Cache,所以除了在使用VMM时有那么一点点小作用以外,其它时候几乎都感受不到SSD带来的加速作用。

玩客云:迅雷出的“NAS”,背后的风起云涌的故事我就不讲了,反正我原价买了两个,卖了一个留了一个,就等于白拿了一个还有得赚。跟群晖比,这个东西真是连NAS都算不上,而且从安全性、可靠性等角度来说,我根本不敢用它。但是我非常喜欢它的思路,这才是普通人可以用的NAS:插上硬盘就能用,不用太担心内网、外网、端口映射的问题(群晖的QuickConnect?只能呵呵它一下了),没有文件、文件夹的概念,放进去的就是照片、视频、文档这样的数据,直接自动归类放好、视频文件自动下载元信息,需要的话可以手工再添加标签来分类。这样的产品用来做手机存储的扩展和备份,非常方便。

博朗耳温枪IRT6520:2016年买了一个,2017年又买了一个,必须专门拿出来黑它一下。山寨做工就不说了,操作繁琐也不说了,重点是太太太容易坏了,而且几乎没有质保。2016年我是亚马逊闪购买的,无质保。2017在京东超市自营买的,坏了依然需要自己跟代理商扯皮。一气之下直接联系了京东客服投诉,京东售后自己给兜底了,换了个新的。现在每次用还是提心吊胆的,不知道什么时候就又会测温不准了。

荣耀V9手机:三年内买的第6个荣耀手机,现在半家人都在用荣耀手机。华为的产品不良心,但还算省心。荣耀虽然硬件各种缩水,但是日常用用还算够。V9的屏幕色彩调得有点夸张,乍一看还挺惊艳的,但是仔细看还是掩盖不了它的低端屏幕的本质。NFC当公交卡很好用,指纹解锁我也一直觉得国产手机全都可以秒杀同时期的iPhone。

戴森V8 absolute吸尘器:跟只有它价格十分之一不到的某型号的小狗吸尘器来比较,它工作时的表现确实是非常不错的。不过它的塑料件的质感和做工,真是对不起它的价格。另外,因为所有的主要部件(电机、电池)的重量都在手上,所以使用起来还是有点费劲的,尤其是使用短小的吸头清理小地方的时候。

– 出行

量子号邮轮,出行前只要多看看网站评价中的差评,就可以把自己的心理预期降低到一个合理的程度,然后就可以玩得很开心。邮轮旅行的陆地行程大都是坑爹的,正确的姿势就是充分享受在船上的休闲时光。

成都,对于不能吃辣又本来就不是吃货的我,成都算不上是一个“来了就不想走”的城市。大熊猫基地比想象的要有意思一些。

南京/江苏大剧院,江苏省终于有了一个说得过去的音乐厅。祖宾‧梅塔和以色列爱乐的演出,虽然比不上维也纳爱乐乐团,但也足够惊艳。期待2018年能有值得让我再专门跑一趟的演出。

千岛湖,一个除了休闲啥也干不了的地方。

展望2018年:

还是说点工作,2017年在工作上实现了从Java回到C++的转型,如果说C++ 14语言和纯异步编程带来的挑战还不是个大问题的话,真正的挑战存在于从简单业务代码开发转型为去做高性能底层系统的设计和实现。尤其是设计阶段需要参考很多现有的系统和论文,去理解它们的设计意图,去理解它们的实现机制,并在这个基础上找到适合自己的方案,在之前没有太多积累的前提下,非常难。

可以说,2017年的工作压力是相当的大,也是我自己第一次在工作中真正开始怀疑自己分析、解决问题的能力。不过在经历了系统的几次迭代后,似乎还是找到了一点点感觉,期待2018能更好的迎接新的挑战。

关注2018维也纳新年音乐会

曾经关注过的那些维也纳新年音乐会:关注维也纳新年音乐会

在2018年的新年音乐会上,我们将迎来一张熟悉的老面孔,他就是意大利指挥家里卡尔多‧穆蒂。穆蒂1993年第一次登上新年音乐会的指挥台,后来又指挥了1997年、2000年和2004年的新年音乐会,2018年他将第5次登上新年音乐会的指挥台。

实话说,刚开始的时候我并不是非常喜欢他,1997年我是第二次看新年音乐会的直播,看到穆蒂时,我不自觉地把他与前一年的指挥洛林‧马泽尔进行了比较,相比马泽尔生动的演出,穆蒂的演出显得要严肃一些,与新年的节日气氛有点格格不入。2000年没有看直播,看录播时就没了新年的气氛,加上开场那平淡如水的《大河圆舞曲》,这一年的音乐会也没有给我留下深刻的印象。倒是2004年的那一次,穆蒂选择的那些让人耳目一新的曲目,让我改变了对他的印象。但是那段时间有传闻说穆蒂已经表态以后不会再上新年音乐会,便只能放弃了对他的期待。所以,当年初时得知穆蒂会指挥2018年新年音乐会时,颇是激动了一番。穆蒂此次登台,也破解了传说中的“天体乐声大魔咒”——在新年音乐会历史上,波斯科夫斯基、卡拉扬、克莱伯这几位大师在演完这个曲子以后就都没有再上过维也纳新年音乐会的指挥台了,而穆蒂恰巧在2004年时选择过这个曲目。

2018维也纳新年音乐会CD封面

2018维也纳新年音乐会CD封面

来看曲目单:

  • 01 Johann Strauss II – Einzugsmarsch aus ‘Der Zigeunerbaron’ – 入城式进行曲,选自《吉普赛男爵》
  • 02 Josef Strauss II – Wiener Fresken; Walzer; op. 249 – 维也纳壁画圆舞曲 *
  • 03 Johann Strauss II – Brautschau-Polka; op. 417 – 相亲波尔卡(选自《吉普赛男爵》) *
  • 04 Johann Strauss II – Leichtes Blut; Polka schnell; op. 319 – 轻如鸿毛快速波尔卡
  • 05 Johann Strauss I – Marien-Walzer; op. 212 – 玛丽安圆舞曲 *
  • 06 Johann Strauss I – Wilhelm-Tell-Galopp; op. 29b – 威廉退尔加洛普 *
  • 07 Franz von Suppé – Boccaccio; Ouvertüre – 薄伽丘序曲 *
  • 08 Johann Strauss II – Myrtenblüten; op. 395 – 桃金娘花冠圆舞曲 *
  • 09 Alphons Czibulka – Stephanie-Gavotte; op. 312 – 史蒂芬妮加沃特舞曲 *
  • 10 Johann Strauss II – Freikugeln; Polka schnell; op. 326 – 魔弹快速波尔卡
  • 11 Johann Strauss II – Geschichten aus dem Wienerwald; Walzer; op. 325 – 维也纳森林的故事圆舞曲
  • 12 Johann Strauss II – Fest-Marsch; op. 452 – 庆典进行曲
  • 13 Johann Strauss II – Stadt und Land; Polka Mazur; op. 322 – 城市与乡村玛祖卡波尔卡
  • 14 Johann Strauss II – Maskenball-Quadrille; op. 272 – 假面舞会四对舞
  • 15 Johann Strauss II – Rosen aus dem Süden; Walzer; op. 388 – 南国玫瑰圆舞曲
  • 16 Josef Strauss – Eingesendet; Polka schnell; op. 240 – 读者来信快速波尔卡
  • 17 ?
  • 18 Johann Strauss II – An der schönen blauen Donau, Walzer, op. 314 – 蓝色多瑙河圆舞曲
  • 19 Johann Strauss I – Radetzky-Marsch, op. 228 – 拉德茨基进行曲

这次的新年音乐会选择了19个曲子,应该是一个比较合适的数字,不至于让穆蒂像2004年时那样赶场子。除了目前未知的第一个加演曲目,穆蒂选择了7首从未在新年音乐会上演出过的全新的曲目,其中还包括阿尔冯斯·齐布尔卡(Alphons Czibulka)的一首加沃特舞曲,他是一位奥地利的军人、作曲家、钢琴家、指挥家。

开场的入城式进行曲是新年音乐会的常客,看到这个标题,我的耳边就响起了它的旋律,好像新一年的音乐会就这样开始了,非常期待。

接下来就是两个新的曲子,不过相亲波尔卡是选自大家耳熟能详的轻歌剧《吉普赛男爵》,所以里面会有一些熟悉的旋律出现。

轻如鸿毛快速波尔卡在新年音乐会上演出过4次,最近的一次是2003年哈农库特指挥的,这个曲子我印象非常深刻,因为它的旋律一点也不“轻如鸿毛”,尤其是在被誉为“节拍器”的哈农库特演绎下,更是激烈无比,不知道穆蒂会给我们带来如何的感受。

音乐会上半场以老约翰的两首新曲子收尾,而下半场则以苏佩、约翰和齐布尔卡的三个新曲子开场,新曲子如此集中的出现,一定会成为本场音乐会最为吸引人的部分。

新曲子都演完以后,音乐会就进入了怀旧与经典的篇章。魔弹快速波尔卡,曾经在阿巴多指挥的1991年新年音乐会和巴伦博伊姆指挥的2009年新年音乐会中出现过,是一首适合加入“噱头”的曲子,不过这次把它放在下半场还未到高潮的时段,很可能就不会有什么特别的了。

旋律优美的维也纳森林圆舞曲则是新年音乐会的常客,已故的洛林‧马泽尔就多次选择了这个曲目,并自己拿起小提琴,演奏其中的独奏部分。这个曲子中还选用了一种奥地利的民间乐器——齐特尔琴,音色很特别。

庆典进行曲虽然只在1996年作为开场曲在新年音乐会上亮相过一次,它却是一首我熟悉得不能再熟悉的曲子,因为这是我第一次看新年音乐会时听到的第一个曲子。有着这样的情怀加成,这首曲子成为2018年新年音乐会中我最期待的曲子之一。

乡村和城市以及假面舞会,也都曾经在新年音乐会上出现过,却不是常客。其中假面舞会只在阿巴多指挥的1988年新年音乐会上出现过。阿巴多指挥过两次新年音乐会,选曲风格都很特别,也带来了不少争议,2018年是阿巴多诞辰85周年,不知道是不是这个原因,穆蒂才特别选择了两首阿巴多指挥过曲子。

南国玫瑰和读者来信,这两个曲子我都很熟悉,在新年音乐会上也出现过数次,其中读者来信穆蒂曾经在1997年选择过。穆蒂在16个正式演出曲目中,只炒了自己指挥过的一首冷饭,为他点个大大的赞。

十四年未见,非常期待穆蒂的再次亮相。

2017新年好

2016年,我做了这些事:

– 写了8篇博客

博客空间总访问量61198 PageView(Google Analytics数据),比前一年稍有下降,但是实际的访问量应该还没有这么多,因为发现Google Analytics结果中出现了相当数量的Spam数据,暂时还没研究怎么能去过滤掉。跟去年一样,首页、在Linux下使用“360随身WiFi 2”calibre常见问题为Raspberry Pi 2编译内核模块这几个页面的PV占去了总PV的50%多。饭否发消息85条,包括照片17张。

– 自由软件相关

接手了一个网站:Linux Kernel Patch Statistics。这个网站的内容是按人、公司、国家等维度的指标去统计各Linux内核版本中Patch的数量。我很偶然地看到有人在LKML中吐槽说这个网站的域名过期了。这个网站的作者是我以前的同事,于是我联系他提醒他,没想到他表示说不打算继续维护这个网站了。我觉得就这么放弃一个在社区有一定影响力的网站有点可惜,所以在征得他同意的前提下,把这个网站接了过来,并且还请朋友帮忙把过期的域名给抢注了回来。

网站恢复运行的不到一个月时间中,我已经收到各种数据订正、添加功能和Bug报告的邮件,看来这个网站的的价值比我想象的还大一些。不过这个网站的后台代码确实是经久失修,所以目前数据统计的精准度非常糟糕(因为根据邮件地址把数据按公司、国别来归类,这里面的映射关系绝大部分是需要人肉来维护的,一旦没有及时维护,归类为Unknown的数据就会越来越多,也就失去了统计的意义),而且每天一次全量数据产出过程需要占用大量的CPU、IO和内存资源。所以后面需要优先先维护一下基础数据,保证统计数据质量,然后再考虑下整体的重构问题。

calibre贡献了一点点代码,改写了一下从Amazon获取书籍元信息的插件,使之可以支持中国亚马逊网站。给HBaseFlink的代码/文档各修正了一处Typo,其实只是为了实践一下给这两个项目Contribute的流程,不过后来由于工作内容的变化,没有再深入关注过这两个项目。给C++异步框架Seastar修正了一处Bug。train-graph合并了一些其它人贡献的代码和数据,发布了一个3.0版本。

– 几个IT产品

群晖DS916+ NAS:淘汰了原来用的DS214play,主要是出于盘位和性能的考虑。不过新的机器的性能依然很让人捉鸡。不过出于对DSM系统版权的尊重,我还是没有选择自己买机器组黑群晖的方案。我的群晖系统的评价依然是:轻度使用很不错,重度使用时细节缺失很多、问题也很多。但是市面上已经找不出更好的了。

Macbook Air:公司提供的工作电脑,我的第二台苹果设备(N年前得到过一个iPod Nano)。这样的电脑用来做开发机实在是性能捉鸡,尤其是为了编译Linux程序再启一个Docker的情况下。公认的优点就不说了,缺点就是有些Windows能做的事情它还是不能做,而有些Linux能做的事情它也不能做。对于我这种已经被Linux虐了十年的人来说,不能做Windows能做的事是很容易接受的,但现在不能做的事的又变多了,所以还有点不爽,于是有了下面的Dell 7040m。

Dell 7040m微型台式机:为了更有效的开发Linux C++程序,买了这个微型台式机当工作机。配置成i7 6700T的CPU,16G内存,SM951的SSD,装Arch Linux。实际用下来整体能满意,但是就编译大型C++程序来说,单核性能仍然不是非常出色。另有同事买了相似配置的Intel的Skull Canoyo,也是差不多的体验。我也知道我的应用场景下应该买个标准台式机才能配置更好性能的CPU,但是谁让我这个机器的外型的毒呢?

华硕AC68U路由器:其实去年买的AC66U完全够用了,不过还是因为一次特价剁手了更高端一点的AC68U。整体使用体验与AC66U相仿。不过从外观来说,我反而还更喜欢AC66U一点,AC66U给人的感觉是做工精致、用料实足。AC68U其实也一样,但给我的感觉却是:傻大笨粗。

Raspberry Pi 3:没啥说的,我是树莓派的脑残粉,出一个买一个。相对2来说,主要就是64位、内置蓝牙和Wi-Fi,性能稍有提高,别的就没有了。树莓派是吃灰神器是名不虚传的,这个现在已经吃灰。还买了一个Sense HAT传感器模块,做了一个贪吃蛇游戏后也吃灰了。有了3以后,我用以前吃灰的2和Camera Module做了一个网络摄像头,配合群晖做监控,效果勉强凑合。

Pebble 2:本来是在Kickstarter预定了Pebble Time 2,但因为正在用的Pebble花屏越来越严重,等不及就先收了一个Pebble 2,没想到次日Pebble就宣布被fitbit收购了(我觉得与其说是收购,不如就当是破产了更合适),Time 2也没有机会再问世了。Pebble 2的使用体验与Pebble高度一致,我很满意,只可惜这已经是绝唱了。希望在它坏掉以前,能有更出色的产品出现。

二手Kindle Paperwhite 2:跟以前用的Paperwhite比,差别并不大,只不过因为Paperwhite被老妈重度使用中,所以自己重买一个。没买3是因为性价比,毕竟我也不是重度使用。而且看书这个单一需求来说,我并不觉得Paperwhite 1/2/3/Kindle Voyage有多大的差别。

二手Intel Compute Stick:我需要一台常开的Windows机器来满足把NAS上的照片上传到 Google Photos的需求,这个东西很符合我的要求,功耗不到5W,直接由路由器USB口供电就可以了。性能对于我来说也完全够用,有了它不但解决了Google Photos上传的问题,甚至我的电脑上已经不再需要安装Windows虚拟机了,偶而需要用Windows的时候,直接远程桌面连上去用就可以了。

– 出行

南京*3、合肥、西安。对南京的感情依然不变、合肥真不是一个旅游城市、第二次去陕西省历史博物馆已找不回第一次去时惊艳的感觉。

展望2017年:

谈点工作,在用Java写了4年业务代码后,2016年,我终于又回归了技术开发。在短暂地用了一段时间Scala后,还回归到了C++开发。说是“回归”,其实还是更大的挑战,因为需要用C++ 14来写一些高性能的分布式程序,对于我来说也仍然是一个全新的课题。期待2017年可以在这个方面能有所收获。

关注2017维也纳新年音乐会

曾经关注过的那些维也纳新年音乐会:关注维也纳新年音乐会,2017年将是我第22次收看维也纳新年音乐会的直播。

2017维也纳新年音乐会CD封面

2017维也纳新年音乐会CD封面

  • 01 Franz Lehár – Nechledil Marsch aus der Operette Wiener Frauen – 内西雷迪尔进行曲(选自喜歌剧《维也纳的妇女》)
  • 02 Èmile Waldteufel – Les Patineurs; Walzer; op. 183 – 溜冰者圆舞曲
  • 03 Johann Strauss II – ‘s gibt nur Kaiserstadt, ‘s gibt nur Wien!; Polka; op. 291 – 只有帝国之都,只有维也纳(皇城)波尔卡 – 1997
  • 04 Josef Strauss – Winterlust; Polka schnell; op. 121 – 冬趣快速波尔卡 – 2005
  • 05 Johann Strauss II – Mephistos Hollenrufe; Walzer; op. 101 – 梅菲斯特的地狱圆舞曲 – 1995
  • 06 Johann Strauss II – So angstlich sind wir nicht!, op. 413 – 我们决不畏惧波尔卡 – 2009
  • 07 Franz von Suppé – Ouvertüre zu Pique Dame – 黑桃皇后序曲
  • 08 Carl Michael Ziehrer – Hereinspaziert!; Walzer; op. 518 – 闲庭信步圆舞曲 – 1979
  • 09 Otto Nicolai – Die lustigen Weiber von Windsor, Moon Choir – 月升小合唱(选自轻歌剧《愉快的温沙妇人》)
  • 10 Johann Strauss II – Pepita-Polka; op. 138 – 细花纹方格波尔卡
  • 11 Johann Strauss II – Rotunde-Quadrille; op. 360 – 圆形大厅四对舞
  • 12 Johann Strauss II – Die Extravaganten; Walzer; op. 205 – 奢靡圆舞曲
  • 13 Johann Strauss I – Indianer-Galopp; op. 111 – 印度人加洛普 – 2004
  • 14 Josef Strauss – Die Nasswalderin; Polka mazur; op. 267 – 纳斯瓦尔德的女孩玛祖卡波尔卡 – 1996
  • 15 Johann Strauss II – Auf zum Tanze!; Polka schnell; op. 436 – 跳舞吧快速波尔卡
  • 16 Johann Strauss II – Tausend und eine Nacht; Walzer; op. 346 – 一千零一夜圆舞曲 – 1992, 2005
  • 17 Johann Strauss II – Tik-Tak; Polka schnell; op. 365 – 提塔快速波尔卡 – 1979, 2002, 2012
  • 18 Eduard Strauss ? – ?
  • 19 Johann Strauss II – An der schönen blauen Donau, Walzer, op. 314 – 蓝色多瑙河圆舞
  • 20 Johann Strauss I – Radetzky-Marsch, op. 228 – 拉德茨基进行曲

2017年维也纳新年音乐会即将迎来首次登上该音乐盛事指挥台的指挥家古斯塔沃·杜达梅尔。做为当代最为杰出的指挥家之一,80后的杜达梅尔也将成为有史以来新年音乐会上最年轻的指挥。

年轻的指挥家为这传统古老的音乐会带来了新的气息,这次音乐会正式演出的17个曲目中,有8首是第一次在新年音乐会上与乐迷见面,剩下的9首中也有7首是只在新年乐会上演出过一次的“冷门”曲目。加演的第一个曲目目前还没有公布,如果“路边社”消息属实,加演的是爱德华的一首快速波尔卡,那么这次音乐会的曲目单中就将史无前例地出现九位作曲家的名字,新年音乐会在演绎施特劳斯家族音乐的传统之上,越来越多的融入了更多其他作曲家的作品。

维也纳音乐之友协会合唱团将第一次加入新年音乐会的演出行列,在下半场与爱乐乐团一同演绎“月升小合唱”。

中央电视台从1987年开始转播维也纳新年音乐会,到现在已经有30年。我从1996年开始收看新年音乐会,到现在已经超过了20年。经历了刚开始的陌生和新奇以及中间的狂热,新年音乐会如今已经成为了一种习惯。我用上面的文字列举完了音乐会曲目单的各项“技术参数”以后,惊讶地发现,对于每一个具体的曲目,我竟然写不出任何文字再去深入的点评它们。那些曾经演出过的曲目,在脑海中的印象似乎也变得越来越模糊。不过我也不打算像以前那样把曲目单上的曲子都找出来复习+预习一遍了,我相信在新年到来的时候,乐团的演绎会让我回忆起那些曾经熟悉旋律,那种与老朋友相见的感觉想必是非常美好的。

期待新年音乐会,也期待新的一年。

十年(中)

这文章已经快烂尾了,努努力,先补个中段出来。

TL;DR

其实我已经不太想写后面的内容了,写这篇文章时我已经仔细地想过我所希望在文章中表达出来的内容。总结到最后,我觉得这十年中让我自己受益最大的一点就是:突破自我,走出舒适区,积极、主动地多走一步。

对于我自己来说,即使到现在,我也常常很难主动去打破自己的舒适区,积极地多走一步。但是回首过去的十年,但凡我多走了一步,无论是主动还被迫,最终都得到了超越预期的结果。

这里说的多走一步,还不仅仅局限于自己的事。在跟别人合作的时候或者打交道时,多走一步,或者帮助别人多走一步,都是非常有益的。

2009年

产品维护的工作比想象中的更难做,尤其是换到了一个全新的产品线后,对于一个完全不了解的产品,需要同时去给客户解决多个平台上N个版本产品中出现的各种疑难杂症,实在是一件非常有挑战的事情。

有两个Case印象深刻:

  1. 有个Case我完全无从下手,只好开始“忽悠”,说了自己的一些怀疑点,让核心技术支持部门协助客户去收集更多的日志,趁收集日志的时间我就可以在后台更进一步地分析问题。有一天突然就发现,美国开发团队以前开发这个产品的一位Principal Engineer(首席工程师?反正级别很高,是个传奇人物)跳进了这个Case。他不但详细的分析了问题的原因,给出解决思路和方案,还“顺手”把代码改好、打好补丁包。后来我向他致谢的时候,他说:这个产品就像是我的孩子,我有责任把它照顾好。
  2. 有位客户发现产品界面上的CPU占用率曲线在产品连续运行了两个月左右后就会显示成持续占用100%,但实际CPU占用率并没有这么高。我从前台Java Script一直到后台程序及内核代码全部分析了一遍以后终于发现,是因为程序中用32位无符号整形数来表示开机后到当前时间的毫秒数,所以每过49.7天,这个整形数就会溢出,造成问题。我修掉了这个问题,并且定制了一个Linux内核,可以在启动时指定uptime的初始值用于快速重现这个Bug,把Patch和这个测试用内核一起提交给QA。QA后来表示非常感激,因为如果没有这个测试用内核,要Mock出一个很大的uptime值是一件很麻烦的事情。

这两个Case说的都是Ownership,说的都是怎么在尽职的前提下再多走一步。在一个人人都很优秀的环境下,“尽职”只能算是一个基本要求,想要有额外的收获,你必须有主动的额外的付出。

有了前两年“脱宅”的积累,2009年全年的每个休息日我基本上都在南京城里逛来逛去,与南京这座城市的感情也越发深厚。尤其是在经历了一些事情后,让我对人的情感有了更为深入的理解,这对我后面的生活产生了很多积极的影响。很多事情,即使不能多走一步,也应该多想一点。多想一点,也许就能让一个原本优秀的人变得更为卓越。

除了没事逛来逛去,我也把很多很多时间放在了南京图书馆。这一年看了很多闲书,包括铁路、艺术、建筑、地理、文学、数学、摄影、设计等领域。现在回想起来,真是怀念这段时间,可以肆无忌惮地把大块时间花在“不务正业”的事情上。看了这么多闲书,并不可能帮助我在这些领域中有所建树,但是对于我来说,人生的乐趣就在于不断地学习、不断地探索未知。有时候,时间就是用来浪费的。

2010年

我的第三位Manager是一个爱憎分明的人,我有幸成为他比较喜欢的下属之一,所以他给了我充分自主发挥的空间,也为我争取了很多很多的机会,甚至为了帮我争取一个去美国参加会议的机会,“强迫”另一位Manager退掉了去美国的机票,把参会的名额留给我。当然,更重要的是他在工作中给我创造的机会和对我的各种想法的重视和支持。那时公司也很鼓励微创新,我的各种微创新在他的帮助下都得以在团队内或产品中落地生根,这给了我极大的自信,也帮助我在部门内找到了属于我的位置。

机遇和挑战总是并存的,在这个开发团队,我负责了这个产品两个大版本中最重要的两个大Feature,从前期方案调研到最后开发实现,统统要搞定。还是得益于公司完善的流程和管理, 这两个版本软件做完以后,我完整了实践了两遍软件从需求到发布的完整流程,从中学到了很多的东西。同时,这两个Feature也涉及到很多跟美国开发团队以及国外一些第三方公司的打交道的事,所以又进一步提高了我跟老外们打交道的能力。这一段经历,不但让我在技术上有所收获,更重要的是让我学到了做事的方法,很多事情并不会自动朝着你想象的方向去发展,怎么才能推动事情往前迈步,既需要努力,也需要很多的技巧。其中最基本的技巧就是要合理计划、分解任务制定小的里程碑、踏实实践

这一年的业余时间花了很多在自由软件上,更多的参与到一些简单自由软件项目中去。再次提起Ownership一词,在自由软件世界里,你可以既是软件用户,也是软件的主人。当你以软件主人的心态去使用自由软件时,才会真正理解自由软件背后的理念,也才能从中收获更多的价值。