EuroPython 2012 schedule

View as grid

Monday 2nd July 2012

  • Not The State of the Python Union

    by Guido van Rossum

    Worried about the future of Python 3? Wondering when lambda will be fixed? Angry about the GIL? Eager to get your package into the standard library? In this keynote, Python’s BDFL will address these issues and many others from his unique, personal perspective. Learn how not to be a troll!

    At 9:30am to 10:30am, Monday 2nd July

    In Spaghetti, Grand Hotel Mediterraneo

    Coverage video

  • Permission or Forgiveness?

    by Alex Martelli

    Grace Murray Hopper’s famous motto, “It’s easier to ask forgiveness than permission”, has many useful applications – in Python, in concurrency, in networking, as well of course as in real life. However, it’s not universally valid. This talk explores both useful and damaging applications of this principle.

    I start by introducing the motto “It’s easier to ask forgiveness than permission” and the woman who used it, Rear Admiral Grace Murray Hopper, also known as the “mother of Cobol” and the author of the first ever programming-language compiler.

    I then move on to the Python context, where the motto supports the proper usage of exception-catching rather than preliminary checks; and the “rule that proves the exception” introduced by abstract base classes.

    Expanding the subject, I show how “optimistic concurrency” applies that motto (while locking would “ask permission”, in essence, STM “asks forgiveness"), and how collision-detection focused networking protocols have similarly triumphed over more highly structured, “ask permission” ones like token-ring.

    Moving to the fuzzier context of real life, I then show how this daring approach does not work quite as well as in the technical realm – except when applied correctly, in the right circumstances… and I try to evince a general law describing what the right circumstances for its application are, comparing and contrasting with the similar issue of “do it right the first time” versus “launch and iterate” (and the latter’s cognate “fail, but fail fast” principle).

    At 11:15am to 12:15pm, Monday 2nd July

    In Spaghetti, Grand Hotel Mediterraneo

    Coverage video

  • Let Your Brain Talk to Computers

    by Febo Cincotti

    Brain-computer interfaces (BCIs) collect the waveforms generated by the brain during its activity, and processes them in real-time, with the aim of translating human thoughts into the actions of a machine upon the surrounding environment. Though at the state of the art they cannot compete with more traditional forms of Human-computer interaction, both in terms of speed and in terms of accuracy, indeed they constitute an inspiring challenge for the neuroscientist, at the boundary between science and fiction. Pioneers talked about BCIs already fourthy years ago, but only in the last 15 years we witnessed their diffusion as research topic in the scientific community. More recently, BCIs appeared in the market arena. Entertainment is the mainstream target, but a minor, more important goal is being pursued: using these interfaces to let a person with severe motor disabilities be able to express himself, and control the surrounding environment. This option is still being actively investigated by scientists, thus cannot be of help for those who are in a locked-in state today. The Brindisys project aims at demonstrating the viability of this option, by developing novel technology to restore at least in part the independence of persons with Amyotrophic Lateral Sclerosis.

    At 12:15pm to 12:30pm, Monday 2nd July

    In Spaghetti, Grand Hotel Mediterraneo

  • PyPy: Current status and GIL-less future

    by Antonio Cuni, Armin Rigo and Maciej Fijalkowski

    In the first part of the keynote we will present the current status of PyPy, with a particular focus on what happened in the last year. We will give a brief overview of the current speed and the on-going development efforts.

    The second part of the keynote is about one particular feature whose development is in progress in PyPy: Automatic Mutual Exclusion. What it is needs some explanation:

    The GIL, or Global Interpreter Lock, is a well-known issue for Python programmers that want to have a single program using the multiple cores of today’s machines.

    This keynote is not about writing a GIL-less Python interpreter; although hard, this has been done before, notably in Jython. The real issue is that writing each and every multi-threaded Python programs is hard too. The threading module offers locks in several variants, conditions, events, semaphores… But using them correctly without missing one case is difficult, impossible to seriously test, often impossible to retrofit into existing programs, and arguably doesn’t scale. (Other solutions like the multiprocessing module are at best workarounds, suffering some of the same issues plus their own ones.)

    Instead, this keynote is about an alternate solution: a minimal thread-less API that lets programs use multiple cores, without worrying about races. This may sound impossible, but is in fact similar to the API simplification of using a garbage collected language over an explicitly managed one — what is not minimal is “just” the internal implementation of that API. I will explain how it can actually be done using Automatic Mutual Exclusion, a technique based on Transactional Memory. I will give preliminary results on a modified version of the PyPy Python interpreter that show that it can actually work. I will also explain how the API is used, e.g. in a modified Twisted reactor that gives multi-core capability to any existing, non-thread-based Twisted program.

    At 2:30pm to 3:30pm, Monday 2nd July

    In Spaghetti, Grand Hotel Mediterraneo

    Coverage video

  • Recruiting Session

    Are you a professional looking for a job? Is your company looking for proficient programmers? EuroPython is your greatest opportunity to hire the best Python programmers!
    The special recruiting sessions allow you to get and offer a job in Python programming.

    Important firms in the international IT sector will find room to present their own career opportunities to very special candidates. As shown by the well known "Python Paradox", Python programmers are typically among the very best on the market!

    If you are looking for a job, bring your resumé to EuroPython, at least ten printed copies (as much as we would like to live in a hundred-percent digital world, a printed copy will allow you to immediately discuss your resumé and capabilities with a recruiter, while a digital copy on a USB pendisk will probably be less useful in a crowded situation).

    If you are a company with open positions, have a look at the opportunities offered by EuroPython. Access to the recruiting sessions and all the other recruiting opportunities at EuroPython is in fact restricted to sponsors.

    At 3:30pm to 4:30pm, Monday 2nd July

    In Spaghetti, Grand Hotel Mediterraneo

    Coverage video

  • Ask your BDFL

    by Guido van Rossum

    An open session where the BDFL will answer questions from attendees.

    Questions must be submitted (and voted) through Google Moderator; we will ask the most popular questions to Guido during this session.

    http://www.google.com/moderator/...

    At 5:15pm to 6:15pm, Monday 2nd July

    In Spaghetti, Grand Hotel Mediterraneo

    Coverage video

  • Lightning Talks

    At 6:15pm to 7:00pm, Monday 2nd July

    In Spaghetti, Grand Hotel Mediterraneo

Tuesday 3rd July 2012

  • Complex and Social Network Analysis in Python

    by Enrico Franchi

    A complex network is a network that has non trivial topological properties, i.e., properties hinting the presence of elaborate relationships among the actors, opposed to simple networks such as regular lattices or random graphs. Examples of complex networks are most social, technological or biological networks, such as the internet, the web, a professional network, the nervous system of an animal or the contact network of any social networking system.

    Network analysis has many practical applications, e.g., ranking or grouping items on the basis of their position in the network, and is also the basis of some collective intelligence and data mining techniques. Recently network analysis is also applied to security problems in the form of trust networks.

    Along with the basic concepts, working Python code is presented, both using existing network analysis Python tools and numeric packages. The focus is mainly placed on code, which will be shown and discussed together with the theory, with the idea that running code and simulations are easier to understand that formal maths. Since complex network datasets are typically huge, some high-level optimization techniques are also discussed.

    Although formulas are kept at the minimum, some maths skills are required along with basic knowledge of the Python programming language.

    At 9:00am to 10:30am, Tuesday 3rd July

    In Ravioli, Grand Hotel Mediterraneo

    Coverage video

  • Developing Android Apps Completely in Python

    by Thomas Perl

    The goal of this training is to show you how to start developing full Android applications using only Python. Different technologies will be demonstrated, including PySide-based QML GUIs using the Necessitas Qt port and the Py4A/SL4A-based approach, which can be combined with Android’s WebKit and re-use Python web frameworks.

    While Android already has a good SDK out of the box, being able to use Python instead of Java is a big advantage for some developers - it allows for quicker turnaround times, and reuse of Python libraries. Python on Android uses a native CPython build, so its performance and compatibility is very good. Combined with PySide (which uses a native Qt build) and Qt’s support for OpenGL ES acceleration, you can create fluent UIs even with Python.

    The resulting PySide-based applications run on Android, but also at least on Mac OS X, Windows, Linux and Maemo and MeeGo - basically all platforms on which Qt is available. The SL4A/Py4A-based applications will run on Android only, but will be able to utilize Android-specific APIs. Both approaches can also be combined.

    At 9:00am to 10:30am, Tuesday 3rd July

    In Pizza Margherita, Grand Hotel Mediterraneo

    Coverage video

  • Django Under Massive Loads

    by Christophe Pettus

    The Python web framework Django can handle extremely high levels of traffic… with appropriate design and support. We’ll go over techniques to keep your Django site from being crushed under high load.

    Topics include:

    • Schema/model design
    • Caching
    • Efficient view function design
    • Caching
    • Template design for high performance
    • Caching
    • Database tuning and sharding
    • Caching

    We’ll also discuss caching.

    At 9:00am to 10:30am, Tuesday 3rd July

    In Lasagne, Grand Hotel Mediterraneo

  • Hands on with PyGame

    by Radomir Dopieralski

    PyGame continues to be Python’s most popular 2D game library, even though there is growing competition from more modern OpenGL-based libraries. It is still an excellent way to learn how our favorite games work internally and to write similar games ourselves.

    During this tutorial I want to introduce the basics of using PyGame to create interactive, animated graphical applications (such as games), and then help the participants make their own start at a simple adventure game, which they can later develop further into projects of their own. I want to concentrate on commonly used techniques and patterns in game development, which are useful no matter what library is used in the implementation. In particular I will be discussing animations, tile-based maps, collision detection, event systems, internal representation of game state and different approaches to code organisation and internal structure of games.

    I have previously created a (much simpler) tutorial for creating a turn-based tile-based PyGame game and a couple of games, such as Z-Day and Jelly . I will be using the materials and experiences from those projects in the tutorial.

    Please bring your laptop with Python 2.7 and PyGame installed.

    At 9:00am to 10:30am, Tuesday 3rd July

    In Pizza Napoli, Grand Hotel Mediterraneo

    Coverage video

  • OpenStack Overview - Operational Details of a Large Python Project

    by Pádraig Brady

    OpenStack is a large and relatively new platform for building IaaS public and private clouds, which has attracted widespread backing from many companies. Covered in the talk is:

    • A summary of what OpenStack is trying to achieve
    • An overview of the structure of OpenStack services
    • Details of the multitude of python components used
    • Deployment and Packaging information

    At 9:00am to 10:30am, Tuesday 3rd July

    In Spaghetti, Grand Hotel Mediterraneo

  • Sviluppare una RESTful Web API con Python, Flask e MongoDB

    by Nicola Iarocci

    Nel corso dell’ultimo anno abbiamo lavorato all’implementazione Python di una RESTful Web API completa. Abbiamo imparato un bel po’ di cose sui best pattern REST e, naturalmente, abbiamo messo alla prova le ben note capacità web di Python, rilasciando nel frattempo un paio di progetti Open Source. Nel corso del mio intervento condividerò quel che abbiamo imparato. Prenderemo in considerazione il problematico design di una REST API ‘pura’. Vedremo che cosa offre Python in questo campo e scenderemo infine nel dettaglio, dando una occhiata al codice che abbiamo scritto. Alcune tecnologie/stack che tratteremo sono (in nessun ordine particolare): Flask, PyMongo, MongoDB, REST, JSON, XML, Heroku. Lo sapevi? Che ti piaccia o no, c’è una REST API nel tuo futuro.

    At 9:00am to 10:30am, Tuesday 3rd July

    In Big Mac, Grand Hotel Mediterraneo

    Coverage video

  • Tornado in Depth

    by Òscar Vilaplana

    Tornado is a non-blocking light-weight web server and framework. There’s been many introductory talks about it, and it’s time to look deeper into it: not just what Tornado does, but how it does it and what can we learn from it when designing our own concurrent systems.

    We’ll cover each topic in two parts: first we’ll see how to use a certain feature in our applications; then, we’ll dig into Tornado’s source code to see how it really works. How much time we’ll spend in the “how to use” will depend on the audience’s knowledge of Tornado.

    Getting Started: quickly get a simple Tornado application up and running. We’ll keep digging into, changing and poking this Application for most of the talk.

    • An Application Listens: what an Application is, how does Tornado start it and how does it process its requests.
    • Application and IOLoop: we’ll look at how the IOLoop receives the connections from the users and passes them on to the Applications.
    • Scheduled Tasks: we’ll see how to schedule tasks and how the IOLoop will run them.
    • Generators: we’ll learn to use generators to handle the responses of our asynchronous calls, and how they work with the IOLoop.
    • Websockets: how to use them and how they work.
    • IOStream: how do Tornado’s non-blocking sockets work.
    • Database: how to use non-blocking sockets to connect to a MySQL database.
    • Process: how Tornado works with multiple processes.

    At 9:00am to 10:30am, Tuesday 3rd July

    In Tagliatelle, Grand Hotel Mediterraneo

  • Becoming a better programmer

    by Harald Armin Massa

    So you have selected the best possible programming language; you learned about object oriented design, functional paradigmas, test driven development and the Structure and interpretation of computer programs.

    What else can you do? Harald did research and experimented outside computer sciences. What methods and substances are available to tune your brain for programming? This talk will describe personal experiences with various motivational, self discipline, learning and information management techniques; substances and exercises to tune your brains operating system. There will be expeditions into results from brain research. A critical judgement, pointing out snake oil and stuff that worked.

    At 11:15am to 12:15pm, Tuesday 3rd July

    In Lasagne, Grand Hotel Mediterraneo

    Coverage video

  • Building C++ APIs on Python

    by Austin Bingham

    Python has great support for interfacing with C/C++ code, and this has been used to great advantage by exposing many C/C++ libraries as Python modules. In this talk, I will reverse the equation. I will show you how you can - and why you might want to - build C++ APIs on top of Python modules and use them directly from your C++ programs.

    The topics will include:

    • Conversion of types across the language boundary.
    • Implementation of C++ idioms (e.g. the begin()/end() iterator API) on top of Python idioms.
    • Python runtime management: initialization, module loading, etc.
    • Working with the “impedance mismatches” between the languages (e.g. duck-typing vs. static typing)

    I will also discuss the reasons why C++ APIs on Python code represent a very useful and often powerful technique. The reasons range from simple pragmatism (you want to use an existing Python module in an existing C++ program) to productivity (writing Python code plus a C++ wrapper can be easier and faster than writing pure C++.)

    At 11:15am to 12:15pm, Tuesday 3rd July

    In Ravioli, Grand Hotel Mediterraneo

    Coverage video

  • Juju - Service Orchestration and Deployment

    by Kapil Thangavelu

    Juju is a new opensource configuration management and tool for deploying services into a cloud and data center environments.

    Juju provides a higher level semantic to its users of service level management rather than machine management. By rethinking this focus, Juju is able to provide real reuse of service definitions in much the same way that package management allows deployment and reuse of software bits in many different context. Juju’s goal is to be the apt of the clouds. By providing these higher level semantics to end users, juju aims to be a preferred solution for deploying services to the cloud.

    At 11:15am to 12:15pm, Tuesday 3rd July

    In Tagliatelle, Grand Hotel Mediterraneo

    Coverage video

  • OpenERP 6.1, come progettare applicazioni business

    by Davide Corio

    OpenERP 6.1 è uno dei più importanti free e opensource software scritti in Python. Immergiamoci nel framework a scopriamo come progettare la nostra applicazione.

    Durante la presentazione exploreremo gli strumenti integrati a disposizione degli sviluppatori per la creazione di nuove funzionalità, la progettazione di stampe o per dialogare con dispositivi mobile e applicazioni di terze parti.

    At 11:15am to 12:15pm, Tuesday 3rd July

    In Big Mac, Grand Hotel Mediterraneo

    Coverage video

  • Spotify, pipelining your music

    by Jyrki Pulliainen

    Spotify’s current catalog contains 15 million songs. Original storage of audio and metadata is over 500 terabytes and we’re transcoding 500 000 new audio streams a day. At it’s best the system can make an album playable just few minutes after it’s delivery.

    This talk is about building the music pipeline, all the way from the labels, who deliver music and metadata XML to our system, to the clients. Problems here are the concurrency, massive amount of data, enriching the metadata to provide better quality and to actually deliver 100 gigabytes of indexes daily.

    At 11:15am to 12:15pm, Tuesday 3rd July

    In Spaghetti, Grand Hotel Mediterraneo

    Coverage video

  • Diving into Flask (head on)

    by Andrii Mishkovskyi

    ABOUT THE TALK

    What is Flask? Is it any better than Django? Can I use Flask on Google AppEngine? Fortunately, during the course of this talk I will not have to answer any of these questions. This talk is a showcase of our experience with using Flask to build flexible and scalable web service and it focuses strongly on Flask and Flask extensions’ internals.

    WHO SHOULD COME TO THIS TALK

    Basically anybody who’s looking to invest into learning Flask or already started using Flask. Even though this talk focuses strongly on Flask-related topics, it also raises important points relevant to any web development framework or library.

    ABSTRACT

    Introduction

    • What we’re building
    • Why we chose Flask

    Flask

    • RESTful APIs and Flask.route()
    • Scaling

    Exploring Flask-Celery

    • Monitoring
    • Celery logging: Oh, my!
    • Scaling Celery

    Flask-SQLAlchemy

    • Migrations
    • Sharding and master/slave setup
    • Celery and SQLAlchemy: unexpected issues

    Performance analysis

    • Using werkzeug’s profiler
    • Integrating with statsd
    • Investigating cache usage patterns

    Summary

    At 12:15pm to 1:00pm, Tuesday 3rd July

    In Lasagne, Grand Hotel Mediterraneo

  • Going International

    by Apostolos Bessas

    The talk targets developers who wish to publish applications to an international audience and will discuss three topics that developers have to deal with: handling Unicode, localizing the software with gettext and handling time zones.

    First, the talk will address what Unicode is and how to write applications that deal with Unicode correctly. Then, the talk will discuss software localization using gettext and will conclude with a discussion of time zone handling in Python.

    No prerequisites are necessary.

    At 12:15pm to 1:00pm, Tuesday 3rd July

    In Tagliatelle, Grand Hotel Mediterraneo

    Coverage video

  • La salute per i geek: stai meglio, risparmia, vivi a lungo tramite la pigrizia

    by Nicola Larosa

    Prenditi cura della cosa più importante, il benessere psicofisico, e fallo in modo efficiente.

    Non bisogna patire la fame (magari solo un pochino), fare tanta ginnastica (magari solo un pochino) e impiegare tanto tempo e soldi (magari solo un pochino… sembra di intravedere uno schema di fondo :-) ). Occorre soltanto prendersi cura del proprio corpo usando ciò che ci permette di programmare i computer: la nostra mente.

    No, il corpo umano non è una “macchina”, come spesso si dice: è molto più complesso. Ciononostante, conoscere alcuni fatti, qualche principio guida e alcuni strumenti tecnologici (dopo tutto siamo geek, no? :-) ) può decisamente migliorare la nostra vita.

    At 12:15pm to 1:00pm, Tuesday 3rd July

    In Big Mac, Grand Hotel Mediterraneo

    Coverage video

  • NDB: the new data store library for Google App Engine

    by Guido van Rossum

    At 12:15pm to 1:00pm, Tuesday 3rd July

    In Spaghetti, Grand Hotel Mediterraneo

    Coverage video

  • PostSQL - using PostgreSQL as a better NoSQL

    by Hannu Krosing

    A short overview how PostgreSQL can be used for tasks that are currently often delegated to heterogeneous bunch of data storage solutions referred to by common name NoSQL. Covered topics from traditional NoSQL area are:

    • developer friendlyness, even for sloppy developers
    • scalability
    • easy extensibility and maintainability

    And from SQL part

    • partial ACID (Atomicity, Consistency, Isolation, Durability) ,
    • general BASE (basically available, soft state, eventually consistent)
    • business rule checking in database, hard to overlook even in case of multiple applications using the same data

    At 12:15pm to 1:00pm, Tuesday 3rd July

    In Ravioli, Grand Hotel Mediterraneo

    Coverage video

  • Dark Corners of the Standard Library

    by Fredrik Håård

    The Python Standard Library contains all kinds of useful stuff - healthy, wholesome stuff like a wide array of support libraries for file formats, a web server, easy access to OS services and functional programming tools.

    Among those benevolent libraries hide other, darker libraries. They offer tremendous power to anyone who learns how to wield them, but they also carry the threat of destroying your software’s readability, comprehension and very structure.

    This session will be a hands-on-keyboard dive into the dark magic parts of the standard library, and participants will learn valid (for a given value of valid) use-cases for practices that will give any software engineering professor nightmares. It focuses on learning by doing, and (evil?) koans are used to teach some of the most ‘clever’ tricks of standard Python.

    At 2:30pm to 4:30pm, Tuesday 3rd July

    In Pizza Margherita, Grand Hotel Mediterraneo

  • Esageriamo con uWSGI e Nginx

    by Roberto De Ioris

    Siamo tutti capaci di far girare una applicazione WSGI su un server (indipendentemente da quale sia), ma che succede quando ne vogliamo eseguire centinaia scritte da programmatori che non conosciamo (o che conosciamo fin troppo bene e quindi non vorremmo avere sui nostri server) ? uWSGI e’ un application server estremamente avanzato, usato principalmente per l’esecuzione di applicazioni WSGI. Nginx e’ un webserver estremamente performante e leggero. Il task mostrera’ come usare entrambi per costruire una infrastruttura per il deployment di applicazioni WSGI per voi, i vostri collaboratori e i vostri clienti, tenendo i costi hardware (e umani) al minimo sindacale

    At 2:30pm to 3:30pm, Tuesday 3rd July

    In Big Mac, Grand Hotel Mediterraneo

    Coverage video

  • How to bootstrap a startup using Django

    by Philipp Wassibauer and Jannis Leidel

    Based on our (Philipp Wassibauer and Jannis Leidel) experiences building Gidsy.com this talk will give you valuable insight as to how your infrastructure will evolve and how to set up the basic components (Loadbalancer, Webservers, DB, Caching, Celery, CDN, …) of your site.

    Outline:

    • Basic project layout - How to handle different configurations and package your project to make it easy to deploy and install.
    • A basic timeline of how your infrastructure needs will evolve - Starting from the initial 1 server setup we will talk about how and when to scale out your servers.
    • Replicate production environments in development - We developed a way to have all your services (Webserver, Celeryd, Solr, Cache, Compass compiler, …) running using one management command.
    • Setting up Chef recipes to provision your servers.
    • Dealing with cloud based servers - Tips and tricks on how to manage your cloud based server using tools like Instagrams ec2-ssh.
    • Automating deploying to a bigger infrastructure (5+ servers) - Once the infrastructure becomes larger the deployments become more tedious. There are a few automation tools for these scenarios like the Etsy Deployinator.
    • Tips on performance - How to find and remove performance bottlenecks.

    At 2:30pm to 3:30pm, Tuesday 3rd July

    In Ravioli, Grand Hotel Mediterraneo

    Coverage video

  • Method restrictions (abstract, final, @Override etc.) and implementing them for Python

    by Péter Szabó

    The earlier a bug is discovered, the cheaper it is to fix it. Method restrictions (such as abstract, final and @Override) help the programmer in discovering incompatibilities between a class and its subclass early (i.e. at startup time for Python and at compile time for compiled languages). Python doesn’t provide method restrictions out of the box. To implement them, we take a deep dive to the realms of Python metaprogramming (decorators, metaclasses, method wrappers, traceback inspection and builtins). Lots of short and code examples will be provided to show the building blocks and how we combine them.

    At 2:30pm to 3:30pm, Tuesday 3rd July

    In Tagliatelle, Grand Hotel Mediterraneo

    Coverage video

  • PostgreSQL for Python Developers

    by Christophe Pettus

    In one intensive four-hour tutorial, we will cover everything that a Python developer needs to know to set up, maintain, and get best performance out of a PostgreSQL database:

    • Installing PostgreSQL from source, or using standard packages.
    • Basic PostgreSQL configuration for development and for deployment.
    • Routine system monitoring and maintenance.
    • Backup and recovery.
    • Introduction to advanced configuration, including replication.
    • Using ORMs to their best advantage.

    The focus is the skills needed by developers in a devops environment who need to step into the database administrator role. No previous database administration experience is assumed.

    At 2:30pm to 4:30pm, Tuesday 3rd July

    In Pizza Napoli, Grand Hotel Mediterraneo

  • Python White Magic

    by Antonio Cuni

    Python is a powerful language. Beginners appreciate its surface of simplicity and ease to use, where (almost) everything “just works” (TM) as expected. However, under the hood, there is a whole world of rules and layers which can be (ab)used by experienced programmers to tweak the language in unexpected ways.

    Often, these techniques are labeled as “hacks” or “black magic”, to indicate that they should not used in production or that you should not look at it unless you are “initiated” to some not better specified sorcery.

    However, if used with care and in the right places, these techniques can lead to better, faster and/or more readable code, or can be extremely useful during debugging, and thus deserve the definition of “white magic” which programmers can use to improve their code. Moreover, looking at how they are implemented is a good way to learn about some of the deep corners of the language.

    This talk presents some of these advanced techniques which I have seen in use in real code, e.g. in PyPy or pdb++. Including, but not limited to: creating new functions by reusing existing code objects, instantiating multiple copies of the same module, playing with metaclasses in various ways, changing the __class__ of an object on the fly to get specialized behavior, automatically entering the debugger when a certain event occur, etc.

    At 2:30pm to 3:30pm, Tuesday 3rd July

    In Spaghetti, Grand Hotel Mediterraneo

    Coverage video

Schedule incomplete?

Add a new session

Filter by Day

Filter by coverage

Filter by Topic

Filter by Venue

Filter by Space