Wednesday, January 24, 2007

Sibling Cryptography

Brothers and sisters are good for a number of things whilst growing up (I had 4 of them). One role they fill particularly well is that of "someone to keep secrets from."

I'd say up until about age 14 or 15, the average American youth doesn't have any secrets worth keeping. The whole point of the magical "dear diary" is to pour out the superficial embarrassments and heartaches of adolescence, oblivious to the utterly transcendental nature of the competing pressures and fear of failure, and the difficulty of attempting to reconcile the need to affirm an identity distinct from others yet compatible with the limited society of one's exposure. The incompatible drives summed up well as "You can't understand how I feel!" and "Isn't there anyone who understands me?" Hormones don't help a whole lot.

Before tipping over into the juvenile portion of adolescence, however, the "tweens" and younger, life is a much simpler power struggle within the sibling pecking order. I can easily recall the formidable vehemence with which secrets were guarded, and the deviousness with which they were created solely for that purpose. I cannot bring to mind, however, the contents of those secrets. I'm sure they were naively inflammatory, along the lines of "so-and-so is mean" or "smells", or otherwise possesses objectionable qualities or exhibits diminutive aptitudes. These pithy epithets would then be lovingly translated into an immature cypher and safeguarded after some grand parade or announcement of their existence was put on.

The only reason the pseudo-clandestine article held any draw for the target subjects is well illustrated by a quote from The Simpson's:

Lisa: Dad, this isn't about glue. It's about territoriality.
He only wants the glue because I'm using it.
Bart: Oh yeah? Prove it.
Lisa: [hands him the glue] Here.
Bart: Hey man, I don't want your stupid glue.
Bart tosses the glue away
-- Bart vs. Thanksgiving (7F07)

Assertion of control over the artificial restriction reaffirms one's importance and viability in the competition for... whatever it is we were competing for.

The method of obscuring the text was invariably a form of substitution of letters for other letters, numbers, or symbols in a one-to-one relationship. Elaborate maps of the enigmatic keys would be refined and hidden, and the correspondingly enciphered material could then be allowed to fall into enemy hands in the knowledge that the sibling(s) would encounter prolonged frustration in attempting to comprehend the contents, and if eventually successfully would only be annoyed at the revelation.

The most amusing one I ever encountered was concocted by my sisters: the holy grail, the impenetrable Double Cypher. This involved substituting the letter for a number - and then that number for another number. The mathematical relationship of A = B = C being identical to A = C not only escaped attention, it resisted enlightenment when confronted.

With enough practice at the game and adequate source material, any simple substitution puzzle can be solved (forming the basis for the Sherlock Holmes' novella The Adventure of the Dancing Men) on its own. Once my brother and I entered determinedly into this altitude of the arms race it was time to move on to new forms of subterfuge.

Later, my older sister sought to confound the process further by introducing phonetic constructs. But by then it was outside of this petty rivalry and instead used to foster the darker side of Borderline Personality Disorder, allowing a descent into paranoid dysphoria in the loudest silent way possible - writing on walls of her room and all over notebooks in an intentional display of manipulative privacy: you weren't supposed to know what she was thinking, but you were supposed to know that she was thinking and it was bothering her (thus allowing for a projection of her emotional caretaking needs onto others without their explicit consent or even involvement, and without the insight required to fulfill the heinous responsibility). Heaven help he who dared trod on the meanings of said script, too.

I eventually inherited the room for an office (having moved into my Father's house by then) after she moved out and on with her life, and I took the time to decipher the scrawl before returning the walls to neutral colors. The thoughts were angry and hurtful, frequently dictating the dire consequences to issues outside of her control were they to resolve in a light unfavorable to herself (things that would "happen" or that she would do if she were not allowed to X, for example). Things that no one should have to suffer alone, real or imagined.

Not that there's much point to my anecdotal ramblings - childhood was carefree even in most of its assaults, people should care about and help one another, and it's pretty pointless to hide those things which give us cause and identity (as by doing so the possibility of caring connection is mitigated).

Today I suppose I've carried that into a general philosophy: aside from necessarily hiding the financially sensitive and authoritatively identifying bits and numbers assigned to me as a modern citizen, there's nothing in my life I choose to hide away from the world. Though some of this is probably the cynicism that the world wouldn't care to do anything about those things I so freely share anyway, being unimportant and uninteresting on any grand scale. Randomly useful perhaps, but not actually interesting.

Thursday, January 04, 2007

Full Brain Programming

A Geek's Take on Multi-Hemispheric Neurology and Software Development

The Brain

The human brain is separated into two distinct hemispheres, split down the middle front-to-back. Anyone familiar with basic biology will have seen this on cross section diagrams, as well as the generalized labels of specialization for the two halves. While it's true that the functions of higher consciousness within the neocortical regions of the respective hemispheres differ, it's also important to note the operative similarities and redundancy in the design as well.

Each half is equally paired to sensory stimuli as provided by taste, smell, sight, touch, and sound, as well as input from the limbic and primitive sub-areas of the brain which process and filter reactions to those stimuli before insertion into consciousness. The redundancy is not perfect, however, in that the signals received are those generated by a fixed half of the body directly wired into the respective hemisphere. The simultaneity of the combined experiences prevent this from being a disorienting experience however (since anything we hear with one ear is generally heard with both, for example) and is reassembled into a single contiguous phenomenon, leveraging hemispheric disparities to be able to proved depth perception and rudimentary echolocation, etc.

The real divergence comes when one reaches the frontal lobes. These portions are responsible for housing operations dealing with conscious thought and complex reasoning, doing so with a high degree of specialization. The right tends more toward the spatial, intuitive, abstract, emotional and creative tasks, while the left provides language, critical and logical thought, and temporal referentiality (chronological awareness). These are not separations of "personalities" inherently conflicted with one another, nor a contest of dominance within which there is any "proper" way to think or behave. Personality is a construct expressed across both sets of functions, and what matters to the personality matters equally within them, in their own ways.

Hemispheric (Un)Cooperation

But they don't communicate very well with each other. Which is not to say that there is an inhibition or implicit miscommunication which will confound information as it crosses between the the two. There is also, to borrow hardware design terminology, no latency or bandwidth restrictions on the communications bus. This bus takes the form of the corpus callosum, a dense bundle of nervous (meaning "of nerves," not "anxious or excitable") fibers whose only duty is to provide a channel by which information and data may be exchanged.

The difficulty in exchanging that data is based on differing APIs: the right hemisphere has no mechanism to appreciate the number 5, although it can be familiar with the shape and sound of it, and spatial groupings which miraculously come to the same total when counted. Similarly, the left hemisphere cannot comprehend the color yellow other than as a word (non-pictorially), wavelength of light, or hexadecimal RGB representation (my favorite tends a little more toward the golden variety with a touch more red/less green, an #FFED00). How then is it possible for a word to evoke spacial concepts, or for creative concepts to be placed within the logical structures required by software development?

It's interesting to note here that complex structures are almost always based on abstract spatial relationships rather than strict logic, and it is the rigidity of rules in the medium in which they are represented which forces them to appear complex. Most accountants are left-handed, showing a clear preference for the abstract processing capabilities of the right hemisphere - meaning they're also cut from the more emotional and creative fabric of society, directly opposite of the bean-counter exactitude embodied by the more simple and stereotypical book-keep the word "accountant" usually invokes. Real rules of accounting are difficult for us right-hander folk to grasp at a glance because we make the mistake of attempting to process them solely in within the logical realm of the left hemisphere, rather than correctly mapping them into their true spatial connotations on the right.

How does one establish this ability to do that translation if the two halves don't speak the same neurological language?

Memory & Concurrency

The first way is through the parallelism of experience, mentioned briefly earlier, and then through concurrency of processing.

Memory is stored across the entire brain as coordinated by the hippocampus (found in the limbic system atop the brain stem). Even though there are very different types of memory we'll treat them under the generic class name here just to be easier on the science. An event/experience or concept is stored in the brain the same way it is initially represented, as a series of impulses in a variety of locations. The memory is committed to long term storage as this impulse pattern is reinforced by branching of the synapses, which is literal physical growth and extrusion on the dendrites of neurons. The formation or reinforcement of the connections created by this growth make it more probable that subsequent stimulation in similar areas will reproduce a similar pattern or portion thereof, like the path-of-least-resistance in any electrical circuit. Trigger cells, regular neurons which just happen to fill this particular role during the memory formation, are then specifically assigned to be the gateway to the reproduction of the pattern in its entirety. The number and strength of the connections to the trigger help determine the likelihood and ease with which it can be remembered. Thus all habit and practice in the brain changes its shape, and does consume massive amounts of resources from the bloodstream; it's OK to be tired if all you've done all day is think really hard.

Since the experience takes place in both hemispheres simultaneously, there is a temporal coordination: a time-index which can be used to reproduce coinciding patterns. Returning to the example of color, a child knows what ____ is long before it knows what "yellow" is. Putting the two together is a matter of hearing the word at the same time the color is physically present, in enough different contexts (different objects of the same color, different textures and materials, smells, etc.) that the color stands out as the sole common right-brain event which overlaps with all of the times the funny-looking big person has been making the same new sound with their face. Once this gels and is well practiced, remembering and interacting with the stored fact in a variety of partial contexts becomes easier because the whole pattern is subconsciously reiterated. Largely through the acquisition of language, the process of learning simultaneously with both halves of the brain becomes a simple habit.

Once enough patterns are stored in this fashion, dwelling on their recall while exploring new territory creates the opportunities for the synthesis of new associations based on the discoveries of either hemisphere, still effective across the whole because they've coincided temporally once again.

The Full Brain

How then to use this to the advantage of a software developer or any discipline requiring interaction with highly-complex systems? Making the most of the specialization of both halves must be done by engaging each of them fully in the task at hand through the channels in which they are most apt.

For me, I'm barely able to function when I crack open a new API regardless of whether or not I'm already familiar with the language. The features and structures required by the unfamiliar interfaces have to be walked through, step by step, module by module until I can grasp them categorically and generically. Even then it takes a fair amount of practice within that framework before it becomes comfortable and intuitive, which it manages to do all at once with enough of the right kind of exposure: it just clicks. It is then that an analog for the logical structures has been created, and I can leverage the spatial navigational strengths of the right hemisphere to make my way around the program seemingly blindfolded.

The spatial mapping happens piece by piece, understanding the code as its general "physical shape" (patterns of line lengths or syntax highlighting), its relative position within its containing file (amount of code above vs. below), and more nebulously it's "flavor." This is an intentional synaesthetic translation of logic into kinds of phantom sensations: how the code makes me feel regarding its elegance and efficiency, the degree to which it needs to reach out to other modules vs. self-containment/sufficiency, etc. These become aspects of spatiality, but not something that can be drawn well or represented in three-dimensions because it is abstract enough to be not so constrained. The process may sound exotic, but happens largely unconsciously, and most developers do it to some degree or another.

Once a portion is in place, others then build off of it by using it as a point of reference, and soon the entirety of the application has a feel to it as well as a virtual expansive layout. The whole of this "abstractification" is like defining a subroutine - a simple function which stands in for a body of logic and can be comprehended simply by identifying the name of that function in the future. This allows for a higher-level overview, essentially zooming out on the granularity of the code all the way to an architectural flow diagram. It's the reason those things are ever drawn in the first place, and these methods of whole-brain analysis are the key for reverse engineering or developing the visual/logical relationships which result in a usable, maintainable product without overloading the mind. Which means, for you non programmers out there, we have some secret tricks we do to make all the gobbledygook into something meaningful; participation in this field is not an automatic indicator of intelligence or even aptitude (just take a look over at TheDailyWTF, which celebrates "Curious Perversions in Information Technology").

The conclusion? Try bringing the unconscious analysis to the foreground and more intentionally leverage the kinesthetic aptitudes. There are several ways of doing this and even artificially jump-starting it (diagramming with a non-dominant hand, for instance). Perhaps in a future article I'll explore exercises and tests designed around that, but for now this should be enough food for thought to expand your universe just a little more. And if not, it was a free read.