List of videos

Daniele Procida - Documentation-driven development
Daniele Procida - Documentation-driven development [EuroPython 2016] [21 July 2016] [Bilbao, Euskadi, Spain] (https://ep2016.europython.eu//conference/talks/documentation-driven-development) One secret of Django's success is the quality of its documentation. As well as being key to the quality of the code itself, it has helped drive the development of Django as a community project, and even the professional development of programmers who adopt Django. I'll discuss how Django has achieved it, and how any project can easily win the same benefits. ----- Part of my job title is _Documentation Manager_. When I explain this to a programmer outside the Python/Django community, the reaction can be anything from bewilderment to a kind of mild horror. When I mention it to a Python/Django programmer, the response is usually: _Oh, cool_. In fact, one secret of Django's success is the quality of its documentation, and everyone who uses Django is quick to note this. The returns on Django's investment have been substantial, but some of them are also surprising. The documentation has clearly been key to the _quality of the code itself_, but also (less obviously) to the _development of Django as a community project_, and even the _professional development of programmers_ who adopt Django. I'll discuss how Django has achieved it, and how any project can easily win the same benefits.
Watch
Catherine Holloway - Simplifying Computer Art in Python
Catherine Holloway - Simplifying Computer Art in Python [EuroPython 2016] [21 July 2016] [Bilbao, Euskadi, Spain] (https://ep2016.europython.eu//conference/talks/simplifying-computer-art-in-python) The Processing project demonstrated that computer art can attract a wider audience to programming. Python has a robust catalog of libraries, including two interfaces to OpenGL. However, none of these libraries replicate Processing’s simplicity when drawing to the screen. I will present my solution to this problem: a re- implementation of VPython’s visual module purely in python called PygletHelper. ----- Processing is a programming language originally developed by the MIT media lab with the goal of allowing artists, educators, and many others develop striking computer generated or assisted projects without requiring deep knowledge of software engineering or computer graphics. Like Processing, Python has become a favourite language of users from diverse backgrounds, such as web development, education, and science. Unlike Processing, python lacks a simple and easy to use library for drawing shapes. Python’s existing libraries for scientific computing and data analysis could be made even more awesome when combined with a simple drawing library. VPython contains a module called visual that established a simple API and convention for drawing shapes, however it was written in C++, prior to the development of pyglet, and thus is not entirely cross- platform. In this talk, I will demonstrate my solution to this problem: a re-implementation of visual purely in Python called PygletHelper. Pyglet, an existing python library, provides a python interface to OpenGL. PygletHelper is built on pyglet but obscures all of the OpenGL calls, such that the user can draw simple geometric shapes to the screen and animate them without needing to know about computer graphics terminology, memory usage, or C data types. I will also show some need visualizations of science and music in my talk, as well as the graphical glitches encountered implementing the library.
Watch
Rudy Sicard - Leveraging documentation power for better web APIs
Rudy Sicard - Leveraging documentation power for better web APIs [EuroPython 2016] [21 July 2016] [Bilbao, Euskadi, Spain] (https://ep2016.europython.eu//conference/talks/leveraging-documentation-power-for-better-web-apis) Web APIs that are easier to understand, develop, test and use, is a popular subject. "An API is only as good as its documentation". We decided to play with this proverb and leverage the power of documentation. We propose to use the code documentation and the type system to provide lots of free features: explorable APIs, better error messages, automatic testing. Python is perfect to explore code and documentation dynamically. We'll demonstrate what we came up to and the lessons we've learned. ----- 'Rich' web APIs that are easier to understand, develop, test and use, is a popular subject. There are a lot of new specification languages (e.g. swagger, apiblueprint ...) and libraries (django-rest-framework, drf ...) that provide features in this direction. Following the old proverb "An API is only as good as its documentation", we decided to play with these ideas and focus on leveraging the power of documentation. We propose to use the code documentation and the type system to provide: - browsable APIs, that are easy to interact with and visualize, reducing the need to provide custom UIs - verification of inputs/outputs along with precise error message if needed - automatic [de]-serialization of inputs/ouputs outside of the domain code - smart exception handling, e.g. exceptions that are not documented are automatically converted into internal errors - automatic testing, e.g. input, output and result including exceptions are tested ensuring the code works and the documentation is up-to-date. This use case is one of the rare situation where introspection is desirable and unavoidable. And Python is a good language to explore/exploit code and documentation dynamically. The perfect excuse to spend some time on meta coding a first implementation while being at work. We'll demonstrate what we came up to, the advantages and limitations compared to other approaches. And we'll share the lessons we learned from this experiment.
Watch
Andrii Soldatenko - What is the best full text search engine for Python?
Andrii Soldatenko - What is the best full text search engine for Python? [EuroPython 2016] [21 July 2016] [Bilbao, Euskadi, Spain] (https://ep2016.europython.eu//conference/talks/what-is-the-best-full-text-search-engine-for-python) Compare full text search engines for Python. ----- Nowadays we can see lot’s of benchmarks and performance tests of different web frameworks and Python tools. Regarding to search engines, it’s difficult to find useful information especially benchmarks or comparing between different search engines. It’s difficult to manage what search engine you should select for instance, ElasticSearch, Postgres Full Text Search or may be Sphinx or Whoosh. You face a difficult choice, that’s why I am pleased to share with you my acquired experience and benchmarks and focus on how to compare full text search engines for Python.
Watch
Iwan Vosloo - What's the point of Object Orientation?
Iwan Vosloo - What's the point of Object Orientation? [EuroPython 2016] [21 July 2016] [Bilbao, Euskadi, Spain] (https://ep2016.europython.eu//conference/talks/whats-the-point-of-object-orientation) This talk covers the basics of what Object Orientation (OO) is really about. It focusses on the problem OO is aimed at solving and shows where the OO mechanisms of Python fit into this picture. This material can serve as an introduction to OO for beginners, but also as a homing signal for experienced programmers who are doubting whether they are reaping the benefits OO promises. ----- Object Orientation (OO) is often introduced in terms of how it is implemented by a specific language. However, understanding the theory underlying OO is not quite the same as understanding how OO concepts are supported by a particular language. It is insightful to understand the simple OO fundamentals and how these map to the particular implementation provided by Python. In this talk I will first explain the very basics of OO from a language-neutral point of view with the aim of showing what OO can offer you and to give a glimpse of the simple mathematical theory underlying OO. I hope to give you enough information to help you distinguish between better and worse designs and to detect whether you’re using OO as it was intended. I will also very briefly show how these fundamentals map to Python. This talk is for anyone: whether you’re new at Object Orientation, or a practitioner wondering whether OO is worth the effort you’ve spent trying to use it.
Watch
Naomi Ceder - Come for the Language, Stay for the Community
Naomi Ceder - Come for the Language, Stay for the Community [EuroPython 2016] [21 July 2016] [Bilbao, Euskadi, Spain] (https://ep2016.europython.eu//conference/talks/keynote-stay-for-the-community) While Python the language is wonderful, the Python community and the personal, social, and professional benefits that flow from involvement in a community like ours are often more compelling. Learn about the goals of the Python Software Foundation and how everyone can take part to help build even better Python communities locally, regionally, and globally. I will also discuss some of our strengths as a community, and also look at some of the challenges we face going forward. ----- Python is a powerful and flexible tool that many of us love and use in many ways. And yet, as wonderful as the language is, many would say that the community is even more attractive. This talk will focus on involvement in the Python community and what that means - in particular the many personal, social, and professional benefits that flow from involvement in a community like ours. I will also discuss what the Python Software Foundation does, what its goals and purpose are, and how everyone in the community can take part in the PSF to help build even better Python communities. This will include specific explanations of the membership model and how active contributors (both in terms of code and community organisation) can and should become full voting members of the PSF. I will also touch on our strengths, like our commitment to safe and inclusive spaces and our devotion to education, and also look at some of the challenges we face as a community going forward.
Watch
Lauris Jullien - Asynchronous network requests in a web application
Lauris Jullien - Asynchronous network requests in a web application [EuroPython 2016] [21 July 2016] [Bilbao, Euskadi, Spain] (https://ep2016.europython.eu//conference/talks/asynchronous-network-requests-in-a-web-application) Introducing asynchronous calls from within an endpoint in a web app can be desirable but hard to achieve. This talk will explore different solutions for this (running Twisted event loop, Co-Routines, Asyncio, …) and how well they play with the different parallelization models of common WSGI web servers. ----- In the more and more popular SOA paradigm, it’s common for services to have to compose responses with resources from many different services. Everyone’s first idea will probably be to call each service synchronously with your favorite python HTTP library. This unfortunately doesn’t scale well and tens of successive network calls will make your endpoints painfully slow. One solution is to parallelize these network calls. If you are already using an asynchronous web app (such as Tornado or Twisted), more asynchronous in your asynchronous shouldn’t be much of a challenge. But if you chose not to dive into the madness of chained Deferred calls, and used a standard prefork/threaded WSGI web server (such as Gunicorn or uWSGI) to run your Django/Flask/Pyramid application, you might find yourself wondering how to manage these asynchronous calls. This talk will explore different solutions (running Twisted event loop, Co-Routines, Asyncio, …) and how well they play with the different parallelization models of WSGI web servers.
Watch
Raphael Pierzina - Pytest 3.0
Raphael Pierzina - Pytest 3.0 [EuroPython 2016] [21 July 2016] [Bilbao, Euskadi, Spain] (https://ep2016.europython.eu//conference/talks/pytest-30) - New features of pytest's upcoming major version 3.0 - Breaking changes and other important information - Recap of the first developer sprint in June, 2016 - Thank you notes to all who have contributed to the fundraiser ----- Pytest is a mature testing framework for Python that is developed by a thriving and ever-growing community of volunteers. Following the principle of "no API is the best API" it uses plain assert statements and regular Python comparisons. Writing tests with pytest requires little to no boilerplate code and powerful features allow easy parametrization and intelligent test selection. In this talk we will have an in-depth look at new features of pytest 3.0 and live demo possible use cases. We will also learn about important bugfixes and other enhancements of the upcoming major release. Backwards-incompatible changes will be addressed and changes made to the documentation will be highlighted. If you are already familiar with pytest, you will be happy to hear about significant improvements of the fixture and hook system but also what's in store for a better integration with tox, an important tool that allows testing across different Python versions. In June, 2016 more than 25 Pythonistas from around the globe gather in Freiburg, Germany to work on the release and set the path for future developments of the core framework. This is a big step forward for the project made posssible by a fundraiser that reached 108% of it's initial goal. I will share our experiences from the developer sprint while they are still fresh and explain why these events are incredibly important for a community and give advice on how to organize your own.
Watch
Yury Selivanov - async/await in Python 3.5 and why it is awesome
Yury Selivanov - async/await in Python 3.5 and why it is awesome [EuroPython 2016] [21 July 2016] [Bilbao, Euskadi, Spain] (https://ep2016.europython.eu//conference/talks/asyncawait-in-python-35-an-why-it-is-awesome) async/await is here, everybody can use it in Python 3.5. It's great and awesome, yet only a few understand it. As a PEP 492 author, I'd really like to have a chance to better explain the topic, show why async/await is important and how it will affect Python. I'll also tell a story on how I worked on the PEP -- starting from an idea that I discussed with Guido on PyCon US 2015, and landing to CPython source code one and a half moths later! ----- The talk will start with a brief coverage of the story of asynchronous programming in Python -- Twisted, Tornado, Stackless Python & greenlets, eventlet, Tornado, asyncio & curio. We've come a really long road, and it's important to understand how we ended up with async/await. Then I'll go over asyncio and curio, showing async/await by example, explaining that in reality it's a very easy to use language feature. You don't need to know all the details to be able to successfully use the new syntax, and even build new frameworks on top of it. I'll then explain the async/await machinery in CPython, starting with generators and 'yield' expression, showing what is 'yield from' and finally, demonstrating how async/await is implemented in CPython. This will ensure that those who want to invent some new crazy ways of using async/await will have a starting point! I'll end the talk with a story of how I came up with the idea. How I shared it with Guido van Rossum, Victor Stinner, and Andrew Svetlow. How the first version of the PEP was born, and how we managed to push it to Python 3.5 in under two months period. The goal is to make people understand that it's possible to change your programming language -- in fact, Python, as any other programming language, wants new features and capabilities to be relevant.
Watch