"The most exciting phrase to hear in science, the one that heralds new discoveries, is not 'Eureka!' (I've found it!), but "That's funny...". (Isaac Asimov)
Afterword to Vernor Vinge's novel, "True Names".
In the end, no user really cares about how a program works, but only about what it does--in the sense of the desired effects it has on things which the user cares about...Because the highest levels of our mind are goal-directed problem-solvers...No knowledge is of any use unless we have a use for it...the better you understand a mechanism, the easier to find new ways to adapt it to other purposes.
First published in 1980 and thus predating the Gibson work and other cyberpunkia, "True Names" focuses in part on the obsession online hacker communities have with keeping their real names--their true names--a secret. In fact, the plot hinges on it; hence the title. In Vinge?s world of hackers, for someone else to know your true name was to lose all, and to be at the mercy of those who knew your true name.
These parallels between functional (society of mind and pattern recognition), subjective descriptive (packing and mapping) and computational (hashing and object modelling) models of consciousness suggest that there may even be a neurological correlate to the mapping and packing strategies we have described.
We started with the observation that there are some programmers who are much better than most, and that they agree amongst themselves on who they are. They can talk amongst each other about programming, and although they often disagreed about value judgements, they often agreed on a great deal.
Of course, right from the beginning, we had trouble describing what we saw talking to great programmers, in `management speak'. We spent a long time arguing around in circles, trying to get a two-dimensional creature into the third dimension, by showing it a series of steps each smaller than the last. The whole notion was of course flawed, because no matter how thin one slices the step, it is still a three dimensional object, inaccessible to a two dimensional creature. But we didn't know that then.
At the same time, we were looking at the great programmers' mind-set from within, deconstructing our own mentation while working, and watching others. This made much better progress, and we identified the `Artisan Programmer' as a figure more like a craftsman of old than a modern production line worker very quickly.
We were also interested in the underlying cognitive neuropsychology of the programming act, but hardly got anywhere at all. We could not find much work tying subjective experience to its platform, and one of the areas we would have particularly liked to have looked at, gender differences in programming, seemed particularly sparsely covered. Neuropsychologists commented to us privately that cognitive gender differences are sometimes hard to research becuase of political `correctness' considerations in grant applications. However, in the absence of useful psychological reasearch, we did attempt to construct an operational definition of a subjective experience. This is what eventually produced the one bit program thought experiment, which demolished the external process view utterly, and left us to concentrate on subjective experience.
Between Spring 1992 and Autumn 1995 we spent our time talking to programmers, and discussing and contemplating what we had learned. We must have tried hundreds of ways of `telling the story', and every one of them died on the language barrier. However, we had discovered that the same few issues kept coming up over and over again, on site after site, and these issues had right answers. These have been included as Design Principles. We had also discovered that there were some ideas and stories that we had gathered from great programmers that had a very positive effect on the novices we told them to. This material has also been included in the Stone.
Then in autumn 1995, Frederick W Kantor's extraordinary work of physics, Information Mechanics provided a major inspiration. In it, Kantor throws away all crutches and attempts to build a consistent picture of physics purely out of information concepts. Perhaps the solution to our problem would be to throw out all the language we knew didn't work, and use the language we knew did work. Perhaps through this kind of ontological rigour, we could construct a self-consistent picture, even if it was divorced from `mainstream' reality, that we could at least see clearly.
Very quickly we focussed on the movement of consciousness, and saw the link to alchemy. Links to other mystical traditions followed quickly, and we tried using mystically inspired language to novices, and explained about the circulrity of hermetic journeys. We found we could improve the performance of programmers better than ever before, but we still couldn't explain why in mainstream language. By now we were calling the project `Deployed Conciousness'.
In summer 1997 we were pointed to ADD, and immediately recognised in the character profiles of ADD children, the great programmers we had been talking to. We could see what the kids were doing, but it seemed pretty obvious that the psychologists and other professionals dealing with them could not, or they would by teaching them real stuff like number theory insread of burning them out by prescribing amphetamines so that they sat down and performed mindless, packer school `work'. This was a great shock, but it gave us an important clue: there really must be some kind of cognitive blindness that meant that the psychologists were simply unable to understand the kids, and couldn't even realise that there was something going on that they couldn't understand.
This showed us why the language problem existed - amazing though it seemed, we had to conclude that our colleagues really were all in one of two (and only two) possible states, and we could describe the differences between them. We quickly wrote this up, assuming some kind of underlying black-box neurology, possibly involving a shift in processing strategy once some resource or other reached a critical level and made a strategy switch optimal, and distributed it to friends that had been talking with us about this subject from the beginning.
We received a lot of feedback, most positive, but one comment proved critical. We were asked if there might be any tie-in between this work and ME (aka CFIDS), the debilitating post-viral disorder that smashes the lives of so many active, creative people. Many mappers seem to know several people who had suffered from ME, and we made a list. Yes, they were all energetic thinking people, and not the brash, anti-intellectual yuppies that were characterised as getting `yuppie flu'. But further, they were all thinking people whose essentially gentle personalities led them to respond to acts of gross stupidity thrown with all the contempt a packer can muster with sadness, rather than say, anger or contempt. Poke a monkey with a stick for long enough and its hair will fall out. This is a physiological effect of sustained psychological cruelty. ME had appeared during a period when packer fundamentalism had broken out all over the developed world, leading to enormous amounts of stupidity and cruelty. ME might well be an effect. But why just the gentle ones? They were all highly active, being the sort that would retile the barn because it was sunny, or cycle across Canada to celebrate their recovery, although they were all daydreamers. Daydreaming couldn't be it anyway, because we are all daydreamers... and the penny dropped.
The difference between packers and mappers is that packers have been socially conditioned to suppress their natural faculty for building mental models by daydreaming, and fall back on rote learning procedural, action oriented responses instead. We could throw away the neurological black boxes, and just say `daydreaming' to make the bridge to mainstream language. Then the empirical work, as well as the understanding of the nature of the language problem, all fitted into place.
And that was the journey of exploration we ended up taking. When we started we didn't know what we would find, but we felt sure it would be worth it. For the first three and a half years we managed to help a few novices develop but didn't seem to acheive much else. We were gathering material and looking for patterns.
The overall work took nearly six years, but that is good going for a deep result. If we had never started we would not have reached the end of our journey, which we can now offer to you to read much more quickly than that!
The appreciation of error. A simple view of the world. High occurrence of ADD. Outsiders. Foolishness, a sense of humor that may appear to outsiders as odd or inappropriate. The need to explore the inner workings of everything, especially things mechanical or electronic. The ability to view the world as a primarily visual construct. n-space as a natural way of living. Paganism, and other peculiar, non-orthodox religions. Libertarianism, and other peculiar, non-orthodox political movements. Generalists, rather than specialists (although they may have strong specialist knowledge in certain areas). High spatial skills.
Single-minded. Non-conformist. Genetic component seems strong, and it is not something that can be learned or taught, especially not after the early, formative years. Child-like approach to life, and things. (See note above on ADD) Intense concentration skills, and yet may be quite easily distracted, under certain conditions.Especially if they are writing text instead of code, ok? Mischevious, push the limits. Ability to grasp the whole picture in a complicated system. Intelligence tends to be more mathematical, and less verbal. May be self taught, especially in areas that are of interest.
Enjoy solving logic puzzles. Disillusionment with the world. A process can't buy more processor time with money. A program won't stop running because it has a 'tude problem. I'm sure everyone here has taken apart watches, radios, locks, and everything we could get our hands on as children. In my mind, the first and foremost attribute is unflinching logic. A good programmer can translate from human objectives to machine tasks to accomplish said objectives, whereas a great programmer thinks entirely in terms of machine objectives and requires no such translation.
The appreciation of error. (Most folks only want to get past an error so they can forget about it. Folks like us tend to enjoy errors to the point that we can use said errors to do interesting things later on.)
From the SJ Mercury News: Posted at 4:59 p.m. PST Sunday, Dec. 10, 2000
...for some jobs, it's simply not possible to train any enthusiastic newcomer to do the work. Software programming and management jobs fall into this category, according to Avron Barr, principal at Aldo Ventures, a consulting and market research firm in Aptos that specializes in the software industry.
"We feel that the best people are born that way. For a lot of projects, if you don't have enough A software people, it doesn't matter how many B software people you have," said Barr. "Our belief is that they can't in general train people who aren't very good to be people who are very good. It's not that kind of work."
I found my first "open" WaveLAN (IEEE 802.11) network by accident. I had a WaveLAN card in my laptop when I visited the California office of the company I work for. My first reaction to getting a working dhcp lease was "Great, I won't have to fiddle with cables. But I think I need to talk to the local sysadmin if he has thought about security." My happiness quickly changed into annoyance when I felt how slow the network was and the annoyance changed into surprise when while debugging the network I realized that XXX.com wasn't the domain name of the company I work for (as a side note: XXX sells crypto hardware). I reported the incident to the local sysadmin and forgot about it.
When I got back to Sweden, I told about the stupidity of XXX to a few friends at a restaurant in downtown Stockholm. Some time before the food arrived we started to discuss WaveLAN and somehow a laptop showed up on the table and voila! We were inside YYYinternal.com. We knew a guy working at YYY, told him about this, he told his sysadmin, the sysadmin responded "I'll have to talk to the firewall guy." (I didn't know that firewalls had TEMPEST protection in their default configuration.) AFAIK the network has been shut off.
Another month or two passed. I was riding the bus around downtown Stockholm to get home after a pretty late evening and I was too tired to read. I fired up my laptop and started to detect networks. I found six or seven (one could have been a duplicate) during 30 minutes.
A week later a friend from Canada visited us. He stayed at a hotel in central Stockholm. He had a working network in some spots in his room. Apparently it belonged to a law firm. On the square outside the hotel the networks didn't work, simply because there were three of them fighting with each other. When we walked around 10 blocks in central Stockholm we found 5 to 15 networks.
And so on...
Many of the networks we found gave us DHCP leases and good routing out to the internet. Most of them were behind a firewall, but the firewall was "aimed" in the wrong direction; the WaveLAN was a part of the internal network. We were inside private networks of telcos, law firms, investment companies, consulting companies, you name it.
"With predeterminism out of the way, we were free to believe we could have some control over our fate, and so we did." -- The Programmer's Stone (Alan G Carter and Colston Sanger).
Last modified: Fri Jun 14 07:28:41 PDT 2002