《自然用户界面设计:NUI的经验教训与设计原则》
基本信息
原书名:Brave NUI World:Designing Natural User Interfaces for Touch and Gesture
作者: (加)维格多 (Wigdor,D.) (美)威克森 (Wixon,D.) [作译者介绍]
译者: 季罡
丛书名: 图灵交互设计丛书
出版社:人民邮电出版社
ISBN:9787115293060
上架时间:2012-9-29
出版日期:2012 年10月
开本:16开
页码:1
版次:1-1
所属分类: 计算机
更多关于 》》》《自然用户界面设计:NUI的经验教训与设计原则》
内容简介
书籍
计算机书籍
触摸和手势将成为人机交互的主流趋势。软件公司都力图开发出下一个更好的触摸界面。本书是第一本面向产品和交互开发人员的实用图书,介绍了触摸和手势界面设计。两位作者都是业内知名人士,在多点触摸、多用户产品方面具有丰富的经验。本书介绍了将触摸和手势实践整合到日常工作当中所需的工具和信息,展示了使用场景、问题、隐喻和相关技术,从而避免读者在实践过程中犯错误。
《自然用户界面设计:nui的经验教训与设计原则》适合交互产品开发人员和交互设计师阅读。
目录
《自然用户界面设计:nui的经验教训与设计原则》
第一部分 nui简介
第1章 简介 2
第2章 自然用户界面 6
2.1 开宗明义 6
2.2 nui应用 7
2.3 经验教训:第一台苹果平板电脑 7
2.4 设计原则 9
2.5 小结 9
第3章 生态位:计算机、社会环境和工作方式 11
3.1 开宗明义 11
3.2 nui应用 13
3.3 经验教训 14
3.4 设计原则 14
3.5 小结 14
第二部分 nui的设计风格
第4章 大道至简 16
4.1 开宗明义 16
4.2 nui应用 16
4.3 经验教训 16
4.4 设计原则 17
4.5 小结 18
第5章 使用环境 19
5.1 开宗明义 19
5.2 nui应用 20
5.3 经验教训 21
5.4 设计原则 21
5.5 小结 22
5.6 扩展阅读 22
第6章 空间nui 24
6.1 开宗明义 24
6.2 nui应用 24
6.3 经验教训 24
6.4 设计原则 25
6.4.1 支持使用2d平面空间 25
6.4.2 坚持3d空间利用原则(z轴) 26
6.5 小结 26
6.6 扩展阅读 27
第7章 社交nui 28
7.1 开宗明义 28
7.2 nui应用 28
7.3 经验教训 29
7.4 用户间任务配对 29
7.5 设计原则 30
7.6 扩展阅读 31
第8章 无缝体验 32
8.1 开宗明义 32
8.2 经验教训 32
8.3 nui应用 32
8.4 小结 34
8.5 扩展阅读 34
第9章 超现实 35
9.1 开宗明义 35
9.2 经验教训 36
9.3 nui应用 37
9.4 小结 38
9.5 扩展阅读 38
第10章 脚手架 39
10.1 开宗明义 39
10.2 nui应用 39
10.3 经验教训 40
10.4 设计原则 40
10.5 小结 42
10.6 扩展阅读 42
第11章 用户大不同 43
11.1 开宗明义 43
11.2 nui应用 43
11.3 经验教训 43
11.4 设计原则 44
11.5 小结 45
第三部分 新技术:理解和技术工件
第12章 输入的状态转换模型 48
12.1 开宗明义 48
12.2 nui应用 49
12.3 经验教训 50
12.4 设计原则 51
12.5 小结 53
12.6 扩展阅读 53
第13章 胖手指 54
13.1 开宗明义 54
13.2 nui应用 55
13.3 经验教训 55
13.4 设计原则 56
13.4.1 让东西更大 56
13.4.2 调整触摸点时考虑用户的感知 56
13.4.3 冰山化目标 56
13.4.4 削弱直接触摸的角色 57
13.5 小结 59
13.6 扩展阅读 60
第14章 不遗漏任何一次触摸:反馈必不可少 61
14.1 开宗明义 61
14.2 nui应用 62
14.3 经验教训 63
14.4 谬误来源 64
14.4.1 激活事件 64
14.4.2 胖手指 64
14.4.3 激活 64
14.4.4 无响应的内容 65
14.4.5 意外激活 65
14.4.6 多个捕获状态 65
14.4.7 实际操控限制 65
14.4.8 远程交互 65
14.4.9 被盗的捕获 65
14.4.10 桌面杂物 66
14.5 触点可视化工具 66
14.6 设计原则 66
14.7 小结 72
第15章 触摸和空中手势 73
15.1 开宗明义 73
15.2 nui应用 73
15.3 经验教训 73
15.3.1 保留动作 74
15.3.2 保留离合器 75
15.3.3 多模态输入 76
15.4 设计原则 76
15.5 小结 77
15.6 扩展阅读 77
第四部分 创建一种交互语言
第16章 机制、动态、美学(mda)及其应用 80
16.1 开宗明义 80
16.2 nui应用 83
16.3 经验教训 84
16.4 设计原则 85
16.5 小结 85
16.6 扩展阅读 85
第17章 新的原语 87
17.1 开宗明义 87
17.2 nui应用 88
17.3 经验教训 89
17.3.1 鼠标的优势 89
17.3.2 鼠标的劣势 89
17.3.3 触笔的劣势 90
17.3.4 触笔的优势 90
17.3.5 设计新的原语 90
17.4 设计原则 92
17.4.1 让初学者和专家的原语集合交叠 92
17.4.2 多少原语才合适 92
17.4.3 构建和评估原语 93
17.5 小结 94
17.6 扩展阅读 95
第18章 解构手势 96
18.1 开宗明义 96
18.2 nui应用 97
18.3 经验教训:模糊性 97
18.4 设计原则 102
18.5 小结 102
第19章 手势语言的属性 103
19.1 开宗明义 103
19.2 nui应用 104
19.3 经验教训 104
19.3.1 恒等 105
19.3.2 否定 105
19.3.3 倒置 106
19.3.4 交换 107
19.4 设计原则 108
19.5 小结 108
19.6 扩展阅读 109
第20章 自我提示手势 110
20.1 开宗明义 110
20.2 nui应用 110
20.3 经验教训:ctrl热键对阵alt热键 111
20.3.1 ctrl热键和竞争力鸿沟 111
20.3.2 alt热键和新手到专家的无缝过渡 113
20.3.3 标记菜单:第一个自我展示的手势 114
20.4 设计准则 114
20.5 小结 118
20.6 扩展阅读 119
第21章 手势系统的模式和工作流模型 121
21.1 开宗明义 121
21.2 nui应用 121
21.3 经验教训 122
21.3.1 添加和删除流程选项 123
21.3.2 拆分和合并模式 124
21.3.3 调整流程动作 126
21.4 设计原则 127
21.5 小结 127
第五部分 没有触摸这回事
第22章 了解你的平台 130
22.1 开宗明义 130
22.2 nui应用 131
22.3 经验教训 131
22.4 设计原则 132
22.4.1 功能对阵质量 133
22.4.2 已表现对阵尚未表现 133
22.4.3 感知对象 134
22.4.4 感知信息 134
22.4.5 显示屏属性 136
22.4.6 汇总 136
22.5 小结 137
第23章 基础必行 139
23.1 开宗明义 139
23.2 nui应用 139
23.3 经验教训 139
23.4 设计原则 140
23.5 小结 141
23.6 扩展阅读 141
第24章 触点的数量 142
24.1 开宗明义 142
24.2 nui应用 142
24.3 经验教训 142
24.3.1 加速器和修改器 143
24.3.2 为第二根手指触摸做设计 143
24.3.3 单用户设计对阵多用户设
计 145
24.4 设计原则 146
24.5 小结 147
24.6 扩展阅读 147
第25章 触点数据:形状、压力和悬停 148
25.1 开宗明义 148
25.2 nui应用 148
25.3 经验教训 149
25.4 设计原则 151
25.4.1 触点数据 151
25.4.2 悬停 151
25.4.3 压力 151
25.4.4 联合起来 153
25.5 小结 153
25.6 扩展阅读 154
第26章 垂直、水平和移动 156
26.1 开宗明义 156
26.2 nui应用 156
26.3 经验教训 156
26.4 设计原则 157
26.4.1 生物力学和触点形状 157
26.4.2 交互区和隐私 157
26.4.3 窗口和非窗口 158
26.4.4 底盘手势对阵触摸手势 158
26.5 小结 159
第六部分 过程:你怎样实现目标
第27章 用户派生的界面 162
27.1 开宗明义 162
27.2 nui应用 162
27.3 经验教训 163
27.4 设计原则 163
27.5 小结 164
27.6 扩展阅读 164
第28章 假手势识别的教训 165
28.1 开宗明义 165
28.2 nui应用 166
28.3 经验教训 166
28.3.1 假阳性识别 166
28.3.2 假阴性识别 166
28.3.3 调整以平衡识别 167
28.3.4 用户猜测和学习 167
28.3.5 修剪你的手势语言 168
28.3.6 不一致的手势语言 168
28.3.7 迷信行为 169
28.4 设计原则 169
28.5 小结 170
28.6 扩展阅读 170
第29章 修改版rite 171
29.1 开宗明义 171
29.2 nui应用 171
29.3 经验教训 171
29.4 设计原则 172
29.5 小结 173
29.6 扩展阅读 173
第30章 nui工程略谈 174
30.1 开宗明义 174
30.2 经验教训 175
30.3 nui应用 176
30.4 小结 177
本图书信息来源:中国互动出版网
转自:http://blog.csdn.net/zhangchu1994/article/details/7286018
From
Each program runs in at least one thread.
You can think of each thread as a separate process of program execution, each running parallel to the others.
NSthread
If you have some kind of user interface, or other code that needs to listen to events (like network ports), you need a run loop.
Every NSThread automatically gets its own run loop, and you very rarely have to concern yourself with them directly.
The run loop is also in charge of creating and releasing autorelease pools.
[EDIT: See comments for more discussion about autorelease pools.
The most important point to keep in mind is that new threads must take care of setting up an autorelease pool.
For example, methods that are invoked with detachNewThreadSelector (see below) should have the following as their first and last lines:
NSAutoreleasePool *pool = [ [ NSAutoreleasePool alloc ] init ];
[code here]
[pool release];
The same applies for threads spawned(催生了) using other techniques.
In the main thread, where all the UI handling is taking place, the run loop is very important, since it keeps the interface reactive.
That's why you should never run code that's time consuming on the main thread:
it will eat up all time on the thread and the run loop will not be allowed to run often enough, resulting in a locked or slow interface.
If you need to perform time consuming calculations(计算), or keep a task running in the background, you should create a new thread.
Again, you probably don't have to think about the new run loop being created.
An easy way of performing a method in a new thread:
[NSThread detachNewThreadSelector:@selector(theSelector) toTarget:self withObject:nil];
Inter-thread communication can be tricky, and you should be aware of the methodsperformSelector:onThread:withObject:waitUntilDone: andperformSelectorOnMainThread:withObject:waitUntilDone:
(Great tips on sending NSNotifications across threads here.)
NSTimer(Timer是否可以理解为在指定时间后开一个线程)
Timers are also handled by run loops. In contrast to run loops, you are likely to often be using timers directly in your program.
The very easiest way of creating a timer is:
[self performSelector:@selector(aSelector) withObject:nil afterDelay:1.0];
but sometimes you want to create and manage NSTimer objects yourself, for example to be able to cancel and re-use a timer.
NSTask
An NSTask is used to run another program as a subprocess of the current one.
It's a bit similar to starting a separate thread, but if a subprocess crashes, your main program will keep running.
Communication between programs is also very different from communication between several threads in the same process.
You tagged your question with "iphone", and on the iPhone you will never be using NSTasks.
NSOperations
NSOperations are used when you need to handle a larger amount of different tasks, placing them in queues and/or processing them in separate threads (although they don't have to run in separate threads). If your application needs to create just a few, specialized threads, then there is no reason to use the NSOperation class. But if you will routinely generate tasks (like communicating with a server) that must be kept track of, NSOperation and NSOperationQueue will come in handy.
《深入浅出密码学—常用加密技术原理与应用》
基本信息
- 原书名:Understanding Cryptography: A Textbook for Students and Practitioners
- 作者: Christof Paar [美]Jan Pelzl
- 译者: 马小婷
- 丛书名: 安全技术经典译丛
- 出版社:清华大学出版社
- ISBN:9787302296096
- 上架时间:2012-9-25
- 出版日期:2012 年9月
- 开本:16开
- 页码:1
- 版次:1-1
-
所属分类: 计算机
更多关于 》》》《深入浅出密码学—常用加密技术原理与应用》
目录《深入浅出密码学—常用加密技术原理与应用》
第1 章密码学和数据安全导论1
1.1密码学及本书内容概述1
1.2对称密码学3
1.2.1基础知识4
1.2.2简单对称加密:替换密码5
1.3密码分析8
1.3.1破译密码体制的一般思路8
1.3.2合适的密钥长度10
1.4模运算与多种古典密码11
1.4.1模运算12
1.4.2整数环15
1.4.3移位密码(凯撒密码) 16
1.4.4仿射密码18
1.5讨论及扩展阅读19
1.6要点回顾21
1.7习题21
第2 章序列密码27
2.1引言27
2.1.1序列密码与分组密码27.2.1.2序列密码的加密与解密29
2.2随机数与牢不可破的分组密码32
2.2.1随机数生成器32
2.2.2一次一密34
2.2.3 关于实际序列密码 35
2.3基于移位寄存器的序列密码38
2.3.1线性反馈移位寄存器(lfsr) 39
2.3.2针对单个lfsr 的已知明文攻击 43
2.3.3trivium 44
2.4讨论及扩展阅读 46
2.5要点回顾47
2.6习题48
第3 章数据加密标准与替换算法 51
3.1 des 简介51
3.2des 算法概述54
3.3des 的内部结构56
3.3.1初始置换与逆初始置换 56
3.3.2f 函数 58
3.3.3密钥编排 63
3.4 解密65
3.5des 的安全性68
3.5.1穷尽密钥搜索 68
3.5.2分析攻击 70
3.6软件实现与硬件实现71
3.6.1软件 71
3.6.2硬件 72
3.7des 替换算法72
3.7.1aes 和aes 入围密码72
3.7.23des 与desx 73
3.7.3轻量级密码present 73
3.8讨论及扩展阅读76
3.9要点回顾77
3.1习题78
第4 章高级加密标准83
4.1引言83
4.2aes 算法概述85
4.3一些数学知识:伽罗瓦域简介87
4.3.1有限域的存在性87
4.3.2 素域89
4.3.3扩展域gf(2m)90
4.3.4gf(2m)内的加法与减法91
4.3.5gf(2m)内的乘法91
4.3.6gf(2m)内的逆操作93
4.4aes 的内部结构95
4.4.1字节代换层96
4.4.2扩散层99
4.4.3密钥加法层101
4.4.4密钥编排101
4.5解密106
4.6软件实现与硬件实现110
4.6.1软件110
4.6.2硬件111
4.7讨论及扩展阅读111
4.8要点回顾112
4.9习题112
第5 章分组密码的更多内容117
5.1 分组密码加密:操作模式117
5.1.1电子密码本模式(ecb)118
5.1.2密码分组链接模式(cbc)122
5.1.3 输出反馈模式(ofb) 123
5.1.4 密码反馈模式(cfb) 125
5.1.5 计数器模式(ctr) 126
5.1.6 伽罗瓦计数器模式(gcm) 127
5.2 回顾穷尽密钥搜索129
5.3 增强分组密码的安全性130
5.3.1 双重加密与中间人攻击 131
5.3.2 三重加密 133
5.3.3 密钥漂白 134
5.4 讨论及扩展阅读136
5.5 要点回顾137
5.6 习题137
第6 章 公钥密码学简介 141
6.1 对称密码学与非对称密码学141
6.2 公钥密码学的实用性145
6.2.1 安全机制 145
6.2.2 遗留问题:公钥的可靠性 146
6.2.3 重要的公钥算法 146
6.2.4 密钥长度与安全等级 147
6.3 公钥算法的基本数论知识148
6.3.1 欧几里得算法 148
6.3.2 扩展的欧几里得算法 151
6.3.3 欧拉函数 155
6.3.4 费马小定理与欧拉定理 157
6.4 讨论及扩展阅读159
6.5 要点回顾160
6.6 习题160
第7 章 rsa 密码体制 163
7.1 引言164
7.2 加密与解密164
7.3 密钥生成与正确性验证165
7.4 加密与解密:快速指数运算169
7.5rsa 的加速技术173
7.5.1使用短公开指数的快速加密173
7.5.2使用中国余数定理的快速加密174
7.6寻找大素数177
7.6.1素数的普遍性177
7.6.2素性测试178
7.7实际中的rsa:填充182
7.8攻击183
7.9软件实现与硬件实现186
7.1讨论及扩展阅读187
7.11要点回顾188
7.12习题189
第8 章基于离散对数问题的公钥密码体制193
8.1diffie-hellman 密钥交换194
8.2一些代数知识196
8.2.1群196
8.2.2循环群198
8.2.3子群202
8.3离散对数问题204
8.3.1素数域内的离散对数问题204
8.3.2推广的离散对数问题205
8.3.3针对离散对数问题的攻击207
8.4 diffie-hellman 密钥交换的安全性211
8.5elgamal 加密方案212
8.5.1从diffie-hellman 密钥交换到elgamal 加密212
8.5.2elgamal 协议213
8.5.3计算方面215
8.5.4安全性216
8.6讨论及扩展阅读218
8.7 要点回顾219
8.8 习题219
第9 章 椭圆曲线密码体制 225
9.1 椭圆曲线的计算方式226
9.1.1 椭圆曲线的定义 227
9.1.2 椭圆曲线上的群操作 228
9.2 使用椭圆曲线构建离散对数问题 232
9.3 基于椭圆曲线的diffie-hellman密钥交换236
9.4 安全性238
9.5 软件实现与硬件实现238
9.6 讨论及扩展阅读239
9.7 要点回顾241
9.8 习题241
第10 章 数字签名 245
10.1 引言245
10.1.1 对称密码学尚不能完全满足需要的原因 246
10.1.2 数字签名的基本原理 247
10.1.3 安全服务 248
10.2 rsa 签名方案249
10.2.1 教科书的rsa 数字签名 250
10.2.2 计算方面 251
10.2.3 安全性 252
10.3 elgamal 数字签名方案255
10.3.1 教科书的elgamal数字签名 255
10.3.2 计算方面 257
10.3.3 安全性 258
10.4 数字签名算法261
10.4.1 dsa 算法 261
10.4.2 计算方面264
10.4.3 安全性265
10.5 椭圆曲线数字签名算法266
10.5.1 ecdsa 算法267
10.5.2 计算方面270
10.5.3 安全性270
10.6 讨论及扩展阅读271
10.7 要点回顾272
10.8 习题272
第11 章 哈希函数277
11.1 动机:对长消息签名277
11.2 哈希函数的安全性要求280
11.2.1 抗第一原像性或单向性280
11.2.2 抗第二原像性或弱抗冲突性281
11.2.3 抗冲突性与生日攻击282
11.3 哈希函数概述286
11.3.1 专用的哈希函数:md4家族287
11.3.2 从分组密码构建的哈希函数288
11.4 安全哈希算法sha-1290
11.4.1 预处理291
11.4.2 哈希计算292
11.4.3 实现294
11.5 讨论及扩展阅读295
11.6 要点回顾296
11.7 习题297
第12 章 消息验证码301
12.1 消息验证码的基本原理301
12.2 来自哈希函数的mac:hmac303
12.3 来自分组密码的mac:cbc-mac307
12.4 伽罗瓦计数器消息验证码308
12.5 讨论及扩展阅读309
12.6 要点回顾309
12.7 习题310
第13 章 密钥建立 313
13.1 引言314
13.1.1 一些术语 314
13.1.2 密钥刷新和密钥衍生 314
13.1.3 n2 密钥分配问题 316
13.2 使用对称密钥技术的密钥建立 317
13.2.1 使用密钥分配中心的密钥建立 318
13.2.2 kerberos 321
13.2.3 使用对称密钥分配的其他问题 323
13.3 使用非对称密钥技术的密钥建立323
13.3.1 中间人攻击 324
13.3.2 证书 326
13.3.3 pki 和ca 329
13.4 讨论及扩展阅读332
13.5 要点回顾333
13.6 习题333
参考文献 339
本图书信息来源:中国互动出版网