Most talks are in English. Even when I deliver a talk in French, I usually write my slides in English, because code is in English and I don't like mixing languages.


Build vs. Buy Club City-O, Paris, 5 Avril

Résumé : Quels sont les compromis entre construire et acheter des systèmes techniques ? Quels biais et préjugés peuvent piéger des ingénieurs ?

Video: (12 min) - Slides: PDF (254kB)


Debugging performance Django: Under the Hood, Amsterdam, 3rd November

Talk summary: (Almost) everything you need to know to make your Django-powered website fast, both from a frontend and backend perspective.

Video: (60 min) - Slides: PDF (8.4MB)

Comment utiliser Jinja2 avec Django ? DjangoCong, Rennes, 21 mai

Résumé : Django ≥ 1.8 propose une intégration native de Jinja2, un moteur de templates inspiré de celui de Django mais plus souple et plus performant.

Si les templates Django et Jinja2 partagent une syntaxe similaire, leur configuration et leurs possibilités d’extension sont différentes.

Nous illustrerons comment remplacer les "template tags” habituels et comment exploiter la puissance de Jinja2.

Slides: PDF (2.4MB)


Lazy devops' guide to SSO with Kerberos DjangoCon Europe, île des Embiez, 13th–17th May

This lightning talk outlines how to set up Kerberos-based SSO with Active Directory and Apache.

Video: (5 min) - Slides: PDF (592kB)

Where the Wild Things Are (keynote) DjangoCon Europe, île des Embiez, 13th–17th May

Talk summary: The concept of pluggable applications has been instrumental in the development of the Django ecosystem and the quality of Django websites. But it's bare-bones: the INSTALLED_APPS setting simply contains a list of Python packages.

In February 2007, Joseph Kocherhans uploaded a patch to allow changing an application's label and providing a verbose name for the admin. The scope of this ticket quickly escalated. Eventually it became known — and feared — as "app-loading".

With every ticket closed as a duplicate, the monster grew stronger and hope faded. Valiant efforts by contributors and core devs cornered the beast into a cave but hardly weakened it. It was finally slain in Django 1.7.

Judging by the releases notes, the results are underwhelming. Worse, they come with an annoying list of backwards-incompatibilites. What was that all about?

Video: (43 min) - Slides: PDF (1.3MB)


Comment faire du web temps-réel avec Django ? DjangoCong, Belfort, 28 septembre

Résumé : Le web de demain sera temps-réel ou ne sera pas. Mais pour l'instant, il n'est pas possible de faire du temps-réel avec Django. Alors, faut-il apprendre Twisted ou Node.js ? Tout d'abord, que signifie "temps-réel" sur le web ? Pourquoi est-ce compliqué à intégrer à un framework comme Django ? Quelles sont les possibilités aujourd'hui ? Et demain ?

Slides: PDF (220ko)

Les transactions, c'est de la bombe ! DjangoCong, Belfort, 28 septembre

Résumé : En général, le premier contact d'un djangonaute avec les transactions est une terrifiante DatabaseError: "current transaction is aborted,
commands ignored until end of transaction block". Et c'est souvent le dernier. Heureusement, Django 1.6 propose une nouvelle gestion des transactions, plus puissante et plus pythonique. C'est le moment d'apprendre quand et comment utiliser des transactions !

Slides: PDF (648ko)

State of the Real-time Web with Django DjangoCon US, Chicago, 3rd-5th September

Talk summary: In 2013, "real-time" is more than a buzzword: it's a reality on the Web. Unfortunately, for users of Django, it's still a foreign world that involves new concepts and new components, and it doesn't integrate well with traditional infrastructure. What is the real-time web? Why is it hard to support in Django? What are our options today? What can we expect in the future?

Video: (45 min) - Slides: PDF (4.7MB)

About JavaScript DjangoCon US, Chicago, 3rd-5th September

This lightning talk encourages Pythonistas to learn JavaScript.

Video: (5 min) - Slides: PDF (1.6MB)

Transactions for web developers DjangoCon US, Chicago, 3rd-5th September

Talk summary: Django has since long outgrown its roots in publishing. It's used in enterprise systems, under write-heavy workloads and strong data integrity requirements. But transaction management barely changed since the 0.9x days. Even veterans pull their hair out fighting DatabaseErrors when they use it. At last transaction handling will be overhauled in Django 1.6. How does the new system work, and why?

Video: (70 min) - Slides: PDF (692kB)

Enterprise Django: transactions for web developers DjangoCon Europe, Warsaw, 15th–19th May

Talk summary: Django has since long outgrown its roots in publishing; it's increasingly used in enterprise systems, under write-heavy workloads and strong data integrity requirements. Enter transactions — and, soon thereafter, DatabaseErrors! This talk will start from the transactional features of databases and work its way through the Python database API, up to Django's transaction management, and it'll explain the new transaction API introduced in Django 1.6.

Video: (33 min) - Slides: PDF (638kB)


Il est temps ! PyCon FR, Paris, 13–16 septembre

Résumé : `import datetime` — nous ajoutons cette ligne dans nos modules sans arrière-pensée dès que nous devons gérer des dates et des heures. Pourtant, il s'agit de représenter une réalité humaine, dont la modélisation informatique n'est pas sans aléas. De quels outils disposons-nous ? Où se trouvent leur limites ? Quelles sont les bonnes pratiques pour la gestion des données temporelles ?

Slides: PDF (626ko)

Django et Python 3, ce qui va changer PyCon FR, Paris, 13–16 septembre

Résumé : Cette conférence aborde l'avenir de Django sur Python 3, à travers trois thèmes : les stratégies de portage, la gestion des chaînes de caractères, et un guide pratique pour porter une application.

Slides: PDF (159ko)

Combinable Settings DjangoCon US, Washington, 3rd–8th September

This lightning talk describes a politically incorrect way to build settings modules for several sites in various environments.

Video: (5 min) - Slides: PDF (87kB)

It's about time! DjangoCon Europe, Zurich, 4th–8th June

Talk summary: 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.

Video: (39 min) - Slides: PDF (533kB)

Developing Django, in a nutshell Django Day, Brescia, 21st April

Talk summary: For a change, this isn't a talk about what Django can do for you — it's about what you can do for Django. Given Django's strong focus on quality, the barrier to contribution may seem intimidating, and proposing changes can be a frustrating experience. Fortunately, once you understand how the community works, you can quickly make a difference and get your bugs fixed! In this talk, I will discuss the tools and the processes behind Django's development, describe the variety of ways in which one can contribute, and illustrate best practices with some concrete examples.

Slides: HTML (2.2MB)