http://book.mixu.net/distsys/appendix.html