http://www.cnblogs.com/ribavnu/category/503990.html http://www.cnblogs.com/me-sa/category/304370.html