Roger Boisjoly

今天公司里的一个项目上的争论让我又想起了Roger Boisjoly。那是半年前了,看到的那篇关于他的文章

Roger Boisjoly was an engineer at solid rocket booster manufacturer Morton Thiokol and had begun warning as early as 1985 that the joints in the boosters could fail in cold weather, leading to a catastrophic failure of the casing. Then on the eve of the Jan. 28, 1986, launch, Boisjoly and four other space shuttle engineers argued late into the night against the launch.

Boisjoly could not watch the launch, so certain was he that the shuttle would blow up. In the months and years that followed, the disaster changed his career and permanently poisoned his view that NASA could be trusted to make the right decisions when matters came to life and death.

Boisjoly was not the only engineer who attempted to stop the launch and suffered for blowing the whistle. Allan J. McDonald was Thiokol’s program manager for the solid rocket booster and became the most important critic of the accident afterward. When he was pressed by NASA the night before the liftoff to sign a written recommendation approving the launch, he refused, and later argued late into the night for a launch cancellation. When McDonald later disclosed the secret debate to accident investigators, he was isolated and his career destroyed.

当时看了以后就想,如果我是Roger Boisjoly,如果我在他当时的那个位置上,我会怎么做。我会像他一样去做么。如果我知道那样做的结果,我仍然会像他那样去做么。其实我们每个人都应该问一下自己的内心,如果我们在他当时的那个位置上,我们会怎么做。如果我们知道那样做的结果,我们仍然会像他那样去做么。并非道德审判,只是我们需要知道我们自己内心是怎样的一个人。

悲观一点的看,处在Roger Boisjoly当时位置,无论怎么做都是错。报告问题是错,不报告问题也是错。报告问题,你就是花剌子模的信使。 不报告问题,等出了问题,你就是背黑锅的人。横竖都是输,看不到赢的出路。或许出路就是当初不要做这份工作。

扁鹊兄弟三人行医,扁鹊自己都承认“长兄最善,中兄次之,扁鹊最为下”,但“长兄於病视神,未有形而除之,故名不出於家。中兄治病,其在毫毛,故名不出於闾。若扁鹊者,鑱血脉,投毒药,副肌肤,闲而名出闻於诸侯”。所以这就是人类的天性使然,自古以来如此。

事与愿违

规则的改变往往会产生当初制定规则的人未曾料到的效果。例如九十年代中期刚刚通过博斯曼法案的时候,并没有很多人想到几年后欧洲会假护照泛滥。

今天又看到一个新的例子。事情是这样的:最近有人在华盛顿州提起诉讼,声称Mitt Romney所在的共和党应该被是做一个小党(minor party),而不再是一个大党( major party),因此要求法院禁止Mitt Romney出现在今年十一月的总统选举选票上。将共和党视作小党的理由是:州法律规定,满足大党的条件是该党的正式候选人在上一次选举年中获得超过百分之五的选票,而华盛顿州的共和党并没有在2010年的华盛顿州国会参议员选举中正式提名任何一名候选人。

诉讼的结果是:法院裁定诉讼无效。法院认为,虽然华盛顿州共和党在上次选举中没有正式任命候选人,但是他们仍然有通过一定的程序选择了Dino Rossi作为他们的候选人,并且最终获得了48%的选票。所以共和党仍然可以被是做一个大党。

法院的裁定看上去蛮合理的。但是有法律专家指出,这个裁定给小党提供了一个前所未有的方式迅速成为大党:只要一个小党在今年的选举中悄悄的选择奥巴马或者Romney作为他们的候选人,他们就能摇身一变变成一个大党了。

驾照请随身携带,谢谢

朱苹果同志已经发生了两次忘记带驾照就开着车出门的情况了。

第一次是我们家保姆刚来的第一天。朱苹果同志下午四点多出门去了,说要去Lynwood的沃尔玛去拿几本给儿子买的书(至于为什么不直接ship到家里,那是另外一个议题暂不论)。过了半个钟头朱苹果打电话回来了,哭出乌拉说发现皮夹子没带。我说那你就回来。她说不行,驾照也在皮夹子里面,不敢上路,万一因为屁大一丁点儿的事情被警察拦下来,一看没驾照,那吃单子要吃死了。没办法,只好我去送一趟皮夹子,把刚来的保姆和儿子单独留在家里,不放心也没用了。而且那时候已经五点钟了,下班时间,405那个堵啊,我一个人还不能carpool。一圈回来,烧掉汽油若干。

第二次是某天早上。朱苹果同志很罕见的一大清早就出门去了,八点都没到,我还没起床呢。过了一会儿我也起来了,正泡咖啡呢,电话响了,是朱苹果同志从某个加油站打过来的,说车没油了,但加不了油,因为皮夹子没带(至于为什么总是能把车开到非加油不可的境地,那是另外一个议题暂不论)。我说那你等着吧,好歹让我把咖啡喝了吧,再去帮你送钱包。又过了一会儿,我正喝着咖啡呢,电话又响了,又是朱苹果。这次朱苹果很愉快的跟我说,皮夹子找到啦,原来是放在后备箱里面了,刚才忘记找后备箱了。幸好我拖拖拉拉的还在喝咖啡,还没出门,否则冤死了。

忘记带驾照的可不止朱苹果一个。今天jwa愁容满面地跑进我办公室,我一问,原来是驾照没带,正在犹豫怎么办,要不要冒险一下就这么开回去。驾照没带的原因是这个周末jwa同学去outlet买了一身新行头,今天是穿着新外套来上班的,驾照忘记在老的外套里面了(为什么单单这次换外套忘记了,难道之前从来不换外套的么――嘿嘿,没错)。我说还是别冒险了吧,抓到罚死你。听到要罚款,jwa同学就打消了侥幸的念头,快下班的时候乖乖的跑过来搭我的车。我只好把他送回家,路是远了点,不过E Lake Sammamish Pkwy风景不错,一路湖景。

Anyway,广大亲爱的同学们,驾照请务必随身携带,谢谢。

一个极品下属的故事

有个下属,堪称极品,不吐不快。

伊以前在偶们公司干过六年,后来出去了几年,这次算是二进宫。所以伊还没来上班时就提出说可不可以仍然用以前的邮件帐号。这事儿可以理解,如果能用以前的帐号,遇到朋友就可以说“偶又回来上班啦,邮件帐号不变哦”,还是很方便的。不过IT一查,发现伊以前的帐号已经被别人用了,没办法。伊又通过人事部门提出说可不可以要一个笔记本电脑,理由是要work flexibility,被偶和偶老板直接拒绝:没有业务需要。

后来伊来报道上班了。没想到来报道的第一个礼拜伊就又把邮件帐号的事情给提出来了。这次伊写了个邮件给行政助理,说要改帐号,邮件抄送了偶,还抄送了偶老板。不知道伊为什么要抄送偶老板。这种IT的事情,都是直属老板就可以批的。就算直属老板没权限批,偶也自然会让偶老板批的,轮得到伊来抄送偶老板么。伊在邮件里列了三个不同的帐号名字,伊对行政说,希望能改成那三个帐号中的一个。偶收到邮件,顺手就在Outlook里面一查,发现其中两个已经有人用了。偶就不明白了,难道伊不知道可以用Outlook先查一下的么。

伊来的第二个礼拜五,偶们就搬办公室了。之前在做搬家计划的时候,行政是按照伊是一个崭新的新员工来排的,所以伊被排到和另一个人合一个办公室。离搬家日只剩一个礼拜的时候伊提出说伊应该有一个单独的办公室,因为伊之前在偶们公司干的六年应该被算在伊的服务年数里面的。不过伊不是跟偶提的,偶一开始一点都不知道,直到偶收到偶老板的一封邮件,让偶处理一下这件事情,偶才知道有这回事儿。那伊为什么不直接跟偶提呢,搞不明白。偶收到偶老板邮件,一查人事系统,果然那六年被算上了。再去问行政,行政说太晚了,计划不能变了,只能先搬着,搬好以后再搬。偶觉得这也合情合理,就这么跟伊说了。

之后那个周一,办公室搬完了,偶路过伊的新办公室,伊喊住偶,说有一个问题不知道应该找谁解决。偶问伊什么问题。伊说伊现在的办公桌是靠门的,而伊的办公室室友的办公桌是靠墙的。伊说伊想要靠墙的。偶当时就愣住了,第一次遇到这种事情还要让老板来解决的。难道伊就不能直接跟另一个人谈一谈,看看能不能换一换么。实在不行,都已经跟伊说过了,很快就帮伊落实单独办公室,难道不能就将就两三个礼拜么。让你临时和人合一个办公室合几个礼拜,就有那么困难么。

后来偶又去和伊去做一对一。伊说伊需要一个师傅,说现在没有师傅,有很多问题都不知道可以问谁。偶说你不需要一个专门的师傅。偶说偶一般只给大学刚刚毕业的人安排师傅,他们刚刚踏上社会,又刚刚来到偶们公司,一切都是新的,有一个专门的师傅会好一点。而对于那些有经验的,尤其是已经在偶们公司干过的或内部转岗的,本身已经会钓鱼了,只是换了个池塘而已,熟悉一下新的池塘就可以了,不需要一个专门的师傅。伊听完对偶说,新员工培训的时候说直属经理会给每一个新员工指定一个师傅的。偶听了火大的不得了:居然教训起你老板来了,轮得到你来告诉偶怎么当老板么。

一个员工,新来乍到,什么贡献都没有做,就要这要那的,要笔记本,要办公室,要靠墙的桌子,要心仪的邮件帐号,还对老板的工作指手画脚。算偶运气好,遇到了这样的下属。

生活中总有一些事情让人狂汗(51)

昨天看败的test case,看到一个NullReferenceException,一路看下去,发现是从这个NoRetry()里那个catch里面抛出来的:

    public static void NoRetry(Action action)
    {
        try
        {
            action();
        }
        catch (TableRetryWrapperException e)
        {
            throw e.InnerException;
        }
    }

然后我就郁闷了,到底是TableRetryWrapperException的InnerException是一个NullReferenceException,还是说那个TableRetryWrapperException的InnerException是null,导致e.InnerException抛了一个NullReferenceException出来呢?

谁写的这种脑惨代码呀!

敞篷车FAQ

1. 敞篷车开起来会很吵么?
还好吧,基本上和开着窗差不多,高速上也还是能听听唱片什么的,爵士乐什么的当然听不清楚了(就算不敞篷其实也不怎么听得清),听听Rolling In The Deep什么的没什么影响。不过敞篷进隧道比较惨,隧道里面声音超大,开着篷会连边上人说话都听不清。

2. 敞篷车开起来会风很大么?
不会。顶多就是头皮上有风(文艺的说法是微风拂过发梢),车里面是没风的,和盖着顶的时候差不多。

3. 敞篷车开起来会把头发吹乱么?
不会。至少男生不用担心。女生头发长的话,稍微往下面坐一点点就好了。相比之下还是开着窗时的风更大。

4. 敞篷车开起来会很冷么?
不会特别冷,也就是和开着窗差不多,或许还比开着窗还稍微暖和一点。

5. 敞篷车开到一半下雨怎么办?
雨不大就继续开。像西雅图人民,雨不大走在街上也不打伞的。雨实在大了就靠边停停,把盖子盖上。要是在高速上开到一半下大雨会比较悲剧,所以上高速开长途之前要查一下沿途的天气,还要注意观察前方的云层情况。在local的话,比较高级的敞篷车不需要停车就可以盖盖子了,比如奔驰宝马保时捷什么的,都可以在不超过20mph的时速下开关盖子。Miata就比较挫,要进P档才能盖盖子,所以卖得比较便宜。

6. 敞篷车开起来会比较耗油么?
应该会的吧,不过应该也不会差太多。很介意这么一点点油钱的话就还是不要买敞篷车了,买Hybrid Camry最合适了。

7. 敞篷车开的时候会不会被砸到鸟粪?
理论上应该会的吧。不过我从来没遇到过,不但人没有被砸到过,车里也一点点鸟粪也没有的。实在砸到了也没办法,走路还会被砸鸟粪呢。

8. 敞篷车开的时候会不会吸入很多尾气呢?
应该会的吧。所以大塞车的时候就别开盖子了。如果只是等个红灯什么的,也就一会儿会儿,不要紧的。

9. 敞篷车没有B柱,会不会不安全呢?
应该不会吧,否则不会被TSA批准的,否则早就被人告死了。敞篷车都有防滚架的(roll-over bars)的,就是说车翻过来也能撑住。不过如果担心路上倒下一棵大树什么的,那就没办法了。要是到了侏罗纪公园,被恐龙踩一脚肯定就踩扁了。最好的办法就是不要去侏罗纪公园。

10. 软顶的敞篷车下雨的时候里面会不会噼里啪啦的很吵呢?
不晓得,没坐过软顶的敞篷车。

活到老学到老:Rent vs. Lease

有一些英语单词稀里糊涂的用了很多年。有些是至今还理解得有点囫囵吞枣,平时就依样画葫芦的这么用着。有些是最近才发现原来很多年的理解都其实是不正确的或不完整的。

1. Rent vs. Lease

美国人管到Avis租车都叫”rent a car”,但到dealer租车都叫”lease a car”;租一套房子都叫”rent an apartment”,用来收租的房子叫”rental apartment”,但是公寓管出租的人办公室都叫做”lease office”,房屋出租合同都叫”lease agreement”,没看到过有人管出租合同叫”rent agreement”。很难用短期或长期来区分rent和lease,虽然rental car都是只租几天几个礼拜的,但租房子都是按月按年算的;也很难说rent是口语lease是书面语,很多贷款申请表格上面问到当前居住情况,都会问”own or rent”,很少有说”own or lease”。

2. Transparent (vs. Opaque)

在程序员中间说“某某字符串(对我的代码来说)是透明的”,意思就是这个字符串里面的内容不管它是某个人的名字也好,还是某一串序列号也好,我的代码都不会去关心它的意思。但好像英文里面的意思正好是反过来的,不能用”transparent”直接替代中文里面的”透明”。英文里面如果要表达“某某字符串是透明的”,要说”that string is opaque”。类似的用法还在最近的一本杂志上看到,说的是中国地方政府发行的债券:”by selling bonds they can replace opaque debt with transparent debt”。

3. Replace

原来以为replace嘛就是替换的意思,把某某东西给换掉,换成另一样东西,例如:”by selling bonds they can replace opaque debt with transparent debt”。结果后来发现很多加油站的油泵上都贴着这么一行警示:”Please Replace Nozzle After Fueling”(nozzle就是加油枪)。很显然,这行话并不是说每次加油以后都要换一个新的加油枪,只可能是说加油以后请把加油枪放回远处,这里的replace是“把东西放回去”(re-place)的意思。

牧马人

华盛顿州的牧马人超多,时常能在一个超市门口停着两三辆。开在路上遇到对面有牧马人过来的时候,大家会相互招个手。据某汽车界极资深人士介绍,在美国有两款车的车主会在路上遇到时相互打招呼:牧马人和Miata。难怪哦。牧马人和Miata的共同点是:不喜欢的可以很轻松的挑出一大堆毛病,而喜欢的就都是真心的喜欢,由衷的喜欢,死心塌地的喜欢。喜欢牧马人只需要一个理由:牧马人是唯一的一款可以敞篷的SUV——放眼望去,能把整个车顶给掀掉的,没有第二款了。天窗什么的不算的,不好跟把拆掉车顶比的。只有把整个顶都卸了,才有够爽、够豪放。

不过去了几次加州,路上都没看到多少牧马人。否则以加州的天气,理应是和夏威夷那样,遍地都是掀了顶的牧马人。有些其他州也挺少的,比如东部那片,比如多伦多(亏得多伦多就在底特律边上呢)。后来想明白了为什么:加州和东部很多高速都是限速65的。以前的牧马人,手动挡的还好,自动档的上了六十多就开始发肉了,跟Prius似的,并个道什么的提速提不上去。高速上面一般大家都能开到比限速快一点,限速65的能开到将近75,所以在限速65的州大家不喜欢开牧马人上高速。不过今年换了新的发动机和变速箱以后是真心的赞,估计在加州会挺有前途的。本来自从悍马停产以后,广大喜欢悍马的人民群众——尤其是加州的潮人米人们——就一直在寻找新欢。GL450有点family,Escalade还是不够硬派(虽然Entourage这个大广告做的效果相当的好)。牧马人还是很有悍马接班人的样子的。

小孩子吵架

那年夏天我还在念研究生,放暑假了就整天泡在实验室,不做项目的时候就在交大BBS上跟人吵架。那时候去的最多的是交大快讯版。那个版是去的人最多。我已经不记得当时都吵些什么话题了,不过当时吵得是很认真的,打大段大段的字,字斟句酌的挑别人的毛病,然后逐条的反驳别人挑我毛病的帖子。有时候有些围观的,说两句支持的话,就更有劲头了,努力要证明自己是正确的给大家看,不能服软,不能松口,一定要争这口气,不能令广大支持自己的群众失望。

不过后来我明白了,其实这种在论坛上的公开吵架,吵架的双方字斟句酌的那些心血基本上是浪费掉了的。只有吵架的双方当事人还沉浸在旁征博引、尖锐指出对方前后自相矛盾的地方的成就感中,只有他们才觉得自己是在辩论一件意义重大的命题。其实呢,大多数的人基本上看都不看的,直接跳过或者删掉的。

方舟子和罗永浩还不是很明白这个道理。好像他们还在吵,因为微博上偶尔还能看到一两个人转发他们的帖子。不过内容我已经懒得看了。我相信他们仍然是很认真的,很认真的在挑对方毛病和给自己辩解,那股劲头就和我当时在交大BBS上吵架时的差不多。估计现在仍然有兴趣看他们吵架的人已经不多了,老罗的公司逃税也好,方舟子的老婆抄袭也好,其实真正关心的人寥寥无几。不过好像他们俩自己还没有意识到这点。貌似他们自己还觉得全世界的眼睛还都在盯着他们看呢。

他们俩应该放个假,找个类似Viñales Valley的地方呆一阵子,不用多,两个礼拜就可以,整天晒晒太阳吃吃黑豆跳跳Salsa,不会跳就看人跳。两个礼拜以后回来,再看自己之前的那些文章、帖子,就会明白那些其实都是浮云。舒淇也应该这样。把手机关了,找几个老板蹭几天游艇什么的,就过去了。只有小孩子吵架才喜欢甩狠话,说什么“我永远也不和你说话了”。那么大的人了,删什么帖子关什么微博呀。

I Don’t Know

公司里开会,总有些问题是当场回答不上来的。比如老板问下属:这个功能我们测过么?或者是一个PM问另一个PM:你和某某某有sync过么?这时候被问的人有很多不同的方式来告诉对方“I don’t know”。

最直接的就是说”I don’t know”。这显得很弱,很弱小,一副已经缴械投降的样子,一副虱多不愁债多不痒的样子。更糟糕的是,有些人已经把”I don’t know”变成了口头禅,无论是什么问题上来,都先来一句”I don’t know”,然后再接着往下说。比如老板问,你想做前台还是做后台啊,回答是”I don’t know. Maybe frontend can better utilize my skills”。这种口头禅有点像中文里面的“随便”:吃什么,随便;要不要看电影,随便;什么颜色好看,随便。其实不随便的。既然不随便,就不要张口先来一句随便。既然心里有答案,就不要张口就来一句“I don’t know”。

稍微上一点档次的说法是“I will find out”。 说的时候一定要面不改色心不跳,一定要很坚定,很自信,很一身正气的感觉。回答说”I will find out”,是个人都知道说的其实是”(I don’t know, but) I will find out”。但这样子说比单纯的说”I don’t know”要富有建设性的多。老板们也喜欢看到这样子的下属啊,不知道没关系,只要努力求上进、态度积极就好。”I will find out”还有一些意思接近的变种,比如:”I will get back to you”;”I don’t have answer for you at this moment, but I will figure it out”;等等。

高水平的回答是:”Yes, I believe we have tested it. I will double check”; “Yes, as far as I remember, I had synced with him. I will follow up with him and make sure they are aware of blah”. 管它到底测过没有,管它到底sync过没有,先把胸脯拍了再说。最最重要的是在会上、在公开场合、在人多的地方一定不能显出胆怯来,一寸都不能让。就算回头牛皮被戳穿了,也没关系,大不了就脸皮厚一记,”Oops, it turned out that we didn’t test it. I will make it a priority to get it covered”,这样也就混过去了。况且,被戳穿的时候往往已经是几个礼拜或者几个月以后的事情了,那时候说不定今年奖金已经发过了。

还有些时候,有人即不说知道也不说不知道,只说”Let’s take it offline”或“Let’s table it”。新手还真的会以为对方会开完会来私下解释呢。其实说”let’s take it offline”的言下之意就是“这个问题我不想讨论”——不但现在不想讨论,而且永远都要再来问我同样的事情了,我不会回答你的。

蒲公英战争

以前蒲公英让我觉得还满诗意的。说起蒲公英,脑海中就浮现出一副充满了温暖的阳光的画面:一个少女,被夕阳的光辉围绕着,手里执着一支蒲公英,轻轻的一吹,就漫天绒绒的飞舞起来。

小学语文教科书里面还有很多歌颂蒲公英的诗呢。比如:狂风企图摧毁你的生命/你却借此繁衍了后代/大智大勇蒲公英/你还有多少感人的故事呢。还有这首:带着妈妈给你的小伞/到远方去寻找美丽的家园/穿过小树林/飞越小溪流/带着美好的希望/轻轻地落在土地妈妈的怀里/无数的小伞/迎来了一个春天

对蒲公英的美好印象在搬到新家以后瞬间荡然无存。前院和后院,草坪上,路牙子的缝隙里,树下面,到处都是蒲公英那张牙舞爪的叶子。好不容易累得半死把他们都揪掉,没过几天,下了一场雨,就又都长回来了,满脸霸道的丑陋样子,让人超有挫败感。古人说的“野火烧不尽,春风吹又生”,用来说蒲公英再合适不过了。

后来才明白,清除蒲公英光把露出来的部分铲掉是没用的,必须把地下的块根也挖掉——古人说的好啊,斩草要除根。估计说这话的古人当时所指的就是蒲公英。蒲公英的根真他妈的长啊,而且特别特别脆,不太好挖,稍不小就把根折断了,就留了好大一截在土里,过几个月就又回来了。而且草坪上的蒲公英挖掉一颗就留下一小块秃的,一圈挖下来,到处都是斑斑秃秃的,难看得不行。

难怪在The Lawn Bible里面把蒲公英(Dandelion)列为Top Ten Weeds的第一名:Dandelions have a long taproot (could be up to two feet) and spread by seeds. Digging out the dandelions just once won’t usually kill the plant. You may need to dig out the plant a few times before it won’t return.

这本书还提到,玉米蛋白粉(corn gluten meal)作为一种有机除草剂,可以杀蒲公英:the use of corn gluten meal can get rid of dandelions completely in about four years. 四年有点长,不过可以彻底清除,值得一试。

首鼠两端

拿星际来打个比方:三个人都用人族。甲一开始就狂造小兵,乙和丙上来直接发展坦克。发展坦克比较耗资源比较慢,所以甲已经造了很多小兵的时候乙和丙还只有一两辆坦克。乙看到甲用小兵抢了很多矿就眼红了,造坦克的决心动摇了,取消掉了一部分的坦克,把一部分的资源用来造小兵,美其名曰根据市场的变化和竞争对手的情况灵活调整战略布局。

打过星际的人都知道,这种局面通常来说只会有两种结果:

  1. 甲最终获胜。因为甲一开始用小兵抢了很多矿,后面等到乙和丙的坦克冲出来的时候丢了一两个矿给丙,但是甲还是有足够多的矿用来造坦克,造得比乙和丙更快。
  2. 丙最终获胜。虽然丙一开始没有抢到很多矿,但后面等到丙的坦克群造好冲出来,甲的小兵完全守不住矿,矿全都被丙抢走了。

无论如何,乙一定是输家。当乙的小兵造好冲出去的时候,乙发现大部分的矿已经被甲抢掉了。乙想用小兵去抢甲用小兵守的矿,那谈何容易。就算经过巨大的伤亡抢了一两个矿,这时候丙的坦克群已经出来了。