Fcitx走向新生

Fcitx 是运行在Linux中的一种中文输入法,开发者是Yuking。前天,Yuking在fcitx网站发帖,决定终止fcitx的开发。
Fcitx是我最喜欢用的输入法,现在就在用。有一点可以让我拿出来显摆的是,其中的双拼功能是我极力鼓吹加入的,而且当初我也帮助进行了双拼的测试。与Yuking六年多的辛勤劳动比起来,我做的根本不值一提,之所以腆着脸说一下,是为了表达我对于Fcitx的感情。Linuxsir.org与Fcitx的渊源更为深厚,感兴趣的可以看看北南南北的回顾。
Yuking终止Fcitx的开发,作为一个用户,我当然觉得惋惜。好事者在探究Yuking做出这个决定的原因,也有很多人充满正义感地揪出所谓的“祸首”,为Yuking打抱不平。据我了解的情况,被人喷一身口水只是Yuking停步的诱因,真正的原因我们无须那么八卦地去打听。实际上,Yuking萌生退意决不是近期的事情,早在三年前他已经表示了这种想法。尽管Yuking的放手让人不忍,但是作为一个用户,强人所难地让他坚持下去,不免有自私的嫌疑,所以我很赞同“感谢你的付出,尊重你的决定”这种态度。
讲起Fcitx的时候,常常免不了要提到另一个Linux输入法平台——SCIM。很多人容易把Fcitx和SCIM都当作输入法,但它们俩并不是同一类的东西。Fcitx是输入法的具体实现,其底层的结构是XIM,而SCIM的目标是对输入法功能进行抽象并构建一个新的输入法开发框架,输入法的具体实现并不是SCIM关心的问题。尽管如此,从项目开发的角度把这两个项目进行一下比较还是能给我们一些启示。
首先,开发者的背景不同。Yuking是业余程序员,编程出于爱好;SCIM的发起者苏哲是专业程序员,几年来一直在不同公司从事开源软件的开发工作。我不懂代码,但是从两个人不同的背景上,我可以理解一些人对于Fcitx代码质量的批评。在一个群体合作的基础上编码,要更多地考虑程序的规范性、可维护性,但如果是一个人的话,也许编码会更自由、更加信马由缰,带来的问题自然是缺乏严谨性、他人接手维护困难。
再者,项目的目标不同。Fcitx的目标很简单,就是为了解决Linux系统的中文输入问题,所以功能设置上非常贴近用户的需要,在输入法的具体实现上也做得很好。SCIM的目标则远大得多,它是想成为一个平台,以此为基础容纳其他各种输入法,并减少输入法开发的难度。简单地说,Fcitx只是针对中文用户,所以在配置文件中用中文变量名并不见得是个缺点。而SCIM针对的是全球用户,无论是韩文、日文还是其他文字,只要有对英文键盘输入进行转换的需要,就能在SCIM的基础上开发出对应的输入法模块。
第三,开发团队不同。Fcitx到目前为止,可以算是一个人的项目,尽管也有一些热心人贡献了一些代码,但主要还是Yuking一个人在独力支撑。这种状况与我最喜欢的Slackware倒是有点相似。SCIM则一直面向国际开源社区,尽管一开始是苏哲做的开创工作,但现在已经形成了一个国际化的开发团队。我用Slackware最担心Patrick哪一天撂挑子不干,Debian用户则绝对不会有这种担心,Fcitx与SCIM也可作如是观。
主要由于以上后两点的不同,两个项目的传播范围也大相径庭。Fcitx仍然主要由中文用户自己下载安装,而SCIM已经被整合进主要的发行版之中,走向了世界。当然,由于目标用户不同,在覆盖面上进行比较对Fcitx并不公平,但至少可以帮助我们看出一个开源项目被国际社区接受的一些必要条件。
令人欣慰的是,已经有热心人开始接手Fcitx的准备,对于广大喜爱Fcitx的用户来说无疑是个福音。但是,Fcitx从一个人的项目变成社区合作的项目,一定有许多需要克服的障碍,需要深入细致、点滴入微的工夫,并不是靠一时的热情就可以支撑下去的。尽管看起来像是兜头的一盆冷水,但我其实是希望上面的分析能对后来者有所帮助,希望大家共同认真思考一下如何让Fcitx更加顺畅地融入开源社区。祝Fcitx在开源社区更广泛的合作之下如浴火凤凰般重新展翅翱翔。

Slackware 12 初体验

趁周末有空,在Dell 700m笔记本电脑上安装了Slackware 12.0。尽管是两年多前买的机器,但是装上新鲜出炉的Slackware,运行起来仍然毫无滞涩。相比于微软的Windows,Linux对于硬件的要求确实没有那么贪得无厌,这恐怕也是硬件厂商明里暗里不喜欢Linux的一个重要原因。
安装程序仍然是十多年如一日的文本界面,简单、高效,但新手可能不太容易接受。启动管理仍然特立独行地使用lilo,恰好我对于现在近乎一统天下的grub也还是一窍不通。安装过程没有什么特别之处,很顺利、速度也很快。当安装完成后,我用root启动X的时候没有成功,但是用之前配置好的一个普通用户就顺利地进入了X。在X Window系统里,发现两个问题,一个是鼠标滚轮不起作用,另一个是没有设置好屏幕的刷新率和分辨率(1280×800的宽屏被设成了1024×768)。两个问题都很容易解决,修改xorg.conf,将鼠标协议改成imps2,调整刷新率上限为60Hz,直接将分辨率设成1280×800。比起以前的设置方式以及专门打针对宽屏的补丁,无疑现在简单多了,由此可见X的进步。
无线网络的设置也不难,因为内核已经集成了intel ipw2200的驱动。但是intel的firmware由于许可证的原因,需要自己下载安装。在设置无线网络的WPA认证时走了点弯路,结果证明是我自己想当然地用了以往的经验,没有跟上形势变化。新的内核里面还有针对Texas Instrument的SD/MMC读卡器的驱动,尝试之后,成功了一半:系统能够发现插卡、拔卡的动作,但不能读写卡的内容。
总的来说,Slackware 12在内核和软件的更新上确实有了很大的变化,但KISS的特色还是一如既往,很容易打造一个适合自己要求的系统。目前让我最不满意的地方是checkinstall程序由于兼容性的原因暂时取消了,在我编译安装一些软件时甚感不便。

Slackware的一大步

Slackware Linux算是现存的最古老的Linux发行版。其鼎盛之时,占据了90%以上的市场份额,风行程度比起现在的ubuntu也不遑多让,只不过当时Linux的用户群整体规模比现在小得多。一直以来,Slackware享有稳定、快速、简单的口碑,但是也给人以保守的印象。即便2.6.x版内核早已大行其道,但在去年推出的Slackware 11.0版仍然采用2.4.33.3版内核,其他软件版本也显得跟不上时代。
但是,7月2日发布的Slackware 12.0版却让人耳目一新。首先是采用了2.6.21.5版内核,这是最新的稳定版内核。围绕这个内核,整个系统进行了优化调整,以便充分发挥内核的性能,也提高了硬件的识别能力。GNU C库升级到2.5版,以保持最佳的兼容性。gcc从原来的3.x升级到4.1.2,跟上了其他发行版的步伐。X11采用了模块化的xorg 7.2.0版,最新版的xfce 4.4.1以及KDE 3.5.7给桌面用户带来良好的使用体验。gtk+也升级到2.10.13,但是如果用户喜欢gnome的话,只能依靠第三方提供的软件包了。除了上面这些比较基础性的升级之外,Slackware 12.0的许多应用软件也跟上了潮流,firefox 2.0.0.4和Pidgin 2.0.2等等都是最新的版本。
与其他一些勇于采用最新beta版软件的发行版相比,Slackware 12.0仍然不是那么cutting-edge,但是与以往为了强调稳定性而连最新的稳定版都不太情愿采用的情形相比,12.0版确实发生了革命性的变化,这恐怕是Patrick Volkerding(Slackware的维护者)认识到为了适应形势的发展应该急起直追。记得当初他计划在11.0版就进行这种大改变,但是去年推出的仍然是一个四平八稳的产品,12.0终于兑现了他所说的大变化。Pat在发布声明中说:“(12.0) is a must-have upgrade for any Slackware user”,从社区的反馈来看,确实如此。

从被Linux打败说开去

在丸子的成长日志看到又一个被Linux打败的例子,丸子最终回到了Windows的怀抱。
帖子后面的留言里,很多人说丸子不应该选择红旗Linux,也有人推荐Ubuntu。从我在丸子的描述里看到的情况估计,丸子也许错怪了Linux,很多人也冤枉了红旗。ATI显卡的Linux驱动一直没有好好解决,因为ATI没有认真对待。尽管它也发布了Linux驱动,但很多人反映在使用中遇到各种各样的问题,而且驱动的更新赶不上硬件更新的速度,所以丸子的X700显卡几乎成了摆设。相比之下,nVidia显卡的用户则要幸运很多,n卡驱动安装起来简单得多,更新也迅速,用户遇到的问题也少很多。从这件事上可以看出,Linux驱动对很多厂家来说,非不能也,不为也。如果大家都能像nVidia那样,所谓Linux硬件兼容性差的问题恐怕并不存在。至于红旗也好,Ubuntu也罢,只要采用ATI的驱动,恐怕面临的问题都是一样的,Ubuntu并不见得能比红旗做得更好。
至于易用性,对于普通用户来说,Windows目前确实要强于Linux,但Linux这几年来的急起直追也是有目共睹的,只是Linux的新用户没有过往的体验,与Windows横向比较,看到的还是不足。另一方面,Linux版本的繁多以及中文支持的障碍更容易对新用户造成挫折。如果一个人真的希望尝试Linux,我建议他先好好读一读“Linux不是Windows”,在思想上有了一定的准备并认为Linux真的适合自己的时候,再动手也不迟。在我看来,Linux与Windows的对立,很大程度上是商人导演的一出戏,就像政客总是把中国和美国摆到一起说事一样。尽管许多商人一心想用Linux为武器向微软开战,但是对于许许多多的Linux用户,他们并不在意Linux能从Windows手里夺取多少市场份额,他们更珍惜的是Linux所代表的那种自由,不受制于某个垄断厂商的自由。
自由软件运动所宣传的这种自由,听起来很像是政治口号,许多人出于商业利益的考虑,避之唯恐不及,于是弄出一个开源软件的概念。但我认为,对自由的追求正是推动Linux发展的灵魂。仅仅从开源、低成本的角度宣传Linux的好处,无异于舍本逐末,很难解释为什么会有那么多人日复一日地为Linux以及其它开源/自由软件无偿地贡献辛劳和智慧。也正是因为忽略了对精神追求的认同,只看到软件的低成本,许多程序员诅咒开源/自由软件抢了他们的饭碗。所以,对于Linux新手,我的忠告是,尽管功利性的追求让你开始尝试Linux,但不要忽视Linux所代表的那种自由分享的文化。否则,你也许能拥有一个实用的系统,但会少了很多交流、分享的乐趣。

敲敲电脑也是命令

用了电脑后,每天都在敲,敲键盘把各种命令、文字敲到电脑里。电脑出毛病,怎么也弄不好的时候,也会生气地在显示屏或机箱上敲它几下,但这种敲法对于电脑这种榆木脑袋多数起不到什么作用,再怎么敲它也弄不明白你想要它干什么。可是,现在有种电脑能够明白你敲它的意思,例如:敲一下,启动屏幕保护;敲三长两短,重新显示桌面。
这种电脑是Thinkpad。2003年之后生产的很多Thinkpad都具备Hard Drive Active Protection System (HDAPS),为此它有一个传感器检测机器受到的震动和姿态,IBM的一些技术人员编写了一个Linux内核模块,能够读取传感器的数据,并且开发出一系列相应的应用。现在他们又发明了一种新玩法,让电脑识别 knock code,即用敲击机身来给电脑传递命令。IBM的开发者网站上给出了详细的步骤,还提供了一个视频演示。
我没有Thinkpad,没法一试。不过想起来还是挺酷,如果在某个月黑风高的夜晚,敲几下屏幕之后,贞子从屏幕里面飘出来,效果也算惊人吧。