This book and its on-line version are distributed under the terms of the Creative Commons Attribution-NoDerivs 1.0 license, with the additional proviso that the right to publish it on paper for sale or other for-profit use is reserved to Pearson Education, Inc. A reference copy of this license may be found at <http://creativecommons.org/licenses/by-nd/1.0/legalcode>.
| ----- |
| **Revision History** |
| Revision 0.1 | April 18 2004 | esr |
| Start of book | | |
* * *
## Dedication
**Table of Contents**
[An Invitation to Usability][1]
[1\. Premises: The Rules of Interface Design][4]
:
[Usability Metrics][5]
[Usability and the Power Curve][6]
[The Rules of Usability][7]
:
[Rule of Bliss: Allow your users the luxury of ignorance.][8]
[Rule of Distractions: Allow your users the luxury of inattention.][9]
[Rule of Flow: Allow your users the luxury of attention.][10]
[Rule of Documentation: Documentation is an admission of failure.][11]
[Rule of Least Surprise: In interface design, always do the least surprising thing.][12]
[Rule of Transparency: Every bit of program state that the user has to reason about should be manifest in the interface.][13]
[Rule of Modelessness: The interface's response to user actions should be consistent and never depend on hidden state.][14]
[Rule of Seven: Users can hold at most 7±2 things at once in working storage.][15]
[Rule of Reversibility: Every operation without an undo is a horror story waiting to happen.][16]
[Rule of Confirmation: Every confirmation prompt should be a surprise.][17]
[Rule of Failure: All failures should be lessons in how not to fail.][18]
[Rule of Silence: When a program has nothing surprising to say, it should say nothing.][19]
[Rule of Automation: Never ask the user for any information that you can autodetect, copy, or deduce.][20]
[Rule of Defaults: Choose safe defaults, apply them unobtrusively, and let them be overridden if necessary.][21]
[Rule of Respect: Never mistake keeping things simple for dumbing them down, or vice-versa.][22]
[Rule of Predictability: Predictability is more important than prettiness.][23]
[Rule of Reality: The interface isn't finished till the end-user testing is done.][24]
[Comparison with the Nielsen-Molich Evaluation Method][25]
[Identifying with the User Experience][26]
[2\. History: A Brief History of User Interfaces][27]
:
[Batch Computing][28]
[Command-Line Interfaces][29]
[What's Old is New Again][30]
[Vector Graphics, Video Games, and NLS/Augment][31]
[The first GUIs][32]
[The X Windowing System][33]
[The Color Convergence][34]
[GUIs in the era of commodity hardware][35]
[The Unix resurgence][36]
[Beyond the WIMP?][37]
[3\. Programming: GUI Construction in the Unix Environment][38]
:
[Overview][39]
[Programming with the X Server][40]
[Toolkit libraries and bindings][41]
[Components of GUI environments][42]
:
[Higher-Level Widgets with Consistent Policy][43]
[Window Managers][44]
[An interface to ICCCM, and possibly an object broker][45]
[Sound Support][46]
[Other Services for Application Programming][47]
[Choosing a Desktop][48]
[Interface styles and Programming Models][49]
[The X Programming Model][50]
:
[Events: the Input Side][51]
[Rendering: the Output Side][52]
[X Programming at the Application Level][53]
[Scripting Languages, Code Generators, and GUI Best Practices][54]
[4\. Wetware: The Human Side of Interfaces][55]
:
[Novelty, Consciousness, and the Single Locus of Attention][56]
[Real Time Costs][57]
[Hick's Law and Fitts's Law][58]
[Habituation, Expertise, and Undo Operations][59]
[Interfaces and Flow][60]
[Buffering and Human Memory][61]
[Designing around Characters and Stories][62]
:
[Designing With Personas][63]
[5\. Examples: The Good, the Bad, and the Ugly][64]
:
[Case study: CUPS configuration][65]
[Case study: xmms, xine, and totem][66]
[6\. Reality: Debugging and Testing User Interface Designs][67]
[A. Design Rule Reference][68]
[B. Bibliography][69]
:
[Bibliography][70]
**List of Figures**
2.1. [IBM 029 card punch.][71]
2.2. [ASR-33 Teletype.][72]
2.3. [VT100 terminal.][73]
2.4. [The Xerox Alto.][74]
2.5. [Alto running the Executive file browser (c.1974).][75]
2.6. [The Xerox Star (1981).][76]
2.7. [Screen shot from a Star (1981).][77]
2.8. [Kickstart on the Amiga 1000 (1985).][78]
2.9. [Early version of the Macintosh Finder (1985).][79]
2.10. [Windows 1.0 (1985).][80]
2.11. [OpenLook (c.1989).][81]
2.12. [NeXTstep (1988).][82]
2.13. [Windows 3.0 and 3.1 (1992).][83]
2.14. [Windows 95 (1995).][84]
2.15. [Microsoft Bob home screen (1995).][85]
3.1. [Comparing the X stack to a monolithic graphics system.][86]
5.1. [CUPS configuration: the saga begins][87]
5.2. [CUPS configuration: the Queue Name panel][88]
5.3. [CUPS configuration: the Queue Type panel][89]