<?xml version="1.0" encoding="UTF-8"?>
<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/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>开源GIS实验田</title>
	<atom:link href="http://www.gaoang.com/feed" rel="self" type="application/rss+xml" />
	<link>http://www.gaoang.com</link>
	<description>OpenSource GIS Space</description>
	<lastBuildDate>Fri, 04 May 2012 01:49:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>健康和医疗信息项目GNU Health</title>
		<link>http://www.gaoang.com/archives/266</link>
		<comments>http://www.gaoang.com/archives/266#comments</comments>
		<pubDate>Fri, 04 May 2012 01:48:50 +0000</pubDate>
		<dc:creator>Gao Ang</dc:creator>
				<category><![CDATA[诸子百家]]></category>

		<guid isPermaLink="false">http://www.gaoang.com/?p=266</guid>
		<description><![CDATA[LibrePlanet是自由软件社区中活跃成员发起的开发者会议，旨在促进自由软件的开发、推广和使用。近期在美国波士顿举办的LibrePlanet 2012大会上，Richard Stallman代表自由软件基金会颁发了FSF组织评... ]]></description>
			<content:encoded><![CDATA[<p><img align="right" src="http://www.gaoang.com/wp-content/uploads/2012/05/health.jpg" /><a href="http://libreplanet.org/wiki/Main_Page">LibrePlanet</a>是自由软件社区中活跃成员发起的开发者会议，旨在促进自由软件的开发、推广和使用。近期在美国波士顿举办的LibrePlanet 2012大会上，Richard Stallman代表自由软件基金会颁发了FSF组织评选的2011年度自由软件奖项，奖项包括自由软件促进奖和社会公益项奖两个项目。</p>
<p>自由软件促进奖颁发给一直为促进自由软件发展而做出贡献的业界领袖，开发者所熟悉的Python之父Guido van Rossum、Perl之父Larry Wall等传奇程序员都曾是这个奖项的得主。而今年的奖项由Ruby语言作者松本行弘（Matz）获得，这是对Matz在GNU、Ruby及其他自由软件组织近20年工作的肯定。</p>
<p>同期颁发的年度社会公益项目奖的候选对象是为自由软件做出贡献、且能够有效服务社会的项目或团队，历届奖项得主包括Creative Commons、Wikipedia等广为人知的自由软件项目。今年该奖项的得主是<a href="http://health.gnu.org/">GNU Health</a>。提供健康信息和教育服务领域自由软件的NGO组织<a href="http://www.gnusolidario.org">GNU Solidario</a>的负责人，同时也是GNU Health项目的开发者Luis Falcon在会议现场接受了颁奖。</p>
<p>GNU Health是免费的健康和医疗信息系统，包含电子医疗病历系统(EMR)和医院信息化管理系统(HIS)、健康信息管理系统三个模块。电子医疗病历系统记录患者个人健康状况的各项数据和信息，病历数据常在健康信息中用于诊断辅助，并在不同系统间实现数据互操作；医院信息化管理系统用于提高医院各项工作的效率和质量，减轻医务人员需要处理的各类事务性工作，使其集中精力为患者提供医疗服务。在GNU Health中，具体包含的功能有患者预约管理、医疗器械管理、医疗费用计算、数据分析统计、医疗产品和服务管理、支付管理、医疗采购管理等不同的功能模块。</p>
<p>在技术实现方面，GNU Health使用Python语言开发，借助Tryton项目实现用户服务层、业务服务层和数据服务层（3-tiers）的整合，同时保证应用在模块化、可拓展性和安全性等方面具备良好的基础。此外，GNU Health整合了<a href="http://pypi.python.org/pypi">Python包索引</a>（PyPI：Python Package Index）以便于安装和部署，使用者只需在下载应用压缩包后执行pip install命令，即可在线装载所需的运行依赖项并执行程序。在实用功能方面，GNU Health支持CalDAV 日历同步，可以将就医预约和住院治疗日历与Google 日历或Apple 设备进行同步；GNU Health提供了轻量级的远程过程调用协议JSON RPC支持；GNU Health具备增强型的处方单据和遵从最新体系的药剂分类，包含世界卫生组织WHO提供的最新药品列表，以及增强的医疗实验室模型。作为面向全球化的健康和医疗信息系统，GNU Health还提供了最新的翻译引擎，以便于实现本地化的应用。</p>
<p>致力于加强全世界医疗专业人士合作，改善欠发达地区的医疗信息化现状的GNU Health项目，已被联合国大学和国际健康研究所采用作为教学和研究系统。同时项目在GNU Solidario组织的推动下，已经与尼日利亚、加纳、印度尼西亚、秘鲁以及阿根廷等国的医疗组织、医生、患者建立了有效的沟通渠道，帮助其使用GNU Health项目来管理各类健康信息。</p>
<p>尽管获得了今年FSF颁发的社会公益项目奖，GNU Health依旧还有很多功能需要不断完善和改进。项目发起人Luis Falcon曾在邮件组中发出邀请，希望有更多的志愿者参与进来，参加文档编写、本地化翻译、Bug测试、质量保证、编码开发、新功能测试等方面的工作，帮助GNU Health项目为那些难以负担软件费用的用户，提供更好的健康和医疗信息化系统。</p>
<p>本文曾发表于<a href="http://www.programmer.com.cn/">《程序员》杂志</a>-2012年05期“程序天下事”栏目。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gaoang.com/archives/266/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>装备制造技术出版物标准S1000D</title>
		<link>http://www.gaoang.com/archives/263</link>
		<comments>http://www.gaoang.com/archives/263#comments</comments>
		<pubDate>Sun, 15 Apr 2012 08:11:05 +0000</pubDate>
		<dc:creator>Gao Ang</dc:creator>
				<category><![CDATA[编程语言]]></category>

		<guid isPermaLink="false">http://www.gaoang.com/?p=263</guid>
		<description><![CDATA[一年一度的S1000D用户大会将于6月18日在美国丹佛召开，广泛用于航空等高端装备制造领域的技术出版物标准S1000D将是本次大会的主角。用户大会围绕S1000D展开了多层次的技术讨论和经验交流，... ]]></description>
			<content:encoded><![CDATA[<p><img align="right" src="http://www.gaoang.com/wp-content/uploads/2012/04/s1000d.jpg" />一年一度的<a href="http://public.s1000d.org/Pages/S1000DUserForum.aspx">S1000D用户大会</a>将于6月18日在美国丹佛召开，广泛用于航空等高端装备制造领域的技术出版物标准S1000D将是本次大会的主角。用户大会围绕S1000D展开了多层次的技术讨论和经验交流，议题包含S1000D项目实施案例分析、S1000D项目管理经验、S1000D与各类出版物格式转换，S1000D多媒体应用，以及用于S1000D编辑和管理的各类工具。</p>
<p><a href="http://www.s1000d.net/">S1000D</a>是面向技术出版物制作和发布的国际标准，使用XML结构来描述、管理和发布技术文档。S1000D最初由<a href="http://www.asd-europe.org/site/">ASD</a>（欧洲航空与国防工业协会）作为军用标准设计并提出，用于记录军用飞行设备的装备维护和操作信息。从S1000D第二版开始，其适用范围就开始向更广泛的装备制造领域拓展，包含陆上设备、航海装备并逐步应用于各类商用和民用设备技术文档。</p>
<p>S1000D由专门的管理委员会更新和维护，并负责协调各方意见达成一致。目前通用的4.0版本由ASD、<a href="http://www.aia.org/">AIA</a>（美国航空工业协会）、<a href="http://www.airlines.org/Pages/Home.aspx">ATA</a>（美国航空运输协会）以及领域用户共同参与制定。其中ATA的鼎力支持为S1000D标准的民用化进程注入了不竭动力。ATA是美国历史最悠久的、规模最大的、全国性的航空公司行业协会。在民用飞机客户服务领域，ATA参与制定的文档规范在制造业领域具有很高的权威性和可操作性。目前，ATA发布标准规范涉及航空制造、机场地面服务、货物和危险品、维修和材料、燃料销售、操作和安全性等多方面内容。</p>
<p>在使用上，S1000D涵盖了技术文档的计划、管理、生产、交换、分发等各个环节，覆盖工程性项目完整的生命周期。符合S1000D规范的技术文档以数据模块（Data Module）形式被创建，数据模块表示在技术文档中粒度最小且能够对信息进行完整描述的内容块。数据模块包含模块标识、状态信息、以及一个存放技术文档信息的内容单元。数据模块描述的内容及结构体包含业务规则信息、描述性信息、故障信息、零部件数据信息、维修及检查信息、程序及过程信息、技术知识库信息等各项内容。</p>
<p>在信息内容上，S1000D规定了适用范围、内容组成、业务规则、规则分类以及包含各类数据模块XML Schema的内容结构、元素、属性在内的信息内容生产和交付方法。其中，S1000D的业务规则分类是其区别于其他基于XML的技术出版物标准的主要要素。S1000D业务规则分类定义了技术文档各应用层面的细节，由近千个业务规则决策点（Decision Point）组成，如产品识别码、图形符号的尺寸和缩放比率以及与相关业务标准的接口规范等内容。</p>
<p>S1000D业务规则分类包含十个大类。其中，一般类定义了实施S1000D的总体业务规则，包含版本号、术语定义等；产品定义类定义产品相关的数据模块和编码策略；维护与操作概念类包含产品维护级别及操作信息等；安全保密类包含密级划分、版权标记、信息使用与公开的限制、访问权限、信息销毁指令等；业务过程类描述技术出版物与综合保障、供应计划、工程设计、培训等业务的关系；数据创建类用于定义文本、图形、多媒体对象的创建规则，如术语规则、标记规则、表达规则、样式规则等，以实现技术出版物内部及技术出版物与培训资料间的信息重用最大化；数据交换类定义了厂商与用户间交换数据应遵守的规则，如数据表单要求、数据迁移协议等；数据完整性与管理类用于保证信息创建者与客户双方的数据参照完整性；历史数据转换、管理和处理类包含信息源和目标之间元素及属性的对应关系，以及技术出版物中包含历史信息的规则；数据输出类定义了S1000D数据的输出形式，包括页面出版物、交互式电子技术出版物（IETP）、多媒体出版物、SCORM等多种形式。</p>
<p>在工具支持方面，不少制造业工具提供商和出版工具开发商都推出了S1000D制作及管理产品，如美国<a href="http://www.inmedius.com/">Inmedius</a>公司的S1000D制作套件、出版业领导者PTC公司在其主推的<a href="http://www.ptc.com/product/arbortext/">Arbortext</a>工具中提供了S1000D编辑与管理支持。</p>
<p>对于复杂的装备制造业来说，其专业化细分程度日益增强，工程协作性要求也逐步提升，越来越依赖于以计算机为基础的技术出版物来支持各类信息内容的描述。作为国际化的技术文档标准，S1000D的应用减少了高端制造业领域的技术信息维护成本、降低了数据转化为配置项的难度、提高了技术文档输出及跨平台转换的效率，有效保证技术文档的管理稳定高效。S1000D的使用，将在帮助使用者在原有装备升级改造和新装备引进的过程中保证各类技术文档的有序管理，能够在降低信息生成成本的同时避免信息内容的重复生成，且更有助于制造业产品的技术描述在世界范围内维持一致性和通用性。</p>
<p>本文曾发表于<a href="http://www.programmer.com.cn/">《程序员》杂志</a>-2012年04期“程序天下事”栏目。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gaoang.com/archives/263/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>eCl@ss信息分类系统</title>
		<link>http://www.gaoang.com/archives/256</link>
		<comments>http://www.gaoang.com/archives/256#comments</comments>
		<pubDate>Wed, 07 Mar 2012 02:37:20 +0000</pubDate>
		<dc:creator>Gao Ang</dc:creator>
				<category><![CDATA[标准研究]]></category>

		<guid isPermaLink="false">http://www.gaoang.com/?p=256</guid>
		<description><![CDATA[信息分类是将具备某种共同属性或特征的事物或概念集合在一起，把不包含这种共同属性或特征的信息区别开来的过程。信息分类是IT公司对各机构实施较大规模信息化建设过程中的基础要素，... ]]></description>
			<content:encoded><![CDATA[<p><img align="right" src="http://www.gaoang.com/wp-content/uploads/2012/03/elass.jpg"/>信息分类是将具备某种共同属性或特征的事物或概念集合在一起，把不包含这种共同属性或特征的信息区别开来的过程。信息分类是IT公司对各机构实施较大规模信息化建设过程中的基础要素，通过信息有效分类及统一规则的编码赋码，可以按逻辑关系或层级次序对各种看似杂乱无章的信息和数据进行排列组合，使其在分类体系上具备规则。</p>
<p>在传统的信息分类方法中，最通用的是线分类法、面分类法和混合分类法。线分类法将选定的对象属性作为划分基础来进行层级类目划分，如行政区划代码；面分类法将对象本身固有的若干属性或特征划分成一组独立的类目，每组类目构成一个面，按一定顺序将相互之间没有隶属关系的面平行排列形成分类，如职务名称代码；混合分类法将线分类和面分类组合使用，以其中一种分类法为主，另一种作补充对信息进行分类，混合分类在处理企业信息化建设中的复杂分类时较常使用。</p>
<p>随着企业信息化建设的发展和深入，基础的信息分类方法已无法满足复杂信息类型的分类和描述需求。随之出现了与面向对象程序设计思想类似的分类体系，其中典型的代表是来自德国的<a href="http://www.eclass.de/">eCl@ss分类系统</a>。</p>
<p>eCl@ss是对产品和服务进行分类与描述的国际标准，由德国<a href="http://www.eclass.de/">eCl@ss协会</a>发起，由各大跨国信息技术公司和各个行业的领导企业特别是制造型企业共同参与并研究制定的分类系统。与传统的信息分类编码区别最大的是，eCl@ss不仅涵盖25个不同行业，四个层级，超过75000项类目和主题词的分类体系，还包含用于对产品和服务进行描述的属性集合以及各属性的值域范围。</p>
<p>eCl@ss分类体系的制定和维护都是一个相对庞大的系统工程，目前在协会的推动下，由不同行业的专家进行维护，并不断推进各类目及属性的更新和完善。在企业电子商务应用中，eCl@ss分类为企业采购带来巨大的经济优势，买方可以借助分类及属性方便的获取供应产品元数据，以扩大供应商范围并减少交易费用，通过增强产品及零部件的可比性来提升市场透明度。由于买卖双方使用相同的数据结构进行信息交换，对于供应商同样可以起到减少交易费用，拓宽供应范围的作用。</p>
<p>eCl@ss分类体系的方法依据<a href="http://www3.imw.tu-clausthal.de/forschung/projekte/PLUS/ISO/ISO.html">ISO标准13584</a>的第42部分：结构化零件族方法学来构建。eCl@ss分类体系中包含类表、关键词表、类和属性的关联映射表、属性表、值域表、属性和值域的关联映射表。其基本思想是通过关联映射文件，在不断扩充的类目、属性和值域之间建立联系。eCl@ss的上下级类目具备属性的继承关系，即子类目顺承父类目对应的各项属性，并在此基础上关联自身特有的描述属性，并向其下一级子类顺承。</p>
<p>由于不同行业的产品或服务共享一些通用的基本属性，eCl@ss还设置了标准属性集与基本属性集。标准属性集是为描述某类产品专门制定的，而基本属性集一般都是由下面五个属性组成的：<a href="http://en.wikipedia.org/wiki/GS1">EAN代码</a>、制造商名称、产品编号、产品名称以及产品类型描述。其中EAN代码是国际物品编码协会统一制定的商品条码，是由国家代码、厂商代码及检查码等项组成的数字码，通常以一维或二维条码的形式印制在商品的外包装上。</p>
<p>在贸易全球化的趋势下，信息技术和通讯科技的发展将各类企业更紧密的联系在一起。随着企业间数据交换的需求不断增加，对产品和服务进行分类与描述的统一标准将越来越重要。致力于成为世界上最重要分类标准的eCl@ss，为电子商务过程中各个参与方提供了数据交换的基础，通过统一的规范帮助企业节约时间和沟通成本。</p>
<p>目前，源于德国的eCl@ss体系，已拥有<a href="http://www.bahn.de/p/view/index.shtml">德国铁路</a>、<a href="http://www.greater-china.basf.com/apex/GChina/GChina/zh_CN/portal">巴斯夫化工</a>、戴姆勒-克莱斯勒、宝马、保时捷、大众、奥迪等一大批企业用户。eCl@ss分类及属性描述也被翻译成英语、法语、西班牙语和中文，正在从拥有广泛工业基础支撑的欧洲逐步延伸至美国和亚洲，并努力成为被全世界理解和使用的信息分类及描述国际化标准。</p>
<p>本文曾发表于<a href="http://www.programmer.com.cn/">《程序员》杂志</a>-2012年03期“程序天下事”栏目。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gaoang.com/archives/256/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>通用智能语言UBL</title>
		<link>http://www.gaoang.com/archives/249</link>
		<comments>http://www.gaoang.com/archives/249#comments</comments>
		<pubDate>Tue, 06 Dec 2011 08:29:38 +0000</pubDate>
		<dc:creator>Gao Ang</dc:creator>
				<category><![CDATA[标准研究]]></category>

		<guid isPermaLink="false">http://www.gaoang.com/archives/249</guid>
		<description><![CDATA[近日，OASIS发布了通用商业语言UBL（Universal Business Language）的2.1版本征求意见稿，这个版本在保持与UBL 2.0版本良好兼容性的同时，面向电子业务应用对UBL语言进行了多处增补。在新版本中，UBL... ]]></description>
			<content:encoded><![CDATA[<p><img align="right" src="http://www.gaoang.com/wp-content/uploads/2011/12/ubl.jpg" width="360" height="190" />近日，OASIS发布了通用商业语言<a href="http://ubl.xml.org/">UBL</a>（Universal Business Language）的2.1版本征求意见稿，这个版本在保持与UBL 2.0版本良好兼容性的同时，面向电子业务应用对UBL语言进行了多处增补。在新版本中，UBL还针对财经业务进行了优化和增强，改进了UBL与财务系统基础设施的接口互操作性，并在标准UBL语言基础上添加了拓展，以实现借助<a href="http://www.w3.org/TR/XAdES/">XAdES</a>格式对UBL文档进行XML高级数字签名的功能。</p>
<p>自2004年由<a href="http://www.oasis-open.org/">OASIS</a>技术委员会制定第一个版本以来，通用商业语言UBL就一直致力于促进电子数据格式的标准化，来保证企业间信息与数据交换的有效性和一致性。在UBL规范中，以通用XML库的形式给出了电子业务文档格式的定义，包括产品预售、业务订单、数据交换、发票单据、付款支付等各个业务环节。在设计上，UBL遵循面向对象理念，能够在不同业务领域间有效进行条目重用。UBL具备严格的标签命名方式，设计者同时借助了CCTS语义原子性方法来保证UBL规范对信息描述的精确性。此外，在可拓展性方面，UBL文档的参考引用、标识符、代码段可以根据具体的业务环境进行定制和修改，并能够借助XML映射将UBL文档转换成各类其他文档类型。</p>
<p>对于特定的大型行业信息化系统建设来说，准确清晰的业务逻辑描述往往比具体功能的技术实现更为关键。UBL提供了将电子业务交易过程中纸质文件转换为以XML格式为载体的非结构化信息标准文本格式的方法和途径，借助通用的标准规范，来保证企业在进行电子业务在线交易时，使用标准通用的格式进行文档和数据交换。</p>
<p>UBL规范吸纳了业界多个数据标准化组织共同参与，以便于UBL能够直接植入已有的在线交易、业务审计、记录管理等业务系统中使用。此外, UBL自2.0版本以来，就与电子数据交换格式<a href="http://en.wikipedia.org/wiki/Electronic_data_interchange">EDI</a>(Electronic Data Interchange)及其派生的XML标准保持兼容，以便融合EDI中定义的贸易、运输、保险、银行、海关等行业信息交换格式，在以贸易为中心的电子业务应用系统中进行处理。</p>
<p>创建于1993年的结构化信息标准促进组织OASIS一直推进着UBL规范的发展和更新。OASIS最初以标准广义标记语言<a href="http://en.wikipedia.org/wiki/SGML">SGML</a>（Standard Generalized Markup Language）组织的形式成立，旨在推动产品互操作性架构的建立以及SGML语言的定义。在1998年更名为OASIS开放组织后，向将业务拓展到更为广阔的范畴，并成为推动电子商务标准发展、融合及采纳的非营利性国际组织，为数据安全、网络服务、接口一致性、电子交易、产品供应链、公众服务，及企业间互操作提供通用性标准。OASIS制定的各种规范帮助商业需求被精确描述，减少标准重复开发并保证标准的延续性，在协调各行业标准化组织的基础上通过一系列基础性工作推进软件供应商之间的合作。更为重要的是，OASIS各项标准均以免费且公开的形式向公众开放使用。</p>
<p>目前UBL已经在欧洲政府采购联盟<a href="http://www.peppol.eu">PEPPOL</a>（含12个欧盟成员国），电子货运管理（EFM）等多个领域内得到成功应用，如果您所在的机构感兴趣使用UBL定义的低成本、迅捷、安全的电子文档处理方式来提高工作效率，升级传统业务流程，不妨访问UBL<a href="http://ubl.xml.org">官方站点</a>，更进一步了解UBL通用智能语言规范的细节内容。</p>
<p>本文曾发表于<a href="http://www.programmer.com.cn/">《程序员》杂志</a>-2011年12期“程序天下事”栏目。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gaoang.com/archives/249/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google结构化Web编程语言Dart</title>
		<link>http://www.gaoang.com/archives/243</link>
		<comments>http://www.gaoang.com/archives/243#comments</comments>
		<pubDate>Mon, 07 Nov 2011 07:55:58 +0000</pubDate>
		<dc:creator>Gao Ang</dc:creator>
				<category><![CDATA[编程语言]]></category>

		<guid isPermaLink="false">http://www.gaoang.com/archives/243</guid>
		<description><![CDATA[GOTO大会是面向企业级软件开发筹办的全球性技术开发大会，参会者包括开发团队领袖、架构师、项目管理者、技术媒体等。GOTO大会组织者同时也是企业级软件的设计者和开发者，这也使得GOTO... ]]></description>
			<content:encoded><![CDATA[<p><img align="right" src="http://www.gaoang.com/wp-content/uploads/2011/11/dart.png" /><a href="http://gotocon.com/">GOTO大会</a>是面向企业级软件开发筹办的全球性技术开发大会，参会者包括开发团队领袖、架构师、项目管理者、技术媒体等。GOTO大会组织者同时也是企业级软件的设计者和开发者，这也使得GOTO大会承载了来自技术型企业和开发社区的最新动态。</p>
<p>今年10月在丹麦举办的GOTO大会上，最吸引人的内容是Google新编程语言的首次亮相。在大会开场的主题演讲中，Google工程师捷拉德·布拉查(<a href="http://bracha.org/Site/Home.html">Gilad Bracha</a>)和拉尔斯·巴克(<a href="http://en.wikipedia.org/wiki/Lars_Bak_%28computer_programmer%29">Lars Bak</a>)为开发者揭开了新语言Dart的面纱。</p>
<p><a href="http://www.dartlang.org/">Dart语言</a>面向结构化Web编程设计，是继<a href="http://www.gaoang.com/archives/162">Go语言</a>后Google推出的第二门编程语言。Dart中文释义为“飞镖”，象征着这门语言灵巧高效的特性。Dart的设计目标是创建面向Web应用开发的结构化语言，用以创建灵活的网页程序。为便于开发者掌握并使用，Dart语法在设计上尽可能以开发者熟悉的形式出现。在浏览器兼容性方面，Dart考虑了各种浏览器差异，并在各浏览器平台上保持统一的性能与表现。</p>
<p>在门类众多的轻量级编程语言中，Dart具备不少吸引开发者使用的独特优势。首先Dart简化了Web应用的开发工作量。其次，Dart应用借助浏览器展示给用户，在具备良好平台独立性的同时，无需用户进行任何程序安装操作，并且对现代浏览器、移动设备、平板电脑的支持都具有良好表现。Dart在定位上并非与JavaScript竞争，而是要填补Web编程方面缺少面向对象编程结构、静态类型、难以进行大型应用开发方面的空白，并为传统JavaScript编程带来大幅度的性能改善。</p>
<p>Dart代码运行阶段，可以依托浏览器内置的JavaScript引擎执行程序，同时Google鼓励各浏览器厂商在应用中绑定Dart虚拟机以实现Dart的原生支持。当然，Chrome浏览器已计划在未来版本中内置原生的Dart虚拟机运行时。根据性能测试数据，Dart虚拟机装载5万行Dart代码仅用时640毫秒，而从快照中加载相同的程序则更加高效，仅需用时60毫秒。</p>
<p>Dart开发工具支持上，Google基于Eclipse提供了轻量级的开发组件，用于编写代码并预览Dart应用。同时Google还正在开发一个名为Brightly的云端IDE提供给开发者，值得一提的是，这个IDE也是使用Dart语言开发实现的。目前<a href="http://www.dartlang.org/">Dart语言</a>站点上展示了语言规范、实例教程等内容。在<a href="http://dart.googlecode.com">Dart项目</a>站点提供了Dart类库、样例代码、Dart虚拟机及源代码、Dart转换JavaScript编译器等内容。</p>
<p>Google面向现代浏览器设计的Dart语言能够给Web编程带来良好的开发效率和优异的性能。随着浏览器应用规模化开发时代的到来，以及移动设备对浏览器应用需求的提升，我们期待新生的Dart语言为Web开发注入新的活力。</p>
<p>本文曾发表于<a href="http://www.programmer.com.cn/">《程序员》杂志</a>-2011年11期“程序天下事”栏目。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gaoang.com/archives/243/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>开源的系统级编程利器：D语言</title>
		<link>http://www.gaoang.com/archives/230</link>
		<comments>http://www.gaoang.com/archives/230#comments</comments>
		<pubDate>Tue, 11 Oct 2011 02:09:03 +0000</pubDate>
		<dc:creator>Gao Ang</dc:creator>
				<category><![CDATA[编程语言]]></category>

		<guid isPermaLink="false">http://www.gaoang.com/archives/230</guid>
		<description><![CDATA[在Digital Mars公司的D语言首页上，放置着这样一段话“计算机编程语言门类众多，其来源大致可分为两种途径。一类新语言来自于极具创新精神的学术界；而一类则源于关注研发结合和互联网的... ]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.gaoang.com/wp-content/uploads/2011/10/d-lang.png"><img src="http://www.gaoang.com/wp-content/uploads/2011/10/d-lang.png" alt="" align="right" /></a>在<a href="http://www.digitalmars.com/">Digital Mars</a>公司的<a href="http://www.d-programming-language.org/index.html">D语言</a>首页上，放置着这样一段话“计算机编程语言门类众多，其来源大致可分为两种途径。一类新语言来自于极具创新精神的学术界；而一类则源于关注研发结合和互联网的新技术公司。目前正是在实现编译器的实践经验中诞生一门新语言了。”在九月份的TIOBE语言流行度排行榜中，正是这门支持内嵌汇编的D语言，以其系统级编程的特性而被越来越多的开发者选用而重新入围了排行榜前二十位。</p>
<p>D语言是由Digital Mars公司开发的面向对象、指令式、多范型的系统级编程语言。诞生于1999年的D语言，在其设计开发十年后的2009年开放了D编译器<a href="http://www.d-programming-language.org/dmd-windows.html">DMD</a>的源代码，包括D 1.0和D 2.0的编译器前端和后端源代码，分为Windows，Mac和Linux三个版本。编译器前端以GUN GPL和Artistic开源协议授权。</p>
<p>可以说，D语言是由数十年来实现多种语言编译器的经验积累而形成，源自C++，并为改进和超越C++而生。D语言对C++的部分特性进行了重新设计，其模板在C++的基础上做了扩充，并在语法设计上借鉴了Java、C#等多种流行语言的优点。D语言在提供C++这样强大能力的同时，又具备与动态语言相媲美的开发效率。</p>
<p>C++应用广泛的一个重要原因是C++进行操作系统底层编程的能力。D语言同样也提供了底层编程的特性，并加入了完善的内嵌汇编支持。内嵌汇编的特性让系统级开发者能够在标准D语言代码中嵌入目标平台的汇编指令，来完成高级语言难以实现的工作。这些处理任务包括底层驱动程序开发、获取任务堆栈信息、获取SP或RA等寄存器的状态、视频解码等各个层面。除此之外，在某些特定的数值运算中，如带进位加法运算，开发者常嵌入汇编指令来增强程序代码执行的效率。</p>
<p>D语言的系统级编程特性，成为D语言区别于Java、C#等其他高级语言的主要特性。如Java语言在语法级别上不提供内嵌汇编的支持，如需在代码中嵌入汇编指令，只能借助于<a href="http://en.wikipedia.org/wiki/Java_Native_Interface">JNI</a>的Java本地调用，通过引用C/C++代码来间接嵌入汇编指令。而D语言则可以直接与只接受汇编指令的处理器进行交互，直接执行汇编指令集来保证操作的精确性和原子性。</p>
<p>尽管现代的高级语言编译器已在编译优化上做了足够大的功夫，但高级语言编译器为了保证通用性，往往只编译生成通用指令集，没有针对特定处理器的专用指令集进行优化，且无法生成新型处理器增加的高性能操作指令集。无疑，D语言将是内嵌汇编的最佳语言，它带来的便利让开发者撰写最高性能代码来充分发挥硬件潜力变得触手可及。</p>
<p>本文曾发表于<a href="http://www.programmer.com.cn/">《程序员》杂志</a>-2011年10期“程序天下事”栏目。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gaoang.com/archives/230/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>北京成为FOSS4G 2012大会主办城市</title>
		<link>http://www.gaoang.com/archives/227</link>
		<comments>http://www.gaoang.com/archives/227#comments</comments>
		<pubDate>Thu, 15 Sep 2011 01:07:11 +0000</pubDate>
		<dc:creator>Gao Ang</dc:creator>
				<category><![CDATA[聚焦GIS]]></category>

		<guid isPermaLink="false">http://www.gaoang.com/archives/227</guid>
		<description><![CDATA[2011年9月12日，北京以4票的优势（9:5）领先捷克布拉格，由OSGeo委员会投票选举成为2012年FOSS4G大会的主办城市。FOSS4G历次大会都吸引了来自美洲、欧洲、亚洲、澳洲、非洲各国的开源GIS社区开发... ]]></description>
			<content:encoded><![CDATA[<p>2011年9月12日，北京以4票的优势（9:5）领先捷克布拉格，由OSGeo委员会投票选举成为2012年FOSS4G大会的主办城市。FOSS4G历次大会都吸引了来自美洲、欧洲、亚洲、澳洲、非洲各国的开源GIS社区开发者与使用者参会，2012年将是<a href="http://foss4g.org">FOSS4G大会</a>首次在亚洲国家举办。OSGeo委员会主席Jeff McKenna在OSGeo<a href="http://lists.osgeo.org/mailman/listinfo/conference_dev">邮件组</a>中公布了这一消息。<a href="http://lists.osgeo.org/pipermail/conference_dev/2011-September/001416.html">原信引用</a>如下：</p>
<blockquote><p>Hello everyone,</p>
<p>Sorry for such a long delay, but we finally have a clear winner through voting: Beijing, China (the final vote was 9 to 5). Congratulations to Gao Ang and their local team, Beijing will be the host for the FOSS4G 2012 event (pending approval from the OSGeo Board).</p>
<p>Karel, Jachym and the Prague team: it was such a close vote this year, that it shows how good your venue/team is for this event; I hope that this does not hinder your plans and energy :)</p>
</blockquote>
<p><a href="http://osgeo.org.cn/">OSGeo中国</a>在申办过程中准备的各种材料分享如下，其他各申办城市提交的材料参见会议组织<a href="http://www.osgeo.org/conference/rfp/">站点</a>：</p>
<ul>
<li>北京FOSS4G 2012<a href="http://svn.osgeo.org/osgeo/foss4g/proposals/2012/Letter-of-Intent-FOSS4G2012-Beijing-China.pdf">意向信</a> </li>
<li>北京FOSS4G 2012<a href="http://svn.osgeo.org/osgeo/foss4g/proposals/2012/Proposal-FOSS4G2012-Beijing.pdf">申报书</a> </li>
<li>北京FOSS4G 2012<a href="http://svn.osgeo.org/osgeo/foss4g/proposals/2012/Budget-FOSS4G2012-Beijing.pdf">会议预算</a> </li>
</ul>
<p><a href="http://osgeo.org.cn/">OSGeo中国</a>将积极组织承办2012年的FOSS4G盛会，为来自世界各国的开源GIS社区开发者与使用者提供最好的参会体验。也希望在2012年大会的承办过程中，能得到关注开源GIS发展，各位IT、GIS与RS同行与朋友们的协助、支持和参与。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gaoang.com/archives/227/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>函数式编程语言F#</title>
		<link>http://www.gaoang.com/archives/225</link>
		<comments>http://www.gaoang.com/archives/225#comments</comments>
		<pubDate>Thu, 08 Sep 2011 06:53:09 +0000</pubDate>
		<dc:creator>Gao Ang</dc:creator>
				<category><![CDATA[编程语言]]></category>

		<guid isPermaLink="false">http://www.gaoang.com/archives/225</guid>
		<description><![CDATA[源于微软研究院的F#语言因其优良的设计和强大的并行编程能力，正得到越来越多.Net开发者的选用。在本月的TIOBE语言流行度排行榜中，F#语言首次进入了TIOBE排行榜的前二十位。F#是微软.NET框... ]]></description>
			<content:encoded><![CDATA[<p><img style="margin: 5px" align="right" src="http://www.gaoang.com/images/fsharp.jpg" />源于微软研究院的<a href="http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/">F#语言</a>因其优良的设计和强大的并行编程能力，正得到越来越多.Net开发者的选用。在本月的TIOBE语言流行度排行榜中，F#语言首次进入了<a href="http://www.tiobe.com/content/paperinfo/tpci/index.html">TIOBE排行榜</a>的前二十位。F#是微软.NET框架环境下的静态类型化函数式编程语言，支持以面向对象或泛型编程等多种风格来撰写程序代码。</p>
<p>F#基于函数式编程语言<a href="http://caml.inria.fr/ocaml/">Objective Caml</a>（OCaml）设计，具有OCaml常用的核心语言功能，以及函数式编程语言的其他特性。OCaml是在Perl之外，又一门以骆驼为吉祥物的编程语言。Ocaml被选中的部分原因是它提供了函数式、命令式和面向对象的混合编程风格支持。在OCaml语言中，函数式能够像变量一样被方便的在程序中传递，并且OCaml是能够自动侦测程序范型的函数式编程语言。</p>
<p>F#语言最初由微软研究院的首席研究员<a href="http://blogs.msdn.com/b/dsyme/">Don Syme</a>设计，设计者Don Syme于1999年从剑桥大学计算机实验室获得博士学位，他还参与了C#泛型和.NET CLR的设计工作。在语法设计上F#具备优雅的结构，同时F#被设计为类型安全且具备良好性能的编译语言。在微软决定将F#进一步推广应用之后，F#被转移到微软专门的开发部门维护和更新，并在.NET Framework和Visual Studio 2010开发环境中为F#提供了全面支持。此外，开发者还能够在Visual Studio 2008中使用F#，或借助<a href="http://www.mono-project.com">Mono</a>在Linux系统上使用F#。</p>
<p>作为微软支持的第一个函数式语言，F#在项目中被越来越多的开发者选用，这与F#对程序并发和异步编程的良好支持密不可分。微软为F#添加了不少简化开发者处理程序并行和异步编程的便捷特性，以辅助开发者轻松完成多核并发和Web分布式系统的应用开发。在常见的开发模式下，F#被用于撰写安全并发和异步处理相关的程序组件，用户界面则使用Visual Basic或C#来编写，而最终产品由F#实现组件和其他.Net开发语言组织而成。</p>
<p>不仅如此，F#目前还被广泛用于Xbox 360游戏平台上的代码开发中，为开发者提供了在<a href="http://msdn.microsoft.com/en-us/aa937791">XNA Game Studio</a>环境下的F#编程支持。微软研究院曾使用F#、<a href="http://research.microsoft.com/en-us/projects/trueskill/">TrueSkill</a>以及XNA开发了一款名为“The Path of Go”具备故事情节的<a href="http://research.microsoft.com/en-us/projects/pathofgo/">3D围棋游戏</a>，以展示F#在游戏开发和人工智能领域方面的并发编程能力。</p>
<p>感兴趣的开发者可以阅读Don Syme及其他几位F#语言设计者共同撰写的<a href="http://www.apress.com/9781430224310">《Expert F# 2.0》</a>一书，来深入学习并使用F#语言。也可以阅读游戏开发者<a href="http://blogs.academicclub.org/xna-eng/author/giuseppe-maggiore/">Giuseppe Maggiore</a>撰写的《FRIENDLY F# with game development and XNA》一书，来学习F#语言在游戏开发中的应用。</p>
<p>本文曾发表于<a href="http://www.programmer.com.cn/">《程序员》杂志</a>-2011年09期“程序天下事”栏目。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gaoang.com/archives/225/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>年度编程语言锁定Objective-C</title>
		<link>http://www.gaoang.com/archives/222</link>
		<comments>http://www.gaoang.com/archives/222#comments</comments>
		<pubDate>Sun, 21 Aug 2011 01:28:00 +0000</pubDate>
		<dc:creator>Gao Ang</dc:creator>
				<category><![CDATA[编程语言]]></category>

		<guid isPermaLink="false">http://www.gaoang.com/archives/222</guid>
		<description><![CDATA[TIOBE编程语言排行榜每年初都将统计评出上年度的最佳编程语言大奖，获奖的编程语言被认为在该年度市场份额增长及用户认可度方面获得了最为突出的成绩。历年获奖的编程语言包括2004年的PH... ]]></description>
			<content:encoded><![CDATA[<p><img align="right" src="http://www.gaoang.com/images/objective-c.jpg" /> TIOBE编程语言<a href="http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html">排行榜</a>每年初都将统计评出上年度的最佳编程语言大奖，获奖的编程语言被认为在该年度市场份额增长及用户认可度方面获得了最为突出的成绩。历年获奖的编程语言包括2004年的PHP、2005年的Java、2006年的Ruby、2008年的C至2009年的Go语言，这些编程语言都曾拿到年度最佳的殊荣。成为系统脚本事实标准的Python语言，因其简单易用并能成功运用在Web开发等各种不同类型的应用中，而与2010年和2007年两次获得年度编程语言奖项。</p>
<p>2011年已过去一半，从目前市场占有趋势来看，<a href="http://en.wikipedia.org/wiki/Objective-C">Objective-C</a>已经脱颖而出，相对2010年的市场占有率增长了2.68%，毋庸置疑，Objective-C将成为年度编程语言奖项的得主。其实在2010年，在iOS平台应用快速增长的推动下，Objective-C已成为上年度使用率上升最快（增速超过100%）的语言，但从绝对数量来看，Python以拥有最大的市场份额增长率而胜出。</p>
<p>Objective-C设计的初衷是为在C语言基础上添加面向对象拓展，目前Objective-C已发展成为苹果各系统平台上应用开发的事实标准。Objective-C包含一个用C编写的小巧的运行库，提供给开发者各种实用的操作。Objective-C的编译可以在现存C编译器基础上实现，而不需专门开发一个全新的编译工具。这让Objective-C能重用大量遗留的C代码、类库等各种资源。目前Objective-C代码的编译在GCC和<a href="http://clang.llvm.org/">LLVM/Clang</a>中已得到完美支持，并且GCC的最新4.6版本还支持多项Objective-C 2.0语言的新特性，比如说快速枚举、dot语法、可选协议方法、类拓展以及新的Objective-C运行时API等。</p>
<p>Objective-C的独特之处在于，它将垃圾回收等一些真正高层次的语言特性与C语言低层级的函数功能相结合，通过高层次的语言功能提高程序员的生产力。但即便如此，不少开发者仍旧对语言的发展给予厚望。Mac OS应用<a href="http://fortunatebear.com/products/illuminate/">Illuminate</a>的作者Andy Finnell在他的Blog中<a href="http://losingfight.com/blog/2006/10/25/objective-c-30/">写道</a>，希望在下一个Objective-C 3.0版本发布时，增加闭包的支持，并增加匿名函数以方便在函数中与前端JavaScript交互，并提供在匿名函数中访问本地变量的功能。</p>
<p>在公司或个人准备启动一个新的软件开发项目时，TIOBE编程语言流行度排行常被用作检测编程语言或技术先进性的参照尺度，来辅助技术选型的决策。苹果iPhone和iPad平台市场领导地位的确立和Apple各系统不断推陈出新，极大的推进了Objective-C语言的普及和流行，使其成为TIOBE本年度最佳编程语言。随着苹果公司Mac OS X Lion和iOS 5.0发布日期的临近，具备更强劲性能的硬件和更丰富易用的平台将很快与苹果的用户见面，这也呼唤更多的开发者加入到Objective-C应用开发的行列中来，让这门本年度最佳编程语言为用户实现更大的价值。</p>
<p>本文曾发表于<a href="http://www.programmer.com.cn/">《程序员》杂志</a>-2011年08期“程序天下事”栏目。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gaoang.com/archives/222/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>移动开发新宠：Lua语言</title>
		<link>http://www.gaoang.com/archives/215</link>
		<comments>http://www.gaoang.com/archives/215#comments</comments>
		<pubDate>Sun, 17 Jul 2011 08:25:37 +0000</pubDate>
		<dc:creator>Gao Ang</dc:creator>
				<category><![CDATA[编程语言]]></category>

		<guid isPermaLink="false">http://www.gaoang.com/archives/215</guid>
		<description><![CDATA[TIOBE编程语言流行度排行榜的统计数据来源于Google、Bing、Yahoo!等主流搜索引擎，以及各大技术网站发布的招聘信息，在很大程度上代表了编程语言的流行趋势。在六月的TIOBE编程语言排名中，Lua... ]]></description>
			<content:encoded><![CDATA[<p><img align="right" src="http://www.lua.org/images/lua-language.gif" /> TIOBE编程语言流行度排行榜的<a href="http://www.tiobe.com/index.php/content/paperinfo/tpci/tpci_definition.htm">统计数据</a>来源于Google、Bing、Yahoo!等主流搜索引擎，以及各大技术网站发布的招聘信息，在很大程度上代表了编程语言的流行趋势。在六月的TIOBE编程语言<a href="http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html">排名</a>中，Lua语言第一次进入了排行榜的前十名。</p>
<p>轻量级脚本语言<a href="http://www.lua.org/">Lua</a>在开发者中正变得越来越流行，这与移动应用开发的升温密不可分。以iPhone为代表的移动平台，为不少开发者提供了新的应用展示空间，也为支持iOS系统的应用开发带来了巨大商机。包括大获成功的游戏《愤怒的小鸟》在内，不少iPhone和iPad流行应用使用了Lua作为游戏脚本。Lua语言最大的优势在于其轻量级脚本和高效的运行效率，这一得天独厚的优势让Lua在以娱乐和用户体验而著称的iOS系统上大有用武之地。</p>
<p>小巧的Lua语言来自于巴西里约热内卢天主教大学于1993年启动的实验性项目。Lua语法简洁优美，解释器由标准C编写。以快速小巧著称的Lua拥有在目前所有脚本引擎中最快的运行速度，这样的特性让Lua、成为用作嵌入式脚本的最佳选择。Lua代码几乎能在所有操作系统和移动终端上编译运行，同时Lua提供了<a href="http://luajit.org/">LuaJIT</a>项目，针对特定目标平台为开发者提供即时编译功能，进一步增强Lua的执行效率。</p>
<p>Lua的设计初衷并非意图构建完整的应用，而是嵌入在应用程序中为应用提供灵活的扩展和定制功能，所以Lua仅提供了基本的数学运算和字符串处理等函数库，而并未涵盖程序设计的方方面面。在语言兼容性上，Lua一开始就瞄准了具有广泛应用场景的C和C++，让C/C++编写的代码可以很方便的调用Lua脚本，同时C/C++函数也能够在Lua脚本中调用。与C/C++代码的良好交互性，让Lua在应用程序开发中有着广泛的应用基础。</p>
<p>Lua最流行的应用场景是在游戏中作为处理逻辑的脚本，即用来编写游戏的任务脚本，以实现游戏的可配置性和可扩展性。在游戏中Lua脚本的加载不需重启服务器，尽管脚本的运行效率低于编译好的二进制代码，但目前CPU速度已完全能够让Lua脚本迅速解释执行。在以《魔兽世界》为代表的网络游戏中，几乎所有的插件都是使用解释性的脚本Lua编写，核心的C++代码只占全部代码中的很小一部分比重。</p>
<p>目前Lua语言的最新版本是5.2 Beta，如果你也准备在移动应用开发中尝试嵌入Lua脚本，在熟悉语法之后，便可移步<a href="http://luaforge.net/">Lua开源项目站点</a>或<a href="http://www.lua-users.org/">Lua开发者站点</a>Wiki库，下载感兴趣的Lua程序脚本，开启Lua脚本的学习之旅。</p>
<p>本文曾发表于<a href="http://www.programmer.com.cn/">《程序员》杂志</a>-2011年07期“程序天下事”栏目。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gaoang.com/archives/215/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mark Logic非结构化数据存储服务</title>
		<link>http://www.gaoang.com/archives/214</link>
		<comments>http://www.gaoang.com/archives/214#comments</comments>
		<pubDate>Mon, 13 Jun 2011 10:44:59 +0000</pubDate>
		<dc:creator>Gao Ang</dc:creator>
				<category><![CDATA[标准研究]]></category>

		<guid isPermaLink="false">http://www.gaoang.com/archives/214</guid>
		<description><![CDATA[近日，Amazon与Mark Logic公司开展合作，在AWS云服务中加入XML格式数据的搜索与处理功能，以针对特殊用户的需求增强云服务的适用性。Mark Logic为Amazon的用户提供运行在AMI服务器映像上的XML服务器... ]]></description>
			<content:encoded><![CDATA[<p><img align="right" src="http://www.gaoang.com/images/marklogic.jpg" /> 近日，<a href="http://www.amazon.com/">Amazon</a>与<a href="http://www.marklogic.com/">Mark Logic</a>公司开展合作，在AWS云服务中加入XML格式数据的搜索与处理功能，以针对特殊用户的需求增强云服务的适用性。Mark Logic为Amazon的用户提供运行在AMI服务器映像上的XML服务器资源，以及虚拟化的XML数据存储服务。</p>
<p>对大多数国内数据库使用者来说，Mark Logic的知名度与主流数据库厂商相去较远，用户并不算多。但在业界，Mark Logic却是非结构化数据管理技术的领导者，其主要用户覆盖新闻出版部门、政府机构、财经信息服务等不同的专业领域。</p>
<p>Mark Logic公司的拳头产品<a href="http://www.marklogic.com/products/marklogic-server.html">MarkLogic Server</a>是以文档为中心的领域专用数据库，专门针对半结构化和非结构化数据进行设计和优化，能够实现TB级非结构化数据资源的全文检索。MarkLogic Server支持针对Web内容、XML文档和JSON内容的RESTFul和HTTP请求。在数据模型组织方面，MarkLogic Server采用XML树状结构组织，数据查询和检索使用的DML和DDL语言为XQuery，此外，Mark Logic 还是<a href="http://www.w3.org/TR/xquery/">XQuery</a>标准发展和应用的推动者。</p>
<p>较之同类数据库，MarkLogic在技术上有着独特的优势。MarkLogic始终保持着远超同类数据库（如IBM DB2 Viper 2）的XML文档处理速度，并且能够保证数据在事务处理过程中的原子性、一致性、独立性和持久性要求。此外，MarkLogic对XML文档提供多种形式的索引，索引包含文档实体、父子关系以及要素取值等内容。由于MarkLogic可以在不预先建立文档Schema的基础上自动索引XML包含的所有要素，所以MarkLogic对文档的管理几乎不需借助DDL数据库模式定义。</p>
<p>MarkLogic已广泛应用在信息服务领域，用户包含世界领先的科技及医学期刊数据库<a href="http://www.elsevier.com">Elsevier</a>；为法律和学术领域提供专业信息服务的<a href="http://www.lexisnexis.com">LexisNexis</a>数据集团；提供金融财经领域高质量信息及工作流程解决方案的威科集团(<a href="http://www.wolterskluwer.com">Wolters Kluwer</a>)及<a href="http://www.jpmorganchase.com">摩根大通</a>银行；帮助全球性出版、财经、传媒服务集团<a href="http://www.mcgraw-hill.com">McGraw-Hill</a>对外提供信息服务，并辅助其旗下的标准普尔为全球资本市场提供信用评级、指数服务、风险评估和数据服务。此外，MarkLogic还被美国陆军、美国国防部等不少政府机构采用来建立信息管理业务。</p>
<p>如今，随着大型跨国企业数据量的逐步增加，越来越多传统的数据库应用已不能满足企业的需求。在存储和服务器成本的不断降低的趋势下，不少企业开始寻找在云端存储以XML形式存在的媒体文件、文档、网页等信息的有效途径。</p>
<p>MarkLogic已在帮助拥有海量非结构化数据的大型企业摆脱传统数据库组织数据并建立索引的束缚，快速搭建数据搜索和查询应用。这样的趋势正快步走向云端，为那些希望使用云服务来增强非结构化信息索引能力的中小型企业带来新的机遇。</p>
<p>本文曾发表于<a href="http://www.programmer.com.cn/">《程序员》杂志</a>-2011年06期“工具点评”栏目。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gaoang.com/archives/214/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JVM上的新语言：Ceylon</title>
		<link>http://www.gaoang.com/archives/210</link>
		<comments>http://www.gaoang.com/archives/210#comments</comments>
		<pubDate>Mon, 09 May 2011 02:25:43 +0000</pubDate>
		<dc:creator>Gao Ang</dc:creator>
				<category><![CDATA[编程语言]]></category>

		<guid isPermaLink="false">http://www.gaoang.com/archives/210</guid>
		<description><![CDATA[在2011年4月举办的QCon北京大会上，来自Red Hat的Gavin King首次公开了关于Ceylon语言的重量级话题。作为Hibernate的创始人，Gavin广为Java开发者熟知。本次技术大会上透露的Ceylon语言，是Gavin在Red Hat近... ]]></description>
			<content:encoded><![CDATA[<p><img align="right" src="http://www.gaoang.com/images/hotjava.jpg" /> 在2011年4月举办的QCon北京大会上，来自Red Hat的Gavin King首次公开了关于Ceylon语言的<a href="http://www.qconbeijing.com/ShowNews.aspx?id=65">重量级话题</a>。作为Hibernate的创始人，Gavin广为Java开发者熟知。本次技术大会上透露的Ceylon语言，是Gavin在Red Hat近两年一直投身设计并开发的新一代JVM语言，计划在企业开发领域赶超Java的领导地位。</p>
<p>Ceylon面向企业级应用开发设计，在JVM运行时基础上执行，支持与Java的交互操作。Ceylon语言充分借鉴了Java语言的优势并屏蔽其在设计上的不足，使用静态类型并提供高阶函数支持，在保持代码良好可读性的同时进一步降低开发者入门的难度。 </p>
<p>Ceylon语言没有设计特殊的Primitive类型或复合类型，所有类型在类型系统内部都是可表达的。Ceylon的通用类型设计比Java的实现更为简便，而且相比其他类Java语言具备更高的安全性，Ceylon的元编程（Reflection）也必须是类型安全的。此外，Ceylon语言减少了开发者对于配置文件的依赖，屏蔽了Java开发者常常需要对各种XML进行的配置和修改操作。 </p>
<p>Java语言的确具备众多适宜于企业开发的优点，包括良好的开放性、适合企业级开发的健壮性等特点。但是其生产效率和过重的负荷却一直令人诟病。作为一门深受Java语言影响的JVM语言，Ceylon由熟知Java语言的专家设计。正是因为Gavin多年的Java开发经验，促使他着手实现这样一个期望能够超越Java的语言。</p>
<p>当然，从头开始创建一门编程语言以及SDK工具包无疑是一项将耗费巨大工作量的任务，但Gavin在Blog上撰文写道：我们在设计开发Ceylon语言的过程中，借鉴了大量Java开源社区中的成果，如Open JDK, JBoss以及Eclipse社区，并且这些工作对于Red Hat这样规模并汇聚众多开发好手的公司来说并非是不可能的任务。 </p>
<p>社区支持对于Ceylon语言的发展是必不可少的，然而，要想获得社区的认可与追随，Ceylon语言本身能够提供一个设计优良的杀手级开发框架将是个巨大的激励因素，就像Ruby语言的Rails框架或Scala语言的Lift框架那样在众多项目中得到成功应用。为此，Gavin撰写了一系列Ceylon语言的<a href="http://relation.to/Bloggers/IntroductionToCeylonPart1">介绍性文章</a>，来帮助社区开发者进一步了解并掌握语言的使用。</p>
<p>此外，IDE环境对于开发语言的普及具有很大的推动作用，如被不少Java开发者所推崇的Scala语言，则同时拥有基于Eclipse的IDE工具、基于IntelliJ IDEA的开发环境，以及NetBeans的Scala开发插件。目前，Ceylon语言也同样需要一个令人满意的IDE工具，来增强语言的适用性。 </p>
<p>作为Hibernate的创始人，EJB3.0专家委员会成员，JBoss Seam的开发者，Gavin King已经取得了令开发者瞩目的成绩，运行在JVM之上的新一代编程语言Ceylon能否真正赶超Java，造就另一个辉煌，让我们拭目以待。</p>
<p>本文曾发表于<a href="http://www.programmer.com.cn/">《程序员》杂志</a>-2011年05期“程序天下事”栏目。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gaoang.com/archives/210/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>新闻标识语言NewsML</title>
		<link>http://www.gaoang.com/archives/206</link>
		<comments>http://www.gaoang.com/archives/206#comments</comments>
		<pubDate>Sat, 02 Apr 2011 08:30:27 +0000</pubDate>
		<dc:creator>Gao Ang</dc:creator>
				<category><![CDATA[标准研究]]></category>

		<guid isPermaLink="false">http://www.gaoang.com/archives/206</guid>
		<description><![CDATA[在XML文档格式基础上，专为特定领域设计的各种XML方言，在各行业领域中一直有着广泛的应用。如描述站点消息来源的Atom格式，业务过程执行语言BPEL，OGC组织定义的地理标志语言GML，Google Earth... ]]></description>
			<content:encoded><![CDATA[<p><img align="right" src="http://www.gaoang.com/images/newsml.jpg" /> 在XML文档格式基础上，专为特定领域设计的各种XML方言，在各行业领域中一直有着广泛的应用。如描述站点消息来源的Atom格式，业务过程执行语言BPEL，OGC组织定义的地理标志语言GML，Google Earth和Google Map使用的要素标记语言KML，以及用于数字版权描述的开放数字许可语言ODRL等。</p>
<p>在新闻传媒领域，发生在世界各地，由不同语言进行传播的新闻事件、体育赛事、财经数据等海量信息汇总在一起，常使得数据交换和展示的工作变得极为复杂。如何让多种来源的新闻信息在交换时具备良好的格式定义，让不同语言的信息提供者能够得到具有统一结构定义的新闻数据，为了解决这样的问题，新闻标准化机构就制定了面向新闻稿件制定的数据格式标识语言<a href="http://www.newsml.org/">NewsML</a>，以帮助新闻工作者在收到信息的同时即可获得准确的新闻元数据，并且NewsML同样是基于XML定义的内容规则描述方言。</p>
<p>NewsML文档包括用来定义NewsML文本逻辑的Schema结构，定义NewsML文档显示格式的XSL样式表，以及符合Schema格式定义新闻主体和元数据。其中Schema定义了新闻信息标记符的语法描述规则，指定NewsML文档包含的元素、元素属性以及元素间的关系；可扩展样式语言XSL定义新闻内容的显示格式，能够将新闻内容以多种样式展示。 </p>
<p>除对新闻信息内容进行组织描述外, NewsML提供了强大的元数据描述能力，能够将新闻的每个部分附上元数据来描述其特性。在常见的新闻稿件中，一般包含稿件日期、标题、作者、资料来源、分类类别等稿件标识信息，在NewsML标识语言中，不仅包含上述新闻标识信息，还包含题注、关键字、出版者、审改人、签发人、语言、分类、版权、受众对象、重要性、原稿条目、相关超文本链接等多项拓展信息，这些新闻元数据大大提高了媒体间信息交换、新闻管理以及检索的效率。同时，由NewsML描述的新闻图片，也将作者、版权、背景描述等元数据加入图片附带的信息中。NewsML通过对新闻信息和元数据的有效标记，为新闻描述提供了更细的粒度，以方便其准确检索使用和自动化处理。</p>
<p>NewsML最初由英国路透社设计，希望通过创建一种新的描述格式来包装多媒体新闻资源。目前NewsML的管理和维护工作由国际出版电信联盟（IPTC）负责。IPTC联盟的主要职责是制定和维护各类新闻传媒所需的信息和数据标准，包括NewsML、EventsML、SportsML等各种新闻信息描述标准的定义，并提供新闻编码、图片元数据等相关新闻数据标准。</p>
<p>目前NewsML的最新版本为<a href="http://www.iptc.org/site/News_Exchange_Formats/NewsML-G2/">NewsML-G2 2.7</a>规范，NewsML用于通用化的多媒体新闻描述，此外，为了更准确的描述特定类型新闻信息，IPTC还定制了用于新闻事件描述的EventsML-G2标准，以及报道体育赛事的SportsML-G2标准，为常用的新闻形式提供细节更为丰富的可定制内容。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gaoang.com/archives/206/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OGSA-DAI 4.1版本新增特性</title>
		<link>http://www.gaoang.com/archives/204</link>
		<comments>http://www.gaoang.com/archives/204#comments</comments>
		<pubDate>Tue, 15 Mar 2011 03:48:16 +0000</pubDate>
		<dc:creator>Gao Ang</dc:creator>
				<category><![CDATA[网格科学]]></category>

		<guid isPermaLink="false">http://www.gaoang.com/archives/204</guid>
		<description><![CDATA[数据网格访问集成中间件OSGA-DAI为科学数据共享工程提供了分布式的多源数据库查询能力，最新的4.1版本已经发布，新版本更新的特性如下： 能够以新增的TupleToByteArrays行为，将关系型数据转换... ]]></description>
			<content:encoded><![CDATA[<p><img align="right" src="http://www.gaoang.com/images/daiongrid.jpg" /> 数据网格访问集成中间件<a href="http://www.ogsadai.org.uk">OSGA-DAI</a>为科学数据共享工程提供了分布式的多源数据库查询能力，最新的4.1版本已经发布，新版本更新的特性如下：</p>
<ul>
<li>能够以新增的TupleToByteArrays行为，将关系型数据转换为二进制格式从服务端传输至客户端，新增的行为较之原有以文本方式传输数据的WebRowSet更为高效，同时避免了转换过程中的信息丢失。目前DQP中默认使用二进制格式进行数据传递；</li>
<li>TupleToByteArrays行为允许关系型数据在客户端以JDBC结果集的形式被提取； </li>
<li>支持面向语义网应用的<a href="http://openjena.org/SDB/">Jena SDB</a>数据库查询，允许使用专为<a href="http://www.w3.org/TR/rdf-syntax/">RDF</a>开发的查询语言和数据获取协议<a href="http://www.w3.org/TR/rdf-sparql-query/">SPARQL</a>来查询W3C定义的RDF资源； </li>
<li>在OGSA-DAI面向Web服务提供的数据访问与集成组件WS-DAIR中，加入通用的SQLStatement行为，以提供SQL查询、更新和存储操作； </li>
<li>在DQP提供的函数中增加求模运算； </li>
<li>针对OGSA-DAI Axis版本，默认使用HTTP Keep-Alive功能来保证客户端到服务器端的连接持续有效，并优化了客户端工具与服务端的交互效率。 </li>
</ul>
<p>在OGSA-DAI 4.1版本的新特性中，通过新增的TupleToByteArrays行为支持二进制格式的数据传递，无疑是一项重要的改进。尤其是在访问地理空间数据库过程中，以BLOB字段存储空间位置的WKB格式，无需在获取时将二进制格式转换为文本形式的WKT格式以WebRowSet行为传递，而直接将二进制WKB格式传递至客户端进行渲染或处理，极大增强了空间数据传输的执行的效率。</p>
<p>OGSA-DAI项目以Apache 2.0协议开放源代码，感兴趣的朋友可以进一步查看4.1版本的<a href="http://ogsa-dai.sourceforge.net/documentation/ogsadai4.1/ogsadai4.1-gt42/Release.html">更新说明</a>，并访问<a href="http://sourceforge.net/apps/trac/ogsa-dai/wiki/UserDocumentation">OGSA-DAI文档</a>获取更细节的内容。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gaoang.com/archives/204/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript代码生成器——CoffeeScript</title>
		<link>http://www.gaoang.com/archives/202</link>
		<comments>http://www.gaoang.com/archives/202#comments</comments>
		<pubDate>Thu, 10 Mar 2011 03:47:54 +0000</pubDate>
		<dc:creator>Gao Ang</dc:creator>
				<category><![CDATA[编程语言]]></category>

		<guid isPermaLink="false">http://www.gaoang.com/archives/202</guid>
		<description><![CDATA[CoffeeScript是使用Ruby编写的编程语言，旨在通过简单的编码方式让开发者在Web应用中生成并使用JavaScript代码。CoffeeScript融合了Ruby的简洁和JavaScript的灵活，让开发者通过简单易读的语法来撰写逻... ]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.gaoang.com/images/coffeescript.jpg" align="right" /><a href="http://jashkenas.github.com/coffee-script/">CoffeeScript</a>是使用Ruby编写的编程语言，旨在通过简单的编码方式让开发者在Web应用中生成并使用JavaScript代码。CoffeeScript融合了Ruby的简洁和JavaScript的灵活，让开发者通过简单易读的语法来撰写逻辑规则。CoffeeScript编译器负责将代码逐行解释为等效的JavaScript程序，并保证生成的JavaScript代码与源代码在逻辑结构上一致。 </p>
<p>较之JavaScript语法，CoffeeScript在语法设计上更为严谨。为了让代码看起来更加简洁精致，CoffeeScript使用空格缩进而非大括号来进行代码段分隔。开发者可以在CoffeeScript编程中调用任何已有的JavaScript类库，并能够与类库实现无缝集成。经编译生成的JavaScript代码，具备良好的版式和可读性，相比较开发者手写的JavaScript代码具备同等或更优的执行效率。 </p>
<p>CoffeeScript翻译器是使用CoffeeScript语言本身编写，能够在编译的时候格式化JavaScript代码，这一点在CoffeeScript官方站点上也有所体现。站点为开发者提供了交互式的CoffeeScript在线编译环境，开发者在一侧敲入CoffeeScript代码的同时，代码被实时解释为对应的JavaScript程序，并可随时在浏览器上运行验证。 </p>
<p>CoffeeScript自2009年12月份诞生以来，经历了一年多开发完善，前不久刚发布了<a href="http://github.com/jashkenas/coffee-script/tarball/1.0.1">1.0版本</a>。在新版本中，CoffeeScript改进了循环体结构，并提供了简便的闭包实现。为了方便Java开发者使用，CoffeeScript还提供有一个被称作<a href="https://github.com/yeungda/jcoffeescript ">JcoffeeScript</a>的Java类库，让CoffeeScript代码能够在Rhino环境中编译。Rhino项目由Mozilla基金会赞助，完全使用Java语言开发了JavaScript引擎，以便嵌入在Java应用中为用户提供脚本支持。</p>
<p> 此外，CoffeeScript的拓展开发资源也很丰富CoffeeScript的方言<a href="http://github.com/satyr/coco">Coco项目</a>，在牺牲CoffeeScript代码可读性的同时，让CoffeeScript语法变得更为高效和实用，以便于应用的快速开发。在CoffeeScript的编码支持方面，<a href="https://github.com/kchmck/vim-coffee-script">Vim CoffeeScript</a>项目为使用Vim文本编辑器的开发者提供CoffeeScript语法高亮显示，同时为开发者提供CoffeeScript代码缩进支持。  <br /> 
<p>目前已有不少Web开发项目开始使用CoffeeScript生成的JavaScript来构建站点。比如提供各种新技术资讯的<a href="http://www.arstechnica.com">arstechnica.com</a>站点，在其推出的iPad应用中，就是使用HTML和CoffeeScript为读者提供前端展示。37Signals发布的iPad白板应用Chalk也是使用CoffeeScript编写，并且能够借助Cache Manifest实现应用的离线运行。运行在浏览器端的坦克大战游戏<a href="https://github.com/stephank/orona">Orona</a>同样借助CoffeeScript实现。此外，另有有趣的<a href="http://thelincolnshirepoacher.com/">站点</a>使用CoffeeScript和JavaScript的矢量图形库工具<a href="http://raphaeljs.com/">Raphaël</a>来演示如何随即生成各式各样有趣的图案。</p>
<p>本文曾发表于<a href="http://www.programmer.com.cn/">《程序员》杂志</a>-2011年03期”程序天下事”栏目。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gaoang.com/archives/202/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>跨越JVM与.NET CLR的Fantom语言</title>
		<link>http://www.gaoang.com/archives/195</link>
		<comments>http://www.gaoang.com/archives/195#comments</comments>
		<pubDate>Thu, 10 Feb 2011 01:29:06 +0000</pubDate>
		<dc:creator>Gao Ang</dc:creator>
				<category><![CDATA[编程语言]]></category>

		<guid isPermaLink="false">http://www.gaoang.com/archives/195</guid>
		<description><![CDATA[在JVM平台并入Oracle产品线后，Oracle将对JVM平台进行多项改进和调整。内容包括增强平台的模块化和集成性等特征、为Java SE增加多核处理支持，在Java ME中增加多点触摸支持等。与此同时，Oracle开... ]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.gaoang.com/images/fantom.jpg" align="right" width="261" height="155"/>在JVM平台并入Oracle产品线后，Oracle将对JVM平台进行多项改进和调整。内容包括增强平台的模块化和集成性等特征、为Java SE增加多核处理支持，在Java ME中增加多点触摸支持等。与此同时，Oracle开发部副总裁Adam Messinger在Qcon开发大会上<a href="http://www.infoq.com/cn/news/2010/11/oracle-to-release-two-jvms">透露</a>，Oracle计划在提供免费版JVM基础上新增收费版本，在收费版JVM里整合HotSpot JVM与JRockit JVM，为高端用户提供功能更为强大的解决方案。</p>
<p>对开发者来说，无论Oracle策略如何，JVM平台依然有着巨大的吸引力。依托于JVM平台的动态语言，始终保持着蓬勃的生命力。在这些动态语言中，能够同时兼容Java虚拟机和.Net CLR通用语言运行时的Fantom，是其中极具特色的动态语言。</p>
<p><a href="http://fantom.org/">Fantom</a>最初被称为Fan语言，由于定名为Fan不易检索，开发者在09年11月份将当时新发布的版本定名为Fantom语言。Fantom使用与BSD 类似的Academic Free License 3.0开源协议授权。</p>
<p>Fantom的开发者将其设计为一门实用且有趣的脚本语言，来解决Java和C#编程中实际存在的问题，降低开发者编码的难度。Fantom语言最大的特点是它的可移植性，Fantom代码能够无缝的在Java VM和.NET CLR平台之间进行迁移。为了保证平台间的顺利移植，Fantom代码首先被编译为fcode，即一种字节码表示法，之后转换成为Java字节码或IL解释语言，转换的过程在程序运行时完成，开发者可以以单个文件的形式在虚拟机中部署Fantom代码模块。</p>
<p>对于Java VM和.NET CLR平台切换时的API调用，Fantom给出了简便易用的解决办法。Fantom提供了一组与Java 和.NET API配合使用的API接口供开发者使用，来屏蔽不同平台间对于系统API调用的差异。</p>
<p>当然，Fantom语言的可移植特性不仅限于Java和.NET平台，Fantom支持将代码编译为JavaScript脚本供开发者在浏览器端使用。Fantom语言从一开始就为跨运行时的编程而设计，在未来的规划中，Fantom语言还将支持iPhone的Objective-C语言，以及<a href="http://llvm.org/">LLVM</a>集成编译环境或集合了Python与Perl语言优势的<a href="http://www.parrot.org/">Parrot语言</a>。</p>
<p>在Fantom编程支持方面，开发者可以使用基于NetBeans Platform的IDE环境<a href="http://fantomide.colar.net/home">FantomIDE</a>进行编码和调试，IDE包含开箱即用的Fantom环境，语法和词法解析使用开源语法分析器ANTLR设计，FantomIDE还提供了Javascript、CSS、HTML、XML等脚本支持以及Subversion和Mercurial等管理工具。</p>
<p>JVM平台从不缺乏优秀的动态语言，Groovy、JRuby、Jython、<del datetime="2011-02-10T08:07:30+00:00">Scala</del>都是其中的佼佼者，不同语言的风格类型、运行速度和工具支持也各有千秋。Fantom以其跨运行时的特性和先进的设计理念，是否将来能脱颖而出得到开发者的认可，让我们拭目以待。</p>
<p>本文曾发表于<a href="http://www.programmer.com.cn/">《程序员》杂志</a>-2011年02期&#8221;程序天下事&#8221;栏目。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gaoang.com/archives/195/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>DOI：国际化的数字对象标识符</title>
		<link>http://www.gaoang.com/archives/172</link>
		<comments>http://www.gaoang.com/archives/172#comments</comments>
		<pubDate>Fri, 07 Jan 2011 03:56:59 +0000</pubDate>
		<dc:creator>Gao Ang</dc:creator>
				<category><![CDATA[标准研究]]></category>

		<guid isPermaLink="false">http://www.gaoang.com/archives/172</guid>
		<description><![CDATA[ISO近期以100%的赞成率投票通过了一项新的国际标准ISO 26324：数字对象唯一标识符(Digital Object Unique Identifier)，简称DOI标识。DOI由统一资源定位符URL演变而来，为网络环境下的信息资源实体确定唯... ]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.gaoang.com/images/doi.jpg" align="right" width="218" height="110"/>ISO近期以100%的赞成率投票通过了一项新的国际标准<a href="http://www.iso.org/iso/catalogue_detail.htm?csnumber=43506">ISO 26324</a>：数字对象唯一标识符(Digital Object Unique Identifier)，简称<a href="http://www.doi.org/">DOI</a>标识。DOI由统一资源定位符URL演变而来，为网络环境下的信息资源实体确定唯一的标识规则。</p>
<p><a href="http://www.iso.org/">ISO</a>国际标准化组织是成立于1947年2月的全球性非政府组织，总部设在瑞士日内瓦。ISO标准的制修订工作由各技术委员会负责，ISO/TC46第46技术委员会是信息与文献技术委员会，负责制定和推广与信息和文献工作相关的国际标准，DOI标准由ISO/ <a href="http://isotc.iso.org/livelink/livelink/open/tc46">TC46</a>的分技术委员会<a href="http://www.iso.org/iso/iso_technical_committee.html?commid=48836">SC9</a>（标识与描述）归口管理。除DOI标准外，技术委员会还负责国际标准书号ISBN、国际连续出版物号ISSN和国际标准音像号ISAN等标准的制修订工作。</p>
<p>在信息化时代，数据和信息本身的价值往往比作为载体的管理信息系统更重要。在DOI出现前，大量有价值的数据因知识产权得不到保护而不愿共享。此外，很多具有研究和使用价值的数据由于缺乏统一标识规范，常会造成无序的引用和歧义。针对上述问题，数字对象唯一标识DOI通过构建数据资源标识方法，为数据提供注册、解析和查询途径，在推动数据资源共享的同时为数据的网络传播提供版权信息。</p>
<p>DOI标识编码由前缀和后缀两部分组成，中间用/分割。为满足可扩展的数据资源编码需求，DOI没有限制前缀和后缀的字符长度。DOI前缀由目录代码和登记机构代码两部分组成，所有DOI代码目录定义为10.，即DOI 代码均以10.开头。登记机构代码通过向国际DOI基金会(IDF)申请获得。登记机构代码的分配根据信息资源编码需求制定，如出版商可为其所有数字出版物申请统一前缀，也可以为数字图书、音像制品等各类出版物申请不同前缀。DOI 后缀是在特定前缀下的唯一标识，由登记机构分配并确保其唯一性。后缀可以是任何字母或数字编码，如机器码、ISBN 或ISSN等已有规范码，具体编码方案由登记机构设定。根据编码规则，DOI数据资源命名规范通常定义为：统一前缀/类型标识.机构名.内部标识码.扩展码的形式。</p>
<p>目前国外<a href="http://www.elsevier.com/">Elsevier</a>、<a href="http://www.blackwell.com/">Blackwell</a>、<a href="http://www.springer.com/">Springer</a>、<a href="http://as.wiley.com/WileyCDA/Section/index.html">John Wiley</a>等大型数字资源提供商已开始使用DOI对其出版的电子文献和数字内容进行标引，帮助基础性数据资源的快捷获取和灵活引用，同时为了便于数字资源的共享与交换，DOI登记机构还会在唯一编码基础上提供数据资源的命名、注册、解析、查询和变更等管理功能。DOI能够实现资源实体的永久性标识，便于数字资源的归档与检索。目前专业的DOI检索站点 <a href="http://www.crossref.org/">CrossRef</a>已与Google搜索技术结合，在DOI检索过程中提供数字文档的全文检索，为用户建立检索结果到数字文献全文间的获取通道。</p>
<p>由于DOI标识的唯一性、持久性、兼容性、互操作性、动态更新等特点，在正式成为ISO标准后，必将会在信息资源标识引用过程中起到越来越重要的基础性作用。</p>
<p>本文曾发表于<a href="http://www.programmer.com.cn/">《程序员》杂志</a>-2011年01期&#8221;程序天下事&#8221;栏目。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gaoang.com/archives/172/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>通用对象标识符OID</title>
		<link>http://www.gaoang.com/archives/169</link>
		<comments>http://www.gaoang.com/archives/169#comments</comments>
		<pubDate>Wed, 22 Dec 2010 09:07:01 +0000</pubDate>
		<dc:creator>Gao Ang</dc:creator>
				<category><![CDATA[标准研究]]></category>

		<guid isPermaLink="false">http://www.gaoang.com/archives/169</guid>
		<description><![CDATA[对象标识符OID（Object Identifier）是由国际标准化组织ISO和国际电信联盟ITU联合制定的标识规则，用于规定信息处理系统及网络通信中的数字对象唯一标识方法，其描述对象是具有名称标识的信息... ]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.gaoang.com/images/oid.jpg" alt="" width="528" align="right" />对象标识符<a href="http://en.wikipedia.org/wiki/Object_identifier">OID</a>（Object Identifier）是由国际标准化组织ISO和国际电信联盟ITU联合制定的标识规则，用于规定信息处理系统及网络通信中的数字对象唯一标识方法，其描述对象是具有名称标识的信息、定义或者规范。</p>
<p>OID最初由抽象语法标记<a href="http://en.wikipedia.org/wiki/Abstract_Syntax_Notation_One">ASN.1</a>（Abstract Syntax Notation One）引入。ASN.1是ISO/IEC和国际电信联盟ITU-T共同制定的标准集，用于描述数据的编码、传输和解码方式。ASN.1定义了信息表示的抽象句法，但不限定具体的编码方法。ASN.1提供了基本编码规则、规范编码规则、唯一编码规则、压缩编码规则等一系列编码方法，同时制订了编码扩展方法，以适应没有规范定义的编码描述。目前GB/T 16262定义了我国的ASN.1抽象语法记法标准，包含基本记法规范、信息客体规范、约束规范、参数化规范等内容。</p>
<p>OID采用树状编码方式，按命名空间分配层级结构，树状结构节点数目没有限制。OID命名包含数字或字母两种形式的可变长字符串，不同层次间采用点分的十进制符号表示，并在注册机构内唯一，以便OID解码后得到唯一对象的特性和信息。在OID树顶层，从根节点开始有ITU、ISO和ISO与ITU联合三个分支，在ISO国家成员体节点下，根据ISO 3166国家代码标准根据所属国分配标识，下层分支节点基于应用进行标识划分。</p>
<p>基于分层结构的OID设计有效保证其编码的灵活性和可扩展性，能够对多种应用领域进行标识，在不改变已有编码机制的同时保证人类和机器可读。目前OID在ISO、ITU标准中已开始大量采用，使用者可以通过OID维护机构提供的解析系统，来获取OID包含的各种信息。随着物联网技术的发展，越来越多承载信息的对象将进入网络中互联互通，OID标识将越来越广泛的应用在RFID标签、生物芯片、网络传输、信息安全、无线通信、电子文件格式等领域中，帮助信息有效地交换和沟通。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gaoang.com/archives/169/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LEGO可视化控制语言：NXT-G</title>
		<link>http://www.gaoang.com/archives/168</link>
		<comments>http://www.gaoang.com/archives/168#comments</comments>
		<pubDate>Tue, 30 Nov 2010 01:45:14 +0000</pubDate>
		<dc:creator>Gao Ang</dc:creator>
				<category><![CDATA[兴趣爱好]]></category>

		<guid isPermaLink="false">http://www.gaoang.com/archives/168</guid>
		<description><![CDATA[在十一月份TIOBE语言排名中，一门特殊的编程语言NXT-G首次跻身跃入排行榜的前20，位列第17名。NXT-G编程语言的特殊之处在于其并非是提供给专业程序开发者的编程语言，而是由丹麦著名玩具制... ]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.gaoang.com/images/lego.jpg" align="right" width="412">在十一月份<a href="http://www.tiobe.com/content/paperinfo/tpci/index.html">TIOBE语言排名</a>中，一门特殊的编程语言<a href="http://en.wikipedia.org/wiki/Lego_Mindstorms_NXT">NXT-G</a>首次跻身跃入排行榜的前20，位列第17名。NXT-G编程语言的特殊之处在于其并非是提供给专业程序开发者的编程语言，而是由丹麦著名玩具制造商 <a href="http://www.lego.com/en-us/Default.aspx">乐高（LEGO）</a>公司为NXT机器人玩具设计的可视化编程语言。</p>
<p>头脑风暴（<a href="http://mindstorms.lego.com/">Mindstorms</a>）是乐高出品的可编程机器人系列玩具，NXT 2.0是目前乐高机器人系列的主打产品。第一代Mindstorms机器人于1998年问世，定名为RIS（Robotics Invention System），搭载了由日本瑞萨电子提供的8位微控制器，由专用红外接口向处理器中载入设计好的程序来控制机器人行为。时隔8年后，乐高于2006年发布了新一代机器人Mindstorms NXT，并在2009年推出了功能升级后的NXT 2.0，以满足玩家在组装机器人时对颜色传感、蓝牙设备等高级功能的需求。</p>
<p>NXT的核心是一块被称为智能积木的处理器，能够通过RJ12规格的4芯水晶头线缆接受四路传感信号，并能够控制三个马达协同运转。此外，NXT智能积木搭载了一块100&#215;64像素的单色LCD显示器，可以在机器人运行中通过内置的层级菜单接受用户的按键命令或组织简单的处理步骤。</p>
<p>NXT-G是对应智能积木处理器的可视化编程控制语言，能够帮助机器人实现简单或复杂的控制流程，如马达驱动、传感器输入合并、完成计算任务并实现流程控制。完成后的程序通过USB或蓝牙传输将程序和音频文件装载到NXT模块中，以赋予LEGO机器人生命，NXT还支持模块间文件拷贝和通过智能手机的蓝牙连接进行实时控制。</p>
<p>NXT-G的交互式编程环境基于国家仪器（<a href="http://www.ni.com/">National Instruments</a>）的<a href="http://www.ni.com/labview/">LabVIEW</a>软件提供，LabVIEW最大的特色就是以图形化编程G语言来组织程序，编写程序的展现形式为具备特定逻辑结构的框图。各模块功能实现则由LabVIEW中能完成各项编程任务的庞大函数库提供，包括数据采集、数据显示、数据存储、GPIB通用接口总线、串口控制、数据分析、蓝牙通讯等。此外，LabVIEW可视化编程环境提供了与传统IDE环境相同的程序调试工具，如断点设置、以动画方式显示数据及其子程序的结果、单步执行等功能。</p>
<p>NXT-G编程环境对Windows和Mac OS X都提供了良好支持。除了NI LabVIEW软件外，还有不少支持NXT-G编程的软件程序。包含NXT-G零售版和NXT-G教育版、LEGO基于LabVIEW简化定制的RoboLab工具，乐高机器人专用的汇编指令NBC，以及基于NBC编译器实现且语法与C语言相似的高级语言NXC等。</p>
<p>目前乐高公司已将NXT智能积木的固件设计开源，<a href="http://bricxcc.sourceforge.net/">BricxCC</a>（Bricx Command Center）支持开发者使用C、C++、Pascal、Forth以及Java语言完成乐高RCX模块的程序控制。同时，BricxCC能够在NXC（Not eXactly C）和<a href="http://bricxcc.sourceforge.net/nbc/">NBC</a>（Next Byte Codes）的支持下完成面向LEGO Mindstorms NXT机器人的编程控制。</p>
<p>在教育应用方面，LEGO每年还举办充满乐趣的主题聚会<a href="http://www.legoengineering.com/conferences.html">LEGO工程大会</a>，旨在为LEGO MINDSTORMS系统在教育社区和社团中的推广提供交流机会。在一年一度的LEGO工程大会上，教师们能够相互分享经验和想法，集思广益为LEGO MINDSTORMS在课堂上的应用寻找新的思路。</p>
<p>NXT-G在TIOBE语言排名中的提升，从一个侧面反映了可视化编程语言的流行趋势。如果你是喜欢自己动手又对自动控制感兴趣的程序开发者，不妨尝试一下乐高NXT积木和NXT-G编程环境，LEGO一定会为你带来丰富的体验和乐趣。</p>
<p>本文曾发表于<a href="http://www.programmer.com.cn/">《程序员》杂志</a>-2010年12期-&#8221;程序天下事&#8221;栏目。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gaoang.com/archives/168/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>欢迎参加OSGeo技术讲座（2010年11月23日）</title>
		<link>http://www.gaoang.com/archives/167</link>
		<comments>http://www.gaoang.com/archives/167#comments</comments>
		<pubDate>Sun, 21 Nov 2010 10:02:23 +0000</pubDate>
		<dc:creator>Gao Ang</dc:creator>
				<category><![CDATA[诸子百家]]></category>

		<guid isPermaLink="false">http://www.gaoang.com/archives/167</guid>
		<description><![CDATA[OSGeo（开源地理空间基金会）致力于开源GIS和自由软件在科研单位和学校的推广，并以普及开源地理信息以及最新科学技术进展及为宗旨。OSGeo论坛每月举办一次，采取开放式主题选择，每次活... ]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.gaoang.com/images/osgeo-speech.jpg" align="right" width="417"><a href="http://osgeo.org.cn/">OSGeo</a>（开源地理空间基金会）致力于开源GIS和自由软件在科研单位和学校的推广，并以普及开源地理信息以及最新科学技术进展及为宗旨。OSGeo论坛每月举办一次，采取开放式主题选择，每次活动包含两场讲座，将邀请开源GIS、自由软件和开源社区参与者以及乐于分享的老师和学生主讲，内容包含但不限于开源GIS、科学计算、天文、生物等相关科技进展，以及Linux/Unix操作系统、数据库技术、动态语言等自由软件。</p>
<p>OSGeo技术讲座时间安排如下：<br /><strong>2010-11-23号，周二，下午14:00-17:00</strong><br /><strong>讲座1：《Introduction to OSGeo Team》</strong> （日本大阪市立大学 <strong>Venka教授</strong>）<br /><strong>讲座2：《ZOO &#8211; Open WPS Platform》</strong>（OGC WPS开放平台核心开发者 <strong>Gerald Fenoy</strong>）<br /><strong>讲座3：《Mapserver &amp; OSGeo4W》</strong>（MapServer地图服务器开发者 <strong>Jeff Mckenna</strong>）<br /><strong>讲座4：《goGPS Project Status Report》</strong>（goGPS项目发起人 <strong>Eugenio Realini</strong>）</p>
<p><strong>地点</strong>：<br /><strong>中国科学院地理科学与资源研究所，2楼，2209会议室大会议室</strong><br />朝阳区安外大屯路甲11号（北沙滩桥向东1公里枫林绿洲对面，路北，奥林匹克公园西邻）</p>
<p>详细地图请参阅：<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><strong>演讲人介绍</strong>：</p>
<p><a href="http://www.media.osaka-cu.ac.jp/~raghavan/">Venkatesh Raghavan</a>，理学博士，现任日本大阪市立大学教授，日本地理信息学会委员，Venka教授的主要研究方向为遥感图像处理与地理信息系统。</p>
<p><a href="http://blog.goo.ne.jp/jg2tkh/e/cd23838dd8d21e1f56074a74879c860c">Gerald Fenoy</a>，OGC WPS开放平台<a href="http://www.zoo-project.org/">Zoo-Project</a>的核心开发者，Zoo平台为OGC WPS提供了C与Python的实现。</p>
<p><a href="http://www.gatewaygeomatics.com/">Jeff Mckenna</a>，Gateway Geomatics公司创始人，MapServer地图服务器开发者，专门提供开源GIS商业应用的解决方案。</p>
<p><a href="http://jp.linkedin.com/in/eugeniorealini">Eugenio Realini</a>，Osaka City University博士后，<a href="http://sourceforge.net/projects/gogps/">goGPS项目</a>发起人，开源项目goGPS旨在为低成本GPS设备增加定位精准度。</p>
<p>讲座详情请参见<a href="http://www.osgeo.org.cn/">OSGeo中国</a>：<a href="http://osgeo.org.cn/?q=node/43">http://osgeo.org.cn/?q=node/43</a></p>
<p>注：<a href="http://www.osgeo.org.cn/">OSGeo中国</a>所有讲座均免费且向公众开放，欢迎感兴趣开源GIS的开发者参与。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gaoang.com/archives/167/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

