Your current filters are…
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!
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).
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.
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.
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.
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.
2nd–8th July 2012