领导力大挑战
在实施Scrum项目的过程中,Scrum Master的角色是相当关键的,因为他是团队的推动者。本文围绕什么是仆人式领导、仆人式领导的起源、如何将领导力传达给团队、Scrum Master作为仆人式领导者的角色展开叙述,同时重点阐述仆人式领导者应有的基本内外特征。
该内容已经被标记书签!
标记书签错误,请重试!
作者 Werner Schuster 译者 贾晓楠 发布于 2008年12月21日
RubyConf'08特别关注了各种Ruby VM。从纵深的技术实现细节,到实际演示和一般的Ruby性能,都进行了讨论。
Koichi Sasada:“Ruby VM的未来” 。Koichi Sasada认为Ruby的C实现是近期实用的Ruby VM解决方案,尽管其存在一些问题,比如保守的GC。
他接着谈到了一些为1.9实现的优化,但1.9已经发布了,所以要在1.9.2中实现了。这些优化包括尾部调用(tail call)优化、堆栈缓存、高效方法缓存,以及一种更高效的Fiber实现。
在视频第20分钟左右,他还谈到了一些他感兴趣的研究。其中包括Ricsin,这是一种可以在Ruby中嵌入C代码的技术。演示幻灯片中的一小段实例代码可以解释得更清楚些。
def open_fd(path) fd = _C_(%q[ /* C code */ return INT2FIX(open(RSTRING_PTR(path), O_RDONLY)); ]) raise 'open error' if fd == -1 yield fd ensure raise 'close error' if -1 == _C_(%q[ /* C Code */ return INT2FIX(close(FIX2INT(fd))); ]) end
与RubyInline不同的是,它允许在Ruby方法内部嵌入C代码。最新的版本获得了YARV的特别支持。Ricsin的SVN库也已经开放了。
下一步计划是做一个从Ruby到C的编译器(在视频的28分40秒前后),接下来是Atomic-Ruby,其通过剥离一些部件来轻量化Ruby。
在第41分钟,Koichi Sasada还介绍了Ruby MVM项目的现状(InfoQ曾做过关于Ruby MVM的报道)。
Evan Phoenix关于Rubinius的讨论介绍了Rubinius项目及其C++ VM的近况。
他解释了重写C VM为C++ VM的原因,这包括类型安全和C++有助于简化代码,减少许多手工检查。
在18分4秒,他还谈到了primitive当前的实现情况(如何用C来写primitive)。在26分30秒,介绍了方法分发(method dispatch)和加快运行速度的策略。在35分钟的时候,他还提到了MethodContext(“堆栈框架”)分配的 现状。在Runinius的旧版本中,用的是堆分配,而新版本打算在栈上分配(在一个专用的内存区域),从而减少分配开销。不论怎 样,MethodContext能在方法的生命周期之外继续保持(例如闭包)。这些对象会被保持着,但由于专用内存区域大小有限,有时会撑满,这时就会触 发一个GC来清理不再被引用的MethodContext。
在38分40秒,他谈到了Rubinius对Ruby扩展的支持,这对于运行C扩展包非常重要,比如如hpricot、mongrel、mysql和sqlite驱动。他还解释了Rubinius是如何处理扩展问题的(例如分代GC、C代码段错误问题)。
Glenn Vanderburg的“Ruby能有多快”也讨论了这个话题。他虽然不是一个VM实现者,但也谈到了Ruby比较慢的原因。第7分钟他对垃圾收集的讲解大致说明了分代GC的理论,接下来,19分35秒时还有关于方法分发的性能优化的介绍。
Bob Walker和Allan Ottis在“MagLev中Ruby的持久性”中介绍了MagLev的现状。Bob Walker介绍了Gemstone的持久性模型(persistence model)的一些基本优势,它可以通过简单地保持对象图,而不把它们映射到关系模型上,从而规避了ORM库和工具的很多问题。
在14分30秒,Allan Ottis从对象持久性的实现开始,详细说明了MagLev的内部工作方式。在18分50秒,他谈到Smalltalk和Ruby的相似点和区别,以及它们在Smalltalk上实现Ruby时遇到的问题。在22分29秒,他还讲解了编译过程,以及现在的解析方案(用一个Ruby服务来解释Ruby代码,使用ParseTree包来返回一个格式化为解析树s-exprs的AST)。
在第25分钟,Allan Ottis讲解了执行模式,包括解释和本地代码产生。在30分30秒,他还演示了Context分配(“堆栈框架”)的实现,以及对象内存(堆)的细节和垃圾收集器。
提问从44分20秒开始,问题包括关于分布式缓存、未来的解析策略(使用ruby_parser),以及事务是如何工作在分布式对象存储上的。
关于Ruby VM讨论的更多演示见:
视频最后以Brian Ford谈RubySpec圆满结束,他介绍了RubySpec项目,现在有成千上万个测试,定义了Ruby行为——这对于各种Ruby实现版本都是个重要的工具。
查看英文原文:RubyConf'08 Videos: Ruby VMs: Internals of YARV, Rubinius, MagLev
在实施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概念的推广,分布式架构在企业应用中开始呈现出不同的风貌,然而殊途同归,这些分布式架构的目标仍然是希望回到建造巴别塔的时代,系统之间的交流不再为不同语言与平台的隔阂而产生障碍。
没有回复
关注此讨论 回复