千鳥志

汝果欲学诗,功夫在诗外。
集邮册截图

五台山小朝台

星期天 01.15.2012 - Posted in 生活随笔,

元旦三天假期去了趟五台山,朋友开车当天从北京出发,一路走京港澳、涿鹿、京昆、保阜高速。好像“忻阜高速省界段”刚刚通车,由此北京直接开到五台山出口只需要三个多小时。去程绕了国道,回程比较顺利就是这个路线。

1日傍晚,我们几个在台怀镇塔院寺闲逛,碰到位小和尚让我们去参加“会供”,说今天很巧。一开始也没听太懂,于是上楼去看了,屋子里和尚们正在念经,没有一个外人。因为搞不清楚状况,不敢贸然闯入,我们在门口大眼瞪小眼。突然来了位风尘仆仆的女居士,她说是“会供”一个月才有一次,我们来的很巧,而且也可以进去。来了位四川口音的老和尚,让我们进去坐坐,说呆会要分果品,也粘粘喜气。本打算进去,但听说念经要到八九点,于是算了,因为那边定好了饭。

2日早起直奔东台,开车到达鸿门岩,在附近看了看雪景,然后徒步沿公路上望海寺。这段路上时不时风特别大,估计有六级大风。本来估计有零下10度左右的天气,加上风冻可能有零下20度。约一个小时磕磕绊绊到达望海寺,去房间里烤火休息。然后从小路横切下山回到鸿门岩,只花了约20分钟,旁边一个空房子里做午饭。碰到从北台过来的兄弟说那边风更大,于是改变计划下山去“菩萨顶”。

3日起的比较晚,先去“黛螺顶”,上顶1080级台阶上碰到十来位苦行大拜的僧人。天气很好,越往上走开的越远,基本整个台怀镇的地貌格局能看清楚。冬天虽然到处荒芜萧瑟,对面的雪线倒是别有风味。顶上是寺庙,别有洞天,建筑很有特点。

原计划在寺庙里住一晚,菩萨顶下边“塔院寺”可以挂单,客房50元一天包吃住,一人一床的大房间,有地热条件也不错。问题是9点熄灯睡觉,凌晨3点起床念经,要么我们晚上没法玩,要么太早被吵醒。鉴于本次来五台还是休闲娱乐为主,于是后又回到“金峰宾馆”。

总结一下,北京过去路很好,不过现在淡季台怀镇里边正在修路,应该在今年六月前完工。淡季有淡季的风景,淡季人少其实更清净,各种骗子也少见。五台山很多寺庙都可以挂单借宿,值得一试,曾经在峨眉山洪椿坪的一夜印象太深刻。而大朝台是条徒步线路,遍礼全山佛寺,亲临各台高峰,从东台出发到北台、中台、西台,经吉祥寺、狮子窝寺、金阁寺最后到南台下佛母洞走一圈,全程约85公里。

什么是真正的弱密码

星期四 12.22.2011 - Posted in 工作分享,

CSDN密码泄漏事件震惊IT界,包括600余万个明文的注册邮箱帐号和密码。有趣的是流传出来的密码被统计得出弱密码排行,这个问题在四年前密码强度检测机制中有次好玩的讨论,当年很多的“密码强度检测”其实是工程师一厢情愿,完全非人类思考的结果。

那么到底什么是弱密码?我们不妨从CSDN这份600万的数据样本中分析。虽然这里的用户群是IT从业者,或者里边也许有大量广告、僵尸用户的存在,但我相信还是能一定程度说明问题,毕竟CSDN不是垃圾网站。基本弱密码其实有规则可寻:

  • 重复匹配
  • 常见单词
  • 自然顺序和倒序
  • 键盘键位

我同样不赞同非要让用户设置密码N位,必须包括字母、数字,甚至字母还要区分大小写的情况。位数还好理解,不是必须字母数字还大小写交叉才能增加密码强度。为了验证想法,再做个类似四年前的实验(6位升级到了8位):

“88888888”,弱
“12345678”,弱
“12345567”,一般
“26380445”,极佳
“designer”,弱
“songvision”,极佳
“#%^&**((”,极佳
“wau65756”,极佳

相反再从CSDN数据样本中抽出一些使用比例较高且组合诡异的密码在Google测试:

“1234567b”,弱
“1233211234567”,一般
“369258147”,弱
“1234abcd”,弱
“zxcvbnm123”,弱
“1q2w3e4r5t”,弱
“asd123456”,弱
“iloveyou”,弱
“password”,弱
“qwerasdf”,弱

如果还发现不了问题,提醒测试人员注意键盘键位,认为“1q2w3e4r5t”是中密码可以原谅,我最受不了系统告诉我“#%^&**((”是弱密码。真正的弱密码不是靠规则硬匹配算出来的,必须在用户角度结合场景思考。随手测试了网易、搜狐、新浪,发现四年前的问题除Google进步了之外,几乎所有网站还是那个熊样。

——————————————————

重复次数 密码 百分比
501 qwerasdf (0.0124073903469017)
504 computer (0.012481686097482)
519 zxczxczxc (0.0128531648503832)
521 dddddddd (0.0129026953507701)
525 299792458 (0.0130017563515437)
532 135792468 (0.0131751131028976)
535 20082008 (0.0132494088534779)
536 369369369 (0.0132741741036713)
553 5845211314 (0.0136951833569594)
556 yangyang (0.0137694791075396)
559 csdncsdn (0.0138437748581199)
559 google250 (0.0138437748581199)
561 woaini520 (0.0138933053585067)
562 zhang123 (0.0139180706087001)
562 1234567b (0.0139180706087001)
565 wocaonima (0.0139923663592804)
567 1233211234567 (0.0140418968596672)
567 9876543210 (0.0140418968596672)
570 qaz123456 (0.0141161926102475)
571 q123456789 (0.0141409578604409)
572 321654987 (0.0141657231106343)
578 369258147 (0.0143143146117948)
585 aaa123456 (0.0144876713631487)
589 1357924680 (0.0145867323639224)
592 123321aa (0.0146610281145026)
601 25257758 (0.0148839153662434)
608 wojiushiwo (0.0150572721175973)
616 ssssssss (0.0152553941191446)
618 qazwsx123 (0.0153049246195315)
621 123456aaa (0.0153792203701117)
623 1234567a (0.0154287508704985)
642 z123456789 (0.0158992906241735)
649 woainima (0.0160726473755274)
650 44444444 (0.0160974126257208)
651 buzhidao (0.0161221778759142)
657 ffffffff (0.0162707693770747)
669 100200300 (0.0165679523793957)
680 12345679 (0.0168403701315233)
685 12369874 (0.0169641963824904)
693 1122334455 (0.0171623183840377)
702 111111 (0.0173852056357785)
708 woaini123 (0.017533797136939)
713 qwe123456 (0.017657623387906)
726 xiaoxiao (0.0179795716404205)
727 123456654321 (0.0180043368906139)
729 woshishui (0.0180538673910007)
732 12301230 (0.018128163141581)
740 1234554321 (0.0183262851431283)
741 5201314520 (0.0183510503933217)
744 12345612 (0.018425346143902)
765 lilylily (0.0189454163979637)
770 123456asd (0.0190692426489308)
772 10101010 (0.0191187731493176)
777 1q2w3e4r5t (0.0192425994002847)
783 11235813 (0.0193911909014452)
805 12345600 (0.0199360264057004)
835 11111111111111111111 (0.0206789839115029)
847 wwwwwwww (0.0209761669138239)
852 0987654321 (0.0210999931647909)
882 5845201314 (0.0218429506705934)
882 zxcvbnm123 (0.0218429506705934)
892 kingcom5 (0.0220906031725276)
894 123456987 (0.0221401336729144)
910 05962514787 (0.0225363776760091)
920 321321321 (0.0227840301779433)
967 woaiwojia (0.0239479969370339)
975 1qazxsw2 (0.0241461189385812)
988 123qweasd (0.0244680671910956)
991 1234abcd (0.0245423629416759)
1003 woaini1314 (0.0248395459439969)
1037 12345678a (0.025681564450573)
1054 q1w2e3r4 (0.0261025737038611)
1058 asdfghjk (0.0262016347046348)
1109 1123581321 (0.027464662464499)
1111 123698745 (0.0275141929648858)
1119 asdf1234 (0.0277123149664332)
1136 521521521 (0.0281333242197213)
1148 147852369 (0.0284305072220423)
1183 123456qq (0.0292972909788118)
1200 3.1415926 (0.0297183002320999)
1206 qweqweqwe (0.0298668917332604)
1214 111222333 (0.0300650137348078)
1245 zzzzzzzz (0.0308327364908037)
1268 ms0083jxj (0.0314023372452523)
1273 11112222 (0.0315261634962193)
1285 code8925 (0.0318233464985403)
1316 qweasdzxc (0.0325910692545363)
1339 77777777 (0.0331606700089848)
1384 asd123456 (0.0342751062676886)
1480 qwer1234 (0.0366525702862566)
1589 33333333 (0.039351982557339)
1652 55555555 (0.0409121933195242)
1652 741852963 (0.0409121933195242)
1656 963852741 (0.0410112543202979)
1699 520520520 (0.0420761600786148)
1854 123456123456 (0.0459147738585944)
1859 999999999 (0.0460386001095615)
1859 123456aa (0.0460386001095615)
1891 99999999 (0.0468310881157508)
1918 asdfasdf (0.047499749870973)
1971 aa123456 (0.0488123081312241)
1986 123456789a (0.0491837868841254)
1989 qwertyui (0.0492580826347056)
2100 1234qwer (0.0520070254061749)
2106 a1234567 (0.0521556169073354)
2113 123456123 (0.0523289736586893)
2131 123456 (0.0527747481621708)
2138 a12345678 (0.0529481049135247)
2160 abc123456 (0.0534929404177799)
2166 123321123 (0.0536415319189404)
2243 22222222 (0.0555484561838334)
2296 asdasdasd (0.0568610144440845)
2348 110110110 (0.0581488074541422)
2380 12341234 (0.0589412954603315)
2396 abcd1234 (0.0593375394634262)
2515 qazwsxedc (0.0622846042364428)
2540 12121212 (0.0629037354912782)
2573 123654789 (0.0637209887476609)
2578 0123456789 (0.063844814998628)
2580 123456abc (0.0638943454990148)
2796 1q2w3e4r (0.0692436395407928)
2826 asdfghjkl (0.0699865970465953)
2885 0000000000 (0.0714477468080069)
2985 12344321 (0.0739242718273486)
3061 31415926 (0.0758064308420482)
3080 iloveyou (0.0762769705957231)
3094 qq123456 (0.076623684098431)
3143 qwertyuiop (0.0778371813579084)
3175 000000000 (0.0786296693640977)
3277 qqqqqqqq (0.0811557248838262)
3281 87654321 (0.0812547858845999)
3501 password (0.0867031409271515)
3610 789456123 (0.0894025531982339)
3649 xiazhili (0.0903683979557772)
3667 1qaz2wsx (0.0908141724592587)
4096 11223344 (0.101438464792234)
4435 a123456789 (0.109833884607803)
5025 66666666 (0.124445382221918)
5145 1111111111 (0.127417212245128)
5459 aaaaaaaa (0.135193500805861)
5553 987654321 (0.137521434324042)
5965 147258369 (0.14772471740373)
6995 111111111 (0.173232925102949)
15033 88888888 (0.372296006157632)
17790 1234567890 (0.440573800940881)
19986 123123123 (0.494958290365624)
34952 00000000 (0.865595024760297)
46053 dearbook (1.14051406715741)
76346 11111111 (1.89072779126658)
212749 12345678 (5.26878221339919)
235012 123456789 (5.82013097845522)

数据参考:密码缘分——CSDN用户都喜欢用些什么密码?

WCAG1.0和WCAG2.0区别

星期二 12.13.2011 - Posted in 工作分享,

原理上的东西无太大颠覆,1.0适用性还是很好,2.0主要是更好用了一些。更广泛适用于不同类型的Web技术和更高级的技术应用,更有条理更细致。阳春白雪太过理想化的理论,其实在执行上基本不靠谱,但对深度理解有绝对的帮助。

这块知识体系似乎还是很少有人关注,希望能得到重视。

Web内容可访问性指南 2.0

中文翻译参考2009年8月:
http://w3c.andtoo.net/wcag20zh.htm

可感知性

  1. 可以为任何非文本内容提供替代 文本,使其可以转化为人们需要的其他形式,如大字体印刷,盲文,语音,符号或简单的语言。
  2. 可为基于时间的媒体提供替代。
  3. 可创建用不同方式呈现的内容(例如简单的布局),而不会丢失信息或结构。
  4. 可使用户更容易看到和听到内容,包括把背景和前景分开。

可操作性

  1. 一个键盘可实现所有功能。
  2. 为用户提供足够的时间来阅读和使用内容。
  3. 不要设计会导致癫痫发作的内容。
  4. 提供了帮助用户浏览、查找内容、并确定他们位置的方法。

可理解性

  1. 使文本内容可读,可理解。
  2. 让网页以可预见的方式呈现和操作。
  3. 帮助用户避免和纠正错误。

稳定性

  1. 最大化兼容当前和未来的用户代理(包括辅助技术)。

Web内容可访问性指南 1.0

中文翻译参考2006年2月:
http://www.junchenwu.com/WAI/wai-pageauth.html

  1. 为视听的内容提供同等的文字替代
  2. 不要仅依靠色彩来提供信息
  3. 适当使用标记语言和样式表
  4. 阐明自然语言的使用
  5. 创建编排良好的表格
  6. 确保页面能够在新技术下良好呈现
  7. 确保使用者能处理时间敏感内容的改变
  8. 确保嵌入式用户界面具有直接的可访问性
  9. 设备无关的设计
  10. 使用过渡的解决方案
  11. 使用W3C推荐的技术和规范
  12. 提供内容引导信息
  13. 提供清晰的内容导航机制
  14. 确保文档内容的清晰与简单

推荐个两年半前写的slide,在好几个场合分拆讲过,基础太差的同学来补课吧:

网购收货地址reDesign全方案

星期四 12.08.2011 - Posted in 工作分享,

前文发出来的第一条评论就是对小米网的抱怨,很多问题没法回避,周期及资源所限必然只能抓大放小。之前基本都没做“交互设计”的事情,主要精力是在梳理业务流程,打通数据与数据之间的关系,以及搭建整个信息架构体系。专业上讲,结构层“交互设计”和框架层“界面设计”优先级不如范围层内容规格和内容需求。所谓的细节都是靠人手来做细致推敲,以及耗时跟进完善的结果。

现在着手花精力调整,主要是应对马上上量之后的挑战,小问题容易被无限放大。前文有好心同行转给京东,其实之前我就去过京东了,我认为好的设计应该推广。现在比较粗的版本已经过N万订单的考验,数据基本符合设计预期。

本文相较之前做了细微修改,我觉得可以拿出来探讨,具体不赘述。这是其中一个版本,会抓紧做进新版中。是不是最好的不重要,关键我希望它是条理清楚的设计。以此为基础,广泛征集同行意见,同时希望找到基本功强点的交互设计师一起配合工作。

三种场景变化

首次填写地址

选择以前的地址

再次购买使用新地址

地域选项变化

北京市朝阳区

四川省成都市金牛区

判断提示

所有字段都错的情况

真实姓名
判断“是否为空?是否为中文?”,提示“请填写中文名字”

地址-三级地域
判断“三级是否都已选择?”,提示“请先选择地域”

地址-详细路名
判断“是否为空、是否大于5个字符?”,提示“请提供5个字以上的详细地址”

地址-邮政编码
判断“是否为空?是否为6位数字?”,提示“请提供6位数字邮编”

联系电话
判断“是否为空?”,提示“请留常用电话”
判断“如果1开头是否为11位数字?”,提示“请检查手机号码”