Python Bytes cover art

Python Bytes

Written by: Michael Kennedy and Brian Okken
  • Summary

  • Python Bytes is a weekly podcast hosted by Michael Kennedy and Brian Okken. The show is a short discussion on the headlines and noteworthy news in the Python, developer, and data science space.
    Copyright 2016-2024
    Show More Show Less
Episodes
  • #385 RESTing on Postgres
    May 27 2024
    Topics covered in this episode:
    • PostgresREST
    • How Python Asyncio Works: Recreating it from Scratch
    • Bend
    • The Smartest Way to Learn Python Regular Expressions
    • Extras
    • Joke
    Watch on YouTube

    About the show

    Sponsored by Mailtrap: pythonbytes.fm/mailtrap

    Connect with the hosts

    • Michael: @mkennedy@fosstodon.org
    • Brian: @brianokken@fosstodon.org
    • Show: @pythonbytes@fosstodon.org

    Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 10am PT. Older video versions available there too.

    Finally, if you want an artisanal, hand-crafted digest of every week of the show notes in email form? Add your name and email to our friends of the show list, we'll never share it.

    Michael #1: PostgresREST

    • PostgREST serves a fully RESTful API from any existing PostgreSQL database. It provides a cleaner, more standards-compliant, faster API than you are likely to write from scratch.
    • Speedy
      • First the server is written in Haskell using the Warp HTTP server (aka a compiled language with lightweight threads).
      • Next it delegates as much calculation as possible to the database.
      • Finally it uses the database efficiently with the Hasql library
    • PostgREST handles authentication (via JSON Web Tokens) and delegates authorization to the role information defined in the database. This ensures there is a single declarative source of truth for security.

    Brian #2: How Python Asyncio Works: Recreating it from Scratch

    • Jacob Padilla
    • Cool tutorial walking through how async works, including
      • Generators Review
      • The Event Loop
      • Sleeping
      • Yield to Await
      • Await with AsyncIO
    • Another great async resource is:
      • Build your Own Async
        • David Beasley talk from 2019

    Michael #3: Bend

    • A massively parallel, high-level programming language.
    • With Bend you can write parallel code for multi-core CPUs/GPUs without being a C/CUDA expert with 10 years of experience.
    • It feels just like Python!
    • No need to deal with the complexity of concurrent programming: locks, mutexes, atomics... any work that can be done in parallel will be done in parallel.

    Brian #4: The Smartest Way to Learn Python Regular Expressions

    • Christian Mayer, Zohaib Riaz, and Lukas Rieger
    • Self published ebook on Python Regex that utilizes
      • book form readings, links to video course sections
      • puzzle challenges to complete online
    • It’s a paid resource, but the min is free.

    Extras

    Brian:

    • Replay - A graphic memoir by Prince of Persia creator Jordan Mechner, recounting his own family story of war, exile and new beginnings.

    Michael:

    • PyCon 2026

    Joke: Shells Scripts

    Show More Show Less
    24 mins
  • #384 Force push lightly
    May 21 2024
    Topics covered in this episode: Git: Force push safely with --force-with-lease and --force-if-includesThoughts from PyCon 2024Being friendly: Strategies for friendly fork managementtachExtrasJokeExtrasJokeWatch on YouTube About the show Sponsored by Mailtrap: pythonbytes.fm/mailtrap Connect with the hosts Michael: @mkennedy@fosstodon.orgBrian: @brianokken@fosstodon.orgShow: @pythonbytes@fosstodon.org Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 10am PT. Older video versions available there too. Finally, if you want an artisanal, hand-crafted digest of every week of the show notes in email form? Add your name and email to our friends of the show list, we'll never share it. Brian #1: Git: Force push safely with --force-with-lease and --force-if-includes Adam JohnsonUsing gentle force Avoid stomping on remote changes with a couple extra flags. Michael #2: Thoughts from PyCon 2024 PyCon is special - the connections you make are always more than you expectGreat to see many old friendsDid a ”live” Talk Python episode that’ll be out in a few weeks.The talks look great, we’ll let you know when they land on YouTube.Masks were a mistake - universally heard complaints from fellow attendees. This is my two cents towards a more reasonable next PyCon. Brian #3: Being friendly: Strategies for friendly fork management That’s part 2. Part 1 is Being friendly: Friendly forks 101Lessley Dennington on GitHub BlogExamples of long running friendly forks git-for-windows/git, microsift/git, github/gittwo public, one privateFork management strategies - when pulling changes downstream merging rebase git-for-windows/git uses this proactively and regularlyfake merge + rebasenew branch microsoft/git uses thisnew branch from upstream major versionsmerge previous changes to new branchtraditional merge github/git uses this, conservatively, after a few point bug fix versions Michael #4: tach A Python tool to enforce a modular, decoupled package architecture.tach allows you to define boundaries and control dependencies between your Python packages. Each package can define its public interface.If a package tries to import from another package that is not listed as a dependency, tach will report an error. If a package tries to import from another package and does not use its public interface, with strict: true set, tach will report an error.Zero runtime impact. Extras Brian: Logfire - new observability platform from the pydantic team - free for now Michael: 10% off the new spaCy course throughout May Joke: Evolution of smart products
    Show More Show Less
    26 mins
  • #383 Why aren’t devs shipping faster?
    May 14 2024
    Topics covered in this episode: I asked 100 devs why they aren’t shipping faster. Here’s what I learnedPython 3.13.0 beta 1 releasedA theme editor for JupyterLabrich-argparseExtrasJokeWatch on YouTube About the show Sponsored by Mailtrap: pythonbytes.fm/mailtrap Connect with the hosts Michael: @mkennedy@fosstodon.orgBrian: @brianokken@fosstodon.orgShow: @pythonbytes@fosstodon.org Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 10am PT. Older video versions available there too. Finally, if you want an artisanal, hand-crafted digest of every week of the show notes in email form? Add your name and email to our friends of the show list, we'll never share it. Michael #1: I asked 100 devs why they aren’t shipping faster. Here’s what I learned by Daksh Gupta (via PyCoders)What’s stopping you from shipping faster? Dependency bugs Complicated codebase >There is so much undocumented in our service, including poor records of new features, nonexistent or outdated info on our dependencies, or even essential things like best practices for testing, a lot of time is wasted in syncs trying to find the right informationQA LoopsWaiting for spec > At Amazon? Meetings, approval, talking to 10 different stakeholders because changing the color of a button affects 15 micro servicesWriting testsDeployment/build speedScope creep > The human tendency to stuff last-minute items into the crevices of their luggage minutes before leaving for the airport manifests itself at software companies as scope creep.Unclear requirementsExcessive meetingsMotivation >honest answer is i was on ads>and that’s a very old / complicated / large stack (edited)>and i didn’t understand it>my friends on younger teams seemed happier, i was miserableDORA metrics Brian #2: Python 3.13.0 beta 1 released "Python 3.13 is still in development. This release, 3.13.0b1, is the first of four beta release previews of 3.13.”New REPL, featuring multi-line editing, color support, colorized exception tracebacksCool GIL, JIT, and GC featuresTyping changes, including typing.TypeIs . See last weeks episode and TypeIs does what I thought TypeGuard would do in PythonSome nice dead battery removalsand moreBut seriously, the REPL is cool. Just ask Trey The new REPL in Python 3.13 - Trey Hunner Michael #3: A theme editor for JupyterLab by Florence HaudinA new tool for authoring JupyterLab themesTo lower the bar for customizing JupyterLab we created a new tool providing a simple interface for tuning the JupyterLab appearance interactively.See jupyterlab-theme-editor on github Brian #4: rich-argparse “Format argparse and optparse help using rich.”“rich-argparse improves the look and readability of argparse's help while requiring minimal changes to the code.”They’re not kidding. 2 line code change. from rich_argparse import RichHelpFormatter parser = argparse.ArgumentParser(..., formatter_class=RichHelpFormatter) Extras Brian: pytest course is now switched to the new platform. I sent out an email including how to save their spot on the old site and mark that spot complete on the new site.There’s now comments on the course now. Trying that out. If you’ve got a question, just ask in that section. Michael: A new Talk Python course: Getting Started with NLP and spaCy Joke: Testing holiday
    Show More Show Less
    31 mins

What listeners say about Python Bytes

Average Customer Ratings

Reviews - Please select the tabs below to change the source of reviews.