Farm Development

Talks

How To Create Amazing Open Source Modules

Every Django project will eventually benefit from a third party module. Whether you're considering publishing your first module or your next one, this talk will cover everything you need to know. The open source quilt is woven by each of us. How do you make sure your module is useful to the community? How do you accept patches? How do you maintain your module?

Firefox OS: The Web Is The Platform

At Mozilla, we built Firefox OS as a mobile platform powered by web technology.

Supporting All Versions of Python All The Time With Tox

This talk explains modern techniques that any developer can use to support multiple versions of Python. You probably already have a massive test suite using a tool like nosetests, py.test, hand rolled unittest, etc. This talk will focus on using the tox command line tool to build and run your tests in all versions of Python, from 2.4 to Jython and, most importantly, Python 3.

tox lets you set up isolated virtual environments to test your module's deployment and compatibility with all major versions of Python. It's easy to install and is flexible enough that it probably already supports your existing test suite. With one simple command you can execute your test suite in each version of Python, you can build its documentation with Sphinx, and get a nice printout of the results. It has also been designed from the ground up to integrate into continuous integration (CI) tools like Jenkins.

Using practical examples, this talk will show you how to toxify your existing test suite and trick it out with the tox.ini config file. You'll also see how to leverage a Jenkins matrix build so that each code checkin will run tests in all versions of Python and report detailed failures.

Your app supports Python 3, right? No? Tox is the best way to develop in parallel with 2 and 3. We'll go over how to set up tox for that.

Strategies For Testing Ajax

As a Python web developer you are probably familiar with the paradigms of testing simple web applications. Your test case makes a GET / POST request, your program responds with an HTML page, and your test verifies the HTML elements. Unfortunately, today's typical web application is not so simple! Since modern browsers support asynchronous JavaScript (Ajax) very well, the HTML response might deliver program code to run on the client's web browser. The browser's runtime environment would then interact with your server-side Python program and you now have a big problem: How does your test suite cover both server-side functionality and client-side functionality? This talk will use a real Python / Ajax web application as an example then offer practical strategies for creating a fast, scalable test suite to help ensure that each release of such an app works as intended. It goes beyond just the tools and technologies; it examines architectural strategies — how and when to use stubs, how to design a testable UI, etc — so that as your application grows in size, your tests remain fast and effective.

Unicode In Python, Completely Demystified

This talks aims to help every single last person in the audience understand exactly how to write Unicode-aware applications in Python 2. If necessary, we will move to a Birds of Feather gathering, to the bar, to your hotel room, I'll start hanging around your cube at work—whatever it takes—until you completely get it. But it's really simple so bring an open mind, a notepad, and get ready to create bullet proof Python software that can read and write text in Arabic, Russian, Chinese, Klingon, et cetera. As a citizen of the Python community you have the responsibility of creating Unicode-aware applications!

Recent Projects

  • JSTestNet

    Like botnet but for JS tests in CI.

  • Nose Nicedots

    Nose plugin that prints nicer dots.

  • Fudge

    Mock objects for testing.

  • Fixture

    Loading and referencing test data.

  • NoseJS

    Nose plugin that runs JavaScript tests for a Python project.

  • Wikir

    converts reST to various Wiki formats.