Categories

Calendar

July 2017
M T W T F S S
« Jun    
 12
3456789
10111213141516
17181920212223
24252627282930
31  

Google 代码之夏,Multiclass Learning

虽然各种大小事情和死线依旧是蜂拥而来,但是我想这个假期我“Officially”应该是主要在做 Google Summer of Code 。因为难得的很长的假期,以后又更少有机会回家了,所以理所当然的要呆在家里,但是为了避免一个假期过后荒废得最后连数字都不会数了,我又一直苦恼在家里应该做些什么事情——必须要是有外力来强制进度的事情,否则毫无疑问地会慢慢荒废掉,因为家里本就是一个适合休息堕落的环境呀。最后想到 GSoC 的时候突然眼睛一亮:这不就是为我这种情况量身定做的吗?!

将军 (Shogun) 是众多项目中我比较感兴趣的一个。因为肯定是希望做跟机器学习相关的项目呀,所以实际上 shogun 是项目列表里最相关的一个了。简单地来说就是用 C++ 写的一个机器学习算法库,里面实现了各种常用的算法,并且把许多著名的算法(像 LibSVM、LibLinear、Vowpal Wabbit 等)也都统一的包装起来,然后再提供了各种语言像 Matlab、Python、R 等下面的接口供方便调用。

不过虽然我以前也见到过 Shogun ,但是却并没有实际用过。以前见到这个名字的时候还以为是日本人写的库(因为 Shogun 是日语单词“将军”呀),后来了解了一下才发现实际上是有德国的 Max Planck Institute (MPI) 里的一个组发起的项目(这个 MPI 里有好多机器学习非常强的组呢!),而这个略奇怪的名字实际上是由最初的两个作者 Soeren Sonnenburg 和 Gunnar Raetsch 的名字的开头 So 和 Gun 拼起来再变化得到的。但是究竟是如何查到这个日语单词的呢?嗯,也许是 Google 了一下看到 wikipedia 的页面了吧……不过,Soeren 说你可以给 Shogun 画个好看点的 logo 的……许多年前参加 GSoC 的时候也被叫给当时的项目画了个 Logo ,不过这次就真的完全没有想法了啊,其实我觉得就这样用汉字做 logo 也挺不错的。

关于同行互审

搞科研学术的,对于大部分人来说,发论文就是必不可少的了。可是这个发论文不像平时上课交作业一样,有个老师或者至少是助教来帮你批改,特别是对于一些本身就已经是该领域的领军人物了的人,根本不存在比他们“更高层次”的人来做这种审核。这是一个没法避免的事实,所以学术界几乎都采用同行互审的方式。

其实学术界似乎远没有想象中的那么简单和纯粹,所以我在想是不是什么东西发展到这样一个规模之后必然会有一些诸如潜规则之类的东西出现?总之先不说这个,说 peer review ,其实太具体的东西我也还没有仔细了解过,不过大致的结构还是可以理解的,也就是会有一些比较有声望的人会被选作一个(比如)conference 的评委,然后投到这个会议的论文就(随机地,可能会有一些先验,比如相关研究方向等)分配给各个 reviewer 去审,中间有一些细节可能会有所不同,比如如果自己也投了这个会议的论文的话是不是就不能同时做 reviewer 了,以及 review 到最终决定的过程是否有和原作者之间的 feedback 互动等,但是整体上通常都是如此。不过通常也被划分陈两种比较大的变种,或者说,实际上是三种:

author 公开,reviewer 不公开:也就是最普通的方式了,reviewer 知道自己在审谁的 paper ,但是 author 不知道被谁审了。
author 不公开,reviewer 也不公开:也就是盲审,现在在很多会议上都实行这样的方式。
author 公开,reviewer 也公开:全部公开,似乎不是特别常见,但是也有一些试行。

我想应该第一种是以前最普遍的吧,但是后来人们发现了一个问题,就是如果你是一个很牛的人的话,你的论文或者你挂了名字的论文通常就几乎“百发百中”,一方面可能是大家看到你的名号都不得不给面子,另一方面是一看到你的名号,肯定就会以一种不同的态度(比如,一种仰慕的神色)去读你的论文,相比之下,那些名不见经传的作者通常就比较惨了。

RabbitMQ: high performance messaging solution

RabbitMQ 是一个由 Erlang 写成的 Advanced Message Queuing Protocol (AMQP) 实现,AMQP 的出现其实也是应了广大人民群众的需求,虽然在同步消息通讯的世界里有很多公开标准(如 COBAR 的 IIOP ,或者是 SOAP 等),但是在异步消息处理中却不是这样,只有大企业有一些商业实现(如微软的 MSMQ ,IBM 的 Websphere MQ 等),因此,在 2006 年的 6 月,Cisco 、Redhat、iMatix 等联合制定了 AMQP 的公开标准。反正现在这个世道通常都是小公司拥抱标准,大企业自己搞一套标准,不过公开标准总还是对大众有利的。

_why

昨天晚上心情沮丧无法平静,失眠到很晚,今天早上起来就看到一个非常让人惊讶的消息:_why 突然消失了。而且这件事似乎在社区里造成了轩然大波:

Reddit: Where is _why?
Reddit: This is a sad day: _why disappears.
Hacker News: Eulogy to _why
Hacker News: _why is no more
Ruby Inside: “Why The Lucky Stiff” Is Missing
Ruby Inside: A Cup Full Of Why: 32 Why The Lucky Stiff Links

_why 是 Ruby 社区里神级的人物,很多产,就我自己来说,经常用的他的作品是分析 HTML 的 Hpricot 和那个在线的 Ruby 解释器。他也很会画漫画,写有一本图文并茂的 Ruby 入门书挂在网上,也是非常受欢迎的。另一个神秘的地方是似乎没有谁知道他的真名,最早我在收录文章到 Nextlib 的时候,喜欢把作者的全名找到填上,可是却怎么也找不到 _why 的全名,大概是从这个事情开始对他印象深刻的吧。

Play Babelize with Google Translate

Have you played such a game when you were young? One person think a sentence and tell another in a whisper (or just use gesture language or anything that might loss some information when transmitting the bits). Then sentence is passed along in that way until the last one. Then he tell us what he […]

Open Source Never Die

Open Source 应当算的上软件开发历史上最耀眼的运动之一吧。然而虽然有数不清的明文 Licence 以及各种社区,Open Source 这个词,对于不同的人大概也有不同的意义吧。例如微软最近在 GPL 下“捐献”大量代码,他对于 Open Source 的看法(或者说 Open Source 对于他的价值)大概又和其他许多人不太一样的。而我自己嘛,说起来,我并不是一个狂热的 Open Source 鼓吹者。也许在刚接触的时候还有些激动,不过很快就平静下来,当然我一直都很喜欢 Open Source 这样一种方式,不过那并不是因为它“叫做 Open Source”,而只是因为我觉得这样很好。一方面,我并不排斥别的形式的存在;另一方面,如果哪天发现有什么更好的方式,我肯定会转移过去。一直以来,我也都是这么认为的。

解决 ibus 在 gVim/Emacs 下不能使用的问题

ibus 是 Linux 下一个比较新的输入法框架,其下的 ibus-pinyin 也是比较不错的一个输入法,不过整个项目相对来说还是比较新,所以偶尔也还会有一些小问题,并不是诡异的 bug 或者是开发难度上不可行,只是大概还有跟多优先级更高的模块需要处理,比如之前说过的用 Ctrl 切换中英文状态的问题。事实上如果只是自己用的话,做一点小小的 dirty hack 也是非常方便的事情,因为 ibus 是用 Python 写的,直接修改系统中对应的文件即可,甚至都不用重新编译。

如题目所说,今天要解决的问题是 ibus 在 gVim 和 Emacs 下不能使用的问题。先说 Emacs 吧,这个似乎是一个老问题了,症状就是在 Emacs 里不能激活输入法,好像从数年前开始就一直都有类似的问题,包括 scim、 fcitx 等众多输入法在内都有过类似的问题,似乎是一部分 Gnome 用户会遇到,在 Emacs 里无法激活输入法,但是也有另外一些人正常使用,所以后来似乎也没弄明白原因,这里的问题我也不确定是不是同一个,但是症状确实挺像。

让 ibus pinyin 输入法使用 Ctrl 来切换中英文输入状态

实验室的机器自从升级以后,Xorg 似乎已经可以完全无视 /etc/X11/xorg.conf 的内容配置了,所以我在里面写了交换 Caps Lock 和 Ctrl 也没有任何效果,虽然我可以通过 xmodmap 来做映射,但是这样好像 fcitx 又不认,不能用 ctrl 来切换中英文输入状态了,这个问题我很久很久以前做过 patch ,不过后来 fcitx 的版本似乎有些乱,时而能用时而不能,很诡异。鉴于现在已经完全不像以前那样爱折腾了(在实验室电脑上用了一个完全安装的 Ubuntu 就是一个最好的证明),所以就先忍着。结果这两天 fcitx 干脆连输入状态条都不见了,终于忍无可忍,装了一个 ibus 输入法。

第一感觉是 ibus 输入法还不错!至少在现在 Linux 下的各种输入法当中算很不错的了吧!只是有两个问题:

打开模糊音之后巨卡,反应及其迟钝,这个我一时也没有办法,对于输入法的算法并不了解,所以只好关掉模糊音,忍一忍了。
中英文切换是使用 Shift ,并且不可配置。当然,很多人都习惯这个快捷键,不过还有另外很大一部分人(包括我)喜欢用 Ctrl 来切换。搜索了一下发现一个 Issue ,说明确实有不少人需要这个功能,不过作者最近似乎有点忙,一时没法改这个。所以我就决定看看能不能改一下。

Why Open Source? Just for Fun!

其实一直也在想这个问题,当然我并不是在想开源的战略价值或者商机之类的,只是想弄清楚自己为何会走进这个世界,以及这里吸引我和让我感到无奈的一些地方。

Just for Fun 来自于那本写 Linus Torvalds 的书 Just for Fun: The Story of an Accidental Revolutionary 的标题。最初看这本书的时候其实也是刚刚接触到 Open Source ,也正好是对 Open Source 最狂热的时候,事实上那个时候根本没有思考过这个问题,只是既然这句话由开源世界里大神级别的人物 Linus 说出来,也就当喊口号一样拿过来就用了。不过后来仔细回想,觉得其实是个相当贴切的词。

如同其他许多人一样,我接触开源也是从 Linux 开始的,Debian 呀、Emacs 之类的,一开始也是觉得好玩吧,后来才慢慢接触到一些概念上的东西,诸如 Free as in Free Speech 于 Free as in Free Beer 的区别、Open Source 的概念还有 GPL 之类的东西。显然,我用这些开源的东西并不是为了想要保持我的系统里没有一个商业(或盗版)软件。那是有其他什么目的吗?也不是,一开始只是好玩而已,那时刚从高中毕业的我,一点也没有意识到应该开始为自己将来的人生做打算了。

把 HTML 格式的文档放在 Google Code 的 svn 仓库中

之前就想把 YASnippet 的文档直接放到 svn 仓库中,把生成出来的 HTML 直接放到 svn 中,然后再给出 svn 仓库中对应的 HTML 文件的路径,在浏览器中直接打开就可以浏览了。可是试了一下发现不行。Google Code 的 svn web 有两种模式,一种是 browse 模式,会显示出高亮的源代码以及相关属性,并可以方便地添加 code review ;另一种是 raw 模式,这种模式下会直接给出原始文件的内容。本来想在 raw 模式下应该可以直接当做网页浏览了,但是试了一下发现 Firefox 直接把 HTML 代码给显示出来了,当时也没有深究,干脆就把 YASnippet 的文档放到了 lifegoo 的服务器上。

现在 lifegoo 的服务器挂掉有一段时间了,合租的 DreamHost 服务器又一直没有弄好,YASnippet 的文档也没处放,我才有想起了这个问题。依稀记得曾经看到过有人这样用的,心想也许 Google 更新过了,于是搜索了一下,找到了一些 svn 中的 HTML 文件,但是奇怪的是,有一些能当做网页显示,另一些则像我之前碰到的情况那样当做文本文档直接把 HTML 代码显示出来了。