为什么说 Mac OS X 的菜单栏是糟糕的设计

Mac OS X 的顶部常驻一行菜单栏,可以分成三部分:苹果图标,当前活动应用程序的名称和功能,以及附加图标。

201202082128.jpg

这样的设计是 Mac 的特色之一,首先说一下它的优点。

Mac 菜单栏的优点

可以获悉当前正在运行的程序名称

嗯,谁叫 Dock 上面没有任何提示呢。但是这个特性还不能 100% 确保灵,见下面的缺点。

让程序的快捷键有统一的实现

每一个菜单项的功能,如果有对应的快捷键,那就会显示在最右边。而且当你按这个快捷键的时候,包含这个功能的菜单还会闪一下。
201202082257.jpg

搜索命令

这一点我觉得是最大的优点。因为 Mac 程序的设计理念之一是把所有功能都塞到菜单栏中,所以当你找不到一个功能的时候可以尝试在“帮助”菜单中搜索命令。当搜索到的时候,它还会告诉你这个命令究竟在什么位置。
201202082302.jpg

保持主界面简洁

菜单栏是一个丢没地方放的命令的地方。开发者可以把不常用的所有功能都丢到菜单栏中,保持主界面简洁。但是下面我将会指出 Windows 用了更好的方案解决这个问题。

Mac 菜单栏的缺点

这是本文的重点,整体而言,我认为 Mac 在处理菜单栏方面做得不够好。

占用空间

只要你不是运行全屏的应用程序, Mac 的菜单栏就会一直显示,即使当前的应用程序不需要菜单。

自定义空间小

据我所知,系统标准的菜单栏中的项目只有三类:普通菜单项、复选菜单项和子菜单。当然“帮助”菜单里的那个搜索框是个例外,但我没见过程序可以自定义地把一个文本框放到一个别的地方。比方说, Chrome 的主界面的工具按钮出现的菜单中,“编辑”和“缩放”都有自定义的控件,但却无法在系统的菜单栏中实现。
201202082139.jpg

201202082140.jpg

与程序主体割离

这是相对严重的一个设计问题。一个程序的功能却分布在两个独立的地方。更糟糕的一种情况是当使用多显示器时,菜单栏永远显示在一个主显示器上,这样就会出现程序主界面在一个屏幕上、菜单栏在另一个屏幕上的现象。

无法在主界面访问程序所有功能

程序的部分功能隐藏在菜单栏中。如果菜单栏集成在程序主界面中,那即使程序并不是前端活动的,也可以点一下鼠标访问到该程序的菜单。但是现在这种设计中,必须点一下非活动程序的窗口,再在菜单栏里面找。

附加菜单项无法隐藏

“附加菜单项”相当于 Windows 的通知区域,但是 Mac 并没有提供一个隐藏不常用的菜单项的机制。当当前程序的菜单项较多的时候,附加菜单项就会被强制隐藏,而且除了切换到一个菜单项少点的程序之外没有别的好办法。

201202082155.jpg
201202082155.jpg

当无 Dock 项的时候无法使用

这样说有点抽象,这是一个例子: Sparrow 这个邮件客户端的有一个选项是“是否在 Dock 中显示”,如果选是的话,那它只要在后台运行就会在 Dock 中常驻一个图标,即使没有打开窗口。因为我让它在附加菜单中显示图标,所以 Dock 中的图标可以不用了。但是如果这样的话,就算打开了主窗口也不会在 Dock 中显示图标,更糟糕的是切换到 Sparrow 的窗口后,菜单栏还是上一个程序的内容。如下图所示, Sparrow 明明是当前活动窗口,但菜单栏显示的还是切换到 Sparrow 之前的那个程序的项目。
201202082233.jpg

那么 Windows 是怎么设计的?

“苹果”菜单是如何处理的

首先是位于菜单栏最左边的“苹果”菜单。观察一下其中的项目就会发现,这些功能都集成在 Windows 的“开始”菜单中,而且 Windows 的安排更合理。201202082202.jpg
比方说,“关于这个 Mac”是一个很少用到的功能,人们不会时不时就点一下这个菜单看看自己的 Mac 是什么版本、处理器内存配置如何。在 Windows 中,如果用户偶尔真想查看本机信息,那么点“开始”,然后右键点“计算机”、“属性”就可以了,或者直接在“开始”菜单中搜索更快。考虑到这个功能的使用频率,总体而言几乎不会增加多少麻烦。

201202082207.jpg
这里的重点是:“苹果”菜单处在一个非常重要的位置,无论什么时候,只要不是运行全屏的程序,它都会显示。所以,它里面放的东西应当是最重要最常用的。

附加菜单项是如何处理的

这就是“通知”区域。不想要的图标可以隐藏。
201202082220.jpg

程序功能菜单是如何处理的

在 Windows 中,每个程序可以根据自己的需要选择菜单的模式。主要有以下几种:

标准的菜单栏

这种模式是从 Windows 1.0 就有的。一些简单的程序,比如记事本和计算器等,用的还是这样的模式。
201202082333.jpg

隐藏的菜单栏

Windows Explorer 、 Internet Explorer 、 Windows Live Messenger 这些程序,平时是没有菜单栏的,但是如果按一下 Alt 就会出现一个菜单栏。在这样的程序中,往往菜单栏里面提供的功能在程序界面的其他地方也可以访问,菜单栏只是高阶用户的一个隐藏功能。
201202082335.jpg
201202082338.jpg

201202082339.jpg

201202082340.jpg

Ribbon UI

Ribbon UI 是 Office 2007 的特色功能,后来也应用到了 Windows 7 的画图、写字板和 Windows Live 的 Writer 、 Mail 等程序里面。 Ribbon UI 提供了丰富的元素类型,而且只占用有限的屏幕空间,是菜单和工具栏的结合。
201202082345.jpg
Ribbon UI 也不缺乏快捷键提示,只要按一下 Alt ,就会出现非常到位的一步一步的屏幕提示:
201202082348.jpg
201202082348.jpg
而且在下一代 Windows (暂且称为 Windows 8 )中, Windows Explorer 也将应用 Ribbon UI 。
201202082351.jpg

有 Mac 用户嘲笑 Ribbon UI 说这是把所有功能全都罗列出来,看起来很混乱,跟 Mac 的简洁设计形成鲜明对比。但其实只要双击 Ribbon 的 Tab 就会缩起来,所占空间并不比一条菜单栏大。
201202082356.jpg
收缩起来以后,单击一个 Tab 就会将该 Tab 的命令悬浮出来,效果就像是一个功能增强版的菜单。
201202082358.jpg

无菜单

如果一个程序足够简单,或者它的全部功能都能由其他界面元素提供,那它就不需要添置一个菜单。
201202090001.jpg

为什么苹果应用这种设计?

我觉得一个重要的原因是历史遗留问题。1984年的 Mac OS 1 就是顶部有一个菜单栏。或许这样设计的原因是当时屏幕太小。

201202090011.jpg
(图片来自维基百科)

虽说1985年的 Widnows 1.0 被指抄袭 Mac 的设计,但它已经让每个程序有独立的菜单栏。

201202090012.jpg
(图片来自维基百科)

问题在于, Mac 把菜单栏设计成一个系统级别的、跨程序的元素。想要在它上面做手脚,可不是把一个程序从菜单+工具栏变成 Ribbon UI 那么简单。想象一下,假如苹果决定在下个版本的 Mac OS X 中取消菜单栏,那应该怎么做?

首先,苹果菜单得妥善处理,像关机等功能得找地方安置。然后,附加菜单项得找地方安置。最重要的是每个程序的功能菜单得放到各个程序本身的主界面中。

对于前两个问题,已经是没那么好解决了,把 Dock 变成类似任务栏的样子然后把苹果菜单和附加菜单项放进去?这等于自己否认一直坚持的设计风格并向微软认输,作为自诩“世界上最先进的操作系统”是绝对不能接受的。而第三个问题则更加棘手,为了保证向前兼容,得设计一套标准让原来的程序能够不经修改地直接转换成新界面。可以想象一大批程序将会因此变得一团糟。况且,有些时候一个程序是活动的,但它没有任何一个窗口,此时如果用菜单栏还是可以访问它的功能,把菜单栏去掉了怎么办?

其实问题也没严重到不能容忍的程度。如果一个程序想有 Ribbon UI 还是能有的,只不过还是无法去掉菜单栏罢了。菜单栏的多数缺点可以通过尽可能少地依赖于系统菜单栏实现功能来弥补。

201202090054.jpg

另一个重要因素是使用习惯。对用户来说,一个本身不合理但是已经用了多年形成了根深蒂固的习惯的设计和另外一个设计合理但需要重新适应的设计,我想多数人会选则接受前者。

为什么说 Mac OS X 的 Dock 没有 Windows 任务栏好用

对于一个熟悉 Windows 的人来说,在刚用 Mac OS X 的时候,会把 Dock 类比成 Windows 的任务栏。其实 Dock 相当于 Windows 任务栏的一部分功能,而任务栏和开始菜单的其他部分则分布到 LaunchPad 、 Apple 菜单、菜单栏。这个设计的对比有很大的展开空间,但是我只想说一下 Dock 。

给人不稳定的感觉

这里的不稳定,并不是指经常崩溃,而是让人感觉不实在、容易倒。比方说,下图是 Dock 的一部分,这些图标是立在一个镜面上的,给人的感觉是放不稳。
201202051515.jpg
如果说这只是给人的一种错觉的话,那么这个设计则是影响到实用性的:当点住一个图标并拖出 Dock 的时候,这个图标会灰飞烟灭。而你还要从 Application 文件夹或者 LaunchPad 里面找出这个图标再放回来。更糟糕的是,你的本意可能只是切换到这个程序,这是一项频率十分高的操作,但是却有可能造成这样的麻烦。

201202051519.jpg

不易分辨图标

Windows 任务栏的背景是毛玻璃半透明的,但是 Dock 的上半部分是全透明的,下半部分是反光效果,让人不易分辨出图标,尤其是当上方的窗口也被反光的时候。并且,在这个时候你想点窗口的内容,也不好说你点到的究竟是窗口的一部分还是 Dock 图标。
201202051525.jpg
一种解决办法是将 Dock 放到左边或右边,这样图标会整体包在半透明的框中,而且也没有了反光效果。很多人也都这样做,因为屏幕本来就是横向比纵向宽。但这样会失去一些功能,比如扇形展开文件夹。
201202051527.jpg

占用过多空间

Dock 虽然只是屏幕中央的一部分,但事实上它占用了整一排的空间。两边空出的部分虽然没有 Dock 图标,但是也基本上做不了别的了,比如你的窗口最大化的时候它的高度只会调整到 Dock 上面的那部分,而且就算你可以手动移动,这两边的空间也很难利用起来。

201202051302.jpg

让 Dock 自动隐藏不是一个可以接受的解决方案。而把 Dock 的尺寸调小?那只会让图标更不易分辨。

正在运行的程序指示太不明显

Dock 会在正在运行的程序下方显示一个亮点来指示程序正在运行。这是十分不明显的提示,一点也不一目了然。
201202051534.jpg
更糟的是, Mac 程序的设计模式是关闭所有窗口也并不意味着程序退出,多数程序会在最后一个窗口关闭后仍然保持运行。所以,你甚至不能立刻说出下面有亮点的程序是否有一个打开的窗口。那就点一下试试?这也不是一个好办法,因为有些程序(比如 Word ),当没有任何窗口打开的时候,点一下这个图标会导致新建一个文档。另一个坏处是,点这里的图标会导致这个程序对应的所有窗口全都前置。比如,你开了4个 PDF 文档和3个 Word 文档,你正在撰写其中一个 Word 文档并且经常需要查阅另一个 PDF 文档的内容。在 Windows 中,任务栏的窗口预览可以允许你直接切换到想要的窗口,而通过自定义设置还可以恢复旧式 Windows 的风格,即每个窗口都对应一个任务栏图标。但在 Mac 中,没有太简单的方法办到这一点。一种方法是使用 Mission Control :如果使用触摸板,触发 Mission Control 的手势是四个手指向上划;如果是 Magic Mouse 则是两个手指轻触两下。如果是在某一个程序图标上触发这个手势,则会只显示这个程序的窗口。

201202051550.jpg
另一种方法是在图标上面点右键,就会出现该程序打开的所有窗口的列表。但无论是哪种方法,都需要切换至少一次视图,没那么直观。而如果想通过拖动的方法把内容从一个窗口移动到另一个窗口,则更是一项挑战。

201202051546.jpg
如果怀念 Windows 7 ,也不是没有办法。比如 DockView 就是这样一款辅助软件,它会在 Dock 图标旁边显示一个徽标指示该程序有几个打开的窗口,而移动到上面则会显示窗口预览。但是这款软件售价 $7.99 ,而别的类似功能的软件也不免费。
201202051605.jpg

放大的效果华而不实

默认情况下, Dock 会开启放大的效果,但是就我个人使用的感觉而言,这个开还不如不开。首先,这个放大效果会导致程序图标的位置一直变化,比如下图,上面开的网页可以作为参照物,而注意看那个 Word 图标,鼠标从左边移动到右边,这个图标移动了相当可观的一段距离。人在使用鼠标时间久了以后,就会对肢体动作和屏幕反馈形成一种感觉,当需要把鼠标移动一段距离的时候,一般能够不太费力地精确定位。但是不断变化的尺度和位置使得你必须时刻修正你的感觉来定位到你想要的图标。
201202051553.jpg
201202051554.jpg
另一个问题是,放大以后会导致窗口的部分内容被挡住。比如下图,上面是一个网页,在鼠标没移动到 Dock 上面的时候,两边井水不犯河水。但是当你把鼠标移动到 Dock 上时,放大的图标会挡住一部分窗口内容,而且此时 Dock 图标是在前方。有可能你只是想从底部调整一下窗口大小,但是一不小心鼠标移动过了边界以后就会触发 Dock 的放大,必须向反方向移动更远的距离才能取消。你可以说这些都是细节,但正是这些细节导致用起来不顺手。所以,实用的方法还是把放大关掉。
201202051558.jpg
201202051558.jpg

Mac 系统的娱乐软件

本来我想写一篇长长的讲 Mac OS X 如何地比 Windows 7 糟糕的文章,但是我一直懒得做这么一个大工程,况且太长的文章估计也没什么人愿意读下来,所以还不如把每条想法写成独立的短文。

我这里的娱乐软件指三种:照片、音乐、影片。 iLife 主要的三个组件就是分别围绕这三个主题的。其中, iPhoto 是管理照片的, GarageBand 是制作音乐的, iMovie 是制作电影的。我在这里重复这些陈词滥调,是为了强调:只有第一个是用来管理内容的,剩下的都是创作的。但另一个软件 iTunes 则是管理音乐和影片的。 iMovie 虽然也有一个影片库,但那个影片库是用来制作电影的,不应跟 iTunes 里面供人欣赏的影片混为一谈。而一开始我很困惑为什么还有一个 QuickTime Player ,我甚至一度将音频文件的打开方式设为 iTunes 。因为在 Windows 里面, Windows Media Player 既负担管理媒体的作用,又是打开独立的媒体文件的工具,而我从没想过这两件事情需要两个工具来做。不过仔细想想,这样的设计或许是有它的考虑的:并不是所有用户都对“文件”有那么强的概念,他们并不会强烈地意识到 iTunes 里面正在播放的音乐是一个文件,或者 iPhoto 照片库里的一张照片是一个文件。这导致的结果是,你在 iPhoto 或 iTunes 里面看着很整齐的媒体,他们实际的物理位置很是复杂。而 QuickTime Player 却还肩负着录制视频、音频和屏幕捕获的任务。另一个我想提的工具是 Image Capture 。它的作用是把相机中的照片或影片导入到电脑。这个软件给人的感觉像是历史遗留产物,我都差点忘了有这么一个东西存在了,直到有一天我意识到当你想把 iOS 设备中的照片导入到电脑的时候,这是一个比 iPhoto 好得多的方法,因为 Mac 下不像 Windows 那样会把 iOS 设备直接识别成一个相机然后可以在文件管理器里操作,而导入到 iPhoto 的话,不仅首先要启动这个臃肿的软件,而且它会导入到一个很深的路径,很是不灵活。而 Image Capture 允许你像在 Windows 里那样直接将照片导入到指定的路径。

终于把邮箱从 Hotmail 彻底迁移到了 Gmail

我的 Hotmail 邮箱是2001年7月10日注册的,这离我刚知道什么是电子邮件才不到两年。我还记得我注册的第一个电子邮箱是 163.net 的,但当时并没有太大用处。我已经忘了当时为什么注册 Hotmail ,大概是因为 IE 链接栏自带一个“免费的 Hotmail”链接,而我对微软的东西又比较信任。

初中毕业以后(2002年),我给家里的电脑装上了 Windows XP 。第一版的 Windows XP 自带 Windows Messenger 4.0 ,也就是当今 Windows Live Messenger 的前身。这个 IM 工具在当时是 Windows XP 的亮点之一,它的特性包括:可以切换离开、忙碌等的状态;支持表情图释;支持语音和视频通话;支持远程协助。这些特性当年的 QQ 一个都没有。但是最重要的一点是:它跟 Hotmail 整合得相当好。首先在主界面就能看到收件箱中有多少未读邮件,而且一旦收到一封新邮件,几乎是瞬时地提醒。另外,如果想给某个联系人发邮件,从 Messenger 可以直接打开网页并填入相应联系人的邮箱。 Messenger 成了我使用邮箱最重要的工具。 Hotmail 当时比很多国内的邮箱服务都要难用,它只有 2MB 的空间,而且访问速度极为缓慢。但是配合 Messenger 的邮件提醒是重要的优势,它的富文本格式编辑器也令人惊叹。并且,我寄希望于 Hotmail 在未来会改进当前的不足。

2004年春天的时候, Hotmail 的容量依然是只有 2MB ,至少对中国大陆市场的免费用户是这样的。国内的邮箱容量虽然大得多,但也不过几十 MB 。结果江湖惊爆 Google 推出了一种邮件服务,网页功能强大不说,容量有 1GB 之巨。那时的主流台式机硬盘在 40GB 左右,价格大概是800,也就是每 1GB 成本大概是20元。在初期,只有被邀请的用户才能使用,但没过多久邀请数就多得不值钱了,后来 Gmail 也开放注册了。我也注册了一个,但一直没怎么用,一是因为这么大的储存空间对我来说其实意义不大,因为网速不够,空间大了也不实用,所以 100GB 跟 100MB 没什么差别。二是因为 Gmail 没有一个像 Messenger 这样的提醒工具。

后来,我在2005年的时候开始使用 MSN Spaces 。那段时间 MSN Spaces 还非常热闹,我的很多朋友都非常勤快地维护空间,而那时的 MSN Messenger 可以提示最近更新了空间的联系人,加之我已经在各种各样的网站使用了我的 Hotmail 邮箱来注册,所以我对 MSN 这套服务更加依赖。不过这并不意味着我对 MSN 的服务很满意。 Hotmail 的致命弱点就是在中国大陆访问速度缓慢,而且功能有限,在收件箱中阅读一封邮件需要重新加载一遍整个页面,新建邮件又要重新加载页面,而此时 Gmail 早已经支持单一页面的丰富功能。

微软的服务越来越给人一种不稳定的感觉。一方面是,本来用着好好的功能哪天会突然出现 bug ,或者是往难用的方向做了改动,另一方面是,你现在用着的服务不知道哪天就会关闭了。就说去年,先是 Spaces 关闭,然后是 Messenger 2011 改得乱七八糟,然后 Live Calendar 在 Chrome 中出现致命访问性 bug (这促使我舍弃 Windows Live Calendar 而转用 Google Calendar ),而 SkyDrive 的 Office 文档出现的菜单对部分用户显示不完整以至于无法访问某些功能,最后是最近出现但直到现在还没解决的 Hotmail 在 Mac 下的 Chrome 无法复制文本的 bug 。期间,还出现过部分用户 Hotmail 数据丢失、 Live Calendar 断线等严重的服务器端事故。

顺便说一下我用过的其他 Windows Live 服务。我曾经还用过 Windows Live Home ,就是一个自定义的主页,我把很多朋友的博客的 RSS 放到那里。但是这个功能有个非常白痴的设计,就是在页面右上角的显著位置有个链接,点一下就会把整个页面的设置全部重置。我就不小心被这么重置过一次,从此以后就再没用过。更早的时候我也用过 MSN Alert ,后来变成 Windows Live Alert ,我并不是真的需要它提醒什么事情,只是为了看 Messenger 出现提醒时的那个很罕见的提醒框。 Windows Live Mesh 我曾一度很推荐,但后来它的一个 bug 令我不得不停止使用,其现象之一是 Visual Studio 的工程如果包含在被同步的文件夹中,那么该项目编译的时候总会出错。另一个现象是, Windows Live Messenger 的消息历史记录文件如果包含在被同步的文件夹中,那么这个文件经常会被清空。也就是读写很频繁的文件如果同步的话很可能会被毁掉。 Groups 也试用过,但是因为联系人太少所以用不起来。 Family Safety 在需要的时候还比较令人满意,但是现在不怎么需要。 Photo Gallery 的优点是直接支持添加文件夹路径,这点比 iPhoto 好。但是致命 bug 是新加的文件夹显示不出包含的内容,经常需要退出再打开才行。而且,如果把它作为一个普通的图片查看工具,又有点略为重量级了—— Mac 下承担此工作的不是 iPhoto ,而是另一个叫做 Preview 的轻量级应用。

这给人这样一种感觉:微软的产品在制作过程中,经理提了要求,几个程序员以纯粹地为了完成工作的态度制作,也没有经过严格的测试。有一些很突出的问题,比方说,当我装了 Windows Live Mail 之后,再在 Messenger 中点收件箱的按钮,会打开 Live Mail 而不是网页中的 Hotmail 。但是 Live Mail 这个软件很耗系统资源,启动速度缓慢,并且与服务器的同步速度也很慢,还不如直接开网页。但是 Messenger 没有这样一个选项说可以选择在哪里打开收件箱。这在我看来是很严重的可用性问题,但是却没什么人关注,这么多年这些版本升上来也没有什么改变。又比如我刚刚说的 Chrome for Mac 不能在 Hotmail 中复制文本的 bug ,令人惊讶的是这个 bug 已经出现将近一个月了,既没见到有人讨论更没见到官方对该 bug 的修正。而 Mac 下的 Microsoft Messenger ,不仅功能弱 bug 多还不支持多点登录,一点收件箱跳到 Hotmail 以后,如果你恰好设置了网页自动登录 Messenger ,那 Microsoft Messenger 就会立即断线。这是一个足够严重的问题了吧,但是还是没引起什么人的重视。这说明 Windows Live 没有什么认真的用户,也就是说, Windows Live 的用户都是一些服务出点小问题甚至断个一两天都影响不大的人。

但是,我决定转移到 Gmail 的最重要的原因是 IMAP 的支持。 IMAP 是一种很好的收取邮件的协议,当新邮件到达时会立即推送到客户端,客户端和服务器的已读/未读状态实时同步,删除邮件实时同步,也支持多个文件夹,相比之下, POP3 只能是客户端每隔一段时间从服务器主动获取,而且不能同步已读/未读状态,只支持收件箱,更要命的是默认情况下客户端获取邮件之后邮件是会从服务器端删除的。 Hotmail 也不是不支持 IMAP ,但是仅限移动设备,比如 iOS 和 Android 。据我所知,桌面软件支持 Hotmail 的 IMAP 的只有两个:一个是 Windows Live Mail ,另一个是 Windows 下的 Outlook 装上一个叫 Microsoft Office Outlook Hotmail Connector 的插件之后。其他客户端清一色只支持 POP3 收取 Hotmail 邮件,包括微软自家的 Outlook for Mac 。这是服务器端的限制,其原因是微软希望用户到网页中访问邮箱,这样它在 Hotmail 网页上放置的丑陋又占了很大面积广告才会更有机会被人看到。而 Gmail 的 IMAP 的支持则相当广泛, Windows Live Mail 完美支持,而讽刺的是不支持 Hotmail IMAP 的 Outlook for Mac 也完美支持 Gmail IMAP 。更不用说 Mac 系统里自带的 Apple Mail 。

事实上 Mac OS X 对 Google 服务的支持还要更进一步:在 Address Book 、 Mail 或者 iCal 中的任意一个软件里面配置了 Google 账户的话,另外两个立即也会自动配置好。 Windows Live 是绝对不会像受到这样的便利的。

我在2010年初刚开始用 Android 手机的时候,把手机通讯录从 Hotmail 转到了 Gmail ,但不是因为 Hotmail 难用,而是因为当时我的 Gmail 联系人还比较干净,而 Hotmail 则混杂了大量邮件和 Messenger 联系人。而 Live Calendar 的受支持程度也远不及 Google Calendar ,典型的是 iCal 的支持程度。所以在去年出现 Chrome 中的 bug 的时候,我也转到了 Google 。 Live Spaces 前年就转到了 WordPress 。现在 Hotmail 也转到了 Gmail 。那么我现在还在使用的 Windows Live 服务就只剩下 Messenger 和 SkyDrive 。其实这两个我用得也不多,在 Messenger 上基本只跟 Assam 聊,而 SkyDrive 也是偶尔修订几个 Office 文档。看来一个人从 Windows Live 整体搬到 Google 服务是一件不太难的事情,即使是像我这种深度用户。

我之所以迟迟没有行动,是因为我已经在太多的地方使用 Hotmail 邮箱注册或者留下联系方式了,而且旧的 Hotmail 邮件怎么转移到 Gmail 还是问题。但是,最近我发现邮箱的“自动转发”功能比我原来预想的效果好很多。本来我就打算原来在 Hotmail 的邮件就留在 Hotmail 吧,新的邮件再在 Gmail 里面整理。但是我试着用 Windows Live Mail 操做的时候,发现转移邮件是非常容易的事情,只需要在 Live Mail 里面选择邮件然后拖放就行了。虽然移动几千封邮件需要花很久的时间,但是中间不需要人工干预。

在使用了十年半的 Hotmail 以后,现在已经搬到 Gmail 两天了,感觉神清气爽。一大批封尘的优秀邮件客户端立刻可以发挥价值了,而且我对 Google 服务的未来充满信心。这是一次有长期回报的转变。

简单的流水账

今天下午,老关带我去了蛇口的一个捕鱼的码头。以前我自己很少在南山区转,而蛇口更是只来过几次。这个有趣的港口还是第一次见到。

IMG_0536

晚上终于见到了梅干的真人,一起吃了饭然后唱 K 。梅干果然是比较单纯,而且比想象中的更可爱和热情。她还带个朋友想让老关认识,但我看老关还不如直接追梅干。我原来还怕四个人见面以后没啥可聊的,然后气氛比较尴尬,但后来发现有梅干在的话完全不会出现这种情况。

回家的地铁果然有点悲剧。从唱 K 的地方走到地铁站还真是要将近二十分钟,到了站台已经过了23点了,而且坑爹的蛇口线这时候居然要等9分钟,这意味着我要转的另一条地铁肯定是赶不上末班车了。于是盘算着从路上交通到我家比较近的一站下。先是在景田下的,因为这站和下一站目测到我家的路程差不多。结果莲花路南侧的出口居然还没开通,于是就又等了10分钟,等到同一方向的下一班地铁坐了一站下车。出来以后我又走了几百米才走到可能能打到车的地方。其实我想就这么走到家的话可能也就十多分钟,不过还是等了几分钟打到一个车。最后到家的时候已经0点了。

夏令时结束意味着冬天的来临

在夏令时结束的时候,有一个小时是重叠的。具体地讲,就是今年11月6日的凌晨,当时钟走到1:59的时候,下一分钟又跳回到1:00。夏令时的积极意义在于节省人工照明所消耗的能源,因为早起一个小时往往不需要多开一个小时的灯,但是早睡一个小时却能少开灯一个小时。但是这样一来也会造成一些问题,比方说当你说11月6日1:30的时候会产生歧义。

一种解决方案是,把同一个地方的夏令时前后算成不同的时区。比方说,在非夏令时时段,美国大陆和加拿大西海岸的时区叫做“太平洋标准时间”(PST),而夏令时时段则叫做“太平洋夏令时时间”(PDT)。当我说2011年11月6日1:30的时候,加上 PST 或者 PDT 就能解除歧义了。只不过这两类时区只能在一年内的特定时间使用。

在计算机中,有一个更直接的解决方案。在很多场合,储存时间信息利用的是 Unix 时间戳:从世界标准时间1970年1月1日0:00起所经过的秒数。比方说,北京时间2011年11月11日11:11用 Unix 时间戳表示就是 1320981071 。用这种方法表示时间,与使用的时区无关,与是否使用夏令时无关,甚至与纪年法也无关。从某个特定时刻到另一个特定时刻经过的秒数是固定的,无论人们怎么称呼这两个时刻。


重叠一个小时并不是能经常遇到的事情。于是这给人造成一种幻觉:仿佛时间突然穿越到了一个小时之前。于是这让我想到了一些穿越到过去的问题。先不提回到过去的物理上的可能性,有人在逻辑上提出了质疑,比较典型的一个是:如果一个人返回到过去把自己的祖父杀掉了会怎样?按照因果关系,杀掉祖父相当于戳败了自己出生的必要条件,于是也不会有后来自己坐时光机回到过去杀掉祖父的事情。但问题是,这个人突然出现在本该不该他存在的时代,这本身就是一件不符合通常逻辑的事情。想象一个人从现在穿越到1900年1月1日0:00。在1899年12月31日的23:59:59还不存在这个人,过了一秒钟他突然出现了。这种现象能按照正常逻辑解释吗?所以,当人穿越到过去改变历史的时候,不能要求更改后的历史与更改前具有逻辑上的连贯性。

书写历史就像是录制磁带。当一个人穿越回过去的时候,就好像是把磁带倒到以前的某个位置,从那时起突然增加这样一个完整地拥有未来记忆的人,然后用新的内容抹掉原来录好的旧内容。新的内容不一定跟旧的有任何关系。对于这个人而言,因为他的记忆是连续的,所以从他的角度看,时间并没有断,他眼前的画面从21世纪突然跳到19世纪。而对于19世纪的其他人而言,他们会发现在空间中,有一片原本充满着空气分子的区域突然变成一个人。对他们而言时间也是连续的,除了凭空出现一个人这个异常的现象之外。从此以后,一切还自然而连贯地发展。比如,人们可能对这个不速之客进行研究,他带来一些21世纪才懂的科学技术,从而改变全球的科技发展路线。也可能他穿越到一个荒芜人烟的地方,并且掩饰自己从21世纪来的这样的事实,而其他人也未发现这个人所造成的当时无法解释的现象。他的影响力可能在短期内有限,但长期看由于蝴蝶效应,可能导致100年后的世界的状态跟原本的有很大不同,不过人们不知道应该将其归因于这个人。

上面这个想法有一个 bug ,那就是能量的正反馈。从未来穿越回过去的时候,是可以带去正能量的,那么不断地重复这个过程,可以创造无限大的能量。就像是把话筒接近扬声器时产生的啸叫那样。

那么是否可以把整个宇宙穿越回去呢?这样能量就可以不增不减了。就好像在录磁带的时候,你突然暂停写入数据,然后倒到原来的某个位置,接着从那个位置继续录制,而你将要写入的数据流跟暂停前是连贯的。这样,没有任何人会发现自己或者任何身外的其他物体有穿越回过去的痕迹,地球相对于太阳的位置也都完整地保留下来,所以冬天还是冬天。这也就是说,如果夏令时结束的时候,真的是全世界都向后倒退了一个小时,也没人会发现这一点。

说一件半年前的新闻。中国人在中俄边境售卖一种神奇的硬盘,它的标称容量是 500GB ,而且在当场测试的时候,在电脑上打开看的容量也是 500GB ,往里面复制大的文件也看起来能复制成功。但是当客户拿着硬盘拿回家复制电影的时候,再打开就只能播放最后5分钟左右的内容。这是因为,这个神奇的硬盘内部其实只是一个 128MB 的闪存盘,复制大文件的时候,当到达储存空间末尾时会回到开头循环写入。

这件事情让我想到,我们这个世界对应的“磁带”有可能也是只有5分钟的长度,每当到结尾的时候,磁头会立即跳到开头(或者不那么“立即”也没关系,因为对里面的人而言是觉察不到的)继续写入。你之所以记得24小时之前发生了什么,并不是因为在物理上真的有“24小时之前”这个时刻,而是因为你的大脑的“当前”状态中含有的记忆指示着有些事情是24小时之前发生的。

如果事实真是这样的,那有什么影响呢?答案是对现在的生活没有任何影响,除非你真的创造出能够穿越到过去的机器,然后发现没办法穿越到几分钟之前的世界。

时间及一切外部世界的存在完全依赖于人的主观感觉。这一切的意义,或许人类永远都无法解释。

我们迎风边走边叹气

今天下午的第二节课难得我去了一下,结果发现取消了。我就是不想这么早回去,这两天也莫名地烦躁,于是索性踩上单车就往北骑。今天不是骑单车的好时机,因为我背着很重的背包,而且车子也该打气了。不过我也不是为了去哪。这样一来,骑起来倒也不觉得累。

其实我大概是在寻找前一阵有一晚做的梦的感觉吧。骑着单车一直沿一个方向走,不知道自己能走多远,沿途的景物和颜色都在不断变化的感觉。

来回走了10迈多的路程。回来的时候严格遵照 Google Maps 的指示走的湖边,才发现这条长长的单车道要是在芝加哥的时候没骑过一次真是值得遗憾的事情。黄昏下的岸边一片金黄,浪的声音让人心情平静,偶尔几只海鸟飞过,零星地也能碰到几个人,仿佛回到了在黑海岸的奥伯丁杀小潮行蟹捡蟹腿的时光。

我猜我只是有点想回家了。

Windows 开发者预览版

下一代 Windows 的开发者预览版上周已经开放下载(地址见此文)。刚看到这个消息的时候,我惊讶于两件事情:一是居然无条件向公众开放下载,二是这个测试版来得比预想的早。不过转念一想,这两件事情都不值得惊讶。当年 Windows 7 的 Beta 版也是开放下载了,在这点上微软就表现出比 Windows Vista 年代高得多的诚意,所谓泄密什么的都是浮云,实际参与测试的人数和舆论影响才是王道。而现在也快该是时候出下一代 Windows 了,我们已经习惯了微软极为缓慢的产品更新周期和不断的跳票,偶尔正常一次反倒不习惯。而且,如果微软真心有意进军平板,那么就现在的形势看多早都不算过早。

Windows 7 当时八字还没一撇的时候,就有传言说 Windows 7 “全面为平板优化”,但最后实物出来以后令人失望:除了以前就有的 Tablet PC 触摸键盘和笔迹识别外,唯一的改进貌似只有窗口拖到屏幕边缘的大小调整以及 Jump List 可由手势出发。在我装上这个新的 Windows 开发者预览版以后,才感觉这才真是认真为平板做的系统,以至于 PC 都感觉被边缘化了。

我是在 Parallels for Mac 上安装的。整个过程没任何问题,只不过最后如果装为 Windows 7 设计的虚拟机辅助工具的时候会有问题。

Parallels Picture 3

第一次启动的画面很简洁,即使是这么一个黑底白字的画面,已经让人有了 Metro UI 的感觉:注重内容,拒绝无意义的修饰。

Parallels Picture 4

这个许可条例前面的说明很有喜感:“为了让律师们开心还是认真读读吧,不过放心等会儿没有测试。”在这一步的界面上看,整个设计彻底是 Metro UI ,很有 Windows Phone 的风格。

Parallels Picture 5

这个绿色让人眼前一亮。设置的第一步是为计算机命名。说明的文字很有亲和力。

Parallels Picture 6

第一次装,当然是要选 Customize 的。此处跳过一些页面,就是一些类似语言、键盘之类的选项。但最后一步比较关键:让你用 Windows Live ID 登录。

Parallels Picture 7

Parallels Picture 8_0

进去以后,第一个画面是这样的。事实上每次开机默认进的也都是这个 Start 面板。这个 Tiles 的界面像极了 Windows Phone ,连动画也是。

Parallels Picture 8_1

这个版本中就已经附带了大量 Metro UI 的应用。我想提一下下面那个滚动条:只有当我鼠标移动的时候才会出现。可以预料到,如果纯粹用触摸操作的话是不会出现的,如同 Windows Phone 那样。用不完整的内容提示右边还有更多内容,而不是多余的 UI 元素。

Parallels Picture 9

这是控制面板—— Metro UI 版只有部分选项,传统的控制面板还是可以访问的。

Parallels Picture 10

值得一提的是这个 Sync PC Settings 。理想状态下,我可以找到任何一台运行 Windows 8 的 PC ,然后用我的 Windows Live ID 登录,然后我的所有设置都会加载。

在开始面板按一下 Esc ,会回到传统的桌面。

Parallels Picture 11_0

看一下传说中的 Ribbon UI 文件管理器。有苹果主题博客发文嘲笑说微软就喜欢把所有东西全瘫在表面。他们或许不知道 Ribbon 是可以默认隐藏的,然后点以下选项卡浮动显示——比 Mac OS 聊胜于无的工具栏和顶部菜单好用得多。另外值得注意的是窗口以及右上角的三个按钮已经变方了——为了与 Metro UI 无违和感。而左下角的那个“开始”按钮点一下会回到前面的 Tiles 界面,也就是说已经看不到开始菜单了。虽然通过修改注册表可以恢复开始菜单,但是标准的设计中已经去掉了。不过这个开始按钮明显感觉很粗糙,正式版中应该会改进。

Parallels Picture 11_1

这个直接“在此处打开命令提示符”的功能我很喜欢,原来有很多插件实现的功能现在集成了。

Parallels Picture 12

这是传统的控制面板,没有太大的区别。但是 Windows Explorer 多出了一个“向上”的按钮。

Parallels Picture 14

这个开发者预览版自带的 Visual Studio ——不过重点是那两个黑色块。我真不知道是怎么出现的,有时毫无预兆就出现了。

好吧,让我们新建一个项目——

Parallels Picture 15

排在最前面的语言是 JavaScript ! JavaScript 过去何时有此等殊荣。

Parallels Picture 16

程序主界面的 HTML5 代码!亲切有木有!

Parallels Picture 17

WinJS 对象……看来 JavaScript 只要宿主够强大,潜力也无穷啊。

Parallels Picture 19

Store 都成 VS 的一个菜单了,是为了无缝发布到应用程序商店的。

这第一个默认生成的空项目,可惜我编译以后运行不成功,不知道什么原因。

按下 WinKey + L 锁定计算机,看到了下面的画面。

Parallels Picture 20

这在平板上非常合适。

想重新登录的时候,提示我输入密码:

Parallels Picture 22

我就奇怪说,我怎么不记得有过设置密码这一步呢。然后突然想起来,我是用 Windows Live ID 登录的,名字和头像都变成我在 Windows Live 上设置的了。

Parallels Picture 23

这是按 WinKey + F1 进入的帮助和支持页面。我没有见到其他入口。

Parallels Picture 24

IE 10 ,外观上看不出跟 IE9 有什么区别。而且 Metro UI 的 IE 还用不了。

Parallels Picture 25

我没有遇到那个需要重启的问题,但 Windows Explorer 崩溃了一次,错误报告的对话框占了整个屏幕宽度。

Parallels Picture 26

传说中的新版任务管理器。不仅实用而且一目了然。

Parallels Picture 27

听说新一代 Windows 的文件传输对话框有所改进,我还专门建了一堆比较大的空 BMP 测试了一下。

Parallels Picture 28

首先是文件名冲突的时候终于有这种灵活选择的对话框了。

Parallels Picture 29

进度对话框增加传输速度历史图表,而且来源和目标文件夹可以通过单击打开。关键是可以随时暂停。

最后一张:安装驱动的对话框。

Parallels Picture 32

话说貌似官方从头到尾都没管这个叫做 Windows 8 。我也感觉不应该这么叫。 Windows 7 之所以叫 7 并不是因为它的版本号是 7 (实际上是 6 ),而是因为 7 在西方是吉利的数字,但 8 就没有类似的作用了。而且,就这个开发者预览版来看,版本号仍然是6。

对 Metro UI 的大量运用说明微软对 Metro UI 有信心。 Metro UI 必须是一个值得肯定的创新,在世界都在被圆润的设计风格所大同的时候, Metro UI 反其道而行,使用有不亲和的风险的方形棱角设计,它是真的值得广泛应用到核心产品的设计,而不只是博取好感度的噱头。

Metro UI 的程序只有从应用程序商店安装,而微软对所有进驻商店的程序收取 30% 的回扣。然后又有消息称 Windows 8 定制的电脑无法安装除 Windows 外的其他操作系统(如 Linux )。总之, Windows 也是越来越封闭了。此前 Windows Mobile 6.5 到 Windows Phone 7 的转型就是从最开放的手机操作系统之一转向了跟 iOS 一样封闭。 Android 平板系统即将不开源。开源产品不断被商业公司收购。总之,这世界是变得越来越封闭。

当前给出的双界面方案还远称不上完善。 Metro UI 不能给 Windows 在传统 PC 上的使用造成障碍。比方说“开始”菜单消失这件事,就是很典型的一点。那个 Metro UI 对于鼠标操作而言没什么优势,更糟糕的是少了很多功能的入口。还有一些小地方比如文件管理器最好默认把 Ribbon 收起来。等着下一个测试版本。