<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.0" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>开源GIS实验田</title>
	<link>http://www.gaoang.com</link>
	<description>OpenSource GIS Space</description>
	<pubDate>Sun, 08 Aug 2010 12:52:11 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.0</generator>
	<language>en</language>
			<item>
		<title>Go语言近况</title>
		<link>http://www.gaoang.com/archives/162</link>
		<comments>http://www.gaoang.com/archives/162#comments</comments>
		<pubDate>Sun, 08 Aug 2010 12:52:11 +0000</pubDate>
		<dc:creator>Gao Ang</dc:creator>
		
	<category>诸子百家</category>
		<guid isPermaLink="false">http://www.gaoang.com/archives/162</guid>
		<description><![CDATA[Go语言是Google公司的实验性语言，以BSD协议开放源代码。Go语言在Inferno操作系统相关的研究工作基础上开发，最初由Rob Pike等Google工程师在2007年9月启动设计工作，在2009年11月正式对外发布。
Go... ]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.gaoang.com/images/compiling.jpg" align="right" width="397"><a href="http://golang.org/">Go语言</a>是Google公司的实验性语言，以BSD协议开放源代码。Go语言在Inferno操作系统相关的研究工作基础上开发，最初由Rob Pike等Google工程师在2007年9月启动设计工作，在2009年11月正式对外发布。</p>
<p>Go将动态语言易于编写的特性和静态语言的高效性相结合，具备良好的易用性和极佳的执行效率。Go语言最初定位于网络服务器、存储系统和数据库的程序设计，同时在语言中包含并发构造体，以方便的帮助开发者创建并行任务。Go语言具有效率极高的编译器，目前Go编译器能在Linux、FreeBSD以及Mac OS X平台下运行，但暂时没有对Windows环境提供编译支持。Go开发团队曾在博客中表示，编译完成的Go程序运行速度接近C语言实现的程序。</p>
<p>在今年五月份举办的<a href="http://code.google.com/events/io/2010/">Google I/O大会</a>上，Go语言背后的工程师<a href="http://research.google.com/people/r/index.html">Rob Pike</a>和Russ Cox两人一同为开发者带来了Go语言编程讲座，解释Go语言的灵活设计和独到之处。Go语言的主要设计者Rob Pike是Google公司的资深工程师，在分布式系统、程序语言设计以及软件开发工具方面有着多年的经验。此前在贝尔实验室工作期间，Rob曾是网络操作系统Plan 9的设计者，同时也是Inferno 操作系统的设计者，Rob还曾与AWK 和AMPL编程语言的设计者Brian Kernighan一起合著有两本Unix环境下编程语言的书籍。同时，Rob Pike还给出一份可供参考的<a href="http://www.stanford.edu/class/ee380/Abstracts/100428-pike-stanford.pdf">Go语言教程</a>。</p>
<p>针对Google I/O大会上收集到开发者的提问，在Go开发<a href="http://blog.golang.org/">团队博客</a>上给出了常见问题的<a href="http://blog.golang.org/2010/05/go-at-io-frequently-asked-questions.html">FAQ</a>。在Android平台支持方面，Go编译器支持面向ARM处理器的代码生成，所以在Android平台上运行Go程序是可行的，Go语言开发团队也将积极推进Android平台上的开发工作。由于Go具备简洁的语法和语言本身的一致性，已有大学执教的老师表示将会在自己教授的编程语言课程中为学生开设Go语言选修项目。</p>
<p>目前在Google内部已有部分应用使用Go语言来实现，同时开发团队表示，Go已相对成熟，完全能够用于最终系统的开发和交付，甚至可以使用Go来<a href="http://golang.org/doc/codelab/wiki/">开发Web应用</a>。在后续工作中，Go开发团队将不断对语言进行改进提升，并随时欢迎开发者在社区中反馈Go语言开发时遇到的问题。目前在国内使用Go语言进行实际开发的公司还为数很少，尝试使用Go语言的开发者大多源自个人兴趣或技术预研，随着Go语言类库和成功案例的增多，将会有越来越多国内开发者在实际开发中尝试Go语言带来的效率和便捷。</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.gaoang.com/archives/162/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>DITA与DocBook对比分析</title>
		<link>http://www.gaoang.com/archives/161</link>
		<comments>http://www.gaoang.com/archives/161#comments</comments>
		<pubDate>Wed, 30 Jun 2010 14:36:31 +0000</pubDate>
		<dc:creator>Gao Ang</dc:creator>
		
	<category>思维记录</category>
		<guid isPermaLink="false">http://www.gaoang.com/archives/161</guid>
		<description><![CDATA[DITA和DocBook是数字出版领域的两种标准，通过定义规范化的文档描述规则，来解决文档交付过程中遇到的问题。面向不同类型的交付出版物，DITA和DocBook各有见长，但在实际应用中也有自身的限... ]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.gaoang.com/images/docbook-dita.jpg" align="right" width="414"><a href="http://www.gaoang.com/archives/159">DITA</a>和<a href="http://www.docbook.org/">DocBook</a>是数字出版领域的两种标准，通过定义规范化的文档描述规则，来解决文档交付过程中遇到的问题。面向不同类型的交付出版物，DITA和DocBook各有见长，但在实际应用中也有自身的限制因素。结合近期我参与的项目实践，对两个标准的对比分析总结如下。</p>
<p>DITA解决了出版物的结构化描述和内容重组问题，且支持多语言版本制作，适用于对格式有严格限定的技术手册类出版物。但DITA不能实现很完美的样式渲染，且对于内容与格式一体化的复杂出版物，DITA很难进行主题和界定与划分。所以使用DITA进行书籍出版的成本和难度较高。</p>
<p>相比较来说，DocBook适用于通用出版物，文档易于组织和排版。但DocBook内容以Section段落组织，不具备DITA的内容映射机制，无法做到类似Topic这样粒度的内容划分与重组。且对于内容需要频繁修改的文档排版，Docbook略显力不从心。</p>
<p>DITA和DocBook专注于交付技术信息，但DITA侧重于交付主题，而DocBook侧重于交付书籍。DITA提供基于主题级粒度的信息分类，允许作者组织并描述特定信息领域。在生成多种文档格式的信息重用过程中，能够保持内容的高度一致性。在最终交付物的输出格式方面，DITA能够生成PDF、CHM、HTML等大部分的出版交付类型。DocBook常用的交付格式为PDF和HTML，其他输出格式需要借助相关的功能插件。</p>
<p><a href="http://www.latex-project.org/">LaTeX</a>也是出版常用的格式，但我感觉LaTeX与DITA或DocBook侧重解决的技术层面有较大的不同。LaTeX是富格式文本集，尽管对科技论文撰写很合适，LaTeX适用于作者个人创作，但LaTeX文档内容和标签的耦合度非常紧密，并不适合于出版社的排版工作，以及文档内容的抽取重用，还有多种交付文档的组合生成。</p>
<p>在学习应用方面，DITA包含众多语法和标签定义，在应用过程中的学习曲线较陡，在文档生成过程中一般需要使用Ant命令进行编译。而DocBook相对容易理解和使用，一般使用者从了解到上手使用DocBook制作文档仅用一天时间即可。希望了解更多DITA与DocBook的对比分析的朋友，可以进一步阅读DCL数据转换实验室包含更为详尽内容的<a href="http://www.dclab.com/dita_docbook.asp">文章</a>。</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.gaoang.com/archives/161/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>了解REBOL语言</title>
		<link>http://www.gaoang.com/archives/160</link>
		<comments>http://www.gaoang.com/archives/160#comments</comments>
		<pubDate>Sat, 12 Jun 2010 09:00:19 +0000</pubDate>
		<dc:creator>Gao Ang</dc:creator>
		
	<category>诸子百家</category>
		<guid isPermaLink="false">http://www.gaoang.com/archives/160</guid>
		<description><![CDATA[在今年QCon北京大会上，来自支付宝的架构师蔡学镛为参会者分享了REBOL编程语言相关的主题讲座。对大多数开发者来说，在实际开发项目中选用REBOL语言目前并不算多，但REBOL语言却有着与生俱... ]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.gaoang.com/images/rebol.jpg" align="right" width="255">在今年<a href="http://www.gaoang.com/archives/156">QCon北京</a>大会上，来自支付宝的架构师<a href="http://jerrylovesrebol.blogspot.com/">蔡学镛</a>为参会者分享了REBOL编程语言相关的主题讲座。对大多数开发者来说，在实际开发项目中选用REBOL语言目前并不算多，但REBOL语言却有着与生俱来的优势，能够帮助程序员得心应手的完成特定应用场景的开发工作。</p>
<p><a href="http://www.rebol.org/">REBOL</a>是Lisp语言的替代品，由业界知名的操作系统和编程语言架构师<a href="http://www.sassenrath.com/">Carl Sassenrath</a>设计，是为分布式计算和通信量身打造的轻量级开发语言。REBOL完全能够胜任Lisp语言的应用场景，同时REBOL又打破了Lisp的局限。REBOL更类似于一般编程语言的表达方法，允许使用中缀运算符，且不需使用Lisp语言那样一对对嵌套的小括号来表示递归。REBOL语言具有统一的库函数，如REBOL/Core、REBOL/View、REBOL/Command、REBOL/SDK、REBOL/IOS等库函数，在图形界面、编程辅助、网络处理等方面提供丰富的支持。</p>
<p>REBOL的图形界面设计能力十分强大，通过简单的图形界面编程语句就可以完成图形界面的创建，并且图形界面的展示美观漂亮。同时REBOL内置了<a href="http://www.rebol.com/docs/draw.html">View Draw Dialect</a>方言，帮助开发者以最简便的方式完成图形界面中元素的定制，同时可以根据开发者的需求进行方言的拓展，定义开发者需要的子语言。作为网络编程语言，REBOL在网络处理方面具备很强的能力，对于文件下载、网页抓取、邮件接收等操作，在REBOL中仅需几条语句即可完成操作。</p>
<p>对比REBOL语言，在动态语言中应用非常广泛的Python语言，具有完整的面向对像特性，语言简便易用，编写的程序非常优雅。从加快开发速度的角度考虑，能够代替C和Java语言完成工作任务，同时与C语言的沟通能力非常好，任何为C编写的接口能够很容易转化为Python接口。而REBOL是基于相关表达式的对象语言，REBOL被称作最接近人类语言的编程语言，有着自身的独特之处，能够方便的表示数据和元数据。REBOL的设计理念之一就是始终保持小巧，即便REBOL已内置了几十种数据类型和数百条函数，以及多种Internet协议、错误处理等内容，REBOL解释器仅有几百K大小，REBOL程序编写方便，在代码编写时程序不需要对库和包含做声明即可使用，帮助开发者以最精炼的语句实现应用。同时REBOL代码可以跨越几十种系统平台，在不同平台之间移植代码不需做任何改动。</p>
<p>需要强调的是，REBOL是商业公司产品，可以提供给开发者免费使用，但源代码并不开放，使用部分REBOL函数库如数据库连接库，需要支付额外的费用。但从另一个角度看，由公司维护的语言能够在最大程度上保证类库的统一，减少开发者额外的负担。</p>
<p>目前REBOL语言的解释器最新版本为R3 Alpha，在REBOL语言中文参考文档方面，<a href="http://jerrylovesrebol.blogspot.com/">蔡学镛</a>和蔡民奎先生已经在网络整理了REBOL语言的中文<a href="http://sites.google.com/site/cnrebol/">参考文档</a>，其中包含REBOL 3.0指南，REBOL内建函数，REBOL数据类型等不同的内容，感兴趣的开发者甚至可以加入其中，一同更新维护REBOL语言的中文资料。</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.gaoang.com/archives/160/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>DITA开放工具箱</title>
		<link>http://www.gaoang.com/archives/159</link>
		<comments>http://www.gaoang.com/archives/159#comments</comments>
		<pubDate>Fri, 04 Jun 2010 09:31:41 +0000</pubDate>
		<dc:creator>Gao Ang</dc:creator>
		
	<category>诸子百家</category>
		<guid isPermaLink="false">http://www.gaoang.com/archives/159</guid>
		<description><![CDATA[DITA（达尔文信息分类体系结构，Darwin Information Typing Architecture）是一种面向主题的文档类型定义（Document Type Definitions，DTD）系统，用于定义编写和交付内容信息的规则。DITA通过XML架构来描述、... ]]></description>
			<content:encoded><![CDATA[<p><a href="http://dita.xml.org/">DITA</a>（<img src="http://www.gaoang.com/images/dita.jpg" align="right" width="256">达尔文信息分类体系结构，Darwin Information Typing Architecture）是一种面向主题的文档类型定义（Document Type Definitions，DTD）系统，用于定义编写和交付内容信息的规则。DITA通过XML架构来描述、管理和发布内容信息，并用于内容信息的编写、生成和交付。</p>
<p>DITA最初由IBM开发，目前交由结构化信息标准组织<a href="http://www.oasis-open.org/home/index.php">OASIS</a>维护，DITA通过将文档组织为可重用的模块（Topics主题）并将模块进行组织来表示信息的内容，DITA提供了主题的元数据注释，用户可以便捷的搜索、过滤和处理内容。同时DITA的结构化编写方式，支持内容的重用。</p>
<p><a href="http://dita-ot.sourceforge.net/">DITA开放工具箱</a>是OASIS的DITA标准的DTD和Schema的Java实现，能够将DITA文档的Maps和Topics转换为最终的交付文档（HTML、PDF、RTF）。DITA开放工具箱包含Ant构建模板、DITA词汇表DTD定义，DITA词汇表的XML Schema定义以及Java文档处理类库等内容。对于DITA文档，源文件和映射文件中的标记项由DTD和Schema定义，借助XSLT和CSS文档，经处理渲染后得到最终交互文档。</p>
<p>在商业产品方面，提供软件产品生命周期管理的PTC公司开发的XML文档处理器<a href="http://www.ptc.com/products/arbortext/">Arbortext</a>，支持DITA的编辑与转换工作。Syntext公司开发的开源的XML编辑器<a href="http://www.syntext.com/products/serna-free/">Serna Free</a>支持DITA、Docbook、XHTML等XML文件类型，能够实现可视化的编辑工作。</p>
<p>之前在IBM DW撰写<a href="http://www.ibm.com/developerworks/cn/opensource/os-cn-django/index.html">Django文章</a>使用的<a href="http://www.ibm.com/developerworks/cn/xml/i-dwauthors/">投稿模板</a>，应该就是基于DITA的思想进行的排版实现。对于初次接触DITA文档格式的使用者，DITA开放工具箱提供的Ant编译方式不太直观，可以先从所见即所得的编辑器开始入手使用DITA，建立一个感性的认识。</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.gaoang.com/archives/159/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Hadoop的Python语言封装</title>
		<link>http://www.gaoang.com/archives/158</link>
		<comments>http://www.gaoang.com/archives/158#comments</comments>
		<pubDate>Tue, 25 May 2010 03:38:56 +0000</pubDate>
		<dc:creator>Gao Ang</dc:creator>
		
	<category>JAVA魅力</category>
		<guid isPermaLink="false">http://www.gaoang.com/archives/158</guid>
		<description><![CDATA[Hadoop使用Java语言实现，编写具体的应用业务除了借助Hadoop的Java API外，还可以使用开发者所熟悉的Python或C++等其他语言编码。在Hadoop安装路径的/src/examples/目录中，给出了Python实现的分布式应用... ]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.gaoang.com/images/dumbo.jpg" align="right" width="260"><a href="http://www.gaoang.com/archives/138">Hadoop</a>使用Java语言实现，编写具体的应用业务除了借助Hadoop的Java API外，还可以使用开发者所熟悉的Python或C++等其他语言编码。在Hadoop安装路径的/src/examples/目录中，给出了Python实现的分布式应用示例。除了将Python代码通过Jython运行时转换为jar包部署，还可借助Hadoop Streaming工具，利用可执行程序或脚本代码实现Map-Reduce中的Mapper或Reducer过程，借助标准输入输出交互数据而不需编写Java实现类。</p>
<p>如何以Pythonic的方式完成Hadoop经典的WordCount词频统计工作，来自德国的开发者Michael G.Noll在博客中撰文讲解了<a href="http://www.michael-noll.com/wiki/Writing_An_Hadoop_MapReduce_Program_In_Python">实现方法</a>：在Python编码中，通过STDIN标准输入和STDOUT标准输在Map和Reduce代码之间传输数据。Python的sys.stdin方法读取输入数据，并通过sys.stdout打印输出数据，而数据的交互处理过程交由Hadoop Streaming来处理。以同样的方式，可借助Perl、Ruby或其他动态语言完成Map-Reduce处理过程。</p>
<p>在Hadoop API的Python封装方面，著名音乐站点<a href="http://cn.last.fm/">Last.fm</a>发布了基于Python的<a href="http://github.com/klbostee/dumbo">Dumbo</a>（小飞象）项目，Dumbo能够帮助Python开发者更方便的编写Hadoop应用，并且Dumbo为MapReduce应用提供了灵活易用的Python API。Last.fm的开发者，同时也是Dumbo项目发起人Klaas Bosteels 认为，对于定制Hadoop应用，使用Python语言代替Java会让工作变得更有效率。</p>
<p>在基于Dumbo框架的应用实现中，不需模仿Michael G.Noll给出的代码将mapper和reducer存放于不同的文件中，而只需在程序中定义mapper和reducer函数，并通过语句dumbo.run(mapper,reducer)来启动执行过程。在作者给出的<a href="http://wiki.github.com/klbostee/dumbo/example-programs">Dumbo示例</a>中，能够将Hadoop原先60行Java源代码实现的WordCount示例，简化为Python实现的7行源代码来完成。此外，Dumbo还提供了一些易用的功能，包括向dumbo.run()执行操作传递第三方参数。并在Dumbo项目文档中，给出了从Apache访问日志文件中进行IP统计的完整示例，以及四个简短的应用示例。</p>
<p>另外一个相似的项目<a href="http://code.google.com/p/happy/">Happy</a>，则为Jython开发者使用Hadoop框架提供了便利，Happy框架封装了Hadoop的复杂调用过程，让Map-Reduce开发变得更为容易。Happy中的Map-Reduce作业过程在子类happy.HappyJob中定义，当用户创建类实例后，设置作业任务的输入输出参数，然后调用run()方法即可启动分治规约处理，此时，Happy框架将序列化用户的作业实例，并将任务及相应依赖库拷贝到Hadoop集群执行。目前，Happy框架已被数据集成站点<a href="http://www.freebase.com/">freebase.com</a>采纳，用于进行站点的数据挖掘与分析工作。</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.gaoang.com/archives/158/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>中国云计算大会前瞻</title>
		<link>http://www.gaoang.com/archives/157</link>
		<comments>http://www.gaoang.com/archives/157#comments</comments>
		<pubDate>Tue, 04 May 2010 07:31:04 +0000</pubDate>
		<dc:creator>Gao Ang</dc:creator>
		
	<category>诸子百家</category>
		<guid isPermaLink="false">http://www.gaoang.com/archives/157</guid>
		<description><![CDATA[第二届中国云计算大会将于5月21、22日在北京召开，大会日程安排已经确定。会议演讲者以高管和领导为主，涉及云计算技术细节的内容不会特别多，但有些演讲人很吸引我，到时我也会过去大... ]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.gaoang.com/images/cloudchina.jpg" align="right" width="175">第二届中国<a href="http://www.ciecloud.org/2010">云计算大会</a>将于5月21、22日在北京召开，大会日程安排<a href="http://www.ciecloud.org/calendar">已经确定</a>。会议演讲者以高管和领导为主，涉及云计算技术细节的内容不会特别多，但有些演讲人很吸引我，到时我也会过去大会现场听一些感兴趣的报告。</p>
<p>在本次大会的众多演讲专家名单中，来自南加州大学（USC）的黄铠教授（<a href="http://gridsec.usc.edu/Hwang.html">主页</a>）是我最期待见到的一位。黄老师是南加州计算机系终身教授，同时也是IEEE Computer Society的理事，黄老师一直从事计算机体系结构和并行处理的研究与教学工作，研究生时读的那本厚厚的E文<a href="http://www.china-pub.com/6">计算机体系结构</a>便由黄老师撰写。目前黄铠老师致力于可扩展多处理机系统、并行程序设计工具和超级计算应用等方面的研究。在本次大会黄老师除参与圆桌论坛外，还将做一场题为&#8221;受信任云计算的安全、隐私、和数据保护&#8221;的讲座。</p>
<p>09年夏天到武汉，在<a href="http://www.superhaiou.com/">海鸥</a>的引领下参观了华中科技大学计算机学院的几个实验室，当时的第一感觉就是人多力量大，项目也都是国家级的，&#8221;十二五&#8221;期间计算机系统虚拟化973项目（<a href="http://grid.hust.edu.cn/973/">主页</a>）也是由计算机学院牵头，在虚拟化技术方面有较深的积累。本次大会上，华科计算机学院<a href="http://grid.hust.edu.cn/content.php?id=2&#038;vid=0">金海</a>院长的讲座也值得一听，内容应该包含华科在服务计算、虚拟化技术方面的研究进展。</p>
<p>人民大学<a href="http://idke.ruc.edu.cn/xfmeng/cindex%20new.htm">孟小峰</a>教授在数据库技术、云数据管理等研究方向有独到之处，他的演讲主题&#8221;云数据管理技术&#8221;值得一听。此外，微软<a href="http://blog.163.com/zhangyaqin_vip/">张亚勤</a>博士&#8221;云计算发展方向与技术趋势&#8221;的主题讲座以及解放军理工大学<a href="http://www.chinacloud.cn/">刘鹏</a>教授主持的Track我也比较关注，到时会准时去听。</p>
<p>在国家&#8221;十二五&#8221;规划中，中国云将作为一个大的研究项目投入开发建设，期待承担项目的各个高校或研究单位能够多从实用角度出发，集中力量做好真正能转化为产业化生产力的技术。希望本次云计算大会，能为IT业界和学界研究提供更多有益的引导和借鉴。</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.gaoang.com/archives/157/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>QCon Beijing 2010参会随记</title>
		<link>http://www.gaoang.com/archives/156</link>
		<comments>http://www.gaoang.com/archives/156#comments</comments>
		<pubDate>Mon, 03 May 2010 13:27:44 +0000</pubDate>
		<dc:creator>Gao Ang</dc:creator>
		
	<category>诸子百家</category>
		<guid isPermaLink="false">http://www.gaoang.com/archives/156</guid>
		<description><![CDATA[第二次参加QCon企业开发大会，听了不多的几场技术报告，见到不少InfoQ中文站的编辑朋友，遇上很多出没在会场各角落的技术牛人。相比较去年在清华科技园举办的QCon大会，今年会议的组织和... ]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.gaoang.com/images/qconbj2010.jpg" align="right" width="384">第二次参加QCon企业开发大会，听了不多的几场技术报告，见到不少InfoQ中文站的编辑朋友，遇上很多出没在会场各角落的技术牛人。相比较去年在清华科技园举办的QCon大会，今年会议的组织和内容有了很多新的亮点，当然也有一些需要继续改进之处。</p>
<p>这次的QCon大会，我主要选择参加了一些国内开发者的讲座，一是希望更多的了解国内的开发社区发展情况，二是在国内开发者讲座中发现值得借鉴之处，易于深入沟通，有机会能够进一步求教与合作。在大会讲座间隙，向邓草原和洪强宁两位演讲者请教了些感兴趣的技术问题。</p>
<p><a href="http://dcaoyuan.javaeye.com/">邓草原</a>是NetBeans的<a href="http://wiki.netbeans.org/Scala">Scala插件</a>开发者，同时对Scala有着较深入的研究，并且与核心开发团队之间也一直保持沟通。Scala语言我没有在实际应用过，但对语言的并发处理能力和适用场景很感兴趣。邓草原曾是NetBeans Dream Team成员，我也一直关注NetBeans的Platform开发，在采访室旁听了邓草原谈Scala和Erlang的内容，便与他聊起NetBeans插件开发的话题，同时也交换了一些对NetBeans中文社区发展的想法。</p>
<p>在去年QCon大会上，<a href="http://www.douban.com/people/hongqn/">洪强宁</a>带来的豆瓣架构变迁的讲座很吸引人，今年Python语言的演讲主题同样包含丰富的内容。由于要帮InfoQ做洪强宁的新闻（<a href="http://www.infoq.com/cn/news/2010/05/qcon-douban">详见InfoQ</a>）和视频采访，所以我提前根据Keynote幻灯片内容准备了些Python与Web 2.0开发的问题。但我对豆瓣的<a href="http://code.google.com/p/beansdb/">BeansDB</a>开源项目很感兴趣，采访之后便向@hongqn请教了不少BeansDB在豆瓣内部应用的情况。由于BeansDB类似P2P的去中心化设计，且适用于图像和BLOB内容存储，存储对象比较适合GIS数据特点，感觉BeansDB可能会在地理信息数据组织方面有用武之地，以后使用过程中有问题还需向BeansDB开发者 <a href="http://kanrss.com/@davies:6">Davies Liu</a>多请教。</p>
<p>在国外演讲者中，一个感兴趣的内容是Twitter系统工程师<a href="http://www.linkedin.com/in/nkallen">Nick Kallen</a>带来的Twitter可伸缩性数据架构讲座，虽然以后很少能遇到Twitter这样的高并发应用场景，但对于维护这样一个有庞大用户群和海量数据的应用，其复杂程度绝不仅仅是凭想象就能完全了解的。</p>
<p>记得去年QCon第一天晚宴时，<a href="http://www.taiwen.org/">泰稳</a>用小车推出来一个InfoQ庆生蛋糕，在今年QCon的大会晚餐前，还与几个InfoQ编辑猜是否生日蛋糕每年都会有，一年时间过得很快，看见蜡烛荧荧的火苗，耳边响起生日歌时的场景令人怀念。希望QCon能够再接再厉，在演讲者选择、会议服务、互动环节等方面继续改进，体贴开发者们的口味。</p>
<p>明年QCon见！</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.gaoang.com/archives/156/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>OGSA-DAI 4.0新增特性</title>
		<link>http://www.gaoang.com/archives/155</link>
		<comments>http://www.gaoang.com/archives/155#comments</comments>
		<pubDate>Wed, 14 Apr 2010 04:58:46 +0000</pubDate>
		<dc:creator>Gao Ang</dc:creator>
		
	<category>网格科学</category>
		<guid isPermaLink="false">http://www.gaoang.com/archives/155</guid>
		<description><![CDATA[OGSA-DAI分布式数据源访问与集成中间件包含的工作流引擎能够完成数据资源的访问、更新、传输、联合与交付工作，其最新的4.0版本已经释出。在这个里程碑中，OGSA-DAI新增特性如下：

增加OGSA-... ]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.gaoang.com/images/ogsadai.png" align="right" width="140">OGSA-DAI分布式数据源访问与集成中间件包含的工作流引擎能够完成数据资源的访问、更新、传输、联合与交付工作，其最新的4.0版本已经<a href="http://ogsa-dai.sourceforge.net/documentation/ogsadai4.0/ogsadai4.0-gt/Release.html">释出</a>。在这个里程碑中，OGSA-DAI新增特性如下：</p>
<ul>
<li>增加OGSA-DAI SQL Views组件，能够与数据库视图交互进行读取操作。SQL Views在实现上多处使用了与DQP相同的SQL解析器；</li>
<li>集成高级数据挖掘与集成项目<a href="http://www.admire-project.eu/">ADMIRE</a>为DAI提供的通用行为。对于返回的一系列结果元组，允许使用脚本语言完成元组的连接或转换操作；</li>
<li>支持使用Apache Commons DBCP同基于JDBC的关系型数据资源建立连接，通过Commons-Pool创建与数据服务之间的连接对象，并访问数据资源；</li>
<li>数据接收器和数据源操作支持顺序数，在网络中断的情况下允许客户端重新同步；</li>
<li>DAI数据接收器和数据源支持非阻塞读写操作；</li>
<li>增加OGSA-DAI工作流的执行情况跟踪页面；</li>
<li>提供服务器文件缓存行为，能够将缓存数据写入服务端文件保存，并提供RESTful形式的访问接口；</li>
<li>给出将OGSA-DAI结果元组转换为KML格式文档的Activities行为；</li>
<li>改进的配置和部署方式，使得完成复杂配置和在服务器之间拷贝配置文件更为简便；</li>
<li>OGSA-DAI升级到Java 1.6环境下编译运行。</li>
</ul>
<p>在更新的特性中，个人认为比较有用的是通过Apache Commons DBCP连接池与DAI服务进行交互，工作流引擎执行情况跟踪，以及KML格式的元组转换功能。在资源部署方面，先前部署资源和行为的ANT脚本由简单的配置命令代替，并且不需用ANT脚本进行GAR打包，而是仅将包含配置文件的目录拷贝到WebApp下的WSRF文件夹中。OGSA-DAI 4.0的文档也进行了同步更新，感兴趣的朋友可以访问<a href="http://ogsa-dai.sourceforge.net/documentation/ogsadai4.0/ogsadai4.0-gt/index.html">OGSA-DAI文档</a>获取更细节的内容。</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.gaoang.com/archives/155/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>地图切片缓存工具GeoWebCache</title>
		<link>http://www.gaoang.com/archives/154</link>
		<comments>http://www.gaoang.com/archives/154#comments</comments>
		<pubDate>Sat, 10 Apr 2010 13:21:44 +0000</pubDate>
		<dc:creator>Gao Ang</dc:creator>
		
	<category>聚焦GIS</category>
		<guid isPermaLink="false">http://www.gaoang.com/archives/154</guid>
		<description><![CDATA[对OGC WMS服务，每次服务器在接受地图请求时，需根据请求内容渲染返回查询图层，对于高并发的重复性访问请求，响应过程中不可避免增加了重复处理过程和等待时间。作为地图客户端与地图... ]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.gaoang.com/images/gwc.png" align="right" width="396">对OGC WMS服务，每次服务器在接受地图请求时，需根据请求内容渲染返回查询图层，对于高并发的重复性访问请求，响应过程中不可避免增加了重复处理过程和等待时间。作为地图客户端与地图服务器的中间层，<a href="http://www.geowebcache.org/">GeoWebCache项目</a>针对WMS服务提供了瓦片缓存功能，通过地图切片与缓存，优化数据获取过程。</p>
<p>GeoServer地图服务器支持WCS 1.0、WMS 1.1.1以及WFS 1.0标准，并且默认集成了GeoWebCache组件，可以访问OSGeo中国的<a href="http://osgeo.org.cn:8080/geoserver/gwc/">GeoServer服务器</a>使用。当客户端请求地图服务时，GeoWebCache截取WMS调用请求，并返回已生成的Tiles缓存，若请求没有对应的服务端缓存，再由GeoServer针对请求图层生成对应的Tiles，从而提升地图展示性能。</p>
<p>当前的GeoWebCache 1.2.2版本，支持常规WMS请求，在Tiles切片重组和栅格重采样方面的性能上有较大提升。同时GWC支持OSGeo TMS（Tile Map Service）服务定义的格式和投影方式。并支持在GeoRSS输出的feed中包含GML描述的要素信息。在地图展示客户端方面，GeoWebCache支持与OpenLayers、Google Maps、MS Virtual Earth配合展示GWC地图缓存。对于Google Earth客户端，转换为KML 2.2中支持的<a href="http://code.google.com/apis/kml/documentation/kml_21tutorial.html#superoverlays">Super-Overlays</a>叠加方式，调用GWC<a href="http://www.geowebcache.org/trac/wiki/super-overlays">生成的KML串</a>在Google Earth中加载Tiles缓存。</p>
<p>根据GeoWebCache项目的<a href="http://opengeo.org/products/coredevelopment/geowebcache/">Roadmap</a>规划，今后开发重点将关注于缓存动态服务器，集群性能，预生成缓存的改进，平滑缩放等级的改进等方面。同时，GeoWebCache也在尝试实现WFS请求的<a href="http://geowebcache.org/docs/1.2.0/services/wfs.html">缓存</a>，来拓展缓存OGC服务的种类。</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.gaoang.com/archives/154/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>OGSA-DAI分布式查询拓展自定义函数</title>
		<link>http://www.gaoang.com/archives/153</link>
		<comments>http://www.gaoang.com/archives/153#comments</comments>
		<pubDate>Thu, 25 Mar 2010 14:54:24 +0000</pubDate>
		<dc:creator>Gao Ang</dc:creator>
		
	<category>网格科学</category>
		<guid isPermaLink="false">http://www.gaoang.com/archives/153</guid>
		<description><![CDATA[OGSA-DAI通过数据服务对后端单个数据源查询，将整串SQL语句推送给后端数据库执行查询。而在面向分布式数据源的DQP查询中，组合查询在中间层被解析为针对不同数据源的子查询，子查询通过DAI... ]]></description>
			<content:encoded><![CDATA[<p>OGSA-DAI通过数据服务对后端单个数据源查询，将整串SQL语句推送给后端数据库执行查询。而在面向分布式数据源的<a href="http://ogsa-dai.sourceforge.net/documentation/ogsadai3.2.2/ogsadai3.2.2-gt/DQPPart.html">DQP查询</a>中，组合查询在中间层被解析为针对不同数据源的子查询，子查询通过DAI数据服务获取查询结果，并在DQP中间层对不同数据源返回的结果进行组装，并返回给请求用户。</p>
<p>通俗来讲，DQP分布式数据服务查询类似于一个MapReduce过程，现将针对异构分布式数据源的复合查询语句解析拆散，提交给对应不同数据源的DAI服务进行查询，再将多个数据服务的返回结果汇总，有DQP中间层组装得到最终的查询结果。</p>
<p><img src="http://www.gaoang.com/images/dqpfunc.jpg" alt="null" /></p>
<p>现在的问题是，SQL语句在查询过程中允许嵌入查询函数，比如Count( )、Avg( )、Max( )、Min( )等聚合函数，甚至空间数据库中支持的<a href="http://postgis.refractions.net/documentation/manual-svn/ST_Buffer.html">ST_Buffer( )</a>、<a href="http://postgis.refractions.net/documentation/manual-svn/ST_Union.html">ST_Union( )</a>等空间分析函数，在查询过程中进行一定的数据处理操作。但DQP查询在查询语句分解时，由于复合查询语义分析的二义性，不能在将嵌套函数传递给子查询。为了弥补嵌入函数的操作，DQP提供了一种在中间层处理数据的UDF（用户自定义）函数拓展方式，使得函数处理过程，在子查询返回结果后由DQP中间层完成函数计算。</p>
<p>DQP已定义了基本的标量(Scalar)和聚合(Aggregate)函数，并为用户自定义函数提供了拓展接口。比方说我们在查询语句中定义一个缓冲区分析函数Buffer( )，其功能实现调用自<a href="http://www.vividsolutions.com/jts/jtshome.htm">JTS库</a>提供的缓冲区分析API。Buffer操作需要返回每一列缓冲区分析结果，属于标量函数，需要继承LogicalExecutableFunctionBase类。同时，Buffer操作接受空间数据库子查询返回的Geometry类型输入数据，并需要用户在编写查询语句时给定一个Double型的缓冲区距离参数。</p>
<p>通过PostGIS驱动，子查询能够返回WKT格式的空间数据，DQP将返回数据以Parameters对象传入，我们可以使用JTS库的WKTReader( )读入返回的WKT数据并传给geom对象，再以类似Geometry result = geom.buffer(distance);的JTS调用完成缓冲区分析处理，并将结果以Object对象返回给DQP查询结果装配器，即可实现分布式查询中的空间分析函数嵌入工作。标量函数的拓展示例参见<a href="http://ogsa-dai.sourceforge.net/documentation/ogsadai3.2.2/ogsadai3.2.2-gt/DQPServiceDevelopers.html#DQPScalarFunctions">这里</a>。对于聚合函数，则需要继承SQLAggregateFunction类，实现过程不在赘述，示例参见<a href="http://ogsa-dai.sourceforge.net/documentation/ogsadai3.2.2/ogsadai3.2.2-gt/DQPServiceDevelopers.html#DQPAggregateFunctions">这里</a>。</p>
<p>通过自定义函数的拓展，可以进一步丰富DQP分布式查询的功能和适用性。DQP对于复合查询的解析，应该是基于ANTLR提供的语法解析功能实现的，语法解析过程以后有时间研究一下再写出来。</p>
<p>根据OGSA-DAI项目组成员在<a href="http://www.ogf.org/OGF28/">OGF-28</a>研讨会中公开的的开发线路图，OGSA-DAI 4.0将在2010年的4月份发布，更新的内容包括DQP的优化和拓展，增加SQL Views查询器，改进通用Activities，增加KML行为以及3.x版本中已报告的Bug修改等。</p>
<p>近3年时间里，我对<a href="http://www.ogsadai.org.uk/">OGSA-DAI项目</a>始终保持关注，也在邮件沟通中认识了一些项目背后的开发者，他们一直在贡献代码和文档来推动着项目进程。希望DAI项目能够持续推进，并且在易用性方面得到进一步改善。</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.gaoang.com/archives/153/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>QCon北京2010开发大会预告</title>
		<link>http://www.gaoang.com/archives/152</link>
		<comments>http://www.gaoang.com/archives/152#comments</comments>
		<pubDate>Thu, 04 Mar 2010 13:50:54 +0000</pubDate>
		<dc:creator>Gao Ang</dc:creator>
		
	<category>诸子百家</category>
		<guid isPermaLink="false">http://www.gaoang.com/archives/152</guid>
		<description><![CDATA[由InfoQ中文站承办的QCon北京2010开发大会将于4月23至25日在北京京仪大酒店举行，届时将由30多位国内外知名讲师分享他们的经验心得，包括《设计模式》作者Erich Gamma、《Release It》作者Michael Nyga... ]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.gaoang.com/images/qcon2010.jpg" align="right" width="387">由InfoQ中文站承办的<a href="http://www.qconbeijing.com/">QCon北京2010开发大会</a>将于4月23至25日在北京京仪大酒店举行，届时将由30多位国内外知名讲师分享他们的经验心得，包括《设计模式》作者Erich Gamma、《Release It》作者Michael Nygard、ThoughtWorks首席架构师Jim Webber、以及Facebook和Twitter的资深架构师将在大会做主题演讲。当然，演讲嘉宾还包括来自豆瓣、支付宝、去那儿等不少国内知名IT企业的资深架构师和项目管理者。</p>
<p>QCon北京大会2010将包含<strong>设计优良的架构</strong>、<strong>语言的艺术</strong>、<strong>更好地敏捷</strong>、<strong>实战SOA</strong>、<strong>基于浏览器的应用开发</strong>、<strong>知名网站案例分析</strong>六个大的主题，在保持会议期间特色栏目QClub论坛和交流酒会的同时，还增加了&#8221;最佳解决方案&#8221;模块，为与会者提供来自各个领域的最佳实践。期望今年的QCon北京大会，在<a href="http://www.taiwen.org/">泰稳</a>和InfoQ中文站团队的组织下能够再创佳绩。</p>
<p>QCon北京2010的更多细节，请关注本次大会官方站点：<a href="http://www.qconbeijing.com/">http://www.qconbeijing.com/</a></p>
]]></content:encoded>
			<wfw:commentRSS>http://www.gaoang.com/archives/152/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Sun中国技术社区之星文章汇总</title>
		<link>http://www.gaoang.com/archives/151</link>
		<comments>http://www.gaoang.com/archives/151#comments</comments>
		<pubDate>Wed, 03 Feb 2010 12:29:26 +0000</pubDate>
		<dc:creator>Gao Ang</dc:creator>
		
	<category>JAVA魅力</category>
		<guid isPermaLink="false">http://www.gaoang.com/archives/151</guid>
		<description><![CDATA[2008年夏末的傍晚，我和同事在昌黎黄金海岸遛弯时，接到了Sun中国社区经理Ada Li的电话。Ada在电话里聊起，计划在Sun开发者网站开辟一个新栏目，专门介绍那些有趣的Sun工程师的故事。
Sun公司... ]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.gaoang.com/images/duke-sdn.jpg" align="right" width="314">2008年夏末的傍晚，我和同事在昌黎黄金海岸遛弯时，接到了Sun中国社区经理<a href="http://blog.csdn.net/Adali/">Ada Li</a>的电话。Ada在电话里聊起，计划在Sun开发者网站开辟一个新栏目，专门介绍那些有趣的Sun工程师的故事。</p>
<p>Sun公司聚集了众多IT精英，不少工程师都身怀绝技，这一点我早有耳闻。我一直很感兴趣Sun的技术，而且交稿准时，Ada便希望我能撰写这个专栏，我自然也乐意来做。</p>
<p>于是，<a href="http://developers.sun.com.cn/events/star/index.html">Sun中国技术社区之星</a>的写作计划就这样开始了。从2008年10月到2009年10月，恰好写了整整十二期栏目。起初我主动向Ada征询过动笔时预设的格式和内容要求，Ada的回复却很豪爽，说这是我负责的栏目，可以自己决定。</p>
<p>准备栏目文稿不需太多时间，被采访的工程师也都乐意配合我一起把内容做好。在此期间，接触到不少有趣的Sun员工，比如去<a>M@x</a>办公室拜访时，看见他工作台上摆放的神龛，里面供奉着Java的开源吉祥物Duke玩偶。撰写Alex Peng的介绍时，得知他是Solaris系统的铁杆粉丝，但凡有人说Solaris不好，他总会把对方辩到心服口服为止。如此的趣事很多，但无一不体现着工程师们对于Sun产品近乎偏执的热爱，以及对事业的责任感。</p>
<p>如今，Sun加入Oracle的计划已尘埃落定，很多在Sun中国工程研究院的工作的朋友也相继离开，当然，这也包括部分在社区之星栏目中介绍过的工程师。市场争夺总是弥漫着硝烟，但Sun公司一直恪守工程师文化和自由开源的精神，让每一个开发者因Sun的贡献而受益。</p>
<p>把这十二期栏目集结成文，一为留作纪念，同时也希望感兴趣Sun文化的朋友可借此管中一窥，了解Sun众多伟大产品背后，一群可爱工程师们的平凡故事。</p>
<p>Sun中国技术社区之星文章汇总（PDF:3M）：<a href="http://www.gaoang.com/files/sun-sdn-star.pdf">http://www.gaoang.com/files/sun-sdn-star.pdf</a></p>
]]></content:encoded>
			<wfw:commentRSS>http://www.gaoang.com/archives/151/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>FOSS4G 2010会议预告</title>
		<link>http://www.gaoang.com/archives/150</link>
		<comments>http://www.gaoang.com/archives/150#comments</comments>
		<pubDate>Wed, 27 Jan 2010 12:28:19 +0000</pubDate>
		<dc:creator>Gao Ang</dc:creator>
		
	<category>聚焦GIS</category>
		<guid isPermaLink="false">http://www.gaoang.com/archives/150</guid>
		<description><![CDATA[继FOSS4G 2009成功举办之后，2010年开源地理信息大会FOSS4G（Free and Open Source Software for Geospatial）将于9月6-9日在西班牙巴塞罗那会展中心举行。
FOSS4G大会报告将充分利用地方、区域以及国际专家的... ]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.gaoang.com/images/foss4g2010.jpg" align="right" width="439">继FOSS4G 2009成功举办之后，2010年开源地理信息大会FOSS4G（Free and Open Source Software for Geospatial）将于9月6-9日在西班牙巴塞罗那会展中心举行。</p>
<p>FOSS4G大会报告将充分利用地方、区域以及国际专家的开源社区资源，选择当今工业社会最现实、最关心的话题。为参与者带来内容翔实、高技术含量的报告。</p>
<p>在2008年12月份，OSGeo中国作为提案组织方之一，曾组织力量撰写提案，建议将北京作为FOSS4G 2010的主办城市，同期参与申办的城市包括西班牙巴塞罗那、美国丹佛、以及荷兰乌特勒支。经OSGeo执行委员投票后，确定巴塞罗那将作为FOSS4G 2010的主办城市。希望以后有机会可以把北京或国内其他城市选为会议主办地，以便更多国内开源GIS开发者能够参与其中。</p>
<p>目前FOSS4G 2010会议已经开放注册，同时Workshops和Tutorials的选题开放征集，不久后将开放与会者的演讲摘要征集和演示案例征集。</p>
<p>欢迎感兴趣开源GIS的朋友关注会议官方站点：<a href="http://2010.foss4g.org/">http://2010.foss4g.org/</a></p>
]]></content:encoded>
			<wfw:commentRSS>http://www.gaoang.com/archives/150/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>DQP分布式查询执行过程</title>
		<link>http://www.gaoang.com/archives/149</link>
		<comments>http://www.gaoang.com/archives/149#comments</comments>
		<pubDate>Fri, 01 Jan 2010 05:12:56 +0000</pubDate>
		<dc:creator>Gao Ang</dc:creator>
		
	<category>思维记录</category>
		<guid isPermaLink="false">http://www.gaoang.com/archives/149</guid>
		<description><![CDATA[数据访问集成中间件OGSA-DAI，在最新3.2.x版本中，已整合了分布式查询中间件DQP。DQP的作用是将分布式异构的关系型数据库通过数据服务进行集成，使客户端在SQL查询中访问多个数据源，如同操... ]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.gaoang.com/images/dqp.jpg" align="right" width="263">数据访问集成中间件OGSA-DAI，在最新3.2.x版本中，已整合了分布式查询中间件<a href="http://ogsa-dai.sourceforge.net/documentation/ogsadai3.2.2/ogsadai3.2.2-gt/DQPHow.html">DQP</a>。DQP的作用是将分布式异构的关系型数据库通过数据服务进行集成，使客户端在SQL查询中访问多个数据源，如同操作单一数据源中多个不同的数据表。</p>
<p>在DQP分布式查询执行前，首先要获取已配置数据资源的schema表结构，并在获取的每个schema表名前加入相应的数据源前缀，以便在将分布式数据源整合后的虚拟数据库中进行标识。</p>
<p>DQP查询并不支持所有SQL查询的函数和操作符，其查询语法支持SQL 92标准的 <a href="http://ogsa-dai.sourceforge.net/documentation/ogsadai3.2.2/ogsadai3.2.2-gt/DQPOverview.html#DQPGrammarFunctionsQueries-Grammar">子集</a>。在分布式查询过程中，DQP中间件并不存储任何本地数据，而是根据提交的查询请求串，将解析后的子查询提交给相应的后端数据库资源的DAI服务来获取数据。</p>
<p>当DQP接收到查询请求串时，根据DQP支持的SQL语法进行解析，并通过查询解析生成抽象语法树（Abstract Syntax Tree）。SQL执行所依据的查询计划也根据抽象语法树获得，并在初始查询计划的基础上进行效率优化。优化后的查询计划被DQP中间件分发给数据源对应的数据服务，并调用服务后端的OGSA-DAI工作流来并行执行子查询过程。</p>
<p>对于DAI单数据源查询，中间件会将整串SQL语句推送给后端数据库解析执行，而DQP分布式查询，需要将查询解析后分发，所以如果在DQP查询中嵌入自定义标量(Scalar)或聚合(Aggregate)函数，需在DQP中间件中进行功能拓展实现。另外，DQP提供使用 <a href="http://www.graphviz.org/">Graphviz</a>生成查询计划的方法，只需在部署后的DQP配置文件DQPCompilerConfig.xml中添加VisualiseOptimiser类，并指定DOT和PNG输出路径，即可生成可视的SQL执行查询计划图。</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.gaoang.com/archives/149/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>欢迎参加OSGeo讲座（2009年12月25日）</title>
		<link>http://www.gaoang.com/archives/148</link>
		<comments>http://www.gaoang.com/archives/148#comments</comments>
		<pubDate>Mon, 14 Dec 2009 14:55:06 +0000</pubDate>
		<dc:creator>Gao Ang</dc:creator>
		
	<category>聚焦GIS</category>
		<guid isPermaLink="false">http://www.gaoang.com/archives/148</guid>
		<description><![CDATA[OSGeo中国（开源地理空间基金会）致力于开源GIS和自由软件在科研单位和学校的推广，并以普及开源地理信息以及最新科学技术进展及为宗旨。OSGeo论坛每月举办一次，采取开放式主题选择，每... ]]></description>
			<content:encoded><![CDATA[<p>OSGeo中国（开源地理空间基金会）致力于开源GIS和自由软件在科研单位和学校的推广，并以普及开源地理信息以及最新科学技术进展及为宗旨。OSGeo论坛每月举办一次，采取开放式主题选择，每次活动包含两场讲座，将邀请开源GIS、自由软件和开源社区参与者以及乐于分享的老师和学生主讲，内容包含但不限于开源GIS、科学计算、天文、生物等相关科技进展，以及Linux/Unix操作系统、数据库技术、动态语言等自由软件。</p>
<p>本月OSGeo讲座时间安排如下：<br /><strong>2009-12-25号，周五，下午14:00-16:00</strong><br /><strong>讲座1：《开放源码地理空间信息软件及在日本的应用》</strong> （日本大阪市立大学 <strong>Venka教授</strong>）<br /><strong>讲座2：《全国性行业地理信息平台》</strong>（中科院遥感所研究员、数字地球与导航定位研究室主任 <strong>杨崇俊教授</strong>）</p>
<p><strong>地点</strong>：<br /><strong>中国科学院地理科学与资源研究所，3楼，2321大会议室</strong><br />朝阳区安外大屯路甲11号（北沙滩桥向东1公里枫林绿洲对面，路北，奥林匹克公园西邻）</p>
<p><strong>演讲人介绍</strong>：<br /><a href="http://www.media.osaka-cu.ac.jp/~raghavan/">Venkatesh Raghavan</a>，理学博士，现任日本大阪市立大学教授，日本地理信息学会委员，Venka教授的主要研究方向为遥感图像处理与地理信息系统。</p>
<p><strong>讲座题目：开放源码地理空间信息软件及在日本的应用</strong><br />讲座将侧重于讲解GRASS GIS空间分析应用、MapServer地图服务器、GDAL类库等开放源代码软件的实例应用和最新进展。同时，讲座将与大家分享在日本应用开源GIS进行项目实践的经验，并为即将采用开源项目的开发者给出合理的建议。</p>
<p><a href="http://www.digitalearth.cn/readingroom/specialityarticle/cjy.htm">杨崇俊</a>博士，专业方向网络地理信息系统。中科院遥感所研究员、博士生导师、数字地球与导航定位研究室主任。1982年1月四川大学物理系毕业；分别于1986年和1990年在法国图鲁兹大学获计算机图像处理硕士、遥感博士；1992年-1997年任加拿大四马地理公司地理信息系统部负责人；1997年2月因入选&#8221;百人计划&#8221;到遥感所工作至今。</p>
<p><strong>讲座题目：全国性行业地理信息平台</strong></p>
<p>讲座详情请参见<a href="http://www.osgeo.org.cn/">OSGeo中国</a>：<a href="http://www.osgeo.org.cn/?q=node/38">http://www.osgeo.org.cn/?q=node/38</a></p>
<p>注：<a href="http://www.osgeo.org.cn/">OSGeo中国</a>所有讲座均免费且向公众开放，欢迎感兴趣开源GIS的开发者参与，我们准备了T恤和一些技术手册免费赠送给前来参与的朋友。</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.gaoang.com/archives/148/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>数据网格项目OGSA-DAI新特性</title>
		<link>http://www.gaoang.com/archives/147</link>
		<comments>http://www.gaoang.com/archives/147#comments</comments>
		<pubDate>Mon, 30 Nov 2009 02:45:23 +0000</pubDate>
		<dc:creator>Gao Ang</dc:creator>
		
	<category>网格科学</category>
		<guid isPermaLink="false">http://www.gaoang.com/archives/147</guid>
		<description><![CDATA[OGSA-DAI是用于分布式异构数据源访问和集成的网格中间件。在新近发布的3.2.x版本中，DAI在功能和易用性方面得到不少改进。
在OGSA-DAI 3.2版本中，最重大的改进是将分布式查询组件DQP进行重写，... ]]></description>
			<content:encoded><![CDATA[<p><img align="right" src="http://www.gaoang.com/images/newdai.jpg" /><a href="http://ogsa-dai.sourceforge.net/">OGSA-DAI</a>是用于分布式异构数据源访问和集成的网格中间件。在新近发布的3.2.x版本中，DAI在功能和易用性方面得到不少改进。</p>
<p>在OGSA-DAI 3.2版本中，最重大的改进是将分布式查询组件DQP进行重写，作为一个组件包含在DAI安装包中，无需之前版本在配置DQP时的<a href="http://www.ogsadai.org.uk/documentation/ogsa-dqp_3.1/evaluator-install.html">DQP Evaluator</a>和<a href="http://www.ogsadai.org.uk/documentation/ogsa-dqp_3.1/coordinator-install.html">DQP Coordinator</a>部署包。通过配置文件加载后的DQP资源，也作为DAI资源和行为(Activities)以标准DAI服务的形式存在，并可通过DAI的SQLClient进行分布式查询，极大简化了DQP配置和使用。</p>
<p>值得关注的是，具备拓展数据类型和函数的关系型数据库，如<a href="http://postgis.refractions.net/">PostGIS</a>空间数据库，3.2之前版本的DQP分布式查询无法读出包含拓展字段类型如Geometry类型的Schema表结构，而新版本中DQP资源以DAI资源形式对外暴露接口，且DAI支持关系型数据库拓展的JDBC列类型到DAI元组类型的元数据抽取和映射，所以可以读出空间数据库的Schema表结构，并对多个空间数据源进行分布式查询。但在DQP查询过程中，需使用OQL对象查询语句针对异构数据源进行拆分组合，所以DQP查询还不支持直接在SQL语句中嵌入空间分析函数。可行的方法是，对DQP查询进行<a href="http://ogsa-dai.sourceforge.net/documentation/ogsadai3.2.1/ogsadai3.2.1-gt/DQPServiceDevelopers.html">自定义Functions</a>拓展，加入后端空间数据库支持的<a href="http://postgis.refractions.net/documentation/manual-svn/reference.html">空间操作函数</a>。</p>
<p>此外，新的DQP索引页面dqp-index.jsp也可以在安装后查看已加载的DQP资源，其中包含DAI数据源信息、DQP数据字典、所有可以查询的表名和字段信息等。同时，DAI 3.2还更新了之前的dai-manager.jsp页面，新增了DAI资源列表dai-resources.jsp，DAI行为列表dai-activities.jsp，配置键值对dai-config.jsp，容器环境键值对dai-context.jsp，请求监视器dai-request-monitor.jsp等多项DAI服务信息页面。</p>
<p>DAI 3.2版本还启用了新的资源监控框架，用于跟踪工作流执行过程中每个Activities产生和消费的数据块的情况。同时，并优化了GridFTP行为的执行效率。在最新的OGSA-DAI 3.2.1版本中，还对已经发现并提交的一些Bug进行了修复。感兴趣的DAI使用者可以查看<a href="http://ogsa-dai.sourceforge.net/documentation/ogsadai3.2/ogsadai3.2-gt/Release.html">更新说明</a>，以获取更多细节。</p>
<p>DAI 3.2提供了新的功能并在操作上做了简化，在Ubuntu 9.10下实际安装配置也很顺利，但在版本兼容性方面，测试了DQP提供的GUI组件<a href="http://www.ogsadai.org.uk/documentation/ogsa-dqp_3.2/userdoc/client.html">ogsadqp-3.2.1-od30port</a>，以及驱动程序<a href="http://www.gaoang.com/archives/128">OSGA-DAI:JDBC</a>都已无法适用于新的DAI 3.2版本，需要等待组件升级或自己在原有基础上修改代码进行定制。
</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.gaoang.com/archives/147/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Inspire空间信息基础设施计划</title>
		<link>http://www.gaoang.com/archives/146</link>
		<comments>http://www.gaoang.com/archives/146#comments</comments>
		<pubDate>Sat, 28 Nov 2009 15:20:34 +0000</pubDate>
		<dc:creator>Gao Ang</dc:creator>
		
	<category>聚焦GIS</category>
		<guid isPermaLink="false">http://www.gaoang.com/archives/146</guid>
		<description><![CDATA[INSPIRE是欧盟发起的空间信息基础设施计划，旨在推动欧洲空间信息基础设施建设，促进成员国之间的空间信息共享，并为公众提供更易于访问和获取的空间信息。
INSPIRE项目致力保证所提供的... ]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.gaoang.com/images/inspire.jpg" align="right" width="456"><a href="http://inspire.jrc.ec.europa.eu/">INSPIRE</a>是欧盟发起的空间信息基础设施计划，旨在推动欧洲空间信息基础设施建设，促进成员国之间的空间信息共享，并为公众提供更易于访问和获取的空间信息。</p>
<p>INSPIRE项目致力保证所提供的空间信息与环境政策相协调，据此，项目提供了用于监测和改善环境所需的信息，包括大气、水资源、土壤、自然景观等，除此之外，还包含行政边界、高程、交通网络、土地覆盖等共用信息。在土地信息方面，<a href="http://www.eulis.eu/">EULIS项目</a>更为细致的提供了全欧洲的土地信息服务。</p>
<p>目前INSPIRE已发布用于空间信息获取的<a href="http://www.inspire-geoportal.eu/index.cfm">门户站点</a>原型中，为用户提供了三个功能模块，分别为<a href="http://www.inspire-geoportal.eu/index.cfm/pageid/321">数据检索</a>、<a href="http://www.inspire-geoportal.eu/index.cfm/pageid/341">空间数据浏览</a>、<a href="http://www.inspire-geoportal.eu/index.cfm/pageid/342">元数据编辑</a>。项目运行在ColdFusion服务器中，前端使用了实现Tab选项卡切换的<a href="http://www.dynamicdrive.com/dynamicindex17/ajaxtabscontent/">Ajax Tabs Content Script</a>库和JQuery库。地图显示部分借助<a href="http://openlayers.org/">OpenLayers</a>并对其进行定制。在INSPIRE提供的功能模块中，允许用户在已提供的功能模块中，检索并访问空间数据集和分布式空间服务，并利用数据定制地图显示，或根据INSPIRE规范创建用户自定义的元数据。</p>
<p>INSPIRE项目制定了一组称为Network Services的网络服务标准，用于各种公用空间数据的交换和共享，服务具备空间数据发现、转换、浏览、下载的调用接口。其中数据转换服务(Transformation Services)包含参考坐标系转换，应用Schema转换，样式转换和服务协议转换等组成部分。在Python实现的<a href="http://pywps.wald.intevation.org/index.html">PyWPS</a>项目中，给出INSPIRE Transformation Service实现两种不同坐标系之间实现转换的<a href="http://dev.bnhelp.cz/inspire/client/">参考示例</a>。</p>
<p>INSPIRE项目的发展，为空间信息资源共享带来了便利，也在一定程度上避免了信息隔离、重复采集、传递不畅、非标准化、数据利用度低等问题的发生。同时也在最大程度上将不同来源的空间信急进行整合，并以易于理解、检索、获取的方式共享给公众。</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.gaoang.com/archives/146/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>2009地理信息日：OSGeo讲座预告</title>
		<link>http://www.gaoang.com/archives/145</link>
		<comments>http://www.gaoang.com/archives/145#comments</comments>
		<pubDate>Wed, 11 Nov 2009 09:24:09 +0000</pubDate>
		<dc:creator>Gao Ang</dc:creator>
		
	<category>聚焦GIS</category>
		<guid isPermaLink="false">http://www.gaoang.com/archives/145</guid>
		<description><![CDATA[地理信息系统日（GIS DAY）由美国国家地理协会、美国地理学家联合会和ESRI于1999年共同倡导发起，其宗旨是让更多人，特别年轻一代了解GIS技术在社会、经济、生活等方方面面所产生的积极推... ]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.gaoang.com/images/gisday_color.jpg" align="right" width="250">地理信息系统日（<a href="http://www.gisday.com/">GIS DAY</a>）由美国国家地理协会、美国地理学家联合会和ESRI于1999年共同倡导发起，其宗旨是让更多人，特别年轻一代了解GIS技术在社会、经济、生活等方方面面所产生的积极推进作用。在每年的 GIS日期间，全球有上千个单位都会举办各种各样的活动来参与到GIS日之中，组织展览、讲座、开放参观等活动，向公众普及GIS知识。</p>
<p>09年11月份OSGeo讲座与地理信息日<a href="http://www.gisday.com/">GIS DAY</a>（2009年11月18日）同期举办，讲座时间与主题安排如下：<br /><strong>2009-11-18日，周三，晚19:00-21:00</strong><br />19:00-20:00：讲座1：<strong>《开源GIS在项目中的应用》</strong> （加拿大BIC公司研发中心主任，北京大学空天信息中心客座研究员 任伏虎）<br />20:00-21:00：讲座2：<strong>《OSGeo开源地理信息项目最新进展》</strong> （中科院地理所，OSGeo中国 高昂）</p>
<p><strong>地点: 中国科学院地理科学与资源研究所，5楼，2521大会议室</strong><br />朝阳区安外大屯路甲11号（北沙滩桥向东1公里枫林绿洲对面，路北，奥林匹克公园西邻）<br />详细地图请参阅：<a href="http://osgeo.org.cn/?q=node/3" title="http://osgeo.org.cn/?q=node/3">http://osgeo.org.cn/?q=node/3</a></p>
<p><a href="http://spreadsheets.google.com/viewform?formkey=dHlwUGZyNEkwUGpkV0htQXdHQmpWSWc6MA">在线报名登记</a></p>
<p><strong>内容前瞻</strong>：<br />讲座1：《开源GIS在项目中的应用》<br />讲座将结合演讲者多年GIS实践经验，介绍开源地理信息系统若干代表性软件，以及开源地理信息软件在实际项目中的应用实例。<br />讲座2：《OSGeo开源地理信息项目最新进展》<br />讲座内容将汇总介绍OSGeo下属开源地理信息项目的最新进展，并介绍参与FOSS4G 2009开源地理信息大会的各个GIS开源社区项目的最新成果。</p>
<p>详情参见<a href="http://osgeo.org.cn/">OSGeo中国</a>，本次活动在讲座现场提供免费的饮料和零食（<a href="http://www.boobooke.com/bbs/">播布客</a>友情赞助），欢迎感兴趣GIS的朋友报名参与。</p>
<p>(Update: 讲座已顺利结束，活动报道参见<a href="http://osgeo.org.cn/?q=node/37">OSGeo中国</a>)</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.gaoang.com/archives/145/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>管理你的空间数据目录：GeoNetwork OpenSource</title>
		<link>http://www.gaoang.com/archives/144</link>
		<comments>http://www.gaoang.com/archives/144#comments</comments>
		<pubDate>Tue, 03 Nov 2009 03:45:26 +0000</pubDate>
		<dc:creator>Gao Ang</dc:creator>
		
	<category>聚焦GIS</category>
		<guid isPermaLink="false">http://www.gaoang.com/archives/144</guid>
		<description><![CDATA[GeoNetwork OpenSource是OSGeo的开源Web应用项目，用于建立标准化的地理数据目录分类信息管理平台。在GeoNetwork中提供空间数据库、地图服务以及相关空间数据源的访问支持，其目录项被称为元数据(m... ]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.gaoang.com/images/GeoNetwork.png" align="right" width="250"><a href="http://geonetwork-opensource.org/">GeoNetwork OpenSource</a>是OSGeo的开源Web应用项目，用于建立标准化的地理数据目录分类信息管理平台。在GeoNetwork中提供空间数据库、地图服务以及相关空间数据源的访问支持，其目录项被称为元数据(metadata)，目前支持<a href="http://www.iso.org/iso/catalogue_detail.htm?csnumber=32557">ISO 19139</a>和<a href="http://www.fgdc.gov/">FGDC</a>等国际标准的空间元数据分类体系。</p>
<p>GeoNetwork最初由联合国粮农组织UN(FAO)发起，之后<a href="http://www.esa.int/esaCP/index.html">欧洲空间局(ESA)</a>和其他许多欧洲和澳大利亚的相关组织和机构也加入进来，不断完善项目并将GeoNetwork用于地籍数据管理(cadastral data)，水资源管理(water management)，城市规划(planning)和基础设施管理(infrastructure ministries)等不同的应用层面。</p>
<p>在功能方面，可以帮助组织有效共享包含数字地图、卫星影像以及相关统计资料的空间数据。如果地理数据集的元数据可以通过WMS获取，可以直接显示在GeoNetwork提供的Web应用中。除此之外，GeoNetwork可以通过OGC的CSW (Catalog Services for the Web)标准以Web Service的形式对目录元数据进行共享。方便使用者管理空间目录并快速查找和获取已有空间数据和专题地图等信息资源。</p>
<p>本地应用方面，目前GeoNetwork在欧洲、美洲和澳大利亚已得到了广泛的应用，但在国内还鲜有组织关注并在GeoNetwork的邮件组中参与社区交流。GeoNetwork项目的负责人<a href="mailto:tropicano@gmail.com">Heikki</a>正在推进GeoNetwork中文化的工作，有志于参与中文化（包括简体和繁体中文）工作的朋友，请参阅OSGeo中文邮件列表的<a href="http://groups.google.com/group/osgeo/browse_thread/thread/d286bdd35a84cc97">讨论主题</a>。</p>
<p>同时，GeoNetwork也在寻找来自中国的用户（潜在的GeoNetwork用户：<strong>规划部门</strong>、<strong>水务管理部门</strong>、<strong>农业管理</strong>、<strong>空间机构</strong>、<strong>地籍管理</strong>、<strong>能源部门</strong>、<strong>环保机构</strong>等等）和你们的反馈意见。感兴趣的用户可以直接<a href="http://geonetwork-opensource.org/software/">下载使用</a>GeoNetwork来管理你的空间数据，并在<a href="http://groups.google.com/group/osgeo">OSGeo邮件讨论组</a>参与相关的讨论。</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.gaoang.com/archives/144/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Google静态地图API升级指南</title>
		<link>http://www.gaoang.com/archives/141</link>
		<comments>http://www.gaoang.com/archives/141#comments</comments>
		<pubDate>Fri, 25 Sep 2009 07:01:22 +0000</pubDate>
		<dc:creator>Gao Ang</dc:creator>
		
	<category>聚焦GIS</category>
		<guid isPermaLink="false">http://www.gaoang.com/archives/141</guid>
		<description><![CDATA[Google API大全一书的繁体中文版即将付印，台湾的编辑朋友在校对过程中，指出Google静态地图章节代码中存在的几处问题，检查后发现是Google静态地图版本升级引起的，现将API更新方法记录如下... ]]></description>
			<content:encoded><![CDATA[<p><img align="right" width="256" src="http://www.gaoang.com/images/staticmap.gif" /><a href="http://www.gaoang.com/archives/125">Google API大全</a>一书的繁体中文版即将付印，台湾的编辑朋友在校对过程中，指出Google静态地图章节代码中存在的几处问题，检查后发现是Google静态地图版本升级引起的，现将API更新方法记录如下。</p>
<p>Google静态地图是直接通过URL调用获取Google Maps图片的最简便方式，不少站点都通过静态地图调用来为站点嵌入Google Maps地图图片。在书籍撰写时，<a href="http://code.google.com/apis/maps/documentation/staticmaps/">Static Maps API</a>是V1版本，还不支持geocoding地理译码，使用Python编写的代码示例中，首先调用<a href="http://code.google.com/apis/maps/documentation/services.html#Geocoding">Google Geocoding服务</a>，获取查询地址的经纬度，之后传递并拼接URL地址串，来显示Google静态图片。在新的V2版本里，增加了地理译码功能，以帮助用户更方便的使用静态地图。在原先URL地址串中，指定地图中央坐标的&#8221;center=lat,lang&#8221;语句，可以直接写成&#8221;center=beijing&#8221;或&#8221;center=北京&#8221;，访问这样的<a href="http://maps.google.com/staticmap?center=beijing&#038;markers=39.9081726,116.3979471,red&#038;zoom=14&#038;size=512x512&#038;maptype=mobile&#038;key=ABQIAAAAj5cpJ2swzFT77RVZXuP73BRi_j0U6kJrkFvY4-OX2XYmEAa76BQmXyAoEUqQGRkT8yJX9ACbfqQXsA">地址串</a>，就可以看到一幅以北京市为中心的静态图片。</p>
<p>另外，目前静态地图的调用，即便在本机开发测试，也需要指定正确的<a href="http://code.google.com/apis/maps/">API Key</a>。在Google API大全一书提供的示例代码中，需要在map.py文件中，将google_key=&#8217;Your_API_Key&#8217;修改为google_key=&#8217;ABQIAAAAj5cpJ2swzFT77RVZXuP73BRi_j0U6kJrkFvY4-OX2XYmEAa76BQmXyAoEUqQGRkT8yJX9ACbfqQXsA&#8217;，这里Key对应的地址串是本机127.0.0.1对应的Key。改动的代码已经更新到本书的<a href="http://code.google.com/p/google-api-broadview/source/browse/#svn/trunk/33-Google-Static-Maps-API/staticmap%3Fstate%3Dclosed">SVN储存库</a>上，读者直接update最新的代码即可以正常运行。</p>
<p>Google静态地图的V2版本，还增加了在地图上使用折线和多面体等覆盖物的支持。对于计划将Static Maps API由V1版本更新到V2版本的开发者，如果在调用静态图片时加入了marker标记、label标签、span范围等内容，可以参考Google Code文档中给出的<a href="http://code.google.com/apis/maps/documentation/staticmaps/upgrade.html">升级说明</a>，来针对新的API调用方法进行更正。</p>
<p>不仅Google静态地图有了更新，新的<a href="http://code.google.com/apis/maps/documentation/v3/">Google Maps API V3</a>版本也已经进入测试阶段，V3版本在尽量保持已有JavaScript API调用接口兼容性同时，对Android、iPhone等移动终端设备进行优化，加快地图的载入速度。在不久后，Maps API V3将会替代现行的V2版本，成为新的地图API调用标准。
</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.gaoang.com/archives/141/feed/</wfw:commentRSS>
		</item>
	</channel>
</rss>
