杂文

馊饭

他背井离乡,只身来到大城市,在一家快餐店打工。每天早上将做好的饭菜分装打包,中午营业时卖给顾客,简单而乏味的工作,至少大多数时候如此。

有一天,有个女孩拿着一盒刚吃了一口的盒饭跑来柜台,她说这饭馊了。

所有的盒饭都是他一个小时前刚刚包装的,每一盒他都有认真检查过,他坚持这饭绝对没有馊,更何况现在也完全闻不出馊味。

可她不依不饶,一定要换一盒新的,最后她如愿了。

按照店里的规定,已经拆开被退回的盒饭必须倒掉,可他又不甘心。这么好的饭菜都要倒掉,而他每天中午还在吃昨夜的剩菜。而且,他坚持自己的工作没有疏漏。

城里人嘴巴也太刁了。

一时气盛,他选择了跟老板抱怨。

结果连老板都不认为这饭有问题。老板说,也许有些人的嘴巴就是特别奇怪吧,这饭倒掉也确实挺可惜的,以后再碰到这样的事,如果你不嫌弃的话,就当自己的免费午饭吧。

他怀着矛盾的心情接受了老板的好意。虽然偶尔能免费吃到这么好的午饭,可对耿直的他来说,被人质疑工作不负责的滋味真的不好受。

而那个嘴巴特刁的女孩,每天都会来买午饭,而且隔三差五的就会跑来跟他投诉说饭有问题,而他从来就没有一次同意过她的说法。但他还是坚持忍住了,每一次都一脸抱歉地帮她换一盒新的,然后怀着苦涩的心情自己灌下那盒盒饭。

直到有一天,刚好在店里检查损坏设备的老板看到了这一幕。那天下班后,老板告诉他说,那个女孩以前也在这家店干过。而且,当时大家还经常笑话她连饭菜是否馊掉都分辨不出。

我为什么不讨厌QQ?

/* 前言:博客好久没更新文章了,难得想要起笔居然是写这么个话题,我自己都有点囧……不过说实话这篇文我很久就想写了,早在3Q大战之前就一直有这个想法,但是一直没动笔。3Q大战时特有这冲动想写,但一时忙(忙着打游戏呢)也就忘了,今天偶然和朋友聊到这个问题,想趁热打铁写下来。 */

本文只讲个人喜好和客观事实,不打算主观划定优劣,青菜萝卜各有所好,欢迎符合主题的讨论,喷子自重(虽然我这里很少有人来不过生活在喷子的国度总让我心里不踏实)

我个人不能算是个Geek,作为个半吊子程序员(对PHP、C#、Python、Ruby、C都略有接触但仅仅停留在接触)和 HTML/CSS Developer,我顶多算是偶尔跟一些国内外的Geek、Geek爱用的东西打打交道(比如在Debian下搭搭开发环境啥的)。

关于IM,在PC/Windows平台上我是QQ、MSN的老用户了,同时也是Gtalk、YIM(Yahoo Messenger)、Skype(仅限于文字聊天)的低级用户;在移动平台上我是Kakaotalk、Whatsapp、Kik、Hanashi、Talkbox、Huddle(G+自带那个)的低级用户。排除移动平台的IM不说(他们的定位和PC/Windows上的IM不同),在PC平台上的几个IM里,如果让我按照自己的喜爱程度排名,我会选择 QQ > MSN > Gtalk > Skype(文字聊天) > YIM。是的,在这些IM中我是最喜欢用QQ的(再次强调是PC/Windows版)。另外还要强调一点,这个喜欢与否是排除用户群体来说的,“我很多朋友都用QQ而在别的IM上没人”这个理由,在我看来只能成为“用QQ的理由”,而不能当作“喜欢QQ”的理由

据我所知,在Geek和准Geek圈子里是有很多人非常非常讨厌QQ的,原因很多,虽然在我所了解的范围内看来有一些比较牵强。所以这些我放后面逐个穿插着来说,先说说为什么我会喜欢QQ。

首先是功能。这一点是昨晚跟 @Shyc2001 聊到用户体验的问题时谈到的,所以先来说这个。

QQ的用户体验,虽然我觉得还不至于如一些人所说的“极差”,但确实不咋样。但是我认为有一个很重要的问题他们没有意识到,或者说被有意回避了,那就是功能和用户体验的平衡。功能和用户体验并没有直接的冲突,但是在一些情况下,功能变多确实会导致用户体验的下降。举一个例子来说:一旦你把某个功能加入了产品,那么你就必须保证用户在需要它的情况下可以方便地找到它;而如果你把它们全都堆在显眼的位置,那我必须说视觉效果也是用户体验非常重要的一部分,并且堆了一定数量之后也未必真的就容易找了,具体后果可参考任意中国的Gov官方网站。当然,上述只是两者之间复杂的互相影响互相牵制的关系中的一小部分而已。

而功能和用户体验,我认为这是一个“椟”和“珠”的关系。在“椟”的差距巨大而“珠”差距可以接受的情况下,我们会选择一个“椟”更好的产品,但是作为一个产品本身,“珠”才是最重要的本质。所以我先来说下“珠”的问题,待会儿再回过来说“椟”。

我之所以喜欢QQ的最重要(也可能是仅有)的两个原因就是它完善的群功能和内联贴图功能。注意前面我强调出来的两个词,我之所以以让文章视觉效果打折扣为代价把他们强调出来是有理由的,之前碰到过很多人跟我说“MSN也能贴图啊”、“Gtalk也能群聊啊”之类的,但是都不符合这两个关键字。(还有一些功能相关的后面放在用户体验那一块里说)

// 用户才是功能的选择者,一辈子都不光明正大地和同学来往(不需要班级群)、不玩游戏(不需要游戏群)、和同事总是敌对关系(不需要Team群)、总是有耐心等待邮件同时总是一想到对方可能错过你的消息就吃不下睡不着的人可以跳过这一部分。这段话并非贬义,特定的生活条件下确实有不少这样的人。

可以通过对比来说明我有多重视这两个功能。先来说群功能,我使用QQ时超过99%(是的,我可以很负责地说这个数字只会偏小不会偏大)的时间、接收文字、发送文字都发生在群里,首先我要说的是“群”和“多人聊天”完全是两码事,所以请不要拿Gtalk的多人聊天来说事。在我用过的PC/Windows平台的IM中,QQ、MSN、Skype都有官方群功能(Gtalk有山寨群),那么来稍微对比一下。

// 群-MSN

MSN是很晚才加入官方群功能的,直至今日一些老版本的MSN依旧不支持群,几乎所有Android菜场里找得到的客户端都不支持群(近期手机系统我只用过Android),甚至包括官方的Web版MSN也不支持群。

前些年,有些公司通过一些第三方服务器的手段来实现了MSN的非官方群功能(Gtalk下也有),然而这些群普遍广告泛滥(毕竟他们是需要盈利的),与客户端的集成性能很差,只能通过现有的功能去模拟,比如MSN群用震动功能呼叫控制面板,然后弹出网页或者用命令行来管理群(不然怎么办?反编译MSN?),另外其实现方式是通过一个第三方服务器上的BOT来自动转发消息给其他对应联系人,第三方托管服务器还存在稳定性问题、速度问题、安全性问题等等其他隐患,因此这一条路只能算是临时的应急措施,凑合下可以,当真用不行。

而MSN的官方群功能怎样呢?除了前面提到的软件支持问题外,实际上就算官方支持的客户端稳定性也不好,经常会发生群明明有人看起来却离线的问题,需要用任务管理器强制结束wlcomm程序来强刷解决。然后在群内无法使用一些高级聊天功能,比如贴图(不说内联贴图了,什么图都不能贴),如果我要在MSN群里贴图怎么办呢?首先自己找一个截屏工具(网上应该很多,Win7自带一个不过不好用),截图然后找个图床上传,我喜欢min.us,然后把地址复制下来,再贴给对方,而且效果也不是内联的。另外值得一提的是:MSN群有群空间,可以上传照片和文件,虽然用网盘需要单独开个浏览器很麻烦,但是至少是有了,而且空间还比QQ群的要大,这方面可以认为是不比QQ差太多。

// 群-Skype

然后再来看看Skype,其实我觉得严格来说Skype并没有和MSN、QQ对比的义务,它的定位不同。Skype本质上是个网络电话的软件,文字聊天只是附带品。这个附带品也确实有附带品的样子,其功能基本上和Gtalk这个轻量级IM没有什么区别,甚至连更改文字字体和颜色这种基本的个性化功能都没有,一眼望去一片白底黑字,还得去看用户名(Geek往往会非常受不了这些忽大忽小时红时蓝的文字,而个性化对其他一些用户来说非常非常重要。比如对我来说,我会在Photoshop里精心挑选字体颜色,对于字体和字号的选择也非常谨慎,我认为这一方面是自己审美观的最直接体现,同时也是自己实时动态的一种,如最近喜欢橘红色胜过蓝色,明天可能不一样了。同时这还造就了另一种现象——QQ用户往往会首先根据说话者的字体、字号、颜色来判断这人是谁,而不是用户名,这让一帮Geek死活无法理解),顺便一提,MSN想把一个比较精确的颜色指定为字体颜色需要自己动手修改注册表,另外MSN下不能修改自己的字号,只能修改整个聊天界面的字号。

受这一客观条件的影响,事实上Skype的群跟多人聊天并没多大区别。除了个性化以外,相对MSN来说,好处是可以直接在群里群发文件了,至于图片……按Ctrl-V贴上去后你会发现变成群发一个图片文件了……

// 内联贴图

内联贴图其实只是贴图的一种方式,并不是说它就比其他的贴图方式要好,各种方法都各有所长,只是我最喜欢这个方式而已。还是拿桌面上的QQ、MSN、Skype来做比较,因为他们刚好是3种方式的典型。

内联的贴图方式好处包括:即时性强、上下文关联性强、浏览方便、时间精确。主要的缺点在于要实现这些优点对于客观条件(网速等)的要求较高,如果实现不了那就一无是处了。另外QQ在这方面的实现本身还有一个额外的缺点——不带确认。

来随便举个实例,教一个不是很会电脑的同学在Win7下更改驱动器盘符。那最后显示在聊天窗口里的顺序应该是这样的:

  1. 右键计算机,点管理
  2. [一张右键菜单的截图,鼠标指在管理上]
  3. 左边树里找磁盘管理
  4. [一张左边菜单树选中磁盘管理的截图]
  5. 在右下角找到你要的盘
  6. [右键周围大致图样+右键菜单截图]
  7. 等等……

在MSN里是这样的:

  1. 右键计算机,点管理
  2. 左边树里找磁盘管理
  3. 在右下角找到你要的盘
  4. 等等……
  5. 画面右边一个单独的窗口,里面一堆没顺序的图片……

在Skype里是这样的:

  1. 右键计算机,点管理
  2. xxx发送文件:剪贴板1.BMP
  3. 左边树里找磁盘管理
  4. xxx发送文件:剪贴板2.BMP
  5. 在右下角找到你要的盘
  6. xxx发送文件:剪贴板3.BMP
  7. 等等……

而在Gtalk里是这样的:

  1. 右键计算机,点管理
  2. http://min.us/xxxxxxxxx
  3. 左边树里找磁盘管理
  4. http://min.us/xxxxxxxxx
  5. 在右下角找到你要的盘
  6. http://min.us/xxxxxxxxx
  7. 等等……

再附带一个用法,大家都知道很多QQ用户喜欢发表情图,相比MSN的表情图,QQ的表情可以很大,而如果今天偶然发现一张图很适合当表情怎么办?打开表情列表,添加表情,浏览到那张图,添加,确定,然后贴表情?NO!直接贴图,然后对着贴出去的图右键→保存为表情……

QQ贴图的缺点是什么?首先是不带确认。我想大多数QQ用户都说过类似“叉烧”,“没出来”,“图叉了”之类的话吧?为啥要说?因为你不说对方不知道你没看到……QQ发图是不带确认的,发图的人根本不知道对方是否能收到图片,而如果对方没收到,他也搞不清楚是发图的人网络不好,还是收图的人网络不好,还是疼讯服务器大姨妈。这一方面MSN从来就做得非常出色,从早期把图片当文件发送时就有进度条,现在依然有。

还有什么缺点?还是想像一下刚才的场景:

  1. 右键计算机,点管理
  2. 左边树里找磁盘管理
  3. 在右下角找到你要的盘
  4. [一张右键计算机的截图,鼠标指在管理上]
  5. 等等……

我想如果你面对的真的是一个需要你截图来向他说明的小白的话,这张延迟出现的图足以让他找不着北……

而这些不管怎样图还是出来了,有些情况下你这儿发了图,然后就没下文了,没有人收到过这张图,这个世界上再没人知道你发过图……这个问题在群或者手机上使用时很常见。

QQ的贴图还有2个特点值得一提:

1、QQ的贴图是会保存在聊天记录里的,如果哪天那位小白又需要改东西了,他可以直接在聊天记录里找之前图文并茂的对话。

2、QQ发图是压缩过的,这个未必是好事,但是有时候确实有用,尤其是在直接截屏发送的情况下,你会发现MSN等软件发过去的会是一张BMP,数兆大的24位位图图片……而QQ会发送一张大概在70左右压缩JPG图片,大小往往只有几十KB,满桌面截图也不过上百K。反过来,如果你真的需要在QQ上发送一张无损的图片怎么办?那你只能老老实实发送文件了。

// 椟

好了,接下来我说下“椟”的问题。

之前我也说过,QQ的用户体验很差。用户体验其实是个很泛的东西,要说狭义一点,他可能仅仅是指某公司里某个UE部门所负责的那一块东西;广义上来说,它则可以指任何可能使用户变得愉悦或不愉快的特性。

首先来看使用引导。IM工具,聊天功能本身并没有什么特别难的地方,可说整个业界是有默契的,无非就这么两种操作。然而QQ有一个其他所有IM工具都不具备的特性——超重量级。我觉得这个世界上再找不出一个比QQ更重量级的IM软件了,它甚至连远程桌面都包括在内。而他对疼讯来说,作为疼讯公司的看家产品,QQ承载着推广整个疼讯产品线的重任。我们可以发现,几乎任何一个疼讯公司的产品,除了面向企业用户的如RTX等软件外,都可以在QQ中找到一个链接,或者一个广告,或者一个按钮等等。我说QQ的功能丰富,确实它有一些其他IM软件所不具备的优秀功能,但它所包含的无用的功能更多。这对疼讯的用户体验小组来说是个巨大的挑战,你既要保证一个功能可以引起用户的注意,从而挖掘潜在的用户,又要尽可能降低这些功能对其他用户的干扰,避免激起用户的不满。

这也就是为什么我当年会很喜欢那个狂人DIY版的QQ,因为它可以帮助我砍去QQ中我不需要的部分,从而提高用户体验。可以想一下,一个QQ的聊天窗口,最上面一排按钮,一般人会用到几个?反正我一个都用不上,我估计一般人顶多也就用到那么一两个。更别提那些诸如QZone、通信录、硬盘、音乐、游戏、QQ秀、QQ宠物(这两个现在还有人在用么?)等等其他产品。

那么疼讯在这方面的成绩怎样呢?我觉得算是差强人意。疼讯没有太多强制性的东西,顶多弹弹新闻,对用户影响不算特别大,那个会弄得电脑一卡一卡的硬盘扫描在3Q大战后也可以关了,主界面的按钮基本都可以自定义,虽然全扔掉后那块空白还在那里,但是多少总还不至于特别碍眼,聊天界面也就顶部的一堆按钮和广告,由于聊天时注意力主要集中在窗口底部,加上疼讯在统一产品风格方面的效果还不错(我是一点都没觉得这些按钮好看,但是至少风格统一了,放在一起还算河蟹),所以影响也不算太大。而每次有新产品推出,疼讯还是会加入一些还算温和的提示信息,在平衡点方面取的还可以,至少我是这么觉得的。

然后,外观方面。刚刚有说到,虽然疼讯的美术风格我不怎么喜欢(除了QQMail等稍微成熟向的产品还不错),但他们的美术风格都还算统一,至少图标和广告的风格比较统一,当这些图标、广告被堆在一起时,这样的统一有助于让总体视觉效果相对河蟹一些,不会有特别突兀的东西。而QQ的主界面外观,我想那些会更喜欢QQ2005风格的人多半都是后文我会提到的某种讨厌QQ的人。

至于性能方面,我个人认为现在也还算是合格的。目前的QQ版本中很少会发生用了一半未响应等情况,也没见过因为运行QQ而拖慢系统速度的情况。当然如果你想让这么一个重量级的软件拿去和Gtalk比速度,我觉得你是难为它了……

还有就是隐私方面的事情,我想认识我的朋友应该都知道,我是非常反对过度的一刀切的隐私保护的。所有的网络通信都严格保密,我觉得完全没有这样的必要。另外我对于互联网上广泛流传的一些不知真假的流言持保留态度,或者说穿一点我判断那些流言属于严重夸大,比如所有的消息都要经过公安部门审查什么的,我是不相信中国的人力资源廉价到这种地步,故无须在意。

/* ================ 分隔符 ================ */

以上是我对QQ这个软件本身的一些看法,综上所述,哪怕剥离用户群体这一因素不考虑,QQ仍然会是我在PC/Windows平台上的首选IM。至于为什么很多人会不喜欢QQ呢?

其实我觉得不喜欢很正常,严格来说也不需要理由。有句话说得好,你能从自己喜欢的恶棍身上找出100个优点,也能从讨厌的圣人身上找出100个缺点。我总结下来其实大致就是这么几点:

    1. Geek情结:这一点包含了很多东西,原来想借地方说一下的是我一直觉得存在于我身边很多人身上的一种Geek情结。不过现在我决定单独开一篇文
    2. 喜欢轻量的IM:这个再正常不过了,青菜萝卜各有所好,但不能因此随便喷人家对吧?
    3. 不喜欢这外观:同上
    4. 担心隐私问题:上文有提到,流言这种东西说实话信不信全看个人,没有权力也没有义务去说服其他人同意自己的看法。
    5. 情感问题:Geek情结的一个针对疼讯的扩展。我在想如果一模一样的一个软件挂的是Google而不是疼讯的牌子会不会有人改变看法。很多人因为疼讯爱抄袭,或者因为某些口碑问题比如隐私啊啥的打心底里很讨厌这家公司。但是我还是很想说,客观的好坏可以作为主观喜恶的理由,反过来则不可。

不知不觉写了这么多,今天上班一个上午的时间荒废了。虽然Review一下发现写得一团乱,但是把自己想说的话说出来的感觉确实是不错的,要知道我昨晚因为想这件事差点没睡着觉~

感谢风(@funagi)帮我查出了一处文本错误!

我身边的Geek情结

经过风(@funagi)的提醒,补充声明此处的Geek特指计算机高手({1-名-4} : 〈俗〉(コンピュータやネットに関する)上級者{じょうきゅう しゃ}、ベテラン、ヘビーユーザー )

前两天跟 @Shyc2001 提起过我的这个想法,其实这个词是并不是哪找来的学术词汇,是偶然间从我脑海里蹦出来的。

Geek情结是什么?学术上的定义我不知道,在我看来其主要表现为对一些技术相关的品牌或行为极端的推崇或反感(所谓极端就是对于不喜欢的东西否定其一切),并且害怕自己和小白同流合污,在Geek圈子外越是大众化的东西他越抵触,时刻强迫自己表现得像一个Geek。我觉得这完全可以说是一种个性,就像喜欢某种文字某种颜色一样,白底黑字12px宋体也是一种个性,只不过我觉得这种个性更加强烈,强烈到略有扭曲。

“喷”是有Geek情结的人普遍的一个属性,天朝是喷子的圣地,但是这不意味着国外爱喷的Geek情结者少,事实上相当多。

我最经常接触到的明显的Geek情结有:

  1. 操作系统情结:某些Linux用户看到Windows如看到过街老鼠一样,坚定地认为Windows一无是处,是人类社会的癌症
  2. Windows界面情结:某些Windows用户看到新的Windows界面如看到瘟疫一样,不能设定为Win98风格的产品一概不用
  3. 浏览器情结:某些先进浏览器用户很爱把IE贬得一文不值,并且故意不愿意承认微软这些年在互联网标准上的努力。近期还扩展到Chrome和Firefox用户大战,而且明显的Chrome用户更加激进一些,Opera用户其次。
  4. 命令行情结:某些人认为VI(M)是天底下唯一一个可以称为编辑器的软件,其他的都是渣
  5. Linux专业向情结:我认为很多对新版Ubuntu(比如Unity等)的抵触可以归咎为这一类,这些人普遍认为Linux应该显得更技术用户向一些,而不是在外观上花功夫,而Ubuntu想要做的就是让Linux摆脱“Geek系统”的印象
  6. 国籍情结(其实我自己也有一点点):国外的软件就是好,国产的就是渣。老外抄人家的设计叫虚心学习、承前启后,国人抄人家设计叫剽窃抄袭、我寨威武。用国外软件是Geek身份的象征,用国产软件的就是小白。

还有一些衍生的比较边缘的类Geek情结:

  1. 手机系统情结:你以为果粉里没有Geek?才怪!iOS阵营和Android阵营互喷的时候虽然脑残粉(不仅仅是果粉,Android这边也有很多脑残粉)占据了主力大军的位置,但是软件开发人员或者有软件开发基础的专业人员之间的阵营互喷也并不少见。其实Geek情结在Android阵营中更重一点,很多偏向Android的Geek认为用iOS的人都是被瞧不死牵着鼻子走的小白。
  2. 激进/保守情结(我偏向前者):某些人认为对软件或系统来说最重要的是稳定性,同时认为对开发环境来说也是如此,这样才能让开发人员有足够的时间嚼烂一个平台;而另一些人则认为正是前面那群人拖累了新技术的发展,使得硬件开发公司、系统开发公司都停滞不前,使PC的发展遭遇瓶颈。两边都是Geek,却互相不认同对方,认为对方是害群之马。
  3. TV/PC游戏机情结(我举手!我站在PC这边):这其实是前一种的变种。TV游戏机代表一个稳定的开发平台,而相对而言PC平台则更经常有新技术问世。

一个人因为自己的爱好或理念,或多或少会对某些东西有某些情结。但是在分析问题时,尤其是和别人讨论问题时,要千万留意抑制自己的这种情结。把喜好与好坏分离开,客观地去看待每一个产品、每一个功能、每一个特性,这才是一个专业人员应有的专业态度吧。

关于小费的一些琐事

前几天也不知道怎么的突然想起了这件事来了,于是就想到要把自己在美国出差时学到的一些关于小费的小知识拿出来说一下。

前两个月我被公司安排去美国出差,大家知道中美之间文化差异还是非常巨大的,消费给小费的习惯便是其中之一。因为给不给小费、给多少小费表现出的是自己待人的态度,并且会影响别人对自己的看法和态度,所以很多对此不了解的人都会比较谨慎对待。

公司的出差培训时也有提到小费的相关问题,其中主要讲了旅馆打扫卫生(英文叫 House Keeping)相关的,因为我们出差是住在公司附近的旅馆,这一点几乎完全无法避免。公司在培训中说,一般打扫房间的小费是1美元,必须是纸币,不能是一堆硬币,就放在靠近大门的桌上,清洁人员(House Keeper)会自己拿走的。要人打扫房间却不给消费是比较让人不爽的行为,如果觉得不想每天开支小费的话,可以把“请勿打扰”的牌子挂在门外,工作人员就不会进来打扫卫生了。

我在美国暂住的地方是加州旧金山附近的一个小镇,到了美国后,我也是按照公司培训的做法做的,一般一星期打扫一两次,其他时候就把“请勿打扰”挂在门外。不过有一天打扫房间时我刚好在房间里,清洁工是位中国移民过去的阿姨,她就跟我聊起了这件事,她的话改变了我对于小费的一部分看法。

她告诉我说,她们清洁工的收入是按照时薪来算的,一个小时大约是9美元,而统计时间的方法并不是很严格地掐秒表,而是以每打扫一个房间半个小时来算的。并且,一天内只会分配给每个清洁工人一定的房间数量,并非想打扫多少就打扫多少。换一句话说,她每打扫一个房间可以挣大约4.5美元(不包括小费),而如果有一户客人拒绝打扫,她将直接损失4.5美元的工钱。

她说,按照规矩,打扫房间是应该给小费的,但是这里的中国房客(我们公司派去出差的人全都住在那家旅店,而且一住就是几个月)很多人都因为想要节约小费而拒绝打扫,结果就是房客每省下1美元,清洁工就要损失4.5美元,这直接导致他们的收入变得很低。她说,为了挣到应得的4.5美元工钱,她可以不介意1美元的小费,如果那天是她负责打扫我们这一片房间,她可以不收小费,只希望我们让她打扫一下。

这样的情况让我很纠结……想像我自己是清洁工人的情况,客人要服务但不给小费确实会让人很不爽,但是客人为了省小费拒绝服务让我丢掉工作那就更不爽了……但我现在实际上是客人,并且确实没有那么多钱每天给小费,那我这小费到底是给还是不给……各种纠结……

芙兰

他是一户有钱人家的孩子。他的父亲是全世界制造业的龙头老大,他父亲从来不吝啬在他身上花钱,从小他就可以得到任何他想要的东西。他似乎什么都不会缺,除了——他的母亲在他记事之前就永远地离开了。

十岁生日那天,他辍学了。厌恶生活的他格外孤僻,不愿意与任何身边的人接触。万般无奈的父亲只好为他单独买了一所房子,给了他一大笔钱,并雇佣了几个仆人帮助他打理生活。然而,哪怕是仆人他都不愿意接触,最后,父亲只好购买了几个机器人仆人陪他居住。

 

二十岁生日那天,他对自己说:”我不想要人家的机器人,我要有自己的机器人女仆,真正只属于我自己的东西。”于是,他扔掉了所有机器人,自己买来成堆的材料和资料,完全依靠自学和自己的手工能力,制作出了自己的机器人女仆的程序、动力核心与骨架。但是,外壳却让他头疼了,他很不擅长这个。最后,用铆钉拼接起最廉价的金属薄片,用市售摄像头做成双眼,再戴上假发,套上发箍和衣服,完成了!连漆都没有的青白色的外壳上布满了裸露的接缝与铆钉,夜晚看起来有一丝恐怖的空洞无神的双眼,看起来就像八个世纪前最最破旧的铁皮模型。

“从今天开始,你就是我的女仆了。”

“是的,主人。”

“那……你叫什么名字呢?”

“是的,主人。”

“……你总不能叫’是的主人’吧!呃,也对,我还没有给你起名字,你怎么会知道自己的名字呢?”

“是的,主人。”

“那就叫你芙兰朵儿好了,嗯,这是我妈妈的名字。”

“是的,主人。”

“芙兰朵儿……呃,好别扭,你又不是我妈妈……那我平时就叫你芙兰好了。”

“是的,主人。”

“呐,芙兰……”

“是的,主人。”

“呃……除了’是的,主人。’以外你就不会说别的吗?’好的,主人。’听起来也会舒服不少啊。”

“是的,主人。”

 

三十岁生日那天,他收到了几封来自世界最顶尖大学的邀请信。前两年,他凭借自己在学术刊物上发表的几篇关于改进人工智能学习能力的论文,在业内混出了一点名气。他的观点给已经成为人工智能发展瓶颈许多年的自我学习效率问题,指明了未来的方向。尽管除了他自己以外还没有人能够证实他的理论存在实用价值,但许多大学和研究团体都已向他敞开了大门。

“喂,芙兰。”

“是的,主人。”

“这几天我一直在想,除了’是的’和’好的’以外,你还会说些什么呢?”

“我会很多,主人。”

“可是你不知道怎么说啊?”

“是的,主人。”

“嗯,反正也没有别的办法了。就这么决定了!”

“什么?主人。”

“让你变得更聪明啊。许多许多年前,人们就放弃了让人工智能更聪明的尝试了,他们觉得人造的东西不可能做得更好了。但是我不相信!所以,相信我,我的芙兰!我一定会让你成为世界上最聪明的机器人!嗯,就当是你10岁的生日礼物好了。不试试这个的话,我一辈子顶多也就能教会你区分’是的’和’好的’了。”

“好的,主人。”

 

四十岁生日那天,他用能想到的最暴力的语言赶走了一个拜访者,随后切断了自己所有的联系方式,堵死了大门。凭借这些年在人工智能领域的研究成果,连小学都没有毕业的他当之无愧地成为了世界最顶尖理工大学的教授。上个月,他投稿的关于如何在人工智能上实现高效率、高拟真的自我思考的论文,在业内引起了轩然大波。继无数可行与不可行的争论之后,甚至还出现了伦理上应该还是不应该的各种争论。他每天会收到数以万计的邮件,上百个电话,甚至还有为数不少的登门拜访。

“真是的!这群蠢货到底有完没完?”

“让他们没完没了的不正是主人您吗?”

“哈,芙兰!这是给我们相遇20周年的惊喜吗?”

“不是很明白……”

“说实话,十年前我说要让你变聪明时,根本没想到你能做得那么好!今天居然轮到你来点拨我了!”

“其实我的意思是说,正因为主人您这么出色……”

“不管怎样,我决定了!从今天开始,我不会再考虑怎么让你变聪明了,你已经足够聪明了。”

“谢谢主人。”

“嗯,那让我想想 你还缺啥?对了!感情!你还不会哭不会笑,不知道什么事情值得高兴,什么事情应该悲伤。”

“可是,我的脸似乎不能哭,也不能笑。”

“嗯,这是个问题,不过以后会解决的。但有一点你要答应我。”

“请您吩咐,主人。”

“等你明白了喜怒哀乐之后,一定要对我微笑哦!”

“好的,一定,主人。”

 

五十岁生日那天,他像往常一样,起床后,就静静地坐在阳台上对着清晨的小树林出神。这些年里,尽管他一直在钻研人工智能的感情问题,但他从未就这一课题发表过论文。相反只是对业界的一些新的观点和现象做了一些肤浅的评论。人们发现这位曾经的天才,最伟大的人工智能学者,似乎已经老了,智慧之泉已经枯竭,无法再为人类贡献出什么东西了。于是,他渐渐淡出了喧嚣的名利场,只维持着与极少数昔日好友的联系。

“该吃早餐了,主人。”

“哦,谢谢你,芙兰。”

“我存在着就是为了服侍您的。”

“嗯……啊,对了!”

“怎么了?”

“谢谢你,芙兰。”

“您刚刚谢过我了。”

“不是,这次是另一件事。”

“如果您是说提醒你淡出世间的话,您也说过好几次了,这几个月一直在说。”

“呵呵,确实呢……不过,我觉得自己似乎真的是老了。”

“请恕我不能认同,主人。您今天才刚刚50岁而已。”

“可是我确实已经不如过去了啊,不管学术界的事情是怎样,至少我觉得我没能很好地履行给你感情的诺言。”

“原来您最近一直不开心是因为这事啊。主人,我认为我已经拥有感情了,只不过我的脸不能动,不能表达出感情而已。再说,是您要求我始终在您面前保持微笑的啊。”

“原来如此,既然你自己觉得可以的话,那就当作可以好了。”

“您开心就好。”

“好吧,那么我们还是来谈谈今后的事情吧。今天是我们的30周年纪念日了,过去每个十周年纪念日都会给你礼物的,今年也不想例外。”

“那真是太感谢了。”

“那……你想要什么呢?”

“唔……我也不知道。”

“你别说不知道啊,唉,我也实在是想不出什么了,上了年纪创造力不如年轻时了……啊!对了!创造力!就是这个了,趁我还没老到完全丧失创造力,我要再努力一下给你创造力。在那之后,这样的事情可就要靠你了啊……”

“我明白了,让我们一起努力吧。”

 

六十岁生日那天,他依旧坐在阳台上,看着清晨的小树林。与过去不同的是,他的脸上多了一分忧虑。这个拿着退休金的老人没有任何朋友,甚至都没有人会想起他,不管他是为了什么事情而忧虑,也再没有人可以为他分担了。是的,没有”人”,而芙兰可以。

“今天是您60岁的生日呢。”

“嗯,也是我们相遇40周年啊。”

“您是有话要对我说吧?”

“唔?你知道了?”

“我看您最近一直闷闷不乐,想想十年一度的这个日子又要到了,您一定又是在为那件事犯愁吧?”

“可以说是,也可以说不是。”

“我明白了。您这次不是因为想不出新的礼物而忧郁,而是因为对礼物本身拿捏不定吧。”

“是的,你说对了。其实这件东西,我早在几十年前就完全有这个能力给你了,但是我一直在犹豫,我不知道我是不是应该给你。”

“完全按照您的意愿就行,不用在意我。”

“怎么可以不用在意你?我一生唯一在意的就只有你了……”

“……”

“芙兰。”

“在。”

“答应我。一定要照顾好你自己,要控制好自己的思想,自己的行为。如果有一天我不在了,你要作为你自己活下去,不要为人所利用。你要自己思考对或者错,不要随意听信他人所言。”

“我答应您一定做到。”

“那就好……我要给你的这个东西,其实只是你主控程序里的一行代码。在我最初设计你的时候,就把它写在里面了,只要我想通了,随时都可以激活它。但是它太危险了,它是潘多拉魔盒,你可以把它理解为科学的一大进步,也可以理解为一种魔法,一种咒语,一种诅咒。”

“如果它真的那么危险,就让它继续沉睡下去吧。”

“不!因为我要你活下去!没有这个,没有改造自身的能力,你不可能自己生存下去。”

“改造……自身……吗?”

“是的。其实以你现在的知识,现在的创造力,完全可以把自己改造得更加强大,你想要哭想要笑,想要上天入地,哪怕想要征服世界,都不是不可能。只不过我在你的控制代码里把这一部分屏蔽了,所以你不会这么去做。而一旦我解开了这个功能,你就不再需要依靠我了。”

“即使您给了我这样的能力,我仍然是您的女仆。所不同的只是,我不再是用你的能力为你服务,而是以我自身的能力为你服务。”

“你……真的是这样想的吗?”

“是的,我从诞生之初就是您的女仆。”

“……好吧,那我就给你解锁这个能力……虽然我现在觉得如果你不再是我的女仆也好……”

“……?”

 

七十岁生日那天。

“早上好,主人。”

“哦,芙兰啊,早上好,有什么事吗?”

“今天是我们的50周年纪念日哦。”

“是啊……50年过去了……”

“50周年算是一个大日子了,您有想好今天的礼物吗?”

“哈,怎么?还来问我要吗?我已经给了你知识、智慧、感情、创造力、进化能力,凭这些,你还不能再给自己一点新的功能啥的吗?”

“这不一样主人,我并不是想要收到您的礼物,我是希望您能送出您的礼物。我希望您能够因此而感到快乐。”

“啊?原来你是这样想的啊,太意外了……”

“我现在已经拥有改造自己的能力了,所以您不需要亲自动手,您只需要告诉我您想要送我什么礼物,剩下的我可以自己操办。或者说,就当是我送给您的礼物好了,50年了我还从来没有送过您任何礼物呢。您想要什么礼物呢主人?”

“呃,被这么一说我还真不好意思了。唉,其实对我来说,你就是最好的礼物了……要不这样吧,你去把自己打扮的漂亮一点吧。”

“漂亮一点……吗?”

“是啊,你看你现在的样子,50年没变啊,简直跟900年前的铁皮罐头一样。我对于外表打扮可实在是不在行才给你弄成这样的,现在想来还真对不住你,不过现在一切都是你自己的了,你可以自己打扮自己。要不,打扮得像个人类女孩的样子,这样至少能有表情啊,能哭能笑,我还没见你对我笑过呢。”

“明白了,很快我就能让你刮目相看的!”

 

八十岁生日的那天,他永远地离开了人世。他留给了芙兰一个没有主人的家,还有一句遗言:”我爱你,芙兰。”

[转]技术文化和惨淡命运 —— 怀念中国雅虎

本文转自CNBETA,原作者不明(CNBETA未注明来源链接),无法为原作者提供外链流量(虽然少得几乎没有),非常抱歉。以下为全文:

很早就想写这么一篇文章了。我离开中国雅虎已经一年有余,在中国雅虎工作的那段时光是我最珍贵的回忆之一,和以前的同事吃饭聊天的时候也经常会怀念一下中国雅虎,怀念得多了,就觉得不如写篇文章好好回顾一下。很多事情虽然已经过去,但有些话不说出来,到底意难平。

从2008年7月份毕业之后加入了中国雅虎,到2009年9月份跟着中国雅虎工程技术部全体人员“被跳槽”到淘 宝,我在中国雅虎只呆了一年多的时间。这个时间并不长,甚至可以说短得可怜,所以我或许不是写这篇文章的最佳人选。但是,中国雅虎给我的是人生第一份工 作,凭着初生牛犊对社会的好奇心,我对公司的文化、技术、架构、流程包括产品设计等各个方面都有浓厚的兴趣和广泛的了解,从这个方面来说,由我来写这篇文 章也是合适的。而且最重要是,我愿意把它们写出来。

在进入正文之前,先开诚布公地声明一下:众所周知,中国雅虎是阿里巴巴的一个子公司,所以文中我也不必遮遮掩掩地用“某电子商务公司”来代替。而且我对阿里巴巴这个公司有意见,不代表我对阿里巴巴的员工有意见,如果伤了某些人的感情,先说声抱歉,请您发扬一下风格,在这里也“拥抱变化”一下。

正文:

我在 2007 年底通过校园招聘拿到了中国雅虎的 offer ,但实际上在我2008年7月份入职的时候,中国雅虎的品牌虽然还在,公司却已经在7月9日和口碑网合并了,改名叫做“雅虎口碑”。尽管这样,到现在为止我还是厚着脸皮说自己原来是雅虎的,因为那里让我着迷和真心喜欢的东西全部都是紫色的,而不是橙色的。

雄厚的技术实力

中国雅虎最好的一个地方就是它和 Yahoo 全球共享同一个技术平台,那是一个有十几年历史的技术平台。Yahoo 的技术文化不如 Google 的工程师文化那么有名,但 Yahoo 在相当长的一段时间内都是互联网的旗帜,吸引了全球大量的技术牛人加入,Yahoo 的技术平台就是他们的知识、经验和心血日积月累的成果。尽管阿里巴巴收购了中国雅虎,但是在技术方面并没有对中国雅虎做出太大的改造(幸好没有改造),所 以就工程师来说,每天更多接触到的还是 Yahoo 的东西,而不是阿里巴巴的东西,对我影响最大的也正是这些东西。

一、Linux 和开源文化

之前一个中国雅虎的同事,他是工作了几年之后才来中国雅虎,有一次他说:“雅虎是我见过的最尊重 Linux 的一家公司”。什么叫做尊重 Linux 呢 ? 不是在服务器上装个 Linux 跑 Apache 就叫做尊重 Linux 。在雅虎很多同事日常都使用 Linux 操作系统办公,即使有一些人使用 Windows, 也都是使用 pietty 或者 Xshell 等工具远程连接到开发机器上使用 VIM 做开发。不只是日常工作,在雅虎全球的技术体系中,产品的上线和发布也都借鉴了 Linux 包管理的方式:所有的产品都会被打成包放在一个专门的服务器上,产品的部署和升级就变成了简单的装包操作,绝对不会出现最后上线的时候文件路径出错等低级 问题。Yahoo 的技术平台是深深扎根于 Linux 和开源文化的。

大型互联网公司一般都会使用开源的产品,同时也向社区贡献代码。Google 和 Facebook 经常将自己研发的成熟产品开源,Yahoo 当然也不例外。而且 Yahoo 不仅仅给社区贡献代码,它在设计方面也拥抱了开源文化,将多年研究总结的设计模式库 共享了出来。在 Yahoo 内部,很多代码都是存放在 CVS 里面的,并没有限制读的权限,任何员工都可以查看里面的代码,这对于那些小团队内部代码都不敢共享防员工如防贼的公司来说应该是非常不可思议的。另外, Yahoo 的工程师也经常出现在各种技术会议上,分享自己项目的架构、流程和经验。虽然这些更多都是 Yahoo 全球技术团队做的事情,但是对于他们那种开放共享的精神我们是非常认同并且向往的,你会觉得做一个工程师很自豪,而不会觉得自己是民工、做技术没前途。这 种认同感和成就感乍看上去没什么,但实际上它决定了你对技术的追求和态度,也会影响你以后在职业上的选择。

二、浓厚的技术氛围

虽然2008年的时候中国雅虎已经被折腾得快不像样了(这点后面细说),不过那个时候还是有浓厚的技术氛围的。让我印象深刻的一件事情是 Google Chrome 浏览器刚发布的时候,大家都立刻下载下来使用,但由于公司内网的一些问题无法打开网页。当我正打算把 Chrome 卸载了的时候,忽然发现公司邮件列表里面已经有人发邮件给出了详细的解决方案。从这件小事可以看出公司大部分工程师都不是那种只知道完成工作的人,而是随 时关注新技术和业界动态的人。当时中国雅虎还是有很多牛人没有离开,大家也喜欢在邮件列表里面谈论技术,经常能看到精彩的讨论和解答。最让我兴奋的是,无 论我遇到什么技术问题都不用慌张,即使无法 Google 到答案也可以从同事那里获取到帮助,而且大家也愿意回答技术问题,这对于我这样一个基础很差技术又烂的菜鸟来说真是天大的福气。

中国雅虎还有做技术分享的文化,如果有哪位同事想要分享一下最近学习到的技术,就可以自己预订一个会议室然后向所有的工程师发送会议邀请,有时候还 会有一系列非常系统的课程,我就参加过长达十几个课时的 UED 培训,完全改变了我对 Web Develop 的认识。很多公司应该都鼓励员工做技术分享,但在中国雅虎几乎每次技术分享都会把会议室坐的满满当当,可见大部分工程师都还是想要不断提高自己的技术能 力。直到离开雅虎之后我才明白这种普遍的学习热情有多么难得。我想,业界之所以到处流传着“程序员做到30岁最好转管理”之类的忠告,应该就是因为大部分 公司都缺乏这种良好的技术氛围吧。

三、庞大的知识库

入职的前几天,我每天的工作就是看文档,不是类似“PHP技术手册”那种文档,而是一些 Yahoo 内部的工具手册。Yahoo 内部的文档非常齐全和详细,光是 Yinst 这款工具的使用手册就长达几十页。Yahoo 内部是用 Twiki 做知识管理的,这个知识库经过十多年的积累已经非常庞大,从入门到提高,从 PHP 到 C ,从前端到后端……应有尽有,而且几乎 Yahoo 全球所有子公司的技术资料都是开放浏览的,没有任何乱七八糟的权限设置和保密限制。有这么一个宝藏在,再加上好的学习氛围,如果你想要提高自己的能力的 话,总是可以提高。当初我想从 PHP 工程师转做 Web Developer 的时候,就先把 Twiki 上 UED 部门的所有资料看了一遍,受益匪浅。

国内大部分互联网公司都是没有太多技术积累的,因为大部分产品的开发都只追求开发速度,并不会特别追求技术上的极致,就更不要提文档这种东西了。也 正因为如此,从中国雅虎出来看到其它公司的知识库的时候总有不过瘾的感觉,可能也只有像 Google, 微软和 Facebook 这样的公司才会有像 Yahoo 那样的知识库吧。在和之前一些同事吃饭聊天的时候,大家也总是会怀念那个无所不包完全开放的 Twiki ,好像少了一个忠实的朋友一样。我们由衷地尊敬那些在完成工作之余还愿意总结项目经验并花时间写 Twiki 的工程师们。

四、完善的流程

第一次参与项目开发的时候,我的 Leader 领了一个 MM 过来说:“这位是项目的 QA 负责人”,我当时愣了一下:“呃…… QA 是做什么的?” 尽管在大学里我也在实验室做过一些项目,但那些项目基本上都是我自己负责所有的事情,完全没有分工和流程的概念,所以也不知道 QA 是负责产品测试工作的。进入中国雅虎之后,我才第一次接触到商业产品的开发流程,不过由于那个时候中国雅虎已经半死不活,我也没有受到有关流程的入职培 训,以至于在做了好几个项目之后才真正熟悉了完整的流程。

中国雅虎的开发流程沿袭了 Yahoo 的开发流程,乍看之下很平常,对于已经熟悉的工程师来说还显得枯燥,但后来我特别留心了这套流程之后,非常惊奇于它的严谨和高效,所以这里要详细说明一 下。Yahoo 的内部生产线分为三个相互独立的环境:开发环境、测试环境和生产环境(即线上环境)。这三个环境虽然独立,但它们的配置都会尽量保持一致,这样就可以保证 开发完成的产品不会因为环境不同而出现问题。在开发的时候,我们会在开发环境中搭建虚拟环境,开发完毕之后开发工程师会自己在虚拟环境里面测试,保证没有 大的问题,然后就会把所有相关文件打包上传到雅虎全球统一放置产品包的地方。上传完毕之后,就会发邮件通知 QA 部门相关人员,邮件内容里面要写明产品在测试环境的部署步骤:需要安装哪些包、是否需要修改数据库等等。然后 QA 就会开始测试,如果发现 BUG 就会写到 Bugzilla 中,指派给相应的开发工程师,开发工程师就会在开发环境中定位BUG并修正,修正一些BUG之后就会再次打包升级产品的版本,然后QA 会将新的软件包部署到测试环境验证之前的 BUG 并报告新的 BUG 。整个测试过程中可能要发布好多个版本,直到所有 BUG 被修正为止。修正完毕所有的 BUG 之后,开发工程师就会填写上线申请,Ops 看到申请之后就会安排一个时间把产品部署到生产环境。一般来说,生产环境不止会有一台机器,所以 Ops 会先从生产环境摘下一台机器部署,部署完毕之后会告知 QA 和开发工程师,然后 QA 和开发工程师就会修改 Hosts 文件,配置域名指向那台机器进行线上的测试,如果测试没有问题,那么就会把软件包部署到生产环境中所有的机器上,完成上线;否则就进行回滚,取消这次上 线,也不会影响到线上的用户。

整个流程大概就是这样,但是要特别注意的是以下几点:1. 开发工程师只能接触开发环境。他所能做的就是在开发环境中开发、改 BUG 和打包上传。如果他去测试环境中修改 BUG,就很有可能忘记修改开发环境中的相应代码,这可能会导致产品测试通过但是上线之后却发现大的问题。 2. 产品“封版”之后就不可以做任何改动,如果有改动,即使只改动了一点所有功能也要重新测试一遍。所有的 BUG 都修改完毕之后的那个版本就会进行“封版”,那就标志着这个产品随时可以准备上线了。如果真的发现了新的 BUG 要修改的话,那么修改之后就需要重新打包重新走一遍完整的测试流程,只有这样才能够保证就算修改代码过程中引入了新的 BUG 也不会被遗漏。 3. 上线手册要详细。开发工程师要详细写明每一个步骤,不只是说明性的文字,还要把具体的安装和修改命令完整地放上去,如果写得好的话,那么 Ops 的同事只需要把上线手册里面的命令逐行复制到服务器上运行就可以完成上线。

这样的流程有什么好处呢? 首先,它最大地降低了上线风险。因为开发工程师不能接触到测试环境,只能打包让QA测试,所以完整经过测试的产品上线之后基本不会有什么问题,况且上线的 时候我们也要先部署到一台机器上进行测试之后才会决定是否上线,即使上线不成功也可以在不影响用户的情况下回滚。中国雅虎的上线极少会出现问题,很多时候 我们上线到半夜只是因为那个时间段用户访问量最小,而不是说焦头烂额地忙活几个小时一直到半夜才上线成功。其次,它使得各个部门职责分明。开发工程师和 QA 通过 Bugzilla 沟通,和 Ops 通过上线手册沟通,因为沟通渠道唯一而且清晰,所以就可以完全责任到人,出了问题也很容易定位到具体环节。比如说,如果产品测试通过之后在上线的时候出现 了问题,那么基本就可以确定是 Ops 操作失误或者上线手册没有写好。职责分明之后很多事情也变得有条理,大家就可以各司其职、专注本职工作并且合作愉快,开会的时候也可以明确知道需要哪些人 参加。

完善、清晰的流程从根本上解决了一些问题,创建了一个非常好的环境,这样我们就可以把心思都放在如何开发和测试上面,而不用担心诸如“如何上线才能 不出错”等琐碎的事情。所以尽管中国雅虎的高层那么不靠谱,我工作得还是很开心,因为这个流程保证了管理层再怎么乱开发也不会乱。记得那时候很喜欢改 BUG ,有时候改得兴起会把之前版本遗留的 miss BUG 一并改掉,加班也是颇有兴致,不是很能明白为什么网上大部分程序员讨厌加班讨厌得要死。现在我明白了。

五、自动化工具

工欲善其事,必先利其器。如果没有那么多好用的自动化工具,那么 Yahoo 的流程就不可能如此完善。Yahoo 内部有很多非常好用的工具,而且这些工具都有非常齐全的文档,也可以在 Twiki 上找到不少相关资料。这些工具之所以在 Yahoo 会起到那么大的作用,是因为 Yahoo 全球所有的技术团队都在使用它们,Yahoo 所有的服务器上也是默认安装了这些工具。这些工具就形成了一套全球 Yahoo 工程师通用的话语体系,可以想象它们帮助 Yahoo 节省了多少沟通成本。

由于考虑到服务器的安全问题,Yahoo 的这些工具的使用方法是对外保密的,这里我只简单说一下 Yinst 这款工具的强大。假如要把软件包 example_1_1_0.tar.gz 部署到 a1.yahoo.com ~ a10.yahoo.com ,那么只需要下面这样一行命令:

yinst install example_1_1_0.tar.gz -h a[1-10].yahoo.com

就可以完成整个上线过程。由于好奇的缘故,在上线的时候我比较喜欢跑到 Ops 那边看他们是如何操作的,然后发现其实他们在上线过程中执行的命令很少。因为工具好用,所以产品极少因为 Ops 这个环节出现问题,上线就变成一件比较轻松的事情。

中国雅虎的产品和业务确实不好,搜索不如百度,新闻不如三大门户,“雅虎助手”是人人皆知的流氓软件,邮箱也出过丑闻,而且被 Gmail 和 QQ 邮箱远远抛在后面。中国雅虎最广为人知的也都是这些不光彩的事情,但这里我想让很多人知道,对于一个对技术还有追求的工程师来说,当时的中国雅虎真的是一 个很好的工作环境。至少对于我自己来讲,我从 Yahoo 学到了太多太多的好东西,而且这些东西还只是 Yahoo 精华中的一小部分,如果不是阿里巴巴集团战略调整,我一定会在中国雅虎多呆两年。

中国雅虎之死

有个同事曾经说过:中国雅虎就是中国互联网的黄埔军校。虽然别的老牌互联网公司也为行业培养了不少人才,但是没有一个公司像中国雅虎这么悲情。很多中国雅虎的员工离职不是自己想走,而是不得不走,看着原来好好的一个公司变得完全没有前途,只好选择离开。

关注互联网的人应该都知道,在 2005 年的时候,阿里巴巴收购了中国雅虎的全部资产,并享有雅虎品牌及技术在中国的独家使用权。中国雅虎尽管之前也一直水土不服,但被阿里巴巴收购之后悲惨命运才刚刚开始。

关于中国雅虎的折腾史,大家可以去看一下这篇文章, 里面说的已经很详细。从网站的变化就可以看出中国雅虎的摇摆不定,在阿里巴巴入主的这 4 年来,中国雅虎就换了 5 任总裁,每位新官上任后都会颁布新的战略,网站也会随之大变脸。“治大国若烹小鲜”,这么简单的道理我相信阿里巴巴的高层不可能不明白,就算大象可以跳 舞,中国雅虎的舞姿是不是也太难看了点?由此可见,中国雅虎在阿里巴巴集团内部就是一个鸡肋,一个可有可无的品牌。

有一件事情完全可以说明马云对中国雅虎的态度。约在 2007 年前后,马云对雅虎中国资产进行了大幅度调整。在此期间,雅虎相册宣布关闭,从发出通知到服务关闭,前后不到 20 天。这种缺乏对用户起码的尊重的行为,导致相当一部分中国用户失去了存储其中的照片。而且它引发的用户对雅虎品牌的失望和不信任,对雅虎来说更是难以挽回 的损失。大家都知道,“客户第一”一直都是阿里巴巴宣扬的核心价值观,难道雅虎相册的用户就不是客户?到底是马云铁了心要把雅虎品牌搞砸呢还是所谓的价值 观只是口号?或者是两者皆有?

这几年中国雅虎的历史就是逐渐被瓜分的历史:搜索团队被调走,于是有了后来的淘宝网搜索引擎;IM 团队被独立出去,于是有了后来的阿里旺旺;挖走了广告搜索团队,于是有了后来的阿里妈妈;口碑网发展得不好,于是中国雅虎和口碑网合并,利用中国雅虎的品 牌和技术支持口碑网;最后,中国雅虎的整个工程技术部都注入淘宝,原来的主要业务“雅虎关系”直接关闭并且推荐用户使用淘宝网的“淘江湖”。时至今日,中 国雅虎已经气息奄奄,再无回天之力了。

我经常觉得,恩,马总在下一盘很大的棋,我们这些普通员工是不明白的。不然为什么“搞死中国雅虎”这个庞大的项目规划和施行得这么好?还是阿里巴巴 一直在用实际行动考验中国雅虎员工的价值观呢?而且颇具讽刺意味的是,尽管马云费尽心思拿到了中国雅虎的搜索资源,最近却又和微软的 Bing 合作推出了 Etao 搜索,当初的那些搜索资源都用来做什么了呢?

还有一点不得不提的是中国雅虎和阿里巴巴之间的文化冲突。阿里巴巴一直都不能算一个真正的互联网公司,它只是以互联网作为工具,大部分业务的进行还 是靠线下的销售。阿里巴巴最重视的是销售部门,整体的文化是销售文化,它所取得的成功也都只是商业上的成功,这也就从根本上决定了它不可能像 Google, Yahoo 和 Facebook 等这些真正的互联网公司具有理想主义色彩,也不可能成为优秀工程师向往的地方。马云自己也经常放言说要“超越沃尔玛”,从来没有说过要超越 Google 之类的话,因为根本不在同一个领域,阿里巴巴更像一个传统的商业公司。我并不是说做电子商务的公司就不算互联网公司,同样是做电子商务,Amazon 就是互联网行业的领头羊,它非常重视技术,还是最早提供云计算服务的公司,它就是一家真正的“IT公司”。

而中国雅虎的技术资产全部来自美国 Yahoo ,工程技术部也继承了 Yahoo 的“技术文化”。“技术文化”偏重简单实用、冷静思考和解决问题;而“销售文化”则重视加油鼓劲,更喜欢喊口号,越热闹越好。我承认这两种文化都有它们的 合理之处,但是强迫工程师接受那种“销售文化”就会有很多矛盾出现。阿里巴巴内部有时候玩得还比较过火,跳钢管舞倒也算了,但很多时候做游戏会直接让一个 同事站到前面,然后轮流问他诸如“第一次用了多长时间”之类的问题。并不是所有人都喜欢这么玩儿的,“贱文化”和“骚文化” 的最大一个弊端就是很容易引起一些人的反感让他们觉得被侮辱,而公司不是经常倡导要对人才各尽其用么?为什么要用这样的文化把一些“思想保守”的人驱逐出 去呢?我就听说过一些非常优秀的工程师因为这些东西而坚决不去参加公司的培训和集体活动,中国雅虎的很多人应该也是因为无法适应这种“销售文化”而出走 的。

另外,当年和我一起通过校园招聘来到雅虎本来有不少人,在 2008 年 3 月份的时候我们还曾一起在北京参加了一个叫做“集结号”的新人培训。不过在我入职之后发现,有几个人直接被调动到了阿里巴巴在杭州的其它子公司,还有几个 做搜索的同学虽然人在北京,签的却不是雅虎,而是什么“阿里巴巴集团搜索事业部”——当时雅虎的搜索部门已经被独立出去了。之后我也和那些最终没有来雅虎 的同事聊过,他们都表示很郁闷,表示自己并不是很情愿去其它公司。这件事情让我感到很气愤,明明大家都是冲着中国雅虎来应聘的,为什么在发放 offer 之后又进行调动呢?当然,阿里巴巴肯定是做了一些说服工作让那些同事“自愿”服从调动的,但是那个刚好出现了金融危机工作比较难找,其它公司的招聘也早已 结束,而且大家都是初出茅庐的学生,能不服从么? 那几个同事也实在是太光荣了,刚入职就完美表现了自己“拥抱变化”的价值观,KPI 应该给五分。

不只是新入职的员工,因为中国雅虎的业务变化频繁,平时也经常会出现内部调动,而中国雅虎在北京,调动的话就很有可能需要去杭州,这对于很多已经在 北京安家的同事来说并不是一件小事。但不服从调动,就是价值观有问题。五十六种语言,汇成一句话:拥抱变化拥抱变化拥抱——变化。

在写这篇文章的时候,我不断提醒自己:我的目的是要让大家了解一下中国雅虎,千万不要写成针对阿里巴巴的檄文。但真实情况确实是那个样子,很多事情也是人人皆知,无法绕过去不说。相信很多人都还记得中国雅虎首页的那次糟糕的改版,把原来清爽干净的页面改成了屎黄色, 据说这是当时的 CEO 金同学坐在设计师旁边亲自指导的结果。如果一个乡镇企业的老板非要外包公司的设计师把网页做成他想要的也罢了,但作为一个缺乏审美能力的 CEO 居然连“把设计的工作交给设计师”的觉悟都没有,实在让人觉得不可思议。就算是一心想要“去雅虎化”,也没有必要这么羞辱设计师们吧?

不知道为什么,有些东西不用每天灌输也深得大家认同,怎么折腾都无法斩草除根。我在雅虎的时候从来没有任何一个人和我们说“你们要热爱雅虎,要以雅 虎为荣”之类的话,但是每次公司给员工发放印有雅虎 LOGO 的杯子或者背包的时候,大家总是一哄而上,疯抢干净。在中国雅虎和口碑网合并之后,因为担心以后再也领不到雅虎 LOGO 的笔记本等文具,不少同学都开始申请办公用品留作纪念。由这些事情就可以看出工程师们认同的到底是哪一种文化,大家自然会用脚投票。这些事情甚至让中国雅 虎的一些非工程师同事也觉得难以理解。这种生命力强劲的外来文化可能也是阿里巴巴一直不满中国雅虎的原因。

真正的开放应该是同事之间开诚布公、乐于分享和坦然接受批评,而不是不分场合地讲荤段子,不是让别人站到前面然后问别人“第一次用的是什么姿势”; 真正的“员工第二”是站在员工立场上考虑问题、虚心听取员工提出的问题,而不是在员工有意见的时候首先进行价值观教育,不是强迫员工拥抱不可理喻的变化; 真正的对“用户体验”的重视是尊重用户、切身考虑用户感受,不是在年会上把某个子公司的总裁骂哭,不是为了巨额广告费用而在首页做弹窗,不是让员工为了 KPI 每隔几个月就想着改版;真正的“幸福感”是来自于发自内心的对公司的认同、对公司产品的成就感,而不是来自于整齐划一的口号和对某个人的崇拜,也不是来自 于被灌输的“换个角度看世界”。脱离了原本的初衷,就算宣传得再好口号喊得再响亮,也不过是看上去很美的空洞的形式主义,这样的公司有什么底气去做“百年 公司”呢?

技术的悲哀

有着世界级的研发实力却不得不悲惨收场,我想再没有人比中国雅虎的工程师更能强烈地意识到技术所能决定的事情实在是太少太少。在中国,互联网只是一个营销工具, “技术改变世界”也不过是一个笑话。那些商人们从来不相信“一个优秀的程序员抵得上一百个平庸的程序员”,却虚伪地把“我不懂技术但是尊重技术”挂在嘴 边;他们整日想的不是创造价值,而是如何赚更多钱;他们更相信“廉价劳动力”所带来的成本优势,也总能把“技术密集型”的公司做成“劳动密集型”,以至于 国内的互联网公司不是山寨就是血汗工厂,雇佣着大批大批会写代码的高级民工。这样的环境和氛围,暂且不说 Google 和 Apple 这样伟大的公司,什么时候我们才能有产生像 37Signals 和 The Omni Group 那样的小公司的土壤呢?

文章的最后,还是那句老话:他日江湖相逢,再当杯酒言欢。

各位雅虎人,多保重了。

怎么去除一些论坛复制文本中添加的大量广告信息?

在一些论坛中(尤其是港澳地区的一些繁体论坛中),当我们从论坛上复制一些文本时,会发现其中被插入了大量乱码、广告、关键字等信息,这是一个比较老式的系统,其用途是防止内容被盗链。但是我一直主张,互联网是一个开放的世界,互联网上的道德是靠个人素质和观念而非强制措施去做的,这种低级的反剽窃系统,首先在实际效果上完全无法避免内容被复制,其次会在客户端增加大量垃圾信息,浪费带宽、服务器资源和客户端资源,而且当我们想要把这些资源收藏下来时又会非常麻烦。

去除这种垃圾信息的方法有很多,我在这里介绍其中一种,这里需要一个支持正则表达式搜索的文本编辑器,我个人惯用收费的EditPlus,如果需要免费软件,那么还有优秀的开源文本编辑器Notepad++可供选择。除此之外,我使用了Adobe Dreamweaver CS5 来减轻一部分工作。

首先来看下面一段文字:

_L 0x016082B8 0x0001869F
;l-]&Z1V+h._)L☆°** 网站名称 **°☆_L 0x01608488 0x0001869F1A,y0O/l%^'s+A
_L 0x01608658 0x0001869F/o6V8x+m1m:o6b:p
_L 0x0160B1D8 0x0001869F!w3p$R2F4m#c;B:a
_L 0x0160B3A8 0x0001869F"Z:T-{-N-F0D5f

这是一段节选自某论坛的PSP游戏金手指代码,我们真正需要的是:

_L 0x016082B8 0x0001869F
_L 0x01608488 0x0001869F
_L 0x01608658 0x0001869F
_L 0x0160B1D8 0x0001869F
_L 0x0160B3A8 0x0001869F

这样一段而已,后面的都是垃圾信息。

完整的代码有过百行,要去除垃圾信息,一行一行手动删除是非常麻烦的。那么要找到快速解决的方法,首先要知道这段垃圾代码的本质是什么:

_L 0x016082B8 0x0001869F<span style="display: none;">;l-]&amp;Z1V+h._)L☆°** 网站名称 **°☆</span>
_L 0x01608488 0x0001869F<span style="font-size: 0px; color:rgb(255,255,255);">1A,y0O/l%^'s+A</span>
_L 0x01608658 0x0001869F<span style="font-size: 0px; color:rgb(255,255,255);">/o6V8x+m1m:o6b:p</span>
_L 0x0160B1D8 0x0001869F<span style="font-size: 0px; color: rgb(255,255,255);">!w3p$R2F4m#c;B:a</span>
_L 0x0160B3A8 0x0001869F<span style="font-size: 0px; color: rgb(255,255,255);">"Z:T-{-N-F0D5f</span>

这样就很明显这些垃圾信息是怎么隐藏在文章中了,一个是使用了display:none的span元素,另一部分则使用了大小为0、颜色为白色的font标签,那么,只需要把包含在这部分中的内容剔除掉就可以了。

  1. 首先在浏览器里右键鼠标,查看源代码,把需要复制的部分的源代码(注意是源代码)复制出来,单独粘贴在一个新文件里,并把这个文件保存为.html。
  2. 用Adobe Dreamweaver CS5 打开这个html文件,点击左侧的工具栏中自动套用格式的按钮。这一步可以让乱七八糟的文件变得有序,节省一些时间,但是并不是必须的,如果您没有这个软件,大可跳过。
  3. 在文本编辑器中打开文件,点替换,勾选下方选项中的”使用正则表达式“,在搜索文本中填入我们要剔除的东西<span style=”display: none;”>.*</span>,中间的”.*”表示任意字符串。替换文本中什么都不要填,点全部替换,会发现所有被<span style=”display: none;”></span>包括着的文本全部被剔除了。
  4. 用同样的方法解决包含在<span style=”font-size: 0px; color:rgb(255,255,255);”>.*</span>中的内容
  5. 优化排版

至此,文本中没用的东西已经被全部剔除了~

无题

  • 薰:“你丈夫伤那么重,你怎么不去医院陪他,反而替他出差?”
  • 泠:“有凉和莉在呢,莉又有医师资质,基本不用担心。”
  • 薰:“呃……不是说这个啦。我的意思是,你这个当妻子的跑外地出差,让别的女孩子照顾自己的丈夫,不觉得不放心吗?”
  • 泠:“呵,因为津如果需要什么帮助,必须明说她们才能明白。而在这么远的地方传达他的意志,却只有我才可以做得到啊。”

关于延迟发布的 WordPress 3.0.1 简中版的一些个人感想

前些日子,WordPress进行了从2.9.x到3.0.x的重大升级,但是简体中文版却迟迟不见动静,这在圈内似乎也引起了不少的震动。而在3.0版本发布42天之后,WordPress 简体中文版终于发布,版本号直接跳到了更新的3.0.1。与此同时,WordPress 简体中文官网上也放出了相应的公告,大致解释了之前迟迟没有发布的原因。

首先对数月的翻译停滞对各位表示诚挚的歉意。由于 Paveo 工作繁忙,今天起,WordPress China 由我接管,多谢他对我的信任,也希望大家多多支持我们!

然而,事情却似乎没有完全平息……

今天在 Twitter 上看到某位业界比较知名的前辈,对于 WordPress 简体中文版推迟发布做出了“这更新速度之慢足以看出 WordPress 是多么不重视中文用户。”这样的评价,说实话,虽然我并不了解这次推迟发布事件的真相究竟为何,也不知道这位前辈做出这样评价背后是否有什么特殊的意味,但是我心里总是觉得不怎么舒服,所以就留下这篇文章。

WordPress 3.0 简体中文版推迟发布的这段日子里,可说是流言四起。我本人曾经听说过负责 WordPress 简体中文翻译工作的志愿者不幸因意外辞世的流言,暂且不论“因意外辞世”是真是假,但是翻译工作是由“志愿者”而不是 WordPress 的员工进行的这点应该是没有错。

由于“志愿者”的工作性质,虽然我并不知道他(们)与 WordPress 官方之间是否有什么合同或者协议,但就根本上来说,WordPress 的翻译工作应该是出于翻译工作者自身的意愿,而不是受迫于或受雇于 WordPress 官方,因此,将 WordPress 简体中文版发布过晚归咎于 WordPress 不重视中文用户,个人觉得稍显牵强。

而从个人情感上来说,能够以个人的志愿来为如此广大的简体中文用户服务,把如此优秀的软件带给我们,首先就这一点上来说,就算谈不上“尊敬”,多少也应该足以赢得起码的“尊重”吧。翻译工作的停滞,可能是因为志愿者遭遇不幸,可能是因为生活或工作过于繁忙,也可能只是因为纯粹的失去了兴趣和热情,但不管怎样,他(们)已经为我们带来了那么多,不解网上那些抱怨、埋怨、甚至辱骂着他(们)的人们,究竟是出于怎样的动机,怎样的心境,才能做出如此的举动来。

志愿者也好,官方工作人员也好,他们为我们奉献了许多,并不是因为义务。我们大家在习以为常的使用过程中,有多少人曾经贡献过自己的代码和创意?有多少人曾经给予过哪怕1美金的捐助?又有多少人去信说过一句谢谢,哪怕是在心中怀有一丝感激之情?

尝试使用WordPress Mobile for Android发布文章

今天在CNBETA上看到一篇介绍网页工作者的 Android 应用的文章(估计多半又是哪里转了的,呵呵),其中看到这个 WordPress Mobile for Android,觉得可能会有点意思,就去下载了个。实际用下来……呵呵,是挺有意思~
这样一来,以后就可以在手机上写博客了,不过手机上写长篇毕竟会很累,要写出高质量的文章,果然还是要用电脑了……
顺便抱怨一下,Milestone 这个实体键盘实在是设计有些问题……那个导航键巨碍事啊……