http://blog.csdn.net/turingbook/archive/2006/10/22/1345111.aspx
http://www.gmw.cn/01ds/2006-11/01/content_502220.htm