A rule 110 implementation with web.py