Blog posts Decorators (2014) 01 - How you implemented your Python decorator is wrong - (7th January 2014) 02 - The interaction between decorators and descriptors - (7th January 2014) 03 - Implementing a factory for creating decorators - (8th January 2014) 04 - Implementing a universal decorator - (9th January 2014) 05 - Decorators which accept arguments - (11th January 2014) 06 - Maintaining decorator state using a class - (13th January 2014) 07 - The missing @synchronized decorator - (14th January 2014) 08 - The @synchronized decorator as context manager - (15th January 2014) 09 - Performance overhead of using decorators - (8th February 2014) 10 - Performance overhead when applying decorators to methods - (17th February 2014) Monkey Patching (2015) 11 - Safely applying monkey patches in Python - (11th March 2015) 12 - Using wrapt to support testing of software - (12th March 2015) 13 - Ordering issues when monkey patching in Python - (18th March 2015) 14 - Automatic patching of Python applications - (9th April 2015)