List of videos

Giulio Calacoci - PostgreSQL and Python, a match made in heaven
"PostgreSQL and Python, a match made in heaven [EuroPython 2017 - Talk - 2017-07-11 - PyCharm Room] [Rimini, Italy] his talk is about a love story. The perfect love between PostgreSQL and Python. PostgreSQL is the default database choice for many Python developers, because it is robust, stable and open source. In 2ndQuadrant, we breathe PostgreSQL and we love python too, using it as much as possible for internal and external open source projects. We want to share our love for python and PostgreSQL and how they work together. So let us tell you a real love story! License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2017.europython.eu/en/speaker-release-agreement/
Watch
Amit Nabarro - Asynchronous I/O and the real-time web
"Asynchronous I/O and the real-time web [EuroPython 2017 - Talk - 2017-07-11 - Arengo] [Rimini, Italy] Building web applications is one of the most common uses of Python. With a plethora of different web frameworks aiming at varying audiences, it has become a rather simple and well-documented process to develop web applications and web services. So popular it has become that the WSGI specification is the industry standard protocol for developing web applications with Python. But the WSGI standard is lacking with two major limitations: It supports only the ‘traditional’ synchronous http request-response cycle thus creating a ‘glass ceiling’ with the amount of requests a single server can handle – often described as the C10K problem It does not provide an easy and efficient way of developing two-way communication between servers and clients. Often referred to as the real-time web this capability has become increasingly popular with modern web applications. Over the past decade multiple networking libraries have been developed to address these limitations. In this talk we will explore: What is an asynchronous web server and how it differs from other, WSGI-based web servers. What is concurrency and how it can help us achieve supreme performance and scalability in our web applications. We will survey noteworthy libraries which will help achieve true concurrency. How to develop real-time communication, using web sockets, with our Javascript application Concerns, limitations and pitfalls when developing asynchronous web applications. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2017.europython.eu/en/speaker-release-agreement/
Watch
Jonas Obrist - Why you might want to go async
"Why you might want to go async [EuroPython 2017 - Talk - 2017-07-11 - Arengo] [Rimini, Italy] Asynchronous programming is becoming a hot topic in the Python community, especially with the rise of popularity of Python 3 and the new asyncio library in its standard library. However, it can still be a confusing and mysterious concept. In this talk, I will explain what async programming is, how it works and how it could benefit you. My goal of this talk is that at the end of it, you have an idea about what we mean when we say asynchronous programming in Python and you know how and when to use it. In the first part of the talk, I will dive into what asynchronous programming is and what it isn't. Explaining the difference between IO bound code and CPU bound code. Then I will explain how this actually works in Python, explaining the idea of an event loop, coroutines and cooperative multitasking. Finally, I will talk about why this may be beneficial, what kind of applications can really benefit from this and provide some examples from my experience. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2017.europython.eu/en/speaker-release-agreement/
Watch
Paweł Lewtak - Improve your developer's toolset
"Improve your developer's toolset [EuroPython 2017 - Talk - 2017-07-11 - PythonAnywhere Room] [Rimini, Italy] For Python development, we mainly focus on IDE, browser and sometimes a command line. I want to focus on command line tools which seem to be a bit forgotten these days. Let me show a few tools I'm using on daily basis and how they helped me become more productive. I'll prove it's possible to start up a new environment from scratch that feels like $HOME. Finally, I want to convince you how important it is to constantly challenge yourself and your tools, how useful is a custom toolbox tailored to you. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2017.europython.eu/en/speaker-release-agreement/
Watch
Mariano Anaya - Discovering Descriptors
"Discovering Descriptors [EuroPython 2017 - Talk - 2017-07-11 - PythonAnywhere Room] [Rimini, Italy] Python is full of amazing (yet often overlooked) features, that can help us write better, cleaner, and more maintainable code. One of them is the descriptors interface. By means of descriptors, we can run code when accessing or setting properties of another object. This can have a lot of applications, and keeping descriptors in mind might come in handy when facing a hard problem. The goal of the talk is to explore descriptors, and how they can be written, as well as analysing some interesting examples in well-known libraries or projects in order to identify scenarios where descriptors are the Pythonic way to go. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2017.europython.eu/en/speaker-release-agreement/
Watch
Vita Smid - Feeding a real-time user interface
"Feeding a real-time user interface [EuroPython 2017 - Talk - 2017-07-11 - Anfiteatro 2] [Rimini, Italy] Imagine you have some streaming computations running on a server. Client programs subscribe to real-time updates, so that they may visualise the computations for end users. How do you share this constantly changing server state with all connected clients? Sending an entire snapshot after each change is very inefficient, so you must implement some sort of incremental updates – diffs. But how do you generate these diffs on the server? And how do you represent them so the clients know how to apply them to update their own state? We have been working on these problems for a long time while building a stock trading platform in Python. I'd like to show you a couple of open source libraries that we developed for this purpose, and share our experience with tracking state and propagating it to user interfaces running in other processes. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2017.europython.eu/en/speaker-release-agreement/
Watch
Juan Manuel Santos - You need more security in your application packaging
"You need more security in your application packaging [EuroPython 2017 - Talk - 2017-07-11 - Anfiteatro 2] [Rimini, Italy] There are as many different ways to package an application as there are programming or scripting languages. No one tool or library is in itself better than another; however when security comes into the picture, there is definitely a pattern between ease of installation and how secure the delivered application is. As more work is put into packaging the application, more measures can be taken in order to ensure its integrity and prevent security issues. This talk will cover: - The roles involved in the lifecycle of an application, from the start of the development process until it reaches the end user and it is actually used. - The inherent problems in this subject, regarding installation and security, as well as how they are related. - The different ways of packaging an application in order to deliver it to an end user, focused on a Python perspective. After the talk, attendees will have a better grasp on which is the best way for them to package and deliver their application according to their environment and target audience. They will also learn about the upgrade path to switch from one delivery method to another, should they need or want to. For this talk, it is desired that attendees have some general systems knowledge. Even though the talk will be focused on Python applications, some knowledge of information security is desired. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2017.europython.eu/en/speaker-release-agreement/
Watch
Mike Müller - Programming in Parallel with Threads
"Programming in Parallel with Threads [EuroPython 2017 - Talk - 2017-07-11 - PyCharm Room] [Rimini, Italy] Threads are typically not the way to take advantage of multiple CPUs for CPU-bound problems. The Global Interpreter Lock (GIL) allows the use of only one CPU at the time when using threads. However, the GIL is released for IO task The use case is a scientific simulation model that has to run 18,000 different simulations. The input data for these simulations need to be extracted from a common database, re-assembled and translated into several input files per simulation. After each simulation that is run with an external, standalone executable, the output data needs to be gathered and rearranged in a output database. The implementation scaled up to 50 threads. On a eight-core machine more than 90 % usage of all CPUs could be achieved, bringing the total run time down to about two hours from about 15 hours. Depending on the use case, threading can help to speedup a program and even take advantage of multiple CPUs. This talk presents such a use case. The approach can be translated to problems from other domains if the sub-tasks can be turned into IO tasks. Asynchronous programming could have been used here. However using a thread per task and using class that represents a task, is likely conceptually simpler for programmers not used to asynchronous programming. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2017.europython.eu/en/speaker-release-agreement/
Watch
Christoph Heer - How SAP is using Python to test its database SAP HANA
"How SAP is using Python to test its database SAP HANA [EuroPython 2017 - Talk - 2017-07-11 - PyCharm Room] [Rimini, Italy] SAP operates one of the largest test infrastructure to test its in-memory database SAP HANA. The infrastructure provides different services like continues integration, code coverage and code linting for a huge C++ project with Python test coding. These services are essential for the development teams and quality specialists. Without these services developing and shipping of new SAP HANA version wouldn’t be possible. In 2010, we started with a single Jenkins master with ten nodes. But to keep our testing time acceptable for the growing number of developers we had to scale up and that led to multiple different scaling challenges. The current test infrastructure is powered by more than thousand physical servers. Scaling of the infrastructure was only possible with custom optimizations like improved scheduling, expressive test configuration and robust tooling implemented in our favorite language Python. With the flexibility and power of Python it’s possible for developers to implement complex test scenarios to verify features and mitigate regressions. On infrastructure side, it has been easier to extend, optimize and adapt the infrastructure for new requirements like different CPU architectures and newer Operating systems versions. This talk provides insights and stories how we scaled and improved our test infrastructure and how new technologies like Linux Containers can improve automated testing and software quality assurance. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2017.europython.eu/en/speaker-release-agreement/
Watch