开源CMS的选择

抽空试用了不少开源的CMS内容管理系统,PHP+MySQL的世界令人眼花缭乱,先把值得一提的开源CMS仅就直观感受做个总结,其实严格上讲内容管理系统CMS并不属于Web框架的范畴,但是CMS的质量与繁荣程度代表着一种语言在Web开发上的适应性,下面选的几个CMS基本代表了PHP架构下基于CMS建站的主流方向。

先说PHPNuke,这可是老牌的CMS系统,功能比较完备,给后来者提供了不少借鉴之处。但是毕竟岁月不饶人,在设计理念和性能表现方面,PHPNuke逐渐开始落后于其他后起之秀。

再说快速建站的不错选择Mambo,曼波模板的美观程度和功能模块的数量都值得肯定,也拥有不少的坚定支持者,但由于不具备页面静态化机制和拓展上的复杂性,构建商业站点会带来比较大的性能问题。

然后是自己目前最喜欢的Xoops,这是一个非常简洁优雅的CMS建站系统,中文支持也很好,并且开发社区非常活跃,保证了大量的插件支持。在实现页面静态化方面,可以手动嵌入Smarty模板,来适应访问量较大的站点开发。尽管值得推荐,但稍许还有不足之处,Xoops目前的风格样式不算丰富,同时定制自己的风格模板需要做不少复杂的工作。

重量级的Typo3当然最后出场,在功能上说,这应该是CMS的终结者了。Typo3的后台管理相当复杂,具体配置方法自己折腾了半天也没有完全弄清楚,但是可以肯定,许多企业级站点所需的功能可以直接在配置管理中实现。目前国内Typo3的用户非常少,但国外为数不少的大型站点都是架构在Typo3之上的。相信随着Typo3的普及,会有一批站点以此为基础构建。

一个优秀的站点,最核心的是绝佳的创意和吸引用户的人性化服务。仅就建站应用上来说,或许功能模块的二次开发会费些功夫,但基于优秀的CMS实现并没有太大的技术难度。至于自己的选择,以后会考虑基于Python或Ruby的Web框架实现一个小巧的站点,因为还是比较喜欢简单带来的快乐。

Python初体验

对于脚本解释语言Python的兴趣,动力源自于对喜欢的书评站点豆瓣(douban.com)的技术探究。站长阿北在一篇帖子中提到“豆瓣全部使用Python开发,网站后台的搜索引擎基于Twisted,GUI基于Quixote”,而且更令我惊讶的是,承载豆瓣每天8万独立IP和50万页面请求的竟只是一台DIY的AMD双核1U服务器。而且我每次访问,感觉服务器相应速度相当快。于是不得不对Python在Web开发中的表现大为赞叹。

当然Python的应用不仅限于此,在Python官方站点上列出的应用可谓包罗万象,而且NASA和Google也是Python的用户之一。其实早就关注Python的发展了,只是由于惰性一直没有入手学习。最近花了一个下午的时间把Pyhton语法通了一遍,用Eclipse的Pydev插件调试了例子代码,感觉使用Python确实可以享受到敏捷的开发效率。Python开发的模块和内置的元组、字典等数据结构使用起来很便捷。并且如果需要,关键算法可以使用纯C来实现。

比较来说,在Web应用方面,Java的开发效率确实不敢恭维,这一点是早有体会。在桌面开发上,国内Java框架研究先驱站JavaEye的站长Robbin,一年前就断言Java桌面开发已死,而Python的桌面应用则前途不可限量。这个观点不敢苟同,毕竟自己还是很喜欢以Eclipse为代表的SWT/JFace的桌面表现方式。但不得不赞一下类似Boa这样的Python IDE环境的优美简洁。

值得关注的Python开源Web项目是Zope和Django,但是对Zope的表现还不太信任,原因之一就是集成度太高,整个Zope结构大致相当于PHP+Apache+MySQL的集合,耦合度太高也会为拓展性及二次开发带来不便。Django准备仔细研究一下,争取做一个演示站点出来。类似chicagocrime.org这样的Python+Django+Google Map这样紧密结合实际的应用今后会大有用武之地。

可以参考的Python GIS桌面项目,感觉比较好的是陈老师推荐的mezoGIS,一个月前德国人刚启动的项目就已经开始研究了,不得不佩服一下。

需要开始用Python吗?今后应该会有涉及的,但逐渐发现越学越杂,反而都不能深入。那就这样吧,慢慢会好的。

使用Eclipse开发网格服务及其相关

一直比较喜欢IBM Developer Works上的教程,大部分做的很细致而且基本都有源代码示例。不过最近调试IBM发布的使用Eclipse开发网格服务教程,示例代码中应该是有两个类没有实现,未能调试成功。还反馈给了IBM DW中文版的编辑,不过文章的原创是老美,也不知道人家会不会改正一下。(更正:文档重新细致的看了一遍,添加了漏掉的步骤,IBM的例子已经于06年3月31日调试通过,为我的不扎实做一下检讨)

推荐两个值得关注的网格、Java相关的开源项目:
1. GT4IDE:这个项目可以将Globus4集成到Eclipse中简化网格服务的开发,来自西班牙的开发者Borja正在攻读芝加哥大学的CS博士学位,看了一下他的简介,发现是个积极活跃的分子。

2.WebRCP:这个项目可以将Eclipse发布的RCP产品转化到Java Web Start的基于Web的应用上来。很不错,这样可以免去开发者编写JNLP配置文件的工作,同时可以规范化程序的结构。

时间似乎有些紧张,但感觉学习一直没有太大的进展,而且不经意就会遭到一连串小的打击,看来的好好计划一下了 :)

基于Web Start的应用发布设想

一直看好Java Web Start的应用前景,通过这种方式可以使部署在服务器上的富客户端应用通过一个HTTP链接加载到客户机上,取消了传统C/S结构的种种限制,给使用者带来很大的便利。可以看看Sun公司的Java Web Start官方站点。Sun公司提供JWS的demo演示可以在这里找到。左图为JWS的标准访问流程。

最近讨论了一下类似ww2d这种数字地球的产品化前景,要做的改进主要是数据应该像Google Earth那样进行加密传输,而不能像NASA World Wind都下载到缓存里让所有人都得到,因为国内用户对自己的数据保护还是相当看重的,毕竟高分辨率的数据买来也需要不少花费。ww2d程序在我的Win2K下用Eclipse重新编译了一下,简单修改了几个地方,比如增大初始窗口、状态栏增加了几个坐标的显示等,然后上传到基于FreeBSD的麒麟OS服务器上运行一切正常,不得不再赞一下Java的跨平台特性。

准备考虑使用Java网络装载协议(JNLP)发布一下ww2d这样的Virtual Earth应用,远程客户可以通过Internet访问和运行部署在服务器上的ww2d应用程序。同时值得尝试一下将Eclipse的RCP富客户端应用使用JNLP打包和配置,发布为Web Start应用,这样结合Eclipse的RCP技术和Java Web Start,应该会有不错的收效。

如果网络传输不是问题,随着JWS技术的不断成熟,可以预见,日后相当一部分的Java Desktop应用可以通过这种方式发布。

Evangelist们的宣传攻势

随着Evangelist这个词在技术领域越来越火,技术布道概念也漂洋过海带给了我们新的感受,Evangelist可以理解为传道者或技术布道者。典型代表算作是Java之父James Gosling,这位大叔似乎已经成为一个象征,逐渐向娱乐Java开发者的目标迈进,图片是James在米国著名卡通片South Park中的造型,非常可爱。

关于制作精美的技术宣传资料,先推荐一下自己很喜欢的BEA thinking liquid宣传片,点这里在线观看。这个BEA的Marketing Showcase,第一次看见是在BEA World2005年会开幕式上,很精致,整篇灌注了关于流体思考的理念,可是这段视频找不到下载地址,只能在线观看。

然后是IBM的关于Inspiring Innovation的各国语言版本宣传片,灌输着IBM一贯随需应变的On Demend理念,点这里在线观看

在造势与做秀方面,当然少不了这方面的先驱Microsoft,先推荐一下关于Microsoft Innovation创新理念的交互介绍。可以在菜单选择6为Microsoft的员工进行讲解,来了解MS技术在社会不同方面的应用,点击这里进入。然后是作为微软Live站点的最新噱头Virtual Earth,Preview的页面里通过采集大量图片资料,再现真实的视觉体验,点击这里进入

先消化这些,还有好的资料以后有时间慢慢介绍。向有意思的Evangelist们看齐。