Sessions at EuroPython 2011 about Python with slides

Monday 20th June 2011

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.

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.

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.

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

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.

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.

Wednesday 22nd June 2011

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.

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.

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.

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.

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.

Thursday 23rd June 2011

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.

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.

Friday 24th June 2011

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.