PyCon #2 for Me
Open Space and Lightening Talks were both better this year
Scheduled talks were better too:
- fewer, but better themed
- invited talks and panel dicussions
But, keynotes were a bit lame...
... and there wasn't as much swag.
Videos of all talks at http://pycon.blip.tv
Tutorials
- Optimization - Mike Muller
- Coroutines & Concurrency - David Beazley
- Advanced Topics - Steve Holden
- Internet Programming - Wesley Chun
Optimization
Mike Muller
- Premature optimization is evil
- Need to measure before you optimize
- pystone, time.clock, timeit, cProfile, pstats,
heapy
- Algorithms and Data Structures
- list comprehensions and generators
- lists vs. sets and deques
- Caching
- deterministic, non-deterministic, memcached
- Psyco, NumPy arrays, multiprocessing
Intro to Python Profiling
Mike Fletcher's talk
- Optimization makes code harder to maintain
- < 1 in 100 chance of guessing which bits to optimize, so profile!
- Beware of Heisenberg effect
- Use scripted behaviour for repeatability
- Optimize carefully:
- under source control
- commit often
- be willing to revert
- KCacheGrind, RunSnakeRun
Coroutines & Concurrency
David Beazley
- http://dabeaz.com
- Generators (to excess)
- Python 2.5 (PEP-342) introduced send() method for generators, and
yield as an expression
- Applications:
- Pipelines
- Event handling - XML parsing
- Concurrency - a toy multiprocessing OS in Python
Advanced Topics
Steve Holden
- String interpolation
- Iteration protocol
- Generators
- Descriptors and properties
- Metaclasses
- Decorators
Internet Programming
Wesley Chun
- Sockets
- Internet clients
- CGI
- Django
Testing, Testing, Testing
- Teach Me Web Testing Open Space
- Testing in Python (TiP) BoF
- Windmill, Selenium, figleaf, twill
- Ned Batchelder's coverage talk
- Functional Testing Tools Panel
- nose and py.test