文章列表
 
2011年12月26日 星期一 14:49

唉,中国网站太不靠谱!

中国网站全面覆灭,用户数据被泄露的不止CSDN和多玩,紧接着51CTO、CNZZ、eNet、UUU9、YY语音、百合网、开心网、人人网、美空网、珍爱网、金山毒霸、天涯、178等众多网站也都陷入用户数据泄漏丑闻,网络实名制,内容审核等等。

国内发文限制太多,只好改玩Buzz和G+了。我的Google阅读共享:https://www.google.com/reader/shared/Nike.Lius?hl=en

最新PHP空间用WordProess搭建的BLOG站:http://nikeliu.goodluckwith.us/wp/  【虎.无名】之新生活

另外Blog列表参考: http://hi.baidu.com/zeorliu/blog/item/32065308b9b185950a7b82a4.html

 

 
2010年12月30日 星期四 12:08

原文:http://www.tbdata.org/archives/1307

Avro和Thrift都是跨语言,基于二进制的高性能的通讯中间件. 它们都提供了数据序列化的功能和RPC服务. 总体功能上类似,但是哲学不一样. Thrift出自Facebook用于后台各个服务间的通讯,Thrift的设计强调统一的编程接口的多语言通讯框架. Avro出自Hadoop之父Doug Cutting, 在Thrift已经相当流行的情况下Avro的推出,其目标不仅是提供一套类似Thrift的通讯中间件更是要建立一个新的,标准性的云计算的数据交换和存储的Protocol。 这个和Thrift的理念不同,Thrift认为没有一个完美的方案可以解决所有问题,因此尽量保持一个Neutral框架,插入不同的实现并互相交互。而Avro偏向实用,排斥多种方案带来的 可能的混乱,主张建立一个统一的标准,并不介意采用特定的优化。Avro的创新之处在于融合了显式,declarative的Schema和高效二进制的数据表达,强调数据的自我描述,克服了以往单纯XML或二进制系统的缺陷。Avro对Schema动态加载功能,是Thrift编程接口所不具备的,符合了Hadoop上的Hive/Pig及NOSQL 等既属于ad hoc,又追求性能的应用需求.

语言绑定:目前阶段Thrift比Avro支持的语言更丰富.

Thrift:  C++, C#, Cocoa, Erlang, Haskell, Java, Ocami, Perl, PHP, Python, Ruby, Smalltalk.

Avro:   C, C++, Java, Python, Ruby, PHP.

数据类型:从常见的数据类型的角度来说, Avro和Thrift非常接近,功能上并没有什么区别。
AvroThrift
基本类型

true or false

N/A8-bit signed integer
N/AI1616-bit signed integer
intI3232-bit signed integer
longI6464-bit signed integer
floatN/A32-bit floating point
doubledouble64-bit floating point
bytesbinaryByte sequence
stringstringCharacter sequence
复杂类型
recordstruct用户自定义类型
enumenum
array<T>list<T>
N/Aset<T>
map<string,T>map<T1,T2>Avro map的key

必须是string

unionunion
fixedN/A固定大小的byte array

e.g. md5(16);
RPC服务
protocolserviceRPC服务类型
errorexceptionRPC异常类型
namespacenamespace域名
开发流程:从开发者角度来说,Avro和Thrift也相当类似

1)       同一个服务分别用Avro和Thrift来描述

Avro.idl:

protocol SimpleService {

record Message {

string topic;

bytes content;

long    createdTime;

string id;

string ipAddress;

map<string> props;

}

int publish(string context,array<Message> messages);

}

Thrift.idl:

struct Message {

1: string topic

2: binary content

3: i64    createdTime

4: string id

5: string ipAddress

6: map<string,string> props

}

service SimpleService {

i32 publish(1:string context,2:list<Message> messages);

}

2)       Avro和Thrift都支持IDL代码生成功能

java idl avro.idl idl.avro

java org.apache.avro.specific.SpecificCompiler idl.avro avro-gen

目标目录生成Message.java和SimpleService.java

thrift -gen java thrift.idl

同样的,目标目录生成Message.java和SimpleService.java

3)       客户端代码

Avro client :

URL url = new URL ( “http”, HOST, PORT, “/”);

Transceiver trans = new HttpTransceiver(url);

SimpleService proxy=

= (SimpleService)SpecificRequestor.getClient(SimpleService.class, transceiver);

Thrift client :

TTransport transport = new TFramedTransport(new TSocket(HOST,PORT));

TProtocol protocol = new TCompactProtocol(transport);

transport.open();

SimpleService.Client client = new SimpleService.Client(protocol);

4)       服务器端 Avro和Thrift都生成接口需要实现:

Avro server:

public static class ServiceImpl implements SimpleService {

..

}

Responder responder = new SpecificResponder(SimpleService.class, new ServiceImpl());

Server server = new HttpServer(responder, PORT);

Thrift server:

public static class ServerImpl implements SimpleService.Iface {

..

}

TServerTransport serverTransport=new TServerSocket(PORT);

TServer server=new TSimpleServer(processor,serverTransport,new TFramedTransport.Factory(), new TCompactProtocol.Factory());

server.serve();

Schema处理

Avro和Thrift处理Schema方法截然不同

Thrift是一个面向编程的系统, 完全依赖于IDL->Binding Language的代码生成。 Schema也“隐藏”在生成的代码中了,完全静态。为了让系统识别处理一个新的数据源,必须走编辑IDL,代码生成,编译载入的流程。

与此对照,虽然Avro也支持基于IDL的Schema描述,但Avro内部Schema还是显式的,存在于JSON格式的文件当中,Avro可以把IDL格式的Schema转化成JSON格式的

Avro支持2种方式。Avro-specific方式和Thrift的方式相似,依赖代码生成产生特定的类,并内嵌JSON Schema. Avro-generic方式支持Schema的动态加载,用通用的结构(map)代表数据对象,不需要编译加载直接就可以处理新的数据源。

Serialization:对于序列化Avro制定了一个协议,而Thrift的设计目标是一个框架,它没有强制规定序列化的格式

Avro规定一个标准的序列化的格式,即无论是文件存储还是网络传输,数据的Schema(in JASON)都出现在数据的前面。数据本身并不包含任何Metadata(Tag). 在文件储存的时候,schema出现在文件头中。在网络传输的时候Schema出现在初始的握手阶段.这样的好处一是使数据self describe,提高了数据的透明度和可操作性,二是减少了数据本身的信息量提高存储效率,可谓一举二得了

Avro的这种协议提供了很多优化的机会:

对数据作Projection,通过扫描schema只对感兴趣的部分作反序列化。支持schema的versioning和mapping ,不同的版本的Reader和Writer可以通过查询schema相互交换数据(schema的aliases支持mapping),这比thrift采用的给每个域编号的方法优越多了

Avro的Schema允许定义数据的排序Order并在序列化的时候遵循这个顺序。这样话不需要反序列化就可以直接对数据进行排序,在Hadoop里很管用.

另外一个Avro的特性是采用block链表结构,突破了用单一整型表示大小的限制。比如Array或Map由一系列Block组成,每个Block包含计数器和对应的元素,计数器为0标识结束

Thrift提供了多种序列化的实现:

TCompactProtocol: 最高效的二进制序列化协议,但并不是所有的绑定语言都支持。

TBinaryProtocol: 缺省简单二进制序列化协议.

与Avro不同,Thrift的数据存储的时候是每个Field前面都是带Tag的,这个Tag用于标识这个域的类型和顺序ID(IDL中定义,用于Versioning)。在同一批数据里面,这些Tag的信息是完全相同的,当数据条数大的时候这显然就浪费了

RPC服务

Avro提供了

HttpServer : 缺省,基于Jetty内核的服务.

NettyServer: 新的基于Netty的服务.

Thrift提供了:

TThreadPolServer: 多线程服务

TNonBlockingServer: 单线程 non blocking的服务

THsHaServer: 多线程 non blocking的服务

Benchmarking

测试环境:2台4核 Intel  Xeon 2.66GHz, 8G memory, Linux, 分别做客户端,服务器。

Object definition:

record Message {

string topic;

bytes payload;

long createdTime;

string id;

string ipAddress;

map<string,string > props;

}

Actual instance:

msg.createdTime : System.nanoTime();

msg.ipAddress : “127.0.0.1″;

msg.topic : “pv”;

msg.payload : byte[100]

msg.id : UUID.randomUUID().toString();

msg.props : new HashMap<String,String>();

msg.props.put(“author”, “tjerry”);

msg.props.put(“date”, new Date().toString());

msg.props.put(“status”, “new”);

Serialization size

Avro的序列化产生的结果最小

Serialization speed

Thrift-binary因为序列化方式简单反而看上去速度最快.

Deserialization speed

这里 Thrift的速度很快, 因与它内部实现采用zero-copy的改进有关.不过在RPC综合测试里这一优势

似乎并未体现出来.

序列化测试数据采集利用了http://code.google.com/p/thrift-protobuf-compare/所提供的框架,

原始输出:

Starting

,   Object create,       Serialize,  /w Same Object,     Deserialize, and Check Media,   and Check All,      Total Time, Serialized Size

avro-generic        ,      8751.30500,     10938.00000,      1696.50000,     16825.00000,     16825.00000,     16825.00000,     27763.00000,        221

avro-specific       ,      8566.88000,     10534.50000,      1242.50000,     18157.00000,     18157.00000,     18157.00000,     28691.50000,        221

thrift-compact      ,      6784.61500,     11665.00000,      4214.00000,      1799.00000,      1799.00000,      1799.00000,     13464.00000,        227

thrift-binary       ,      6721.19500,     12386.50000,      4478.00000,      1692.00000,      1692.00000,      1692.00000,     14078.50000,        273

RPC测试用例:

客户端向服务器发送一组固定长度的message,为了能够同时测试序列和反序列,服务器收到后将原message返回给客户端.

array<Message> publish(string context, array<Message> messages);

测试使用了Avro Netty Server和 Thrift HaHa Server因为他们都是基于异步IO的并且适用于高并发的环境。

结果

从这个测试来看,再未到达网络瓶颈前,Avro Netty比Thrift HsHa服务提供了更高的吞吐率和更快的响应,另外 avro占用的内存高些

通过进一步实验,发现不存在绝对的Avro和Thrift服务哪一个更快,决定于给出的test case,或者说与程序的用法有关,比如当前测试用例是Batch模式,大量发送fine grained的对象(接近后台tt,hadoop的用法),这个情况下Avro有优势. 但是对于每次只传一个对象的chatty客户端,情况就出现逆转变成Thrift更高效了.还有当数据结构里blob比例变大的情况下,Avro和Thrift的差别也在减小.

Conclusion

Thrift适用于程序对程序静态的数据交换,要求schema预知并相对固定。Avro在Thrift基础上增加了对schema动态的支持且性能上不输于Thrift。Avro显式schema设计使它更适用于搭建数据交换及存储的通用工具和平台,特别是在后台。目前Thrift的优势在于更多的语言支持和相对成熟

 
2010年12月30日 星期四 12:02

请根据下面的表格,从纵向的列选择你熟悉的知识点(最后两行可以随意列举你感兴趣或熟悉的知识点),从横向的行选择一个知识点的方面构成一个问题。也就是说你可以选择一个知识点回答其五个方面,也可以选择十个知识点,每一个回答其一方面。每回答一个问题之前请告诉我你选择的问题(比如“ORM的优缺点”),如果问题回答的相对准确,在表格中我会在相应的位置打五角星(好)或打勾(一般)。

30分钟之后,计算分数,一个勾1分,一个五角星2分,超过60分则面试通过(满分200),回答越多分数也越高。 

回答开始时间:                            回答结束时间:                                总分:  60

 

这是什么(一句话总结一下)

优缺点(如果没有缺点可以只说优点)

代表性的实现或框架(是否开源?)

用来解决什么问题或是为什么会出现这样的概念或技术

基本的实现原理或是要实现这个技术最需要的基本功能

ORM

  

IOC

  

MVC

  

SOA

  

AOP

  

AJAX

  

LINQ

  

泛型

  

值类型/引用类型

  

设计模式

  

线程同步

  

缓存

  

(数据库)事务

  

(数据库)索引

  

异步队列

  

线程池/连接池

     

NOSQL

     

单元测试

     

(自定义)

     

(自定义)

     

可以把上述资料打印成一张纸,放在桌面上让面试者自问自答。甚至可以提供录音笔,不需要面试官的参与,之后进行评审,适用于大规模筛选。 

可以针对需要的职位对以下一些参数进行调整:

纵向的知识点横线的问题及格线要求回答的问题总数,比如30分钟回答出20个题目认为及格可以根据问题回答的完美程度有一个更多的区分,1-5分时间可以放宽到1小时,也可以进一步缩小(当然及格线需要调整)

表格的横向应该有一个递进的关系,考察面试者对技术的掌握在哪一个层次:

知道有这个东西了解并且评测过在项目中使用过自己尝试开发过

比如上面一套示范问题:

横线有递进纵向分别考察了模式/方法学/数据库/架构/新技术/框架等方面的基础适合高级软件工程师或架构师的面试

这种面试方式有以下优点(这只是技术面试,在这之前或之后应该有针对性格的面试):

不怕面试题泄漏这些知识点是可以根据职位或是公司要求的技术调整的,面试者很难猜到。所有知识点在网上可以搜索到定义,但是这种回答是和自己的体验总结出来的东西完全不一样,相信没有一个人的答案是一致的。面试的方式很灵活可以随意调整面试时间。并且支持面试官不在场方式的自主面试。并且面试者可以很轻松地自己安排时间组织回答,不需要有被问的压力。面试者和面试官也不容易因发生分歧而导致个人感情。不拘泥于细节,但却很考技术你可以有技术的广度,也可以有技术的深度,没有广度也没有深度的人不太可能通过这样的面试。任何东西都是基于自己的理解,基于对本质的理解。考的不只是技术要在很短的时间组织自己的思维有条理得回答出这些问题,需要有清晰的思维以及不错的语言组织和表达能力,并且还需要脑子快,能及时切换到下一个问题。并且,我们可以看到如果能回答出这些问题,这个人一定是很好学,知其所以然的,所以可以看出是否热爱技术。可以量化谈话类的面试量化是一个问题,这种方式可以量化成分数,择优录取。公平。所有人的问题都是一样的。可以由多个考官根据面试者的录音集体评分。正因为可以量化所以在大规模面试中相对公平,不会出现到后来先面试的人都忘记了这样的事情。

作者:lovecindywang本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

来源:http://www.cnblogs.com/lovecindywang/archive/2010/12/28/1919132.html

 
2010年12月22日 星期三 14:17

文王问子牙如何治世,子曰:“王者之国,使民富;霸者之国,使士富;仅存之国,使大夫富;无道之国,使国家富。”文王于是开仓济穷,减税富民,西周日益强盛。

选自《周 吕尚》
周文王问吕太公如何才能得天下 ? 吕太公回答说:「王者之国,使人民富裕。霸者之国,使士人富裕。仅存之国,使大夫富裕。无道之国,国库富裕,这叫做上溢而下漏。」文王说:「你说得太好了。」马上打开仓库,拿出钱粮赈济穷人。周国的事业日益兴盛,势力更加扩张,天下的土地已是三分有其二了。
《荀子》中有类似的话
马骇舆则君子不安舆,庶人骇政则君子不安位。马骇舆则莫若静之;庶人骇政则莫若惠之。选贤良,举笃敬,兴孝弟,收孤寡,补贫穷,如是,则庶人安政矣。庶人安政,然后君子安位。《传》曰:“君者,舟也;庶人者,水也。水则载舟,水则覆舟。”此之谓也。故君人者欲安则莫若平政爱民矣,欲荣则莫若隆礼敬士矣,欲立功名则莫若尚贤使能矣,是君人者之大节也。三节者当,则其馀莫不当矣;三节者不当,则其馀虽曲当,犹将无益也。孔子曰:“大节是也,小节是也,上君也。大节是也,小节一出焉,一入焉,中君也。大节非也,小节虽是也,吾无观其馀矣。”成侯、嗣公,聚敛计数之君也,未及取民也;子产,取民者也,未及为政也;管仲,为政者也,未及修礼也。故修礼者王,为政者强,取民者安,聚敛者亡。故王者富民,霸者富士,仅存之国富大夫,亡国富筐箧,实府库。筐箧已富,府库已实,而百姓贫,夫是之谓上溢而下漏,入不可以守,出不可以战,则倾覆灭亡可立而待也。故我聚之以亡,敌得之以强。聚敛者,召寇、肥敌、亡国、危身之道也,故明君不蹈也

 
2010年12月22日 星期三 13:56


土耳其

MEXICO 墨西哥


南韩


乌克兰


俄国


意大利


台湾


印度


日本


中国

来源:网络转载 原始出处不详

【14】那些沉默的代表
申纪兰,81岁,她是全国唯一的一位从第一届连任到第十一届的全国人大代表。当人大代表55年,没投过一张反对票。有云:在国会中最可耻的不是打架的议员,而是那些沉默的代表。

 
2010年10月14日 星期四 10:36

http://www.caogen.com/blog/Infor_detail.aspx?ID=7&articleId=23032 刘军洛:2011年的五大预言

【主持人】欢迎大家今天光临知钱俱乐部,参加2011五个预言的主题演讲,我们今天请到的这位嘉宾,刘军洛老师!
我们都知道他被称为中国当代最着名的民间经济学家,却鲜有人知他还是上海流浪猫的庇护者;我们都知道他是新中国第一批投身股票投资的世外高人,却鲜有人知的是他有着显赫的出身;我们都知道他多年来一直潜心的研究全球化背景下的中国经济,却鲜有人知在这背后他背负着深刻的社会责任感。在2001年、2007年、2009年他提出过关于产业、资源、货币、经济危机以及中国楼市等多个预言,而这些预言逐渐变成现实,深层次影响我们生活的时候,我们期待着这位神秘的预言家为我们在扑朔迷离的金融市场中,寻找攫取财富的投资机会。下面就让我们以热烈的掌声有请刘军洛老师做精彩授课!
刘军洛老师会为我们带来2011的5个预言,让我们洗耳恭听!
第一部分、2011年全球宏观经济的走势
【刘军洛】谢谢今天到场的各位朋友,我认为我们参与金融市场,理论首先要过关,我们还要看到很多信号,市场总是散发出很多信号。
我不赞成阴谋论,我只赞成市场的大趋势是不可抗拒的,必定存在自身的规律。只是少部分的人的研究比我们超前,他控制了超前的力量,把握了这个趋势。
(演示)我们现在看看美元指数,这个美元指数是2000年的形态。我当时提出过一个简单的事情,当时美国财政盈余,在这种情况下,美国价格是被高估的,已经威胁到了它的制造业。在随后10年当中美国的大规模制造业移到海外去了,甚至在2008年它的汽车工业可以彻底破产。
这段时间里面,我们可以看到三重顶底的过程,说明有一个人预见了美国财政赤字的上升,在这里布局了大量的空头。可以说这个时候很多人坚定的看多美元,当时释放的信号是10年后有10万亿财政盈余,而且我们可以返过来对应看黄金市场。
(演示)当时的黄金市场是250美元,那个时候英国央行把这个底给砸出来了。也就是说整个市场释放的信号告诉我,黄金市场的底部的一个过程,当时美元指数高位的时候,实际上美国市场已经有人布局了。
(演示)在2008年6月份见底的时候是一个低点,这个时候的黄金是1200点,现在美元指数又是一个底部抬高(2009年11月份)。现在底部也在升高,我们拉一条直线在这里,这个底部在76左右。那么它的底部并未抬高,这里面好象是2个多月的时间,时间在缩短,这是一个图形的结构,这个结构在做的时候肯定有一个大资金在里面布局。现在的交易量比2007年高出20%,可以说2007年是全球资金最松散的通货膨胀的现象,包括对美元最看空的时代。
我们看到一个过程,这是我要告诉大家的一点,分析任何东西的时候,这是最次要的。首先我们要从结构中得到答案,从这里面验证答案,必须经过双重论证逻辑推理。不可以单纯通过图形,而不分析我的推断,这样做是错误的。
现在的美国的非金融机构,它的负债包括现金都创50年新高,大概有2、3万亿美金在手里。比如说我们当中有一位朋友做的不错,现在有1亿的现金,向银行借了1亿,我相信他肯定要做大的事情,绝对不是拯救我们。像美国乔布斯谈,一般是把价格线往下砸,再来收购, 这是一个游戏规则。
现在美国的银行业手里面有1万亿的超级储备金,伯南克现在所谈的量化货币政策,美国金融世界包括美国的非金融银行金融银行体系有3、4万亿现金拿在手里,再往市场做1万亿货币,对于我们来讲没有什么意义。流动性还是过剩,不是美国缺少钱。美国经济结构是这样的模式,在2001年出现了一个大衰退过程中,它的复苏是18个月之后,就业市场才开始回升,现在是不错的,经济见底之后6个月回升。
我们可以看到克林顿时代、美国道指这个时代,克林顿时代,股市在涨,它的就业市场隐性失业率非常高。1929年之前是美国的财富时代,隐性失业率比较高,因为它是技术性的劳动力的生产过程。对于这个过程来讲我们要理解失业率高不是坏事情。我们要看他手里拿的现金体系。
还有一点我们要注意到,今年12月31日小布什实行的减税计划到期了,如果美国延续这个政策或者部分延续,我们将见到最大的结构性财政紧缩。美国是富人时代,现在巴菲特讲的非常清楚,他的税收比他的秘书都要低。美国20%的人贡献40—60%的所得税。美国财政60%来自于个人所得税。对于我们来讲,美国在过去10年中,美国富人的税率太低了,现在税务只占经济规模的20%,美国政府的支撑只占25%,而德国和英国占35%。
因此来讲,美国的经济弹性来讲,在全球是最最一流的。我们公正的去看待这次2008年衰退下来的复苏情况,美国经济现在复苏超过了80%,欧洲只有60%,日本只有40%,甚至日本被汇率压的惨不忍睹。9月份我谈过,美元可以说是一个暴涨过程(8、9月份),这种现象没有出现。
第二部分 美元与人民币的未来
(演示)我们看美元的破位情况。我在博客中说,在9月13日美元指数开始破位。我们看人民币外汇市场,这里是9月19日开始一根大阴线出现,这里是9月13日开始破位的。也就是说中国央行在9月13日给市场投资者提供了巨大的炒作空间。
我们再看农产品市场。(演示)我们看大豆,大豆在9月13日左右一个大突破,在这里出现了大的暴跌,这段暴跌过程是海外套现的过程。
(演示)大连的期货豆粕和玉米的持仓开始创出绝对的巨量。现在豆粕的大型合约大概有200万张持仓。我们再看看中国的豆粕和中国的猪肉是挂钩的。2007年见过猪肉带动的价格,我们现在看一下2007年9月份的外盘大豆,我们看一下。
(演示)我这里跨度比较大,2007年8、9月份你如果单看上证指数,是不会看到有什么危险。你看2007年9月份的指数,也是一根下压线。(演示)这是伯南克开始降息,往下打了几个月的时候,豆粕资金开始突破。这是2007年9月份非常明确的信号,你在中国股市停留,你就玩完,说明有大资金布局农产品市场。
现在我们做投资的时候非常幸福,为什么?有很多数据去分析数据,注意思想跨度一定要大,在这样的情况下可以获得巨量的信息。否则只看美元指数解释不了什么,需要通过很多数据去分析市场,你通过单一的数据得不到任何信号。总的规律我们需要了解。
像中国地产业见顶就是中国赤字包括劳动力成本上升,只有这个信号产生了,对于我们来讲才是抛售地产的时候。现在我不看好地产,中国赤字上升。我们可以看到日本经济1989年,一年跌到一半,1992年已经跌了一半,日本的赤字不断上升。日本的投资市场、就业市场等各个市场出现了良好的数据反映,但它的结构在恶化。包括日本的土地价格还在涨,它的政府赤字在恶化,劳动力成本在上升,竞争不过泰国、马来西亚。日本地产到现在已经跌了90%,好多地方跌了70%。
我们单看地产市场可以说没有问题,从结构看问题就是问题。我们做投资的时候一定要做大方向,大方向是大周期,是很大的规模。
(演示)像美元指数拉三重底还是四重底,都是无法判断的。这个周期时间越长,我们可以看到美元2000年的走势,顶部完成之后迅速脱离顶部,打到92这一带,然后再次缓慢阴跌。这里面要制造美元的空头了,不可能再暴涨了。任何一个杀伤力就是最后一段,这一段的跨度用了7、8年的时间。人家布了一年半以上的头部,赚了7、8年的钱,这是想象不到的钱。
我当时说的非常清楚,2000年说不买房子太可怕了。这部分大资金要用5年的时间去完成这个过程,你有5年的时间,你的见证信号是政府赤字上升,劳动成本上升。现在劳动成本上升可以见证农产品、蔬菜、棉花,现在知道都需要人口种植。在这里参与市场的人,你要关注期货市场、股票市场、外汇市场、债券市场,这四个市场所有的信号比较一致,才可以告诉你真实的答案。
你现在看黄金就是多头,这简直太可笑了。为什么呢?美国债券市场在持续走高,说明有人对冲通货紧缩,他们认为市场还会暴跌。现在美国债券市场的资金投入至少是十几亿美元。现在沽空黄金市场,2000、3000亿就可以搞定这个市场。
也就是说我们现在看1年的时间,黄金每一次顶部的时候可以说吸引大量的买盘在进场,但是在这两个点位进去的人获利空间是有限的,可能10%左右,10%庄家都不够出货。现在进去的成本庄家做上去这么多。
如果美国债券市场现在是4%的收益率的话,我可以告诉你黄金还会继续涨,主力机构在黄金上面。现在就是说有钱的人他一手在做多黄金,一手做多美国国债,根本存在一个逻辑。要么在美国国债是暴涨黄金暴跌,要么是黄金暴跌,美国国债暴跌。美国国债有这么多钱,他并没有告诉我们在历史上的最高点。它的增速政策在今年12月31日,今年12月31日的时候我非常自信。
美国现在玩了一个很简单的过程。他一定在31号之前,可能我现在在谈这个31号的过程。我相信很多高层没有和你谈,摩根更不会和你谈。他的结构性市场发生如此大的变化的时候,再去判断美国市场是可笑的。美国的体制并不差,我们以养老金计算,在2013年出现问题。现在欧洲市场是2万多亿美元亏空。
我们再看看信号,近期的日元。(演示)日元现在创出1995年以来的新低,他1995年之后,但是他从1995年之后拉到147用了2年的时间。也就是说,2年以后的时间是泰国危机,然后是印尼危机,之后是俄罗斯危机,之后是日本经济破产,中国现在重复日本的老路。什么时候让建设银行美国银行如何破产?市场有两块儿财富,对于一些人来讲是巨大的现金流。我们要保持冷静,各位的思路可能拿50万或者500万做投资,你用5000万做投资的话思维体系是什么?我们要参与的市场是5000、1万亿美元的游戏。你的背景是什么?如果你是50万、500万是无法沟通的。
如果我是美国的犹太人,我有1万亿美元的话,我就想现在全球的最大财富是什么?一个是中国的农产品市场,让中国的土地越来越少,就必须让中国的货币供应量越来越大。这样的情况下,市场再来出现大衰退。中国的市场要释放货币,对于我来讲是几十年、十几年的财富。还有一个市场是中国的国企,现在搞收购吗?不可能像俄罗斯一样。俄罗斯好的企业一般是大萧条中、大崩盘中被收购的,对于他们来讲如何做这个事情。
中国央行9月份犯了致命的错误,现在中国的劳动成本无法传到制造业服装业,是其他国家的生产模式转化到我们制造业中。西方的转化技术是无法体现到中国的农产品上。这十几年以来,包括经济的增长美元的暴跌造就了巨大的财富空间。现在的市场分为三层分别是高端、、中端、低端。
这个体系里面有牺牲的体系,到时候农产品体现出来的时候,传导的时候我不看好地产,那个时候的地产是可怕的。农产品价格一一体现,要保低端,就会牺牲我们这些人。我们真的牺牲的话也是没有办法的事情。
(演示)现在我们看一下郑州棉花的月线。现在谁还去新疆摘棉花?没有了。在上海一个阿姨摘棉花要3000元。现在你到新疆摘棉花?谁还去?这就是劳动成本的传输。从这里1.4万拉到2万,1年的时间拉到这么高。至于大豆等像是农产品的传输过程。在这些过程中,美国央行、中国央行的困境是什么?这本身是有趣的事儿,我们要预期他们在做什么。他们也是市场的被动者,他们会为2、3年的目标奋斗,如果2、3年没有办法解决会想其他的办法来解决。
现在我们看石油的价格。(演示)在这个市场做的时候要注意一点,信息的收集是非常重要的。我们可以积累经验,我们都是在一个平台,只是我比你们更关注一些信息、一些交易体系,理论知识可以随着时间修正,修正可能要花5年的时间,要建立这种模式可能需要花1年左右的时间。每个月抽个时间将各个品种看一下,建立一个体系是非常容易的事儿,如果用金融语言交流的话必须要有这样的框架。
2009年9月份美联储降息,当时石油价格是83美元。在10月份的时候突破90美元,站到了95美元。
我们再看道指(演示)道指应该是在11月份见顶。我们看到2009年9月份伯南克降息,当时我讲美国是汽车的世界,油价上涨对于他们的影响非常大。
11月份创了新高,之后出现了大跌,之后拉到147美元,之后美国道指一路暴跌。现在石油价格是82美元,也就是说走到95美元左右,走到90美元以上,伯南克的货币政策无法建立这样的模式。而中国豆粕的价格是我们要清楚的一点,中国的央行还有20%的空间。
现在资金全部屯起来,吃掉这一块儿。玉米价格创新高,现在豆粕已经给包饺子了。只要突破3600一带,大家就知道这个市场灾难来了、大萧条来了。市场为什么出现大萧条,犹太人手里现在有3万亿美元的现金,我们知道犹太人并不聪明,只是建立在结构、提前的预盼之中。只是告诉我们,只是传达一个新而简单的信息,12月31日美联储要加息,美国的财政要紧缩。
实际上中国央行只有20%的空间。我们做股票要做什么?再怎么样,你一辈子在短期之内要盯着两个指标,传导时间是3个月,会传导到猪肉。我们可以看到10月份以后站在3400点之后,有石油价格配合,11月份以后当时中国股市是大阴线往下暴跌。现在可以说是日本央行在长假时间搞了量化,现在美国道指又重复这样的概念,庄家只有一个,我们要判断它的思维,不要神话。我们要理解市场结构就非常简单,如果神话了就没有意思了。
现在为什么要做这样的图形?如果12月31日美国小布什到期的话,今年股票个人所得是15%,明年就是20%。我们一定要提防11—12月份美国资本市场的大逃线,美国中央银行为这条大逃线,骗很多资金去建立高位头寸,包括黄金市场建立高位头寸。除非12月31日延续这个,现在美国国会休假了,到12月份才开始探讨这个问题。11月份是一个不确定的月份,在不确定之前要看两个数据就是石油和豆粕
像上证指数,大家非常平和的看一下上证指数,这个头部和这个头部,我们拉一根阴线受制于一根压制线。一直在压制线的底部,我们结构并非好转,企业面对一个很巨大的问题:劳动成本上升,原材料成本上升,包括土地价格上升。明年中国企业怎么办?这是一个压制线,我们要注意这个压制线。市场主力技术趋势不是它做出来的,只是在这个趋势过程之中,反弹过程之中,它建立布局自己的头寸,顺应布局这个头寸,并不是说自己很成功,只是顺应中国的结构美国的结构去布局这个头寸,我们要根据这样的特点去布局头寸。
我认为个人投资要注意三个市场,地产、股票、债券。这些就够了,要注意短频交易。一生做5、6次就够了。
(演示)你现在跟着美元指数做,你过去10年做地产的话有丰厚金,走到2009年年底抛的话是赚钱的,在2007、2008年抛的话是错误的,最后的升浪在最后,这就是和美元指数做的大升浪,是第一桶金的财富积累。
在2002年是首付,如果拼命加仓买入的话,到2009年卖的话,就足够了。而且信号很简单,劳动成本上升,财政赤字上升,美元指数合起来,美元指数是三重底,这个底部是逐渐抬高。成交在放大,市场看空情绪很多。你可以和中国央行和其他的投资机构去谈美元上涨,他们可能说你脑子有问题。我不说美国好,大家可能说美国悲哀,美国真的悲哀吗?
现在大家一定要做的第二轮投资,就是说美元的大升浪里面要把握自己的财富。股市在4000、5000点的时候,我写的非常清楚,首选地产,其次是黄金,大家做投资不要怕辛苦。这是很正常的事情,关于我将我的意见告诉大家,细节要自己找适合的方式。
这波大升浪只要在92之后,我们可以看到大概有5—8年的大升浪,想都不要想了。建议大家看一下美国的军工股,年底是85,只要站在95以上,就是美国军工股。
现在俄罗斯在未来10年搞6400亿的军队预算,60%向北约、法国、德国采购,俄罗斯希望向美国采购。我们看周边的小国,我们可以看到俄罗斯军备增长是46%,日本的军备增长是30%,新加坡的小国增长的更厉害,我们不要估计了,它代表了一个倾向,这个倾向非常正常。
你以日本的眼光看中国,日本的核心人员如何看中国,一定会保持军事力量,这是国家民族利益,这个社会没有和谐不和谐。国家强大了,现在军队多了,如何积累财富,想法就是这样的事情。
第三部分:关于房地产、股票、黄金的三大预言
建立投资的时候我们一定要非常理性的判断这个市场。建立头寸是非常重要的过程,可能要花1、2年的时间。现在有人说沽空黄金。我说的非常清楚12月份之后再看。在这里面,包括军工股的建立,上次的低点在7100点,现在我们在放10%的思路来承受美国的低点,我预计在8000点左右,是美国的极限,之后所有的财富进入美国军工股。
我们再看一下布林线下轨,在9000点是强支撑,可以考虑1/3的减仓,到8000点局部减仓。研究股票全部靠各位自己研究,像有的房产。2009年房产靠近医院学校涨的非常好,
涨的2倍都有,靠近边远地区的别墅涨50%也有的。做投资需要细致,我们要知道如何将主要的精力放在新的机构新的市场。你可以想一下,黄金的市场,庄家再炒上去一倍,庄家也累,往下一砸,庄家获利多少。
美国的纳斯达克指数。(演示)大家可以看一下,现在的资产配置,第一是美国军工。美国纳斯达克指数,是美国的时代象征,是未来4、5年体现的。这是1998年俄罗斯危机,美国纳斯达克暴涨,之后往上猛拉。犹太人在砸仓建货,我们要看到这个结构。1995年之后美国的市场计算机成熟了,带来了巨幅的财富。1984年建网络,很多人不看好,成绩在10年之后体现出来。对于美国的研究而言,我们一定要做到和犹太人一个水平,是不难的,只是你多收集信息,多关注这个市场,并不难,并不怎么深奥。
美国军工出来之后是美国的科技股,未来5—8年研究好这两个品种,这个世界是你第二轮的财富转移。再一轮的财富转移很可能回到中国,是另外的话题了。像俄罗斯如何抄底部。前苏联如何炒底部。很多人拿出1万亿美元在前苏联发家,非常富裕。这个事情告诉我们,不建议大家建立惯性思维。你空房产有意义吗?没有意义的。那么大的利润,巨大的财富转移,不要死空死多,毕竟有熊市周期、牛市周期,这是自然规律。像春夏秋冬,不要认为到了夏天到了没有冬天了,这是非常可怕的事情。
在交易中做死多是危险的,在什么时候都有可能出现逆反的情况。像进去的人越来越多,进去的人什么也不懂,包括资产价格。黄金放巨量,三重顶出现了,很多人在长假之后,然后买入黄金。1/3建仓的人非常赚钱,如果在黄金市场套现是不得了的事情。我的黄金可能会错,但我认为不会错。如果到400你可以赚多少钱,在这里建一个头部。如果再做到1500、3000,想想看中国人出货你还要硬顶,我们说美元必然崩盘赖帐,这种逻辑就不符合。
美国要控制全球10—20年,如果靠黄金控制的话不就愚蠢了吗?军费怎么办?1965年德国和日本经济复苏之后,到1970年用5年的时候把美国黄金掏空了。美国当时有80%,靠黄金来发展是错误的。美国的开国元君讲过一句话,我们要改变自己的认知体系,才可以客观分析。他说的美国必须要建立大量的国债、债权。我们有大量债的时候,债权是为我们服务的。
像日本整个中央银行包括整个体系,像好不容易赚了一些钱,你肯定为这些钱服务,为了美元帝国去服务。中国也是这样的情况,中国市场赚了2万亿,我们也是为美国体系服务。如果2008年不搞刺激救助政策会如何?没有这2万亿会如何,有了这2万亿如何?我们要挽救美国,美国不能破产,如果破产的话我们就破产了。老罗斯福当时搞的时候,有两个美国人,写了两个建议。一个是教会里面的一个人建议是中国义和团不能硬拼的要用文化。现在中国留学生学了美国的知识,美国这些研究院的人是无法去建立逻辑上的宏观性思维,只是游离于学术圈内。我们可以看到学术圈,2008年理论,澳大利亚铁矿产搞的非常好,而中国的钢铁企业快破产了。这不是自己人玩自己人。现在中国制造业开始面对高工资、高地价等等,这是自己人玩自己人的过程。
现在美国在建立三重底,任何人的结果知道,首先给予我们这样的思维来服务。大家仔细研究一下阿根廷,3个月之内贬值2.4倍,是自己玩自己。整个银行体系看起来不对了,权贵资本太有钱了,我们永远是受害者,战胜不了任何人。我们老老实实的保值,投资美国军工股有错么?现在10%的PE。危险吗?整个的老龄化、全球化,欧洲国家的老龄化,欧洲的军队越来越恶化。全球都在向美国采购军工,已经是大的趋势了。印度的军费在增长,不投资教育,这是大国家在做事儿。
中国并不稳定,尤其现在我们看到的企业并不稳定,这些事情在2010年发生,像1929年大萧条之后,各国的矛盾。经济大萧条的时候,各国的矛盾向海外去推,要将国内的矛盾向海外推,这是天性。在天性过程中我们考虑市场,要有自己的头脑。
我给各位是两个非常重要的指标,一个是石油价格,一个是豆粕价格。经济学就是人的行为,猪肉涨了30%。下面会如何?老百姓会如何?企业家会如何。石油涨了,伯南克的量化货币政策是否会受到国会的质疑,这些都是问题。资本市场已经告诉我们了这些问题,这两个指标接近死亡线的20%,还差20%。
下周豆粕可能到3500,实际上直接到死亡线了,是中国央行的死亡线。我们看11月份的美国税务情况,豆粕、石油价格的上升对于有钱人的打击是抛售资产。不确定性在下个月研究,美国国会完全把这个确定性可以搞清楚,用长假的时间去明确,他们并没有明确。在这种情况下,中央央行和美国央行的底线会触及到了,大家要把这些关联起来。我相信11月份、12月份的暴跌之后,大家不要茫然不知了,他们已经是大的布局了,非常清楚布局了。9月份美元一砸,鼓励人们炒农产品、石油等等。
这个伯南克讲的非常清楚了,大衰退、大萧条时代,汇率最晚贬值的国家最惨。我们现在在被动调整,我们需要结构调整。像中国调整涨工资,没有错。我们需要在战场上困死对手。我们既涨工资又涨汇率,就是全面的崩盘,整个防线都无法守住。无法去控制市场的交易投机者,反而是鼓励投机者参与市场。
现在我们可以看到日本,日本被汇率压制。现在美元贬值,德国经济又开始被压制。得到经过在今年2月份非常不错,欧元贬到1.2。我们看到一点,美元贬值到这一带的时候,结构出现了问题。欧洲在3、4个月出现轻微的衰退,日本在3、4个月中度衰退,中国会维持在未来3、4个月的中度衰退。美国做到76、77的时候,三个地区的结构,在未来3、4,或者6月份会出现中度衰退,三者合一会如何。
当然了,现在3万亿美元是最得力的人,我们要跟着他们的想法去做。人家拿这么多钱放手里,给你做一个暴利的底部,做一个大品种的平台了,可以了。你频繁的交易,今年赚钱了,到明年又回去了,为了交易一个品种,你不理解整个大趋势,你永远在这里频繁交易。像你持有地产,过去7年你持有地产的时候为什么要动它,三个信号告诉你就可以了。
我们也是这样的市场,我不赞成各位参与各种风险市场,我建议大家做市场的时候要注意股票、地产、债券。现在美国市场是大的财富时代,这个布局不是美国人成功布局,只是我们送给他的。
1989年的日本大衰退。(演示)我们看一下日经指数。日本的企业现在还有丰田,这些都是竞争力很强的企业。这是1989年的日经指数,整个结构出现问题的时候,你在任何地段可以赚钱是没有意义的事情。1989年转战到美国股市的话,你想看看是什么情况,这段时间的产生是怎么回事。日本70%的金融机构破产,土地价格下跌,70%的金融机构破产。股市在低位比较稳定。现在日本的企业的竞争力比中国强很多,我们没有可以竞争过丰田的企业。
现在我们做交易是幸福的时代,这么多的演变过程都告诉我们一个信号。我可以肯定,中国工商银行肯定死在土地价格上面。用犹太人1万亿美元的观点看要让中国工商银行死掉。这是巨大的现金财富。美国70%搞金融机构,20%的人搞福利,10%的赶往战争。我们忙了一辈子,在中国时代,股市也没有赚钱。我们和10年前相比长线投资者只赚了30、40%,印度都翻番了,你无法解释这个问题。
现在大家都很幸福,地产涨了这么高,如果这个地产和日本宣战呢,用20年的时间回归。我不相信我们用20年的时间去回归。美国不会让日本崩盘,美国在未来会搞一次大的农产品动作,首先我们要注意气侯现象。
现在加拿大低温,小麦和油菜要继续减产20%。前期墨西哥大火灾大家也知道,英国的气侯也创出了30年的新低。这个气侯会如何,这是交易者要关注的一点。
有人预计是千年积寒,我不肯定。整个的资本市场,包括美元指数,农产品市场,现在我们都需要一个大突破过程。首先来讲这段筹码的建立,是谁在建立?这个平台的建立如果只在这里套现,这个人不会这样子吧?
(演示)糖。糖的价格已经接近历史新高了,明年很多印度人要把种玉米、种小麦的土地转化为种糖。
(演示)我们看全球的棉花。我在这方面得到信息,我学了10年以上的经济学,我做了很长时间的交易,我从做交易、经济学当中得到自己的逻辑体系。像克鲁格曼只会天天骂政府,不会谈道指美元,他没有自己的交易体系。你们看到现在棉花已经接近历史新高了,现在中国进口棉花是400万吨,自己产700万吨,明年3、4月份的时候,我们不谈天气气侯,只要明年3、4月份棉花的价格和糖的价格在这一带保持住的话,玉米和豆粕大涨,许多农民抛期货,会种玉米、棉花。他们锁住利润,把眼前种玉米中大豆的土地开始转换。现在随着小品种的带动是反映大资金的流向。1百亿美元就可以改变这个市场的游戏规则,我们国家大豆2/3是进口的,中国钾肥50%需要进口。包括很多外企是亏钱收购的,这样的大布局会影响中国的大布局。只要中国央行开始进行反农产品价格,我怀疑不是加息。像加息也收不住。
前几天我在北京的一个市场,大概24万平方米,有医院、银行,卖7000块钱, 旁边卖2万块钱,那么大的规模,我们所有人加起来不会做这么大的市场。我们做好之后,可以引入公交、或者建医院吗?不能。再有钱也做不到这个事儿,大概在12月31日,我们有的时候要做做跟踪是没有办法的事情。北大核心班子一个月跑其他的地方调研。作为未来税收来源,有很多是死的,像财政体系等等,需要税收来维持体系。就土地价格来讲,不管如何,我比较悲观。
还有两个指标,一个美元指数是90,大豆价格是4300。我们就可以见证明年中国楼市跌70%的壮观现象,只要这两个指标共振出来的话,美元指数见90不难。现在只要农产品、棉花和糖守住明年3、4月份,豆粕价格守住价格之后见4300也不难。这个局靠炒棉花赚钱吗?把美国国债炒上去,过去一段时间美国债券收益达到了8%,这里面可能是波动的市场。
整个大的市场都要演变一个过程,推高亚洲货币。推高亚洲的货币,日元应当首当其冲,现在逼人民币,农产品市场布局。再说美元差的人,也不能反对美元底部在不停的抬高,再差的话,指着美国赤字比2007、2008年高很多,但是美元涨、底部抬高原因是什么?因此来讲无形中的力量已经建立了我们看不到的思维体系。
对于中国而言,我们要知道,一个社会必须要有进化,进化的体系是多元化的,是债券收益率,税收分配、企业劳动生产率、文化这些都是综合因素。不是地产强大了,土地价格高估了我们就胜利了,这样的话和1989年的日本差不多。1989年日本也是这种模式,到现在已经破产了,中国就比它强大了,我们走到今天的这一步和我们逼日本走到一步是一样的。
我们走这一步,广场协议大量的资金炒日本,先倍增计划,先让工资暴涨之后,然后让地产价格上涨,我们恰好返过来。我们现在是地产价格暴涨,然后是工资暴涨。企业没有什么获利空间,比如说企业专家成本,通过拉抬得到了一定的稳定。
企业凭什么获利,财富获利的空间是什么?除非房价再涨上去。这个问题的可能性有多大呢?我现在要告诉大家的是:要见证两个信号,一个是任何时代都告诉你们信号了。2007年11月份石油突破100,再如何股市肯定要出来。当时有人说股市长期会怎样。我不希望争论。要看石油大豆。股民为通货膨胀牺牲是很正常的,本身是游戏。现在资本市场全球化是一个赌场,庄家的水平要比我们高。
我们大家不能沟通很多语言,一定要把自己设置成用人家的头脑去沟通,用犹太人的头脑去沟通世界。否则你一直用500、1000万来沟通世界可能是赚钱的,只是在这里面很茫然的随波逐流。今天发财明天又赔钱,你都不知道自己如何赚钱的,这是最终的一个过程,像黄金,你现在再进场。你想想看,许多人进场做黄金梦。
看看美元的债券收益率,简直可笑的不得了。你看黄金图形是多头图形,你看美国国债的走势,黄金是大空头图形,犹太人在里面布局了一个黄金空头。我怎么知道犹太人布局了黄金空头。是美国国债告诉我的,中国股市4000、5000点的时候如何知道跌到2000、3000点。你可以看看石油价格。石油、豆粕同时跌破,直逼底线。做下去的原因是把房产做上去。1万亿美元的思路构建这样的财富框架才可以得到这样的答案。不是说它多么的神奇,就是这样的市场,他们在驱赶农民在做这样的事儿。
他们用棉花大豆等等,让本地人减少玉米、大豆种植的游戏。这儿明确的游戏,还要谈什么。再看看美国债券市场,资金大量囤积,不断的创新高。美国有钱人的钱都在里面,中国人从国债市场跑出来。你再看看现在整个的黄金市场,农产品市场,中国地产市场,美元汇率的三重底,我们要建立一个框架。这个模型只有一个答案,资本市场只有一个答案,它的演变必然会演变这样的答案,我非常自信,这么多市场告诉我唯一答案,还要争论什么呢?我不想和黄金多头去争论什么,他告诉我这个图形如何,只是单一的图形,无法解释市场许多其他的图形。
有的时候我们做交易,杠杆达到100多倍,杠杆100倍的时候,像美国一家公司在1998年倒闭的时候,资本金47亿美元,仓位是1万亿美元,他们的拆借成本非常高。都是用2、3年的时间像索罗斯一样投机英镑。他做多对冲基金的本质,哪家对冲基金有做多赚钱的?非常少。谁会做长线多头,用8—10年拆借这么多钱,拆借出来1万亿的杠杆,拆借10倍,对冲基金都有多空的。
我们现在的黄金市场像垫背去了,刚才我讲了,黄金暴跌,就是美元上涨。现在十几万资产在上面,美国国债这么高的价格都挺进去了。美国人自己把黄金炒上去,把美国国债砸死,我们之所以做交易,一定要清楚理论、结构,美国体系是什么体系,结构是什么体系。
像10年前我研究看空美国的,10年后看多美国。人家通过10年大周期调整的非常完善,我们不能批评他们,没有调整完善的时候要客观的分析,做任何交易的时候大家要客观的分析。切忌人云亦云。
我对中国房产非常悲观的原因是什么呢?现在没有空头,所有的参与者都持有房子,认为不会跌,跌40%已经是神经病了,跌70%是说梦话呢。这些人交易的心态是非常脆弱的。像黄金他们交易的心态非常脆弱。黄金要沽空有指标跌15%以上,这才是一个重要的体现。
(演示)这是美元指数的头部,它连续3根,一直制造给你多头情节,在这里跌下来上去创新高,安慰一下你的情绪,这里又跌下来又给你爬上去,安慰你的情绪,总是在鼓励多头的勇气,培养多头勇气。在中国股市4000多点有暴跌然后暴拉。他们非常聪明,他在鼓励多头勇气,跌到这一段的时候认为没有问题,认为会涨上去,这就是一个过程。这个时间结构出现了问题,只是从心理资产配置,头部以宏观经济去分析,他的走势以赌场理论去分析。真的是建立空头也无所谓,你在跌破这根支撑线的时候建立空头也无所谓,我们黄金一定要砸到支撑线的时候。
今年12月份,黄金这个市场是多杀多,跌破支撑线就是10日均线,应该是1100,是抬高时的均线,1150才可以参与。打50,违背市场原理是没有必要的,建立完美的上升通道的时候只能看,这个品种是空头品种,非常漂亮。到明年年底的时候可能到400。必须拉到所有市场参与者相信这是暴涨品种。
从美国国债市场、美元走势、农产品走势告诉我们黄金是空头市场。中国是单一的市场可以得到很多的多头情节,交易过程中不要被市场迷惑。一贯的多头思维、空头思维都是危险的。把结构分清之后才可以参与这个市场,必须保持一个公平的心态,从多重市场的信号去判断这个市场。
我看空黄金的原因是,三个信号告诉我黄金是空头。今年12月31日美元的一个政策,明年3、4月份欧洲市场、日本市场、中国市场三者合并,其次有一个人在豆粕市场美元指数市场也要完成三种合并。
理论和市场的信号相结合的时候我是非常自信的,必须找到自信的感觉找到确定的答案。我不可能单纯的靠理论去分析,否则没有信号也是错误的,这个世界总是被少部分人掌握,尤其像高盛,你看制造危机的时候赚暴利,他们看到的是一样的,他们看到了暴跌。大家做做研究的时候知道美国房市要暴跌,只是他们布了一个局,把这个局布的挺好,2006年、2007年把他们的次债发到中国人手里。
2007年3月份,美国次债公司有两家倒闭的,中途会买摩根史丹利等等,脑子不是有问题吗?2007年3月份之后没有人再看多美国的房市了。如果倒了一家招商银行?大家会看好工商银行,是不会的事情,这是常识。市场总是一部分人要玩一部分人,这是没有办法的事情,我们要冷静看待市场中信号,不要被玩进去。
【刘军洛】做交易是长线过程,就是说要评估。我当时在这一带看空,在4000、5000点看空中国股市。我对于自己的看空非常自信,做交易的时候不可能做的非常完美,但是你要知道一点,任何市场就像任何人在这里建立一个多头情节,大家要评估。1000点涨到这里,获利盘如何出来,接下来政策如何?是释放货币还是不能释放货币,如果不能释放货币,那些获利盘就变成割肉盘了。
(演示)这是月线,2月份是如何涨的,11月份石油突破100,大豆突破3600,到2月份的时候春节刚过,猪肉怎么涨的,再做多没有意思了。在这里形成获利盘变成割肉盘,这才是割肉盘的过程。中国央行砸到6月份以后,可能会考虑出现问题,然后是美国的危机。现在中国的股市比美国市场提前调整。美国市场大概11月份开始慢慢压。
(演示)美国市场在6月份破位下行了,中国市场一直比美国市场提早反映,说明全球资本在中国的配置非常严重。
大家知道豆粕被中粮包掉了,周五增仓下砸,他认为自己可以控制市场。周五晚上尾盘全线封张婷。现在美国的舆论控制着中国,G20马上召开了。在整个全球贸易战争中,无形中我们要注意到豆粕价格的上升,下周可能突破到3500点。就是这一带,可以说3600点以上。中国央行的生命线,他们对于猪肉价格的上涨,影响了他们的生活。
我一个朋友到南疆去考察,南疆的羊肉价格涨的非常厉害,就发生了一些事情。在这之前涨了10倍了。稍微正常一点就可以考虑,这是我们的问题。这一带突破到这里是3800点,如果到4200点的时候会如何?很可能是我们中产阶级的利益向底部输送,这是一个过程。我们可以见到明年的一个大崩盘,他们把我们的体系研究的还要透彻。
说句不好听的话,像你现在搞了一套产权房,和你现在有几万平方米在手里,是两种概念。你希望钱合法化你该如何思考。有一些人太有钱了,有一些人是太普通了,甚至有人去要饭。中国说不定也会出现这样的事情。因此来讲,整个资本市场建立在很奇怪的市场当中看到了多重信号,玉米、大豆、棉花等价格,当走到4200点的时候,如果你有房子的时候可能会哭的非常厉害,甚至跳楼。
这里到4200点,看看棉花、糖,你就知道豆粕价格和石油的价格距离有多少?可能有半年左右的时间,明年年初唱多房市,这种人就是脑子有问题。只是看单一市场,单一市场挺好,人民币在升值,房企在大量的拆借资金,国家需要从这里来钱。看看美国农民、印度农民明年准备做什么,如果看房子的话是悲哀的。
我们想一下搞4万亿投资刺激,如何搞?全球都在紧财政,欧洲已经开始紧财政了,明年1月1日美国也处于紧财政时代。我们要被玩儿死,把2007年8月份的债券市场走势、汇率市场走势等市场走势研究一下,这些人是一个人在操作市场。模式没有改变,像打仗没有什么深奥不深奥的,有5种方式的进攻,有10种方式的防守,就15种。总结一下就可以成为一名将军。你是排长的原因是用1种方式的进攻,2种方式防守。
很多人不理解我讲的内容,你们跳跃的市场太小了。你们通过股票的方式来谈论,我就不能理解了。我们看豆粕拉到6月份之后,美国市场也崩盘了,我们市场的资金配置过程,我们的全球游资有8—10万亿在农产品市场中流动。他们的这种配置,他们的思想和想法,我们要考虑这些东西才可能参与这些市场。
现在我们再来看一下中国楼市和股市
11月份大灾难,9月份10月份豆粕开始突破,在这里建了一个头部,11月份大崩盘。现在美国的税率不明确的话,包括豆粕和石油价格继续11、12月份挺进的话,市场就是一个大崩盘,反映到中国楼市。现在是二重顶,今年3月份创了新高,现在接近新高,有的地方有小新高,这是两重顶的过程,你用1万亿美元看中国楼市,涨下去的话是暴利的。炒下去的话可以赚多少钱。等于说美国市场全球市场完蛋了,按照他们的逻辑美国是大萧条。
因此来讲11、12月份非常明确的一点,美国政府散发了很可怕的信息,税率不明确。大家可以注意到这是2800点的位置,一直受其压制,我们的股市走势已经提前反映出了一个悲哀,美国股市还在顶,和2008年的大萧条是一样的。美国股市是后反应,中国股市是先反应。整个全球的布局非常清晰,大家可以仔细反复花一个月的时间把图形构建一下。像你脑子转换一下,你不能看一本凯恩斯就说自己是经济学家,这是不可能的事儿。
在不知道的情况下如何建立交易体系的框架。在资本市场中,我对未来的全球化非常看好,也就是说,真的是财富时代。我们假设一下,现在美国的金融资产是46万亿美元,在20、30年之内,美国金融资产翻一番的话,我们可以见证到举世没有在30年增长这么多财富时代。因此来讲那么多人说黄金增长,那是笑话,那么多财富需要纸币来维护。
现在美国的移民政策非常紧,美国人也非常清楚。等中国楼市下来之后,我们这些中产阶级,作为美国的核心人员来讲,两大资本资源和人力资源。
你从美国的核心来讲中国的楼市,我相信这是宏观面,答案非常简单,做上去中国发财了,中国去收购美国公司了,中国人到美国消费了,美国白天给我们开出租是不可能的事儿。做下来,中国钱跑到美国去,我们中产阶层给美国打工去,这是两个逻辑。你相信哪个逻辑?我们过10年房子涨一倍,我们跑到美国去了,克林顿小孩给我们开车是不可能的事儿。冷静的看待现状,这是我们应该去做的。不要建立客观的情绪化动作,频繁交易的人总是有情绪化,情绪化是我们最大的障碍。你总是建立情绪化,像索罗斯一辈只做4、5次交易,可能有一次破产,有一次赔钱,总的来讲赚钱的话是可以的。对于我们而言,保持一个平衡冷静的心态把这些功课做好,这是很重要的事儿,你只有做好功课才可能超越别人。
很多数据、图表告诉我们如何看待这些事情,如果到5000点还建立多头思维,说明你不适合做投资者,你就要改变这个毛病。5000点就有获利盘,获利盘的演变如何?形成割肉盘或者如何?每个月要建立多头信号,我对于现在的金融市场非常自信。庄家越来越有钱,它的调控力越来越强大。通过2008年的修正之后它的套利空间越来越强大。
2009年大家是否意识到,2008年我让一个人来买房子从2.5万跌到2万没有人去买,现在涨到7万了,大家都去买,可能会涨到14万,这不是脑子出问题了。我们很平淡的看待这个社会,现在那么多人被洗脑,如果我们也被洗脑也就出问题了。
这个世界永远控制一些人,造成市场中的洗脑过程。市场中全部是对于美国悲哀,黄金暴涨。黄金涨了5倍了,跌到250的时候,10年前黄金都是悲哀论,认为不该买黄金。社会的财富永远是越来越集中。包括英国的鸦片战争,明朝清朝,美国的南北朝时代,哪个时代不是财富少部分集中。克林顿时代科技在进步,比尔盖茨赚了多少。资本家总是想办法获取暴利,这个暴利的过程是我们看不见的过程。如果凭正常心去看的话,我们要看到它的演变。
中国在10年前有2万亿农民要获得巨大的财富转移空间,3000万人进入北京上海深圳,这些土地价格会如何,这么简单的常识。
2005年北京的房子才5000,现在变为4、5万。如何解释这个问题,这是很正常的过程。人民币要史无前例的升值,我们的中国是史无前例的时代,大量的人要涌入城市。我们为什么不把握住这样的现状。工人赚1500元也老老实实做,这是史无前例的事儿。那个时候我说房子会暴涨,我不想和他们去讲。史无前例的地产商获得了巨大的利润,这个财富转移在2003、2005年都是史无前例的来临。现在这个过程也是史无前例的暴涨。现在还谈美元空头,黄金多头,那都是大脑有问题,这些信号都是告诉我们史无前例的事情。
现在中国进入了史无前例,所有的经济增长都没有发生过这样的愚蠢现象。房子涨之后工资暴涨,这是史无前例的过程,都是靠企业去获得财富增长、养老金增长,我们要史无前例的把中国企业玩儿死,国进民退,先把私企玩死,你去拿美国、德国、日本举例,没有这样的时代,现在持有地产,可以说是没有意义的事情。
我们面临史无前例的灾难过程,大家一定要看这个结构,美国在做三重底,美国在把糖和棉花炒上去。他们只是看到了我们史无前例的灾难。用犹太人的思维去看待这个问题很简单,这么严重的史无前例的错误政策楼市暴涨,工资暴涨,汇率在升值,我们可以谈什么呢?货币在升值,你要中国企业做什么呢?明天跳楼?企业投资就萎缩,要还贷。我们留给下一代的是什么?20年的房产合约,70、80后留给后代的是房产合约。我们养老金没有,美国人到2030年才出现问题,美国再过30年之后,克林顿包括奥巴马有一笔41亿财富传到下一代。
我们见证了美国并不是非常高明的国家,当时我在5000点的时候讲的非常清楚,我们必须要建立2000、3000亿美元的护盘基金,我们必须涨工资才可以把房价砸下需,2007年股市4000点的时候,美国战略目标是把中国股市做到2000点,要把中国楼市做上去,结果是史无前例的大崩盘。然后美元三重底,然后国债价格的演变,只有完成了2007年的战略才可能完成这样的战略。
我们知道美国为什么搞进攻,赚这么多钱,套利,套利让我们看不懂。我们明白过来的时候,就明白的差不多了,我们史无前例的错还史无前例的高兴是没有意义的。美国人的时间非常紧张,我当时说的非常清楚,美国人对于中国房产的炒作,必须在2008年年底完成,在2008年开始大概用1.5年的时间完成这个炒作。小布什已经定型了,到期自动税率恢复。
在2009年之前一定要完成中国楼市的疯狂炒作,这样的话才可以完成整个大局的配置。这么多市场的信号,如何说楼市暴涨呢?明年楼市会死人。
为什么我看多美元?资本市场反映出了这个信号,因为我为什么看多美元,因为中国史无前例的政策。全球化是什么,企业获得了巨大利润,然后政府从企业获得巨大利润,免费福利、免费医疗向个人转移。我们现在不是这样的,地产商获利了,国企获利了,我们再涨工资,私营企业、服装企业做什么呢?现在服装企业到明年会死完。劳动力成本上升,棉花价格上升,他们把你玩儿的非常漂亮,把你的企业先置于死地,这就是金融战争,我们看不到,但的确发生了。股市跌到2000点的时候就是发生了,最疯狂的暴涨也发生了,从1万亿美元的角度去看,这是很简单的常识。大家不要认为我天方夜谭的讲故事。
2008年中国股市最最壮观的疯涨。如果美国人把美元玩儿下去,玩破70,世界会回到金本位。很多人会说2万美元没有了,回归金本位以黄金做交易,10年之内玩死美国,原因是我们勤奋了,有劳动力。黄金在我们手里,我们用黄金管理世界,所以这个理论是不存在的。美国的身家性命就是美元暴涨,简单大脑思考一下,美元的壮观行情在未来的5—8年。
不管如何?布这个局。要造成美元的上涨,必然会造成中国资产的楼市的大崩盘,那才是美国的真正的财富时代。如果中国发现楼市崩盘,那是美元首先的财富时代。首先炒军工股,我刚才讲的非常清楚一定要分批建仓,美元指数到90了,豆粕到4200了,想都不要想去进攻军工股,把房子卖掉,进攻军工股。大家做好一点的研究,研究工作一定要做,像地段上涨。很多地段在上海涨的非常漂亮,从2倍涨到6倍以上,有的人买上海郊区。我说你买上海郊区做什么,也是涨,棉花从1万涨到1.6、1.7万,这有什么意思吗?差距并不是很大,就省几千块钱。
因此对于任何人的品种一定要做好客观的研究,美国的军工股是被严重低估,我们没有看到整个市场冷战的阴影,包括老龄化的过程。美国军工股的市值向流通十大排名才1千亿美元。当整个美国明年向军事工业转移的时候,涨到5千亿也不高,才两个苹果。
因此我只告诉大家只能做一个投资,这个投资也是史无前例的投资,不要参与其他的品种,做交易就是辛苦一点。
你去选好地段,我一个朋友5000点的时候花了5个月的时间出来选一个房子,选了一个好地段。首先一点对于自己的投资要负责,就要做功课,这是没有办法的事情,微观功课要做。你要做在未来2、3年要套现5倍的利润,如果这个逻辑成立了,你不要想美国的纳斯达克指数。军工企业扩张,现在从他们的逻辑思维来讲只有这么走,才可以完成美国在2012—2013年美元值达到120、130。它的战局模式是15种战法,几种进攻模式。我讲给大家听了,他们的脑子和我们没有什么区别,他们只是做多了交易,他知道用哪些人驱赶做哪些事情,如何提前布局。
首先疯狂拉地产,在过去10年拉动中国的地产业,中国经济高速发展,像2/3的大豆进口,400万棉花的进口,人家的这种布局花了10年的时间。我相信我自己高兴不起来,我相信全中国也高兴不起来,这是很简单的事儿。
我们楼市涨起来了,现在涨到了7万了,很多人非常高兴,认为社会太美妙了。然后去买房子了。谁在背后控制这么巨大的财富,12月31日进入史无前例紧缩财政的时代。首先把中国的企业,抗争不了怎么办?我发现市场信号是非常正常的。9、10月份暴跌,完成了大豆石油的大布局,包括黄金高位的派发,这些是非常简单的信号。然后每个人把美元都上去,黄金再上去,中国房价做上去,所有做上去,不太现实。金属、石油不会做,它只会做一个品种。
我刚才一直在谈论,一生当中要做5、6次的行情,这就足够了,这都是史无前例的财富。像我们刚才讲的地产,我刚才讲了,现在大家认为地产好了。10年前你可以看到这是非常简单的模式。这么多资源,这么多转变,不能等美国军工股上去,纳斯达克到5000、6000点再去买,然后就套现了就要考虑其他的模式。
现在这个市场正在酝酿史无前例的美国时代,这不是美国人聪明,是中国人送给他的。我再告诉大家一个为什么我看多美元的唯一理由?中国史无前例的大死亡周期来了,涨房子、涨工资,企业怎么办?没有这回事,大家可以做金融研究去,有这样的模式。在中国发生,2008年开始发生,2009年变成现实,演化人民币升值,一步步进入了史无前例的陷井里面。我现在做一些普及的工作,我写了两本书,我无法改变这个世界而且太累了。
昨天我吃饭的时候,其中一个朋友和我的想法一模一样的,我认识很多做交易的朋友和我的想法是一样的,都看多美元。他们都不想说,就说这个市场挺好,我只是告诉大家一个过程,作为普及工作。我们可以独善其身,可以做老子独善其身就需要我们做功课。现在房子到了7万,到了那么高的位置。所有的地产商老百姓,我前两天见了一个阿姨说上海房子还会涨,连阿姨都知道做房产的事情,现在玩了这样的一个局。
我们1万个人的思想和我们的想法是不一样的,现在小产权房的控制者和我们的思想也是不一样的,他们是站在小产权房的角度去考虑。农民兄弟也是两样的,我们不能改变,只能尊重这个市场,服从这个市场。这个市场的任何演变都是合理的,都是上帝在制造,我们只能尊重。不要去愤青如何如何,人家有那么多钱去做,就服从可以了。看问题的时候,每个人的角度不同,有的时候大家一起吃饭,有的人想吃完饭逛街,有的人想唱歌。有的人想当官。他们的行为会影响我们的行为,是我们的财富。美国人只是控制着这个演变过程,把我们所有的人洗脑了,我们现在是史无前例的过程。
到12月份看美元,完成了史无前例的崩盘配置,我们有什么高兴的。不要像2007年股市4000、5000点的时候很高兴,没有意义的。这是他们在做局。从几万亿美元角度去看这场局,非常简单,我们中国的中产阶级不可能懂世界,不可能让美国人的下一代为我们开出租,就这么简单。今天就讲到这里。谢谢!
【主持人】感谢刘老师精彩演讲,同时感谢各位朋友的积极参与!

 
2010年10月14日 星期四 10:16
http://www.mysqlab.net/blog/2010/03/mysql-vs-nosql/ MySQL vs NoSQL 效率与成本之争
2010年3月17日谭俊青发表评论阅读评论
最近Twitter、DIGG等计划换用基于key-value的NoSQL数据库(e.g:Cassandra),之所以有如此动向是因为基于MySQL + sharding + cache的构架随着数据量爆炸式增长,重构的人力成本太高,换用扩展性更好的NoSQL数据库,以达到控制人力成本的目的,从而减少总体成本
随着数据量和访问量的增长,网站构架大致有这么几个发展阶段(以PHP+MySQL+Memcached为例):
1: PHP + MySQL
2: PHP + MySQL (Master + Slaves)
3: PHP + MySQL (Master + Slaves) + Memcached (Middleware) 【虎.无名:这里Middleware指什么?】
4: PHP + MySQL (Sharding + Master + Slaves) + Memcached (Middleware)
5: PHP + MySQL (Sharding + Master + Slaves) + Memcached (Middleware) + NoSQL
从上面的发展历程可以看出,随着复杂度的增加,开发难度和复杂性也随之提升,数据量增加之后每次重构需要的人力成本急剧增加,因此为了控制成本,增长重构的周期,将一些数据量庞大,增长快速的业务迁移至NoSQL上存储。
因此大家不必要言必NoSQL,NoSQL也不会取代MySQL,不同的业务有它最适合的低成本存储方式,最终选择什么数据库是由系统成本决定的
http://www.mysqlab.net/blog/2010/03/memcached-and-mysql/ Memcached and MySQL
2010年3月1日谭俊青发表评论阅读评论
相信很多开发人员接触过memcached,而且我认识的朋友当中有的是经常使用。那么在结合数据库,在对数据库内容做缓存的时候什么情况下使用memcached却不甚了解。有些朋友问到MySQL有自己的Query cache,为什么还要用memcached? –by ivan@mysqlab.net
MySQL为了效率考虑,不太可能将数据粒度分那么细,所以在对表更新的时候将清空所有涉及到这张表的qcache,这样的话,在更新频繁或者表记录数很大的情况,qcache的效率将大打折扣。而使用memcached一般都是针对单条记录,从而在更新的时候对表中其他记录的cache没有影响,相比qcache来说,cache效率极大提高。这也是为什么在MySQL有Query cache的情况下还要使用memcache来缓存数据。
不过结合MySQL和memcached使用需要app层配合。不过当前也有MySQL memcached UDFs结合MySQL触发器trigger,可是实现MySQL数据库的内容跟memcached同步,这样可以避免不同的应用程序需要实现对memcached的管理
MySQL memcached UDFs的下载地址:https://launchpad.net/memcached-udfs
shell> tar zxf memcached_functions_mysql-x.xx.tar.gz
shell> cd memcached_functions_mysql-x.xx
shell> ./configure –with-mysql=/usr/local/mysql/bin/mysql_config
shell> make
shell> make install
shell> cp /usr/local/lib/libmemcached_functions_mysql* /usr/local/mysql/lib/mysql/plugins/
mysql> CREATE FUNCTION memc_get RETURNS STRING SONAME "libmemcached_functions_mysql.so";
mysql> source /path/TO/install_functions.sql
详情请参考:http://dev.mysql.com/doc/refman/5.1/en/ha-memcached-interfaces-mysqludf.html
 
2010年10月08日 星期五 9:45

http://www.iwanna.cn/archives/2010/10/08/5507/   任何一个有经验的程序员都知道,软件开发遵循着一些不成文的法则。然而,如果你不遵循这些法则也并不意味着会受到惩罚;相反,有时你还会获得意外的 好处。下面的就是软件编程中的21条法则:
任何程序一旦部署即显陈旧
修改需求规范来适应程序比反过来做更容易。
一个程序如果很有用,那它注定要被改掉。
一个程序如果没用,那它一定会有很好的文档。
任何程序里都仅仅只有10%的代码会被执行到
软件会一直膨胀到耗尽所有资源为止。
任何一个有点价值的程序里都会有至少一个bug
原型完美的程度跟审视的人数成反比,反比值会随着涉及的资金数增大。
软件直到被变成产品运行至少6个月后,它最严重的问题才会被发现
无法检测到的错误的形式无限多样,而能被检测到的正好相反,被定义了的十分有限。
修复一个错误所需要投入的努力会随着时间成指数级增加。
软件的复杂度会一直增加,直到超出维护这个程序的人的承受能力。【软件复杂度==热力学的熵
任何自己的程序,几个月不看,形同其他人写的。
任何一个小程序里面都有一个巨大的程序蠢蠢欲出。
编码开始的越早,花费的时间越长。【仔细设计?过度设计?持续设计?】
一个粗心的项目计划会让你多花3倍的时间去完成;一个细心的项目计划只会让你多花2倍的时间。
往大型项目里添加人手会使项目更延迟。【沟通的效率
一个程序至少会完成90%,但永远完成不了超过95%。【行百里者半九十
如果你想麻烦被自动处理掉,你得到的是自动产生的麻烦。
开发一个傻瓜都会使用的软件,只有傻瓜愿意使用它
用户不会真正的知道要在软件里做些什么,除非使用过。

 
2010年09月13日 星期一 16:36

【虎.无名】参加2010系统架构师大会,无意中看到了这本书,觉得值得一看。

原文:http://news.csdn.net/a/20100429/218192.html 其他介绍:http://www.china-pub.com/196660http://book.douban.com/subject/4745287/ 封面:http://hi.csdn.net/attachment/201004/5/1495234_12704394070BRP.jpg

软件架构师是IT 行业里独一无二的职业,既要精通软件开发技术,又要掌握业务知识,还要周旋于公司不同部门之间,协调各种予盾。做到这些绝非易事, 博文视点 即将翻译出版的新书《软件架构师应该知道的97 件事》(97 Things Every Software Architect Should Know )探讨的就是这个主题。本书的编辑Richard Monson-Haefel 是畅销书《 Enterprise JavaBeans 》和《 Java 消息服务 》的作者。Richard 邀请五十多位杰出的软件架构师分享工作经验和观点,帮助读者少走弯路。其中不乏大家熟悉的名字: 卓有成效的程序员 》的作者Neal Ford,《 企业集成模式 》的作者Gregor HohpeServlets JSP 专家组和W3C RDF工作组技术专家Bill de hÓra Web 应用程序快速开发 使用TurboGears 》的作者Mark Ramm,《 Release It! 》的作者Michael Nygard,《 软件开发沉思录》的作者之一Rebecca Parsons 博士,活跃于Perl 社区的女架构师Allison Randal Java SOA Cookbook 》的作者 Eben Hewitt 等等。

下面内容摘自该书的标题,并给出了必要的补充说明,由本书译者SeanBV(他的CSDN博客)整理,推荐给大家。

1. 客户需求重于个人简历 Nitin Borwankar 客户需求至上。为了自己的简历更炫而采用新技术是沽名钓誉,往往事与愿违。

2. 简化根本复杂性 ,消除偶发复杂性 Neal Ford 分析问题好比拨云见月、水落石出。

3. 关键问题可能不是出在技术上 Mark Ramm 团队同心,其利断金。

4. 以沟通为中心,坚持简明清晰的表达方式和开明的领导风格 Mark Richards 沟通应当言简意赅、详略得当,别拖泥带水

5. 架构决定性能 Randy Stafford 种瓜得瓜,种豆得豆,架构设计也是一 样道理。

6. 分析客户需求背后的意义 Einar Landre抽丝剥茧,洞见症结。不要被表面需求 迷惑。

7. 起立发言 Udi Dahan 起立发言效果更好。

8. 故障终究会发生 Michael Nygard 应该提前设计预防措施,限制故障。【虎.无名:故障不可避免,它可能在任何时间,任何地点发生。】

9. 我们常常忽略了自己在谈判 Michael Nygard 工程师应该适时转换角色,学习谈判的 技巧。

10. 量化需求 Keith Braithwaite 没有规矩,不成方圆。

11. 一行代码比五百行架构说明更有价值 Allison Randal 可工作的代码才是目标,设计只是达成目标手段

12. 不存在放之四海皆准的解决方案 Randy Stafford 软件世界没有万能钥匙。【虎.无名:需要针对特定环境进行权衡。】

13. 提前关注性能问题 Rebecca Parsons 尽早展开性能测试。

14. 架构设计要平衡兼顾多方需求 Randy Stafford 平衡兼顾项目的技术需求和相关各方的业务需求。

15. 草率提交任务是不负责任的行为 Niclas Nilsson 要设法杜绝开发人员草率提交任务的念头。

16. 不要在一棵树上吊死 Keith Braithwaite 为客户提供多样化的解决方案。

17. 业务目标至上 Dave Muirhead技术决策不能脱离业务目标和现实条件的约束。

18. 先确保解决方案简单可用,再考虑通用性和复用性 Kevlin Henney

19. 架构师应该亲历亲为 John Davies身先士卒才能赢得同事的信任。

20. 持续集成 David Bartlett

21. 避免进度调整失误 Norman Carnovale不惜一切代价拒绝调整项目进度的要求。

22. 取舍的艺术 Mark Richards 架构不可能满足所有需求。

23. 打造数据库堡垒 Dan Chak 一开始就要定义好数据模型。

24. 重视不确定性 Kevlin Henney 推迟决策,建设性地利用不确定性。

25. 不要轻易放过不起眼的问题 Dave Quick别忘了温水煮青蛙的故事。

26. 让大家学会复用 Jeremy Meyer 重复利用已有资源,首先要改变大家的观念。

27. 架构里没有大写的“I Dave Quick变让自己变成自大狂。

28. 使用 一千英尺高 的视图 Erik Doernenburg 选择合适的架构视图。

29. 先尝试后决策 Erik Doernenburg

30. 掌握业务领域知识 Mark Richards

31. 程序设计是一种设计 Einar Landre软件开发也分成设计和生产两个阶段

32. 让开发人员自己做主 Philip Nelson

33. 时间改变一切 Philip Nelson选择值得投入精力的工作,别跟以前的工作过不去。

34. 设立软件架构专业为时尚早 Barry Hawkins

35. 控制项目规模 Dave Quick

36. 架构师不是演员,是管家 Barry Hawkins别忘了你的工作责任。

37. 软件架构的道德责任 Michael Nygard 架构师的决定会影响许多人,务必慎重。

38. 摩天大厦不可伸缩 Michael Nygard 但软件可以。

39. 混合开发的时代已经来临 Edward Garson

40. 性能至上 Craig Russell

41. 留意架构图里的空白区域 Michael Nygard 空白区域“充满”了各种软件和“硬件”。

42. 学习软件专业的行话 Mark Richards 同行之间讲行话方便交流。

43. 具体情境决定一切 Edward Garson )【具体问题具体分析。】

44. 侏儒、精灵、巫师和国王 Evan Cofsky 开发团队不应该同质化

45. 向建筑师学习 Keith Braithwaite 借鉴建筑行业的经验。

46. 避免重复 Niclas Nilsson

47. 欢迎来到现实世界 Gregor Hohpe 现实世界比软件世界复杂。

48. 仔细观察,别试图控制一切 Gregor Hohpe

49. 架构师好比两面神 David Bartlett架构师应该像两面神一样,眼观六路、耳听八方。

50. 架构师应关注边界和接口 Einar Landre 寻找自然的边界,分而治之

51. 助力开发团队 Timothy High 优秀团队是成功的保障,要尽量助力开发团队。

52. 记录决策理由 Timothy High 记录架构决策背后的理由,具有极高的投资回报价值。

53. 挑战假设, 尤其是你自己的 Timothy High 臆断是事情搞砸的主要根源。务必要确保软件基石坚实可靠。

54. 分享知识和经验 Paul W. Homer 帮助周围的人不断改善,他们也会帮助我们发挥出全部的潜力。

55. 模式病 Chad La Vigne 不要让一展设计模式功力的欲望,遮蔽了务实的真知。

56. 不要滥用架构隐喻 David Ing 不要耽溺于系统隐喻之中,反让它拖了后腿。

57. 关注应用程序的支持和维护 Mncedisi Kasper 应用程序的支持和维护,永远都不应该是事后才考虑的事情。

58. 有舍才有得 Bill de hÓra 珍惜需要权衡的时机,远胜毫无约束和限制。

59. 原则、公理和类比胜于个人意见和口味 ( Michael Harmer

60. 可行走骨架 开始开发应用 ( Clint Shank 从“ 可行走骨架” 开始,增量培育系统成长

61. 数据是核心 Paul W. Homer 从“数据是核心”这个角度去认识系统,能大大降低理解复杂度

62. 确保简单问题有简单的解 Chad La Vigne

63. 架构师首先是开发人员 Mike Brown碰到麻烦时,架构师可不能只会干吹烟圈却束手无策。

64. 根据投资回报率(ROI )进行决策( George Malamidis

65. 一切软件系统都是遗留系统Dave Anderson 软件很快便会过时,修改维护无可避免

66. 起码要有两个可选解决方案( Timothy High

67. 理解变化的影响 ( Doug Crawford 清楚认识变化类型及其影响。

68. 你不能不了解硬件( Kamal Wickramanayake 硬件容量规划,是和软件架构同等重要的事情。

69. 现在走捷径,将来需付息( Scot Mcphee 及时还清技术债务。

70. 不要追求“完美”,“足够好”就行( Greg Nyberg 避免过度设计

71. 小心“好主意” ( Greg Nyberg

72. 内容为王 Zubin Wadia

73. 对商业方,架构师要避免愤世嫉俗( Chad La Vigne

74. 拉伸关键维度,发现设计中的不足( Stephen Jones

75. 架构师要以自己的编程能力为依托( Mike Brown

76. 命名要恰如其分( Sam Gardiner 弄清楚要做的究竟是什么。

77. 稳定的问题可以获得高质量的解决方案( Sam Gardiner

78. 天道酬勤( Brian Hart 真正做好那些看似简单的任务,坚守承诺。

79. 对决策负责Yi Zhou

80. 弃聪明,求质朴( Eben Hewitt

81. 精心选择有效技术,绝不轻易抛弃Chad La Vigne

82. 客户的客户才是你的客户!( Eben Hewitt

83. 事物发展总会出人意料 ( Peter Gillard-Moss 设计是在不断变化的世界中持续进行探索试验的过程

84. 选择彼此间能和谐共处的框架 ( Eric Hawthorne 当心“无所不能”型的框架。

85. 着重强调项目的商业价值( Yi Zhou

86. 不仅仅只控制代码,也要控制数据 ( Chad La Vigne

87. 偿还技术债务Burkhardt Hufnagel 在速度和架构间进行权衡,保持平衡

88. 不要急于求解( Eben Hewitt 首先看看是否可以改变问题。

89. 打造称手的系统Keith Braithwaite

90. 找到并留住富有激情的问题解决者 ( Chad La Vigne

91. 软件并非真实的存在 ( Chad La Vigne 虚拟世界中的软件是柔韧可变的。

92. 学习新语言Burkhardt Hufnagel 防止沟通不畅和误解

93. 没有永不过时的解决方案Richard Monson-Haefel

94. 用户接受度问题( Norman Carnovale 减轻用户接受度问题带来的风险。

95. 清汤的重要启示 ( Eben Hewitt 软件架构设计需要不断的精炼浓缩

96. 对最终用户而言,界面就是系统Vinayak Hegde

97. 优秀软件不是构建出来的,而是培育起来的Bill de hÓra

 
2010年08月12日 星期四 18:04

【虎.无名】全文被禁止,建议看原文:http://blog.sina.com.cn/s/blog_5e97837f0100jezz.html

诸多信号让我们确信:中国的房地产已经在2010年春天见顶,而其正式开始破裂的时间应该就在2010年的某一天。2010年的春天对于房地产投机者而言,可能是一个极其美妙的季节,但这一年的终 局却可能成为埋葬他们梦想的一个巨大坟场。接下来我们唯一要谛听的就是,泡沫最终破裂的那一声凄厉的巨响

  房地产泡沫的破裂,对中国银行业,城市居民以及中国资本市场占有重要地位的房地产上市公司的资产负债表将构成沉重打击。从中国各类银行纷纷通过各种方式补充资本的迹象来看,他们似乎对此已经做好最坏的打算。不过,这种打击可能远远不是目前静态的所谓压力测试所描述的那么乐观。不必讳言房地产泡沫崩溃对经济下行带来的沉重压力。作为旧式增长方式的一个标志性行业,房地产 一直是中国GDP增长的一个重要引擎。而其之所以被称之为“旧式”,乃是因为其中充斥着低效率,隐含了太多的剥夺,带来了太多的社会分化。也正是因为这些原因,这个行业才产生了那么令人羞 愧的巨富——一种典型的中国特产。一言以蔽之,目下中国的房地产行业是对市场经济财富价值观的嘲笑和扭曲,对社会带来的整体贡献远远小于他们对社会的破坏。这样一个负效率行业成为中国经 济的所谓支柱行业,简直就是中国的国耻。通过紧缩、萧条乃至对房地产巨富征收惩罚性税收,以清理中国的房地产行业,重新塑造其健康基础,正是中国经济增长方式转变的一个重要面相。从某种意义上说,中国房地产泡沫破灭之时,就是中国经济新一轮转型开始之日。泡沫可能加深困境,而更大的困境则可能加速转型。只有在这样一个积极乐观的辩证法中,已经沦为害群之马的中国房地产 行业才具有稍许正面意义。

  在过去的几十年中,由于中国各级政府极端畸形的亲商主义增长战略,大量成本从企业当然也从政府内部转移到了中国社会。比如,环保成本、比如对劳动力价格的政治压制、比如通过土地征收对农 民及城市居民的剥夺,比如通过低利率向大型国企输送利益所造成的对储户的剥削,比如通过各种财政优惠及退税所导致的公共福利的降低,凡此种种,都使中国的企业尤其是大型企业及外资企业, 向中国社会转嫁了大量成本。  及于此,从前被奉为经典的买入持有策略很有可能成为引发投资悲剧的陷阱,而那些适应了新一轮转型背景更加另加灵活的投资策略则将成为赢家。如果从100点到6000点反映了中国经济在前面三十年由于市场化所带来的高速增长的话,那么在接下来的十年,新一轮转型周期带给中国资本市场的,将是一幅反复挣扎的新图景。就其时间之长,动荡之频,突围之难,恐怕只能以超级熊市概括。当一众股市宣传家还在鼓噪6000点甚至8000点的时候,6000点已然成为旧式经济增长方式的墓碑,凋零于历史的尘埃之中,渐行渐远.

 
2010年06月23日 星期三 13:59

http://blog.nosqlfan.com/html/51.html cassandra观止
【附cassandra开发者pdf讲搞:cassandra_nosql

cassandra是由facebook开发的一套NoSQL存储引擎,也是目前最火的NoSQL应用之一,目前twitter和digg中都有使用。当然,用得最多的还是facebook自己。cassandra的特性不同的人理解不一样,归纳起来有如下几点:

  • 分布式,集群下容错性高,无限水平扩展性
  • schema的灵活控制,随意增删字段
  • 支持范围查询
  • 基于gossip的p2p节点通信
  • 充分利用硬盘高效的顺序读写

然而本文想要描述的是cassandra系统中包含的一些令人眼前一亮的技术实现上的思想。

1.硬盘是新的磁带

内存是新的硬盘,硬盘是新的磁带”这是Jim Gray的一句名言。我们目前对硬盘(非SSD)的利用,多是随机读取,这时的硬盘读取速度是相当慢的,但是如果把硬盘当成磁带进行顺序读取的话,速度是相当惊人的而cassandra的设计恰恰是冲着这一点来的,他在内在中保存一定量的数据后再统一写入磁盘,这本身就是一次顺序写入,在写入后不再进行更改,这样在进行数据读取时,就可以只进行一次次的顺序读取即可。大大提高了磁盘的效率。如果cassandra不更改数据,那数据的update操作又是如何实现的呢,cassandra采用的是追加方式,再写一条信息,取的时候取出对这个数据的所有操作再根据时间顺序进行案件重演就可以算出最新的数据是什么了

2.bloom-filter算法的应用

bloom-filter算法简单来说就是判断一个值是否存在于一个集合中的算法,用得最多的是在搜索引擎的URL抓取中,如果这个URL在一段时间抓取过的URL列表中,那就不再进行抓取。这个算法的时间和空间复杂度都很小,基本每一个数据的判断只需要做几次hash就可以了,但是问题是有一定的误差,只要应用可接受这个误差,那使用bloom-filter算法是最好的。

bloom-filter在cassandra用来判断一个数据块中是否有一个值的更新,上面说到,我们在读取数据时,是将其更新记录全部读取再通过时间顺序排序得到最新值。而cassandra每次内存存储上限(这个可以自由设置,但为了保证效率,通常低于物理内存)到时都会将内在中的数据写入硬盘,生成一个新的文件。于是在数据量很大时,会有很多个块生成,我们如果所有块都去查找是否有某一个值的更新记录,是会浪费时间降低效率的,于是cassandra用bloom-filter算法来决定是否对这个块进行查找,cassandra中的index.db文件就是存储bloom-filter算法的hash表的

我们上面也说过,bloom-filter算法会有一定误差,但是这个误差是可能会将不在一个集合中的值误判为在这个集合中,而不会将在这个集合中的值误判为不在这个集合中,有点杀三千不放一个的意思。这个误差在这里是可以忍受的,因为我们可以多查一个不存在这个值的数据块,但是决不会漏掉任何一个

3.基于gossip的多点同步

gossip是一个p2p协议的实现,他的原理是向周围的节点传递信息,直到所有节点都有同样的信息,这种传播是病毒式的。通过这种方式,可以达到多点同步,并且可以不用关心具体节点量实现无限水平扩展的功能。而且多点分布式系统有很好的容错机制,集群中的一台或N台机器出问题,不会对整体数据服务的正确性造成影响。而cassandra的错误侦测系统也能很快的发现坏死的结点以便及时处理

and more….

本文只讲述了令作者受到启发的技术点,抛砖引玉,欢迎提出更多不同的见解。

http://database.51cto.com/art/201005/202919.htm 详解Cassandra数据库的写操作

我们已经开始在OneSpot使用Cassandra来作为我们下一代的存储引擎(使用一个EC2的机器集群代替一台非常大的PostgreSQL机器),因此,之前几周的时间我一直在使用Cassandra. 由于我本人是一个基础设施方面的书呆子,并且坚信需要理解系统堆栈的各个层面,因为我阅读了部分关于Cassandra如何工作的资料,并且想写出点总结以期对后来者有所帮助.由于Cassandra的写性能表现卓越这一点众所周知,我认为我的介绍应该由此开始.

需要理解的第一件事是,Cassandra最好运行在多台机器上.据我所知,Twitter使用了一个45台机器组成的集群.在一台机器上运行Cassandra可能不是很有意义,因为你将失去没有单点故障的系统的优势.

客户端向一个随机的Cassandra节点发出一个写请求.这个节点作为代理往集群写入数据.节点的集群存储在一个节点”环”上,写会按照复制放置策略(replication placement strategy)复制到N个节点上.当使用RackAwareStrategy策略时,为了保证可靠性(reliability)与可用性(Availability), Cassandra会按照复制节点到当前节点的距离将复制节点分为3个桶:与当前节点位于同一机架、与当前节点位于同一数据中心、或位于不同的数据中心.你配置了Cassandra写数据到N个节点来做冗余,Cassandra会将第一份拷贝写入到此数据的主节点,第二份拷贝到环上的位于另一个数据中心的节点,剩余的其它拷贝到与代理节点位于同一个数据中心的机器上.这样就可以确保单点故障不会导致整个集群不可用,即使在整个数据中心都不可用时集群仍然保持可用.

因此,写请求从你的客户端出发到单一随机节点,此节点根据复制放置策略将写操作发送到N个不同的节点.我没有在此讨论很多边缘用例极端情况(节点宕机、集群中新增节点、等等),但是,节点需要等待N个节点返回成功并返回成功给客户端.(此处的描述有问题,Cassandra中,还有另外一个W的参数,也就是需要等待几份写拷贝成功才返回成功给客户端,译者加).

节点中的每一个都会以”RowMutation”消息的形式接收到此写请求.对于此消息,节点会采取以下两种行动:

◆追加此变更到提交日志(Commit log)以满足事务性目的

◆使用此变更修改一个内存内的Memtable 结构

它的工作就此结束.这就是为什么Cassandra的写操作如此快的原因:最慢的部分就是追加变更日志到文件的操作.与关系型数据库不同的是,Cassandra不会修改存储在磁盘上的数据,也不会去更新索引,因此没有密集的同步磁盘操作来阻塞这次写操作.

还有多个定期发生的异步操作:

当Memtable结构数据满的时候需要写入到SSTable,一个基于磁盘的结构,因此我们不会有太多只存在于内存的数据.

每个给定列族(ColumnFamily)的一组临时的SSTable会被合并到一个大的SSTable.此时,临时的SSTable就没有用了,它们会在将来的某个时间点被当作垃圾回收掉.

还有大量的边缘用例极端情况与复杂情况,我都没有在此讨论,我强烈建议大家至少要去阅读下Cassandra维基(Wiki)中关于ArchitectureInternalsOperations的相关描述.分布式系统相当复杂,Cassandra也不例外.

如果有发现错误或想要添加更多细节请留下意见,我不是Cassandra的开发者,因此我确定一定有1-2处的错误隐藏其中.

【编辑推荐】
  1. 详解NoSQL数据库Apache Cassandra的配置
  2. 漫谈Cassandra客户端的使用
  3. 详解Cassandra数据模型
  4. 超越关系型数据库 pureXML技术应用及展望
  5. 新兴数据库打破整个旧规则
  6. 探寻关系数据库和ORM的最佳替代者
 
2010年06月17日 星期四 13:25

http://codedestiny.javaeye.com/blog/618447 敏捷开发之 4句敏捷宣言(转)

敏捷开发之热门已达到任何一个开发人员都至少听过,并觉得敏捷方法很好,然而并不是所有的人都学习和实践过,以致于大家谈敏捷的时候其实理解的基准是不一样的,也导致“敏捷”泛滥成灾“,有些看似很敏捷的开发其实并不敏捷。

  最近在一个项目中准备采用Scrum开发方法来解决以往开发方法中遇到的一些问题,所以近期将发表一些个人对敏捷的一些看法,欢迎和大家交流。

  •   过程与工具、面面俱到的文档、合同谈判、遵循计划

       个体与交互            胜过 过程与工具
            可以工作的软件 胜过 面面俱到的文档
          客户协作           胜过     合同谈判
          响应变化               胜过     遵循计划

 

       

  2001年2月由17位世界轻量级方法学家提出了一份敏捷联盟宣言 ,这个宣言只是简单的四句话,但却是敏捷方法的精髓,在谈敏捷方法之前就必须先对敏捷宣言有所理解。在和一些人员交流中,我发现大家都知道敏捷,但是能说出这个简单的敏捷宣言的并不多,都说当时知道,过了一阵子就忘记了。究其原因是靠死记硬背是不行的,需要通过自己的思考形成自己的理解才能够真正记住。上面的敏捷宣言非常简单,仅仅四句话而已,有的项目会出现上面这个漫画所描述的状况,领导说“我们开始尝试使用一种叫做敏捷的方法了,这就代表不再需要计划并且不再需要文档,只需要开始编码”。这其实就是简单记住敏捷宣言的几个字而出现的严重误解,下面我将对这四句话进行解释,希望大家跟随我的讲解也能对这个宣言有所认识。

 合同谈判   

  项目开发 一般都是跟随着合同开始的。由客户经理同客户交谈,在合同中确定一些法律条文以及交付产品包含的功能,然后客户经理拿着合同回到公司由开发小组经过长时间开发后再交付给客户。在开发期间,如果需要变更合同,则需要经过一系列流程。开发过程中,有些客户可能只是简单的询问一下进度,有的甚至是到最后交付日了直接来问你要东西,当产品不能满足合同规定时就需要和客户谈判进行解决。仅仅通过合同谈判来开发产品,客户在开发过程中就不会进行实质性的反馈,导致最终的产品不满意也就很正常了。

    产品开发 在早期市场不成熟的时候一般为公司领导(产品经理、LPDT)驱动,后期转变为用户驱动、销售驱动、服务驱动,在矩阵式管理模式下,产品事业部和开发管理部作为两个部门时,在做产品开发的时候就会类似在进行合同谈判,从一开始就会在两个部门之间产生争执而不是合作,这势必会影响产品的开发。

  遵循计划

  当拿到合同时,公司就开始组建项目组进行开发。此时需要项目经理制定出明确的计划,必须详细列出需求、设计、开发、测试、部署的各项任务。当项目组提交看似完整齐全的计划后,公司就视这个不变的计划作为项目组对公司的承诺,没有特殊情况时必须遵循制定的计划,如果想要变化,则需要经过公司评审。

  软件复杂度有三个主要因素:业务、技术和人员。

  关于业务和技术的关系我已经写了一些博文,有兴趣的可以去看看 从横向领域和纵向领域来谈业务和技术的关系 )

    《agile project management with scrum》(中文书名:Scrum敏捷项目管理)一书中有一个复杂度的图。

X轴表示技术(成熟度),Y轴表示业务(一致度)。从图中可以看到,业务和技术是正交的,各自对复杂度都有影响,我们在开发过程中需要做的通过各种办法尽量确保从Anarchy-Complex-Complicated-Simple进行转移。

技术和业务最终都需要人来执行,而每个人拥有不同的技能、经验和观点,当这些人在一起合作时又会使得开发过程变得复杂。

这些复杂性将导致开发过程中存在很多不确定性,所以项目初期制定的计划其实基本上不能真正的坚持下来。而当项目开发遇到困难时,项目组可能会为了表明自己做计划的能力,或者不想经历复杂的变更过程,而继续努力的坚持这个已经错误的计划。范围、时间和成本,这个金三角几乎没有领导不知道,而项目组为了保证”遵循计划“,对外宣称项目组运行状况良好,保证当前人员在预计时间肯定能保质保量的完成开发。而代码质量只有开发人员知道,领导们容易忽略和难以控制这个环节,所以最后一味的遵循计划就势必导致提供给客户的是一个不满意的产品。

  过程与工具

  计划制定后,项目组需要在类似ISO9000、CMMI、NPD等一些常用的项目管理方法下进行开发管理。工欲善其事,必先利其器,可以找到很多工具来支持开发,需求阶段有原型工具、需求管理跟踪工具,设计阶段有Rose、PD,开发阶段有各种IDE和辅助插件,测试阶段有TD等。

  合适的工具能很好的帮助开发,但当在开发人员面前出现大量庞大笨重甚至不好用的工具和开发环境时,就会像缺少工具一样,都是不好的。在开发过程中,可能会出现夸大了工具的作用,当反应说开发工具对开发起起决定性的影响时, 这很有可能是在计划阶段就开始错了,就像衣服扣错的时候,一般都是扣第一个扣子的时候,而不是你发现扣错的那个扣子。

  面面俱到的文档

  瀑布式开发下,文档承载着各阶段之间的信息传递。需求文档中定义详细用例,每个细节,原型中定义界面表现,甚至每个控件的具体位置,设计中的 UML图,数据库设计图,测试用例文档等等,如果没有文档,开发将不能在过程中顺利依次展开。

  编写和维护一份详尽的需求文档总是一个好主意,然而就像前面所说业务复杂性带来的不确定性,除非给我们充足的时间,否则我们不可能一开始就想清楚所有细节。另一方面,编写文档需要花费大量的时间,如果考虑和代码的同步时,工作量更是急速上升,如果不考虑同步时,过多的文档反而比过少的文档还糟。当我们花大部分时间浪费的文档,仍旧只能以降低质量来遵循计划的执行。

  • Waterfall VS Agile

     在一个ppt中看到一张Waterfall和Agile对比的图。

瀑布式开发计划驱动的,合同谈判后项目组制定计划并且遵循计划 ,在过程与工具 支持下通过面面俱到的文档来定义不变的需求和其他文档,在时间不够时可以通过增加人员来缓解压力。

敏捷开发价值驱动,通过自组织团队 短期迭代 过程中不断的交付对用后有用的功能 来进行产品开发。

从上图的正反三角形图形可以看出两者的驱动是不同的,虽然宣言中右项( 过程与工具、面面俱到的文档、合同谈判、遵循计划)也很有价值,但是我们认为左项( 个体与交互、可以工作的软件、客户协作、响应变化 )更有价值,同时为了防止有些人学了敏捷之后而认为右边的没有价值了,我会在每条说明后重申一下右边的仍旧需要。 以下我将继续对敏捷宣言中的左项内容进行解释。

  • 个体与交互、可以工作的软件、客户协作、响应变化

         个体与交互      胜过 过程与工具
           工作的软件 胜过 面面俱到的文档
          客户协作             胜过     合同谈判
         响应变化               胜过     遵循计划

  客户协作 胜过   合同谈判

  寻求客户合作的价值重于对合同的谈判。软件开发的最终目标是提供给客户满意的软件,而只有客户才更清楚怎么样才能满意,敏捷开发提倡客户和开发团队密切的在一起工作,并尽量经常行得提供反馈。各种不同的敏捷方法都会利用短期迭代,通过尽早提供软件来达到与客户频繁沟通和反馈的,这也可以把问题及早暴露出来,以免隐藏的问题在后期造成更大的影响。

  虽然我们致力于客户协作,但为了双方利益和需要仍旧需要进行合同谈判。

      响应变化 胜过    遵循计划

  计划赶不上变化,敏捷项目承认开发过程中的不确定性,所以不会在开发中制定长时间的复杂计划,它们的成功都是建立在现实反馈的基础上的。 Scrum依照一组简单实践及规则,实施经验性过程控制方法的检查、适应和保证可视性等步骤,处理软件开发项目中的复杂问题。通过迭代开发,每次迭代都是基于上一迭代的完善基础之上进行的,通过不断的响应变化来消除开发中的不确定性。

  虽然我们致力于响应变化,但并不是像上面漫画所说的不需要计划了,反而我们需要更多的规划。

  《Agile Estimating and Planning》(中文书名:敏捷估计与规划)一书对如何做规划进行详细的讲解。它认为规划是困难的,而且作出的计划常常会出错,面对这样的问题,开发小组往往会走上两个极端:要么根本不做任何规划,要么在计划中投入大量的精力直到自己确信计划是正确的。不做规划的小组对一些最基本的问题,例如“你们什么时候能完成?”以及“我们可以在6月份安排产品发布吗?”都无法回答。而做了大量计划的小组会自欺欺人地认为某个计划是“正确的”。他们的计划也许更全面,但这并不一定意味着它更准确或更有用。这两种极端都是敏捷需要避免的,最开始漫画所说的“我们实施敏捷,不再需要计划和文档了”的论调是及其错误的。

  敏捷不是不需要计划,相反它需要更多的规划。不确定性是影响计划正确的主要因素,对大部分不确定而言,在获取知识、减少不确定性的唯一办法是通过执行-作一些事情、构建一些东西或模拟一些东西-然后获得反馈。许多项目管理方法是“规划、规划。规划-执行”,而敏捷开发方法是“规划-执行-调整”、“规划-执行-调整”。一个项目的不确定性越高,敏捷开发方法对取得成功就越是至关重要,不断学习和调整是敏捷开发的核心。

      个体与交互    胜过    过程与工具

  方法和工具是死的,人是活的,如何没有优秀个人和团队协作,再强大的方法和工具都是摆设。一个使用普通工具的优秀人员会比使用优秀工具的普通人员做得更好,一个具有合作精神、自组织的团队比通过过程规范的团队工作得更好。敏捷项目首先拥有一个小规模但拥有各种不同职能的成员,每个成员都需要定时和团队的其他成员一起查看团队的整体进度,计划下一步工作,并一起探讨所遭遇问题的解决方案。自组织团队通过个人能力和协作能力,可以自发的通过各种途径解决开发过程中遇到的问题。

  虽然我们致力于个体和交互,但并不是不需要过程与工具了。Scrum、XP等方法本身也有一些方法和过程,每日构造等敏捷实践也需要工具的支持,需要哪些过程和工具由自组织团队制定,而不是由领导制定。

      可以工作的软件 胜过 面面俱到的文档

      在合同中有时会看到分别在需求、设计、开发、测试阶段提供什么文档,支付多少金额等内容,而这些文档对用户来说是不是真的有价值呢?面面俱到的文档对客户来说确并不重要,用户需要的是一个能够运行起来,能够实质解决工作中问题的可以工作的软件。面面俱到的文档对开发团队也不重要,上百页的报告没有人愿意写,更没有人愿意去读,对开发团队来说最好的两份文档就是代码和团队。通过频繁的提供可以工作的软件,我们也可以更为频繁的搜集对产品和开发过程的反馈,保证开发小组始终是在处理最具有价值的功能,而且这些功能可以满足用户的需要。

  虽然我们致力于提供可供做的软件,但并不是不要文档。我们在开发过程中仍然需要进行内部交流, 也需要和客户交流,我们仍旧可能需要制作原型,书写一些主要需求和算法,只要自组织团队认为足够就行了。

    个体与交互         胜过 过程与工具
           工作的软件 胜过 面面俱到的文档
          客户协作               胜过     合同谈判
         响应变化             胜过     遵循计划

  这四句价值观用语句表达就是:

    自组织团队与客户紧密协作,通过高度迭代式、增量式的软件开发过程响应变化,并在每次迭代结束时交付经过编码与测试的有价值的软件

       胜过

    与客户确定合同后在初期制定并遵循基于活动的完整计划,在重型过程和工具指导下,通过完成大量文档进行知识传递,最后交付需求

 
2010年06月03日 星期四 14:44
Beta技术沙龙,霍炬讲银杏搜索利用SNMP作服务监控的系统实现。
http://club.blogbeta.com/ BETA技术沙龙
http://club.blogbeta.com/2009/08/beta%E6%8A%80%E6%9C%AF%E6%B2%99%E9%BE%99%E7%AC%AC%E4%B8%83%E6%9C%9F%E5%A4%A7%E8%A7%84%E6%A8%A1%E8%BD%AF%E4%BB%B6%E6%9C%8D%E5%8A%A1%E7%9B%91%E6%8E%A7%E5%92%8C%E7%AE%A1%E7%90%86%E6%96%B9%E6%B3%95/ [beta技术沙龙第七期]大规模软件服务监控和管理方法
http://blog.devep.net/virushuo/2009/05/08/custom-snmp-by-agentx.html 在你自己的软件中应用snmp和agentx协议传递信息(作者:virushuo 发表于 2009-05-08 01:05 最后更新于 2009-05-08 01:05)
http://blog.devep.net/virushuo/2009/08/28/betasnmp_1.html beta技术沙龙的snmp话题的个人总结
http://joyfire.spaces.live.com/blog/cns!502060A314B1A145!2560.entry 2009/8/24 Beta技术沙龙:利用SNMP进行服务监控
http://www.faqs.org/rfcs/rfc2741.html RFC2741 - Agent Extensibility (AgentX) Protocol Version 1

在你自己的软件中应用snmp和agentx协议传递信息

作者:virushuo 发表于 2009-05-08 01:05 最后更新于 2009-05-08 01:05
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明

我曾经想自己写一个udp server来接受我的服务器程序发回来的状态,然后做跟踪和统计。后来被Fenng批评为自己重复造轮子。于是转向试图利用snmp协议来做。

用snmp有几个原因:

1 snmp是基于udp协议的,具有udp的所有好处(数据状态这种东西,用tcp是不合适的)
2 snmp比较成熟,周边的软件非常多,后面可以很方便的处理收集数据,绘图等等一系列的功能。(rrdtool/cacti....)
3 因为我们要监控的服务非常多,所以希望能设计一个尽量免配置的方案,snmp的树型结构正好获取节点下面所有的被监控值。

snmp在网管系统中有很大规模的应用,但是似乎没什么人用来监控软件服务。而,目前我们知道的对snmp和cacti的应用,似乎大部分都只停留在了用来监控服务器状态(mem,load average,net io,disk)上,有点可惜。在这篇blog里面,我提到的用法应该不是最正宗的,但是有效。其实很多大厂商甚至自己修改snmp协议,做出自己的分支协议来。比起他们,虽然我做的不太正宗,但是也不为过

我要实现的东西大概可以用这张图来描述:

概括起来:很多个服务分布在很多台机器的很多个端口,所以我们需要在每台机器上放一个snmp代理,得到他们的状态,然后再统一通过snmp协议获取这些状态。由于服务太多了,必须要免于配置,这就更显示出了snmp协议的优点

扩展snmp有几种方法,不过综合起来,我认为最简单和灵活的还是agentx协议。agentx完全是独立在snmp server之外的,可以一层层的套起来。其他的协议要么要在snmp上加东西,要么要写mib的模块文件,都相当麻烦

不过,最常用的snmpd,反而对agentx支持不好。至少他们自称还是试验性质,不建议用。我试图在snmpd.conf中允许agentx协议,也几经挫折。最终决定找别的方案。似乎大家都习惯把snmpd当作唯一的snmp server,其实类似产品还有很多,snmpd时间比较久,但我认为并非最好的。在ubuntu的apt源里面,都有几种其他方案可用。

当然,由于我并非希望取得系统的硬件状态,所以我也并不一定要找一个通用的产品。所以最后我决定用jagentx(http://eden.dei.uc.pt/agentx/)

jagentx实现了snmp v1 协议和agetnx协议,一般来说足够用了。他们网站首页的那张图,很好的说明了agentx方式的系统结构。

jagentx提供了比较友好的api和demo,不过还是有一些bug,我做了一些修改。

1 jagentx的master(相当于server),对于master mib的读取,只能支持snmpwalk,不能支持snmpget。其实是一个状态设置错了。
在 Master_Engine.java中

if (!any_subagent_queried){
int error_index = 1;

int error_status = Pdu.NO_SUCH_NAME;

后面,加上

if(value != null)
{
error_status = Pdu.NO_ERROR;
}
就可以了。

2 是关于session的。如果客户端退出,没有注销,就要等自己的session超时,不然连不上。这个在实际应用中很容易出问题。服务不正常退出的情况发生几率很高。于是我做了一些改动,可以通过sessionid来注销其他进程。这样确实会造成一些安全问题。不过可以用防火墙或是其他方式弥补。总比之前要等超时好。
改动的地方分布在几个文件里面,就不挨个列举了。

本来我给jagentx的开发者发了个邮件,告诉他这些改动,不过被退信了。所以我就把代码放这里,有需要的可以下载

修改了这两处之后,这个东西很就好用了,jagetnx网站上的文档有demo代码,可以参考。

为了让我的山寨服务器正规点,我还是去申请了一个enterprise number。申请的方法是到iana 的申请页面添一张简单的表格,几天之后能收到回复,如果顺利通过,就会分配你一个数字号码,以后这个号码的snmp消息就代表你的组织的了。全部企业的enterprise number可以在http://www.iana.org/assignments/enterprise-numbers 这个页面查到(很大的文本文件)。可以看到,我们的银杏搜索ginkgotek是33364。

所以我们的snmp消息就在1.3.6.1.4.1.33364这个节点下面,我用snmpwalk就可以获得所有节点,包括新增的,这样就达到了免配置的目的。当然,到目前为止,我们还只是自己用于服务监控。
一切就绪之后,就可以选择你喜欢的工具来收集监控数据和画图了。比如常见的cacti。

这里是一张隐去了部分信息的cacti做出来的图。数据是从前面写到的这套东西收集上来的。

总结起来,这种办法适应于:

1 你有一个长期需要稳定运行的服务程序,否则你根本不需要监控

2 该程序有大量实例在运行,否则你用脚本把数据输出到snmpd都可以,没必要和我一样希望免配置

3 你不希望通过http或tcp连接来干扰该程序运行,否则你没必要用udp

写完了这篇blog,我也很希望能够侧面证明ginkgotek在保护客户利益上做的比别人多一些,选择我们的服务是可以放心的。

 
2010年05月18日 星期二 9:23
《程序员2009.5》可扩展性的艺术
http://www.hfadeel.com/Articles.htm
http://www.hfadeel.com/Blog/Files/ArtofDistributed.pdf 【Art of Distributed Computing】
http://www.hfadeel.com/Blog/Files/ArtofDistributed.pdf   【Art of Scalability - How we can design High Scalable Web Application】
http://www.hfadeel.com/Blog/Files/ArtofDistributed.pdf   【The Graph - Graph On Hash】
http://highscalability.com/ High Scalability  
http://www.hfadeel.com/Blog/
》》Scalability, Availability & Stability Patterns. 【强烈推荐】http://s3.amazonaws.com/ppt-download/scalabilitypatterns20100510-100512004526-phpapp02.pdf?Signature=5xDZgcrYCYqwwix7ztVflEBffCo%3D&Expires=1274067263&AWSAccessKeyId=AKIAJLJT267DEGKZDHEQ
》》Horizontal Scalability via Transient, Shardable, and Share-Nothing Resources.
》》Scalability of the Hadoop Distributed File System.
》》Cassandra by Example. 【推荐Twitter简化】http://www.rackspacecloud.com/blog/2010/05/12/cassandra-by-example/#
----------------------------------------------------------------------------
【论文集】http://www.pmg.csail.mit.edu/bft/ BFT - Practical Byzantine Fault Tolerance

Publications:

Copyright notice.

2009

“Tolerating Latency in Replicated State Machines”
by Benjamin Wester, James Cowling, Edmund B. Nightingale, Peter M. Chen, Jason Flinn, and Barbara Liskov.
In Proceedings of the Sixth Symposium on Networked Systems Design and Implementation (NSDI), (Boston, Massachusetts), Apr. 2009.
Details. Download: pdf.

2008

“Detecting and Tolerating Byzantine Faults in Database Systems”
by Ben Vandiver.
Ph.D. dissertation, MIT, June 2008. Also as Technical Report MIT-CSAIL-TR-2008-040.
Details. Download: pdf.

“Computing Network Coordinates in the Presence of Byzantine Faults”
by You Zhou.
Masters thesis, MIT, (Cambridge, MA, USA), June 2008. Also as Technical Report MIT-CSAIL-TR-2009-015.
Details. Download: pdf.

2007

“Tolerating Byzantine Faults in Database Systems using Commit Barrier Scheduling”
by Ben Vandiver, Hari Balakrishnan, Barbara Liskov, and Sam Madden.
In Proceedings of the 21st ACM Symposium on Operating Systems Principles (SOSP), (Stevenson, Washington, USA), Oct. 2007.
Details. Download: pdf.

“HQ Replication”
by James Cowling.
Masters thesis, MIT, May 2007.
Details. Download: pdf.

“HQ Replication: Properties and Optimizations”
by James Cowling, Daniel Myers, Barbara Liskov, Rodrigo Rodrigues, and Liuba Shrira.
MIT Technical Report MIT-CSAIL-TR-2007-009, (Cambridge, MA), Feb. 2007.
Details. Download: pdf.

2006

“HQ Replication: A Hybrid Quorum Protocol for Byzantine Fault Tolerance”
by James Cowling, Daniel Myers, Barbara Liskov, Rodrigo Rodrigues, and Liuba Shrira.
In Proceedings of the Seventh Symposium on Operating Systems Design and Implementations (OSDI), (Seattle, Washington), Nov. 2006.
Details. Download: pdf, html.

“Tolerating Byzantine Faulty Clients in a Quorum System”
by Barbara Liskov and Rodrigo Rodrigues.
In Proceedings of the 26th IEEE International Confererence on Distributed Computing SYstems (ICDCS06), (Lisbon, Portugal), July 2006.
Details. Download: pdf .

2005

“Byzantine Clients Rendered Harmless”
by Barbara Liskov and Rodrigo Rodrigues.
MIT Technical Report MIT-CSAIL-TR-2005-047, (Cambridge, MA), July 2005.
Details. Download: pdf .

2004

“Reconfigurable Byzantine-Fault-Tolerant Atomic Memory”
by Rodrigo Rodrigues and Barbara Liskov.
In Twenty-Third Annual ACM SIGACT-SIGOPS Symposium on Principles of Distributed Computing (PODC), (St. John's, Newfoundland, Canada), July 2004. Brief Announcement.
Details. Download: ps, pdf .

“Authentication in a Reconfigurable Byzantine Fault Tolerant System”
by Kathryn Chen.
Masters thesis, MIT, July 2004.
Details. Download: pdf .

“Byzantine Modification Detection in Multicast Networks using Randomized Network Coding”
by Tracey Ho, Ben Leong, Ralf Koetter, Muriel Médard, Michelle Effros, and David Karger.
In Proceedings of the 2004 IEEE International Symposium on Information Theory (ISIT), June 2004.
Details. Download: pdf, ps.

“Byzantine Fault Tolerance in Long-Lived Systems”
by Rodrigo Rodrigues and Barbara Liskov.
In 2nd Bertinoro Workshop on Future Directions in Distributed Computing (FuDiCo II), (Bertinoro, Italy), June 2004. Also as Technical Report MIT-LCS-TR-962.
Details. Download: ps, pdf .

2003

“BASE: Using Abstraction to Improve Fault Tolerance”
by Miguel Castro, Rodrigo Rodrigues, and Barbara Liskov.
ACM Transactions on Computer Systems (TOCS), vol. 21, no. 3, Aug. 2003.
Details. Download: abstract.

2002

“Practical Byzantine Fault Tolerance and Proactive Recovery”
by Miguel Castro and Barbara Liskov.
ACM Transactions on Computer Systems (TOCS), vol. 20, no. 4, Nov. 2002, pp. 398-461.
Details. Download: abstract.

“The Design of a Robust Peer-to-Peer System”
by Rodrigo Rodrigues, Barbara Liskov, and Liuba Shrira.
In 10th ACM SIGOPS European Workshop, (Saint Emilion, France), Sep. 2002.
Details. Download: ps, pdf, ppt.

2001

“BASE: Using Abstraction to Improve Fault Tolerance”
by Rodrigo Rodrigues, Miguel Castro, and Barbara Liskov.
In 18th Symposium on Operating Systems Principles (SOSP), (Banff, Canada), Oct. 2001. Best paper award.
Details. Download: ps, pdf, ppt.

“Byzantine fault tolerance can be fast”
by Miguel Castro and Barbara Liskov.
In International Conference on Dependable Systems and Networks (DSN), (Goteborg, Sweden), July 2001, pp. 513-518.
Details. Download: pdf.

“Using Abstraction to Improve Fault Tolerance”
by Miguel Castro, Rodrigo Rodrigues, and Barbara Liskov.
In 8th Workshop on Hot Topics in Operating Systems (HotOS-VIII), (Elmau/Oberbayern, Germany), May 2001.
Details. Download: ps, pdf.

“Combining Abstraction with Byzantine Fault Tolerance”
by Rodrigo Rodrigues.
Masters thesis, MIT, May 2001. Also as Technical Report MIT-LCS-TR-850.
Details. Download: ps, pdf .

“Practical Byzantine Fault Tolerance”
by Miguel Castro.
Ph.D. dissertation, MIT, Jan. 2001. Also as Technical Report MIT-LCS-TR-817.
Details. Download: ps, pdf .

“A Scalable Byzantine Fault Tolerant Secure Domain Name System”
by Sarah Ahmed.
Masters thesis, MIT, Jan. 2001. Also as Technical Report MIT-LCS-TR-849.
Details. Download: pdf .

2000

“Proactive Recovery in a Byzantine-Fault-Tolerant System”
by Miguel Castro and Barbara Liskov.
In Fourth Symposium on Operating Systems Design and Implementation (OSDI), (San Diego, USA), Oct. 2000.
Details. Download: pdf, ps, html.

1999

“Authenticated Byzantine Fault Tolerance Without Public-Key Cryptography”
by Miguel Castro and Barbara Liskov.
MIT Technical Memo MIT-LCS-TM-589, June 1999.
Details. Download: ps, pdf .

“A Correctness Proof for a Practical Byzantine-Fault-Tolerant Replication Algorithm”
by Miguel Castro and Barbara Liskov.
MIT Technical Memo MIT-LCS-TM-590, June 1999.
Details. Download: ps, pdf .

“Practical Byzantine Fault Tolerance”
by Miguel Castro and Barbara Liskov.
In Third Symposium on Operating Systems Design and Implementation (OSDI), (New Orleans, Louisiana), Feb. 1999.
Details. Download: pdf, ps, html.

“Using a Byzantine-Fault-Tolerant Algorithm to Provide a Secure DNS”
by Zheng Yang.
Masters thesis, MIT, Jan. 1999.
Details. Download: ps, pdf .

Software:

The source code for our project is publicly available. The version provided here runs on Linux. We have made changes to support other operating systems, please contact us if you require one of these versions.

Update!

The BFT codebase has been recently modified to compile on modern operating systems, under gcc4. It now also uses the lighter-weight sfslite library, rather than SFS.

The updated source code, including sfslite-1.2 is available here.

Please contact James Cowling, or the original BFT/BASE authors below, with any problems or questions.

Original Distribution

The BFT code uses the SFS cryptography library. For convenience we provide the version of SFS that is used by BFT. Later versions have changed the crypto interface in a backward incompatible way.

Getting BFT and SFS

First, you must obtain the BFT/BASE source code from here.

Create a new directory where you will unpack the source code above.

% mkdir byz-code
% cd byz-code
% cp /tmp/base-bft-src-rh72.tar.gz .
% tar xvfz bft-base-src-rh72.tar.gz
 (...)
Download version 0.5 or 0.6 of SFS, and unpack it in the same directory. For convenience, we provide a local copy of SFS 0.6 here.
% cp /tmp/sfs-0.6.tar.gz .
% tar xvfz sfs-0.6.tar.gz
 (...)

How to build and run

Instructions on how to build BFT/BASE and SFS are provided in the README file in the top directory of the source code. If you have any problems or questions please contact Miguel Castro or Rodrigo Rodrigues.

License

The BFT/BASE code is released under version 2 of the GNU General Public License.

There is a patent pending on the BFT algorithm.

 
2010年05月17日 星期一 10:12

The Byzantine Generals Problem(拜占庭将军问题)
原文:http://yaowei211.blog.sohu.com/30757545.html
快照:http://blog.sina.com.cn/s/blog_483452da0100brdm.html
参考:http://zhiqiang.org/blog/science/computer-science/tcs-byzantine-failure-the-byzantine-generals-problem.html


一、拜占庭将军问题的背景
对于系统坏掉的风险,可以这样假设:我们的操作员可能会误操作、可能会被贿赂或背叛,系统本身可能就有木马程序,系统可能会被黑客或病毒占领,我们自己开发的系统可能有漏洞,我们的开发人员可能会留下后门,这些都可以导致系统坏掉。因此,在这些假设在变成可能的残酷现实中,生存技术是应真正被采用的一种信息安全技术。  入侵容忍体系就是生存技术中的核心。如果我们的网络和系统学会生存,那么也就是建立起一个完善的入侵容忍体系。  
入侵容忍的技术在这样的假设空间中实现它的价值:个人的公开行为在一定的概率下是可预知的,系统在一定的概率下能够正确完成基本的功能。一定的概率并不是指全部,所以,可以允许有错误,因此,入侵容忍还有对纠错理论的联想:即利用纠错码可以在一个错误百出、但有信道容量的信道中准确无误地传输数据,网络系统就这样在错误中“生存”下来的,这就是我们说的入侵容忍体系,它的生存技术有两种实现方式:一是攻击响应的入侵容忍方法,它不需要重新设计系统,可通过高效的检测系统发现异常,利用资源配置系统调整系统资源,并对对错误进行修补(修补系统);二是攻击遮蔽的入侵容忍方法,它需要重新设计整个系统,并通过冗余、容错技术,门槛密码学技术及“拜占庭”技术来实现。

二、算法介绍

“拜占庭”技术,起源于拜占廷将军问题,这是入侵容忍体系的一个基本理论问题。在1982年被提出的“拜占廷将军问题”在今天被许多学者看好,然而在商业上还没有体现其价值。特别是中国的产业界把它放在了一个被遗忘的角落。

拜占庭将军问题可以抽象成:

设计一个协议,一个司令要送一个命令给他的n-1个副官,使得
IC1. 所有忠诚的副官遵守同一个命令。
IC2. 假如司令是忠诚的,则每一个忠诚的副官遵守他送出的该命令。

约定:忠诚的将军将遵守协议,而叛徒则可能破坏协议,尽可能的干绕其它人的判断。叛徒是匿名的。而且最后不需要确定谁是叛徒。拜占廷将军问题就是要让爱国的将军达成一致,而不是找叛国的将军。

我们的入侵容忍体系就是这样,只要在众多服务器上得到的正确的计算结果,,那么我们就可以相信这个数据,而不需要去寻找到底谁是间谍。如果要容忍一个捣乱的服务器,在数量上究竟会需要几个服务器?

“拜占廷将军”问题可以为我们解答这个问题:在进行混乱真实消息的传播中,两个将军中一个判国,另一个肯定打败仗,三个将军中如果有一个判国,则判国的将军一定有办法让两个爱国的将军不能达成一致,若再增加一个将军,既4个将军中如果只有一个判国,在不知道谁是判国者的情况下,存在一种算法使将军们达成一致,实际上就是三个爱国的将军能够达成一致,而不管判国的将军如何捣乱。

也就是说4个将军的团体能够容忍1个叛国将军。同样我们知道,当有m个判国者在捣乱而又无法找出他们的时候,存在一种算法或称做弹性协议,通过这种协议,能够保证爱国的将军达成一致。如果我们把能够容忍m个叛国者的协议叫m弹性协议,学者证明了,不存在3m个将军下的m弹性协议而一定存在3m+1或以上将军下的m弹性协议。就是说要有3m+1个或以上将军才能保证爱国的将军能够达成一致。如果要想容忍m个判国者,必须保证总的将军的个数大于3m。

三、具体分析

1 叛徒数大于或等于1/3,拜占庭问题不可解。
情况一:A,B,C三个司令,C是叛徒。A发消息给B,C“进攻”,C发消息给B“撤退”(因为是叛徒)。B收到两个矛盾的命令,无法作出决策。
情况二:A,B,C三个司令,A是叛徒。A发消息给B“进攻”,发消息给C“撤退”(因为是叛徒)。B。C收到不同的命令。
2.用口头信息(Oral Message,OM),叛徒数少于1/3,拜占庭问题可解.
口头信息三条件
A1)传送正确
A2)接收者知道是谁发的
A3)沉默(不发信息)可被检测
可以证明,多项式复杂性算法OM(m)可以解决拜占庭问题.
递归设计协议OM(n, m)为
OM(n, 0)
1.司令发送命令给所有副官。
2.副官按照接收到的命令行事。
OM(n, m):
1.司令发送命令给所有副官,设副官i收到命令vi。
2.分为独立的n-1轮:对每个副官i,将其视为司令,使用协议OM(n-1, m-1)将vi发送到所有其它副官。
3.这样每个副官都收到n-1条信息,每个副官都按照出现次数更多的命令行事(如果进攻和撤退的命令一样多,则默认取撤退)。

结论:n<=3m时,n个将军中的m个叛徒可以让将军们无法达成一致,也就是满足IC1和IC2的协议不可能存在。此时共需要信息交换轮数m+1.

3 用书写信息(Signed Message),至少两个忠诚,拜占庭问题可解
在口头信息的基础上, 书写信息又增加了两个条件
A4.1) 忠诚司令的签名不能伪造,内容修改可检测
A4.2)任何人都可以识别司令的签名, 叛徒可以伪造叛徒司令的签名
可以证明,算法SM(m)可以解决m个叛徒的拜占庭问题。
SM(m)算法
1)接收者信息收到后,签上自己的名字,再送给别人
2)用书写信息, 只要有两个忠诚的司令, 拜占庭问题就可解

SM(1):如A是叛徒。A给B发“进攻”,给C发“撤退”命令(都被A签名)。B比较从C发来的命令(“撤退”,该命令被C签名了)知A是叛徒。C比较从B发来的命令(“进攻”,该命令由B签名),知A是叛徒。

结论:n>=m+2时,n个将军中的m个叛徒可以让将军们可以达成一致,也就是满足交互一致性IC1和IC2。此时共需要信息交换轮数m+1.

 
   
 
 
文章存档
 
     
 
最新文章评论
  

回复nike_liu:多了可以定义成数组嘛,个人觉得还不错
 

更新了,增加 【虎.无名】之新生活(
 

回复xiongdeying:郑雁雄2011金句——【事件背景】广东汕尾市委书记郑雁雄前日向乌
 

http://groups.csail.mit.edu/pag/continuoustesting/
 

好!
   
帮助中心 | 空间客服 | 投诉中心 | 空间协议
©2012 Baidu