巴别塔上的雇工


博客迁移
9月 5, 2009, 3:52 下午
Filed under: 工作心情
我的博客迁移到http://www.morgancheng.com上,习惯使用RSS Reader的朋友可以订阅http://www.morgancheng.com/feed。决定自己申请一个域名做独立网站,主要是觉得Live Space无法满足我的需要了,自己的网站总是好控制一些。
 
在新的博客中,我将秉承有一说一的八卦作风,克服前一段时间发文太少的缺点,希望大家继续支持Open-mouthed


Microsoft + Yahoo!
7月 30, 2009, 12:43 下午
Filed under: 工作心情

从Microsoft号称要收购Yahoo!开始,一路上轰轰烈烈,鲍哥玩弄Yahoo!股票于鼓掌之中,也费了各个媒体很多墨水,现在这事总算是阶段性有了个结果。

大道理我不懂,我就懂简单的道理,Yahoo!成立于1995年,到今日年不过15岁,鲍哥也曾坦言,他只能远瞻公司10年之内的走向,而Microsoft和Yahoo!这个协议的期限居然有10年。10年的时间,在我国两个五年计划都做完了,10年的时间足够一个公司从创立到全盛再到衰亡,所以,我觉得这个协议只是一个阶段性结果,这段时间中太多变数,最后到底如何,现在难说。



Sometimes Bug, Sometimes Comments
6月 25, 2009, 10:10 上午
Filed under: 工作心情
//Sometimes, something doesn't work, bla, bla, bla. So, we do something to workaround it.
 
/*
在写代码的时候,最怕看见上面这样的注释,sometimes到底是什么time?
看到这样注释就知道这段code上下有个hack,既然有hack,那就有可能带来新的bug,
或者会让我这样的后来人维护起来很痛苦。
*/
 
/*
写javascript代码,经常可以看见这些sometimes commments,这都是前人们fix一些sometimes bug的遗迹。
倒不是因为javascript不好,而是因为DOM is mess,非javascript之罪也。
*/
 
/*
虽然我很不喜欢这样的sometimes comments,但是至少还要感谢前人留了comments,要是连sometimes comments
都不留,那就更惨了。
*/
 
/*
不过,我还是希望处理sometimes bug时,尽量写清楚什么是sometimes,什么浏览器,什么操作系统上的sometimes
什么样的操作导致了这样的sometimes。当hack不可避免时,提供的信息越多,越有利于代码的维护。
*/


Live这把是真的要Dead了吗
6月 2, 2009, 12:40 下午
Filed under: 工作心情

这次微软推出Bing搜索引擎,普遍反映是——至少不差,可以一用。我已经把浏览器的缺省搜索引擎设为Bing,试用几周看看怎么样,目前看来还比较让我满意。

虽然之前官方说法说6月4号Bing才会正式上线,但是至少中国地区Bing已经迫不及待地替换了Live了,访问live.com会redirect到http://cn.bing.com上去。于是,就有人说Live商标被微软放弃了,要改为树bing的大旗了。

就我所知,微软在线业务虽然经历了很多的re-org,但是事实上还是清晰地分为三大部分:

  • MSN,虽然国人一说MSN都首先想到的是一款聊天工具(也就是Live Messenger),实际上现在MSN只管内容相关的东东。
  • Live Search,搜索业务,只不过现在换了个马甲叫Bing。
  • Windows Live,除了搜索之外的一切在线服务,包括聊天的Live Messenger、管理图片的Live Photo Gallery,还有我现在正在写这篇文章的Live Writer,还有其他很多东西。

这么一看就很清楚,光是带Live的品牌就不是只有搜索才有,Live Search被Bing替代了,Live还Live着。

有说Bing是Bing Is Not Google的缩写,但是官方的说法是,Bing就是一个拟声词,表示搜索中了的那灵光一现。所以,我想Windows Live也不打可能改名为Windows Bing。



Bing一下吧
6月 1, 2009, 9:58 上午
Filed under: 工作心情

大佬Steve Ballmer宣布推出Microsoft新一代搜索引擎Bing,使用一下,感觉还不错,至少感觉中文搜索比以前好多了。

当你试用一个搜索引擎的时候,第一个想输入的关键词是什么?肯定是你觉得最能考验这个搜索引擎索引能力的词,打开Bing.com之后,我随意输入的是以下关键词:

  • {我的中文名}          —— 搜索结果和我完全没有关系
  • 江泽民                    —— 搜索结果比Google要和谐多了,bing可以根据访问者区域进行内容调整
  • 胡景涛                    —— 这个也很和谐
  • 巴别塔上的雇工    —— 可以搜索到这个Blog,不错,至少比号称检索内容比google还强的cuil.com要好
  • Morgan Cheng      —— 和搜索中文名相反,这个搜索结果和我相当相关
  • 猪流感                    —— 对时事的搜索结果也不错
  • {我故乡的县城}      ——也能搜到,而且有相关新闻和政府门户网站,组织得不错

整体看来,Bing还真不错,有求“必应”。

不过这些搜索都不是很有挑战性,来试试更生猛的吧。昨天看一个帖子说到有一个美国电影的中文字幕中有类似这样的话:“孔夫子说过:在你决定报复之前,先挖好两个坟墓”,我也想不起来孔夫子说过这样的话,所以,google一下吧,啊,不是,bing一下吧。搜索“孔夫子 要报复别人 准备两个坟墓”,结果依然不错。

以后有什么问题还是Bing一下吧。



无缝T恤
5月 23, 2009, 2:00 上午
Filed under: 工作心情

公司时不时会发T恤下来,有时候是为了参加某个活动有统一着装;部门有时候也会发T恤,是为了纪念某个产品的发布。一个结果就是,T恤成了我拥有最多的衣服类型:)

每次发下来的T恤,我都先看看是哪里产的,我发现一个规律,如果不是Made In China的,T恤的躯干部分都是一个桶状,也就是说左右腰部没有垂直的接缝。

图像327

最近部分发了Exchange Server 2010的纪念T恤,这次是Made in Hatti,和我总结的规律一样,这套T恤又是桶状的。如下图,在腋下,大部分T恤在虚线部分都是有垂直的接缝的,也就是说躯干部分是一前一后两块布缝合而成的,但是这套T恤就是一块整布。现在就检查一下你的T恤是怎么样的:)

image

我就是感到好奇的是,为什么大部分国产的T-Shirt都是用传统接缝方式制作的,而海地、多米尼加共和国这样的小国却采用了比较“先进”的无缝方式生产呢?也许有缝T恤都是供应内需,无缝的大多都用来出口吧。

生产这种无缝衣服应该不只是为了酷一些,而是为了降低生产成本,因为织布和剪裁是两个步骤,现在在机器上一次就织出成型的桶状布,虽然不能有Generic用途,但是这种布就是为了T恤而织的,降低了剪裁成本。



Ship It
5月 11, 2009, 10:25 上午
Filed under: 工作心情

图像321在微软参与某个产品开发三个月以上,就有资格拿到一个Ship IT Award的牌子,可以放在桌上炫耀,好比军人胸前的军功章。

最近我拿到了Windows Live Wave 3的Ship IT铭牌,这样就攒了三块S牌子:

      • Windows Live OneCare
      • Windows Live Wave 2
      • Windows Live Wave 3

不大清楚Live有没有Wave 1的牌子,也许没有,那么这三块牌子正好记录了Windows Live前三个版本的历程。

一般软件做到3.0版本,应该很成熟了,但是尽力三个Wave,到现在Windows Live还不算“成熟”,不过还是要Ship啊!

Ship就是硬道理,Ship才能证明价值,Ship才能赚钱,Ship才能获得真正的用户反馈。别管有多好的想法,要是不能变成软件或者服务给Ship出去,也都是枉然。

话说回来,Ship这么多东西了,如果还是不能获得成功,就需要反省一下是不是真的Ship了用户想要的东西,Ship完之后是不是真的收集采纳了用户的反馈,不能为了Ship而Ship,要为了提供价值而Ship,别每次Ship都只是和自己的上一个版本比,这就像左手和右手扳手腕,要和竞争对手比。



Windows 7 + Web 2.0
4月 24, 2009, 3:14 下午
Filed under: 工作心情
Windows 7发布在即,内部推出了一个具有Web 2.0性质的网络应用程序,用来发现Windows 7的Localization问题。

要说啥是Web 2.0,就我的理解,就是利用AJAX等交互性强的网页技术(比如SilverLight),提供一个方便用户参与的平台,在这个平台上,用户的行为和选择可以影响网站的内容。

这个内部应用也是这样,用户上去看到的其实只是一张接一张的Windows 7截图,但是都是Localized过的,比如我选择检查中文简体,看到的就都是翻译成中文简体的截图,我要做的其实就是看看这些截图上的翻译是否正确,是否让我这个母语是中文的人觉得舒服,如果是,那我就把他标为Good,如果不好,我就把它标为Bad,当然,我还可以标出哪些部分我觉得翻译得不好。这些人肉检查的结果,会被Windows产品组进行分析,从而修正不恰当的Localization。

上面说的只是基本功能,重复做这些人肉判断的东西也挺枯燥,关键的是——这个应用还有得分(score)和排名(ranking)。这两样东西真是众多成功Web 2.0应用的杀手锏,把得分和排名放在显目位置,用户就是喜欢攀比这些东西,从Level 1到了Level 2,就想进Level 3,从而想进Level 4……

让用户参与影响产品的结果,有了得分和排名,这个本来挺枯燥的人工检查过程,变得很让人上瘾。



从每日必博到每周一博
4月 11, 2009, 3:03 上午
Filed under: 工作心情
曾几何时,每天都有脑力和时间写博客,现在忙起来了,一周能有时间写一篇就不错了。而且,当有时间可以写的时候,发现也没什么好写。我觉得这是一个危险的信号,说明自己的想法越来越少了,很大程度上也是因为没有时间去想。以后,要时常逼迫自己去多写,多写才会多想。
 
 
 


再次戏说Bug
3月 29, 2009, 1:48 上午
Filed under: 工作心情

The only good bug is dead bug” —— Starship Troopers,the movie

s1909822[1]几年前我写过一篇《戏说Bug》,最近主要的工作就是fix bug,所以想再次戏说一下。

软件开发很复杂,软件开发的艺术就是控制复杂性的艺术,复杂的系统就容易出现种种原因导致的和预期不一致的行为,这就是bug,需要fix。大的软件系统更加复杂,所以bug更多,trace和fix bug成了软件工程师的家常便饭。

临近release,需要把bug控制在一定范围内,我们就要疯狂地屠杀bug。因为我刚加入这个team,我先了解了一下每个developer平均每周能够杀死多少个bug,然后努力去超越这个平均值,这样努力了几周,发现自己杀bug的效率还不错,基上每天两个。

转头一想,美国的反恐专家们是不是也曾这么想,我每天消灭多少多少个恐怖分子,保持这样的速度,打多少多少年的反恐战争,恐怖分子也就全被消灭了。事实上是,打了这么多年的反恐战争,恐怖分子越打越多。会不会我们也会越fix bug反而bug越多呢?

首先我们在杀死bug的时候要注意,别引入新的bug,如果这样就得不偿失了。在反恐战争中,为了杀死一个恐怖分子造成对平民设施的破坏,激起更大的仇恨,所以更多的人变成了恐怖分子,这就错了。

不过随着测试人员和用户的持续测试和使用,肯定还有以前未发现的bug被发现,没有办法,只能将他们列入屠杀名单。反恐战争中,突然又冒出某某组织对你构成巨大威胁,你也没办法,只好将其列入恐怖组织名单。

虽然我们都知道“唯一的好bug就是死bug”,但是我们都清楚,我们不可能在release之前fix所有bug,不然这个产品可能永远也不会release,所以在bug triage中,对于不是很严重的bug,就处理为won’t fix或者postpone,也就是说我们对这些bug忍了。在美国的反恐战争中,triage做的不好,本来恐怖分子就很多了,还非要把伊朗国民卫队列为恐怖组织,以下子多了几十万bug,哦,是多了几十万恐怖分子,这不是找麻烦吗?

面对蜂拥而上的bug,不得不让bug slayer们想,为什么造成了这种现状呢?是不是这个系统本身出现了问题?我们如果重新建一个勇敢新世界,是不是就不会有这么多bug了?我的观点是——绝不要重头写一个大型软件

软件开发很复杂,软件开发的艺术就是控制复杂性的艺术,复杂的东西就会有漏洞。大型软件之所以一现在还能工作,就是因为先前的工程师处理了很多这样的漏洞,如果重头再来,即使不用处理这些漏洞,也肯定会遇到其它同样量级的漏洞,所以,不要重头写。现有的架构不合理,可以re-architect,现有的code不合理,可以re-factor,但是不要完全推倒重来。

Microsoft曾经想重写Word的code,经历了惨痛的失败之后,重新拾回老的code base,才把Word从悬崖底下捞起来得以Ship;Netscape曾计划重写code,死掉了。假如这个世界在核冬天之后诞生新的人类社会,完全重头再来,只要那个世界有不平等和侵略,谁敢保准会不会有新的恐怖分子。