So, it's been a few days since I got back, and I've finally had time to decompress, although I'm definitely going to enjoy a nice, long bank holiday weekend doing nothing. But before I put DjangoCon to bed, I thought I'd just write up my experiences in brief, and dump all my notes for anyone who might be interested.
I've already written quite extensively about my personal experiences in Warsaw, but as my notes can attest, I really did get something out of it other than meeting some great people and eating some yummy noms. I've learned how to be a better Python developer, how to get more out of Django and how to test and improve the security of the sites I build. At the sprints I started my first community-minded project, called Obtainer, and have some great resources to help me get my feet under the table with the Django community at large.
Thank you to everyone who took the time to talk to me during the con, and to James, Valberg and the rest of the guys who made my Friday. Thank you to the organisers for putting on an incredible conference - good luck to the French contingent for 2014! - and to Warsaw for being beautiful.
If you're into development, couldn't make it at the con or just want to crib off my notes, here are my notes :)
Day one
- django-paranoia (log potential security issues without blocking the request)
- Django sensitive parameters (view decorator for dealing with sensitive POST data)
- Programming, Motherfucker - Do you speak it?
- Elasticsearch - A search engine. I use Xapian via Haystack at the moment.
- django-require, django-pipeline, Django Compressor (JavaScript minification and module libraries)
- Classy class-based views
Day two
- postgres.app (PostgreSQL for OSX)
- django-hstore (key-value support for PostgreSQL and Django)
- djorm-ext-expressions (addons for Django and PostreSQL
- django-db-tools (aightweight piece of middleware to enable READ_ONLY mode)
- Don't store sessions in the database... it's slow
- I really need to start using Redis, and probably move to PostgreSQL
- Brunch (watch files for changes, ie for LESS compilation)
- Salt (Pythonic configuration manager)
- docopt (create argument parsers by writing help strings)
- symver.org (semantic versioning)
- Surprised that, apparently not that many apps use
TemplateResponse - ponycheckup.com (security checkup for Django sites)
- Two Scoops of Django (book)
Day three
- Don't put anything on
selfwhen extendingAdmin, as it's a security issue - Class-based views are good for HTTP method detection
- Look into View Mixins
- PyCharm (Python IDE)
- BreakfastSerial (Python programming for Arduino)
- Look through code for
transaction.commit_on_successand replace withtransaction.atomic - gargoyle (feature management)
- Blue-green deployment pattern
- django-mutant (dynamic model management)
collections.defaultdict(create dicts with default values)sets(quick access, unordered lists of items that must be unique)- Use
sorted()function rather thanlist.sort()
Todo
- Find or start a Python user group in Birmingham
- Check your Ubuntu version for Amazon search scandal

