The ACE Programmer's Guide: Practical Design Patterns for Network and Systems Programming