302010

来这篇流水账日志早就该发了,一直懒得写,放在草稿箱里已有一个月,还是拖出来简单写一写算鸟。正好开学前老板说,你娃儿去开了useR!会议,那开学第一周的组会上就你和Marie来说说你们的观察吧。于是乎,我又绞尽脑汁回忆了useR! 2010。

公元2010年7月19日凌晨3:45起床,搭租好的车从农村去机场,一小时后到达。路上看见天边电光闪闪,非常吓人,我心想完鸟,这飞机还能飞么?机场一路进去,木有任何延迟或取消航班的迹象,早上6点,按时起飞,我心里捏着一把汗。这机长也不是盖的,拖着飞机掉头就往没有闪电的方向飞,绕道去芝加哥,幸好菩萨及圣母保佑,平安到芝加哥ORD机场,大约40分钟后,搭下一班飞机去DC里根机场,算是故地重游。出机场又找预定好的车,开了一个小时才开到马里兰NIST,路上又经过那华盛顿纪念碑啊、林肯纪念堂啊、造币厂啊之类的地方,也不稀罕。

这次张翔张主席也从国内不远万里漂洋过海到NIST开会,我琢磨着他可能是唯一一个从中国大陆来的参会者,报名的人当中还有另一位兄弟似乎也要来,但后来不知为何掉链子了。张主席本来订好了租车,结果到了美帝,驾照上木有对应的英文翻译,于是也木有办法租车,而本小子至今还没学开车,那么就地铁公交加“11路”车,总之找到了旅馆。张主席到了NIST附近,没直接去旅馆,而是气定神闲找了家餐馆吃饭去了,我只好吭哧吭哧去找他吃饭。主席就是主席,也不是盖的,不拖箱子不拎包,而是整个登山包背着,连睡袋装备都有,那是相~昂~当的专业。

从农村去了城市,自然是不便,虽说是城里,NIST周围似乎也是鸟不拉屎地不长毛,找了家超市胡乱买些食物水果,回旅馆歇着。下面进入正题。

282010

年前Bill Venables在Exegeses on Linear Models中写道“SAS之于统计计算就像是微软之于个人计算”(但愿我的翻译是准确的),说得当然没错,现在SAS已经是“商业智能市场最大的独立厂商”(SAS的自我介绍)。不过Venables用“微软”这个比喻显然不是在夸奖SAS,接着看前面的PDF链接就知道了。去年11月SAS将一家叫WPL的公司告到伦敦高院,原因是“WPL违反SAS学习版的协议、对照SAS(的语法和结果)做了WPS软件的开发和测试工作”,今年7月出了初步结果,如我们能想象到的,天下公关大多一样:SASWPL两家公司都说自己打了胜仗。这让我对WPL也没什么好感,当然它也没办法,要不然产品没法卖了。

我不知道SAS学习版的版权是如何规定的,也不是法律人士,官司本身我无法评论。作为习惯开源软件的人(也就是脑子被“毒化”了的人),我个人对这种保护版权到极致的行为非常反感。WPL对照SAS进行开发,都会被起诉;现在的很多影音播放器在功能和界面上看起来都大同小异,是不是要互相起诉一番呢?我要是唱一首周什么伦的歌,他是不是也要告我学他呢?(当然我不会唱他的歌)用电影《十全九美》中那位钦差的话:“甚么浆糊啊?!注1……”

开源软件的哲学在于鼓励分享,为有能力改进程序的人提供机会(源代码),并保护这种分享在软件流通过程中不会被封闭。自由软件运动的发起人Richard Stallman有一个听起来很傻的例子:如果你的好朋友看见你的一个软件很好用,但是版权规定你不可以拷贝给他,你是要放弃友情还是违反版权呢?两件事情都很“邪恶”,显然你要选择相对不太邪恶的那种,也就是违反版权、把软件拷贝给你的朋友。(这是我对他在useR! 2010的演讲原话的翻译,听起来像个笑话,笑完之后想想,我们的确就是这么干的)

向往“透明”和“分享”是人类的天性,我们大多数人憎恨各种制度的不透明,憎恨专制,可是对软件却很宽容——只需要它能完成我的任务即可,管它开源闭源(部分包括我本人)。在很多方面,这确实也没什么,听歌看电影上网,谁管背后的软件是什么,只要好用就达到目的了。在休闲娱乐之外呢?有些人用了同样的想法:只要这个回归模型/结构方程模型能跑出来就行了,管它是怎么跑出来的。Stallman不喜欢Linux的创始人Torvalds,就是因为后者倾向于实用主义,而不顾开源的哲学。闭源软件的发展壮大就像滚雪球,不断积累人们的信任,因为对于闭源软件,除了信任,你无法做其它事情。有人要说了,你小子真是个怀疑狂,你要是不相信的话自己跑个回归对比一下结果呗!哈,听起来的确有道理,可是我跑哪个回归呢?这个回归对了下一个能对么?若回归是对的,主成分分析会不会有问题?就像P与NP问题,对闭源软件来说,验证每一条结果都很容易,但求解过程几乎不可能推出来。开源软件在bug问题上的做法看起来是违反常理的:自己的缺点怎么能公开呢?岂不是很难被人信任?事实也的确如此,开源软件的成功案例相比之下并不太多,人们对它敬而远之,其原因在我看来只不过是商业宣传的后果而已(看看周围的领导,有哪个在决定采购软件的时候不是看商业公司的影响力?)。

实际上我对自由软件的前景并不抱太乐观的态度,当然我觉得它肯定会存在并将长期存在下去(比社会主义初级阶段要长得多),但它很难真的强大起来。自由软件往往给普通百姓一种印象,就是“嘛?那都是黑客或编程疯子用的工具,我要算回归,干嘛不点按钮、非要写lm(y ~ x)”,这是个问题。如果你不够强大,你的声音就会被更大的声音淹没,正所谓人微言轻。Stallman的声音比起微软,不知道是不是小到可以忽略(加上他那样强硬的个性,有些人可能难以接受)。我的意思是,如果自由软件世界的人只关心程序本身,而不顾外部运作手段的话,是不会强大的。有时候我经常回忆我在08年到09年间在某咨询公司的一些见闻和体会,比如关于大局的“产业为本,战略为势,创意为魂,金融为器”或是关于个人的“忠诚心、信任度、专业力、江湖气”。就快要做爸爸的江堂兄(以后我们改称“虎娃/虎妞他爹”好了哈哈)以前连载了十几篇“男儿三十未封侯”,其实我脑子里也有那么点“封建思想”,不过“三十封侯”对绝大多数人来说已经是不可能的了(眼前本小子三十封没封PhD都没谱呢)。

呃,我说到哪儿了?……

——————————-
注1:WPS是WPL的一款软件产品,据其网站介绍,它同样能跑SAS代码,价钱不到SAS的十分之一,这次判决结果使得WPS还可以被(厚着脸皮?)卖三年,不知道SAS的大蛋糕会被咬掉多少,我估计不会对SAS有什么影响。

注2:这里的“甚”在原话中读作卷舌的“耸”,汉字中没有shong(三声),所以写不出来:shong么江湖啊。

注3:如果这里的读者有人阅读REvolution的博客的话,会发现他们那篇关于SAS和WPL文章显然偏向R,作为统计学家,却不把数字交待清楚,什么“一半被调查的人想转出SAS用别的软件”,典型的新闻噱头标题,其实挺没劲的,不知道算不算是为自己产品写的“软文”。

注4:开源从常理来讲本来就是吃亏的行为,但还是有人愿意贡献,而有些可耻的闭源软件却要违反GPL协议,明明使用了开源的成果,却不将开源部分的源代码公开,这里面包括QQ影音和暴风影音(使用了开源软件FFmpeg)。GPL协议的要求如此简单:你可以将开源软件用以商业用途,愿意怎么卖怎么卖,但前提是你必须把来自开源软件部分的源代码公开,不可以收入闭源软件隐藏起来(比如仅仅使用dll),不知道为什么有些软件连这么简单的要求都不能遵守。

252010
假回国,办完一堆事情,回家躲在小村子里悠哉悠哉,无丝竹之乱耳,无案牍之劳形,谈笑木有鸿儒,往来全是白丁注1。那古人云“春困秋乏夏打盹,冬日漫漫睡不醒”。本小子虽然贪睡,但在闭关写书这件事情上不含糊。其实与其说在写,不如说在复制,因为以前已经用纯LaTeX写了很多内容,后来看到pgfSweave包和LyX之后,觉得纯LaTeX太麻烦了,于是把原来的内容都复制到LyX中接着写。到从村子里出关时,R的基础图形(graphics包)已经全部写完,包括常见的底层作图函数和几乎所有高层作图函数。

后来回到有网络的世界,git push一下,就同步上网了,供各位客官公开下载(见于本站“作品”页面)。过了一阵子,领导的领导们看见了,觉得这样做有点不靠谱。再过了一阵子,又有好几个人建议我不要放出来公开下载。我呢,也绝非来自石器时代、对“世风日下人心不古”一无所知,佛曰“我不下地狱那哪个来下地狱呢?”佛敢下地狱,那是因为他是佛,是佛又咋地?佛有核心竞争力啊。现在这个忙碌年代,我们(别人)想尽办法折腾别人(我们),折腾的途径就是评价。网站不看内容要看备案,活人不看要看KPI,百姓生活不看要看GDP……而混学界的人就得靠著作来评价,于是使出浑身解数去发表,自己努力也好,坑蒙拐骗也好。我这样赤果果把作品放在网上供任何人下载,说出来真是一件很恐怖的事情,娘亲呐,多少豺狼虎豹盯着呢。

本来想继续扯到李一、马云等人,似乎有点扯远了,我是在想像马云这样伟大的宗教领袖式人物为何需要道教思想的支撑。俺们这个时代的人,真的越来越没底气了?打住打住。

最后我接受了腾飞的意见,把原本公开的书稿撤下来了。倒不是怕盗版抄袭,主要是一本不完整的书稿,对读者似乎不是一件好事,等正式完成之后,再集中发给大家提意见,这样效用会大一些;再想一想,出版之前公开下载也会对出版社带来一些麻烦,于是撤销下载。当然,目前我仍然内部开放书稿,我熟悉放心的人以及答应我在COS论坛帮别人回答图形方面100帖的人(鼓励为别人做贡献的人),皆可获得我的书稿。这本书的目录部分可以公开浏览:

《现代统计图形》目录下载(PDF)

各位客官若有任何建议,请随时与我联系,我会在完稿前尽量多采纳读者的意见。

—————————————
注1:平民老百姓。

082010
丰同学建议在《现代统计图形》书稿中插入一些彩蛋,我想第一颗蛋就用这些杂乱无章的彩色点线吧。不过小的实在拿不定哪一幅图看着更“艺术”一些,因此请路人帮忙挑选一下。下图只是众多可能的随机图中的一幅,更多图形请下载查看后面的PDF文件。挑好之后把图中的起始数字告诉小的,小的会在书稿的致谢部分说明您的贡献。

用随机大小和颜色画点

用随机大小和颜色画点

下载全部40页PDF图形文件(2.7Mb)
082010

我不确定这是不是R和Sweave能达到的最漂亮的境界:

下载:一份由pgfSweave生成的人模狗样的动态文档

这两天花了点时间,把跟LaTeX、LyX、Sweave有关的一系列中文问题从头到脚翻了个遍,目前为止,明白并解决了如下问题(基于带有MikTeX 2.8的CTeX 2.8.0.125、LyX 1.6.5、R 2.10.1、R包pgfSweave 1.0.3,操作系统Win XP,从头到尾一直用UTF-8编码):

  1. LaTeX说中文了)LaTeX生成可复制粘贴的中文PDF文档:由于我的惰性,还用着N年前的CTeX,那个老版本CTeX中的MikTeX貌似一直有问题,比如无法更新LaTeX宏包,更不必说那些dvipdfmx之类的程序了,估计人家作者都已经更新了无数个版本我还不知道。在我陈旧的印象中,要用LaTeX生成可复制粘贴的中文只有一种办法,就是用dvipdfmx把dvi转为pdf,而我陈旧的印象又记得dvi文件只能由latex命令生成,并且用latex编译的文档必须用EPS图形,这一直让我觉得很不爽,因为我实在不爱用EPS,比如R的postscript()设备(可生成EPS图形)不支持半透明色,而且图形中要用中文字符的话配置非常麻烦(N年前我请教了Paul Murrell,虽然搞明白了,但心里仍有疙瘩)。我的偏好是用pdflatex命令编译文档,图形也用PDF格式(pdflatex默认支持PDF和PNG图形),用R生成PDF图形也方便、漂亮,所以配合Sweave很容易生成一篇干净利索的PDF文档;但pdflatex命令直接编译生成的中文文档中,中文字符是不能复制粘贴的,因为复制出来就是乱码。所以呢,我陈旧的知识让我的这个“麻烦问题”一直没有得到解决。
十二 312009

在家宅得快发芽了。这几天考虑着COS的发展计划,每次想这件事都觉得脑子里的想法装不下了,可每一个想法的实施往往至少要一年时间,甚至两三年都没法实现。在2010年,我希望可以实现下面这些事情。本文写得不是一般的意识流,读者慎阅:

  1. 全面提升网站功能,主要包括对三大软件的支持:
    1. SVNGIT:目的在于会员合作,大家可以共同编写一些小册子,SVNGIT使得工作可以并行而不会互相牵制、依赖。按胡子同学的IT小小鸟模式,我觉得COS的会员们根据COS论坛的帖子足以合力写出好几本统计小小鸟了。
    2. ## need libapr, libapr-util, then subversion
      wget http://apache.cs.utah.edu/apr/apr-1.3.9.tar.gz
      wget http://apache.cs.utah.edu/apr/apr-util-1.3.9.tar.gz
      tar -zxf apr-1.3.9.tar.gz
      cd apr-1.3.9
      ./configure --prefix=$HOME/bin/apache/apr
      make & make install
      cd ..
      tar -zxf apr-util-1.3.9.tar.gz
      cd apr-util-1.3.9
      ./configure --prefix=$HOME/bin/apache/apr-util --with-apr=$HOME/bin/apache/apr/
      make & make install
      wget http://subversion.tigris.org/downloads/subversion-1.6.6.tar.gz
      ## tar, cd, then
      ./configure –prefix=$HOME/bin/subversion –with-apr=$HOME/bin/apache/apr –with-apr-util=$HOME/bin/apache/apr-util
      ## SVN把老夫折腾得接近崩溃,终于痛苦地转向GIT
      wget http://kernel.org/pub/software/scm/git/git-1.6.6.tar.gz
      tar xf... & ./configure & make & make install

      习惯了用SVN,但过去一直是用别人的服务,轮到自己架设SVN服务器才知道这叫一个崩溃,其实主要原因可能是因为自己没有root权限,未必真的那么难。由于是用别人的服务器,只好转向GIT。

十二 042009

极北苦寒之农村今年比较反常,据说往年都是感恩节一定会下雪,而今年就没下。刚纳闷儿咋12月还不下雪的时候,便下开了。不过雪也不大,地上只是铺了薄薄一层,比今年北京那场雪差远了。昨夜回家路上,想起小学时咿咿呀呀背的:

日暮苍山远,天寒白屋贫。
柴门闻犬吠,风雪夜归人。

第二届中国R语言会议的北京会场过几个小时就要开幕了。这次会议比上次的准备更加匆忙,大约也就只有一个多月时间准备,但大家都很卖力,在此先感谢一下各位组织者:邱怡轩、张翔、焦静、陈堰平、范建、蒋安华以及关菁菁;说起小邱同学,如我上次所说,我真是有点怕给这位拼命三郎安排任务,从别人口中了解到他为这次会议每天马不停蹄焦头烂额四处奔波,我心中甚为感叹;张翔呢,我没想到他会担起这次会议组织者的角色,上海会场在他的带领下也办得有声有色(看看会议通知页面的宣传海报多么亮丽),和焦静两人拉赞助、发传单、安排吃住,作为已经工作的人,对一门自由软件如此费心,甚为难得;焦静呢,现在不在统计专业(生态),却帮忙做着一门统计软件的推广,跑校区、定会场、找领导,忙得不亦乐乎;陈堰平作为R的老用户挑起大梁,相信经过上次植物所培训一战,对这次会议的组织应该更有把握;fan版主也是位拼命三郎,COS论坛招生就业版自他上任之后所有帖子和资料被整理得井井有条,使你不得不敬佩,这年头能如此发狠的人不多见啊;关菁菁同学嘛,说实话刚开始小邱介绍的时候我想不起来她是哪一级了(为啥我总觉得她是研究僧呢),上一届R会议她参加了,而且中午没去吃饭,留在会场帮我们看东西,这次又主动提出愿意帮忙组织,我自然是很高兴。对于参会者诸如魏太云以及刘思喆和李舰二位大师兄的献计献策一并致谢。

这次会议有不少去年的熟面孔(如丁鹏、左辰、王化儒、奚潭等),新参加的人里面有我认识和不认识的,报名演讲的名单也给了我很多惊喜,比如钟其顶,算是一个老朋友了,三年前在我一次R报告的时候就认识了,后来我们一直用R做一些食品行业的应用,效果还是很不错的,尤其是今年初几位师弟在我的牵线搭桥下过去实习之后,挖掘了更多R的应用价值;再比如那场“地质环境调查监测研究中的R应用”(作者来自中国地质环境监测院,政府机构下属事业单位),其图形着实让我惊叹了一番,没想到R在这样的单位已经被人研究到了这种程度(R和Google Earth都用上了),太出乎我的意料了,看来我的统计图形书可以放到更开阔的边界上把各种稀奇古怪的应用都介绍一下;再比如陈丽云,这位以技术派面目出现的lady,要来讲讲计量,想当年,被本小子一句玩笑代码惹得好奇心起,装了R,然后被打击了一番;再比如孙晓燕,最后关头杀了过来,不知道是不是被李晓煦老师给“忽悠”的;还有中科院的WebR,相信也是很价值的应用;上海会场请到了汤银才老师,这位也是中国R语言的一位元老人物,想想四五年前网上一搜就是汤老师的那个PPT。

一个月前我往R-help发了个会议通知,前几天又补充了一下会议内容,R core之一Martin Maechler注意到我们的会议,给我发了封邮件说希望这次会议能写一篇报告发给The R Journal,正中下怀,本小子就是这么打算的。我想明年第三届R会议就放在暑假开好了,到时候请一些R core成员过来讲讲课什么的,应该也是很有可能的。

前两天给吴老写了封邮件说起这事,吴老曰:

我是一个行将退出战场的老兵,我想说的是:

祝贺第二届中国R语言大会胜利召开!

开放、绿色、功能强大、具有源源不断巨大资源的R不仅有必要而且一定能够在中国推广和发展。

吴老是第一位把R引进人大统计学院的老师,此后他的弟子们也纷纷用R,这才有了我接触R的机会。

272009
天生活是如此琐碎,以至于操起键盘不知道写什么标题是好。开学差不多一个月了,学习上像回到了大二,生活上像回到了小学。选了两门课,外加一门讲座课,天天上实变函数和t检验方差分析,想当年,本小子在实变函数课上是那种会被老师叫醒的学生,可想而知,这种东西我学得很烂了,如今重学一遍,依然不得要领,可能脑子里就缺这根筋吧,总搞不清这铺天盖地的花写字母对统计的意义在哪里,老师倒是一个年轻的大牛,每年有事没事就去JASA和Annals写几篇论文,不经意就发现一群大牛的推导错误(真是牛到惊人,还这么年轻);而方差分析课呢,老爷子人是很好,经验丰富,但就是歧视R,有事没事就说SAS is extremely powerful,本小子坐在底下心想,忍忍吧,那个年代的人都是SAS派,就别争了,如今SAS与R的优劣很明显了,老爷子有时候上课说,啊哈,你们瞧瞧,这里SAS能做,R就不能做(他就是把反过来成立的那些地方都留着不说),本小子至今还在用R+Sweave写作业,看看究竟有什么事情是R不能做的。

刚看见江堂兄发一篇君子厨艺大全,赶紧凑过去围观(要知道,本小子最近对厨艺比对任何事情都感兴趣,民以食为上帝啊),果然是厨房老手,总结出若干极具robust性能的做菜方法,看来有些东西真的是不管怎么做都会好吃的(以前我只知道蛤蜊)。本小子在来美国之前的上一次做饭差不多可以追溯到小学时期了,想当年,俺和俺弟暑假在家轮流值班,一人做饭,一人放牛,在蚊子嗡嗡飞的昏暗厨房,爬梯子取腊肉,洗了切了炒辣椒炒黄瓜炒土豆,似乎一共就这三样了,炒菜不用放油,因为猪肉已经有很多油了,那时候没有电饭锅,煮饭炒菜全靠那一大口铁锅,大锅水煮,大半熟了全捞起来沥出米汤,然后炒菜,炒完把饭放回去蒸熟,盛出来,剩下一锅锅巴中加入米汤,便是稀饭了,在煮饭的柴火灰烬中埋两个土豆或红薯,吃完饭扒出来就跟宝贝似的。如今在异国他乡的农村再拿起锅碗瓢盆,所有的场景都变了,做饭用电,再也不用守在灶膛前添火;每天吃植物油,想蒸个水蛋吧,没猪油,便放弃了,小时候一直吃着放猪油的水蛋长大,果然有依赖性。室友(香港人)是美国生活,整天汉堡度日,每次看我做饭,都摇头说,太麻烦了,太麻烦了。由于厨房基本是我的天下,没有不明真相的群众围观,所以可以放心大胆挽起袖子任它油花飞溅,我没江堂兄那么耐油,一旦油花飞溅,我就离锅一米远,行注目礼10秒钟,锅里平息了再凑上前翻炒,后来学乖了,尽量沥干水,而且当油五六成热的时候就扔花椒葱姜蒜,让它慢慢爆锅,佐料香味四溢的时候就扔肉,速速翻炒,也就不会大溅了。这一个月主食尝试了猫耳朵、纯手工饺子(花了三四个小时)、纯手工面条、烙饼(未遂)、土豆鸡蛋饼、炸薯条(原来麦当劳的薯条如此简单),各种菜就是随意搭配,牛肉猪肉鸡肉鱼和芹菜土豆生菜萝卜黄瓜茄子菜椒,其中最满意的是芹菜牛肉(深感人大食堂太糟蹋芹菜了)和红烧鸡块,总结经验如下:

  1. 糖的作用不一定是让菜变甜,例如红烧鸡块实现在油中放糖,能给鸡块上色,而且更好吃(不甜),因为我不太爱吃甜,所以一直对糖有误解;
  2. 纤维多的菜如芹菜棒子盖上锅盖焖一会儿就好吃多了,否则水分很快蒸发,吃着就跟嚼棉线一样(我本来从不用锅盖,前些日子去肯德基州参观考察回来学乖了);
  3. 肉类加上面粉能保湿(面粉多加水和稀),所以肉会嫩;若有淀粉应该更好,可惜我还没找到哪里有卖淀粉的,等找到之后做鱼香肉丝;
  4. 爆锅材料一定不能糊,否则既影响美观又损失味道,最易糊的就是干尖椒,若有可能,把爆锅的材料(比如花椒)捞出来再炒菜;
  5. 煮稀饭或者煮土豆的时候,加至少两倍于你想象的水(有一次做土豆沙拉,把土豆煮粘锅了);

明日请客吃饭,答谢大家对初来乍到的本小子的照顾,所以今日去超市买了一大堆东西,看见花生,心想这下可以做宫保鸡丁了,于是买了一点回来试了试(用面粉代替了淀粉),酸酸甜甜的,好吃啊,可能就属于胡子同学说的那种做不坏的东西吧,不过花生米不脆,看来网上的教程步骤应该修改一下。

唉,学习和生活汇报严重不成比例,敢情我是来学厨师专业的,想起老板名恰好是Cook,呃,以后回国路人问起,汝在美国做啥方向捏,答曰做饭(Cook)。

附录(胡子同学提到的三从四德,供广大男同胞围观,我先闪了):

三从:

一、太太出门要跟从
二、太太命令要服从
三、太太说错话要盲从

四德:

一、太太化妆要等得
二、太太生日要记得
三、打骂要忍得
四、花钱要舍得

WWW.YIHUI.NAME XIE@YIHUI.NAME © 2007 - 2010 by Yihui Xie