List of videos

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
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