---
title: 速记
date: '2012-06-24'
slug: quick-notes
---

简单罗列一下这两个月发生的事情。

- 5月13日~19日，休斯顿参加[Interface会议](http://www.interfacesymposia.org/Interface2012/Interface2012.html)，老板们已经多年不参加这个会议了（江湖闲言按下不表），但今年在Hadley那旮旯举办，所以举团南下
  - 在会前两天召开GGobi会议，收效甚微，主要原因大概在本小子过去半年多在cranvas开发上不给力，很久没有动静了
  - 在Hadley家烧烤聚餐，第一次面见JJ Allaire和Joe Cheng一波RStudio的人，也见到R core之一Duncan Murdoch大人，向其抱怨R网站太难看，同时见到：Keith Baggerly，和Kevin Coombes并肩战斗戳穿Duke癌症研究谎言的统计学家，Sweave重度用户，后面再提；Gabriel Becker，SearchTrees包的作者，Michael Lawrence的好搭档，两人一见面就没别的事，张口就是这程序那代码的；Norman Matloff，The Art of R Programming的作者，粤语熟练，会讲一些普通话，我告诉他我们在翻译他的书
  - 会议晚宴上统计学家兼艺术家Mark Hansen的演讲完全不知所云，很多人都觉得很好，但没有艺术细胞的我执着地认为他该下乡去种地（希望他不要看到这里）
  - 会上看到被Gelman大人长期猛烈批评的Wegman大人（这个会议的头号组织者），江湖关系复杂
  - 一如既往没有什么好报告，或者说少有我听得懂的报告，现在出门开会都这样，哥不适合在学术界生存
- 5月30日上午，RStudio开发者到访Ames村办大学，在村里和我一起讲RStudio和可重复性研究，中午和大二老板四人共进午餐，相谈甚欢，吃完饭大老板一把抓走我的账单，然后跟JJ说你的账单你自己付，我泪流满面，多么实诚又照顾学生的老板啊，在国内吃饭让客人自己买单几乎不可能，文化差异
- 5月30日下午，JJ开车带我一起去明尼苏达（其实他到Ames村的主要原因就是我开车不熟，不敢一个人开明尼），路上净是谈各种软件，包括Ubuntu的Unity界面是多么恶心，美国人开车总是喜欢双手离开方向盘手舞足蹈……
  - 晚上在当地的R小组接着报告，见到了Daniel Kaplan，几乎是自打R出道以来就开始用R的老爷子，我很喜欢他，他学习能力很强，问问题也能一下子问到点子上，现在在RStudio当客服的Paul就是他的学生，两年前RStudio出道的时候他就看准这个编辑器要火了，给RStudio提了很多建议
  - Org-mode的用户是最顽固的，Emacs果然是一种信仰，可是真的不是每个人都是极客（Org-mode是极客中的极客，反正我是招架不住）
  - 晚上住在Macalester大学的校友别墅，进门就亮瞎了我的狗眼，恐怕我这辈子都住不上这么好的房子，皇宫似的，有所得必有所失这条定律在我身上一直灵验，尽管JJ给我安排了个好住处，但我发现我把电源线忘在会场，第二天一大早飞机，来不及拿了，一周之后JJ送了我一根旧的
  - 前脚刚从明尼飞走，后脚就有当时的听众来信招人做自动化报告
- 5月31日，飞纽约，在中心极限定理（CLT）机场转机，到新泽西AT&T实验室跟Simon实习
- 6月5日晚，从新泽西乡下坐火车进纽约城，第三次和JJ报告，给纽约R用户小组，这是个超大的组织
  - 见到组织者Drew Conway，也就是Machine Learning for Hackers的作者之一，Drew让人印象极其深刻，块头太大了，像一面墙似的耸立在你面前，我说话说得脖子酸；他本是政治系的，却干着统计的活；我们讲完之后我看他发了一条推特消息：knitr真是个坏屁股！他这是最后一次组织R聚会，因为要毕业走人了，最后交代了下一任组织者
  - 其实这次报告有三个人，第三人是rApache的作者Jeffrey Horner，他和JJ一起把sundown这个库移植到R中，写了个markdown包，也就是RStudio中R Markdown功能的支柱之一；Jeff也是超高个儿，不过还好比较瘦，没那么窒息，真人版比照片帅多了
  - 讲完一伙人去酒吧，哥从小就是好孩子，这是生平第一次进酒吧，我哪儿知道酒名，酒吧里吵得要命，听不清，于是要了杯可乐，我就是这么土；和一些一直有邮件联系但素未谋面的人聊了两个小时，最后下一任组织者专门要了一瓶度数比较高的酒请我和Jeff，算是代表组织者感谢一下，那小伙也是knitr粉丝，正在写一本书，其中专门用一章介绍knitr
  - 半夜才从城里回到乡下，三次报告其实都是为了最后一次大报告排练的
- 6月12日~16日，一个人来到田纳西，useR! 2012会议，创了个纪录，给了三场演讲
  - 第一场讲cranvas，之前在休斯顿的报告烂得不堪回首，这次做了个大胆的决定，把幻灯片扔掉，只有代码，上来二话不说就讲第一个例子，就这样一直讲到最后一个例子，没有简介、动机、实现、示例和总结，事实证明这是个无比正确的决定，讲完震惊了Bill Venables长老，老板也非常高兴，兴奋地上来跟我击掌
  - 第二场讲社交化编程，其实就是讲GitHub，把SVN痛批一顿，最近半年的确在GitHub上获益良多
  - 第三场是邀请报告，这次是狗屎运，第一次做邀请报告，也就是和JJ排练了三遍的可重复性研究报告，这次演讲基本达到了效果，电闪雷鸣的观点让很多人都下定决心转向knitr
  - 这三场报告可能是我这些年近五十场报告中讲得最好的，主要是插入笑点最多，恶搞料足，这也是我演讲最看重的元素，不是为了哗众取宠，而是为了让听众集中精神，这是演讲有效的前提；后来大家纷纷问我是不是在电视台有第二职业……这些笑话也震撼了Frank Harrell主席，我跟他说大概是继承我爹吧，回头我看推特，有日本听众这样描述
    > もう一つ言うと、昨日紹介したRでマインスイーパーのあれつくったのもknitrの作者と同じ。この人プレゼンがすごく面白くて会場に爆笑の嵐を起こしてる
  - 附图两张
    ![useR! 2012](https://db.yihui.org/imgur/cs0lG.jpg)
    ![useR! 2012](https://db.yihui.org/imgur/GPFxG.jpg)
  - 第一次看见Frank的时候，我几乎悲从中来，我08和10年分别在useR!上听过他的课，精神矍铄，但这次却弯腰拄着跟拐杖，我心想怎么两年就老成这样了，后来才知道是最近刚受伤了；Frank见到我紧紧握住我的手，说你那个fig.cap和cache选项真是好用啊，我一直在用
  - 第一天欢迎酒会上，见到一位Genentech的大叔，JJ向他介绍这就是写knitr的那位先生，他看到我的名字，一下子冲上来抱住我左一口右一口……幸好是个男的，不然我要麻烦了
  - 这次useR!上给我捧场的人实在太多了，邀请报告中就有两场提到knitr，其中Kevin Coombes还专门用一张片子介绍了knitr，让我倍感荣幸，半年前我和他争论过，现在看来他已经接受knitr了，估计是Keith回去吹风了；如果你没听过[Duke那个丑闻](http://www.cbsnews.com/video/watch/?id=7398476n)的话，建议一定去看看，不可重复的研究（复制粘贴）真的是会害死人的，已经有几位病人因为那个错误的研究结果丧命；我之所以感到无比激动，就是因为有这个背景
  - 在田纳西多谢Pengcheng的热情招待，既是湖北老乡，又是Ames村办大学校友，带我四处吃喝玩乐，招待太周全了，非常感动；一起吃饭的两位台湾朋友也很聊得来，我这次算是知道了，凡是在台湾搞统计的，几乎不可能跟谢邦昌老师没有关系；说起赵民德老爷子，一致认为他像金庸小说里的大侠（洪七公？），若干年前他在人大讲写论文的讲义我至今还偶尔翻出来读一读，写的真是非常好，在我看过的所有文章中，我认为唯一有希望赶上这位老爷子的，只有[杨灿](https://cosx.org/2012/05/chase-after-eb/)一人
- 我们有没有输出价值观我不知道，但中国可以向外输出R了
  - 肖楠的日志在[Stack Overflow](http://stackoverflow.com/q/11056032/559676)上被引用，我用功夫熊猫中的一句话评论：This is a sign
  - 第五届中国R语言会议的扑克牌传到了Terry Speed长老手中，长老对此爱不释手欣喜若狂，称不惜一切代价要从中国多买一些，这位长老在统计界是中神通王重阳级别的人物，让我心情非常冲动，这又是统计之都之“人本”精神的绝佳体现，该加5分
- 论文
  - animation包的论文历经约一年半时间，终于被接受了，真慢，跟主编争论有点无聊，不怕神一样的对手，就怕LaTeX中毒的主编
  - [我期待](/en/2012/03/a-really-fast-statistics-journal/)传统论文评审和发表形式的死亡，被人告知Elsevier已经在这方面作出努力了：[Article of the Future](http://www.articleofthefuture.com/)
- 被偷东西一般不是什么好事，但要看是谁来偷了，被高手偷是一种荣幸
  - 我[看见](http://biostat.mc.vanderbilt.edu/wiki/Main/VenablesShortCourse)Bill Venables[偷了](http://biostat.mc.vanderbilt.edu/wiki/pub/Main/UseR-2012/VenablesRQuoVadis.pdf)我在knitr中定义的LaTeX样式
  - Jeroen Ooms在他的OpenCPU中[偷了](http://public.opencpu.org/R/pub/stats/glm/help/html?)我的[CSS](https://github.com/yihui/configuration/blob/master/R.css)
  - 在GitHub上fork（谁能给这个词一个翻译？）不算偷，不过被fork也是一种荣幸，knitr的fork队伍中有R大佬Douglas Bates和可重复研究的大佬及cacheSweave作者Roger Peng，目前GitHub上knitr的fork数量在[R类](https://github.com/languages/R)库中已经超越ggplot2排名第二，这就是社交化编程的体现，去中心化，让有能力的用户自己提交补丁实现他们预期的功能（闭源软件的灭绝只是时间问题）
- GSoC
  - 太云[入围](http://www.google-melange.com/gsoc/project/google/gsoc2012/cloud_wei/16001)Google编程夏令营，我们要掀起一场革命，看看在社区合作时代，knitr+GitHub能否取代（至少影响）一些旧式的刊物（如The R Journal）或网站（如R Graph Gallery），这将会是一个非常有意思的探讨
- 文债
  - 欠了一屁股文债，每天狂写，可还是有一批虎视眈眈的任务等着
  - 多年没联系的王学枫来电，说整一本高水平的R语言书，我说我的忍者扔那儿又是三个月了
  - C&H出版社默默期待着可重复研究的书稿大纲，我自刎八回都不足以赎罪
  - 上一个书稿大纲还没整完，又有拼书的来约一章了，我都不敢回复了
  - 现代统计图形咬牙重新启动，希望这次在COS一帮人的帮助下能完成第二次排版及修订任务，前面排长队要书稿的可能近期能收到我的回复了，我知道我自刎八十回都不足以谢罪了
- 其它
  - 阳志平写了一篇非常抬举knitr的[文章](http://www.yangzhiping.com/tech/r-markdown-knitr.html)，这事儿以后再说，关键是我好像在微博上看见ox评论这篇文章了，李舰问是不是天地人大那个ox，我也有此疑问，因为那个牛跟我是老乡，那时候天地人大上的名ID啊，十年前军训时听说楼上班里有个宜昌人，还兴冲冲去找他来着
  - 在GitHub上观察了若干强人，其实国内那种“少林寺扫地僧”式的高手还是不少的（如宫雨老师），例如我觉得[lq](https://github.com/lq)就是这样；GitHub真是一个近距离观察各类神人出招的好地方
  - COS论坛因为是一直盯的地方，所以不会有神的感觉，但这两年明显可以看到一批人的进步，比如肖楠已然成为一方大侠，主伟呈在许三多式成长
  - 还是COS论坛，我们该拿坛霸怎么办？坛霸就是屁大点儿事统统都发出来问星人，我个人觉得每周问三五个问题的频率可以接受，但每天都扔出来十来个问题似乎太夸张了，一方面，我们要珍惜志愿者劳动，另一方面，你好歹也要有点自学能力吧，志愿者不是奶妈
  - 在AT&T实习最大的收获可能是shell脚本，各种awk/sed乱入几G的数据，关于shell脚本，举个例子，我住的宿舍无线网络不好，经常掉线，只能重启，我搜了很久终于找到不用重启的办法，就是卸载再加载无线网络模块，于是我写了个无限循环，我叫你掉线，我叫你掉线，……

        ```bash
        #!/bin/sh
    
        while true
        do
          ifconfig | grep -q 10.2.13 && true || (sudo rmmod iwlwifi;
             sleep 1; sudo modprobe iwlwifi; sleep 30;
             echo rebooted wireless)
          sleep 1
        done
        ```

- 各位客官，你能帮我吗？我有一些杂项任务
  - MSG包中有一个[拿破仑行军/撤退路线图](https://github.com/yihui/MSG/blob/master/demo/Napoleon.R)，基于Google Maps，肖楠出品，你能用循环帮我把它改短一些吗？
  - 有一位强人Wush Wu愣是用R写了个[base64编码的函数](https://github.com/yihui/knitr/blob/master/R/utils-base64.R)，我的问题是，它能向量化吗？即：避免循环。
  - R 2.16.0将会增加一个`getParseData`函数，你能帮我改进[这个代码高亮函数](https://gist.github.com/3146836)吗？我已经把基本工作做完，剩下的主要工作是把空格加回来，因为这个函数会丢弃空格，你要么从行列号反推空格的位置，要么把原代码的符号（token）替换为高亮版本，这是一个血腥细节问题，我不想杀脑细胞
  - 我有一个丢弃了两年的[iBUGS包](https://github.com/yihui/iBUGS)，你想学习用gWidgets做图形界面吗？想学的话，我可以把这个包转让给你，我不想维护它了
  - 你能帮忙整理COS论坛素材添加到[忍者秘笈](https://github.com/yihui/r-ninja)吗？

