`# TODO: finish todo list`

# TODO: finish todo list

This is a difficult post to write, largely because of the self-critique involved. Which is part of why I've been putting it off. For months, if I'm honest with myself.

But putting it off has only made it harder to write. I also seem to have reached a point where it psychologically feels impossible to publish anything else here first. So, I'm finally forcing myself to write it now - during the holiday season, to prove to myself that I can.

It's no secret that the history of this blog so far has been dominantly one of false starts. Please allow me a moment to explain how that came to be.

Meta

Hits since January 1, 2025 (powered by hits.sh)

Changelog

December 21, 2024: replaced a not-publicly-visible link.

January 1, 2025: rearranged to have this Meta section with a new and improved hit counter setup, and adjusted some other Markdown; added a hit counter (going forward, most if not all posts will use this setup).

Past

I can still recall a morning near the end of this June where I woke up at some ungodly hour, with this strange sense of determination to... clean up my computer desktop. And in the process, I happened to notice a file sitting there, named TODO.txt.

"It's empty, isn't it," I thought.

A statement, not a question.

I checked. It was indeed empty.

Of course, my original intent was clear. Despite all the time that I'd spent vaguely thinking about things I wanted to get done, mentally categorizing them, despairing over my repeated failure to engage with them - and of course not actually doing them - I simply had never gotten around to writing them down.

Perhaps I should have put something in that file right away. Anything. Even just "write something here".

I don't really know why I didn't.

"How long ago was this?"

I checked the file creation date. As I recall, it was somewhere near the end of March 2023, around the time of my first two attempts to write anything here beyond the initial welcome message. Which, of course, were promptly followed by another hiatus of over a year.

In 2022, I had made a New Years' resolution to write and commit some code every day. I did a bunch of brainstorming and made several little toy projects. Some of them still seem like they contain good ideas, and I might follow up on them some day - or at least treat them as prototypes.

I didn't end up with a perfect record through January and February, but I was doing a pretty good job. I felt like I was building momentum, and looked up how to start a blog on GitHub, and set up the one you're reading now.

"No problem. Now that I have this daily coding habit established, surely I can keep it going and also make a few blog posts each month. Surely."

But then, somehow, I promptly dropped everything, seemingly fell into depression, got sick, and basically did nothing of note until May (when I participated in a local game jam with a friend of mine). And after that, precious little that would merit writing about here.

As already mentioned, a year later I tried again. I had recently joined the official Python discussion forum using Discourse forum software (hereafter "the Discourse", because that amuses me) to follow up on a major effort on Stack Overflow (now also available on Codidact). That reminded me that I had a blog, and I figured I would be well served by getting back to it - and perhaps also to personal projects.

But it also led to a distracting daily grind of following the Discourse - mainly posting to help beginners with random problems, but also getting into some very interesting discussions about Python packaging.

In May (i.e., about another year after that), I made yet another attempt - this time writing more personally. And I really felt ready to get back into a regular schedule.

And then, of course, I didn't. Although I got much closer this time.

Nearly two months after that post, as I stared at TODO.txt on my desktop, all those memories flooded back to me - and I felt inspired yet again. July of 2024 represented yet another chance at a fresh start.

"But I can give myself a few days to enjoy the summer first."

Only "a few days" later, I found myself wrapped up in that PSF brouhaha that led to my ban from the Discourse (and eventually to Tim Peters' suspension from core development - about which he has also written extensively).

When I got banned, I wrote up an initial draft for my first post promptly - the next day, July 20 - but decided to let cooler heads prevail. The draft was about 4000 words that flowed effortlessly, which I eventually cut down to 3000 words (with much more effort and quite a bit of rewriting and reorganization). I really didn't want the end of the month to pass without saying anything, so on July 31 I pushed myself to get it all hammered out. Mr. Peters' suspension (which didn't really surprise me) happened shortly after, so I collected some notes and made one more post.

"But I really should write about something that isn't the PSF next, lest I create the impression of only having a blog to complain about the PSF."

Of course, there was plenty I could have written about in the interim.

Such as the Python 3.13 release, or the Pip 24.3 release. Or, for that matter, the current topic.

I just... didn't.

At least I haven't been idle the last few months. The time that I would have spent helping people on the Discourse is now largely taken up on HN and the Linux Mint forums - and a lot of my comments in both places have been about technical Python-related material (that I'll surely write about here eventually).

I even started drafting some more blog posts - I just didn't finish any of them.

Future

I've come to realize that, for non-recreational purposes, posting on forums really isn't an efficient use of my time (and neither was most of what I was writing on the Discourse). My recent forum posts show me that I really do enjoy writing about these topics (as well as others that I'd prefer to skip here) - but helping someone troubleshoot a problem on a forum generally only helps that person. Even if I write, say, a guide or a tutorial or other useful information that helps people understand Python packaging, it's only useful if people who need that information can find it.

With a blog, I can at least refer people to past articles instead of rewriting explanations. And with luck, eventually other people will start linking them, too. For reasons I'll have to cover separately, I no longer write questions or answers on Stack Overflow - although I do edit content there. I've also written questions and answers on Codidact - and I hope to get back into that in the new year.

But for now, I'm focusing on the blog, and on the code projects I currently find most important: a replacement for Pip and Pipx which I'm calling PAPER (still in planning), and a build backend for Python packages called bbbb. (In its current state, bbbb is... technically usable, but perhaps only by me. Please don't mind the broken link in README.md. During my various attempts to get back into coding in the last few months, I set up some new-project tooling with a template that doesn't quite suit my current workflow. At least not until I get up to speed with RTD, anyway.)

My next post will be a more detailed list of programming projects I'm either planning, working on, or have worked on in the past. Not everything (that would stretch beyond and before my GitHub history - although I do have archives of at least some of the code I wrote as a child), but the things that currently seem relevant.

My plan is for that to appear next week, along with several more posts. My plan is to get back to simply "doing something" every day, because daily habits seem easier to form. But I'm adopting a bit more structure this time:

  • Every Saturday and Sunday, I intend to either write some code, or do something that helps improve the blog (draft future content, brainstorm or organize article ideas, polish up theming or miscellaneous content, etc.).

  • Every weekday, I intend to either publish a blog article or (starting next year) a self-answered Q&A on Codidact covering some important topic (links to which will also be collected here).

These are expected minimums I'm setting for myself. I won't hold myself back from coding on a blog day or vice-versa if I feel up to it. But neither will I allow myself to take a failure as an excuse to abandon the project.

You don't have to believe I'll follow through with this, but I hope you'll see that I do. I figure I have an awfully long backlog, so I imagine that I can find enough material to write like this for quite some time.

And now that I have it written down, I can tell myself "for real, this time".


Comments