生活中总有一些事情让人狂汗(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)的意思。