EuroPython 2019

2019

List of videos

EuroPython - The largest Python conference in Europe

This trailer was created for EuroPython 2019, July 8-14, 2019, in Basel, Switzerland. Brought to you by the EuroPython 2019 Team and the EuroPython Society. Join us at next year's EuroPython 2022, July 11-17, in Dublin, Ireland. Enjoy, -- EuroPython 2019 Team https://ep2019.europython.eu/ http://www.europython-society.org/

Watch
EuroPython 2019 - Opening Session

"Opening Session [EuroPython 2019 - - 2019-07-10 - MongoDB [PyData track] [Basel, CH] 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Lynn Cherny - Getting Your Data Joie De Vivre Back!

"Getting Your Data Joie De Vivre Back! [EuroPython 2019 - Keynote - 2019-07-10 - MongoDB [PyData track] [Basel, CH] By Lynn Cherny Most of us work too much and play too little.  When was the last time you smiled at something you made?  Playing with fun datasets, especially big data sets, opens up weird new forms of technical recreation.  Why not train an amusing model in a browser tab while you're waiting for that day-job Spark query to finish?  I'll show you some data toys I've built using AI and interesting data sets: Most of them involve both backend data science and front-end visualization tricks.  They range from poetry-composition helpers to game log analysis to image deconstruction and reconstruction. All of them taught me something, often about myself and what I like artistically, and sometimes about what ""big data"" actually means. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Sebastian Witowski - Wait, IPython can do that?!

"Wait, IPython can do that?! [EuroPython 2019 - Talk - 2019-07-10 - Shanghai] [Basel, CH] By Sebastian Witowski I've been programming in Python for over 7 years. And from the time someone introduced me to IPython, it immediately became my default Python REPL. I enjoyed the syntax highlighting, code completion or the instant access to the documentation. Over the years, I've picked up more and more tricks that IPython could do: embedding IPython sessions, starting IPython automatically when a test fails, taking advantage of the startup files, not to mention all the various magic functions. It took me some time to discover all those features (if there is one thing I would like you to take away from this talk, it’s that reading the documentation of a tool that you are using emevery day/em is probably a good idea) and in this talk, I will give an overview of what you can do with IPython REPL. Some of the things I will talk about: - Documentation with ? and ??, running shell functions in IPython, magic functions - Profiles, startup files, configuration file, kernels, and extensions - How to better use IPython for debugging - How to use IPython for profiling - Alternatives to IPython REPL This talk is for you if you are a casual user of IPython - you know some of its features, but maybe not all of them and instead of reading through the documentation, you would prefer to see someone giving an overview of IPython features and how you can use them. This talk is NOT for you if you are up to date with IPython documentation and you think you know most of its features. 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://ep2019.europython.eu/events/speaker-release-agreement/ "

Watch
Adriana Dorneles - What about recommendation engines?

"What about recommendation engines? [EuroPython 2019 - Talk - 2019-07-10 - Singapore [PyData track] [Basel, CH] By Adriana Dorneles How recommendation engines are taking part in our daily routine and how companies as Netflix and Amazon implement it? This talk aims to show the elements that compound a recommendation engine to people who have never been in touch with the matter or want to know a bit more. At the end of this session, you might be able to reproduce your own recommendation system and also know where to find more about it. Talk structure: 1. What is and why use a recommendation engine? 2. Recommendation engine importance 3. Steps of a recommendation 4. Recommendation algorithms 5. Basic Statistics for distance and correlation 6. Example 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Alisa Dammer - Python vs Rust for Simulation

"Python vs Rust for Simulation [EuroPython 2019 - Talk - 2019-07-10 - PyCharm] [Basel, CH] By Alisa Dammer Both Python and Rust are getting more and more popularity. Although it is unfair to compare them directly, this talk aims to provide a clear comparison with a pre-defined criteria applied to a specific use-case. Writing a simulation engine is very similar to writing a game engine and requires certain features from a language or framework. Possible comparison criteria: 1. Performance 2. Simplicity 3. Amount of code necessary for a MVP 4. Utilities: docs, tests, profile 5. Compatibility Tl;dr Do I want to go back to Python after Rust? Maybe+) 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Paolo Galeone - Dissecting tf.function to discover AutoGraph strengths and subtleties

"Dissecting tf.function to discover AutoGraph strengths and subtleties [EuroPython 2019 - Talk - 2019-07-10 - Singapore [PyData track] [Basel, CH] By Paolo Galeone AutoGraph is one of the most exciting new features of Tensorflow 2.0: it allows transforming a subset of Python syntax into its portable, high-performance and language agnostic graph representation bridging the gap between Tensorflow 1.x and the 2.0 release based on eager execution. Using AutoGraph with the code@tf.fuction/code decorator seems easy, but in practice, writing efficient and correctly graph-convertible code requires to know in detail how AutoGraph and tf.function work. In particular, knowing how: A graph is created and when it is re-used; To deal with functions that create a state; To correctly use the Tensorflow codetf.Tensor/code object instead of using the Python native types to speed-up the computation; defines the minimum skill-set required to write correct graph-accelerable code. The talk will guide you trough AutoGraph and codetf.function/code highlighting all the peculiarities that are worth knowing to build the right skill-set. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Gael Varoquaux - Machine learning on non curated data

"Machine learning on non curated data [EuroPython 2019 - Talk - 2019-07-11 - Singapore [PyData track] [Basel, CH] By Gael Varoquaux According to industry surveys [1], the number one hassle of data scientists is cleaning the data to analyze it. Textbook statistical modeling is sufficient for noisy signals, but errors of a discrete nature break standard tools of machine learning. I will discuss how to easily run machine learning on data tables with two common dirty-data problems: missing values and non-normalized entries. On both problems, I will show how to run standard machine-learning tools such as scikit-learn in the presence of such errors. The talk will be didactic and will discuss simple software solutions. It will build on the latest improvements to scikit-learn for missing values and the DirtyCat package [2] for non normalized entries. I will also summarize theoretical analyses in recent machine learning publications. This talk targets data practitioners. Its goal are to help data scientists to be more efficient analysing data with such errors and understanding their impacts. With missing values, I will use simple arguments and examples to outline how to obtain asymptotically good predictions [3]. Two components are key: imputation and adding an indicator of missingness. I will explain theoretical guidelines for these, and I will show how to implement these ideas in practice, with scikit-learn as a learner, or as a preprocesser. For non-normalized categories, I will show that using their string representations to “vectorize” them, creating vectorial representations gives a simple but powerful solution that can be plugged in standard statistical analysis tools [4]. [1] Kaggle, the state of ML and data science 2017 https://www.kaggle.com/surveys/2017 [2] https://dirty-cat.github.io/stable/ [3] Josse Julie, Prost Nicolas, Scornet Erwan, and Varoquaux Gaël (2019). “On the consistency of supervised learning with missing values”. https://arxiv.org/abs/1902.06931 [4] Cerda Patricio, Varoquaux Gaël, and Kégl Balázs. ""Similarity encoding for learning with dirty categorical variables."" Machine Learning 107.8-10 (2018): 1477 https://arxiv.org/abs/1806.00979 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Sven-Hendrik Haase - Become a command line wizard

"Become a command line wizard [EuroPython 2019 - Talk - 2019-07-10 - Boston] [Basel, CH] By Sven-Hendrik Haase There are many modern terminal tools with vastly improved user experiences as compared to their traditional alternatives. This talk aims to show off some of those modern terminal tools and compare them side by side with the traditional ones. Python is not only used by software developers with fancy IDEs but also by DevOps engineers, administrators, and on remote development machines where using a GUI is impractical. Therefore, many people are stuck with a terminal interface only and have to use tools like vim, grep, find, wc, cloc, less and many others to explore their way around their Python programs. However, thanks to the advent of many new and improved tools, we can do many of the same tasks better, faster and with nicer ergonomics. This talk will show off effective use of vim as an IDE with completions and linting provided by LSP, fd (instead of find) for finding files, ripgrep (instead of grep) for searching strings, tokei (instead of cloc) for counting lines of code, bat (instead of cat) for looking at files, hyperfine for microbenchmarking, httpie (instead of curl) for making HTTP requests, sd (instead of sed) for text replacement. This talk should make terminal work more approachable for all attendees by showing off how to do some everyday tasks on the terminal. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Katherine Kampf - Building a Powerful Pet Detector in Notebooks

"Building a Powerful Pet Detector in Notebooks [EuroPython 2019 - Talk - 2019-07-10 - MongoDB [PyData track] [Basel, CH] By Katherine Kampf Ever wondered what breed that dog or cat is? Let’s build a pet detector service to recognize them in pictures! In this talk, we will walk through the training, optimizing, and deploying of a deep learning model using Azure Notebooks. We will use transfer learning to retrain a MobileNet model using TensorFlow to recognize dog and cat breeds using the Oxford IIIT Pet Dataset. Next, we’ll optimize the model and tune our hyperparameters to improve the model accuracy. Finally, we will deploy the model as a web service in. Come to learn how you can quickly create accurate image recognition models with a few simple techniques! 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Elizaveta Shashkova - Visual debugger for Jupyter Notebooks: Myth or Reality?

"Visual debugger for Jupyter Notebooks: Myth or Reality? [EuroPython 2019 - Talk - 2019-07-10 - MongoDB [PyData track] [Basel, CH] By Elizaveta Shashkova Many Python developers like Jupyter Notebooks for their flexibility: they are very useful for interactive prototyping, scientific experiments, visualizations and many other tasks. There are different development tools which make working with Jupyter Notebooks easier and smoother, but all of them lack very important feature: visual debugger. Since Jupyter Kernel is a usual Python process, it looks reasonably to use one of existing Python debuggers with it. But is it really possible? In this talk we’ll try to understand how Python debugger should be changed to work with Jupyter cells and how these changes are already implemented in the PyCharm IDE. After that we’ll look into the whole Jupyter architecture and try to understand which bottlenecks in it prevent creation of universal Jupyter debugger at the moment. This talk requires a basic knowledge of Jupyter Notebooks and understanding of Python functions and objects. It will be interesting for people who want to learn internals of the tools they use every day. Also it might be an inspiration for people who want to implement a visual debugger in their favourite IDE. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Cheuk Ho - Do we have a diversity problem in Python community?

"Do we have a diversity problem in Python community? [EuroPython 2019 - Talk - 2019-07-10 - PyCharm] [Basel, CH] By Cheuk Ho The diversity statement quoted as follows: “The Python Software Foundation and the global Python community welcome and encourage participation by everyone. Our community is based on mutual respect, tolerance, and encouragement, and we are working to help each other live up to these principles. We want our community to be more diverse: whoever you are, and whatever your background, we welcome you.” Diversity, big deal! As an active members and event organisers (and also on the minority side of the gender) in the Python community, we have alway been concern by the question of: Do we truly have a problem in diversity? Especially, gender diversity. We would like to find out the truth, by data science, and see if we can find a clue why and how we can fix it. First, we will show the research others did regarding the representation of women in the R and Python communities [1]. Then, we will show the research that we did based on our experience and statistic. Including static analysis of the speakers diversity (regarding gender) at major PyCon and PyData conferences. Finally, as we all care about diversity and want improvements, we would like to find out the reason and what we can do about it. We would propose what we, the minorities and allies, could do against this seemingly unbalance situation and make the community better. This talk is for all that who cares about diversity in our community. [1] https://reshamas.github.io/why-women-are-flourishing-in-r-community-but-lagging-in-python/ Update: slides at https://slides.com/cheukting_ho/do-we-have-a-diversity-problem-in-python-community 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Leonardo Rochael Almeida - From days to minutes, from minutes to milliseconds with SQLAlchemy

"From days to minutes, from minutes to milliseconds with SQLAlchemy [EuroPython 2019 - Talk - 2019-07-10 - Boston] [Basel, CH] By Leonardo Rochael Almeida Object Relational Mappers (ORMs) are awesome enhancers of developer productivity. The freedom of having the library write that SQL and give you back a useful, rich model instance (or a bunch of them) instead of just a tuple or a list of records is simply amazing. But if you forget you have an actual database behind all that convenience, then it'll bite you back, usually when you've been in production for a while, after you've accumulated enough data that your once speedy application starts slowing down do a crawl. Databases work best when you ask them once for (or to do) a bunch of stuff, instead of asking them lots of times for small stuff. We'll discuss how innocent looking attribute accesses on your model instances translate to sequential queries (the infamous N+1 problem). Then we'll go through some practical solutions, taken from real cases, that resulted in massive speed ups. We'll cover how changes in Python code resulted in changes to the resulting SQL Queries. We'll see solutions not only for queries, but also for inserts and updates, which tend to be less well documented. Though this talk focuses on SQLAlchemy, the lessons should be applicable to most ORMs in most programing languages. The ideas discussed, and solutions proposed are also valid for any storage back-end, not only SQL databases. This talk is geared towards Python developers with systems that talk to databases. It should be accessible to anyone who already programs in Python (early intermediary level), but will be most useful for developers with projects talking to SQL databases, specially using an ORM like SQLAlchemy. Attendees will learn to detect how N+1 query situations arise and how to work around them effectively. They will also learn how to do mass inserts and mass updates with SQLAlchemy. 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://ep2019.europython.eu/events/speaker-release-agreement/ "

Watch
Emmanuelle Gouillart - Image processing with scikit-image and Dash

"Image processing with scikit-image and Dash [EuroPython 2019 - Talk - 2019-07-10 - MongoDB [PyData track] [Basel, CH] By Emmanuelle Gouillart Images are an ubiquitous form of data in various fields of science and industry. Images often need to be transformed and processed, for example for helping medical diagnosis by extracting regions of interest or measures, or for building training sets for machine learning. In this talk, I will present and discuss several tools for automatic and interactive image processing with Python. I will start by a short introduction to scikit-image (https://scikit-image.org/), the open-source image processing toolkit of the Pydata ecosystem, which aims at processing images from a large class of modalities (2-D, 3-D, etc.) and strives to have a gentle learning curve with pedagogical example-based documentation. scikit-image provides users with a simple API based on a large number of functions, which can be used to build pipelines of image processing workflows. In a second part, I will explain how to use Dash for building interactive image processing operations. Dash (https://dash.plot.ly/) is an open-source Python web application framework developed by Plotly. Written on top of Flask, Plotly.js, and React.js, Dash is meant for building data visualization apps with highly custom user interfaces in pure Python. The dash-canvas component library of Dash (https://dash.plot.ly/canvas) is an interactive component for annotating images with several tools (freehand brush, lines, bounding boxes, ...). It also provides utility functions for using user-provided annotations for several image processing tasks such as segmentation, transformation, measures, etc. The latter functions are based on libraries such scikit-image and openCV. A gallery of examples showcases some typical uses of Dash for image processing on https://dash-canvas.plotly.host/. Also, other components of Dash can be leveraged easily to build powerful image processing applications, such as widgets to tune parameters or data tables for inspecting object properties. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Christian Barra - How software can feed the world 🌱

"How software can feed the world 🌱 [EuroPython 2019 - Talk - 2019-07-11 - Osaka / Samarkand [PyData track] [Basel, CH] By Christian Barra Infarm is a FaaS, Farming as a Service, and whether you believe it or not, our business is in-house farming at scale. We design and build our farms, grow vegetables and sell them, and the backbone of our infrastructure is based on Python. You can check this video to see what we do - https://twitter.com/christianbarra/status/1096399602159439874 More than 10 million observations are recorded from our farms, feeding our farm management system that allows operators, plant scientists, and supervisors to monitor each farm in real-time. During this talk I will briefly introduce the world's problems we are trying to resolve at Infarm and then talk about our IoT farms, infrastructure, how we use Python and how we plan to improve the capabilities of our farms by adding edge machine learning. Agenda What are the problems we are trying to solve at Infarm Our 4 tech pillars How we started with Python Issues we are facing while scaling our Python infrastructure to support > 400 farms How we plan to evolve our software and infrastructure on 4 different levels: consolidate, architecture, cloud native and observability How Python is going to support our automated farms and its role in making the farms smarter (edge computing with AI) 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Teresa Ingram - Opt Out of Online Sexism – Open Source Activism

"Opt Out of Online Sexism – Open Source Activism [EuroPython 2019 - Talk - 2019-07-10 - PyCharm] [Basel, CH] By Teresa Ingram ""Although people of all genders can experience violence and abuse online, the abuse experienced by women is often sexist or misogynistic in nature, and online threats of violence against women are often sexualized and include specific references to women’s bodies. "" - Amnesty International. This abuse pushes women offline, affecting their social well-being, representation and economic potential. In this talk I will discuss how we plan to help resolve this with our browser extension, Opt Out. I will discuss the online global tragedy that is online sexual harassment, our idea and where we’re at with current implementation. I will also talk about what it’s like to build an open source activism project, one which aims to be lead by the community it’s trying to protect. We will cover current research and results from our own engagement with the community, where the idea came from and challenges we have faced and plan to face in the future. I will also dive into the intricate world of natural language processing (NLP) for online harassment and talk about balancing state-of-the-art data science with web development in an open source community, one being managed by someone relatively new to tech. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Marc-Andre Lemburg - PyRun - Shipping the Python 3.7 runtime in just 4.8MB

"PyRun - Shipping the Python 3.7 runtime in just 4.8MB [EuroPython 2019 - Talk - 2019-07-10 - Shanghai] [Basel, CH] By Marc-Andre Lemburg Python has become the defacto standard tool for many people to write tools, command scripts, smaller applications and even large applications. On Windows, it is fairly easy to build application bundles using e.g. py2exe, but on Unix, the situation is less obvious, unless you want to rely on OS specific Python distributions, which often require severall 100MB with of installation on the system and are usually customized in distribution specific ways. Instead of relying on OS installed Python distributions on Unix, our open-source eGenix PyRun provides a more or less complete Python runtime (interpreter and stdlib modules) in a single file, which can be ""installed"" by simply copying the binary to the destination system. The file can be as small as 4.8MB for Python 3.7, by using compressors such as upx. Due to its size, it's also the perfect Python distribution for Docker containers. The talk will show how PyRun works, is built, how to customize it to include additional modules and 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Matthieu Amiguet - Python for realtime audio processing in a live music context

"Python for realtime audio processing in a live music context [EuroPython 2019 - Talk - 2019-07-10 - MongoDB [PyData track] [Basel, CH] By Matthieu Amiguet At Les Chemins de Traverse we explore ways of ""augmenting"" acoustical musical instruments with new sonic possibilities offered by computers. For doing so, we need ultra-low latency real-time audio processing programs. Pretty much the typical situation where python should emnot/em be used, right? Wrong. As it happens, that's exactly what we've been doing for the past few years. Building on Olivier Belanger's wonderful pyo module and (ab)using python's flexibility, we developed custom software to allow us to express our musical ideas. If you want to hear how it sounds, you should go to Europython's social event that will feature a gig based on python-augmented (!) instruments. And if you want to know how we came to use python in this context and how we do it, you should come to this talk! 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Shailen Sobhee - Accelerate your Deep Learning Inferencing with the Intel® DL Boost technology

"Accelerate your Deep Learning Inferencing with the Intel® DL Boost technology [EuroPython 2019 - Talk - 2019-07-10 - Boston] [Basel, CH] By Shailen Sobhee Learn about Intel® Deep Learning Boost, also known as Vector Neural Network Instructions (VNNI), a new set of AVX-512 instructions, that are designed to deliver significantly more efficient Deep Learning (Inference) acceleration. Through this technology, I will show you how you can perform low-precision (INT8) inference much faster on hardware that support the VNNI instruction set (for example, the 2nd generation Intel Xeon Scalable processors, codenamed, Cascade Lake). In the live Jupyter notebook session, you can will be able to see the benefits of this new hardware technology. Note: This is an advanced talk. Knowledge about Deep Learning, Inferencing and basic awareness of hardware instruction sets would be desirable. 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://ep2019.europython.eu/events/speaker-release-agreement/ "

Watch
Martin Christen - Geospatial Analysis using Python and JupyterHub

"Geospatial Analysis using Python and JupyterHub [EuroPython 2019 - Talk - 2019-07-10 - Singapore [PyData track] [Basel, CH] By Martin Christen Geospatial data is data containing a spatial component – describing objects with a reference to the planet's surface. This data usually consists of a spatial component, of various attributes, and sometimes of a time reference (where, what, and when). Efficient processing and visualization of small to large-scale spatial data is a challenging task. This talk describes how to process and visualize geospatial vector and raster data using Python and the Jupyter Notebook. To process the data a high performance computer with 4 GPUS (NVidia Tesla V100), 192 GB RAM, 44 CPU Cores is used to run JupyterHub. There are numerous modules available which help using geospatial data in using low- and high-level interfaces, which are shown in this presentation. In addition, it is shown how to use deep learning for raster analysis using the high performance GPUs and several deep learning frameworks. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Samuel Colvin - Python's Parallel Programming Possibilities - 4 levels of concurrency

"Python's Parallel Programming Possibilities - 4 levels of concurrency [EuroPython 2019 - Talk - 2019-07-10 - Boston] [Basel, CH] By Samuel Colvin I'm going to talk about the 4 main levels of parallelism in modern Computing: multiple (virtual) machines multiple processes multiple threads multiple green threads, aka asyncio Why you might use each of them, how to go about doing so with python and some of the pitfalls you might fall into along the way. To do so, I'll give short examples in code of achieving each level: leveraging multiple hosts using RQ, and also the possibility of RPC with HTTP multiprocessing and threading using their respective modules from the python standard library asyncio demonstrated with AIOHTTP That sounds great, but there are ""gotchas"" you should know about before you get started, for example: multiple machines can actually be multiple virtual machines on the same host effectively communicating between processes is hard, how can we go about making it easier? the limitations of threading and the GIL runemin/emexecutor - do we ever really need to use multiprocessing or threading directly again use of asyncio when dealing with both networking between hosts and between processes - you end up using two different kinds of concurrency at the same time. That can be confusing, but also awesome. I'll finish of by showcasing a library I built, arq which is a job queueing and RPC library for python which uses asyncio and Redis. 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://ep2019.europython.eu/events/speaker-release-agreement/ "

Watch
Cristián Maureira-Fredes - Unleash the power of C++ in Python

"Unleash the power of C++ in Python [EuroPython 2019 - Talk - 2019-07-10 - Shanghai] [Basel, CH] By Cristián Maureira-Fredes One of the main Python aspects is to have a clear syntax and be an easy-to-understand language, which compared to others like C++ (depending of the kindness of the developer) can make a huge difference. Not only the readability is in play, having a dynamically typed and interpreted language improves the development workflow. This improvement comes with a cost, performance. In most of the cases, a raw comparison of simple routines will leave Python behind, but there is a partial solution to this problem, connecting a powerful performant C++ library with the simplicity of Python. In this talk, we will go through the process of generating language bindings to allow you to take any amazing C or C++ project and bring it to Python land. We will briefly discuss one of the many success stories, and we will analyze how the Qt project managed to expose its whole framework to Python, with the help of a self-made binding generator called Shiboken. After the talk, you will be able to decide which option is better for the projects you have in mind, and with a bit of luck you will be responsible of exposing the next popular C++ library that makes the life of us all Pythonistas easier. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Mark Smith - Publish a (Perfect) Python Package on PyPI

"Publish a (Perfect) Python Package on PyPI [EuroPython 2019 - Talk - 2019-07-10 - Shanghai] [Basel, CH] By Mark Smith Always wanted to publish a package on PyPI, but didn't know where to start? This talk is for you! Starting with nothing, we'll build a package and publish it on PyPI using current best practices. Learn how to structure your project and your code. Discover what goes in your coderequirements.txt/code and your codesetup.py/code. Ensure your code will work in different on different platforms! Document your code so people won't ask you loads of questions! Finally, learn how avoid doing any of this yourself. This talk will cover: Why should you package your code for PyPI? How to structure your project and your code, including why you need a codesrc/code folder! Discover what goes in your codePipfile/code and your codesetup.py/code, and why. Learn the difference between installing your library to use it, and installing it to develop on it. Write tests for your project, and run them using Tox. Ensure your code will work in different on different platforms with Continuous Integration! Document your code so people won't ask you loads of questions! How to actually get your code on PyPI using Twine. Finally, learn how avoid doing any of this yourself (or avoid doing it twice) using CookieCutter templates. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Lilian Nandi anonymous - Teaching Programming to the Next Generation

"Teaching Programming to the Next Generation [EuroPython 2019 - Talk - 2019-07-10 - Boston] [Basel, CH] By Lilian Nandi anonymous Our generation of young people in school (aged 5-18) have noticed the connection between Computer pRogramming, Technology & Success and Billionaires.On mass they are clamoring to master the skill of Computer pRogramming. We describe a successful working model for the teaching of Computer pRogamming. Computer Science is now regarded as one of the leading disciplines in the 21st century. Computers are ubiquitous and prevalent in most, if not all, sectors of our modern society – applications include using them in weather forecasting, robotic surgery, space exploration, e-commerce, smart cities, driverless cars, etc. Therefore, coding or computer programming is now regarded by many as an essential skill for the young person, and it has been dubbed the ‘4th’ R’ (computer pRogramming) along with Reading, wRiting and aRithmetic. In recognition of the new status of computer programming, governments worldwide have launched initiatives to have it taught in schools from Kindergarten through to junior school and all the way through secondary school. So, the question emerges is how do we best teach and motivate the next generation in acquiring this skill? Given the fact that this field is very much in its infancy, there are insufficient number of skilled Computer Science teachers and very little pedagogy to guide the educator. Therefore, the whole world is learning how best to teach this subject by trial and error. The talk will describe a case study whereby coding/computer programming, in the form of Python programming, was introduced to a group of 110 young people from the ages of 11 to 18 (Years 7-13 in a U.K secondary school). The talk will include descriptions of the various teaching methodologies introduced to the young people for this purpose and the outcomes; the talk will also address various challenges and questions about how to teach coding to young people. The talk will conclude with helpful suggestions, based on the findings of the case study, on how to proceed with the teaching of computer programming to these people. 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://ep2019.europython.eu/events/speaker-release-agreement/ "

Watch
Christoph Heer - Is it me, or the GIL?

"Is it me, or the GIL? [EuroPython 2019 - Talk - 2019-07-10 - Shanghai] [Basel, CH] By Christoph Heer Python's Global Interpreter Lock is a friend and rival at the same time. We, as developers, can focus on the design and implementation of applications without the hassle of memory management. On the other side, we complain about the GIL as the limiting factor of performance sensitive applications. Therefore, it is common to refactor parts of systems when the system doesn't perform or scale enough anymore. The refactoring often includes the switch of the used concurrency paradigms like replacing multithreading with multiprocessing or asyncio. Another option is moving logic of CPU-bound workload into C extensions or a full rewrite in a ""GIL-free"" language. But how do you know that the GIL is the actual performance bottleneck? While scaling and developing performance sensitive components in Python, my colleagues and I often also assumed the GIL as cause of our performance problems because it is a common and simple answer for this usually complex and varied problems. Instead of starting a rewrite or major refactoring, we took a step back and tried to prove our assumption. With the result that analyzing the impact of the GIL contention on the overall performance is a very interesting problem without common practices or easy usable set of tools that support Python developers. Within this talk, I will share and explain the methods and tools, which we use to analyze the relevance of the GIL on our application performance and how it helped us to stay focused on the actual problematic areas of our applications that required improvements to meet our performance goals. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Dom Weldon - Dash: Interactive Data Visualization Web Apps with no Javascript

"Dash: Interactive Data Visualization Web Apps with no Javascript [EuroPython 2019 - Talk - 2019-07-10 - Singapore [PyData track] [Basel, CH] By Dom Weldon Your data science or machine learning project probably won't just produce a written report. Instead, projects are increasingly expected to produce interactive tools to allow end-users to explore data and results with rich, interactive visualizations. Inevitably, this will be done in a web browser, meaning you'll need to add a quantitatively trained web developer to your team, or have your data scientists spend time learning HTML, Javascript and CSS. Dash, a project by the team that makes Plotly, solves some of these problems by allowing data scientists to build rich and interactive websites in pure python, with minimal knowledge of HTML and absolutely no Javascript. At decisionLab, a London-based data science consultancy producing decision tools, we've embraced Dash to produce proof-of-concept models for our projects in alpha. Although we're not officially connected to the plotly/Dash project, by using the library daily across many projects, we've learned many lessons and what we feel are best practises we'd like to share, and hear feedback on! This talk will give an overview of Dash, how it works and what it can be used for, before outlining some of the common problems that emerge when data scientists are let loose to produce web applications, and web developers have to work with the pydata ecosystem. The talk also covers effective working practises to start producing cool interactive statistical web applications, fast. We'll also identify some of the pitfalls of Dash, and how and when to make the decision to stop using Dash and start building a proper web application. Slides: http://domweldon-europython-2019-dash.s3.eu-west-2.amazonaws.com/index.html 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://ep2019.europython.eu/events/speaker-release-agreement/ "

Watch
Petr Stehlík - The dos and don'ts of task queues

"The dos and don'ts of task queues [EuroPython 2019 - Talk - 2019-07-10 - Shanghai] [Basel, CH] By Petr Stehlík At Kiwi.com we heavily rely on task queues and asynchronous execution of code to process large amounts of requests coming to our back-ends. With the separation of our codebase to microservices, we can quickly try new tools and different approaches to process these large volumes of requests. The microservice we’ll be talking about is making unreliable slow 3rd party services reliable and asynchronous with a bit of business logic sprinkled on top of it. We’ll tell a failure story of ours but resulting in a valuable lesson. Most of our services use Celery and it’s the go-to tool for new services as well but we wanted to be different with this new microservice. RQ is the next best choice for task queues and it is presented as simpler and more straightforward than Celery. That can definitely be true but after 3 weeks of research, development and struggling we found out the unpleasant truth about being simple and making the right choices. We won’t talk about comparing the frameworks but rather about the approach on how to experiment with new things in your environment. After that, we’ll present our current setup which can take upon any number of tasks*. How we orchestrate the app and continuously integrate and deploy and what fun things await ahead of us in the development. *Conditions may apply. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Mustafa Anil Tuncel - Bioinformatics pipeline for revealing tumour heterogeneity

"Bioinformatics pipeline for revealing tumour heterogeneity [EuroPython 2019 - Talk - 2019-07-10 - Singapore [PyData track] [Basel, CH] By Mustafa Anil Tuncel Reproducibility of research is a common issue in science, especially in computationally expensive research fields e.g. cancer research. A comprehensive picture of the genomic aberrations that occur during tumour progression and the resulting intra-tumour heterogeneity, is essential for personalised and precise cancer therapies. With the change in the tumour environment under treatment, heterogeneity allows the tumour additional ways to evolve resistance, such that intra-tumour genomic diversity is a cause of relapse and treatment failure. Earlier bulk sequencing technologies were incapable of determining the diversity in the tumour. br / Single-cell DNA sequencing - a recent sequencing technology - offers resolution down to the level of individual cells and is playing an increasingly important role in this field. We present a reproducible and scalable Python data analysis pipeline that employs a statistical model and an MCMC algorithm to infer the evolutionary history of copy number alterations of a tumour from single cells. The pipeline is built using Python, Conda environment management system and the Snakemake workflow management system. The pipeline starts from the raw sequencing files and a settings file for parameter configurations. After running the data analysis, pipeline produces report and figures to inform the treatment decision of the cancer patient. 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://ep2019.europython.eu/events/speaker-release-agreement/ "

Watch
Max Bélanger - How to ship a Python app to a hundred million desktops

"How to ship a Python app to a hundred million desktops [EuroPython 2019 - Talk - 2019-07-11 - Shanghai] [Basel, CH] By Max Bélanger Python is widely used to write scripts and tools, but did you know that it can also be used to build client-side end-user applications? Crossing the gap from script to app can be challenging: Join us to learn how to write modern, high quality desktop apps in Python! At Dropbox, we’ve been fans of Python from the very beginning: we’ll take you on a tour of our app for Windows/macOS/Linux and share our “lessons learned” from over 10 years of development. We’ll share best practices and techniques for shipping Python code to hundreds of millions of devices: discover how to maximize security, improve performance and guarantee stability. We’ll explore the key choices we made and why: learn how we migrated to Python 3 by simultaneously shipping both versions, or how we use HTML to power our GUI (a la Electron). We’ll reveal our favorite tools and libraries: learn how we scaled from a few engineers to over 100 and added support for other programming languages (like Rust). The goal of this talk is to share our learnings from using Python on Windows, macOS and Linux to encourage the use of Python when building Desktop apps. - We also want to recognize the third-party libraries we’ve used (and their authors) to raise their profile with the overall community. - We hope this will inspire attendees to write more desktop Python code, and raise awareness for this use case with the community as a whole. We intend to speak to any Python developer/engineer or enthusiast who makes use of Python in a Desktop environment (or wants to), whether it’s to make scripts, tools or apps. We do not expect knowledge of any specific third-party Python libraries; in fact, we hope to draw attention to and recognize many libraries we’ve found useful. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Rogier van der Geer - How to train an image classifier using PyTorch

"How to train an image classifier using PyTorch [EuroPython 2019 - Talk - 2019-07-10 - Singapore [PyData track] [Basel, CH] By Rogier van der Geer Neural networks are everywhere nowadays. But while it seems everyone is using them, training your first neural network can be quite a hurdle to overcome. In this talk I will take you by the hand, and following an example image classifier I trained, I will take you through the steps of making an image classifier in PyTorch. I will show you code snippets and explain the more intricate parts. Also, I will tell you about my experience, and about what mistakes to prevent. After this all you need to start training your first classifier is a data set! Of course I will provide a link to the full codebase at the end. The talk will focus on the practical aspect of training a neural network, and will only touch the theoretical side very briefly. Some basic prior knowledge of neural networks is beneficial, but not required, to follow this talk. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Tyler Brough - Using Python to Teach Computational Finance

"Using Python to Teach Computational Finance [EuroPython 2019 - Talk - 2019-07-10 - Singapore [PyData track] [Basel, CH] By Tyler Brough In this demo-driven session, we will introduce the Probo package for teaching Python programming and concepts from computational finance to beginning programmers in the domain of finance. We'll show how Python is the perfect tool for teaching computational thinking to develop deeper quantitative reasoning. Jupyter notebooks, together with Python packages such as NumPy and Pandas, provide the ideal learning environment. We will start by introducing the Probo package for derivative pricing and hedging. We will demo the pricing of European and American options via the famous Black-Scholes option pricing model. Other examples include Monte Carlo simulation and binomial trees. Using Probo, the answers to derivative pricing problems are right at the students' fingertips. Students can operationalize their understanding by going directly from the mathematics of derivative pricing theories to their implementation in clean and simple code. We will end with a demonstration using Probo to teach the concept of dynamic hedging. Dynamic hedging is perhaps emthe/em crucial concept in modern financial derivatives theory. It is also one of the most difficult concepts to grasp. We'll show how developing deeper intuition is possible with computational thinking via Monte Carlo simulation of delta-hedging. By leveraging the power and simplicity of Python and Jupyter notebooks, the Probo package provides the ideal learning platform for students of computational finance. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Shailen Sobhee - Supercharge your Deep Learning algorithms with optimized software

"Supercharge your Deep Learning algorithms with optimized software [EuroPython 2019 - Talk - 2019-07-10 - MongoDB [PyData track] [Basel, CH] By Shailen Sobhee In this talk, you will learn various optimization techniques to improve the runtime performance of your deep learning algorithms on Intel architecture. The presentation will cover how to accelerate the training of your deep neural networks with Tensorflow thanks to the highly optimized Intel® Math Kernel Library (Intel® MKL) and how we boost inferencing with Intel® nGraph and with the Intel® Distribution of OpenVINO™. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Tom Forbes - Writing a Python autoreloader

"Writing a Python autoreloader [EuroPython 2019 - Talk - 2019-07-10 - Shanghai] [Basel, CH] By Tom Forbes Reloading your code changes quickly is an integral part of the development experience in frameworks like Django and Flask that developers have come to rely on. But how do they work under the hood and what challenges do you face while writing one? In this talk I will explore how I refactored the autoreload implementation in Django 2.2 and the lessons I learned along the way (hint: it's surprisingly complex!). I will also be introducing a library I've developed to simplify this if you ever find yourself writing your own. 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://ep2019.europython.eu/events/speaker-release-agreement/ "

Watch
Yenny Cheung - Why You Should Pursue Public Speaking and How to Get There

"Why You Should Pursue Public Speaking and How to Get There [EuroPython 2019 - Keynote - 2019-07-10 - MongoDB [PyData track] [Basel, CH] By Yenny Cheung Fear of public speaking is the most common of all phobias. Want to speak confidently in front of the crowd? This talk shares tips on how to overcome the fear, and ways to get started. You will be prepared to brace presenting from a team meeting to a conference. 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://ep2019.europython.eu/events/speaker-release-agreement/ "

Watch
Vita Smid - Static typing: beyond the basics of def foo(x: int) -str:

"Static typing: beyond the basics of def foo(x: int) -str: [EuroPython 2019 - Talk - 2019-07-10 - Boston] [Basel, CH] By Vita Smid The Python community has been warming up to static typing for a few years now. You may have seen talks that did a great job of introducing the basic concepts, mypy, and high-level strategies to cover existing code bases. We need to go deeper. Let’s talk about the challenges you inevitably encounter when you try to type-check a large code base. One full of many moving parts, complex architectures, metaprogramming tricks, and interfaces with a dozen other packages. Static type checking is very powerful – when you use it to maximum advantage and explain your code to the typechecker accurately. We will cover a few tools at your disposal: generics, signature overloads, protocols, custom mypy plug-ins, and more. There is more than just tools, though. Behind them all are universal concepts valid in any language. I hope to convince you that thinking in terms of the type system helps you write better code… 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
EuroPython 2019 - Lightning talks on Wednesday, July 10

"Lightning Talks [EuroPython 2019 - - 2019-07-10 - MongoDB [PyData track] [Basel, CH] 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Athina Frantzana - Are women underrepresented in the High Performance Computing (HPC) community?

"Are women underrepresented in the High Performance Computing (HPC) community? [EuroPython 2019 - Keynote - 2019-07-11 - MongoDB] [Basel, CH] By Athina Frantzana This study is the first attempt to understand the current gender demographics of the HPC community, and identify potential reasons and ways to tackle the gender imbalance. By listening to the people who constitute the community, the study offers a guideline on what the HPC community should focus on in order to become more attractive, accessible and useful to everyone. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Stephan Jaensch - Testing Microservices: fast and with confidence

"Testing Microservices: fast and with confidence [EuroPython 2019 - Talk - 2019-07-11 - Shanghai] [Basel, CH] By Stephan Jaensch A main advantage of microservices is improved developer velocity. One roadblock to achieving it is giving developers the confidence that their changes are correct and safe, which is a challenging problem in such a distributed architecture. Typical approaches involve relying on automated end-to-end testing, which is costly to set up, develop tests for and run. In this talk I will explore an approach to testing that does not require the presence of any external dependencies (not even ""fake"" or ""test double"" implementations of them), but provides many of the benefits of an end-to-end test. Come by to learn about how we can use a downstream service's API specification to make sure the system under test interacts with it in the correct way (""contract testing"") - a key ingredient missing from most unit or integration test setups. We'll then go even further to cover testing scenarios that previously could only be covered with end-to-end tests: how to maintain and validate state of your downstream dependencies. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Alejandro Saucedo - The state of Machine Learning Operations in 2019

"The state of Machine Learning Operations in 2019 [EuroPython 2019 - Talk - 2019-07-11 - Singapore [PyData track] [Basel, CH] By Alejandro Saucedo This talk will provide an overview of the key challenges and trends in the productization of machine learning systems, including concepts such as reproducibility, explainability and orchestration. The talk will also provide a high level overview of several key open source tools and frameworks available to tackle these issues, which have been identifyed putting together the Awesome Machine Learning Operations list (https://github.com/EthicalML/awesome-machine-learning-operations). The key concepts that will be covered are: * Reproducibility * Explainability * Orchestration of models The reproducibility piece will cover key motivations as well as practical requirements for model versioning, together with tools that allow data scientists to achieve version control of model+config+data to ensure full model lineage. The explainability piece will contain a high level overview of why this has become an important topic in machine learning, including the high profile incidents that tech companies have experienced where undesired biases have slipped into data. This will also include a high level overview of some of the tools available. Finally, the orchestration piece will cover some of the fundamental challenges with large scale serving of models, together with some of the key tools that are available to ensure this challenge can be tackled. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Sebastian Roll - The Dangers of Outsourcing Software Development

"The Dangers of Outsourcing Software Development [EuroPython 2019 - Talk - 2019-07-11 - Shanghai] [Basel, CH] By Sebastian Roll Customer lock-in. Dubious “Land and Expand” strategies. We have all heard about outsourced software projects that run far past schedule and obliterates the budget, yet somehow fail to meet even basic requirements. How can this happen. How can your company reduce the risks of delegating software development to an external party? The Principal–Agent Problem is a well researched dilemma in economic literature. It occurs when a person or entity (“agent”), is tasked to work on behalf of another person or entity (""principal""). When the two parties have divergent interests, the agent might act contrary to the best interests of the principal. Examples of principal-agent relationships are: - Employer vs Employee - Shareholder vs Management - Voter vs Political party - Contractor vs Software Consultant When a firm decides to outsource software development to a third party, there is an economic divergence of interest at play, as both parties seek to maximize profit. The contractor wants its requirements met at low cost and on a predictable schedule. The third party, when acting nefariously, can maximize its own gains by extending the project, utilizing junior or low-cost labor, and creating a relationship of dependency. In this session we will look into some nefarious techniques and practices used in the IT consulting industry and how best to avoid them. We will also learn why it is particularly hard to mitigate the risks of outsourced software development. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Hubert Bryłkowski - Natural language processing with neural networks.

"Natural language processing with neural networks. [EuroPython 2019 - Talk - 2019-07-11 - Singapore [PyData track] [Basel, CH] By Hubert Bryłkowski Getting started with a natural language processing and neural networks is easier nowadays thanks to the numerous talks and tutorials. The goal is to dive deeper for those who already know the basics, or want to expand their knowledge in a machine learning field. The talk will start with the common use cases that can be generalized to the specific problems in a NLP world. Then I will present an overview of possible features that we can use as input to our network, and show that even simple feature engineering can change our results. Furthermore, I will compare different network architectures - starting with the fully connected networks, through convolution neural networks to recursive neural networks. I will not only considering the good parts, but also - what is usually overlooked - pitfalls of every solution. All of these will be done considering number of parameters, which transfers into training and prediction costs and time. I will also share a number of “tricks” that enables getting the best results even out of the simple architectures, as these are usually the fastest and quite often hard to beat, at the same time being the easiest to interpret. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Florian Wahl - Building Industry 4.0 logistics applications with MicroPython and ESP32 MCUs

"Building Industry 4.0 logistics applications with MicroPython and ESP32 MCUs [EuroPython 2019 - Talk - 2019-07-11 - Shanghai] [Basel, CH] By Florian Wahl In this session, we will report about a forklift hailing application we built using MicroPython and the ESP32-based prototyping hardware M5Stack. In a production facility, machine operators can hail a forklift using an ESP32 device running MicroPython. The device sends a request to a forklift dispatcher software, written in Python. The request is queued and subsequently, the next available forklift is notified and sent to the machine. Each forklift is also fitted with an ESP32 device. In this project, the prototyping hardware M5Stack was used. It features an ESP32 micro controller with Bluetooth, WIFI, GPIO, three buttons, and a display. Attendees will learn how MicroPython and prototyping hardware can be used to scale from an idea on the developers desk to a working system in a rough Industry 4.0 production environment. The talk will recap our journey with MicroPython, the lessons learned, and the pitfalls to avoid. Furthermore, the tooling setup will be introduced, including our M5Stack GUI-simulator to mock the M5Stack display. The central dispatch server is built using Python and deployed in a Docker container. Messages are exchanged using MQTT, a popular IoT message protocol. The talk will conclude with a live demonstration of the forklift hailing system. Attendees should be comfortable with the Python syntax but are not expected to have any MicroPython, MQTT, Docker or domain knowledge. Materials can be found at https://gitlab.com/fwahl/europython2019. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Maria Molina-Contreras - “When a biologist met Python”

"“When a biologist met Python” [EuroPython 2019 - Talk - 2019-07-11 - Singapore [PyData track] [Basel, CH] By Maria Molina-Contreras Biology and computing are closer than we usually think, for example many algorithms are inspired in biology patterns, and complementary to that, researchers needs special algorithms to have a better understanding of our environment. Thus, there is a strong relation an dependency. In the past years, Biology has been transformed into computational biology. Therefore technological advances helps us to predict physical interactions between atoms and DNA, because we are being able to integrate information from biology into algorithms. Python has become a popular programming language in biosciences because it has a clean syntax that makes it easy to read language. In addition to this, there are many modules (toolkits) extending to different biological domains, like metabolomics, structure analysis, phylogenomics, molecular biology and others. Python is currently improving researcher’s workflow, helping us to focus on the theory or experimental part, instead of fighting with old buggy applications. This talk aims to be oriented to all audiences (with/without biological background) since we will go together through an amazing adventure into the natural sciences using tools like Biopython, Bokeh, Networkx, Ecopy and much more! Are you brave enough to follow me on this journey? 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://ep2019.europython.eu/events/speaker-release-agreement/ "

Watch
Anton Caceres - How To Build a Python Microservice Without Losing a Job

"How To Build a Python Microservice Without Losing a Job [EuroPython 2019 - Talk - 2019-07-11 - Shanghai] [Basel, CH] By Anton Caceres Sarcastic talk, sharing real-life experience on both technical and social aspects of doing an architecture migration to microservices without losing a job. Any change in software architecture is a significant time investment. Writing microservices in Python is a joy, but when you decide on it, there is often no way back. Therefore it is always an advantage to know what to expect in advance, not just from inspiring blog posts but also from the harsh reality. I would like to share typical pitfalls of choosing a framework stack, communication protocol, conventions, and deployment process — all covered by real projects. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Paul Hughes - Building Data-Driven Client Relationship Management in Banking with Python

"Building Data-Driven Client Relationship Management in Banking with Python [EuroPython 2019 - Talk - 2019-07-11 - Singapore [PyData track] [Basel, CH] By Paul Hughes This is a case study that documents how a small data science team in a big bank took on the challenge to transform a fragmented sales process into a data-driven one using Python and machine learning. This talk outlines the various ways Python has been instrumental in delivering a production solution that serves advisers and relationship manager on a continuous basis. The Challenge - A bank has many clients with diverse needs and cost pressures mean fewer advisers resulting in reduced client coverage. - Multiple sales channels and mixed service levels meant sales processes were uncoordinated and driven by heuristics and often very subjective. - And... Excel sheets everywhere! Solution - Go data-driven! - Learn from clients and understand product usage - Empower and inform advisers and call centre agents - Build a front-to-back sales process (no more Excels!) - How? With Python! The Python Bits - Scikit learn machine learning pipelines that implement two distinct approaches to product affinity in banking and wealth management - SQL Alchemy based API for data engineering and rapid prototyping of analytics - Pandas and Jupyter for development and collaboration - Luigi pipeline for daily processing of millions of transactions and engineering features - Extracting features from text with NLP (Spacy) - Delivering machine learning interpretability in production, e.g. with Random Forests and treeinterpreter - A Python module that we built with all the reusable bits: building training and prediction datasets, developing pipelines, generating monitoring data and enabling explainability 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://ep2019.europython.eu/events/speaker-release-agreement

Watch
Reuven Lerner - Practical decorators

"Practical decorators [EuroPython 2019 - Talk - 2019-07-11 - Shanghai] [Basel, CH] By Reuven Lerner Decorators are one of Python's most powerful features. But even if you understand what they do, it's not always obvious what you can do with them. Sure, from a practical perspective, they let you remove repeated code from your callables. And semantically, they let you think at a higher level of abstraction, applying the same treatment to functions and classes. But what can you actually do with them? For many Python developers I've encountered, decorators sometimes appear to be a solution looking for a problem. In this talk, I'll show you some practical uses for decorators, and how you can use them to make your code more readable and maintainable, while also providing more semantic power. Moreover, you'll see examples of things would be hard to do without decorators. I hope that after this talk, you'll have a good sense of how to use decorators in your own Python projects. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Jon Nordby - Audio Classification with Machine Learning

"Audio Classification with Machine Learning [EuroPython 2019 - Talk - 2019-07-11 - Singapore [PyData track] [Basel, CH] By Jon Nordby Sound is a rich source of information about the world around us. Modern deep learning approaches can give human-like performance on a range of sound classifiction tasks. This makes it possible to build systems that use sound to for example: understand speech, to analyze music, to assist in medical diagnostics, detect quality problems in manufacturing, and to study the behavior of animals. This talk will show you how to build practical machine learning models that can classify sound. We will convert sound into spectrograms, a visual representation of sound over time, and apply machine learning models similar to what is used to for image classification. The focus will be on Convolutional Neural Networks, which have been shown to work very well for this task. The Keras and Tensorflow deep learning frameworks will be used. Some tricks for getting usable results with small amounts of data will be covered, including transfer learning, audio embeddings and data augmentation. A basic understanding of machine learning is recommended. Familiarity with digital sound is a bonus. 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://ep2019.europython.eu/events/speaker-release-agreement/ "

Watch
Hynek Schlawack - Maintaining a Python Project When It’s Not Your Job

"Maintaining a Python Project When It’s Not Your Job [EuroPython 2019 - Talk - 2019-07-11 - Shanghai] [Basel, CH] By Hynek Schlawack PyPI is a gold mine of great packages but those packages have to be written first. More often than not, projects that millions of people depend on are written and maintained by only one person. If you’re unlucky, that person is you! So how do you square delivering a high quality Python package you can be proud of and having only limited time at your disposal? The answer is not “try harder,” the answer is to do less. This talk will help you get there by talking about how you can make your life easier, remove causes of friction with your contributors, and empower said contributors to take over tasks that you can’t make time for anymore. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Jeff Hollan - Deploy Python to the cloud faster with Azure Serverless

"Deploy Python to the cloud faster with Azure Serverless [EuroPython 2019 - Talk - 2019-07-11 - MongoDB] [Basel, CH] By Jeff Hollan Bringing your Python scripts or apps and running them in the cloud is easier than ever with serverless computing. In this talk, we’ll show how you can use Azure Functions to easily deploy and scale your Python workloads without having to manage any servers or pay for unused compute resources. We’ll also show how deep integration with Visual Studio Code offers a great local development experience with full support for debugging and testing your app, and allows you to seamlessly deploy your serverless code to the cloud. We’ll start by giving a brief overview of the value of serverless computing. Next, we'll create a brand new Python app in Visual Studio Code, and start to add in business logic and ML capabilities. Once we get the app running debugged locally, we’ll publish it to the cloud as a serverless function, and demonstrate the serverless scalability. Finally, we’ll walk you through the tools and capabilities you can leverage around monitoring and management of your Python Azure Functions. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Joe Drumgoole - Introduction to Python and MongoDB

"Introduction to Python and MongoDB [EuroPython 2019 - Talk - 2019-07-11 - MongoDB] [Basel, CH] By Joe Drumgoole This talk will give anyone who has a basic knowledge of Python insight into how easy it is to build database applications using the PyMongo Python library for MongoDB. There will be live coding! 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Marc-Andre Lemburg - EuroPython 2020: Help us build the next edition!

"EuroPython 2020: Help us build the next edition! [EuroPython 2019 - EuroPython session - 2019-07-11 - Boston] [Basel, CH] By Marc-Andre Lemburg We need help with organizing and running EuroPython 2020. In this session, we will explain how the EuroPython workgroup model works and where you could help. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Marc-Andre Lemburg - EPS General Assembly 2019

"EPS General Assembly 2019 [EuroPython 2019 - EuroPython session - 2019-07-11 - Boston] [Basel, CH] By Marc-Andre Lemburg This is where the EuroPython Society (EPS) board gives its reports, resolutions are passed and the EPS members can vote in a new EPS board. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Michał Karzyński - From Python script to Open Source Project

"From Python script to Open Source Project [EuroPython 2019 - Talk - 2019-07-11 - Boston] [Basel, CH] By Michał Karzyński Did you write a cool and useful Python script? Would you like to share it with the community, but you're not sure how to go about that? If so, then this talks is for you. We'll go over a list of simple steps which can turn your script into a fully fledged open-source project. The Python community has a rich set of tools which can help verify the quality of your code through automated code-review and linting. You can benefit by taking advantage of this ecosystem. Complete the steps in this checklist, and your project will be easier to maintain, you'll be ready to take contributions from the community and those contributions will be up to high standards. Your project will also keep up with other projects on PyPI and you will be alerted if any new release causes an incompatibility with your code. The same checklist can be used for non open-source projects as well. The project maturity checklist includes: Properly structure your code Use a setup.py file Add entry_points for your script command Create a requirements.txt file Use Black to format your code Create a tox.ini config and include code linters Set up a Git repo Refactor your code to be unit-testable and add tests Add missing docstrings Add type annotations and a MyPy verification step Upload to GitHub Add a continuous integration service (e.g. Travis) Add a requirements updater (e.g. pyup.bot) Add test coverage checker (e.g. coveralls) Add a Readme file and documentation Publish your project on PyPI Advertise your project 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://ep2019.europython.eu/events/speaker-release-agreement/ "

Watch
Johnny Dude - How Thinking in Python Made Me a Better Software Engineer

"How Thinking in Python Made Me a Better Software Engineer [EuroPython 2019 - Talk - 2019-07-11 - Boston] [Basel, CH] By Johnny Dude Did you ever wonder why development in Python can be x10 faster than development in languages like c++? Observing my teams’ experimentations, the python community, and reading, I have adopted various habits, patterns, and tools. But most importantly I learned thinking in Python. I consider thinking in Python a key for rapid development and good engineering. Thinking in a programming language affects the amount of information you need to keep in your working memory. It also affects the abstractions and tools that pop in your mind and then used in constructing solutions. Let’s explore what it means to think in Python. Why Python allows you to focus on problem solving, while languages like c++ often distract your attention from the problem at hand. In this talk I will cover some good and bad practices by examples while trying to consider the amount of effort needed to write it, read it, and talk about it with other team members. Key Takeaways: Tips for speeding your work without compromising quality, and reasoning for using it. The audience should be comfortably familiar with the process of software development, and software problem solving, and experience using Python. 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://ep2019.europython.eu/events/speaker-release-agreement/ "

Watch
Daniele Procida - The world's cheapest, simplest plotter

"The world's cheapest, simplest plotter [EuroPython 2019 - Talk - 2019-07-11 - Boston] [Basel, CH] By Daniele Procida I present an ultra-cheap (total cost of materials :€12.50) plotter that can be built with minimal skills. At its heart is a Raspberry Pi Zero and some relatively custom software, driving three servo motors. The mechanical hardware can be built from nothing but stiff card, a ball-point pen and some glue. The only tools required are a ruler, a sharp knife, a screwdriver and something to make holes in the card. Almost everything required can be found in a desk or kitchen drawer. The entire device can be built with no special skills in about an hour (and much of that time will be spent getting the glue off the kitchen table before you get in trouble). As you can see from the following images, the plotter produces images with a distinct charm: https://www.dropbox.com/s/s7x3cnxzp1zwnp0/europython.jpg?dl=0 https://www.dropbox.com/s/lzykb02rxh2d9ef/IMG_0065.jpg?dl=0 https://www.dropbox.com/s/8ibihhbfz9gmql0/IMG_0067.jpg?dl=0 https://www.dropbox.com/s/50lemnzw5ismcrq/IMG_0075.jpg?dl=0 It can also function as the world's most inconvenient camera: take a photo using the Raspberry Pi's camera, convert it into lines, and draw it. This is fun, but it's much more than that. There are barriers of skill, expense and materials around robotics. This project comes with me to African PyCons, and makes it possible for programmers to explore Python-based robotics, however limited their resources. The tools and complete kit of materials to build several plotters can be carried in a small box. The plotter code is published on GitHub: https://github.com/evildmp/PantoGraph. The code for converting bitmaps to cartesian vectors is at https://github.com/evildmp/linedraw/. I expect this to appeal to anyone who is interested in the idea of Python-driven robotics but is put off by the cost and complexity of hardware required actually to achieve something. It will be particularly of interest to people involved in education, or who'd like to explore Python with young people. The code, mathematics and especially the hardware in this project are all simple. The code resists the temptation to abstraction, and makes a point of breaking operations down into steps that are as easy as possible to follow. The project shows that doing things with robotics isn't just for people with well-equipped workshops and the engineering skills to use them. 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://ep2019.europython.eu/events/speaker-release-agreement/ "

Watch
Paul Everitt - Python 1994

"Python 1994 [EuroPython 2019 - Talk - 2019-07-11 - Boston] [Basel, CH] By Paul Everitt “Come for the language, stay for the community.” The Python community started in 1994 at a NIST workshop in Maryland. What was the world of Python like in its first years? Did we have any clue whatsoever? A joke-focused tour of early Python, heavy on question-and-answer. 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://ep2019.europython.eu/events/speaker-release-agreement/ "

Watch
Miroslav Šedivý - A Day Has Only 24±1 Hours

"A Day Has Only 24±1 Hours [EuroPython 2019 - Talk - 2019-07-11 - Boston] [Basel, CH] By Miroslav Šedivý On the last Sunday of October you may get “one more hour of sleep” but as well may spend much more time debugging code dealing with the time zones, daylight saving time shifts and datetime stuff in general. We'll look at a few pitfalls you may encounter when working with datetimes in Python. We'll dissect the pytz library, explain why it contains over 500 individual time zones while focusing on the 63 entries in Europe. We'll also find the reason why pytz is not part of the standard Python, why it gets updated so often and why even that won't solve all your problems. Do you know what happens after 2021 when the EU stops DST switching? Two centuries of short-sighted propaganda and long-term chaos in forty-five minutes. Maybe that will make you want to avoid time zones in your code altogether! 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://ep2019.europython.eu/events/speaker-release-agreement/ "

Watch
Tin Marković - Refactoring in Python

"Refactoring in Python [EuroPython 2019 - Talk - 2019-07-11 - MongoDB] [Basel, CH] By Tin Marković [Replacement talk] This talk was a replacement for Stanislav Geidl's talk: From legacy code to modern code Honest apologies to anyone whose expectations were subverted, but Stanislav fell sick and could not attend. Find the updated abstract below: This talk will describe experiences and lessons learned from tackling extremely demanding code. How to bring order to mismanaged code and elevate the code base to a standard that's acceptable in today's tech environment. Python makes wonderful code accessible at our fingertips, but it also allows us to take a lot of liberty. When you start, code is beautiful and makes sense. With each step you walk on, you find more and more hacks showing up. Eventually, the brilliant codebase you've started with can not be seen under the mud. Not every code-base can be rewritten, not everything can be redone from scratch. Cool libraries often take a lot of liberty with code structure and make cross-integration difficult, if not impossible. Tests sound ideal, but in practice, they're just so hard to make right. Why is this, and how to change it? The talk will tackle the problems in three parts: - The Easy Wins: What to do to instantly increase the code quality in your organisation. How? Why isn't it enough? - Patterns and Antipatterns: How to identify code that ""smells"", how to replace it? How to integrate into old code, better? - The Philosophy: What approach to set down for the future? Why to care? How to write replace-able code. How to prevent history from repeating. The talk will close with audience discussion and experiences, questions and proposals - building a collection of some on-premise tips and tricks. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Patrick Arminio - GraphQL in Python 🍓

"GraphQL in Python 🍓 [EuroPython 2019 - Talk - 2019-07-11 - MongoDB] [Basel, CH] By Patrick Arminio Over the past few years GraphQL has gained much traction, but what’s the state of GraphQL in Python. This talk describes what GraphQL is, why it has been created and the current state of GraphQL libraries in Python. There will be a short history of GraphQL, some examples of what makes it shine and why it can be preferred to REST. We will also analyse the current state of GraphQL in Python, having a brief overview of the current libraries and then having an in-depth look at Strawberry a new library based on dataclasses that makes it easy to create GraphQl APIs in Python. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Nar Kumar Chhantyal - Building Data Workflows with Luigi and Kubernetes

"Building Data Workflows with Luigi and Kubernetes [EuroPython 2019 - Talk - 2019-07-11 - PyCharm] [Basel, CH] By Nar Kumar Chhantyal This talk will focus on how one can build complex data pipelines in Python. I will introduce Luigi and show how it solves problems while running multiple chain of batch jobs like dependency resolution, workflow management, visualisation, failure handling etc. After that, I will present how to package Luigi pipelines as Docker image for easier testing and deployment. Finally, I will go through way to deploy them on Kubernetes cluster, thus making it possible to scale Big Data pipelines on-demand and reduce infrastructure costs. I will also give tips and tricks to make Luigi Scheduler play well with Kubernetes batch execution feature. This talk will be accompanied by demo project. It will be very beneficial for audience who have some experience in running batch jobs (not necessarily in Python), typically people who work in Big Data sphere like data scientists, data engineers, BI devs and software developers. Familiarity with Python is helpful but not needed. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Iulia Avram - Gamifying the study of algorithms

"Gamifying the study of algorithms [EuroPython 2019 - Talk - 2019-07-11 - Osaka / Samarkand [PyData track] [Basel, CH] By Iulia Avram Do you remember when you used to learn algorithms? It was probably either back when you were studying for your degree, or when you were brushing up for a technical interview. If you're like most of the developers I know, solving algorithms probably went from being a fun past-time, to a bothersome necessity, to a thing of the past. Our life has been greatly improved by our tools and there's little need to know all sorting methods out there, or how to search through a tree. Or maybe we're wrong, maybe knowing these things could make a difference in how we write code. I am going to try to dispel some of the myths surrounding the study of algorithms and competitive programming, and argue that sharpening this skill is something that benefits us, as software developers, outside of passing technical tests; that knowing many algorithms makes us better and faster problem solvers. Lastly, this talk is about resources and ways in which to gamify the study of algorithms. Going at it the same way as for exams or interviews makes it very bothersome very quickly. It gets easy to lose sight of the biggest picture and to start thinking of algorithms in abstract terms, outside their applications. All these are factors that prompt the question: why should I carry on with it? Therefore, something needs to be changed in the way we do this. Algorithms are fun and they don't deserve the disdain we give them. Knowing algorithms is not only for the geniuses and innovators. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Ronan Lamy - Opening PyPy's magic black box

"Opening PyPy's magic black box [EuroPython 2019 - Talk - 2019-07-11 - MongoDB] [Basel, CH] By Ronan Lamy PyPy is a fast and compliant implementation of Python. In other words, it's an interpreter for the Python language that can act as a full replacement for the reference interpreter, CPython. It's optimised to enable efficient just-in-time (JIT) compilation of Python code to machine code, and has releases matching versions 2.7, and 3.6. It now also supports the main pillars of the scientific ecosystem (numpy, Cython, scipy, pandas, ...) thanks to its emulation layer for the C API of CPython. The PyPy JIT is often just described as ""magically running your code faster"", but is actually what is known as a ""meta-tracing JIT"". A tracing JIT optimises loops by recording and optimising a single, hopefully representative, execution of the loop. While crude, that approach is known to be effective for just-in-time compiler. Additionally, PyPy's JIT is ""meta"" in the sense that it traces the execution of the interpreter while it runs some user-code instead of tracing the user-code directly. This again simplifies the compiler. We will explore how all this works together and is implemented (spoiler: it's Python all the way down!). This talk assumes no prior knowledge of compiler theory nor of PyPy internals, and should be of interest to anybody who wishes that their pure-Python code would run faster. The audience will gain a firmer understanding of how PyPy operates and optimises code, and how to how to get the most out of the PyPy JIT. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Philipp Thomann - PlotVR - walk through your data

"PlotVR - walk through your data [EuroPython 2019 - Talk - 2019-07-11 - Osaka / Samarkand [PyData track] [Basel, CH] By Philipp Thomann Are you bored by 3D-plots that only give you a simple rotatable 2d-projection? plotVR is an open source package that provides a simple way for data scientists to plot data, pick up a phone, get a real 3d impression - either by VR or by AR - and use the computer's keyboard to walk through the scatter plot: precodehttps://www.github.com/thomann/plotVR /code/pre After installing and plotting your dataframe open your phone's browser and use your GoogleVR Cardboard. Furthermore performant Android- and iOS-apps are available - both support VR-Cardboard and the iOS-Version also AR. Once you are immersed in your Cardboard how do you navigate through the scatter? plotVR lets you use the computer's keyboard to walk as you would in any first person game. You want to share your impression? Just save the HTML and publish it. The technologies beneath this project are: a web server that handles the communication between the DataScience-session and the phone, WebSockets to quickly proxy the keyboard events, QR-codes facilitate the simple pairing of both, and an HTML-Page on the computer to grab the keyboard events. And the translation of these keyboard events into 3D terms is a nice exercise in three.js, OpenGL, and SceneKit for HTML, Android, and iOS resp. Ready to see your data as you have never seen before? Join the talk! 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Mario Corchero - Exceptional Exceptions

"Exceptional Exceptions [EuroPython 2019 - Talk - 2019-07-11 - PyCharm] [Basel, CH] By Mario Corchero Did you know there are multiple ways to raise and capture exceptions? Have you ever wondered if you should raise a built-in exception or create your own hierarchy? Did you ever find it hard to understand what an exception meant? This talk will go through the decisions needed to raise and capture exceptions when creating a library. We will look at how to translate and handle errors, create your own exceptions, and make exceptions clear and easy to troubleshoot, while also understanding how they actually work, common pitfalls. This talk will enable intermediate developers to leave the room with a solid understanding of how to work effectively with exceptions. As the exception flow usually goes untested, this will help prevent frustrating situations when errors occur that are not easy to understand or when an unexpected result is produced. The talk will delve into the different ways of working with exceptions. We will illustrate this with a real-world example to which many developers will be able to relate. Following the talk, intermediate developers will leave the room more informed and better prepared to create and handle exceptions, having learned about many utilities that were already available to them, but were never used or were used improperly. The not-so-advanced Pythonistas will get an in-depth dive into exceptions. Even if they might not be able to grasp all of the content, they will get a sense of the features that most programmers are unaware of and learn to use them when the proper situation arrives. Advanced programmers will find this to be a humorous talk that will certainly teach them at least one new thing, as I will dive into parts of the grammar of Python that even many advanced programmers are not used to. The talk is also full of niche information like why the variable that catches exceptions doesn’t like outside of the codeexcept/code scope. The talk is comprised of four main sections preceded by an introduction to the problem and a conclusion with time for questions at the end. We will look at how to raise, capture, create and design exceptions, offering tips and pitfalls in each section. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Antonio Cuni - How to write a JIT compiler in 30 minutes

"How to write a JIT compiler in 30 minutes [EuroPython 2019 - Talk - 2019-07-11 - MongoDB] [Basel, CH] By Antonio Cuni Real-world JIT compilers like PyPy and Numba are complex and advanced. However, the basic ideas behind JIT compilers are easy to understand, as this talk aim to show. This is a live-coding exercise: we will start from a blank page and write a working (albeit simple and limited) JIT compiler from scratch. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Raphael Pierzina - Advanced pytest

"Advanced pytest [EuroPython 2019 - Talk - 2019-07-11 - PyCharm] [Basel, CH] By Raphael Pierzina There are many reasons why I think pytest is a fantastic test framework: assertion introspection, setup and teardown with fixtures, parametrized tests. But plugins are the real game changer! We'll dive right into customizing a test suite by developing a series of pytest plugins based on a few neat hacks. We'll learn how to automatically add markers to slow running tests, run only tests that use a fixture which can be specified on the CLI, generate test reports in a custom format, and automatically create GitHub issues for test regressions. We'll wrap up this talk by using Cookiecutter to create Python packages from our plugins that are ready to be published on PyPI. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Alexander Hendorf - Explaining AI to Managers 👨‍💼🤖👩‍💼

"Explaining AI to Managers 👨‍💼🤖👩‍💼 [EuroPython 2019 - Talk - 2019-07-11 - Osaka / Samarkand [PyData track] [Basel, CH] By Alexander CS Hendorf Artificial intelligence promises great value. The technology is mostly understood only by few, yet still unexplainable even for experts. In this talk I'll present how to narrow the hype down to real value explainable to everyone in your organisation - without the math. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Christoph Deil - Understanding Numba - the Python and Numpy compiler

"Understanding Numba - the Python and Numpy compiler [EuroPython 2019 - Talk - 2019-07-11 - PyCharm] [Basel, CH] By Christoph Deil Do you have numerical code written in Python and Numpy? Do you wish it ran faster, using the full potential of your CPU? Then you should try Numba, a JIT compiler that translates a subset of Python and Numpy code into fast machine code. This talk will explain how Numba works, and when and how to use it for numerical algorithms, focusing on how to get very good performance on the CPU. To understand this talk, only a basic knowledge of Python and Numpy is needed. You will learn how Python compiles functions to bytecode and how Numba compiles bytecode to machine code. Why algorithms implemented using Numpy sometimes don't yield great performance, and how to do better using Numba. You will learn about the @numba.jit and @numba.vectorize decorators and how to create functions that use the CPU well by using e.g. multi-threading (several CPU cores), vector instructions (single instruction multiple data) and fast math (trade float accuracy for speed). You will also learn when it does and doesn't make sense to use Numba, by contrasting it briefly with some other options for high-performance computing from Python: PyPy, C, C++, Cython, Numexpr, Dask, PyTorch, Tensorflow and Google JAX 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Christian Heimes - Introduction to low-level profiling and tracing

"Introduction to low-level profiling and tracing [EuroPython 2019 - Talk - 2019-07-11 - MongoDB] [Basel, CH] By Christian Heimes Python has built-in tracing and profiling facilities in form of callback hooks in the sys module. The settrace and setprofile callbacks have several drawbacks. They slow down the Python interpreter considerable and only allow tracing of Python code. Modern OS and CPUs come with a variety of APIs for efficient and low-level tracing down to system calls, Kernel space code, and hardware events. Some tools even create code that runs in Kernel space. This talks is an introduction and comparison of various low and high level tools for profiling and tracing as well as visualization tools like flame graphs. It covers ptrace, perf, SystemTap, and BCC/eBPF. Ptrace based commands like strace are easy to use but slow. Perf allows lightweight profiling of hardware events and CPU instructions. SystemTap is a powerful toolkit plus DSL to instrument probe points inside the Kernel as well as static SystemTap/DTrace markers in libs and languages like Java, PHP, and Python. CPython comes with a set of instrumentations for SystemTap. BCC is a collection of tools that run as JIT optimized eBPF code in Kernel space. The talk is an introduction to basic concepts of low-level tracing and profiling on Linux. The main goal is the show the potential of the tools. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
EuroPython 2019 - Recruiting Session

Recruiting Session [EuroPython 2019 - - 2019-07-11 - Osaka / Samarkand [PyData track]] [Basel, Switzerland] 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Michele Simionato - Tips for the scientific programmer

"Tips for the scientific programmer [EuroPython 2019 - Talk - 2019-07-11 - PyCharm] [Basel, CH] By Michele Simionato This is a talk for people who need to perform large numeric calculations. They could be scientists, developers working in close contact with scientists, or even people working on finance and other quantitative fields. Such people are routinely confronted with issues like 1 parallelism: how to parallelize calculations efficiently 2 data: how to store and manage large amounts of data efficiently 3 memory: how to avoid running out of memory 4 performance: how to be fast The goal of the talk is to teach some lessons learned after several years of doing numeric simulations in a context were micro-optimizations are the least important factor, while overall architecture, design choices and good algorithms are of paramount importance. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Brad Miro - Deep Learning with TensorFlow 2.0

"Deep Learning with TensorFlow 2.0 [EuroPython 2019 - Talk - 2019-07-11 - Osaka / Samarkand [PyData track] [Basel, CH] By Brad Miro Learn about the updates being made to TensorFlow in its 2.0 version. We’ll give an overview of what’s available in the new version as well as do a deep dive into an example using its central high-level API, Keras. You’ll walk away with a better understanding of how you can get started building machine learning models in Python with TensorFlow 2.0 as well as the other exciting available features! 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Stefan Behnel - Get up to speed with Cython 3.0

"Get up to speed with Cython 3.0 [EuroPython 2019 - Talk - 2019-07-11 - PyCharm] [Basel, CH] By Stefan Behnel Processing lots of data, in need of more speed, or struggling to make use of native code? The Cython compiler for Python solves all of these problems in a pythonic way, by compiling Python code to optimised C code. Cython [1] has a very long history of faithfully helping users to solve their Python performance problems and integrating native code into Python in production critical settings, while stimulating somewhat less confidence with its 0.x versioning scheme. For the next Cython version, a stable 3.0 release, we are planning to clean up several historically grown issues in the language to make the Cython compiler more friendly for modern Python users to work with. In this talk, I will show how Cython can be used for compiling and speeding up Python code, using fast native data structures and libraries. I will then give an overview of the changes that are on their way for the 3.0 release and how they will affect the user experience. [1] https://cython.org 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Luba Elliott - AI in Contemporary Art

"AI in Contemporary Art [EuroPython 2019 - Keynote - 2019-07-11 - MongoDB] [Basel, CH] By Luba Elliott Over the past couple of years, there has been increasing interest in applying the latest advances in machine learning to creative projects in art and design. From DeepDream and style transfer to a GAN-generated painting selling for $430,000 at auction, AI art has moved beyond the world of research and academia and become a trend in its own right. Meanwhile, the contemporary art world's fascination with the social impact of facial recognition, recommendation systems and deep fakes has encouraged artists to explore AI critically as subject matter. This talk will give an overview of how artists and technologists are using and thinking about machine learning, its creative potential and societal impact. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
EuroPython 2019 - Lightning talks on Thursday, July 11

"Lightning Talks [EuroPython 2019 - - 2019-07-11 - MongoDB] [Basel, CH] 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Victor Stinner - Python Performance: Past, Present and Future

"Python Performance: Past, Present and Future [EuroPython 2019 - Keynote - 2019-07-12 - MongoDB] [Basel, CH] By Victor Stinner Python Performance: Past, Present and Future 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Juan Santos - PEP yourself: 10 PEPs you should pay attention to

"PEP yourself: 10 PEPs you should pay attention to [EuroPython 2019 - Talk - 2019-07-12 - PyCharm] [Basel, CH] By Juan Santos Reading standards documents can be a dull task. But like in other fields, standards in Python play a big part. Python Enhancement Proposals (PEPs) are defined, improved, and eventually implemented by the community. They apply to mostly anything related to Python, from the more abstract and general to the more concrete and specific. Paying attention to them, and knowing which ones to read beforehand is a vital task that should take place prior to writing the first lines of code in a project. In this talk we will go over a condensed list of the most important PEPs to this date and see how they influence everyday coding. From style guides and docstring conventions to data classes and assignment expressions, we will see how these PEPs affect (or can affect) the code we write, and how can we use them to improve our code and make developing easier and more fun. After this talk, attendees will have a better grasp on why PEPs are important to Python, which are a must read, and which ones they should use as a guide in the future, both for coding and refactoring. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Tiago Montes - Don't do this at work

"Don't do this at work [EuroPython 2019 - Talk - 2019-07-12 - PyCharm] [Basel, CH] By Tiago Montes In this talk I reframe a computer programming workshop for kids I delivered earlier this year, exploring and sharing my experience throughout that journey, from preparation to delivery, by recreating a simple yet engaging enough game. With that I'll both demonstrate several Python related techniques and tools many may not be aware of, on one hand, and, on the other, extract provocative questions about general learning processes, especially when targeted at professional developers. I promise zero slides and a somewhat fast-paced live (re)coding session, intertwined with comments on good/bad techniques, along with a surprising exploration of the turtle module in the Standard Library -- it is more capable than you think. I wrap up with a self-code review and with thoughts on how such a game could be improved, what implications that could have for both beginners and seasoned professionals: should you do this at work? Targeting 10 minute Q&A / discussion by the end! 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
James Saryerwinnie - Downloading a Billion Files in Python

"Downloading a Billion Files in Python [EuroPython 2019 - Talk - 2019-07-12 - Shanghai] [Basel, CH] By James Saryerwinnie You've been given a task. You need to download some files from a server to your local machine. The files are fairly small, and you can list and access these files from the remote server through a REST API. You'd like to download them as fast as possible. The catch? There's a billion of them. Yes, one billion files. How would would you do this? Would you do this synchronously in a single for loop? Would you use a producer/consumer queue with threads? Multiprocessing? Asyncio? In this talk, we'll examine 3 different mechanisms for concurrently downloading files: multithreading, multiprocessing, and asyncio. For each of these mechanisms we'll look at design best practices, how to handle debugging and error handling, and of course the overall performance. By examining three different approaches using the same data set, we gain a better understanding of the tradeoffs of each approach so we can pick the right library for the job. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Radosław Ganczarek - Code quality in Python

"Code quality in Python [EuroPython 2019 - Talk - 2019-07-12 - Boston] [Basel, CH] By Radosław Ganczarek Four years ago I talked about code quality during EuroPython in Bilbao. A lot of things changed from that time. Firstly, most tools I presented were still developed and gained new features, but also new ones appeared I wanted to discuss with you. Secondly, Python changed, Python 3 has type hints on board and there is a new tool dedicated to checking the types. Thirdly - I changed. I'm more distanced form my zealous approach from four years ago. I got real and reasonable. That's why I wanted to talk about code quality tools in Python again. I'll talk about all the software that can make code review a bit simpler by pointing out possible errors, duplicates or unused code. I'll talk again about formatters and how can they be used in modern-time projects. And I'll talk about hobgoblins, if you know what I mean :) 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Nicholas Tollervey - Tools of the Trade: The Making of a Code Editor.

"Tools of the Trade: The Making of a Code Editor. [EuroPython 2019 - Talk - 2019-07-12 - Singapore] [Basel, CH] By Nicholas Tollervey This talk tells the story of Mu, a native code editor written in Python (https://codewith.mu/). One Sunday afternoon I foolishly asked myself, ""How hard can it be to write a simple code editor?"" Several years later an international team of volunteers are still working on the project. We have had to address: Cross platform GUI development. Cross platform packaging solutions for Python. Creating an interactive visual debugger. Integrating with iPython notebook. Integrating with various IoT MicroPython devices. Integrating with frameworks such as PyGame/PyGameZero and Flask. Automating cross platform testing. Researching and testing UX with a challenging user base. Accessibility for all. Internationalisation. Creating an inclusive, welcoming and supportive community. This talk will explain why Mu was created, how Mu was created and, most importantly, shares the decision making, technical research and implementation details of Mu in the hope others can learn from our mistakes, mis-steps and muck-ups. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Peter Sperl - Configuring uWSGI for Production: The defaults are all wrong

"Configuring uWSGI for Production: The defaults are all wrong [EuroPython 2019 - Talk - 2019-07-12 - Singapore] [Basel, CH] By Peter Sperl Two years ago, we began migrating from a proprietary service framework to a WSGI-compliant one. We chose uWSGI as our host because of its performance and feature set. But, while powerful, uWSGI's defaults are driven by backward compatibility and are not ideal for new deployments. Powerful features can be overlooked due to the sheer magnitude of its feature set and spotty documentation. As we've scaled up the number of services hosted by uWSGI over the last year, we've had to tweak our standard configuration. In this talk, we'll present the base uWSGI configuration we use as a starting point for all services, as well as some tips to avoid known gotchas and provide a base level of defensiveness and high reliability. This base configuration makes use of several ""no-cost"" uWSGI features that help protect services from common, yet difficult to prevent issues -- some of which we discovered the hard way. We'll also talk about some programmatic uWSGI features which can be leveraged to improve reliability and improve outage response. Some of the topics we'll cover include: - Mitigating memory leaks - Mitigating stuck, hung, or infinitely looping processes - Preventing misconfigurations - Preventing wasted development effort - Improving outage response 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Trapsilo Bumi - Enhancing Angklung Music Rehearsals with Python

"Enhancing Angklung Music Rehearsals with Python [EuroPython 2019 - Talk - 2019-07-12 - Shanghai] [Basel, CH] By Trapsilo Bumi Angklung is a traditional musical instrument from Indonesia. This instrument has a lot of variety in how it is performed; a common format is the orchestral format in which 15-30 players gather to form a team. Playing Angklung in this way is fun but also presents some challenges that are hard to solve manually. First, I will introduce you to the instrument and how it works/how it is played. Then, I will show you how Python-based algorithms can be used to ease the pains of managing Angklung teams, by reading Angklung-specific sheet music and calculating the most optimal distribution of Angklung based on several important factors. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Andrey Vlasovskikh - The Story of Features Coming in Python 3.8 and Beyond

"The Story of Features Coming in Python 3.8 and Beyond [EuroPython 2019 - Talk - 2019-07-12 - Singapore] [Basel, CH] By Andrey Vlasovskikh What's coming in Python 3.8? You can learn it by yourself by reading an excellent document a href=""https://docs.python.org/3.8/whatsnew/3.8.html""What's New in Python 3.8/a. I'm not going to retell this document. Instead I'll focus on things barely described there or not mentioned at all: Why will the new features appear in Python 3.8 and what's the story behind them? What is being discussed and developed now, but won't appear in Python 3.8? I'll share the news I learned at PyCon 2019 from the talks and discussions with Python core developers. I'll mention the following topics: New syntax: codex := expr/code, codef(..., /, ...)/code, codef'{expr=}'/code New types: codeLiteral/code, codeFinal/code, codeTypedDict/code Future features of typing and async/await New approaches to optimizing Python: sub-interpreters, mypyc 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://ep2019.europython.eu/events/speaker-release-agreement/ "

Watch
Miguel Grinberg - Look Ma, No HTTP!

"Look Ma, No HTTP! [EuroPython 2019 - Talk - 2019-07-12 - Shanghai] [Basel, CH] By Miguel Grinberg In this talk I'm going to live code a web application that is built exclusively on top of WebSocket, without using HTTP at all! What's the benefit of using WebSocket over HTTP, you may ask? With WebSocket each client establishes a permanent connection to the server, so there is no request/response cycle and no need for the client to poll the server for data. Each side can freely send data to the other side at any time, so this is an ideal stack for building highly dynamic, event-driven applications. For this live coding exercise I'm going to use the Socket.IO server for Python, and the Socket.IO client for JavaScript. No Flask, no Django, no HTTP! 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Alexys Jacob - How we run GraphQL APIs in production on our Kubernetes cluster

"How we run GraphQL APIs in production on our Kubernetes cluster [EuroPython 2019 - Talk - 2019-07-12 - Singapore] [Basel, CH] By Alexys Jacob In this talk I would like to share the workflow and tools we use to build, deploy and operate GraphQL APIs on our on-premise Kubernetes cluster. I will share code and command examples explaining how we are operating our applications since our recent transition from REST APIs on Web servers to GraphQL APIs containers on Kubernetes. This talk will not be about the difference between REST and GraphQL but focus on the workflow, tools and experience we gained in switching our run time environments and API models. At Numberly, we have built and are operating our own on-premise Kubernetes cluster so we will also be talking about its capabilities and share some of the experience we gained in doing so. Proposed agenda: - Our previous workflow and its limitations - How we designed our Kubernetes cluster, its capabilities and the choices we made - Developer workflow, environments management and deployment - Our GraphQL stack, featuring a sample application - What we're still working on to improve 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://ep2019.europython.eu/events/speaker-release-agreement/ "

Watch
Mikhail Bushkov, Max Vogler - Evolving a helper script into a 180,000-lines-of-Python-code project

"Evolving a helper script into a 180,000-lines-of-Python-code project [EuroPython 2019 - Talk - 2019-07-12 - Singapore] [Basel, CH] By Mikhail Bushkov, Max Vogler GRR Rapid Response (https://github.com/google/grr) is an incident response framework focused on remote live forensics. It consists of a Python client (agent) that is installed on target systems, and Python server infrastructure that can manage and talk to clients. The goal of GRR is to support forensics and investigations in a fast, scalable manner to allow analysts to quickly triage attacks and perform analysis remotely. GRR was started at Google in 2009 as a simple Python helper script used by Incident Response engineers. Eventually a little Python script got a little server component, was adapted to run on multiple systems (Mac, Linux, Windows), then a little UI was added and a few nice features were introduced (large-scale hunts, collection of predefined artifacts, memory analysis). A helper script has eventually evolved into a sophisticated framework with 180,000 lines of Python code. In the presentation we’ll talk about the process of evolving a small prototype-like Python project into a production-ready system, using GRR as an example. The topics that we’ll cover are: * Taking shortcuts - both in terms of design and implementation. Reasons for taking them and their eventual costs. * Relying on Python’s power features (i.e. meta-classes, mixins)? Long-term consequences on maintainability and readability. * Organising the project into separate PyPI packages - benefits of doing that. * Continuous integration, testing and automated builds for various platforms - implementation costs and maintainability effects. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Anastasiia Tymoshchuk - The Agile comedy: from hell to paradise

"The Agile comedy: from hell to paradise [EuroPython 2019 - Talk - 2019-07-12 - Shanghai] [Basel, CH] By Anastasiia Tymoshchuk Nowadays everyone wants to bring Agile Best Practices into all the teams, but it's a hard task to implement it and adapt based on different teams. Setting up all necessary Agile meetings and using buzz words is not enough for the team to be happy and successful while working in Agile environment. Inspired by the ""Divine Comedy"" by Dante Alighieri, I decided to create a short guide into Agile best practices. It will guide through Failures, Challenges to the Success in building a happy dream team! This talk is divided into three parts: 1. Failures in setting up Agile processes for a team. 2. Challenges on the way to happy and successful team. 3. Successful examples how to have happy and productive Agile team and constantly deliver a great product. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
EuroPython 2019 - Sprint Orientation

"Sprint Orientation [EuroPython 2019 - - 2019-07-12 - MongoDB] [Basel, CH] 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Bernat Gabor - status quo of virtual environments

"status quo of virtual environments [EuroPython 2019 - Talk - 2019-07-12 - MongoDB] [Basel, CH] By Bernat Gabor Python is easy to learn and use programming language; however, managing dependencies and package versions for it are nowhere as pleasant. One of the basic building block created to help with this is virtual environments. Join me in understanding how virtual environments work from within (by one of the project maintainers); also, to find out if the good old virtualenv project has any place left, now that Python 3.4+ contains venv. This talk is aimed to be a bit more technical in its first parts, presenting in technical details what a virtualenv is. The target audience is anyone who used virtual environments and wants to understand how they tick from within. I’ll also emphasise diversity and inclusion at Python interpreter level by highlighting other interpreters than CPython: Jython, PyPy or Iron Python. A concise outline goes as follows: What is a virtual environment? - why we need it - what we use it for - demo - virtualenv vs system env How do we build a virtual environment (CPython) - technical workflow of venv creation - activation -- bash -- powershell -- cmd.bat Other interpreters - why other than CPython? - PyPy - Jython - virtualenv - all Python support - extra activation - xonosh Summary and q/a 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Łukasz Kąkol - Code review for Beginners and Experts: Tips & Tricks

"Code review for Beginners and Experts: Tips & Tricks [EuroPython 2019 - Talk - 2019-07-12 - MongoDB] [Basel, CH] By Łukasz Kąkol Code review is not just boring duty. It's mutual responsibility for the software we're releasing. It's one of the most critical aspects of code quality, and therefore it's the first step of quality assurance. This is also the key to easier programming and better maintainability. Clean code is much easier to debug, and it's much harder to introduce a bug in such code. When you think about code review, you probably think about verifying and examining the code. Reviewing the expert's code may look like a waste of time because he knows what he's doing. Reviewing the code by a beginner may look like a waste of time because he's not able to find as many defects as an experienced developer. Code review is a code quality tool in the first place, but it's also much beyond that. You can teach or help someone, learn from somebody and much more both from the position of reviewer and reviewee. There is much more about the real power of code review which I want to share with you. This talk is also about how to do it the right way and how to not do it based on lessons learned and my experience within the diverse teams of people with a variety of knowledge and experience. I was reviewing the code but, on the other hand, I was also being reviewed. I'd like to pass my observations to people who are reviewing the code both in commercial and open source projects for a while. This talk is also for those who want to start to review the code, but they do not know how to do it. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Dustin Ingram - Google Cloud for Pythonistas

"Google Cloud for Pythonistas [EuroPython 2019 - Talk - 2019-07-12 - MongoDB] [Basel, CH] By Dustin Ingram Support for Python on Google Cloud has never been better. Join us for a tour of Python runtimes, services and client libraries, including App Engine, Cloud Functions, Cloud Run, and more. We'll also discuss tools for monitoring and debugging your Python application, and best practices for using Python on Google Cloud. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Max Humber - How to read (code)

"How to read (code) [EuroPython 2019 - Talk - 2019-07-12 - MongoDB] [Basel, CH] By Max Humber When you learn a new language, like French or German or even English, you first learn how to read. Then you learn how to write. When you learn a new emprogramming/em language, you first learn how to write. And that’s it. Imagine that you were never formally taught how to read. And that you were told that you should just figure it out … by writing … a whole bunch. How would that even work? I don’t think it would. If you can’t read. You can’t write. It’s that simple. Do you think that Shakespeare would be Shakespeare if he never read a single book in his entire life? No. Nothing is created in a vacuum. Good writers are good writers because they’re good readers. Just as reading is an invaluable skill so to is reading code. It’s a skill that’s never formally taught. But it’s a skill that is essential nonetheless. In this talk I’ll show you how to effectively read code so that might write better code. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Clinton Roy - Running a Synchrotron on Open Source Python

"Running a Synchrotron on Open Source Python [EuroPython 2019 - Talk - 2019-07-12 - MongoDB] [Basel, CH] By Clinton Roy A synchrotron is a large research facility that has a large software stack to keep things running, fortunately a large chunk of the stack is Open Source and fair chunk of it is Python to boot. By the end of the talk attendees will understand the scale of the infrastructure (both physical and software) that is required, and have an idea of what sort of problems a synchrotron could help them solve. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Radoslav Georgiev - Software patterns for productive teams

"Software patterns for productive teams [EuroPython 2019 - Talk - 2019-07-12 - MongoDB] [Basel, CH] By Radoslav Georgiev Software development is a team game. When we want to deliver more work, one of the variables that we can change is the team size. But as we all know, increasing the team size does not automatically translate into increased productivity & more features shipped. If things are left unmanaged, people can step on each other toes, block each other & generally decrease the overall productivity of a given software project. In this talk we'll identify different problems teams can face & see how we can solve them using different strategies & patterns. In the end, we want to enable the team to perform better & ship features with high confidence. We want enable the team & put its potential into building good software. Problems we are going to cover: Constant merge conflicts / working in the same files Blocking each other on different features / Feature deadlock Constantly switching between bugfixing & feature development Constant regressions and things breaking down Fighting with local setup & not being able to properly test things, especially when working with 3rd parties Merge strategies & improving the work with git & GitHub Communication between team members & ego fights For each problem, we are going to propose different solutions with provided real-life examples from our experience & projects. The examples show are going to be in the context of large Python / Django projects. This talk is the natural sequel of the following talks from previous EuroPythons: EuroPython 2017 - Practical Debugging - Tips, Tricks and Ways to think - https://www.youtube.com/watch?v=9Ys4gCUtTh8 EuroPython 2019 - Django structure for scale and longevity - https://www.youtube.com/watch?v=yG3ZdxBb1oo 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Lynn Root - Advanced asyncio: Solving Real-world Production Problems

"Advanced asyncio: Solving Real-world Production Problems [EuroPython 2019 - Talk - 2019-07-12 - MongoDB] [Basel, CH] By Lynn Root By building a simplified chaos monkey service, we will walk through how to create a good foundation for an asyncio-based service, including graceful shutdowns, proper exception handling, and testing asynchronous code. We’ll get into the hairier topics as well, covering topics like working with synchronous code, debugging and profiling, and working with threaded code. We’ll learn how to approach asynchronous and concurrent programming with Python’s asyncio library, take away some best practices, and learn what pitfalls to avoid. Outline: (40 minutes + 5 min Q&A, if unable to get 45 minutes, then 30 min slot with no time for Q&A) Intro (2m) Speaker/company intro Setting the context/purpose of talk Foundations (9m - trimmed to 6m for 30 min slot) Initial setup of an asyncio service (2m) --- Required boilerplate code --- Inspiration from official asyncio tutorial docs Making a service emactually/em concurrent (5m) --- non-blocking vs concurrent --- when to be concurrent vs serial --- using callbacks vs awaits vs scheduling tasks (create_task) vs asyncio.Events --- Making synchronous code asyncio-friendly (2m) Intermediate (9m - trimmed to 6m for 30 min slot) Graceful shutdowns (3m) --- What a signal handler is, why it’s needed --- What signals to listen to --- Gotchas of cancelling tasks, asyncio.shield + shutdown behavior Exception handling (3m) --- Difference between top-level exception handling and handling within other coroutines --- Avoid mistakenly swallowing/missing raised exceptions --- Making use of loop.setemexception/emhandler Making threaded code asyncio-“friendly” (3m) --- Calling threaded code from coroutines (aka running within a ThreadPoolExecutor) --- Calling coroutines from from threaded code (aka runemcoroutine/emthreadsafe) Advanced (19m - trimmed to 15m for 30 min slot) Testing asyncio code (7m) --- Benefits of debug mode --- How to mock coroutines Debugging an asyncio service (5m) --- Reinforce debug mode --- Using “tricks"" like codeasyncio.all_tasks/code with logging, codeloop.slow_callback_duration/code, adding context/stack trace in default exception handler Profiling (7m) --- Basic profiling (cProfile, strace) - not that different from sync code --- Continuous profiling with 3rd party tools, i.e. github.com/what-studio/profiling --- PyCharm’s asyncio & thread profiler --- How to properly trace a workflow/request (e.g. for the purpose of distributed tracing) (to be cut if not enough time) Wrap up/Review (1m) /ol 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Europython 2019 - Morning Announcements on Friday, July 12

"Morning Announcements [EuroPython 2019 - - 2019-07-12 - MongoDB] [Basel, CH] 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Holger Krekel - Delta Chat, CFFI, pytest and all the Rust

"Delta Chat, CFFI, pytest and all the Rust [EuroPython 2019 - Talk - 2019-07-12 - Boston] [Basel, CH] By Holger Krekel Delta Chat, a new approach to decentralized messaging, uses Python in several ways. Delta Chat is a Whatsapp/Telegram-style messenger app which uses the existing e-mail server network instead of central servers. There is no address book upload, and no necessity to tie accounts to mobile numbers. We'll live-demo how ""Chat over E-mail"" works, with random audience members, in real-time. We'll then look into how Python is used for automated testing (with pytest) against the messenger core library which is exposed through CFFI. However, the core library will soon be ported to full Rust. Are there better ways to interface Rust with Python than going through C-interfaces? In the third part we'll introduce first example Chat Bots, written in Python. Do you want to send an machine-generated system allert to a sysadmin group? Or safely archive all media that is posted to a family group? Or have your IoT sensor react to commands or send info? Just do it without registering a bot to some central cite, or by exposing all content information to (e. g. Telegram) servers. A Chat Bot only needs access to a standard IMAP/SMTP account. We'll look at the simple Python API for writing and testing powerful and versatile Chat bots. Delta Chat: https://delta.chat Core library and Py bindings: https://github.com/deltachat/deltachat-core Deltabot: https://github.com/deltachat/deltabot/ 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://ep2019.europython.eu/events/speaker-release-agreement/ "

Watch
Radomir Dopieralski - Game Development with CircuitPython

"Game Development with CircuitPython [EuroPython 2019 - Talk - 2019-07-12 - Boston] [Basel, CH] By Radomir Dopieralski Making computer games is difficult: it requires creativity, multidisciplinary knowledge of art, psychology, math, computer science, physics and others, patience, open mind and dedication. Making computer games with Python is a nightmare. You hit practically every sharp corner that Python has, starting with installation, through binary libraries, poor hardware support, up to distribution. PewPew devices are an attempt at solving the worst problems by giving you a dedicated, cheap, simple and portable gaming device, that you can easily program with Python with just a simple text editor. They also make pretty neat conference badges. I will talk about how they were conceived, how they are used, and how you can extend and improve them yourself. At the end of the talk you should have a good idea about what is CircuitPython and MicroPython and how they can be used to build and program such simple devices. You should also know where to find the resources necessary to try designing and building your own. 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://ep2019.europython.eu/events/speaker-release-agreement/ "

Watch
Danny Engelbarts - And now for something completely different.

"And now for something completely different. [EuroPython 2019 - Talk - 2019-07-12 - Singapore] [Basel, CH] By Danny Engelbarts The goal of this talk is to show the audience a different way of thinking about and developing regex statements. I have been working with UNIX for decades now and, although i always managed to avoid Perl, i have been intrigued with Regex constructs ever since my first encounter. These weird unreadable things that can transform text like nothing else or can find what i’m looking for in massive files, in no time at all. I’ve created regexes that only appeal to the most nerdiest of nerds and i’ve stunned colleagues by fixing their futile regex attempts in just a few keystrokes. But when Damian Conway showed me how regexes really work i was awestruck. And now i want to share this knowledge. This talk is aimed at pythonistas that have some experience with the re module. I will take some easy examples and explain in plain english how a regex engine searches for a match. This will show that a regex is not some mysterious incomprehensible pattern description or declarative blueprint. Instead it is a small program that is very good at comparing single characters. Like any programming language it turns out that once you understand the rules and structure it suddenly becomes so much easier to use. With this new found knowledge we will up the ante and try some more difficult stuff, adding other semantics and some tips and tricks. We’ll look at some pitfalls, maybe compare regex to python solutions and have a look at some regexes found in the wild (either on my drive or on github). 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://ep2019.europython.eu/events/speaker-release-agreement/ "

Watch
Justin Mayer - Zen of Python Dependency Management

"Zen of Python Dependency Management [EuroPython 2019 - Talk - 2019-07-12 - Boston] [Basel, CH] By Justin Mayer Ensuring reliably repeatable dependency installation has long been an unsolved problem for many Python projects. Pinning dependencies via setup.py and requirements.txt has historically been met with extra work and unexpected results, particularly when managing the dependencies of dependencies. Thanks to PEP 518, Python projects can now more easily manage dependencies via the new pyproject.toml file specification. In its wake, a number of useful tools have arisen that use this file to provide enhanced dependency resolution, including Poetry, Hatch, and Pipenv. Attendees of this talk will take home the following knowledge and skills: how to replace three files (setup.py, requirements.txt, and MANIFEST.ini) with just one: pyproject.toml why dependency resolution is hard and why it matters how Poetry, Hatch, and Pipenv differ and when to use each why one might use a less magical alternative: pip-tools how to use pipx to isolate system-wide Python tools 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://ep2019.europython.eu/events/speaker-release-agreement/ "

Watch
Lennart Regebro - Moving big projects to Python 3

"Moving big projects to Python 3 [EuroPython 2019 - Talk - 2019-07-12 - Boston] [Basel, CH] By Lennart Regebro Next year Python 2 is no longer maintained. But you have a monster code base with clever tricks and libraries that don't support Python 2, and your data may be stored in a format that is hard to move Python 3. And that's the easy bit. This talk focuses on the process of moving, not the code changes. Because it's the process that is the hard part. How do you get your code in a state where it's ready to move? How do you get the whole team on the boat to Python 3? All Python 3 talks I have seen, including those I have given, and all the texts on how to port, including the book I wrote, focus on the code changes. With increasing backwards compatibility in Python 3 and forward-compatibility in Python 2, this actually became a lesser problem for big code bases. The extra issues of large, old code bases Can you stop adding features? (1 min) Separate team vs getting everyone on it (2 min) Python 2 compatibility: You need it (1 min) The steps Fix your development process (2 min) Replace old libraries, or take over maintenance and port them (2 min) Make sure your tests are solid (1 min) Run 2to3 but only backwards compatible fixers (2 min) Run tests on Python 3 to stop backsliding (4 min) Run all tests: Expansive or slow Store passed tests Detect tests that change Turning it off adds a lot of extra work Port all your little utilities and tool scripts (1 min) Fix fix fix fix (1 min) Add tests with Python 2 data, to test migration (2 min) You might need migration scripts Extra careful staging tests (1 min) Production: Try, fail, repeat (1 min) Clean the code up (3 min) 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://ep2019.europython.eu/events/speaker-release-agreement/ "

Watch
Grzegorz Kocjan - Don't start with a database

"Don't start with a database [EuroPython 2019 - Talk - 2019-07-12 - Shanghai] [Basel, CH] By Grzegorz Kocjan What you do when you start a new project? Usually, we begin with database design, then we prepare a migration system, user registration, and all different stuff that distracts us from doing what is most important - business logic. With the clean architecture, we can learn how to start a project in another way and this will be one of two main topics of my talk. The second one will be about new features in Python. You probably heard about typings, mypy, and dataclasses, but I will show you how they can be used in real life project that can be developed over many years in production lifecycle. There will be no ""hello world"" app, no copy & paste of documentation, only practical knowledge learned through many years of practice. 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://ep2019.europython.eu/events/speaker-release-agreement/ "

Watch
Alessandro Molina - Python Standard Library, The Hidden Gems

"Python Standard Library, The Hidden Gems [EuroPython 2019 - Talk - 2019-07-12 - Boston] [Basel, CH] By Alessandro Molina The Python Standard Library is a very rich toolset, which is the reason why Python is stated to come with ""batteries included"". In such an amount of features and tools it's easy to get lost and miss some of the less unknown modules or gems hidden within the whole load of functions and classes. This talk aims at showcasing some recipes, snippets and usages of standard library modules and functions that are less known or that are not covered in the most common books and tutorials available for Python. The talk will try to showcase a bunch of short examples in the hope to foster the ""oh, wow! I didn't think about that"" reaction at least once in the audience. We will see how frequently for tasks where you used third party libraries or frameworks a solution bultin into the standard library is already available, and such solution is guaranteed to be maintained and well working for the years to come thanks to the standard library reliability and stability. The showcased examples are took from the “Modern Python Standard Library Cookbook” book that I authored. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Peter Bittner - Modern Continuous Delivery for Python Developers

"Modern Continuous Delivery for Python Developers [EuroPython 2019 - Talk - 2019-07-12 - Shanghai] [Basel, CH] By Peter Bittner Deployment automation, cloud platforms, containerization, short iterations to develop and release software—we’ve progressed a lot. And finally it’s official: Kubernetes and OpenShift are the established platforms to help us do scaling and zero downtime deployments with just a few hundred lines of YAML. It’s a great time. Can we finally put all our eggs into one basket? Identify the cloud platform that fits our needs, and jump on it? That could well backfire: Vendor lock-in is the new waterfall, it slows you down. In future you’ll want to jump over to the next better platform, in a matter of minutes. Not months. This talk is about The Art of Writing deployment pipelines that will survive Kubernetes, OpenShift and the like. It’s for Python developers and Kubernetes enthusiasts of all levels – no domain specific knowledge required, all you need to understand will be explained. You’ll learn how to separate application-specific and deployment-specific configuration details, to maximize your freedom and avoid vendor lock-in. Come see a demo of a Django project setup that covers everything from local development to automatic scaling, flexible enough to be deployed on any of your favorite container platforms. Take home a working, future-proof setup for your Python 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Dmitry Figol - Optimizing Docker builds for Python applications

"Optimizing Docker builds for Python applications [EuroPython 2019 - Talk - 2019-07-12 - PyCharm] [Basel, CH] By Dmitry Figol Do you deploy Python applications in Docker? Then this session is for you! We will start by reviewing a simple Dockerfile to package a Python application and move to more complex examples which speed up the build process and reduce the size of the resulting Docker image for both development and production builds. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Andrei Neagu - Better WebSockets - Server-Sent Events, a carefree alternative

"Better WebSockets - Server-Sent Events, a carefree alternative [EuroPython 2019 - Talk - 2019-07-12 - Osaka / Samarkand] [Basel, CH] By Andrei Neagu Have you ever found yourself in a situation where you: - had to use WbSockets? - had to to create a separate project and had the issue of interfacing both? - had to handle disconnections? - had to handle reconnections? - had to handle all the above and scale WebSockets? If your experience was horrible (like mine was), we shall take a look at Server-Sent Events, an alternative to WebSockets. The following arguments will be discussed: - intro to the subject - inner workings - differences from WebSockets - implementation explanation for a generic HTTP server in Python - use cases 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Wojciech Rząsa - From HTTP to Kafka-based microservices

"From HTTP to Kafka-based microservices [EuroPython 2019 - Talk - 2019-07-12 - Osaka / Samarkand] [Basel, CH] By Wojciech Rząsa HTTP or asynchronous communication in microservices? This question is frequently repeated and discussed. Obviously, HTTP-based communication is easier for developers and architects. Even if your developers have no prior experience with microservices, they will probably understand how to implement an HTTP service well. While asynchronous communication has a lot of advantages that allow to design and implement really robust microservices system, they also bring new challenges not so obvious for people who didn’t have a chance to work with such an environment before. In FLYR we mostly have HTTP-based Inter Process Communication (IPC) in our infrastructure. At some point, we realized that to provide the functionality required by our product we needed something more flexible and more… asynchronous. We designed and implemented a Python library to facilitate switching to asynchronous IPC, supporting one- or two-way or even single-request – multi-response communication. An important thing in the design process was to provide developers having HTTP experience a tool that would ease the process of switching to asynchronous communication. Consequently, to switch an HTTP server-side endpoint to asynchronous IPC is a straightforward task. We selected Kafka for our message broker, not surprisingly by comparing its performance reports with our very rough, but no less demanding performance requirements. But we also took care to hide the details of the broker logic from developers. Yes, we don’t use all Kafka capabilities, if you need e.g. Kafka Streams, you will have to use another solution. But we can decide what capabilities are used in our microservices and how we can make changes in the way our services communicate in a single place. There are also hooks, Kubernetes health checks and more with a lot of flexibility available out of the box. We plan to opensource our library. At the moment of writing it ‘opensourcing’ is still a work in progress and we didn’t have sufficient time to do it due to strict time constraints we have on delivering functionality to our customers, but we hope to be able to do it soon. In this talk I would like to describe how we solved particularly important problems, what solutions we developed, how we use them and what problems still need to be addressed by developers. In other words, I would like to describe you the journey we made from HTTP to Kafka-based microservices. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Ivana Kellyerova - import bacon 🥓

"import bacon 🥓 [EuroPython 2019 - Talk - 2019-07-12 - PyCharm] [Basel, CH] By Ivana Kellyerova It's often said that Python comes with batteries included, meaning that the standard library can do basically anything except for maybe conjure bacon for you (though I heard that's coming in 3.8). I don't think we fully appreciate the sheer vastness of it, though, so I went through it module by module looking for hidden gems (sorry, eggs). This is a by no means exhaustive compilation of the useful, the underrated, and the funny. When it comes to the Python standard library, chances are you use it on a daily basis -- or more likely, a more or less stable subset of it. The usual way we add things to the subset is by looking for a solution to a problem and ending up getting pointed to a standard library module. That, however, means that the odds of you finding out that there is a whole module whose sole purpose is to tell you if a string is a Python keyword are very slim. The aim of this talk is to showcase CPython libraries that are interesting in some way: mostly for their usefulness, but in some cases simply for being wonderfully weird in some way. The talk is not aimed at any particular level of Python experience - as a beginner you'll get a taste of just how many batteries Python ships with, and as a person using the language often you might end up growing your own personal subset a bit more. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Jan Wagner - Docker meets Python - A look on the Docker SDK for Python

"Docker meets Python - A look on the Docker SDK for Python [EuroPython 2019 - Talk - 2019-07-12 - Osaka / Samarkand] [Basel, CH] By Jan Wagner My talk aims to introduce and have a closer look on the Docker SDK for Python. I will cover: - How and where to get the SDK - How it works and how to use it in general - Possible use-cases like: Processing Container-Logs, Testing with pytest on different Python Versions, Deploy via Python Script, etc.. For my talk, you should know what Docker is and how to use it. A basic idea of pytest and server administration is nice to have, but not necessarily needed to follow my talk. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Adrian Mönnich - useFlask() - or how to use a React frontend for your Flask app

"useFlask() - or how to use a React frontend for your Flask app [EuroPython 2019 - Talk - 2019-07-12 - PyCharm] [Basel, CH] By Adrian Mönnich Many Flask projects nowadays still use mostly static HTML, WTForms and just a bit of AJAX. All the JavaScript is usually included straight from .js files or just minified with Python tools like webassets. But the JavaScript ecosystem has evolved a lot - one can now use tools like Babel to write modern JS even when targeting older browsers and a Webpack+Babel build is very straightforward and allows for advanced preprocessing of JavaScript code. In this talk we'll even go one step further and not only use Webpack to build the assets, but also integrate a small demo Flask app with a React frontend where the Flask app only serves the static HTML page and uses a RESTful API to communicate with the React app. We'll also look into how to keep convenient Flask features such as URL building in client-side code (using the js-flask-urls package) and of course React hooks will be used! 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Pierre Glaser - Parallel computing in Python: Current state and recent advances

"Parallel computing in Python: Current state and recent advances [EuroPython 2019 - Talk - 2019-07-12 - Osaka / Samarkand] [Basel, CH] By Pierre Glaser h2Parallel computing in Python: Current state and recent advances/h2 Modern hardware is multi-core. It is crucial for Python to provide high-performance parallelism. This talk will expose to both data-scientists and library developers the current state of affairs and the recent advances for parallel computing with Python. The goal is to help practitioners and developers to make better decisions on this matter. I will first cover how Python can interface with parallelism, from leveraging external parallelism of C-extensions –especially the BLAS family– to Python's multiprocessing and multithreading API. I will touch upon use cases, e.g single vs multi machine, as well as and pros and cons of the various solutions for each use case. Most of these considerations will be backed by benchmarks from the scikit-learn machine learning library. From these low-level interfaces emerged higher-level parallel processing libraries, such as concurrent.futures, joblib and loky (used by dask and scikit-learn) These libraries make it easy for Python programmers to use safe and reliable parallelism in their code. They can even work in more exotic situations, such as interactive sessions, in which Python’s native multiprocessing support tends to fail. I will describe their purpose as well as the canonical use-cases they address. The last part of this talk will focus on the most recent advances in the Python standard library, addressing one of the principal performance bottlenecks of multi-core/multi-machine processing, which is data communication. We will present a new API for shared-memory management between different Python processes, and performance improvements for the serialization of large Python objects ( PEP 574, pickle extensions). These performance improvements will be leveraged by distributed data science frameworks such as dask, ray and pyspark. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Ben Nuttall - Astro Pi: Python on the International Space Station

"Astro Pi: Python on the International Space Station [EuroPython 2019 - Talk - 2019-07-12 - PyCharm] [Basel, CH] By Ben Nuttall A collaboration between the Raspberry Pi Foundation and the European Space Agency put two Raspberry Pi computers augmented with sensor boards and camera modules on the International Space Station in 2015. Every year we run a series of competitions for kids in schools around Europe to design science experiments using the available sensors. Mission Zero is a low-barrier challenge where students can run a 1 minute Python program in space to display a message to the astronauts. They have access to the sensors for conditional logic but cannot record data or take photos. Mission Space Lab is a more involved challenge, including planning an experiment, writing and testing code which will run for 3 hours in space, either studying life in space or life on earth (which includes taking photos of Earth out of the ISS window). MSL teams get to keep the data and photo they record in their experiment and are to write a report analysing their findings. A small tech team at the Raspberry Pi Foundation maintain the operating system used in flight and work in collaboration with ESA and partners to keep the operation of the Pis running smoothly on the ISS LAN. As well as sharing details of the OS maintenance and devops for the Astro Pis, I'll share photos taken from space and show findings from student experiments using opencv, tensorflow, scikit-learn, ephem and more. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Batuhan Taşkaya - Hack The CPython

"Hack The CPython [EuroPython 2019 - Talk - 2019-07-12 - Osaka / Samarkand] [Basel, CH] By Batuhan Taşkaya Have you ever realized how dynamic CPython interpreter is? Maybe it is the most dynamic interpreter you may see. It gives interfaces to internal things like garbage collector or AST, allows to alter functions code, modify built-in functions etc. This talk will go beyond that dynamism. From adding a new syntax to hooking the evaluation loop, it will show how to hack parts of python. Before understanding these hacks, you will learn internals of CPython step-by-step. Steps are important because in every step we have at least one hacking option. Also it gives the audience a short brief of how python works. After learning how cpython works, we'll cover how to hack (use things that is not their main purpose) the interpreter and the interfaces it gave. For an example we will disassembly the bytecode and then assemble it again with adding our statements or adding a new syntax for python at runtime with AST. Talk will hack these steps: - AST - Bytecode - CTypes - CPython evaluation loop 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Michal Wysokinski - AsyncIO in production - War Stories

"AsyncIO in production - War Stories [EuroPython 2019 - Talk - 2019-07-12 - Osaka / Samarkand] [Basel, CH] By Michal Wysokinski My team has been running AsyncIO in production for over 2 years now and the only thing I can say about my experience with it is: ""Oh boy, what a rollercoaster of feelings"". I've experienced laughs and tears, sweat and blood but also sang songs of glory. AsyncIO is currently the biggest buzzword in the Python world advertised as a silver bullet capable of solving all Python's shortcomings in the field of performance. However, it also brings a burden of being a completely new approach with a fresh implementation which is not often mentioned and taken into consideration. In some of my team's projects we've achieved a great success thanks to AsyncIO, but there's been a few where we decided to get rid of it and replace it with a more traditional fork-join architecture. I'd like to share my experience with AsyncIO, tell some War Stories and discuss which projects it suits perfectly and which ones should avoid it. 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Pablo Salgado - The soul of the beast

"The soul of the beast [EuroPython 2019 - Talk - 2019-07-12 - PyCharm] [Basel, CH] By Pablo Salgado Why The audience will discover one of the core pieces of the language that sits at the middle of the decisions about what new rules can or cannot be implemented in the Python programming language. They will learn how the particularities of the grammar limit what can be achieved but also serve to maintain the language consistent, powerful but straightforward. Attendants will learn how core developers solved some challenging scenarios that arise as a consequence of said limitations or how others cannot be resolved unless Python gets a significant transformation in the internal mechanism that parses the grammar. Finally, they will learn how a new rule is added to the CPython grammar, serving as a perfect example of how all the pieces come together. In summary, the audience will gain a more technical response to why people perceive the Python programming language as easy but powerful one and at the same time will gain some insight on how to understand and extend the pieces that form it. This talk will not only help members of the audience understand better the design of the language a how grammars and parser work, but will also help people wanting to contribute to CPython understanding the general structure of the compiler pipeline and how to work on it. Who This talk is for those that want to understand Python a bit deeper: not only how everything works under the hood but also what are the technical decisions in its making and what are the consequences. The talk is targeted to all Python programmers, no matter the skill level as everyone will find something for their particular level of expertise: Beginner programmers will be introduced in the topic of language grammars and will learn what a Grammar is and what are the building blocks. Also, the audience members in this level will gain insight into how everything is thread together in CPython. Medium and advanced programmers will learn some in-depth technical details and how they relate to features they already know and understand. The talk not only will try to enlight some new areas related to grammar technicalities, parser features and design and CPython implementation details but will also connect many pieces of information to explain how the small technical decisions impact the bigger picture. Outline Who am I What is the Python Grammar What is grammar? How they look like. Elements: terminal symbols, nonterminal symbols, productions. The properties of Python Grammar? Leftmost derivation 1 token lookahead No epsilon productions! (Plus what epsilon productions are) Some immediate consequences of these properties. How the Python parser generator works General structure of the parser generator. Non Deterministic Finite Automata Deterministic Finite Automata. Some examples (with cool graphs!) generated from the python grammar and the parser generator of the actual finite automatas that Python uses. Concrete syntax trees. Advantages of the grammar (or ""why Python is so easy to understand) LL(1) grammars are context-free (no state to maintain while parsing). LL(1) grammars are simple to implement and very fast to parse. LL(1) grammars are very limited, keeping the language simple Disadvantages of the grammar: Grammar ambiguity. LL(1) grammars need some hacks for very simple things. How keyword arguments were incorporated in the grammar with a hack: The grammar rule is very strange because it is ""fixed"" in the Abstract syntax tree Why parenthesized with statements cannot be implemented (with statements formed of multiple elements surrounded by parenthesis and separated by commas). Implementing a new grammar rule in CPython: the arrow operator : A complete mini-tutorial on how to introduce a new operator: A - B that gets executed as A.strongrarrow/strong(B). Altering the grammar and generating the new parser. Introducing a new token. Changing the tokenizer. Changing the Abstract Syntax Tree Generator. Changing the compiler. Implementing the new opcode. Implementing the strongrarrow/strong protocol. The future and summary of the talk: We have been discussing in the CPython discourse to change the parser generator to something more powerful. Dangers and advantages of other parser generators. What other implementations are using? Summary of the talk 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
Stefan Baerisch - Go(lang) to Python

"Go(lang) to Python [EuroPython 2019 - Talk - 2019-07-12 - Osaka / Samarkand] [Basel, CH] By Stefan Baerisch Python and Go are a great combination. Like Python, Go is easy to learn, powerful to use and has many useful libraries. Go and Python work great together: Go has better performance and parallelism, while Python is more expressive. Wouldn't it be nice if you could combine the benefits of Go and Python in one program? This talk shows you how. Why you may want to attend Extension modules written in C/C++ or other languages are one of the major strength Python. Go is a useful language to extend Python. This talk explains to you how to implement extension modules in Go. Content of the Talk The talk shows how to use CGO to make Go code available as a C library and then to use Cython to make this library available as a Python extension module. We start by building a wrapper for simple Go code that adds some numbers and returns the results. This program is our end-to-end example to demonstrate the steps necessary to create a Python extension module in Go. Next, we move to more complex use cases. We look at different ways to share complex data and to use Python callbacks from Go. Then, we see how to how to handle Go's Garbage Collector when exposing with Go Objects. Finally, the talk goes into the advantages and disadvantages of Go as an extension language for Python. We also look at some of the alternative ways to make Go code available in Python. Recommended Prerequisites To get the most out of the talk, you should know about the difference between native Python modules and extension modules written in other languages. Some background on concepts like garbage collection, stack and heap, and dynamic/shared libraries are beneficial. Knowledge of the Python C API is not required. You do not need to know how to write Go code to follow the talk - the talk explains all the required 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
EuroPython 2019 - Lightning talks on Friday, July 12

"Lightning Talks [EuroPython 2019 - - 2019-07-12 - MongoDB [PyData track] [Basel, CH] 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch
EuroPython 2019 - Closing Session

"Closing Session [EuroPython 2019 - - 2019-07-12 - MongoDB] [Basel, CH] 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://ep2019.europython.eu/events/speaker-release-agreement/

Watch