

The Real Python Podcast
Real Python
A weekly Python podcast hosted by Christopher Bailey with interviews, coding tips, and conversation with guests from the Python community.
The show covers a wide range of topics including Python programming best practices, career tips, and related software development topics. Join us every Friday morning to hear what's new in the world of Python programming and become a more effective Pythonista.
The show covers a wide range of topics including Python programming best practices, career tips, and related software development topics. Join us every Friday morning to hear what's new in the world of Python programming and become a more effective Pythonista.
Episodes
Mentioned books

Sep 30, 2022 • 59min
Explaining Access Control Using Python & Cautiously Handling Pickles
Have you ever used code to help explain a topic? How can Python scripts be used to understand the intricacies of access control? This week on the show, Christopher Trudeau is here, bringing another batch of PyCoder’s Weekly articles and projects.
Christopher talks about an article that explores the evolution of access control by reimplementing the concepts with Python scripts. The experiment moves across the various access forms, starting with control lists, roles, and attributes, then ending with purpose-based access control (PBAC).
We also cover a post about how to create dangerous pickles. We discuss where malicious code can hide within the serialization process and how decompiling code can be an education tool.
We share several other articles and projects from the Python community, including command line interface (CLI) creation with argparse, HTML and CSS for Python developers, a Python packaging user survey, a visual Python Tkinter GUI creator, a PyScript-based data visualization cookbook, and a project for writing functional test helpers in Django.
Course Spotlight: Serializing Objects With the Python pickle Module
In this course, you’ll learn how you can use the Python pickle module to convert your objects into a stream of bytes that can be saved to a disk or sent over a network. You’ll also learn the security implications of using this process on objects from an untrusted source.
Topics:
00:00:00 – Introduction
00:02:19 – Python 3.11.0rc2 is now available
00:03:45 – HTML and CSS for Python Developers
00:08:34 – Evolution of Access Control Explained Through Python
00:17:14 – Sponsor: InfluxDB
00:18:03 – Dangerous Pickles
00:28:08 – Building Command Line Interfaces With argparse
00:34:27 – Video Course Spotlight
00:35:45 – PyPI.org is running a survey
00:49:01 – Visual Python Tkinter GUI Creator
00:50:33 – Python Data Visualization Cookbook
00:52:06 – django-functest: Helpers for Functional Tests in Django
00:57:55 – Thanks and goodbye
Show Links:
Python Insider: Python 3.11.0rc2 is now available
HTML and CSS for Python Developers – There’s no way around HTML and CSS when you want to build web apps. Even if you’re not aiming to become a web developer, knowing the basics of HTML and CSS will help you understand the Web better. In this tutorial, you’ll get an introduction to HTML and CSS for Python programmers.
Evolution of Access Control Explained Through Python – Sometimes, writing code can help you explore and understand concepts. This article shows a history of access controls in software, using Python scripts to reimplement the ideas.
Dangerous Pickles – A light introduction to the Python pickle protocol, the Pickle Machine, and the construction of malicious pickles. Learn why your code shouldn’t trust arbitrary serialized objects, and discover the dangers of pickle-bombs.
Building Command Line Interfaces With argparse – In this step-by-step Python video course, you’ll learn how to take your command line Python scripts to the next level by adding a convenient command line interface that you can write with argparse.
Discussion:
Python Packaging User Survey
PyPI.org is running a survey on the state of Python packaging | Hacker News
Projects:
Visual Python Tkinter GUI Creator - Chinese
Python Data Visualization Cookbook
django-functest: Helpers for Functional Tests in Django
Additional Links:
Axess Lab | Alt-texts: The Ultimate Guide
The Python pickle Module: How to Persist Objects in Python – Real Python
Understanding pickle in Python | #hsfzxjy#
The ultimate guide to Python pickle | Snyk
Pickle’s nine flaws | Ned Batchelder
pickle — Python object serialization — Python 3.10.7 documentation
pickletools — Tools for pickle developers — Python 3.10.7 documentation
argparse — Parser for command-line option | Python 3.10.7 documentation
Have been testing @pyscript_dev these past few days and finally made something cool. I built an interactive data viz cookbook | Dylan Castillo - Twitter
Level up your Python skills with our expert-led courses:
Grow Your Python Portfolio With 13 Intermediate Project Ideas
Building Command Line Interfaces With argparse
Serializing Objects With the Python pickle Module
Support the podcast & join our community of Pythonistas

8 snips
Sep 23, 2022 • 1h 10min
Python as an Efficiency Tool for Non-Developers
Are you interested in using Python in an industry outside of software development? Would adding a few custom software tools increase efficiency and make your coworkers’ jobs easier? This week on the show, Josh Burnett talks about using Python as a mechanical engineer.
I met Josh at PyCon US 2022 in Salt Lake City, which he attended for the first time with several coworkers. He suggested we do an episode to shed some light on ways that Python is being used professionally by people who aren’t primarily programming for a living.
Josh works as a mechanical engineer for an equipment manufacturer, where he needs to perform repetitive tasks and generate copious logs. He explains how he moved his team away from MATLAB and toward Python.
We discuss his progression from writing scripts to developing packages and eventually hosting his work on PyPI. He also shares his explorations with CircuitPython for personal and professional projects.
Course Spotlight: Building Python Project Documentation With MkDocs
In this video course, you’ll learn how to build professional documentation for a Python package using MkDocs and mkdocstrings. These tools allow you to generate nice-looking and modern documentation from Markdown files and, more importantly, from your code’s docstrings.
Topics:
00:00:00 – Introduction
00:02:10 – Meeting at PyCon US 2022
00:04:32 – Bringing members of team to PyCon
00:05:30 – What are next generation instrumentation platforms?
00:06:35 – What is the lifespan of a platform?
00:09:26 – Has interconnectivity affected upgrades?
00:10:57 – Programming and Python background
00:12:13 – Introduction to MATLAB at university
00:15:18 – Moving away from MATLAB to Python
00:19:39 – How was your transition from Python 2 to 3?
00:21:19 – Debugging methods and logging
00:22:27 – Why did you choose Python?
00:24:26 – Sponsor: Deepgram
00:25:12 – Promoting more use of Python in the organization
00:33:07 – Selling the idea of Python training in the organization
00:37:16 – Moving from scripts to building packages
00:43:48 – From personal project to critical package on PyPI
00:44:29 – Using PyPI or in-house package repository
00:46:27 – Experience with modern packaging tools
00:48:16 – Video Course Spotlight
00:49:32 – Using CircuitPython for personal and work projects
00:56:09 – Use of 3D printing and machining
00:57:33 – Josh’s projects on PyPI
01:02:57 – What are you excited about in the world of Python?
01:05:23 – What do you want to learn next?
01:08:46 – How can people follow your work?
01:09:07 – Thanks and goodbye
Show Links:
PyPI Profile of joshburnett
PyCon 2022 Welcome to PyCon US 2022
MATLAB - MathWorks - MATLAB & Simulink
devpi: PyPI server and packaging/testing/release tool
Artifactory - Universal Artifact Repository Manager - JFrog
loguru · PyPI
How to Publish an Open-Source Python Package to PyPI – Real Python
Python and TOML: New Best Friends – Real Python
PyQtGraph - Scientific Graphics and GUI Library for Python
CircuitPython
Adafruit MagTag - 2.9 Grayscale E-Ink WiFi Display
canaveral · PyPI
addcopyfighandler · PyPI
PyScript | Run Python in your HTML
What exactly is WASI? - Wasm Builders 🧱
WASI - WebAssembly System Interface
KiCad EDA - Schematic Capture & PCB Design Software
Lessons learned from building a custom CircuitPython board - Stargirl (Thea) Flowers
Using Python to vectorize artwork for PCBs - Stargirl (Thea) Flowers
Josh Burnett - GitHub
Josh Burnett - LinkedIn
Level up your Python skills with our expert-led courses:
Building Python Project Documentation With MkDocs
How to Publish Your Own Python Package to PyPI
Python Modules and Packages: An Introduction
Support the podcast & join our community of Pythonistas

Sep 16, 2022 • 53min
Improve Matplotlib With Style Sheets & Python Async for the Web
Have you thought the standard output from Matplotlib is a bit generic looking? Would you like a quick way to add style and consistency to your data visualizations? This week on the show, Christopher Trudeau is here, bringing another batch of PyCoder’s Weekly articles and projects.
We cover an article about the magic of creating style sheets for Matplotlib. You can quickly customize plots and graphs with a single line of code. We share additional resources for you to try out new styles and learn what parameters are customizable.
Christopher covers an article about using async for web development in Python. The creation of Python generators inspired the development of async functionality. He discusses recent changes and async additions within Python web frameworks.
We cover several other articles and projects from the Python community, including how to install a pre-release version of Python, cache in Python with lru_cache, and get better at debugging, along with suggestions of libraries that deserve attention, a Python library for creating mathematical animations, and an extremely fast Python linter that’s written in Rust.
Course Spotlight: Python Debugging With pdb
In this hands-on course, you’ll learn the basics of using pdb, Python’s interactive source code debugger. pdb is a great tool for tracking down hard-to-find bugs, and it allows you to fix faulty code more quickly.
Topics:
00:00:00 – Introduction
00:02:21 – Python releases 3.10.7, 3.9.14, 3.8.14, and 3.7.14 are now available
00:03:51 – How Can You Install a Pre-Release Version of Python?
00:08:13 – Understanding async Python for the Web
00:17:11 – The Magic of Matplotlib Style Sheets
00:24:20 – Sponsor: Platform.sh
00:24:56 – Caching in Python With lru_cache
00:29:41 – Some Ways to Get Better at Debugging
00:38:14 – Video Course Spotlight
00:39:26 – Suggest a Lesser Known Library Deserving Attention
00:44:52 – ruff: An Extremely Fast Python Linter, Written in Rust
00:48:19 – Manim: Python Library for Creating Mathematical Animations
00:51:50 – Thanks and goodbye
Show Links:
Python releases 3.10.7, 3.9.14, 3.8.14, and 3.7.14 are now available
How Can You Install a Pre-Release Version of Python? – If you want to have a peek at what’s coming in the next stable version of Python, then you can install a pre-release version. In this tutorial, you’ll learn how to access the latest Python versions and help test them.
Understanding async Python for the Web – “Recently Django 4.1 was released, and the thing most people seem interested in is the expanded async support. The Python web ecosystem has been seeing new frameworks pop up which are fully async, or support going fully async, from the start.” Learn more about async and its use in web frameworks.
The Magic of Matplotlib Stylesheets – With a single line of code, you can integrate a style sheet with your Matplotlib visualization. In this tutorial, you’ll learn how to make your very own custom reusable style sheet.
Caching in Python With lru_cache – Caching is an essential optimization technique. In this video course, you’ll learn how to use Python’s @lru_cache decorator to cache the results of your functions using the LRU cache strategy. This is a powerful technique you can use to leverage the power of caching in your implementations.
Some Ways to Get Better at Debugging – This is a short summary of a couple of academic papers on how to improve your debugging skills. The suggestions are to learn the codebase, learn the system, learn your tools, learn strategies, and gain experience.
Discussions:
Suggest a Lesser Known Library Deserving Attention
Projects:
ruff: An Extremely Fast Python Linter, Written in Rust
Manim: Python Library for Creating Mathematical Animations
Additional Links:
Managing Multiple Python Versions With pyenv – Real Python
Your Python Coding Environment on Windows: Setup Guide – Real Python
Customizing Matplotlib with style sheets and rcParams — Matplotlib 3.5.3 documentation
dhaitz/matplotlib-stylesheets: Stylesheets for Matplotlib
Kaggle: Your Home for Data Science
wizard zines
Rubber Duck Debugging – Debugging software with a rubber ducky
pudb · PyPI
Humre · PyPI
Welcome to Nox — Nox 2022.8.7 documentation
Episode #21: Exploring K-means Clustering and Building a Gradebook With Pandas – The Real Python Podcast
3Blue1Brown - YouTube
Level up your Python skills with our expert-led courses:
Python Basics: Finding and Fixing Code Bugs
Python Plotting With Matplotlib
Debugging in Python With pdb
Support the podcast & join our community of Pythonistas

Sep 9, 2022 • 1h 21min
Exploring Recursion in Python With Al Sweigart
Have you wanted to understand recursion and how to use it in Python? Are you familiar with the call stack and how it relates to tracebacks? This week on the show, Al Sweigart talks about his new book, “The Recursive Book of Recursion.”
Recursion is one of those concepts held as a tenet of high-level computer science priesthood. Al explains the fundamentals of writing recursive functions and a critical missing piece in understanding how they operate, the call stack. After completing his research, he concluded that it’s a technique that you should understand but rarely use.
He also shares the few cases where recursion is an appropriate solution. Along the way, we talk about directed acyclic graphs, solving mazes, exploring file trees, and creating fractal images.
Course Spotlight: Caching in Python With lru_cache
Caching is an essential optimization technique. In this video course, you’ll learn how to use Python’s @lru_cache decorator to cache the results of your functions using the LRU cache strategy. This is a powerful technique you can use to leverage the power of caching in your implementations.
Topics:
00:00:00 – Introduction
00:01:55 – The Recursive Book of Recursion
00:02:55 – A Beginner’s Guide to Recursion - YouTube
00:05:41 – What is recursion?
00:10:17 – Understanding the call stack
00:12:15 – Languages moving from GOTO statements to functions and a stack
00:21:11 – A common recursion example of factorials
00:26:00 – Fibonacci sequence and memoization
00:30:25 – Cautionary advice on applying recursion
00:32:55 – What is recursion useful for?
00:39:56 – Video Course Spotlight
00:41:14 – Recursion and directed acyclic graphs
00:45:46 – Book examples
00:49:50 – Thoughts on tail recursion
00:54:34 – How has the scope of the book evolved?
01:00:34 – Creating examples in two languages
01:02:37 – Upcoming projects
01:05:19 – Examples of the projects in the book
01:10:30 – What are you excited about in the world of Python?
01:14:50 – What do you want to learn next?
01:19:06 – How can people follow your work?
01:19:48 – Thanks and goodbye
Show Links:
The Recursive Book of Recursion | No Starch Press
Recursion for Beginners: A Beginner’s Guide to Recursion - YouTube
The Invent with Python Blog
Recursion in Python
factorial | Definition, Symbol, & Facts | Britannica
Fibonacci sequence | Definition, Formula, Numbers, Ratio, & Facts | Britannica
A Python Guide to the Fibonacci Sequence – Real Python
Directed acyclic graph - Wikipedia
Dynamic programming - Wikipedia
The Little Schemer : Friedman, Daniel P : Internet Archive
Book Review: The Little Schemer - The Invent with Python Blog
Droste effect - Wikipedia
Episode #33: Going Beyond the Basic Stuff With Python and Al Sweigart – The Real Python Podcast
Textualize
Episode #80: Make Your Python App Interactive With a Text User Interface (TUI) – The Real Python Podcast
BeeWare — Write once. Deploy everywhere.
Episode #22: Create Cross-Platform Python GUI Apps With BeeWare – The Real Python Podcast
Origami with Jo Nakashima - YouTube
Invent with Python
Level up your Python skills with our expert-led courses:
Grow Your Python Portfolio With 13 Intermediate Project Ideas
Caching in Python With lru_cache
Exploring the Fibonacci Sequence With Python
Support the podcast & join our community of Pythonistas

Sep 2, 2022 • 1h 14min
Creating a Python Code Completer & More Abstract Syntax Tree Projects
How does a code completion tool work? What is an Abstract Syntax Tree, and how is it created in Python? How does an AST help you write programs and projects that inspect and modify your Python code? This week on the show, Meredydd Luff, co-founder of Anvil, shares his PyCon talk, “Building a Python Code Completer.”
Meredydd talks about his experience building a code completion engine for the Anvil platform. The conversation leads us to discuss how Python parses the code that you type. We examine tokenization, abstract syntax trees, and how parsing has changed in Python.
We cover additional projects that you can explore once you have a tool that inspects the Python code you’re writing. Join us as we dive into multiple rabbit holes of research and exploration.
Course Spotlight: Python Assignment Expressions and Using the Walrus Operator
In this course, you’ll learn about assignment expressions and the walrus operator. The biggest change in Python 3.8 was the inclusion of the := operator, which you can use to assign variables in the middle of expressions. You’ll see several examples of how to take advantage of this feature.
Topics:
00:00:00 – Introduction
00:02:11 – Building a Python Code Completer - Talk
00:08:48 – How is recursion being used?
00:10:28 – Abstract Syntax Trees, Parsers, and Tokens
00:14:58 – Sponsor: CData Software
00:15:39 – Is parsing into tokens a separate step?
00:21:45 – What makes the new PEG parser unique?
00:25:32 – Using the AST doesn’t have to be scary.
00:27:33 – More on the PEG parser
00:29:54 – Keeping scope and holding completions
00:39:43 – Video Course Spotlight
00:41:15 – Was this your first expirement in creating a code completer?
00:46:46 – How can adding type hints assist a completer?
00:50:53 – Projects you can build using AST
00:53:02 – Linter project
00:54:15 – Automatic code formatter
00:54:59 – Code testing and the pytest project
00:56:22 – Security tools
00:57:11 – Friendlier tracebacks
00:59:57 – Code completion vs GitHub Copilot
01:04:14 – Code completion in a text editor vs IDE
01:08:53 – What are you excited about in the world of Python?
01:09:54 – What do you want to learn next?
01:11:20 – How can people follow your work?
01:12:31 – Thanks and goodbye
Show Links:
Talk - Meredydd Luff: Building a Python Code Completer - YouTube
Anvil | Build Web Apps with Nothing but Python
Episode #63: Create Web Applications Using Only Python With Anvil – The Real Python Podcast
“Writing a PEG parser for fun and profit” - Guido van Rossum (North Bay Python 2019) - YouTube
PEG Parsing Series Overview. My series of blog posts about PEG | by Guido van Rossum
Abstract syntax tree - Wikipedia
Parse tree - Wikipedia
ast — Abstract Syntax Trees — Python 3.10.6 documentation
Full Grammar specification — Python 3.10.6 documentation
Python AST Explorer
Examples of working with ASTs — Green Tree Snakes 1.0 documentation
bellybutton: Custom Python linting through AST expressions
black · PyPI
pytest: helps you write better programs — pytest documentation
friendly-traceback: Friendlier Python tracebacks.
Raspberry Pi Pico – Raspberry Pi
Raspberry Pi Pico W : ID 5526 : $6.00 : Adafruit Industries, Unique & fun DIY electronics and kits
State management - Wikipedia
Recoil
Meredydd Luff (@meredydd) / Twitter
Level up your Python skills with our expert-led courses:
Python Assignment Expressions and Using the Walrus Operator
Testing Your Code With pytest
Writing Beautiful Pythonic Code With PEP 8
Support the podcast & join our community of Pythonistas

37 snips
Aug 19, 2022 • 1h 2min
Configuring a Coding Environment on Windows & Using TOML With Python
Have you attempted to set up a Python development environment on Windows before? Would it be helpful to have an easy-to-follow guide to get you started? This week on the show, Christopher Trudeau is here, bringing another batch of PyCoder’s Weekly articles and projects.
We talk about a Real Python tutorial that covers configuring a Windows coding environment. The guide contains valuable suggestions, best practices, and powerful coding tools. It also covers how to use a package manager, the new Windows Terminal, PowerShell Core, and a program to manage multiple versions of Python.
Christopher covers another Real Python tutorial about using TOML in Python. TOML is a configuration format for building and distributing your own packages. We discuss how TOML parsing will be added to Python’s standard library in version 3.11.
We cover several other articles and projects from the Python community, on topics including technical writing for developers, a news round-up, a farewell to obsolete Python libraries, uncommon uses of Python in commonly used libraries, a prettier ls, and a project for advanced hot reloading in Python.
Course Spotlight: Python Basics: Finding and Fixing Code Bugs
In this Python Basics video course, you’ll learn how to identify and fix logic errors, or bugs, in your Python code. You’ll use the built-in debugging tools in Python’s Integrated Development and Learning Environment to practice locating and resolving bugs in an example function.
Topics:
00:00:00 – Introduction
00:02:13 – Python 3.10.6 Released
00:02:41 – Python 3.11.0rc1 Released
00:03:13 – Django 4.1 Released
00:04:07 – 10 malicious Python packages exposed in latest repository attack
00:05:12 – Protestware: Why Developers Sabotage Their Own Code
00:06:41 – Python and TOML: New Best Friends
00:16:19 – Say Goodbye to These Obsolete Python Libraries
00:25:51 – Video Course Spotlight
00:27:26 – Uncommon Uses of Python in Commonly Used Libraries
00:37:56 – Your Python Coding Environment on Windows: Setup Guide
00:48:20 – Technical Writing for Developers
00:55:24 – reloadium: Advanced Hot Reloading for Python
00:58:07 – pls: A Prettier ‘ls’
01:00:56 – Thanks and goodbye
News:
Python 3.10.6 Released
Python 3.11.0rc1 Released
Django 4.1 Released
10 malicious Python packages exposed in latest repository attack | Ars Technica
Protestware: Why Developers Sabotage Their Own Code
Topic Links:
Python and TOML: New Best Friends – TOML is a configuration file format that’s becoming increasingly popular in the Python community. In this tutorial, you’ll learn the syntax of TOML and explore how you can work with TOML files in your own projects.
Say Goodbye to These Obsolete Python Libraries – It’s time to say goodbye to os.path, random, pytz, namedtuple and many more obsolete Python libraries. Start using the latest and greatest ones instead.
Uncommon Uses of Python in Commonly Used Libraries – To learn more about writing maintainable Python, Eugene has been reading code from some of the more popular Python libraries. This blog post talks about some of the coding patterns he has encountered along the way.
Your Python Coding Environment on Windows: Setup Guide – With this opinionated guide to setting up a basic, fully featured, and flexible setup for Python coding and contributing to open-source projects when working from Windows, you’ll go from a fresh install to ready to contribute, and even check out a PowerShell script to automate much of the process.
Discussion:
Technical Writing for Developers – “The way we write about and around code is arguably as important as the code itself.” This article outlines how programming and writing come together to take your developer skills to the next level.
Projects:
reloadium: Advanced Hot Reloading for Python
pls: A Prettier ‘ls’
Additional Links:
Python 3.11 Preview: TOML and tomllib – Real Python
Why you should be using pathlib
No really, pathlib is great
Episode #116: Exploring Functional Programming in Python With Bruce Eckel – The Real Python Podcast
Episode #101: Tools for Setting Up Python on a New Machine – The Real Python Podcast
pls: Documentation
Level up your Python skills with our expert-led courses:
Python Basics: Finding and Fixing Code Bugs
Practical Recipes for Working With Files in Python
Debugging in Python With pdb
Support the podcast & join our community of Pythonistas

Aug 12, 2022 • 51min
Moving NLP Forward With Transformer Models and Attention
What’s the big breakthrough for Natural Language Processing (NLP) that has dramatically advanced machine learning into deep learning? What makes these transformer models unique, and what defines “attention?” This week on the show, Jodie Burchell, developer advocate for data science at JetBrains, continues our talk about how machine learning (ML) models understand and generate text.
This episode is a continuation of the conversation in episode #119. Jodie builds on the concepts of bag-of-words, word2vec, and simple embedding models. We talk about the breakthrough mechanism called “attention,” which allows for parallelization in building models.
We also discuss the two major transformer models, BERT and GPT3. Jodie continues to share multiple resources to help you continue exploring modeling and NLP with Python.
Course Spotlight: Building a Neural Network & Making Predictions With Python AI
In this step-by-step course, you’ll build a neural network from scratch as an introduction to the world of artificial intelligence (AI) in Python. You’ll learn how to train your neural network and make predictions based on a given dataset.
Topics:
00:00:00 – Introduction
00:02:20 – Where we left off with word2vec…
00:03:35 – Example of losing context
00:06:50 – Working at scale and adding attention
00:12:34 – Multiple levels of training for the model
00:14:10 – Attention is the basis for transformer models
00:15:07 – BERT (Bidirectional Encoder Representations from Transformers)
00:16:29 – GPT (Generative Pre-trained Transformer)
00:19:08 – Video Course Spotlight
00:20:08 – How far have we moved forward?
00:20:41 – Access to GPT-2 via Hugging Face
00:23:56 – How to access and use these models?
00:30:42 – Cost of training GPT-3
00:35:01 – Resources to practice and learn with BERT
00:38:19 – GPT-3 and GitHub Copilot
00:44:35 – DALL-E is a transformer
00:46:13 – Help yourself to the show notes!
00:49:19 – How can people follow your work?
00:50:03 – Thanks and goodbye
Show Links:
Recurrent neural network - Wikipedia
Long short-term memory - Wikipedia
Vanishing gradient problem - Wikipedia
Vanishing Gradient Problem | What is Vanishing Gradient Problem?
Attention Is All You Need | Cornell University
Visualizing A Neural Machine Translation Model (Mechanics of Seq2seq Models With Attention) – Jay Alammar
Standing on the Shoulders of Giant Frozen Language Models | Cornell University
#datalift22 Embeddings paradigm shift: Model training to vector similarity search by Nava Levy - YouTube
Transformer Neural Networks - EXPLAINED! (Attention is all you need) - YouTube
BERT 101 - State Of The Art NLP Model Explained
How GPT3 Works - Easily Explained with Animations - YouTube
Write With Transformer (GPT2 Live Playground Tool) - Hugging Face
Language Model with Alpa (GPT3 Live Playground Tool) OPT-175B
Big Data | Music
OpenAI API
🤗 (Hugging Face)Transformers Notebooks
GitHub Copilot: Fly With Python at the Speed of Thought
GitHub Copilot learned about the daily struggle of JavaScript developers after being trained on billions of lines of code. | Marek Sotak on Twitter
Jodie Burchell’s Blog - Standard error
Jodie Burchell 🇦🇺🇩🇪 (@t_redactyl) / Twitter
JetBrains: Essential tools for software developers and teams
Level up your Python skills with our expert-led courses:
Building a Neural Network & Making Predictions With Python AI
Learn Text Classification With Python and Keras
The pandas DataFrame: Working With Data Efficiently
Support the podcast & join our community of Pythonistas

Aug 5, 2022 • 43min
Inspiring Young People to Learn Python With Mission Encodeable
Is there someone in your life you’d like to inspire to learn Python? Mission Encodeable is a website designed to teach people to code, built by two high-school students. This week on the show, Anna and Harry Wake talk about creating their site and motivating people to start coding.
We discuss why they decided to build the site. Anna and Harry initially felt that the site would be for other students but soon realized it could be helpful for anyone interested in starting to code in Python. We cover the project-based approach and how they implemented the interactive browser-based tool replit.com.
We talk about learning Python in the classroom and how they found additional books and tutorials to supplement their coding education. Anna and Harry also created a resource hub to help teachers take advantage of the site.
Course Spotlight: Rock, Paper, Scissors With Python: A Command Line Game
In this course, you’ll learn to program rock paper scissors in Python from scratch. You’ll learn how to take in user input, make the computer choose a random action, determine a winner, and split your code into functions.
Topics:
00:00:00 – Introduction
00:02:17 – Personal backgrounds
00:02:51 – What’s the goal for the site?
00:03:54 – How did you come up with the idea?
00:05:08 – Where have you shared it?
00:06:39 – Projects for each level
00:09:28 – How has the response been?
00:10:10 – Using replit
00:12:56 – Sponsor: CData Software
00:13:37 – Design of the site and other tools to create it
00:15:49 – Learning Python and classes at school
00:17:41 – Did remote school inspire more online exploration?
00:19:16 – Myths of how kids learn programming
00:23:32 – More about projects
00:27:57 – Video Course Spotlight
00:29:27 – What other areas of Python do you want to explore?
00:33:08 – Teachers using the site
00:37:11 – What other resources have you used to learn Python?
00:38:52 – What are you excited about in the world of Python?
00:40:01 – What do you want to learn next?
00:42:06 – Thanks and goodbye
Show Links:
Mission Encodeable | Free coding tutorials for young people
Replit - The collaborative browser based IDE
Make Your First Python Game: Rock, Paper, Scissors! – Real Python
Figma: the collaborative interface design tool.
React – A JavaScript library for building user interfaces
Coding with Minecraft - Al Sweigart
The Recursive Book of Recursion - Al Sweigart
Codewars - Achieve mastery through coding practice and developer mentorship
Advent of Code 2021
Object-Oriented Programming (OOP) in Python 3 – Real Python
Python Arcade
Craig’n’Dave “Unscripted” - Mission Encodeable - YouTube
Hello World issue 19 — Hello World
LearningDust: LearningDust 3.15 - Anna & Harry Wake
Teaching Python Episode 93: Mission Encodeable
Mission Encodeable (@missionencode) / Twitter
Level up your Python skills with our expert-led courses:
Grow Your Python Portfolio With 13 Intermediate Project Ideas
Getting Started With Django: Building a Portfolio App
Rock, Paper, Scissors With Python: A Command Line Game
Support the podcast & join our community of Pythonistas

9 snips
Jul 29, 2022 • 59min
Natural Language Processing and How ML Models Understand Text
How do you process and classify text documents in Python? What are the fundamental techniques and building blocks for Natural Language Processing (NLP)? This week on the show, Jodie Burchell, developer advocate for data science at JetBrains, talks about how machine learning (ML) models understand text.
Jodie explains how ML models require data in a structured format, which involves transforming text documents into columns and rows. She covers the most straightforward approach, called binary vectorization. We discuss the bag-of-words method and the tools of stemming, lemmatization, and count vectorization.
We jump into word embedding models next. Jodie talks about WordNet, Natural Language Toolkit (NLTK), word2vec, and Gensim. Our conversation lays a foundation for starting with text classification, implementing sentiment analysis, and building projects using these tools. Jodie also shares multiple resources to help you continue exploring NLP and modeling.
Course Spotlight: Learn Text Classification With Python and Keras
In this course, you’ll learn about Python text classification with Keras, working your way from a bag-of-words model with logistic regression to more advanced methods, such as convolutional neural networks. You’ll see how you can use pretrained word embeddings, and you’ll squeeze more performance out of your model through hyperparameter optimization.
Topics:
00:00:00 – Introduction
00:02:47 – Exploring the topic
00:06:00 – Perceived sentience of LaMDA
00:10:24 – How do we get started?
00:11:16 – What are classification and sentiment analysis?
00:13:03 – Transforming text in rows and columns
00:14:47 – Sponsor: Snyk
00:15:27 – Bag-of-words approach
00:19:12 – Stemming and lemmatization
00:22:05 – Capturing N-grams
00:25:34 – Count vectorization
00:27:14 – Stop words
00:28:46 – Text Frequency / Inverse Document Frequency (TFIDF) vectorization
00:32:28 – Potential projects for bag-of-words techniques
00:34:07 – Video Course Spotlight
00:35:20 – WordNet and NLTK package
00:37:27 – Word embeddings and word2vec
00:45:30 – Previous training and too many dimensions
00:50:07 – How to use word2vec and Gensim?
00:51:26 – What types of projects for word2vec and Gensim?
00:54:41 – Getting into GPT and BERT in another episode
00:56:11 – How to follow Jodie’s work?
00:57:36 – Thanks and goodbye
Show Links:
Why Google’s “sentient” AI LaMDA is nothing like a person.
On NYT Magazine on AI: Resist the Urge to be Impressed | Emily M. Bender | Medium
ELIZA - Wikipedia
eliza.py - Python 2 version by Daniel Connelly
dabraude/Pyliza: Python3 Implementation of Eliza
magneticpoetry.com
Natural Language Processing With Python’s NLTK Package – Real Python
Practical Text Classification With Python and Keras – Real Python
Sentiment Analysis: First Steps With Python’s NLTK Library – Real Python
NLTK: Natural Language Toolkit
spaCy · Industrial-strength Natural Language Processing in Python
Natural Language Processing With spaCy in Python - Real Python
Stemming - Wikipedia
Lemmatization - Wikipedia
Binary/Count Vectorization: sklearn.feature_extraction.text.CountVectorizer— scikit-learn
TFIDF: sklearn.feature_extraction.text.TfidfVectorizer — scikit-learn
Porter Stemmer: nltk.stem.porter module — NLTK
Snowball Stemmer: nltk.stem.snowball module — NLTK
WordNet Lemmatizer: nltk.stem.wordnet module — NLTK
Lemmatizer · spaCy API Documentation
Applying Bag of Words and Word2Vec models on Reuters-21578 Dataset Elvin Ouyang’s Blog
UCI Machine Learning Repository: Reuters-21578 Text Categorization Collection Data Set
The Illustrated Word2vec – Jay Alammar
A Complete Guide to Using WordNET in NLP Applications
Gensim: Topic modeling for humans
Core Tutorials — gensim
Find Open Datasets and Machine Learning Projects | Kaggle
Engineering All Hands: Vectorise all the things! - YouTube
PyCon Portugal 2022
NDC Oslo 2022 | Conference for Software Developers
Jodie Burchell’s Blog - Standard error
Jodie Burchell 🇦🇺🇩🇪 (@t_redactyl) / Twitter
JetBrains: Essential tools for software developers and teams
Level up your Python skills with our expert-led courses:
Data Cleaning With pandas and NumPy
Reading and Writing Files With pandas
Learn Text Classification With Python and Keras
Support the podcast & join our community of Pythonistas

Jul 22, 2022 • 55min
Creating Documentation With MkDocs & When to Use a Python dict
How do you start building your project documentation? What if you had a tool that could do the heavy lifting and automatically write large portions directly from your code? This week on the show, Christopher Trudeau is here, bringing another batch of PyCoder’s Weekly articles and projects.
We talk about a Real Python step-by-step project from Martin Breuss about MkDocs. The project walks you through generating nice-looking and modern documentation from Markdown files and your existing code’s docstrings. The final step is to deploy your freshly generated documentation to a GitHub repository.
Christopher talks about a pair of articles arguing for and against using Python dictionaries. The first article, “Just Use Dictionaries,” pushes to keep things simple, while the second article, “Don’t Let Dicts Spoil Your Code,” contends that complex projects require something more specific.
We cover several other articles and projects from the Python community, including discussing the recent beta release of Python 3.11, 2FA for PyPI, procedural music composition with arvo, building a tic-tac-toe game with Python and Tkinter, common issues encountered while coding in Python, a type-safe library to generate SVG files, and a lightweight static analysis tool for your projects.
Course Spotlight: Dictionaries and Arrays: Selecting the Ideal Data Structure
In this course, you’ll learn about two of Python’s data structures: dictionaries and arrays. You’ll look at multiple types and classes for both of these and learn which implementations are best for your specific use cases.
Topics:
00:00:00 – Introduction
00:02:39 – Python 3.11 Release May Be Delayed
00:03:39 – The cursed release of Python 3.11.0b4 is now available
00:05:01 – PyPI 2FA Security Key Giveaway
00:08:01 – Build Your Python Project Documentation With MkDocs
00:14:12 – Don’t Let Dicts Spoil Your Code
00:16:22 – Just Use Dictionaries
00:20:12 – Sponsor: Snyk.io
00:20:51 – Procedural Music Composition With arvo
00:29:10 – Build a Tic-Tac-Toe Game With Python and Tkinter
00:33:59 – Video Course Spotlight
00:35:35 – Most Common Issue You Have Coding With Python?
00:45:00 – svg.py: Type-Safe Library to Generate SVG Files
00:48:27 – semgrep: Lightweight Static Analysis for Many Languages
00:53:46 – Thanks and goodbye
News:
Python 3.11 Release May Be Delayed
The cursed release of Python 3.11.0b4 is now available - Python.org.
“We’ve begun rolling out a 2FA requirement”: PyPI on Twitter
PyPI 2FA Security Key Giveaway
Topic Links:
Build Your Python Project Documentation With MkDocs – In this tutorial, you’ll learn how to build professional documentation for a Python package using MkDocs and mkdocstrings. These tools allow you to generate nice-looking and modern documentation from Markdown files and, more importantly, from your code’s docstrings.
Don’t Let Dicts Spoil Your Code – The dict is the go-to data structure for Python programmers, but its loose relationship to the data can be problematic in large data streams. Learn more about why and when you might choose a different data structure.
Just Use Dictionaries – Using simple data structures is an important part of keeping it simple, and Python is all about simplicity. Less code means fewer problems. Just use dictionaries. You probably don’t need classes.
Procedural Music Composition With arvo – By using the music21 and avro libraries, you can create musical scores programmatically. This article runs you through which libraries you need and how you can compose your own music.
Build a Tic-Tac-Toe Game With Python and Tkinter – In this step-by-step project, you’ll learn how to create a tic-tac-toe game using Python and the Tkinter GUI framework. Tkinter is cross-platform and is available in the Python standard library. Creating a game in Python is a great and fun way to learn something new and exciting!
Discussion:
Most Common Issue You Have Coding With Python?
Projects:
svg.py: Type-Safe Library to Generate SVG Files
semgrep: Lightweight Static Analysis for Many Languages
Additional Links:
Getting 2FA Right in 2019 | Trail of Bits Blog
autoDocstring - Python Docstring Generator - Visual Studio Marketplace
styleguide | Style guides for Google-originated open-source projects
Writing docstrings — Sphinx-RTD-Tutorial documentation
Django Ninja
arvo: Python library for procedural music composition
Getting Started with arvo: a Procedural Music Composition Library - YouTube
music21: a Toolkit for Computer-Aided Musicology
music21: GitHub
Free music composition and notation software | MuseScore
Code Generation | MusicXML 4.0
Python GUI Programming With Tkinter – Real Python
Tcl Developer Site
tkinter — Python interface to Tcl/Tk — Python 3.10.5 documentation
svg-xsd-schema: XSD schema for SVG
SVG: Scalable Vector Graphics | MDN
Level up your Python skills with our expert-led courses:
Records and Sets: Selecting the Ideal Data Structure
Documenting Code in Python
Dictionaries and Arrays: Selecting the Ideal Data Structure
Support the podcast & join our community of Pythonistas


