Sunday, September 17, 2006

[转载]童言说爱(诚之译)

一篇太好的文字,我因此非常自私地希望将这些文字全部留在自己的blog里。。。
哼小调的哈比人

童言说爱
诚之译

友人送来一封信,谈到小孩对爱的感受,很感人。

特地翻译如下,与大家分享:

一群专业人士向一群4-8岁的小孩问一个问题:“什么是爱?”

他们所得到的答案远比他们能想到的还要深刻:

“我的祖母得了关节炎,再也不能弯腰去涂她的指甲油了。所以一直都是我的祖父帮她做这件事,即使他的手也得了关节炎。那就是爱”──瑞贝卡,8岁。

“如果有人爱你,他叫你名字的方法会不一样。而且你知道他们永远不会说你的坏话。”──比利,4岁。

“爱就是当一个女孩喷上香水,而男孩也涂上刮胡子的古龙水,然后他们去约会,嗅着彼此的味道。”──卡尔,5岁。

“爱就是当你出外吃饭时,把你大部份的薯条给别人,却没有要他们也把薯条给你。”──克莉丝,6岁。

“爱是虽然他把你气得发疯,你也不会对他吼叫,因为怕伤害了他的感情。”──萨曼塔,6岁。

“爱是当你疲倦时会让你发笑的东西。”──泰瑞,4岁。

“爱就是我妈咪给我爹地泡咖啡的时候,她会先尝一口,确定咖啡味道刚好。”──丹尼,7岁。

“爱就是老是在亲嘴。亲到累了,还想在一起聊天。我妈咪和爹地就是这样。他们亲嘴的时候很恶心。”艾蜜莉,8岁。

“爱就是圣诞节的时候,当你拆完了礼物,仔细听,那些还在房间里面的东西。”──巴比,7岁。

“爱是拥抱,爱是亲吻,爱是懂得拒绝。”──帕蒂,8岁。

“当你告诉别人你的缺点,你害怕他们会不再爱你了,但是却惊讶地发现,他们不但还爱你,而且还爱你更深了。”──马修,7岁。


“有两种爱。我们的爱和上帝的爱,但这两种爱都是上帝给的。”──詹妮,4岁。

“如果你想学会更爱人,应该从一个你讨厌的朋友那里开始。”──妮卡,6岁。

(这个星球需要多几百万个像妮卡这样的人)

“爱就是当你对一个男孩说你喜欢他的衬衫,他就天天穿在身上。”──诺利,7岁。

“爱就像一对老太太和老先生,即使他们彼此非常熟悉,但仍然是朋友。”──汤米,6岁。

“在我的钢琴独奏会上,我在舞台上感到十分害怕。所有的人都在看着我。然后我看到我的爹地向我招手,对着我笑。他是唯一这样做的人。我就不再害怕了。”──辛蒂,8岁。

“我的妈咪比所有的人都爱我。没有人像她一样,在晚上会亲吻着我,伴我进入梦乡。”──克莉儿,6岁。

“爱就是妈咪把最好的一块鸡肉给爹地。”──伊莲,5岁。

“爱就是妈咪看到爹地浑身臭汗,仍然说他比布莱德彼特还帅。”──克里斯,7岁。

“爱是即使你把小狗孤零零地留在家里一整天,它仍然会舔你的脸。”──玛丽安,4岁。

“我知道姐姐很爱我,因为她把所有的旧衣服都给了我,自己再去买新的。”──劳伦,4岁。

“如果你爱某人,你的眼睫毛会上窜下跳,然后从你身上会冒出一堆小星星。”──卡伦,7岁。

“除非你是真心的,你不应该说‘我爱你’。但如果你是真心的,就应该常常说。因为人常会忘记。”──洁西卡。

最后一件事。

作家和演说家里欧巴卡利亚曾说到他曾应邀担任一个竞赛的评审,要选出最有爱心的孩子。

获奖的是一个四岁的男孩。他的邻居是一个年老的绅士,他的妻子刚刚过世。

这个男孩看到这位先生在哭,他就跑到这位先生的院子,爬上他的膝盖,然后就坐在那里。男孩的母亲问他,你对邻居说了什么,男孩回答,“我什么也没说。我只是帮助他哭出来而已。”

Thursday, September 14, 2006

推网站不遗余力,做流氓花招迭出

  MSN机器人,大家都听说过了,现在凡是在MSN主动加我的人,十有八九,会在我同意之后,给我发一句:“Hi,向你推荐一个不错的网站,中国缘...” 。那么,我就会直接删除这个机器人,并且从联系人名单上也删除掉,同时屏蔽这个email。

  垃圾邮件,大家也很熟悉了,大多数email服务,都有不错的垃圾邮件过滤功能,哪怕是MSN的Mail,也有过滤垃圾的能力。就算是他没有过滤,我也可以在收到垃圾邮件之后,点击报告并删除,以免以后再次收到类似的邮件。

  但是,昨天我遇到了打组合拳的高手,一家叫做“拍客”的流氓网站,利用他的机器人,先加了我的MSN。为了以免错杀无辜,我向来都是先同意的。然后,我就在等他给我发广告信息,结果呢,人家下线了,似乎真的是一个普通的MSN用户。

  半个小时候,我收到了一封来自这个人的email,是介绍“拍客”网如何如何的。但是,我发现,这封信竟然不能被“报告并删除”,因为人家发的不是垃圾邮件。为什么?因为这个有见地址,出现在我的联系人列表里。我必须先删除这个联系人,才能把这封信,报告为垃圾邮件。

  这种手法的好处在于,他能够保证不被直接屏蔽,不被归入垃圾,因此会有更高的机率,被看到那封信!

  弓虽啊!

关注软件开发项目中的人[节选]

本文为《程序员》10月份稿件,先贴出部分,以吊胃口:)
全文将在《程序员》发稿后贴出,请勿转载。

  从1995年我开始带领3个人的软件团队起,到现在也10多年了。一直以来我都在思考,如何才能确保一个软件项目能够顺利,成功的开发完成。而我能够得到的最为重要经验是:“决定一个项目成败的最关键的因素,是人!”
  软件是人开发出来的,而且到目前为止,也只可能是人开发出来的。但是,在通常的,对于软件项目、软件工程的讨论中,关于人的讨论,往往被淹没在对于技术、方法、框架、过程等等话题的讨论之中。
  这次正好有这样一个机会,可以把我长久以来的思考,整理出来,和大家一起探讨一下,软件开发项目中的人。这篇文章的预定读者,是项目经理,或者再高一级的 技术部门经理。一个项目组里的人是什么样子,或者最后这些人会变成什么样子,大部分是由这个项目的头是个什么样的人来决定的。

一、选人
  每个软件公司都在招人,或者曾经、或者将要招人。但是,有多少软件公司,能够招到自己满意的人才呢?大家都在说现在人才难找。问题在于,有多少软件公司,懂得如何招人呢?当一个人才来你们公司应聘,你们能够发现他,而不是错过他、赶走他吗?
   有些公司,根本不知道自己需要什么样的人才,于是就到网上去搜索一把,找来一堆自己都没有看过的题目。然后交给来面试的人做。绝大多数这种问题,要么特别 变态,要么特别刁钻,要么毫无意义,要么只会让人觉得可笑。现在都什么时代了,还要求我们的程序员,拿着一支笔,对着一张纸来做题目?写错了一个字符,就 会被扣分。拜托,现在的Google已经能够查到绝大多数问题的答案了!现在的IDE已经能够发现绝大多数的语法错误了!你们还在出这种遍历二叉树的题 目?
  如果你们一定要笔试,请不要出这种毫无意义的编程题行吗?
  如果是我来出笔试题,我会通过笔试,考察一个程序员的描述能力,也就是把一个问题、一件事情,通过一段文字,干净利落的描述出来的能力。比如:请通过纯文 字(不含任何UML图),描述一个ATM取款机的人机交互过程,以及可能出现的异常现象。通过这样的笔试,我可以考察一个应聘者的顺序思维的能力,因为纯 文字的描述是线性的,通过线性的文字,描述复杂的事物,需要有一个整体性的思维,然后才能写出由上而下,层层分解的清晰描述。还可以考察的一点是:有没有 错别字,这一点也许有点奇怪,但是,真的有很多程序员,不注意自己的书写,有没有错别字。这也是严谨性的一部分。
  再来说说面试,据说,越是大公司,面试的次数越多。据说,面试一般在笔试之后。据说,面试能够考察很多方面的能力。事实上,大多数面试者并不知道如何面试,他们看起来煞有介事,其实也忐忑得很。
  在我看来,面试主要考察的,是两个方面,沟通与表达能力,还有就是一个人的个性。通常我面试别人,都会提同样的一个问题:“说说你最近做过的一个项目,技 术方面的,管理方面的。”我最希望听到的,是一个人带着非常投入的语气,像描述一场战役一样,描述他们所面临的技术挑战和管理挑战。有些人比较专注于技 术,他们对于解决问题很有兴趣,因此描述起自己的那些光荣成绩来,总是很有热情。有些人比较专注于业务,他们会相当细致的分析那些具体的业务逻辑,讲解其 中的复杂之处。有些人比较专注于管理沟通,如何保证项目顺利的完成,他们有很多心得。这些都很好。但是呢,往往也会听到抱怨,比如团队的沟通不好呀,人家 的技术差要他帮忙呀,客户的需求没有逻辑呀,领导的管理比较混乱呀等等等等。还有些人比较注重反省,最近的这个项目,所得所失,他都会认真的、甚至是反复 的去想,去总结。听这些叙述,就可以初步了解一个人:兴趣何在,是否愿意并善于沟通,是不是勇于承担自己的责任,还是动辄怨天尤人?通常,愿意反省自己的 人,都会更快的进步,这是非常难得的优秀品质。
  笔试、面试。其实都不足以全面的了解一个人,前者容易受困于标准答案,后者容易被当时的谈话氛围所左右。而我最推崇的判断一个程序的水平的方式,是看代 码。给他几天的时间,让他去了解一个以前从来没有涉足过的技术领域,然后写一个简单的demo交上来。这样我可以考察他的:
  快速学习的能力:一个全新的领域,能够在多少时间里初步掌握。
  在开发速度与功能设计方面的权衡的能力:完全由他自己决定开发什么功能,什么时侯开发完成可以交给我。
  代码的编写能力:代码是否好懂,这是一个重要的考察点。
  以及编程的严谨性:是不是没有bug,或者足够少。
  说得不客气一些,大多数公司,根本没有这样的能力,来以这样的方式招聘程序员。因为他们负责招聘的人,已经好多年都不写,不看代码了。更不要说分辨代码质量的高低了。

二、看人与用人
  没有一个办法,能够保证招到合格的员工。哪怕是像我这样,通过代码来考察程序员,也难免走眼。所以,才会有通行的试用期制度。在试用期间,公司需要仔细的 观察已经招聘进来的员工,是否达到要求,有没有看走眼?我遇到过许许多多的程序员,人与人之间的差别真是太大了。在这里就简单聊聊我所见识到的不同类型的 程序员吧。

1、独当一面型
  在我的开发生涯中,曾经有幸与这样的同事一起共事过,他们能够搞定一切,不但快,而且好。他们能够完成任务,而且往往比要求的做得更多,考虑得也更多。合 理的要求,他们都会坚决的执行,而不合理的要求,他们也不会一味的盲从。就像三国里说的:“卧龙、凤雏,得一而可以安天下。”基本上这样的人才是可遇而不 可求的。这样的人才该怎么用?分配的任务,越是有挑战性,他们就越是喜欢。然后尽一切可能,保证他们心情舒畅,不受无聊的干扰,专心做事就行了。

2、胜任愉快型
  这一类程序员,更加懂得生活,他们能够完成给定的任务,不多,也不少,不快,也不慢。因为生活可不仅仅是编程那么枯燥的事情,还有许多值得花时间去玩玩弄 弄的东西。那些没有眼光的老板,光看到他们准点下班,甚至晚来早走,却没有发现他们已经搞定了工作,早就不想蜷缩在电脑面前了。要用这样的人,其实挺难 的,尤其是当你想榨取人家更多的剩余价值的时候,会遭到顽强的抵抗。合理的,可持续的“使用”,才是双赢的方案。

3、信心不足型
  这类程序员其实相当的罕见,大多数我所遇到的程序员,都非常的自信,甚至过分自信的都不少。难得遇到过几个信心不足的,水平其实都挺不错的,反倒总觉得自己无法胜任手头的工作。遇到这样的朋友,通常还是以鼓励为主,实在不行,也就只能放弃了。

4、任劳任怨型
  每一个团队,都需要有一个或者一些这样的“老黄牛”。一个项目组里个个都是天才,不见得就是什么好事。软件项目开发,总会有很多琐碎的,点点滴滴的小事, 得有人愿意干。有些时候,项目组会受气受委屈,得有人情绪平和,不冲动、抱怨。总之,要想培养出一种成熟、稳健的团队文化,这样的员工,就会必不可少。问 题在于,老黄牛可能会能力不足,还可能会倚老卖老,这个时候,就需要权衡利弊了。

5、夸夸其谈型
  他们很关心趋势、潮流、技术走向、最新名词,该听说过的,他们肯定都听说过。说起来也是头头是道。模式啊、框架啊、架构啊,也是张嘴就来。但是大多数他嘴 里的技术,却根本没有深入的了解和思考,经不起深入的追问。不过这种人,也是人才,不过不适合开发程序,而是去做售前工程师之类的工作。要能够唬住用户, 正是他们所擅长的。

6、快枪手型
  我最初就是个快枪手,能够快速的完成主线功能,但是却从来不考虑例外情况。完成了给定的功能需求,但是代码却只有我自己才能看懂(1天之内)。新的技术, 我也是很快就能上手,“Hello World”转眼就能跑出来。但是要再进一步深入专研,我的兴致就不高了。一个团队有一个这样快枪手,真是要非常的小心,才能用好。你可以分派给他各种类 型的任务,但最好不要给他太关键的功能点。因为究竟会不会出bug,他是无法保证的。要花更多的时间,并且更加频繁的检查他的工作,以确保他不仅仅是完成 了表面工作。更为重要的是,要不断的敲打他,督促他,逼他更加用心,努力提高。一个快枪手,也是有可能成长为独当一面的将才的。

(待续...)

Wednesday, September 13, 2006

活用JavaEye的RSS输出

现在,抓虾是我最常用的RSS阅读器,通过抓虾,我每天几乎只需要通过这一个网站,就可以看到所有自己想看的内容。因此,每当我发现一个好的Blog,就会去寻找这个Blog的RSS输出,并通过抓虾来订阅。这样,那个Blogger的最新动态,精妙好帖,我就再也不会错过了。

我现在订阅了200多个RSS Feeds,并且还在不断的收集积累中。

但是,有不少好的站点,却没有Site RSS的输出,这就比较苦恼了。有一个网站:
http://www.ponyfish.com/
能够为没有RSS输出的站点,生成RSS Feeds,不过目前还不支持中文,还好JavaEye 2.0现在已经推出了,而且经过我的大力推销,Robbin也相当重视站点的RSS输出:)

目前JavaEye能够支持的RSS有:
首页热点话题RSS输出:http://www.javaeye.com/index/rss_index_topics
论坛所有文章RSS输出:http://www.javaeye.com/forums/rss_all
具体板块(Java版)的RSS输出:http://www.javaeye.com/forums/rss_forum/39
JavaEye精华帖RSS输出:http://www.javaeye.com/index/rss_hot_articles
Robbin个人Blog的RSS输出:http://robbin.javaeye.com/blog/rss_blog/2

个人希望,将来能够支持的RSS输出,还包括:
论坛帖子检索结果的RSS输出,比如按Tag检索、按关键字检索等等;
个人收藏内容的RSS输出;
某个具体帖子的最新讨论的RSS输出;
推荐Blog文章RSS输出;
文集中某个专栏的RSS输出;

另外再聊聊我是怎么利用RSS的:
1、del.icio.us也是支持RSS输出的,所以可以通过抓虾订阅自己的美味书签,这样所有的信息,就都收集到一起了。
2、Google和Baidu都支持新闻关键词检索的RSS输出,因此可以订阅某个具体关键词的新闻,以重点关注某一领域或者竞争对手。
3、del.icio.us也支持Tags检索结果的RSS输出,有利于关注某一特定领域的最新网站和资源情况
4、抓虾的收藏功能,非常顺手,有利于在空余时间反刍咀嚼。
5、FeedSky或者FeedBurner支持RSS合烧,多个RSS输出源,能够合成一个输出,比如我的FeedSky就把我的Blog和我的美味书签的订阅合成一个RSS输出,相当方便,推荐使用。

总之,有了RSS和抓虾,我基本上就不去其他乱七八糟的网站了。

Monday, September 11, 2006

关于DSL、MDA、UML、TDD的一些思考

这是计划中的一篇Blog,原来设想的题目是《MDA与DSL》 ,只是因为和徐昊聊天时产生了一些想法,想谈谈对MDA和DSL的新认识。现在这段时间又出现了很多关于DSL的讨论。

马大叔的两篇:领域专用语言(DSL)界定DSL
还有在JavaEye的不少相关的讨论:DSL的讨论规则系统or脚本系统,自然语言,DSL or Java语言Ruby DSL
还有一篇不错的入门文章:用Ruby 创建领域特定语言(DSL)

因此自己又思考了不少东西。联想到以前说过的两句话:
“框架是弱语言,语言是强框架”
由此我们可以这么定义,DSL就是尽可能写得像语言的框架。

再接着追问,为什么框架还不够,还要发展为DSL呢?初步的看法是:语言是一种更加方便的使用方式。

前段时间徐昊一直在写一篇关于Antlr和DSL的文章,我也不断的看着文章的进展,跟他讨论着。有这么一些想法,还远不成型。

1、DSL一般来说,是Domain Specific Language的缩写,而我以为,更加实用的,应该是Domain Scripting Language,这种DSL。也就是说,DSL应该足够简单,一根筋,过程化,三分钟学会。否则,太过复杂的DSL,就不会有人喜欢了。

2、DSL的简单,是他的优点、特点、也是他的弱点和局限所在。

3、DSL与MDA最大的区别是,DSL是自底向上简化劳动的实践,而MDA则是企图自顶向下搞定一切的妄想。

4、我当初设计的DJ(Dynamic Java),应该被称之为DML(Domian Modeling Language)——领域建模语言。相对于UML,DML是更加适合的领域建模工具,毕竟,UML受限于OO的思维模式,无法超越。


另外还有一些议论,也附在下面:
UML,是思考工具,不是开发工具。
TDD,是开发手段,不是设计手段。

UML作为开发工具,就会出现MDA那样的书呆子遐想
TDD作为设计工具,就会导致设计惰性与跳不出最初的心理暗示(隐喻)

中国反流氓软件联盟官方网站被黑

什么世道?!

最近网络上出现一个自发的民间组织–中国反流氓软件联盟。一时间叫好声、讨伐声随处可见。支持者众多,甚至有网友为其专门编写了歌曲。试听地址。SOHU还为其专门开辟了专题。在此不过多评论。

官方网站竟然没挂几天就被人黑掉了。




目前可以访问其官方BLOG:

在搜狐官方BLOG地址在新浪官方BLOG地址发起人董海平的BLOG

本文转贴于《博客报》:

http://www.bokeebao.com/entry/21.html

Sunday, September 10, 2006

贴图不说话






Thursday, September 07, 2006

一般性;该怎么说话

今天儿子躺在床上,乖乖的喝了奶,似笑非笑的看着,就快睡着了。
我就有些喜欢,就跟他说:“我觉得你很漂亮的。”
他颇有些开心,但是又有些自知之明,“我觉得一般性。”
我就问他:“那你觉得谁漂亮呢?”
“我觉得爸爸漂亮。”
我也颇有些开心,但是也是有自知之明的,就说:“其实我也一般性。”
他接着思考这个问题,“等会儿我问问妈妈,她也说一般性。”;“我问问公公,他也说一般性。”;“问问婆婆,她也说一般性。”
“大人都是一般性的,那就糟糕了。”
“啊,为什么呀?”我很奇怪这个说法。
“要是大火来了,一般性的都烧死掉了呀。”

倒!




外一则

刚才他小便了一次,2分钟,他又要求小便,而且指名要求我来“把”他。
心里顿时火起,冲进房间,吼道:“干什么,怎么又要‘撒嘻嘻’?真的假的?”
他就小声的说,“爸爸,不要这样说话呀”,“爸爸,不要这样说话呀”
我问道:“怎么了,这么说怎么了?”
他就更加小声的说:“爸爸,我爱你。”————“要这样说话呀”
我顿时大笑,完全不再生气了,这儿子真是有趣啊。