List of videos

Talk: Jessica Garson - How I Solved my NYC Parking Problem with Python

Presented by: Jessica Garson Since I have a car in New York City, my car is subject to the city’s alternate side of the street parking regulations. This means most nights I need to move my car before the early morning street cleaning that happens in my neighborhood. I had developed a nightly routine around moving my car before I go to sleep. I am sometimes a bit too good at this and I often move my car on days I don’t need to. Since alternate side of the street parking is often canceled on days where there are holidays, or bad weather, there is a Twitter handle @NYCASP, which posts daily and whenever there is an emergency situation. I used Python, Twilio and the Twitter API to solve this problem for myself so I get a text message whenever I don’t need to move my car.

Watch
Talk: Russell Keith-Magee - Snakes in a case: Packaging Python apps for distribution

Presented by: Russell Keith-Magee So you’ve written a Python program - a game, a new social media app, or a system administration utility. You think it’s great, and you want to share it with the world. But how do you do that? How do you distribute your code to others without needing to document how to set up Python, install dependencies, and run your application? In this talk, you’ll learn about Briefcase, a tool that can convert a Python project into platform-native installers on macOS, Windows and Linux - and can also target iOS and Android. You’ll learn how to use Briefcase to start a new project, or convert an existing project for distribution. You’ll also see how Briefcase (and some other recent developments in the Python ecosystem) can assist you during application development.

Watch
Talk: Marlene Mhangami - Leadership and Identity in the Pan-African Python movement

Presented by: Marlene Mhangami In this talk, I will be outlining some of the unique aspects of being a young, female community leader in the budding Pan-African Python movement. I will begin by giving the audience an overview of the current state of the African Python community and my role in its development. I will then share some of my personal experiences, both positive and negative, leading in community spaces and juxtapose them to some philosophical ideas about leadership. I will be sharing some of my favorite philosophers’ ideas on the topic, as well as some perspectives on how online communities have historically treated leadership. All of this information will be used, to make a proposition for how our community should view and identify leaders. I also go on to share how my personal and group identity as an African has played a large role in shaping how I lead. Our unique identities are incredibly significant, I argue that Pythonistas intending to build a more diverse and inclusive global community should be thoughtful about their identity. Finally, I will be sharing some anecdotes on what I believe the future leaders of our community should look like.

Watch
Talk: Katie McLaughlin - What is deployment, anyway?

Presented by: Katie McLaughlin So you’ve finished the DjangoGirls tutorial, but now you want to share it with the outside world, but how do you go about that? What even is production? What is the deal with web servers versus web service gateway interfaces? And static, what’s that, then? What is involved in choosing a platform or infrastructure as a service? What even are databases? In this presentation, we will discuss the basics beyond running a Django project locally, and discuss the concepts and strategies around how to deploy your project, ultimately answering the question, “What is deployment, anyway?” Talk slides: https://glasnt.com/talks/2020_04_PyCon_Talk.podium Talk resources: https://github.com/glasnt/talks/blob/gh-pages/2020_04_PyCon_Talk.podium/README.md

Watch
Talk: Jon Crall - Developing With Doctests - Using Xdoctest As A Backend

Presented by: Jon Crall This talk is about doctests — a way to embed examples and unit tests in docstrings. I describe what they are, how to write them, and interesting ways in which they can be used. Doctests make it easy to interactively develop code by defining “demo” inputs which can be copied into IPython. The side effect is a unit test. This is test-driven-development at its best. I explain the technical details of doctest syntax, directives, parsing, and execution. Unfortunately, Python’s builtin doctest module has a restrictive syntax, which makes it difficult to use. In the second part of the talk I introduce an alternative: Xdoctest, a new, but stable package for parsing and running doctests (with optional pytest integration). I explain why doctest’s regex-based parser is fundamentally limited and how xdoctest’s ast-based parser is the remedy. I demonstrate how to use xdoctest and discuss its advantages and disadvantages. By the end of this talk you feel confident in writing, running, and developing with doctests. Talk resources: - https://github.com/Erotemic/xdoctest - https://github.com/Erotemic/ubelt

Watch
Talk: Trey Hunner - Comprehensible Comprehensions

Presented by: Trey Hunner Finding list comprehensions incomprehensible? Having trouble figuring out when to use list comprehensions or just plain for loops? Are your coworkers overusing comprehensions? Come to this talk and learn the how, when, and why of list comprehensions. We’ll discuss: why list comprehensions exist and why people use them (yes you can always use a loop instead) how to use list, set, an dictionary comprehensions as well as generator expressions when and how to easily turn a for loop into a comprehension why list comprehensions are often hard to read and how to make your comprehensions readable When to use generator expressions instead of list comprehensions when and how not to use comprehensions (they’re not a replacement for all loops) Comprehensions are a unique tool for a unique task. Even if you dislike them, understanding how they work will help you better understand the Python code you find in the wild. You’ll leave this talk with a better appreciation for both the use cases for comprehensions in Python and an understand of when not to use them.

Watch
Talk: Takanori Suzuki - Automate the Boring Stuff with Slackbot

Presented by: Takanori Suzuki Today, there are many tasks to repeat in the company/community. In addition, we often use chat such as Slack for daily communication. So, I created a chatbot(PyCon JP Bot) to automate various boring tasks related to holding PyCon JP. In this talk, I will first explain how to create a chatbot using slackbot. I will tell you how to registers bot’s integration on Slack and how to create a simple bot in Python that responds to specific keywords. And as a specific case, I will explain how to make a bot command to perform the following operations and technical problems. - Emoji reaction - Block-kit - Calculator: SymPy - Karma(plusplus): Peewee - Search issues, display issue details: JIRA API - Create multiple issues from a template: JIRA API, Sheets Spreadsheet API - Search files from Google Drive: Google Drive API - Account management of G Suite(user, alias, group and member): G Suite API - etc. Talk slides: https://gitpitch.com/takanory/slides?p=20200417pycon

Watch
Talk: Conor Hoekstra - Beautiful Python Refactoring

Presented by: Conor Hoekstra Refactoring can lead to absolutely beautiful code. Not only this, but the refactoring itself can be a thing of beauty. This talk demonstrates taking an example with a double-digit number of lines of code down to a single-digit number of lines of code. This talk will show how to identify certain anti-patterns that can be replaced with more expressive and declarative code. This is a simple talk that can be understood by all, but when applied to one’s daily work can make a significant difference. Talk slides and code: https://github.com/codereport/Talks/tree/master/2020-04-PyCon/BeautifulPythonRefactoring

Watch
Talk: Dustin Ingram - Static Typing in Python

Presented by: Dustin Ingram Python is well-known as a programming language without static types. This means that you don’t need to say what a given variable will hold, or whether your function will return a string or an integer (or sometimes one, and sometimes another!). This has historically made Python a very flexible and beginner-friendly language. In this talk, we’ll discuss the advantages and disadvantages to a static type system, as well as recent efforts to introduce static typing to Python via optional “type hints” and various tools to aid in adding types to Python code. We’ll see what this means for Python, for Python programmers, and what the future has in store for Python’s type system.

Watch