写博客有益身心健康
June 21, 2009 5:06 pm UTC | In Study | 5 Comments | hide几个月前看到一篇论文,大致是说写博客有益身心健康,Discovery 有个评论。博客和日记的功能有些类似之处,而日记的心理学作用研究由来已久,所以关于博客的心理学影响也不是什么新鲜研究。尽管如此,博客的公开化以及交互功能还是比日记要高出一个层次,所以我相信写博客比写日记(或限制访问的博客)应该是更有益于身心健康一些。写博客满足人的表达欲,有利于理清思路、消除孤独,并更有效的和朋友建立联系。
这篇论文所调查的人群是 Myspace 的一些人。在社交网络快速发展的今天,代沟也有了新的含义:我们常常以一个人在 Myspace 还是在 Facebook 更活跃来判断其属于“老人”还是“年轻人”。这篇论文的取样“N = 134, mean age 24.5 years”使得有人怀疑其取样的典型性。这是一个很有趣的怀疑,因为在很多研究中,取样的 bias 或者不正确的数据分析方法都有可能会倒置结果,但身在庐山中的研究工作者却不一定会意识到这一点。
一个例子是,很多微软的程序都会问你是否允许他们收集数据以便更好的改进产品,而这个反馈正是开发者决定工具条按钮顺序等一系列用户界面设计问题的重要依据。大神 delphij 曾提到,这个流程有问题,因为一开始的取样就是非常 bias 的,愿意被收集数据的用户是有一定特点的,比如心态比较开放、机器上没有敏感数据(不在大公司工作)。同样的,在软件开发中,用户反馈呼声最高的功能并不一定是最需要的功能,因为愿意参与反馈的用户群很小,并不一定代表整体利益。
现在很多领域的理工背景越来越重,强调纯粹的数学模型成为了一种趋势。几个月前,谷歌首席视觉设计师 Douglas Bowman 因不满公司痴迷数据而离职,他在博客中写道:
Yes, it’s true that a team at Google couldn’t decide between two blues, so they’re testing 41 shades between each blue to see which one performs better. I had a recent debate over whether a border should be 3, 4 or 5 pixels wide, and was asked to prove my case. I can’t operate in an environment like that. I’ve grown tired of debating such minuscule design decisions. There are more exciting design problems in this world to tackle.
我认为,这是一个很有意义的提醒。数字是会骗人的,解释其含义需要谨慎再谨慎。
因为类似的原因,总有人认为心理学全是骗人的。Sheldon 在 TBBT S2E13 中提到:“The social sciences are largely hokum.”不过,在大爆炸宇宙学也逐渐成为定量科学的今天,心理学依靠 fMRI 等也早已成为了一门可靠的科学。路易在物理学界打拼多年后涉足(物理)教育心理学,发现人思考量子力学和经典力学的时候 fMRI 很不一样。hmm… 不知道是不是骗人的,不过路易认为生物学和心理学的联姻将会像化学和生物学结婚生出了分子生物学一样伟大。
有关阅读的一些问题
April 28, 2008 1:04 pm UTC | In Life, Study | 11 Comments | hide读写速度
我在高中的时候曾经给自己做过一个中文读写速度测试,当时的结果是:打字 – 30 字/分钟;写字 – 50 字/分钟;说话 – 200~300 字/分钟;阅读 – 800~1000 字/分钟。我今天再测了一下,除了打字速度提升到 70 字/分钟 以外,其它三项貌似没有变化。我不知道当时我用的什么土鳖输入法,不过 10 多年过去了,输入法技术和我自己的指法都有了进步,输入速度翻倍还是值得高兴的一件事情。对一般人来说什么方法最容易训练打字速度?10 多年前可能有人会说,五笔培训班;现在呢?估计是上网聊天吧…… P.S. 我用微软拼音。
最佳行宽
阅读速度取决于很多因素,内容难易自然很有关系,为公平起见,一般测试都用无需动脑的文章,比如花边新闻、散文之类的。接下来,每行几个字对阅读速度的影响也很大,貌似也有人叫最佳阅读宽度。这是一个很古老的话题,这里有一个英文方面的总结,一般认为最佳行宽是 10~15 厘米,书页差不多就是这个大小,如果是大开本,往往会分栏。行太长的问题是会迫使阅读者增加颈部运动,而且换行回到左边可能会串行。现在做网页一般都会考虑一下宽屏显示器了,有时候并不是充分利用屏幕宽度就是最好的,宽屏下我在 Google Reader 里的阅读速度远高于 Bloglines。
横排还是竖排?
中文是竖排好,还是横排好?撇开阅读速度的问题,就说纯客观的纸面利用率的问题,竖排比横排差。竖排每列字数比横排每行多,所以段尾损失的空白要比横排多;而且为了防止读串列,竖排的列间距一般比横排行间距大。综合起来看,竖排每页字数要比横排少大概 10~30%。请大家珍惜森林,抵制竖排书。
三表同志说过:
如果是繁体、横排、正着翻看的书,我阅读起来已无多大障碍,比如以前我介绍过一本《唱片风云》,一个晚上差不多就看完了。但是如果竖排,就比较费劲了。横排的文字你看的时候老摇头,一般不会打瞌睡,竖排的文字看的时候老点头,容易打瞌睡,我常常看了几页就睡着了。你说以后书都是斜着排版又会是什么效果呢?
俩眼睛是横着长的,而且竖排一列比横排一行还要长,竖排阅读时眼球肌肉运动要多一些,我感觉竖排的阅读速度显然不如横排。有研究也有类似结论,不过一般被试者都是从小习惯横排阅读,所以我觉得这个研究说服力并不强。另外,有人认为竖排可以增加眼睛休息,对健康有利。至于竖排和中国传统文化,则又是另一方面的问题,我看我就只写到这里吧,请懂行的人砸砖。
IE7 是邪恶的
February 24, 2008 11:09 pm UTC | In Misc | 13 Comments | hide曾经有好几个美国人跟我抱怨,IE7 怎么没有刷新按钮了。
上网一搜,没发现 IE7 刷新按钮的比比皆是。有个哥们抱怨说:I can’t believe I googled on this.
我长期不用 IE,今天打开来居然也没找到刷新按钮,情急之下只好按了 F5……
其实,IE7 里面的刷新按钮被移到了地址栏右边,不再和后退、前进按钮在一起了。
十多年来我们早已熟悉的“后退、前进、刷新”的按钮序列居然被微软这帮猪头给推翻了。
这真是一个反人类的浏览器。

(小猪取自辛普森家庭电影网站)
溢出和技术前瞻性
January 3, 2008 11:07 pm UTC | In Tech | 2 Comments | hideCzz 说,没想到 ptt 都七万在线了,导致他的在线统计程序溢出了,原来分配的是 unsigned short int…
想起我这个世纪初写的一个 Visual Basic 的程序,某个编号用的 Integer,结果没过几年编号上了三万多,溢出了……
出现溢出,有的时候是因为以前的技术限制,比方当年的千年虫,盲目多分配会导致稀缺资源不能充分利用。
解决溢出问题,有时候很简单,Czz 的程序稍微改改即可;我的 Visual Basic 程序,则是无数的变量定义都要改,还有遍地的 CInt 都要改成 CLng;千年虫的问题,则是世界范围升级换代 BIOS。
现在我们写的程序,往往十年后还会在使用,有点技术前瞻性没什么坏处。(这个应该是康神说的,但是我找不到出处了,凭记忆写的。)考虑潜在的溢出问题就是技术前瞻性的一个例子。
联想到一个不是很相关的问题,微软的 Live Spaces 里面的 Blog Entry 发布时间默认是不显示年份的,有时候搜索到一篇文章却死活找不到哪年发表的,告诉我几月几号有个屁用啊……那帮写程序的家伙也许从来没想到过 Live Spaces 能活过一年,所以“前瞻”到年份信息是没有意义的……
微软的文档……
December 11, 2007 1:04 am UTC | In Tech | 3 Comments | hide同样是字符串里找子串的函数,微软 VB 的文档:
Returns an integer specifying the start position of the first occurrence of one string within another.
Public Shared Function InStr(_ ByVal String1 As String, _ ByVal String2 As String, _ Optional ByVal Compare As CompareMethod _ ) As IntegerParameters
String1
Required. String expression being searched.String2
Required. String expression sought.
读完了一头雾水,TMD 到底哪个参数是要找的子串??being searched?sought??我英语不好也不要这么欺负我啊。再看微软 VC++ 类似函数的文档:
Return a pointer to the first occurrence of a search string in a string.
char *strstr( const char *str, const char *strSearch ); // C onlyParameters
str
Null-terminated string to search.strSearch
Null-terminated string to search for.Return Value
Returns a pointer to the first occurrence of strSearch in str …
VC++ 里解释比 VB 的稍好一些,但是还是不清不楚的,功能说明为啥不写清楚哪个 string 是哪个呢?变量名为什么要写得这么诡异呢?参数说明里一个是 search,一个是 search for,TMD 又欺负我英语差!像这种常用函数,一般人都知道大概怎么用,只是偶尔不确定看一下参数顺序,你这么个文档还得让人费脑细胞琢磨,要你何用!再看 PHP 里类似的函数:
int strpos ( string $haystack, mixed $needle [, int $offset ] )Returns the numeric position of the first occurrence of needle in the haystack string.
PHP 这个文档光看参数名就足以明白参数顺序了,看了功能解释就更清楚了。MacOS 的 man page:
char *strstr(const char *big, const char *little);The strstr() function locates the first occurrence of the null-terminated string little in the null-terminated string big.
有一百种方法可以把这个函数的参数顺序写的很明确,但是微软偏偏选择了不明朗的写法。想起一般微软的程序很少有人去看 HELP 解决问题,而 MacOS 和 *nix 下面看文档则是家常便饭,看来微软文档无用论还是很有道理的……
Tags: documentation, microsoft, usability
某人用苹果电脑…
November 12, 2007 1:08 am UTC | In Life | 7 Comments | hide某人用 Mac 好几个月了,前几天需要重启动系统,死活找不到重启动的地方,电话我才得知需要按屏幕左上角的小苹果。这件事情说明了两个问题:
- Mac 系统很好很强大,电脑盲使用几个月都从来没有需要重启动过。
- Mac 的 usability 是不是还存在问题,特别是对于极笨的使用者……
再写几个做网站的流氓行为
October 27, 2007 7:07 pm UTC | In Tech | 7 Comments | hide网站设计里的流氓行为一般人注意不到,但是作为一个技术愤青,每看到一个流氓设计,我就会骂一次。
- 偷输入焦点。有些网站的输入框是这样设计的:当鼠标移上去就获得了输入焦点,然后不用点鼠标就可以直接键盘输入了。这看似人性化,实则却非常违背常理,我喜欢在哪里输入就在哪里输入,怎么我动一动鼠标移过了你的输入框你就认为我要在你那里输入了呢?你傻不傻啊,请问有哪一个 windows 程序是这样设计的?难道你要跟我说某类诡异的 X window 窗口管理器么?你真要提醒我这儿有个输入框可以,变变色比方说,但是你不要把我的输入焦点抢了啊。
- 搜索框里提示这里可以搜索。一般这类搜索框是这样设计的:初始设置文字 ’search here…’;onfocus() 判断如果内容是 ’search here…’ 则清空输入框;onblur() 判断如果内容是空则重置输入框内容为 ’search here…’。这个很聪明的设计看似节省了提示文字的空间,但在我看来实在是可以列入 SB 吉尼斯纪录。你要提示这儿有个搜索框,写在搜索框旁边会死啊?一个好好的网页难道就缺这么一点儿空间吗?网页搞得密密麻麻号称信息密度高的网页一般来说可读性却很低。而且,如果我在框里输入了东西,’search here…’ 就出不来了,我反而不知道这个输入框是干啥的了。另外,我还有一个习惯是在网页里面选中文字拖进搜索框进行搜索,对于这类 SB 设计的输入框,我拖文字进去就变成了 ’search h选中的文字ere…’,真是傻极了。
- 滥用 javascript。有些网站哪怕一个普通链接也要用 javascript 函数来跳转,搞得我没办法直接在新窗口打开这个网页。你要搞点小动作可以在 <a 的 onclick() 里面搞,href 给我好好的写上目标网页的 url 有这么难吗?
- 滥用 flash。flash 是个好东西,但是不要滥用。比方网站导航结构不要用 flash,要不然没装或者关掉 flash 的地方就不能正常使用网站了。
- 某个门户网站把广告和搜索结果搞得几乎一模一样的 style,faint。还有漂浮广告,随便乱弹新窗口,等等等等,批判这些的貌似很多,我就不写了……
在新窗口打开链接是流氓行为
October 22, 2007 1:28 am UTC | In Tech | 11 Comments | hide完整的标题是“随便设置强制在新窗口打开链接是流氓行为”(不过太长了……)早在上个世纪末有人总结的 1999 年十大网页设计错误的第二条就是强制在新窗口打开链接。这个 target=”_blank” 真是一个鸡肋,为什么我认为随便设置这个玩意儿是流氓行为呢?因为它的坏处太明显了……
- 如果已经设置了 target=”_blank”,用户希望在当前窗口打开这个链接就很难(可以把链接拖进地址栏,不过第一拖起来不是很爽,第二也不是所有的情况下都能用);反之对于一个普通链接,如果用户想在新窗口打开,则方法很多(鼠标中键,shift+click,等)。老子浏览网页老子自己作主,老子要开新窗口老子自己会开,凭什么你个 SB 网站来控制我浏览的行为?
- 在新窗口打开的网页中,Back 按钮就失去了前面浏览网页的历史。
- 大多数用户在不被提示的情况下认为链接会在当前窗口打开,一点链接突然蹦出一个白窗口出来是一件很不爽的事情。违背用户直觉是 usability 的一大忌。
- Tab 浏览器配置下新手如果没有意识到新窗口是在新 Tab 后台方式打开的,往往会点好多次链接,然后出来无数个 Tab……
- 新窗口占用下面的任务栏空间,不过这个问题现在已经不是大问题了。
比较好笑的是,似乎国内很多网民对新窗口打开网页已经习以为常,纵观各类门户网站,似乎在新窗口打开链接是标准设置。以搜索引擎给出的链接为例,baidu.com 默认是新窗口打开,google.com 默认则是在当前窗口打开(当然这个设置可以自定义)。很不巧,这两个设置我都知道一点内幕,两个公司都是经过深思熟虑广泛调查之后设置的默认值,可见国内网民的浏览习惯。更奇怪的是,我经常看见有人大骂 google SB,竟然不保留自己的搜索结果而在当前窗口打开链接,我想说,你 TMD 才 SB,google 给你自由选择你 TMD 还不要。
不过没有办法,这么多网站还在重复着上个世纪的错误,而且导致广大被洗脑的网民也接受了这样的浏览习惯,真是无语。首先,作为用户,良好的浏览习惯是什么?良好的浏览习惯就是想开新窗口的时候明知道这个链接是新窗口打开的,还是偏要用鼠标中键打开它。这个就跟学开车一样,不要碰到车一多就把脚放在刹车上,这样养成习惯以后碰到紧急情况就一脚下去踩死了油门,岂不自寻死路。哦,好像跑题了。
接下来,作为网站的开发者,你 TMD 为啥要在新窗口打开网页呢,有人说为了网民习惯考虑,放屁,你只要乖乖的设置当前窗口打开就行了,你没个(本链接在新窗口打开)的文字,鬼才知道你是新窗口打开的(不过 Opera Safari 默认可以显示,顺便赞一个)。也有人说为了自己这个网页还开着(这个理由经常对去别站的链接使用),这其实也是放屁。用户希望看你的网站,是因为你网页里面有他需要的信息,而不是你的网页还开着。如果用户需要你这个网页还开着,他自然会自己在新窗口打开链接,用得着你操心么。再说了,你新开一个窗口把你自己的窗口遮住了,而且连 Back 按钮都不能用了,新手反而会糊涂不知道怎么回来了。
好了,骂够了。有没有需要强制在新窗口打开链接的情况呢,也是有的,几个常见的情况是:
- 打印当前窗口的内容。这个其实现在更推荐用 @media print/screen 两套 CSS 来解决问题,当然 ajax 类网站做这个比较难,新窗口打开打印模式也是很人性化的。
- 打开非网页类的链接,比如大 PDF、大图片。不但可以后台下载大文件,也可以防止有些用户误以为是文档窗口把浏览器整个儿关掉。
- 填表的辅助窗口,比方选日期。这个其实现在也不推荐开新窗口,直接用 DHTML 在当前网页里面做未必难做,不过技术力量不强的话开辅助新窗口应该是最合理的方式。
This weblog is licensed under a Creative Commons License.
Powered by WordPress. Theme based on Pool by Borja Fernandez.







