SpaceX引领太空探索商业化

太空探索技术公司(SpaceX)的第一架宇宙飞船Dragon号,在Falcon 9(猎鹰9号)运载火箭的搭载下,于5月22日顺利发射升空并进入了预定轨道。在环绕轨道过程中,飞船进行了一系列复杂的机动性和系统级测试,以保证在与国际空间站对接的过程中万无一失。5月25日,Dragon号达到国际空间站所在的位置,被空间站的机械臂捕获并完成了对接操作。在完成国际空间站物资补给以及运载太空站返回货物的任务后,Dragon号飞船于5月31日顺利返回地球,着陆在太平洋海域。

随着Dragon号飞船一系列预订计划的成功实施,SpaceX公司创造了多项航天领域的新记录。Dragon号是第一架由私人商业公司设计的可载人宇宙飞船,在容积上能够搭载七名成员或相等重量的货物到达近地轨道,可以承担为国际太空站进行物资补给或人员轮替的任务。在完成此次发射任务之后,SpaceX公司率先成为有能力将太空舱发射进入地球轨道,并与国际空间站对接的商业太空发射公司。

对于SpaceX来说,这次发射与对接任务的顺利实施远不仅是那些具有开创性的历史意义,更重要的是,发射任务的顺利实施将为SpaceX带来后续数十亿美元来自NASA(美国国家航空航天局)以及其他机构的订单,用来为国际空间站输送人员和物资,并承接太空微重力环境对生物、材料、流体物理学等相关研究对象影响的各项实验任务。NASA认为将低轨道载人火箭发射及运载计划承包给商业公司,将比自行完成这项工作更有效率,同时NASA也可以将其资源和注意力集中在探索更遥远的外层空间上。

实事的确如此,根据SpaceX的统计数据来看,原先NASA在完成类似发射任务过程中,消耗的资金往往是SpaceX各项花销的四到十倍。此外,创始人Elon Musk还在SpaceX官方网站公布,公司通过精细化管理以及设计生产过程中的高度垂直集成,使得目前猎鹰9号火箭的标准发射费用仅为5400万美元,并将使用铝锂合金制造的猎鹰系列运载火箭做到部分重复使用,通过出色的成本控制下进一步下调火箭发射的价格成本。

美国航天工业具有深厚的技术积累和完善的产业链,此外还有数量众多且经验丰富的工程人员。有趣的是,在航天界之外不少IT企业和技术人员,也把关注点转向太空资源的开发和利用。与Paypal创始人Elon Musk创建SpaceX相似,DOOM、QUAKE、CS等游戏引擎的传奇程序员John Carmack已不满足自己在游戏业中取得的成绩,也创建了面向太空技术研发的Armadillo Aerospace公司,专注于研制能够垂直起降并且可以重用的运载火箭技术,为实现载人太空旅行而努力。Carmack主导的Armadillo公司还创建了X-Prize Cup航空航天展和Lunar Lander Challenge登月挑战赛,为航空航天的爱好者提供了施展的平台和空间。此外Google赞助发起的Google Lunar X PRIZE,也为青少年了解航天领域知识和动手操作提供了支持。

创建于2002年的太空运输公司SpaceX,仅用了八年时间就顺利完成了猎鹰1号和猎鹰9号运载火箭的设计和制造,并同步研发了Dragon系列宇宙飞船,成为继美国、俄罗斯、日本、欧空局之后第五个与国际空间站对接的航天组织。或许在不远的将来,在SpaceX、Armadillo等商业公司的努力下,航天发射的费用能够降到目前发射费用的1/10,那么,距离普通人去外太空旅行的愿望应该也会越来越近。Carmack曾设立了奖金为一千万美元的X PRIZE大奖,用于奖励能够将三名乘客送到外太空的航天发射项目。在不远的将来,哪个团队将摘走X PRIZE大奖,让我们拭目以待。

本文曾发表于《程序员》杂志-2012年07期“程序天下事”栏目。

DQP分布式查询执行过程

数据访问集成中间件OGSA-DAI,在最新3.2.x版本中,已整合了分布式查询中间件DQP。DQP的作用是将分布式异构的关系型数据库通过数据服务进行集成,使客户端在SQL查询中访问多个数据源,如同操作单一数据源中多个不同的数据表。

在DQP分布式查询执行前,首先要获取已配置数据资源的schema表结构,并在获取的每个schema表名前加入相应的数据源前缀,以便在将分布式数据源整合后的虚拟数据库中进行标识。

DQP查询并不支持所有SQL查询的函数和操作符,其查询语法支持SQL 92标准的 子集。在分布式查询过程中,DQP中间件并不存储任何本地数据,而是根据提交的查询请求串,将解析后的子查询提交给相应的后端数据库资源的DAI服务来获取数据。

当DQP接收到查询请求串时,根据DQP支持的SQL语法进行解析,并通过查询解析生成抽象语法树(Abstract Syntax Tree)。SQL执行所依据的查询计划也根据抽象语法树获得,并在初始查询计划的基础上进行效率优化。优化后的查询计划被DQP中间件分发给数据源对应的数据服务,并调用服务后端的OGSA-DAI工作流来并行执行子查询过程。

对于DAI单数据源查询,中间件会将整串SQL语句推送给后端数据库解析执行,而DQP分布式查询,需要将查询解析后分发,所以如果在DQP查询中嵌入自定义标量(Scalar)或聚合(Aggregate)函数,需在DQP中间件中进行功能拓展实现。另外,DQP提供使用 Graphviz生成查询计划的方法,只需在部署后的DQP配置文件DQPCompilerConfig.xml中添加VisualiseOptimiser类,并指定DOT和PNG输出路径,即可生成可视的SQL执行查询计划图。

开源GIS项目OpenJUMP简介

在开源Java GIS领域中,OpenJUMP无疑是敏捷小巧,且功能全面的GIS客户端代名词,能为使用者带来类似ESRI ArcExploer般的地图浏览、编辑和空间分析功能。

OpenJUMP前身是JUMP GIS项目,JUMP名称为Java Unified Mapping Platform的缩写,最初由加拿大GIS公司Vivid Solutions和Refractions Research共同开发。这两家公司都以提供Java GIS解决方案而闻名,并且分别向开源GIS社区贡献了Java空间分析库JTS和通用Java GIS平台uDig

OpenJUMP在GPL协议授权下开放源代码,并在系统构建时使用了Java拓扑分析套件JTS、Java高级绘图库JAI、工程与科学计算库JMathTools等已有类库。在矢量数据源支持方面,OpenJUMP支持GML 2.0,WKT(Well Known Text)、ESRI Shapefile以及JUMP自有的JML格式。

在OGC服务方面,OpenJUMP已提供了WMS支持,并且在JUMP可拓展性框架支持下,可以很方便的添加第三方WFS和WPS插件。除此之外,OpenJUMP直接支持PostGIS数据集的加载、绘制和写回,并且提供ArcSDE、Oracle Spatial以及MySQL Spatial的访问接口,通过支持空间拓展的数据库获取空间数据。

OpenJUMP内置了GIS空间分析操作,包含Buffer缓冲区分析,Intersection叠加求交、Union叠加求和等空间分析功能,可以用来实现特定的空间分析计算,并可以通过插件方式为OpenJUMP进行功能的定制或拓展。在拓展方面,OpenJUMP提供Java API接口,并且支持轻量级Java脚本BeanShell和Python的API拓展开发。

在德国,OpenJUMP被作为GIS专业教学软件,来为学生演示矢量栅格数据绘制,以及基本的空间分析功能,并以此让更多人从学生阶段就多接触开源GIS的软件环境。感兴趣的朋友可以下载OpenJUMP的上手指南,来了解OpenJUMP平台上所提供的各项GIS功能。

《Google API大全:编程·开发·实例》作者序

《Google API大全:编程·开发·实例》一书(豆瓣China-pub)将在2009年6月5号的Google开发者大会首发。本书的作者中,不少是来自Google公司开发一线的工程师,同时也包括始终关注Google API,并活跃在开发者社区的程序员和架构师,他们是:段念何峰苏哲高昂张凯峰IceskYsl王翔田淼王俊煜林胜李明刘宏伟。欢迎感兴趣Google API的朋友们关注,作者序全文如下:

10年前,使用Email邮箱收发邮件,只是很少一部分技术人员才能享受到的便利;5年前,出行时如果没有随身携带地图,只好在路人的指点下摸索找寻。而今天,无处不在的互联网和丰富多彩的互联网应用,已然嵌入了我们的生活。GMail带给我们免费、好用且容量不断增加的邮件服务,Google Maps成了我们出行前必不可少的参阅工具,甚至通过移动终端将地图随时带在身边。所有这些,都悄无声息成为我们生活的一部分。

互联网技术每天都在更新和发展,促成这一切发生的,正是背后极具创造性的程序员,和那些通过产品为用户带来价值的新技术公司。在这些公司中,Google毫无疑问是在帮助用户改变互联网使用方式上做得最为出色的。

Google以其独具特色的互联网应用,一直引领着互联网产品开发的方向。同时,Google为其绝大部分产品提供了面向开发者的API调用接口。这些设计良好的API,帮助开发者通过Mashup调用将Google产品所提供的内容集成在第三方应用中。

Google 多达几十种的开放API无法一一列举,但我们在日常使用互联网时一定在不经意间享受过它所带来的便利。提供地图服务的Maps API,实现互联网社区化联系的OpenSocial API,开发定制个性化首页的iGoogle Themes API,简化广告营销管理活动的AdWords API,提供网络应用程序平台的App Engine,等等。这些API的出现,不仅仅为开发者带来更具灵性的开发创意,为用户带来更为丰富多彩的互联网产品,更重要的是,它们说明了 Google的产品不是封闭的,而是属于整个互联网开放平台的,任何人都可以在Google的产品之上进行拓展,并享用Google产品为互联网带来的便利。

本书的写作的目的,也正在于此,即对Google开放API进行梳理和介绍,辅以行之有效的实例,让更多的开发者了解Google API、深入Google API,灵活使用Google API来开发实用且融入灵感与创意的互联网应用。

请移步Google Document继续阅读序言全文

EndNote使用手记

EndNote这款老牌文献管理软件同时提供了Windows和Mac OS X的发布版,目前最新是X2版本,这个版本改善了用户在全文搜索以及文献整理时的体验。

目前文献查找常用的数据库如:Elsevier Science DirectSpringerLinkWeb of Science等等都提供了对于EndNote的支持,并且在文献搜索页面上会有类似于”Export Citations”的选项,只要将引文内容和摘要的查找结果保存,并导出为RIS格式,即可将引文的内容导入到EndNote已打开的数据库之中。CNKI等中文数据库的导入方法也可以在在上一篇EndNote教程中找到解决方法。

在文献管理方面,EndNote提供了近200种文章撰写模板(Template)、600余种导入参考文献的过滤器(Filter)和近3000种参考文献的编排格式(Output Style),但如果投稿国内期刊的话,提供的模板大多是用不上的,可以根据自己的需要修改或定制。

参考文献的编排格式方面,中科院博士论文定制EndNote的ENS样式文件还比较美观,直接将其拷贝到安装目录Styles文件夹下就可使用,基本上适合大多数中文期刊对于参考文献的排版要求。

在与Word联动方面,EndNote已经支持的比较完美了,利用Word的宏可以实现参考文献先后顺序的动态调整。对于非Office用户,希望EndNote对OpenOffice的支持也早日成为现实。