2009年2月28日星期六

书:人本界面

又来填一个帖:
这本书看完已有几个月了。虽然其作者已去世有几年,但看到维基百科上他年老仍充满精神的照片,仍能联想到他的设计与理念在如今日常生活中留下的影响。
本书并非教材,而是作者对自己作品的和已有设计的思考,并针对当前界面的不足相应地提出新的设想。
计算机是人类使用的工具。书中所阐述的理念是从人的认知特点出发,设计出高效更容易完成任务并减少错误的界面。
此外,即使是已被作为通常的习惯也是值得有敏感去分析思考其缘由的,好的界面需要以科学严谨的态度衡量。



人本界面
交互式系统设计
The Humane Interface:New Directions for Designing Interactive Systems
Jef Raskin 著
史元春 译



内容简介
本书概述了人机界面设计领域的研究成果,详细论证了界面设计思想应以认知学为基础,并考虑人类的心智特点,在指出当前界面设计中弊端的同时,提出了新产品开发的思路。本书集计算机科学、人体工程学、心理学多种学科的内容于一身,是界面开发人员及相关研究者不可不读的一本好书。
Macintosh之父Jef Raskin的思想已经超越了今天的图形用户界面,他在本书中阐述了如何使Web、计算机以及新兴的信息设备更为易学好用。本书较深入地探讨了我们大脑的工作原理,强调计算机作为一种工具要针对人们心智能力上的特点,人机界面应根据人类的能力和缺点设计。书中用认知学的思想将当前的实践经验与未来的界面设计联系在一起,详细地说明了设计思想应建立在科学基础之上。
本书特点
●以心理学的观点重新审视人机交互中的认知特点和工程学原理
●介绍界面设计中的定律、元素及法则
●以现有的界面设计为例,指出原有设计思想中的错误观点,并设想未来界面――人本界面的特征及其他相关问题

作者简介
  Jef Raskin是一名用户界面和系统设计的顾问,居住在加州的帕西菲卡,其咨询客户包括惠普、IBM、Motorola、NCR、Xerox、Ricoh、Canon、Mckesson和AT&T等公司。Jef Raskin的文章发表在Wired、Quantum、IEEE Computer和Communications of Acm等40多种期刊上。他因发明了Apple公司的Macintosh和Canon公司的Cat而声名远扬,被誉为"Macintosh之父"(详见网站www.jefraskin.com)。



译者序
计算和通信迅速发展和相互渗透,新型的信息设备层出不穷,计算无所不在已经成为显而易见的趋势。但是,若要使计算真正融入人们的工作和生活,并非简单地增加计算设备的数量和增大通信设施的部署就能做到,而是需要一种全新的计
算模式和应用技术,这就是近年来颇受关注的"普适计算"(pervasive/ ubiquitous computing)。Mark Weiser(已故的前Xerox PARC计算机实验室首席科学家)早在1991年提出普适计算思想时的出发点就是:"说到底计算机是一种为人服务的工具。而成功的工具和成熟的技术应该在使用时不会分散用户的注意力且不为用户所觉察。"彻底改变人机关系是普适计算研究的核心驱动力……
在本书中,我们可以看到"以人为本"已经不只是一种人机关系的理想,而是可以体现在界面以及相关软硬件技术上的具体设计原则和实现方法了。



前言
在与计算机有关的项目上,为使设备能够正确工作,不知我们究竟花了多少时间。但如果我的园丁在修理她的铲子上花的时间同我们折腾计算机的时间一样多,我宁愿给她另买一把好的铲子。那么,至少你可以买一把好铲子。
―Erasmus Smums
构建界面好比造房子,如果基础没有打好,那你再花多少时间来装饰也不可能修好原有的结构。本书重新审视了人机交互的感知原理,阐述了为什么这一原理是界面设计成败的至关重要的因素。我总是觉得,目前的图形用户界面(像在Windows和Macintosh操作系统中的那样)是基于操作系统加应用程序的一种体系结构,从根本上是有缺陷的。那么,要使计……
  如果我们想克服目前人机界面上的固有缺陷,就很有必要理解本书的教义;若无此愿望,读读也无妨。交互设计的许多重要方面此书并没有包括在内,因为许多文献中都已经有详尽的阐述。本书的意图是补充现有的界面设计的方法或预测未来。



目录
出版者的话
专家指导委员会
译者序
前言
致谢
引言
第1章 背景
1.1 界面的定义
1.2 使简单者简单
1.3 以人为中心的设计和以用户为中心的设计
1.4 不利于设计创新的工具
1.5 设计周期中的界面设计
1.6 人本界面的定义
第2章 认知学和关注点
2.1 人机工程学和认知学:我们能做的和不能做的
2.2 认知意识和认知潜意识
2.3 关注点
习惯的形成
并发任务的执行
关注点的单一性
关注点的来源
发掘单一关注点
恢复被中断的工作
第3章 意义、模式、单调性和一些错误观点
3.1 术语和符号
3.2 模式
模式的定义
模式,用户偏好设置和临时模式
模式和准模式
3.3 名-动结构与动-名结构
3.4 可见性和可供性
3.5 单调性
3.6 关于初学者-专家二分法的错误观点
第4章 量化
4.1 界面的定量分析
4.2 GOMS击键层模型
界面定时
GOMS计算
GOMS计算示例
4.3 界面效率测量
HAL界面的效率
HAL界面的其他解决方案
4.4 Fitts律和Hick律
Fitts律
Hick律
第5章 统一
5.1 统一性和元动作
5.2 元动作分类
加亮,指示和选择
命令
显示对象的状态
5.3 文件名和结构
5.4 字符串搜索和查找机制
搜索样本分割符
交互单元
5.5 光标设计和选择策略
5.6 光标位置和LEAP
5.7 废除应用程序
5.8 命令和转换器
第6章 导航和人体界面的其他方面
6.1 直观而自然的界面
6.2 更好的导航:Zoom world
6.3 图标
6.4 人本界面中的技术和帮助机制
剪切与粘贴
给用户的消息
简化的登录
时间延迟和键盘技巧
6.5 一封用户来信
第7章 用户界面以外的界面问题
7.1 更为人性的程序设计语言环境
系统和开发环境
在程序生成过程中文档的重要性
7.2 模式和电缆
7.3 界面设计的规范和管理
第8章 结论
附录A 单键鼠标的历史和未来
附录B SwyftCard界面操作原理
参考文献
索引

从谷歌浏览器说起2

本帖是填坑帖,原帖是08年9月开始的(目前是坑,其实本帖在挖,挖多少算多少)。内容仍按照原文安排的,与目前发展可能有出入。
只是想表达一下想法而已。

谷歌浏览器的开发动机,是希望提供一个网络应用的平台(范本,促进其他浏览器)。这点谷歌自己有详细的说明。
以下从浏览器本身的特点说明:
目前的在线应用是将浏览器作为展示界面(B/S,数据处理在服务端执行),随着ajax(浏览器执行代码,并与服务器交换数据)的普及,在浏览器中可以作更丰富的交互。此时网页不是仅仅做信息及其样式的展示和提交,高效的javascript引擎满足的复杂交互运行的需要。而浏览器提供的google gears增强了网页本地的功能,可以使脚本在离线时仍可以交换数据。
谷歌浏览器为每个网页提供单独的进程,确保单独的应用不受其他的影响。可以创建"应用程序快捷方式",缩小了网络应用与本机应用的差距。简洁并只提供基本浏览功能的界面,使交互集中到网页的元素上。在其中,浏览器扮演了轻客户端运行平台的角色。
其独特的标签页是一个亮点。标签位于标题栏上,可以自由拖动并与单独窗口状态来回转换。同时兼顾了mdi和sdi的优点。
gmail及google doc都可以在谷歌浏览器上取得良好的运行效果。数据直接存放在服务端,方便了基于网络的协同操作,并且节约了使用者的维护成本。除了运行已有的网络应用,google的app engine也为开发与运行提供了方便。
同时,通过浏览器网络应用可以在不同的系统或设备上运行,包括pc和移动设备等。

之前,firefox提供了类似功能的另一种思路:附加组件。它的功能不仅仅是对浏览功能的增强。
xul是mozilla诞生时的重要特性,提供了一个跨平台的用户接口。单独的本地应用可以在chrome(容器的界面)下运行。比如ftp客户端,rss阅读器,小游戏,输入法等等。可以获得比网页更大的权限且更好的本地支持。
附加组件的管理程序为这些应用提供了(网络)存放,验证,安装,更新,配置众多功能。方便了对软件包的检索和安装,同时保障了安全性。

其他的浏览器平台:
opera可以在众多平台上运行,用来访问网络或运行物件。
苹果的iphone可以编写基于浏览器的程序,但app store为软件的发布和收益提供便捷。

(Flash也是目前较流行的一个平台,虽然主要在用于交互多媒体。MS跟进银光。
手机有支持JAVA。)

ie浏览器的功能涉及到整个windows,其他程序可以方便地嵌入它做为展示模块,或者作为客户端的一部分。目前来看,MSVS是大多数人最熟悉的开发环境。

Widows是目前最普遍的平台,网络应用可以利用ie或专门制作来实现客户端。

相比桌面linux,感觉更多的情况下windows被使用得更像一个通用的平台。
虽然个人喜欢的linux系统广泛采用的包管理器感觉不错,方便有保障。
不过感觉桌面linux(包括嵌入便携设备)更适合用于构建具体的某个特定的应用,只运行特定功能的程序,如上网或办公。



最近看以前的写的,现在来帖会前后帖的风格有些乱。

今天帖是说下面一句:
iphone会对flash保持距离,google chrome也会对firefox的扩展保持距离。
理由是……
(导致产生应用:失控,不通用。这只是一种思路。)
从用户和开发者两个角度想是会比较有趣。后者只能满足前者范围的非全部。

2009年2月22日星期日

季节

本篇内容以前写过,但未完成。现在凭着仅有的印象,重写一遍。这种写的感觉,感觉有点奇怪。

季节
遥远的南方,没有雪。
她出生在那里,在这人生刚刚开始的几年里,一年四季都可以在绿色的树荫下寻找到欢声笑语。
今年,父母觉得她已经长得够大了,所以决定带她回一次老家过年。
那里,是遥远的北方。
火车轰隆隆地向北驶去,在一片平坦的大地上留下长长弯曲的线条。
小小的她坐在火车窗边,期待地望着窗外。
车内暖气的响声掩盖住了开始的寒意,朦朦胧胧的天空落下一点一点的雪。
她回想着关于雪的记忆:在过生日时曾收到的,透明的玻璃球内安静睡着小屋,打开开关就有音乐和飞旋的雪花。她看着礼物,在欢笑。
水汽渐渐模糊了车窗,火车减速停向一个站点。她伸出小手在车窗擦拭,在凝成得水珠间,希望能第一次细细地看一看雪。
铁轨两旁的树上,积雪压在枝头,枝头光秃秃的。她望清楚便呆住了,那是……
遥远的南方,没有落叶。
一直等到到站,她低头拉着父母的手走着,不敢张望。
这个春节她过得一点不快乐,任凭父母或是爷爷奶奶怎么哄。常常一人闷闷不乐的坐在窗边,远远望着积雪望着枯树。
短短的一周就要过去,父母拉着她的手走在去车站的乡间小路上。路旁的一棵棵树被渐渐留在身后的远方。
她难得地看了路边的树,那是……灰灰的枝头,透露出新生的绿色。
此刻,她的脸上又恢复了上火车时的欢笑。
遥远的北方,有雪。
遥远的北方,有希望。

恩,大概地把情节简单地记了一遍,又不想再多想或是改动,只有后半段有点出入(以前就没写,最后似乎是最后一天终于肯出去散散步)。找不到感觉(想表达什么)地写着写着,觉得这种故事还是作为自己回忆最合适。

2009年2月3日星期二

debian实用包收集

Debian
官方站点:http://debian.org/
简单介绍http://zh.wikipedia.org/wiki/Debian
如果不需要拨号能上网,那么用“business card”的ISO即可。(其他ISO看情况选择,也有可用于Win下Grub4dos的"Network boot"文件)
可以参阅 Debian参考手册 http://www.debian.org/doc/manuals/reference/index.zh-cn.html

终端下安装相关程序
apt-get 配置软件包
aptitude 提供了基于文本的包管理界面
Dpkg 用于安装deb包
用法可以用“man”查看

安装中可以选择Debian提供的不同功能的包的集合,
也可以tasksel中全部不选,之后选择自己需要的包来安装。

源设置:
当前stable是"etch",Testing是"lenny",unstable永远是"sid"。
源区分"main contrib non-free",按需添加。
源列表文件在"/etc/apt/sources.list",可以用"nano"等文本编辑工具修改(可选先cp备份一下)。
一般桌面使用Testing源即可,它将是下一个稳定的版本
之后更具需要更新软件包列表,或者升级以及其他升级方式。


如果没有选择"tasksel"提供的任何套件,
可以参考以下包搭建桌面环境。
X窗口系统虚包:"x-window-system-core"
桌面环境(及相关系统组件,包括一些常用软件),可以选择GNOME或KDE。
比如gnome环境按包含组件的多少由依赖关系可以选择的包:"gnome" -> "gnome-desktop-environment" ->
"gnome-core",或者在aptitude中选择Tasks里所需的环境的全部或部分包。具体包的取舍可以参考包的说明进行。
目前Tasks里还有xfce和lxde两个较轻便桌面环境可供选择,但仅包含少量常用软件(其实目前前后两者还有差距)。
如果需要较小的环境,推荐自己选择组件。
应用软件,源里已经包含了大量的实用软件。同功能的软件通常可以按依赖来选择,如gtk/qt,gnome/kde/X。可以参考源里每个包的分类和简短说明进行选择,或下载用于安装的deb包。

以下是为搭建一个轻便的桌面环境所用的包,按GTK来选择组件。

(仅供参考,注意保质期)
比如参照Puppy:
X 窗口系统的虚包:x-window-system-core
桌面和文件管理器:rox-filer
窗口管理器:jwm
为jwm配置文件设置StartupCommand标签的内容"rox-filer -p=pin"。参照http://joewing.net/programs/jwm/config.shtml
生成程序菜单:menu
输入法:fcitx
回收站:http://code.google.com/p/rox-trasher/
字体:xfonts-wqy,ttf-wqy-zenhei
压缩管理:xarchive

使用LXDE桌面环境(可以参照slitaz)
x-window-system-core
lxde
输入法
字体
(LXDE桌面环境)扫描:xsane,打印:foomatic-gui,登录管理:gdm,硬件抽象层(和即插即用有关):hal
手工往任务栏添加声音和网络图标

其他可选例举:
飞溅屏幕:usplash
登录管理:gdm(kdm),xdm,slim(轻便但桌面能先注销不好关机),不装然后startx/halt/reboot。
主题:含"-theme"
输入法:fcitx,“scim”有关包
字体:含"wqy""uming"
安装deb的图形界面:gdebi
图形界面的软件包管理器:synaptic(需要gksu)
浏览器:iceweasel(firefox改名的),epiphany-gecko(gnome组件)
声音架构驱动:alsa-base
窗口管理器:icewm,jwm,fvwm,Xfce
影音:mplayer,gxine(注意有mozilla插件)
Flash:自己动手源里或官方找来装

(为轻便参考)小型发行版自带软件列表:
下载体积不大的iso试用看看有什么软件着(包括它们还不太大的仓库,及论坛),或者参考
puppy4自带
http://puppy.cnbits.com/node/125
http://puppy.cnbits.com/ftp/qqdan/xbbshare/doc/autohelp.html
仓库中的
(wiki)puppylinux.org
http://puppylinux.ca/tpp/bugs
(puppylinux.com)ftp://ibiblio.org/pub/linux/distributions/puppylinux/pet_packages-4/
(forum)http://www.murga-linux.com/puppy
slitaz的仓库
http://www.slitaz.org/en/packages/

有其他发行版的使用经历亦可用作参考。

若无GUI,配置可以通过终端下的命令与工具,或者在已有的桌面环境借用(确保已安装)。例如
挂载驱动器或ISO:mount
声音:alsaconf(需要alsa-base),alsa-mixer(需要alsa-utils)
ADSL网络:pppoeconf
gtk主题切换:gtk-theme-switch

补充:源设置之后
我源有etch改到lenny,然后"apt-get update""apt-get dist-updrade""apt-get install *"安装过后"apt-get clean""apt-get autoremove"。deb包"dkpg -i *",依赖问题用"apt-get -f install"。
(如需3D)显卡的驱动(如nVidia)可以去官方网站下载(lynx,wget)安装(或源里找找)。

安装过程参考:
http://www.qpsoft.com/blog/debian-lenny-setup/
http://cn.tech.yahoo.com/050519/55/26xok.html
http://www.songzi.org/blog/article.asp?id=170
http://www.debsir.org/main/?q=node/107
http://www.linuxsir.org/bbs/thread287473.html

现在电脑在用ubuntu,(首先能用,喜欢gnome简单在等KDE4成熟)没早试是当初空间不够(还有自己一些常用软件对Win的依赖)。Ubuntu里用来熟悉软件比较方便(在源里找常用软件感觉不错)。相比,debian则注重广泛支持稳定且方便定制,自己暂时仍先用在虚拟机里练练手。本文空谈谈啦。还有一些更发行版有更多的定制内容,有更高的运行效率。
ubuntu基于debian,也有类似的网络安装方式(明显的是源不同):
(U810)http://archive.ubuntu.com/ubuntu/dists/intrepid/main/installer-i386/current/images/netboot/mini.iso

其他参考:
http://www.linuxsir.org/bbs/forum49.html
archlinux安装,比如linuxtoy的PDF
http://blog.cathayan.org/item/1143
http://wiki.ubuntu.org.cn/Apt-get%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97
https://help.ubuntu.com/community/Installation/LowMemorySystems
http://www.oceanboo.cn/read.php?239
http://www.angeloliu.org/read-37.html

原标题原文是想列举源里常用包的介绍,本贴是重写稿(V2)。