List of videos

Nick Radcliffe - Quantum Computing a Very Gentle Glimpse into a Possible Future

Quantum Computing: a Very Gentle Glimpse into a Possible Future [EuroPython 2018 - Talk - 2018-07-25 - Smarkets] [Edinburgh, UK] By Nick Radcliffe This talk will aim to demystify quantum computing and will assume no prior knowledge. The speaker, while having studied Quantum Field Theory many years ago, has only relatively recently started learning properly about Quantum Computing, and is going to try to take advantage of the fact that the ideas are relatively new to him to explain the key concepts simply, to an audience (probably) consisting mostly of non-experts in quantum computing. Key questions I will try to cover are likely to include * What is quantum mechanics anyway? * What are quantum computers? Are they real? And are they really faster/more powerful than classical computers? * What is a qubit (the quantum computing analogue of a bit) * What problems are likely to be solved well by quantum computers? * How do you program a quantum computer? * How do you get results out of a quantum computer? What kind of results are they anyway? Do you have to visit other universes to get them? * Can you get access to quantum computers online and use Python to program them (kind-of!) * Will quantum computers break all encryption? * What are Shor's and Grover's algorithms and (just possibly) how do they work? * What are the challenges with building practical quantum computers? * What is the Python story with Quantum Computing? 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://ep2018.europython.eu/en/speaker-release-agreement/

Watch
Jiri Benes - Reliability in distributed systems

Reliability in distributed systems [EuroPython 2018 - Talk - 2018-07-25 - Smarkets] [Edinburgh, UK] By Jiri Benes Is your system stable? Do you know what happens if any of your system's dependency will start failing? Do you even know what exactly each part of your system does or did any time in the past? Or how fast you will identify root of the problem in case your system goes down at 2am? The talk focuses on distributed systems (microservices, APIs that communicate with databases, memory, third party services, etc.), monitoring, their failures and recovery in order to help you answer yourself questions above. First part aims on importance of monitoring such systems on several levels - monitoring of hardware, application monitoring, monitoring from outside of the systems, detecting malfunctions based on anomalies within system's data flows. Second part presents several standard techniques for preventing system failure in case of outage of dependency and technique how to recover from inconsistent state after outage. Content of presentation is helpful and interesting for beginners and intermediates. Senior developers and developers working on reliable distributed systems should bear in mind content of this presentation and master shown 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://ep2018.europython.eu/en/speaker-release-agreement/

Watch
Hayley Denbraver - Recursion, Fractals, and the Python Turtle Module

Recursion, Fractals, and the Python Turtle Module [EuroPython 2018 - Talk - 2018-07-25 - Smarkets] [Edinburgh, UK] By Hayley Denbraver To understand recursion you must first understand recursion. Alternatively, you could come to a talk that will demonstrate the basics of recursion, using fractals drawn by the python turtle module! What are fractals? Fractals are psychedelic designs that appear basically the same regardless of scale. They also appear all over nature–consider how a tree trunk and branches is similar in structure to branches and twigs or how a wave is made of mini waves. Best of all, fractals can be constructed using recursive functions. What is the turtle module? It is part of the standard python library that can be used to draw amazing things and is commonly used as a tool for learning to code. Come for the recursion, stay for the amazing fractals, and leave knowing that no turtles were harmed in the making of this talk. This talk is suitable for all python enthusiasts. Those who love mathematics will love this talk. Advanced developers will learn more about a tool that can be used to teach people to code. There is something for 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://ep2018.europython.eu/en/speaker-release-agreement/

Watch
Christian Heimes - SSLError, now what?

SSLError, now what? [EuroPython 2018 - Talk - 2018-07-25 - Smarkets] [Edinburgh, UK] By Christian Heimes TLS/SSL is the most important and widely-used protocol for secure and encrypted communication, e.g. HTTPS. It offers more than just encryption. TLS also ensures data integrity and strong authentication with X.509 certificates. But it provides merely a false sense of security, if you use it wrong. Have you ever encountered ssl.SSLError: [SSL: CERTIFICATE em VERIFY/ em FAILED], while connecting to a server, but you didn’t understand what is going on? Are you running production code without TLS/SSL protection or with certificate validation disabled, because you couldn’t figure out how to make it work correctly? I’ll give you the rundown of the basic cryptographic building blocks, protocol handshake, inner structure of certificates, and PKI. You’ll learn about the best practices, debugging tools and tips how to diagnose TLS/SSL and how to deal with certificates. 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://ep2018.europython.eu/en/speaker-release-agreement/

Watch
Becky Smith - Python 2 is dead! Drag your old code into the modern age

Python 2 is dead! Drag your old code into the modern age. [EuroPython 2018 - Talk - 2018-07-25 - Smarkets] [Edinburgh, UK] By Becky Smith The clock is ticking on Python 2.7, with support to be dropped in January 2020. With major dependencies such as Django, NumPy and pandas moving to Python 3 only, the time has come for even big established codebases to consider upgrading. Many organisations are still postponing for various reasons; we will attempt to demonstrate that with a bit of planning and perseverance, and the assistance of some handy tools, we can embrace the future! This session will provide a first-hand perspective on how we upgraded a large (~65,000 lines of python code) 8-year-old Django project with multiple external dependencies from Python 2.7 to Python 3.6. We will briefly discuss the benefits of upgrading to Python 3, and architectural considerations. The session will primarily focus on the practicalities of upgrading the code itself. We will not try to provide a single “best” solution for upgrading to Python 3, but rather will introduce some of the available tools, provide an insight into how we used them, and their advantages and disadvantages from our experience. We will discuss preparatory steps and approaches, strategies for dealing with external dependencies, and “gotchas” that we encountered during the process. The aim of this session is to provide an example of how a Python 3 upgrade on an established commercial product can be successfully completed, and to furnish audience members with a set of tools and strategies to help them with their own projects. Prerequisites: basic knowledge of 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://ep2018.europython.eu/en/speaker-release-agreement/

Watch
Antonio Verardi, Flavien Raynaud - How to write Rust instead of C, and get away with it yes, it's a

How to write Rust instead of C, and get away with it (yes, it's a Python talk) [EuroPython 2018 - Talk - 2018-07-25 - Lammermuir] [Edinburgh, UK] By Antonio Verardi, Flavien Raynaud Have you ever tried optimizing a super-slow Python application and thought: “Oh! I wish I could just write this bit it in Rust”? Well, turns out you can! We will show you how Rust is a better alternative than C to make your programs lightning fast, and how to get away with it; without your users even noticing. As Infrastructure Engineers at Yelp, the challenge we face everyday is: scale. Yelp is mostly a Python shop and while this is great for development velocity, our work often revolves around making Python applications run faster. Until now, we have been using different techniques: faster interpreters, or, more often, C code. Given its safety guarantees, performance and promise of better tooling than C, we decided we had to give Rust a try. The initial results helped reinforce that there was a lot of opportunity for Rust to play an important role in our production code. Yelp heavily relies on the Apache Avro (https://avro.apache.org/) serialization format for its internal infrastructure. During the talk, we will show how we implemented an Avro serialization/deserialization library in Rust, how we were able to call it from Python (and in theory from any other language) with very little code, using tools such as cbindgen (https://github.com/eqrion/cbindgen/), CFFI (https://cffi.readthedocs.io/en/latest/) and Milksnake (https://github.com/getsentry/milksnake/). This talk would outline how easy it is to write performant code in a language like Rust and call it from Python applications without users even realizing it, making this a great solution for production services. 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://ep2018.europython.eu/en/speaker-release-agreement/

Watch
Daniele Procida - The naïve programmer

The naïve programmer [EuroPython 2018 - Talk - 2018-07-25 - Kilsyth] [Edinburgh, UK] By Daniele Procida Since Picasso encountered Henri Rousseau over a century ago, modern art has been acutely aware of the value of the contributions that the naïve artist can make. Art negotiates the relationship between sophistication and naïvety with care and intelligence. What does our programming culture make of the naïve programmer? What can programming gain or learn from this encounter? The naïve programmer is simply an unsophisticated programmer. Nobody is born sophisticated. Even the most sophisticated programmers were once naïve programmers. What's more, the adoption of programming simply as a tool to solve immediate problems, by ever more people without any formal training, means that the number of naïve programmers will become greater, not less. Are we ready for this? This talk will explore the relationship, illuminating it with examples from the world of painting, art and music, and will offer some lessons that our own industry and culture should be ready to learn from. (This talk will already have been presented as a keynote at DjangoCon Europe 2018) 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://ep2018.europython.eu/en/speaker-release-agreement/

Watch
Almar Klein - Let’s embrace WebAssembly!

Let’s embrace WebAssembly! [EuroPython 2018 - Talk - 2018-07-25 - Lammermuir] [Edinburgh, UK] By Almar Klein WebAssembly (WASM) is an open, low level binary format designed to be compact and run at native speed, while being memory-safe. WASM is primarily intended to run code in browsers, but its by no means limited to this. This makes it an interesting intermediate language (IR); code that compiles to WASM will (in the future) run basically anywhere. In short: WASM is coming and its great! Unsurprisingly, WASM is being embraced by many communities, such as C++, Rust, Lua, and .NET. Sadly, there does not seem to be a lot of enthusiasm from the Python community yet… Perhaps this is because Python is interpreted and can therefore not (easily) use WASM as a compilation target. It should be possible to compile a Python interpreter (like CPython or Pypy) to WASM and thereby run Python code in a browser. But the result would be pretty heavy-weight, so it would arguably not be a very practical. Within the PPCI project (a pure Python compiler infrastructure) tooling has been developed to load, inspect, compile and even run WASM modules. This allows combining WASM and Python in new ways. In this talk we discuss two approaches by which the Python community might embrace WASM. Firstly, various projects already exist that compile Python functions to other languages (e.g. Numba, PScript), and we have type annotations. If Python functions would be compiled to WASM, the resulting code would run in any WASM runtime (e.g. the browser). This will be demonstrated with an example, for which the resulting code can be run either in a browser or inside Python itself. In either case, it’s pretty darn fast. Secondly, rather than em using /em WASM, it might be interesting for Python to function as a platform to em run /em and em bind /em WASM modules. Two of Python’s greater strengths are its rich ecosystem and its ability to glue things together. Let’s build on that! Imagine creating an application that consists of multiple WASM modules, perhaps compiled from different languages, and binding these together into a single Python app. This will be demonstrated with a game, which is written in Rust, compiled to WASM, and running inside a Python process. The WASM module consumes a drawing API, which is in this case provided by Python, and Python feeds the WASM module with user input. I hope that this talk inspires other Pythonistas to think about the advantages that WASM can bring to our ecosystem, and also about the role that Python can play in the growing WASM ecosystem. 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://ep2018.europython.eu/en/speaker-release-agreement/

Watch
Anastasiia Tymoshchuk - How to develop your project from an idea to architecture design in 50 minute

How to develop your project from an idea to architecture design in 50 minutes [EuroPython 2018 - Talk - 2018-07-25 - Kilsyth] [Edinburgh, UK] By Anastasiia Tymoshchuk Have you ever asked yourself: - how and where to start developing a new project from the scratch, - how to choose main components of a new software or how to develop a new feature, - how to decide whether your project needs refactoring, - how to avoid repeating the same issues? This talk will answer all these questions. You will learn: - how to develop the idea from scratch, - how to use principles of Object Oriented Analysis and Design, - how to show amazing architecture design. You will get better understanding where and how to start, analyze and decouple the system, create a clean, clear and extendable architecture. My slides are here: https://atymo.me/projects/presentations/FromIdeaToDesign/ 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://ep2018.europython.eu/en/speaker-release-agreement/

Watch