巴别塔上的雇工


C# Generics
9月 30, 2007, 6:31 上午
Filed under: 技术体会

C#从2.0开始支持Generics,某种意义上说,算是吸取了C++的教训,类型检查是基于type而不是signature,实际运行效率也比Java的Generics高,但是有一个很ridiculous的问题,那就是+-*/这样的运算符操作不能够作用在类型参数上。

public static void AssertEqual<T>(T v1, T v2)
{
    if (v1 == v2) // not allowed by C#
    {
        Console.WriteLine(" OK: {0} == {1}", v1, v2);
    }
    else
    {
        Console.WriteLine(" Fail: {0} == {1}", v1, v2);
    }
}

这样的code有C++背景的程序员可能觉得没有问题,但是实际上编译会出错误

error CS0019: Operator ‘==’ cannot be applied to operands of type ‘T’ and ‘T’

因为C#的检查是基于type而不是signature,也就是说,并不是实例化这个方法的时候看T类型是否支持operator ==,而是需要有constraint来显示声明T是一个支持operator ==的类型的子类,但是,C#中所有operator的重载函数必须是static,既然是static,就没有virtual可言,所以,没办法使用operator。

这个连接介绍了一个办法可以绕过去,但是很明显,既麻烦,效率也不高。



先得尊重对手
9月 29, 2007, 1:01 上午
Filed under: 八卦杂谈

昨晚上看CCTV-5直播上海国际田径黄金大奖赛,开电视晚了点,没看到刘翔跑110米栏,就赶上最后的颁奖典礼。这次刘翔就拿了铜牌第三,胜败乃兵家常事,这没什么,只是CCTV-5的直播态度让人很惊讶。

似乎CCTV-5开始估摸着刘翔会夺冠,所以安排的直播结束时间大概就在110米栏颁奖典礼的时候,只是这次刘翔只是拿了铜牌,CCTV-5感觉不爽,在给刘翔颁发完奖牌和鲜花之后,解说员就说:“因为直播的时间有限,所以这次的直播节目就到这里,再见……”,银牌得主的脚还没来得及踩上领奖台,节目就结束了,更不用说冠军得主了,像我这样刚打开电视的观众连刘翔输给了谁都不知道。

既然CCTV-5把颁奖典礼考虑进直播,肯定就可以处理延时等情况,如果是刘翔夺冠了会不会没等第二名上台就cut呢?肯定不会,所以这个“直播时间有限”的理由实在站不住,当然,也许CCTV-5的同志们太想刘翔赢了,所以难以接受这个现实,也不想让这个现实“折磨”全国电机机前的观众,于是出此下策。只是,这样太不尊重对手了,泱泱大国,还是应该表现出一些大气。



看问题要多面
9月 27, 2007, 11:05 上午
Filed under: 八卦杂谈
All our confidence comes from experience.

很多道理只是听说,体会不深,或者说根本没体会,但是相关的经历就会深刻的教育我们。虽然听取道理有这样的限制,但是还是应该多听取,这样当真的遇到相关经历的时候,会顿悟“原来XXX说的道理真是有道理啊”,而不需要多次经历才能渐悟。

当年看《罗生门》的时候,只是感叹了一下,每个人都会因为主观原因,对一件事情的描述做一些曲解,讲出来的故事都是偏向于掩盖自己的问题。最近我有机会对同一件事情和若干人都交谈过,每个人讲的有共同也有不同,每个人都从自己的角度看问题,我就一下子想到了《罗生门》,如果把每个人说的话综合起来看,考虑每个人的立场和特点,基本也可以还原事情的真相。

“兼听则明,偏信则暗”,遇到问题和不同立场的人交流,绝对是有益无害,有了各方面的信息才能做理性的分析判断。



无法忍受Firefox了
9月 26, 2007, 2:34 上午
Filed under: 工作心情

工作方式就是写一点code,碰到疑难问题,就上网找找前人经验,用Firefox的话,就在全神贯注写code的时候,感觉有点不对劲,怎么不对劲,原来电脑的风扇在不合常理的呜呜疯转,要说我只不过在用编辑器而已,没理由CPU这么忙啊,用Task Manager一看,原来是Firefox占了50%的CPU(双核),没办法,只好杀掉了,还是用IE吧。



太阳照样升起:看不大懂,但是很好玩
9月 25, 2007, 5:22 上午
Filed under: 电影电视

首先坦白,这片我没看懂,没有领会姜文想要表达的深刻内涵(如果有的话),但是电影本身还是可以一看,比大部分国产片还是耐看得多,观影过程和电影本身都很有趣。因为我没看懂内涵,所以只能以一个俗人的角度发表影评意见了。

题外话: 在中影电影院看的此片,买了票之后和老婆在售票厅里坐着休息了一会,其间有四个人来买票的时候看见《色戒》的海报,都问:“色戒几点放?”此片还有下个月才能上映阉割版,当然,大家急切的心情可以理解:)

电影分成四个部分,只要耐得住性子看完,有点IQ的观众(长卫.顾说的)就应该能够理解,第一、第二和第四个故事可以衔接成一个完整的故事,但是第二个故事相对比较独立,也最难理解,但是最有趣。故事的情节(尤其是第一个故事)是比较荒诞的,但是只要不是太较真,也不影响观赏。我这个人是比较喜欢较真的,但是对电影比较宽容,可能因为我一直相信要看完一部电影才能评价,所以练就了看电影的好脾气,当然代价是从头到尾看了无数的烂片,《太阳》无论如何不能归为烂片之类,所以我能耐住性子看完是自然的。

最有意思的是第二个故事,黄秋生和陈冲的表演让人印象最深刻,虽然不知道这个故事想说明什么。虽然知道黄秋生是毛主席的fan,但是还是习惯了他演流氓地痞或者警察老大,出场的时候看他叼着烟弹着吉他唱《美丽的梭罗河》,还真有点不适应,不过也的确是——帅呆了。之前看影评说陈冲可以用两个字概括——“够骚”,看了之后觉得这评价太恰当了,当镜头对准靠在医护室门口的陈冲时,前排一溜的男同学们“哦”地惊叹起来。

片中大量的“隐喻”,以至于很多人开始胡猜起来。有说房祖明的角色其实是姜文的儿子,有说姜文扛着一杆弯枪表示他性无能,有说其实是姜文和陈冲合谋杀了黄秋生……我是觉得这个电影“隐喻”用得过了,连创作者也没法解释,观众反而充分发挥了想象力,不管怎么样,这片看看还行,如果真如姜文所说,没经历过那个时代看不懂,我说,看不懂也没什么可遗憾的。



同一世界,同一噩梦
9月 25, 2007, 3:13 上午
Filed under: 城市丛林

早先买奥运门票的时候就觉得这套系统够烂的,必要的提示没有,必要的查询功能没有,不够凑合着用吧,现在到了实质性购票阶段,问题终于爆发了。

早上收到email,说我虽然中签,但是从我的Visa卡里扣款失败,怎么会这样?我的卡里余额肯定够,卡号我反复验证过,再说卡号不对也不可能中签,唯一的解释就是这个卡设了消费密码,但是为什么一开始的时候不TMD的早说?而且我另外一个有消费密码的Visa卡成功扣款了,所以这也是没有道理。

打952008查询一下,人工服务就没是没人接,自动语音服务也没什么有意义的内容,还是自己跑一趟吧。

跑到中国银行清华园支行,已经有一大群和我一样遭遇的人来了,可以现金支付,但是对不起,系统坏了,交不了钱,也可以用刷Visa卡,但是队伍老长就不见动弹,到前面一问,前面的哥们说,他要交的钱已经成功的从工行转到了中国银行,但是还没有到奥组委,所以奥组委没有给确认通知,他只好在这里等着。大家怨声载道,把工作人员急得满头大汗,但是也使不上劲,系统烂一时也弄不好。

我也只好悻悻而归。

这就是所谓的科技奥运,果然不同凡响,走召火兰。



越狱第三季:演出开始了
9月 19, 2007, 12:57 上午
Filed under: 电影电视

昨天越狱第三季上演,这个秋天好歹还是有一件事让人振奋的。

如果说第一季的FoxRiver监狱是人间地狱,那这次巴拿马的Sona监狱就是第十九层地狱,看第一集的情形,别说越狱,就是先活下来都是一个大问题。

第一集总是很关键,一定要把观众的胃口吊起来,即使是PB这样的片子。第一季第一集最后,迈克史高飞脱掉上衣露出文身,观众的眼球都要掉出来了,不过第二季稍逊,第三季第一集极力渲染监狱中的险恶形势,在最后达到一个小高潮,军警连运出来的死人也不放过,而死人也可以用来传递消息……



绑定安装的确很烦
9月 17, 2007, 1:30 上午
Filed under: 工作心情

Windows Live Writer又出新版本了,到http://get.live.com/en-us/betas/writer_betas上去一看,点击Download,下载了一个WLinstaller.exe文件,运行,居然一定要绑定安装最新的Live Messenger 8.5和Self Sing-In,还有四个产品可以选择安装,Family Safety可能是因为要求用户有信用卡,缺省没有打上勾,其他三个产品Mail、Live Gallery,Toolbar一看都有10M左右的下载量,还是算了,把勾去掉。这个安装程序还花了一分钟左右的时间detecting products,其间只有Cancel按钮出现,让我以为安装几个选择安装的东西就没法继续,后来那个不停转的圈圈终于停下来了,确认我的系统上安装了Messenger和Live Writer,不由分说地全部给更新成最新版本了,小圈圈又转了几分钟,终于搞定。



How To Keep High Morale
9月 15, 2007, 10:36 上午
Filed under: 工作心情
上周从Redmond回来之后,对美国和北京团队的差别有所感触,一时热血上涌,蛮力发作,一口气写了个Trip Report,对团队建设提了些意见,也可谓寥发少年狂:)

参加过团队体育竞技比赛的人都能体会到士气(Morale)的重要性,我们在打Foosball的时候,若是一方士气上来了,往往能够打出匪夷所思的小高潮,大比分落后下能够反败为胜,90%靠士气;士气不高是什么下场,看看中国足球队的屡次表现就知道了。做软件开发和竞争对手也是竞技,只是这种竞技的周期比较长,一般也不会立刻看到对手的动作然后作出反应,但是士气一样重要,毋庸置疑。

今天随便搜索一下软件企业中保持高昂士气的方法,发现有经验的人和我相见屡同。我相信,优厚的福利和薪水,只是保持士气的一部分,但是别想完全用这些物质手段拯救团队时期,如同美军在伊拉克有世界上最强的装备力量,却依然士气低靡。在软件企业中,更加是这样,软件工程师忍耐苦闷和寂寞辛勤地工作,为了能够创作出一些有用的东西,甚至是changing the world的东西,不只是为了钱,如果只是为了赚更多钱,完全应该去从事别的职业,当然,很多人的确就是这样选择的。

所以说,维持士气的最好办法,就是让工程师们相信他们能够做出有用的甚至是changing the world的东西,这样的信心不是靠夸夸其谈的演讲来搞定的,而是靠展示实际的能够达到目标的能力来构建的。

看看Esther Derby的意见:

Keep workload reasonable,合理的工作量,如果真的事多人少,就需要按照priority来安排,不要overload。

Set a sustainable pace,细水长流,别把人给累走了。

Avoid multi-tasking,人不是电脑,multi-tasking功能不可能很强,让人能够一个时间focus在一件事情上。

Articulate a clear mission for your group,我觉得这应该排在第一位,有明确的使命是一切的前提。

Set clear goals,目标确定,别像没头苍蝇。

Set clear priorities,这是毫无疑问的。

Remove obstacles,需要去掉障碍,做事情的人才不会分心。

Don’t over specify,确定目标,就让人决定怎么去干好了。

Deal with the un-jelles,对于害群之马,决不手软。

Negotiate reasonable deadlines,说到release deadline就说到敏感的地方了,真的需要negotiate。



911
9月 12, 2007, 1:13 上午
Filed under: 城市丛林

才意识到昨天是911事件6周年,想起在Bumbershoot上那个美国声称"911 is a faked attack"的老头,他给我的传单还在包里呢,现在拿出来看看。

光线不好,只能拍成这样了。

且先不管911真相是如何,这种敢于质疑的精神就值得称道。

100_2054

 

100_2055