List of videos

Iwan Vosloo - Reahl: The Python-only web framework

Iwan Vosloo - Reahl: The Python-only web framework [EuroPython 2015] [23 July 2015] [Bilbao, Euskadi, Spain] Reahl is a full-featured web framework with a twist: with Reahl you write a web application purely in Python. HTML, JavaScript, CSS and all those cumbersome web technologies (and a few other lower level concerns) are hidden away from you. As far as web frameworks go this is truly a paradigm shift: away from the cobwebs of all the different web technologies, template languages and low-level details -- towards being able to focus on the goals at hand instead, using a single language. In this talk I will give you a brief idea of what Reahl is all about: why it is worthwhile doing, how it works, where we are and what still needs to be done. I hope to convince you that this is an important direction for web frameworks, and of how unique Reahl is. Developing such an abstract framework is an ambitious goal. I'd like to convey the message that what we have achieved so far, and the strategy lessons learnt along the way demonstrate this goal to be realistic and practical.

Watch
Stefan Behnel - Get native with Cython

Stefan Behnel - Get native with Cython [EuroPython 2015] [21 July 2015] [Bilbao, Euskadi, Spain] [Cython][1] is not only an excellent and widely used tool to speed up computational Python code, it's also a very comfortable way to talk to native code and libraries. The Cython compiler translates Python code to C or C++ code, and supports static type annotations to allow direct use of C/C++ data types and functions. The tight integration of all three languages makes it possible to freely mix Python features like generators and comprehensions with C/C++ features like native data types, pointer arithmetic or manually tuned memory management in the same code. This talk by a core developer introduces the Cython compiler by interactive code examples and presents recent enhancements in the language that continue to make Cython the best choice for the development of fast and portable Python extensions. **Update:** Examples used in presentation as **[IPython/Jupyter][3]** or **[HTML][2]** [1]: http://cython.org/ [2]: http://consulting.behnel.de/ep/2015/ep15-cython.ipynb [3]: http://consulting.behnel.de/ep/2015/ep15-cython.html

Watch
Adriano Petrich - Yak shaving a good place to eat using non negative matrix factorization

Adriano Petrich - Yak shaving a good place to eat using non negative matrix factorization [EuroPython 2015] [23 July 2015] [Bilbao, Euskadi, Spain] Trying to find a good place to eat has become much easier and democratic with online reviews, but on the other hand, that creates new problems. Can you trust that 5 star review of fast food chain as much as the 1 star of a fancy restaurant because "Toast arrived far too early, and too thin"? We all like enjoy things differently. Starting of on the assumption that the "best pizza" is not the same for everyone. Can we group users into people that has similar tastes? Can we identify reviews and restaurants to make sense of it? Can that lead us to a better way to find restaurants that you like? Using some data handling techniques I walk you through my process and results that I've got from that idea. There are no requisites for this talk except basic python and math knowledge (matrices exist)

Watch
Filipe Ximenes - What is wrong with API wrappers and how can we do better

Filipe Ximenes - What is wrong with API wrappers and how can we do better [EuroPython 2015] [20 July 2015] [Bilbao, Euskadi, Spain] Wrappers are an essential tool for interacting with web APIs. They reduce the amount of work needed to make requests and sometimes, only sometimes prevent the developer from dealing with extensive documentations. It’s common to encounter libs that require not only the study of their own documentation, but also the APIs one, duplicating the needed work. This is caused because wrappers do not follow a design pattern, each developer creates it’s own design, coding style and use their preferred tools. [Tapioca][1] is what can be called: "a wrapper generator”. Creating API wrappers with Tapioca is extremely easy and fast. For example, it took 1 hour to write the full wrapper for the [Parse.com][2] REST API. But this is not the more important thing, Tapioca libs have a similar interface so once understood how they work, developers can work with any other without the need to learn a new interface. Tapioca is also thought to comply with REST features and takes HATEOAS (Hypermedia as the engine of application state) seriously, so “following” links and pagination are natively supported. Explorability is also a key concept and developers are encouraged to play with Tapioca packages and find their way through APIs before writing their final code. Although there are some production ready [Tapioca wrappers][3], it is a work in progress, there are still many features to be explored. [1]: https://github.com/vintasoftware/tapioca-wrapper [2]: http://parse.com [3]: https://github.com/vintasoftware/tapioca-wrapper#tapioca-comes-in-many-flavours

Watch
Cosmin Poieana - Argus - the omniscient CI

Cosmin Poieana - Argus - the omniscient CI [EuroPython 2015] [21 July 2015] [Bilbao, Euskadi, Spain] Bring the continuous integration to a new level, through a platform/project independent framework able to give you unittest-like reports. Argus is a scenario-based application written in Python, driven by custom recipes under configurable environments, that can be used for testing a wide variety of small and big projects, with the ability of querying live data from the in-test application. Until now, it's successfully used with [cloudbase-init][1] (a robust cloud initialization service for instances) under OpenStack and not only, due to its extensiveness and the ability to mimic different infrastructures. More details can be found on the package page: https://github.com/PCManticore/argus-ci. The goals of this talk are to show its generic scalability, how simple is to create such kind of recipes, the relationship between scenarios, introspection and tests and, but not last, the unlimited freedom of creating very custom aspects of these entities which lead to relevant and in-depth ready for analysis logs. There are no major prerequisites to understand it, just to be familiar with Python and optionally have a focus on cloud infrastructures. [1]: https://github.com/stackforge/cloudbase-init

Watch
Stefan Baerisch - A Deep Look at Logging

Stefan Baerisch - A Deep Look at Logging [EuroPython 2015] [21 July 2015] [Bilbao, Euskadi, Spain] Do you know what your application did last night? Python logging can help you. This talk you will show you how to implement a systematic logging approach without boilerplate code and how to set up the Python logging module for different needs in production systems. We will see how to work with log files and other logging endpoints. We will address the data protection concerns that come up when logging from application with personal information. We will also look at the performance implications of logging. We will then cover best practices - how to structure logging, what to include in a log message, and how to configure logging for different use cases. We will use the Python standard logging module to implement logging. This talk is useful to beginners with some experience. An understanding of decorators is useful, but not required. Some experience in web programming is a plus.

Watch
Antonin Lacombe - From basic distance search to a complex multi criteria search

Antonin Lacombe - From basic distance search to a complex multi criteria search [EuroPython 2015] [22 July 2015] [Bilbao, Euskadi, Spain] This case study show how to start from a simple distance search on elasticsearch and haystack and implement a production ready search like airbnb. The talk will explain decay functions works with the different curves (linear, exponential, gauss) and how to send them with query scores to elasticsearch. With that you will be able to mix the distance, the price, the user activity, the number of picture and whatever you want. Additionally I will show how to write a custom ElasticsearchSearchQuery and ElasticsearchSearchBackend because this is not yet supported by haybtacksearch. All the code is available here https://github.com/JeLoueMonCampingCar /haystack-function-score-backend.git

Watch
Floris Bruynooghe - The hook-based plugin architecture of py.test

Floris Bruynooghe - The hook-based plugin architecture of py.test [EuroPython 2015] [21 July 2015] [Bilbao, Euskadi, Spain] The hook-based plugin system used by py.test and being made available as a stand alone package allows easy extensibility based on defined extension points which can be implemented using hook functions in the plugins. Plugins can themselves call these hooks as well as define future extension points allowing for a very flexible design. py.test itself uses this plugin system from the ground up with the entire application being implemented by built-in plugins. This architecture has proven powerful and flexible over the years, on both command line tools as well as long running daemons. This talks will describe how the plugin system works and how it deals with passing arguments and return values 1:N hook calls. It will also describe how to design an application consisting entirely of plugins. While not specifically talking about py.test it will also give a solid understanding on how plugins work in py.test. Slides: http://devork.be/talks/pluggy/pluggy.html Org-mode source: http://devork.be/talks/pluggy/pluggy.org

Watch
Pablo Enfedaque - Decorators demystified

Pablo Enfedaque - Decorators demystified [EuroPython 2015] [23 July 2015] [Bilbao, Euskadi, Spain] Do you know what happens every time you use the **@** symbol in Python? In this talk we will see the magic behind the _syntactic sugar_ of the decorators. To understand how they internally work we will see in detail Python's **scopes**, **namespaces** and **closures**, and finally we will manually apply our own handcrafted decorator. This talk is an improved version (in English) of the talk I delivered at PyConES 2013 (the feedback was pretty positive): [https://www.youtube.com/watch?v=d9-yTnJgcg4 ][1] Level: Intermediate. Attendees must have previous knowledge of Python and should be somehow familiar with the **'@'** notation to decorate a function. The **slides** of the talk can be downloaded from here: [https://speakerdeck.com/pablito56/europython-2015-decorators- demystified][2] [1]: https://www.youtube.com/watch?v=d9-yTnJgcg4 [2]: https://speakerdeck.com/pablito56/europython-2015-decorators-demystified

Watch