Coding for Pleasure
When I write articles for a human audience, I'm never sure if I'm connecting with the reader. I work to improve my writing and increase odds of making a connection. But every reader is running different wetware. Every one of them makes predictions and interpretations about the world in a way that is different from everyone else on the planet. Figuring this out is no small challenge and, point of fact, is what makes writing so very interesting.
Writing for computers - coding - is a lot more straightforward. What I write, computers do. For better or worse, they execute exactly what I instruct them to do. Any imperfections or incomplete instructions are readily exposed. Not always clear and often surprising, the feedback is nonetheless free from emotional obfuscation. At least as far as the machine is concerned. For the coder, it can be a very emotional ride.
This past week, since Q is out of state caring for a close friend, I've had a rare opportunity to stack multiple days together of focused attention on coding the software I need for Project Phoenix. This will be the first serious production code I've written in 15 years. And I've been enjoying the work. Which is a surprise. Why? The code I'm writing is in support of my interests and goals. Also, the maturity of the frameworks and libraries available today is wonderful. As rusty as I thought my coding chops might have become, they've come up to speed in remarkably short order.
I can still sense a burn-out threshold looming on the edge. If I'm not careful to stay close to my MVP road map, the risk is I'll be sucked once again into the cheerless vacuum that results when a coder becomes a slave to the software.
Something else I've enjoyed about my coding over the past several months is how the effort has informed my thinking about business operations, the untested value proposition I'm hallucination for my clients and customers, and what my smallest viable audience looks like. The platform I'm building feels more like a partnership than a project to complete and hand-off to someone else.
Today I expect to push alpha code to test and stage, then to production over the weekend. So far, I'm on track for a soft launch end of July and an official launch sometime early October. Time now to shift away from coding and focus on UI/UX design. For this, I'll be working with a designer who is, literally and figuratively, on the other side of the world from me. The alternative perspective is just what this project needs.
For the geeks among my readers, here are a few of the pleasant discoveries from the past week...
Django 4 - An impressive framework driven by my favorite programming language. I’ve been using Django for this and that since version 2 and each release since then has been a pleasure to work with.
PostgreSQL 12 - The last time I worked with PostgreSQL in production was version 9. pg_notify is going to save me a lot of grief.
systemd - I had a system service written in Python up and running in about 15 minutes. Ages ago I wrote a Windows NT service (Yes, NT!) in Python 2.4. It took several months to work out the issues with that project.
Jenkins - CI/CD that works