Flex与JSON及XML的互操作
平台需要互操作性。在这篇文章中,作者仔细研究了Flex和JSON及XML的互操作性。文章也包含了使用E4X库来将XML映射到图表和表格组件的内容,还演示了如何使用as3core库来解码JSON消息。
作者 Werner Schuster译者 Jason Lai 发布于 2008年1月16日 下午1时30分
启动多个Ruby实例,而不必诉诸于执行Ruby可执行程序,存在着几种方法让你有据可循。JRuby允许在一个进程内部拥有多个JRuby实例,每个实例运行在各自拥有的本地线程之上。而对于MRI,why the lucky stiff则提供了沙箱版Hack代码来完成同样的工作。
最近,Rubinius也为人们带来启动多个Ruby运行时的有效支持,用法如下:
vm = Rubinius::VM.spawn "blah", "-e", "puts 'hello\n'" vm.join p vm.stdout.gets
为了了解上述代码的含义,我们请教了Rubinius项目的Evan Phoenix。
在被问及多虚拟机(Multi-VM)背后的想法时,Evan如是回答:
我一直都很清楚,我们应当以某种形式实现这样的功能。关于这项功能的计划各有千秋。是的,启动一个新的虚拟机来完成工作要容易得多,而真正的问题是具体要完成的工作是什么,是如何执行的[……]。
接着Evan补充了一些实现细节:
目前,每个虚拟机都运行在各自的本地线程中(在Unix下是pthread)。这使得每个虚拟机独立运行,而无须知道其它虚拟机的存在,并且保证调度在虚拟机内部完全相同。
Rubinius是一个表现非常良好的C程序,因为它没有使用任何全局变量或者其它,从而使得它的多个拷贝和平共存在同一个地址空间中。
请注意上面的最后一句话对于所有其它的多虚拟机方案也是成立的——一个调用了如System.exit()这样的全局静态方法或者使用了导致JVM崩溃的JNI代码的JRuby实例,也会同样关闭其它所有的JRuby实例。
另外一个有趣的话题是,如何使多个虚拟机相互通信:
管道是其中(的方式)之一。是的,对于子虚拟机,stdio会被重定向到管道。我也已经加入另一个非常简单的共享消息传递系统。一个虚拟机可以使用一个顶级的单一机制向另一个发送信息。这个机制是虚拟机之间进行交互的唯一途径。并且它还将消息编组到它的共享存储区,这样在虚拟机之间就不存在指针共享了。
现有的共享消息传递机制还可以被扩展,使用共享内存来允许消息在(操作系统)进程之间轻松传递。
这项功能现已存在于Rubinius的git库中(请参见InfoQ关于使用git访问Rubinius代码库的报道)。如果你只想快速浏览Rubinius的源码,那么可以通过这个Web界面访问Rubnius的git代码库。例如,这个链接就是上面提到的消息传递系统相应提交的代码。
查看英文原文:Rubinius adds Multi-VM support
平台需要互操作性。在这篇文章中,作者仔细研究了Flex和JSON及XML的互操作性。文章也包含了使用E4X库来将XML映射到图表和表格组件的内容,还演示了如何使用as3core库来解码JSON消息。
本文将简要介绍面向组合编程(COP,Composite Oriented Programming)的概念,展示它如何规避OOP存在的一些问题,并重新点燃使用可重用部件组装领域模型(Domain Model)的希望。
Mike Snell和Lars Powers用他们最近由Sams出版的新书《Visual Studio 2008揭秘》,试图帮助大家提高开发人员的生产力。本文包括一个下载样章——第10章调试。
Pierre Vigneras在本文中讨论了作为标准之一的BPEL所存在的问题。Pierre先给我们大致介绍了一个简单的并行流程,接着讨论了从业者在试图以一个结构化模型为基础表达非结构化流程时遇到的一系列问题。
Jeff Dwyer就关于他的新书(《Pro Web 2.0 Application Development with GWT》)、GWT1.5以及创建可搜索的Ajax应用谈了一些他的见解。
我们需要设身处地地为客户及客户的业务本身着想,与客户同舟共济。更多创新的思路、产品和模式也同样将为IT业带来新的出路。IT业并不需要坐以待毙,在春天到来之后,市场将会更加繁荣!
没有回复
回复