http://www.svonberg.org/2008/01/pyecam-2/