There are two problems in computer science:

1) Naming things
2) How do you get two objects that really shouldn't know about each other to share data?
3) Off-by-one errors

@caseyliss "signals and slots”. It’s the classic answer to maintaining encapsulation and/or appropriate levels when things need to communicate but with as loose a connection as possible. #Qt does a nice job of it (not applicable for you in this case), but it’s everywhere in every language. Everybody needs it. Everybody does it.
@YesJustWolf @caseyliss are signals and slots not instructions to do something with data, rather than jus accessing tthe data itself?
@grant_h @caseyliss Signals and slots are a more formal, managed, and anonymously targeted form of "callbacks". In their simplest use cases, they just communicate that some event happened, e.g., "we connected to the database", "the user saved", etc. As you go deeper, you might include data: the mouse coordinates and modifier keys when you are notified of a click. You decide, when you make a brand-new kind of signal, what you are telling the world and also what data they need along with that to be able to take the kinds of actions you think might care. The code actually doing the work (e.g., connecting to the database) always "emits" the signal. That's basically no work at all if no one is listening. As many clients as you have can connect to that signal (emitting that signal calls some destination "slot"). The database-opening code doesn't know anything about the slot-providing clients. The slot-providing clients don't know any of the internal details of the database-opening code. The idea that you can be notified ... that there **is** an available signal ... that's now a part of your public API.
@caseyliss spoken as one who has yet to be forced to add an LLM to their codebase.
@caseyliss Naming things has never been a problem for me.
Variables? Especify what kind and what is for (i.e. str_aux_functionName)
Servers? You can use mythology (i.e. Zeus, Tsukoyomi, Quetzalcoatl, Bemba), you have over a thousand names to choose from :D
@caseyliss You create a new, shared object that has the data they each need. Now you have a new problem.
@caseyliss
How did you not start this list with 0!?
@caseyliss Aren't those at the root of many of our problems in real life as well?

@caseyliss this is πŸ˜™πŸ‘Œ

I think you can take the rest of the day off.

@caseyliss I'm trying to figure out if cashing fits into number 2, because if so, this is one of my favorite sayings that I repeat at least once a month
@caseyliss This is analog to how to avoid corruption in the real world. So far no real solution has been found in either case.
@caseyliss πŸ‘ Is there room in your list for dealing with dates, time and timezones? 😞
@caseyliss I C what you did there