link1:
http://www.cnblogs.com/just4fun/archive/2011/01/10/1931858.html
link2:
http://xiaolong0211.iteye.com/blog/758269