| Taking away
Too much config, too little code.
Feb

I’m not a complicated person.

Ok, that’s a lie, just look at my docker-compose.yaml. Actions speak louder than words, and I now have pages of them. I started innocently enough, with a development setup for my front and backend, then added a database and Redis and finally pgAdmin and a handful of other containers. The wiring started looking like the back of my parents entertainment center circa 1987.

Parents TV

The tooling for my hobby project has become a project unto itself. Now it’s moving to production and I find myself reluctantly adding mandatory monitoring containers, and then exporters for the existing services. Being a web app - what isn’t these days? - I added another container for maintaining certificates and nginx.

I am questioning my existence as I rebuild and restart the containers for the umpteenth time, praying the magic yaml incantations I’ve pasted into the configuration files work. The Docker logo had become a symbol of oppression, a goliath of nature yoked under the weight of a thousand containers, struggling to stay afloat, to breath.

Parents TV
Logo property of Docker

I brought this upon myself you’ll say, and in part that’s true, but the funnel of tech progress tends towards the exacerbation of complexity and the subsequent sweeping of it under the rug. Of course, with all that we get a handful of new toys to keep us busy, and much of the time I’m reluctantly thankful for them. They’re the second piece of cake I don’t need, and never asked for, but eat anyways.

Parents TV

I’m not a puritan when it comes to software development, and I’ll take the expedient approach when it comes to solving a problem, as long as no one is looking. About half the time I go back and fix the shortcut I took. Tech debt people will scream, and they’re not wrong, but it’s the reality of things that most of what is built is atop a steadily growing house of cards.

But this has been discussed before, many, many times. It was even discussed well before you heard an uncle or a greybeard point you towards the KISS principle [https://en.wikipedia.org/wiki/KISS_principle]. We can even go back to 2200 BC, to the story of hermit Hsu Yu.

Traveling through the forest along a path next to a stream, a wood collector came across the hermit Hsu Yu kneeling by the river using his hands to drink. He felt pity for the hermit and gave him a wooden ladle* to drink from. After the woodworker went on his way, Hsu Yu used the ladle and took another drink from the stream, but when he made to go he could find no place to carry the ladle and leave his hands free, and so he left it hanging from the branch of a nearby tree.

Xu You (Hsu Yu). *Originally it was a calabash, a type of gourd, that had been dried and hollowed out.

The phrase comes from Li Pai’s poem To the Former King of Wu and recalls the story of the impoverished hermit Hsu Yu, who was given a calabash to use for drinking water. He took one drink with it and left it behind, preferring not to be burdened by such a possession.

On the surface this appears to be minimalism, but I think minimalism is more intentioned. It’s people on YouTube proudly showing off their 5 square meter apartment, single lamp and the pair of jeans they’ve been wearing for the past year. I don’t think this is that.

I think this is about discarding things that are getting in the way of doing what you want. With Docker, I started adding these containers because this is what I’d done on a previous project, and when I encountered a problem I patched it with another container.

The habit of adding more to fix a problem is built into most of us. It’s what governments and companies and schools do. In the face of change or pending problems they add instead of take away. They add a new law to the books, or a committee to make an assessment or a curriculum to cover new material. But they rarely take things away, instead becoming a Katamari of an institution.

None of this is new, but it’s something I like to remind myself. Before looking for what is needed, is there anything I can first take away?