Really hard

I'm not sure if this entry should go in one of my other
two phlogs, to be honest.  It is about my job in embedded,
but also about tech, but also about how I feel right now.
Let's say it is more about
how I feel.

It is now a few weeks that I'm battling against this
windmill.

It all started with a problem of transitive dependencies,
that I encountered while carrying on my task.  It
degenerated quickly into a huge and hairy beast, to the
point I first had to find a quick work-around (so I could
complete my task), and then I convinced the management to
give me some time to fix it.

For some reason I'm ALWAYS gravitating towards battling
the huge and hairy beast of dependency management: it just
seems my fate.  But I don't believe in fate.  The reality
is, I'm probably one of the those who give a damn about it,
while most developers (to my experience) just don't.

I just decided to jot a few lines on this topic, as soon as
I realised that there's a similarity between build system
correctness and computer security.

A system can be perfectly usable, but horribly insecure.
It is actually often the case that improving the security
is detrimental to usability.  Build systems are similar
in that they can work, but be horribly wrong.

I often see big projects, composed of multiple components,
in which people are happy as soon as the compilation works.
Yet it might work "by accident".  For a very good example,
consider the case where the headers of a certain library
are available to the compilation of a binary, not because
the library is properly configured as dependency, but just
because the headers happen to exist in the right place.
I've seen this countless times now.

This is my special flavour of hell.