领导力大挑战
在实施Scrum项目的过程中,Scrum Master的角色是相当关键的,因为他是团队的推动者。本文围绕什么是仆人式领导、仆人式领导的起源、如何将领导力传达给团队、Scrum Master作为仆人式领导者的角色展开叙述,同时重点阐述仆人式领导者应有的基本内外特征。
该内容已经被标记书签!
标记书签错误,请重试!
作者 Werner Schuster 译者 李永伦 发布于 2011年11月18日
MagLev 1.0发布了,它是一个构建在64位Smalltalk VM GemStone/S之上的Ruby VM。但MagLev并不只是一个Ruby VM,它包含了一个成熟的NoSQL数据存储,从它的网站上可以看到:
MagLev VM充分利用GemStone/S JIT获得本地代码的性能、分布式共享缓存、完全支持ACID事务处理,以及企业级NoSQL数据管理能力,提供健壮和持久的编程平台。它可以透明地管理比内存大得多的数据和代码(兆兆字节级别)。
InfoQ就MagLev 1.0采访了VMWare的Monty Williams(GemStone已被VMWare收购)。
InfoQ:MagLev在目前的NoSQL家族处于什么位置?
- 我并不把MagLev看作一个整合了NoSQL数据库的Ruby VM,而是把它看作一个使用Ruby作为数据操作语言的NoSQL数据库。
- 我认为人们还没意识到的一点是MagLev提供了一个“单一对象空间”。没有东西会发送到一个独立的数据库,也没有东西从一个独立的数据库获取。你的全部代码都是“在数据库里”执行的。你甚至不用跟踪已被修改的对象并把它们保存到磁盘里,MagLev会自动处理这些事情。
- 你可以保存任何Ruby对象,即使是proc、lambda、线程或者continuation。这里有个例子示范了停止、复制、保存线程,然后在另一个不同的VM里重新启动它。http://blog.bithug.org/2011/09/maglev-debug
- MagLev的持久化类似影像持久化(Image Persistence),即对象持久化到磁盘的格式和它们在共享缓存里面的一样。你不必对它们进行封送或者把它们转换成JSON或其它格式。
- MagLev的事务处理是ACID,这意味着多个VM可以与相同的数据仓库和共享状态、对象以及代码交互,并且保持引用完整性。
- 当你启动一个新的MagLev VM时,由另一个VM加载的代码可能还在缓存里,因此加载/使用它们可能很快。
InfoQ:VMWare的云服务是否支持MagLev?
现在还没有。早在八月份我们就开发了一个原型,也希望提供这种支持,但这取决于实际的需求。
InfoQ:前支持哪个版本的Ruby语言,1.8.7?有没有1.9的计划?
目前只支持到1.8.7,因为这是最稳定的平台。1.9的变化太快了,无法在1.0里采用它。不过,是否采用1.9还是取决于实际的需求。
InfoQ:是否支持FFI或者本地扩展?
FFI和本地扩展的支持都是内置的,不必运行MRI需要的所有东西。MagLev有一个内存压缩GC,它要求本地代码“循规蹈矩”。相关限制以及如何处理可以在这里找到:https://github.com/MagLev/maglev/blob/master/lib/ruby/1.8/include/Maglev_c_extensions.md.
InfoQ:MagLev在线程/并发方面如何?
MagLev使用Green Thread。不过,MagLev有一个共享的、支持事务的对象空间,因而内置了一个可伸缩的跨越多个MagLev VM的并行模型。因为“所有”关联的MagLev VM看到的是相同的对象,所以MagLev可以有上千个真正的并行线程运行在相同的对象之上。
InfoQ:MagLev使用了MIT许可协议,GemStone/S VM的许可协议又是什么呢?
需要澄清的是,我们为MagLev写的Ruby和Smalltalk代码使用了MIT许可协议。我们使用的Ruby库和其它开源组件的许可协议不尽相同。详情参见https://github.com/MagLev/maglev/tree/master/Licenses(特别是README这个文件)
InfoQ:MagLev是否分为有所限制的免费版本和商业版本,还是全部免费?
永远都会有一个免费的版本。唯一的限制是2GB的共享缓存,详情参见https://github.com/MagLev/maglev/blob/master/etc/maglev.demo.key-Linux-x86_64.
这不会限制你可以存储的数据量,只限制了共享内存的缓存。
InfoQ:简而言之,如果我使用MagLev,我需要付费吗?不用付费,看情况,还是需要付费?
仅当你需要支持或者更大的缓存时才要付费。
InfoQ: MagLev与你的Smalltalk和Seaside解决方案有什么关系?
它们都使用了相同的JIT、字节代码循环、缓存和GemStone/S提供的持久化。底层的VM可以运行Ruby和Smalltalk代码,因此你可以在MagLev VM上运行Seaside。
通过rvm安装MagLev非常简单:
rvm install maglev rvm use maglev
更多信息可以参见《Get Started with MagLev》,包括文档和相关链接。示例部分包含了示例代码,示范MagLev对Sinatra或者Rails 3.1的支持。
查看英文原文:NoSQL OODB with Smalltalk-based Ruby VM: MagLev 1.0 Released
译者 李永伦 李永伦,从02年开始关注.NET,读过4年工商管理,任过3届微软MVP,最近迷上Windows Phone和Ruby。
在实施Scrum项目的过程中,Scrum Master的角色是相当关键的,因为他是团队的推动者。本文围绕什么是仆人式领导、仆人式领导的起源、如何将领导力传达给团队、Scrum Master作为仆人式领导者的角色展开叙述,同时重点阐述仆人式领导者应有的基本内外特征。
论道WP第三篇专栏,以应用程序栏的使用为中心,包括了软键盘带来的问题、应用程序栏介绍、如何绑定应用程序栏的属性等几个方面的具体话题,为开发者顺利使用应用程序栏开发提供了具体指导。
在多线程并发编程中Synchronized一直是元老级角色,很多人都会称呼它为重量级锁,但是随着Java SE1.6对Synchronized进行了各种优化之后,有些情况下它并不那么重了,本文详细介绍了Java SE1.6中对于锁的性能优化,以及锁的存储结构及升级过程。
本次分享将首先介绍现代富文本编辑器的组成和实现,然后结合UEditor的开发过程,与参会者分享UEditor在设计和实现的过程中,所涉及到的核心功能的细节实现。
本次演讲视频录制于百度技术沙龙。
我们所开发的应用程序大多都需要提供一个图形用户界面(GUI)。关于GUI应用的架构设计,已经有了Form & Control、MVC,、MVP、 Passive View等多种模式。模式可以帮助我们建立优雅的架构,但前提是弄清楚模式的应用场景。弄清楚GUI应用面临的设计上的问题,有助于我们正确的挑选设计方案。
MongoDB是一种非常易用的NoSQL方案,Brian C. Dilley在这篇文章里介绍了MongoDB的优劣势,并介绍了MJORM项目。MJORM用于MongoDB,是一个没有注解的Java ORM库。
随着网络基础设施的逐步成熟,从RPC进化到Web Service,并在业界开始普遍推行SOA,再到后来的RESTful平台以及云计算中的PaaS与SaaS概念的推广,分布式架构在企业应用中开始呈现出不同的风貌,然而殊途同归,这些分布式架构的目标仍然是希望回到建造巴别塔的时代,系统之间的交流不再为不同语言与平台的隔阂而产生障碍。
没有回复
关注此讨论 回复