有好事者做了一个 GitHub 瓷砖在线生成器:https://github-contributions.now.sh,可以用一幅瓷砖图表达一个码农的 GitHub 简史。下面是我自己这些年的瓷砖:
我其实是 2009 年注册的 GitHub 账号,但图中有 2008 年的活动,那是因为我当年把我的 animation 包从 SVN 迁移到 GitHub 上,而 SVN 里的提交历史早于 2009 年。迁移过来之后腰不疼了,腿不酸了,写代码也有劲儿了。
2010 年没写什么代码,刚来美帝,上课为主。到了年底猛更新了一下 animation 包。
2011 年开始捣鼓 cranvas 包,上半年仍然要上课;暑假里准备博士生资格考试,所以暑假有一段空白。考完后的那个学期开始集中开发 cranvas 包,年底的连续空白是因为寒假回国,而之前的一点小高潮是因为我开始开发 knitr 包了。
2012 和 2013 年的精力基本上放在了 knitr 上,代码提交量也大增。2013 年 5 月左右那个大段空白又是因为回国了。2013 年下半年入职 RStudio,年底毕业。
2014 年上半年代码提交比较稀疏,整体颜色偏淡;由于在家工作的原因,我入职之后有近两年的时间都在摸鱼。这个稀疏的上半年是一个初始征兆。到了 9 月,在纽约开会时被厂里的领导约谈,有预警之意;回来后我假装卖力工作了一阵子,然后又松懈了。
2015 年年初有大段空白,那是我回国过年了。尽管我已经五年没回国过年,但这次过年简直不能更糟糕。我许诺回国了要用平时减半的时间工作(即每周工作二十小时),但这两个月里我根本没摸过几次键盘,光顾着走亲访友吃吃吃了。3 月回美帝之后,愧疚无比,开始疯狂工作。到夏天犬子出生,休了一周假。到了秋天开始开发 bookdown,然而还没过两个月,我就因为强烈的背痛倒下了。痛了两周之后基本恢复了,所以又工作了两周,然后上了手术台,又休了两周。
2016 年是 bookdown 之年,上半年代码提交比较密集。暑假回一趟国,于是又有大段空白,这次我尽力想在国内的时间里工作,但真的是太难,每天不知道怎么总是满满的安排,吃喝玩乐的干扰实在太多。隔三差五心里又惴惴不安。回美帝之后花了几个月把 bookdown 的书写完出版,然后开始 blogdown 的开发。
2017 年是 blogdown 之年,其实年初的时候雏形就已经写好,但写这本书的难度远大于写代码,主要是话题太大,技术细节太多,如果要说太细,这本书也许两年都写不完。写着写着又有点灰心丧气(下半年的开头有大片浅色区域),感觉快撑不住的时候列了一个写作计划,才顺着这根救命稻草从泥潭里爬出来。
2018 年的上半年留给了一本 rmarkdown 官方书籍的写作。本来计划了 12 章,我琢磨着一个星期一章,从 RStudio 大会回来之后用三个月时间写完。后来变成 18 章,只是把原来的一些节升级为章了,所以有些章很短。就在昨天中午,我写完了第 18 章,跟头儿开会的时候觉得可以弹冠相庆了,但下午厂长说最好是再加一章,介绍他这周开始折腾的一种新格式。晚上我再一想,learnr 这个包我在书中也没有介绍,最好也加上。于是乎,还得再埋头写两章。
以上便是一幅瓷砖图表达的一个码农的七年简史。需要注意的是,从去年 3 月开始,我启用了 Travis CI 上的一些定期编译任务(cron job),所以有每日自动提交,图中虽然没有灰色块,但实际上并不是我自己的提交导致的 GitHub 活动,最浅的绿色块基本可以视作灰色块,即无活动记录。
上面是一个初出茅庐的职场人士的记录,作为对比,下面我们可以看看本厂厂长的活动记录。他是一个高度自律的人,他的活动在这些年也相对比较均匀,不像我,到处都是大缺口。唯有 2013 年上半年活动量相对少一些,我不知道发生了什么,但我记得那之后他曾跟我说他已经落后他的计划好几个月,所以他不想分心做别的事,而是要集中精力写代码了。2013 年下半年 RStudio 招来一个做管理的主席,解放了厂长,于是他心无旁骛、乐此不疲地写代码去了。