2006年05月28日

终于看完了!

 

不知道Hary开始看第五季没有,他上次说要等全部二十四集全部播完后,他就可以一口气地看完它。对于我来说,还是现在这种每个星期看一集的节奏更加适合。我记得在看第一、二、三季DVD的时候,每天晚上看到一两点钟,而且精神高度紧张,对我的睡眠实在没有什么好处 :)

 

二十四小时”每一季所讲述的故事都只是发生在二十四个小时内,一共分为二十四集播放,每集讲述一个小时的内容。影片讲述的均是暗杀总统、核弹爆炸这样惊天动地的大事,一般都用三四条线索同时进行,除了反恐主题之外,办公室政治,男女私情也贯穿其中,环环相扣,出人意料。

 

“二十四小时”到现在一共播放了五季,每一季单独来看都是非常不错,由于其中的人物有些延续关系,所以还是建议从第一季开始看。当然当你连续看了几季后,未免会有些审美疲劳,有时候编剧的某些手法也有拖时间的嫌疑。在每个小时内都密集发生扣人心弦的、成败攸关的事件,对男主角Jack是一种考验,对编剧们也是一种非人的折磨啊。

 

所以当看到洛根总统也与恐怖活动有牵连的时候,我并没有过于惊讶,而且对这个由于意外而当上总统的家伙,在第四季的时候我就看他不顺眼了。只是当Jack把美国总统都绳之以法后,实在难以想象在下一季编剧们还能够有什么新创意,尽管电视剧的最后还是留了个尾巴,但是否还有第六季实在值得怀疑。

 

在最后,司法部长听了Jack录下的洛根总统的对话后,接下来总统便顺理成章、波澜不惊地被捕了。看到这一幕,我不禁想起林达在《总统是靠不住的》一书中提到,自从尼克松总统之后,美国人再很少用“伟大”这个词与现任总统联系在一起,而且

 

“尼克松以后的年月里,美国出现了一些描述白宫阴谋和政府行政机构阴谋的电影和小说。在这些文艺作品的结局里,那些揭露阴谋的英雄也总是走向国会,司法和新闻界。有的电影整个情节充满惊险曲折,它的结尾却非常简洁,就是揭露阴谋的英雄主角走进国会听证会,坐下,然后起立宣誓,“我说的都将是真话”,电影就结束了。这样的文艺作品不仅反映了美国人对总统和白宫的不信任,还反映了通过尼克松的“水门事件”,他们对于这个制度反而增强了信心。他们相信,一旦“平衡和制约”的监督机制启动,他们就可以放心了,电影就可以结束了。”

 

“二十四小时”也是如此,要扳倒总统并不需要比他更加强大的政治、军事力量,而只需找到确凿的、能够证实总统违法的证据即可。

本篇文章使用aigaogao Blog软件发布, “我的Blog要备份”

2006年05月24日

Google Web Toolkit的页面上,用非常醒目的黑体字写着“Build AJAX apps in the Java language”,言简意赅地说明了GWT的用处——用java语言来编写ajax应用。

 

我在之前学习ajax的时候提到主要关心其中“浏览器与服务器交互”和“GUI Framework”这两个部分,这段时间陆陆续续了解了这方面的知识(http://del.icio.us/flyisland/ajax),总的来说,对于不甚熟悉JavaScript的我来说,这些结构、协议总有难于入手的感觉。现在终于看到一款基于Java的AJAX架构,并且是google出品,的确是令人兴奋的。

 

首先说说“GUI Framework”,从网上的两个例子“Kitchen Sink”和“Mail App”来看,各种组件的效果是非常不错的。不过这也不算什么,ajax的界面效果已经不止一次让人惊讶了。GWT的特点是你可以直接用java来开发界面,就类似于SWT的开发模式,包括layout, eventlisner等等。而且在开发过程中,GWT还提供所谓的“hosted mode”运行方式,在这种方式下你可以直接调试java代码,克服了JavaScript难以调试的困难。

 


实际上采用GWT开发界面就像直接用Swing、SWT开发界面一样,你可以不必了解任何关于浏览器DOM、JavaScript等知识,并且能够直接利用到IDE的调试工具、对Java语言重构支持,以及各种面向Java的工具(例如UnitTest等),而这些方面正式目前JavaScript所缺乏的,这就是GWT的强大所在。不同的是Java程序最后会用javac编译成bytecode运行,而GWT程序则编译成JavaScript+HTML运行。

 

对于精通的JavaScript的开发人员来说,不一定会喜欢这样的架构,毕竟GWT屏蔽JavaScript就等于限制了开发人员的对底层的控制力。GWT也考虑到这一点,它提供了“JavaScript Native Interface”的机制,允许开发人员在GWT Java程序中直接加入JavaScript代码,对这一部分我仍不熟悉,所以不清楚这样是否足以满足JavaScript开发人员的需求。对于熟悉Java的我来说,起码现在可以轻而易举的步入Ajax世界了 :D

 

其次是“浏览器与服务器交互”部分,同样是完全用Java编写,详细地说明在这里。实现上非常简单,定义服务接口,实现的时候需要继承“RemoteServiceServlet”,也就是说服务端就是一个Servlet,因此在服务方法中可以直接获得Servlet的上下文,所以开发人员的控制余地还是很大的。

 

GWT将这一部分称之为Remote Procedure Call,从实现过程我们可以看出,它的确是基于Procedure/Service的,因此对服务端的要求就是面向方法/服务、面向数据的,服务器和客户端之间只是交换数据,不交换对象,客户端/服务端松耦合的。这一点很目前的SOA思想倒是吻合,也容易理解,无需多言。

 

不过我想起JSF的方式,界面元素的属性、事件可以和服务端对象的属性、方法直接捆绑,代表另外一种处理方法。当客户端/服务端的关系十分密切的时候,我认为JSF的方式更加适合。目前从JavaOne2006的一些评论来看,JSF和Ajax的结合有了长足进步,也要找时间关心关心。

 


目前GWT仍然是beta版本,当正式版本出来的时候,我有两个小小的期待:一个WYSIWYG的开发工具,就目前GWT的架构而言,基于Eclipse开发一个这样的工具应该不难;其次是更多的GUI Component,例如支持拖拽功能等。

本篇文章使用aigaogao Blog软件发布, “我的Blog要备份”

2006年05月10日

在过年的时候看过《蝴蝶》这部法国电影后,就嚷嚷要出去春游一次,终于赶着四月份的尾巴去了一次从化的通天蜡烛山。因为接近花期尾声,没能看到“漫山遍野的杜鹃花”,不过还是让我寻到依然灿烂绽放的花丛!


通红的杜鹃花


在山顶俯视水库