关于词典软件
从去年开始关注 Erlang ,我们组里已经有三个同事学习了好长段时间了,并有一个同事有实际的项目经验。前几天的 erlounge iii 我们有一个人过去听,回来后滔滔不决的跟我又咕叨了许多,这使得我周末突然有兴趣仔细读读 《Programming Erlang》这本书了。
btw, 原来打算去上海参加 erlounge 的。正好那个周末我们北京机房挪地方,导致我的域名解析服务器更换 ip ,那是件麻烦且必须快速处理的事情,迫使我留在办公室哪都没去。
网上订了一本《Erlang程序设计》,要到下周才送到,那么就先下载英文电子版研究一下了。
嗯,不过这篇 Blog 不打算写 Erlang ,只是谈谈电子词典软件的问题。
词典软件我用的 有道词典 桌面版。毕竟是自己公司同事开发的,有意见可以即时反馈。据说在屏幕抓词方面也好过金山词霸。可惜不能抓 Foxit Reader 的。在线问了一下,说是我的 Foxit Reader 版本太老了,而词典早就支持 Foxit Reader 2.2 了。
去官网下载了 Foxit Reader 3.0 版,发现取词还是不太稳定。把 OCR 模式打开好了一些。
我对屏幕抓词的功能本来就没啥兴趣,试了下不太满意,就作罢了。对于我来说,那个弹来弹去的取词框更多的时候是种干扰。我想,连我这种英文单词量极少的人都有这种感觉,那么更多的人相信也会有同感了。
如果我真的满屏幕一半的单词都不认识的话,干脆用翻译软件看好了。词典软件恐怕也帮不了什么忙。
对于这个问题,有道的同事的说法是,活用取词热键。只在需要的时候取一下。这样也不错,但我觉得不是根本的解决方案。
即使对于取词的形式,我也曾经提过一些建议,但是没有得到认同。那就是,提供一种模式,取消弹出的取词框,而是直接显示在词典软件的主窗口里。我自己爱把词典窗口放在哪都可以。最后,针对我的建议,给出的是一种折中的模式,这里就不详细说了。
今天,我想起了 10 多年前自己做的一个 DOS 小软件。打开一个英文文本文件,在屏幕的最下方显示当前光标行上的生僻单词的中文解释。那个软件是没有词典库的,而是靠人工在阅读的时候手工输入。但正是手工输入,可以判定,被输入的词一定是对于我自己的生僻词。
这样,词典对阅读的干扰是很小的,而且集中在屏幕下方的固定位置。当年,我就是这样翻译 Allegro 手册的。手边放一本字典,遇到不认识的词查一下,输入到机器里,下次碰到了,自动在屏幕下方显示出来。
现在,这个想法依然有价值。
如果我们可以根据用户的查询历史,根据整个软件的用户查询习惯,根据生词在网上出现的频率,猜测出哪些词可能是用户不认识且关心的。再根据当前屏幕上出现的英文单词,挑选出 5 个放在屏幕边栏上显示它们的翻译。我想,这是对阅读英文的用户来说干扰最小的方式了。
允许用户方便的点掉那些软件猜测错误的单词(比如显示了他已经认识的),将能协助软件更好的适应他。除了已有的屏幕取词定位功能外,还可以在查询单词的输入框里,结合屏幕上出现的生词,对用户的输入做联想,自动完成用户的输入。
这个模式甚至不需要特别精准的屏幕取词,或许用某种新方法去获得内存里的文本就行了。OCR 模式也可以更有效的在后台工作。用户在使用的时候,遇到不认识的词,第一反应是向词典软件窗口里瞟上一眼,这比动动鼠标要轻松的多,当然对软件实现也更有挑战。
前几年,popo 组的同事跟我闲聊的时候曾经说起,她觉得应该给 popo 的好友列表加上多级分组的功能。现在分组太多,寻找分组都是件麻烦的事情。我说,你的最终目的是找到你想找的那个联系人,定位更细的分组只是你完成这件事情的一个环节,不是你的目的。不如先把利用拼音声母定位用户的功能做出来更有意义一些。
为此,我还专门为 popo 组的同事制作了一份汉字声母的查询表文件。
前天,有个朋友问我,你认为 google talk 和其他 IM 软件的根本区别是什么?
我说,在我看来就两点。1. 智能排列的联系人名单。 2. 可以用不同的方式,同时多处登陆我的同一个 gtalk 帐号。
其他,所谓简洁的界面,开放的标准,和 email 结合,轻量的客户端,都不是重点。
gtalk 可以在我给一个人写过 email 后,接下来的几天,只要这个人上线,立刻窜到我的联系人首页;可以在我多年没联系的朋友上线后,优先停留在名单可见的地方;可以让那些我不常回复的联系人较低频率的出现在我的眼前。
而这些,是不需要我去滚动长长的滚动条,翻阅我的分组的。事实上,google talk 也因为此,“霸道” 的不提供联系人分组,并推荐只显示一页联系人,而在主界面上去掉滚动条。
有时候我发呆的时候,不经意的看着我的 gtalk 联系人列表,看着它缓慢的刷新那七八个名字,每每能给我惊喜。让我心血来潮的跟我那上百联系人中的某一个打个招呼。我几乎有种幻觉,这个软件可以猜到我心里在想什么,我想找个人,那个人就出现在眼前了。而别的 IM ,比如我已经很久不用的 msn ,只会不停的用飘窗骚扰我,XXX 上线了。
对于一个优秀的人机交互界面来说,软件应该尽可能的猜测用户想做什么,自动帮他去完成,从而把 交互 减少到最少;而不是堆砌一大把的工具,提供一套 友好 的交互方式,放在那里等用户自己拿出来组合起来解决问题。
用户需要的是解决问题,而不是欣赏工具。
ps. 写这篇 blog 的过程中 Chrome 崩溃了一次,导致大部分文字丢失,重新写的时候兴致小了很多,对原来想写的东西做了大量了删减。:(
我说,浏览器崩溃的时候,就不能想办法把输入框里的东西找个位置优先备份一下么?输入框里的用户输入,即时的放在内存中固定位置,直到用户离开页面再扔掉。如果一旦发生程序崩溃,Catch 住异常后,把固定位置内存里的数据写到 log 文件里,应该不是啥难事吧?
Comments
Posted by: jessepku | (30) August 16, 2011 05:21 PM
Posted by: jessepku | (29) August 16, 2011 05:19 PM
Posted by: jessepku | (28) August 16, 2011 05:18 PM
Posted by: young | (27) June 22, 2011 12:10 PM
Posted by: leo | (26) April 28, 2010 01:07 PM
Posted by: 徐风 | (25) May 17, 2009 05:40 PM
Posted by: 徐风 | (24) May 17, 2009 05:40 PM
Posted by: k+ | (23) February 12, 2009 09:52 AM
Posted by: Terry | (22) February 5, 2009 10:59 AM
Posted by: JackD | (21) January 9, 2009 08:09 PM
Posted by: wwfifi | (20) January 8, 2009 03:08 PM
Posted by: arnan | (19) January 5, 2009 11:49 AM
Posted by: 星际工作室 | (18) December 29, 2008 10:15 PM
Posted by: alioxp | (17) December 29, 2008 06:13 PM
Posted by: plantegg | (16) December 29, 2008 04:30 PM
Posted by: ablmf | (15) December 28, 2008 11:19 PM
Posted by: 辰玉 | (14) December 28, 2008 06:55 PM
Posted by: Jerkin Lee(李勤) | (13) December 28, 2008 04:40 PM
Posted by: ripley | (12) December 28, 2008 02:16 PM
Posted by: Xw.Y | (11) December 28, 2008 12:40 PM
Posted by: 迪乌夫 | (10) December 28, 2008 11:43 AM
Posted by: Lazy | (9) December 28, 2008 11:31 AM
Posted by: avlee | (8) December 28, 2008 10:52 AM
Posted by: a | (7) December 28, 2008 10:40 AM
Posted by: cner | (6) December 28, 2008 09:44 AM
Posted by: Shellex | (5) December 28, 2008 09:24 AM
Posted by: Anonymous | (4) December 28, 2008 09:22 AM
Posted by: xh4n | (3) December 28, 2008 07:40 AM
Posted by: xh4n | (2) December 28, 2008 07:38 AM
Posted by: Fox | (1) December 28, 2008 02:17 AM