有道电子词典

    由于英语是工作语言,而我的英语不是非常好,所以电子词典就成了我电脑上必备的软件。相当长一段时间,我一直使用的是金山词霸。但是,我对它的翻译并不是太满意。词典的一大弊病是翻译的很不自然,经典的词典多少年都更新不了一次,很难跟上日常用语的变化。往往词典上给出的翻译不是平时最常用的那个词,而是一个比较晦涩的生僻词。
    比如一个最简单的例子:我们通常把招聘翻译成 recruiting,可是金山词霸里就是没这个翻译;还有一次给老外介绍我们厕所贴的标语“讲素质,……”,把词霸上的“素质”英文翻译直接说给老外,老外根本听不明白。类似情况还很多。
    我觉得一个更好的办法是在网络上查找看看已经翻译好的文章,看人家都是怎么翻译的。所以我那时候通常在 Google 上查找翻译,用可能相关的英文和中文一起作为关键字搜索。比如要翻译 uniform white noise,就搜索:“uniform white noise 噪声”。然后就会发现很多人把它翻译为标准白噪声。但是,Google 毕竟不是专门用来翻译的工具,很多情况下查找起来并不方便。

    后来,偶尔看到一个叫有道词典搜索的网页,有中英词典的功能。这是网易旗下的一个网站,我现在唯一使用的网易的产品就是这个词典。它的优势就在于有一个网络释义,可以在网上查找别人的翻译,这正是我想要的功能。因为有了这个网页,我就把金山词霸从我的电脑上删除了。需要查词的时候就上网。
    不过没有屏幕取词的功能还是有点不便,毕竟很多时候看着看着文章就遇到个生词想查查。最近发现有道词典也出了桌面版的,有了屏幕抓词的功能,于是赶紧就下载来用用。感觉对这个工具还是比较满意的。如果你的电脑是长挂在网上的,推荐使用这个工具代替金山词霸。如果电脑不上网,它倒是没什么优势。

    总结一下它的两个优点:1. 网络释义和网上收集的例句;2. 免费。
    词典下载地址:http://dict.yodao.com/desktop/

英语学习》目录

Advertisements

VB Script 打开一个VI

    LabVIEW 的一些服务功能是通过 ActiveX 接口提供出来的,我们在其他支持 ActiveX 的语言中可以方便的调用这些服务。比如一个最简单的例子,使用 VB Script 打开一个 VI 的前面板,这样做就行了:

Set lvapp = CreateObject("LabVIEW.Application")
Set vi = lvapp.GetVIReference("C:\temp\test.vi")
vi.FPWinOpen = True

    由于 IE 支持 VB Script,这段代码还可以嵌在 HTML 文件中实现这样的功能:页面上有一处超级链指向一个VI,点击这个链接,就可以显示相应的 VI。其他浏览器可以使用 JavaScript。

《我和 LabVIEW》目录

形状知觉中的分组

    昨天看《心理学》恰好看到知觉这一章中的视觉形状知觉中的“分组”一节。这一节介绍的知识对我们程序界面设计颇有启发作用。它还为我以前总结的一些界面设计的经验提供了理论依据。

    形状知觉的第一步是分离背景,把我们关心的图形从背景中分离出来。之后就是把提取出来的那些图形分类组合,加工成有意义的图像。大脑在为背景中分离出来的那些图形分组的时候,会采用以下一些规则:

    接近性:大脑把距离近的物体知觉为一组。因此我们看到上面这幅图的时候,自然的感觉是三组双竖线,而不是六根竖线。应用于界面设计,比如我们的界面上有六个按钮,三个负责文件操作:打开、保存、关闭;另外三个负责文件编辑:插入、删除、修改。为了方便用户找到所需的按钮,我们需要让用户感觉到这六个按钮分属两组,他只要在相应的组里查找所需按钮即可。最简单的方法:打开、保存、关闭三按钮之间间隔6个像素,而间隔12个像素之外摆放插入按钮,插入、删除、修改之间间隔也是6个像素。这样,用户自然会把他们知觉为两组。

    相似性:大脑把相似的图形知觉为一组。因此,人脑会把上图分为三列,而不是三排。应用于界面设计,比如我们需要让用户把一篇文章中所有的名词归为一组,我们就可以赋予所有这些名词某一种颜色或字体,用户自然一眼就会把它们都找出来。
    以上这两点,在《界面元素的关联》一文里都已提及。

  

    连续性:大脑对图形分组,偏好平滑连续。所以左上图看上去是一根直线和一根曲线,而不是五个半圆。
    连通性:当图形相同,并被连接起来的时候,大脑会把他们分为一组。如右上图。

    封闭性:看上面那幅图,你会明显感觉到有一个正立的白色三角形,虽然它并不存在。这是因为人脑会试图补全缺失的图形。针对上图,我们会设想图中的圆形和倒三角都是完整的,它们的缺口是被一个正立的三角遮蔽而形成的。应用于界面设计,为了避免错觉,我们可以把一组相关的不同类型的控件用一个封闭的图形,如边框等圈起来。

《生活随笔》目录

长铗解梦

    中国俗语说日有所思,夜有所梦;弗洛伊德说梦是在满足潜意识下的欲望;巴普洛夫说梦是警戒点在普遍抑制的大脑皮层上的游走;我说梦是大脑再做内存碎片整理。
    这几种说法都有道理,各自描述了梦的一部分性质或表现。

    睡觉的时候,大脑皮层大部分区域处于抑制状态,以得到休息。但还是有那么一些警戒点处于活跃状态的。这样,在人体受到大的外界刺激,比如有危险来临之时,警戒点会接收到信号并激活大脑的其它区域,使人清醒过来。
    警戒点的思维活动,就是梦境。警戒点会在大脑不同的区域游走,其走向受外界信息的影响。有一晚,我是听着收音机睡觉的。半夜突然醒来,醒之前一直在做有关藏羚羊的梦,而醒时发现,收音机里果然也正在播出有关藏羚羊的节目。与此相类似,膀胱积满了液体,就会梦见上厕所;给睡觉的人头上喷点水,他就会梦到下雨或者游泳。

    我在学习《操作系统》时,读到内存中的碎片需要整理,这样才方便为新的大任务开辟空间。我就想,这人脑的存储区也要经常整理才行,否则哪记得住那么多新东西。这个过程也许就是睡眠中进行的。
    这个过程类似于计算机中的内存碎片整理、页面调度、硬盘整理修复等的功能:做梦的时候,人脑会检索其高速缓存(负责短时记忆)中的内容,把其中大多数不重要的信息都抛弃掉,重要的记忆被挪到速度慢但容量大的长期记忆的存储区中去,并且也会扫描一部分长期记忆存储区,遗忘一部分内容,以腾出空间给新的记忆。
    一般,人在刚进入睡眠时,先处理短时记忆,然后慢慢转向处理更早一些的记忆。这个处理记忆的过程,同样会影响大脑皮层的警戒点的游动。于是乎,记忆中的影像又在梦中重现。在刚刚睡去不久的梦中,通常会出现当天或最近发生过的一些事情。这就是所谓的日有所思,夜有所梦。到了下半夜,就开始出现更早一些,甚至多年前的记忆,比如梦见学校的校舍,儿时的旧屋等等。越久远的记忆,线索也就越含混不清,等到凌晨的时候,梦境通常已经变得如天马行空,基本脱离了与真实事件的联系。我做的科幻梦一般都是这个时间段发生的。人通常只能记住临清醒前的梦,因而大多数被回忆起梦境都比较离奇。
    人脑在把短时记忆转换为长时记忆的过程中,有些记忆会被保存下来,但是它的存储路径却会丢失掉。就好像文件还在,但磁盘分区表却损坏了。所以有的时候一件事你怎么想也想不起来,你以为已经把这件事忘掉了。但是在某天做梦的时候,你的大脑整理硬盘的时候,又读到了这个记忆,并且修复了他的查找路径,这样,你会在将来的某一天,一觉醒来想起记它。

    关于大脑的内存碎片整理,我后来发现很多人也是持这个观点的,认为梦是对记忆进行规整。

    弗洛伊德的观点也很有道理。人在清醒时可以用理性和道德来压抑自己的欲望,但在睡眠中,负责理性、道德的那部分大脑皮层活动受到抑制,其它区域的警戒点的意识不再受其控制,可以听任欲望的驱使。

    昨晚,我上床前就在琢磨,明天是骑车上班还是开车上班呢?骑车可以锻炼身体,但是天气太冷了,好痛苦啊。还是明早看看天气再说吧。晚上做了一个梦,梦见:
    早上起来,推出自行车准备上班。结果发现两个轮胎全都瘪瘪的,没法骑了。
    这个梦一是说明日有所思,夜有所梦;二是说明我骨子里就是个懒惰的人,白天也许还能强迫自己用点功,做梦的时候可就露馅了。

《生活随笔》目录

制作不规则图形的子VI图标

    大多数子 VI 的图标都是一个正方块。但有时候,为了程序代码美观、易读,需要把子 VI 作成不规则图形显示在调用它的父 VI 代码上。LabVIEW 中很多自带的函数采用的就不是32×32的正方形,比如说加减乘除运算函数等。我们已可以把子 VI 作成非正方形方块,比如图1中的 My Function.vi,我把它的图标做成了三角形。


图1:调用 My Function.vi 的代码

    把子 VI 的图标改为非规则图形,有一些事项需要注意。首先要考虑选取一个合适的接线方块模式。现在 LabVIEW 默认的模式是4224模式(按照每一列接线端的数量给模式命名的)。但这种模式通常不适合不规则的图标。比如说图1的 My Function.vi,它需要一个纵向排在中央的输出接线端,4224模式最右侧的4个接线端对称分布,没有一个在最中间。
    在VI前面板的图标上点击鼠标右键,选择“Show Connector”,之后再鼠标右击,就可以挑选一个合适的模式了。对于 My Function .vi,可以使用52225这个模式。如下图所示:

  
图2、3:选取接线方块的模式

    接下来,就是核心工作-编辑图标了。制作不规则形状的图标最重要的两点,一是不要给图标加上边框,二是三个颜色的图标要保持一致。下图是 LabVIEW 的图标编辑器,它的中央有三个小方块,分别显示黑白色、16色、256色下的VI图标。用鼠标点击一下某个小方块,左边的编辑区就开始对这个颜色的图标进行编辑。
    如果你的显示器是颜色数量高于256色,那么,你在程序代码中看到的始终是256色那个图标;如果少于这个颜色数量,比如只有16色,那么在程序代码上看的的子VI显示的就是16色的那个图标。不过现在恐怕找不到16色的显示器了,所以16色这个图标一般情况下就是空白。黑白色的显示器虽然更罕见,但是这里的黑白图标还有另一个用处,就是确定图标中图形的轮廓。所以这里一定要有一个形状和256色图标项符合的黑白图标才能做出不规则图形图标来。一般在编辑黑白图标时,按一下“Copy from 256 Colors”的按钮,把256色的图标复制过来就可以了。
    编辑不规则形状的图标最好选中“Show Terminals”,把接线方块模式在图标编辑区显示出来。这样可以方便的查看,现在的图形是否与接线方块般配。比如说,我要在接线方块右侧中央的接线端接一个输出数据,我的图形至少要覆盖到这个接线端才行。


图4:图标编辑器

 《我和 LabVIEW》目录

VI Server (VI 服务器)

    VI Server 是指通过程序调用 LabVIEW 提供的一些服务功能的技术。使用 VI Server 可以完成如下的功能:运行远程的VI程序;通过互联网运行程序、传输数据;程序运行时调整VI、控件的某些属性,主要用来调整界面;编程来创建或修改VI;搭建插件框架式程序,等等。

    VI Server 的服务端就是 LabVIEW,客户端可以通过三种方法调用服务端提供的服务:
    ActiveX,LabVIEW 提供了 ActiveX 接口。在其他编程语言中,比如 VB,VC++ 中,可以通过 ActiveX 调用 LabVIEW 提供的服务。
    TCP/IP,用于远程机器,通过web服务来调用 LabVIEW 提供的功能。
    LabVIEW 编程,这是最常用的方式,也被称为 VI Scripting。通过 Property Node,和 Invoke Node 暴露出来的属性方法,在 LabVIEW 程序中就可以调用这些服务。VI Scripting 最常见于界面需要在运行时改变的程序,和动态运行某个 VI 的情况下。

《我和 LabVIEW》目录