Hello world
I really wanted my hello world in this blog to be something cool or at least interesting. I had good hopes that a DNS propagation issue I had while setuping this very domain would make for a pretty interesting case study, or at least I would learn some interesting things about DNS. I always found interesting how the internet even works and this was a perfect opportunity for me to delve into it thanks to a concrete issue I was having.
The end result is a very short uninsteresting technical rant and a longer more interesting philosophical one:
I had a propagation issue when I tried un-delegating my domain name from a third party provider that does DNSSEC well. When I setup my record at my registrar website, there were issues with the creation of the record.
Let’s see if you can see whats wrong with this A record:
Host | Type | Value | TTL | Priority |
---|---|---|---|---|
moncef.ca | A | 192.x.x.x | 3600 | 0 |
After much time trying stuff out, involving other people (merci encore), trying to go back to basics, reading RFC’s… I finally found the issue.
Turns out, I had been following the docs of my hosting provider that told me that the “Host” configuration should be moncef.ca, but the issue was that Host should have been ‘@’ instead.
The tech part of this is finito, you can stop reading if thats the only thing you cared about.
God put us on a hamster wheel
This type of error is all too common in the software world and the natural reaction to it is to shout RTFM. But is that all there is to it? Moreover, this kerfuffle sobered me up to the fact that my first article won’t be as flashy as I had hoped. And its within the domain of this frustration that I have a few thoughts to share.
Abstraction 101 tells us that we never truly understand everything we use and/or what every part of a system does. We can only understand a small part of it and hope the rest of the system is well designed and that we can trust it to do what it is supposed to do. We approximate models about what actually happens (we don’t have to solve for quantum physics when Newtonian physics is good enough heuristics), and we use these models to build other models.
Almost by virtue of the fact that developers rely on abstraction, they are bound to make approximation mistakes which generates frustration.
When a developer makes a mistake, they are bound to feel frustrated. This is because they are bound to feel that they wasted time on something that was ultimately meaningless.
Of course, this is generalized to any human being and life itself. Building and crafting things is ultimately pointless. The heat death of the universe is seemingly inevitable and we will disappear at some point so why even bother amirite?
Am I sisyphus now?
Sisyphus was a king that was punished by the gods to roll a boulder up a hill, only to have it roll back down when he reaches the top. He was doomed to repeat this for eternity.
The story of Sisyphus is a good analogy for whats happening here: We are doomed to face mistakes that garner frustrations that we percieve as being meaningless after the fact, i.e. “the it was simple all along but I lost so much time on this” syndrome. À la “I could have done this in 5 minutes but it took me 5 hours”.
When we bear the burden of becoming a developer, we equip ourselves with a permanent frustration generation machine. In some way, it is as if we choose to add extra weight to the already too big boulder of life.
However, I think that this is a good thing.
I got that much stronger carrying it. I learned that much more from something I could have resolved in a second had I known the shortcut.
The struggle makes it meaningful, the extra weight makes it extra meaningful. We do an extra dab on the hottest sauce because we are drawn to the struggle, to doing, to creating.
We are like Guts, we choose to carry the burden of the struggle because we know that it is the only way to make it meaningful. And like an anime protagonist, we can’t help but feel that the struggle is worth it because of what we end up creating along the way.
Guts talking about a PHP developer