2009年2月28日星期六

看世界,不用眼睛

生活总是充满了可能性,奇迹,惊喜——那位用蔬菜做乐器的哥们令人赞叹,生活可以如此有趣;而失明的 Ben 则给人以鼓舞,生活的可能性超乎想象。

Ben 三岁时失去双眼,现在他可以靠反射的声音感知周围的环境,类似海豚、蝙蝠那样(它们是通过超声波,但Ben的听觉范围与普通人一样),“看见”附近的大楼,汽车、障碍物等等,他可以滑旱冰、投篮,骑车,甚至在车上做杂技动作。

他的妈妈 Aquanetta Gordon 谈到,由于癌症,不得不在眼睛和生命之间抉择:
“My Choice was, you know, to, remove the eyes (我的选择是,你知道,是,是摘除眼睛)”

手术后他们有这样的对话:
“Mum, I can't see any more, any more (妈妈,我再也看不见了,再也看不见了)”
“Yes, baby,you can see, with your hands...nose...ears,baby, you can still see (不,孩子,你可以,可以用手看见...用鼻子...用耳朵,你仍然能看见) ...”
这位母亲总是给 Ben 信心,鼓励,她从不在孩子面前哭泣,从不让他知道妈妈为他难过。在视频的前半段,她还提到
“Ben knows that nothing is impossible for him (Ben 知道,对他没有什么是不可能的)”
这是对片名的最好注解——这段视频属于系列片“Extraordinary People (非凡之人)”




视频的后面4段在这里
[Part 2] http://www.youtube.com/watch?v=G1QaCe... (10:37)
[Part 3] http://www.youtube.com/watch?v=ikpNZO... (10:20)
[Part 4] http://www.youtube.com/watch?v=3Px-aP... (10:34)
[Part 5] http://www.youtube.com/watch?v=MNkJ1d... (05:12)
[......]

用蔬菜做乐器

记得小时候有本杂志,有个栏目叫“大千世界”,讲述自然界的奇闻轶事。现在看来,编辑的眼界还是小了点。自然界的奇观固然无可比拟,人的想象力、创造力也无奇不有啊。下面视频的主角是位日本先生,用蔬菜做乐器,令人捧腹




下面则是他用白萝卜吹“My Grandfather's Clock”,演奏得有板有眼。


[......]

2009年2月25日星期三

给大铃的生日礼物


祝大铃生日快乐!

改来改去,越看越不像,最后本着没功劳也有苦劳的想法,收工传过去,大铃乐了,“80岁预言啊”。至少博得一笑,呵呵。功力不够啊,看看下面的视频就更理解那句话了:“人和人咋就差距那么大呢?”

最后,请欣赏性感老男人的歌:“Happy Birthday Darling”


[......]

feedburner出错:Google's poor planning on Feedburner

今天收到下面这封信,由于google在合并feedburner用户时,计划失误,出现同名的情况,而我属于倒霉的那个,订阅地址被修改了。难道就没有其他更好的解决办法吗?使用不同的域名不可以吗?

不知道google的改名程序用什么策略。和我同名的是EuroScience.Net,比我的园子老,2005年就成立了,可能订阅数也多,但是去年12月后就没有更新了。

信的最后说,作为补偿,Google会送一份礼物。希望他们不要糊弄我受伤的心,呼呼。

那个用于填写地址的spreadsheet倒很有意思,可以用来做调查,什么时候试试——好嘛,刚被修理了,不知回头,反而越陷越深。

自动给出的名字太不堪,改为下面这个。希望已经订阅的朋友能看到此帖,烦请修改地址:
http://feeds2.feedburner.com/esnblg

如果原先订阅的是如下地址,可以继续使用,不过建议还是修改为上面的,这样以后万一园子搬家,你不必做任何修改就能继续接收订阅。当然前提是google不再出昏招。
http://zesn.blogspot.com/feeds/posts/default


Hello,

First of all, thank you for using FeedBurner and AdSense for feeds. We really appreciate every minute you spend using our services.

We also know you've come to depend on us to deliver your feed reliably without ever requiring you to change anything (unless you want to). Unfortunately, due some poor planning on Google's part since you created your new feed, http://feeds2.feedburner.com/esn, we have been forced to change its address to http://feeds2.feedburner.com/esn2.

WHY DID THIS HAPPEN?
We have worked hard to ensure that any feed that already exists on feeds.feedburner.com cannot be created in the new Google-hosted feeds environment, feeds2.feedburner.com. However, a few feeds, including your own, did end up with the same address on both sides. We've used an automatic conflict-resolution system to determine which feed's address to change, and the choice ended up being this feed.

WHAT NEXT?
This change in feed address means you may need to make a few other changes in order to make sure your subscribers can still subscribe to your content.

1. If you:
- use the WordPress FeedSmith plugin with a WordPress self-hosted blog;
- OR have a "Post Feed Redirect URL" setting in a Blogger account;
- OR have applied any redirects with an Apache web server you use to host your site;

...you will need to change the redirection address to http://feeds2.feedburner.com/esn2.

2. If you use FeedBurner's feed to email service, you will need to regenerate your email subscription form in the Email Subscriptions section of the Publicize tab at http://feedburner.google.com and re-insert it on your website.

3. If you use FeedBurner's subscription chicklets, or use FeedBurner's FeedCount icon, you will also need to get new code for those images on the Publicize tab at http://feedburner.google.com and re-insert it on your website.

4. Any other links to your feed, posted on your website, will need to be changed to http://feeds2.feedburner.com/esn2


If these steps are not completed, it is likely your subscribers will see the wrong content.

SINCE THIS IS TOTALLY OUR MISTAKE...
Along with our profuse apologies for allowing this to even happen in the first place, we would like to send you some free stuff. Please fill out the following form and provide your postal mail address:

https://spreadsheets.google.com/viewform?formkey=cDdzVUM...0Yk1DUEE6MA

We'll get a package off to you shortly!

Warm regards,

The FeedBurner and AdSense for feeds teams
[......]

2009年2月23日星期一

Mayavi2 用户手册1 概览


这个帖子说明有朋友在寻找Mayavi的信息时访问了本园子,现在就贴一篇关于Mayavi2的介绍,希望他们能再次光临。

内容来自Mayavi2的中文文档项目。去年10月底就建立了此项目,由于时间比较紧,进展极其缓慢。Mayavi2的文档采用reStructuredText格式(本篇文档的源文件在这里),使用Sphinx将rst文件及图片等转换为完整的文档网站。帖子中没有给出的链接,正是指向其它文档页面。我会陆续贴上来。也欢迎感兴趣的朋友加入

章节摘要

本章简要介绍什么是 Mayavi,并告诉你在这本手册的什么地方可以找到与你的情况相关的信息。

简介

Mayavi2 致力于简便的3D数据可视化功能。主要通过下列方式实现:

  • 可选的富用户界面,包括可与可视化中的所有数据和对象交互的对话框。

  • 简洁的 Python 脚本界面,包括即用型3D可视化功能,与 Matlab 或 matplotlib (使用 mlab ), 或面向对象的编程界面。

  • 不需要 VTK 即可使用其强大功能。

另外,Mayavi2 努力成为可重用的工具,即以各种方式嵌入你的库程序或应用软件里,或与 Envisage 应用程序创建框架(application-building framework)共同组建特定领域的工具。

Mayavi2 是什么?

Mayavi2 是一个通用的、跨平台 3D 科学数据可视化工具。其特点如下:

  • 标量、向量、张量的 2D 和 3D 的可视化。

  • 可方便地使用Python编写脚本。

  • 可方便地修改源代码,模块和数据过滤器进行扩展。

  • 可读入多种数据格式:VTK (legacy 和 XML), PLOT3D 等。

  • 保存可视化操作。

  • 以多种图形格式保存渲染的可视化结果。

  • 通过 mlab 为快速科学绘图提供方便的功能。 (参考 simple-scripting-with-mlab).

不像它的前身 Mayavi1,Mayavi2 重新设计为具有脚步和可扩展功能。Mayavi2 提供 ``mayavi2``应用程序,其本身可独立使用。而且,Mayavi2 可以像 matplotlib 或 gnuplot 那样在脚本中用作绘图引擎,就像其它应用程序中用作交互可视化的库程序。它也可以用作 Envisage 的插件,天然地嵌入基于 Envisage 的应用程序中。

技术细节

Mayavi2 提供通用的可视化引擎,像VTK那样基于管道架构。Mayavi2 也提供 Envisage 插件,用于2D/3D科学数据可视化。Mayavi2 使用 Enthought 工具包(ETS),如 Traits, TVTK 和 Envisage_,下面是它的一部分特点:

  • Pythonic API 利用了 Traits 的所有优势。

  • Mayavi 可以天然地、透明地与 numpy 矩阵一起使用。(得益于 TVTK 的使用)

  • 由于使用了 MVC 设计,比 Mayavi-1 更容易编写脚本。

  • 方便地通过加入资源、组件、模块和数据过滤器进行扩展。

  • 提供 Envisage 插件,这意味着:

    • 在 Mayavi 中很容易地使用其他 Envisage 插件。例如,Mayavi 提供嵌入的 Python 命令行解释器。这是一个 Envisage 插件,在 Mayavi 中只需要一行代码。

    • 在基于 Envisage 的应用程序中容易地使用 Mayavi。因此所有基于 Envisage 的应用程序可以轻松使用 Mayavi 插件,编写脚本以可视化数据。

  • 基于 wxPython/Qt4 的 GUI(得益于 Traits,PyFace 和 Envisage). 很重要的一点是 Mayavi 的源程序中没有直接使用 wxPython 或 Qt4。

  • 非侵入式、重用型设计。不用基于 wxPython 或 Qt4 的图形界面,也可以使用 Mayavi。

Note

下面所有章节均假设你已经有工作正常的 Mayavi 。下载和安装 Mayavi,请参考下一章 installation.

将 Mayavi 作为独立程序或库程序?

用户主要有三种方法使用 Mayavi :

  1. 图形方式使用 mayavi2 应用程序.更多相关信息请参考 :ref:using-the-mayavi-application`。

  2. 在简单的 Python 脚本中用作绘图引擎. 脚本 API mlab 提供了在批处理脚本中使用 Mayavi 的简单方式,更多相关 信息请参考 :ref:`simple-scripting-with-mlab`。

  3. 在 Python 中编写 Mayavi 应用脚本。Mayavi 应用程序本身提供了强大的 通用脚本 API,可以适应你的需求。

    1. 可在使用 mayavi2 应用程序时编写脚本自动完成任务及扩展 Mayavi。

    2. 可在自己的基于 Python 的应用中编写 Mayavi 脚本。

    3. 可使用 Envisage 或其他各种方式将 Mayavi 嵌入你的应用中。

    更多详细信息请参考 :ref:`advanced-scripting-with-mayavi`。

场景(Scenes)、数据源和可视化模块:管道模块

Mayavi 使用类似 VTK 的管道(pipeline)结构。对用户而言,可以简化为如下层次。

  • 数据被载入 Mayavi 后存储在数据源中(使用文件或由脚本产生)。可以打开任意多个数据文件或数据对象。数据源是富对象,描述了数据但没有指定如何可视化。

  • 这些数据可以使用过滤器处理(可选),使用可视化模块进行可视化操作。这些过滤器和模块可以通过用户界面的 `Visualize 菜单项或上下文菜单访问到,或在编写 Mayavi 脚本将其实例化为 Python 对象。

    区别数据源、数据容器和可视化工具的原因是由于有很多不同的查看数据方式。例如下面的图片都是相同数据通过应用不同的模块而获得的。



  • 所有对象属于一个 场景 -- 这是 3D 可视化中的一片区域。在交互应用程序中,新的场景可以通过使用菜单 File->New->VTK Scene 来创建。

将数据载入 Mayavi

Mayavi 是一个科学数据可视化工具。准备数据的主要方式有两个:

  1. 将数据存入其所支持的数据文件格式,例如 VTK legacy 或 VTK XML 文件等。更多关于 VTK 的信息请参考 VTK 文件格式 VTK file formats。这些文件在交互应用程序中可以通过菜单载入。

  2. 通过 numpy 数组或其它序列产生 TVTK 数据集(dataset)。最容易的方式是使用脚本API, 例如 `mlab`。 (参看这一段 creating data sources with mlab ,或者 3D 绘图函数: mlab_plotting_functions).

另外,如果你希望通过建立 VTK 数据结构或文件以获得更深入的理解,请参考此章节关于数据集的一般信息 data-structures-used-by-mayavi。

[......]

2009年2月19日星期四

在 Hiweed2RC3 安装emacs23 CSV

下载最新CSV源码
esn@esn-laptop:~/Tools$ cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/cvsroot/emacs co emacs


安装图形包,以显示图片
esn@esn-laptop:~/Tools$ sudo aptitude install libxpm-dev libpng-dev libz-dev libjpeg-dev libtiff-dev libgif-dev


安装其他相关的包
esn@esn-laptop:~/Tools$ sudo aptitude install emacs21 xserver-xorg-dev xorg-dev libncurses5 libncurses5-dev libidl-dev libgtk2.0-dev m17n-db m17n-lib-bin libotf-dev


建立独立的编译目录
esn@esn-laptop:~/Tools$ mkdir emacs_bld
esn@esn-laptop:~/Tools/$ cd emacs_bld/


编译
esn@esn-laptop:~/Tools/emacs_bld$ ../emacs/configure
esn@esn-laptop:~/Tools/emacs_bld$ make


测试
esn@esn-laptop:~/Tools/emacs_bld$ src/emacs


一切正常,就可以安装了
esn@esn-laptop:~/Tools/emacs_bld$ sudo make install


参考:
http://forum.ubuntu.org.cn/viewtopic.php?f=68&t=18274
http://www.emacswiki.org/cgi-bin/emacs-en/EmacsFromCVS
http://cvs.savannah.gnu.org/viewvc/emacs/emacs/INSTALL?revision=1.86.2.24&view=markup

更新:发现X window下速度非常慢,终端下正常,不知问题在哪里。安装了emacs-snapshot,问题依旧。头痛啊。。。
[......]

2009年2月17日星期二

解决linux音频独占的问题

是否遇到过以下情况:浏览了一个有flash的网页之后,所有的程序都没有声音了;或者使用mplayer时,stardict无法朗读单词。这并不是声卡驱动有问题,而是没有配置多音频造成的问题。按照下面的步骤修改 /etc/pulse/default.pa 可解决问题。原文在这里

找到:
#load-module module-alsa-sink ...
改为
load-module module-alsa-sink device=dmix

找到:
load-module module-suspend-on-idle
改为
#load-module module-suspend-on-idle

另外:
找到: (解决录音问题,如skype和audacity)
load-module module-hal-detect
改为:
#load-module module-hal-detect

这样,通过使用dmix,PulseAudio就不会霸占整个audio系统。PulseAudio将成为alsa的其中一个MixChannel。然后,ALSA和PulseAudio便能很好地共存。


然后注销重新登录即可。
[......]

2009年2月14日星期六

情人节快乐


天各一方,涂鸦送给我的爱人,情人节快乐!

注:非原创,以前看到过类似的意思,硬着头皮称为“再创”吧。
[......]

2009年2月9日星期一

终于下雪了


正月十五雪打灯——老家终于下雪了!

今年冬天晋冀鲁豫陕甘皖严重干旱,全国43%的小麦产区受灾,370万人、185万头大牲畜饮水吃紧。金融危机还在盘旋呼啸,天气又作怪,而对抗旱灾最重要的农田水利设施问题重重,天灾人祸不单行。

苍天怜悯,雪人难道只能是童话人物。。。。。。
[......]

2009年2月7日星期六

贺岁篇 4 牛头,年贺状,暖宝,四字熟语


不好意思,快到正月十五了,还在贺岁。其实早有内容了,只是没空发图。对,此文主要是图(点击图片可看大图)。先发个牛头打头炮——新年那天的面包。

言归正传,上回说到日本不过春节,但把公历新年称为“正月”,很多习俗也与中国过年类似,比如送贺卡,称为“年贺状”。不过很有意思的是,日本的邮局集中在新年那一天投递年贺状。新年那天商店通常有一些优惠活动,比如销售福袋。下面照片中是一位会说中文的日本朋友送的年贺状。旁边是新年那天在附近超市买的暖宝,都装在前面的那个小袋里。是不是觉得装不下?嗯,起初我也不相信。那是商店的一个新年优惠活动,自助装袋,一袋500日元。由于别人都在抢着挑选福袋,而我不解风情,一大早去买圆珠笔。负责那片的服务员非常热情地招呼我这位新年1号顾客,不好冷落他的热情,从不使用暖宝的我开始装袋。服务员两次拦住要去交钱的我,一再强调,装得越多,今年的好运就越多。刚交完钱,就天女散花了,希望今年的好运也多得爆棚啊。

年贺状和自助装袋的暖宝

下面是写有“谨贺新年”的贺岁包装和普通包装的盒装牛奶。上面的红色日文意思是“恭请2009年一如既往垂青惠顾”。“谨贺新年”属于日本的“四字熟语”。四字熟语,类似于成语,而且很多都来源于中国成语。有个关于四字熟语的笑话:对于下面的填空问题,(_)肉(_)食,很多日本人,尤其是年轻人,会不假思索的填为“烧肉定食”。不过,知不知道“弱肉强食”这个词,与娴熟运用此原理是两码事——这是题外话了,也不符合和谐的主旋律,背离贺岁的基调,打住。

谨贺新年

虽然现在日语中外来语泛滥成灾,但是汉字水平仍然是文化品味的重要标志,例如汉字检定考试非常热门,甚至出了相关的腐败问题。下面是一些祝福许愿的四字熟语,看看能否找到对应的成语。都是搞技术的人写的,丑了点,凑合看吧,至少都没写错字。

四字熟语

最后看看当今日本首相麻生先生的新年贺词。发现问题了吗?竟然写错一个字!倒也符合他的语文水平。由于他一再出演白字先生,以至于日本最近流行的教育孩子的话变为:“你再这样下去,就要变成首相了”。为了不成为首相,汉字解读类书热销,一时“洛阳纸贵”。

白字先生
[......]

2009年2月5日星期四

Google的网站管理员工具

不是特意给google做广告,只是有些结果很有趣。下面是网站管理员工具官方文档的一段说明:
Google 网站管理员工具提供免费的简易方法,让您的网站更容易被 Google 抓取。该工具可显示 Google 对您网站的意见,帮助您诊断问题并让您与我们共享信息来提高您网站的展示率。
这里介绍一下其中的“热门搜索查询”项目,可以查看最能让自己网站出现的前 20 条查询,以及这些常见的 20 条查询在每次搜索中的百分比。下面是本博客在2009年1月的统计结果:

# % 查询 排名
1 21% "让 大地 重光" 孔庆东 32
2 12% mayavi mayavi2 区别 1
3 9% colinux python 2
4 6% spe python3 1
5 6% canon dcim 5
6 6% gg mayavi2 5
7 6% python traceback 信息 7
8 6% hiweed 1.0 8
9 6% python "之 不如 空" 9
10 6% "塩 の 街" 下载 13
11 6% "孔 庆 东" "狼心狗肺 的 不是 春 晚" 18
12 6% "塩 の 街" 21

这里和自己的博客内容有确定关系的关键词有pythonspecolinuxmayavi2hiweed 1.0,其他的就有些不明不白。
  • 最奇怪的是,排名最高的搜索(及第11位)与我的博客内容竟然没有一点关系!虽然我每天都看孔教授的博客,但我至今没有写过一篇关于他的文章,仅仅在侧栏给出其博客地址及自动给出最新文章的链接。沾了名人的光,面上实在无光,那就挖掘一下此信息的价值吧
    • “32”这个数字意义不大,应该是最近的排名。默认情况下这已经是第四页了,在转载如此流行的情况下,即使原文被删除了,也早就在第一页找到文章内容了,后面的搜索结果根本没人看。搜索结果的排名应该是动态的,估计当初我的文章应该比较靠前,毕竟咱是与东博书院同步给出链接。现在转载的多了,自然就靠后了。而且,如果现在还在搜诉结果中出现,就是100%垃圾信息了,我的博客上早就自动更新为孔大侠最新博文了。建议google重新计算排名(即这里的32),按照点击时的排名算平均值,或者这样如果代价太大,就直接去掉这个排名,反正没有用处
    • 这短暂时间里有限的网友点击竟促成我的搜索引擎带来的最大流量,可想而知google给我的贡献之小。
  • 第一位的让我失望,第二位的则更让搜索的朋友失望了。我有一篇讲如何解决安装mayavi2中出现问题的帖子,但没有涉及mayavi不同版本间的区别。而且我的页面竟然出现在搜索结果的第一项,这是好事,但是看看google给出的结果:
  • 共有 4 项符合mayavi mayavi2 区别的查询结果,以下是第 1 - 4 项 (搜索用时 0.68 秒)

    您是不是要找: miyavi mayavi2 区别

    搜索结果

    1. ESN的菜园: 感冒进行时

      ... 感冒进行时 · Howto:连接Canon powershot A70 和linux · ► 十一月 (2). 安装bash-completion · 安装最新的Mayavi2 ... Mayavi image of the week ...
      zesn.blogspot.com/2008/12/blog-post.html - 126k - 网页快照 - 类似网页
    2. ESN的菜园: 学习心肺复苏术

      十一月 (2). 安装bash-completion · 安装最新的Mayavi2 ... Mayavi image of the fortnight · New Scientist - Online News · Global warming could suffocate the sea ...
      zesn.blogspot.com/2008/12/blog-post_21.html - 124k - 网页快照 - 类似网页
      zesn.blogspot.com站内的其它相关信息 »
    3. PageSize -

      5691 SzerkesztésiSegédlet; 5687 SciPy2007; 5683 Cookbook/MayaVi/ ... 4592 ArndBaecker/MayaVi2; 4570 康宝莱--宝莱; 4569 HelpOnActions; 4556 HelpOnActions/ ...
      www.scipy.org/PageSize - 363k - 网页快照 - 类似网页
    4. TitelListe -

      Cookbook/MayaVi/ScriptingMayavi2 Cookbook/MayaVi/ScriptingMayavi2/BasicModules [7 attachments] ..... 无人化打包 无线路由、AP、网桥之区别详解篇 无锡房产网 ...
      www.scipy.org/Wiki/TitelListe - 207k - 网页快照 - 类似网页
      www.scipy.org站内的其它相关信息 »

    为了提供最相关的结果,我们省略了与已显示的 4 个类似的条目。
    根据您的意愿,可将省略的结果纳入搜索范围后再重新搜索

    您是不是要找: miyavi mayavi2 区别

    什么“感冒进行时”,“心肺复苏术”,真是让人苦笑不得。而真正有一点点关系的页面安装最新的 Mayavi2却没有作为结果出现,是我的RSS feed有问题吗?点过来的网友一定很失望,信息没用啊。其实,他们还算运气好的,能在侧栏里找到那篇文章,而2月份再点过来的网友就什么都找不到了,因为侧栏的存档只显示当前月的文章题目列表,之前时间只有月份的链接。这里,对google提点建议,现在博客的页面结构多是一个或多个侧栏,其中的内容有不少是动态的,最好能分析出页面结构,在侧栏搜索结果的时效性上多加注意,对于“随机文章”条目就更不能用在搜索结果中了。呵呵,班门弄斧了。
  • 在排名第六的gg mayavi2中,现在我的页面在搜索结果中上升到第一(2009年2月6日),不过,说实话,我确实不知道gg与mayavi2有什么关系,我只是把google缩写为gg,当然也可为“狗狗”。
  • 第9、10、12就根本摸不着头脑了。
看了上面的信息,明白自己的博客为什么没人看了——作为第一大流量来源的搜索引擎大部分文不对题,驴子耳朵,多长两撇。不过这个统计结果还是很有用的,例如可以考虑多写写mayavi2,spe,colinux,相关的中文资料如此之少;也可写写对孔大侠的评论,不枉网友到此一游。

另外,也推荐使用 Google Analytics (分析)


[......]

2009年2月1日星期日

贺岁篇 3 Happy 牛 Year

“Happy 牛 Year”可谓今年最有特色的电子邮件拜年语,甚至一位日本朋友也这样给我拜年。反正和“牛”沾边的都来凑热闹。下面就再凑个热闹,介绍linux里的一条会说话能思考的牛。

esn@esn-laptop:~$ cowsay "Happy 牛 Year!"
_________________
< Happy 牛 Year!>
-----------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
esn@esn-laptop:~$ cowthink "Happy My Year..."
___________________
( Happy My Year... )
-------------------
o ^__^
o (oo)\_______
(__)\ )\/\
||----w |
|| ||

这两个命令其实是一个命令
esn@esn-laptop:~$ ls -l /usr/games/cow*
-rwxr-xr-x 1 root root 4264 2008-05-07 15:36 /usr/games/cowsay
lrwxrwxrwx 1 root root 6 2009-02-01 10:19 /usr/games/cowthink -> cowsay

这条牛感情丰富:
$ cowsay "Happy 牛 Year!"
___________________
< Happy 牛 Year! >
-------------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||

esn@esn-laptop:~$ cowsay -b "Happy 牛 Year! "
___________________
< Happy 牛 Year! >
-------------------
\ ^__^
\ (==)\_______
(__)\ )\/\
||----w |
|| ||
esn@esn-laptop:~$ M="Happy 牛 Year!"
esn@esn-laptop:~$ cowsay -d $M
__________________
< Happy 牛 Year! >
------------------
\ ^__^
\ (xx)\_______
(__)\ )\/\
U ||----w |
|| ||
esn@esn-laptop:~$ cowsay -p $M
__________________
< Happy 牛 Year! >
------------------
\ ^__^
\ (@@)\_______
(__)\ )\/\
||----w |
|| ||
esn@esn-laptop:~$ cowsay -s $M
__________________
< Happy 牛 Year! >
------------------
\ ^__^
\ (**)\_______
(__)\ )\/\
U ||----w |
|| ||
esn@esn-laptop:~$ cowsay -y $M
__________________
< Happy 牛 Year !>
------------------
\ ^__^
\ (..)\_______
(__)\ )\/\
||----w |
|| ||

它还能七十二变,下面是它的各种可能的化身:
esn@esn-laptop:~$ cowsay -l
Cow files in /usr/share/cowsay/cows:
apt beavis.zen bong bud-frogs bunny cheese cower daemon default dragon
dragon-and-cow duck elephant elephant-in-snake eyes flaming-sheep
ghostbusters head-in hellokitty kiss kitty koala kosh luke-koala
mech-and-cow meow milk moofasa moose mutilated ren satanic sheep skeleton
small sodomized sodomized-sheep stegosaurus stimpy supermilker surgery
telebears three-eyes turkey turtle tux udder vader vader-koala www

例如,它可以变为火龙:
esn@esn-laptop:~$ cowsay -f dragon "Happy 牛 Year!"
___________________
< Happy 牛 Year! >
-------------------
\ / \ //\
\ |\___/| / \// \\
/0 0 \__ / // | \ \
/ / \/_/ // | \ \
@_^_@'/ \/_ // | \ \
//_^_/ \/_ // | \ \
( //) | \/// | \ \
( / /) _|_ / ) // | \ _\
( // /) '/,_ _ _/ ( ; -. | _ _\.-~ .-~~~^-.
(( / / )) ,-{ _ `-.|.-~-. .~ `.
(( // / )) '/\ / ~-. _ .-~ .-~^-. \
(( /// )) `. { } / \ \
(( / )) .----~-.\ \-' .~ \ `. \^-.
///.----..> \ _ -~ `. ^-` ^-_
///-._ _ _ _ _ _ _}^ - - - - ~ ~-- ,.-~
/.-~

下面牛儿要显神通了,无穷变化贺新年!
esn@esn-laptop:~$ for f in /usr/share/cowsay/cows/*.cow;
do n=`basename $f .cow`; cowsay -f $n "Happy 牛 Year"; done

________________
< Happy 牛 Year >
----------------
\ (__)
(oo)
/------\/
/ | ||
* /\---/\
~~ ~~
________________
< Happy 牛 Year >
----------------
\ __------~~-,
\ ,' ,
/ \
/ :
| '
| |
| |
| _-- |
_| =-. .-. ||
o|/o/ _. |
/ ~ \ |
(____@) ___~ |
|_===~~~.` |
_______.--~ |
\________ |
\ |
__/-___-- -__
/ _ \
________________
< Happy 牛 Year >
----------------
\
\
^__^
_______/(oo)
/\/( /(__)
| W----|| |~|
|| || |~| ~~
|~| ~
|_| o
|#|/
_+#+_
________________
< Happy 牛 Year >
----------------
\
\
oO)-. .-(Oo
/__ _\ /_ __\
\ \( | ()~() | )/ /
\__|\ | (-___-) | /|__/
' '--' ==`-'== '--' '
________________
< Happy 牛 Year >
----------------
\
\ \
\ /\
( )
.( o ).
________________
< Happy 牛 Year >
----------------
\
\
_____ _________
/ \_/ |
| ||
| ||
| ###\ /### | |
| 0 \/ 0 | |
/| | |
/ | < |\ \
| /| | | |
| | \_______/ | | |
| | | / /
/|| /|||
----------------|
| | | |
*** ***
/___\ /___\
________________
< Happy 牛 Year >
----------------
\
\
,__, | |
(oo)\| |___
(__)\| | )\_
| |_w | \
| | || *

Cower....
________________
< Happy 牛 Year >
----------------
\ , ,
\ /( )`
\ \ \___ / |
/- _ `-/ '
(/\/ \ \ /\
/ / | ` \
O O ) / |
`-^--'`< '
(_.) _ ) /
`.___/` /
`-----' /
<----. __ / __ \
<----|====O)))==) \) /====
<----' `--' `.__,' \
| |
\ /
______( (_ / \______
,' ,-----' | \
`--{__________) \/
________________
< Happy 牛 Year >
----------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
________________
< Happy 牛 Year >
----------------
\ ^ /^
\ / \ // \
\ |\___/| / \// .\
\ /O O \__ / // | \ \ *----*
/ / \/_/ // | \ \ \ |
@___@` \/_ // | \ \ \/\ \
0/0/| \/_ // | \ \ \ \
0/0/0/0/| \/// | \ \ | |
0/0/0/0/0/_|_ / ( // | \ _\ | /
0/0/0/0/0/0/`/,_ _ _/ ) ; -. | _ _\.-~ / /
,-} _ *-.|.-~-. .~ ~
\ \__/ `/\ / ~-. _ .-~ /
\____(oo) *. } { /
( (--) .----~-.\ \-` .~
//__\\ \__ Ack! ///.----..< \ _ -~
// \\ ///-._ _ _ _ _ _ _{^ - - - - ~
________________
< Happy 牛 Year >
----------------
\ / \ //\
\ |\___/| / \// \\
/0 0 \__ / // | \ \
/ / \/_/ // | \ \
@_^_@'/ \/_ // | \ \
//_^_/ \/_ // | \ \
( //) | \/// | \ \
( / /) _|_ / ) // | \ _\
( // /) '/,_ _ _/ ( ; -. | _ _\.-~ .-~~~^-.
(( / / )) ,-{ _ `-.|.-~-. .~ `.
(( // / )) '/\ / ~-. _ .-~ .-~^-. \
(( /// )) `. { } / \ \
(( / )) .----~-.\ \-' .~ \ `. \^-.
///.----..> \ _ -~ `. ^-` ^-_
///-._ _ _ _ _ _ _}^ - - - - ~ ~-- ,.-~
/.-~
________________
< Happy 牛 Year >
----------------
\ /\ ___ /\
\ // \/ \/ \\
(( O O ))
\\ / \ //
\/ | | \/
| | | |
| | | |
| o |
| | | |
|m| |m|
________________
< Happy 牛 Year >
----------------
\
\ ....
. ........
. .
. .
....... .........
..............................
Elephant inside ASCII snake
________________
< Happy 牛 Year >
----------------
\
\
.::!!!!!!!:.
.!!!!!:. .:!!!!!!!!!!!!
~~~~!!!!!!. .:!!!!!!!!!UWWW$$
:$NWX!!: .:!!!!!!XUWW$$$$$P
$$$##WX!: .<!!!!UW$$" $$$$#
$$$ $$UX :!!UW$$$$$ 4$$$*
^$$B $$\ $$$$$$ d$R"
"*$bd$$ '*$$$$$$o+#"
"""" """""""
________________
< Happy 牛 Year >
----------------
\ . . .
\ . . . ` ,
\ .; . : .' : : : .
\ i..`: i` i.i.,i i .
\ `,--.|i |i|ii|ii|i:
UooU\.'@@@@@@`.||'
\__/(@@@@@@@@@@)'
(@@@@@@@@)
`YY~~~~YY'
|| ||
________________
< Happy 牛 Year >
----------------
\
\
\ __---__
_- /--______
__--( / \ )XXXXXXXXXXX\v.
.-XXX( O O )XXXXXXXXXXXXXXX-
/XXX( U ) XXXXXXX\
/XXXXX( )--_ XXXXXXXXXXX\
/XXXXX/ ( O ) XXXXXX \XXXXX\
XXXXX/ / XXXXXX \__ \XXXXX
XXXXXX__/ XXXXXX \__---->
---___ XXX__/ XXXXXX \__ /
\- --__/ ___/\ XXXXXX / ___--/=
\-\ ___/ XXXXXX '--- XXXXXX
\-\/XXX\ XXXXXX /XXXXX
\XXXXXXXXX \ /XXXXX/
\XXXXXX > _/XXXXX/
\XXXXX--__/ __-- XXXX/
-XXXXXXXX--------------- XXXXXX-
\XXXXXXXXXXXXXXXXXXXXXXXXXX/
""VXXXXXXXXXXXXXXXXXXV""
________________
< Happy 牛 Year >
----------------
\
\
^__^ /
(oo)\_______/ _________
(__)\ )=( ____|_ \_____
||----w | \ \ \_____ |
|| || || ||
________________
< Happy 牛 Year >
----------------
\
\
/\_)o<
| \
| O . O|
\_____/
________________
< Happy 牛 Year >
----------------
\
\
,;;;;;;;,
;;;;;;;;;;;,
;;;;;'_____;'
;;;(/))))|((\
_;;((((((|))))
/ |_\\\\\\\\\\\\
.--~( \ ~))))))))))))
/ \ `\-(((((((((((\\
| | `\ ) |\ /|)
| | `. _/ \_____/ |
| , `\~ /
| \ \ /
| `. `\| /
| ~- `\ /
\____~._/~ -_, (\
|-----|\ \ ';;
| | :;;;' \
| / | |
| | |
________________
< Happy 牛 Year >
----------------
\
\
("`-' '-/") .___..--' ' "`-._
` *_ * ) `-. ( ) .`-.__. `)
(_Y_.) ' ._ ) `._` ; `` -. .-'
_.. `--'_..-_/ /--' _ .' ,4
( i l ),-'' ( l i),' ( ( ! .-'
________________
< Happy 牛 Year >
----------------
\
\
___
{~._.~}
( Y )
()~*~()
(_)-(_)
________________
< Happy 牛 Year >
----------------
\
\
\
___ _____ ___
/ \ / /| / \
| | / / | | |
| | /____/ | | |
| | | | | | |
| | | {} | / | |
| | |____|/ | |
| | |==| | |
| \___________/ |
| |
| |
________________
< Happy 牛 Year >
----------------
\
\ .
___ //
{~._.~}//
( Y )K/
()~*~()
(_)-(_)
Luke
Skywalker
koala
________________
< Happy 牛 Year >
----------------
,-----.
| |
,--| |-.
__,----| | | |
,;:: | `_____' |
`._______| i^i |
`----| |---'| .
,-------._| |== ||//
| |_|P`. /'/
`-------' 'Y Y/'/'
.== /_
^__^ / /'| `i
(oo)_______ /' / | |
(__) )/ /' / | `i
||----w | ___,;`----'.___L_,-'`__
|| || i_____;----.____i""____

________________
< Happy 牛 Year >
----------------
\
\ , _ ___.--'''`--''//-,-_--_.
\`"' ` || \\ \ \\/ / // / ,-\\`,_
/'` \ \ || Y | \|/ / // / - |__ `-,
/@"\ ` \ `\ | | ||/ // | \/ \ `-._`-,_.,
/ _.-. `.-\,___/\ _/|_/_\_\/|_/ | `-._._)
`-'``/ / | // \__/\__ / \__/ \
`-' /-\/ | -| \__ \ |-' |
__/\ / _/ \/ __,-' ) ,' _|'
(((__/(((_.' ((___..-'((__,'
________________
< Happy 牛 Year >
----------------
\ ____________
\ |__________|
/ /\
/ / \
/___________/___/|
| | |
| ==\ /== | |
| O O | \ \ |
| < | \ \|
/| | \ \
/ | \_____/ | / /
/ /| | / /|
/||\| | /||\/
-------------|
| | | |
<__/ \__>
________________
< Happy 牛 Year >
----------------
\ ____
\ / \
| ^__^ |
| (oo) |______
| (__) | )\/\
\____/|----w |
|| ||

Moofasa
________________
< Happy 牛 Year >
----------------
\
\ \_\_ _/_/
\ \__/
(oo)\_______
(__)\ )\/\
||----w |
|| ||
________________
< Happy 牛 Year >
----------------
\ \_______
v__v \ \ O )
(oo) ||----w |
(__) || || \/\

________________
< Happy 牛 Year >
----------------
\
\
____
/# /_\_
| |/o\o\
| \\_/_/
/ |_ |
| ||\_ ~|
| ||| \/
| |||_
\// |
|| |
||_ \
\_| o|
/\___/
/ ||||__
(___)_)
________________
< Happy 牛 Year >
----------------
\
\ (__)
(\/)
/-------\/
/ | 666 ||
* ||----||
~~ ~~
________________
< Happy 牛 Year >
----------------
\
\
__
UooU\.'@@@@@@`.
\__/(@@@@@@@@@@)
(@@@@@@@@)
`YY~~~~YY'
|| ||
________________
< Happy 牛 Year >
----------------
\ (__)
\ /oo|
\ (_"_)*+++++++++*
//I#\\\\\\\\I\
I[I|I|||||I I `
I`I'///'' I I
I I I I
~ ~ ~ ~
Scowleton
________________
< Happy 牛 Year >
----------------
\ ,__,
\ (oo)____
(__) )\
||--|| *
________________
< Happy 牛 Year >
----------------
\ _
\ (_)
\ ^__^ / \
\ (oo)\_____/_\ \
(__)\ ) /
||----w ((
|| ||>>
________________
< Happy 牛 Year >
----------------
\ __
\ (oo)
\ ( )
\ /--\
__ / \ \
UooU\.'@@@@@@`.\ )
\__/(@@@@@@@@@@) /
(@@@@@@@@)((
`YY~~~~YY' \\
|| || >>
________________
< Happy 牛 Year >
----------------
\ . .
\ / `. .' "
\ .---. < > < > .---.
\ | \ \ - ~ ~ - / / |
_____ ..-~ ~-..-~
| | \~~~\.' `./~~~/
--------- \__/ \__/
.' O \ / / \ "
(_____, `._.' | } \/~~~/
`----. / } | / \__/
`-. | / | / `. ,~~|
~-.__| /_ - ~ ^| /- _ `..-'
| / | / ~-. `-. _ _ _
|_____| |_____| ~ - . _ _ _ _ _>
________________
< Happy 牛 Year >
----------------
\ . _ .
\ |\_|/__/|
/ / \/ \ \
/__|O||O|__ \
|/_ \_/\_/ _\ |
| | (____) | ||
\/\___/\__/ //
(_/ ||
| ||
| ||\
\ //_/
\______//
__ || __||
(____(____)
________________
< Happy 牛 Year >
----------------
\ ^__^
\ (oo)\_______ ________
(__)\ )\/\ |Super |
||----W | |Milker|
|| UDDDDDDDDD|______|
________________
< Happy 牛 Year >
----------------
\ \ /
\ \/
(__) /\
(oo) O O
_\/_ //
* ( ) //
\ (\\ //
\( \\ )
( \\ ) /\
___[\______/^^^^^^^\__/) o-)__
|\__[=======______//________)__\
\|_______________//____________|
||| || //|| |||
||| || @.|| |||
|| \/ .\/ ||
. .
'.'.`

COW-OPERATION
________________
< Happy 牛 Year >
----------------
\ _
\ (_) <-- TeleBEARS
\ ^__^ / \
\ (oo)\_____/_\ \
(__)\ you ) /
||----w ((
|| ||>>
________________
< Happy 牛 Year >
----------------
\ ^___^
\ (ooo)\_______
(___)\ )\/\
||----w |
|| ||
________________
< Happy 牛 Year >
----------------
\ ,+*^^*+___+++_
\ ,*^^^^ )
\ _+* ^**+_
\ +^ _ _++*+_+++_, )
_+^^*+_ ( ,+*^ ^ \+_ )
{ ) ( ,( ,_+--+--, ^) ^\
{ (@) } f ,( ,+-^ __*_*_ ^^\_ ^\ )
{:;-/ (_+*-+^^^^^+*+*<_ _++_)_ ) ) /
( / ( ( ,___ ^*+_+* ) < < \
U _/ ) *--< ) ^\-----++__) ) ) )
( ) _(^)^^)) ) )\^^^^^))^*+/ / /
( / (_))_^)) ) ) ))^^^^^))^^^)__/ +^^
( ,/ (^))^)) ) ) ))^^^^^^^))^^) _)
*+__+* (_))^) ) ) ))^^^^^^))^^^^^)____*^
\ \_)^)_)) ))^^^^^^^^^^))^^^^)
(_ ^\__^^^^^^^^^^^^))^^^^^^^)
^\___ ^\__^^^^^^))^^^^^^^^)\\
^^^^^\uuu/^^\uuu/^^^^\^\^\^\^\^\^\^\
___) >____) >___ ^\_\_\_\_\_\_\)
^^^//\\_^^//\\_^ ^(\_\_\_\)
^^^ ^^ ^^^ ^
________________
< Happy 牛 Year >
----------------
\ ___-------___
\ _-~~ ~~-_
\ _-~ /~-_
/^\__/^\ /~ \ / \
/| O|| O| / \_______________/ \
| |___||__| / / \ \
| \ / / \ \
| (_______) /______/ \_________ \
| / / \ / \
\ \^\\ \ / \ /
\ || \______________/ _-_ //\__//
\ ||------_-~~-_ ------------- \ --/~ ~\ || __/
~-----||====/~ |==================| |/~~~~~
(_(__/ ./ / \_\ \.
(_(___/ \_____)_)
________________
< Happy 牛 Year >
----------------
\
\
.--.
|o_o |
|:_/ |
// \ \
(| | )
/'\_ _/`\
\___)=(___/

________________
< Happy 牛 Year >
----------------
\
\ (__)
o o\
('') \---------
\ \
| |\
||---( )_|| *
|| UU ||
== ==
________________
< Happy 牛 Year >
----------------
\ ,-^-.
\ !oYo!
\ /./=\.\______
## )\/\
||-----w||
|| ||

Cowth Vader
________________
< Happy 牛 Year >
----------------
\
\ .
.---. //
Y|o o|Y//
/_(i=i)K/
~()~*~()~
(_)-(_)

Darth
Vader
koala
________________
< Happy 牛 Year >
----------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||--WWW |
|| ||
[......]