Seth Michael Larson

Blogging about Python and the Internet

Want to be notified about new articles? ❤︎ Subscribe via the newsletter or RSS

Ubuntu 22.10 on Dell XPS 15 9520 (2022-11-19)

Switching git back to GPG signing (2022-08-25)

Preparing for the wave of open source funding (2022-08-23)

Help us test system trust stores in Python (2022-07-26)

Get paid to contribute to urllib3 (Newsletter #7) (2022-06-21)

People in your software supply chain (2022-05-31)

Security for package maintainers (2022-03-01)

Move or recover your Wordle statistics (2022-02-17)

How does UTF-8 turn “😂” into “F09F9882”? (2022-02-08)

Strict Python function parameters (2022-01-23)

Problems with testing Python pre-releases and pip caching (2022-01-13)

urllib3 raised $15,000 in 2021 (Newsletter #6) (2021-12-29)

Experimental APIs in Python 3.10 and the future of trust stores (2021-11-27)

Tests aren’t enough: Case study after adding type hints to urllib3 (2021-10-18)

The problem with Flask async views and async globals (2021-08-01)

Everything to know about Requests v2.26.0 (2021-07-13)

urllib3 Newsletter #5 (2021-06-29)

urllib3 Newsletter #4 (2021-05-03)

urllib3 Newsletter #3 (2020-12-28)

urllib3 Newsletter #2 (2020-11-13)

urllib3 Newsletter #1 (2020-10-05)

API Design for Optional Async Context Managed Resources (2020-08-10)

TIL: Getting HTTP Status Codes from Flask errorhandler (2020-07-24)

Designing Libraries for Async and Sync I/O (2020-06-27)

Why URLs are Hard: Path Params & urlparse (2020-04-10)

urllib3 in 2020 (2020-03-14)

Review of 2019 for urllib3 (2019-12-28)

HTTP Header Compression (2019-12-06)

Designing for Real-World HTTPS (2019-11-26)

Sponsored Work on urllib3 (2019-11-11)

Built with SimpleGrid, FontAwesome, Flask, and more.