I recently gave a talk at the inaugural Cardiff Django Weekend. It was a very successful weekend, and my first experience of a developer conference. The talk itself was on meta-programming in Python, showing some of the powerful built-in features Python has for reflection and (to an extent) self-modification. It's inspired by a virtual rock-paper-scissors competition that a fellow lecturer, Staurt Allen, runs for our first-year undergraduate students.
Abstract as follows:
In this talk we’ll explore Python’s meta-programming capabilities by building a program,GellerBot, that cheats at a virtual rock-paper-scissors tournament. The talk will demonstrate some of the neat (and occasionally awful) meta-programming features of Python, and introduce how Python represents its live execution and how a program can be inspected and manipulated on the fly. The talk is aimed at those with Python experience who are curious about meta-programming but have not explored it in depth.