DjangoCon Europe 2012 schedule

Monday 4th June 2012

  • Opening Address

    by Jonas Obrist

    At 9:00am to 9:15am, Monday 4th June

    In Stadion Letzigrund

    Coverage video

  • Keynote

    by Jacob Kaplan-Moss

    At 9:15am to 10:30am, Monday 4th June

  • PostgreSQL when it is not your job.

    by Christophe Pettus

    In this DevOps world, Django programmers are increasingly being asked to manage the database as well. In 45 brisk minutes, we will talk about (nearly) everything you need to know to bring up, tune, and keep a PostgreSQL database health. We'll go over installation, basic tuning, backups, disaster recovery, and helpful tools and techniques.

    At 10:30am to 11:30am, Monday 4th June

  • Round Pegs and Square Holes: Django and MongoDB

    by Daniel Greenfeld and Audrey Roy

    The common approach for getting MongoDB to work with Django has been to replace Django ORM based pieces with MongoDB based alternatives. This is usually accomplished by forcing MongoDB to behave like a relational database and is done with extremely sophisticated code. The result is something that doesn’t behave quite as nicely as a relational database, and negates many of the advantages MongoDB (and other NoSQL databases) possess, hence the title of this talk. This talk will not only go over the existing heroic but flawed approaches, but will also propose a simpler, more direct path for getting Django to play well with MongoDB. Simpler is important, because it makes possible the creation of a developer-accepted bridge between MongoDB powered efforts and the hundreds of Django ORM powered efforts available on Django Packages.

    Co-presented with Audrey Roy, this highly technical talk will include theory and a lot of code examples.

    At 11:30am to 12:00pm, Monday 4th June

  • Class-based Generic Views: patterns and anti-patterns

    by Bruno Renié

    Django's class-based views API — landed in Django 1.3 — offers a very powerful yet complex way to build Django views. This talks aims at explaining the internals of the API and giving practical advices for building class-based views. Crowd-sourced examples of patterns and anti-patterns will be shown and explained.

    • The view contract in Django
    • Other class-based stuff in Django
    • API internals
    • Mixins and the MRO
    • Interesting uses of CBVs
    • How to shoot yourself in the foot :)

    At 1:30pm to 2:10pm, Monday 4th June

  • Sharing spatial data to rebuild a region

    by Jude Mwenda

    When a disaster strikes, several institutions create all manner of different datasets. These datasets are eventually released without any clear guidelines and missing vital metadata.
    The purpose of this presentation is to bring to light the use of spatial data sharing software built on django to enable different relief agencies share spatial data. This presentation highlights the tool's use during the Eastern Africa droughts.

    There will also be a brief outline on how the same platform has been adjusted for risk modelling.

    At 1:30pm to 2:10pm, Monday 4th June

  • Django and the Real-time Web

    by Zack Voase

    The modern Web—indeed, the modern user—demands that we write applications that work faster than the traditional request/response cycle. But how relevant is Django in the age of pjax, node.js and WebSockets? I believe Django remains a powerful utility in the new Web, and in this talk I'll share some techniques and tools for reducing the complexity of real-time applications. I'll explain how I manage code duplication when key business logic is split between the client and the server, and demonstrate ways to preserve a RESTful and accessible design whilst providing a more responsive experience to clients who support it. Technologies I'll touch upon include ZeroMQ, gevent and WebSockets, and I hope to leave everyone from beginner to veteran with some valuable insights.

    At 2:10pm to 3:05pm, Monday 4th June

  • Building secure Django websites

    by Erik Romijn

    Django helps web developers in many ways, security included. But, it can't and won't handle everything - there's still security issues left that you need to take care of yourself.

    This talk explores some of the most common security issues Django developers can face, with a specific focus on using the features Django already provides to help out. We'll look at how vulnerabilities can be exploited, how exactly Django tries to help and what you still need to take care of yourself.

    If you always enable CSRF in your apps, but don't really know what it does or why, this is the session for you. If you always disable CSRF in your apps, this session may be just in time to save you.

    At 3:05pm to 3:50pm, Monday 4th June

  • Involving women in the community

    by Lynn Root

    I took my first computer science course in the fall of 2011. I sucked. During my exams, the only thought in my head was: “Well, I know some of these words.” After failing exams programming in C, I did my final project in Python using Django to make an awesome website. What a difference it made, and I finished the course with an superior marks.

    Coming from a non-engineer background, with a new interest in Python, I organized a Python study series for Women Who Code, a ~1000 member meetup.com group in the Bay Area. After appealing to women how versatile Python can be with practical problem sets, our final project is to collaborate on one Django project to create a Women Who Code website. I will talk about the best way to adapt the available Django tutorials and other resources for those with little to no web development experience. I will also talk about creating a safe space for learning, different techniques I used, and how best to appeal the interests of newbies in the Python/Django community.

    At 3:10pm to 3:40pm, Monday 4th June

    Coverage video

  • Implementing Domain-specific Languages in Django Applications

    by Matthieu Amiguet

    GUIs are great - no question about that - but in some cases nothing serves the user better than having a simple, highly customized, query or scripting language at his disposal.

    In this talk, we will demonstrate how to build such a feature into a Django project using David Beazley's great ply package. As an example, we will implement a small but perfectly usable compiler taking expressions in a simple query language as input and yielding (django.db.models.)Q objects as a result.

    At 4:30pm to 5:10pm, Monday 4th June

    Coverage video

  • Healthy Webapps Through Continuous Introspection

    by Erik van Zijst

    Every application has its hotspots -- small portions of code that consume considerably more resources than all of the other code combined.

    Django apps are no different. Some pages, invoked with the just the right, or wrong input, can bring a server to its knees, hogging the CPU and taking many seconds, or in extreme cases even minutes to render. By keeping workers tied up, the whole system can then become slow to respond, or collapse altogether.

    Many webservers have a crude built-in failsafe to prevent this. They automatically kill workers that fail to complete their requests in time. As a result, you may not fully appreciate, or indeed realize at all that you are routinely serving 500 pages, denying users access to your service, or leaving uncommitted database transactions -- possibly even slowly corrupting data.
    Workers killed by force leave virtually no forensic traces and so even when issues are suspected, it's hard to pin them down.

    The cause behind these hotspots can be poorly generated SQL queries from the ORM, an algorithm with non-linear complexity, excessive disk or network IO, or lock contention in the database -- to name just a few.

    Oftentimes these problems escape a developer's attention, as dev and test environments simply don't have the dataset, level of concurrency or sheer size of the real thing.

    In this talk we'll address the challenges of tuning your Django app with continuous automatic runtime inspection tools, including homegrown Dogslow. We'll uncover the pages that consume disproportionate amounts of time and cycles to complete and the pages that get killed altogether.

    We'll discuss several ways to help you identify and eliminate the hotspots, both passively through monitoring exclusively, as well as actively by selectively interrupting workers before they get killed and examine how to effectively interpret the automatically collected forensic evidence.

    At 4:50pm to 5:30pm, Monday 4th June

  • I Hate Your Database

    by Andrew Godwin

    After years of working with all sorts of databases and wrangling with South to support just five of them, Andrew takes a look at databases (relational, document, key-value and more) and at some of the problems that Django programmers often come across with them.

    The talk will cover (among other things) the disadvantages of relational databases, why "NoSQL" isn't always the answer, the pains of storing geographic data, a small amount of database theory, and the very small number of good things about MySQL.

    At 5:10pm to 6:15pm, Monday 4th June

  • Lightning talks

    by Marc Egli, tom christie and Tomasz Paczkowski

    At 5:50pm to 6:15pm, Monday 4th June

    Coverage slide deck

Tuesday 5th June 2012

  • Lightning Talks

    At 9:30am to 10:10am, Tuesday 5th June

    Coverage slide deck

  • Keynote: Fostering Community

    by Karen Tracey

    At 10:10am to 11:20am, Tuesday 5th June

    Coverage video

  • LFS - Lightning Fast Shop

    by Kai Diefenbach

    LFS is a online shop based on Python, Django und jQuery.

    LFS enjoys growing popularity amongst users and developers. According to
    djangopackages.com, LFS is the most downloaded Shop for Django (~60.000 download on PyPI).
    The source code is watched by ~210 developers and the Google Group has ~165 members.

    In this talk Kai Diefenbach, founder and core developer, gives an overview to LFS.

    • Introducing the most important features, like the catalog, payment and shipping methods, checkout, etc.
    • Introducing some big live shops - numbers and facts
    • How to setup LFS. Installation and first steps
    • How to develop for LFS? Core and add-ons
    • Outlook into the future of LFS

    At 11:20am to 11:55am, Tuesday 5th June

  • Using CSS Preprocessors Effectively

    by Jonas Wagner

    Whether it's SCSS, LESS or STYLUS, css preprocessors have become
    a part of the modern web development tool chain.
    The main objective of this talk is to give you an overview of the common features of css processors and how they can be used to drastically improve the fronted development workflow by increasing both development speed and maintainability.
    It will also give you an overview of the existing options to help you choose the right tool for your needs.
    Finally you will learn how to incorporate css preprocessors efficiently into a django project.

    At 1:30pm to 2:00pm, Tuesday 5th June

  • Wordpress Ponies

    by Ludovico Magnocavallo

    Wordpress is the leading platform for serving content on the web and has a great user interface and some fantastic features, but unfortunately it's not gentle with system resources, it's plagued by performance problems, and it forces developers to code in a messy, overcomplicated environment.

    But what if you could use the Wordpress user interface, and serve its contents harnessing the power and flexibility of Django... WP Frontman does exactly that, by supporting all major features of Wordpress in a Django app: single/multiple blog install, custom taxonomies and post types, shortcodes and post formatting plugins, etc.

    What you get compared to WP is a much simpler architecture, easy testing, enormous flexibility, and speed thanks also to a 3-level caching layer.

    At 1:30pm to 2:10pm, Tuesday 5th June

  • Arkestra: semantic information publishing for organisations

    by Daniele Procida

    How should a CMS best publish information for an organisation?

    Arkestra's approach is to create a semantic model of the organisation and its activities.

    I'll discuss:

    • how this thorough-going semantic modelling makes possible the notion of an information-driven - rather than merely a data-driven - web publishing system
    • how Arkestra uses of data relationships intelligently to inform as much of its output, and to save as much of the user's time, as possible
    • how applications like Arkestra's can use django CMS's excellent publishing and site management frameworks
    • how not thinking about databases and models is an excellent way to solve the problem of combining rich, useful real-world modelling with flexible, portable information structures
    • the amazing Semantic Presentation Editor, that makes it possible for users to create complex page layouts freely, without the constraint of predefined templates or knowledge of HTML/CSS, and without producing abominably-structured HTML
    • how Django and Arkestra have worked for us, our team of 40+ web editors and our 10'000 or so pages of information

    At 2:10pm to 3:10pm, Tuesday 5th June

    Coverage video

  • Django Chuck - Your powerful project punch button

    by Bastian Ballmann

    Django Chuck is a modular, open source, command-based project build system, that gives you the power to create new projects as fast as pushing on a button.

    It creates a virtualenv and a Django project for you, installs all required Python packages, creates the database and a fab file for automatic deployment and thanks to the module system you can easily add functionality like CMS, Facebook, Twitter, multilang and search engine support to a new or existing project.

    But Chuck cannot be just used to create a project it can also checkout the source for you and setup everything until the Django server is running and you're ready to do your development work. Just leave all the annoying stuff to Chuck and if there is some task Chuck can't do for you at the moment you can add your own command to let Chuck configure your continuos integration system, setup your hosting or do whatever you might imagine!

    At 3:10pm to 3:40pm, Tuesday 5th June

    Coverage video video

  • It's about time!

    by Aymeric Augustin

    Time zone support is a major new feature in Django 1.4, but empirical evidence shows it's often overlooked or misunderstood.

    In this talk, I'll explore how dates and times are represented in Python, why their handling was overhauled in Django, and what it means for developers.

    At 4:10pm to 4:50pm, Tuesday 5th June

  • Lightning Talks

    At 5:30pm to 6:00pm, Tuesday 5th June

    Coverage slide deck

Wednesday 6th June 2012