2009年5月31日星期日

RCP-based product for Scrum Team

Eclipse-based Planning Product xProcess Goes Open Source

xProcess allows users to define project management processes (for
example task patterns, artifacts, gateways and workflows) and then plan and run
live projects while monitoring targets, deliveries and process compliance.
Agile methods for software development such as Scrum, FDD and
variants of Unified Process are particularly well supported by the
technology, which provides priority-driven ordering of activities and resource
balancing. The free download of the product includes pre-configured processes
for Scrum and other methods.
xProcess can be downloaded and evaluated from www.openxprocess.com or via SourceForge
at http://sourceforge.net/projects/xprocess/.
 blog it

2009年5月23日星期六

Maven的地位和影响力

clipped from www.ddj.com
The Maven central repository continues to grow in value to Java community. We are now up to 55,579 artifacts from over 2000 projects, which means that anyone using Maven has convenient access to most of the libraries and components they need, and there are about 100 million hits to the repository per month. All artifacts in the Maven central repository are metadata-rich: for each artifact there is information on the originating project including the developers, the contributors, where you can find the source for the project, plus information on whether that artifact is related to other open source projects. There really is a vast store of untapped project information that is just starting to be utilized by tools like Nexus, Sonatype's Maven repository manager, which allows you to fully control the use of your own internal Maven repositories within your organization.
 blog it

2009年5月20日星期三

零售不等于真实的消费支出

clipped from chinese.wsj.com
2009年前三个月的全国名义零售额比上年同期增长了15%。但国家统计局的数据显示,同期物价出现了下跌,这意味着实际增长率更高,为15.9%。这个数据看来显示出在中国经历20年来最严重的经济低迷之际,消费还出人意料地出现了高速增长,这是因为受到了房地产和汽车销售回升的推动。
但许多经济学家一直觉得,零售额数据并不是反映中国家庭消费情况的可靠指标。许宪春本人也指出了这一众所周知的不足之处,他说官方公布的零售额数据包括一些不能被视为消费者支出的项目。
其中最重要的几项一是以企业和政府机构为对象的零售额,这二者当然都不是消费者;二是建造住房用的建筑材料,它其实应算作家庭投资的一部分。许宪春还说,零售额数据中也不包括用于教育和医疗等服务项目的支出,以及农村家庭所消费的自产产品。
许宪春在文章中写道,与零售额相比,通过城乡入户调查得出的家庭消费开支数据能更好反映消费者支出情况。
而家庭消费开支增长率要大大低于零售额增幅。许宪春说,国家统计局的家庭调查显示,今年第一季度城市家庭的消费额实际增长了9.6%,农村家庭这一季度的消费额增长了9.3%。根据统计局此前公布的数据,上述增速快于2008年下半年,但却不及2008年上半年,当时物价正快速上涨。
民间机构的经济学家对国家统计局家庭调查数据的准确性也有担心:这一数据的调查面虽然很广,但它似乎未能很好覆盖到中国收入最高和收入最低的家庭。而且这一调查得出的数据通常有很大波动性。不过,家庭消费开支数据看来确实更符合对消费的严格定义,至少更符合国家统计局对消费的定义。
许宪春在文章中说,国家统计局的初步估计显示,国内生产总值(GDP)中消费者支出部分今年第一季度的实际增长率“不足9%”,显然低于零售额的增长率。不幸的是,许宪春没说此前几个季度的消费者支出增长情况,这让人难以了解消费者支出增长率的变化情况。
 blog it

2009年5月18日星期一

DSL vs Common Language

The Inner-Platform Effect roughly states that by making a system too flexible and configurable, the configuration of the system itself becomes so complex it takes a specialist in order to maintain it - thus re-introducing the problem that the system was attempting to solve. Or in other words, the configuration becomes a platform itself, requiring all of the tools and special knowledge of any programming language... effectively creating a system in a system.

——Maven 2 User Guide
这个反模式是第二次让我有切肤之痛。

第一次是在Moto设计和实现Common Platform的时候,当时的业务领域是对讲机的配置软件(CPS) , 当时面对的最大问题也是Common Platform试图去解决的问题就是——不同的CPS平台的融合和软件需求的频繁变化。Common Platfrom统一了软件开发平台,频繁变化的需求通过需求工具捕捉成XML数据,然后通过代码生成工具编译(实际是宏替换)生成最终的目标语言的代码,然后编译生成可执行文件。将不变的东西平台化(这个东西自开始就没有被重视和精心设计,最终扼杀了上层的所有东西),将变化的需求用XML来表达,实际上是在创建一种DSL(Domain Specific Language), 这里的语言是广义的计算机语言,可以是具有函数/逻辑控制/面向对象,也可以是简单的软件配置。DSL可以被解释执行,也可以通过编译成低级语言来执行。DSL和MDA有紧密的关系, 需求的捕捉工具最终将演变成建模工具。代码自动化是一个挺雷人的噱头,Manager会认为它可以极大地提高生产率,但后来的实践证明远不是这么回事。

DSL如果是解释运行的话,那么下面的平台将成为一个虚拟机;如果是编译模式,编译成的目标语言代码和平台的代码混合编译成可执行代码,那么需要有一个聪明的编译器(或者代码生成工具)。无论哪种方式,都需要实现一个灵活健壮的软件层(虚拟机/编译器),DSL的灵活性需要在下层付出代价(良好的设计,足够的稳定),而远离技术的Manager是看不到这个东西的重要性。当现实对灵活性的需求逐渐降临DSL的时候,没有良好设计的下层的维护代价将会拖垮整个项目。DSL的IDE也就是Modling tool也存在不断更新维护的问题。

第二次就是当前的项目组,我们的产品模块就是把一个Information Model映射成另外一种Information Model,源信息和目标信息都可以用XML来表达。也许你象我们的几个Team Member(被Mediation Framework的Architecturer Jussi蛊惑了的)立刻抛出这样问题:为什么不用XSLT来做这种tansformation呢?

是的,XSLT是个straightforward的技术选型,但我想在这里陈述一下我们的领域背景: 已有的系统虽然transform的数据源和目标数据都不是XML,但描述tranform规则的配置文件FlexMapping却是XML,这个XML有自己的Schema和语义,在运行时被一个引擎读入形成自己的数据结构,然后所有的tranformation都基于这个数据结构来进行,我不得不承认,这个engine设计得很不错,而且比较灵活,配置起来也足够straightforward (我们的Customization Team和测试人员很容易学会如何配置,只要他们有3GPP规范的基本知识)。

XSLT是可以实现我们的需求的,但有什么问题呢?首先,从代码(我们坚决认为XSLT编写的xsl文件是一种XML格式的代码,请不要简单认为所有的XML都是配置文件)的的可维护性上讲,XSLT代码中掺杂了目标XML格式/函数/Java Code, 长度是原有的FlexMapping的至少5倍, 难以维护是个问题。其次,从对Customization Team和测试人员的知识要求来看, 他们需要理解3GPP规范+XSLT语言。

两种实现方式的本质区别是抽象层次的高低:被充分检验的已有的FlexMapping是和我们的产品领域紧密相关的DSL,它是被下层的引擎解释执行的; 采用XSLT来实现因为采用的是抽象层次低但通用性更强的通用语言——XSLT,所以它的上层Code必然要复杂一些,要更难维护。

也许Jussi会狡辩——XSLT代码的复杂性可以通过tools来屏蔽,没错,但这样的tool是和领域相关的,也只有我们自己来开发这样的tool, 复杂性没有减少,而是转移了。

这是一个很有意思的balance问题,这种问题让软件开发更像计算机科学而远离工程学。

2009年5月14日星期四

反弹中的危机

今天我们走的是通过暂时的释放流通,让泡沫萎缩的时候速度慢一点,只不过仅此而已

你看银行里20万亿老百姓存款,一半以上在很少的人手里的,老百姓没钱,不从这里开刀,中国经济会有根本的改变可能性不是很大


真正的牛市中国把财富转向家庭,美国把银行国有化,有这两件事新的牛市就要开始了

---- 谢国忠
clipped from chinese.wsj.com
国非同寻常的贷款增长已经开始让人们担心有可能会再度爆发90年代时的那种不良贷款危机。第一季度新增贷款6,700亿美元,在短短的3个月里贷款总额就增长了15%,许多评论家都猜测这些钱到底流向了哪里。但很少有人思考这对中国的总体经济改革进程会有什么影响。一句话:影响很大。
要了解影响的原因和方式,首先应先看一看中国目前的增长模式。过去30年里,决策者一贯鼓励高储蓄和高投资。其结果是生产能力远远超出了中国消费者的消费意愿或能力。因此,中国只能依赖出口,尤其是对美国的出口来吸收过剩的产能──尤其是在过去的十年里,美国消费者也很乐意这样做。但对美国消费能力的疑虑表明,中国目前需要进行的一项最重要的改革就是通过扩大内需降低对美国消费者的依赖。
回过头来看,决策者当时采取的对策破坏了消费的增长。从上世纪90年代末到过去十年的大部分时间里,为了改善银行的资产状况,银行监管机构主要采取了两项措施,一是使用政府资源向银行注入资金,二是将存款利率设定到大大低于贷款利率的水平。为了确保银行的高利润,存贷款之间的息差超过了市场自行决定时应有的水平。
这从两个方面打击了消费。显然,通过将大量纳税人的资源用于支付预期损失,监管部门从中国的收入中拿走了本可以进行消费的大部分资金。影响更大的政策是:压低企业贷款利率,以减缓不良贷款的增速,和为了保证银行的盈利能力而将存款利率压得更低。实际上,中国的储户被迫接受低得可怜的储蓄回报率,以帮助银行凭借高息差获得的利润获得资金。
这就是目前的刺激政策为何如此危险的原因。虽然银行贷款的激增可能暂时缓解全球收缩对中国经济和就业的影响,但它很可能会带来不良贷款再次大幅增加。如果发生这种情况,在短期内中国将被迫再次修复和重建银行资产负债表,要么是向银行直接注资,要么是强迫储户补贴银行,最有可能的情况是这二者的结合。
在这种情况下,任何限制未来中国消费增长的措施都必然会限制中国经济的增长。新增贷款的爆炸式增长就可能会如此。为了换取暂时的反弹而鼓励新一轮大规模资本的不当配置,中国可能会让自己陷入多年的低速经济增长。
blog it