2009年4月18日星期六

日语中的简化

刚学日语时,犯过“举一反三”的错误。学了“おはよう”和“おはようございます”,以为加上“ございます”就可以变成敬语,于是说出这样令日本同事捧腹的“日语”:
こんにちはございます
后来查了查,才知道这些日常问候语原来都是缩略语:
おはよう ← お早く ← お早く○○ですね
こんにちは ← 今日は御機嫌いかがですか
こんばんは ← 今晩はいい晩です
さようなら ← 然様ならお別れいたしましょう
以及
ござります(る) → ございます

除了这类年代久远、已经成为正式用语的缩略语外,现代口语相对书面语的简略更多。下面这些简略是使发音更为容易。
すみません → すいません
走っている、考えている → 走ってる、考えてる
くだらない、変わらない → くだんない、変わんない(→ くだんねえ、変わんねえ)
どこか → どっか
すごい → すげ
最后那个似乎只有年轻人才说,目前还属于不正确的日语。

日语中有一类敬语是在普通说法上加上“ございます”、“いただき”等语素,就是用繁琐来体现尊敬。有趣的是,现在日本人既想表达尊敬又想简略,竟然想到去掉前面的主体,只说“ございます”等部分。例如:
おはようございます → ございます
我工作的研究所的门卫很讲礼貌,早上见到每个人都要问好。上班人多的时候,把最后的“す”拖长,同时眼睛扫过一大片人,这样就不必说很多次,也算一种简化吧。

日语在汉字的书写上也有简化。现代日语的汉字基本上使用汉语的繁体字,但是也有一些简化,有些与汉语的简体字相同,有些属于自创。例如:
學 → 学
國 → 国
廣 → 広
氣 → 気
價 → 価
上年级的日本人还认识前面的繁体,但能正确书写的则不多见。我的一个52岁的上司就以能写繁体“學”而骄傲,呵呵。

日语中还有简繁同时使用的例子,例如“機”和“机”,不过两者意思不同;前者和汉语相同,后者则是“桌子”的意思。另外,在手写时,简化的趋势就更明显了。和同事讨论工作时,我们常使用白板。令我吃惊的是,日本同事竟书写很多简体字,例如“问”,只有我这个外国人才认真的写“問”。

日语相对汉语和英语要繁琐得多。日本的电视台常播放英日双语的新闻节目,日语播音员的语速明显比英语播音员快很多。平时听同事说敬语,像机关枪一样打出一长串后缀,不由得感叹他们的嘴真是灵巧啊。即便仍然繁琐,作为一个日语初学者,我还是能感受到日语简化的趋势。

不由地联想到汉语的繁简之争。虽然有些字简化得不够合理,但我支持简体字。丁启阵教授的文章很精彩,我就不狗尾续貂了。
[......]

2009年4月12日星期日

Mayavi2 用户手册3.2——载入标量数据: 例子heart.vtk

内容来自Mayavi2的中文文档项目。本篇文档的源文件在这里。欢迎感兴趣的朋友加入

本章介绍一个使用 heart.vtk 文件的简单例子。这是一个 32 x 32 x 12 个点的3D 数据,每个点处是标量数据,并且这些点在空间平均分布。这是一个结构化数据集(structured dataset),事实上是 ImageData。以后我们会读入很多这样的数据,但是现在只要将其当作空间上平均分布的点,每个点有标量数据与之相对应。此数据显然是心脏的CT扫描数据--我不知道这是谁的心脏。此文件是一个易读的文本文件,如果你愿意,可以使用文本编辑器查看。

  1. 确保 mayavi2 已经启动。首先打开数据文件。使用 File->Load data->Open file 菜单项,在打开的文件对话框内,找到包含例子数据的目录,选中 heart.vtk 文件。

    一旦选中数据,可以在 Mayavi 左面的显示树中看到新节点,VTK file (heart.vtk)。注意,在 TVTK 场景中还看不到任何图形。

  2. 为了查看轮廓(outline)——一个方框,找到 Visualize->Modules 菜单项,选择 Outline 模块。在 TVTK 场景中可以立刻看到一个白色方框。在显示树中,也应看到两个新节点,`Colors and legends` 和其下面的 Outline

  3. 单击左面的 Outline 节点可以改变轮廓的属性。这将在窗口的左下部,显示树的下面,生成“对象编辑窗口”。试着修改其设置,并查看结果。如果你双击左面的节点,将弹出编辑器对话框,而不是嵌入的对象编辑器。

    注意,通常 Module 的编辑器窗口有一部分是 Actor`(角色),一部分为 `Mapper`(映射器),一部分为 `Property`(属性)。这些对应于 TVTK/VTK 术语。可以将 `Property 看作与颜色、表示(representation)(曲面、线框等等)、线宽等等相关。Actor 部分与屏幕上渲染的对象有关,编辑器通常可设置其是否显示。 在 VTK 术语中,Mapper 是指将数据转换为图元(graphics primitive)的对象。与其相关的属性包含在 Mapper 部分。

  4. 关于与 TVTK 场景交互的详细信息,请参考此章节 interaction-with-the-scene并尝试其例子直到熟悉为止。

  5. 现在,保持选中 Outline 节点,选择 Visualize->Modules->IsoSurface 菜单项,生成 iso-曲面。在左面可以看到一个新节点 IsoSurface,在场景中可以看到标量数据的 iso-轮廓。当选中某个 iso数值时,此 iso-曲面被相应地染上颜色。试试修改此模块的各项设置。

  6. 要产生有意义的可视化图形,需要了解每种颜色代表什么。单击显示树的 Colors and legends 节点,在对象编辑器内选中 Show scalar bar`,将在 TVTK 场景中显示颜色图例。单击并拖动图例可以将其在场景中任意移动,单击并拖动其边缘,可以改变其大小。在对象编辑器中选择不同的选项可以改变颜色映射特性。

  7. 生成一个简单的"网格平面(grid plane)"来查看点在网格上的情况。这可以通过 `Visualize->Modules->GridPlane 菜单项,使用 GridPlane 模块来实现。

  8. 右键单击一个特定模块并选择"删除"可将其删除。请在 GridPlane 模块中试试删除以及其他右键菜单选项。

  9. 试试 ContourGridPlane 模块和 ScalarCutPlane 模块。

    ScalarCutPlane 模块有个很强大的特性,称为 三维小部件(3D widgets)。在 TVTK 场景窗口中,可以看到一个剖面(cut plane) 以不同颜色表示切片上的数据。此剖面轮廓为红色,有一个箭头伸出来。可以直接点击并拖动此剖面;点击并拖动箭头可以转动此剖面。也可以使用对象编辑器窗口重设标量剖面。

  10. 单击 TVTK 场景中的保存图标或使用 File->Save Scene As 菜单项可以将可视化结果保存为图片。

你应该得到一个如下所示的图像。

由 heart.vtk 获得的可视化例子

mayavi 的一个优点是:虽然这里所有的操作都通过用户界面完成,但是所有这些操作都可以通过 Python 脚本完成。相关的更多信息请参考这里simple-scripting-with-mlab (更深入的内容请参考advanced-scripting-with-mayavi)。

打开数据文件和启动模块也可以通过命令行完成。例如,可以简单的使用下面的命令:

 $ mayavi2 -d /path/to/heart.vtk -m Outline -m IsoSurface \
> -m GridPlane -m ScalarCutPlane

更多信息在此章command-line-arguments。

[......]

Mayavi2 用户手册3.1——参数曲面(parametric surface): 对可视化的简单介绍

内容来自Mayavi2的中文文档项目。本篇文档的源文件在这里。欢迎感兴趣的朋友加入
如果不能立刻找到作为例子的数据,参数曲面是非常方便的选择。参数曲面通常由两个变量 u 和 v 参数化获得。VTK 有一系列的类可用来查看参数曲面。Mayavi 也有这个功能。这样的数据是嵌入到三维中的两维表面。曲面上也有标量数据。有关 VTK 参量曲面的更多信息,可以参看 Andrew Maclean 的 Parametric Surfaces
  1. 启动 mayavi2 后,选择 File->Load data->Create Parametric Surface source 可以生成参数曲面源。生成数据后,可以在 Mayavi 左面的显示树(tree view)中的 ParametricSurface 部分看到新节点。请注意,在 TVTK 场景中,目前还看不到可视化图形。

    可以通过单击 ParametricSurface 的节点来修改参数曲面的特性。

  2. 为了查看轮廓(outline)——一个方框,找到 Visualize->Modules 菜单项,选择 Outline 模块。也可以右键单击 ParametricSurface 节点打开上下文菜单,选择 Add Module->Surface。在 TVTK 场景中将立刻看到一个网架立方体。在显示树中,也应看到两个新节点,`Colors and legends` 和其下面的 Outline

  3. 单击左面的 Outline 节点可以改变轮廓的属性。这将在窗口的左下部,显示树的下面,生成“对象编辑窗口”。试着修改其设置,并查看结果。例如,修改颜色域的数值以改变轮廓方框的颜色。如果你双击左面的节点,将弹出编辑器对话框,而不是嵌入的对象编辑器。

  4. 关于场景的详细信息,请参考此章节 interaction-with-the-scene并尝试其例子。

  5. 选择 Visualize->Modules->Surface 生成 Surface 模块,可以查看实际的曲面。单击左面的 Surface 节点,打开 Enable contours`,可以显示此曲面上的标量数据。

  6. 单击显示树的 `Modules 节点,可以显示颜色图例(用于将标量数值映射为颜色)。在 'Scalar LUT' 标签,选中 Show scalar bar`,将在 TVTK 场景中显示图例。单击并拖动图例可以将其在场景中任意移动,单击并拖动其边缘,可以改变其大小。在对象编辑器中选择不同的查询表(lookup table),可以改变颜色映射特性。

  7. 可以添加任意多的模块,但不是所有的模块对所有数据都有意义。Mayavi 还没有将对特定数据无意义的模块变成灰色(使其无效)。这一功能将在未来实现。但是犯错误并不可怕,所以请大胆尝试。

  8. 可以添加任意多的数据源。通过选择场景节点然后载入另一个参数曲面源,可以在同一场景中添加两个不同的参数曲面。这是否有意义,取决于用户。也可以添加任 意多的场景,并在其中查看任意数据。还可以在显示树上单击右键,通过上下文菜单在任意节点间剪切/粘贴/复制数据源和模块。

  9. 右键单击 `Outline 节点,选择 Delete,可以删除 Outline 模块。你也可以试试其他的选项。

  10. 使用 File->Save Scene As 菜单项可以将渲染的可视化结果保存为多种文件格式。

  11. 可视化本身可以通过 File->Save Visualization 菜单项保存为文件,也可以使用 Load visualization 菜单项重新载入。

下面是一个使用参数曲面数据源的可视化例子。请注意,在屏幕上移动角色(actor)会影响不同曲面的定位(使用场景的角色模式,通过‘a’键可以移动角色)。更多信息请参考interaction-with-the-scene.

使用参数曲面的可视化例子

[......]

Mayavi2 用户手册3——使用例子学习 Mayavi

内容来自Mayavi2的中文文档项目。本篇文档的源文件在这里。欢迎感兴趣的朋友加入
章节概要

本章给出一些例子,详细解释如何使用 Mayavi 应用程序,同时介绍其特点。

本章主要介绍 Mayavi 应用程序,这也是将 Mayavi 作为库程序使用的基础。如果你只希望尽快将 Mayavi 简单地像 Matlab 一样作为画图库程序使用,可以直接跳到这一章 simple-scripting-with-mlab,然后再回来深入理解。

要认识 mayavai,首先像下面这样在命令行启动 Mayavi2:

 $ mayavi2

在 Windows 中,可以双击可执行文件 mayavi2.exe (通常在 Python2X\Scripts 目录中);如果你安装了 python(x,y) 或 EPD,可以使用开始菜单中的快捷方式。

Mayavi 启动后,可以改变用户界面各个面板的大小以获得舒服的布局。这些设置将成为mayavi的默认属性。有关用户界面的详细信息可以在此章节获得general-layout-of-ui。

在进行下一步之前,有必要首先找到一些用来做实验的数据。下面的例子中,有两个要使用mayavi 自带的数据,可以在 mayavi 根目录中的 examples/data 目录中找到。如果没有安装这些数据,可以从这里下载: http://code.enthought.com/enstaller/eggs/source/

例子:

  1. 参数曲面(parametric surface): 对可视化的简单介绍
  2. 载入标量数据: 例子heart.vtk
  3. 可视化富数据集(rich dataset): 例子数据 fire_ug.vtu
  4. 与 scipy 一起使用 Mayavi
  5. 探索向量场
[......]

2009年4月10日星期五

遭遇域名劫持

这几天突然无法访问 YouTube。清空了 FireFox 的缓存,试了 elinks,甚至用 wget 下载首页,都失败。难道日本也封了 YouTube?到了研究所一试,显示得刷刷的。ping 了一下域名,记下 IP 地址:208.117.236.69。回来再 ping,得到:4.36.66.178。原来是DNS的问题!再一检查 /etc/resolv.conf:
nameserver 202.106.196.115
nameserver 202.106.0.20

太奇怪了,什么时候设置了网通的 DNS??!!立刻改回到 YahooBB 的 DNS:
nameserver 218.176.253.97
nameserver 218.176.253.65

立刻,YouTube 显示得刷刷的。

在国外浏览国外的网站(主域名服务器在国外的域名),还遭到国内的域名劫持,真是滑稽啊。
[......]

2009年4月4日星期六

关西话如何说“不用谢”

标准日语中,“谢谢”和“不用谢”分别是
「有難う御座います」
「どういたしまして」
关西方言的“谢谢”是
「おおきに」
那么对应的“不用谢”该如何说?我请教了周围的日本同事,他们商量了好一阵,最后的结论竟然是:没有!
[......]