The Real Python Podcast

Real Python
undefined
May 21, 2021 • 59min

Scaling Data Science and Machine Learning Infrastructure Like Netflix

Would you move your data science project from a laptop to the cloud? Would you also like to have snapshots of your project saved along the way so that you can go back in time or share the state of your project with another team member? This week on the show, we have Savin Goyal from Netflix. Savin is the technical lead for machine learning infrastructure at Netflix. He joins us to talk about Metaflow, an open-source tool to simplify building, managing, and scaling data science projects. Metaflow addresses the needs of the numerous data scientists who work at Netflix. Machine learning is key strength for the streaming service. They tried several existing tools to scale their own internal infrastructure and after this experimentation developed Metaflow. We talk about the history of the project and how someone could get started with the open-source version. Savin also contrasts the cost of infrastructure as compared to data scientists and the cost of their time. Course Spotlight: Simplify Python GUI Development With PySimpleGUI In this step-by-step course, you’ll learn how to create a cross-platform graphical user interface (GUI) using Python and PySimpleGUI. A graphical user interface is an application that has buttons, windows, and lots of other elements that the user can use to interact with your application. Topics: 00:00:00 – Introduction 00:01:53 – What is Metaflow? 00:04:15 – Savin’s background in data science and infrastructure 00:06:06 – Democratization of infrastructure and iteration of tools 00:10:34 – What information is saved about the infrastructure requirements for a project? 00:17:17 – How are the requirements annotated? 00:18:39 – Sponsor: Digital Ocean’s App Platform 00:19:15 – How do project snapshots work? 00:29:33 – Cost of infrastructure vs data scientists 00:32:28 – Working with data at Netflix scale 00:37:55 – Video Course Spotlight 00:39:06 – Getting an organization to use new tools and then making open-source 00:49:51 – Documentation of Metaflow and getting started on solving infrastructure problems 00:53:57 – What made you interested in working on infrastructure tools? 00:55:13 – What is something you are excited about in the world of Python? 00:56:18 – What do you want to learn next? 00:58:14 – Thanks and goodbye Show Links: Metaflow: A framework for real-life data science Metaflow: Tutorials More Data Science, Less Engineering with Netflix’s Metaflow By Savin Goyal - YouTube R: The R Project for Statistical Computing Tidyverse: R packages for data science Anything you can do, I can do (kinda). Tidyverse pipes in Pandas reticulate: R Interface to Python Apache Airflow: Programmatically author, schedule and monitor workflows Directed acyclic graph (DAG) - Wikipedia article Serializing Objects With the Python pickle Module - Real Python Course Level up your Python skills with our expert-led courses: Learn Text Classification With Python and Keras Using Jupyter Notebooks Simplify Python GUI Development With PySimpleGUI Support the podcast & join our community of Pythonistas
undefined
May 14, 2021 • 55min

Building a Platform Game With Arcade and Covering Python News Monthly

Did you know the Python Software Foundation is hiring! With the recent support of three Visionary Sponsors, the PSF has been able to open positions for a developer-in-residence and a Python packaging project manager. Real Python now has a monthly Python news article. Frequent guest of the show, David Amos compiles and summarizes the biggest Python news from the past month. This week on the show, David Amos is back, and he’s brought another batch of PyCoder’s Weekly articles and projects. We discuss David’s news article from the last month. We also discuss previous guest Jon Fincher’s new step-by-step tutorial about creating a platform game with the arcade framework. We cover several other articles and projects from the Python community including, how to use ipywidgets to make your Jupyter notebook interactive, the hidden performance overhead of Python C extensions, adding else to for loops, film simulations from scratch using Python, a gradual programming language named Hedy, and a Python raytracer. Spotlight: CPython Internals: Your Guide to the Python 3 Interpreter Unlock the Inner Workings of the Python Language, Compile the Python Interpreter From Source Code, And Participate in the Development of CPython Topics: 00:00:00 – Introduction 00:02:04 – How to Use ipywidgets to Make Your Jupyter Notebook Interactive 00:06:07 – Build a Platform Game in Python With arcade 00:12:35 – Sponsor: Digital Ocean’s App Platform 00:13:11 – The Hidden Performance Overhead of Python C Extensions 00:21:17 – For-Else: A Weird but Useful Feature in Python 00:25:42 – Python News: What’s New From April 2021? 00:39:43 – Spotlight: CPython Internals Now in Paperback! 00:41:15 – Film Simulations From Scratch Using Python 00:47:44 – hedy: Hedy Is a Gradual Programming Language, Which Increases in Syntactic Elements Level by Level 00:50:27 – Python-Raytracer: A Basic Ray Tracer That Exploits NumPy Arrays and Functions to Work Fast 00:53:31 – Thanks and goodbye Show Links: How to Use ipywidgets to Make Your Jupyter Notebook Interactive – Jupyter Notebooks are great for exploratory data analysis. They’re also a good way to share results and analysis with other people, who can alter the notebook to further explore the data themselves. But there are some limitations to notebook interactivity. That’s where ipywidgets comes in! In this tutorial you’ll learn how to create widgets like check boxes, drop-down menus, sliders, and how to handle events like button clicks. Build a Platform Game in Python With arcade – Building games can be a fun way to learn new Python concepts and practice techniques you’ve already learned. Plus, they make for great projects to share! This step-by-step tutorial shows you how to build a platform game using the arcade library. You’ll learn techniques for designing levels, sourcing assets, and implementing advanced features The Hidden Performance Overhead of Python C Extensions – It’s no secret that Python is slower than compiled languages like C, C++, and Rust. If you need a performance boost, you can write compiled Python C extensions. But there are some hidden performance costs that you should be aware of if you decide to do this. This article explains two ways that Python C extensions can actually be slower than pure Python and discusses some solutions and work around for them. For-Else: A Weird but Useful Feature in Python – Python for loops have an unusual feature: they support an else block that only executes if there is no break in the loop. The pattern isn’t used very often with the argument against it being that it is a bit weird and potentially difficult to understand. But there may be times when for/else makes sense. This article presents three situations where for/else is useful and argues that, in these situations, the pattern makes the code more readable. Python News: What’s New From April 2021? – April 2021 was an eventful month in the world of Python. In this article, you’ll get up to speed on everything that happened in the past month, including new sponsorships for the PSF, changes to Python error messages, and a community-led discussion over the future of type annotations. Film Simulations From Scratch Using Python – In analog photography, you can achieve different “looks” for your photographs by selecting different kinds of film to shoot with. Digital camera manufacturers often include different presets to simulate different kinds of film. In this article, you’ll learn how to simulate different films on your own images using color lookup tables, or CLUTs, using NumPy and the Pillow image library. Projects: hedy: Hedy Is a Gradual Programming Language, Which Increases in Syntactic Elements Level by Level Python-Raytracer: A Basic Ray Tracer That Exploits NumPy Arrays and Functions to Work Fast Additional Links: The Python Arcade Library Arcade: A Primer on the Python Game Framework Kenney: Free game assets, no strings attached Tiled: Free and Open Source, Flexible Level Editor Episode 24: Options for Packaging Your Python Application: Wheels, Docker, and More Your Code Is Without a Doubt the Worst I Have Ever Run Welcoming Google as a Visionary Sponsor of the PSF Welcoming Microsoft as a Visionary Sponsor Python Job Board: Project Manager - Python Packaging PEP 563 – Postponed Evaluation of Annotations Episode 45: Processing Images in Python With Pillow RawTherapee: A free, cross-platform raw image processing program Level up your Python skills with our expert-led courses: Using Jupyter Notebooks For Loops in Python (Definite Iteration) Make a 2D Side-Scroller Game With PyGame Support the podcast & join our community of Pythonistas
undefined
May 7, 2021 • 54min

Organizing and Restructuring DjangoCon Europe 2021

Are you interested in learning more about Django? Would you like to meet other professionals and learn how they are using Django? DjangoCon Europe 2021 is virtual this year, and you can join in from anywhere in the world. This week on the show, we have Miguel Magalhães and David Vaz, two of the organizers of the conference. We discuss what makes DjangoCon Europe unique. David and Miguel talk about how they got involved and how the conference passes between different countries. They also cover the struggle of upending their plans for hosting the conference in Porto Portugal last year and how this year could use some extra support. Tickets are available now. DjangoCon Europe is looking for additional sponsors. If you work for an organization that can help, get in contact with them. Course Spotlight: Get Started With Django: Build a Portfolio App In this course, you’ll learn the basics of creating powerful web applications with Django, a Python web framework. You’ll build a portfolio website to showcase your web development projects, complete with a fully functioning blog. Topics: 00:00:00 – Introduction 00:01:43 – How did you get involved with DjangoCon Europe? 00:10:42 – European vs US conference differences 00:12:24 – What makes a DjangoCon unique? 00:13:27 – What are some examples of projects using Django? 00:15:02 – Sponsor: Digital Ocean’s App Platform 00:15:38 – What are types of talks will the conference have? 00:20:04 – Conference schedule during the week 00:24:40 – Who is the intended audience? 00:25:29 – Video Course Spotlight 00:26:43 – Sharing your project and lightning talks 00:28:56 – What tools are you using to facilitate a virtual event? 00:33:32 – Ticket grants and sponsors 00:38:55 – What is your background with and use of Django? 00:43:45 – What are you excited about in the world of Python? 00:46:05 – What do you want to learn next? 00:52:25 – Thanks and goodbye Show Links: DjangoCon Europe 2021 Sponsors: DjangoCon Europe 2021 DjangoCon Europe: Twitter Account LoudSwarm: Virtual Event Hosting Lightning ⚡ Talks - DjangoCon Europe 2021 Opportunity Grants: DjangoCon Europe 2021 pretalx: From Call for Papers to schedule – build your conference! pretalx: GitHub pretix: Event Ticketing Software pretix: GitHub Wagtail: The powerful CMS for modern websites Gather Town: Better spaces to gather around The Future of Web Software Is HTML-over-WebSockets: A List Apart The WebSocket API (WebSockets) WebAssembly (Wasm) PyTorch: open source machine learning framework Keras: the Python deep learning API Learn Text Classification With Python and Keras: Real Python Course Cozmo: Digital Dream Labs CUDA: Parallel Computing Platform Level up your Python skills with our expert-led courses: Learn Text Classification With Python and Keras Building HTTP APIs With Django REST Framework Getting Started With Django: Building a Portfolio App Support the podcast & join our community of Pythonistas
undefined
Apr 30, 2021 • 45min

Podcast Rewind With Guest Highlights for 2020-2021

This week’s show is a bit different. We are taking a well-deserved short break, but we still wanted to share an episode with you. This rewind episode highlights clips from the many interviews over the past year or so of the show. We also hear from many new listeners who have just discovered the show. Welcome aboard! We wanted to provide a sample of guests, topics, and questions we feature on the show. For long-time listeners, this will be a brisk walk through past episodes and guests. We’ve talked with many guests, and it was hard to narrow it down to the sample provided here. We hope you enjoy this podcast rewind, and look forward to sharing a fantastic slate of upcoming guests. Course Spotlight: Plot With Pandas: Python Data Visualization Basics In this course, you’ll get to know the basic plotting possibilities that Python provides in the popular data analysis library pandas. You’ll learn about the different kinds of plots that pandas offers, how to use them for data exploration, and which types of plots are best for certain use cases. Topics: 00:00:00 – Introduction 00:01:28 – E03 Brett Slatkin: Is Python a good tool for infrastructure? 00:03:30 – E07 Łukasz Langa: Origins of Black 00:10:55 – E08 Tania Allard: Reproducibility of project results 00:13:06 – Sponsor: Digital Ocean 00:13:47 – E11 Anthony Shaw: DRY (Don’t Repeat Yourself) 00:16:38 – E16 Hannah Stepanek: Creating NumPy types 00:20:02 – E18 Armin Ronacher: What would you change if you started the Flask project from scratch? 00:23:20 – E22 Russell Keith-Magee: Funding open-source projects 00:26:27 – E26 Michael Kennedy: How is the GIL part of the problem? 00:29:18 – Video Course Spotlight 00:30:27 – E30 Christopher Trudeau - The PEG parser 00:33:00 – E39 Reuven Lerner: What makes generator functions different? 00:37:35 – E47 Brett Cannon: Unravelling Python’s syntatic sugar series 00:43:43 – Thanks and goodbye Show Links: Episode 3: Effective Python and Python at Google Scale - With Brett Slatkin Episode 7: AsyncIO + Music, Origins of Black, and Managing Python Releases - With Łukasz Langa Episode 8: Docker + Python for Data Science and Machine Learning - With Tania Allard Episode 11: Advice on Getting Started With Testing in Python - With Anthony Shaw Episode 16: Thinking in Pandas: Python Data Analysis the Right Way - With Hannah Stepanek Episode 18: Ten Years of Flask: Conversation With Creator Armin Ronacher Episode 22: Create Cross-Platform Python GUI Apps With BeeWare - With Russell Keith-Magee Episode 26: 5 Years Podcasting Python with Michael Kennedy: Growth, GIL, Async, and More Episode 30: Exploring the New Features of Python 3.9 - With Geir Arne Hjelle and Christopher Trudeau Episode 39: Generators, Coroutines, and Learning Python Through Exercises - With Reuven Lerner Episode 47: Unraveling Python’s Syntax to Its Core With Brett Cannon Level up your Python skills with our expert-led courses: Python Generators 101 Plot With pandas: Python Data Visualization Basics Cool New Features in Python 3.9 Support the podcast & join our community of Pythonistas
undefined
Apr 23, 2021 • 1h 16min

Taking the Next Step in Python Game Development

Are you interested in creating video games but feel limited in what you can accomplish within Python? Is there a platform where you can take advantage of your Python skills and provide the benefits of a dedicated game engine? This week on the show, we have Paweł Fertyk. Paweł is a Real Python author and has been creating games as Miskatonic Studio for several years now. Paweł has worked with PyGame. We recently featured his article on creating a clone of Asteroids in a previous episode. After working with PyGame for a while, he also tried a visual novel engine named Ren’Py, and Panda3D. After struggling within these Python libraries, he started to look for an open-source game engine that could help him create the types of games he was striving to create. He found Godot and its Python-like scripting language of GDScript. We talk about his creations, the tools, and how game development is not exactly like most other types of development. Course Spotlight: Make a 2D Side-Scroller Game With PyGame In this step-by-step course, you’ll learn how to use PyGame. This library allows you to create games and rich multimedia programs in Python. You’ll learn how to draw items on your screen, implement collision detection, handle user input, and much more! Topics: 00:00:00 – Introduction 00:01:55 – Writing for Real Python 00:02:58 – Asteroids PyGame Article 00:11:05 – Do you think programming games is a good way to learn programming? 00:13:46 – What game technologies did you try before PyGame? 00:18:35 – Trying out Ren’Py, Panda3D, and looking for an engine 00:27:16 – Sponsor: Digital Ocean 00:27:56 – What appealed to you about Godot? 00:33:42 – Working with a GUI editor 00:37:03 – GDScript, programming game logic, and similarities to Python 00:42:46 – Creating Molecules: Osmos clone 00:48:21 – Video Course Spotlight 00:49:33 – Creating Intrepid: 3D Escape Room 00:55:47 – Creating 3D assets and finding collaborators 00:58:18 – Exporting the finished game 01:01:24 – GOAT: Godot Open Adventure Template 01:08:27 – What are you excited about in the world of Python? 01:12:39 – What do you want to learn next? 01:14:57 – Thanks and goodbye Show Links: About Paweł Fertyk: Real Python Author Build an Asteroids Game With Python and Pygame: Real Python Step by Step Project Miskatonic Studio: Home Page Miskatonic Studio: GitHub Page Miskatonic Studio: YouTube Page iOS Snake Game with UI Switches How I Made a Snake Game Out of Checkboxes: JavaScript Ren’Py: Visual Novel Engine Panda3D: Open-Source, Free-To-Use Engine for Realtime 3D Games Godot: Open-Source Game Engine Molecules Game: GitHub page Intrepid: Steam Store (Free) Intrepid: GitHub Blender: Open-Source 3D Creation Miskatonic Studio: CGTrader 3D Models cgtrader: The World’s Preferred Source for 3D Content ArtStation: Showcase Your Portfolio GOAT: Godot Open Adventure Template - GitHub CircuitPython: Beginner friendly, open source version of Python for tiny, inexpensive computers called microcontrollers Level up your Python skills with our expert-led courses: Finding the Perfect Python Code Editor Inheritance and Composition: A Python OOP Guide Make a 2D Side-Scroller Game With PyGame Support the podcast & join our community of Pythonistas
undefined
Apr 16, 2021 • 51min

OrderedDict vs dict and Object Oriented Programming in Python vs Java

David Amos, Python expert and contributor to PyCoder's Weekly articles and projects, discusses the differences between OrderedDict and dict in Python. He also explores object-oriented programming in Python vs Java. Other topics include Flask applications, building a tech search engine in Python, loading SQL data into pandas without memory issues, and the new version of CircuitPython and Mu.
undefined
Apr 9, 2021 • 58min

Getting Started With Refactoring Your Python Code

Brendan Maginnis and Nick Thapen from Sourcery discuss the importance of refactoring Python code. They provide advice on setting achievable code objectives, unit testing, and avoiding changes to code's meaning. Technical debt and code metrics are also explored. Automated refactoring and using Sourcery as a refactoring tool are discussed.
undefined
Apr 2, 2021 • 46min

Building a Neural Network and How to Write Tests in Python

The podcast discusses building a neural network from scratch using Python, writing unit tests in Python with a Fizz Buzz example, the importance of testing and using Scout APM for application performance monitoring, the ethics of web scraping for COVID-19 vaccine appointments, and the new features in the release of SQL Alchemy 1.4.0.
undefined
Mar 26, 2021 • 1h 10min

Improving the Learning Experience on Real Python

If you haven’t visited the website lately, then you’re missing out on the updates to realpython.com! The site features a completely refreshed layout with multiple sections to help you take advantage of even more great educational Python content. This week on the show, we have Dan Bader, the person behind Real Python, and all these architectural changes. Among the features changed are a new bookmarking system, a section to keep track of what you’ve been learning lately, and a much more advanced way to search the site. A new tile system makes it easier to explore learning paths, quizzes, office hours, and other sections of the site. Dan shares details about the website technology stack and why he started using Python for the core content management system. He also talks about the struggle of being the sole maintainer and feature architect. Spotlight: Python Basics: A Practical Introduction to Python 3 Go from beginner to intermediate in Python with this complete curriculum, up-to-date for Python 3.9. Python Basics includes exercises, interactive quizzes, and sample projects, so you’ll always know what to focus on next in order to build a strong Python foundation. Paperback copies are available now. Topics: 00:00:00 – Introduction 00:01:44 – Welcome to the show Dan! 00:03:12 – What updates are happening on the website? 00:04:40 – The “Continue Learning” section 00:16:02 – Updating how search works 00:21:41 – Sponsor: PyCharm 00:22:22 – Implementing bookmarking of articles 00:26:39 – A development team of one 00:28:16 – Surfacing features with explore 00:35:39 – How to take advantage of the new features? 00:39:26 – Spotlight: Python Basics in paper back available now! 00:41:12 – What did it take to implement progress system? 00:47:27 – Closed captions and transcripts complete across all courses 00:48:47 – Python Basics and CPython Internals books 00:53:38 – What are you excited about in the world of Python? 00:58:40 – What do you want to learn next? 01:02:21 – What is something you thought you knew about Real Python but were wrong about it? 01:06:00 – Request for reviews, feedback, and questions 01:09:06 – Thanks and goodbye Show Links: The New Homepage of Real Python (must be signed-in to see it – or you can view a screenshot here) New Features Announcement Post: Article Bookmarks, Completion Status, and Search Improvements Course: Welcome to Real Python! About Dan Bader Python Learning Paths Python Quizzes Office Hours Real Python for Teams (Online Python training for businesses) Python Basics: A Practical Introduction to Python 3 CPython Internals: Your Guide to the Python 3 Interpreter Leave a voicemail for a chance to get it featured on the show! Books by Basecamp Level up your Python skills with our expert-led courses: Django Admin Customization Getting Started With Django: Building a Portfolio App Records and Sets: Selecting the Ideal Data Structure Support the podcast & join our community of Pythonistas
undefined
Mar 19, 2021 • 45min

Connecting to MongoDB and Updates on the Python Packaging Landscape

Have you heard about NoSQL databases, or wondered how to use one with Python? How does MongoDB store information and what packages can you use to connect this type of database to your Python project? This week on the show, David Amos is back, and he’s brought another batch of PyCoder’s Weekly articles and projects. David talks about a recent Real Python video course about managing namespaces in Python. We also look at a few recent stories about the Python packaging ecosystem. We cover several other articles and projects from the Python community including, generating customizable PDF reports with Python, how semantic versioning will not save you, PEP 621 is final, a user hits the Python community with 4,000 fake modules, making a synth with Python, and what is running on the Mars helicopter. Course Spotlight: Navigating Namespaces and Scope in Python In this course, you’ll learn about Python namespaces, the structures used to store and organize the symbolic names created during execution of a Python program. You’ll learn when namespaces are created, how they are implemented, and how they define variable scope. Topics: 00:00:00 – Introduction 00:01:46 – Generate Customizable PDF Reports With Python 00:04:54 – Semantic Versioning Will Not Save You 00:14:55 – Sponsor: Digital Ocean 00:15:34 – PEP 621 Is Final 00:19:51 – Poison Packages: User Hits Python Community With 4000 Fake Modules 00:26:01 – Python and MongoDB: Connecting to NoSQL Databases 00:31:24 – Navigating Namespaces and Scope in Python 00:35:22 – Making a Synth With Python:  Oscillators 00:39:19 – Video Course Spotlight 00:40:23 – Python Is Running on the Mars Helicopter 00:44:14 – Thanks and goodbye Show Links: Generate Customizable PDF Reports With Python – Learn how to generate custom PDF reports using reportlab and pdfrw with a PyQt GUI. Semantic Versioning Will Not Save You – Semantic versioning aims to both communicate the version of software as well as promise that certain versions won’t break anything. Sounds great, right? In a lot of cases it is, but a blind reliance on semantic versioning can come back to haunt you. PEP 621 Is Final – In the near future, you’ll be able to store project metadata in pyproject.toml. Brett Cannon Poison Packages: User Hits Python Community With 4000 Fake Modules – Recently, a PyPI user going by the name “Remind Supply Chain Risks” uploaded nearly 4,000 fake modules to the index, many of which were named as common misspellings of popular packages. Learn about the incident in this article, and read all the way to the end for four tips every Python developer should follow. Python and MongoDB: Connecting to NoSQL Databases – Learn how to use Python to interface with the NoSQL database system MongoDB. You’ll get an overview of the differences between SQL and NoSQL, and you’ll also learn about related tools, including PyMongo and MongoEngine. Navigating Namespaces and Scope in Python – Learn about Python namespaces, the structures used to store and organize the symbolic names created during the execution of a Python program. You’ll learn when namespaces are created, how they are implemented, and how they define variable scope. Projects: Making a Synth With Python: Oscillators – Learn how to create oscillators using Python as a foundation for creating your own software synthesizers. This article is one of a three-part series. The other articles cover modulators and controllers. Python Is Running on the Mars Helicopter How the First Helicopter on Mars Uses Off-the-Shelf Hardware and Linux Additional Links: GUI Programming With PyQt - Real Python Learning Path Episode 20: Building PDFs in Python with ReportLab Python cryptography, Rust, and Gentoo: LWN.net Every Change Breaks Someone’s Workflow: XKCD Comic What the heck is pyproject.toml? – Brett Cannon’s Blog TOML – Tom’s Obvious Minimal Language PEP 518 – Specifying Minimum Build System Requirements for Python Projects Python MongoDB Tutorial using Docker: CoderVlogger Medium Post Korg DS-8: Vintage Synth Explorer Level up your Python skills with our expert-led courses: Navigating Namespaces and Scope in Python How to Work With a PDF in Python How to Publish Your Own Python Package to PyPI Support the podcast & join our community of Pythonistas

The AI-powered Podcast Player

Save insights by tapping your headphones, chat with episodes, discover the best highlights - and more!
App store bannerPlay store banner
Get the app