Relationships for Programmers special emphasis on debugging Intro: exactly what the title says, no kidding. See, I'm a programmer, I have a relationship (married, with a sweet little one year old daughter), and have lots of experience debugging...and believe me, assembly language network code is easier to work with than humans. But, humans are surprisingly robust, and have an amazing number of possible types of interactions & responses. This is what makes humans sometimes much more fascinating than current models of computers available. And of course there is the physical thing. Which may be why you want to bother, even if you don't find human protocols satisfying to work with. Whatever your motivation, once you really get into it, and find some useful ways of thinking about it, you may find humans (even the opposite sex) a really neat, deeply interesting type of animal. If you already really enjoy interacting with humans and are not particularly frustrated with them, then this document might give you a laugh and even a few insights. Plus you can share your cool ideas and add sections if you want. If you're not a programmer, this document will probably be greek, or at least geek, to you. But if you are in a relationship with a programmer, it may be fun to read it together with your partner. section 0: terminology section 1: models, assumptions & case studies section 2: Debugging: identifying, prioritizing section 3: Fixing & writing new code section 4: protocols & progress section 5: where to go from here? 0: Terminology "humans" is used to refer to people in general, you know, homo sapiens "your partner" for the other person in a 1-on-1 relationship. Generally the assumption is a semi-permanent/long-term relationship with a person of the opposite sex. Some things may be applicable to other kinds of 1-on-1 interaction, ie, with your boss, customers, co-workers etc; those are kind of simplified special cases. We discuss the long-term "romantic" type partner because in some ways it is the most general, difficult and interesting type of relationship and also it is desired by many people. Note, some special, non-romantic cases are not simple, and actually may need special treatment in a future version. For example, "your mother" and "your father" as the other partner. But that is beyond the current scope of this document. "you" for the reader 1: Models First off, you have to realize that humans do not operate under strict protocols and do not even behave in predictable way using any formula or set of rules you can write down. (At least, not one that anyone has ever written down, to my knowledge.) So, the main thing required of any operating model is that it be extremely robust to all kinds of inputs. 2: Debugging The first thing about debugging is you can only debug your own program. You can't debug your partner's, first of all because you probably have no idea how their program is written or structured, and second of all because they won't accept your fixes anyway. --------------------------------------------------------------------------------- # rough notes case a: very similar interests case b: different backgrounds and approaches: potential problems - different styles of listening, disagreement resolution - loneliness: cannot share some items central to self advantages - learn more; understand & relate to world better - maintain independent interests & individual goals - drive to create may be strengthened just because cannot share all with partner basic dogmas of human psyche - listening/being listened to - expressing feelings tends to relieve them "speaking the truth" or one's own truth at that moment however, some 'truths' or at least temporary ones are negative, and should not be expressed to the partner. what to do with them? Not sure, perhaps 3rd party would be useful, but there are complications there. This is an area for further work, suggestions welcome. Key: expressing a feeling once is informative many times may be coercive main difference - expressing it to help self, or to expect change as a result? If 2nd, then only once treat partner as loved city; some parts not as wished for, but we don't expect city to change simply on small request sometimes may hope for improvement, but not feed depressed in the meantime. responsible for own feelings, must avoid anger. negative feelings will happen, deal with honestly without trying to use them as a club on your partner, better to stay silent after expressed once, or perhaps express 'non-violently' to help self; find other resources for yourself and enjoy the good things about the 'landscape' can only design yourself if partner does not wish to change in response to your need, not because of maliciousness but because of his/her own imperatives, should not have to - if do request a change of other 'unknown program' make as concrete as possible. state own feelings in general terms, don't make general assumptions of partner --------------------------------------------------------------- oscillation, like music; when in negative state, try to affect 2nd derivative. Often adding distance gently works to this effect If in positive state with neg 2nd derivative, can sometimes stabilize/remain positive by introducing gentle oscillations of distance or humor. Avoid sharp edges, however (occasional spikes of passion are ok, may need help on the downside) --------------------------------------------------------------- Written in gvim, the coolest editor alive. This document is GNU licensed, please send suggestions & modifications to gvelezAT webglimpse.net. And keep my attribution here: Golda Velez maintainer of Webglimpse cooperative development experiment (non-GNU) see http://webglimpse.org & http://webglimpse.net