写在宝宝三个月这天

我们家宝宝今天满三个月了,当爸爸的决定恢复大半年没有更新过的blog,跟小宝宝一起成长。

从灰灰怀宝宝到宝宝出生,再到现在三个月,似乎事情越来越多,多得没有心情去更新blog了,没有写游记,没有写跨年多盘点,没有写这些天看过的书和电影,也没有写这些天学到的新东西。实在对不起自己,颓废了。所幸没有写并非什么都没有做。终于还是在宝宝出生之前去温哥华吃了美食,去纽约来了一趟简单的城市之旅。书和电影都有不少更新,还玩到了一些有趣的新东西,有空慢慢再说。

这个月天气逐渐好起来,尽量每个周末都带小饼出去放风。虽然他出门基本上是不睁眼睛睡过去的,但是我们有照片为证。爸爸妈妈会带他去很多很多地方,带他看美丽的世界的:)

今天去Alki beach放风回来又去Redmond town center喝咖啡晒太阳,再把宝宝放回家然后出去买菜,直到晚上才可以enjoy一下自己的时间。忘了为什么跑到Youtube上去听李宗盛的MV,一首听完再换一首,越发上瘾。记得08 09年在微软实习的时候每天上班都会路过虹口足球场,可以看到门口的巨幅海报。那会儿纵贯线的演唱会很火,就想去听周华健和李宗盛,可惜舍不得花钱。没想到一晃这么多年过去了,不会再在乎一张演唱会的门票钱,却很难找到那时的冲动了。嗯,决定了,把这件事放到waiting list。ps:去年前年既然青春留不住的演唱会加州温哥华纽约都有过。

Share it if you like: https://www.youtube.com/playlist?list=PLDgLLnSBXR_OHzMTh1IGAzT_YYaUzgmun

说说参观的微软数据中心

上个月有机会参观了位于华盛顿州东部的微软数据中心。最直观的感受就是,先进的现代数据中心,已经不是一直停留在我脑海中那个“机房”的样子了;外貌改观的背后,是管理效率的巨大提升。

单是数据中心选址所考量的因素,就已经让我这个外行人不明觉厉。
前一段时间天津滨海新区发生爆炸,有新闻报道天津滨海爆炸致国家超算天津中心受损 “天河一号”关机。看到这样的新闻,让人不禁质疑超算中心这样重要的基础设施选址怎么如此草率。云计算时代的数据中心对国计民生的影响远超过超级计算机,无法想象未来的某一天,一个数据中心被突然炸掉会带来什么后果。从安全到角度来说,数据中心最好人烟稀少远离闹市,这样不太容易被意外所波及。可是又不能太远,否则距离带来的网络延迟会影响其应用。我参观的这个数据中心就位于这样恰到好处的位置:华盛顿州中东部,距离西北地区人口稠密的西雅图波特兰地区三四个小时车程,当地人口稀少周围一片荒漠。除了恰到好处的位置,当地还位于哥伦比亚河附近,阳光充足,常年干旱少雨,一派荒漠景象;哥伦比亚河从荒漠中穿过,水量充沛,造就了沿河的沙漠绿洲,也提供来充足的廉价电力。Google map的这张照片很好的反应了当地自然状况。
对数据中心来说,固定资产投资之外最大的成本就是电力支出,廉价的电力显然很有吸引力。据说数据中心的电价是1-2美分一度,实在是太便宜了,我们家的电价可是要1毛多的。除此以外,当地政府还提供税收方面的优惠政策。
如果你觉得考虑到上述种种因素来选址就算煞费苦心,那就错了。通常的数据中心都会考虑这些(我国政府领导拍脑袋订下来的除外)。要成为一个现代化的数据中心,还要走得更远。

大家都知道降低电力成本是核心,那么问题来了:除了找电价便宜的地方,我们还能做什么来降低电力成本呢?数据中心的电力消耗主要分成两部分,一部分是主机消耗的,比如主板,CPU,内存,硬盘的耗电;另一部分是制冷的耗电,比如风扇,空调。衡量数据中心效率有一个指标叫能效比,就是数据中心总耗电与主机耗电的比值。比如这个数据中心的耗能比是1.07,就意味着每用1.07度电,有1度都被主机消耗了,只有0.07度用于制冷。
在复旦读书的时候,有一年室友找了份兼职去逸夫楼的高性能计算中心值班,我陪着一起去了几次。当时印象特别深刻,机房里一排排机柜整齐摆放在,值班室也在大厅里,用玻璃墙和机柜隔开。机房里的空调永远是恒温25度,特别舒服,可惜有特别大多轰鸣声,无数的风扇在转。空调和风扇一起保证着机房的正常运行。
虽然人类已经想了各种办法来提高空调和风扇的制冷效率,但是想想就知道这样的数据中心效率不会太高。要保证室内的恒温,制冷的目标不是主机而是整个室内空间,这其实是巨大的浪费。另外,为什么一定要让压缩机拼命运行来保证恒温呢,与其把热空气温度降下来,不如直接把热空气排走换来冷空气。抽气扇可比压缩机的效率高得多。这个数据中心正是实践了这样的想法:首先不修建实体建筑的“机房”,所有的主机就存放走一个个集装箱一样的空间里边,集装箱直接暴露在外界。这不但节省了没必要的建筑成本,也不必煞费苦心为一个巨大的建筑物保持恒温。然后,在每个“集装箱”内部,没有空调也没有风扇,集装箱把干燥的空气从一侧吸进来,混合冷水来增加空气到湿度,然后把混合后的空气向整排的主机吹去;空气穿过主机带走热量,再被另一侧的抽气扇抽出来排到集装箱外面。冷空气混合了水汽之后比热容增加,吸热能力很好;而被主机加热的空气不需要再花大力气制冷,直接排出去就是了。

这是数据中心的卫星图,实际样子请自行脑补。
Screen Shot 2015-09-13 at 12.02.26 AM
为了满足这样的设计要求,数据中心选在了气候干燥年均日照时间很长的荒漠地带。由于气候干燥,抽气扇吸进来的空气湿度极低,特别适合混合冷水产生湿冷空气。如果是在潮湿闷热的热带地区肯定是不行的,吸进来的空气已经湿度极大温度很高了,指望它继续吸热带走主机产生的热量是不太容易了。

除了能源效率现代化的数据中心还需要极高的运营效率。
这里管理着几十万台主机,即使每台主机的可靠性都在99%以上,平均下来每天出现百十台的故障机还是很平常的事儿。如果每台故障机都要立即修复的话,那雇佣上百人每天在各个机架上爬上爬下拆机器装机器恐怕也忙不过来。所以数据中心通常都有专门设计的软件系统来应对硬件故障。当某台主机发生故障时,可以很快的把应用程序迁移到另外的主机上继续运行,这样维修人员就不必立即去修复每一台故障机。另一方面,维修人员会监测各个机架,挑选故障机数量最多的机架做修复。一次修一批比东修一台西修一台要划算的多。这样的设计在简化了安保的设计。由于主机全部都在一个个狭小的集装箱内,而非与进进出出的工作人员共处同一建筑物内,因此就免除了一道道安全门扫描仪的设置,只要用密码锁把集装箱门锁好再装上监控摄像头就好了,不用担心去数据中心送外卖的顺便溜进机房偷数据啦。其实即使真的溜进机房偷走了一块硬盘也没什么大不了的,现在的软件系统都是分布式的文件系统,一块单独的硬盘上只是存储了某些文件的某些部分而已,如果不知道这些部分是如何组合在一起的,根本就没有用。
由于采用了这些设计,整个数据中心只有二三十个人负责日常运行,降低了人力成本。

每次看到工程师对不断追求完美,对事物做近乎极致的例子,敬仰之情就有如滔滔江水。
其实我参观的这个数据中心最多也只是代表了当代的先进技术而已,离黑科技还差得远。据说IT巨头们已经开始考虑更疯狂多想法,比如把数据中心建在海里用海水制冷,或者修在两极地区等等。期待这些黑科技为整个行业带来更大的变革。

看到这样的数据中心,我想应该没有理由去质疑云计算的未来。几十万台机器,只用二三十个人管理,能源利用效率极高,而电费又只有一两美分;如果把这几十万台机器交给每个大大小小大企业自己去维护,又需要花多少成本和人力?两者孰优孰劣不言自明。只是凡事都不会一蹴而就,新事物到来的时候总会有各种质疑的声音。

在Apache+Django下启用客户端证书认证

这两天在折腾这个问题,google中英文的介绍都只提到一部分,所以决定写一篇blog讲一下整个配置过程,全当做笔记。

SSL连接(HTTPS)是普遍使用的安全的HTTP连接方式,它通过证书认证的方式来保证访问安全。通常的方式是:在服务器端设置一张证书,证书由具有公信力的数字证书认证机构(CA)办法给网站对应的域名;用户访问网站的时候浏览器首先会检查证书,既检查证书的合法性(签发机构可靠),也检查证书的对象和网站域名是否匹配(比如证书发给www.foo.com但是用的证书是发给www.bar.com的,那证书很可能是偷来的^^)。如果检查出错,浏览器会询问用户是否继续访问,即使继续访问也会在浏览器地址栏显示一个警告。举个例子,12306购票网站的证书就是它们自己生成的,不是CA颁发的,所以访问12306就会看到
Screen Shot 2015-07-15 at 5.24.03 PM

除了认证访问站点的合法性,这张证书还会用来对传输的数据进行加密,这样攻击者就没法通过网络抓包的方式轻易得到用户的账户密码等敏感信息。--虽然12306到证书是自己签的,仍然可以用来加密传输数据。

除了上述服务器端证书认证以外,有时候还会有额外的一步称为客户端证书认证。如果某个站点或某些URL并不希望所有的人访问,可以在建立连接的时候要求客户端也提供证书,只有证书在白名单之列的客户才可以建立连接。这种认证方法在前端并不常用,因为网站给每个注册用户发一张证书很困难,用户保存这张证书也很麻烦。但是在后端比较常用,比如网站的web服务器和后台其他服务器之间进行数据通信的时候。

现在就假设在Apache上运行了一个Django的虚拟站点,这个站点提供一些Rest API,我们只希望拥有证书的客户端能够调用这些Rest API,不对外开放。
设置过程分为以下几步:

1. 生成证书
对于服务器端证书,通常需要从CA去申请,申请的证书和域名是绑定的。如果服务器只是内部使用,并不暴露在Internet下供大家访问,也可以自己生成。客户端证书可以自己生成,并只颁发给信任的客户端使用。因此这里略去向CA申请的过程,只讲怎么自己生成:

a.生成一个host key

b.用这个host key创建一个证书申请

c.由前两步得到的key和证书申请产生一张证书

二三步也可以合成一个命令

用同样的方法可以生成另一张客户端证书。如果情况再稍微复杂一点,你有多个客户并且需要一一区分它们,那需要给每个客户单独生成一张证书。这时通常的做法是:先生成一张自己的CA证书(就是自己做自己的权威机构),然后再用这张CA证书分别生成多张不同的客户端证书。关于这一点,我看到一篇很好的reference,可以参考。

2. 在Apache上配置使用SSL
先贴出一个完整的虚拟站点配置文件

a.服务器端SSL
打开服务器端SSL主要由这几行配置指定:

b.客户端SSL
客户端SSL认证主要由这几行配置指定:

其中SSLVerifyDepth的含义是在证书链中检查的深度。证书是层层签发的,最顶层是CA,因为这里使用的证书都是直接由CA签发,因此是1就可以了。

c.设置Apache把证书信息传给Django应用程序
通常除了在Apache上设置,我们很可能还需要在Django应用程序里根据证书信息做更细致多处理。例如根据证书签名判断访问来自哪个客户,每个客户可能会有不同的权限,看到不同的东西。有两种方案:一个是通过SSLOptions +StdEnvVars的设置把证书信息放进环境变量,再在Apache调用wsgi.py的时候传递过去。这个方案在网上看到有人提到,但是我不知道怎么在wsgi.py中修改request object;如果通过全局变量或者环境变量的方法传递信息,那只能处理单个证书的情形,因为全局变量只能hold一份信息;另一个方案是通过RequestHeader的设置把证书信息加到HTTP request header中去。这个方案经过尝试很好用,示例如下:
在view收到post请求的时候,通过检查存放在request.META中的header信息就可以知道证书是颁发给谁的,之后就可以针对不同的人做不同的响应。

3. 浏览器访问
当Apache,Django设置好之后,就可以通过浏览器进行访问了。首先需要在客户端的电脑上安装客户端证书,然后在访问的时候浏览器会弹出窗口,这时选择对应的证书就可以打开网站了。例如,在Chrome中,选择settings-show advanced settings就可以看到
Screen Shot 2015-07-15 at 6.43.55 PM
然后在访问的时候选择刚才安装的证书
Screen Shot 2015-07-15 at 6.44.57 PM

安装证书的时候需要提供同时包含公钥和私钥的文件,pfx或者p12格式。之前我们提到生成证书的过程生成的是独立的公钥和私钥文件。可以通过以下命令做转换

4.Python访问需要客户端证书认证的Rest API
Python跟http相关的模块比较混乱, urllib2, httplib2, requests, pycurl都可以用来访问RestAPI,但是使用起来的复杂程度各不相同。有兴趣可以参考这篇blog,它对这几个模块访问RestAPI的方式做了详细的比较。总之,结论是requests用起来很方面。
requests天然提供对客户端证书认证的支持,直接这发送请求到时候带上证书的路径作为参数就可以:

上面的cert参数可以是一个指向pem格式证书的字符串,也可以是一个tuple,分别包含cert和key的路径。
requests的一个缺点是它只支持pem格式的证书(不包含密码),但是通常我们得到的都是倒出时包含密码的证书,比如pfx。把pem放在机器里看起来不是很安全。Github上这个open issue也有讨论。
可以通过以下命令把pfx转成pem格式:

这就是end-to-end全过程,大功告成。

失控读后感

最近终于有耐心把厚厚一本失控读完了。大概两年前就买来来,而更早之前就听说来这本神作;无奈分量太足,每读一章又都觉得有很多思考,所以一直没有读下去。
我承认,即使认真读完一遍我脑海里仍然没有一个关于这本书的清晰脉络,但是即便只记得某些章节某些发人深思的闪光点,也已经收获很多了。随便写写现在还记得的:

蜂巢思维
这恐怕是网上传说最多的部分了,因为前几章就讲到了:) 确实是很神奇的现象,单个蜜蜂只有简单的行为,但是一群蜜蜂靠着简单的交互和共同的行动就构成来复杂的,看起来更加智能的蜂巢。
其实人类社会也一样,尤其是现今社会分工越来越细多时代,每个人多能力似乎都很渺小,但是当你把人类作为整体来看的话,就要为其能力所震撼了。我虽然已经做了很多年程序员,也参与过windows的开发,但是仍然为操作系统这样的人类巨作感到惊奇;现在无论是哪个程序员个人,也无法说清楚操作系统的每个细节了,而缺来任何一个细节操作系统都是不完整对;神奇的是,一堆人的协作之下产生了一个任何个人都无法想象的巨大工程。
在物联网如火如荼的今天,我们可以想象一下,任何一个单个的物体被联入网络并没有什么了不起,但是当无数的物体被接入,并且物体和物体之间可以进行交流(哪怕是很简单大交流)的时候,谁敢说没有更伟大多东西“涌现”出来呢。

构造一个生态系统
KK说,即使我们知道了构成一个生态系统的全部元素,也未必就能重新构造它,因为各个元素加入整个生态系统的时机和顺序很重要,另有一些元素在现在的生态系统中已经消失了,但是当时如果没有它,也就不可能有现在的生态系统。很神奇是吗。 时机和顺序很重要,所以不要妄图简单的解构别人再模仿,因为你很可能不在何时的时机,也可能并不了解各个要素的先来后到。

蝴蝶效应
蝴蝶效应因为一部电影已经尽人皆知了,在混沌的条件下,初始条件的一点微小改变也会引起结果的巨大不同。我理解的混沌,就是高维空间,有多个因素共同决定最终结果的情形。

达尔文进化和拉马克进化
我对这两个词从初中时候就记忆犹新来,当时就在想达尔文理论真的对吗,一堆遗传基因就靠随机变换真的能一步步从单细胞进化成高智能生物吗。生物书上提到了拉马克进化,但是直接说它是错的,因为如果它对了就意味着“意识可以决定物质”,这是有违马克思主义理论基础的。KK提到了两种进化的共同作用,拉马克进化靠着生物的后天学习,用进废退,一代代把优势积累下去,而细胞内的某种化学作用又会把这种后天学习的能力转化为遗传基因的形式固定下来。在拉马克进化的理论下,人类一代代不懈努力的学习研究才有意义,否则每天吃饱了等着基因变异就好了,再努力也是白努力。其实意识也就是某一些相互作用的物质而已,不存在意识决定物质。

计算机上的进化
KK写书的年代大概是人工智能如火如荼的年代,所以才会提到很多人通过计算机的方法来模拟生物进化,试图通过计算机的演算获得智能。后来人工智能消沉了很久,最近这些年随着计算能力的提高又逐渐火了起来。
以我个人的理解,我不相信通过计算机模拟一些DNA的随机变异和重组就能获得智能,这显然是痴人说梦。人类的智能绝不仅仅是靠DNA来决定的,DNA最多保证了人类有获得智能的物质基础;而且,其实DNA是这些物质基础的哈希;即使能够通过计算机的演算让DNA获得进化,但是仍然无法从哈希值推断其原本的样子。
近些年人工智能的从新火起来,主要是因为计算机的硬件能力有了极大的提高,在此基础上人们有能力实现一些二三十年前不敢想象的算法。但是这些算法跟智能还差的很远,或者说,可能这条路就是错误的,南辕北辙。我们试图用计算机产生一种能够自我学习自我进化的能力来为人类服务,但是具有这种能力的东西一旦产生就不受控制,又怎么可能在实验室产生呢。
我更愿意去设想,新的智能是在无数的设备接入了互联网,互相之间有着紧密沟通之后莫名其妙“涌现”出来的。其实细想一下,自从有来互联网以后,人类作为生物的能力又大大的进化了,当更多的人和物被连进来之后,或许会有更加神奇的事情发生。

共同进化,协同控制
进化的过程不是单个物种的进化,而是整个生态环境中各个物种一起的进化。在未来,这个生态环境并不仅仅是生物的,还包括机器的。人和机器也会相互协同,一起进化。或许人类只是碳基生物的终点已经硅基生物的起点而已,进化不会到了人类这一步就停止。

热力学第二定律和进化
热力学第二定律让人对宇宙的终极感到一丝悲哀,难道生命从氨基酸,单细胞开始,历经万千载,最终的最终,只能和整个宇宙一起归于一片死一般的寂静中去么
KK提到了生命的第二法则:上升流,它与热力学第二定律相反,自已开始就在无序中构建有序,并自我复制自我学习自我壮大,直到充满整个宇宙。
那么,到底谁才是对的呢

PS:先想到这么多。很有意思的一本书,发人深省,尤其是这互联网,物联网如火如荼的今天。

烤茄子失败了

今天照着http://www.meishij.net/zuofa/depukaoxiangshipuzhikaoqiezi.html做了一道烤茄子,遭遇了厨艺进步道路上的重大挫折。烤了20分钟出来的茄子仍然半生不熟,而且完全没有软嫩入味的感觉。按着步骤用蒜泥,酱油,香油调了调味汁涂抹在茄子上,现在回想起来应该是油太少的缘故,所以烤出来茄子干瘪瘪的不水嫩;勉强吃了两口就扔了。严重打击自信,特此记录。

海外用户观看视频的正确姿势

刚才看到友人前几天写的一篇博文:海外用户观看美剧的正确姿势,突然就想哈哈大笑。原来大家都在想一样的事情。

先借一张图来说一下这个思路:在东亚找一台云主机下载,然后上传到GoogleDrive,当然也可以是OneDrive或者AzureStorage, whatever。然后在家里通过GoogleDrive/OneDrive同步,或者链接到AzureStorage访问。
downloadx800_jpg_pagespeed_ce_OUNfE-4oh7

友人在瑞士,据说当地法律并不限制个人用户下载盗版内容,所以这个解决方案没什么问题;可是放到其他大多数资本主义国家可能就不太行了。因为上述操作实际上仍然涉嫌通过云存储上传/下载盗版内容。当然上传的行为发生在东亚某地,所以可能没有法律限制,但是下载行为却真实发生在腐朽的资本主义境内。

而我最近考虑的另一个类似思路是:在东亚某主机上把下载的内容文件分割成很多碎片,每个碎片都是一段没实际意义的比特流,然后再把各个碎片分布上传到不同的网络存储上。这样不存在从任何地方上传或者下载盗版内容的操作,因为上传和下载的都只是一段比特流而已。只有自己知道具体的算法来分割和组合这些碎片。只有这个算法本身是属于盗版的,不过获得这个算法的过程发生于东亚的某台云主机上。
其实跟p2p软件的思路很像:p2p软件的每段比特流下载都不是完整意义的盗版。可是p2p在传播比特流的同时传播了组合比特流的算法,所以是非法的。
有版权方面的专家提供点专业意见么

ThinkPad X1的可怕体验

从06年买第一台笔记本开始,就逐渐成为了笔记本的重度用户,家里一直都没有台式机了。在移动终端日渐发达的今天,如果在家大多数时候仍然习惯选择使用笔记本。

我本来也不是数码产品的重度粉丝,没什么好说的。无奈前两周从公司领了一台X1 Carbon Gen2回来,在度过了不适应到两周之后就突然挂掉了,要换主板至今还在等零件——顿时对ThinkPad失望到极点。

X1之前先是用了很久的X220 Tablet,除了觉得Tablet这个特性基本无用之外,还是非常喜欢的。传统的ThinkPad键盘,传统的小红点和鼠标左右键都特别顺手;质量也没的说,特别皮实耐用。然后自家买了一台X230来用,性能质量也都没有问题,可惜键盘换成了巧克力式的,手感略差。这台230是机械硬盘,用起来一度觉得很崩溃,直到有一天换了SSD之后才发现它也可以如此流畅。

然后就是X1了,拿到手的第一天就很崩溃:

  • 小红点手感变差。看上去很劣质的样子,似乎随便摇几下就会掉下来。机械式的左右键取消了,变成一块儿更大面积的触控板——我原来就是直接把触控板禁用的。
  • 大小写切换键CapsLock不见了,那个位置被两个个头很小的Home/End取代。想要输入大写字母有两个方法:按Shift+字母组合——我知道有人很习惯这个,可是我一点也不喜欢;或者快速双击Shift键,这时候Shift键上会有一个小LED灯亮起,表示切换到大写——凭什么要我双击。
  • 跟随而来的另一个不便就是Home/End被挪到了CapsLock到位置,我写code的时候经常用的两个键就这样突然从右手位变到了左手位,还缩小了很多。于是错误的情况经常发生。
  • 最上面一排功能键F1-F12连物理键都没有了,变成了一排触控点,而且可以切换,一会儿是控制音量亮度,一会儿是打开麦克风,一会儿又变回了F1-F12——尼玛我debug的时候一不小心屏幕就暗得看不见了,这是什么体验。
  • 数字1左边的~键被挪到了右下角,那个位置成了Esc。。。其实不是什么大事儿,可是我天天要输好多遍的password里边偏偏有个~,在一天输错了数次密码之后,我只好选择改密码。

说来说去发现其实就是在吐槽键盘。对大多数笔记本来说,性能都不是大事儿:差异无非是键盘体验,重量,续航,屏幕。Intel推出超极本之后重量不是大事儿,而windows笔记本的续航都不怎么样;至于屏幕嘛,那就继续吐槽一下这个高分屏体验吧。
确切的说这不是X1的错,所有的windows笔记本上高分屏体验都很烂。我一直不太在意屏幕,1366×900也照样用得不亦乐乎,直到拿到X1看到所有的图标都变得咪咪小,才恍然大悟原来这就是高分屏啊。像小白一样去百度知道学习如何放大显示。尽管放大之后系统本身和微软的主流程序都可以基本正常使用了,但是仍然有那么些想死的时候:

  • 比如远程到另一台电脑之后,远程桌面上的图标忽然变得咪咪小,不能放大。
  • 比如截屏之后粘到outlook的邮件里,我擦怎么突然图片变得巨大而模糊来——我猜可能是outlook放大显示的问题,可是我真的不知道别人收到邮件以后会看到什么样的图片。
  • 比如打开某些非微软多程序的时候,要么死活不能放大,要么放大完丑得不想再看到它。这其实也不完全是微软的错,为了兼容各种原来的应用,高分屏没办法做到完美体验。可是我是用户,我干嘛要理解微软的苦衷呢。用了Retina的MacBook Pro,才知道什么是完美的屏幕,舒服的让人不能自拔。
  • 最后不得不提一下品质。其实我是不太相信品质这个词的,大家的笔记本都是一样的流水线下来的东西,能有多大差别的,我当年买过低端的明基本,戴尔本,东芝本,都用得好好的没出过任何状况。可惜这台X1从一开始就觉得不太好,系统稍微忙一点风扇就开始疯了一样的响;有时候已经sleep了还会莫名其妙的风扇狂转;用了两周之后就彻底崩溃进不了系统了,IT也没告诉我具体原因,只说要换主板了。这次我终于相信品质是有差别的,或许X1 Gen2的设计,尤其是散热方面是有缺陷的。

    既然提到了MacBook Pro,就顺便比较一下:重量虽然比Air重很多,但是男士用起来完全没有问题,仍然觉得很便携;续航没有10小时也有7,8小时,没有具体计算过但是很少为没电发愁,可以专心使用一整天是件很开心的事儿;屏幕如上所述;键盘手感略差,不如巧克力式的ThinkPad键盘,感觉主要是键程短,更不如X220之前点传统ThinkPad键盘。至于苹果的系统,比windows难用很多;好在现在的应用大都是基于web的,不太关os的事情。

    吐槽完毕。总而言之,怀念当年ThinkPad带来的美好体验,终于被Lenovo折腾得差不多了。所谓对创新就是三天两头把键盘的样式布局变一变,而且越变越差,把这些最经典多东西统统变没了。如果不是工作原因,我已经基本不需要使用windows了,Mac本上有非常好的体验。如果说windows笔记本还有什么希望的话,我觉得已经不在ThinkPad而在surface了。在商店里数次把玩surface都感觉不错,完美对移动办公选择。希望surface 4会进一步改进,到时候入手一台继续比较。至于ThinkPad,就把这些年来的美好体验当作对经典的记忆吧。