List of videos

Talks - Koushik Krishnan: Rest Easy with Jupyrest: Deploy notebooks as web services

Jupyter notebooks are awesome! However, a notebook on its own is not a product or a service. Bridging this gap usually involves a complete rewrite into a web service that leaves behind all the awesome-ness of the notebook. What if we didn't have to do this? That's where Jupyrest comes in! Jupyrest is a library I created to solve this exact problem for my team at Microsoft. In this talk I'll show you how you can turn your Jupyter notebooks into a web service without any modifications to it. Jupyrest is being used at Microsoft by data scientists to deploy hundreds of microservices.

Watch
Talks - Alynne Ferreira: Graphs and Vogue Dance: using data structures to create choreographies

Vogue Dance is a dance form that emerged in LGBTQIA+ culture and has become a global phenomenon, full of complex movements, creativity and social connections. Graphs are powerful tools for analyzing and visualizing interconnected networks. To organize a choreography using graphs, you first need to create a directed graph that represents the sequence of movements in the choreography. Each node will have a picture that represents a specific pose, and each edge represents the connection between the poses. The sequence used to change from one pose to the next will represent the movement. Graphs can be used to facilitate the creation of a choreography, allowing you to visualize the sequence of movements and the relationship between them. At the end of this lecture, we hope to put together a choreography based on the poses presented. The order of the poses can be chosen manually or generated at random. Slides: https://pycon-assets.s3.amazonaws.com/2024/media/presentation_slides/11/2024-05-11T04%3A09%3A34.348591/pycon_-_vogue.pdf

Watch
Talks - Arun Suresh Kumar: Sync vs. Async in Python: Tools, Benchmarks, and ASGI/WSGI Explained

Sync vs. Async in Python: Tools, Benchmarks, and ASGI/WSGI Explained Abstract This talk focuses on synchronous and asynchronous programming in Python, highlighting tools like Uvicorn and uvloop, their benchmarks, and the role of ASGI/WSGI servers. Topics Covered: Synchronous vs. Asynchronous Programming: Key differences and applications. Tools like Uvicorn and uvloop: Detailed exploration of these async tools. Benchmarking Async Tools: Performance analysis and comparisons. ASGI and WSGI Servers: Their evolution and importance in Python web development. Best Practices and Recommendations: Effective sync and async programming strategies. Real-World Scenarios and Examples: Practical insights from actual use-cases. Slides: https://pycon-assets.s3.amazonaws.com/2024/media/presentation_slides/151/2024-05-19T14%3A23%3A11.551078/UST_-_Pycon_US_2024.pdf

Watch
Talks - Kat Scott: Open Source Robotics with Python: Learn Robotics with No Robot Required

Do you want to learn robotics but are unable to sink thousands of dollars into a new hobby? Good news! It turns out that many professional roboticists rarely touch hardware at all! Many modern robot developers use simulations, basically fancy video games, to develop the source code for their robots. This new approach to robotics means you too can start learning robotics without ever touching an Allen wrench or a soldering iron. More importantly, you can transfer your existing Python skills into solving challenging robotics problems. In this talk we’ll walk you through getting started with Robot Operating System 2 (ROS 2) and the Gazebo simulator. ROS 2 and Gazebo are two large, open-source projects used by thousands of companies, and tens of thousands of developers, to build the robots we encounter in our daily lives. Better yet, both ROS 2 and Gazebo support Python, making it easier than ever to learn robotics fundamentals. In fact, ROS should be very familiar, it draws much of a project structure from Python itself. Just like the Python 2 to Python 3 transition. ROS and Gazebo have seen some major changes in the past few years; and now is a good time for Python developers to revisit these important tools. In this talk we’ll introduce you to ROS 2 and Gazebo using existing open source libraries and robots. We’ll touch on how to get started, the Python APIs for both projects, and some of the fiddly bits in between (like CLIs, and other file types) that make robotics simulation possible. This talk is geared towards novice to intermediate programmers who are ready to branch out and start applying programming fundamentals to the domain of robotics.

Watch
Talks - Ken Jin, Jules Poon: How two undergrads from the other side of the planet are speeding up...

Full title: How two undergrads from the other side of the planet are speeding up your future code Presented by: Ken Jin Jules Poon CPython 3.13 is planned to get cool new performance features. One of them is an experimental runtime bytecode optimizer, which will optimize bytecode on the fly using compiler optimizations. It aims to do fancy-sounding things like type propagation, guard elimination, constant promotion and more! What’s less known - this optimizer is currently being built by a university undergraduate 😲, with earlier iterations contributed by another undergrad. We’re also receiving course credit for it! One of us had no prior experience contributing to CPython. In this talk, we’ll split our time 60-40, with some time for the performance enthusiasts out there, and the remaining time on our experience contributing to CPython as an (in our opinion) underrepresented group, and how you can contribute to CPython as a university student as well. You don’t have to be a compiler or CPython expert to attend – this talk is aimed at everyone who can read and write some Python. Slides: https://pycon-assets.s3.amazonaws.com/2024/media/presentation_slides/1/2024-05-19T04%3A20%3A45.412287/PyCon_US_2024_1.pdf

Watch
Talks - Koudai Aono: Enhancing Decorators with Type Annotations: Techniques and Best Practices

Decorators are powerful, magical syntax sugar, offering a convenient way to wrap and enhance functions. But sometimes, it's not clear how to use a defined decorator. What arguments should we pass to a given decorator? What functions does it target? Does it change the return type of the wrapped function? Have you ever faced these questions? If proper type hints are defined for decorators, static type checkers like mypy and pyright IDEs will point out the errors in usage. Thus, guiding you on the right path by catching bugs earlier, reducing unnecessary debugging and unexpected runtime behaviour. This talk will step you through type definitions utilizing typing.TypeVarTuple, typing.Protocol, typing.ParamSpec, typing.Concatenate, Type Parameter Syntax, and more, all of which are practical to implement and can make your project robust! Slides: https://pycon-assets.s3.amazonaws.com/2024/media/presentation_slides/42/2024-05-15T14%3A31%3A41.466815/Enhancing_Decorators_with_Type_Annotat_9JyJZu8.pdf

Watch
Talks - Vinícius Gubiani Ferreira: PEP 683: Immortal Objects - A new approach for memory managing

For most people that use Python, worrying about memory is not an issue. But that's not the case when you have to handle a lot of requests on a large scale. So how do you reduce memory consumption without affecting the CPU? In this presentation I'll discuss about memory management in Python from the basics, where the necessity for PEP 683 came from, and the changes introduced by it. I also intend to discuss why this PEP is so important for the language, and what we'll be able to achieve with it in the future, such as changes to the GIL and true parallelism. The talk is targeted for folks who are intermediate/advanced pythonistas. People who are just starting with Python (maybe less than 1.5 years) may feel a bit lost. Even so, curious learners are more than welcome to join, and I'll try my best to make it easy for all audiences on this advanced topic. After this presentation, participants will learn a bit more about how memory management works under the hood in python, and how it may change in the next couple of years. Slides: https://pycon-assets.s3.amazonaws.com/2024/media/presentation_slides/72/2024-05-14T03%3A29%3A22.102640/PEP_683__Immortal_Objects_-_A_new_appr_PexB14Y.pdf

Watch
Talks - Łukasz Langa: Build in-browser 3D experiences with WebGL and PyScript

Did you know you can write Python to write no-nonsense 3D games and interactive experiences that run entirely in the Web browser? Python's original killer app used to be ZOPE, an environment to create dynamic websites before "content management system" was even a term. Now, in 2024, the rules have changed. Web apps are predominantly client-side, and JavaScript rules that use case. It doesn't have to be like this! You've probably heard about PyScript and maybe seen an intro or two. This talk is something else. I will show you a deep dive into a single topic: how to use PyScript with WebGL to harness the graphical power of the Web browser. By the end of the talk, I expect you to gain confidence that you can do it, too, and be inspired to try! The talk assumes familiarity with Python and high-school math.

Watch
Talks - Junya Fukuda: Event-Driven asyncio: A Case Study of Trio's API

Asyncio is highly efficient in operating within a single thread, making it exceptionally well-suited for environments with limited resources. In our product, we leverage Python's asynchronous capabilities to streamline the decision-making processes of our robots. I will individually introduce trio and trio-util, as well as anyio and asyncio, in the presentation. Slides: https://pycon-assets.s3.amazonaws.com/2024/media/presentation_slides/142/2024-05-26T23%3A05%3A47.272959/pyconus_2024_Event-Driven_asyncio_A_C_QzS13fd.pdf

Watch