List of videos

Elizaveta Shashkova - Monkey-patching: a magic trick or a powerful tool?

Elizaveta Shashkova - Monkey-patching: a magic trick or a powerful tool? [EuroPython 2016] [22 July 2016] [Bilbao, Euskadi, Spain] (https://ep2016.europython.eu//conference/talks/monkey-patching-a-magic-trick-or-a-powerful-tool) Monkey-patching is a dynamic modification of a class or a module at runtime. The Python gives developers a great opportunity to use monkey-patching almost everywhere. But should developers do it? Is it a magic trick or a powerful tool? In this talk we will try to give the answers to these questions and try to figure out pros and cons of using monkey- patching. ----- First of all we will learn what is monkey-patching in Python and consider some basic examples of using it. Of course, monkey-patching may cause some problems in the code. We will consider bad ways to use it and try to learn different types of problems monkey-patching may lead to. Despite of some bugs that may appear in a patched program, monkey- patching is used in a real life rather often. There are some reasons and motives to do it. We will consider the examples of using monkey- patching in real projects like `gevent`, in some other libraries and in testing. Also we will learn some monkey-patch tricks that helps to solve real-life problems in the Python debugger which is a part of the PyCharm and the PyDev. After that we will compare using of monkey-patching in Python to using it in an another dynamic language Ruby. Are there any differences between them? Is our reasoning correct for Ruby? Finally we will conclude all our thoughts and examples and try to give the answer to the question from title.

Watch
John Sutherland - Iteration, iteration, iteration

John Sutherland - Iteration, iteration, iteration [EuroPython 2016] [22 July 2016] [Bilbao, Euskadi, Spain] (https://ep2016.europython.eu//conference/talks/iteration-iteration-iteration) There should be something for everyone in this whistle–stop tour of iteration in Python setting off from `for`–loops, and riding cross–country to multiplexing coroutines! See and hear the amazing sights and sounds of list comprehensions, and generators. Take in the amazing vistas from `itertools`, and be amazed at the magnificent `yield`! ----- We’ll take detours to higher–order functions, closures, and decorators. And cover the FP inspired builtins `map`, `filter`, and `reduce`, as well as the epitome of Pythonic programming, `enumerate`.

Watch
Hynek Schlawack - Get Instrumented!

Hynek Schlawack - Get Instrumented! [EuroPython 2016] [22 July 2016] [Bilbao, Euskadi, Spain] (https://ep2016.europython.eu//conference/talks/get-instrumented) To get real time insight into your running applications you need to instrument them and collect metrics: count events, measure times, expose numbers. Sadly this important aspect of development was a patchwork of half-integrated solutions for years. Prometheus changed that and this talk will walk you through instrumenting your apps and servers, building dashboards, and monitoring using metrics. ----- Metrics are highly superior to logging in regards of understanding the past, presence, and future of your applications and systems. They are cheap to gather (just increment a number!) but setting up a metrics system to collect and store them is a major task. You may have heard of statsd, Riemann, Graphite, InfluxDB, or OpenTSB. They all look promising but on a closer look it’s apparent that some of those solutions are straight-out flawed and others are hard to integrate with each other or even to get up and running. Then came Prometheus and gave us independence of UDP, no complex math in your application, multi-dimensional data by adding labels to values (no more server names in your metric names!), baked in monitoring capabilities, integration with many common systems, and official clients for all major programming languages. In short: a *unified* way to gather, process, and present metrics. This talk will: 1. explain why you want to collect metrics, 1. give an overview of the problems with existing solutions, 1. try to convince you that Prometheus may be what you’ve been waiting for, 1. teach how to impress your co-workers with beautiful graphs and intelligent monitoring by putting a fully instrumented Python application into production, 1. and finally give you pointers on how to migrate an existing metrics infrastructure to Prometheus *or* how to integrate Prometheus therein.

Watch
Florian Wilhelm - Handling GPS Data with Python

Florian Wilhelm - Handling GPS Data with Python [EuroPython 2016] [22 July 2016] [Bilbao, Euskadi, Spain] (https://ep2016.europython.eu//conference/talks/handling-gps-data-with-python) If you have ever happened to need to deal with GPS data in Python you may have felt a bit lost. This talk presents libraries starting from basic reading and writing GPS tracks in the GPS Exchange Format to adding missing elevation information. Also visualisation of tracks on OpenStreetmap data with interactive plots in Jupyter notebooks is covered. Additionally common algorithms for GPS like Douglas-Peucker and Kalman filter are explained. ----- If you have ever happened to need to deal with GPS data in Python you may have felt a bit lost. There are many libraries at various states of maturity and scope. Finding a place to start and to actually work with the GPS data might not be as easy and obvious as you might expect from other Python domains. Inspired from my own experiences of dealing with GPS data in Python, I want to give an overview of some useful libraries. From basic reading and writing GPS tracks in the GPS Exchange Format with the help of gpxpy to adding missing elevation information with srtm.py. Additionally, I will cover mapping and visualising tracks on OpenStreetmap with mplleaflet that even supports interactive plots in a Jupyter notebook. Besides the tooling, I will also demonstrate and explain common algorithms like Douglas-Peucker to simplify a track and the famous Kalman filters for smoothing. For both algorithms I will give an intuition about how they work as well as their basic mathematical concepts. Especially the Kalman filter that is used for all kinds of sensor, not only GPS, has the reputation of being hard to understand. Still, its concept is really easy and quite comprehensible as I will also demonstrate by presenting an implementation in Python with the help of Numpy and Scipy. My presentation will make heavy use of the Jupyter notebook which is a wonderful tool perfectly suited for experimenting and learning.

Watch
Anna Herlihy - Wrestling Python into LLVM Intermediate Representation

Anna Herlihy - Wrestling Python into LLVM Intermediate Representation [EuroPython 2016] [22 July 2016] [Bilbao, Euskadi, Spain] (https://ep2016.europython.eu//conference/talks/wrestling-python-into-llvm-intermediate-representation) The LLVM Project provides an intermediate representation (LLVM-IR) that can be compiled on many platforms. LLVM-IR is used by analytical frameworks to achieve language and platform independence. What if we could add Python to the long list of languages that can be translated to LLVM-IR? This talk will go through the steps of wrestling Python into LLVM-IR with a simple, static one-pass compiler. ----- What is LLVM-IR? The LLVM Compiler Infrastructure Project provides a transportable intermediate representation (LLVM-IR) that can be compiled and linked into multiple types of assembly code. What is great about LLVM-IR is that you can take any language and distill it into a form that can be run on many different machines. Once the code gets into IR it doesn’t matter what platform it was originally written on, and it doesn’t matter that Python can be slow. It doesn’t matter if you have weird CPUs - if they’re supported by LLVM it will run. What is Tupleware? TupleWare is an analytical framework built at Brown University that allows users to compile functions into distributed programs that are automatically deployed. TupleWare is unique because it uses LLVM-IR to be language and platform independent. What is PyLLVM? This is the heart of the talk. PyLLVM is a simple, easy to extend, one-pass static compiler that takes in the subset of Python most likely to be used by Tupleware. PyLLVM is based on an existing project called py2llvm that was abandoned around 2011. This talk will go through some basic compiler design and talk about how some LLVM-IR features make our lives easier, and some much harder. It will cover types, scoping, memory management, and other implementation details. To conclude, it will compare PyLLVM to Numba, a Python-to-LLVM compiler from Continuum Analytics and touch on what the future has in store for PyLLVM.

Watch
Claudia Guirao Fernández - Python, Data & Rock'n'Roll

Claudia Guirao Fernández - Python, Data & Rock'n'Roll [EuroPython 2016] [22 July 2016] [Bilbao, Euskadi, Spain] (https://ep2016.europython.eu//conference/talks/python-data-rocknroll) Approach to topics, evolution, correlations through the lyrics of some of the greatests rock bands of all times. We will talk about the different phases of this personal project, in which I approach to a passion through a scientific method. This is a project that combine different techniques: - web crawling - NoSQL - Natural Language Processing - Data visualization ----- Have you ever wonder how David Bowie has evolved into the theme of his songs throughout their studio albums? Want to find out in what looks like Nirvana and Pink Floyd? Approach to topics, evolution, correlations through the lyrics of some of the greatests rock bands of all times. We will talk about the different phases of this personal project, in which I approach to a passion through a scientific method. This is a project that combine different techniques: - Web crawling - NoSQL - Natural Language Processing - Data visualization

Watch
Ian Lewis - Deep Learning with Python & TensorFlow

Ian Lewis - Deep Learning with Python & TensorFlow [EuroPython 2016] [22 July 2016] [Bilbao, Euskadi, Spain] (https://ep2016.europython.eu//conference/talks/deep-learning-with-python-tensorflow) Python has lots of scientific, data analysis, and machine learning libraries. But there are many problems when starting out on a machine learning project. Which library do you use? How do they compare to each other? How can you use a model that has been trained in your production app? In this talk I will discuss how you can use TensorFlow to create Deep Learning applications. I will discuss how it compares to other Python machine learning libraries, and how to deploy into production. ----- Python has lots of scientific, data analysis, and machine learning libraries. But there are many problems when starting out on a machine learning project. Which library do you use? How do they compare to each other? How can you use a model that has been trained in your production application? TensorFlow is a new Open-Source framework created at Google for building Deep Learning applications. Tensorflow allows you to construct easy to understand data flow graphs in Python which form a mathematical and logical pipeline. Creating data flow graphs allow easier visualization of complicated algorithms as well as running the training operations over multiple hardware GPUs in parallel. In this talk I will discuss how you can use TensorFlow to create Deep Learning applications. I will discuss how it compares to other Python machine learning libraries like Theano or Chainer. Finally, I will discuss how trained TensorFlow models could be deployed into a production system using TensorFlow Serve.

Watch
Mike BRIGHT - Jupyter for everything else

Mike BRIGHT - Jupyter for everything else [EuroPython 2016] [22 July 2016] [Bilbao, Euskadi, Spain] (https://ep2016.europython.eu//conference/talks/jupyter-for-everything-else) Sure you can do a chunk of scientific exploration and stuff in Jupyter in your choice of language supplemented with visuals and that's already awesome ! But let's head off the beaten track a little to look at other uses, especially command-line. We'll look at some alternate uses of Jupyter ... ----- - Write command-line tutorials, cheat sheets in an easy to maintain format. - Perform visualization tasks for command-line tools - Write blog posts - Create interactive presentations (thanks Damian !) - Publish interactive books, articles and blog posts - HTML/js/css experimentation

Watch
Tobias Oberstein - Scaling Microservices with Crossbar.io

Tobias Oberstein - Scaling Microservices with Crossbar.io [EuroPython 2016] [22 July 2016] [Bilbao, Euskadi, Spain] (https://ep2016.europython.eu//conference/talks/scaling-microservices-with-crossbario) Microservices offer an efficient way to only scale those parts of your application which are performance bottlenecks. We will demo and explain open source tech which allows the easy scaling out across distributed devices. The audience will be able to donate processor cycles from their devices to our demo application (and win a hardware prize). The demo uses [Crossbar.io][1], an open souce application router (written in Python), and all demo code is open source. [1]: http://crossbar.io ----- Microservices offer an efficient way to only scale parts of your applications which are hotspots. Instead of running multiple instances of a monolithic application, with all the complexity and operational run-time overhead that entails, you can scale only the functionality which is a bottleneck. Today that increasingly means scaling out, not up. We will go over open source technologies which allow the easy scaling out across distributed devices. A live demo will allow the audience to participate with its devices (including mobile phones) in an application. (There will be prizes for the donors.) The demo uses [Crossbar.io,][1] an open source router for the open [Web Application Messaging Protocol (WAMP) ][2] written in Python. WAMP supports routed Remote Procedure Calls, and Crossbar.io uses these to implement various load-balancing strategies across endpoints which register a particular procedure. WAMP has a first-class library for Python ([Autobahn|Python][3]), but is cross-language, with support for a total of 11 languages. This allows you to implement polyglot and heterogenos microservices applications, from Python to Node.js to C# right into the browser. Microservices can run anywhere, since the outgoing connections to the router which WAMP uses avoid NAT problems. All software used is open source, and all demo code is provided on GitHub under the MIT license. [1]: http://crossbar.io [2]: http://wamp-proto.org [3]: http://autobahn.ws/python

Watch