Podbean logo
  • Discover
  • Podcast Features
    • Podcast Hosting

      Start your podcast with all the features you need.

    • Podbean AI Podbean AI

      AI-Enhanced Audio Quality and Content Generation.

    • Blog to Podcast

      Repurpose your blog into an engaging podcast.

    • Video to Podcast

      Convert YouTube playlists to podcasts, videos to audios.

  • Monetization
    • Ads Marketplace

      Join Ads Marketplace to earn through podcast sponsorships.

    • PodAds

      Manage your ads with dynamic ad insertion capability.

    • Apple Podcasts Subscriptions Integration

      Monetize with Apple Podcasts Subscriptions via Podbean.

    • Live Streaming

      Earn rewards and recurring income from Fan Club membership.

  • Podbean App
    • Podcast Studio

      Easy-to-use audio recorder app.

    • Podcast App

      The best podcast player & podcast app.

  • Help and Support
    • Help Center

      Get the answers and support you need.

    • Podbean Academy

      Resources and guides to launch, grow, and monetize podcast.

    • Podbean Blog

      Stay updated with the latest podcasting tips and trends.

    • What’s New

      Check out our newest and recently released features!

    • Podcasting Smarter

      Podcast interviews, best practices, and helpful tips.

  • Popular Topics
    • How to Start a Podcast

      The step-by-step guide to start your own podcast.

    • How to Start a Live Podcast

      Create the best live podcast and engage your audience.

    • How to Monetize a Podcast

      Tips on making the decision to monetize your podcast.

    • How to Promote Your Podcast

      The best ways to get more eyes and ears on your podcast.

    • Podcast Advertising 101

      Everything you need to know about podcast advertising.

    • Mobile Podcast Recording Guide

      The ultimate guide to recording a podcast on your phone.

    • How to Use Group Recording

      Steps to set up and use group recording in the Podbean app.

  • All Arts Business Comedy Education
  • Fiction Government Health & Fitness History Kids & Family
  • Leisure Music News Religion & Spirituality Science
  • Society & Culture Sports Technology True Crime TV & Film
  • Live
  • How to Start a Podcast
  • How to Start a Live Podcast
  • How to Monetize a podcast
  • How to Promote Your Podcast
  • How to Use Group Recording
  • Log in
  • Start your podcast for free
  • Podcasting
    • Podcast Features
      • Podcast Hosting

        Start your podcast with all the features you need.

      • Podbean AI Podbean AI

        AI-Enhanced Audio Quality and Content Generation.

      • Blog to Podcast

        Repurpose your blog into an engaging podcast.

      • Video to Podcast

        Convert YouTube playlists to podcasts, videos to audios.

    • Monetization
      • Ads Marketplace

        Join Ads Marketplace to earn through podcast sponsorships.

      • PodAds

        Manage your ads with dynamic ad insertion capability.

      • Apple Podcasts Subscriptions Integration

        Monetize with Apple Podcasts Subscriptions via Podbean.

      • Live Streaming

        Earn rewards and recurring income from Fan Club membership.

    • Podbean App
      • Podcast Studio

        Easy-to-use audio recorder app.

      • Podcast App

        The best podcast player & podcast app.

  • Advertisers
  • Enterprise
  • Pricing
  • Resources
    • Help and Support
      • Help Center

        Get the answers and support you need.

      • Podbean Academy

        Resources and guides to launch, grow, and monetize podcast.

      • Podbean Blog

        Stay updated with the latest podcasting tips and trends.

      • What’s New

        Check out our newest and recently released features!

      • Podcasting Smarter

        Podcast interviews, best practices, and helpful tips.

    • Popular Topics
      • How to Start a Podcast

        The step-by-step guide to start your own podcast.

      • How to Start a Live Podcast

        Create the best live podcast and engage your audience.

      • How to Monetize a Podcast

        Tips on making the decision to monetize your podcast.

      • How to Promote Your Podcast

        The best ways to get more eyes and ears on your podcast.

      • Podcast Advertising 101

        Everything you need to know about podcast advertising.

      • Mobile Podcast Recording Guide

        The ultimate guide to recording a podcast on your phone.

      • How to Use Group Recording

        Steps to set up and use group recording in the Podbean app.

  • Discover
  • Log in
    Sign up free
Python Bytes

Python Bytes

Technology

#321 A Memorial To Apps Past

#321 A Memorial To Apps Past

2023-01-30
Download Right click and do "save link as"
Watch on YouTube

About the show

Sponsored by Microsoft for Startups Founders Hub.

Connect with the hosts

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

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

Michael #1: git-sim

  • Visually simulate Git operations in your own repos with a single terminal command.
  • Generates an image (default) or video visualization depicting the Git command's behavior.
  • Features
    • Run a one-liner git-sim command in the terminal to generate a custom Git command visualization (.jpg) from your repo
    • Supported commands: log, status, add, restore, commit, stash, branch, tag, reset, revert, merge, rebase, cherry-pick
    • Generate an animated video (.mp4) instead of a static image using the --animate flag (note: significant performance slowdown, it is recommended to use --low-quality to speed up testing and remove when ready to generate presentation-quality video)
    • Choose between dark mode (default) and light mode
    • Animation only: Add custom branded intro/outro sequences if desired
    • Animation only: Speed up or slow down animation speed as desired
  • See images and animations on the github readme.

Brian #2: Why I Like Nox

  • Hynek Schlawack
  • I like tox and have wanted to try nox but couldn’t think of good reasons for a switch.
  • Hynek is a fan of both, so it’s nice to read his perspective.
  • The article starts with comparing doing the same thing in both
    • testing with Python 3.10 and 3.11 and adding the ability to pass in pytest arguments.
    • even with this example, I do admit that the nox example is easier to read, but a bit more verbose.
  • A second example of running a specific example combination of library and Python is quite a bit longer in nox, but there’s an interesting commentary: “… this is longer than the tox equivalent. But that’s because it’s more explicit and anyone with a passing understanding of Python can deduce what’s happening here – including myself, looking at it in a year. Explicit can be good, actually.”
  • Other benefits:
    • It’s a Python file with Python functions, you have the all of Python at your disposal when developing sessions to run.
    • It’s not “ini format”. Complex ini files get out of hand quickly.
    • nox has Python versions as fist class selectors.
  • Final note: “Again, this article is not a call to abandon tox and move all your projects to Nox – I haven’t done that myself and I don’t plan to. But if my issues resonate with you, there’s an option!”

Michael #3: I scanned every package on PyPi and found 57 live AWS keys

  • Scanning every release published to PyPi found 57 valid access keys.
  • Detecting AWS keys is actually fairly simple. A keypair consists of two components: the key ID and the key secret.
  • The key ID can be detected with the regular expression ((?:ASIA|AKIA|AROA|AIDA)([A-Z0-7]{16}))
  • The secret key can be detected with a much more general [a-zA-Z0-9+/]{40}.
  • Static PyPI data: github.com/orf/pypi-data

Brian #4: Getting Started With Property-Based Testing in Python With Hypothesis and pytest

  • Rodrigo Girão Serrão
  • Hypothesis and property based testing can be overwhelming at first.
  • So focused intro posts are quite helpful.
  • This post focuses on a couple of examples, gcd(), greatest common divisor, and my_sort(), a custom list sorter.
  • Good discussion of how property based testing is different and how to do it successfully, especially the order of development:
    • focus on developing properties of correct answers
    • develop a test that checks those properties
    • use hypothesis strategies to come up with input
    • pick @examples if necessary
    • narrow the range of input if necessary
      • caveat: I would have preferred hypothesis.assume() to limiting input in the first example. assume(not (n == m == 0))
      • see https://hypothesis.readthedocs.io/en/latest/details.html#hypothesis.assume
    • add more testing outside of hypothesis
      • In my experience it’s often easier for me to develop code with non-hypothesis test cases, then follow up with hypothesis. But after works also.
  • The mental gymnastics of thinking of properties for algorithmic code is worthwhile.

Extras

Michael:

  • First stream from the sweet new mac mini.
  • Ivory released for Mastodon, but others too.
  • Nice memorial https://tapbots.com/tweetbot/
  • We’ll be doing a live in-person event at PyCon, become a friend of the show to get notified.

Joke: Didn't come here to be called out

view more

More Episodes

#179 Guido van Rossum drops in on Python Bytes
2020-04-30
#178 Build a PyPI package from a Jupyter notebook
2020-04-22
#177 Coding is 90% Google searching or is it?
2020-04-16
#176 How python implements super long integers
2020-04-07
#175 Python string theory with superstring.py
2020-04-01
#174 Happy developers use Python 3
2020-03-26
#173 Your test deserves a fluent flavor
2020-03-19
#172 Floating high above the web with Helium
2020-03-13
#171 Chilled out Python decorators with PEP 614
2020-03-05
#170 Visualize this: Visualizing Python's visualization ecosystem
2020-02-25
#169 Jupyter Notebooks natively on your iPad
2020-02-19
#168 Race your donkey car with Python
2020-02-11
#167 Cheating at Kaggle and uWSGI in prod
2020-02-03
#166 Misunderstanding software clocks and time
2020-01-27
#165 Ranges as dictionary keys - oh my!
2020-01-21
#164 Use type hints to build your next CLI app
2020-01-16
#163 Meditations on the Zen of Python
2020-01-09
#162 Retrofitting async and await into Django
2020-01-03
#161 Sloppy Python can mean fast answers!
2019-12-18
#160 Your JSON shall be streamed
2019-12-12
  • ←
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • →
012345678910111213141516171819

Get this podcast on your
phone, FREE

Download Podbean app on App Store Download Podbean app on Google Play

Create your
podcast in
minutes

  • Full-featured podcast site
  • Unlimited storage and bandwidth
  • Comprehensive podcast stats
  • Distribute to Apple Podcasts, Spotify, and more
  • Make money with your podcast
Get started

It is Free

  • Podcast Services

    • Podcast Features
    • Pricing
    • Enterprise Solution
    • Private Podcast
    • The Podcast App
    • Live Stream
    • Audio Recorder
    • Remote Recording
    • Podbean AI
  •  
    • Create a Podcast
    • Video Podcast
    • Start Podcasting
    • Start Radio Talk Show
    • Education Podcast
    • Church Podcast
    • Nonprofit Podcast
    • Get Sermons Online
    • Free Audiobooks
  • MONETIZATION & MORE

    • Podcast Advertising
    • Dynamic Ads Insertion
    • Apple Podcasts Subscriptions
    • Switch to Podbean
    • YouTube to Podcast
    • Blog to Podcast
    • Submit Your Podcast
    • Podbean Plugins
    • Developers
  • KNOWLEDGE BASE

    • How to Start a Podcast
    • How to Start a Live Podcast
    • How to Monetize a Podcast
    • How to Promote Your Podcast
    • Mobile Podcast Recording Guide
    • How to Use Group Recording
    • Podcast Advertising 101
  • Support

    • Support Center
    • What’s New
    • Free Webinars
    • Podcast Events
    • Podbean Academy
    • Podbean Amplified Podcast
    • Badges
    • Resources
  • Podbean

    • About Us
    • Podbean Blog
    • Careers
    • Press and Media
    • Green Initiative
    • Affiliate Program
    • Contact Us
  • Privacy Policy
  • Cookie Policy
  • Terms of Use
  • Consent Preferences
  • Copyright © 2015-2025 Podbean.com