useR! 2014

谢益辉 2014-07-06

每一次参加大型会议我都要想想如何做一次不一样的报告,useR!会议是每年的重头戏,这次在洛杉矶UCLA,也是R的重镇,JSS杂志的诞生地。到报告的前一天晚上我吃饱了饭才开始琢磨第二天上午的报告该怎样讲,因为斗胆提交了一个看起来很酷的题目“Knitr Ninja”(忍者神织),内容和形式上都不能太掉价。琢磨了一下,决定用卡卡西作为忍者代表,至于“神织”嘛,想起一个短片《错误的裤子》,里面那只叫Grommit的狗经常在打毛线,于是用它的形像好了。

Knitr:

knitr

Ninja:

ninja

这么一来,萌萌哒和酷酷哒搭配在一起,无厘头效果就出来了。两张片子、两幅图、两个单词的台词。

跟上次在田纳西useR!会议的演讲一样,这次依然没有幻灯片,只有代码,谁说报告就一定得做幻灯片的。RStudio一开,把第一张片子的代码选中,等待主持人报幕,然后就是 Ctrl + Enter,运行,开讲。Knitr和Ninja都是五个字母,强迫症患立刻心里舒畅无比。可惜投影的分辨率和我的电脑分辨率不一样,本来我是在自己电脑上调好了字号,让文字能充满RStudio右侧区域的,放到投影上就变小了,这一点略不爽。

显然,Grommit不够帅气,下面观众没有给它拍照的,等卡卡西出场,有年轻观众立马意识到火影来了,于是后来我在Twitter上收集到两张影分身雷切的照片。

报告的基线就是“好像有什么奇怪的东西混了进来”,讲一些不太为人知的功能和应用,比如从Shiny应用向WordPress发布基于R Markdown的博客。放片子的代码里也用了一些R(黑)魔法,以便更切合忍者主题。当然,最后大家可能什么也没记住,只记住了我的sword()函数,因为我每讲完一张片子,就放一个剑鸣的音效。其实我做片子的大部分时间都花在了找音效文件上。

这次在会议间隙接受了生平第一次视频采访,虽然事后看觉得有些问题没回答好,不过也算大致满意了,没有出现NG导演喊咔,两只手也没像香蕉一样不知往哪儿放,可能是我太集中精力思考问题了。后来看了Romain小子的采访,显然NG无数次,这小子虽然是在法国演相声的,但还是很害羞的一只相声演员。他的采访里提到他的女儿一件趣事,就是她去看他表演的时候发现台下所有人都在哈哈大笑,于是同情心泛滥的小女儿以为爹地在台上说错话了,愣是要上台安慰爹地,搞得爹地也手足无措,不知该如何向她解释。我和Romain有点臭味相投,一方面都是比较激进的程序猿,痛恨那些过时好些年但为了维护后向兼容不得不继续使用的老标准和老软件,另一方面也喜欢琢磨台上的喜剧效果。在考虑明年丹麦useR!会议的时候,有人提议我们一起准备个相声,问,约吗?要不是我讨厌长途旅行,我就约了。

另一件我记忆比较深刻的事情是这次会议去了一个盲人R用户,Jonathan Godfrey,这小哥先去听了我的三小时knitr教程,我很好奇他是怎么看投影的。他自己的电脑上有屏幕阅读软件,所以他可以用耳机配合鼠标键盘操作。他在JSS上有一篇针对盲人用户使用统计软件的文章,这放以前我是不能想象看不见屏幕怎么写代码的,不过他敲起命令来很熟练了。我以前也没考虑过<img>标签里的alt属性对盲人的重要性,因为盲人无法读位图,所以图片的文本标注就是唯一能读的内容。

又及:可能是文化差异的原因(西方文化里的鬼不一样),环球影城的鬼屋真的很吓人。当年看贞子从电视机里爬出来都没觉得害怕,这次在鬼屋是的的确确确确实实实实在在把本小子给吓到了,不作死就不会死,没事干嘛要进鬼屋……