Sessions at EuroPython 2011 with slides

Your current filters are…

Monday 20th June 2011

  • Introduction to Gevent

    by Denis Bilenko

    Gevent (http://gevent.org) is a coroutine-based library that enables you to write highly-concurrent network and web applications. Learn in detail what Gevent is, what it does and how it does it.

    I will introduce a coroutine-based approach to network programming, explain it benefits and pitfalls.We will walk through the Gevent API, including the most recent additions, and understand how it is implemented. I will make a quick overview of the most interesting 3rd party add-on and applications after that.

    At 2:30pm to 3:30pm, Monday 20th June

  • Python and MongoDB tutorial

    by Andreas Jung

    MongoDB is the new star of the so-called NoSQL databases. Using Python with MongoDB is the next logical step after having used Python for years with relational databases.

    This talk will give an introduction into MongoDB and demonstrate how MongoDB can be be used from Python.

    More information can be found under:

    http://www.zopyx.com/resources/p...

    At 2:30pm to 6:30pm, Monday 20th June

    Coverage slide deck

  • Python(x,y): Python as your next MATLAB

    by Vincent Noel

    This training session will introduce the Python scientific stack to Engineers who use matlab in their day-to-day job and want to switch to an open solution or explore other alternatives. The basics of Python will first be presented: syntax, variable types and data structures, functions and flow control, exceptions. Python modules and tools required for matlab-like programmation in Python will be presented: ipython, numpy and matplotlib. Several Python applications typical of engineering problems will be presented and compared with their matlab version, as time will allow: plotting (time series, histograms, pseudocolor plots, etc.), basic I/O (e.g. ASCII, CSV, matlab MAT files), signal processing, mapping, etc. The creation of user interfaces with PyQt will be briefly introduced. Differences between Interactive and non-interactive programming will be described. Along the session, key differences with matlab will be underlined and discussed. Sources of information and documentation, online and offline, will be presented.

    These concepts will be introduced as coding exercises using the Python programming environment provided by the Python(x,y) distribution, which is freely downloadable and includes recent versions of Python, numpy and matplotlib. This session will also focus on using Python(x,y) efficiently for Python programmation. Attendees should bring their own laptop running Windows. It is also recommended that they download and install the pythonxy distribution from http://www.pythonxy.com/.

    Although no knowledge of Python is required to attend this session, a basic knowledge of matlab and of its typical programming usage is needed.

    At 2:30pm to 6:30pm, Monday 20th June

    Coverage slide deck

  • Diversity as a Dependency

    by Anna Ravenscroft

    The PSF recently adopted a diversity statement. While some argue that we should do this just because it's "the right thing to do", others question why we, as a technical community, should even worry about diversity. This talk addresses the diversity question, not in moralistic or ethical terms, but in pragmatic ones. Studies on creativity and productivity demonstrate the potential benefits of diversity for the Python community. Making Python the best language it can be is not merely helped by increasing diversity, but may be dependent on diversity.

    At 6:30pm to 7:30pm, Monday 20th June

Tuesday 21st June 2011

  • It's the message, stupid: python & amqp

    by Muharem Hrnjadovic

    Messaging is a well established domain in information technology and can greatly improve the scalability and throughput of a system when employed appropriately. Message queues can be used to achieve

    • spatial decoupling i.e. the systems that produce and consume messages may be deployed on different machines, networks, continents etc.
    • temporal decoupling i.e. a system can enqueue a message and carry on without waiting for the message consumer.

    We use e.g. messaging in [http://openquake.org] OpenQuake to distribute calculations of [http://openquake.org/about/gem/] seismic hazard and the respective risk to human lives and infrastructure.

    There is a huge number of messaging patterns identified in the industry [7] and a small selection of these will be presented to whet your appetite :-)

    AMQP [1] is a fairly new and open messaging standard with a number of freely available open source message brokers (RabbitMQ [2], ZeroMQ [3], qpid [4] etc.) with different features and performance trade-offs.

    In the course of the presentation you will be
    * introduced to AMQP concepts and jargon
    * introduced to available Python AMQP bindings (focussing on an asynchronous (txAMQP [5]) and a synchronous variant (most likely kombu [6]))
    * shown code examples demonstrating how to use these Python bindings

    The presentation (45 minutes in total) is structured as follows:
    * 7.5 minutes for messaging concepts and patterns
    * 7.5 minutes for AMQP concepts
    * 5 minutes for an overview of the Python bindings for AMQP
    * 10 minutes for txAMQP examples (asynchronous bindings)
    * 10 minutes for kombu examples (synchronous bindings)
    * 5 minutes for questions

    References:

    At 9:00am to 10:30am, Tuesday 21st June

  • Building Scalable Web Apps

    by David Cramer

    Building scalable web applications may seem like a distant problem, but the problem is not thinking about it before it's too late. This talk will focus on designing a scalable web application before it needs to be (and avoiding the premature optimization dilemma). It will cover topics such as efficient usage of your database, appropriate caching (and invalidation!), and what the speaker considers as best practices.

    At 12:15pm to 1:15pm, Tuesday 21st June

  • Spatial data and GeoDjango

    by Bruno Renié

    GeoDjango is the "world-class geographic web framework" everyone has probably heard of. The purpose of this talk, targeted at people familiar with Django itself, is to introduce in more details the capabilities of this framework.

    After learning the basics of Geographic Information Systems, we will see:

    • how to get started with a GeoDjango installation,
    • how to import, store and query spatial data,
    • how to geo-enable your forms to allow user-generated spatial data,
    • how to serialize and display your data using the different formats and mapping frameworks such as OpenLayers and Polymaps.

    During this talk we will be building a simple GeoDjango application to illustrate the different concepts introduced.

    At 12:15pm to 1:00pm, Tuesday 21st June

  • Advanced Aspects of the Django Ecosystem: Haystack, Celery & Fabric

    by Simon Willison

    Django benefits from a thriving third-party ecosystem. This talk will take a deep look at three of the components I have found most useful in my own projects: Haystack for full-text search, Celery for offline processing and Fabric for automated deployments. I'll discuss how we use them for Lanyrd.com, and demonstrate why they deserve a permanent place in your toolbox.

    At 2:30pm to 3:30pm, Tuesday 21st June

  • Latest advances in the Google APIs platform

    by Ali Afshar

    This talk will give an outline of the advances that Google have made in API delivery over the last year, and how it is relevant to you as a Python developer. The talk is suitable for beginners and advanced developers.

    We will describe the underlying platform, and the built-in features that all Google APIs inherit.

    We will focus on how the Python libraries for this API platform are generated and can be used as a single library that doesn't require updating with API updates, as Python lends itself perfectly to the nature of this platform.

    At 3:30pm to 4:30pm, Tuesday 21st June

  • Web API Mashups in a Python Application

    by Johan Euphrosine

    This talk will cover:
    - How to use OAuth into your webapp so users can give permission to access their data stored in third party web application.
    - How your webapp can interact with their Web API using RESTful JSON protocols.

    This talk is suitable for beginners already familiar with any WSGI web framework.

    This talk will be illustrated with code samples using Google App Engine and Google APIs client library.

    At 5:15pm to 6:15pm, Tuesday 21st June

Wednesday 22nd June 2011

  • Pitfalls of Continuous Deployment

    by David Cramer

    Practice iterative development like the pros. Release sooner, faster, and more often.

    Continuous deployment (and testing) has started to become a reality for many companies. It brings to light one of the many problems that face large product teams, but also creates some of its own. This talk will focus on the pros and cons of continuous deployment, how DISQUS switched from the recurring release cycle to continuous releases, as well as providing tips and arguments for adopting it in your workplace.

    At 9:00am to 10:30am, Wednesday 22nd June

  • How to make intelligent web apps.

    by Deepak Thukral

    The primary goal of this talk is twofold: to evaluate the need of data mining and introduce some very cool, simple yet powerful machine learning techniques to audience such as classification, clustering, collaborative filtering, recommendation etc in your Python web applications. This talk will conclude with some explanation and limitations of machine learning algorithms.

    Basic knowledge of Python is sufficient. However some experience with Django, meshups, machine learning or data hunger is encouraged. All talk material and django apps will be available after talk.

    At 11:15am to 12:15pm, Wednesday 22nd June

  • Making use of OpenStreetMap data with Python

    by Andrii Mishkovskyi

    Ever wondered how web maps are created? Ever wondered if you
    could build something like Google Maps over a weekend? You
    probably can't, but this talk will show you the basics of
    what you need to know, such as importing data, rendering
    maps and even building simple routes. And all of this in
    Python!

    Abstract:
    * Learning how OSM data looks
    * Parsing and importing the data
    * Rendering maps with Mapnik
    * Bits of code required to build geocoder
    * Building simple router with Python and PostGIS
    * And anything else I forgot to mention in this abstract but will talk about

    Definitions:
    OpenStreetMap -- the so-called "Wikipedia of maps" project, with thousands of contributors who edit the map data of the whole world. Unlike similar projects, the map data is completely free (both as in beer and as in speech) and thus anyone can make use of it.
    Mapnik -- rendering framework, created specifically for OpenStreetMap, written in C++ and Python.
    PostGIS -- an extension of PostgreSQL database, with support for many useful GIS features.

    At 11:15am to 12:15pm, Wednesday 22nd June

  • Tricks and challenges developing a large Django site

    by Simon Willison

    Django makes it easy to build web sites and applications on tight deadlines - but how does it deal with sites that scale up in both traffic and complexity? Using Lanyrd.com as a case study, this talk will explore tricks and techniques for taking advantage of what Django has to offer while coping with the unexpected challenges raised by a highly dynamic social web application.

    Topics covered will include performance monitoring and optimisation, advanced caching tricks, denormalisation with Solr and Redis and finding the right balance between technical elegance and pragmatism.

    At 2:30pm to 3:30pm, Wednesday 22nd June

  • New beauty in Camelot

    by Erik Janssens and Jeroen Dierckx

    Camelot is a Python framework that leverages SQLAlchemy and QT to build rich desktop applications. The model - view definition used was inspired by the Django Admin interface. Some see it as a replacement for MS Access, but it's underlying libraries allow much more advanced features.

    In this talk we will focus on the changes and new features that were introduced in Camelot and more importantly, how they can be used in your applications. Those features range from Matplotlib chart integration and new types of actions to displaying custom SQLAlchemy queries in a table view.

    We will share our experiences with large scale deployment of Python and Camelot applications to the desktop of the user. In a number of case studies we will point out the mistakes we made and how they were corrected.

    At 3:30pm to 4:30pm, Wednesday 22nd June

  • How to build complex web applications having fun?

    by Andrew Mleczko

    Web development is a complexity challenge nowadays. Growing number of functionalities results in customer expectations increase which makes project design more difficult. Using proper tools that suite your customer needs is essential.

    In this talk I would like to present two successful stories using closely together Pyramid and Plone. Basing on these examples I wished to highlight the main reasons for using Plone as a CMS only and letting Pyramid do the rest (vertical application). Moreover, I will underscore good and bad practices during integration process and how to make farsighted architectural decisions in a right moment.

    Prerequisites: be familiarized with common python web framework concepts.

    At 5:15pm to 6:15pm, Wednesday 22nd June

  • Paver: the build tool you missed

    by Almad and Lukáš Linhart

    Build tools are not very popular in Python environment. In this talk, I'd like to show how useful it is to have one, even if you do just simple web applications. A nice, single point of entry instead of hairy shell scripts, fabric fabfiles and django admin commands all over the place.

    Written in the neat, friendly Python instead of some Anty XML jumbo, you are about to have a refreshing cleanup.

    At 5:15pm to 6:15pm, Wednesday 22nd June

Thursday 23rd June 2011

  • Snakes on a cloud: the OpenStack project

    by Thierry Carrez

    OpenStack is an innovative open source project written in Python, backed by Rackspace Hosting and NASA, building a massively-scalable and reliable cloud computing platform.

    The first part of this talk will clarify the place of OpenStack in the general "cloud" landscape and explain why a fully open cloud infrastructure stack is necessary to avoid vendor lock-in. We'll then focus on the OpenStack project goals, its developer community, its open design and release processes, and the developer tools it chose.

    The second part of the talk will present into more technical details the different components of OpenStack: Nova (compute) and Swift (storage), including the Python libraries that are used (libvirt, SQLAlchemy, eventlet...). A Q&A session at the end of the talk will give the audience a chance to clear any remaining dark area.

    At 11:15am to 12:15pm, Thursday 23rd June

  • Python for High Performance and Scientific Computing

    by Andreas Schreiber

    Python is an accepted high-level scripting language with a growing community in academia and industry. It is used in a lot of scientific applications in many different scientific fields and in more and more industries, for example, in engineering or life science). In all fields, the use of Python for high-performance and parallel computing is increasing. Several organizations and companies are providing tools or support for Python development. This includes libraries for scientific computing, parallel computing, and MPI. Python is also used on many core architectures and GPUs, for which specific Python interpreters are being developed. A related topic is the performance of the various interpreter and compiler implementations for Python.

    The talk gives an overview of Python’s use in HPC and Scientific Computing and gives information on many topics, such as Python on massively parallel systems, GPU programming with Python, scientific libraries in Python, and Python interpreter performance issues. The talk will include examples for scientific codes and applications from many domains.

    At 2:30pm to 3:30pm, Thursday 23rd June

  • sqlmap - security development in Python

    by Miroslav Stampar

    The "sqlmap" is one of the largest, widely used and most active Python projects in the IT security community (more than 2000 commits in one year period with community of over 100 active testers). It combines it's developers' strong security knowledge together with analytical, mathematical and Python development skills to provide IT professionals with vibrant features.

    Talk would be consisted of several parts: short introduction to project and developers, developing and testing environment, programming cycle, program's workflow, technologies used, common pitfalls and how we've circumvent them, usage of mathematical models, optimizations, project's future goals.

    The significant part of this talk would be the immediate insight into the developing process of probably the world's most advanced open-source Python IT security project today.

    At 5:15pm to 6:15pm, Thursday 23rd June

  • Flow-based programming made easy with PyF 2.0 (teaser)

    by Jonathan Schemoul

    At 5:45pm to 6:15pm, Thursday 23rd June

  • The Myth of the Genius Programmer

    by Brian Fitzpatrick

    A pervasive elitism hovers in the background of collaborative software development: everyone secretly wants to be seen as a genius. I'll cover how to avoid this trap and gracefully exchange personal ego for personal growth and super-charged collaboration. I'll also examine how software tools affect social behaviors, and how to successfully manage the growth of new ideas.

    At 6:45pm to 7:30pm, Thursday 23rd June

Friday 24th June 2011

  • Implementing distributed applications using ZeroMQ, Python and other bad guys...

    by Francesco Crippa

    Cloud Computing and Large Scale environments require sometime applications based on complex and distributed architectures... and this usually means a huge overhead in the design and confusion out of control in the code (network wise race conditions, single points of failure and so on)

    Introducing elements like *MQ and IPC frameworks in this kind of applications is the only way to reduce the complexity and enable a fluid design (in other words: mess-under-control)

    The talk is focused on describing how to design a distributed application in different scenarios, using ZeroMQ (a modern broker-less MQ system) as core framework, with examples and demos.

    At 11:15am to 12:15pm, Friday 24th June