Harasym’s Law

Dissent regarding complex or opaque systems will be refuted with the argument that the alternative is bash scripts. #


In arguments against Kubernetes:

Docker and Kubernetes have a high price as they add a lot of complexity and make debugging harder.

“Kubernetes is too complex - let me just string together 2/3rds of what it does with a few thousand lines of bash…”

In arguments for and rebuttals against SystemD:

As a programmer, I now don’t need to care about dropping privileges, managing logging, daemonization (the moment I need to do the double-fork dance again, chairs will be flying, I swear), dropping into a chroot, and do half-arsed guesses "is it up and running yet?” from a convoluted mess of shell code that looks like a bunch of hair stuck down a drain for a month.

Debian, Ubuntu, Arch all chose the systemd voluntarily. This is because [bash] sucks

I’ve taken systemd for granted [..] [Why do people hate it]?

"there were different expectations what a "simple init system” is. One party thought, that a simple init system is a system that gets a config-file for a init job and handles it, i.e., the usage of the init system is simple. Another party thought, that a simple init system is an init system that is easy to understand, i.e., just write shell scripts for everything and everyone can read and understand those.“

Impetus for writing this down is that throughout discussions where people (including me) have expressed worry about opaque or complicated systems people are very quick to respond, often aggressively, that Bash is not superior; even when bash has not been praised or mentioned, it is considered the default opposite of any opaque, largely interconnected or complex system.

This reframes the entire discussion into deriding and defending bash instead of arguing reasons for why things should be complex, interconnected or opaque what that means for the future of the industry and if it could be harmful to future efforts to fix issues we may encounter with our systems.

This also leads to very dull discussions; since bash is not the subject, and bash is not the antithesis of complex, interconnected or opaque.


Now read this

Elasticsearch Notes

Elasticsearch is 2 components. Elasticsearch: clustering engine and REST API Lucene: Search backend. (indexes are always raw lucene) You need to understand how both work; Lucene: # Index Merges # This video displays how index merges... Continue →