I started to use zest.releaser and this has made it a lot easier for me to release Python packages.
I only recently started using pyflakes, and it's been quite useful. A neat tool to supplement my toolbox.
There are other things I ran into that do seem cool but I can't really feel I've fully discovered them as I haven't really had a chance to use them.
If I can count techniques I've been trying to pioneer myself: Template-driven development where the web browser renders the templates. This along with the notion of client-side views can lead to surprisingly clean rich client-side apps.
I also learned quite a bit about dependency management in a large collection of related libraries.
Grok and the Zope Toolkit. I'm not sure which one comes first, but luckily they're related. The Zope Toolkt is a set of libraries based on a refocused Zope 3. It's used by the Zope community in a multitude of projects, including Grok.
I also contributed a bit to JSON Template, making it possible to distribute its Python implementation on PyPI.
I've created a whole set of libraries:
- z3c.listjs (Zope specific)
- hurry.custom (mostly Zope specific)
- hurry.filesize (generic)
- traject (generic)
- megrok.traject (Grok specific)
- clio (based on SQLAlchemy)
- hurry.jqueryui (generic)
In terms of bang for the buck, I think there were two projects I was involved in that had the most effect:
refocusing Zope 3 as the Zope Toolkit and improving the way in which it is being developed and managed.
cleaning up the dependencies of the Zope Toolkit. Cleaner dependencies help us cut out unused code, making the code base easier to understand, reuse and improve.
In 2007 we had split up Zope into a collection of libraries. The dependency relationships between these libraries was rather convoluted, however, meaning that pulling in a single library would frequently pull in all the others.
We had a long-standing wish to clean up these dependencies but unfortunately were making up slow progress. The project was however daunting.
In early 2009, I organized a sprint that tackled this project head-on, cleaning up dependencies and also developing techniques, insights and tools.
This project has been picked up by a large group of Zope developers throughout the year. Different people at different time cleaned up this and that, resulting in a vastly improved dependency structure compared to last year.
The gains made by the Zope Toolkit are now making their way into Grok and Zope 2.
planet.python.org, though that's of course lots of blogs really. I've also read the Python programming reddit a lot.
I find it easier to say what I want to hack on, undoubtedly learning much as a side effect:
- a new, lightweight publisher for the Zope Toolkit
- making Grok smaller and more lightweight
- rich client-side frameworks talking to RESTful backends
There's a lot more I'd like to hack on, so we'll see what I get around to.