Eric Matthes
@ehmatthes.bsky.social
Programmer, writer, teacher... I also like the outdoors. :)
I write a weekly Python newsletter, at www.mostlypython.com. I'm also the author of Python Crash Course, from No Starch Press.
I write a weekly Python newsletter, at www.mostlypython.com. I'm also the author of Python Crash Course, from No Starch Press.
Reposted by Eric Matthes
New episode with @wang.social , @calvinhp.com, and host @mkennedy.codes
#524: 38 things Python developers should learn in 2025
talkpython.fm/episodes/sho...
#524: 38 things Python developers should learn in 2025
talkpython.fm/episodes/sho...
38 things Python developers should learn in 2025
Python in 2025 is different. Threads really are about to run in parallel, installs finish before your coffee cools, and containers are the default. In this episode, we count down 38 things to learn th...
talkpython.fm
October 20, 2025 at 3:31 PM
New episode with @wang.social , @calvinhp.com, and host @mkennedy.codes
#524: 38 things Python developers should learn in 2025
talkpython.fm/episodes/sho...
#524: 38 things Python developers should learn in 2025
talkpython.fm/episodes/sho...
There's always something new to learn about managing time in software. I've been working a lot with timestamps recently, and wrote up some surprising-to-me things from that work.
#Python
www.mostlypython.com/time-deltas-...
#Python
www.mostlypython.com/time-deltas-...
Time deltas are not intuitive
MP 152: But the timedelta implementation in Python is correct.
In many projects, timestamps are just a bit of metadata you might look at once in a while when troubleshooting. But sometimes, timestamp...
www.mostlypython.com
October 20, 2025 at 12:26 PM
There's always something new to learn about managing time in software. I've been working a lot with timestamps recently, and wrote up some surprising-to-me things from that work.
#Python
www.mostlypython.com/time-deltas-...
#Python
www.mostlypython.com/time-deltas-...
The 1.2.1 release of django-simple-deploy allows plugins to extend the core CLI.
For example, the dsd-flyio plugin now supports a `--vm-size` option.
This is what was needed to make plugins much more powerful than simply "give me the smallest possible working deployment".
#Python #Django
For example, the dsd-flyio plugin now supports a `--vm-size` option.
This is what was needed to make plugins much more powerful than simply "give me the smallest possible working deployment".
#Python #Django
September 15, 2025 at 9:05 PM
I've definitely been stuck at the `uv venv .venv` and `uv pip install <package>` level of adoption. This is a great writeup of how to really simplify your workflow with uv.
Using uv for your #Python projects? You're probably doing it wrong.
While uv *can* replace pip, pyenv, and venvs, you really should be using it differently. If you do, things get easier and more straightforward.
Read more: lerner.co.il/2025/08/28/y...
While uv *can* replace pip, pyenv, and venvs, you really should be using it differently. If you do, things get easier and more straightforward.
Read more: lerner.co.il/2025/08/28/y...
You're probably using uv wrong
[This is adopted from my "Better developers" newsletter: https://BetterDevelopersWeekly.com ] Like many others in the Python world, I've adopted "uv", the do-everything, lightning-fast package manager...
lerner.co.il
August 28, 2025 at 12:36 PM
I've definitely been stuck at the `uv venv .venv` and `uv pip install <package>` level of adoption. This is a great writeup of how to really simplify your workflow with uv.
I'm jumping back into django-simple-deploy work this week. The focus will be on the dsd-vps plugin, but first up is a refresh of the page that compares a core set of PAAS hosts:
#Python #Django
django-simple-deploy.readthedocs.io/en/latest/ge...
#Python #Django
django-simple-deploy.readthedocs.io/en/latest/ge...
Choosing a platform - django-simple-deploy
django-simple-deploy.readthedocs.io
August 27, 2025 at 4:01 PM
I'm jumping back into django-simple-deploy work this week. The focus will be on the dsd-vps plugin, but first up is a refresh of the page that compares a core set of PAAS hosts:
#Python #Django
django-simple-deploy.readthedocs.io/en/latest/ge...
#Python #Django
django-simple-deploy.readthedocs.io/en/latest/ge...
Fun news! I just deployed a demo Wagtail site to Platform.sh using django-simple-deploy. Here's the steps, and a screenshot of a logged-in admin user.
#Django
#Django
August 14, 2025 at 9:45 PM
Fun news! I just deployed a demo Wagtail site to Platform.sh using django-simple-deploy. Here's the steps, and a screenshot of a logged-in admin user.
#Django
#Django
@wsvincent.bsky.social shared a really grounded take on the state of AI this week. If you're trying to make sense of where we're at and where we're headed, I highly recommend reading his take. It's a quick read.
wsvincent.com/ai-for-the-r...
wsvincent.com/ai-for-the-r...
AI For the Rest of Us -
Will Vincent
What LLMs and ever-improving frontier models like ChatGPT, Claude, and others portend.
wsvincent.com
August 14, 2025 at 1:48 PM
@wsvincent.bsky.social shared a really grounded take on the state of AI this week. If you're trying to make sense of where we're at and where we're headed, I highly recommend reading his take. It's a quick read.
wsvincent.com/ai-for-the-r...
wsvincent.com/ai-for-the-r...
Like many others, I've been loving uv and it's changed my workflows for the better.
I cleaned up my system recently, removing pyenv in favor of an all-uv approach. I wrote up the process here:
#Python #uv
www.mostlypython.com/updating-pyt...
I cleaned up my system recently, removing pyenv in favor of an all-uv approach. I wrote up the process here:
#Python #uv
www.mostlypython.com/updating-pyt...
Updating Python
MP 147: How do you clean up when you have too many Pythons lying around?
About a year and a half ago, I wrote a post about how to update the version of Python you're using locally. I was hoping that ...
www.mostlypython.com
August 8, 2025 at 1:44 PM
Like many others, I've been loving uv and it's changed my workflows for the better.
I cleaned up my system recently, removing pyenv in favor of an all-uv approach. I wrote up the process here:
#Python #uv
www.mostlypython.com/updating-pyt...
I cleaned up my system recently, removing pyenv in favor of an all-uv approach. I wrote up the process here:
#Python #uv
www.mostlypython.com/updating-pyt...
py-bugger is up to 0.5.2 now.
Latest feature: you can introduce a bug into a specific block of lines, or even a single line in the target file.
It works for small teaching files, and you can target large files in library code as well.
#Python
Latest feature: you can introduce a bug into a specific block of lines, or even a single line in the target file.
It works for small teaching files, and you can target large files in library code as well.
#Python
July 14, 2025 at 2:11 PM
py-bugger is up to 0.5.2 now.
Latest feature: you can introduce a bug into a specific block of lines, or even a single line in the target file.
It works for small teaching files, and you can target large files in library code as well.
#Python
Latest feature: you can introduce a bug into a specific block of lines, or even a single line in the target file.
It works for small teaching files, and you can target large files in library code as well.
#Python
In the 0.4.1 release of py-bugger, the `-e` argument is optional. If you leave it off, it will randomly select what kind of bug to introduce in the target project.
It also suggests valid arguments for `-e` if you make a typo.
#Python
It also suggests valid arguments for `-e` if you make a typo.
#Python
June 25, 2025 at 6:52 PM
In the 0.4.1 release of py-bugger, the `-e` argument is optional. If you leave it off, it will randomly select what kind of bug to introduce in the target project.
It also suggests valid arguments for `-e` if you make a typo.
#Python
It also suggests valid arguments for `-e` if you make a typo.
#Python
Reposted by Eric Matthes
I think if you're writing a technical book/post/documentation, you have to stick to this principle:
If the code isn't directly loaded from a tested source file, or copy-pasted from one, it doesn't go in the document.
"I just need to make a little edit to the code in the post, it'll be fine"
No
If the code isn't directly loaded from a tested source file, or copy-pasted from one, it doesn't go in the document.
"I just need to make a little edit to the code in the post, it'll be fine"
No
June 21, 2025 at 12:11 PM
I think if you're writing a technical book/post/documentation, you have to stick to this principle:
If the code isn't directly loaded from a tested source file, or copy-pasted from one, it doesn't go in the document.
"I just need to make a little edit to the code in the post, it'll be fine"
No
If the code isn't directly loaded from a tested source file, or copy-pasted from one, it doesn't go in the document.
"I just need to make a little edit to the code in the post, it'll be fine"
No
py-bugger 0.4.0 is out! A few bugs have been addressed, and it now looks for a clean Git status before introducing bugs in a project or file. You can override that behavior with the `--ignore-git-status` flag.
py-bugger.readthedocs.io/en/latest/
#Python
py-bugger.readthedocs.io/en/latest/
#Python
Introduction - py-bugger
py-bugger.readthedocs.io
June 11, 2025 at 1:21 PM
py-bugger 0.4.0 is out! A few bugs have been addressed, and it now looks for a clean Git status before introducing bugs in a project or file. You can override that behavior with the `--ignore-git-status` flag.
py-bugger.readthedocs.io/en/latest/
#Python
py-bugger.readthedocs.io/en/latest/
#Python
I wrote about the value of conference open spaces in validating new project ideas. A bit about sprints as well:
www.mostlypython.com/validating-a...
#PyConUS
www.mostlypython.com/validating-a...
#PyConUS
Validating a new project
MP 142: Conference "open spaces" are a great place to get valuable feedback about new projects.
Note: The debugging series will continue shortly. I spent a full week at PyCon, and my son graduated fr...
www.mostlypython.com
May 30, 2025 at 12:25 PM
I wrote about the value of conference open spaces in validating new project ideas. A bit about sprints as well:
www.mostlypython.com/validating-a...
#PyConUS
www.mostlypython.com/validating-a...
#PyConUS
Reposted by Eric Matthes
Use #Python at all? I would like to do a silly thing, which I hope will bring amusement to others as well as me (if it works out).
If you wouldn't mind, please fill out this form, and boost for reach:
docs.google.com/forms/d/e/1F...
If you wouldn't mind, please fill out this form, and boost for reach:
docs.google.com/forms/d/e/1F...
Informal Pointless Python Survey
This is an informal, unscientific survey of (sort of) Python questions, with which I'd like to try to make something amusing, maybe something involving families feuding somehow. (I may have been inspi...
docs.google.com
May 27, 2025 at 2:06 AM
Use #Python at all? I would like to do a silly thing, which I hope will bring amusement to others as well as me (if it works out).
If you wouldn't mind, please fill out this form, and boost for reach:
docs.google.com/forms/d/e/1F...
If you wouldn't mind, please fill out this form, and boost for reach:
docs.google.com/forms/d/e/1F...
I'll be signing books at the JetBrains booth at 10:05, right after Lynn's keynote. Bring your own copy if you have it, or come by to say hi! Grab some stickers too!
(Limited copies available at the booth as well.)
#PyConUS
(Limited copies available at the booth as well.)
#PyConUS
May 17, 2025 at 1:33 PM
I'll be signing books at the JetBrains booth at 10:05, right after Lynn's keynote. Bring your own copy if you have it, or come by to say hi! Grab some stickers too!
(Limited copies available at the booth as well.)
#PyConUS
(Limited copies available at the booth as well.)
#PyConUS
I’m really looking forward to this!
I love panels because you get multiple perspectives in one session.
I love panels because you get multiple perspectives in one session.
Multiple Python legends in one room? @ehmatthes.bsky.social (Python Crash Course), @codemouse92.bsky.social (Dead Simple Python) & @alsweigart.bsky.social (Automate the Boring Stuff) hit PyCon’s Python Author Meet & Greet — May 17, 2:15–3:45 PM. Don’t miss it!
May 16, 2025 at 4:27 PM
I’m really looking forward to this!
I love panels because you get multiple perspectives in one session.
I love panels because you get multiple perspectives in one session.
If you're at #PyConUS and you like birds, there's a lot to (try to) see at Point State Park. It's about a ten minute walk from the convention center.
May 15, 2025 at 2:47 PM
If you're at #PyConUS and you like birds, there's a lot to (try to) see at Point State Park. It's about a ten minute walk from the convention center.
Reposted by Eric Matthes
I'm heading to #PyConUS! I'm excited to present a talk on best practices for moving from Jupyter notebooks to Python scripts that scale.
And thanks to the awesome folks at @oreilly.bsky.social I have 10 copies of "Software Engineering for Data Scientists" to give out. I'll share details at my talk.
And thanks to the awesome folks at @oreilly.bsky.social I have 10 copies of "Software Engineering for Data Scientists" to give out. I'll share details at my talk.
May 15, 2025 at 2:10 AM
I'm heading to #PyConUS! I'm excited to present a talk on best practices for moving from Jupyter notebooks to Python scripts that scale.
And thanks to the awesome folks at @oreilly.bsky.social I have 10 copies of "Software Engineering for Data Scientists" to give out. I'll share details at my talk.
And thanks to the awesome folks at @oreilly.bsky.social I have 10 copies of "Software Engineering for Data Scientists" to give out. I'll share details at my talk.
I'll be signing books at the JetBrains/PyCharm booth on Saturday morning, right after the keynote. Bring a book and I'll sign it, buy one at the booth, or just stop by to say hi and grab a sticker!
#PyConUS
#PyConUS
May 14, 2025 at 9:44 PM
I'll be signing books at the JetBrains/PyCharm booth on Saturday morning, right after the keynote. Bring a book and I'll sign it, buy one at the booth, or just stop by to say hi and grab a sticker!
#PyConUS
#PyConUS
Leaving AVL for PIT via CLT. See you soon, #PyConUS people!
I have a pretty open day tomorrow, so if you’re around and want to say hello please reach out!
I have a pretty open day tomorrow, so if you’re around and want to say hello please reach out!
May 14, 2025 at 6:11 PM
Leaving AVL for PIT via CLT. See you soon, #PyConUS people!
I have a pretty open day tomorrow, so if you’re around and want to say hello please reach out!
I have a pretty open day tomorrow, so if you’re around and want to say hello please reach out!
Reposted by Eric Matthes
Have you ever wished the browser would look at a background color and pick black or white for the text — whichever one provides more contrast?
Now, the `constrast-color()` function in CSS does just that.
webkit.org/blog/16929/c...
Now, the `constrast-color()` function in CSS does just that.
webkit.org/blog/16929/c...
How to have the browser pick a contrasting color in CSS
Have you ever wished you could write simple CSS to declare a color, and then have the browser figure out whether black or white should be paired with that color?
webkit.org
May 13, 2025 at 6:28 PM
Have you ever wished the browser would look at a background color and pick black or white for the text — whichever one provides more contrast?
Now, the `constrast-color()` function in CSS does just that.
webkit.org/blog/16929/c...
Now, the `constrast-color()` function in CSS does just that.
webkit.org/blog/16929/c...
py-bugger has a simple logo for now. :)
I have an idea for a logo for django-simple-deploy, but that will take a bit longer to do well.
github.com/ehmatthes/py...
#Python
I have an idea for a logo for django-simple-deploy, but that will take a bit longer to do well.
github.com/ehmatthes/py...
#Python
May 7, 2025 at 7:13 PM
py-bugger has a simple logo for now. :)
I have an idea for a logo for django-simple-deploy, but that will take a bit longer to do well.
github.com/ehmatthes/py...
#Python
I have an idea for a logo for django-simple-deploy, but that will take a bit longer to do well.
github.com/ehmatthes/py...
#Python
I'm going to focus my #PyconUS sprint time on django-simple-deploy, but I'm also happy to spend time on py-bugger as well.
It's been a really fun project to work on! If you're at PyCon and want to contribute or just talk about py-bugger, please come find me!
us.pycon.org/2025/events/...
It's been a really fun project to work on! If you're at PyCon and want to contribute or just talk about py-bugger, please come find me!
us.pycon.org/2025/events/...
Development Sprints
PyCon US 2025
us.pycon.org
May 5, 2025 at 1:01 PM
I'm going to focus my #PyconUS sprint time on django-simple-deploy, but I'm also happy to spend time on py-bugger as well.
It's been a really fun project to work on! If you're at PyCon and want to contribute or just talk about py-bugger, please come find me!
us.pycon.org/2025/events/...
It's been a really fun project to work on! If you're at PyCon and want to contribute or just talk about py-bugger, please come find me!
us.pycon.org/2025/events/...
I'll be at #PyConUS later this month, and I'll be sprinting on django-simple-deploy. I'm planning to focus on refining existing plugins, especially dsd-vps which deploys to any VPS provider.
us.pycon.org/2025/events/...
#Django
us.pycon.org/2025/events/...
#Django
Development Sprints
PyCon US 2025
us.pycon.org
May 4, 2025 at 11:46 AM
I'll be at #PyConUS later this month, and I'll be sprinting on django-simple-deploy. I'm planning to focus on refining existing plugins, especially dsd-vps which deploys to any VPS provider.
us.pycon.org/2025/events/...
#Django
us.pycon.org/2025/events/...
#Django