Looking back, looking ahead

MP 129: Highlights from 2024, and what's to come in 2025.

I've been writing Mostly Python for two full years now. I started it in order to write more regularly about Python, and about a wide range of topics from the perspective of a Python user and community member. It's been a great vehicle for sharing what I'm working on, what I'm learning, and occasional broader perspectives as well.

This past year was a pretty big one for me personally. We made a big cross-country move, and I had a major medical incident. Python has been a constant in the background during all that change. I'm really looking forward to a more stable life at home in the next year, even as the world seems to be increasingly less stable.

In this post I'll share some highlights from 2024, and what I have planned for Mostly Python in 2025.

Personal life in 2024

We lived in Alaska for twenty years. But all our family is on the east coast of the US, and twenty years of traveling two days each way every time we visited family got to be a bit much. Also, we were in southeast Alaska. It's a temperate rainforest, where it's not uncommon to go 3-6 weeks without ever seeing the sun. Summers have exceptionally long days, but in the winter the shorter days and persistent cloud cover means it only ever goes from shades of gray to dark and then back to gray for long stretches of time. It's a cycle that worked for us for many years, because the beauty and rawness balance out in a lot of ways. But it was time for a change, and we finally decided on a home for the next phase of our lives. We chose western North Carolina because we love mountains, and it's close enough to visit everyone in our family reasonably often, and have them visit us more than once every few years as well.

view from the Alaska ferry, looking across Chatham Strait on a calm afternoon
Three days on a ferry was a nice way to start processing the move away from Alaska, where we've spent the last 20 years.

I share some of these personal bits because who I am as a programmer is completely intertwined with who I am as a person. We wanted to move to Brevard, NC after realizing that Asheville had grown more than we expected since our last visit. Then we were surprised and disappointed to find that Brevard is actually a temperate rainforest as well! Brevard gets almost as much annual precipitation as Southeast Alaska. We weren't about to move from one dark gray place to another. Before giving up and resuming our search for where to move to, however, I decided to look at the weather data for Brevard a little more closely. It turns out Brevard gets just as much rain as Sitka, but it falls over ~135 days in Brevard vs ~235 days in Sitka. We are happy to accept rainier days, with the balance of 100 more dry days! That analysis has borne out so far (aside from the hurricane); we are loving the weather here so far, and the rainy days are welcome knowing they're not going to lead to six weeks without any sun at all.

We moved in August, but our move was a year-long process. Instead of throwing everything into a container and shipping it south, we purged everything we didn't need for the next phase of our lives. It was renewing to go through everything that's accumulated in our lives, but it also took a lot of work. It was quite nice to drive onto the ferry and just sit still for a while.

view of the Pisgah National Forest from Looking Glass Rock
We traded the evergreen forests of southeast Alaska for the deciduous forests of the southern Appalachians. It's been wonderful to get to know a new landscape.

We enjoyed seeing family and settling in to life in another mountain town. But shortly after moving I ended up in the hospital with a pulmonary embolism, and that was followed exactly one week later by the hurricane. We fared pretty well, compared to so many others in this area. Writing from a point almost three months after the hurricane, it's still a stark reality that most people around here are going on with their lives while others are still living in temporary shelters, without power or running water.

We're buying a house in the next week, so we're hoping for a more stable life from which to continue exploring our new home. We should get to welcome the new year from our new house, one that we don't have any plans to move on from in the coming years. That's a stability we haven't had for a long time.

Mostly Python in 2024

I wrote two full series in 2024. The first focused on developing a test suite for Python Crash Course. Most people aren't going to need to test code from a book. But developing a test suite for a real-world project isn't as simple as many articles and talks might suggest. The series focuses on the issues that came up in the course of developing a test suite that met my needs as a programmer and as an author. It turns out many of these issues are relevant to a wide variety of real-world test suites. The series covered topics such as how to parametrize tests so a small number of tests cover a wide range of situations, how to test visual output, how to deal with cross-OS issues in testing, and more. If you're interested in testing beyond writing simple unit tests, consider skimming this series to see what's relevant for you.

The second series was focused on building a Django project starting with a single file. This series was a response to the question of how simply you can make a small Django project, and how much we can learn by starting with just one file. I've been surprised to hear from people I know in the Django community who followed along with this series and learned something from it. I learned a great deal from writing it, and may turn it into an ebook in the next year. If you're a Django user, or are interested in learning about Django, I highly recommend skimming this series and seeing if you come away with any new understandings of how Django works internally.

I also wrote a fair number of standalone posts. One I keep referring people to discusses how to calculate file paths in a way that they'll work for all users on all systems. If you've ever been surprised by a FileNotFoundError, take a look at Calculated file paths. Another one-off post that should stand the test of time is It's your job to keep AI at arm's length. I'd love for the product managers who push for modals shoving AI integrations into our face to read this post several times over. So many products are being made worse by AI integrations; as much as you can, please resist pushing AI where it isn't helpful.

modal reading "Brevard Buddy, this group's custom AI, is here to help you get answers and suggestions!"
No thanks, none of us want an AI "buddy" in our community's Facebook group.

Mostly Python in 2025

I'm looking forward to continuing with Mostly Python for another year. I use a GitHub repository to keep track of all the posts I'd like to write, and at this moment there are 116 open issues with the label post:

GitHub issues page filtered on open issues with label "post"
I have no shortage of ideas for new posts. :)

That's about two years' worth of posts! There are two main series I'd like to write this year. I've wanted to write a series about debugging for a long time. It's one of those things we all do, but many of us have never been taught specifically. I think many of us invent our own approaches to debugging, sprinkling in tips from others when we talk about our workflows. I want to write up my own workflow, which will almost certainly lead to some improvements in the way I approach debugging. I also have an interesting idea for a way to help people practice debugging in a more structured way than "I'll pay more attention when I run into my next bug".

I'd also like to write a brief series about running your own AI models locally. There's a lot of benefit to running them locally, and there are packages that make it easier to get started with this kind of work than you might think. I currently pay for a ChatGPT Plus subscription, and I'm curious to see if I can replace that usage with a model I run locally. I'd love to not be sending my queries to OpenAI, and I'd be happy to save the $20/month as well. Knowing how to run models locally also seems like a very good idea for maintaining employability in an increasingly volatile employment landscape. If running a model locally isn't effective for daily use at this point, I want to look at building my own interface using an API instead of just using the public chat interface.

I'll continue to write one-off posts that cover developments in the Python world, and topics that come up in my own work. I'll write some more posts that relate to financial literacy. Predatory practices are only getting stronger, so a good understanding of finance is pretty important for navigating the world today.

Mini ebooks

I've long thought of turning some of the series I've written into mini-ebooks. These would be standalone ebooks, which I can keep updated on an ongoing basis. They would be free to anyone with an annual subscription, or a monthly subscription that's been active for a few months. I'll probably focus on Django from first principles, Python Lists: A closer look, and OOP in Python.

Thank you for reading!

Thank you for reading Mostly Python on a regular basis! I learn a lot from writing all these posts, and I hope you do as well. :)