前言
继去年参加了Google Developer Day 2008后,又迎来了Google Developer Day 2009,谢谢公司给我的时间,得以如愿参加这个技术盛宴。
我充分吸取了去年的教训,提前到达位于北京国际会议中心的会场,领到了可以留作纪念的嘉宾牌。
开幕、欢迎辞、开复主题演讲
与去年相同,先有用时一个多小时的概述,再开始各个分会场的课程。与去年不同的是,致开幕词的不再是那位来自美国的美女工程师了,而是谷歌开发技术推广部中国首席经理栾跃,栾跃简洁的开幕词后,是开复的精彩演讲。我注意到中文在这次的GDD的比重加大了很多,我想,这是开复来中国后,Google“本地化” 的另一成果。
开复的演讲我觉得比去年的更精彩,更能提起人的胃口。
技术的发展,往往迅雷不及掩耳。记得去年的GDD,谈到了云计算这个概念,经过了1年的发展,云计算的概念已经深入人心。去年谈到的App Engine、Google Maps API、Open Social、Android、iGoogle、Google Web Toolkit今年都有讲,这些技术都已经得到了更进一步的发展。值得注意的是,去年谈到的Gears,今年只字未提,这是因为今年的新技术:HTML5 其实已经可以替代Gears了。今年的重头戏是Google Wave,我知道最近在美国举行的2009 Google I/O大会上公布的Google Wave引起轰动,据说这是可以媲美Email发明的里程碑式的通讯工具。在开复的演讲里,我也得以亲眼所见,演示到精彩之处,全场情不自禁地响起热烈的掌声,真不是盖的。OK,接下来我就按照开复的演讲顺序,一一记录于此,与大家分享。
Google Maps API
下图是Google 一位工程师演示Google Maps API,他的示范是一个高考地图,可以根据专业、往年分数线、地域等来搜索适合自己的高校,对于本次的高考生填志愿来说,非常方便。Google Maps API今年的新特性加入了我的位置功能(My Location),其原理是根据用户手机所在的基站(Cell Tower)地理位置,或者用户无线上网所使用的热点地理位置来获得用户的位置,对于用过Google 手机地图的用户来说,应该对这项已有体会。
该工程师所做的另一个示例我没有拍下来,是由Google制作的旅游路线规划,现场示范的是台湾旅行路线图,制定好了起点(桃园机场),终点后,Google Maps会自动计算得出旅行路径,用户还可以自定义路行途径点,Google Maps会根据新增的点重新计算路径。并且可以通过网络摄像头看到实时的公路路况,决定自己的出行时间。
接下来是来自兰州大学的一对师生演示的基于Google Maps的“公共危机信息管理”:只要定义了灾害地点,灾害影响范围,可供逃生的地点,系统会自动计算需要疏散的人群,并且可以自动显示疏散路径。我觉得这个系统非常值得推广,拿官话来讲,“对于保护人民的生命财产安全具有重要意义。”
Open Social
接下来是我最感兴趣的Open Social环节,经过1年的发展,Open Social已经到了稳定版0.8.1,最新版0.9。
在0.8.1之前,只能通过JavaScript开发,而之后,可以用任何自己喜欢的语言进行开发,而且还新增了RESTful protocol、RPC protocol。这对于Shindig与AppServer、Shindig与ContainerServer之间的交互提供了更快的,可以在后台运行的数据传输方式(我对RESTful protocol、RPC protocol的理解不是太清楚,如有误,谢谢指出)。
另外,还新增了一个虚拟货币(Virtual Currency)的API,对于需要提供支付功能的应用来说,多了一种开放、稳定的选择。
我觉得最值得称道的是新的OSML Tags(Open Social Markup Language Tags) 与 Templates,以往需要许多行才能实现的界面,现在只需要一个简单的 Tag(如:),就可以实现,代码可读性更强,开发更加迅速。
OpenSocial 的使用者去年只有天际和聚友,到了今年,无论是平台提供商还是应用开发商,支持者多了很多。相信到了明年会更多,希望价值中国网能在明年的GDD大会上作为合作伙伴出现。
HTML 5
开复在对iGoogle做了简短的介绍后,就开始了对激动人心的前瞻技术的介绍:HTML 5,O3D,Google Wave。
做过Windows客户端程序的同仁们应该对UI界面的灵活性印象深刻,可以精确到像素来控制各个控件的位置,而且可定制化很高。但基于HTML的Web App UI就没那么自由了。HTML 5 给我们带来了也基于像素级别的控制:Canvas,我们看到下面的图中,有各种非标准的HTML控件,放在HTML4时代,其实现无非就是用图片作为背景来实现,对于用户的实时绘图,其原理是记录用户某次操作的修改路径,传回服务器,由服务器修改图片后再传回给客户端。HTML5的对此的实现却是原生的,无需多余的数据传输。如下面中图里面的鼠标作画,只需要用下面右图的简单代码即可实现。Amazing!Isn’t is?
在网页中嵌入视频,在HTML4时代,我们的做法是嵌入各种Object,只有当客户端支持某种视频格式的解码,才能顺利播放。那么在HTML5中,试试新的标签吧,像插入一张图片一样,插入视频,无需考虑编码,是多么舒畅的感觉!
而HTML的视频特性与Canvas特性相结合,就有了下图中的应用:上面的方框显示的是演示者的视频对话,下面的方框捕捉视频中变化的像素,当演示者摇头时,下面就会实时绘出移动的像素,看上去就像照片里面只把头抠出来一样;如果演示者眨眼,下面就会显示代表眨眼的两个方框,这一切都只是由HTML5 + JS实现的,Amazing!
HTML5带来的新特性还有地理位置。通过地理位置的特性,我们可以比现有的技术更加方便地制作类似x附近y米的z的应用。
HTML5 还有一个重要的特性就是应用程序缓存和数据库。传统WebApp的一大弊端是如果网络断开,或者网络质量不好,会严重影响WebApp的体验,甚至完全无法运行。而在HTML5中,内建了应用程序缓存和数据库的特性,当网络断开或者质量不好时,可以先在本地的数据库中存储用户提交的数据,待网络连通或质量变好后,再与服务器同步,相信用过Google Docs,并且开启了Offline功能的同仁们会体会深刻。但不同的是现在的Google Docs Offline是基于Gears的,如果浏览器不安装Gears,是没法使用的。我们能想象,如果有一天HTML5被广泛支持,不再需要下载Gears这样的插件就可以轻松开发可以离线的WebApp,是多么值得期待啊。幸运的是目前Chrome、FireFox、Safari、Opera均已支持,只待 IE了。
HTML 5最后一个特性是Web Workers。如果有人写过特耗资源的JS代码,应该体会过等待这段JS代码执行的过程中,当前浏览器什么都不能干的糟糕体验。有了Web Workers,可以让这种很耗资源的JS代码在后台执行,从而不影响用户的操作,现场演示时,工程师在使用了Web Workers的浏览器中,看着非常耗资源的代码在一点一点执行(执行结果实时输出在了屏幕上),他却能非常流畅的进行其他操作,现场响起了非常热烈的掌声。
如果各位注意到了本文第7张图片右侧的讲台颜色的话,那么这里有一个解答,那是五种颜色,分别代表HTML5的五个重要特性。
O3D
接下来是O3D的演示,我们以往的3D应用,比如Second Life,基本上都是客户端的软件,而有了O3D的支持,可以在浏览器中显示界面丰富的交互式3D应用。值得注意的是,浏览器里的3D,主要靠GPU的支持,这样对CPU的压力小了很多。下面我放了一段现场演示的视频,可以看到视频非常漂亮,竟然是在浏览器内部执行的。(Youtube被和谐了,只好传到土豆)
Google Wave
接下来是期待已久的Google Wave了,我将花较大篇幅来介绍,这的确是意义堪比Email的又一项伟大发明。演讲者是来自澳大利亚与来自美国的工程师,之所以要两个人,是因为他们要模拟两个人在使用Google Wave时是如何沟通的。
单次Email(下左图)的沟通是单向的,比如我在给A发邮件时,A只有等我点击发送后,才能收到,我也只有等A收到后见并回复后,才能收到回复。而在 Google Wave(下右图)里,我们看到信息是可以双向流动的,How?Just follow me.
下图中,Dan正在给Adam(白色边框标出)发消息,这个过程和发邮件类似
Adam 收到了Dan 发来的消息,他可以回复给Dan,这里仍然和Email类似,但再接下来,就是Google Wave的“独门功夫”了
我们在收发邮件时,应该遇到过这样的情况:想要针对对方发来的邮件中的某一段内容进行回复,而且对方此时正在线。这是如果还是用Email的话,需要将要回复的内容拷贝下来作为引用,然后给对方回复,对方过大概5分钟(Outlook延时)收到后,再接着回复。如果是Google Wave呢?看下左图,我们可以直接选择要回复的那段文字,直接回复,而且如果对方也在线,可以像IM一样实时聊天。看下右图,他们真的在针对那段文字开聊了。Amazing!此处场内响起来热烈的掌声。
如果我们要给对方发图片怎么办?如果使用Email,需要将图片作为附件发送,对方收到后,一一点击出来看。Google Wave呢?直接将要发的图片拖拽到编辑器里,如下图,点击发送,对方收到的直接可见的图片。
对方也可以直接回复图片,甚至直接对发过来的图片作补充,值得注意的是:在回复时,无需点击回复,对方就实时看到了增加的三张图片;Oops,图片名称全部是无规则的数字,那来改改吧,在改的过程中,对方实时看到图片名称被修改了。
发送过来的图片,还可以Slide Show的方式查看
当然,手机上的Google Wave也可以顺利进行,这样我们就可以做到Anywhere,Anytime与对方沟通了。
如果Google Wave的演示到此为止,我不会讲它堪比Email的发明。接下来我们看潜力无限的Google Wave API!
与BugSystem集成:
协作数独,能想象两人一起玩数独的场景么?对方填的数字,自己实时可以看到。
实时翻译,注意左图与右图的区别,我们能看到翻译是在用户输入的同时同步进行的,比如输入了Hello,下面会实时出现你好,再输入Beijing,下面的翻译变成了你好北京。这是基于Google Wave API开发的Robot,比起现在各式各样的翻译机器人,是不是更棒?此时,场内再次响起了更热烈的掌声!Amazing!
Android
接下来是Android的环节,我只讲一下我印象最深的几个环节吧
如下左图,许斐用手指拨动G1的滑动球,街景会随着她拨动角度的不同,显示不同角度的景象;G1有内置的方向感应器,接下来,如下右图,她把手机交给了摄影师,由摄影师拿着G1转动了360度,结果大屏幕上看到的景象是,G1的Street View也随着转动了360度,当时的感觉,就好象我们透过G1直接亲眼看到了Google美国总部。Amazing!
还有条形码搜索:许斐用G1的一个条形码扫描程序扫描了条形码后,点击“Open Product Search”,可以看到这款产品的信息,可以按照产品价格倒序或正序排列。
主题演讲总结
至此,开复的主题演讲就结束了,下图是他的总结。
Open Social 分会场
下面的分会场,我参加的都是Open Social的课程,去年Open Social的演讲,基本还在普及概念的阶段,今年的课程,就更实践了。
Google 工程师王超的课程:“设计高效可扩展的Open Social 应用”,从Web App 前端优化的方法切入,通过对示范应用Quartermile优化前后的成本分析,逐步引入了Open Social 0.9中可供改进OS应用的特性。整场课程条理清晰,语言贴切,听下来感觉酣畅淋漓。
还有Google工程师孔贵宾的课程:“利用Open Social建立开放平台”,以校内为例子,从人、关系、动态(新鲜事)、AppData、消息、容器(Container)、视图(View)、兼容性测试的各个细节,把利用Open Social建立开放平台的整个过程详细展现了出来。在帮助校内实施OpenSocial 0.8.1的过程中,有不少宝贵的实践经验,非常值得一提,比如实现Shindig的接口,不必所有接口都实现,比如动态(新鲜事),如果原有系统已经有比较完备的系统,则只实现创建新鲜事即可;又如AppData,为了防止Apps滥用,甚至可以不用实现……
最后又听了王超的课程:“Google Friend Connect应用开发”,看到了除了OpenSocial这样的重量级平台外,Friend Connect可以帮助内容性的网站通过简单的Copy & Paste实现社会化。对他举的小黑屋例子印象深刻:如果当时的会议室灯都关了,大家知道屋里有人,但不知道彼此是谁,如果有一盏灯,大家就会看到对方,开始交流。Friend Connect就是这样这样一盏灯。
一天的课程很快就结束了,收获很多,亲身体会了优秀的技术团队所做的创新,这足以弥补午餐菜太少的不足(听有人说拿包涪林榨菜就着米饭都比那么点菜好,汗一个)。难能可贵的是,拿开复的话讲,这里不只是研究室里面的whitepaper,都是实实在在已经实际应用的技术。
互动交流活动
去年我们有参加晚上的互动交流活动,现在回想起来有些可惜,互动交流活动中,我争取了一个上台演讲的机会,还认识了来自腾讯SoSo产品组的王宇(希望没有记错你的名字),王宇本来也是要上台演讲的,可惜收到服务器报警的信息,直接飞奔回去处理情况了,佩服他的敬业。
我排在第31位,等待的过程中有点紧张,一直在思考该怎么讲,最终的构思是从价值中国的实名制,专业化,股权共享的文化竞争力角度来讲,捎带着谈到所利用的Google技术,目的还是借Google的讲台,宣传一下价值中国。
该上台了,我披着价值中国的狼皮,挺起胸膛,抛弃紧张,信步踏上面对数百人的讲台,从谷歌开发技术推广部中国首席经理栾跃的手中接过话筒,道谢后,开始了价值中国的演讲:“我是来自价值中国网的朱博,价值中国网是中国第一家实行全站实名制的网站,我们提倡、且已经具备了诚信、负责的氛围,我们是在文化这个根本因素上,为解决中国经济发展的瓶颈而努力。用到了Google Blog Search Ping,让会员的文章能更快的被搜索到;正在实施OpenSocial。谢谢Google的技术,让我们能更好更快地达成自己的目标。”
演讲完毕后,就遇到了前来交流的Google中国工程师王超与盛科网络(苏州)的CTO古陶,我想中国发展的瓶颈来源于持续了几千年的文化,这应该是大家的共识,无需描述太多。谢谢两位对价值中国网的支持,特别要感谢王超的时间,他帮我解决了不少OpenSocial的疑问。
结尾
至此,Google Developer Day 2009就全部结束了,在回来的路上,我突然想明白了古陶说的话:“Web2.0的盛行是解决现在中国发展的契机”(原话记不清了,大意如此,如有偏差,古兄看见还请指正),技术是固化的思想,思想来源于文化,Web2.0七大原则中的利用集体智慧、合作而非控制,其实蕴含着独立、负责、诚信等文化因素,也正是因此,Web2.0的出现不在中国。反过来说,Web2.0技术在中国的盛行,能否反过来影响思想,思想再反过来改进文化?我想这个可能性是存在的。Open Social就是个例子,平台商,应用开发商,用户三赢的局面越来越多,我们也逐渐变得诚信、负责、独立、合作了。