The sys module is the primary junk drawer of the Python standard library. A good junk drawer holds miscellaneous items that don’t have another sensible home. I often think of utils modules as “junk drawer” modules. I believe that both utils modules and junk drawers have their purpose, but junk drawers can get out of hand. As I recently noted in my talk about pathlib , I see both…
Did you know that you can customize the Python debugger (PDB) by creating custom aliases within a .pdbrc file in your home directory or Python’s current working directory? I recently learned this and I’d like to share a few helpful aliases that I now have access to in my PDB sessions thanks to my new ~/.pdbrc file. The aliases in my ~/.pdbrc file Here’s my new ~/.pdbrc file: 1 2…
I’ve had many conversations over the past year with friends and colleagues about LLMs. Some conversations have focused on their uses and misuses and some have focused on big picture concerns. There are many reasons to be concerned about LLMs: job displacement, intellectual property issues, moral hazards. The one I hear the most is the environmental impact. TL;DR : I think the environmental…
I read 41 books this year, all via audiobook. Below are my reviews for my 13 favorite reads out of the 41 books I read. If you enjoy audobooks, I recommend switching from Audible to Libro.fm (that’s a referral link). Audible has some pretty slimy business practices ( noted in my 2024 audiobooks post ). Books about World Betterment These 7 books are on immigration, economics, sociology, and…
Here are my default apps of 2025. My 2024 list is here . The Libro, YNAB, SavvyCal, and GLM links below are referral links. You can find more of my referral links here . I’d love a free audiobook if you end up switching from Audible to Libro.fm (you should seriously consider it, as I noted at the end of this audiobook review post ). 💗 📝 Notes : Obsidian + NeoVim ✅ To-Do : Obsidian ✍…
It’s time for some discounted Python-related skill-building. This is my eighth annual compilation of Python learning-related Black Friday & Cyber Monday deals. If you find a Python-related deal in the next week that isn’t on this list, please contact me. Python-related sales It’s not even Black Friday yet, but most of these Python-related Black Friday sales are already live :…
If you code in Python regularly, you’re already learning new things everyday. You hit a wall, or something breaks. Then you search around, spend some hours on Stack Overflow, and eventually, you figure it out. But this kind of learning is unstructured. It’s reactive, instead of intentional. You fix the problem at hand, but the underlying gaps in your knowledge remain unaddressed. A…
I find myself in the Python REPL a lot . I open up the REPL to play with an idea, to use Python as a calculator or quick and dirty text parsing tool, to record a screencast, to come up with a code example for an article, and (most importantly for me) to teach Python. My Python courses and workshops are based largely around writing code together to guess how something works, try it out, and repeat.…
Did you know that Python 3.14 will include syntax highlighting in the REPL? Python 3.14 is due to be officially released in about a month. I recommended tweaking your Python setup now so you’ll have your ideal color scheme on release day. But… what if the default syntax colors don’t match the colors that your text editor uses? Well, fortunately you can customize your color…
I’m pretty much fully back to normal life after PyCon US 2025. I started writing this post shortly after PyCon, got side-tracked, and now I’m finally publishing it. My very quick recap : I spent a ton of time at PyCon chatting with folks and I really enjoyed it. As Ned wrote, it’s like summer camp . My pre-conference (Monday and Tuesday) I flew in a couple days early (Monday May…
Those with kidney failure need dialysis. Dialysis is expensive . Dialysis care in the United States accounts for 7% of Medicare’s budget and nearly 1% of the entire federal budget ( yes , really ). Dialysis is should be a stop gap measure. Ideally, dialysis is just an interim solution until a kidney donor is found. Folks with kidney failure really need a new kidney, but most will never…
All writers need a cutting room floor . I have never written a book, an academic paper, or a journal article. And yet I do write. I write emails, I write blog posts, I write screencast scripts, I journal, I write talks, and I write curriculum for my Python trainings. When I write, I need a place to put text that may not make the cut in a final draft. I call this place the “cutting room…
You’ve submitted a tutorial to PyCon and it was accepted. Now what? In this post I’ll be sharing my thoughts on giving a great PyCon tutorial. Screen readability 👓 Be sure to consider readability when teaching a tutorial. Talks usually involve slides and the default font size in presentation software is often pretty readable on a projector. That’s not usually the case for code…
Last year I updated my having a great first PyCon post to note that Mastodon would likely be more popular than Twitter at PyCon. My guess was correct. During PyCon US 2024, Mastodon overtook Twitter for the most posts on the #PyConUS hashtag. In the fall of 2024, Bluesky really took off. It currently seems like Bluesky is now a bit more popular than Mastodon for Python posts in general… but…
Have you ever wished that Django’s include template tag could accept blocks of content? I have. Unfortunately, Django’s {% include %} tag doesn’t accept blocks of text. Let’s look at a few possible solutions to this problem. The Problem: Hack Include Workarounds Let’s say we have HTML and CSS that make up a modal that is powered by Alpine.js and HTMX and we want to…
Here are my default apps of 2024… in 2025. Inspired by Jeff’s list . You can find my referral links here for Libro, YNAB, or SavvyCal. I’d love a free audiobook if you end up switching from Audible to Libro.fm. 💗 🌐 Browser: Vivaldi 🔍 Search: Kagi (sometimes free Perplexity) 🤖 LLM: Claude 📝 Notes: Obsidian + Vim ✅ To-Do: Obsidian ✍ Writing: Obsidian + Vim 🧑💻 Code Editor:…
I listen to many audiobooks every year. I wrote recaps of my favorites in 2014 , 2015 , and 2016 and then I stopped doing annual recaps. After a 7 year hiatus, I’m attempting to start this annual habit again, starting with audiobooks I read in 2024. But first, I’ll reflect on some of the books that have stuck with me from 2017 through 2023. Books that have stuck with me from 2017 to…
I frequently find myself writing my own short command-line scripts in Python that help me with day-to-day tasks. It’s so easy to throw together a single-file Python command-line script and throw it in my ~/bin directory! Well… it’s easy, unless the script requires anything outside of the Python standard library. Recently I’ve started using uv and my primary for use for it…
I’ve just recently launched a self-paced introduction to Python that is extremely hands-on . It’s called Python Jumpstart and it’s based on introductory Python curriculum that I have been iterating on for years. Learn Python by writing Python code ✍ We do not learn by putting information into the brain. Our brains simply don’t retain knowledge that way. Learning happens…
Ready for some Python skill-building sales? This is my seventh annual compilation of Python learning deals . Lots of Python sales Here are Python-related sales that are live right now: Python Jumpstart with Python Morsels: 50% off my brand new Python course, an introduction to Python that’s very hands-on ( $99 instead of $199 ) Talk Python : the annual everything bundle includes all courses…