site banner

Friday Fun Thread for December 8, 2023

Be advised: this thread is not for serious in-depth discussion of weighty topics (we have a link for that), this thread is not for anything Culture War related. This thread is for Fun. You got jokes? Share 'em. You got silly questions? Ask 'em.

2
Jump in the discussion.

No email address required.

Too many useless fucking things to remember

My cars media system has the usual next, previous, pause and play buttons for audio. One annoying quirk is that when the track reaches the end of the Spotify playlist, I need to press the "next" button to play the next (first) song in the playlist. And this annoys me much more than it should. I shouldn't have to devote precious brain space for this specific fact of the universe. Why is my media system the only piece of shit in the world that has this unique quirk.

And this specific thing stood out to me because I'm a programmer. I use more than a handful of developer tools daily. Datadog, Sentry, New Relic, Grafana, BI tools, Google analytics, Github, vscode, FUCK OFF. If I want search for something I also need to learn about the quirks of how to search on that platform. Yes plaintext search works, but regex and wildcard is what actually makes search any good. So some of these platforms support regex, some use common sense wildcards, some have their own wildcards, etc. And you need to devote some cache in your brain to remember all these so you don't fumble your first attempt by trying to use the wrong feature in the wrong tool. WHY? Why can't we have a universal text search syntax?

It's not that I lack the real estate for all this useless shit. It's the opportunity cost. Here's an example of what I don't think is useless.

The fact that text embeddings exist at all, and that they have the semantics embedded in them as a list of numbers, and given that you can do vector operations on them, is extremely useful knowledge. I recently used text embeddings to solve a problem that was just given up on after many attempts by engineers in my company before me. And this solution is better and orders of magnitude cheaper.

I want to store more information about things like text embeddings as opposed to which search syntax works on sentry and doesn't work on datadog or the fact that I have to press next on car A's media player and not on car B's.

But it seems to me so much of being a (junior) engineer is accumulating the first kind of knowledge. And so many confuse it for the useful second kind of knowledge. I wish we spent more time minimizing the amount of the first kind of knowledge required to operate in the world (of tech?).

Yes, if we can totally simplify, or standardize or even better get rid of the need for the first kind of knowledge, many people would have to give up their "artisan" or "craftsman" or "engineer" badges. But.. who cares? To quote one of the best engineers of all time;

"Software is a just a tool to help accomplish something for people - many programmers never understood that. Keep your eyes on the delivered value, and don't over focus on the specifics of the tools" - John Carmack.

It just seems stupid that I remember several hundred builtin function names for each of ten different programming languages that do mostly, but not quite, the same thing. push, add, append, insert, push_back. what's the difference between unwrap_or vs unwrap_or_else? It isn't really a problem, because I can comfortably remember them, but you're right about the hidden opportunity cost. There's no obvious better alternative, they all evolved independently and often really do have to many different things, but still.

The things I really despise are domain-specific languages where you have to remember an entire new set of 250 terms and relationships. Why should anyone have ever learned the specifics of elisp or vimscript, or even lua?