2008-09-13

不知所云

无意中从图书馆重借了两张DVD: "Return of Dragon" 和 "Must Love Dogs". 既借之, 乃看之. 重温了一遍李小龙的招牌技击和喊叫, 以及李小龙电影中少见的成熟女角温情元素, 有一丝感动, 而有情人决绝而别, 无份相守的结局, 也令人感叹遗憾. WHY? WHY NOT?

"Must Loves Dogs", 一如其前辈西方爱情经典篇如"When Harry Met Sally"或者"You've Got Mail", 男主角总能自如地说他所想所感, 轻易打动女主角, 轻松地跟随自己的感觉行动而无需费神费功夫就能抱得意中人. 赶紧自我提醒, 那只是电影, 只是预先写好的剧本台词. 如果现实中他们也是如此, 那就真羡慕倒众生了. 可众生不就是因为现实中的难为甚或不可能才喜欢这些电影的吗? 佛说, 众生男女平等, 现实中难圆的梦, 在电影中去寄托, 也不算违背自然吧.

不知所云, 无以为继. 时间也到中秋节了, 还是好好休息吃月饼打电话算了.

2008-09-09

素未谋面的朋友

屏幕上的SKYPE终于提示有人呼叫,一看是素未谋面的朋友B, 赶紧回复,把蹦到脑子的英文字母一个一个以最快速度敲出去,生怕她觉得冷落而很快离去,又尽可能地表现理性保证她能按平常5:30离开办公室回家,不至于第一次网聊就被我吓跑。我的小聪明算是被我用到顶了。

那是昨日下午5:10左右的事。好在她提问不多,基本是按我的思路在交换话题,头一次让我觉得我对谈话的时间进度掌握得还好。只是5:30很快就到,网聊嘎然而止,有点意犹未尽的感觉,不知道她那边是否有同感。鱼与熊掌不可兼得,不当机立断前面的理性表示就变成虚伪了,遗憾了也没办法。

与B交换电子邮件已超过一年半了,居然是在一个业余网上编程赚点外快好打发圣诞节的项目中碰到,除了包工头,就我和她俩打工仔,算得鬼使神差吧。项目结束,包工头找茬克扣了最后一笔工钱,也懒得去折腾了。结识B应是最大的惊喜(虽然素未谋面,从唯一的一次项目电话讨论中可感觉她是温柔体谅随和的人),其它随它去吧。之后大家便各自隐迹于网络中,直到去年夏天VANCOUVER年度焰火节,居然发现大家都对此有兴趣。可惜我那时正热衷于太极,加上我已看过两届焰火节,而且公司和租家都在RICHMOND, 一时放不开,错过了极好的邀约见面的机会。再到今年焰火节,我恰好跳槽到VANCOUVER DOWNTOWN,方便看焰火之极,遂萌生了邀她共赏焰火的念头。只可惜天不作美,她竟然已长期不看GMAIL, 是在月余后才看到我发的电邮,正应验了那句“机会是给有准备的人”的话。但不管如何,我们又恢复了电邮联系,我终于鼓起勇气尝试直接邀约谋面。虽革命尚未成功,但有了更方便,更频繁的联系方式,总算是在天天向上,自需加倍诚心努力。想想当年追求初恋女友也未如此费心,还不知美眉是否恐龙。但知己难求,何况异性,有这一点焰火的共同兴趣我也知足了。

真困惑科技进步是友情的幸运还是不幸,以前送朋友一张新年贺卡就是一次见面聊天的机会,现在可好,不要见面,网上就可全打发了。离题了,就此打住。

占领

这是一个鹊巢鸠占,鹊鸠不分的世界。文明越发展,技术越进步,地球村越开放,这种现象就越明显。上周日晚我们就彻底占领了一把房东的HOUSE。

事情还得从半年前说起。房东老张早年从上海移民,闺女人长得可爱书也读得漂亮,初中就考入UBC预科,老张骄傲得不行,逢人就夸。只是上学远了点,坐BUS从RICHMOND到UBC得转车。老张舍不得闺女辛苦倒车,起先由老张太太每天开车接送,可是过桥堵车耽误时间,每天得早早起床,闺女抱怨睡不好。老张竟然到VANCOUVER西部租下另一整套HOUSE,全家搬过去,然后把原来自住的自家HOUSE的二楼租给从星马移民过来的GEORGE一家四口。就这么地,房东老张的HOUSE就全给我们新移民们暂领。

GEORGE和他太太都是基督徒,但GEORGE不会说中文,她太太也是马马虎虎,所以平日交往并不多。周日下午突然邀请我们一楼的租客们到二楼他家(暂且算是他家吧)共进晚餐。于是各人或买或自备或菜肴或水果或点心,前前后后头一遭聚到了一桌,边吃边说笑,倒也热热闹闹。饭后GEORGE太太竟然提议请我们大家都到客厅玩一个游戏,大家或惊或喜,于是纷纷到客厅或正坐沙发,或斜躺地毯,等着游戏开始,我就趁机观察了一把整个二楼的结构。等GEORGE和他太太都坐定,他太太发话开始游戏,原来只是个简单的合作问题。问如果现在大家准备去沙漠,每人限带两样东西,你会带什么?我冲口而出“水”,话音未落就心中暗自掌嘴,肯定错不了但不经大脑毫无新意,肯定被人当垫脚石。果不其然,北京来的小滕俩口子咬咬耳朵后说带骆驼,还加一句说骆驼能帮忙找到水,再加一句说第二样东西还是骆驼,一头自己骑,另一头给老婆骑,大家都笑了。GEORGE居然说带镜子,有人奇怪问为什么,回答是如果迷路了,有飞机来找人,可以用镜子反射阳光给飞机指路;就有人开玩笑说镜子还可以化妆用,这样被拯救的时候显得漂亮点;另有人说化妆得要水,我只好说我可以卖水发财了。七嘴八舌,大家笑闹成一片。GEORGE太太总结发言,说从游戏的结果看出大家可以合作互相帮助,比如EDWARD(鄙人)可以供水给口渴的人喝,小滕可以共享骆驼给累了的人骑,等等等等。

GEORGE太太话头一转,说接下来要跟大家分享一段关于基督的录像。原来他们教堂新得一批从BRITAIN来的见证基督演说录像,要求他们跟尽可能多的人分享。翻看那一盒包装精良的DVD,估计不下20集,每集约20分钟,真的很佩服他们教会的功夫。第一集标题是: “BORING?UNTRUE?IRRELEVANT?”。 纯正的BRITAIN口音,抑扬顿挫,快速而清晰,没有连读和默音的机巧,是我所偏好的。演说内容具体切身而幽默,最后归结为“JUSUS IS THE WAY, THE DIRECTION TO THE GOD,AND DIED FOR ALL OF US”,很能打动或迷惑人的那种。20分钟后GEORGE太太问我们大家的观后感,特别问我相信不相信上帝,我不想为逢迎她而说相信,也不想说不相信而跟她争执,先顾左右而言他,只说一年前我在VANCOUVER去过一间教堂,而且是MORMEN派别的,他们也教导JUSUS,HOLY GHOST等等。然后把时间转给小滕,小滕低头一会,然后说其实他跟太太有过一次严重的争论,他太太刚来半年就入了教,企图说服他相信上帝,最后谁也说服不了谁,太太倒气得要掐死他;这时他太太插话说,还是因为她自己掌握的基督知识不够深,不然肯定可以说服他先生;然后小滕问道,如果上帝存在,为什么还会有四川大地震死那么多人?大家都默然。GEORGE夫妇倒并不强辩,只说如果是上帝惩罚的话,也确实太血腥了点。GEORGE太太再问我的意见,我只好豁出看家本领打发说,其实相信不相信并不重要,基督所代表的并非现实的世界,而是注重精神,解放或释放精神压力,让人从精神痛苦中解脱;一般人平常紧张操劳,担心这忧虑那,搞的关系紧张,容易起冲突导致争斗;基督的精神就如同佛教,让人放松,减少压力,从而化解冲突争斗;当然这是好的一面,任何东西有好的一面就有坏的一面,如果因相信而过于执着,可能导致更严重的战争;所以上帝是不是真实的并无所谓,关键是现在的基督精神是教人向善,善待自己也善待他人。说来话长,写来纸短。期间还因为我的英语发音不正,BUDDHISM一词费了我不少口水才让他们明白,惭愧归惭愧,倒是杀了不少时间。不觉中就到了该散席的时候, GEORGE带头祷告,其他人也就跟着“阿门”。临别GEORGE太太问大家能不能下周日继续聚会看下一集,当然没有人反对。多好的邻里!

就这么地,我们从里到外,从物质到精神,干脆彻底地全城占领老张的HOUSE。

2008-09-06

eFAN's GWT Development Approaches

There are different approaches to do GWT web development. One easy and quick way is to use GWT Designer*. Design the GUI layout and look & feel within one tool, and the generated code is ready and bug free for integrating with business process logic code. Design, code, debug and test, ... all can be done by one single developer. The approach is so similar to traditional standalone windows application development approach. That's the beauty of GWT and GWT Designer. However, before GWT Designer could become widely adopted by GUI artists / designers, this approach does has two big disadvantages:
  1. Obviously, few developers are excellent at GUI design. Either a developer spends extra time to come out kind (not so professional) GUI by drag & drop in GWT Designer, or a GUI designer pass over a GUI design in paper (or whatever electric format) to a developer who then uses GWT Designer (or pure java coding if he prefer) to implement the design. Either way one has to spend extra or duplicated time, so the time saved by GWT is wastered here.
  2. More seriously, once that design went into implementation phase, it's totally mixed with Java code (or worse, mixed with process logic), then it's very hard to change the GUI without breaking the code.
So GWT Designer approach is only suitable for small project, or for quick prototype purpose. That's why I went into another approach.
The approach is, a GUI designer come out GUI design/mockup in html format (which has been widely adopted and language/tool independent), a developer takes that html then does two small changes:
  • Add GWT loading script (***.nocache.js) into the html head.
  • Assign unique ID property to each html tag which content need to be dynamic updated by code (or wrap that part in a "div" tag).
Then pass back the updated html to designer, and use the html as the host page for development. This approach integrates the design output and the Java logic code seamlessly but clearly separates the concern between GUI designer and Java developer, and the design could be changed without breaking the java code.

* Note:  GWT Designer was created by Instantiations which acquired by Google.