Monday, February 26, 2007

Weblog定位的调整和思考

  过完年回来也上了两天班了,回想一下,这个假期我可以算是干了两件比较有意义的事情:一是下决心好好经营这个人人都看得到的Weblog,以记录和分享自己的经历和思考,二就是花了蛮多时间把近阶段一些“热门”技术进行了网罗学习,以更新知识和整理线索。

  由于一下子接受了太多新的东西,一时半会儿还无法将这些知识进行有效的内化,相信多加时日即可将之呈献在此Weblog之上。借此机会,我想先把调整后的Weblog定位公布一下,目前能想到的并且有内化过的东西可以谈出来的,主要是以下三块:
  • Enterprise Applications(企业应用)——以企业应用模式为主,有些内容可能会涉及SAP企业应用技术,但尽量想办法将其抽象化出来,寻求一些共性的可复用探究的话题。

  • Rich Internet Applications(富因特网应用)——主要会涉及基于Adobe的Flash, Flex, Apollo应用和思考,当然也会关注一些类似Microsoft的WPF/E等内容。

  • Emerging Technologies(新兴技术)——这块涉猎面就可能会更广些了,突破创新的技术或者专利可以叫做Emerging,而老技术的新应用也可以叫Emerging(比如Ajax),希望借此和朋友们一道与时俱进。
  最后,想做个小宣传:只要对这些内容不反感的朋友(当然有兴趣更好啦),就恳求你们来订阅我的RSS Feed(Email订阅也行)吧,相信我的Weblog不会让大家失望的。

  谢谢支持!:)

William Cui 崔伟毅

Labels:

Wednesday, February 21, 2007

从Thinking in Java到Thinking in Flex

  上月底, 著名的Thinking in Java和Thinking in C++两书的作者Bruce Eckel在Artima上语破惊人地写了一篇名为“Hybridizing Java”的长文(Hybridize是杂交的意思,可以理解为正在进行中的Java杂交化)。无独有偶,在随后的一系列Adobe在线研讨会还有广告宣传中都看到了Bruce的身影,最著名的一句标语就是:“I've been Thinking in Java, now I'm Thinking in Flex”。
  在文中,他用“Web is a Mess”开篇论及了当红的Ajax和以GWT为代表的开发工具和框架在解决HTML、CSS还有Javascript等在跨平台/浏览器一致性方面所起的作用,同时提出一个可以让大家思考的问题:我们必须持续不断地花如此高昂的代价把这条方向不一定正确的路走下去吗?诚然,不是说不可能走不下去,但这些互联网早期既有的技术标准(HTML、CSS还有Javascript等)在当初设计制定时是否考虑到如今的人们想要在其之上进行的“创造性”发挥呢?

  他还谈到了为什么Java没有赶上时代之潮流,在Web前台取得兵家必争之地,而更多地是在Web后台服务器端应用开发中延续着Web革命的火种。

  之后,Bruce将目光投向了基于Flash的解决方案:
The only obvious solution is Flash. Flash has always been all about cross-platform multimedia experiences and user interfaces. People are very familiar and comfortable with Flash, and it is installed on almost all machines in the world. It’s trusted, stable and reliable.
  最后,他对Flex还有Adobe不久即将露面的Apollo在Web和Desktop用户界面开发潜力和未来发展前景寄予了厚望。

  看来,大家也是时候关注一下Flash RIA了,让我们翘首以待吧!


William Cui 崔伟毅

Labels: ,

Sunday, February 18, 2007

Ajax应用的新“爬虫”机制

  伴随着以Ajax驱动为代表的所谓Web 2.0应用的大规模流行,一系列巨大的新挑战也开始加速降临到目前搜索引擎的头上,一个新“爬虫”机制的建立已迫在眉睫。究其原因,我尝试用简单的语言分析如下:
  • Ajax应用颠覆了以往基于纯HTTP请求/响应协议的“爬虫”机制,即默认所有的页面资源都是直接由超级链接所触发并指向的,现有的“爬虫”只需模拟用户的超级链接请求并解析对应的响应页面,然后再分析页面内容、语义以及衍生的超级链接,以此进行“爬网”。
  • 所谓Ajax,即Asychronous Javascript and XML,与以往应用的最大不同之处在于将超级链接驱动的请求/响应更多地改用了Javascript驱动的异步请求/响应。而对于现有的“爬虫”一般来说,它们对Javascript是缺乏语义理解的,它们很难再去模拟触发Javascript的异步调用并解析返回的异步回调逻辑和内容。
  • 对于传统的Web应用“爬虫”来说,它们默认每个页面的DOM结构是相对静态不变的,而这个前提条件在新的Ajax应用中再次被颠覆,对于用户的操作,Javascript会对DOM结构进行大量地变动,甚至页面所有的内容都是通过Javascript直接从服务器端读取并动态绘制出来的。
  对于以上的变化和新挑战,Shreeraj Shah在Infosec Writers上发表了一篇名为“Crawling Ajax-driven Web 2.0 Applications”的论文。

  在文中,作者指出传统的“爬虫”引擎大都是协议驱动的,而新的“爬虫”引擎需要的是事件驱动。在新的引擎中,要做到事件驱动,需要考虑以下三大关键问题:
  1. Javascript的交互分析和解释
  2. DOM事件的处理和解释分发
  3. 动态DOM内容语义的抽取
  另外,作者使用了rbNarcissus, Watir和Ruby语言和工具对这些问题和可能的解决方案进行了演示。有兴趣的可以去细细品读,再此就不一一介绍了。

  在新一代或者说下一代Web应用中,这个“爬虫”机制的问题除了在Ajax中存在之外,在其他的Flash/Flex以及WPF/E, XUL应用等也是普遍存在的。而前对于Flash/Flex来说,问题可能更为严重,因为所有的Actionscript代码是编译执行的,这个在效率提高的同时,又无疑带给了“爬虫”们更为不可思议的持续挑战!

  最后,还是在大年初一祝各位朋友:

  猪年
快乐!

William Cui 崔伟毅

Labels:

Saturday, February 17, 2007

Year End Party & Kickoff Meeting

  上周五2月9日,SAP Labs China我们所在的大部门,共计200多人,欢聚一堂,热热闹闹地开了2006 Year End Party暨2007 Kickoff Meeting。


活泼的恰恰开场1

活泼的恰恰开场2(貌似快门速度还不够)

老大热情洋溢的发言

03SS学弟“小张信哲”演唱《过火》

03ME学弟“小陶喆”演唱《小镇姑娘》

吃蛋糕比赛获奖组合(不好意思,我没想拿第一名的),左一为pp女主持(也是我的恰恰舞伴)

柔情的伦巴1

柔情的伦巴2

柔情的伦巴3

柔情的伦巴结尾 THE END

William Cui 崔伟毅

Labels:

祝复旦的朋友们猪年快乐!

William Cui 崔伟毅

Labels:

Friday, February 16, 2007

Blogger第一篇留念

晚上,我试用了一把Google的新版Blogger服务,总体感觉非常不错,特别是外部托管服务(是不是我太老土了,刚刚才知道Blogger有提供这种服务),使得我可以把闲置着的williamcui.com也用起来了。从现在开始,这里会是我的主力weblog,欢迎大家经常来看看,督促批评我别偷懒,我也会努力提高更新频率的,这个就算是我的新年决心之一吧!:P

最后,想对我的朋友们说:

在此给各位拜早年了,祝大家在猪年里身体健康,事业学业进步,阖家幸福!还有记得多多和我保持联系哦,我不想脱离最广大人民群众。:)

此致
敬礼!

William Cui 崔伟毅

Labels: