Support Proposal 303 on PeakD
Vote for Brianoflondon's Witness KeyChain or HiveSigner
This is a value for value post: see the explanation in the footer.
This is more a little rant about Developing that I just wanted to get off my chest. If you're not a developer, you might enjoy this story. It's kinda like a who-done-it but I'm going to start by telling you the ending (I don't want to stress you).
Typo in December
On 24th December 2023 sometime before 22:07 while working on a Python package I built to support @v4vapp called v4vapp-binance
I probably typed the following into my terminal:
poetry install install
I should have typed:
poetry install
And that had no measurable effect on my code at that time or for months.
It just sat there, lurking, like an unexploded bomb in my work.
Sometime in July
A few weeks ago one of the main parts of my system (the API which @v4vapp calls to do almost everything it does) stopped working: I was suddenly unable to "build" the Docker Containers which run my code.
This was insane. I changed something minor in my code, sent the new code to Github where an automatic process is supposed to build the Dockerfile and instead of succeeding it failed. And I get a screen looking like this:
But WHY???
Exactly the same build process had worked a couple of weeks earlier and when I tried to rebuild exactly the same code which had worked before, failure.
I spent days plugging that code into every AI system I have access to, I tried changing everything, I thought it related to bits of Bitcoin Nostr code, nothing worked.
I was pulling my hair out. My code was running fine, the version which was on the servers was not going to break, but I couldn't make even the most minor of changes.
You can't beat having a friend
I actually took a break for a week or two. I just couldn't face sitting at my computer and it was the start of the kid's summer holidays here so I just hoped that I wouldn't need to make any urgent changes and left it alone for a bit.
When eventually something did happen which actually meant I really did need to make a change, I had to get back to it.
And I was still stuck.
In near desperation I sent a message to the friend who had helped with (basically taken over) the creation of the core software which runs @podping, @alecksgates. I didn't really expect him to solve my problem, but I just vented about Python package management using a tool called Poetry (which I learned from him).
I sent him a few dumps of error code hell (kinda like the way I had dumped that stuff on Grok or CoPilot) and that led to him saying this:
Somewhere in the middle of all this stuff I'd sent him he saw the word "install" more often than it should have been!
Over to Binance
That led me to seeing that the problem was in the project v4vapp-binance
which I was using in this other project. It was here that I looked back in time using Git's "Blame" facility... like who do you BLAME for this cock up and eventually I found this fatal line added to my package dependencies. Dependencies are the parts of other people's projects which I use in my work and which I fetch when I build the project in a Docker container.
install = "^1.3.5"
That line magically appeared in my pyproject.toml
file on December 23rd.
Now that would have continued to work but at some point this Python Package changed its name. It's hard to believe that there ever was something called install
as a package name but there must have been.
As soon as the package owner changed the name, my code started breaking and because that word is so ubiquitous, it was nearly impossible for me to see what was breaking.
The Fix was EASY
All I had to do was go into the v4vapp-binance
project and type poetry remove install
, rebuild that and upload it (changing the version number) and suddenly all the other code I had which was depending on it, worked again.
Hope you enjoyed that
It's a crazy ride doing dev work.
Value for Value
For the last few months while building @v4vapp I was generously supported by the DHF. Going forward I have a much more modest support which covers direct server costs and a little of my time.
If you appreciate the work I do on and around Hive, you can express this directly: upvoting posts on Hive is great. Also consider a direct donation (there's a Tip button on Hive or a Lightning Address) on all my posts.
Support Proposal 303 on PeakD
Support Proposal 303 with Hivesigner
Support Proposal 303 on Ecency
Vote for Brianoflondon's Witness KeyChain or HiveSigner