星期一 六月 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级大地震。灾情牵动着我们每位中华儿女的心结。在大家的倡议下,作者们纷纷将自己最真切祝福的话语附在书中,并连同大部分的版税收入,以不同方式不同形式捐献到地震灾区的抗震救灾工作之中,为灾区救援和生产生活的恢复尽到一份微薄的力量,帮助受灾的亲人重建家园。

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

星期日 一月 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 2009 by Gao Ang