星期一 六月 02, 2008

Phun源自于瑞典UMU大学硕士生的毕业论文,可以模拟物体的各种物理运动规律。使用者可以通过鼠标绘图来创建物体,并让物体实验重力、摩擦力、弹力、加速度等等不同的物理规律。

C++编写的Phun使用了OpenGLGLEWSDL(用于窗口管理)SDL_image(用于读取图像)以及boost等类库,目前Phun提供了Windows和Linux版的免费下载。Phun为我们展现二维物理规律的模拟,实现运动引擎的开源库还有Java实现的Phys2D和C++实现的Box2D项目。

三维物理运动模拟方面,在Playstation 3,XBox 360,Nintendo Wii等平台的游戏设计上,曾有不错表现的3D游戏引擎Blender同样使用C++实现,使用Java实现的类似引擎还有JBullet,JBullet给出了在线演示的3D。

除此之外,还有大力推荐的Ubigraph,这是一个图论动画生成工具,可以快速生成图论模型并展示其三维结构,演示各种图论算法推算的过程。

相关的项目还有很多,在iPhone平台上,类似的运动模拟引擎是Oolong Engine 2,开发者在站点上放置了在iPhone上模拟的视频。好玩的东东还有Bullet等等,以后或许一有用,先记录在这里。

期待了许久,《开源技术选型手册》一书终将面市。在封面水蓝色的背景下,长短不一的火柴排列成熊熊燃烧火焰的形状。博文的周筠老师告诉我,封面的寓意是"众人拾柴火焰高"。正是这样,就像书腰所注明的,本书是19位在各个不同领域内颇有建树的开发者共同所著,其中更不乏众多在开源领域中为大家所熟知的名字。

"一册在手,选型无忧",本书写作的初衷,也正是在浩如烟海的开源项目中,帮助开发者找到最好用最适合的可靠工具。回想起第一次在北大东门的万圣书园参加组稿会的情景,当时大家的样子还记忆犹新。相见的大都是老朋友,当然也有一些闻名但未能见面的新朋友,博文视点的朋友们和参与写作的作者们一起针对书籍的样例章节进行点评,来自CSDN的孟岩也给本书的写作提出了很多建设性的想法,最后由InfoQ中文站霍泰稳来负责书籍的统稿。

秋去春来,历经了半年的准备与写作,《开源技术选型手册》一书终将于五月底面市。其间各位作者一直在通力配合,力争将负责的章节做到最好,博文视点的周老师、方舟、杨绣国以及参与编辑的朋友也为书籍的出版费了很多的心思。

然而,书籍的出版时间正逢祖国四川省汶川发生7.8级大地震。灾情牵动着我们每位中华儿女的心结。在大家的倡议下,作者们纷纷将自己最真切祝福的话语附在书中,并连同大部分的版税收入,以不同方式不同形式捐献到地震灾区的抗震救灾工作之中,为灾区救援和生产生活的恢复尽到一份微薄的力量,帮助受灾的亲人重建家园。

一方有难、八方支援;抗震救灾,天佑中华。希望我们会携手迎来美好的明天,也希望这本《开源技术选型手册》真正为每一位关注开源、支持开源的开发者带来最大的价值。

星期二 四月 22, 2008

FireEagle是由Yahoo!推出,帮助用户在线分享地理信息的位置感知中间件。FireEagle完全使用Ruby on Rails搭建,最初是源自于Yahoo! Berkeley研究中心的ZoneTag项目。

FireEagle为使用者提供了整合位置信息的平台,帮助用户向Web 2.0在线服务分享他们的地理位置信息,使用者可以通过基于FireEagle API开发的第三方应用,将包含经纬度在内的位置信息共享到FireEagle,或者是使用GPS设备将位置信息传送给FireEagle平台。

在FireEagle提供的开放性位置服务平台辅助下,开发者可以通过安全、便捷的方式创建基于网络、移动设备以及桌面的位置服务应用。比方说Flickr相册,已经为用户在照片上添加位置信息提供了便利,这些信息可以被FireEagle获取并进行展现,为用户通过何时何地在何处的历史记录。使用者还可以在Facebook中集成FireEagle插件来感受一下FireEagle的用途。

同时,FireEagle为使用者提供了数据控制和隐私保护措施,用户完全不必担心位置相关的个人资料及私隐的泄漏。用户可以在Fire Eagle 的数据库中将所有的私有数据清除,或者是在系统中进行设置,当有人试图跟踪用户的个人位置信息的时候,发送邮件询问用户是否将位置信息向授权人公开。

目前FireEagle处在Alpha测试阶段,需要先在站点通过Email 注册申请,收到邀请之后即可使用测试,还可以使用为FireEagle提供了API封装的Ruby Gem包对其进行操作。预计FireEagle正式发布之后,将会有更多基于FireEagle的位置服务为我们带来新的体验。

星期四 四月 17, 2008

微格式(Microformats)是注入到Web页面中的小段信息,通过语意相关让信息块内容人机可读。微格式的采用可以帮助机器搜集、理解和处理Web页面所包含的内容。

在Web页面上,允许的微格式数据包括事件、人物、地点等各种信息。这些微格式内容可被其他应用检测到,并提取其中相应信息,进而对信息进行索引、搜索或把信息以其他形式重用或组合。

从技术上看,微格式表示的数据是一些语义标记,用标准的(X)HTML的形式表示。微格式尝试将常用元素的语义进行标准化,随之衍生了一系列新的表示方式,比如针对事件描述的hCalendar (源自于iCalendar 格式),针对个人和商务信息的hCard (源自于vcard 格式),以及针对新闻的存储格式hAtom (源自于atom 联合格式)等等。

对于加入微格式的页面,可以在Firefox 浏览器中加入Operator 插件,来查看页面中附带的微格式信息内容。在Operator插件的辅助下可以查看hCard,hCalendar,geo等不同类型的微格式内容,并且可以方便的将内容导出到Google日历或Yahoo!日历等Web 应用中,实现站点内容的输出。

Ruby语言实现的类库Mofo可以实现微格式解译,帮助开发者将HTML代码中的hCalendar事件或hCard等用户信息解析并展示出来。

在页面中加入微格式的同时,也增加了Web 文档的语义。微格式不直接影响浏览器渲染文档的方式,并可以使Web文档更加具有智能特性,正在逐步被越来越多的开发者所关注。

与此同时,微格式对于搜索引擎SEO 有着很高的价值,容易使站点对外暴露的数据轻松的纳入到搜索引擎的索引中,便于站点提供的信息在互联网上传播。

星期四 四月 03, 2008

SQL Multimedia是结构化查询语言SQL针对多媒体应用的规范,SQL/MM国际标准主要包含全文检索(Full-Text)、空间拓展(Spatial)、静态图像(Still Image)和数据挖掘(Data Mining)等针对不同领域的内容。标准在这四个领域定义新的结构化查询类,使得这Multimedia方面的SQL查询效率大幅提高,并使基于SQL/MM的查询更加规范、兼容性好且易于管理。

SQL/MM中针对于地理信息的查询拓展是Spatial部分,Spatial拓展方便了存储、管理、检索各类空间数据类型的操作。在几何操作、方位坐标、拓扑关系方面都通过了强有力的支持。参与查询的空间参数,需要定义在相同的空间参考系中,但未来的空间标准版本将会放松这个限制。

目前SQL/MM提供的空间数据类型支持包括点、线、面等二维空间数据,以及部分三维拓展功能和不同空间参考坐标系的支持。在SQL/MM定义的Spatial类层次中,ST-Geometry是通用的父类,其各种子类可以被实例化来进行查询操作。如ST-Point、ST-Curve、ST-MultiPolygon等子应用于不同操作的子类。在具体表结构定义中,表示空间地物位置的LOCATION字段即可以被定义为ST_GEOMETRY类型。在空间数据操作方面,通用的操作包括点和直线关系、线与线关系、线与面关系的确定,如从几条线确定一个多边形,或检测直线是否与曲线相切等操作。随着SQL标准的不断发展,将会为更多领域提供结构化查询的支持。譬如在SQL 2007新的ISO标准之中,已经添加进来XQuery、SQL/XML和Semantic Web语义网方面的内容。

SQL/MM提供的空间拓展、数据挖掘、智能化全文数据库等内容的研究和应用,已逐步受到业界更多的关注,如果想了解更多相关的信息,可以在Whitemarsh信息系统公司提供的资料链接中查看更多,包括SQL99、SQL2003、XSQL、SQL/MM等各方面的内容都可以在这里找到。

星期三 三月 12, 2008

最近读到CMU教授Manuel Blum在给研究起步者的忠告一文中写到的内容,有些话语很有感触,摘录出来放在下面。

  1. 阅读:阅读的同时,用笔写下所读的内容,特别是在面对一些晦涩材料的情况下。
  2. 学习:写作和记录有助于提高你的能力和记忆力。
  3. 思考:遇到困难,自己完全有能力给自己找到解决问题的途径。理论束缚人的思想,实践解放人的思想。
  4. 方法:拿小的例子做实验,或者将问题放在一个假定的解决方案之中。
  5. 态度:无论你做什么,你得喜欢做它,以至于你可以在无人跟进的很长一段时间里,独立思考并研究它。
  6. 知识:应该对任何东西有所了解,并对某个东西彻底了解。
  7. 研究:专注于可以狭小到可以彻底理解的题目,然后坚持下去,就会越来越意识到,研究题目实际上已经包罗万象。
  8. 答案:往往我们不会得到预期的答案,答案可能是肯定或否定之外的其他东西。
  9. 困难:我们很难预料问题的答案。有时可能会被问题拖着,走向另外一个无法预料但正确的方向上。
  10. 盲点:所有人眼中都有盲点,但也会帮助塑造我们的智力和思维。
  11. 写作:首先要有东西可说,其次把它说出来,第三说完即止,最后拟一个正确的题目。
  12. 导师:并非所有导师都能阅读并读懂你的论文,但要保证同行可以读懂你的论文。

注:Blum教授是理论计算机学大师,同时也是美国国家科学院(National Academy of Sciences)成员,同时感谢东北大学郝宪文的翻译提供参考。

星期二 三月 11, 2008

Globus项目发布了最新的4.0.6版本,在安全性、数据管理、处理过程执行方面有了不少改进。最近决定在Ubuntu 7.10平台上安装Globus 4.0.6,过程比预计的要顺利一些。Globus安装的流程和步骤,基本按照QuickStart教程中进行,还有一份不错的排错指南也帮了不少忙。

由于通过源代码Build来进行安装的方式出错可能性较大,于是直接使用了Debian Sarge的安装包。值得注意的是,在安装过程中,需要启用Ubuntu的root用户,这样方便使用Globus的CA安全认证机制对用户提交的pem请求进行签名。还有,最好把Globus_Location写到环境变量里面,这样不用在每次启动命令行时用export命令导入。

在启动Globus Container之前,需要使得用户通过Globus的CA安全签名,否则会提示认证错误。容器的启动,也没有使用指南中的shell脚本,而直接通过Globus目录中的globus-strat-container命令启动,之后得到在Globus默认的8443端口启动的WSRF服务实例。

下面的实验还要慢慢做,初步的设想是:将写好的空间分析算法以WPS服务的形式从Tomcat迁移到Globus Container中发布,供基于uDig项目具备WPS插件的客户端调用。使用OGSA-DAI将异构数据源提供的矢量数据集成,在GeoServer中以WFS的方式发布,最好GeoServer也迁移到Globus Container中。uDig客户端加载WFS源数据,之后再调用网格容器中的WPS操作进行数据处理。

顺便提一下,OGC刚刚正式通过WPS成为Web处理服务的标准之一,脱离了之前Proposal的状态,看来符合WPS标准的服务处理以后应该会有不错的发展。

星期一 三月 10, 2008

网格服务的标准由WS-Resource Framework (WSRF) 过渡到了WS-ResourceTransfer (WS-RT) 框架,WSRT在WS-Transfer的基础之上,增加了WSRF标准与WS-Management标准的特性,以便在不同组件之间方便的交换资源信息。

网格为异构资源提供了在结构化的、受管的系统中进行通信和互操作的能力。在网格计算环境下,状态信息的保存十分重要。在Globus体系中,分布式异构计算环境的Grid Service在Web Service的基础上进行扩展,将状态信息加入到无状态的服务之中,并提供构建有状态Web服务的API。

HTTP协议本身是无状态的,即服务器通过HTTP无法得知客户机是否已经关闭等状态信息。如果需要在资源传输中保持HTTP连接状态,需要由客户端保存的Cookie或服务端保存的Session来为HTTP记录用户的状态信息,再次与服务器取得连接时,就可以读取存放于HTTP响应头中的用户状态信息。

同样,一般的Web服务是不需要包含资源状态信息的。Web服务中,消息传递、服务描述、工作流描述、服务发现与集成四个部分都以松散耦合方式连接,服务交互由序列化XML进行描述。服务客户端在根据WSDL描述提交参数之后,一次调用在服务端执行的处理并得到返回结果,即可完成服务执行的整个过程。然而,WSRF协议为Web服务提供了有状态资源的管理方式,而WSRT则在WS-Transfer的基础上,增加了WSRF的WS-ResourcePropertiesWS-ResourceLifetime两个组件的功能。

网格技术在分布、异构的资源基础上实现资源共享和协同工作,OGSA到WSRF再到WSRT,Globus采用可以保存资源状态信息的Web服务标准一直处在不间断的进化之中,为网格技术的实现提供有效的支撑环境。

星期六 一月 12, 2008

用过Google Maps的朋友都会认为它很Cool。其实创建一个类似的地图服务站点,在技术上难度并不大,已经有较为成熟的开源解决方案。但是能像Google那样有原始影像数据和庞大的集群支持,不是一般站点可以做到的。

这次把Google Maps搬出来,是想分享一下比较有意思的Google坐标换算方式。Google Maps使用Keyhole公司提供的卫星影像,全世界众多大城市的卫星图片可以达到1m以下的精度。Google Maps的卫星影像使用等角正切圆柱的墨卡托(Mercator)投影,被预先处理成按照不同精度划分的影象金字塔,提供了0-17共18级的缩放等级并进行四叉树编码,每张卫星图都由切片成256*256像素大小的影像组成,根据用户请求的位置拼接组成大的影像图。

Google Maps的坐标使用QRTS这四个字母进行编码,如右图所示,一张图片被分成不同字母标识的4块,根据请求的位置逐级细化,最后达到所需精度的卫星图片。如果知道特定位置的经纬度,换算成Google Maps坐标并不复杂。首先将经纬度转换为弧度,规格化后使得变化区间在0-1之内,然后根据需要的图像精度级数确定迭代次数,进而计算出经纬度对应的Google坐标字符串。

按照计算公式,北京的经纬度以天安门作为地理标准坐标,位于北纬39度54分27秒,东经116度23分17秒。换算后得到北京的Google坐标字符串是trstrqqrqssttttrrrstq,具体对应的卫星影像地址为:http://kh.google.com/kh?v=3&t=trstrqqrqssttt 网上提供了C和Python写的换算程序,感兴趣的朋友可以一窥究竟,方便的把经纬度换算成Google卫星影像坐标。

星期五 十二月 28, 2007

Rails 2.0于12月7日正式发布,从年初的Rails 1.2发布到Rails 2.0释出,接近一年的时间里,Rails本身一直处在不停歇的发展完善之中。在Rails创始人的博客Loud Thinking上,DHH对于新版发布的兴奋和激动之情溢于言表。

新版Rails 2.0在发布之前一直在37Signals内部进行测试,相比于最初的版本,Rails 2.0几乎重写了绝大多数的框架代码,并增加众多新的特性。在发布声明中,David列举了Rails在Action Pack、Active Record等方面做出的改进,使编码更接近于开发者,同时也更符合RESTful的实现方式,并且增加了Rails调试器以及在上一个版本之上进行了上百处的代码修补。

Rails 2.0还没有来得及去体验,但按照官方说明,如果应用在Rails 1.2.6之上顺利运行且没有警告提示,则可以顺利迁移到Rails 2.0之上。当Rails 2.0与即将发布的Ruby 1.9配合使用,应该又会在Rails与Ruby的开发者中掀起新一轮的热浪。

在表现层方面,准备学习如何使用Haml来写页面,而非Rails生成的rhtml模式,Haml的页面代码更加干净、简单且可维护性更好,开发者不必延续使用传统的HTML风格的页面模板。尽管Haml可能会带来效率问题,但对于实验性项目来说,开发效率可能比运行效率更重要。

Rails发展至今,经历了四年半的时间,并且一直处在不停歇的高速发展之中。如果感兴趣Ruby和Rails方面的最新消息,可以在RSS阅读器Trawlr中,读到不少RubyRails相关的内容。

星期日 十月 28, 2007

印象里SUN的软件产品接触都比较少,主要是感觉针对企业级的产品定位往往对于一般用户实用性并不强,然而SUN的Java集成开发环境Netbeans却改变了自己一贯的看法。

同样,在Sun开源政策的支持下,Netbeans遵循CDDL开源协议,NetBeans可以在Solaris、Windows、Linux和 Macintosh OS X等各种平台下进行开发,作为全功能的Java IDE,编写、编译、调试和部署Java桌面和移动应用都十分顺手,并且Web可视化开发以及C和C++语言的开发包都包括在新一代的Netbeans中,用来在Windows平台上构建本地代码。值得一提的是,Netbeans国际化十分出色,不仅IDE环境可以切换为中文界面,附带的所有帮助文档也是中文撰写。

针对Web Service的企业应用在Netbeans环境下开发十分便捷,Web容器可使用已集成的Tomcat,同时Netbeans企业包(Enterprise Pack)中提供的Application Server也是不错的选择。目前已经测试Netbeans平台下生成并发布WebService的流程,感觉比用Eclipse、AxisWST结合实现的解决方案要方便不少。让我感到惊喜的是,Netbeans下不仅可以将Java代码生成Service发布,还可将已有的WSDL描述文件逆向生成Java接口,发布为Service进行接口调用。在目前火热的SOA领域,Netbeans对基于BPEL的Web Services商业过程语言也提供支持,开发者可以轻松定义组件之间协作的工作流,集成在应用当中。

Netbeans确实带来了不少惊喜,记得06年软件技术大会时,和Sun的白剑波老师说起Netbeans的发展及其与Eclispe的比较,大致认为,Netbeans如果要超过Eclipse的势头,仅靠Sun提供插件开发包是远不够的,还需要众多第三方插件提供商的支持,在迁移Eclispe平台上优秀插件的同时,开发更多独具特色的Netbeans插件,来丰富用户的选择。 希望Netbeans带来的好感可以持续下去,并且在后续的版本中体验到更多的令人着迷的功能。

星期一 五月 28, 2007

Google所带来的最大影响,在于它一直用前瞻性的技术改变着我们对互联网的看法。最近使用GoogleMaps的API做了些小的实验代码,基本就是将标注在数据库里的点坐标显示在Google提供的卫星地图上,不仅可以显示点标记的详细内容,还可以显示各点之间的路径信息。基于LAMP结构的PHP代码有很多不错的示例,只需将SQL脚本包含的坐标及路点信息存储在MySQL里就可以读取显示在GoogleMaps上,如果使用JSP开发,GoogleMaps JSP Taglibrary项目提供了一组Java类库,将JSP的Tag标签转化为调用地图的脚本,大大简化调用地图API的时间,并且它还能够与JSTL相结合生成数据库驱动的动态地图查询。

之所以说Google有时在引领Web技术的走向,Ajax的普及应用就是一个极好的证明,最近试用了Google发布的Ajax的工具包Web Toolkit,这个工具包可以加在Eclipse环境下通过Java类的编写自动生成Ajax所需的脚本,实现类似Gmail的富客户端效果的界面风格,只是感觉上手使用还有些不方便,但随着版本更新,这应该会是很不错的Ajax代码生成方式。

当然Google的核心服务还是互联网搜索,说不准下一个Google神话将在何时诞生,但有兴趣的朋友可以使用开源的Java项目Nutch实现一个自己的互联网搜索引擎,在Nutch里面包含有完善的排序算法和网络爬虫程序,构建一个简单的互联网搜索站点应该不会只是一个梦想。

星期三 三月 28, 2007

对动态语言的Web开发很有好感,众多的动态语言比较之后,发现Python的社区是最成熟的,同时Python社区拥有一大批优秀的程序员,而且大多都具有开源的思想和精神。在基于Python的Web框架中经过一番取舍比较之后,选择了Django作为今后的开发框架,主要原因是看中Django巨大的发展潜力。

积极推进开源项目的IBM也在Developworks中提供了Django的教程,并且还有Limodou撰写的Django Step by Step可以快速入门,同时啄木鸟社区也提供了大量的官方文档翻译,简化了学习成本。Django开发先驱Jeff Croft也在其站点上提供了按照标准Web2.0模式发布的Lost Theory站点源码。还有Holovaty在Blog上招募开发者来扩大ChicagoCrime站点的影响,使其与传统的新闻传媒相结合。可见Django已经开始受到越来越多的关注。

如果对Python还比较陌生,Django的上手或许并不轻松,并且很有可能被配置文件的编写和复杂的Django自带类库搞得手忙脚乱。但如果静下心一步步的学习,会渐渐体会到Django赋予开发者的敏捷与自由。在使用Django完成第一个站点Demo之后,把感受到的一些Django优点列举如下:首先,Django自动生成的admin管理界面,可以根据在Models里定义的显示方式,根据字段类型生成后台管理代码。其次,使用syncdb命令同步数据库之后,Django会根据模型的定义自动完成ORM的数据库映射工作,屏蔽了底层数据库细节和SQL查询的编写,感觉真的是非常神奇。还有,Django的模板里面嵌入变量和简单的控制语句非常方便,并且模板可以支持多层嵌套,每一层都可以使用DIV+CSS方式完成布局。

当然,关于蟒蛇与红宝石的争论一直没有停止,甚至在Django的官方站点上有专门的栏目来比较Django与ROR两种敏捷开发框架的优劣。不过争论毕竟是为了促使相互的学习与共同发展,在此感谢一下Yang.King、魏忠、Limodou提供的Django指导和文档,让我的第一个应用有了参考的基础。感兴趣的朋友,可以下载我帮实验室写的周志应用录像,体会一下Django带来的新鲜体验。

星期日 一月 28, 2007

开源的世界里总能发现有意思的项目,Kepler就是这样一个出色的科学计算工作流设计平台。Kepler项目由美国科学基金NSF支持,UC Berkeley和San Diego超级计算中心联合基于Java开发,目的是打造一个通用的科学工作流集成平台,并且将整合多种已有的计算模型。应用于仿真、建模的Ptolemy项目为Kepler提供了底层支持,同时Kepler的不少开发着都来自Ptolemy项目。有意思的是,在天文学发展的历史上,Kepler本人是日心说的支持者,而Ptolemy则是坚定的地心说支持者,曾经观点截然对立的两个人现在却成了两个相互支撑的项目名称。

在生物学、生态学以及天文学等领域内产生的科学数据往往需要经过复杂的分析和过滤才可以使用,这样的过程常会牵扯到大量的数据处理,Kepler集成了应用于网格计算的Globus组件,可以根据需要将应用部署在网格环境下面。同时Kepler允许用户定义自己的Web Service或者在线搜索可用的Web Service应用在数据处理流程中,使得虚拟化的服务可以随时动态调用。

Kepler的基本组件调用单元称为本体(Ontology),可以集成在数据处理过程中的本体有角色(Actor)、组件(Component)、项目(Project)、规则(Discipline)和统计(Statistics)等。用户不仅可以使用内置的本体组成工作流,还可以将自己的算法和组件定制为专用本体,对工作流程进行灵活的拓展。Kepler的应用非常广泛,目前国内关注此项目的人还比较少,希望将其应用在网格环境下各种服务的整合上,还需要再仔细研究。优秀的开源项目给我们提供了赶超国外先进水平的契机,如何好好利用,还需要后续的不断努力在行。

星期四 一月 18, 2007

以前常关注Java开源Web框架的应用研究,还专门写过一篇论文讲基于Hibernate的实体关系映射。最近一直在做Java富客户端应用,有些生疏Web框架的发展。偶尔了解一下Web框架的发展动向,发现又是一番新的景象。

这几年MVC设计思想的繁荣应归功于Java框架的带动,Struts的普及使得MVC设计达到鼎盛,一时间MVC似乎成了判断是非好坏的标准。不少Java实现的站点采用Freemarker框架生成静态html以加快页面响应速度。如果结合其他框架,可以有类似Freemarker+Webwork+Spring+Hibernate这样的选择。但是由于开发效率一直比较低同时后期维护具有局限性,面向J2EE的Web开发开始走向一个低谷,激进分子甚至宣称"J2EE的时代已经终结"。虽然此观点有失偏颇,但还是欣喜的看到,基于Ruby、Python等动态解释型语言在Web上的迅速发展的确令人振奋。

这里主要说一下Ruby on Rails,ROR是由来自37Signals的一批非常Cool的年轻人开发,在37Signals官方站上有ROR实现的独具特色的站点。有些人预言37Signals将成为下一个Google,也许吧,毕竟网络时代已经可以把创造神话的时间缩短到让我们来不及反应。

与Python实现的Web框架Django相似,ROR也是应用在web应用开发上的Framework。ROR由Ruby语言编写,其目的是让web开发变的快速而简单,ROR极大程度上简化了传统的Web开发难度,让开发者专注于富有创造力的工作,非常适于敏捷开发的要求。ROR的便捷之处在于,只要有了系统的完整E-R 图设计,就可以在 ROR中自动生成所有的 Models,Views 和 Controllers,可以在此基础上不断细化完善成为自己的应用。而且 Rails 还提供内置方法以及AJAX模块来加速开发。毕竟Ajax目前被炒的火热,在必要时可以加入,可以使用户有一些很Cool的体验感觉。希望Python的世界也会出现一个类似ROR这样可以一统目前纷乱局面的Web框架,但就目前的现状看,还没发现有哪个Python项目有能达到ROR这样优秀的潜力,看来还需要等上不短的时间。

抽空打算用ROR实现一个原型站点试试,不过发现似乎快成闲人了,因为只有闲人才会这也学那也学,是好奇心较重还是比较闲也说不准,反正平日的时间大多都塞满,还有许多事情要赶着做出来,慢慢来吧,不过ROR带来的诱惑还是很大的。

This blog copyright 2008 by Gao Ang