DiscoverPython Bytes#218 Keyboards for developers, Python, and some history
#218 Keyboards for developers, Python, and some history

#218 Keyboards for developers, Python, and some history

Update: 2021-01-27
Share

Description

Sponsored by Datadog: pythonbytes.fm/datadog



Special guest: Jeremy Tanner



Watch on YouTube




Brian #1: Constant Folding in Python




  • Arpit Bhayani

  • Constant Folding is when a language replaces constant expressions at compile time rather than computing them at runtime.

  • CPython does this while creating the bytecode.

  • We can use dis to see it in action



    >>> import dis
>>> dis.dis("day_sec = 24 * 60 * 60")
1 0 LOAD_CONST 0 (86400)
2 STORE_NAME 0 (day_sec)
4 LOAD_CONST 1 (None)
6 RETURN_VALUE



  • Python tries to fold lots of constants, but not all.

  • Seems to be based on size



    >>> x = 2 ** 64 # folded
>>> x = 4 ** 64 # not folded
>>> a = "-" * 4096 # folded
>>> a = "-" * 4097 # not folded



  • Discussion continues with a discussion of how CPython folding is implemented recursively and elegantly.

  • Key takeaway for me:

    • Remember to not try to pre-compute constants while coding.

    • Make them easy to read and Python will handle the optimization for you.




Michael #2: Update All Packages With pip-review




  • via PyCoders

  • Updating Python packages can be a hassle.

  • There are many of them - it's hard to keep track of all the newest versions

  • When you decide what to update, you still have to update each of them manually.

  • Originally a part of the pip-tools package, it now lives on as a standalone convenience wrapper around pip.

  • Usage



    (venv) $ pip install pip-review

(venv)$ pip-review
scikit-learn==0.23.2 is available (you have 0.23.1)
scipy==1.5.4 is available (you have 1.4.1)
seaborn==0.11.0 is available (you have 0.10.1)
...



  • Once you've identified if you'd like to update your packages, you can update them all, automatically, using pip-review --auto

    • Limit with constraints.txt file


  • Can do it interactively via pip-review --interactive



Jeremy #3: Quantum Mechanical Keyboard Firmware





Brian #4: Reinventing the Python Logo




  • Carlo Occhiena interview with Jessica Williamson

  • Some cool logo history

  • Early logo


  • Current, from 2006, designed by Tim Parklin


  • “The logo is actually based on mayan representations of snakes which very often represent only the head and perhaps a short length of tail. The structure of the snake representations the natural coiling/nesting of a snake as seen side on.” - Tim Parklin


  • Jessica Williamson proposed a new one in 2020:


  • Then there’s the rest of the article talking about the design process, etc.


  • But….. just wanted to throw this out there. I’m happy with the 2006 version. - Brian

  • MK: Have you ever seen the logos on the app stores?



Michael #5: Private PyPI with Serverless Computing




  • Project: aws-lambda-pypi

  • Brings together a few pieces so you can easily run a small PyPICloud instance as an AWS Lambda function with the help of Terraform.

  • PyPICloud lets you publish Python packages privately.

  • AWS Lambda lets you run a small service for free.

  • Terraform ensures the service is deployed and maintained correctly.

  • Security: This project takes the following security precautions.

  • The session keys are auto-generated and stored in a secret.

  • The server configuration file, which contains the session keys, is generated on the fly to minimize the possibility of exposure.

  • The lambda function runs with a role limited to accessing only what it needs.

  • PyPICloud is configured to display no packages to unauthenticated users.



Jeremy #6: Beyond the Basic Stuff w/Python




  • Al Sweigart

  • Want to become less feral?



Extras:



Jeremy:





Michael:





Brian:




  • We talked about pip-chill in episode 208

    • pip-chill now has a --no-chill option to not list itself. Nice.


  • I was just on https://www.twitch.tv/microsoftdeveloper, short, but fun



Joke




  • via Wolf

  • by Kat Maddox


  • developer: so i have good news and bad news


  • manager: what's the good news?

  • developer: i've discovered that the "5 second rule" only applies to food

  • manager: and the bad news?

  • developer: i dropped our tables

Comments 
00:00
00:00
x

0.5x

0.8x

1.0x

1.25x

1.5x

2.0x

3.0x

Sleep Timer

Off

End of Episode

5 Minutes

10 Minutes

15 Minutes

30 Minutes

45 Minutes

60 Minutes

120 Minutes

#218 Keyboards for developers, Python, and some history

#218 Keyboards for developers, Python, and some history

Michael Kennedy (@mkennedy)