又到了一年年底。照例(虽然这个例也就是去年开始的)开始年度总结。

在一年前写总结时,我决然想不到今年会是这样。事实上,当初的计划是往底层深入学习,在 Linux 或者 TCP/IP 方面有所得。但是一年后现在看,今年的工作依然集中在 Puppet 和 监控两方面。所以今年盘点,可能能让自己记忆深刻的,大多“功夫在课外”了。

年初,在编辑鼓励下开始尝试整理过去的知识体系,准备写一本网站运维相关的书籍。感谢这几年坚持记录博客,大几百的 Word 文档最后还比原计划提前写完了。写书的几个月中,我总是开玩笑的说“赚点钱买的起沙发就满足了”,虽然书还没出版,但其实这个过程中本身的收获已然很多。网上很多大神们说写书没意义,或许我还没到那种举重若轻的层次吧,我觉得这真的是一个不错的提升自我修养的手段。(当然,即便是现在回想,也觉得这过程中犯傻不断,给我一个重来的机会,绝对不选这么大话题动笔)

年中,参与 Perl 中国社区大会的举办。和其他老手不同,我本身只在三年前听过一次 Perl Beijing Workshop 而已,这次直接就被“骗上贼船”,作为报名网站的管理员维护一点信息发布,邀请还不算很熟的朋友一同演讲,当然也贡献了自己的第一次公开演讲。演讲前一晚,特意在家试讲让老婆帮忙提意见,毫不意外的被老婆批为乱七八糟。最后临场刚好卡在45分钟结束,但是从反响来看,依然选题有些宽泛,要在一个演讲里同时展示 Elasticsearch 的知识、logstash 的知识、Message::Passing 的知识,只能让听众更加迷惑。意外之喜是这次演讲的 slide 后来发到网上,倒是被不少外国人 like 甚至转到 twitter 上,赢得不少关注。

原本在 ChinaUnix 论坛上答应在大会的 lighting talk 上稍微讲一下 autobox 的运用,结果有事提前退场了,感觉失约这种事情真是超级不好意思,但愿明年还有 Perl Workshop 来给我弥补!

会上见到了 90 后的 Perler,会后没多久读到 stevan little 收回他《Perl isn’t dead, Perl is dead end》一文并重启 MOP 计划的通告,让我对 Perl 的未来依然有信心多了。

话题之外,参加了 RubyConfChina2013,Rubist 普遍比 Perl Monger 土豪多了。我们演讲人清一色小黑,他们清一色苹果……

年底读了许式伟的《Go 语言编程》,完全不是给我们这些非科班的运维人员读的东西,看完以后一点对 golang 的兴趣都没有增加,虽然本人依然坚持“能够在运维社区火起来的东西肯定是比较靠谱的”。

博客方面,欠了两篇一直没时间写,关于 docker 如何自己作image,以及 staticperl 的使用。

工作之外,花了点时间在一些开源社区:

  1. logstash

    logstash 在今年渐成气候,连它的竞争对手 fluentd 在年度报告中都承认 logstash 在美国已经势不可挡(fluentd的主阵地是日本)。个人在 logstash 代码方面只是保持跟踪阅读,因为没有业务需求推动,所以不再跟去年那样大肆修改代码。倒是通过weibo、QQ等方式回答了应该有好几十个人的问题,最后在各方鼓励下开设了 logstash 的QQ群(315428175),欢迎爱好者加入~

    另一个惊喜的事情,两位 logstash 同好在问完问题之后,主动送了《Elasticsearch Server》和《thelogstashbook》给我。

  2. Rexify

    Rexify 是德国2012年度最佳开源软件。不过受国内 Perl 社区总体不给力的影响,不可能如 Python 的 SaltStack 那样突然窜起。去年提交的 krb5 认证的 patch 在今年终于被作者合并,年中翻译完成了 Rexify 中文站 后,有一段时间没有进展了。

  3. Docker

    这是今年下半年重点看好的项目。博客中从 8 月开始就有好几篇关于这个内容,甚至专门订阅了 DockerWeekly。Docker 文档非常全,使用非常简单,实在爱不释手,最近老琢磨如何用在工作中去。最后这周,配合 pstuifzand 改进 Docker 的 Perl 客户端,主要是他写的时候 docker 默认还是监听在本地的 4243 端口,现在已经改成 /var/run/docker.sock 了。于是把 Net::DockerLWP::UserAgentAnyEvent::HTTP 的 Unix-Socket 支持都实现出来。

    另一方面,也给 Rexify 项目实现了 Rex::Virtualization::Docker 的支持,不过这个则是调用 docker 命令行的方式。

    最后,强烈谴责 GFW 屏蔽 Docker 的 CDN 边缘节点 IP 地址的行为。我本来提议让官方提供镜像方式,让我们在国内作镜像服务。结果官方表示 docker pull 的过程中连接了多个 api 服务,不是单单搞镜像可以解决的。目前只能是通过绑定 /etc/hosts 的方式直接访问官方的源站 IP,不走 CDN 了。

  4. Perl

    Perl5 社区今年发起了一系列活动,激发社区活跃性。其中包括一项挽救濒死模块。根据自己的情况,花了 3 个月时间走流程,最终成功认领了 HTML::TagHelper 模块。这个模块的原作者是个北欧妹纸,后来写 php 去了,看 linkedin 信息都已经是 CTO 了。

    因为工作中用到 MooseFS,所以仿造 moosefs.cgi 里的接口写了 Perl 版的模块发到 CPAN,结果 moosefs 的作者之一 peter aNeutrino 主动发邮件来问是否需要更多帮助。只能说大神们真的好热情……

    和氓氓等一起试图给 PerlChina 增加活跃气氛,申请了 @perldaily 帐号专门发技术内容,创建了 www.perl-china.com 网站。总的来说,努力过,成效就不在能力范围内了。

再说一些跟国外的事情,虽然都是小事,但迈出第一步,总是值得纪念的:

  1. Perl 社区每年12月会发起 advent calendar 活动。今年主动去日本的 Qiita 技术社区投稿,写了一篇文章讲 Rex::Box 的运用。虽然写不来日语,不过代码就是最好的语言~~
  2. 被 facebook 的 tech recruiter 找上来聊天,算是见识了一下除了美剧以外的英语,嗯,也就如此了。

最后一项不得不记的,关于比特币。我个人其实没有资金投入到这场狂欢中,不过暴赚几十万的同事、步步踩空的同事历历在目。一方面也回顾了一下当初的股票分析知识,通过程序作出了一些“不负责任的”指导意见,没有被同事们暴揍,算是一件很值得娱乐的事情~
从严肃意义上来说,这件事情提醒了已经迈向26岁的自己,你已经不年轻了,Perl 之外,请考虑人生和理财的问题。

“Yes, sir!”