by Audrey Roy
Keynote presentation.
by Mark Rees
CouchDB (http://couchdb.apache.org/) is an open source, document-oriented NoSQL Database Management Server.It supports queries via views using MapReduce, and replication. The talk will give an overview of CouchDB followed by how to access and manipulate using Python. There are a number of python libraries for accessing couchdb and these will be quickly discussed followed by how to use one of these libs with a Python web framework. Also there will be an example of using a Python view server in place of the standard Javascript views provided by couchdb.
by Nick Coghlan
The CPython reference interpreter lies at the heart of a much wider Python ecosystem. The decisions that shape the future development of CPython ripple out and have a broad impact on the entire Python community.
This talk covers the special place CPython occupies in the broader Python community, how the decisions that affect CPython's development are made, and how new developers can become involved in that process.
by Dylan Jay
Introduction to the Pyramid, the new web framework taking the python world by storm. This tutorial will cover the basics of a hello world app and cover some of the advanced features of pyramid that give it it's power such as traversal. Pyramid is part of the pylons project and is a successor to pylons and a continuation of the BFG framework. It's very simple to learn, runs fast yet has powerful concepts which help keep large web app creation a sane process.
Writing software in an organisation or for ourselves, many people feel that they "should" somehow be doing Test Driven Development (TDD) because "everybody else" is and it's cool, somewhere between necessary and useful and they heard testing was good. When informed that must of TDD isn't about testing (despite the name!), confusion reigns.
Behaviour Driven Development is a different way of approaching the "how to validate your code" problem. It's an idea that isn't particularly new any more, but it doesn't seem to have the traction of TDD for some reason, particularly in Python, despite possibly being a bit more self-explanatory and easier to bootstrap when sitting down to write code. So let's talk about what it is and various ways to try out BDD in Python — from the periodically maligned doctests to simple unittest module usages to more specialised modules.
Web applications which are able to dynamically deliver up content have become a crucial part of the Internet landscape, with Python becoming an increasingly popular choice for the implementation of all manner of web applications. In order though for users to be able to access your web application you need to host it. The choices available are however many and varied with accurate information on which may be a good choice not always easy to find.
This talk will give an overview of the different choices available for hosting Python web applications. It will cover mainstream web servers such as Apache and nginx, highlight the architectural differences between them and look at how Python web applications are bolted on to these web servers via language agnostic protocols such as FASTCGI/SCGI/AJP or more integrated solutions such as Apache/mod_wsgi and uWSGI. The alternate architecture of using a standalone Python web server such as gunicorn, Paste server or the CherryPy WSGI server behind a conventional web server acting as HTTP proxy will also be covered.
The overall aim of the talk will be to give people a better appreciation for how web servers and your Python web application come together and some of the pros and cons of different solutions.
by Dylan Jay
zc.buildout is a powerful build/configure/deployment tool for creating applications from multiple parts, some not python. It's perfect for sharing a development environment or deploy applications to many hosts.
This tutorial will cover basic concepts, similarity to other tools such as virtual-env, puppet etc as well as practical examples.
zc.buildout has successful been used with web applications such as Plone, django and pyramid.
In this talk I'll be running through the current choices of web micro frameworks and comparing them by implementing a simple application.
Tennessee has been working on a module for integrating cpu time management with unit testing using an easy-to-use decorator. With all the options turned on, this will produce a a performance history, tracked by revision, integrated with the software used to produce the benchmarking graphs as used on http://speed.pypy.org/. You too can have this kind of shinyness for (almost) free!