The Real Python Podcast

Real Python
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
undefined
Mar 12, 2021 • 1h 3min

Navigating Options for Deploying Your Python Application

What goes into the decision of how to host your Python code or application in the cloud? Which technology stack is the right size for your project? This week on the show, we have Calvin Hendryx-Parker. Calvin talks about cloud hosting options, infrastructure choices, and deployment tools. Calvin is the co-founder and CTO of Six Feet Up, and co-organizer of the Python Web Conference. We talk about finding the right tools for clients. He also discusses the Python platform they created for hosting a virtual conference. We also discuss hosting personal portfolio projects. That conversation leads to the question, what types of skills you can showcase through creating a hosted project. Course Spotlight: Creating PyQt Layouts for GUI Applications In this step-by-step course, you’ll learn how to use PyQt layouts to arrange and manage the graphical components on your GUI applications. With the help of PyQt’s layout managers, you’ll be able to create polished and professional GUIs with minimal effort. Topics: 00:00:00 – Introduction 00:01:46 – What considerations to start with for deployment? 00:04:02 – What is Saltstack? 00:06:00 – The changing cloud hosting landscape 00:10:12 – Containers, Docker, and other standards 00:11:28 – How do you learn about this technology? 00:15:58 – Concerns of setting up development vs production environments 00:17:41 – Security concerns 00:19:20 – Sponsor: Scout APM 00:20:26 – Deploying a Python portfolio project 00:23:12 – Deploying for a small business project or API 00:29:11 – Cloud formation, Terraform, additional tools 00:30:22 – Deploying a large project 00:35:12 – Frontend frameworks for large web projects 00:39:30 – Video Course Spotlight 00:40:43 – What does your consultancy do? 00:41:37 – What things do you look for in an employee? 00:50:42 – Python Web Conference 2021 00:57:43 – What are you excited about in the world of Python? 00:59:09 – What do you want to learn next? 01:00:49 – What is something you thought you knew about Python, but were wrong about it? 01:02:23 – Thanks and goodbye Show Links: Six Feet Up Python Web Conference 2021 LoudSwarm: Virtual Conference Hosting Platform Salt Project: Open Source Automation Engine The 12 Factor App Heroku Ansible: Agentless IT Automation AWS Free Tier AWS Lambda: Run code without thinking about servers Terraform: open-source infrastructure as code software tool AWS Fargate: Serverless compute for containers Docker: Get Started Snyk: Developer-first Cloud Native Application Security Dependabot: Automated Dependency Updates Continuous Integration With Python: An Introduction - Real Python Article Chris Anderson via Twitter: This is the open source flight code that the NASA Mars drone is running Plone: The Ultimate Enterprise CMS Code With Me: Ultimate collaborative development by JetBrains AWS DeepLens Fluent Python: Luciano Ramalho Level up your Python skills with our expert-led courses: Continuous Integration With Python Using Google Login With Flask Creating PyQt Layouts for GUI Applications Support the podcast & join our community of Pythonistas
undefined
Mar 5, 2021 • 54min

Consuming APIs With Python and Building Microservices With gRPC

Have you wanted to get your Python code to consume data from web-based APIs? Maybe you’ve dabbled with the requests package, but you don’t know what steps to take next. This week on the show, David Amos is back, and he’s brought another batch of PyCoder’s Weekly articles and projects. We discuss an article titled, “Python’s APIs: A Winning Combo for Reading Public Data”. David shares another Real Python article about creating microservices using Google Remote Procedure Calls (gRPC). We also cover several other articles and projects from the Python community including, making a difficult data analysis question easy with pandas, efficiently cleaning text with pandas, the tricky bits of Python concurrency, building rich terminal dashboards, making better assertions for Python tests, and building and managing real-life data science projects with metaflow. Course Spotlight: Making HTTP Requests With Python The “requests” library is the de facto standard for making HTTP requests in Python. It abstracts the complexities of making requests behind a beautiful, simple API so that you can focus on interacting with services and consuming data in your application. This course shows you how to work effectively with “requests”, from start to finish. Topics: 00:00:00 – Introduction 00:01:46 – Python Microservices With gRPC 00:07:49 – Python’s APIs: A Winning Combo for Reading Public Data 00:15:07 – Making a Difficult Data Analysis Question Easy With Pandas 00:21:07 – Efficiently Cleaning Text With Pandas 00:34:20 – Video Course Spotlight 00:35:27 – Python Concurrency: The Tricky Bits 00:41:49 – Building Rich Terminal Dashboards 00:45:08 – python-precisely: Better Assertions for Python Tests 00:48:45 – metaflow: Build and Manage Real-Life Data Science Projects With Ease 00:52:35 – Thanks and goodbye Show Links: Python Microservices With gRPC – Learn how to build a robust and developer-friendly Python microservices infrastructure using gRPC and Kubernetes. You’ll also explore advanced topics such as interceptors and integration testing. Python’s APIs: A Winning Combo for Reading Public Data – Learn what APIs are and how to consume them using Python. You’ll also learn some core concepts for working with APIs, such as status codes, HTTP methods, using the requests library, and much more. Making a Difficult Data Analysis Question Easy With Pandas – A great strategy to use when faced with a tricky data analysis problem is to reshape the dataset into a format that turns it into an easy problem. In this article, you’ll look at an example involving a simple calculation and extensive reshaping in pandas. Efficiently Cleaning Text With Pandas – In this article, you’ll see some examples of cleaning text fields in a large data file and learn several strategies for efficiently cleaning unstructured text fields using Python and pandas. Python Concurrency: The Tricky Bits – An exploration of threads, processes, and coroutines in Python, with interesting examples that illuminate the differences between each. Building Rich Terminal Dashboards – Learn how to use the Rich CLI library’s new terminal dashboard feature. Projects: python-precisely: Better Assertions for Python Tests metaflow: Build and Manage Real-Life Data Science Projects With Ease Additional Links: API design: Understanding gRPC, OpenAPI and REST and when to use them Data Cleaning IS Analysis, Not Grunt Work How to Lie with Statistics: Wikipedia Article Level up your Python skills with our expert-led courses: Building HTTP APIs With Django REST Framework Web Scraping With Beautiful Soup and Python Making HTTP Requests With Python Support the podcast & join our community of Pythonistas
undefined
Feb 26, 2021 • 52min

The Challenges of Developing Into a Python Professional

What’s the difference between writing code for yourself and developing for others? What new considerations do you need to take into account as a professional Python developer? This week on the show, we talk to Dane Hillard about his book “Practices of the Python Pro”. Dane discusses his philosophy on the design principles that go into writing code. We talk about namespaces, object-oriented design, and how to keep your code extensible. We also consider the how and when of code optimization. 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:01:29 – Release and response to Practices of the Python Pro 00:03:12 – What was the writing process like? 00:06:09 – What makes someone a professional? 00:12:30 – How have you and the tools changed in Python testing? 00:14:10 – When did you start to see the change in your career? 00:15:42 – Sponsor: PyCharm 00:16:27 – What topic were you excited to share in the book? 00:17:49 – The importance of code design and ergonomics 00:20:52 – Why is managing and designing namespaces important? 00:26:32 – Expanding that design thought process to object-oriented programming 00:30:02 – Differences of functional vs object-oriented programming 00:34:40 – Video Course Spotlight 00:36:04 – What do you mean by extensible? 00:42:59 – How and when to optimize code? 00:45:57 – Sharing developer philosophy 00:46:52 – What are you excited about in the world of Python? 00:48:31 – What do you want to learn next? 00:51:03 – Thanks and goodbye Show Links: Practices of the Python Pro Dane’s Website Effective Python Testing With Pytest: Real Python Article pytest: helps you write better programs An Effective Python Environment: Making Yourself at Home - Real Python Article FastAPI framework, high performance, easy to learn, fast to code, ready for production Django: The web framework for perfectionists with deadlines Django: GitHub Graphene-Django: Provides Abstractions to Add GraphQL Functionality to Your Django Project Level up your Python skills with our expert-led courses: Getting Started With Django: Building a Portfolio App Test-Driven Development With pytest Dictionaries and Arrays: Selecting the Ideal Data Structure Support the podcast & join our community of Pythonistas
undefined
Feb 19, 2021 • 1h 1min

Stochastic Gradient Descent and Deploying Your Python Scripts on the Web

Do you know the initial steps to get your Python script hosted on the web? You may have built something with Flask, but how would you stand it up so that you can share it with others? This week on the show, we have the previous guest Martin Breuss back on the show. Martin shares his recent article titled, “Python Web Applications: Deploy Your Script as a Flask App”. David Amos also returns, and he’s brought another batch of PyCoder’s Weekly articles and projects. David shares a recent mathematical Real Python article about the stochastic gradient descent algorithm with Python. Stochastic gradient descent is an optimization algorithm often used in machine learning applications to find ideal model parameters. We also cover several other articles and projects from the Python community including, property-based testing with hypothesis, Python’s tug of war between beginner-friendly features and support for advanced users, how Python integers work, the steering council accepts PEP 634, a magical full-stack framework for Django named django-unicorn, and a visual programming environment called Math Inspector. Course Spotlight: Simulating Real-World Processes in Python With SimPy In this step-by-step course, you’ll see how you can use the SimPy package to model real-world processes with a high potential for congestion. You’ll create an algorithm to approximate a complex system, and then you’ll design and run a simulation of that system in Python. Topics: 00:00:00 – Introduction 00:02:44 – Property-Based Testing With hypothesis, and Associated Use Cases 00:09:55 – Python’s Tug of War Between Beginner-Friendly Features and Support for Advanced Users 00:18:50 – Sponsor: Scout APM 00:19:54 – How Python Integers Work 00:26:53 – Python Steering Council Accepts PEP 634 00:32:48 – Stochastic Gradient Descent Algorithm With Python and NumPy 00:38:36 – Video Course Spotlight 00:39:39 – Martin Breuss - Followup about Stay at Home Mentorship Program 00:42:13 – Python Web Applications: Deploy Your Script as a Flask App 00:52:25 – django-unicorn: A Magical Full-Stack Framework for Django 00:55:15 – Math Inspector: A Visual Programming Environment for Scientific Computing With NumPy and SciPy 01:00:21 – Thanks and goodbye Show Links: Property-Based Testing With hypothesis, and Associated Use Cases – Testing software is hard. Property-based testing can help you create more effective tests. Learn how to do property-based testing with the hypothesis framework by looking at some real-world use cases. Python’s Tug of War Between Beginner-Friendly Features and Support for Advanced Users – Python has made some big improvements to tracebacks in recent versions. See how tracebacks have evolved over the last couple of major releases and where there’s still some work left to be done. Check out the discussion on Hacker News. How Python Integers Work – Python’s integer datatype is pretty different from most other languages because they allow arbitrary precision. Learn how integers work under the hood in this in-depth article. Python Steering Council Accepts PEP 634 – Pattern matching, which adds a kind of switch-case statement to Python, has been accepted. Stochastic Gradient Descent Algorithm With Python and NumPy – Learn what the stochastic gradient descent algorithm is, how it works, and how to implement it with Python and NumPy. Python Web Applications: Deploy Your Script as a Flask App – In this tutorial, you’ll learn how to go from a local Python script to a fully deployed Flask web application that you can share with the world. Projects: django-unicorn: A Magical Full-Stack Framework for Django Math Inspector: A Visual Programming Environment for Scientific Computing With NumPy and SciPy Additional Links: Episode 47: Unraveling Python’s Syntax to Its Core With Brett Cannon Friendly tracebacks - Simplified Python tracebacks translatable into any language. PythonBytes - Episode #220 Warnings About Dangerous Syntax: Cool New Features in Python 3.8 - Real Python Article PEP 636 – Structural Pattern Matching: Tutorial Django-Unicorn Articles python-utils: The online playground for Python utilities -Powered by Unicorn Level up your Python skills with our expert-led courses: Simulating Real-World Processes in Python With SimPy Using Google Login With Flask Cool New Features in Python 3.8 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