List of videos

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